<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>42323</bug_id>
          
          <creation_ts>2010-07-14 20:49:56 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs to support layoutTestController.keepWebHistory</short_desc>
          <delta_ts>2010-07-25 23:04:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>251625</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-14 20:49:56 -0700</bug_when>
    <thetext>WebKitTestRunner needs to support layoutTestController.keepWebHistory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251642</commentid>
    <comment_count>1</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-14 20:58:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/8193632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255906</commentid>
    <comment_count>2</comment_count>
      <attachid>62543</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-25 22:47:39 -0700</bug_when>
    <thetext>Created attachment 62543
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255907</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-07-25 22:49:17 -0700</bug_when>
    <thetext>Attachment 62543 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.h:63:  _didReceiveMessage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/WebKitTestRunner/TestController.h:70:  _didReceiveMessageFromInjectedBundle is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKit2/WebProcess/InjectedBundle/API/c/WKBundle.h:46:  Extra space between WKBundleDidReceiveMessageCallback and didReceiveMessage  [whitespace/declaration] [3]
WebKit2/UIProcess/API/C/WKContext.h:41:  Extra space between WKContextDidReceiveMessageFromInjectedBundleCallback and didReceiveMessageFromInjectedBundle  [whitespace/declaration] [3]
WebKitTools/WebKitTestRunner/TestController.cpp:129:  TestController::_didReceiveMessageFromInjectedBundle is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebKitTools/WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:60:  InjectedBundle::_didReceiveMessage is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 6 in 30 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255910</commentid>
    <comment_count>4</comment_count>
      <attachid>62543</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2010-07-25 22:56:02 -0700</bug_when>
    <thetext>Comment on attachment 62543
Patch

WebKitTools/WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:114
 +      // FIXME: Is it OK this works only for the main frmae?
Typo: frmae. Repeated in several places.


r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>255912</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-25 23:04:03 -0700</bug_when>
    <thetext>Committed r64029: &lt;http://trac.webkit.org/changeset/64029&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62543</attachid>
            <date>2010-07-25 22:47:39 -0700</date>
            <delta_ts>2010-07-25 22:56:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42323-20100725224738.patch</filename>
            <type>text/plain</type>
            <size>47574</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDAyOCkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTMgQEAKKzIwMTAtMDctMjUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktp
dFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlvdXRUZXN0Q29udHJvbGxlci5rZWVwV2Vi
SGlzdG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDIzMjMKKworICAgICAgICBBZGRlZCBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtz
LCBXS0J1bmRsZVJlbW92ZUFsbFZpc2l0ZWRMaW5rcywKKyAgICAgICAgYW5kIFdLQnVuZGxlRnJh
bWVHZXRDb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8uCisKKyAgICAgICAgQWxzbyBm
aXhlZCBtaXNzcGVsbGluZ3Mgb2YgdGhlIHdvcmQgInJlY2VpdmUiLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6CisgICAgICAgIChXS0J1
bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKTogQWRkZWQuCisgICAgICAgIChXS0J1bmRs
ZVJlbW92ZUFsbFZpc2l0ZWRMaW5rcyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuaDogQWRkZWQgZnVuY3Rpb25zIGFuZAorICAgICAg
ICBmaXhlZCBtaXNwZWxsaW5ncyBvZiByZWNlaXZlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcDoKKyAgICAgICAgKFdLQnVuZGxl
RnJhbWVHZXRKYXZhU2NyaXB0Q29udGV4dCk6IE1vdmVkIHRoZSBjb2RlIGZyb20gaGVyZSBpbnRv
IFdlYkZyYW1lLAorICAgICAgICB0byBiZSBjb25zaXN0ZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhl
IGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUuCisgICAgICAgIChXS0J1bmRsZUZyYW1lR2V0Q29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKTogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmg6IEFkZGVkCisgICAgICAgIFdL
QnVuZGxlRnJhbWVHZXRDb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8gYW5kIHRyaWVk
IHRvIHJlYXJyYW5nZSB0aGUKKyAgICAgICAgZmlsZSB0byBiZSBtb3JlIGxvZ2ljYWxseSBvcmRl
cmVkIGFuZCBncm91cGVkLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRT
aG91bGRUcmFja1Zpc2l0ZWRMaW5rcyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpJbmplY3Rl
ZEJ1bmRsZTo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6
OkluamVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZSk6IEZpeGVkIG1pc3BlbGxpbmdzIG9m
IHJlY2VpdmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZS5oOiBEaXR0by4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpqc0NvbnRleHQpOiBBZGRlZC4gQ29udGFp
bnMgdGhlIGNvZGUgdGhhdCB1c2VkIHRvIGJlIGluCisgICAgICAgIFdLQnVuZGxlRnJhbWVHZXRK
YXZhU2NyaXB0Q29udGV4dC4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNvbXB1dGVkU3R5
bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyk6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oOiBEaXR0by4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9XS0Nv
bnRleHQuaDogRml4ZWQgbWlzc3BlbGxpbmdzIG9mIHJlY2VpdmUuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJDb250ZXh0Lmg6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0SW5qZWN0
ZWRCdW5kbGVDbGllbnQ6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKTogRGl0
dG8uCisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
OiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpmb3J3YXJkTWVzc2FnZVRvV2ViQ29udGV4dCk6
IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OmZvcndhcmRNZXNzYWdlVG9JbmplY3RlZEJ1bmRsZSk6IERpdHRv
LgorCiAyMDEwLTA3LTI1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmNwcAkocmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTQ5LDkgKzE0OSw5IEBAIHZvaWQgV2ViQ29udGV4dDo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UoKQogCiAvLyBJbmplY3RlZEJ1bmRsZSBjbGllbnQKIAotdm9pZCBX
ZWJDb250ZXh0OjpkaWRSZWNpZXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShjb25zdCBXZWJD
b3JlOjpTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFdlYkNvbnRleHQ6OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbWVzc2FnZSkKIHsKLSAg
ICBtX2luamVjdGVkQnVuZGxlQ2xpZW50LmRpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKHRoaXMsIG1lc3NhZ2UpOworICAgIG1faW5qZWN0ZWRCdW5kbGVDbGllbnQuZGlkUmVjZWl2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUodGhpcywgbWVzc2FnZSk7CiB9CiAKIHZvaWQgV2Vi
Q29udGV4dDo6cG9zdE1lc3NhZ2VUb0luamVjdGVkQnVuZGxlKFdlYkNvcmU6OlN0cmluZ0ltcGwq
IG1lc3NhZ2UpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCShyZXZpc2lvbiA2NDAyNCkKKysr
IFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNzYsNyAr
NzYsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBpbmplY3RlZEJ1bmRs
ZVBhdGgoKSBjb25zdCB7IHJldHVybiBtX2luamVjdGVkQnVuZGxlUGF0aDsgfQogCiAgICAgLy8g
SW5qZWN0ZWRCdW5kbGUgY2xpZW50Ci0gICAgdm9pZCBkaWRSZWNpZXZlTWVzc2FnZUZyb21Jbmpl
Y3RlZEJ1bmRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmcmKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVN
ZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKGNvbnN0IFdlYkNvcmU6OlN0cmluZyYpOwogCiAgICAg
dm9pZCBwb3N0TWVzc2FnZVRvSW5qZWN0ZWRCdW5kbGUoV2ViQ29yZTo6U3RyaW5nSW1wbCopOwog
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHRJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAJKHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTIg
KzQ1LDEyIEBAIHZvaWQgV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50OjppbmkKICAgICAg
ICAgbWVtc2V0KCZtX2NsaWVudCwgMCwgc2l6ZW9mKG1fY2xpZW50KSk7CiB9CiAKLXZvaWQgV2Vi
Q29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50OjpkaWRSZWNpZXZlTWVzc2FnZUZyb21JbmplY3Rl
ZEJ1bmRsZShXZWJDb250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lk
IFdlYkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudDo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUoV2ViQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewotICAgIGlmICghbV9jbGllbnQuZGlkUmVjaWV2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUp
CisgICAgaWYgKCFtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9jbGllbnQuZGlkUmVjaWV2ZU1lc3NhZ2VGcm9tSW5q
ZWN0ZWRCdW5kbGUodG9SZWYoY29udGV4dCksIHRvUmVmKG1lc3NhZ2UuaW1wbCgpKSwgbV9jbGll
bnQuY2xpZW50SW5mbyk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0
ZWRCdW5kbGUodG9SZWYoY29udGV4dCksIHRvUmVmKG1lc3NhZ2UuaW1wbCgpKSwgbV9jbGllbnQu
Y2xpZW50SW5mbyk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgJKHJldmlz
aW9uIDY0MDI0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIFdl
YkNvbnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCgpOwogICAgIHZvaWQgaW5pdGlhbGl6ZShXS0Nv
bnRleHRJbmplY3RlZEJ1bmRsZUNsaWVudCopOwogCi0gICAgdm9pZCBkaWRSZWNpZXZlTWVzc2Fn
ZUZyb21JbmplY3RlZEJ1bmRsZShXZWJDb250ZXh0KiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7
CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXZWJDb250ZXh0
KiwgY29uc3QgV2ViQ29yZTo6U3RyaW5nJik7CiAKIHByaXZhdGU6CiAgICAgV0tDb250ZXh0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQgbV9jbGllbnQ7CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5jcHAJKHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg0LDcgKzE4NCw3IEBAIFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0qIFdlYlByb2Nlc3NQcm94eToKIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmZvcndhcmRNZXNzYWdlVG9XZWJDb250ZXh0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAg
ICBtX2NvbnRleHQtPmRpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKG1lc3NhZ2Up
OworICAgIG1fY29udGV4dC0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVz
c2FnZSk7CiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5zKGJvb2wgcmVmcmVz
aCwgVmVjdG9yPFBsdWdpbkluZm8+JiBwbHVnaW5zKQpJbmRleDogV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgJKHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDEyICszMywxMiBAQCBleHRlcm4gIkMi
IHsKICNlbmRpZgogCiAvLyBQb2xpY3kgQ2xpZW50LgotdHlwZWRlZiB2b2lkICgqV0tDb250ZXh0
RGlkUmVjaWV2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjaykoV0tDb250ZXh0UmVm
IHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlw
ZWRlZiB2b2lkICgqV0tDb250ZXh0RGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVD
YWxsYmFjaykoV0tDb250ZXh0UmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQg
ewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudEluZm87Ci0g
ICAgV0tDb250ZXh0RGlkUmVjaWV2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGVDYWxsYmFjayAg
ICAgICAgICAgICAgICBkaWRSZWNpZXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZTsKKyAgICBX
S0NvbnRleHREaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZUNhbGxiYWNrICAgICAg
ICAgICAgICAgIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlOwogfTsKIHR5cGVk
ZWYgc3RydWN0IFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50IFdLQ29udGV4dEluamVjdGVk
QnVuZGxlQ2xpZW50OwogCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lv
biA2NDAyNCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6Zm9yd2FyZE1lc3NhZ2VU
b0luamVjdGUKICAgICBpZiAoIW1faW5qZWN0ZWRCdW5kbGUpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1faW5qZWN0ZWRCdW5kbGUtPmRpZFJlY2lldmVNZXNzYWdlKG1lc3NhZ2UpOworICAgIG1f
aW5qZWN0ZWRCdW5kbGUtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOwogfQogCiBXZWJQYWdl
KiBXZWJQcm9jZXNzOjp3ZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCkgY29uc3QKSW5kZXg6IFdlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNw
cAkocmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VLaW5kcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvUGFnZUdyb3VwLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC01OSw2ICs2
MCwxNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpwb3N0TWVzc2FnZShTdHJpbmdJCiAgICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKFdlYlByb2Nlc3NQcm94eU1lc3Nh
Z2U6OlBvc3RNZXNzYWdlLCAwLCBDb3JlSVBDOjpJbihTdHJpbmcobWVzc2FnZSkpKTsKIH0KIAor
dm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoYm9vbCBzaG91
bGRUcmFja1Zpc2l0ZWRMaW5rcykKK3sKKyAgICBQYWdlR3JvdXA6OnNldFNob3VsZFRyYWNrVmlz
aXRlZExpbmtzKHNob3VsZFRyYWNrVmlzaXRlZExpbmtzKTsKK30KKwordm9pZCBJbmplY3RlZEJ1
bmRsZTo6cmVtb3ZlQWxsVmlzaXRlZExpbmtzKCkKK3sKKyAgICBQYWdlR3JvdXA6OnJlbW92ZUFs
bFZpc2l0ZWRMaW5rcygpOworfQorCiB2b2lkIEluamVjdGVkQnVuZGxlOjpkaWRDcmVhdGVQYWdl
KFdlYlBhZ2UqIHBhZ2UpCiB7CiAgICAgaWYgKG1fY2xpZW50LmRpZENyZWF0ZVBhZ2UpCkBAIC03
MSwxMCArODIsMTAgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6d2lsbERlc3Ryb3lQYWdlKFdlYgog
ICAgICAgICBtX2NsaWVudC53aWxsRGVzdHJveVBhZ2UodG9SZWYodGhpcyksIHRvUmVmKHBhZ2Up
LCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAotdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVj
aWV2ZU1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdlKQordm9pZCBJbmplY3Rl
ZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6U3RyaW5nJiBtZXNzYWdl
KQogewotICAgIGlmIChtX2NsaWVudC5kaWRSZWNpZXZlTWVzc2FnZSkKLSAgICAgICAgbV9jbGll
bnQuZGlkUmVjaWV2ZU1lc3NhZ2UodG9SZWYodGhpcyksIHRvUmVmKG1lc3NhZ2UuaW1wbCgpKSwg
bV9jbGllbnQuY2xpZW50SW5mbyk7CisgICAgaWYgKG1fY2xpZW50LmRpZFJlY2VpdmVNZXNzYWdl
KQorICAgICAgICBtX2NsaWVudC5kaWRSZWNlaXZlTWVzc2FnZSh0b1JlZih0aGlzKSwgdG9SZWYo
bWVzc2FnZS5pbXBsKCkpLCBtX2NsaWVudC5jbGllbnRJbmZvKTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuaAkocmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjAs
MTEgKzYwLDEzIEBAIHB1YmxpYzoKICAgICAvLyBBUEkKICAgICB2b2lkIGluaXRpYWxpemVDbGll
bnQoV0tCdW5kbGVDbGllbnQqKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlKFdlYkNvcmU6OlN0cmlu
Z0ltcGwqKTsKKyAgICB2b2lkIHNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKGJvb2wpOworICAg
IHZvaWQgcmVtb3ZlQWxsVmlzaXRlZExpbmtzKCk7CiAKICAgICAvLyBDYWxsYmFjayBob29rcwog
ICAgIHZvaWQgZGlkQ3JlYXRlUGFnZShXZWJQYWdlKik7CiAgICAgdm9pZCB3aWxsRGVzdHJveVBh
Z2UoV2ViUGFnZSopOwotICAgIHZvaWQgZGlkUmVjaWV2ZU1lc3NhZ2UoY29uc3QgV2ViQ29yZTo6
U3RyaW5nJik7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBXZWJDb3JlOjpTdHJp
bmcmKTsKIAogcHJpdmF0ZToKICAgICBJbmplY3RlZEJ1bmRsZShjb25zdCBXZWJDb3JlOjpTdHJp
bmcmKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmNwcAkocmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MSwzICs0MSwxMyBAQCB2b2lkIFdLQnVuZGxlUG9zdE1lc3NhZ2UoV0tCdW5kbGVSZWYgYnVuCiB7
CiAgICAgdG9XSyhidW5kbGVSZWYpLT5wb3N0TWVzc2FnZSh0b1dLKG1lc3NhZ2VSZWYpKTsKIH0K
Kwordm9pZCBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKFdLQnVuZGxlUmVmIGJ1
bmRsZVJlZiwgYm9vbCBzaG91bGRUcmFja1Zpc2l0ZWRMaW5rcykKK3sKKyAgICB0b1dLKGJ1bmRs
ZVJlZiktPnNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKHNob3VsZFRyYWNrVmlzaXRlZExpbmtz
KTsKK30KKwordm9pZCBXS0J1bmRsZVJlbW92ZUFsbFZpc2l0ZWRMaW5rcyhXS0J1bmRsZVJlZiBi
dW5kbGVSZWYpCit7CisgICAgdG9XSyhidW5kbGVSZWYpLT5yZW1vdmVBbGxWaXNpdGVkTGlua3Mo
KTsKK30KSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZS5oCShyZXZpc2lvbiA2NDAyNCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxNCAr
MzYsMTQgQEAgZXh0ZXJuICJDIiB7CiAvLyBDbGllbnQKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
RGlkQ3JlYXRlUGFnZUNhbGxiYWNrKShXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZVJl
ZiBwYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKTsKIHR5cGVkZWYgdm9pZCAoKldLQnVuZGxl
V2lsbERlc3Ryb3lQYWdlQ2FsbGJhY2spKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdl
UmVmIHBhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwotdHlwZWRlZiB2b2lkICgqV0tCdW5k
bGVEaWRSZWNpZXZlTWVzc2FnZUNhbGxiYWNrKShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5n
UmVmIG1lc3NhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwordHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVEaWRSZWNlaXZlTWVzc2FnZUNhbGxiYWNrKShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3Ry
aW5nUmVmIG1lc3NhZ2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOwogCiBzdHJ1Y3QgV0tCdW5k
bGVDbGllbnQgewogICAgIGludCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVyc2lvbjsKICAgICBjb25zdCB2b2lkICogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVu
dEluZm87CiAgICAgV0tCdW5kbGVEaWRDcmVhdGVQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBkaWRDcmVhdGVQYWdlOwogICAgIFdLQnVuZGxlV2lsbERl
c3Ryb3lQYWdlQ2FsbGJhY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ls
bERlc3Ryb3lQYWdlOwotICAgIFdLQnVuZGxlRGlkUmVjaWV2ZU1lc3NhZ2VDYWxsYmFjayAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlkUmVjaWV2ZU1lc3NhZ2U7CisgICAgV0tC
dW5kbGVEaWRSZWNlaXZlTWVzc2FnZUNhbGxiYWNrICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkaWRSZWNlaXZlTWVzc2FnZTsKIH07CiB0eXBlZGVmIHN0cnVjdCBXS0J1bmRsZUNs
aWVudCBXS0J1bmRsZUNsaWVudDsKIApAQCAtNTEsNiArNTEsOSBAQCBXS19FWFBPUlQgdm9pZCBX
S0J1bmRsZVNldENsaWVudChXS0J1bmRsCiAKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlUG9zdE1l
c3NhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS1N0cmluZ1JlZiBtZXNzYWdlKTsKIAorV0tfRVhQ
T1JUIHZvaWQgV0tCdW5kbGVTZXRTaG91bGRUcmFja1Zpc2l0ZWRMaW5rcyhXS0J1bmRsZVJlZiBi
dW5kbGUsIGJvb2wgc2hvdWxkVHJhY2tWaXNpdGVkTGlua3MpOworV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVSZW1vdmVBbGxWaXNpdGVkTGlua3MoV0tCdW5kbGVSZWYgYnVuZGxlKTsKKwogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5jcHAJKHJldmlzaW9u
IDY0MDI0KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw2IEBACiAjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tCdW5kbGVBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2Vi
RnJhbWUuaCIKLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GcmFtZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTYxLDkgKzYw
LDcgQEAgYm9vbCBXS0J1bmRsZUZyYW1lUGF1c2VBbmltYXRpb25PbkVsZW1lbgogCiBKU0dsb2Jh
bENvbnRleHRSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWVSZWYpCiB7Ci0gICAgLy8gRklYTUU6IElzIHRoZXJlIGEgd2F5IHRvIGdldCB0
aGlzIGFuZCBrbm93IHRoYXQgaXQncyBhIEpTR2xvYmFsQ29udGV4dFJlZj8KLSAgICAvLyBUaGUg
Y29uc3RfY2FzdCBoZXJlIGlzIGEgYml0IHVnbHkuCi0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8SlNH
bG9iYWxDb250ZXh0UmVmPih0b1JlZih0b1dLKGZyYW1lUmVmKS0+Y29yZUZyYW1lKCktPnNjcmlw
dCgpLT5nbG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkpLT5nbG9iYWxFeGVjKCkp
KTsKKyAgICByZXR1cm4gdG9XSyhmcmFtZVJlZiktPmpzQ29udGV4dCgpOwogfQogCiBXS1N0cmlu
Z1JlZiBXS0J1bmRsZUZyYW1lQ29weU5hbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZikKQEAg
LTcyLDMgKzY5LDggQEAgV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNvcHlOYW1lKFdLQnVuZAog
ICAgIHN0cmluZy5pbXBsKCktPnJlZigpOwogICAgIHJldHVybiB0b1JlZihzdHJpbmcuaW1wbCgp
KTsKIH0KKworSlNWYWx1ZVJlZiBXS0J1bmRsZUZyYW1lR2V0Q29tcHV0ZWRTdHlsZUluY2x1ZGlu
Z1Zpc2l0ZWRJbmZvKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIEpTT2JqZWN0UmVmIGVsZW1l
bnQpCit7CisgICAgcmV0dXJuIHRvV0soZnJhbWVSZWYpLT5jb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm8oZWxlbWVudCk7Cit9CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZyYW1lLmgJKHJldmlzaW9uIDY0
MDI0KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
RnJhbWUuaAkod29ya2luZyBjb3B5KQpAQCAtMzksMTkgKzM5LDE3IEBAIGV4dGVybiAiQyIgewog
I2VuZGlmCiAKIFdLX0VYUE9SVCBib29sIFdLQnVuZGxlRnJhbWVJc01haW5GcmFtZShXS0J1bmRs
ZUZyYW1lUmVmIGZyYW1lKTsKK1dLX0VYUE9SVCBXS0FycmF5UmVmIFdLQnVuZGxlRnJhbWVDb3B5
Q2hpbGRGcmFtZXMoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7CiAKLVdLX0VYUE9SVCBKU0dsb2Jh
bENvbnRleHRSZWYgV0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KFdLQnVuZGxlRnJh
bWVSZWYgZnJhbWUpOwotCitXS19FWFBPUlQgV0tTdHJpbmdSZWYgV0tCdW5kbGVGcmFtZUNvcHlO
YW1lKFdLQnVuZGxlRnJhbWVSZWYgZnJhbWUpOwogV0tfRVhQT1JUIFdLVVJMUmVmIFdLQnVuZGxl
RnJhbWVHZXRVUkwoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7CiAKLVdLX0VYUE9SVCBXS0FycmF5
UmVmIFdLQnVuZGxlRnJhbWVDb3B5Q2hpbGRGcmFtZXMoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7
CitXS19FWFBPUlQgSlNHbG9iYWxDb250ZXh0UmVmIFdLQnVuZGxlRnJhbWVHZXRKYXZhU2NyaXB0
Q29udGV4dChXS0J1bmRsZUZyYW1lUmVmIGZyYW1lKTsKK1dLX0VYUE9SVCBKU1ZhbHVlUmVmIFdL
QnVuZGxlRnJhbWVHZXRDb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8oV0tCdW5kbGVG
cmFtZVJlZiBmcmFtZSwgSlNPYmplY3RSZWYgZWxlbWVudCk7CiAKIFdLX0VYUE9SVCB1bnNpZ25l
ZCBXS0J1bmRsZUZyYW1lR2V0TnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKFdLQnVuZGxlRnJhbWVS
ZWYgZnJhbWUpOwotCiBXS19FWFBPUlQgYm9vbCBXS0J1bmRsZUZyYW1lUGF1c2VBbmltYXRpb25P
bkVsZW1lbnRXaXRoSWQoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSwgV0tTdHJpbmdSZWYgbmFtZSwg
V0tTdHJpbmdSZWYgZWxlbWVudElELCBkb3VibGUgdGltZSk7CiAKLVdLX0VYUE9SVCBXS1N0cmlu
Z1JlZiBXS0J1bmRsZUZyYW1lQ29weU5hbWUoV0tCdW5kbGVGcmFtZVJlZiBmcmFtZSk7Ci0KICNp
ZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViRnJhbWUuY3BwCShyZXZpc2lvbiA2NDAyNCkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTUgKzI2LDIxIEBACiAj
aW5jbHVkZSAiV2ViRnJhbWUuaCIKIAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9BUElDYXN0Lmg+CisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNMb2Nr
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9BbmltYXRpb25Db250cm9sbGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MRnJhbWVPd25lckVsZW1lbnQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0pTQ1NTU3R5bGVEZWNsYXJhdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvSlNFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmluZy5oPgogCiAj
aWZuZGVmIE5ERUJVRwogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4KICNl
bmRpZgogCit1c2luZyBuYW1lc3BhY2UgSlNDOwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMjQ0LDUgKzI1MCwyOCBAQCBib29sIFdlYkZyYW1lOjpw
YXVzZUFuaW1hdGlvbk9uRWxlbWVudFdpCiAgICAgcmV0dXJuIGNvbnRyb2xsZXItPnBhdXNlQW5p
bWF0aW9uQXRUaW1lKGNvcmVOb2RlLT5yZW5kZXJlcigpLCBhbmltYXRpb25OYW1lLCB0aW1lKTsK
IH0KIAorSlNHbG9iYWxDb250ZXh0UmVmIFdlYkZyYW1lOjpqc0NvbnRleHQoKQoreworICAgIC8v
IEZJWE1FOiBJcyB0aGVyZSBhIHdheSB0byBnZXQgdGhpcyBhbmQga25vdyB0aGF0IGl0J3MgYSBK
U0dsb2JhbENvbnRleHRSZWY/CisgICAgLy8gVGhlIGNvbnN0X2Nhc3QgaGVyZSBpcyBhIGJpdCB1
Z2x5LgorICAgIHJldHVybiBjb25zdF9jYXN0PEpTR2xvYmFsQ29udGV4dFJlZj4odG9SZWYobV9j
b3JlRnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QobWFpblRocmVhZE5vcm1hbFdvcmxkKCkp
LT5nbG9iYWxFeGVjKCkpKTsKK30KKworSlNWYWx1ZVJlZiBXZWJGcmFtZTo6Y29tcHV0ZWRTdHls
ZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTT2JqZWN0UmVmIGVsZW1lbnRKU09iamVjdCkKK3sKKyAg
ICBpZiAoIW1fY29yZUZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKworICAgIEpTRE9NV2luZG93
KiBnbG9iYWxPYmplY3QgPSBtX2NvcmVGcmFtZS0+c2NyaXB0KCktPmdsb2JhbE9iamVjdChtYWlu
VGhyZWFkTm9ybWFsV29ybGQoKSk7CisgICAgRXhlY1N0YXRlKiBleGVjID0gZ2xvYmFsT2JqZWN0
LT5nbG9iYWxFeGVjKCk7CisKKyAgICBpZiAoIXRvSlMoZWxlbWVudEpTT2JqZWN0KS0+aW5oZXJp
dHMoJkpTRWxlbWVudDo6c19pbmZvKSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKHRvUmVmKGV4ZWMpKTsKKworICAgIFJlZlB0cjxDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRp
b24+IHN0eWxlID0gY29tcHV0ZWRTdHlsZShzdGF0aWNfY2FzdDxKU0VsZW1lbnQqPih0b0pTKGVs
ZW1lbnRKU09iamVjdCkpLT5pbXBsKCksIHRydWUpOworCisgICAgSlNMb2NrIGxvY2soU2lsZW5j
ZUFzc2VydGlvbnNPbmx5KTsKKyAgICByZXR1cm4gdG9SZWYoZXhlYywgdG9KUyhleGVjLCBnbG9i
YWxPYmplY3QsIHN0eWxlLmdldCgpKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCShyZXZpc2lvbiA2NDAyNCkKKysr
IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkltbXV0YWJsZUFycmF5LmgiCiAjaW5jbHVkZSAi
V2ViRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qb2xpY3lDaGVja2Vy
Lmg+CkBAIC02OCw2ICs2OSw4IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpTdHJpbmcgbmFtZSgp
IGNvbnN0OwogICAgIFdlYkNvcmU6OlN0cmluZyB1cmwoKSBjb25zdDsKICAgICBQYXNzUmVmUHRy
PEltbXV0YWJsZUFycmF5PiBjaGlsZEZyYW1lcygpOworICAgIEpTVmFsdWVSZWYgY29tcHV0ZWRT
dHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTT2JqZWN0UmVmIGVsZW1lbnQpOworICAgIEpTR2xv
YmFsQ29udGV4dFJlZiBqc0NvbnRleHQoKTsKIAogICAgIHVuc2lnbmVkIG51bWJlck9mQWN0aXZl
QW5pbWF0aW9ucygpOwogICAgIGJvb2wgcGF1c2VBbmltYXRpb25PbkVsZW1lbnRXaXRoSWQoY29u
c3QgV2ViQ29yZTo6U3RyaW5nJiBhbmltYXRpb25OYW1lLCBjb25zdCBXZWJDb3JlOjpTdHJpbmcm
IGVsZW1lbnRJRCwgZG91YmxlIHRpbWUpOwpJbmRleDogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNjQwMjgpCisrKyBX
ZWJLaXRUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw3MCBAQAorMjAx
MC0wNy0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0
byBzdXBwb3J0IGxheW91dFRlc3RDb250cm9sbGVyLmtlZXBXZWJIaXN0b3J5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjMyMworCisgICAgICAgIEFk
ZGVkIGtlZXBXZWJIaXN0b3J5IGFuZCBjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8u
CisKKyAgICAgICAgQWxzbyBmaXhlZCBtaXNzcGVsbGluZ3Mgb2YgdGhlIHdvcmQgInJlY2VpdmUi
LgorCisgICAgICAgIEFsc28gdHdlYWtlZCB0aGUgbmFtZXMgb2Ygc29tZSBvZiB0aGUgTGF5b3V0
VGVzdENvbnRyb2xsZXIgbWVtYmVycy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvQ29kZUdlbmVyYXRvclRlc3RSdW5uZXIucG06CisgICAgICAg
IEFkZGVkIHN1cHBvcnQgZm9yIGEgdHlwZSBuYW1lZCAib2JqZWN0IiB0aGF0IGlzIHBhc3NlZCBh
bmQgcmV0dXJucyBhcworICAgICAgICBhIEpTVmFsdWVSZWYuCisKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlk
bDoKKyAgICAgICAgQWRkZWQga2VlcFdlYkhpc3RvcnkgYW5kIGNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mby4gQWxzbworICAgICAgICBwdXQgc2V0QWNjZXB0c0VkaXRpbmcgdXAgbmVh
cmVyIHRoZSB0b3AuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L0luamVjdGVkQnVuZGxlLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6Ol9kaWRS
ZWNlaXZlTWVzc2FnZSk6IEZpeGVkIG1pc3BlbGxpbmdzIG9mIHJlY2VpdmUuCisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlOjppbml0aWFsaXplKTogRGl0dG8uCisgICAgICAgIChXVFI6Oklu
amVjdGVkQnVuZGxlOjpkaWRSZWNlaXZlTWVzc2FnZSk6IERpdHRvLgorICAgICAgICAoV1RSOjpJ
bmplY3RlZEJ1bmRsZTo6cmVzZXQpOiBSZXNldCB0aGUgc3RhdGUgb2YgdmlzaXRlZCBsaW5rcyBi
ZXR3ZWVuCisgICAgICAgIHRlc3RzLiBBbHNvIGVsaW1pbmF0ZWQgdGhlIHVudXNlZCBhcmd1bWVu
dCB0byB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXIKKyAgICAgICAgY3JlYXRlIGZ1bmN0aW9uLgor
ICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6c2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3Mp
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmg6IERpdHRvLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdGluZyk6IENhbGwgc2hvdWxkQWxsb3dFZGl0aW5nCisg
ICAgICAgIGluc3RlYWQgb2YgYWNjZXB0c0VkaXRpbmcuCisgICAgICAgIChXVFI6OkluamVjdGVk
QnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGluZyk6IERpdHRvLgorICAgICAgICAoV1RSOjpJbmpl
Y3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6
SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRJbnNlcnRUZXh0KTogRGl0dG8uCisgICAgICAgIChX
VFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRGVsZXRlUmFuZ2UpOiBEaXR0by4KKyAgICAg
ICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKTog
RGl0dG8uCisgICAgICAgIChXVFI6OkluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBwbHlTdHls
ZSk6IERpdHRvLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9s
bGVyOjpjcmVhdGUpOiBSZW1vdmVkIHVuZWVkZWQgYXJndW1lbnQuCisgICAgICAgIChXVFI6Okxh
eW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6IFJlbW92ZWQgdW5uZWVk
ZWQKKyAgICAgICAgYXJndW1lbnQuIFVwZGF0ZWQgZm9yIHJlbmFtZSBvZiBtX2FjY2VwdHNFZGl0
aW5nIHRvIG1fc2hvdWxkQWxsb3dFZGl0aW5nLgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKTogQWRkZWQgc29tZSBGSVhNRXMKKyAg
ICAgICAgYWJvdXQgdGhlIGZhY3QgdGhhdCB0aGlzIHdvcmtzIG9uIHRoZSBtYWluIGZyYW1lLgor
ICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6cGF1c2VBbmltYXRpb25BdFRpbWVP
bkVsZW1lbnRXaXRoSWQpOiBEaXR0by4KKyAgICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmtlZXBXZWJIaXN0b3J5KTogQWRkZWQuCisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250
cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5nVmlzaXRlZEluZm8pOiBBZGRlZC4KKyAgICAg
ICAgKFdUUjo6SlNPYmplY3RTZXRQcm9wZXJ0eSk6IEFkZGVkLiBIZWxwZXIgdG8gbWFrZSB0aGUg
ZnVuY3Rpb24gYmVsb3cKKyAgICAgICAgY2xlYW5lci4KKyAgICAgICAgKFdUUjo6TGF5b3V0VGVz
dENvbnRyb2xsZXI6Om1ha2VXaW5kb3dPYmplY3QpOiBDaGFuZ2VkIHRvIHVzZSB0aGUKKyAgICAg
ICAgb3ZlcmxvYWQgb2YgSlNPYmplY3RTZXRQcm9wZXJ0eSBhYm92ZS4KKworICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogQ2hh
bmdlcyB0bworICAgICAgICBtYXRjaCBhYm92ZS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZSk6IEZpeGVkIG1pc3BlbGxpbmdzIG9mIHJlY2VpdmUuCisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpfZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOiBEaXR0
by4KKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUlu
amVjdGVkQnVuZGxlKTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0
aW9uLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKTogRGl0dG8uCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0SW52b2NhdGlvbi5oOiBEaXR0by4KKwogMjAxMC0wNy0yNSAgQWxleGV5IFByb3NrdXJ5YWtv
diAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRl
eDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAJ
KHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29u
dHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDcgKzgyLDcgQEAgdm9pZCBUZXN0Q29u
dHJvbGxlcjo6aW5pdGlhbGl6ZShpbnQgYXJnYwogICAgIFdLQ29udGV4dEluamVjdGVkQnVuZGxl
Q2xpZW50IGluamVjdGVkQnVuZGxlUGF0aENsaWVudCA9IHsKICAgICAgICAgMCwKICAgICAgICAg
dGhpcywKLSAgICAgICAgX2RpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlCisgICAg
ICAgIF9kaWRSZWNlaXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZQogICAgIH07CiAgICAgV0tD
b250ZXh0U2V0SW5qZWN0ZWRCdW5kbGVDbGllbnQobV9jb250ZXh0LmdldCgpLCAmaW5qZWN0ZWRC
dW5kbGVQYXRoQ2xpZW50KTsKIApAQCAtMTI2LDE0ICsxMjYsMTQgQEAgYm9vbCBUZXN0Q29udHJv
bGxlcjo6cnVuKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBUZXN0Q29udHJvbGxlcjo6
X2RpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4dFJlZiBjb250ZXh0
LCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBUZXN0
Q29udHJvbGxlcjo6X2RpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLQ29udGV4
dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZv
KQogewotICAgIHN0YXRpY19jYXN0PFRlc3RDb250cm9sbGVyKj4oY29uc3RfY2FzdDx2b2lkKj4o
Y2xpZW50SW5mbykpLT5kaWRSZWNpZXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShtZXNzYWdl
KTsKKyAgICBzdGF0aWNfY2FzdDxUZXN0Q29udHJvbGxlcio+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNs
aWVudEluZm8pKS0+ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUobWVzc2FnZSk7
CiB9CiAKLXZvaWQgVGVzdENvbnRyb2xsZXI6OmRpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2UpCit2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRSZWNl
aXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0cmluZ1JlZiBtZXNzYWdlKQogewotICAg
IG1fY3VycmVudEludm9jYXRpb24tPmRpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxl
KG1lc3NhZ2UpOworICAgIG1fY3VycmVudEludm9jYXRpb24tPmRpZFJlY2VpdmVNZXNzYWdlRnJv
bUluamVjdGVkQnVuZGxlKG1lc3NhZ2UpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVFIKSW5kZXg6
IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgJKHJldmlz
aW9uIDY0MDI0KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5oCSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBp
bml0aWFsaXplVGVzdFBsdWdpblBhdGgoKTsKIAogICAgIC8vIFdLQ29udGV4dEluamVjdGVkQnVu
ZGxlQ2xpZW50Ci0gICAgc3RhdGljIHZvaWQgX2RpZFJlY2lldmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS1N0cmluZ1JlZiBtZXNzYWdlLCBjb25zdCB2
b2lkKik7Ci0gICAgdm9pZCBkaWRSZWNpZXZlTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRsZShXS1N0
cmluZ1JlZiBtZXNzYWdlKTsKKyAgICBzdGF0aWMgdm9pZCBfZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
SW5qZWN0ZWRCdW5kbGUoV0tDb250ZXh0UmVmIGNvbnRleHQsIFdLU3RyaW5nUmVmIG1lc3NhZ2Us
IGNvbnN0IHZvaWQqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVu
ZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2UpOwogCiAgICAgT3duUHRyPFRlc3RJbnZvY2F0aW9uPiBt
X2N1cnJlbnRJbnZvY2F0aW9uOwogCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkocmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXRUb29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM5LDcgKzEzOSw3IEBAIHZvaWQgVGVzdEludm9jYXRpb246OmR1bXAoY29uc3QgY2hhciogc3QK
ICAgICBmZmx1c2goc3RkZXJyKTsKIH0KIAotdm9pZCBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjaWV2
ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZSkKK3ZvaWQgVGVz
dEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5n
UmVmIG1lc3NhZ2UpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjZk1lc3NhZ2UoQWRv
cHRDRiwgV0tTdHJpbmdDb3B5Q0ZTdHJpbmcoMCwgbWVzc2FnZSkpOwogICAgIApJbmRleDogV2Vi
S2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52b2NhdGlvbi5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdEludm9jYXRpb24uaAkocmV2aXNpb24g
NjQwMjQpCisrKyBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgcHVibGljOgogICAgIH5UZXN0SW52b2Nh
dGlvbigpOwogCiAgICAgdm9pZCBpbnZva2UoKTsKLSAgICB2b2lkIGRpZFJlY2lldmVNZXNzYWdl
RnJvbUluamVjdGVkQnVuZGxlKFdLU3RyaW5nUmVmIG1lc3NhZ2UpOworICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVzc2FnZSk7CiAKIHBy
aXZhdGU6CiAgICAgdm9pZCBkdW1wKGNvbnN0IGNoYXIqKTsKSW5kZXg6IFdlYktpdFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0
ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiA2NDAyNCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01Nyw5ICs1Nyw5IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6Ol93aWxsRGVzdHJveVBhZ2UoV0sK
ICAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZSo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVu
dEluZm8pKS0+d2lsbERlc3Ryb3lQYWdlKHBhZ2UpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxl
OjpfZGlkUmVjaWV2ZU1lc3NhZ2UoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS1N0cmluZ1JlZiBtZXNz
YWdlLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQordm9pZCBJbmplY3RlZEJ1bmRsZTo6X2RpZFJl
Y2VpdmVNZXNzYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tTdHJpbmdSZWYgbWVzc2FnZSwgY29u
c3Qgdm9pZCAqY2xpZW50SW5mbykKIHsKLSAgICBzdGF0aWNfY2FzdDxJbmplY3RlZEJ1bmRsZSo+
KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKS0+ZGlkUmVjaWV2ZU1lc3NhZ2UobWVzc2Fn
ZSk7CisgICAgc3RhdGljX2Nhc3Q8SW5qZWN0ZWRCdW5kbGUqPihjb25zdF9jYXN0PHZvaWQqPihj
bGllbnRJbmZvKSktPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOwogfQogCiB2b2lkIEluamVj
dGVkQnVuZGxlOjppbml0aWFsaXplKFdLQnVuZGxlUmVmIGJ1bmRsZSkKQEAgLTcxLDcgKzcxLDcg
QEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6aW5pdGlhbGl6ZShXS0J1bmRsZQogICAgICAgICB0aGlz
LAogICAgICAgICBfZGlkQ3JlYXRlUGFnZSwKICAgICAgICAgX3dpbGxEZXN0cm95UGFnZSwKLSAg
ICAgICAgX2RpZFJlY2lldmVNZXNzYWdlCisgICAgICAgIF9kaWRSZWNlaXZlTWVzc2FnZQogICAg
IH07CiAgICAgV0tCdW5kbGVTZXRDbGllbnQobV9idW5kbGUsICZjbGllbnQpOwogCkBAIC05OCw3
ICs5OCw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OndpbGxEZXN0cm95UGFnZShXS0IKICAgICBk
ZWxldGUgbV9wYWdlcy50YWtlKHBhZ2UpOwogfQogCi12b2lkIEluamVjdGVkQnVuZGxlOjpkaWRS
ZWNpZXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlKQordm9pZCBJbmplY3RlZEJ1bmRsZTo6
ZGlkUmVjZWl2ZU1lc3NhZ2UoV0tTdHJpbmdSZWYgbWVzc2FnZSkKIHsKICAgICBDRlN0cmluZ1Jl
ZiBjZk1lc3NhZ2UgPSBXS1N0cmluZ0NvcHlDRlN0cmluZygwLCBtZXNzYWdlKTsKICAgICBpZiAo
Q0ZFcXVhbChjZk1lc3NhZ2UsIENGU1RSKCJCZWdpblRlc3QiKSkpIHsKQEAgLTExNiw3ICsxMTYs
MTQgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjaWV2ZU1lc3NhZ2UoVwogdm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6cmVzZXQoKQogewogICAgIG1fb3V0cHV0U3RyZWFtLnN0cigiIik7Ci0gICAg
bV9sYXlvdXRUZXN0Q29udHJvbGxlciA9IExheW91dFRlc3RDb250cm9sbGVyOjpjcmVhdGUoc3Rk
OjpzdHJpbmcoIiIpKTsKKyAgICBtX2xheW91dFRlc3RDb250cm9sbGVyID0gTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNyZWF0ZSgpOworICAgIFdLQnVuZGxlU2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlu
a3MobV9idW5kbGUsIGZhbHNlKTsKKyAgICBXS0J1bmRsZVJlbW92ZUFsbFZpc2l0ZWRMaW5rcyht
X2J1bmRsZSk7Cit9CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFNob3VsZFRyYWNrVmlzaXRl
ZExpbmtzKCkKK3sKKyAgICBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExpbmtzKG1fYnVu
ZGxlLCB0cnVlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV1RSCkluZGV4OiBXZWJLaXRUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5oCShyZXZpc2lvbiA2NDAyNCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
MTcgKzUyLDE5IEBAIHB1YmxpYzoKIAogICAgIHN0ZDo6b3N0cmluZ3N0cmVhbSYgb3MoKSB7IHJl
dHVybiBtX291dHB1dFN0cmVhbTsgfQogCisgICAgdm9pZCBzZXRTaG91bGRUcmFja1Zpc2l0ZWRM
aW5rcygpOworCiBwcml2YXRlOgogICAgIEluamVjdGVkQnVuZGxlKCk7CiAgICAgfkluamVjdGVk
QnVuZGxlKCk7CiAKICAgICBzdGF0aWMgdm9pZCBfZGlkQ3JlYXRlUGFnZShXS0J1bmRsZVJlZiBi
dW5kbGUsIFdLQnVuZGxlUGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKICAg
ICBzdGF0aWMgdm9pZCBfd2lsbERlc3Ryb3lQYWdlKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwotICAgIHN0YXRpYyB2b2lk
IF9kaWRSZWNpZXZlTWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5nUmVmIG1lc3Nh
Z2UsIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pOworICAgIHN0YXRpYyB2b2lkIF9kaWRSZWNlaXZl
TWVzc2FnZShXS0J1bmRsZVJlZiBidW5kbGUsIFdLU3RyaW5nUmVmIG1lc3NhZ2UsIGNvbnN0IHZv
aWQgKmNsaWVudEluZm8pOwogCiAgICAgdm9pZCBkaWRDcmVhdGVQYWdlKFdLQnVuZGxlUGFnZVJl
ZiBwYWdlKTsKICAgICB2b2lkIHdpbGxEZXN0cm95UGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSk7
Ci0gICAgdm9pZCBkaWRSZWNpZXZlTWVzc2FnZShXS1N0cmluZ1JlZiBtZXNzYWdlKTsKKyAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlKFdLU3RyaW5nUmVmIG1lc3NhZ2UpOwogCiAgICAgdm9pZCBy
ZXNldCgpOwogCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCShyZXZp
c2lvbiA2NDAyNCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTA0LDE0ICs1MDQs
MTQgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEJlZ2luRWRpdAogewogICAgIGlm
IChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxk
RHVtcEVkaXRpbmdDYWxsYmFja3MoKSkKICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
Lm9zKCkgPDwgIkVESVRJTkcgREVMRUdBVEU6IHNob3VsZEJlZ2luRWRpdGluZ0luRE9NUmFuZ2U6
IiA8PCByYW5nZSA8PCAiXG4iOwotICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
bGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+YWNjZXB0c0VkaXRpbmcoKTsKKyAgICByZXR1cm4gSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZEFsbG93
RWRpdGluZygpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkRW5kRWRpdGlu
ZyhXS0J1bmRsZVJhbmdlUmVmIHJhbmdlKQogewogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3Mo
KSkKICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLm9zKCkgPDwgIkVESVRJTkcgREVM
RUdBVEU6IHNob3VsZEVuZEVkaXRpbmdJbkRPTVJhbmdlOiIgPDwgcmFuZ2UgPDwgIlxuIjsKLSAg
ICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCkt
PmFjY2VwdHNFZGl0aW5nKCk7CisgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5s
YXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGRBbGxvd0VkaXRpbmcoKTsKIH0KIAogYm9vbCBJ
bmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydE5vZGUoV0tCdW5kbGVOb2RlUmVmIG5vZGUs
IFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2VUb1JlcGxhY2UsIFdLSW5zZXJ0QWN0aW9uVHlwZSBhY3Rp
b24pCkBAIC01MjQsNyArNTI0LDcgQEAgYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZElu
c2VydE5vZAogCiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29u
dHJvbGxlcigpLT5zaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpKQogICAgICAgICBJbmplY3Rl
ZEJ1bmRsZTo6c2hhcmVkKCkub3MoKSA8PCAiRURJVElORyBERUxFR0FURTogc2hvdWxkSW5zZXJ0
Tm9kZToiIDw8IGR1bXBQYXRoKG5vZGUpIDw8ICIgcmVwbGFjaW5nRE9NUmFuZ2U6IiA8PCByYW5n
ZVRvUmVwbGFjZSA8PCAiIGdpdmVuQWN0aW9uOiIgPDwgaW5zZXJ0YWN0aW9uc3RyaW5nW2FjdGlv
bl0gPDwgIlxuIjsKLSAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRl
c3RDb250cm9sbGVyKCktPmFjY2VwdHNFZGl0aW5nKCk7CisgICAgcmV0dXJuIEluamVjdGVkQnVu
ZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGRBbGxvd0VkaXRpbmco
KTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZEluc2VydFRleHQoV0tTdHJp
bmdSZWYgdGV4dCwgV0tCdW5kbGVSYW5nZVJlZiByYW5nZVRvUmVwbGFjZSwgV0tJbnNlcnRBY3Rp
b25UeXBlIGFjdGlvbikKQEAgLTUzNywxNCArNTM3LDE0IEBAIGJvb2wgSW5qZWN0ZWRCdW5kbGVQ
YWdlOjpzaG91bGRJbnNlcnRUZXgKIAogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCku
bGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3MoKSkKICAg
ICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLm9zKCkgPDwgIkVESVRJTkcgREVMRUdBVEU6
IHNob3VsZEluc2VydFRleHQ6IiA8PCB0ZXh0IDw8ICIgcmVwbGFjaW5nRE9NUmFuZ2U6IiA8PCBy
YW5nZVRvUmVwbGFjZSA8PCAiIGdpdmVuQWN0aW9uOiIgPDwgaW5zZXJ0YWN0aW9uc3RyaW5nW2Fj
dGlvbl0gPDwgIlxuIjsKLSAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91
dFRlc3RDb250cm9sbGVyKCktPmFjY2VwdHNFZGl0aW5nKCk7CisgICAgcmV0dXJuIEluamVjdGVk
QnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGRBbGxvd0VkaXRp
bmcoKTsKIH0KIAogYm9vbCBJbmplY3RlZEJ1bmRsZVBhZ2U6OnNob3VsZERlbGV0ZVJhbmdlKFdL
QnVuZGxlUmFuZ2VSZWYgcmFuZ2UpCiB7CiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5sYXlvdXRUZXN0Q29udHJvbGxlcigpLT5zaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpKQog
ICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkub3MoKSA8PCAiRURJVElORyBERUxFR0FU
RTogc2hvdWxkRGVsZXRlRE9NUmFuZ2U6IiA8PCByYW5nZSA8PCAiXG4iOwotICAgIHJldHVybiBJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+YWNjZXB0c0Vk
aXRpbmcoKTsKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RD
b250cm9sbGVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQogCiBib29sIEluamVjdGVkQnVu
ZGxlUGFnZTo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXS0J1bmRsZVJhbmdlUmVmIGZyb21S
YW5nZSwgV0tCdW5kbGVSYW5nZVJlZiB0b1JhbmdlLCBXS0FmZmluaXR5VHlwZSBhZmZpbml0eSwg
Ym9vbCBzdGlsbFNlbGVjdGluZykKQEAgLTU2MCwxNCArNTYwLDE0IEBAIGJvb2wgSW5qZWN0ZWRC
dW5kbGVQYWdlOjpzaG91bGRDaGFuZ2VTZWwKIAogICAgIGlmIChJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIoKS0+c2hvdWxkRHVtcEVkaXRpbmdDYWxsYmFja3Mo
KSkKICAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLm9zKCkgPDwgIkVESVRJTkcgREVM
RUdBVEU6IHNob3VsZENoYW5nZVNlbGVjdGVkRE9NUmFuZ2U6IiA8PCBmcm9tUmFuZ2UgPDwgIiB0
b0RPTVJhbmdlOiIgPDwgdG9SYW5nZSA8PCAiIGFmZmluaXR5OiIgPDwgYWZmaW5pdHlzdHJpbmdb
YWZmaW5pdHldIDw8ICIgc3RpbGxTZWxlY3Rpbmc6IiA8PCBib29sc3RyaW5nW3N0aWxsU2VsZWN0
aW5nXSA8PCAiXG4iOwotICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0
VGVzdENvbnRyb2xsZXIoKS0+YWNjZXB0c0VkaXRpbmcoKTsKKyAgICByZXR1cm4gSW5qZWN0ZWRC
dW5kbGU6OnNoYXJlZCgpLmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZEFsbG93RWRpdGlu
ZygpOwogfQogCiBib29sIEluamVjdGVkQnVuZGxlUGFnZTo6c2hvdWxkQXBwbHlTdHlsZShXS0J1
bmRsZUNTU1N0eWxlRGVjbGFyYXRpb25SZWYgc3R5bGUsIFdLQnVuZGxlUmFuZ2VSZWYgcmFuZ2Up
CiB7CiAgICAgaWYgKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5sYXlvdXRUZXN0Q29udHJvbGxl
cigpLT5zaG91bGREdW1wRWRpdGluZ0NhbGxiYWNrcygpKQogICAgICAgICBJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkub3MoKSA8PCAiRURJVElORyBERUxFR0FURTogc2hvdWxkQXBwbHlTdHlsZToi
IDw8IHN0eWxlIDw8ICIgdG9FbGVtZW50c0luRE9NUmFuZ2U6IiA8PCByYW5nZSA8PCAiXG4iOwot
ICAgIHJldHVybiBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkubGF5b3V0VGVzdENvbnRyb2xsZXIo
KS0+YWNjZXB0c0VkaXRpbmcoKTsKKyAgICByZXR1cm4gSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgp
LmxheW91dFRlc3RDb250cm9sbGVyKCktPnNob3VsZEFsbG93RWRpdGluZygpOwogfQogCiB2b2lk
IEluamVjdGVkQnVuZGxlUGFnZTo6ZGlkQmVnaW5FZGl0aW5nKFdLU3RyaW5nUmVmIG5vdGlmaWNh
dGlvbk5hbWUpCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNjQwMjQpCisrKyBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzYsMjEg
KzM2LDIwIEBACiAKIG5hbWVzcGFjZSBXVFIgewogCi1QYXNzUmVmUHRyPExheW91dFRlc3RDb250
cm9sbGVyPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y3JlYXRlKGNvbnN0IHN0ZDo6c3RyaW5nJiB0
ZXN0UGF0aE9yVVJMKQorUGFzc1JlZlB0cjxMYXlvdXRUZXN0Q29udHJvbGxlcj4gTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmNyZWF0ZSgpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMYXlvdXRU
ZXN0Q29udHJvbGxlcih0ZXN0UGF0aE9yVVJMKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBM
YXlvdXRUZXN0Q29udHJvbGxlcik7CiB9CiAKLUxheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCkKK0xheW91dFRl
c3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcigpCiAgICAgOiBtX3doYXRUb0R1bXAo
UmVuZGVyVHJlZSkKICAgICAsIG1fc2hvdWxkRHVtcEFsbEZyYW1lU2Nyb2xsUG9zaXRpb25zKGZh
bHNlKQotICAgICwgbV9hY2NlcHRzRWRpdGluZyh0cnVlKQorICAgICwgbV9zaG91bGRBbGxvd0Vk
aXRpbmcodHJ1ZSkKICAgICAsIG1fZHVtcEVkaXRpbmdDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBt
X2R1bXBTdGF0dXNDYWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX3dhaXRUb0R1bXAoZmFsc2UpCiAg
ICAgLCBtX3Rlc3RSZXBhaW50KGZhbHNlKQogICAgICwgbV90ZXN0UmVwYWludFN3ZWVwSG9yaXpv
bnRhbGx5KGZhbHNlKQotICAgICwgbV90ZXN0UGF0aE9yVVJMKHRlc3RQYXRoT3JVUkwpCiB7CiB9
CiAKQEAgLTExMiwxMiArMTExLDE3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om5vdGlm
eURvbmUoKQogCiB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZBY3RpdmVB
bmltYXRpb25zKCkgY29uc3QKIHsKKyAgICAvLyBGSVhNRTogSXMgaXQgT0sgdGhpcyB3b3JrcyBv
bmx5IGZvciB0aGUgbWFpbiBmcm1hZT8KKyAgICAvLyBGSVhNRTogSWYgdGhpcyBpcyBuZWVkZWQg
b25seSBmb3IgdGhlIG1haW4gZnJhbWUsIHRoZW4gd2h5IGlzIHRoZSBmdW5jdGlvbiBvbiBXS0J1
bmRsZUZyYW1lIGluc3RlYWQgb2YgV0tCdW5kbGVQYWdlPwogICAgIFdLQnVuZGxlRnJhbWVSZWYg
bWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5wYWdlKCktPnBhZ2UoKSk7CiAgICAgcmV0dXJuIFdLQnVuZGxlRnJhbWVHZXROdW1iZXJP
ZkFjdGl2ZUFuaW1hdGlvbnMobWFpbkZyYW1lKTsKIH0KIAogYm9vbCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6cGF1c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgYW5p
bWF0aW9uTmFtZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCkKIHsKKyAgICAv
LyBGSVhNRTogSXMgaXQgT0sgdGhpcyB3b3JrcyBvbmx5IGZvciB0aGUgbWFpbiBmcm1hZT8KKyAg
ICAvLyBGSVhNRTogSWYgdGhpcyBpcyBuZWVkZWQgb25seSBmb3IgdGhlIG1haW4gZnJhbWUsIHRo
ZW4gd2h5IGlzIHRoZSBmdW5jdGlvbiBvbiBXS0J1bmRsZUZyYW1lIGluc3RlYWQgb2YgV0tCdW5k
bGVQYWdlPworCiAgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBpZENGKEFkb3B0Q0YsIEpTU3Ry
aW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVsZW1lbnRJZCkpOwogICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpZFdLKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aENG
U3RyaW5nKGlkQ0YuZ2V0KCkpKTsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IG5hbWVDRihB
ZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBhbmltYXRp
b25OYW1lKSk7CkBAIC0xMjcsMTIgKzEzMSwzNSBAQCBib29sIExheW91dFRlc3RDb250cm9sbGVy
OjpwYXVzZUFuaW1hdGlvCiAgICAgcmV0dXJuIFdLQnVuZGxlRnJhbWVQYXVzZUFuaW1hdGlvbk9u
RWxlbWVudFdpdGhJZChtYWluRnJhbWUsIG5hbWVXSy5nZXQoKSwgaWRXSy5nZXQoKSwgdGltZSk7
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmtlZXBXZWJIaXN0b3J5KCkKK3sKKyAg
ICBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuc2V0U2hvdWxkVHJhY2tWaXNpdGVkTGlua3MoKTsK
K30KKworSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHlsZUluY2x1
ZGluZ1Zpc2l0ZWRJbmZvKEpTVmFsdWVSZWYgZWxlbWVudCkKK3sKKyAgICAvLyBGSVhNRTogSXMg
aXQgT0sgdGhpcyB3b3JrcyBvbmx5IGZvciB0aGUgbWFpbiBmcm1hZT8KKyAgICBXS0J1bmRsZUZy
YW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmplY3RlZEJ1bmRs
ZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOworICAgIEpTQ29udGV4dFJlZiBjb250ZXh0ID0g
V0tCdW5kbGVGcmFtZUdldEphdmFTY3JpcHRDb250ZXh0KG1haW5GcmFtZSk7CisgICAgaWYgKCFK
U1ZhbHVlSXNPYmplY3QoY29udGV4dCwgZWxlbWVudCkpCisgICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICBKU1ZhbHVlUmVmIHZhbHVlID0gV0tCdW5kbGVG
cmFtZUdldENvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhtYWluRnJhbWUsIGNvbnN0
X2Nhc3Q8SlNPYmplY3RSZWY+KGVsZW1lbnQpKTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgcmV0dXJuIHZhbHVlOwor
fQorCiAvLyBPYmplY3QgQ3JlYXRpb24KIAorc3RhdGljIHZvaWQgSlNPYmplY3RTZXRQcm9wZXJ0
eShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBjb25zdCBjaGFyKiBw
cm9wZXJ0eU5hbWUsIEpTV3JhcHBhYmxlKiB2YWx1ZSwgSlNQcm9wZXJ0eUF0dHJpYnV0ZXMgYXR0
cmlidXRlcywgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBwcm9wZXJ0eU5hbWVTdHJpbmcoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwg
b2JqZWN0LCBwcm9wZXJ0eU5hbWVTdHJpbmcuZ2V0KCksIEpTV3JhcHBlcjo6d3JhcChjb250ZXh0
LCB2YWx1ZSksIGF0dHJpYnV0ZXMsIGV4Y2VwdGlvbik7Cit9CisKIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6Om1ha2VXaW5kb3dPYmplY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBsYXlvdXRUZXN0Q29udG9sbGVyU3RyKEFkb3B0LCBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygibGF5b3V0VGVzdENvbnRyb2xsZXIiKSk7Ci0gICAgSlNPYmpl
Y3RTZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsIGxheW91dFRlc3RDb250b2xsZXJT
dHIuZ2V0KCksIEpTV3JhcHBlcjo6d3JhcChjb250ZXh0LCB0aGlzKSwga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSwgZXhjZXB0aW9u
KTsKKyAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIHdpbmRvd09iamVjdCwgImxheW91
dFRlc3RDb250cm9sbGVyIiwgdGhpcywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSwgZXhjZXB0aW9uKTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV1RSCkluZGV4OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0VG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZp
c2lvbiA2NDAyNCkKKysrIFdlYktpdFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBA
QCBuYW1lc3BhY2UgV1RSIHsKIAogY2xhc3MgTGF5b3V0VGVzdENvbnRyb2xsZXIgOiBwdWJsaWMg
SlNXcmFwcGFibGUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPExheW91dFRlc3RD
b250cm9sbGVyPiBjcmVhdGUoY29uc3Qgc3RkOjpzdHJpbmcmIHRlc3RQYXRoT3JVUkwpOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPExheW91dFRlc3RDb250cm9sbGVyPiBjcmVhdGUoKTsKICAgICB2
aXJ0dWFsIH5MYXlvdXRUZXN0Q29udHJvbGxlcigpOwogCiAgICAgLy8gSlNXcmFwcGFibGUKQEAg
LTU1LDYgKzU1LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGR1bXBFZGl0aW5nQ2FsbGJhY2tzKCkg
eyBtX2R1bXBFZGl0aW5nQ2FsbGJhY2tzID0gdHJ1ZTsgfQogICAgIHZvaWQgZHVtcFN0YXR1c0Nh
bGxiYWNrcygpIHsgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzID0gdHJ1ZTsgfQogCisgICAgLy8gU3Bl
Y2lhbCBvcHRpb25zLgorICAgIHZvaWQga2VlcFdlYkhpc3RvcnkoKTsKKyAgICB2b2lkIHNldEFj
Y2VwdHNFZGl0aW5nKGJvb2wgdmFsdWUpIHsgbV9zaG91bGRBbGxvd0VkaXRpbmcgPSB2YWx1ZTsg
fQorCisgICAgLy8gU3BlY2lhbCBET00gZnVuY3Rpb25zLgorICAgIEpTVmFsdWVSZWYgY29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTVmFsdWVSZWYpOworCiAgICAgLy8gUmVwYWlu
dCB0ZXN0aW5nLgogICAgIHZvaWQgdGVzdFJlcGFpbnQoKSB7IG1fdGVzdFJlcGFpbnQgPSB0cnVl
OyB9CiAgICAgdm9pZCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHkoKSB7IG1fdGVzdFJlcGFpbnRT
d2VlcEhvcml6b250YWxseSA9IHRydWU7IH0KQEAgLTY0LDkgKzcxLDYgQEAgcHVibGljOgogICAg
IHVuc2lnbmVkIG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogICAgIGJvb2wgcGF1
c2VBbmltYXRpb25BdFRpbWVPbkVsZW1lbnRXaXRoSWQoSlNTdHJpbmdSZWYgYW5pbWF0aW9uTmFt
ZSwgZG91YmxlIHRpbWUsIEpTU3RyaW5nUmVmIGVsZW1lbnRJZCk7CiAKLSAgICB2b2lkIHNldEFj
Y2VwdHNFZGl0aW5nKGJvb2wgdmFsdWUpIHsgbV9hY2NlcHRzRWRpdGluZyA9IHZhbHVlOyB9Ci0g
ICAgYm9vbCBhY2NlcHRzRWRpdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWNjZXB0c0VkaXRpbmc7
IH0KLQogICAgIGVudW0gV2hhdFRvRHVtcCB7IFJlbmRlclRyZWUsIE1haW5GcmFtZVRleHQsIEFs
bEZyYW1lc1RleHQgfTsKICAgICBXaGF0VG9EdW1wIHdoYXRUb0R1bXAoKSBjb25zdCB7IHJldHVy
biBtX3doYXRUb0R1bXA7IH0KIApAQCAtODAsMjAgKzg0LDIwIEBAIHB1YmxpYzoKICAgICB2b2lk
IHdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQoKTsKICAgICB2b2lkIGludmFsaWRhdGVXYWl0
VG9EdW1wV2F0Y2hkb2coKTsKIAorICAgIGJvb2wgc2hvdWxkQWxsb3dFZGl0aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9zaG91bGRBbGxvd0VkaXRpbmc7IH0KKwogcHJpdmF0ZToKLSAgICBMYXlvdXRU
ZXN0Q29udHJvbGxlcihjb25zdCBzdGQ6OnN0cmluZyYgdGVzdFBhdGhPclVSTCk7CisgICAgTGF5
b3V0VGVzdENvbnRyb2xsZXIoKTsKIAogICAgIFdoYXRUb0R1bXAgbV93aGF0VG9EdW1wOwogICAg
IGJvb2wgbV9zaG91bGREdW1wQWxsRnJhbWVTY3JvbGxQb3NpdGlvbnM7Ci0gICAgYm9vbCBtX2Fj
Y2VwdHNFZGl0aW5nOworICAgIGJvb2wgbV9zaG91bGRBbGxvd0VkaXRpbmc7CiAgICAgYm9vbCBt
X2R1bXBFZGl0aW5nQ2FsbGJhY2tzOwogICAgIGJvb2wgbV9kdW1wU3RhdHVzQ2FsbGJhY2tzOwog
ICAgIGJvb2wgbV93YWl0VG9EdW1wOyAvLyBUcnVlIGlmIHdhaXRVbnRpbERvbmUoKSBoYXMgYmVl
biBjYWxsZWQsIGJ1dCBub3RpZnlEb25lKCkgaGFzIG5vdCB5ZXQgYmVlbiBjYWxsZWQuCiAgICAg
Ym9vbCBtX3Rlc3RSZXBhaW50OwogICAgIGJvb2wgbV90ZXN0UmVwYWludFN3ZWVwSG9yaXpvbnRh
bGx5OwogCi0gICAgc3RkOjpzdHJpbmcgbV90ZXN0UGF0aE9yVVJMOwotICAgIAogICAgIFJldGFp
blB0cjxDRlJ1bkxvb3BUaW1lclJlZj4gbV93YWl0VG9EdW1wV2F0Y2hkb2c7CiB9OwogCkluZGV4
OiBXZWJLaXRUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0Nv
ZGVHZW5lcmF0b3JUZXN0UnVubmVyLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdFRvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQ29kZUdlbmVyYXRvclRlc3RSdW5u
ZXIucG0JKHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9Db2RlR2VuZXJhdG9yVGVzdFJ1bm5lci5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMzQzLDcgKzM0Myw5IEBAIHN1YiBfaW5jbHVkZUhlYWRlcnMKICAgICBteSAo
JHNlbGYsICRoZWFkZXJzLCAkaWRsVHlwZSwgJHNpZ25hdHVyZSkgPSBAXzsKIAogICAgIHJldHVy
biB1bmxlc3MgZGVmaW5lZCAkaWRsVHlwZTsKLSAgICByZXR1cm4gaWYgJGlkbFR5cGUgZXEgImJv
b2xlYW4iIG9yICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNOb25Qb2ludGVyVHlwZSgkaWRsVHlw
ZSk7CisgICAgcmV0dXJuIGlmICRpZGxUeXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4gaWYg
JGlkbFR5cGUgZXEgIm9iamVjdCI7CisgICAgcmV0dXJuIGlmICQkc2VsZntjb2RlR2VuZXJhdG9y
fS0+SXNOb25Qb2ludGVyVHlwZSgkaWRsVHlwZSk7CiAKICAgICAkJGhlYWRlcnN7X2NsYXNzTmFt
ZSgkaWRsVHlwZSkgLiAiLmgifSA9IDE7CiAgICAgJCRoZWFkZXJze19pbXBsZW1lbnRhdGlvbkNs
YXNzTmFtZSgkaWRsVHlwZSkgLiAiLmgifSA9IDE7CkBAIC0zODUsNiArMzg3LDcgQEAgc3ViIF9w
bGF0Zm9ybVR5cGUKICAgICByZXR1cm4gdW5kZWYgdW5sZXNzIGRlZmluZWQgJGlkbFR5cGU7CiAK
ICAgICByZXR1cm4gImJvb2wiIGlmICRpZGxUeXBlIGVxICJib29sZWFuIjsKKyAgICByZXR1cm4g
IkpTVmFsdWVSZWYiIGlmICRpZGxUeXBlIGVxICJvYmplY3QiOwogICAgIHJldHVybiAiSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzU3RyaW5nVHlw
ZSgkaWRsVHlwZSk7CiAgICAgcmV0dXJuICJkb3VibGUiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9y
fS0+SXNOb25Qb2ludGVyVHlwZSgkaWRsVHlwZSk7CiAgICAgcmV0dXJuIF9pbXBsZW1lbnRhdGlv
bkNsYXNzTmFtZSgkaWRsVHlwZSk7CkBAIC0zOTYsOCArMzk5LDkgQEAgc3ViIF9wbGF0Zm9ybVR5
cGVDb25zdHJ1Y3RvcgogCiAgICAgbXkgJGlkbFR5cGUgPSAkc2lnbmF0dXJlLT50eXBlOwogCi0g
ICAgcmV0dXJuICJKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4oQWRvcHQsIEpTVmFsdWVUb1N0cmlu
Z0NvcHkoY29udGV4dCwgJGFyZ3VtZW50TmFtZSwgMCkpIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRv
cn0tPklzU3RyaW5nVHlwZSgkaWRsVHlwZSk7CiAgICAgcmV0dXJuICJKU1ZhbHVlVG9Cb29sZWFu
KGNvbnRleHQsICRhcmd1bWVudE5hbWUpIiBpZiAkaWRsVHlwZSBlcSAiYm9vbGVhbiI7CisgICAg
cmV0dXJuICIkYXJndW1lbnROYW1lIiBpZiAkaWRsVHlwZSBlcSAib2JqZWN0IjsKKyAgICByZXR1
cm4gIkpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCAkYXJndW1lbnROYW1lLCAwKSkiIGlmICQkc2VsZntjb2RlR2VuZXJhdG9yfS0+SXNT
dHJpbmdUeXBlKCRpZGxUeXBlKTsKICAgICByZXR1cm4gIkpTVmFsdWVUb051bWJlcihjb250ZXh0
LCAkYXJndW1lbnROYW1lLCAwKSIgaWYgJCRzZWxme2NvZGVHZW5lcmF0b3J9LT5Jc05vblBvaW50
ZXJUeXBlKCRpZGxUeXBlKTsKICAgICByZXR1cm4gInRvIiAuIF9pbXBsZW1lbnRhdGlvbkNsYXNz
TmFtZSgkaWRsVHlwZSkgLiAiKGNvbnRleHQsICRhcmd1bWVudE5hbWUpIjsKIH0KQEAgLTQxMyw2
ICs0MTcsNyBAQCBzdWIgX3BsYXRmb3JtVHlwZVZhcmlhYmxlRGVjbGFyYXRpb24KICAgICAgICAg
ImJvb2wiID0+IDEsCiAgICAgICAgICJkb3VibGUiID0+IDEsCiAgICAgICAgICJKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4iID0+IDEsCisgICAgICAgICJKU1ZhbHVlUmVmIiA9PiAxLAogICAgICk7
CiAKICAgICBteSAkbnVsbFZhbHVlID0gIjAiOwpAQCAtNDM3LDYgKzQ0Miw3IEBAIHN1YiBfcmV0
dXJuRXhwcmVzc2lvbgogCiAgICAgcmV0dXJuICJKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KSIgaWYgJHJldHVybklETFR5cGUgZXEgInZvaWQiOwogICAgIHJldHVybiAiSlNWYWx1ZU1ha2VC
b29sZWFuKGNvbnRleHQsICR7ZXhwcmVzc2lvbn0pIiBpZiAkcmV0dXJuSURMVHlwZSBlcSAiYm9v
bGVhbiI7CisgICAgcmV0dXJuICIke2V4cHJlc3Npb259IiBpZiAkcmV0dXJuSURMVHlwZSBlcSAi
b2JqZWN0IjsKICAgICByZXR1cm4gIkpTVmFsdWVNYWtlTnVtYmVyKGNvbnRleHQsICR7ZXhwcmVz
c2lvbn0pIiBpZiAkJHNlbGZ7Y29kZUdlbmVyYXRvcn0tPklzTm9uUG9pbnRlclR5cGUoJHJldHVy
bklETFR5cGUpOwogICAgIHJldHVybiAidG9KUyhjb250ZXh0LCBXVEY6OmdldFB0cigke2V4cHJl
c3Npb259KSkiOwogfQpJbmRleDogV2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViS2l0VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlv
dXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDY0MDI0KQorKysgV2ViS2l0VG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDEzIEBAIG1vZHVsZSBXVFIgewogICAg
ICAgICB2b2lkIGR1bXBFZGl0aW5nQ2FsbGJhY2tzKCk7CiAgICAgICAgIHZvaWQgZHVtcFN0YXR1
c0NhbGxiYWNrcygpOwogCisgICAgICAgIC8vIFNwZWNpYWwgb3B0aW9ucy4KKyAgICAgICAgdm9p
ZCBrZWVwV2ViSGlzdG9yeSgpOworICAgICAgICB2b2lkIHNldEFjY2VwdHNFZGl0aW5nKGluIGJv
b2xlYW4gdmFsdWUpOworCisgICAgICAgIC8vIFNwZWNpYWwgRE9NIGZ1bmN0aW9ucy4KKyAgICAg
ICAgb2JqZWN0IGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhpbiBvYmplY3QgZWxl
bWVudCk7CisKICAgICAgICAgLy8gUmVwYWludCB0ZXN0aW5nLgogICAgICAgICB2b2lkIHRlc3RS
ZXBhaW50KCk7CiAgICAgICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCk7CkBAIC00
NSw4ICs1Miw2IEBAIG1vZHVsZSBXVFIgewogICAgICAgICAvLyBBbmltYXRpb24gdGVzdGluZy4K
ICAgICAgICAgaW50IG51bWJlck9mQWN0aXZlQW5pbWF0aW9ucygpOwogICAgICAgICBib29sZWFu
IHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElkKGluIERPTVN0cmluZyBhbmltYXRp
b25OYW1lLCBpbiBkb3VibGUgdGltZSwgaW4gRE9NU3RyaW5nIGVsZW1lbnRJZCk7Ci0KLSAgICAg
ICAgdm9pZCBzZXRBY2NlcHRzRWRpdGluZyhpbiBib29sZWFuIHZhbHVlKTsKICAgICB9OwogCiB9
CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCShyZXZpc2lvbiA2NDAyOCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDEwLTA3LTI1ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQgbGF5b3V0VGVzdENvbnRy
b2xsZXIua2VlcFdlYkhpc3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyMzIzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6
IFJlbW92ZWQgdGhlIHRlc3RzIHRoYXQgbmVlZGVkIG9ubHkga2VlcFdlYkhpc3RvcnkKKyAgICAg
ICAgYW5kIGNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mby4gTW92ZWQgdGhlIG90aGVy
IHRlc3RzIGluIHRoZQorICAgICAgICBrZWVwV2ViSGlzdG9yeSBzZWN0aW9uIG9mIHRoZSBmaWxl
IGludG8gdGhlIG90aGVyIGFwcHJvcHJpYXRlIGxpc3RzLgorCiAyMDEwLTA3LTI1ICBBZGFtIEJh
cnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlk
ZWwuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShyZXZpc2lvbiA2NDAy
NCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtMTYzNyw2ICsxNjM3LDcgQEAgZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1uYXZp
Z2F0aW9uLQogZmFzdC9oYXJuZXNzL3BhZ2UtY2FjaGUtY3Jhc2gtb24tZGF0YS11cmxzLmh0bWwK
IGZhc3QvaGFybmVzcy9zaG93LW1vZGFsLWRpYWxvZy5odG1sCiBmYXN0L2hpc3RvcnkvaGlzdG9y
eV9yZWxvYWQuaHRtbAorZmFzdC9oaXN0b3J5L3dpbmRvdy1vcGVuLmh0bWwKIGZhc3QvbG9hZGVy
L2NhbmNlbC1sb2FkLWR1cmluZy1wb3J0LWJsb2NrLXRpbWVyLmh0bWwKIGZhc3QvbG9hZGVyL2Ny
YXNoLWNvcHlpbmctYmFja2ZvcndhcmRsaXN0Lmh0bWwKIGZhc3QvbG9hZGVyL3N0YXRlb2JqZWN0
cy9wdXNoc3RhdGUtd2l0aG91dC1oaXN0b3J5Lmh0bWwKQEAgLTE2OTIsMTIgKzE2OTMsMzIgQEAg
ZmFzdC9sb2FkZXIvZnJhbWUtc3JjLWNoYW5nZS1hZGRlZC10by1oaQogZmFzdC9sb2FkZXIvZnJh
bWUtc3JjLWNoYW5nZS1ub3QtYWRkZWQtdG8taGlzdG9yeS5odG1sCiBmYXN0L2xvYWRlci9zdGF0
ZW9iamVjdHMvcHVzaHN0YXRlLW9iamVjdC10eXBlcy5odG1sCiBmYXN0L2xvYWRlci9zdWJmcmFt
ZS1uYXZpZ2F0ZS1kdXJpbmctbWFpbi1mcmFtZS1sb2FkLmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9y
eS9yZWRpcmVjdC0yMDAtcmVmcmVzaC0wLXNlY29uZHMucGwKIGh0dHAvdGVzdHMvaGlzdG9yeS9y
ZWRpcmVjdC0yMDAtcmVmcmVzaC0yLXNlY29uZHMucGwKIGh0dHAvdGVzdHMvaGlzdG9yeS9yZWRp
cmVjdC0zMDEucGwKIGh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC0zMDIucGwKIGh0dHAvdGVz
dHMvaGlzdG9yeS9yZWRpcmVjdC0zMDMucGwKIGh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC0z
MDcucGwKK2h0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1kb2N1bWVudC1sb2NhdGlvbi0w
LXNlY29uZHMuaHRtbAoraHR0cC90ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LWpzLWRvY3VtZW50LWxv
Y2F0aW9uLTItc2Vjb25kcy5odG1sCitodHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtZG9j
dW1lbnQtbG9jYXRpb24tYmVmb3JlLWxvYWQuaHRtbAoraHR0cC90ZXN0cy9oaXN0b3J5L3JlZGly
ZWN0LWpzLWZvcm0tc3VibWl0LTAtc2Vjb25kcy5odG1sCitodHRwL3Rlc3RzL2hpc3RvcnkvcmVk
aXJlY3QtanMtZm9ybS1zdWJtaXQtMi1zZWNvbmRzLmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9yeS9y
ZWRpcmVjdC1qcy1mb3JtLXN1Ym1pdC1iZWZvcmUtbG9hZC5odG1sCitodHRwL3Rlc3RzL2hpc3Rv
cnkvcmVkaXJlY3QtanMtbG9jYXRpb24tMC1zZWNvbmRzLmh0bWwKIGh0dHAvdGVzdHMvaGlzdG9y
eS9yZWRpcmVjdC1qcy1sb2NhdGlvbi0yLXNlY29uZHMuaHRtbAoraHR0cC90ZXN0cy9oaXN0b3J5
L3JlZGlyZWN0LWpzLWxvY2F0aW9uLWFzc2lnbi0wLXNlY29uZHMuaHRtbAoraHR0cC90ZXN0cy9o
aXN0b3J5L3JlZGlyZWN0LWpzLWxvY2F0aW9uLWFzc2lnbi0yLXNlY29uZHMuaHRtbAoraHR0cC90
ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LWpzLWxvY2F0aW9uLWFzc2lnbi1iZWZvcmUtbG9hZC5odG1s
CitodHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtbG9jYXRpb24tYmVmb3JlLWxvYWQuaHRt
bAoraHR0cC90ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LWpzLWxvY2F0aW9uLWhyZWYtMC1zZWNvbmRz
Lmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1sb2NhdGlvbi1ocmVmLTItc2Vj
b25kcy5odG1sCitodHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtbG9jYXRpb24taHJlZi1i
ZWZvcmUtbG9hZC5odG1sCitodHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtbG9jYXRpb24t
cmVwbGFjZS0wLXNlY29uZHMuaHRtbAoraHR0cC90ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LWpzLWxv
Y2F0aW9uLXJlcGxhY2UtMi1zZWNvbmRzLmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVj
dC1qcy1sb2NhdGlvbi1yZXBsYWNlLWJlZm9yZS1sb2FkLmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9y
eS9yZWRpcmVjdC1tZXRhLXJlZnJlc2gtMC1zZWNvbmRzLmh0bWwKK2h0dHAvdGVzdHMvaGlzdG9y
eS9yZWRpcmVjdC1tZXRhLXJlZnJlc2gtMi1zZWNvbmRzLmh0bWwKIGh0dHAvdGVzdHMvaW5jcmVt
ZW50YWwvZnJhbWUtZm9jdXMtYmVmb3JlLWxvYWQuaHRtbAogaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L2FuY2hvci1iYXNpYy5odG1sCiBodHRwL3Rlc3RzL25hdmlnYXRpb24vYW5jaG9yLWZyYW1lcy5o
dG1sCkBAIC0xNzY2LDM0ICsxNzg3LDYgQEAgaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVk
aXJlY3Qtc3ViZgogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3dpbmRvdy1vcGVuLWFkZHMtaGlzdG9y
eS1pdGVtLmh0bWwKIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi93aW5kb3ctb3Blbi1hZGRzLWhpc3Rv
cnktaXRlbTIuaHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gc3VwcG9ydCBsYXlv
dXRUZXN0Q29udHJvbGxlci5rZWVwV2ViSGlzdG9yeQotIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQyMzIzPgotZmFzdC9oaXN0b3J5L211bHRpcGxlLWNsYXNzZXMt
dmlzaXRlZC5odG1sCi1mYXN0L2hpc3RvcnkvbmVzdGVkLXZpc2l0ZWQtdGVzdC5odG1sCi1mYXN0
L2hpc3Rvcnkvc2VsZi1pcy12aXNpdGVkLmh0bWwKLWZhc3QvaGlzdG9yeS9zaWJsaW5nLXZpc2l0
ZWQtdGVzdC5odG1sCi1mYXN0L2hpc3Rvcnkvd2luZG93LW9wZW4uaHRtbAotaHR0cC90ZXN0cy9o
aXN0b3J5L3JlZGlyZWN0LTIwMC1yZWZyZXNoLTAtc2Vjb25kcy5wbAotaHR0cC90ZXN0cy9oaXN0
b3J5L3JlZGlyZWN0LWpzLWRvY3VtZW50LWxvY2F0aW9uLTAtc2Vjb25kcy5odG1sCi1odHRwL3Rl
c3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtZG9jdW1lbnQtbG9jYXRpb24tMi1zZWNvbmRzLmh0bWwK
LWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1kb2N1bWVudC1sb2NhdGlvbi1iZWZvcmUt
bG9hZC5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtZm9ybS1zdWJtaXQtMC1z
ZWNvbmRzLmh0bWwKLWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1mb3JtLXN1Ym1pdC1i
ZWZvcmUtbG9hZC5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtbG9jYXRpb24t
MC1zZWNvbmRzLmh0bWwKLWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1sb2NhdGlvbi1h
c3NpZ24tMC1zZWNvbmRzLmh0bWwKLWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1sb2Nh
dGlvbi1hc3NpZ24tMi1zZWNvbmRzLmh0bWwKLWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1q
cy1sb2NhdGlvbi1hc3NpZ24tYmVmb3JlLWxvYWQuaHRtbAotaHR0cC90ZXN0cy9oaXN0b3J5L3Jl
ZGlyZWN0LWpzLWxvY2F0aW9uLWJlZm9yZS1sb2FkLmh0bWwKLWh0dHAvdGVzdHMvaGlzdG9yeS9y
ZWRpcmVjdC1qcy1sb2NhdGlvbi1ocmVmLTAtc2Vjb25kcy5odG1sCi1odHRwL3Rlc3RzL2hpc3Rv
cnkvcmVkaXJlY3QtanMtbG9jYXRpb24taHJlZi0yLXNlY29uZHMuaHRtbAotaHR0cC90ZXN0cy9o
aXN0b3J5L3JlZGlyZWN0LWpzLWxvY2F0aW9uLWhyZWYtYmVmb3JlLWxvYWQuaHRtbAotaHR0cC90
ZXN0cy9oaXN0b3J5L3JlZGlyZWN0LWpzLWxvY2F0aW9uLXJlcGxhY2UtMC1zZWNvbmRzLmh0bWwK
LWh0dHAvdGVzdHMvaGlzdG9yeS9yZWRpcmVjdC1qcy1sb2NhdGlvbi1yZXBsYWNlLTItc2Vjb25k
cy5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtbG9jYXRpb24tcmVwbGFjZS1i
ZWZvcmUtbG9hZC5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtbWV0YS1yZWZyZXNo
LTAtc2Vjb25kcy5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtbWV0YS1yZWZyZXNo
LTItc2Vjb25kcy5odG1sCi1odHRwL3Rlc3RzL2hpc3RvcnkvcmVkaXJlY3QtanMtZm9ybS1zdWJt
aXQtMi1zZWNvbmRzLmh0bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIHRvIHN1cHBvcnQg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZQogIyA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyMzI0PgogaHR0cC90ZXN0cy93ZWJhcmNoaXZl
L2Nyb3NzLW9yaWdpbi1zdHlsZXNoZWV0LWNyYXNoLmh0bWwK
</data>
<flag name="review"
          id="50771"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>