<?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>151807</bug_id>
          
          <creation_ts>2015-12-03 10:19:16 -0800</creation_ts>
          <short_desc>Add GetterRaisesExceptionWithMessage and SetterRaisesExceptionWithMessage to the code generator</short_desc>
          <delta_ts>2015-12-03 14:55:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>149117</blocked>
    
    <blocked>151731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1145947</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-03 10:19:16 -0800</bug_when>
    <thetext>Add GetterRaisesExceptionWithMessage and SetterRaisesExceptionWithMessage to the code generator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145952</commentid>
    <comment_count>1</comment_count>
      <attachid>266536</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-03 10:33:01 -0800</bug_when>
    <thetext>Created attachment 266536
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145953</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-12-03 10:34:25 -0800</bug_when>
    <thetext>Attachment 266536 did not pass style-queue:


ERROR: Source/WebCore/dom/ExceptionCode.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:64:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/dom/ExceptionCode.h:65:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
Total errors found: 22 in 10 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>1145955</commentid>
    <comment_count>3</comment_count>
      <attachid>266536</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-12-03 10:43:10 -0800</bug_when>
    <thetext>Comment on attachment 266536
Patch v1

View in context: https://bugs.webkit.org/attachment.cgi?id=266536&amp;action=review

r=me

&gt; Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:2875
&gt; +            die &quot;RaisesException and RaisesExceptionWithMessage are mutually exclusive&quot; if $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;RaisesException&quot;} &amp;&amp; $function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;RaisesExceptionWithMessage&quot;};

You could define $raisesExceptionWithMessage and $raisesExceptionWithoutMessage, die if both, then $raisesException = $raisesExceptionWithMessage || $raisesExceptionWithoutMessage.  This would reduce duplicate calls to $function-&gt;signature-&gt;extendedAttributes-&gt;{...} but it would add another variable.
Fine either way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1145963</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-12-03 10:54:15 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/193101</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266536</attachid>
            <date>2015-12-03 10:33:01 -0800</date>
            <delta_ts>2015-12-03 10:43:10 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>44462</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4YzBkNzUzLi4yYmIxYjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTIg
QEAKKzIwMTUtMTItMDMgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIEFkZCBHZXR0ZXJSYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSBhbmQgU2V0dGVyUmFpc2Vz
RXhjZXB0aW9uV2l0aE1lc3NhZ2UgdG8gdGhlIGNvZGUgZ2VuZXJhdG9yLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxODA3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChDb3ZlcmVk
IGJ5IGNoYW5nZXMgdG8gZXhpc3RpbmcgYmluZGluZ3MgdGVzdHMpLgorCisgICAgICAgIFdoaWxl
IHdlJ3JlIGF0IGl0LCByZXdvcmsgdGhlIGV4aXN0aW5nICdSYWlzZXNFeGNlcHRpb25XaXRoTWVz
c2FnZScgY29uY2VwdCB0byB1c2UgYSBzdHJ1Y3QgaW5zdGVhZCBvZgorICAgICAgICB0d28gc2Vw
YXJhdGUgdmFyaWFibGVzIHRvIHJlZHVjZSBjb21wbGV4aXR5LgorICAgICAgICAKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRl
SW1wbGVtZW50YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0aW9u
Q2FsbCk6CisgICAgICAgIChHZW5lcmF0ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChHZW5lcmF0ZVJl
dHVyblBhcmFtZXRlcnMpOiBEZWxldGVkLgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcDoKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X3Byb3BlcnR5KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5p
dCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9hdHRyX3dpdGhfZ2V0dGVyX2V4
Y2VwdGlvbl93aXRoX21lc3NhZ2UpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X29ial9zZXRf
YXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2Fn
ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfc2V0dGVyX2V4
Y2VwdGlvbl93aXRoX21lc3NhZ2UpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTVRlc3RPYmouaDoKKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpqc1Rlc3RP
YmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6
OmpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6c2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldp
dGhNZXNzYWdlKToKKyAgICAgICAgKFdlYkNvcmU6OmpzVGVzdE9ialByb3RvdHlwZUZ1bmN0aW9u
TWV0aG9kV2l0aEV4Y2VwdGlvbldpdGhNZXNzYWdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLmg6CisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW06CisgICAgICAgICgtW0RPTVRlc3RPYmog
YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZV0pOgorICAgICAgICAoLVtET01UZXN0
T2JqIHNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2U6XSk6CisgICAgICAgICgt
W0RPTVRlc3RPYmogYXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZV0pOgorICAgICAg
ICAoLVtET01UZXN0T2JqIHNldEF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2U6XSk6
CisgICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbDoK
KyAgICAgICAgCisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoKKwogMjAxNS0xMi0wMiAg
QW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSBSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIgdG8gV2ViS2l0MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCA2Mzk0OWI3Li5kMDQxNGM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtMjI4MSw3ICsyMjgxLDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAkY29kZUdlbmVyYXRvci0+QXNzZXJ0Tm90U2VxdWVuY2VUeXBlKCR0eXBlKTsKICAg
ICAgICAgICAgIG15ICRnZXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVHZXR0ZXJOYW1lKCRp
bnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAgICAg
ICAgICAgIG15ICRpbXBsR2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldLX2xj
Zmlyc3QoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVt
ZW50ZWRBcyJ9IHx8ICRuYW1lKTsKLSAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRpb25zID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2V0dGVyUmFpc2Vz
RXhjZXB0aW9uIn07CisgICAgICAgICAgICBteSAkZ2V0dGVyRXhjZXB0aW9uc1dpdGhNZXNzYWdl
ID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2V0dGVyUmFp
c2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UifTsKKyAgICAgICAgICAgIG15ICRnZXR0ZXJFeGNlcHRp
b25zID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2V0dGVy
UmFpc2VzRXhjZXB0aW9uIn0gfHwgJGdldHRlckV4Y2VwdGlvbnNXaXRoTWVzc2FnZTsKKworICAg
ICAgICAgICAgaWYgKCRnZXR0ZXJFeGNlcHRpb25zKSB7CisgICAgICAgICAgICAgICAgJGltcGxJ
bmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOworICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2Vu
ZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5zaWduYXR1cmUpOwogICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZ31c
biIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsKQEAgLTIzMTUsNyArMjMyMCwxMSBA
QCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgQGFyZ3VtZW50cyA9
ICgpOwogICAgICAgICAgICAgaWYgKCRnZXR0ZXJFeGNlcHRpb25zICYmICFIYXNDdXN0b21HZXR0
ZXIoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMpKSB7CiAgICAgICAg
ICAgICAgICAgcHVzaChAYXJndW1lbnRzLCAiZWMiKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAg
ICAgIGlmICgkZ2V0dGVyRXhjZXB0aW9uc1dpdGhNZXNzYWdlKSB7CisgICAgICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSBlYztc
biIpOworICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAjIEdsb2JhbCBjb25zdHJ1Y3Rv
cnMgY2FuIGJlIGRpc2FibGVkIGF0IHJ1bnRpbWUuCkBAIC0yMzU5LDcgKzIzNjgsNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAgICAgICAgICAgbXkgJG5hdGl2ZVR5cGUg
PSBHZXROYXRpdmVUeXBlKCR0eXBlKTsKICAgICAgICAgICAgICAgICBteSAkbWVtb2l6ZWRUeXBl
ID0gR2V0TmF0aXZlVHlwZUZvck1lbW9pemF0aW9uKCR0eXBlKTsKLSAgICAgICAgICAgICAgICBt
eSAkZXhjZXB0aW9uQ29kZSA9ICRnZXR0ZXJFeGNlcHRpb25zID8gImVjIiA6ICIwIjsKKyAgICAg
ICAgICAgICAgICBteSAkZXhjZXB0aW9uQ29kZSA9ICRnZXR0ZXJFeGNlcHRpb25zV2l0aE1lc3Nh
Z2UgPyAiZWMuY29kZSIgOiAoJGdldHRlckV4Y2VwdGlvbnMgPyAiZWMiIDogIjAiKTsKICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Y29uc3QgQXRvbWljU3RyaW5nPiBiaW5kaW5nTmFtZShcIiRpbnRlcmZhY2VOYW1lLiRuYW1lXCIs
IEF0b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpO1xuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKGN1cnNvci5pc0NhcHR1cmluZygpKSB7XG4i
KTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgJG1lbW9pemVk
VHlwZSBtZW1vaXplZFJlc3VsdCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKS4kaW1wbEdldHRlckZ1
bmN0aW9uTmFtZSgiIC4gam9pbigiLCAiLCBAYXJndW1lbnRzKSAuICIpO1xuIik7CkBAIC0yNDA4
LDcgKzI0MTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAg
ICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlMiIC4gJGNvbnN0cnVjdG9yVHlwZSAuICIuaCIsICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbmRpdGlvbmFsIn0p
OwogICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjpnZXRDb25zdHJ1Y3Rvcihz
dGF0ZS0+dm0oKSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0KCkpKTtcbiIpOwogICAgICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIH0gZWxzaWYgKCEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJHZXR0ZXJSYWlzZXNFeGNlcHRpb24ifSkgeworICAgICAgICAg
ICAgfSBlbHNpZiAoISRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkdldHRlclJhaXNlc0V4Y2VwdGlvbiJ9ICYmICEkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+eyJHZXR0ZXJSYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSJ9KSB7CiAg
ICAgICAgICAgICAgICAgbXkgJGNhY2hlSW5kZXggPSAwOwogICAgICAgICAgICAgICAgIGlmICgk
YXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNoZWRBdHRyaWJ1
dGUifSkgewogICAgICAgICAgICAgICAgICAgICAkY2FjaGVJbmRleCA9ICRjdXJyZW50Q2FjaGVk
QXR0cmlidXRlOwpAQCAtMjYwNiw3ICsyNjE1LDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0
aW9uCiAgICAgICAgICAgICBteSAkdHlwZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+dHlwZTsK
ICAgICAgICAgICAgIG15ICRwdXRGdW5jdGlvbk5hbWUgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1l
KCRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkaW50ZXJmYWNlLCAkYXR0cmlidXRlKTsKICAg
ICAgICAgICAgIG15ICRpbXBsU2V0dGVyRnVuY3Rpb25OYW1lID0gJGNvZGVHZW5lcmF0b3ItPldL
X3VjZmlyc3QoJG5hbWUpOwotICAgICAgICAgICAgbXkgJHNldHRlclJhaXNlc0V4Y2VwdGlvbiA9
ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlNldHRlclJhaXNl
c0V4Y2VwdGlvbiJ9OworICAgICAgICAgICAgbXkgJHNldHRlclJhaXNlc0V4Y2VwdGlvbldpdGhN
ZXNzYWdlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU2V0
dGVyUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UifTsKKyAgICAgICAgICAgIG15ICRzZXR0ZXJS
YWlzZXNFeGNlcHRpb24gPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJTZXR0ZXJSYWlzZXNFeGNlcHRpb24ifSB8fCAkc2V0dGVyUmFpc2VzRXhjZXB0aW9uV2l0
aE1lc3NhZ2U7CisKKyAgICAgICAgICAgIGlmICgkc2V0dGVyUmFpc2VzRXhjZXB0aW9uKSB7Cisg
ICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siRXhjZXB0aW9uQ29kZS5oIn0gPSAxOworICAg
ICAgICAgICAgfQogCiAgICAgICAgICAgICBteSAkYXR0cmlidXRlQ29uZGl0aW9uYWxTdHJpbmcg
PSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRpb25hbFN0cmluZygkYXR0cmlidXRlLT5z
aWduYXR1cmUpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYgJHthdHRyaWJ1
dGVDb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRhdHRyaWJ1dGVDb25kaXRpb25hbFN0cmluZzsK
QEAgLTI3MDIsNyArMjcxNiwxMSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byYgaW1wbCA9IGNh
c3RlZFRoaXMtPndyYXBwZWQoKTtcbiIpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgJHNldHRlclJhaXNlc0V4Y2VwdGlvbjsKKyAgICAgICAg
ICAgICAgICBpZiAoJHNldHRlclJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlKSB7CisgICAgICAg
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGVXaXRoTWVz
c2FnZSBlYztcbiIpOworICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRzZXR0ZXJSYWlzZXNFeGNl
cHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhj
ZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKKyAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAg
ICAgICAjIElmIHRoZSAiU3RyaWN0VHlwZUNoZWNraW5nIiBleHRlbmRlZCBhdHRyaWJ1dGUgaXMg
cHJlc2VudCwgYW5kIHRoZSBhdHRyaWJ1dGUncyB0eXBlIGlzIGFuCiAgICAgICAgICAgICAgICAg
IyBpbnRlcmZhY2UgdHlwZSwgdGhlbiBpZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3QgaW1w
bGVtZW50IHRoYXQgaW50ZXJmYWNlLCBhIFR5cGVFcnJvcgpAQCAtMjc2MCw3ICsyNzc4LDEwIEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24oc3RhdGUsIGVjKTtcbiIpIGlmICRz
ZXR0ZXJSYWlzZXNFeGNlcHRpb247CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAg
IGlmICgkc2V0dGVyUmFpc2VzRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoJHNldHRlclJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlKSB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFlYy5jb2RlKVxuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGlt
cGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYg
KCRzZXR0ZXJSYWlzZXNFeGNlcHRpb24pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWVjKVxuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGltcGwuY29tbWl0Q2hhbmdlKCk7
XG4iKTsKICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CkBAIC0yODUwLDkgKzI4NzEs
MTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KIAogICAgICAgICAgICAgbXkgJGlzQ3Vz
dG9tID0gSGFzQ3VzdG9tTWV0aG9kKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICAgICAgbXkgJGlzT3ZlcmxvYWRlZCA9ICRmdW5jdGlvbi0+e292ZXJs
b2Fkc30gJiYgQHskZnVuY3Rpb24tPntvdmVybG9hZHN9fSA+IDE7Ci0gICAgICAgICAgICBteSAk
cmFpc2VzRXhjZXB0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJSYWlzZXNFeGNlcHRpb24ifTsKKworICAgICAgICAgICAgZGllICJSYWlzZXNFeGNlcHRp
b24gYW5kIFJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlIGFyZSBtdXR1YWxseSBleGNsdXNpdmUi
IGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhj
ZXB0aW9uIn0gJiYgJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJS
YWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSJ9OworCiAgICAgICAgICAgICBteSAkcmFpc2VzRXhj
ZXB0aW9uV2l0aE1lc3NhZ2UgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlIn07Ci0gICAgICAgICAgICBkaWUgIlJh
aXNlc0V4Y2VwdGlvbiBhbmQgUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UgYXJlIG11dHVhbGx5
IGV4Y2x1c2l2ZSIgaWYgJHJhaXNlc0V4Y2VwdGlvbiAmJiAkcmFpc2VzRXhjZXB0aW9uV2l0aE1l
c3NhZ2U7CisgICAgICAgICAgICBteSAkcmFpc2VzRXhjZXB0aW9uID0gJGZ1bmN0aW9uLT5zaWdu
YXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSYWlzZXNFeGNlcHRpb24ifSB8fCAkcmFpc2Vz
RXhjZXB0aW9uV2l0aE1lc3NhZ2U7CiAKICAgICAgICAgICAgIG5leHQgaWYgJGlzQ3VzdG9tICYm
ICRpc092ZXJsb2FkZWQgJiYgJGZ1bmN0aW9uLT57b3ZlcmxvYWRJbmRleH0gPiAxOwogCkBAIC0y
OTA0LDggKzI5MjcsMTEgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50
Q2hlY2soXEBpbXBsQ29udGVudCwgJGZ1bmN0aW9uLCAkaW50ZXJmYWNlKTsKIAotICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtc
biIpIGlmICRyYWlzZXNFeGNlcHRpb24gfHwgJHJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlOwot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBTdHJpbmcgZXhjZXB0
aW9uTWVzc2FnZTtcbiIpIGlmICRyYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKCRyYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgRXhjZXB0aW9uQ29kZVdpdGhN
ZXNzYWdlIGVjO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRyYWlzZXNFeGNl
cHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7CisgICAgICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJhbWV0
ZXJzfTsKICAgICAgICAgICAgICAgICAgICAgbXkgKCRmdW5jdGlvblN0cmluZywgJGR1bW15KSA9
IEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKFxAaW1wbENvbnRlbnQsICRmdW5jdGlvbiwgJGludGVy
ZmFjZSwgJG51bVBhcmFtZXRlcnMsICRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb25JbXBsZW1lbnRh
dGlvbk5hbWUsICRzdmdQcm9wZXJ0eVR5cGUsICRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlw
ZSwgJHN2Z0xpc3RQcm9wZXJ0eVR5cGUpOwpAQCAtMjk0MSwxMSArMjk2NywxNCBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAg
ICAgICAgICAgICAgICAgICAgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKFxAaW1wbENvbnRl
bnQsICRmdW5jdGlvbiwgJGludGVyZmFjZSk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIikgaWYgJHJhaXNl
c0V4Y2VwdGlvbiB8fCAkcmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2U7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBTdHJpbmcgZXhjZXB0aW9uTWVzc2Fn
ZTtcbiIpIGlmICRyYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkcmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBFeGNlcHRpb25Db2RlV2l0aE1l
c3NhZ2UgZWM7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzaWYgKCRyYWlzZXNF
eGNlcHRpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICBFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1NlY3VyaXR5Rm9yTm9kZSJ9KSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFzaG91bGRB
bGxvd0FjY2Vzc1RvTm9kZShzdGF0ZSwgaW1wbC4iIC4gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWUgLiAiKCIgLiAoJHJhaXNlc0V4Y2VwdGlvbiA/ICJlYyIgOiAkcmFpc2VzRXhjZXB0aW9uV2l0
aE1lc3NhZ2UgPyAiZWMsIGV4Y2VwdGlvbk1lc3NhZ2UiIDogIiIpIC4iKSkpXG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIXNob3Vs
ZEFsbG93QWNjZXNzVG9Ob2RlKHN0YXRlLCBpbXBsLiIgLiAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+
bmFtZSAuICIoIiAuICgkcmFpc2VzRXhjZXB0aW9uID8gImVjIiA6ICIiKSAuIikpKVxuIik7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJGltcGxJbmNsdWRlc3siSlNET01CaW5kaW5nLmgifSA9IDE7CiAgICAgICAgICAg
ICAgICAgICAgICAgICB9CkBAIC0zMjkyLDggKzMzMjEsNiBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0
ZXJzQ2hlY2sKIAogICAgIG15ICRhcmdzSW5kZXggPSAwOwogICAgIG15ICRoYXNPcHRpb25hbEFy
Z3VtZW50cyA9IDA7Ci0gICAgbXkgJHJhaXNlc0V4Y2VwdGlvbiA9ICRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uIn07Ci0gICAgbXkgJHJh
aXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJSYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSJ9OwogCiAgICAgbXkgJGNs
YXNzTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgQGFyZ3VtZW50czsKQEAgLTM1Mzks
NyArMzU2Niw2IEBAIHN1YiBHZW5lcmF0ZVJldHVyblBhcmFtZXRlcnMKIAogICAgIHB1c2goQGFy
Z3VtZW50cywgIkRlZmVycmVkV3JhcHBlcihzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIHByb21pc2VEZWZlcnJlZCkiKSBpZiBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9uKTsK
ICAgICBwdXNoKEBhcmd1bWVudHMsICJlYyIpIGlmICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uIn0gfHwgJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSJ9Owot
ICAgIHB1c2goQGFyZ3VtZW50cywgImV4Y2VwdGlvbk1lc3NhZ2UiKSBpZiAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdl
In07CiAgICAgcmV0dXJuIEBhcmd1bWVudHM7CiB9CiAKQEAgLTM4MjEsOCArMzg0Nyw4IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKICAgICBteSAkaW50ZXJmYWNl
TmFtZSA9IHNoaWZ0OwogCiAgICAgbXkgJG5vbmRldGVybWluaXN0aWMgPSAkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik5vbmRldGVybWluaXN0aWMifTsKLSAgICBt
eSAkcmFpc2VzRXhjZXB0aW9uID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJSYWlzZXNFeGNlcHRpb24ifTsKICAgICBteSAkcmFpc2VzRXhjZXB0aW9uV2l0aE1l
c3NhZ2UgPSAkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJhaXNl
c0V4Y2VwdGlvbldpdGhNZXNzYWdlIn07CisgICAgbXkgJHJhaXNlc0V4Y2VwdGlvbiA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uIn0g
fHwgJHJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlOwogCiAgICAgaWYgKCRmdW5jdGlvbi0+c2ln
bmF0dXJlLT50eXBlIGVxICJ2b2lkIiB8fCBJc1JldHVybmluZ1Byb21pc2UoJGZ1bmN0aW9uKSkg
ewogICAgICAgICBpZiAoJG5vbmRldGVybWluaXN0aWMpIHsKQEAgLTM4MzIsMjIgKzM4NTgsMjIg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFjdXJzb3IuaXNSZXBsYXlpbmcoKSkg
e1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIgICAgJGZ1
bmN0aW9uU3RyaW5nO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVu
dCAuICIgICAgc2V0RE9NRXhjZXB0aW9uKHN0YXRlLCBlYyk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0
aW9uOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiICAgIHNldERP
TUV4Y2VwdGlvbihzdGF0ZSwgZWMsIGV4Y2VwdGlvbk1lc3NhZ2UpO1xuIikgaWYgJHJhaXNlc0V4
Y2VwdGlvbldpdGhNZXNzYWdlOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRl
bnQgLiAifVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbHNlXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIiRmdW5jdGlvblN0cmlu
ZztcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9N
RXhjZXB0aW9uKHN0YXRlLCBlYyk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uOwotICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAic2V0RE9NRXhjZXB0aW9uKHN0YXRlLCBl
YywgZXhjZXB0aW9uTWVzc2FnZSk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2U7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIik7CiAgICAgICAgIH0g
ZWxzZSB7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIkZnVuY3Rp
b25TdHJpbmc7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4g
InNldERPTUV4Y2VwdGlvbihzdGF0ZSwgZWMpO1xuIikgaWYgJHJhaXNlc0V4Y2VwdGlvbjsKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInNldERPTUV4Y2VwdGlvbihz
dGF0ZSwgZWMsIGV4Y2VwdGlvbk1lc3NhZ2UpO1xuIikgaWYgJHJhaXNlc0V4Y2VwdGlvbldpdGhN
ZXNzYWdlOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUgYW5kICEk
ZnVuY3Rpb24tPmlzU3RhdGljKSB7Ci0gICAgICAgICAgICBpZiAoJHJhaXNlc0V4Y2VwdGlvbiB8
fCAkcmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UpIHsKLSAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgJGluZGVudCAuICJpZiAoIWVjKVxuIik7IAorICAgICAgICAgICAgaWYgKCRy
YWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZSkgeworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAkaW5kZW50IC4gImlmICghZWMuY29kZSlcbiIpOworICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIiAgICBpbXBsLmNvbW1pdENoYW5nZSgpO1xuIik7
CisgICAgICAgICAgICB9IGVsc2lmICgkcmFpc2VzRXhjZXB0aW9uKSB7CisgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiaWYgKCFlYylcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIiAgICBpbXBsLmNvbW1pdENoYW5n
ZSgpO1xuIik7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAkaW5kZW50IC4gImltcGwuY29tbWl0Q2hhbmdlKCk7XG4iKTsKQEAgLTM4NzEs
NyArMzg5Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uRnVuY3Rpb25DYWxsKCkKICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gInN0YXRpYyBOZXZlckRlc3Ry
b3llZDxjb25zdCBBdG9taWNTdHJpbmc+IGJpbmRpbmdOYW1lKFwiJGJpbmRpbmdOYW1lXCIsIEF0
b21pY1N0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgJGluZGVudCAuICJpZiAoY3Vyc29yLmlzQ2FwdHVyaW5nKCkpIHtcbiIp
OwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiICAgICRuYXRpdmVU
eXBlIG1lbW9pemVkUmVzdWx0ID0gJGZ1bmN0aW9uU3RyaW5nO1xuIik7Ci0gICAgICAgICAgICBt
eSAkZXhjZXB0aW9uQ29kZSA9ICRyYWlzZXNFeGNlcHRpb24gfHwgJHJhaXNlc0V4Y2VwdGlvbldp
dGhNZXNzYWdlID8gImVjIiA6ICIwIjsKKyAgICAgICAgICAgIG15ICRleGNlcHRpb25Db2RlID0g
JHJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlID8gImVjLmNvZGUiIDogKCRyYWlzZXNFeGNlcHRp
b24gPyAiZWMiIDogIjAiKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50
IC4gIiAgICBjdXJzb3IuYXBwZW5kSW5wdXQ8TWVtb2l6ZWRET01SZXN1bHQ8JG1lbW9pemVkVHlw
ZT4+KGJpbmRpbmdOYW1lLmdldCgpLnN0cmluZygpLCBtZW1vaXplZFJlc3VsdCwgJGV4Y2VwdGlv
bkNvZGUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICIg
ICAgcmVzdWx0ID0gIiAuIE5hdGl2ZVRvSlNWYWx1ZSgkZnVuY3Rpb24tPnNpZ25hdHVyZSwgMSwg
JGludGVyZmFjZU5hbWUsICJtZW1vaXplZFJlc3VsdCIsICR0aGlzT2JqZWN0KSAuICI7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIn0gZWxzZSBpZiAoY3Vy
c29yLmlzUmVwbGF5aW5nKCkpIHtcbiIpOwpAQCAtMzg4MCw3ICszOTA2LDggQEAgc3ViIEdlbmVy
YXRlSW1wbGVtZW50YXRpb25GdW5jdGlvbkNhbGwoKQogICAgICAgICAgICAgIyBGSVhNRTogdGhl
IGdlbmVyYXRlZCBjb2RlIHNob3VsZCByZXBvcnQgYW4gZXJyb3IgaWYgYW4gaW5wdXQgY2Fubm90
IGJlIGZldGNoZWQgb3IgY29udmVydGVkLgogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICRpbmRlbnQgLiAiICAgIGlmIChpbnB1dCAmJiBpbnB1dC0+Y29udmVydFRvPCRtZW1vaXplZFR5
cGU+KG1lbW9pemVkUmVzdWx0KSkge1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgJGluZGVudCAuICIgICAgICAgIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0
aW9uLT5zaWduYXR1cmUsIDEsICRpbnRlcmZhY2VOYW1lLCAibWVtb2l6ZWRSZXN1bHQiLCAkdGhp
c09iamVjdCkgLiAiO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVu
dCAuICIgICAgICAgIGVjID0gaW5wdXQtPmV4Y2VwdGlvbkNvZGUoKTtcbiIpIGlmICRyYWlzZXNF
eGNlcHRpb24gfHwgJHJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAiICAgICAgICBlYy5jb2RlID0gaW5wdXQtPmV4Y2Vw
dGlvbkNvZGUoKTtcbiIpIGlmICRyYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIiAgICAgICAgZWMgPSBpbnB1dC0+ZXhj
ZXB0aW9uQ29kZSgpO1xuIikgaWYgJHJhaXNlc0V4Y2VwdGlvbiAmJiAhJHJhaXNlc0V4Y2VwdGlv
bldpdGhNZXNzYWdlOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICRpbmRlbnQgLiAi
ICAgIH0gZWxzZVxuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAu
ICIgICAgICAgIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWduYXR1
cmUsIDEsICRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb25TdHJpbmcsICR0aGlzT2JqZWN0KSAuICI7
XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAkaW5kZW50IC4gIn0gZWxzZVxu
Iik7CkBAIC0zODkyLDcgKzM5MTksNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbkZ1bmN0
aW9uQ2FsbCgpCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgJGluZGVudCAuICJKU1Zh
bHVlIHJlc3VsdCA9ICIgLiBOYXRpdmVUb0pTVmFsdWUoJGZ1bmN0aW9uLT5zaWduYXR1cmUsIDEs
ICRpbnRlcmZhY2VOYW1lLCAkZnVuY3Rpb25TdHJpbmcsICR0aGlzT2JqZWN0KSAuICI7XG4iKTsK
ICAgICAgICAgfQogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuICRpbmRlbnQgLiAi
c2V0RE9NRXhjZXB0aW9uKHN0YXRlLCBlYyk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uOwotICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIlxuIiAuICRpbmRlbnQgLiAic2V0RE9NRXhjZXB0aW9u
KHN0YXRlLCBlYywgZXhjZXB0aW9uTWVzc2FnZSk7XG4iKSBpZiAkcmFpc2VzRXhjZXB0aW9uV2l0
aE1lc3NhZ2U7CiAKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5FeHRlbmRlZEF0dHJpYnV0
ZUNvbnRhaW5zKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fs
bFdpdGgifSwgIlNjcmlwdFN0YXRlIikpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAkaW5kZW50IC4gImlmIChVTkxJS0VMWShzdGF0ZS0+aGFkRXhjZXB0aW9uKCkpKVxuIik7CkBA
IC00Nzk4LDggKzQ4MjQsMTEgQEAgRU5ECiAKICAgICAgICAgICAgIGlmICgkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJhaXNlc0V4Y2VwdGlvbiJ9IHx8ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uV2l0
aE1lc3NhZ2UifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24ifSkgewogICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkV4
Y2VwdGlvbkNvZGUuaCJ9ID0gMTsKLSAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgU3RyaW5nIGV4Y2VwdGlvbk1lc3NhZ2U7XG4iKSBpZiAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJhaXNlc0V4Y2VwdGlvbldpdGhN
ZXNzYWdlIn07CisgICAgICAgICAgICAgICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UifSkgeworICAgICAg
ICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgRXhjZXB0aW9uQ29kZVdpdGhN
ZXNzYWdlIGVjO1xuIik7CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwO1xuIik7
CisgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAjIEZJWE1F
OiBGb3Igbm93LCB3ZSBkbyBub3Qgc3VwcG9ydCBTVkcgY29uc3RydWN0b3JzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggNDc5
NWIxMC4uNjU2OTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CkBAIC02NSw2ICs2NSw3IEBAIEV2ZW50VGFyZ2V0CiBGb3J3YXJk
RGVjbGFyZUluSGVhZGVyCiBHZW5lcmF0ZUlzUmVhY2hhYmxlPXxJbXBsfEltcGxXZWJHTFJlbmRl
cmluZ0NvbnRleHR8SW1wbERvY3VtZW50fEltcGxFbGVtZW50Um9vdHxJbXBsRnJhbWV8SW1wbE93
bmVyTm9kZVJvb3QKIEdldHRlclJhaXNlc0V4Y2VwdGlvbgorR2V0dGVyUmFpc2VzRXhjZXB0aW9u
V2l0aE1lc3NhZ2UKIEdsb2JhbENvbnRleHQ9RE9NV2luZG93fFdvcmtlckdsb2JhbFNjb3BlfERl
ZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlCiBJbW11dGFibGUKIEltcGxlbWVudGF0aW9uTGFja3NW
VGFibGUKQEAgLTExMiw2ICsxMTMsNyBAQCBSZXBsYWNlYWJsZUNvbnN0cnVjdG9yCiBSZXBvcnRF
eHRyYU1lbW9yeUNvc3QKIFJlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmcKIFNldHRlclJhaXNl
c0V4Y2VwdGlvbgorU2V0dGVyUmFpc2VzRXhjZXB0aW9uV2l0aE1lc3NhZ2UKIFNldHRlckNhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENh
bGxTdGFja3xBY3RpdmVXaW5kb3d8Rmlyc3RXaW5kb3cKIFNraXBWVGFibGVWYWxpZGF0aW9uCiBT
dHJpY3RUeXBlQ2hlY2tpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKaW5kZXgg
ODY4NTBkOS4uNzYyMTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAg
LTEwMiw3ICsxMDIsOSBAQCBlbnVtIHsKICAgICBQUk9QX1JFRkxFQ1RFRF9DVVNUT01fQk9PTEVB
Tl9BVFRSLAogICAgIFBST1BfUkVGTEVDVEVEX0NVU1RPTV9VUkxfQVRUUiwKICAgICBQUk9QX0FU
VFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OLAorICAgIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENF
UFRJT05fV0lUSF9NRVNTQUdFLAogICAgIFBST1BfQVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT04s
CisgICAgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTl9XSVRIX01FU1NBR0UsCiAgICAg
UFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT04sCiAgICAgUFJPUF9TVFJJTkdf
QVRUUl9XSVRIX1NFVFRFUl9FWENFUFRJT04sCiAgICAgUFJPUF9TVFJJQ1RfVFlQRV9DSEVDS0lO
R19BVFRSSUJVVEUsCkBAIC0yMTEsOSArMjEzLDE1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9vYmpfc2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcGVydHlJZCwK
ICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046CiAgICAgICAgIHdlYmtp
dF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKHNlbGYsIGdfdmFs
dWVfZ2V0X2xvbmcodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FUVFJf
V0lUSF9HRVRURVJfRVhDRVBUSU9OX1dJVEhfTUVTU0FHRToKKyAgICAgICAgd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKHNlbGYs
IGdfdmFsdWVfZ2V0X2xvbmcodmFsdWUpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9Q
X0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9OOgogICAgICAgICB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X3NldF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbihzZWxmLCBnX3ZhbHVlX2dldF9sb25nKHZh
bHVlKSwgbnVsbHB0cik7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgUFJPUF9BVFRSX1dJVEhf
U0VUVEVSX0VYQ0VQVElPTl9XSVRIX01FU1NBR0U6CisgICAgICAgIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShzZWxmLCBnX3Zh
bHVlX2dldF9sb25nKHZhbHVlKSk7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgUFJPUF9TVFJJ
TkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046CiAgICAgICAgIHdlYmtpdF9kb21fdGVzdF9v
Ympfc2V0X3N0cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihzZWxmLCBnX3ZhbHVlX2dl
dF9zdHJpbmcodmFsdWUpKTsKICAgICAgICAgYnJlYWs7CkBAIC0zMjcsOSArMzM1LDE1IEBAIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcGVydHlJZCwKICAgICBjYXNlIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENF
UFRJT046CiAgICAgICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIHdlYmtpdF9kb21fdGVzdF9v
YmpfZ2V0X2F0dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uKHNlbGYsIG51bGxwdHIpKTsKICAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OX1dJVEhf
TUVTU0FHRToKKyAgICAgICAgZ192YWx1ZV9zZXRfbG9uZyh2YWx1ZSwgd2Via2l0X2RvbV90ZXN0
X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKHNlbGYpKTsK
KyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQUk9QX0FUVFJfV0lUSF9TRVRURVJfRVhDRVBUSU9O
OgogICAgICAgICBnX3ZhbHVlX3NldF9sb25nKHZhbHVlLCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9hdHRyX3dpdGhfc2V0dGVyX2V4Y2VwdGlvbihzZWxmKSk7CiAgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElPTl9XSVRIX01FU1NBR0U6CisgICAg
ICAgIGdfdmFsdWVfc2V0X2xvbmcodmFsdWUsIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJf
d2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShzZWxmKSk7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgUFJPUF9TVFJJTkdfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT046CiAgICAg
ICAgIGdfdmFsdWVfdGFrZV9zdHJpbmcodmFsdWUsIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3N0
cmluZ19hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihzZWxmLCBudWxscHRyKSk7CiAgICAgICAg
IGJyZWFrOwpAQCAtNzAwLDYgKzcxNCwxNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rf
b2JqX2NsYXNzX2luaXQoV2ViS2l0RE9NVGVzdE9iakNsYXNzKiByZXF1ZXN0Q2xhc3MpCiAKICAg
ICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KAogICAgICAgICBnb2JqZWN0Q2xhc3Ms
CisgICAgICAgIFBST1BfQVRUUl9XSVRIX0dFVFRFUl9FWENFUFRJT05fV0lUSF9NRVNTQUdFLAor
ICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygKKyAgICAgICAgICAgICJhdHRyLXdpdGgtZ2V0dGVy
LWV4Y2VwdGlvbi13aXRoLW1lc3NhZ2UiLAorICAgICAgICAgICAgIlRlc3RPYmo6YXR0ci13aXRo
LWdldHRlci1leGNlcHRpb24td2l0aC1tZXNzYWdlIiwKKyAgICAgICAgICAgICJyZWFkLXdyaXRl
IGdsb25nIFRlc3RPYmo6YXR0ci13aXRoLWdldHRlci1leGNlcHRpb24td2l0aC1tZXNzYWdlIiwK
KyAgICAgICAgICAgIEdfTUlOTE9ORywgR19NQVhMT05HLCAwLAorICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURXUklURSkpOworCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0
eSgKKyAgICAgICAgZ29iamVjdENsYXNzLAogICAgICAgICBQUk9QX0FUVFJfV0lUSF9TRVRURVJf
RVhDRVBUSU9OLAogICAgICAgICBnX3BhcmFtX3NwZWNfbG9uZygKICAgICAgICAgICAgICJhdHRy
LXdpdGgtc2V0dGVyLWV4Y2VwdGlvbiIsCkBAIC03MTAsNiArNzM0LDE2IEBAIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0T2JqQ2xhc3MqIHJl
cXVlc3RDbGFzcykKIAogICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCiAgICAg
ICAgIGdvYmplY3RDbGFzcywKKyAgICAgICAgUFJPUF9BVFRSX1dJVEhfU0VUVEVSX0VYQ0VQVElP
Tl9XSVRIX01FU1NBR0UsCisgICAgICAgIGdfcGFyYW1fc3BlY19sb25nKAorICAgICAgICAgICAg
ImF0dHItd2l0aC1zZXR0ZXItZXhjZXB0aW9uLXdpdGgtbWVzc2FnZSIsCisgICAgICAgICAgICAi
VGVzdE9iajphdHRyLXdpdGgtc2V0dGVyLWV4Y2VwdGlvbi13aXRoLW1lc3NhZ2UiLAorICAgICAg
ICAgICAgInJlYWQtd3JpdGUgZ2xvbmcgVGVzdE9iajphdHRyLXdpdGgtc2V0dGVyLWV4Y2VwdGlv
bi13aXRoLW1lc3NhZ2UiLAorICAgICAgICAgICAgR19NSU5MT05HLCBHX01BWExPTkcsIDAsCisg
ICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CisKKyAgICBnX29iamVjdF9jbGFz
c19pbnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnb2JqZWN0Q2xhc3MsCiAgICAgICAgIFBST1Bf
U1RSSU5HX0FUVFJfV0lUSF9HRVRURVJfRVhDRVBUSU9OLAogICAgICAgICBnX3BhcmFtX3NwZWNf
c3RyaW5nKAogICAgICAgICAgICAgInN0cmluZy1hdHRyLXdpdGgtZ2V0dGVyLWV4Y2VwdGlvbiIs
CkBAIC0xOTk3LDYgKzIwMzEsMjMgQEAgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRy
X3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01UZXN0T2JqKiBzZWxmLAogICAgIGl0ZW0t
PnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKHZhbHVlKTsKIH0KIAorZ2xvbmcgd2Via2l0X2Rv
bV90ZXN0X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKFdl
YktpdERPTVRlc3RPYmoqIHNlbGYpCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9ET01fSVNfVEVTVF9P
Qkooc2VsZiksIDApOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNvcmUo
c2VsZik7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+YXR0cldpdGhHZXR0ZXJFeGNlcHRpb25X
aXRoTWVzc2FnZSgpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgd2Via2l0X2RvbV90
ZXN0X29ial9zZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKFdlYktp
dERPTVRlc3RPYmoqIHNlbGYsIGdsb25nIHZhbHVlKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9ET01fSVNf
VEVTVF9PQkooc2VsZikpOworICAgIFdlYkNvcmU6OlRlc3RPYmoqIGl0ZW0gPSBXZWJLaXQ6OmNv
cmUoc2VsZik7CisgICAgaXRlbS0+c2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2Fn
ZSh2YWx1ZSk7Cit9CisKIGdsb25nIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X2F0dHJfd2l0aF9z
ZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYpCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwpAQCAtMjAyMCw2ICsyMDcxLDIzIEBAIHZvaWQg
d2Via2l0X2RvbV90ZXN0X29ial9zZXRfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb24oV2ViS2l0
RE9NVGVzdE9iaiogc2VsZiwKICAgICB9CiB9CiAKK2dsb25nIHdlYmtpdF9kb21fdGVzdF9vYmpf
Z2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShXZWJLaXRET01UZXN0
T2JqKiBzZWxmKQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNlbGYpLCAw
KTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOworICAg
IGdsb25nIHJlc3VsdCA9IGl0ZW0tPmF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2Uo
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0
X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShXZWJLaXRET01UZXN0T2Jq
KiBzZWxmLCBnbG9uZyB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNl
bGYpKTsKKyAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3JlKHNlbGYpOwor
ICAgIGl0ZW0tPnNldEF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UodmFsdWUpOwor
fQorCiBnY2hhciogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0dHJfd2l0aF9nZXR0
ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIEdFcnJvcioqIGVycm9yKQogewog
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RPYmouaAppbmRleCAzZmUwNzQ5Li4wYWMwMzllIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCkBAIC0xMTI0LDYgKzExMjQsMjcgQEAgV0VCS0lUX0FQSSB2b2lkCiB3ZWJr
aXRfZG9tX3Rlc3Rfb2JqX3NldF9hdHRyX3dpdGhfZ2V0dGVyX2V4Y2VwdGlvbihXZWJLaXRET01U
ZXN0T2JqKiBzZWxmLCBnbG9uZyB2YWx1ZSk7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlOgorICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIFN0
YWJpbGl0eTogVW5zdGFibGUKKyoqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0
X29ial9nZXRfYXR0cl93aXRoX2dldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJf
d2l0aF9nZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZToKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKiBAdmFsdWU6IEEgI2dsb25nCisgKgorICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0
aF9nZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfYXR0cl93aXRo
X3NldHRlcl9leGNlcHRpb246CiAgKiBAc2VsZjogQSAjV2ViS2l0RE9NVGVzdE9iagogICoKQEAg
LTExNDYsNiArMTE2NywyNyBAQCBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF9kb21fdGVzdF9vYmpf
c2V0X2F0dHJfd2l0aF9zZXR0ZXJfZXhjZXB0aW9uKFdlYktpdERPTVRlc3RPYmoqIHNlbGYsIGds
b25nIHZhbHVlLCBHRXJyb3IqKiBlcnJvcik7CiAKIC8qKgorICogd2Via2l0X2RvbV90ZXN0X29i
al9nZXRfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlOgorICogQHNlbGY6
IEEgI1dlYktpdERPTVRlc3RPYmoKKyAqCisgKiBSZXR1cm5zOiBBICNnbG9uZworICoKKyAqIFN0
YWJpbGl0eTogVW5zdGFibGUKKyoqLworV0VCS0lUX0FQSSBnbG9uZword2Via2l0X2RvbV90ZXN0
X29ial9nZXRfYXR0cl93aXRoX3NldHRlcl9leGNlcHRpb25fd2l0aF9tZXNzYWdlKFdlYktpdERP
TVRlc3RPYmoqIHNlbGYpOworCisvKioKKyAqIHdlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJf
d2l0aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZToKKyAqIEBzZWxmOiBBICNXZWJLaXRE
T01UZXN0T2JqCisgKiBAdmFsdWU6IEEgI2dsb25nCisgKgorICogU3RhYmlsaXR5OiBVbnN0YWJs
ZQorKiovCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF9kb21fdGVzdF9vYmpfc2V0X2F0dHJfd2l0
aF9zZXR0ZXJfZXhjZXB0aW9uX3dpdGhfbWVzc2FnZShXZWJLaXRET01UZXN0T2JqKiBzZWxmLCBn
bG9uZyB2YWx1ZSk7CisKKy8qKgogICogd2Via2l0X2RvbV90ZXN0X29ial9nZXRfc3RyaW5nX2F0
dHJfd2l0aF9nZXR0ZXJfZXhjZXB0aW9uOgogICogQHNlbGY6IEEgI1dlYktpdERPTVRlc3RPYmoK
ICAqIEBlcnJvcjogI0dFcnJvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAppbmRleCA4ZDA3NmRmLi5lYWU4MWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcApAQCAtMjM3LDggKzIzNywxMiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9i
alR5cGVkQXJyYXlBdHRyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQwogdm9p
ZCBzZXRKU1Rlc3RPYmpUeXBlZEFycmF5QXR0cihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmpl
Y3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5h
bWUpOwogdm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNT
dGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRK
U1ZhbHVlKTsKK0pTQzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNl
cHRpb25XaXRoTWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVu
Y29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Cit2b2lkIHNldEpTVGVzdE9iakF0dHJX
aXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CiBKU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uKEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlO
YW1lKTsKIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb24oSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVk
SlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVyRXhj
ZXB0aW9uV2l0aE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkpTT2JqZWN0KiwgSlNDOjpF
bmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwordm9pZCBzZXRKU1Rlc3RPYmpBdHRy
V2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09i
amVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdldHRlckV4Y2VwdGlvbihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3QqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlBy
b3BlcnR5TmFtZSk7CiB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIEpTQzo6RW5jb2RlZEpTVmFsdWUs
IEpTQzo6RW5jb2RlZEpTVmFsdWUpOwogSlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpTdHJp
bmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CkBAIC01MTEsNyArNTE1
LDkgQEAgc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdE9ialByb3RvdHlwZVRhYmxl
VmFsdWVzW10gPQogICAgIHsgInJlZmxlY3RlZEN1c3RvbVVSTEF0dHIiLCBDdXN0b21BY2Nlc3Nv
ciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0
VmFsdWVGdW5jPihqc1Rlc3RPYmpSZWZsZWN0ZWRDdXN0b21VUkxBdHRyKSwgKGludHB0cl90KSBz
dGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUmVm
bGVjdGVkQ3VzdG9tVVJMQXR0cikgfSB9LAogICAgIHsgInR5cGVkQXJyYXlBdHRyIiwgQ3VzdG9t
QWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqVHlwZWRBcnJheUF0dHIpLCAoaW50cHRyX3QpIHN0
YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpUeXBl
ZEFycmF5QXR0cikgfSB9LAogICAgIHsgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgQ3VzdG9t
QWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNs
b3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50
cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rl
c3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbikgfSB9LAorICAgIHsgImF0dHJXaXRoR2V0dGVy
RXhjZXB0aW9uV2l0aE1lc3NhZ2UiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGlu
dHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpB
dHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKSwgKGludHB0cl90KSBzdGF0aWNfY2Fz
dDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb25XaXRoTWVzc2FnZSkgfSB9LAogICAgIHsgImF0dHJXaXRoU2V0dGVyRXhjZXB0
aW9uIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNl
cHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVG
dW5jPihzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSB9LAorICAgIHsgImF0
dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRy
aW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5j
Pihqc1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlKSwgKGludHB0cl90
KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2Jq
QXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZSkgfSB9LAogICAgIHsgInN0cmluZ0F0
dHJXaXRoR2V0dGVyRXhjZXB0aW9uIiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChp
bnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2Jq
U3RyaW5nQXR0cldpdGhHZXR0ZXJFeGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1
dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aEdl
dHRlckV4Y2VwdGlvbikgfSB9LAogICAgIHsgInN0cmluZ0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
IiwgQ3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQ
cm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqU3RyaW5nQXR0cldpdGhTZXR0ZXJF
eGNlcHRpb24pLCAoaW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFs
dWVGdW5jPihzZXRKU1Rlc3RPYmpTdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbikgfSB9LAog
ICAgIHsgInN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBOb0lu
dHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1
bmM+KGpzVGVzdE9ialN0cmljdFR5cGVDaGVja2luZ0F0dHJpYnV0ZSksIChpbnRwdHJfdCkgc3Rh
dGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdE9ialN0cmlj
dFR5cGVDaGVja2luZ0F0dHJpYnV0ZSkgfSB9LApAQCAtMTI0OCw2ICsxMjU0LDI1IEBAIEVuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3Rh
dGUsIEpTT2JqZWN0KiBzbG90CiB9CiAKIAorRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldp
dGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQoreworICAg
IFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHNsb3RCYXNlKTsKKyAgICBV
TlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKKyAgICBKU1Rlc3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5
bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKKyAgICBp
ZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CisgICAgICAgIGlmIChqc0R5bmFtaWNDYXN0PEpT
VGVzdE9ialByb3RvdHlwZSo+KHNsb3RCYXNlKSkKKyAgICAgICAgICAgIHJldHVybiByZXBvcnRE
ZXByZWNhdGVkR2V0dGVyRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJhdHRyV2l0aEdldHRlckV4
Y2VwdGlvbldpdGhNZXNzYWdlIik7CisgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2Ui
KTsKKyAgICB9CisgICAgRXhjZXB0aW9uQ29kZVdpdGhNZXNzYWdlIGVjOworICAgIGF1dG8mIGlt
cGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJl
cihpbXBsLmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoZWMpKTsKKyAgICBzZXRE
T01FeGNlcHRpb24oc3RhdGUsIGVjKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKHJlc3Vs
dCk7Cit9CisKKwogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRp
b24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwpAQCAt
MTI2NSw2ICsxMjkwLDIzIEBAIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakF0dHJXaXRoU2V0dGVy
RXhjZXB0aW9uKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG90CiB9CiAKIAorRW5jb2Rl
ZEpTVmFsdWUganNUZXN0T2JqQXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShFeGVj
U3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdEJhc2UsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1
ZSwgUHJvcGVydHlOYW1lKQoreworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgVU5VU0VE
X1BBUkFNKHNsb3RCYXNlKTsKKyAgICBVTlVTRURfUEFSQU0odGhpc1ZhbHVlKTsKKyAgICBKU1Rl
c3RPYmoqIGNhc3RlZFRoaXMgPSBqc0R5bmFtaWNDYXN0PEpTVGVzdE9iaio+KEpTVmFsdWU6OmRl
Y29kZSh0aGlzVmFsdWUpKTsKKyAgICBpZiAoVU5MSUtFTFkoIWNhc3RlZFRoaXMpKSB7CisgICAg
ICAgIGlmIChqc0R5bmFtaWNDYXN0PEpTVGVzdE9ialByb3RvdHlwZSo+KHNsb3RCYXNlKSkKKyAg
ICAgICAgICAgIHJldHVybiByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoKnN0YXRlLCAiVGVz
dE9iaiIsICJhdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlIik7CisgICAgICAgIHJl
dHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoU2V0
dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UiKTsKKyAgICB9CisgICAgYXV0byYgaW1wbCA9IGNhc3Rl
ZFRoaXMtPndyYXBwZWQoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwuYXR0
cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZSgpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7Cit9CisKKwogRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5nQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIHNsb3RCYXNl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKIHsKICAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwpAQCAtMjQ4MSw2ICsyNTIzLDI2IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0
cldpdGhHZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmpl
Y3QsCiB9CiAKIAordm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhN
ZXNzYWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNW
YWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBKU1Zh
bHVlIHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BB
UkFNKGJhc2VPYmplY3QpOworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nh
c3Q8SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGlmIChVTkxJ
S0VMWSghY2FzdGVkVGhpcykpIHsKKyAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2Jq
UHJvdG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQorICAgICAgICAgICAgcmVw
b3J0RGVwcmVjYXRlZFNldHRlckVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiYXR0cldpdGhHZXR0
ZXJFeGNlcHRpb25XaXRoTWVzc2FnZSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aHJv
d1NldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoR2V0dGVyRXhjZXB0
aW9uV2l0aE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhdXRvJiBpbXBs
ID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIGludCBuYXRpdmVWYWx1ZSA9IHRvSW50MzIo
c3RhdGUsIHZhbHVlLCBOb3JtYWxDb252ZXJzaW9uKTsKKyAgICBpZiAoVU5MSUtFTFkoc3RhdGUt
PmhhZEV4Y2VwdGlvbigpKSkKKyAgICAgICAgcmV0dXJuOworICAgIGltcGwuc2V0QXR0cldpdGhH
ZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShuYXRpdmVWYWx1ZSk7Cit9CisKKwogdm9pZCBzZXRK
U1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbihFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVj
dCogYmFzZU9iamVjdCwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBl
bmNvZGVkVmFsdWUpCiB7CiAgICAgSlNWYWx1ZSB2YWx1ZSA9IEpTVmFsdWU6OmRlY29kZShlbmNv
ZGVkVmFsdWUpOwpAQCAtMjUwMyw2ICsyNTY1LDI4IEBAIHZvaWQgc2V0SlNUZXN0T2JqQXR0cldp
dGhTZXR0ZXJFeGNlcHRpb24oRXhlY1N0YXRlKiBzdGF0ZSwgSlNPYmplY3QqIGJhc2VPYmplY3Qs
CiB9CiAKIAordm9pZCBzZXRKU1Rlc3RPYmpBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNz
YWdlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKK3sKKyAgICBKU1ZhbHVl
IHZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CisgICAgVU5VU0VEX1BBUkFN
KGJhc2VPYmplY3QpOworICAgIEpTVGVzdE9iaiogY2FzdGVkVGhpcyA9IGpzRHluYW1pY0Nhc3Q8
SlNUZXN0T2JqKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOworICAgIGlmIChVTkxJS0VM
WSghY2FzdGVkVGhpcykpIHsKKyAgICAgICAgaWYgKGpzRHluYW1pY0Nhc3Q8SlNUZXN0T2JqUHJv
dG90eXBlKj4oSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpKQorICAgICAgICAgICAgcmVwb3J0
RGVwcmVjYXRlZFNldHRlckVycm9yKCpzdGF0ZSwgIlRlc3RPYmoiLCAiYXR0cldpdGhTZXR0ZXJF
eGNlcHRpb25XaXRoTWVzc2FnZSIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICB0aHJvd1Nl
dHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgImF0dHJXaXRoU2V0dGVyRXhjZXB0aW9u
V2l0aE1lc3NhZ2UiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBhdXRvJiBpbXBsID0g
Y2FzdGVkVGhpcy0+d3JhcHBlZCgpOworICAgIEV4Y2VwdGlvbkNvZGVXaXRoTWVzc2FnZSBlYzsK
KyAgICBpbnQgbmF0aXZlVmFsdWUgPSB0b0ludDMyKHN0YXRlLCB2YWx1ZSwgTm9ybWFsQ29udmVy
c2lvbik7CisgICAgaWYgKFVOTElLRUxZKHN0YXRlLT5oYWRFeGNlcHRpb24oKSkpCisgICAgICAg
IHJldHVybjsKKyAgICBpbXBsLnNldEF0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2Uo
bmF0aXZlVmFsdWUsIGVjKTsKKyAgICBzZXRET01FeGNlcHRpb24oc3RhdGUsIGVjKTsKK30KKwor
CiB2b2lkIHNldEpTVGVzdE9ialN0cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKEV4ZWNTdGF0
ZSogc3RhdGUsIEpTT2JqZWN0KiBiYXNlT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUs
IEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKIHsKICAgICBKU1ZhbHVlIHZhbHVlID0gSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSk7CkBAIC0zNDkyLDEwICszNTc2LDkgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RPYmpQcm90b3R5cGVGdW5jdGlvbk1ldGhvZFdp
dGhFeGNlcHRpb25XaXRoTWUKICAgICAgICAgcmV0dXJuIHRocm93VGhpc1R5cGVFcnJvcigqc3Rh
dGUsICJUZXN0T2JqIiwgIm1ldGhvZFdpdGhFeGNlcHRpb25XaXRoTWVzc2FnZSIpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMoY2FzdGVkVGhpcywgSlNUZXN0T2JqOjppbmZvKCkpOwog
ICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgRXhjZXB0aW9uQ29k
ZSBlYyA9IDA7Ci0gICAgU3RyaW5nIGV4Y2VwdGlvbk1lc3NhZ2U7Ci0gICAgaW1wbC5tZXRob2RX
aXRoRXhjZXB0aW9uV2l0aE1lc3NhZ2UoZWMsIGV4Y2VwdGlvbk1lc3NhZ2UpOwotICAgIHNldERP
TUV4Y2VwdGlvbihzdGF0ZSwgZWMsIGV4Y2VwdGlvbk1lc3NhZ2UpOworICAgIEV4Y2VwdGlvbkNv
ZGVXaXRoTWVzc2FnZSBlYzsKKyAgICBpbXBsLm1ldGhvZFdpdGhFeGNlcHRpb25XaXRoTWVzc2Fn
ZShlYyk7CisgICAgc2V0RE9NRXhjZXB0aW9uKHN0YXRlLCBlYyk7CiAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5oCmluZGV4IGVjOTUxOGQu
LmI4YzY4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9PYmpDL0RPTVRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvT2JqQy9ET01UZXN0T2JqLmgKQEAgLTg1LDcgKzg1LDkgQEAgV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01UZXN0T2JqIDogRE9NT2JqZWN0CiBAcHJvcGVydHkgQk9PTCByZWZsZWN0
ZWRDdXN0b21Cb29sZWFuQXR0cjsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnJlZmxlY3Rl
ZEN1c3RvbVVSTEF0dHI7CiBAcHJvcGVydHkgaW50IGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOwor
QHByb3BlcnR5IGludCBhdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlOwogQHByb3Bl
cnR5IGludCBhdHRyV2l0aFNldHRlckV4Y2VwdGlvbjsKK0Bwcm9wZXJ0eSBpbnQgYXR0cldpdGhT
ZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZTsKIEBwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKnN0
cmluZ0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uOwogQHByb3BlcnR5IChjb3B5KSBOU1N0cmluZyAq
c3RyaW5nQXR0cldpdGhTZXR0ZXJFeGNlcHRpb247CiBAcHJvcGVydHkgKHN0cm9uZykgRE9NVGVz
dE9iaiAqc3RyaWN0VHlwZUNoZWNraW5nQXR0cmlidXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggNTAz
ZTU3NC4uYTI4N2YxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvT2JqQy9ET01UZXN0T2JqLm1tCkBAIC0zODEsNiArMzgxLDE4IEBAIC0gKHZv
aWQpc2V0QXR0cldpdGhHZXR0ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbgogICAgIElNUEwtPnNldEF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uKG5ld0F0dHJXaXRoR2V0
dGVyRXhjZXB0aW9uKTsKIH0KIAorLSAoaW50KWF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1l
c3NhZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UoKTsKK30KKwor
LSAodm9pZClzZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlOihpbnQpbmV3QXR0
cldpdGhHZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zZXRBdHRyV2l0aEdldHRlckV4Y2VwdGlv
bldpdGhNZXNzYWdlKG5ld0F0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UpOworfQor
CiAtIChpbnQpYXR0cldpdGhTZXR0ZXJFeGNlcHRpb24KIHsKICAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CkBAIC0zOTUsNiArNDA3LDE4IEBAIC0gKHZvaWQpc2V0QXR0
cldpdGhTZXR0ZXJFeGNlcHRpb246KGludCluZXdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbgogICAg
IFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CiB9CiAKKy0gKGludClhdHRyV2l0aFNldHRl
ckV4Y2VwdGlvbldpdGhNZXNzYWdlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5hdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhN
ZXNzYWdlKCk7Cit9CisKKy0gKHZvaWQpc2V0QXR0cldpdGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVz
c2FnZTooaW50KW5ld0F0dHJXaXRoU2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2UKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0QXR0cldp
dGhTZXR0ZXJFeGNlcHRpb25XaXRoTWVzc2FnZShuZXdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbldp
dGhNZXNzYWdlKTsKK30KKwogLSAoTlNTdHJpbmcgKilzdHJpbmdBdHRyV2l0aEdldHRlckV4Y2Vw
dGlvbgogewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAppbmRleCBl
NzhlODI2Li4wYjU4YWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC0xMDYsNyArMTA2LDkgQEAgZW51bSBfb3B0aW9uYWwgeyAi
IiwgIk9wdGlvbmFsVmFsdWUxIiwgIk9wdGlvbmFsVmFsdWUyIiwgIk9wdGlvbmFsVmFsdWUzIiB9
OwogICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgbWV0aG9kV2l0aEV4Y2VwdGlvbigpOwogICAg
IFtSYWlzZXNFeGNlcHRpb25XaXRoTWVzc2FnZV0gdm9pZCBtZXRob2RXaXRoRXhjZXB0aW9uV2l0
aE1lc3NhZ2UoKTsKICAgICBbR2V0dGVyUmFpc2VzRXhjZXB0aW9uXSBhdHRyaWJ1dGUgbG9uZyBh
dHRyV2l0aEdldHRlckV4Y2VwdGlvbjsKKyAgICBbR2V0dGVyUmFpc2VzRXhjZXB0aW9uV2l0aE1l
c3NhZ2VdIGF0dHJpYnV0ZSBsb25nIGF0dHJXaXRoR2V0dGVyRXhjZXB0aW9uV2l0aE1lc3NhZ2U7
CiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIGxvbmcgYXR0cldpdGhTZXR0
ZXJFeGNlcHRpb247CisgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbldpdGhNZXNzYWdlXSBhdHRy
aWJ1dGUgbG9uZyBhdHRyV2l0aFNldHRlckV4Y2VwdGlvbldpdGhNZXNzYWdlOwogICAgIFtHZXR0
ZXJSYWlzZXNFeGNlcHRpb25dIGF0dHJpYnV0ZSBET01TdHJpbmcgc3RyaW5nQXR0cldpdGhHZXR0
ZXJFeGNlcHRpb247CiAgICAgW1NldHRlclJhaXNlc0V4Y2VwdGlvbl0gYXR0cmlidXRlIERPTVN0
cmluZyBzdHJpbmdBdHRyV2l0aFNldHRlckV4Y2VwdGlvbjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNvZGUuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRp
b25Db2RlLmgKaW5kZXggNDMyNWI4My4uYTY1YmIwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0V4Y2VwdGlvbkNvZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9u
Q29kZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqICBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNywgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCkBAIC0xOSw1NCArMTksNjEgQEAKICNpZm5kZWYgRXhjZXB0aW9uQ29kZV9oCiAjZGVm
aW5lIEV4Y2VwdGlvbkNvZGVfaAogCisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIFRoZSBET00gc3RhbmRhcmRzIHVzZSB1bnNp
Z25lZCBzaG9ydCBmb3IgZXhjZXB0aW9uIGNvZGVzLgotICAgIC8vIEluIG91ciBET00gaW1wbGVt
ZW50YXRpb24gd2UgdXNlIGludCBpbnN0ZWFkLCBhbmQgdXNlIGRpZmZlcmVudAotICAgIC8vIG51
bWVyaWNhbCByYW5nZXMgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBET00gZXhjZXB0aW9uLCBzbyB0
aGF0Ci0gICAgLy8gYW4gZXhjZXB0aW9uIG9mIGFueSB0eXBlIGNhbiBiZSBleHByZXNzZWQgd2l0
aCBhIHNpbmdsZSBpbnRlZ2VyLgotICAgIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CisvLyBU
aGUgRE9NIHN0YW5kYXJkcyB1c2UgdW5zaWduZWQgc2hvcnQgZm9yIGV4Y2VwdGlvbiBjb2Rlcy4K
Ky8vIEluIG91ciBET00gaW1wbGVtZW50YXRpb24gd2UgdXNlIGludCBpbnN0ZWFkLCBhbmQgdXNl
IGRpZmZlcmVudAorLy8gbnVtZXJpY2FsIHJhbmdlcyBmb3IgZGlmZmVyZW50IHR5cGVzIG9mIERP
TSBleGNlcHRpb24sIHNvIHRoYXQKKy8vIGFuIGV4Y2VwdGlvbiBvZiBhbnkgdHlwZSBjYW4gYmUg
ZXhwcmVzc2VkIHdpdGggYSBzaW5nbGUgaW50ZWdlci4KK3R5cGVkZWYgaW50IEV4Y2VwdGlvbkNv
ZGU7CisKIAorLy8gU29tZSBvZiB0aGVzZSBhcmUgY29uc2lkZXJlZCBoaXN0b3JpY2FsIHNpbmNl
IHRoZXkgaGF2ZSBiZWVuCisvLyBjaGFuZ2VkIG9yIHJlbW92ZWQgZnJvbSB0aGUgc3BlY2lmaWNh
dGlvbnMuCitlbnVtIHsKKyAgICBJTkRFWF9TSVpFX0VSUiA9IDEsCisgICAgSElFUkFSQ0hZX1JF
UVVFU1RfRVJSID0gMywKKyAgICBXUk9OR19ET0NVTUVOVF9FUlIgPSA0LAorICAgIElOVkFMSURf
Q0hBUkFDVEVSX0VSUiA9IDUsCisgICAgTk9fTU9ESUZJQ0FUSU9OX0FMTE9XRURfRVJSID0gNywK
KyAgICBOT1RfRk9VTkRfRVJSID0gOCwKKyAgICBOT1RfU1VQUE9SVEVEX0VSUiA9IDksCisgICAg
SU5VU0VfQVRUUklCVVRFX0VSUiA9IDEwLCAvLyBIaXN0b3JpY2FsLiBPbmx5IHVzZWQgaW4gc2V0
QXR0cmlidXRlTm9kZSBldGMgd2hpY2ggaGF2ZSBiZWVuIHJlbW92ZWQgZnJvbSB0aGUgRE9NIHNw
ZWNzLgogCi0gICAgLy8gU29tZSBvZiB0aGVzZSBhcmUgY29uc2lkZXJlZCBoaXN0b3JpY2FsIHNp
bmNlIHRoZXkgaGF2ZSBiZWVuCi0gICAgLy8gY2hhbmdlZCBvciByZW1vdmVkIGZyb20gdGhlIHNw
ZWNpZmljYXRpb25zLgotICAgIGVudW0gewotICAgICAgICBJTkRFWF9TSVpFX0VSUiA9IDEsCi0g
ICAgICAgIEhJRVJBUkNIWV9SRVFVRVNUX0VSUiA9IDMsCi0gICAgICAgIFdST05HX0RPQ1VNRU5U
X0VSUiA9IDQsCi0gICAgICAgIElOVkFMSURfQ0hBUkFDVEVSX0VSUiA9IDUsCi0gICAgICAgIE5P
X01PRElGSUNBVElPTl9BTExPV0VEX0VSUiA9IDcsCi0gICAgICAgIE5PVF9GT1VORF9FUlIgPSA4
LAotICAgICAgICBOT1RfU1VQUE9SVEVEX0VSUiA9IDksCi0gICAgICAgIElOVVNFX0FUVFJJQlVU
RV9FUlIgPSAxMCwgLy8gSGlzdG9yaWNhbC4gT25seSB1c2VkIGluIHNldEF0dHJpYnV0ZU5vZGUg
ZXRjIHdoaWNoIGhhdmUgYmVlbiByZW1vdmVkIGZyb20gdGhlIERPTSBzcGVjcy4KKyAgICAvLyBJ
bnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgorICAgIElOVkFMSURfU1RBVEVfRVJSID0gMTEsCisg
ICAgU1lOVEFYX0VSUiA9IDEyLAorICAgIElOVkFMSURfTU9ESUZJQ0FUSU9OX0VSUiA9IDEzLAor
ICAgIE5BTUVTUEFDRV9FUlIgPSAxNCwKKyAgICBJTlZBTElEX0FDQ0VTU19FUlIgPSAxNSwKIAot
ICAgICAgICAvLyBJbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAyOgotICAgICAgICBJTlZBTElEX1NU
QVRFX0VSUiA9IDExLAotICAgICAgICBTWU5UQVhfRVJSID0gMTIsCi0gICAgICAgIElOVkFMSURf
TU9ESUZJQ0FUSU9OX0VSUiA9IDEzLAotICAgICAgICBOQU1FU1BBQ0VfRVJSID0gMTQsCi0gICAg
ICAgIElOVkFMSURfQUNDRVNTX0VSUiA9IDE1LAorICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExl
dmVsIDM6CisgICAgVFlQRV9NSVNNQVRDSF9FUlIgPSAxNywgLy8gSGlzdG9yaWNhbDsgdXNlIFR5
cGVFcnJvciBpbnN0ZWFkCiAKLSAgICAgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMzoK
LSAgICAgICAgVFlQRV9NSVNNQVRDSF9FUlIgPSAxNywgLy8gSGlzdG9yaWNhbDsgdXNlIFR5cGVF
cnJvciBpbnN0ZWFkCisgICAgLy8gWE1MSHR0cFJlcXVlc3QgZXh0ZW5zaW9uOgorICAgIFNFQ1VS
SVRZX0VSUiA9IDE4LAogCi0gICAgICAgIC8vIFhNTEh0dHBSZXF1ZXN0IGV4dGVuc2lvbjoKLSAg
ICAgICAgU0VDVVJJVFlfRVJSID0gMTgsCisgICAgLy8gT3RoZXJzIGludHJvZHVjZWQgaW4gSFRN
TDU6CisgICAgTkVUV09SS19FUlIgPSAxOSwKKyAgICBBQk9SVF9FUlIgPSAyMCwKKyAgICBVUkxf
TUlTTUFUQ0hfRVJSID0gMjEsCisgICAgUVVPVEFfRVhDRUVERURfRVJSID0gMjIsCisgICAgVElN
RU9VVF9FUlIgPSAyMywKKyAgICBJTlZBTElEX05PREVfVFlQRV9FUlIgPSAyNCwKKyAgICBEQVRB
X0NMT05FX0VSUiA9IDI1LAogCi0gICAgICAgIC8vIE90aGVycyBpbnRyb2R1Y2VkIGluIEhUTUw1
OgotICAgICAgICBORVRXT1JLX0VSUiA9IDE5LAotICAgICAgICBBQk9SVF9FUlIgPSAyMCwKLSAg
ICAgICAgVVJMX01JU01BVENIX0VSUiA9IDIxLAotICAgICAgICBRVU9UQV9FWENFRURFRF9FUlIg
PSAyMiwKLSAgICAgICAgVElNRU9VVF9FUlIgPSAyMywKLSAgICAgICAgSU5WQUxJRF9OT0RFX1RZ
UEVfRVJSID0gMjQsCi0gICAgICAgIERBVEFfQ0xPTkVfRVJSID0gMjUsCisgICAgLy8gV2ViSURM
IGV4Y2VwdGlvbiB0eXBlcywgaGFuZGxlZCBieSB0aGUgYmluZGluZyBsYXllci4KKyAgICAvLyBG
SVhNRTogQWRkIEdlbmVyYWxFcnJvciwgRXZhbEVycm9yLCBldGMuIHdoZW4gaW1wbGVtZW50ZWQg
aW4gdGhlIGJpbmRpbmdzLgorICAgIFR5cGVFcnJvciA9IDEwNSwKKyAgICBSYW5nZUVycm9yID0g
MTA2LAorfTsKIAotICAgICAgICAvLyBXZWJJREwgZXhjZXB0aW9uIHR5cGVzLCBoYW5kbGVkIGJ5
IHRoZSBiaW5kaW5nIGxheWVyLgotICAgICAgICAvLyBGSVhNRTogQWRkIEdlbmVyYWxFcnJvciwg
RXZhbEVycm9yLCBldGMuIHdoZW4gaW1wbGVtZW50ZWQgaW4gdGhlIGJpbmRpbmdzLgotICAgICAg
ICBUeXBlRXJyb3IgPSAxMDUsCi0gICAgICAgIFJhbmdlRXJyb3IgPSAxMDYsCi0gICAgfTsKK3N0
cnVjdCBFeGNlcHRpb25Db2RlV2l0aE1lc3NhZ2UgeworICAgIEV4Y2VwdGlvbkNvZGUgY29kZSB7
IDAgfTsKKyAgICBTdHJpbmcgbWVzc2FnZTsKK307CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAo=
</data>
<flag name="review"
          id="291547"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>