<?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>217854</bug_id>
          
          <creation_ts>2020-10-16 16:19:11 -0700</creation_ts>
          <short_desc>Ensure %TypedArray% essential internal methods adhere to spec</short_desc>
          <delta_ts>2020-10-19 16:29:43 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=184749</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=217928</see_also>
          <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="Ross Kirsling">ross.kirsling</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>ashvayka</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>isol2</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1698813</commentid>
    <comment_count>0</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-16 16:19:11 -0700</bug_when>
    <thetext>Ensure %TypedArray% essential internal methods adhere to spec</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698816</commentid>
    <comment_count>1</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-16 16:20:15 -0700</bug_when>
    <thetext>*** Bug 184749 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698821</commentid>
    <comment_count>2</comment_count>
      <attachid>411629</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-16 16:42:11 -0700</bug_when>
    <thetext>Created attachment 411629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698844</commentid>
    <comment_count>3</comment_count>
      <attachid>411639</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-16 18:07:52 -0700</bug_when>
    <thetext>Created attachment 411639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698854</commentid>
    <comment_count>4</comment_count>
      <attachid>411639</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-16 18:59:00 -0700</bug_when>
    <thetext>Comment on attachment 411639
Patch

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

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:343
&gt; +    if (Optional&lt;uint32_t&gt; index = parseIndex(propertyName))
&gt; +        return getOwnPropertySlotByIndex(thisObject, globalObject, index.value(), slot);

Let&apos;s insert `static_assert(std::is_final_v&lt;JSGenericTypedArrayView&lt;Adaptor&gt;&gt;, &quot;getOwnPropertySlotByIndex must not be overridden&quot;)` to ensure that no derived classes are overriding getOwnPropertySlotByIndex.

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:359
&gt; +        return putByIndex(thisObject, globalObject, index.value(), value, slot.isStrictMode());

Ditto.

&gt; Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:420
&gt; +        return deletePropertyByIndex(thisObject, globalObject, index.value());

Ditto.

&gt; JSTests/test262/expectations.yaml:1266
&gt; +  strict mode: &apos;Test262Error: Expected a TypeError but got a Test262Error (Testing with Float64Array.)&apos;

What is the reason of getting these new errors?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698888</commentid>
    <comment_count>5</comment_count>
      <attachid>411639</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2020-10-16 20:37:41 -0700</bug_when>
    <thetext>Comment on attachment 411639
Patch

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

r=me with LayoutTests updates.
And can you check the correct semantics is right in LLInt, JIT, etc.&apos;s TypedArray fast paths?

&gt;&gt; JSTests/test262/expectations.yaml:1266
&gt;&gt; +  strict mode: &apos;Test262Error: Expected a TypeError but got a Test262Error (Testing with Float64Array.)&apos;
&gt; 
&gt; What is the reason of getting these new errors?

Discussed with Ross offline. They are test262&apos;s bugs and tracked right now https://github.com/tc39/test262/pull/2833.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698924</commentid>
    <comment_count>6</comment_count>
      <attachid>411658</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-17 00:50:20 -0700</bug_when>
    <thetext>Created attachment 411658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698931</commentid>
    <comment_count>7</comment_count>
      <attachid>411661</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-17 02:08:51 -0700</bug_when>
    <thetext>Created attachment 411661
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698935</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-17 02:59:33 -0700</bug_when>
    <thetext>Committed r268640: &lt;https://trac.webkit.org/changeset/268640&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411661.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1698936</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-17 03:00:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/70405764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699014</commentid>
    <comment_count>10</comment_count>
      <attachid>411683</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-17 15:55:38 -0700</bug_when>
    <thetext>Created attachment 411683
Unreviewed fix, for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699018</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-17 16:08:49 -0700</bug_when>
    <thetext>Whoops, it seems I made a late adjustment that broke a test262 test. Opened bug 217883 to have EWS verify that my fix doesn&apos;t affect layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699134</commentid>
    <comment_count>12</comment_count>
      <attachid>411661</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-10-18 14:32:50 -0700</bug_when>
    <thetext>Comment on attachment 411661
Patch for landing

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

&gt; Source/JavaScriptCore/builtins/TypedArrayPrototype.js:-197
&gt; -    function mergeSort(array, valueCount, comparator)

nit: When implementing r267514, I&apos;ve measured a 10-15% regression when using outer scope variables instead of parameters.
We might also want to make a change similar to r267827, possibly sharing a few functions?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1699157</commentid>
    <comment_count>13</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2020-10-18 16:20:41 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #12)
&gt; Comment on attachment 411661 [details]
&gt; Patch for landing
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=411661&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/builtins/TypedArrayPrototype.js:-197
&gt; &gt; -    function mergeSort(array, valueCount, comparator)
&gt; 
&gt; nit: When implementing r267514, I&apos;ve measured a 10-15% regression when using
&gt; outer scope variables instead of parameters.
&gt; We might also want to make a change similar to r267827, possibly sharing a
&gt; few functions?

Thanks, that&apos;s a great idea! I can look into this tomorrow.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411629</attachid>
            <date>2020-10-16 16:42:11 -0700</date>
            <delta_ts>2020-10-16 18:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217854-20201016164210.patch</filename>
            <type>text/plain</type>
            <size>44140</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGM4NTU1ODBmYjMzZGQ2MGRlNWM2ODA1MjYxYmM1OWVmZTI0MDM5Li41ODRiN2M2Yjk1OWVkYjNm
OWJmMjY5MGM3ODlmMmM2YjgyNzAzODMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwg
bWV0aG9kcyBhZGhlcmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRyZXNzZXMgaHR0cHM6Ly9naXRodWIuY29tL3Rj
MzkvZWNtYTI2Mi9wdWxsLzIxNjQsCisgICAgICAgIHdoaWNoIGFsaWducyBkZXRhY2hlZCBidWZm
ZXIgc2VtYW50aWNzIGluIHR5cGVkIGFycmF5cyB3aXRoIHdlYiByZWFsaXR5LgorCisgICAgICAg
IEluIHBhcnRpY3VsYXI6CisgICAgICAgIC0gW1tIYXNQcm9wZXJ0eV1dIG11c3Qgbm90IHRocm93
CisgICAgICAgIC0gSW50ZWdlckluZGV4ZWRFbGVtZW50R2V0IChpLmUuIFtbR2V0T3duUHJvcGVy
dHldXSBhbmQgW1tHZXRdXSkgbXVzdCBub3QgdGhyb3cKKyAgICAgICAgLSBJbnRlZ2VySW5kZXhl
ZEVsZW1lbnRTZXQgKGkuZS4gW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGFuZCBbW1NldF1dKSBtdXN0
IG5vdCB0aHJvdworICAgICAgICAtIEludGVnZXItaW5kZXhlZCBlbGVtZW50cyBtdXN0IGJlIFtb
Q29uZmlndXJhYmxlXV0gKHRvIGF2b2lkIGJyZWFraW5nIGEgW1tIYXNQcm9wZXJ0eV1dIGludmFy
aWFudCkKKyAgICAgICAgLSBbW0RlbGV0ZV1dIG11c3QgYmUgb3ZlcnJpZGRlbiB0byByZXR1cm4g
ZmFsc2UgZm9yIGludGVnZXItaW5kZXhlZCBlbGVtZW50cyAod2hpY2ggYXJlICpub3QqIGRlbGV0
YWJsZSkKKworICAgICAgICBUaGlzIHBhdGNoIGZ1cnRoZXJtb3JlIGVuc3VyZXMgdGhhdCBhbGwg
b2YgdGhlc2UgZXNzZW50aWFsIGludGVybmFsIG1ldGhvZHMgaGF2ZSBhIHNwZWMtcGVyZmVjdCBp
bXBsZW1lbnRhdGlvbi4KKworICAgICAgICAqIGJ1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUu
anM6CisgICAgICAgIChmaWxsKToKKyAgICAgICAgKHNvcnQpOgorICAgICAgICAqIHJ1bnRpbWUv
SlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaDoKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3SW5saW5lcy5oOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5
VmlldzxBZGFwdG9yPjo6c2V0KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpwdXQpOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNU
eXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVmaW5lT3duUHJvcGVydHkpOgorICAgICAgICAoSlND
OjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRlUHJvcGVydHkpOgorICAg
ICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleCk6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFk
YXB0b3I+OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgpOgorICAgICAgICAqIHJ1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0SW5saW5lcy5o
OgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KToKKyAgICAgICAgKEpT
Qzo6SlNPYmplY3Q6OmdldE5vbkluZGV4UHJvcGVydHlTbG90KToKKyAgICAgICAgKiBydW50aW1l
L0pTVHlwZWRBcnJheXMuY3BwOgorCiAyMDIwLTEwLTE0ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UgQHB1dEJ5VmFsRGlyZWN0IGluc3RlYWQg
b2YgQXJyYXkucHJvdG90eXBlLkBwdXNoIGluIGJ1aWx0LWlucwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5cGUuanMgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwppbmRleCA5Y2Rj
MzdhMzEzMzRjMjJjMTcxMWJmNDE0ZWZkZDY1NjZhNmVmMjQ2Li43NjIxM2MyNzk5MDU3ODUyOTc3
OGVmZWQwZjA0YzAyNThiMjljMDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qcwpAQCAtOTYsNiArOTYsOSBAQCBmdW5j
dGlvbiBmaWxsKHZhbHVlIC8qIFssIHN0YXJ0IFssIGVuZF1dICovKQogICAgIHZhciBzdGFydCA9
IEB0eXBlZEFycmF5Q2xhbXBBcmd1bWVudFRvU3RhcnRPckVuZChAYXJndW1lbnQoMSksIGxlbmd0
aCwgMCk7CiAgICAgdmFyIGVuZCA9IEB0eXBlZEFycmF5Q2xhbXBBcmd1bWVudFRvU3RhcnRPckVu
ZChAYXJndW1lbnQoMiksIGxlbmd0aCwgbGVuZ3RoKTsKIAorICAgIGlmIChAaXNOZXV0ZXJlZCh0
aGlzKSkKKyAgICAgICAgQHRocm93VHlwZUVycm9yKCJVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhh
cyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXciKTsKKwogICAgIGZvciAodmFyIGkgPSBzdGFy
dDsgaSA8IGVuZDsgaSsrKQogICAgICAgICB0aGlzW2ldID0gbnVtYmVyOwogICAgIHJldHVybiB0
aGlzOwpAQCAtMTc1LDcgKzE3OCwxNiBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAgICAg
ICAgIHJldHVybiBhIDwgYiA/IGEgOiBiOwogICAgIH0KIAotICAgIGZ1bmN0aW9uIG1lcmdlKGRz
dCwgc3JjLCBzcmNJbmRleCwgc3JjRW5kLCB3aWR0aCwgY29tcGFyYXRvcikKKyAgICB2YXIgY29t
cGFyZSA9IChhLCBiKSA9PiB7CisgICAgICAgIHZhciByZXN1bHQgPSBAdG9OdW1iZXIoY29tcGFy
YXRvcihhLCBiKSk7CisKKyAgICAgICAgaWYgKEBpc05ldXRlcmVkKHRoaXMpKQorICAgICAgICAg
ICAgQHRocm93VHlwZUVycm9yKCJVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFj
aGVkIGZyb20gdGhlIHZpZXciKTsKKworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH07CisK
KyAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwgd2lkdGgpCiAg
ICAgewogICAgICAgICB2YXIgbGVmdCA9IHNyY0luZGV4OwogICAgICAgICB2YXIgbGVmdEVuZCA9
IG1pbihsZWZ0ICsgd2lkdGgsIHNyY0VuZCk7CkBAIC0xODQsNyArMTk2LDcgQEAgZnVuY3Rpb24g
c29ydChjb21wYXJhdG9yKQogCiAgICAgICAgIGZvciAodmFyIGRzdEluZGV4ID0gbGVmdDsgZHN0
SW5kZXggPCByaWdodEVuZDsgKytkc3RJbmRleCkgewogICAgICAgICAgICAgaWYgKHJpZ2h0IDwg
cmlnaHRFbmQpIHsKLSAgICAgICAgICAgICAgICBpZiAobGVmdCA+PSBsZWZ0RW5kIHx8IGNvbXBh
cmF0b3Ioc3JjW3JpZ2h0XSwgc3JjW2xlZnRdKSA8IDApIHsKKyAgICAgICAgICAgICAgICBpZiAo
bGVmdCA+PSBsZWZ0RW5kIHx8IGNvbXBhcmUoc3JjW3JpZ2h0XSwgc3JjW2xlZnRdKSA8IDApIHsK
ICAgICAgICAgICAgICAgICAgICAgZHN0W2RzdEluZGV4XSA9IHNyY1tyaWdodCsrXTsKICAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQpAQCAtMTk0LDcgKzIw
Niw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgfQogICAgIH0KIAotICAg
IGZ1bmN0aW9uIG1lcmdlU29ydChhcnJheSwgdmFsdWVDb3VudCwgY29tcGFyYXRvcikKKyAgICBm
dW5jdGlvbiBtZXJnZVNvcnQoYXJyYXksIHZhbHVlQ291bnQpCiAgICAgewogICAgICAgICB2YXIg
YnVmZmVyID0gWyBdOwogICAgICAgICBidWZmZXIubGVuZ3RoID0gdmFsdWVDb3VudDsKQEAgLTIw
NCw3ICsyMTYsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAKICAgICAgICAgZm9yICh2
YXIgd2lkdGggPSAxOyB3aWR0aCA8IHZhbHVlQ291bnQ7IHdpZHRoICo9IDIpIHsKICAgICAgICAg
ICAgIGZvciAodmFyIHNyY0luZGV4ID0gMDsgc3JjSW5kZXggPCB2YWx1ZUNvdW50OyBzcmNJbmRl
eCArPSAyICogd2lkdGgpCi0gICAgICAgICAgICAgICAgbWVyZ2UoZHN0LCBzcmMsIHNyY0luZGV4
LCB2YWx1ZUNvdW50LCB3aWR0aCwgY29tcGFyYXRvcik7CisgICAgICAgICAgICAgICAgbWVyZ2Uo
ZHN0LCBzcmMsIHNyY0luZGV4LCB2YWx1ZUNvdW50LCB3aWR0aCk7CiAKICAgICAgICAgICAgIHZh
ciB0bXAgPSBzcmM7CiAgICAgICAgICAgICBzcmMgPSBkc3Q7CkBAIC0yMjUsNyArMjM3LDcgQEAg
ZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoY29t
cGFyYXRvciAhPT0gQHVuZGVmaW5lZCkKLSAgICAgICAgbWVyZ2VTb3J0KHRoaXMsIGxlbmd0aCwg
Y29tcGFyYXRvcik7CisgICAgICAgIG1lcmdlU29ydCh0aGlzLCBsZW5ndGgpOwogICAgIGVsc2UK
ICAgICAgICAgQHR5cGVkQXJyYXlTb3J0KHRoaXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXcuaAppbmRleCBhNWY3
N2IyNjczNTBkYWU4NmNhMmE0YjJmY2YyNTE2YjMyODBiYzQ0Li4wY2E2YzQzMjU4MTkyODc0NDBk
OWVjNzdkYmYxNDJjZDdlOWNkY2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3LmgKQEAgLTkwLDggKzkwLDYgQEAg
ZW51bSBjbGFzcyBDb3B5VHlwZSB7CiAKIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgdHlwZWRB
cnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZTsKIAotSlNDX0RFQ0xBUkVfQ1VT
VE9NX0dFVFRFUih0aHJvd05ldXRlcmVkVHlwZWRBcnJheVR5cGVFcnJvcik7Ci0KIHRlbXBsYXRl
PHR5cGVuYW1lIEFkYXB0b3I+CiBjbGFzcyBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyBmaW5hbCA6
IHB1YmxpYyBKU0FycmF5QnVmZmVyVmlldyB7CiBwdWJsaWM6CkBAIC0xNzMsMTIgKzE3MSw3IEBA
IHB1YmxpYzoKICAgICAgICAgdHlwZW5hbWUgQWRhcHRvcjo6VHlwZSB2YWx1ZSA9IHRvTmF0aXZl
RnJvbVZhbHVlPEFkYXB0b3I+KGdsb2JhbE9iamVjdCwganNWYWx1ZSk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKIAotICAgICAgICBpZiAoaXNOZXV0ZXJlZCgp
KSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0eXBl
ZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKLSAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChpID49IG1fbGVuZ3RoKQorICAg
ICAgICBpZiAoaXNOZXV0ZXJlZCgpIHx8IGkgPj0gbV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAgICAgc2V0SW5kZXhRdWlja2x5VG9OYXRpdmVWYWx1ZShpLCB2YWx1
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNU
eXBlZEFycmF5Vmlld0lubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCmluZGV4IDI2OTBkYTY5ZmY1YWIyZjA0ZmMx
OTNlOWU5NTQyMDkwNTZkNDAyZjMuLjc5MjFiMDliZTlhODkwNGRmNGNjZmE3NzFlMzhmZmQzYTFi
ODdlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJp
Y1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCkBAIC0zMDIsOCArMzAyLDExIEBA
IGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnNldCgKICAgICAgICAgICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGZhbHNlKTsKICAgICAgICAgICAgIGJvb2wgc3Vj
Y2VzcyA9IHNldEluZGV4KGdsb2JhbE9iamVjdCwgb2Zmc2V0ICsgaSwgdmFsdWUpOwogICAgICAg
ICAgICAgRVhDRVBUSU9OX0FTU0VSVCghc2NvcGUuZXhjZXB0aW9uKCkgfHwgIXN1Y2Nlc3MpOwot
ICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQorICAgICAgICAgICAgaWYgKCFzdWNjZXNzKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSkKKyAgICAgICAgICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5E
ZXRhY2hlZEVycm9yTWVzc2FnZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gfQpAQCAt
MzM2LDI4ICszMzksMTEgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
Z2V0T3duUHJvcGVydHlTbG90KAogewogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2JqZWN0KTsKIAotICAg
IGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkp
IHsKLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkgewotICAgICAgICAgICAg
c2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5
QXR0cmlidXRlOjpOb25lKSwgdGhyb3dOZXV0ZXJlZFR5cGVkQXJyYXlUeXBlRXJyb3IpOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAodGhpc09iamVj
dC0+Y2FuR2V0SW5kZXhRdWlja2x5KGluZGV4LnZhbHVlKCkpKSB7Ci0gICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJp
YnV0ZTo6RG9udERlbGV0ZSksIHRoaXNPYmplY3QtPmdldEluZGV4UXVpY2tseShpbmRleC52YWx1
ZSgpKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBpZiAoaXNDYW5vbmljYWxOdW1lcmljSW5kZXhTdHJp
bmcocHJvcGVydHlOYW1lKSkgewotICAgICAgICBpZiAodGhpc09iamVjdC0+aXNOZXV0ZXJlZCgp
KSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCB0aHJvd05ldXRlcmVkVHlwZWRBcnJh
eVR5cGVFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGlm
IChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCisg
ICAgICAgIHJldHVybiBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGdsb2Jh
bE9iamVjdCwgaW5kZXgudmFsdWUoKSwgc2xvdCk7CiAKKyAgICBpZiAoaXNDYW5vbmljYWxOdW1l
cmljSW5kZXhTdHJpbmcocHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KIAogICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZ2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQpAQCAtMzY3LDI0ICszNTMsMTggQEAg
Ym9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6cHV0KAogICAgIEpTQ2VsbCog
Y2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwKICAgICBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHZtKTsKLQogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4oY2VsbCk7CiAKLSAgICAvLyBodHRw
czovL3RjMzkuZ2l0aHViLmlvL2VjbWEyNjIvI3NlYy1pbnRlZ2VyLWluZGV4ZWQtZXhvdGljLW9i
amVjdHMtc2V0LXAtdi1yZWNlaXZlcgotICAgIC8vIElnbm9yZSB0aGUgcmVjZWl2ZXIgZXZlbiBp
ZiB0aGUgcmVjZWl2ZXIgaXMgYWx0ZXJlZCB0byBub24gYmFzZSB2YWx1ZS4KLSAgICAvLyA5LjQu
NS41LTItYi1pIFJldHVybiA/IEludGVnZXJJbmRleGVkRWxlbWVudFNldChPLCBudW1lcmljSW5k
ZXgsIFYpLgogICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHBy
b3BlcnR5TmFtZSkpCi0gICAgICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcHV0QnlJbmRl
eCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90Lmlz
U3RyaWN0TW9kZSgpKSk7CisgICAgICAgIHJldHVybiBwdXRCeUluZGV4KHRoaXNPYmplY3QsIGds
b2JhbE9iamVjdCwgaW5kZXgudmFsdWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpOwog
CiAgICAgaWYgKGlzQ2Fub25pY2FsTnVtZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZSkpIHsK
LSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKLSAgICAgICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0
YWNoZWRFcnJvck1lc3NhZ2UpOworICAgICAgICAvLyBDYXNlcyBsaWtlICctMCcsICcxLjEnLCBl
dGMuIGFyZSBzdGlsbCBvYmxpZ2VkIHRvIGdpdmUgdGhlIFJIUyBhIGNoYW5jZSB0byB0aHJvdy4K
KyAgICAgICAgdG9OYXRpdmVGcm9tVmFsdWU8QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4o
c2NvcGUsIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QpKTsKKyAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIGdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1l
IEFkYXB0b3I+CkBAIC00MDMsMTQgKzM4MywxNCBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+OjpkZWZpbmVPd25Qcm9wZXJ0eSgKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgfTsKIAotICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA+PSB0aGlzT2JqZWN0
LT5tX2xlbmd0aCkKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkgJiYgaW5k
ZXgudmFsdWUoKSA+PSB0aGlzT2JqZWN0LT5tX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKQog
ICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQoIkF0dGVtcHRpbmcgdG8g
c3RvcmUgYWNjZXNzb3IgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheSBhdCBpbmRleDogIik7CiAK
LSAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCi0gICAgICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3JJZk5lZWRlZCgiQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAiKTsKKyAgICAg
ICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmICFkZXNjcmlwdG9yLmNv
bmZpZ3VyYWJsZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQo
IkF0dGVtcHRpbmcgdG8gc3RvcmUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVk
IGFycmF5IGF0IGluZGV4OiAiKTsKIAogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxl
UHJlc2VudCgpICYmICFkZXNjcmlwdG9yLmVudW1lcmFibGUoKSkKICAgICAgICAgICAgIHJldHVy
biB0aHJvd1R5cGVFcnJvcklmTmVlZGVkKCJBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJh
YmxlIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6ICIpOwpAQCAtNDM0LDE2ICs0
MTQsMTQgQEAgdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KIGJvb2wgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXc8QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5KAogICAgIEpTQ2VsbCogY2VsbCwgSlNH
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRGVs
ZXRlUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNHZW5l
cmljVHlwZWRBcnJheVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJh
eVZpZXcqPihjZWxsKTsKIAotICAgIGlmIChwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAg
ICAgICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHJ1ZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0Jl
ZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgCisgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVy
dHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIGRlbGV0ZVByb3BlcnR5QnlJbmRleCh0aGlzT2JqZWN0
LCBnbG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCkpOworCisgICAgaWYgKGlzQ2Fub25pY2FsTnVt
ZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZSkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwg
cHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIApAQCAtNDUzLDE1ICs0MzEsMTAgQEAgYm9vbCBKU0dl
bmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCgK
IHsKICAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dl
bmVyaWNUeXBlZEFycmF5Vmlldyo+KG9iamVjdCk7CiAKLSAgICBpZiAodGhpc09iamVjdC0+aXNO
ZXV0ZXJlZCgpKSB7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHRocm93TmV1dGVyZWRUeXBl
ZEFycmF5VHlwZUVycm9yKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgaWYg
KCF0aGlzT2JqZWN0LT5jYW5HZXRJbmRleFF1aWNrbHkocHJvcGVydHlOYW1lKSkKKyAgICBpZiAo
dGhpc09iamVjdC0+aXNOZXV0ZXJlZCgpIHx8ICF0aGlzT2JqZWN0LT5jYW5HZXRJbmRleFF1aWNr
bHkocHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmli
dXRlOjpEb250RGVsZXRlKSwgdGhpc09iamVjdC0+Z2V0SW5kZXhRdWlja2x5KHByb3BlcnR5TmFt
ZSkpOworCisgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCB0aGlzT2JqZWN0LT5nZXRJbmRleFF1aWNrbHko
cHJvcGVydHlOYW1lKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQ3NSwxMCArNDQ4LDEx
IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnB1dEJ5SW5kZXgoCiAK
IHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+CiBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
PEFkYXB0b3I+OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoCi0gICAgSlNDZWxsKiBjZWxsLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCisgICAgSlND
ZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKIHsKLSAg
ICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgcmV0dXJuIEpTQ2VsbDo6ZGVsZXRl
UHJvcGVydHkoY2VsbCwgZ2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBwcm9wZXJ0
eU5hbWUpKTsKKyAgICAvLyBJbnRlZ2VyLWluZGV4ZWQgZWxlbWVudHMgY2FuJ3QgYmUgZGVsZXRl
ZCwgc28gd2UgbXVzdCByZXR1cm4gZmFsc2Ugd2hlbiB0aGUgaW5kZXggaXMgdmFsaWQuCisgICAg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcqPihjZWxsKTsKKyAgICByZXR1cm4gdGhpc09iamVjdC0+aXNOZXV0ZXJlZCgp
IHx8IHByb3BlcnR5TmFtZSA+PSB0aGlzT2JqZWN0LT5tX2xlbmd0aDsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgQWRhcHRvcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCmluZGV4IDk4MjNjNmJjMDQyYTZmOTM5ZWYy
ZDE4MTMyMDFiYzcyOGQzNjI4OGUuLmFiZTBkYzEyODk0MWEwYzA2NmMyNTA3NmUzMTkzMjI2NTAy
Y2FjNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFs
T2JqZWN0RnVuY3Rpb25zLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuaApAQCAtNjAsNiArNjAsNiBAQCBKU0NfREVDTEFSRV9IT1NU
X0ZVTkNUSU9OKGdsb2JhbEZ1bmNQcm9wZXJ0eUlzRW51bWVyYWJsZSk7CiBKU0NfREVDTEFSRV9I
T1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNPd25LZXlzKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJ
T04oZ2xvYmFsRnVuY0RhdGVUaW1lRm9ybWF0KTsKIAotZG91YmxlIGpzVG9OdW1iZXIoU3RyaW5n
Vmlldyk7CitKU19FWFBPUlRfUFJJVkFURSBkb3VibGUganNUb051bWJlcihTdHJpbmdWaWV3KTsK
IAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdElubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTT2JqZWN0SW5saW5lcy5oCmluZGV4IDZjNTM5ZmNlMzM0ZGM2YTRlYmRkYzI5OGM0YjBiMTBk
ZjU3MzExYTEuLjMxZTAwZjk4MzhkY2UxOWE5OGM5ZDI3OTNiMTUzYzdhMjYxYjIxYzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oCkBAIC0x
MzcsNiArMTM3LDggQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXRQcm9wZXJ0eVNs
b3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgdW5zaWcKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgaWYgKG9iamVjdC0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSAm
JiBzbG90LmludGVybmFsTWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRo
b2RUeXBlOjpIYXNQcm9wZXJ0eSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg
aWYgKGlzVHlwZWRBcnJheVR5cGUob2JqZWN0LT50eXBlKCkpICYmIHByb3BlcnR5TmFtZSA+PSBq
c0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihvYmplY3QpLT5sZW5ndGgoKSkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgSlNWYWx1ZSBwcm90b3R5cGU7CiAgICAgICAgIGlmIChM
SUtFTFkoIXN0cnVjdHVyZS0+dHlwZUluZm8oKS5vdmVycmlkZXNHZXRQcm90b3R5cGUoKSB8fCBz
bG90LmludGVybmFsTWV0aG9kVHlwZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RU
eXBlOjpWTUlucXVpcnkpKQogICAgICAgICAgICAgcHJvdG90eXBlID0gb2JqZWN0LT5nZXRQcm90
b3R5cGVEaXJlY3Qodm0pOwpAQCAtMTgwLDYgKzE4Miw4IEBAIEFMV0FZU19JTkxJTkUgYm9vbCBK
U09iamVjdDo6Z2V0Tm9uSW5kZXhQcm9wZXJ0eVNsb3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgaWYgKG9iamVj
dC0+dHlwZSgpID09IFByb3h5T2JqZWN0VHlwZSAmJiBzbG90LmludGVybmFsTWV0aG9kVHlwZSgp
ID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpIYXNQcm9wZXJ0eSkKICAgICAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICBpZiAoaXNUeXBlZEFycmF5VHlw
ZShvYmplY3QtPnR5cGUoKSkgJiYgaXNDYW5vbmljYWxOdW1lcmljSW5kZXhTdHJpbmcocHJvcGVy
dHlOYW1lKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAg
ICAgSlNWYWx1ZSBwcm90b3R5cGU7CiAgICAgICAgIGlmIChMSUtFTFkoIXN0cnVjdHVyZS0+dHlw
ZUluZm8oKS5vdmVycmlkZXNHZXRQcm90b3R5cGUoKSB8fCBzbG90LmludGVybmFsTWV0aG9kVHlw
ZSgpID09IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcAppbmRleCA5
Njk1ZWIwOTVkZDFhMDMzZTBhMzM1MWQ1MWNkNjcwZjUzNzQ1ODczLi40YjlmOTVjZjYzMWJkYTUz
NTRlNzUxYWQ0MDI5MTYyY2RhN2Y3YmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcApAQCAtNjQsMTMgKzY0LDUgQEAgTUFLRV9TX0lORk8o
RmxvYXQ2NCk7CiAKIE1BS0VfQ09OU1RSVUNUT1JTKERhdGFWaWV3KTsKIAotSlNDX0RFRklORV9D
VVNUT01fR0VUVEVSKHRocm93TmV1dGVyZWRUeXBlZEFycmF5VHlwZUVycm9yLCAoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgRW5jb2RlZEpTVmFsdWUgb2JqZWN0LCBQcm9wZXJ0eU5hbWUp
KQotewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBhdXRvIHNjb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgQVNTRVJUX1VOVVNFRChvYmplY3QsIGpzQ2Fz
dDxKU0FycmF5QnVmZmVyVmlldyo+KEpTVmFsdWU6OmRlY29kZShvYmplY3QpKS0+aXNOZXV0ZXJl
ZCgpKTsKLSAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCB0
eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgSlNDCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNDEzMmE4MTg0NzRjZjQ4ZjUwNzliYWE4YTE2ZWRjZWEyOWZjZGZkMS4u
MWI4NjVlOTZmNzExOWY3NTY5Y2YyZjg5YWIwNGE1ODk3YmUyOGNlMyAxMDA2NDQKLS0tIGEvSlNU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAor
MjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAg
ICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwgbWV0aG9kcyBhZGhl
cmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBzdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanM6Cisg
ICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzOgorICAgICAgICAq
IHN0cmVzcy90eXBlZGFycmF5LWNvbmZpZ3VyZS1pbmRleC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
dHlwZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5qczoKKyAgICAgICAgKiBzdHJlc3Mv
dHlwZWRhcnJheS1nZXRvd25wcm9wZXJ0eS5qczogUmVuYW1lZCBmcm9tIEpTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNvbmZpZ3VyYWJsZS5qcy4KKyAgICAgICAg
QWRqdXN0IHRlc3RzLgorCisgICAgICAgICogdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbDoKKyAg
ICAgICAgQWRkcmVzcyBhbGwgdGVzdCBmYWlsdXJlcyB1bmRlciBidWlsdC1pbnMvVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMuCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgYSBz
bGV3IG9mIGNvcnJlY3Rpb25zIG5lZWRlZCB0byB0aGVzZSB0ZXN0IGNhc2VzLAorICAgICAgICB3
aGljaCB3ZXJlIGRpc2NvdmVyZWQgaW4gdGhlIGNvdXJzZSBvZiB3b3JraW5nIG9uIHRoaXMgcGF0
Y2g6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Rlc3QyNjIvcHVsbC8yODMzI2lz
c3VlY29tbWVudC03MDk2MzU4NTAKKyAgICAgICAgQWNjb3JkaW5nbHksIHRoZXNlIHJlbWFpbmlu
ZyBsaW5lcyBzaG91bGQgYWxsIGRpc2FwcGVhciBpbiB0aGUgZnV0dXJlLgorCiAyMDIwLTEwLTE0
ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVcGRh
dGUgdGVzdDI2MiAoMjAyMC4xMC4xNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktYWNjZXNzLW1vbm9tb3JwaGljLW5ldXRlcmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanMKaW5kZXggODFkN2MzYmQyNzhj
OWU2ZjRjNTE3ZDU4YzJmYzdhNzg2NTIwNjcxYy4uYmViYTg1ZWQ4YzQ5MGNkNzJiYjVmMmUyZDJj
NzY0ZDUxMDgyMWM2YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nl
c3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanMKQEAgLTEsNjEgKzEsOSBAQAogdHlwZWRB
cnJheXMgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZB
cnJheSwgVWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXks
IEZsb2F0NjRBcnJheV07CiAKLQotZnVuY3Rpb24gY2hlY2soYXJyYXksIHRodW5rLCBjb3VudCkg
ewotICAgIGxldCBmYWlsZWQgPSB0cnVlOwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5rKGFycmF5
LCBjb3VudCk7Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChlICE9ICJUeXBlRXJyb3I6
IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIp
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoW3RodW5rLCBjb3VudCwgZV0pOwotICAgICAg
ICBmYWlsZWQgPSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKGZhaWxlZCkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKFt0aHVuaywgY291bnRdKTsKLX0KLW5vSW5saW5lKGNoZWNrKTsKLQotZnVuY3Rp
b24gdGVzdCh0aHVuaywgYXJyYXkpIHsKLSAgICBsZXQgZm4gPSBGdW5jdGlvbigiYXJyYXkiLCAi
aSIsIHRodW5rKTsKLSAgICBub0lubGluZShmbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAx
MDAwMDsgaSsrKQotICAgICAgICBjaGVjayhhcnJheSwgZm4sIGkpOwotfQotCi1mb3IgKGxldCBj
b25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewotICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1
Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIHRl
c3QoImFycmF5WzBdIiwgYXJyYXkpOwotICAgIHRlc3QoImRlbGV0ZSBhcnJheVswXSIsIGFycmF5
KTsKLSAgICB0ZXN0KCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCAwKSIs
IGFycmF5KTsKLSAgICB0ZXN0KCJhcnJheVswXSA9IDEiLCBhcnJheSk7Ci0gICAgdGVzdCgiYXJy
YXlbaV0gPSAxIiwgYXJyYXkpOwotfQotCi1mdW5jdGlvbiB0ZXN0RlRMKHRodW5rLCBhcnJheSwg
ZmFpbEFycmF5KSB7Ci0gICAgbGV0IGZuID0gRnVuY3Rpb24oImFycmF5IiwgImkiLCB0aHVuayk7
Ci0gICAgbm9JbmxpbmUoZm4pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykK
LSAgICAgICAgZm4oYXJyYXksIGkpCi0gICAgY2hlY2soZmFpbEFycmF5LCBmbiwgMTAwMDApOwot
fQotCi1mb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewotICAgIGxldCBhcnJh
eSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7Ci0gICAgbGV0IGZhaWxBcnJheSA9IG5ldyBjb25zdHJ1
Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihmYWlsQXJyYXkuYnVmZmVyKTsKLSAg
ICB0ZXN0RlRMKCJhcnJheVswXSIsIGFycmF5LCBmYWlsQXJyYXkpOwotICAgIHRlc3RGVEwoImRl
bGV0ZSBhcnJheVswXSIsIGFycmF5LCBmYWlsQXJyYXkpOwotICAgIHRlc3RGVEwoIk9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0g
ICAgdGVzdEZUTCgiYXJyYXlbMF0gPSAxIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0gICAgdGVzdEZU
TCgiYXJyYXlbaV0gPSAxIiwgYXJyYXksIGZhaWxBcnJheSk7Ci19Ci0KLQogZnVuY3Rpb24gY2hl
Y2tOb0V4Y2VwdGlvbihhcnJheSwgdGh1bmssIGNvdW50KSB7CiAgICAgdGh1bmsoYXJyYXksIGNv
dW50KTsKIH0KLW5vSW5saW5lKGNoZWNrKTsKK25vSW5saW5lKGNoZWNrTm9FeGNlcHRpb24pOwog
CiBmdW5jdGlvbiB0ZXN0Tm9FeGNlcHRpb24odGh1bmssIGFycmF5KSB7CiAgICAgbGV0IGZuID0g
RnVuY3Rpb24oImFycmF5IiwgImkiLCB0aHVuayk7CkBAIC02Nyw3ICsxNSwxMiBAQCBmdW5jdGlv
biB0ZXN0Tm9FeGNlcHRpb24odGh1bmssIGFycmF5KSB7CiBmb3IgKGxldCBjb25zdHJ1Y3RvciBv
ZiB0eXBlZEFycmF5cykgewogICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAg
ICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIHRlc3ROb0V4Y2VwdGlv
bigiT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSIsIGFycmF5KTsK
KyAgICB0ZXN0Tm9FeGNlcHRpb24oImFycmF5WzBdIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2Vw
dGlvbigiZGVsZXRlIGFycmF5WzBdIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiT2Jq
ZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcnJheSwgMCkiLCBhcnJheSk7CisgICAgdGVz
dE5vRXhjZXB0aW9uKCJhcnJheVswXSA9IDEiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9u
KCJhcnJheVtpXSA9IDEiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJPYmplY3QuZGVm
aW5lUHJvcGVydHkoYXJyYXksIDAsIHsgdmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1
cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUgfSkiLCBhcnJheSk7CiB9CiAKIGZ1bmN0aW9u
IHRlc3RGVExOb0V4Y2VwdGlvbih0aHVuaywgYXJyYXksIGZhaWxBcnJheSkgewpAQCAtNzcsOSAr
MzAsMTUgQEAgZnVuY3Rpb24gdGVzdEZUTE5vRXhjZXB0aW9uKHRodW5rLCBhcnJheSwgZmFpbEFy
cmF5KSB7CiAgICAgICAgIGZuKGFycmF5LCBpKQogICAgIGNoZWNrTm9FeGNlcHRpb24oZmFpbEFy
cmF5LCBmbiwgMTAwMDApOwogfQorCiBmb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5
cykgewogICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgbGV0IGZhaWxB
cnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihmYWls
QXJyYXkuYnVmZmVyKTsKLSAgICB0ZXN0RlRMTm9FeGNlcHRpb24oIk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTog
ZmFsc2UsIGVudW1lcmFibGU6IHRydWUgfSkiLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0
RlRMTm9FeGNlcHRpb24oImFycmF5WzBdIiwgYXJyYXksIGZhaWxBcnJheSk7CisgICAgdGVzdEZU
TE5vRXhjZXB0aW9uKCJkZWxldGUgYXJyYXlbMF0iLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0
ZXN0RlRMTm9FeGNlcHRpb24oIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXks
IDApIiwgYXJyYXksIGZhaWxBcnJheSk7CisgICAgdGVzdEZUTE5vRXhjZXB0aW9uKCJhcnJheVsw
XSA9IDEiLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oImFycmF5
W2ldID0gMSIsIGFycmF5LCBmYWlsQXJyYXkpOworICAgIHRlc3RGVExOb0V4Y2VwdGlvbigiT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwg
Y29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlIH0pIiwgYXJyYXksIGZhaWxBcnJh
eSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1uZXV0
ZXJlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzCmlu
ZGV4IGM1MjE1MmZiYmYxYWY4MjQ0MWE0MzY5NjkxZTQ1NmI4YmUyZGI1MTQuLmFiZWIwNTk5OTky
NTA5ODVhYjkxOGViNDI1OTQzNjcyNjlkMDczOTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzCkBAIC0xLDMzICsxLDUgQEAKIHR5cGVkQXJyYXlzID0g
W0ludDhBcnJheSwgVWludDhBcnJheSwgVWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVp
bnQxNkFycmF5LCBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0
QXJyYXldOwogCi0KLWZ1bmN0aW9uIGNoZWNrKHRodW5rLCBjb3VudCkgewotICAgIGxldCBhcnJh
eSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5i
dWZmZXIpOwotICAgIGxldCBmYWlsZWQgPSB0cnVlOwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5r
KGFycmF5KTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgaWYgKGUgIT0gIlR5cGVFcnJvcjog
VW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IikK
LSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihbdGh1bmssIGNvdW50LCBlXSk7Ci0gICAgICAg
IGZhaWxlZCA9IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZmFpbGVkKQotICAgICAgICB0aHJvdyBu
ZXcgRXJyb3IoW3RodW5rLCBjb3VudF0pOwotfQotCi1mdW5jdGlvbiB0ZXN0KHRodW5rLCBjb3Vu
dCkgewotICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpCi0gICAgICAgIGNoZWNr
KHRodW5rLCBjb3VudCk7Ci19Ci0KLWZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewot
ICAgIHRlc3QoKGFycmF5KSA9PiBhcnJheVswXSwgaSk7Ci0gICAgdGVzdCgoYXJyYXkpID0+IGRl
bGV0ZSBhcnJheVswXSwgaSk7Ci0gICAgdGVzdCgoYXJyYXkpID0+IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApLCBpKTsKLSAgICB0ZXN0KChhcnJheSkgPT4gYXJyYXlb
MF0gPSAxLCBpKTsKLX0KLQogZnVuY3Rpb24gY2hlY2tOb0V4Y2VwdGlvbih0aHVuaywgY291bnQp
IHsKICAgICBsZXQgYXJyYXkgPSBuZXcgY29uc3RydWN0b3IoMTApOwogICAgIHRyYW5zZmVyQXJy
YXlCdWZmZXIoYXJyYXkuYnVmZmVyKTsKQEAgLTQwLDUgKzEyLDkgQEAgZnVuY3Rpb24gdGVzdE5v
RXhjZXB0aW9uKHRodW5rLCBjb3VudCkgewogfQogCiBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAw
OyBpKyspIHsKLSAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBPYmplY3QuZGVmaW5lUHJv
cGVydHkoYXJyYXksIDAsIHsgdmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6
IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVlIH0pLCBpKQorICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJy
YXkpID0+IGFycmF5WzBdLCBpKTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBkZWxl
dGUgYXJyYXlbMF0sIGkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IE9iamVjdC5n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApLCBpKTsKKyAgICB0ZXN0Tm9FeGNlcHRp
b24oKGFycmF5KSA9PiBhcnJheVswXSA9IDEsIGkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJy
YXkpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFi
bGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSwgaSkKIH0K
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uZmlndXJlLWluZGV4Lmpz
IGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUtaW5kZXguanMKaW5kZXggNTdh
ZWYzNzY5YjEzYzAxNmYzYTg0YmY1MzJlNzRmNTkyNzlmYmY3Ny4uZTQ2NWJkMTBmMzAwMzNlODBm
MDAyMTVmN2I3OTQ1MjI0Yzg0MmFlOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1jb25maWd1cmUtaW5kZXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1j
b25maWd1cmUtaW5kZXguanMKQEAgLTQwLDEzICs0MCwxMyBAQCBmdW5jdGlvbiB0ZXN0KGFycmF5
LCBhLCBjLCBlcnJvciApIHsKIGZ1bmN0aW9uIGZvbygpIHsKICAgICBmb3IgKGNvbnN0cnVjdG9y
IG9mIHR5cGVkQXJyYXlzKSB7CiAgICAgICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsK
LSAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNl
LCBmYWxzZSwgdHJ1ZSwgdHJ1ZSkpOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwg
MCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRydWUsIHRydWUsIHRydWUpKTsKICAgICAgICAgYXNz
ZXJ0KGFbMF0gPT09IDEpOwotICAgICAgICBhc3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2Up
LCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQg
cHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7Ci0gICAgICAgIGFzc2VydFRocm93cygoKSA9
PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIGZhbHNl
LCBmYWxzZSwgZmFsc2UpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVt
ZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7Ci0gICAgICAgIGFz
c2VydFRocm93cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0
b3IoZmFsc2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSksICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8g
c3RvcmUgbm9uLXdyaXRhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7
CisgICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwg
bWFrZURlc2NyaXB0b3IoZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlKSwgIlR5cGVFcnJvcjogQXR0
ZW1wdGluZyB0byBzdG9yZSBub24tZW51bWVyYWJsZSBpbmRleGVkIHByb3BlcnR5IG9uIGEgdHlw
ZWQgYXJyYXkuIikpOworICAgICAgICBhc3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UpLCAi
VHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJv
cGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7CisgICAgICAgIGFzc2VydFRocm93cygoKSA9PiBP
YmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRydWUsIGZh
bHNlLCB0cnVlKSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBub24td3JpdGFibGUg
aW5kZXhlZCBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5LiIpKTsKIAotICAgICAgICB0ZXN0KGEs
IGZhbHNlLCB0cnVlLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29u
ZmlndXJhYmxlIHByb3BlcnR5LiIpOworICAgICAgICB0ZXN0KGEsIGZhbHNlLCBmYWxzZSwgIlR5
cGVFcnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LiIp
OwogICAgICAgICBmb3IgKGMgb2YgYm9vbHMpIHsKICAgICAgICAgICAgIHRlc3QoYSwgdHJ1ZSwg
YywgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBhY2Nlc3NvciBpbmRleGVkIHByb3Bl
cnR5IG9uIGEgdHlwZWQgYXJyYXkuIikKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5qcyBiL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZnVuY3Rpb25zLXdpdGgtbmV1dGVyZWQuanMKaW5kZXggY2NhZDNhMGVl
MDhiN2Y0Yzg3NTE4Y2E1M2EzOTIyNTlhMTU2NjRmOC4uNTQ4NDE5ZjhmNjFhMWU2NTZlNGUwYjJl
OWYwZDY1YjBhNDRiMjJmZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1m
dW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5
LWZ1bmN0aW9ucy13aXRoLW5ldXRlcmVkLmpzCkBAIC03NywyMiArNzcsMTMgQEAgZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwOyBpKyspCiAvLyBUZXN0IHRoYXQgd2UgaGFuZGxlIG5ldXRlcmluZyBm
b3IgYW55IHRvSW50ZWdlciBuZXV0ZXJpbmcgdGhlIGFycmF5YnVmZmVyLgogcHJvdG90eXBlRnVu
Y3Rpb25zID0gWwogICAgIHsgZnVuYzpwcm90by5jb3B5V2l0aGluLCBhcmdzOlsicHJpbSIsICJw
cmltIiwgInByaW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5ldmVyeSwgYXJnczpbImZ1bmMiXSB9
LAogICAgIHsgZnVuYzpwcm90by5maWxsLCBhcmdzOlsicHJpbSIsICJwcmltIiwgInByaW0iXSB9
LAotICAgIHsgZnVuYzpwcm90by5maWx0ZXIsIGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7IGZ1bmM6
cHJvdG8uZmluZCwgYXJnczpbImZ1bmMiXSB9LAotICAgIHsgZnVuYzpwcm90by5maW5kSW5kZXgs
IGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8uZm9yRWFjaCwgYXJnczpbImZ1bmMi
XSB9LAogICAgIHsgZnVuYzpwcm90by5pbmRleE9mLCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAg
ICAgeyBmdW5jOnByb3RvLmluY2x1ZGVzLCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAgICAgeyBm
dW5jOnByb3RvLmpvaW4sIGFyZ3M6WyJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8ubGFzdElu
ZGV4T2YsIGFyZ3M6WyJuYSIsICJwcmltIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8ubWFwLCBhcmdz
OlsiZnVuYyJdIH0sCi0gICAgeyBmdW5jOnByb3RvLnJlZHVjZSwgYXJnczpbImZ1bmMiXSB9LAot
ICAgIHsgZnVuYzpwcm90by5yZWR1Y2VSaWdodCwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVu
Yzpwcm90by5zZXQsIGFyZ3M6WyJhcnJheSIsICJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8u
c2xpY2UsIGFyZ3M6WyJwcmltIiwgInByaW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5zb21lLCBh
cmdzOlsiZnVuYyJdIH0sCiAgICAgeyBmdW5jOnByb3RvLnNvcnQsIGFyZ3M6WyJmdW5jIl0gfSwK
ICAgICB7IGZ1bmM6cHJvdG8uc3ViYXJyYXksIGFyZ3M6WyJwcmltIiwgInByaW0iXSB9LAogXTsK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90
LWNvbmZpZ3VyYWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVy
dHktbm90LWNvbmZpZ3VyYWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNk
YTlkOTI1ZmY4YjM5NDE3YWJkZWZkZDBlYjdkZGJmNjkyODI1Ni4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWdl
dG93bnByb3BlcnR5LW5vdC1jb25maWd1cmFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCAr
MCwwIEBACi10eXBlZEFycmF5cyA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4Q2xhbXBl
ZEFycmF5LCBJbnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMyQXJyYXks
IEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTsKLQotZnVuY3Rpb24gYXNzZXJ0KGNvbmQpIHsK
LSAgICBpZiAoIWNvbmQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGFzc2VydGlvbiEi
KTsKLX0KLQotZnVuY3Rpb24gZm9vKCkgewotICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRB
cnJheXMpIHsKLSAgICAgICAgbGV0IGEgPSBuZXcgY29uc3RydWN0b3IoMTApOwotICAgICAgICBs
ZXQgYiA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwgMCk7Ci0gICAgICAgIGFz
c2VydChiLnZhbHVlID09PSAwKTsKLSAgICAgICAgYXNzZXJ0KGIud3JpdGFibGUgPT09IHRydWUp
OwotICAgICAgICBhc3NlcnQoYi5lbnVtZXJhYmxlID09PSB0cnVlKTsKLSAgICAgICAgYXNzZXJ0
KGIuY29uZmlndXJhYmxlID09PSBmYWxzZSk7Ci0gICAgfQotfQotCi1mb3IgKGxldCBpID0gMDsg
aSA8IDEwMDsgaSsrKQotICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1nZXRvd25wcm9wZXJ0eS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0
b3ducHJvcGVydHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTM5MmViNzk3NTBkNzA3MTZmNjg0ZGExODZkMTk0
MGY4ZjRkYzVlMAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXkt
Z2V0b3ducHJvcGVydHkuanMKQEAgLTAsMCArMSwyMCBAQAordHlwZWRBcnJheXMgPSBbSW50OEFy
cmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2QXJy
YXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07
CisKK2Z1bmN0aW9uIGFzc2VydChjb25kKSB7CisgICAgaWYgKCFjb25kKQorICAgICAgICB0aHJv
dyBuZXcgRXJyb3IoImJhZCBhc3NlcnRpb24hIik7Cit9CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAg
ICBmb3IgKGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7CisgICAgICAgIGxldCBhID0gbmV3
IGNvbnN0cnVjdG9yKDEwKTsKKyAgICAgICAgbGV0IGIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yKGEsIDApOworICAgICAgICBhc3NlcnQoYi52YWx1ZSA9PT0gMCk7CisgICAgICAg
IGFzc2VydChiLndyaXRhYmxlID09PSB0cnVlKTsKKyAgICAgICAgYXNzZXJ0KGIuZW51bWVyYWJs
ZSA9PT0gdHJ1ZSk7CisgICAgICAgIGFzc2VydChiLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSk7Cisg
ICAgfQorfQorCitmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKQorICAgIGZvbygpOwpkaWZm
IC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0
MjYyL2V4cGVjdGF0aW9ucy55YW1sCmluZGV4IGMyNTE3N2ZiODU5NTNmYWQ1MWRjY2U2YjY2OWYx
ZDE2MGE5MWIzOTAuLmE3NmJlZTVhZTQ1MGIyZDJhM2RiMDY0NDY1OWI2NjE5MDc1MWU5MTUgMTAw
NjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3Rz
L3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKQEAgLTEyNDAsMTUgKzEyNDAsNDIgQEAgdGVzdC9i
dWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFzdGluZGV4LWFkdi5qczoKIHRlc3Qv
YnVpbHQtaW5zL1JlZ0V4cC9xdWFudGlmaWVyLWludGVnZXItbGltaXQuanM6CiAgIGRlZmF1bHQ6
ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFy
Z2UgaW4ge30gcXVhbnRpZmllcicKICAgc3RyaWN0IG1vZGU6ICdTeW50YXhFcnJvcjogSW52YWxp
ZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicK
K3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2V2ZXJ5L2NhbGxiYWNrZm4tZGV0
YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVF
cnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQg
Z290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9maWx0ZXIvY2FsbGJhY2tmbi1kZXRhY2hidWZm
ZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1
dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBU
ZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXkvcHJvdG90eXBlL2ZpbmQvcHJlZGljYXRlLW1heS1kZXRhY2gtYnVmZmVyLmpz
OgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiB0aHJvd3MgYSBUeXBlRXJyb3IgZ2V0dGluZyBh
IHZhbHVlIGZyb20gdGhlIGRldGFjaGVkIGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBi
ZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogdGhyb3dzIGEg
VHlwZUVycm9yIGdldHRpbmcgYSB2YWx1ZSBmcm9tIHRoZSBkZXRhY2hlZCBidWZmZXIgRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVk
QXJyYXkvcHJvdG90eXBlL2ZpbmRJbmRleC9wcmVkaWNhdGUtbWF5LWRldGFjaC1idWZmZXIuanM6
CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHRocm93cyBhIFR5cGVFcnJvciBnZXR0aW5nIGEg
dmFsdWUgZnJvbSB0aGUgZGV0YWNoZWQgYnVmZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJl
IHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiB0aHJvd3MgYSBU
eXBlRXJyb3IgZ2V0dGluZyBhIHZhbHVlIGZyb20gdGhlIGRldGFjaGVkIGJ1ZmZlciBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0
IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheS9wcm90b3R5cGUvZm9yRWFjaC9jYWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKKyAgZGVm
YXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3Qy
NjJFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvbWFwL2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9y
ZWR1Y2UvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3JlZHVjZVJp
Z2h0L2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRh
Y2hlZC1idWZmZXItY3VzdG9tLWN0b3Itb3RoZXItdGFyZ2V0dHlwZS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGhhdmUgY29uZmlndXJhYmxlOnRydWUu
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
b2JqWzBdIHRvIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdhcyBub3QuIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpb
MF0gdG8gYmUgY29uZmlndXJhYmxlLCBidXQgd2FzIG5vdC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3NsaWNlL2RldGFj
aGVkLWJ1ZmZlci16ZXJvLWNvdW50LWN1c3RvbS1jdG9yLW90aGVyLXRhcmdldHR5cGUuanM6CiAg
IGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0
YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJp
Y3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRh
Y2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRhY2hlZC1idWZmZXItemVyby1j
b3VudC1jdXN0b20tY3Rvci1zYW1lLXRhcmdldHR5cGUuanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJy
b3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmll
dyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJv
cjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5
L3Byb3RvdHlwZS9zb21lL2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9y
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2N0b3JzL2J1ZmZlci1hcmcvYnl0ZW9mZnNldC10by1udW1iZXItZGV0YWNoYnVmZmVyLmpz
OgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290
IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJy
b3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKQEAgLTEzMDksODQgKzEzMzYsMjQgQEAg
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFy
Zy9zYW1lLWN0b3ItYnVmZmVyLWN0b3IKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1
Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1hcmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXZhbHVlLW5v
dC1vYmotdGhyb3dzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5
cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2Fz
IHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L3Rv
bnVtYmVyLXZhbHVlLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjog
VW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBV
bmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25z
dHJ1Y3RvcnMvaW50ZXJuYWxzL0RlbGV0ZS9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRl
ZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNo
ZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3Qg
bW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hl
ZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWxldGUvZGV0YWNoZWQtYnVm
ZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhh
cyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFz
IGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvRGVsZXRl
L2tleS1pcy1vdXQtb2YtYm91bmRzLW5vbi1zdHJpY3QuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IFRoZSB2YWx1ZSBvZiBgZGVsZXRlIHNhbXBsZVsiMSJdYCBpcyB0cnVlIEV4cGVjdGVk
IFNhbWVWYWx1ZSjCq2ZhbHNlwrssIMKrdHJ1ZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2lu
dGVybmFscy9EZWxldGUva2V5LWlzLW91dC1vZi1ib3VuZHMtc3RyaWN0LmpzOgotICBzdHJpY3Qg
bW9kZTogJ1R5cGVFcnJvcjogVW5hYmxlIHRvIGRlbGV0ZSBwcm9wZXJ0eS4gKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMv
aW50ZXJuYWxzL0dldC9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBl
RXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUg
dmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVF
cnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2
aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFy
cmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9HZXQvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZh
dWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVk
IGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1v
ZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQg
ZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1p
bnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0L2luZmluaXR5LWRldGFjaGVk
LWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZl
ciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVy
IGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dl
dC9rZXktaXMtbm90LWludGVnZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGlu
YXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBj
YWxsZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMt
bm90LW1pbnVzLXplcm8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0
IHdhcyBjYWxsZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQh
IFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtb3V0LW9m
LWJvdW5kcy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNh
bGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5
LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMv
VHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0T3duUHJvcGVydHkvZGV0YWNoZWQt
YnVmZmVyLXJlYWxtLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5
QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlC
dWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5h
bHMvR2V0T3duUHJvcGVydHkvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVy
cm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZp
ZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJy
b3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmll
dyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkva2V5LWlzLW51bWVyaWNp
bmRleC1kZXNjLWNvbmZpZ3VyYWJsZS5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZGVm
aW5lUHJvcGVydHkncyByZXN1bHQgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNl
wrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKSIKKyAgc3RyaWN0IG1v
ZGU6ICJUZXN0MjYyRXJyb3I6IGRlZmluZVByb3BlcnR5J3MgcmVzdWx0IEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LikiCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFs
cy9EZWZpbmVPd25Qcm9wZXJ0eS9rZXktaXMtbnVtZXJpY2luZGV4LmpzOgorICBkZWZhdWx0OiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3RydWXCuykgdG8g
YmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRvIGJl
IHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVk
QXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldE93blByb3BlcnR5L2luZGV4LXByb3AtZGVz
Yy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGhhdmUg
Y29uZmlndXJhYmxlOnRydWUuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFi
bGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5
cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1Byb3BlcnR5L2FicnVwdC1mcm9tLW9y
ZGluYXJ5LWhhcy1wYXJlbnQtaGFzcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6ICAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9U
eXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZm
ZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBs
ZSwgIjAiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKr
ZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0
dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0
cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFy
cmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXIuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjAiKSBtdXN0
IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8g
YmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9pbmZpbml0eS13aXRoLWRldGFjaGVkLWJ1ZmZlci5q
czoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0
eS9pbmhlcml0ZWQtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IDQyIEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiA0MiBF
eHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVj
dG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLWdyZWF0ZXItdGhhbi1sYXN0LWluZGV4
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LmhhcyhzYW1wbGUsICIxIikg
bXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjEiKSBtdXN0IHJldHVybiBmYWxz
ZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0
cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLWxvd2VyLXRoYW4temVyby5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTEiKSBtdXN0
IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8g
YmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTEiKSBtdXN0IHJldHVybiBmYWxzZSBF
eHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVj
dG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLW1pbnVzLXplcm8uanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIi0wIikgbXVzdCByZXR1cm4g
ZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJy
b3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIi0wIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQg
U2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBG
bG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50
ZXJuYWxzL0hhc1Byb3BlcnR5L2tleS1pcy1ub3QtaW50ZWdlci5qczoKLSAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogMS4xIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0
byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiAxLjEgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdhcyBu
b3QuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gYmUgY29uZmlndXJhYmxlLCBidXQgd2FzIG5vdC4g
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlD
b25zdHJ1Y3RvcnMvaW50ZXJuYWxzL1NldC9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRl
ZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNo
ZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3Qg
bW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hl
ZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3RlZCBTYW1lVmFs
dWUowqsxwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYHNhbXBsZVswXSA9IDFgIGlzIGZh
bHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzHCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3Ry
dWN0b3JzL2ludGVybmFscy9TZXQvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlw
ZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhl
IHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBl
RXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUg
dmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBgc2FtcGxlWzBdID0gMWAgaXMgZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7LCDC
q2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqsxwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRl
cm5hbHMvU2V0L3RvbnVtYmVyLXZhbHVlLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDog
J1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9t
IHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20g
dGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5
cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL1NldC90b251bWJlci12YWx1ZS10aHJvd3Mu
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbIjEuMSJdID0gb2JqYCB0aHJv
d3MgVGVzdDI2MkVycm9yIEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQg
bm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc2FtcGxlWyIxLjEiXSA9IG9iamAg
dGhyb3dzIFRlc3QyNjJFcnJvciBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1
bmRlZmluZWTCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqt1bmRlZmluZWTCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCiB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdFJh
bmdlL2VuLVVTLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFs
dWUowqsxLzMvMjAxOeKAieKAk+KAiTEvNS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEvNS8yMDE5
wrspIHRvIGJlIHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqsxLzMvMjAxOeKAieKAk+KAiTEvNS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEv
NS8yMDE5wrspIHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411639</attachid>
            <date>2020-10-16 18:07:52 -0700</date>
            <delta_ts>2020-10-17 00:59:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217854-20201016180751.patch</filename>
            <type>text/plain</type>
            <size>47821</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGM4NTU1ODBmYjMzZGQ2MGRlNWM2ODA1MjYxYmM1OWVmZTI0MDM5Li41M2E1YWNlODJhNTE1YWUz
MzY4M2Q2ODBlODM0ODQzNWU0NzU5ZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwg
bWV0aG9kcyBhZGhlcmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRyZXNzZXMgaHR0cHM6Ly9naXRodWIuY29tL3Rj
MzkvZWNtYTI2Mi9wdWxsLzIxNjQsCisgICAgICAgIHdoaWNoIGFsaWducyBkZXRhY2hlZCBidWZm
ZXIgc2VtYW50aWNzIGluIHR5cGVkIGFycmF5cyB3aXRoIHdlYiByZWFsaXR5LgorCisgICAgICAg
IEluIHBhcnRpY3VsYXI6CisgICAgICAgIC0gW1tIYXNQcm9wZXJ0eV1dIG11c3Qgbm90IHRocm93
CisgICAgICAgIC0gSW50ZWdlckluZGV4ZWRFbGVtZW50R2V0IChpLmUuIFtbR2V0T3duUHJvcGVy
dHldXSBhbmQgW1tHZXRdXSkgbXVzdCBub3QgdGhyb3cKKyAgICAgICAgLSBJbnRlZ2VySW5kZXhl
ZEVsZW1lbnRTZXQgKGkuZS4gW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIGFuZCBbW1NldF1dKSBtdXN0
IG5vdCB0aHJvdworICAgICAgICAtIEludGVnZXItaW5kZXhlZCBlbGVtZW50cyBtdXN0IGJlIFtb
Q29uZmlndXJhYmxlXV0gKHRvIGF2b2lkIGJyZWFraW5nIGEgW1tIYXNQcm9wZXJ0eV1dIGludmFy
aWFudCkKKyAgICAgICAgLSBbW0RlbGV0ZV1dIG11c3QgYmUgb3ZlcnJpZGRlbiB0byByZXR1cm4g
ZmFsc2UgZm9yIGludGVnZXItaW5kZXhlZCBlbGVtZW50cyAod2hpY2ggYXJlICpub3QqIGRlbGV0
YWJsZSkKKworICAgICAgICBUaGlzIHBhdGNoIGZ1cnRoZXJtb3JlIGVuc3VyZXMgdGhhdCBhbGwg
b2YgdGhlc2UgZXNzZW50aWFsIGludGVybmFsIG1ldGhvZHMgaGF2ZSBhIHNwZWMtcGVyZmVjdCBp
bXBsZW1lbnRhdGlvbi4KKworICAgICAgICBOb3RlIHRoYXQgdGhlcmUgYXJlIGEgY291cGxlIG9m
IGludGVyZXN0aW5nIHJpcHBsZSBlZmZlY3RzIGhlcmU6CisgICAgICAgIC0gVGhlIGZpbGwoKSwg
c29ydCgpLCBhbmQgc2V0KCkgbWV0aG9kcyBzaG91bGQgdGhyb3cgZXhwbGljaXRseSwgYnV0IHdl
J2QgYmVlbiBsZXR0aW5nIFtbR2V0XV0gdGhyb3cgaW5zdGVhZC4KKyAgICAgICAgLSBPdGhlciBj
YWxsYmFjay10YWtpbmcgbWV0aG9kcyBzaG91bGQgKm5vdCogdGhyb3cgYW55bW9yZTsgdGhleSBv
bmx5IGRpZCBzbyBpbXBsaWNpdGx5IHZpYSBbW0dldF1dIGFuZCBbW1NldF1dLgorCisgICAgICAg
ICogYnVpbHRpbnMvVHlwZWRBcnJheVByb3RvdHlwZS5qczoKKyAgICAgICAgKGZpbGwpOgorICAg
ICAgICAoc29ydCk6CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlldy5o
OgorICAgICAgICAqIHJ1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmg6Cisg
ICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpzZXQpOgorICAg
ICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6Z2V0T3duUHJvcGVy
dHlTbG90KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46
OnB1dCk6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Ojpk
ZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3
PEFkYXB0b3I+OjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChKU0M6OkpTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAg
KEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5QnlJ
bmRleCk6CisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmg6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpnZXRQcm9wZXJ0eVNsb3QpOgorICAgICAgICAoSlNDOjpKU09iamVjdDo6Z2V0Tm9uSW5kZXhQ
cm9wZXJ0eVNsb3QpOgorICAgICAgICAqIHJ1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHA6CisKIDIw
MjAtMTAtMTQgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgogCiAgICAg
ICAgIFVzZSBAcHV0QnlWYWxEaXJlY3QgaW5zdGVhZCBvZiBBcnJheS5wcm90b3R5cGUuQHB1c2gg
aW4gYnVpbHQtaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnVpbHRpbnMv
VHlwZWRBcnJheVByb3RvdHlwZS5qcyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9U
eXBlZEFycmF5UHJvdG90eXBlLmpzCmluZGV4IDljZGMzN2EzMTMzNGMyMmMxNzExYmY0MTRlZmRk
NjU2NmE2ZWYyNDYuLjc2MjEzYzI3OTkwNTc4NTI5Nzc4ZWZlZDBmMDRjMDI1OGIyOWMwMGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJvdG90
eXBlLmpzCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9UeXBlZEFycmF5UHJv
dG90eXBlLmpzCkBAIC05Niw2ICs5Niw5IEBAIGZ1bmN0aW9uIGZpbGwodmFsdWUgLyogWywgc3Rh
cnQgWywgZW5kXV0gKi8pCiAgICAgdmFyIHN0YXJ0ID0gQHR5cGVkQXJyYXlDbGFtcEFyZ3VtZW50
VG9TdGFydE9yRW5kKEBhcmd1bWVudCgxKSwgbGVuZ3RoLCAwKTsKICAgICB2YXIgZW5kID0gQHR5
cGVkQXJyYXlDbGFtcEFyZ3VtZW50VG9TdGFydE9yRW5kKEBhcmd1bWVudCgyKSwgbGVuZ3RoLCBs
ZW5ndGgpOwogCisgICAgaWYgKEBpc05ldXRlcmVkKHRoaXMpKQorICAgICAgICBAdGhyb3dUeXBl
RXJyb3IoIlVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUg
dmlldyIpOworCiAgICAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspCiAgICAgICAg
IHRoaXNbaV0gPSBudW1iZXI7CiAgICAgcmV0dXJuIHRoaXM7CkBAIC0xNzUsNyArMTc4LDE2IEBA
IGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKICAgICAgICAgcmV0dXJuIGEgPCBiID8gYSA6IGI7
CiAgICAgfQogCi0gICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBzcmMsIHNyY0luZGV4LCBzcmNFbmQs
IHdpZHRoLCBjb21wYXJhdG9yKQorICAgIHZhciBjb21wYXJlID0gKGEsIGIpID0+IHsKKyAgICAg
ICAgdmFyIHJlc3VsdCA9IEB0b051bWJlcihjb21wYXJhdG9yKGEsIGIpKTsKKworICAgICAgICBp
ZiAoQGlzTmV1dGVyZWQodGhpcykpCisgICAgICAgICAgICBAdGhyb3dUeXBlRXJyb3IoIlVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIpOworCisg
ICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfTsKKworICAgIGZ1bmN0aW9uIG1lcmdlKGRzdCwg
c3JjLCBzcmNJbmRleCwgc3JjRW5kLCB3aWR0aCkKICAgICB7CiAgICAgICAgIHZhciBsZWZ0ID0g
c3JjSW5kZXg7CiAgICAgICAgIHZhciBsZWZ0RW5kID0gbWluKGxlZnQgKyB3aWR0aCwgc3JjRW5k
KTsKQEAgLTE4NCw3ICsxOTYsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3IpCiAKICAgICAg
ICAgZm9yICh2YXIgZHN0SW5kZXggPSBsZWZ0OyBkc3RJbmRleCA8IHJpZ2h0RW5kOyArK2RzdElu
ZGV4KSB7CiAgICAgICAgICAgICBpZiAocmlnaHQgPCByaWdodEVuZCkgewotICAgICAgICAgICAg
ICAgIGlmIChsZWZ0ID49IGxlZnRFbmQgfHwgY29tcGFyYXRvcihzcmNbcmlnaHRdLCBzcmNbbGVm
dF0pIDwgMCkgeworICAgICAgICAgICAgICAgIGlmIChsZWZ0ID49IGxlZnRFbmQgfHwgY29tcGFy
ZShzcmNbcmlnaHRdLCBzcmNbbGVmdF0pIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBkc3Rb
ZHN0SW5kZXhdID0gc3JjW3JpZ2h0KytdOwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgICAgICB9CkBAIC0xOTQsNyArMjA2LDcgQEAgZnVuY3Rpb24gc29ydChjb21w
YXJhdG9yKQogICAgICAgICB9CiAgICAgfQogCi0gICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycmF5
LCB2YWx1ZUNvdW50LCBjb21wYXJhdG9yKQorICAgIGZ1bmN0aW9uIG1lcmdlU29ydChhcnJheSwg
dmFsdWVDb3VudCkKICAgICB7CiAgICAgICAgIHZhciBidWZmZXIgPSBbIF07CiAgICAgICAgIGJ1
ZmZlci5sZW5ndGggPSB2YWx1ZUNvdW50OwpAQCAtMjA0LDcgKzIxNiw3IEBAIGZ1bmN0aW9uIHNv
cnQoY29tcGFyYXRvcikKIAogICAgICAgICBmb3IgKHZhciB3aWR0aCA9IDE7IHdpZHRoIDwgdmFs
dWVDb3VudDsgd2lkdGggKj0gMikgewogICAgICAgICAgICAgZm9yICh2YXIgc3JjSW5kZXggPSAw
OyBzcmNJbmRleCA8IHZhbHVlQ291bnQ7IHNyY0luZGV4ICs9IDIgKiB3aWR0aCkKLSAgICAgICAg
ICAgICAgICBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHZhbHVlQ291bnQsIHdpZHRoLCBjb21w
YXJhdG9yKTsKKyAgICAgICAgICAgICAgICBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHZhbHVl
Q291bnQsIHdpZHRoKTsKIAogICAgICAgICAgICAgdmFyIHRtcCA9IHNyYzsKICAgICAgICAgICAg
IHNyYyA9IGRzdDsKQEAgLTIyNSw3ICsyMzcsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBhcmF0b3Ip
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChjb21wYXJhdG9yICE9PSBAdW5kZWZpbmVkKQot
ICAgICAgICBtZXJnZVNvcnQodGhpcywgbGVuZ3RoLCBjb21wYXJhdG9yKTsKKyAgICAgICAgbWVy
Z2VTb3J0KHRoaXMsIGxlbmd0aCk7CiAgICAgZWxzZQogICAgICAgICBAdHlwZWRBcnJheVNvcnQo
dGhpcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dl
bmVyaWNUeXBlZEFycmF5Vmlldy5oCmluZGV4IGE1Zjc3YjI2NzM1MGRhZTg2Y2EyYTRiMmZjZjI1
MTZiMzI4MGJjNDQuLjBjYTZjNDMyNTgxOTI4NzQ0MGQ5ZWM3N2RiZjE0MmNkN2U5Y2RjZTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3LmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlw
ZWRBcnJheVZpZXcuaApAQCAtOTAsOCArOTAsNiBAQCBlbnVtIGNsYXNzIENvcHlUeXBlIHsKIAog
ZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVk
RXJyb3JNZXNzYWdlOwogCi1KU0NfREVDTEFSRV9DVVNUT01fR0VUVEVSKHRocm93TmV1dGVyZWRU
eXBlZEFycmF5VHlwZUVycm9yKTsKLQogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KIGNsYXNz
IEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3IGZpbmFsIDogcHVibGljIEpTQXJyYXlCdWZmZXJWaWV3
IHsKIHB1YmxpYzoKQEAgLTE3MywxMiArMTcxLDcgQEAgcHVibGljOgogICAgICAgICB0eXBlbmFt
ZSBBZGFwdG9yOjpUeXBlIHZhbHVlID0gdG9OYXRpdmVGcm9tVmFsdWU8QWRhcHRvcj4oZ2xvYmFs
T2JqZWN0LCBqc1ZhbHVlKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFs
c2UpOwogCi0gICAgICAgIGlmIChpc05ldXRlcmVkKCkpIHsKLSAgICAgICAgICAgIHRocm93VHlw
ZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNo
ZWRFcnJvck1lc3NhZ2UpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0K
LSAgICAgICAgaWYgKGkgPj0gbV9sZW5ndGgpCisgICAgICAgIGlmIChpc05ldXRlcmVkKCkgfHwg
aSA+PSBtX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBzZXRJ
bmRleFF1aWNrbHlUb05hdGl2ZVZhbHVlKGksIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxp
bmVzLmgKaW5kZXggMjY5MGRhNjlmZjVhYjJmMDRmYzE5M2U5ZTk1NDIwOTA1NmQ0MDJmMy4uNzky
MWIwOWJlOWE4OTA0ZGY0Y2NmYTc3MWUzOGZmZDNhMWI4N2U2MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXdJbmxpbmVzLmgKQEAgLTMwMiw4ICszMDIsMTEgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5
VmlldzxBZGFwdG9yPjo6c2V0KAogICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZmFsc2UpOwogICAgICAgICAgICAgYm9vbCBzdWNjZXNzID0gc2V0SW5kZXgoZ2xvYmFsT2Jq
ZWN0LCBvZmZzZXQgKyBpLCB2YWx1ZSk7CiAgICAgICAgICAgICBFWENFUFRJT05fQVNTRVJUKCFz
Y29wZS5leGNlcHRpb24oKSB8fCAhc3VjY2Vzcyk7Ci0gICAgICAgICAgICBpZiAoIXN1Y2Nlc3Mp
CisgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNOZXV0
ZXJlZCgpKQorICAgICAgICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3Qs
IHNjb3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSB9CkBAIC0zMzYsMjggKzMzOSwxMSBAQCBib29sIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0eVNsb3QoCiB7CiAg
ICAgSlNHZW5lcmljVHlwZWRBcnJheVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmlj
VHlwZWRBcnJheVZpZXcqPihvYmplY3QpOwogCi0gICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBp
bmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewotICAgICAgICBpZiAodGhpc09iamVj
dC0+aXNOZXV0ZXJlZCgpKSB7Ci0gICAgICAgICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6Ok5vbmUpLCB0aHJvd05l
dXRlcmVkVHlwZWRBcnJheVR5cGVFcnJvcik7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQotCi0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5jYW5HZXRJbmRleFF1aWNrbHkoaW5k
ZXgudmFsdWUoKSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgc3Rh
dGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpEb250RGVsZXRlKSwgdGhpc09i
amVjdC0+Z2V0SW5kZXhRdWlja2x5KGluZGV4LnZhbHVlKCkpKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLQotICAg
IGlmIChpc0Nhbm9uaWNhbE51bWVyaWNJbmRleFN0cmluZyhwcm9wZXJ0eU5hbWUpKSB7Ci0gICAg
ICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0
Q3VzdG9tKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0
ZTo6Tm9uZSksIHRocm93TmV1dGVyZWRUeXBlZEFycmF5VHlwZUVycm9yKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgaWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRl
eCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIGdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1ZSgpLCBz
bG90KTsKIAorICAgIGlmIChpc0Nhbm9uaWNhbE51bWVyaWNJbmRleFN0cmluZyhwcm9wZXJ0eU5h
bWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQogCiAgICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CkBAIC0zNjcsMjQgKzM1MywxOCBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+OjpwdXQoCiAgICAgSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLAogICAg
IFB1dFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwotCiAgICAgSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRB
cnJheVZpZXcqPihjZWxsKTsKIAotICAgIC8vIGh0dHBzOi8vdGMzOS5naXRodWIuaW8vZWNtYTI2
Mi8jc2VjLWludGVnZXItaW5kZXhlZC1leG90aWMtb2JqZWN0cy1zZXQtcC12LXJlY2VpdmVyCi0g
ICAgLy8gSWdub3JlIHRoZSByZWNlaXZlciBldmVuIGlmIHRoZSByZWNlaXZlciBpcyBhbHRlcmVk
IHRvIG5vbiBiYXNlIHZhbHVlLgotICAgIC8vIDkuNC41LjUtMi1iLWkgUmV0dXJuID8gSW50ZWdl
ckluZGV4ZWRFbGVtZW50U2V0KE8sIG51bWVyaWNJbmRleCwgVikuCiAgICAgaWYgKE9wdGlvbmFs
PHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKLSAgICAgICAgUkVM
RUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBwdXRCeUluZGV4KHRoaXNPYmplY3QsIGdsb2JhbE9iamVj
dCwgaW5kZXgudmFsdWUoKSwgdmFsdWUsIHNsb3QuaXNTdHJpY3RNb2RlKCkpKTsKKyAgICAgICAg
cmV0dXJuIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1ZSgp
LCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CiAKICAgICBpZiAoaXNDYW5vbmljYWxOdW1l
cmljSW5kZXhTdHJpbmcocHJvcGVydHlOYW1lKSkgewotICAgICAgICBpZiAodGhpc09iamVjdC0+
aXNOZXV0ZXJlZCgpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBz
Y29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hlZEVycm9yTWVzc2FnZSk7CisgICAg
ICAgIC8vIENhc2VzIGxpa2UgJy0wJywgJzEuMScsIGV0Yy4gYXJlIHN0aWxsIG9ibGlnZWQgdG8g
Z2l2ZSB0aGUgUkhTIGEgY2hhbmNlIHRvIHRocm93LgorICAgICAgICB0b05hdGl2ZUZyb21WYWx1
ZTxBZGFwdG9yPihnbG9iYWxPYmplY3QsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAotICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6cHV0KHRoaXNPYmpl
Y3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOworICAgIHJldHVy
biBCYXNlOjpwdXQodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBzbG90KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KQEAgLTQwMywxNCArMzgz
LDE0IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRlZmluZU93blBy
b3BlcnR5KAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9OwogCi0gICAgICAg
IGlmIChpbmRleC52YWx1ZSgpID49IHRoaXNPYmplY3QtPm1fbGVuZ3RoKQorICAgICAgICBpZiAo
IXRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSAmJiBpbmRleC52YWx1ZSgpID49IHRoaXNPYmplY3Qt
Pm1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmIChkZXNj
cmlwdG9yLmlzQWNjZXNzb3JEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3JJZk5lZWRlZCgiQXR0ZW1wdGluZyB0byBzdG9yZSBhY2Nlc3NvciBwcm9wZXJ0eSBv
biBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAiKTsKIAotICAgICAgICBpZiAoZGVzY3JpcHRvci5j
b25maWd1cmFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcklmTmVlZGVk
KCJBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEg
dHlwZWQgYXJyYXkgYXQgaW5kZXg6ICIpOworICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1
cmFibGVQcmVzZW50KCkgJiYgIWRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCisgICAgICAgICAg
ICByZXR1cm4gdGhyb3dUeXBlRXJyb3JJZk5lZWRlZCgiQXR0ZW1wdGluZyB0byBzdG9yZSBub24t
Y29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6ICIpOwogCiAg
ICAgICAgIGlmIChkZXNjcmlwdG9yLmVudW1lcmFibGVQcmVzZW50KCkgJiYgIWRlc2NyaXB0b3Iu
ZW51bWVyYWJsZSgpKQogICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQo
IkF0dGVtcHRpbmcgdG8gc3RvcmUgbm9uLWVudW1lcmFibGUgcHJvcGVydHkgb24gYSB0eXBlZCBh
cnJheSBhdCBpbmRleDogIik7CkBAIC00MzQsMTYgKzQxNCwxNCBAQCB0ZW1wbGF0ZTx0eXBlbmFt
ZSBBZGFwdG9yPgogYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRl
UHJvcGVydHkoCiAgICAgSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBEZWxldGVQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNM
QVJFX1RIUk9XX1NDT1BFKHZtKTsKICAgICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KGNlbGwpOwogCi0gICAgaWYg
KHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgewotICAgICAgICBpZiAodGhpc09iamVjdC0+aXNO
ZXV0ZXJlZCgpKQotICAgICAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0cnVlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAKKyAgICBpZiAoT3B0aW9uYWw8dWlu
dDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQorICAgICAgICByZXR1cm4g
ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgaW5kZXgudmFs
dWUoKSk7CisKKyAgICBpZiAoaXNDYW5vbmljYWxOdW1lcmljSW5kZXhTdHJpbmcocHJvcGVydHlO
YW1lKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJv
cGVydHkodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
CkBAIC00NTMsMTUgKzQzMSwxMCBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0
b3I+OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KAogewogICAgIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2Jq
ZWN0KTsKIAotICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkpIHsKLSAgICAgICAgc2xv
dC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0
cmlidXRlOjpOb25lKSwgdGhyb3dOZXV0ZXJlZFR5cGVkQXJyYXlUeXBlRXJyb3IpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoIXRoaXNPYmplY3QtPmNhbkdldEluZGV4
UXVpY2tseShwcm9wZXJ0eU5hbWUpKQorICAgIGlmICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkg
fHwgIXRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShwcm9wZXJ0eU5hbWUpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2Jq
ZWN0LT5nZXRJbmRleFF1aWNrbHkocHJvcGVydHlOYW1lKSk7CisKKyAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9u
ZSksIHRoaXNPYmplY3QtPmdldEluZGV4UXVpY2tseShwcm9wZXJ0eU5hbWUpKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtNDc1LDEwICs0NDgsMTEgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFy
cmF5VmlldzxBZGFwdG9yPjo6cHV0QnlJbmRleCgKIAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRv
cj4KIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5
QnlJbmRleCgKLSAgICBKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKKyAgICBKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0
KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+
dm0oKTsKLSAgICByZXR1cm4gSlNDZWxsOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBnbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb20odm0sIHByb3BlcnR5TmFtZSkpOworICAgIC8vIEludGVnZXIt
aW5kZXhlZCBlbGVtZW50cyBjYW4ndCBiZSBkZWxldGVkLCBzbyB3ZSBtdXN0IHJldHVybiBmYWxz
ZSB3aGVuIHRoZSBpbmRleCBpcyB2YWxpZC4KKyAgICBKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFycmF5Vmlldyo+KGNlbGwpOworICAg
IHJldHVybiB0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkgfHwgcHJvcGVydHlOYW1lID49IHRoaXNP
YmplY3QtPm1fbGVuZ3RoOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rp
b25zLmgKaW5kZXggOTgyM2M2YmMwNDJhNmY5MzllZjJkMTgxMzIwMWJjNzI4ZDM2Mjg4ZS4uYWJl
MGRjMTI4OTQxYTBjMDY2YzI1MDc2ZTMxOTMyMjY1MDJjYWM3MCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCkBA
IC02MCw2ICs2MCw2IEBAIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3Bl
cnR5SXNFbnVtZXJhYmxlKTsKIEpTQ19ERUNMQVJFX0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY093
bktleXMpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jRGF0ZVRpbWVGb3Jt
YXQpOwogCi1kb3VibGUganNUb051bWJlcihTdHJpbmdWaWV3KTsKK0pTX0VYUE9SVF9QUklWQVRF
IGRvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXgg
NmM1MzlmY2UzMzRkYzZhNGViZGRjMjk4YzRiMGIxMGRmNTczMTFhMS4uMzFlMDBmOTgzOGRjZTE5
YTk4YzlkMjc5M2IxNTNjN2EyNjFiMjFjNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKQEAgLTEzNyw2ICsxMzcsOCBAQCBBTFdBWVNfSU5M
SU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCB1bnNpZwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBpZiAob2Jq
ZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlICYmIHNsb3QuaW50ZXJuYWxNZXRob2RUeXBl
KCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoaXNUeXBlZEFycmF5VHlwZShvYmpl
Y3QtPnR5cGUoKSkgJiYgcHJvcGVydHlOYW1lID49IGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+
KG9iamVjdCktPmxlbmd0aCgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBK
U1ZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgaWYgKExJS0VMWSghc3RydWN0dXJlLT50eXBlSW5m
bygpLm92ZXJyaWRlc0dldFByb3RvdHlwZSgpIHx8IHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkg
PT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkpCiAgICAgICAg
ICAgICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCh2bSk7CkBAIC0xODAs
NiArMTgyLDggQEAgQUxXQVlTX0lOTElORSBib29sIEpTT2JqZWN0OjpnZXROb25JbmRleFByb3Bl
cnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWMKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RU
eXBlICYmIHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgICAgIGlmIChpc1R5cGVkQXJyYXlUeXBlKG9iamVjdC0+dHlwZSgpKSAmJiBpc0Nh
bm9uaWNhbE51bWVyaWNJbmRleFN0cmluZyhwcm9wZXJ0eU5hbWUpKQorICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAg
ICAgICAgaWYgKExJS0VMWSghc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3Rv
dHlwZSgpIHx8IHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCmluZGV4IDk2OTVlYjA5NWRkMWEwMzNlMGEzMzUxZDUx
Y2Q2NzBmNTM3NDU4NzMuLjRiOWY5NWNmNjMxYmRhNTM1NGU3NTFhZDQwMjkxNjJjZGE3ZjdiYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3Bw
CkBAIC02NCwxMyArNjQsNSBAQCBNQUtFX1NfSU5GTyhGbG9hdDY0KTsKIAogTUFLRV9DT05TVFJV
Q1RPUlMoRGF0YVZpZXcpOwogCi1KU0NfREVGSU5FX0NVU1RPTV9HRVRURVIodGhyb3dOZXV0ZXJl
ZFR5cGVkQXJyYXlUeXBlRXJyb3IsIChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNv
ZGVkSlNWYWx1ZSBvYmplY3QsIFByb3BlcnR5TmFtZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFs
T2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsK
LSAgICBBU1NFUlRfVU5VU0VEKG9iamVjdCwganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oSlNW
YWx1ZTo6ZGVjb2RlKG9iamVjdCkpLT5pc05ldXRlcmVkKCkpOwotICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0
YWNoZWRFcnJvck1lc3NhZ2UpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZi
MTZjMzU3MTc1NTBhYWZkNmQ3MjA4MDBlZTU1ZDA5NjQxZTE5MzguLjlmZDlkNzM4OTgwYmMzNDAw
YzkzYTkxYTdjMjIxMTgzMTk2MGI4NTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0xMC0x
NiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAgICAgRW5z
dXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwgbWV0aG9kcyBhZGhlcmUgdG8gc3Bl
YworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODU0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBqcy9k
b20vZGZnLXR5cGVkLWFycmF5LW5ldXRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9t
L2dldE93blByb3BlcnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9t
L3NjcmlwdC10ZXN0cy9kZmctdHlwZWQtYXJyYXktbmV1dGVyLmpzOgorICAgICAgICBBZGp1c3Qg
dGVzdHMuCisKIDIwMjAtMTAtMTUgIEthcmwgUmFja2xlciAgPHJhY2tsZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04gKHIyNjc2NjIpOiBbIE1vamF2ZSsgZGVidWcgd2sxIF0gd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UvZXh0ZW5zaW9ucy93ZWJnbC1jb21wcmVzc2VkLXRleHR1cmUt
czN0Yy1zcmdiLmh0bWwgaXMgYSBmbGFreSBjcmFzaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
anMvZG9tL2RmZy10eXBlZC1hcnJheS1uZXV0ZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
anMvZG9tL2RmZy10eXBlZC1hcnJheS1uZXV0ZXItZXhwZWN0ZWQudHh0CmluZGV4IDU1NmJkNGQx
NWUzM2QyYzExOTU4NGVlNjViNzdiZDFlNjRjMDVmYzguLjljZGNlZTc4ZGEwMTRjOTMxNDgyODg0
OWFlYTcxNTNhMmEwMzNhYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9kZmctdHlw
ZWQtYXJyYXktbmV1dGVyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZGZn
LXR5cGVkLWFycmF5LW5ldXRlci1leHBlY3RlZC50eHQKQEAgLTgsOSArOCw5IEBAIFBBU1MgYXJy
YXlbMF0gaXMgNDIKIFBBU1MgZm9vKGFycmF5KSBpcyAxMDAKIFBBU1MgYmFyKGFycmF5KSBpcyA0
MgogUEFTUyBhcnJheS5sZW5ndGggaXMgMAotUEFTUyBhcnJheVswXSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20g
dGhlIHZpZXcuCitQQVNTIGFycmF5WzBdIGlzIHVuZGVmaW5lZAogUEFTUyBmb28oYXJyYXkpIGlz
IDAKLVBBU1MgYmFyKGFycmF5KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBVbmRlcmx5aW5n
IEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcuCitQQVNTIGJhcihh
cnJheSkgaXMgdW5kZWZpbmVkCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3Bl
cnR5RGVzY3JpcHRvci1leHBlY3RlZC50eHQKaW5kZXggOGVjMDExOWIzNzcxNGFjZjE0MzFiYjZh
NmQ3OTNlMTU5MjA0MDFkNi4uOTljYjkzMzcxODk3ZTRlNDU0ZTIzNTY5NDY4N2RiZDIxYjM5ZDk4
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRv
ci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVz
Y3JpcHRvci1leHBlY3RlZC50eHQKQEAgLTE0NCw3ICsxNDQsNyBAQCBQQVNTIE9iamVjdC5nZXRP
d25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkudmFsdWUgaXMgY2FudmFz
UGl4ZWxBcgogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVs
QXJyYXksIDApLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmhhc093blByb3BlcnR5
KCdzZXQnKSBpcyBmYWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNh
bnZhc1BpeGVsQXJyYXksIDApLmVudW1lcmFibGUgaXMgdHJ1ZQotUEFTUyBPYmplY3QuZ2V0T3du
UHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDApLmNvbmZpZ3VyYWJsZSBpcyBm
YWxzZQorUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJy
YXksIDApLmNvbmZpZ3VyYWJsZSBpcyB0cnVlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3Ioc2VsZWN0LCAwKS52YWx1ZSBpcyBzZWxlY3RbMF0KIFBBU1MgT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihzZWxlY3QsIDApLmhhc093blByb3BlcnR5KCdnZXQnKSBpcyBm
YWxzZQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgMCkuaGFz
T3duUHJvcGVydHkoJ3NldCcpIGlzIGZhbHNlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2RmZy10eXBlZC1hcnJheS1uZXV0ZXIuanMgYi9MYXlvdXRUZXN0cy9q
cy9kb20vc2NyaXB0LXRlc3RzL2RmZy10eXBlZC1hcnJheS1uZXV0ZXIuanMKaW5kZXggNzhjYWZj
MDBlNWJiNWY3YTA4ZjNhZGM0MmIyYjljNGEwNzdiOGQ4Ny4uZTNkZGI5NDNkNDg5MDJkOTY2Y2E0
OWVhODNiNDUwZTNmNWQyNDlhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9kZmctdHlwZWQtYXJyYXktbmV1dGVyLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvZGZnLXR5cGVkLWFycmF5LW5ldXRlci5qcwpAQCAtMjQsNyArMjQsNyBA
QCBzaG91bGRCZSgiYmFyKGFycmF5KSIsICI0MiIpOwogd2luZG93LnBvc3RNZXNzYWdlKGFycmF5
LCAiKiIsIFthcnJheS5idWZmZXJdKTsKIAogc2hvdWxkQmUoImFycmF5Lmxlbmd0aCIsICIwIik7
Ci1zaG91bGRUaHJvdygiYXJyYXlbMF0iKTsKK3Nob3VsZEJlKCJhcnJheVswXSIsICJ1bmRlZmlu
ZWQiKTsKIAogc2hvdWxkQmUoImZvbyhhcnJheSkiLCAiMCIpOwotc2hvdWxkVGhyb3coImJhcihh
cnJheSkiKTsKK3Nob3VsZEJlKCJiYXIoYXJyYXkpIiwgInVuZGVmaW5lZCIpOwpkaWZmIC0tZ2l0
IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCA0MTMyYTgxODQ3
NGNmNDhmNTA3OWJhYThhMTZlZGNlYTI5ZmNkZmQxLi5kNWYzNTc2ODY2ODE5MTUzMzllODZjYjA0
ZWIwODhkYzQwZDI3ODA5IDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZworKysgYi9KU1Rl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTE2ICBSb3NzIEtpcnNsaW5n
ICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBFbnN1cmUgJVR5cGVkQXJyYXkl
IGVzc2VudGlhbCBpbnRlcm5hbCBtZXRob2RzIGFkaGVyZSB0byBzcGVjCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4NTQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWFj
Y2Vzcy1tb25vbW9ycGhpYy1uZXV0ZXJlZC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJh
eS1hY2Nlc3MtbmV1dGVyZWQuanM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktY29uZmln
dXJlLWluZGV4LmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWZ1bmN0aW9ucy13aXRo
LW5ldXRlcmVkLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWdldG93bnByb3BlcnR5
LmpzOiBSZW5hbWVkIGZyb20gSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1nZXRvd25wcm9wZXJ0
eS1ub3QtY29uZmlndXJhYmxlLmpzLgorICAgICAgICBBZGp1c3QgdGVzdHMuCisKKyAgICAgICAg
KiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorICAgICAgICBBZGRyZXNzIGFsbCB0ZXN0IGZh
aWx1cmVzIHVuZGVyIGJ1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy4K
KyAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSBhIHNsZXcgb2YgY29ycmVjdGlvbnMgbmVlZGVk
IGZvciB0aGVzZSB0ZXN0IGNhc2VzLAorICAgICAgICB3aGljaCB3ZXJlIGRpc2NvdmVyZWQgaW4g
dGhlIGNvdXJzZSBvZiB3b3JraW5nIG9uIHRoaXMgcGF0Y2g6CisgICAgICAgIGh0dHBzOi8vZ2l0
aHViLmNvbS90YzM5L3Rlc3QyNjIvcHVsbC8yODMzI2lzc3VlY29tbWVudC03MDk2MzU4NTAKKyAg
ICAgICAgQWNjb3JkaW5nbHksIHRoZXNlIHJlbWFpbmluZyBsaW5lcyBzaG91bGQgYWxsIGRpc2Fw
cGVhciBpbiB0aGUgZnV0dXJlLgorCiAyMDIwLTEwLTE0ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5r
aXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVzdDI2MiAoMjAyMC4xMC4xNCkK
ZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW1vbm9tb3JwaGlj
LW5ldXRlcmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBo
aWMtbmV1dGVyZWQuanMKaW5kZXggODFkN2MzYmQyNzhjOWU2ZjRjNTE3ZDU4YzJmYzdhNzg2NTIw
NjcxYy4uYmViYTg1ZWQ4YzQ5MGNkNzJiYjVmMmUyZDJjNzY0ZDUxMDgyMWM2YyAxMDA2NDQKLS0t
IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQu
anMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1
dGVyZWQuanMKQEAgLTEsNjEgKzEsOSBAQAogdHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50
OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMy
QXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07CiAKLQotZnVu
Y3Rpb24gY2hlY2soYXJyYXksIHRodW5rLCBjb3VudCkgewotICAgIGxldCBmYWlsZWQgPSB0cnVl
OwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5rKGFycmF5LCBjb3VudCk7Ci0gICAgfSBjYXRjaChl
KSB7Ci0gICAgICAgIGlmIChlICE9ICJUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIg
aGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIpCi0gICAgICAgICAgICB0aHJvdyBuZXcg
RXJyb3IoW3RodW5rLCBjb3VudCwgZV0pOwotICAgICAgICBmYWlsZWQgPSBmYWxzZTsKLSAgICB9
Ci0gICAgaWYgKGZhaWxlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKFt0aHVuaywgY291bnRd
KTsKLX0KLW5vSW5saW5lKGNoZWNrKTsKLQotZnVuY3Rpb24gdGVzdCh0aHVuaywgYXJyYXkpIHsK
LSAgICBsZXQgZm4gPSBGdW5jdGlvbigiYXJyYXkiLCAiaSIsIHRodW5rKTsKLSAgICBub0lubGlu
ZShmbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgICAgICBjaGVj
ayhhcnJheSwgZm4sIGkpOwotfQotCi1mb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5
cykgewotICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJB
cnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIHRlc3QoImFycmF5WzBdIiwgYXJyYXkpOwot
ICAgIHRlc3QoImRlbGV0ZSBhcnJheVswXSIsIGFycmF5KTsKLSAgICB0ZXN0KCJPYmplY3QuZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCAwKSIsIGFycmF5KTsKLSAgICB0ZXN0KCJhcnJh
eVswXSA9IDEiLCBhcnJheSk7Ci0gICAgdGVzdCgiYXJyYXlbaV0gPSAxIiwgYXJyYXkpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0RlRMKHRodW5rLCBhcnJheSwgZmFpbEFycmF5KSB7Ci0gICAgbGV0IGZu
ID0gRnVuY3Rpb24oImFycmF5IiwgImkiLCB0aHVuayk7Ci0gICAgbm9JbmxpbmUoZm4pOwotICAg
IGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKLSAgICAgICAgZm4oYXJyYXksIGkpCi0g
ICAgY2hlY2soZmFpbEFycmF5LCBmbiwgMTAwMDApOwotfQotCi1mb3IgKGxldCBjb25zdHJ1Y3Rv
ciBvZiB0eXBlZEFycmF5cykgewotICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7
Ci0gICAgbGV0IGZhaWxBcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJB
cnJheUJ1ZmZlcihmYWlsQXJyYXkuYnVmZmVyKTsKLSAgICB0ZXN0RlRMKCJhcnJheVswXSIsIGFy
cmF5LCBmYWlsQXJyYXkpOwotICAgIHRlc3RGVEwoImRlbGV0ZSBhcnJheVswXSIsIGFycmF5LCBm
YWlsQXJyYXkpOwotICAgIHRlc3RGVEwoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
YXJyYXksIDApIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0gICAgdGVzdEZUTCgiYXJyYXlbMF0gPSAx
IiwgYXJyYXksIGZhaWxBcnJheSk7Ci0gICAgdGVzdEZUTCgiYXJyYXlbaV0gPSAxIiwgYXJyYXks
IGZhaWxBcnJheSk7Ci19Ci0KLQogZnVuY3Rpb24gY2hlY2tOb0V4Y2VwdGlvbihhcnJheSwgdGh1
bmssIGNvdW50KSB7CiAgICAgdGh1bmsoYXJyYXksIGNvdW50KTsKIH0KLW5vSW5saW5lKGNoZWNr
KTsKK25vSW5saW5lKGNoZWNrTm9FeGNlcHRpb24pOwogCiBmdW5jdGlvbiB0ZXN0Tm9FeGNlcHRp
b24odGh1bmssIGFycmF5KSB7CiAgICAgbGV0IGZuID0gRnVuY3Rpb24oImFycmF5IiwgImkiLCB0
aHVuayk7CkBAIC02Nyw3ICsxNSwxMiBAQCBmdW5jdGlvbiB0ZXN0Tm9FeGNlcHRpb24odGh1bmss
IGFycmF5KSB7CiBmb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewogICAgIGxl
dCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihh
cnJheS5idWZmZXIpOwotICAgIHRlc3ROb0V4Y2VwdGlvbigiT2JqZWN0LmRlZmluZVByb3BlcnR5
KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxz
ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSIsIGFycmF5KTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oImFy
cmF5WzBdIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiZGVsZXRlIGFycmF5WzBdIiwg
YXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihhcnJheSwgMCkiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJhcnJheVswXSA9
IDEiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJhcnJheVtpXSA9IDEiLCBhcnJheSk7
CisgICAgdGVzdE5vRXhjZXB0aW9uKCJPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksIDAsIHsg
dmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6
IHRydWUgfSkiLCBhcnJheSk7CiB9CiAKIGZ1bmN0aW9uIHRlc3RGVExOb0V4Y2VwdGlvbih0aHVu
aywgYXJyYXksIGZhaWxBcnJheSkgewpAQCAtNzcsOSArMzAsMTUgQEAgZnVuY3Rpb24gdGVzdEZU
TE5vRXhjZXB0aW9uKHRodW5rLCBhcnJheSwgZmFpbEFycmF5KSB7CiAgICAgICAgIGZuKGFycmF5
LCBpKQogICAgIGNoZWNrTm9FeGNlcHRpb24oZmFpbEFycmF5LCBmbiwgMTAwMDApOwogfQorCiBm
b3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewogICAgIGxldCBhcnJheSA9IG5l
dyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgbGV0IGZhaWxBcnJheSA9IG5ldyBjb25zdHJ1Y3Rvcigx
MCk7CiAgICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihmYWlsQXJyYXkuYnVmZmVyKTsKLSAgICB0ZXN0
RlRMTm9FeGNlcHRpb24oIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTog
MSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUg
fSkiLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oImFycmF5WzBd
IiwgYXJyYXksIGZhaWxBcnJheSk7CisgICAgdGVzdEZUTE5vRXhjZXB0aW9uKCJkZWxldGUgYXJy
YXlbMF0iLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oIk9iamVj
dC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApIiwgYXJyYXksIGZhaWxBcnJheSk7
CisgICAgdGVzdEZUTE5vRXhjZXB0aW9uKCJhcnJheVswXSA9IDEiLCBhcnJheSwgZmFpbEFycmF5
KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oImFycmF5W2ldID0gMSIsIGFycmF5LCBmYWlsQXJy
YXkpOworICAgIHRlc3RGVExOb0V4Y2VwdGlvbigiT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5
LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVt
ZXJhYmxlOiB0cnVlIH0pIiwgYXJyYXksIGZhaWxBcnJheSk7CiB9CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1uZXV0ZXJlZC5qcyBiL0pTVGVzdHMvc3RyZXNz
L3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzCmluZGV4IGM1MjE1MmZiYmYxYWY4MjQ0MWE0
MzY5NjkxZTQ1NmI4YmUyZGI1MTQuLmFiZWIwNTk5OTkyNTA5ODVhYjkxOGViNDI1OTQzNjcyNjlk
MDczOTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW5ldXRl
cmVkLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpz
CkBAIC0xLDMzICsxLDUgQEAKIHR5cGVkQXJyYXlzID0gW0ludDhBcnJheSwgVWludDhBcnJheSwg
VWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQzMkFycmF5LCBV
aW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwogCi0KLWZ1bmN0aW9uIGNo
ZWNrKHRodW5rLCBjb3VudCkgewotICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7
Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIGxldCBmYWlsZWQg
PSB0cnVlOwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5rKGFycmF5KTsKLSAgICB9IGNhdGNoKGUp
IHsKLSAgICAgICAgaWYgKGUgIT0gIlR5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBo
YXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IikKLSAgICAgICAgICAgIHRocm93IG5ldyBF
cnJvcihbdGh1bmssIGNvdW50LCBlXSk7Ci0gICAgICAgIGZhaWxlZCA9IGZhbHNlOwotICAgIH0K
LSAgICBpZiAoZmFpbGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoW3RodW5rLCBjb3VudF0p
OwotfQotCi1mdW5jdGlvbiB0ZXN0KHRodW5rLCBjb3VudCkgewotICAgIGZvciAoY29uc3RydWN0
b3Igb2YgdHlwZWRBcnJheXMpCi0gICAgICAgIGNoZWNrKHRodW5rLCBjb3VudCk7Ci19Ci0KLWZv
ciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewotICAgIHRlc3QoKGFycmF5KSA9PiBhcnJh
eVswXSwgaSk7Ci0gICAgdGVzdCgoYXJyYXkpID0+IGRlbGV0ZSBhcnJheVswXSwgaSk7Ci0gICAg
dGVzdCgoYXJyYXkpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksIDAp
LCBpKTsKLSAgICB0ZXN0KChhcnJheSkgPT4gYXJyYXlbMF0gPSAxLCBpKTsKLX0KLQogZnVuY3Rp
b24gY2hlY2tOb0V4Y2VwdGlvbih0aHVuaywgY291bnQpIHsKICAgICBsZXQgYXJyYXkgPSBuZXcg
Y29uc3RydWN0b3IoMTApOwogICAgIHRyYW5zZmVyQXJyYXlCdWZmZXIoYXJyYXkuYnVmZmVyKTsK
QEAgLTQwLDUgKzEyLDkgQEAgZnVuY3Rpb24gdGVzdE5vRXhjZXB0aW9uKHRodW5rLCBjb3VudCkg
ewogfQogCiBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKLSAgICB0ZXN0Tm9FeGNl
cHRpb24oKGFycmF5KSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksIDAsIHsgdmFsdWU6
IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVl
IH0pLCBpKQorICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IGFycmF5WzBdLCBpKTsKKyAg
ICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBkZWxldGUgYXJyYXlbMF0sIGkpOworICAgIHRl
c3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Io
YXJyYXksIDApLCBpKTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBhcnJheVswXSA9
IDEsIGkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTog
dHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSwgaSkKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktY29uZmlndXJlLWluZGV4LmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRh
cnJheS1jb25maWd1cmUtaW5kZXguanMKaW5kZXggNTdhZWYzNzY5YjEzYzAxNmYzYTg0YmY1MzJl
NzRmNTkyNzlmYmY3Ny4uZTQ2NWJkMTBmMzAwMzNlODBmMDAyMTVmN2I3OTQ1MjI0Yzg0MmFlOCAx
MDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUtaW5kZXguanMK
KysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUtaW5kZXguanMKQEAgLTQw
LDEzICs0MCwxMyBAQCBmdW5jdGlvbiB0ZXN0KGFycmF5LCBhLCBjLCBlcnJvciApIHsKIGZ1bmN0
aW9uIGZvbygpIHsKICAgICBmb3IgKGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7CiAgICAg
ICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICAgICAgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgdHJ1ZSkpOwor
ICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2Us
IHRydWUsIHRydWUsIHRydWUpKTsKICAgICAgICAgYXNzZXJ0KGFbMF0gPT09IDEpOwotICAgICAg
ICBhc3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIDAsIG1ha2VEZXNj
cmlwdG9yKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5n
IHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJh
eS4iKSk7Ci0gICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHko
YSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpLCAiVHlwZUVy
cm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkg
b24gYSB0eXBlZCBhcnJheS4iKSk7Ci0gICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIGZhbHNlLCBmYWxzZSwg
dHJ1ZSksICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gc3RvcmUgbm9uLXdyaXRhYmxlIGluZGV4
ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7CisgICAgICAgIGFzc2VydFRocm93cygo
KSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRy
dWUsIHRydWUsIGZhbHNlKSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBub24tZW51
bWVyYWJsZSBpbmRleGVkIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkuIikpOworICAgICAgICBh
c3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlw
dG9yKGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRv
IHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4i
KSk7CisgICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwg
MCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVlKSwgIlR5cGVFcnJvcjog
QXR0ZW1wdGluZyB0byBzdG9yZSBub24td3JpdGFibGUgaW5kZXhlZCBwcm9wZXJ0eSBvbiBhIHR5
cGVkIGFycmF5LiIpKTsKIAotICAgICAgICB0ZXN0KGEsIGZhbHNlLCB0cnVlLCAiVHlwZUVycm9y
OiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwor
ICAgICAgICB0ZXN0KGEsIGZhbHNlLCBmYWxzZSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBz
dG9yZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwogICAgICAgICBmb3IgKGMgb2YgYm9v
bHMpIHsKICAgICAgICAgICAgIHRlc3QoYSwgdHJ1ZSwgYywgIlR5cGVFcnJvcjogQXR0ZW1wdGlu
ZyB0byBzdG9yZSBhY2Nlc3NvciBpbmRleGVkIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkuIikK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mdW5jdGlv
bnMtd2l0aC1uZXV0ZXJlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZnVuY3Rpb25z
LXdpdGgtbmV1dGVyZWQuanMKaW5kZXggY2NhZDNhMGVlMDhiN2Y0Yzg3NTE4Y2E1M2EzOTIyNTlh
MTU2NjRmOC4uNTQ4NDE5ZjhmNjFhMWU2NTZlNGUwYjJlOWYwZDY1YjBhNDRiMjJmZiAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5q
cworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZ1bmN0aW9ucy13aXRoLW5ldXRlcmVk
LmpzCkBAIC03NywyMiArNzcsMTMgQEAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpKyspCiAv
LyBUZXN0IHRoYXQgd2UgaGFuZGxlIG5ldXRlcmluZyBmb3IgYW55IHRvSW50ZWdlciBuZXV0ZXJp
bmcgdGhlIGFycmF5YnVmZmVyLgogcHJvdG90eXBlRnVuY3Rpb25zID0gWwogICAgIHsgZnVuYzpw
cm90by5jb3B5V2l0aGluLCBhcmdzOlsicHJpbSIsICJwcmltIiwgInByaW0iXSB9LAotICAgIHsg
ZnVuYzpwcm90by5ldmVyeSwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVuYzpwcm90by5maWxs
LCBhcmdzOlsicHJpbSIsICJwcmltIiwgInByaW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5maWx0
ZXIsIGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8uZmluZCwgYXJnczpbImZ1bmMi
XSB9LAotICAgIHsgZnVuYzpwcm90by5maW5kSW5kZXgsIGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7
IGZ1bmM6cHJvdG8uZm9yRWFjaCwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVuYzpwcm90by5p
bmRleE9mLCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAgICAgeyBmdW5jOnByb3RvLmluY2x1ZGVz
LCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAgICAgeyBmdW5jOnByb3RvLmpvaW4sIGFyZ3M6WyJw
cmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8ubGFzdEluZGV4T2YsIGFyZ3M6WyJuYSIsICJwcmlt
Il0gfSwKLSAgICB7IGZ1bmM6cHJvdG8ubWFwLCBhcmdzOlsiZnVuYyJdIH0sCi0gICAgeyBmdW5j
OnByb3RvLnJlZHVjZSwgYXJnczpbImZ1bmMiXSB9LAotICAgIHsgZnVuYzpwcm90by5yZWR1Y2VS
aWdodCwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVuYzpwcm90by5zZXQsIGFyZ3M6WyJhcnJh
eSIsICJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uc2xpY2UsIGFyZ3M6WyJwcmltIiwgInBy
aW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5zb21lLCBhcmdzOlsiZnVuYyJdIH0sCiAgICAgeyBm
dW5jOnByb3RvLnNvcnQsIGFyZ3M6WyJmdW5jIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uc3ViYXJy
YXksIGFyZ3M6WyJwcmltIiwgInByaW0iXSB9LAogXTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3Ry
ZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNvbmZpZ3VyYWJsZS5qcyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNvbmZpZ3VyYWJsZS5qcwpk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNkYTlkOTI1ZmY4YjM5NDE3YWJkZWZkZDBl
YjdkZGJmNjkyODI1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWdldG93bnByb3BlcnR5LW5vdC1jb25maWd1
cmFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi10eXBlZEFycmF5cyA9IFtJ
bnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4Q2xhbXBlZEFycmF5LCBJbnQxNkFycmF5LCBVaW50
MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFy
cmF5XTsKLQotZnVuY3Rpb24gYXNzZXJ0KGNvbmQpIHsKLSAgICBpZiAoIWNvbmQpCi0gICAgICAg
IHRocm93IG5ldyBFcnJvcigiYmFkIGFzc2VydGlvbiEiKTsKLX0KLQotZnVuY3Rpb24gZm9vKCkg
ewotICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKLSAgICAgICAgbGV0IGEg
PSBuZXcgY29uc3RydWN0b3IoMTApOwotICAgICAgICBsZXQgYiA9IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoYSwgMCk7Ci0gICAgICAgIGFzc2VydChiLnZhbHVlID09PSAwKTsKLSAg
ICAgICAgYXNzZXJ0KGIud3JpdGFibGUgPT09IHRydWUpOwotICAgICAgICBhc3NlcnQoYi5lbnVt
ZXJhYmxlID09PSB0cnVlKTsKLSAgICAgICAgYXNzZXJ0KGIuY29uZmlndXJhYmxlID09PSBmYWxz
ZSk7Ci0gICAgfQotfQotCi1mb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKQotICAgIGZvbygp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1nZXRvd25wcm9wZXJ0eS5q
cyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHkuanMKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZTM5MmViNzk3NTBkNzA3MTZmNjg0ZGExODZkMTk0MGY4ZjRkYzVlMAotLS0gL2Rldi9udWxs
CisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHkuanMKQEAgLTAs
MCArMSwyMCBAQAordHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENs
YW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFy
cmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07CisKK2Z1bmN0aW9uIGFzc2VydChjb25k
KSB7CisgICAgaWYgKCFjb25kKQorICAgICAgICB0aHJvdyBuZXcgRXJyb3IoImJhZCBhc3NlcnRp
b24hIik7Cit9CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICBmb3IgKGNvbnN0cnVjdG9yIG9mIHR5
cGVkQXJyYXlzKSB7CisgICAgICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKKyAgICAg
ICAgbGV0IGIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGEsIDApOworICAgICAg
ICBhc3NlcnQoYi52YWx1ZSA9PT0gMCk7CisgICAgICAgIGFzc2VydChiLndyaXRhYmxlID09PSB0
cnVlKTsKKyAgICAgICAgYXNzZXJ0KGIuZW51bWVyYWJsZSA9PT0gdHJ1ZSk7CisgICAgICAgIGFz
c2VydChiLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSk7CisgICAgfQorfQorCitmb3IgKGxldCBpID0g
MDsgaSA8IDEwMDsgaSsrKQorICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy90ZXN0MjYy
L2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sCmlu
ZGV4IGMyNTE3N2ZiODU5NTNmYWQ1MWRjY2U2YjY2OWYxZDE2MGE5MWIzOTAuLmE3NmJlZTVhZTQ1
MGIyZDJhM2RiMDY0NDY1OWI2NjE5MDc1MWU5MTUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2
Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlh
bWwKQEAgLTEyNDAsMTUgKzEyNDAsNDIgQEAgdGVzdC9idWlsdC1pbnMvUmVnRXhwL3Byb3RvdHlw
ZS9leGVjL3UtbGFzdGluZGV4LWFkdi5qczoKIHRlc3QvYnVpbHQtaW5zL1JlZ0V4cC9xdWFudGlm
aWVyLWludGVnZXItbGltaXQuanM6CiAgIGRlZmF1bHQ6ICdTeW50YXhFcnJvcjogSW52YWxpZCBy
ZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKICAg
c3RyaWN0IG1vZGU6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51
bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJy
YXkvcHJvdG90eXBlL2V2ZXJ5L2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVy
cm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2
MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3Rv
dHlwZS9maWx0ZXIvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2Zp
bmQvcHJlZGljYXRlLW1heS1kZXRhY2gtYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiB0aHJvd3MgYSBUeXBlRXJyb3IgZ2V0dGluZyBhIHZhbHVlIGZyb20gdGhlIGRldGFjaGVk
IGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlv
biB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogdGhyb3dzIGEgVHlwZUVycm9yIGdldHRpbmcgYSB2YWx1
ZSBmcm9tIHRoZSBkZXRhY2hlZCBidWZmZXIgRXhwZWN0ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhy
b3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2ZpbmRJbmRl
eC9wcmVkaWNhdGUtbWF5LWRldGFjaC1idWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IHRocm93cyBhIFR5cGVFcnJvciBnZXR0aW5nIGEgdmFsdWUgZnJvbSB0aGUgZGV0YWNoZWQg
YnVmZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiB0aHJvd3MgYSBUeXBlRXJyb3IgZ2V0dGluZyBhIHZhbHVl
IGZyb20gdGhlIGRldGFjaGVkIGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJv
d24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvZm9yRWFjaC9j
YWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvbWFwL2NhbGxiYWNrZm4t
ZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5
cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBi
dXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0
L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9yZWR1Y2UvY2FsbGJhY2tmbi1kZXRhY2hi
dWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9y
IGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3Qg
YSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3JlZHVjZVJpZ2h0L2NhbGxiYWNrZm4tZGV0YWNoYnVm
ZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBi
dXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEg
VGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRhY2hlZC1idWZmZXItY3VzdG9tLWN0b3It
b3RoZXItdGFyZ2V0dHlwZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQg
b2JqWzBdIHRvIGhhdmUgY29uZmlndXJhYmxlOnRydWUuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8g
aGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGJlIGNvbmZpZ3VyYWJs
ZSwgYnV0IHdhcyBub3QuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBt
b2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gYmUgY29uZmlndXJhYmxlLCBi
dXQgd2FzIG5vdC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXkvcHJvdG90eXBlL3NsaWNlL2RldGFjaGVkLWJ1ZmZlci16ZXJvLWNvdW50LWN1
c3RvbS1jdG9yLW90aGVyLXRhcmdldHR5cGUuanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVu
ZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5k
ZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3Rv
dHlwZS9zbGljZS9kZXRhY2hlZC1idWZmZXItemVyby1jb3VudC1jdXN0b20tY3Rvci1zYW1lLXRh
cmdldHR5cGUuanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZm
ZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZl
ciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zb21lL2NhbGxiYWNr
Zm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBh
IFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3JzL2J1ZmZlci1hcmcvYnl0
ZW9mZnNldC10by1udW1iZXItZGV0YWNoYnVmZmVyLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKQEAgLTEzMDksODQgKzEzMzYsMjQgQEAgdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3ItYnVmZmVyLWN0b3IK
IHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvdHlwZWRhcnJheS1h
cmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXZhbHVlLW5vdC1vYmotdGhyb3dzLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0
IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3Ig
dG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rv
cnMvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L3RvbnVtYmVyLXZhbHVlLWRldGFjaGVkLWJ1
ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBo
YXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhh
cyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0RlbGV0
ZS9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2ludGVybmFscy9EZWxldGUvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlw
ZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhl
IHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBl
RXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUg
dmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvRGVsZXRlL2tleS1pcy1vdXQtb2YtYm91bmRzLW5v
bi1zdHJpY3QuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFRoZSB2YWx1ZSBvZiBgZGVs
ZXRlIHNhbXBsZVsiMSJdYCBpcyB0cnVlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2ZhbHNlwrssIMKr
dHJ1ZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWxldGUva2V5LWlzLW91
dC1vZi1ib3VuZHMtc3RyaWN0LmpzOgotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5hYmxl
IHRvIGRlbGV0ZSBwcm9wZXJ0eS4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9kZXRhY2hlZC1i
dWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlC
dWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1
ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFs
cy9HZXQvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5
aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlp
bmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9y
cy9pbnRlcm5hbHMvR2V0L2luZmluaXR5LWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDog
J1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9t
IHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20g
dGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5
cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtbm90LWludGVnZXIuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjog
OS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjogOS4xLjguMSAzLmMg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlD
b25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtbm90LW1pbnVzLXplcm8uanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjogOS4xLjgu
MSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rp
bmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1
Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtb3V0LW9mLWJvdW5kcy5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9p
bnRlcm5hbHMvR2V0T3duUHJvcGVydHkvZGV0YWNoZWQtYnVmZmVyLXJlYWxtLmpzOgotICBkZWZh
dWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVk
IGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1v
ZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQg
ZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1p
bnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0T3duUHJvcGVydHkvZGV0YWNo
ZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVm
ZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZm
ZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMv
RGVmaW5lT3duUHJvcGVydHkva2V5LWlzLW51bWVyaWNpbmRleC1kZXNjLWNvbmZpZ3VyYWJsZS5q
czoKKyAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZGVmaW5lUHJvcGVydHkncyByZXN1bHQgRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKSIKKyAgc3RyaWN0IG1vZGU6ICJUZXN0MjYyRXJyb3I6IGRlZmlu
ZVByb3BlcnR5J3MgcmVzdWx0IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7
KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LikiCit0ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWZpbmVPd25Qcm9wZXJ0eS9rZXkt
aXMtbnVtZXJpY2luZGV4LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBT
YW1lVmFsdWUowqtmYWxzZcK7LCDCq3RydWXCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgU2Ft
ZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJu
YWxzL0dldE93blByb3BlcnR5L2luZGV4LXByb3AtZGVzYy5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGhhdmUgY29uZmlndXJhYmxlOnRydWUuIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBG
bG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50
ZXJuYWxzL0hhc1Byb3BlcnR5L2FicnVwdC1mcm9tLW9yZGluYXJ5LWhhcy1wYXJlbnQtaGFzcHJv
cGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6ICAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2lu
dGVybmFscy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6
ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjAiKSBtdXN0IHJldHVybiBmYWxz
ZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
UmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVW
YWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFs
cy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjAiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBT
YW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMo
c2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXC
uywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0
eS9pbmZpbml0eS13aXRoLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJv
cjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5
Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9pbmhlcml0ZWQtcHJvcGVydHkuanM6
Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IDQyIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXC
uywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiA0MiBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVl
wrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwot
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVy
dHkva2V5LWlzLWdyZWF0ZXItdGhhbi1sYXN0LWluZGV4LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2
MkVycm9yOiBSZWZsZWN0LmhhcyhzYW1wbGUsICIxIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3Qu
aGFzKHNhbXBsZSwgIjEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0
cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJv
cGVydHkva2V5LWlzLWxvd2VyLXRoYW4temVyby5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBT
YW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMo
c2FtcGxlLCAiLTEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVl
wrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwot
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVy
dHkva2V5LWlzLW1pbnVzLXplcm8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxl
Y3QuaGFzKHNhbXBsZSwgIi0wIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwg
Ii0wIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2Zh
bHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1Byb3BlcnR5L2tleS1p
cy1ub3QtaW50ZWdlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogMS4xIEV4cGVjdGVk
IFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiAxLjEgRXhwZWN0
ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2Jq
WzBdIHRvIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdhcyBub3QuIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0g
dG8gYmUgY29uZmlndXJhYmxlLCBidXQgd2FzIG5vdC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL1Nl
dC9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVb
MF0gPSAxYCBpcyBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxwrssIMKrZmFsc2XCuykgdG8g
YmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rl
c3QyNjJFcnJvcjogYHNhbXBsZVswXSA9IDFgIGlzIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjC
qzHCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9TZXQvZGV0
YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5
QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlC
dWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgc2FtcGxlWzBdID0gMWAgaXMg
ZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxwrssIMKrZmFs
c2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0L3RvbnVtYmVyLXZhbHVl
LWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBB
cnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFy
cmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBG
bG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50
ZXJuYWxzL1NldC90b251bWJlci12YWx1ZS10aHJvd3MuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IGBzYW1wbGVbIjEuMSJdID0gb2JqYCB0aHJvd3MgVGVzdDI2MkVycm9yIEV4cGVjdGVk
IGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiBgc2FtcGxlWyIxLjEiXSA9IG9iamAgdGhyb3dzIFRlc3QyNjJFcnJvciBFeHBl
Y3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhy
b3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1bmRlZmluZWTCuywgwqtmYWxzZcK7KSB0
byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1bmRlZmluZWTCuywgwqtmYWxzZcK7
KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2ludGw0MDIv
RGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdFJhbmdlL2VuLVVTLmpzOgogICBkZWZhdWx0
OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxLzMvMjAxOeKAieKAk+KAiTEv
NS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEvNS8yMDE5wrspIHRvIGJlIHRydWUnCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxLzMvMjAxOeKAieKA
k+KAiTEvNS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEvNS8yMDE5wrspIHRvIGJlIHRydWUnCg==
</data>
<flag name="commit-queue"
          id="427944"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411658</attachid>
            <date>2020-10-17 00:50:20 -0700</date>
            <delta_ts>2020-10-17 02:08:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217854-20201017005020.patch</filename>
            <type>text/plain</type>
            <size>57669</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGM4NTU1ODBmYjMzZGQ2MGRlNWM2ODA1MjYxYmM1OWVmZTI0MDM5Li41MzI3NjE3NTdkZGFjYWI5
ZmIyMDUyNjg4NWE0Yzc0NjQ2NTc2NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwg
bWV0aG9kcyBhZGhlcmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVr
aS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBodHRwczovL2dpdGh1Yi5jb20vdGMz
OS9lY21hMjYyL3B1bGwvMjE2NCwKKyAgICAgICAgd2hpY2ggYWxpZ25zIGRldGFjaGVkIGJ1ZmZl
ciBzZW1hbnRpY3MgaW4gdHlwZWQgYXJyYXlzIHdpdGggd2ViIHJlYWxpdHkuCisKKyAgICAgICAg
SW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBbW0hhc1Byb3BlcnR5XV0gbXVzdCBub3QgdGhyb3cK
KyAgICAgICAgLSBJbnRlZ2VySW5kZXhlZEVsZW1lbnRHZXQgKGkuZS4gW1tHZXRPd25Qcm9wZXJ0
eV1dIGFuZCBbW0dldF1dKSBtdXN0IG5vdCB0aHJvdworICAgICAgICAtIEludGVnZXJJbmRleGVk
RWxlbWVudFNldCAoaS5lLiBbW0RlZmluZU93blByb3BlcnR5XV0gYW5kIFtbU2V0XV0pIG11c3Qg
bm90IHRocm93CisgICAgICAgIC0gSW50ZWdlci1pbmRleGVkIGVsZW1lbnRzIG11c3QgYmUgW1tD
b25maWd1cmFibGVdXSAodG8gYXZvaWQgYnJlYWtpbmcgYSBbW0hhc1Byb3BlcnR5XV0gaW52YXJp
YW50KQorICAgICAgICAtIFtbRGVsZXRlXV0gbXVzdCBiZSBvdmVycmlkZGVuIHRvIHJldHVybiBm
YWxzZSBmb3IgaW50ZWdlci1pbmRleGVkIGVsZW1lbnRzICh3aGljaCBhcmUgKm5vdCogZGVsZXRh
YmxlKQorCisgICAgICAgIFRoaXMgcGF0Y2ggZnVydGhlcm1vcmUgZW5zdXJlcyB0aGF0IGFsbCBv
ZiB0aGVzZSBlc3NlbnRpYWwgaW50ZXJuYWwgbWV0aG9kcyBoYXZlIGEgc3BlYy1wZXJmZWN0IGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgYSBjb3VwbGUgb2Yg
aW50ZXJlc3RpbmcgcmlwcGxlIGVmZmVjdHMgaGVyZToKKyAgICAgICAgLSBUaGUgZmlsbCgpLCBz
b3J0KCksIGFuZCBzZXQoKSBtZXRob2RzIHNob3VsZCB0aHJvdyBleHBsaWNpdGx5LCBidXQgd2Un
ZCBiZWVuIGxldHRpbmcgW1tHZXRdXSB0aHJvdyBpbnN0ZWFkLgorICAgICAgICAtIE90aGVyIGNh
bGxiYWNrLXRha2luZyBtZXRob2RzIHNob3VsZCAqbm90KiB0aHJvdyBhbnltb3JlOyB0aGV5IG9u
bHkgZGlkIHNvIGltcGxpY2l0bHkgdmlhIFtbR2V0XV0gYW5kIFtbU2V0XV0uCisKKyAgICAgICAg
KiBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmlsbCk6CisgICAg
ICAgIChzb3J0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Lmg6
CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnNldCk6CisgICAg
ICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
cHV0KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRl
ZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRB
cnJheVZpZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgorICAgICAgICAo
SlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmg6CisgICAg
ICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6
OmdldFByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXROb25JbmRleFBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcDoKKwogMjAy
MC0xMC0xNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVXNlIEBwdXRCeVZhbERpcmVjdCBpbnN0ZWFkIG9mIEFycmF5LnByb3RvdHlwZS5AcHVzaCBp
biBidWlsdC1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9U
eXBlZEFycmF5UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5
cGVkQXJyYXlQcm90b3R5cGUuanMKaW5kZXggOWNkYzM3YTMxMzM0YzIyYzE3MTFiZjQxNGVmZGQ2
NTY2YTZlZjI0Ni4uNzYyMTNjMjc5OTA1Nzg1Mjk3NzhlZmVkMGYwNGMwMjU4YjI5YzAwZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5
cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90
b3R5cGUuanMKQEAgLTk2LDYgKzk2LDkgQEAgZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiBbLCBzdGFy
dCBbLCBlbmRdXSAqLykKICAgICB2YXIgc3RhcnQgPSBAdHlwZWRBcnJheUNsYW1wQXJndW1lbnRU
b1N0YXJ0T3JFbmQoQGFyZ3VtZW50KDEpLCBsZW5ndGgsIDApOwogICAgIHZhciBlbmQgPSBAdHlw
ZWRBcnJheUNsYW1wQXJndW1lbnRUb1N0YXJ0T3JFbmQoQGFyZ3VtZW50KDIpLCBsZW5ndGgsIGxl
bmd0aCk7CiAKKyAgICBpZiAoQGlzTmV1dGVyZWQodGhpcykpCisgICAgICAgIEB0aHJvd1R5cGVF
cnJvcigiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2
aWV3Iik7CisKICAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykKICAgICAgICAg
dGhpc1tpXSA9IG51bWJlcjsKICAgICByZXR1cm4gdGhpczsKQEAgLTE3NSw3ICsxNzgsMTYgQEAg
ZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gYSA8IGIgPyBhIDogYjsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwg
d2lkdGgsIGNvbXBhcmF0b3IpCisgICAgdmFyIGNvbXBhcmUgPSAoYSwgYikgPT4geworICAgICAg
ICB2YXIgcmVzdWx0ID0gQHRvTnVtYmVyKGNvbXBhcmF0b3IoYSwgYikpOworCisgICAgICAgIGlm
IChAaXNOZXV0ZXJlZCh0aGlzKSkKKyAgICAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Iik7CisKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworCisgICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBz
cmMsIHNyY0luZGV4LCBzcmNFbmQsIHdpZHRoKQogICAgIHsKICAgICAgICAgdmFyIGxlZnQgPSBz
cmNJbmRleDsKICAgICAgICAgdmFyIGxlZnRFbmQgPSBtaW4obGVmdCArIHdpZHRoLCBzcmNFbmQp
OwpAQCAtMTg0LDcgKzE5Niw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKIAogICAgICAg
ICBmb3IgKHZhciBkc3RJbmRleCA9IGxlZnQ7IGRzdEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0SW5k
ZXgpIHsKICAgICAgICAgICAgIGlmIChyaWdodCA8IHJpZ2h0RW5kKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGxlZnQgPj0gbGVmdEVuZCB8fCBjb21wYXJhdG9yKHNyY1tyaWdodF0sIHNyY1tsZWZ0
XSkgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPj0gbGVmdEVuZCB8fCBjb21wYXJl
KHNyY1tyaWdodF0sIHNyY1tsZWZ0XSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtk
c3RJbmRleF0gPSBzcmNbcmlnaHQrK107CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgICAgIH0KQEAgLTE5NCw3ICsyMDYsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBh
cmF0b3IpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmdW5jdGlvbiBtZXJnZVNvcnQoYXJyYXks
IHZhbHVlQ291bnQsIGNvbXBhcmF0b3IpCisgICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycmF5LCB2
YWx1ZUNvdW50KQogICAgIHsKICAgICAgICAgdmFyIGJ1ZmZlciA9IFsgXTsKICAgICAgICAgYnVm
ZmVyLmxlbmd0aCA9IHZhbHVlQ291bnQ7CkBAIC0yMDQsNyArMjE2LDcgQEAgZnVuY3Rpb24gc29y
dChjb21wYXJhdG9yKQogCiAgICAgICAgIGZvciAodmFyIHdpZHRoID0gMTsgd2lkdGggPCB2YWx1
ZUNvdW50OyB3aWR0aCAqPSAyKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBzcmNJbmRleCA9IDA7
IHNyY0luZGV4IDwgdmFsdWVDb3VudDsgc3JjSW5kZXggKz0gMiAqIHdpZHRoKQotICAgICAgICAg
ICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVDb3VudCwgd2lkdGgsIGNvbXBh
cmF0b3IpOworICAgICAgICAgICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVD
b3VudCwgd2lkdGgpOwogCiAgICAgICAgICAgICB2YXIgdG1wID0gc3JjOwogICAgICAgICAgICAg
c3JjID0gZHN0OwpAQCAtMjI1LDcgKzIzNyw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNvbXBhcmF0b3IgIT09IEB1bmRlZmluZWQpCi0g
ICAgICAgIG1lcmdlU29ydCh0aGlzLCBsZW5ndGgsIGNvbXBhcmF0b3IpOworICAgICAgICBtZXJn
ZVNvcnQodGhpcywgbGVuZ3RoKTsKICAgICBlbHNlCiAgICAgICAgIEB0eXBlZEFycmF5U29ydCh0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggYTVmNzdiMjY3MzUwZGFlODZjYTJhNGIyZmNmMjUx
NmIzMjgwYmM0NC4uMGNhNmM0MzI1ODE5Mjg3NDQwZDllYzc3ZGJmMTQyY2Q3ZTljZGNlMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlldy5oCkBAIC05MCw4ICs5MCw2IEBAIGVudW0gY2xhc3MgQ29weVR5cGUgewogCiBl
eHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRF
cnJvck1lc3NhZ2U7CiAKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIodGhyb3dOZXV0ZXJlZFR5
cGVkQXJyYXlUeXBlRXJyb3IpOwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogY2xhc3Mg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXcgZmluYWwgOiBwdWJsaWMgSlNBcnJheUJ1ZmZlclZpZXcg
ewogcHVibGljOgpAQCAtMTczLDEyICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHR5cGVuYW1l
IEFkYXB0b3I6OlR5cGUgdmFsdWUgPSB0b05hdGl2ZUZyb21WYWx1ZTxBZGFwdG9yPihnbG9iYWxP
YmplY3QsIGpzVmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxz
ZSk7CiAKLSAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSkgewotICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hl
ZEVycm9yTWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoaSA+PSBtX2xlbmd0aCkKKyAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSB8fCBp
ID49IG1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHNldElu
ZGV4UXVpY2tseVRvTmF0aXZlVmFsdWUoaSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaAppbmRleCAyNjkwZGE2OWZmNWFiMmYwNGZjMTkzZTllOTU0MjA5MDU2ZDQwMmYzLi43OTIx
YjA5YmU5YTg5MDRkZjRjY2ZhNzcxZTM4ZmZkM2ExYjg3ZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0lubGluZXMuaApAQCAtMzAyLDggKzMwMiwxMSBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+OjpzZXQoCiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBmYWxzZSk7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBzZXRJbmRleChnbG9iYWxPYmpl
Y3QsIG9mZnNldCArIGksIHZhbHVlKTsKICAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNj
b3BlLmV4Y2VwdGlvbigpIHx8ICFzdWNjZXNzKTsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykK
KyAgICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgIGlmIChpc05ldXRl
cmVkKCkpCisgICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IH0KQEAgLTMzNiwyOCArMzM5LDExIEBAIGJvb2wgSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdCgKIHsKICAg
ICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNU
eXBlZEFycmF5Vmlldyo+KG9iamVjdCk7CiAKLSAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0
LT5pc05ldXRlcmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3Qs
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHRocm93TmV1
dGVyZWRUeXBlZEFycmF5VHlwZUVycm9yKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0KLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpbmRl
eC52YWx1ZSgpKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2Jq
ZWN0LT5nZXRJbmRleFF1aWNrbHkoaW5kZXgudmFsdWUoKSkpOwotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAg
aWYgKGlzQ2Fub25pY2FsTnVtZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZSkpIHsKLSAgICAg
ICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkgewotICAgICAgICAgICAgc2xvdC5zZXRD
dXN0b20odGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRl
OjpOb25lKSwgdGhyb3dOZXV0ZXJlZFR5cGVkQXJyYXlUeXBlRXJyb3IpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4
ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQorICAgICAgICByZXR1cm4gZ2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCksIHNs
b3QpOwogCisgICAgaWYgKGlzQ2Fub25pY2FsTnVtZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFt
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9CiAKICAgICByZXR1cm4gQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCBz
bG90KTsKIH0KQEAgLTM2NywyNCArMzUzLDE4IEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj46OnB1dCgKICAgICBKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsCiAgICAg
UHV0UHJvcGVydHlTbG90JiBzbG90KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0o
KTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KICAgICBKU0dl
bmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBlZEFy
cmF5Vmlldyo+KGNlbGwpOwogCi0gICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9lY21hMjYy
LyNzZWMtaW50ZWdlci1pbmRleGVkLWV4b3RpYy1vYmplY3RzLXNldC1wLXYtcmVjZWl2ZXIKLSAg
ICAvLyBJZ25vcmUgdGhlIHJlY2VpdmVyIGV2ZW4gaWYgdGhlIHJlY2VpdmVyIGlzIGFsdGVyZWQg
dG8gbm9uIGJhc2UgdmFsdWUuCi0gICAgLy8gOS40LjUuNS0yLWItaSBSZXR1cm4gPyBJbnRlZ2Vy
SW5kZXhlZEVsZW1lbnRTZXQoTywgbnVtZXJpY0luZGV4LCBWKS4KICAgICBpZiAoT3B0aW9uYWw8
dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQotICAgICAgICBSRUxF
QVNFX0FORF9SRVRVUk4oc2NvcGUsIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0
LCBpbmRleC52YWx1ZSgpLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSkpOworICAgICAgICBy
ZXR1cm4gcHV0QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIGluZGV4LnZhbHVlKCks
IHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKIAogICAgIGlmIChpc0Nhbm9uaWNhbE51bWVy
aWNJbmRleFN0cmluZyhwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5p
c05ldXRlcmVkKCkpCi0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNj
b3BlLCB0eXBlZEFycmF5QnVmZmVySGFzQmVlbkRldGFjaGVkRXJyb3JNZXNzYWdlKTsKKyAgICAg
ICAgLy8gQ2FzZXMgbGlrZSAnLTAnLCAnMS4xJywgZXRjLiBhcmUgc3RpbGwgb2JsaWdlZCB0byBn
aXZlIHRoZSBSSFMgYSBjaGFuY2UgdG8gdGhyb3cuCisgICAgICAgIHRvTmF0aXZlRnJvbVZhbHVl
PEFkYXB0b3I+KGdsb2JhbE9iamVjdCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCi0gICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVj
dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSk7CisgICAgcmV0dXJu
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgpAQCAtNDAzLDE0ICszODMs
MTQgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVmaW5lT3duUHJv
cGVydHkoCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07CiAKLSAgICAgICAg
aWYgKGluZGV4LnZhbHVlKCkgPj0gdGhpc09iamVjdC0+bV9sZW5ndGgpCisgICAgICAgIGlmICgh
dGhpc09iamVjdC0+aXNOZXV0ZXJlZCgpICYmIGluZGV4LnZhbHVlKCkgPj0gdGhpc09iamVjdC0+
bV9sZW5ndGgpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKGRlc2Ny
aXB0b3IuaXNBY2Nlc3NvckRlc2NyaXB0b3IoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcklmTmVlZGVkKCJBdHRlbXB0aW5nIHRvIHN0b3JlIGFjY2Vzc29yIHByb3BlcnR5IG9u
IGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6ICIpOwogCi0gICAgICAgIGlmIChkZXNjcmlwdG9yLmNv
bmZpZ3VyYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQo
IkF0dGVtcHRpbmcgdG8gY29uZmlndXJlIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkgb24gYSB0
eXBlZCBhcnJheSBhdCBpbmRleDogIik7CisgICAgICAgIGlmIChkZXNjcmlwdG9yLmNvbmZpZ3Vy
YWJsZVByZXNlbnQoKSAmJiAhZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkKKyAgICAgICAgICAg
IHJldHVybiB0aHJvd1R5cGVFcnJvcklmTmVlZGVkKCJBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1j
b25maWd1cmFibGUgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheSBhdCBpbmRleDogIik7CiAKICAg
ICAgICAgaWYgKGRlc2NyaXB0b3IuZW51bWVyYWJsZVByZXNlbnQoKSAmJiAhZGVzY3JpcHRvci5l
bnVtZXJhYmxlKCkpCiAgICAgICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3JJZk5lZWRlZCgi
QXR0ZW1wdGluZyB0byBzdG9yZSBub24tZW51bWVyYWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFy
cmF5IGF0IGluZGV4OiAiKTsKQEAgLTQzNCwxNiArNDE0LDE0IEBAIHRlbXBsYXRlPHR5cGVuYW1l
IEFkYXB0b3I+CiBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpkZWxldGVQ
cm9wZXJ0eSgKICAgICBKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIERlbGV0ZVByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
LSAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4oY2VsbCk7CiAKLSAgICBpZiAo
cGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5pc05l
dXRlcmVkKCkpCi0gICAgICAgICAgICByZXR1cm4gdHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2Nv
cGUsIHRydWUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UpOwot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIAorICAgIGlmIChPcHRpb25hbDx1aW50
MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCisgICAgICAgIHJldHVybiBk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbmRleC52YWx1
ZSgpKTsKKworICAgIGlmIChpc0Nhbm9uaWNhbE51bWVyaWNJbmRleFN0cmluZyhwcm9wZXJ0eU5h
bWUpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9w
ZXJ0eSh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAK
QEAgLTQ1MywxNSArNDMxLDEwIEBAIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRv
cj46OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoCiB7CiAgICAgSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZpZXcqPihvYmpl
Y3QpOwogCi0gICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkgewotICAgICAgICBzbG90
LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6Ok5vbmUpLCB0aHJvd05ldXRlcmVkVHlwZWRBcnJheVR5cGVFcnJvcik7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIGlmICghdGhpc09iamVjdC0+Y2FuR2V0SW5kZXhR
dWlja2x5KHByb3BlcnR5TmFtZSkpCisgICAgaWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSB8
fCAhdGhpc09iamVjdC0+Y2FuR2V0SW5kZXhRdWlja2x5KHByb3BlcnR5TmFtZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAKLSAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6RG9udERlbGV0ZSksIHRoaXNPYmpl
Y3QtPmdldEluZGV4UXVpY2tseShwcm9wZXJ0eU5hbWUpKTsKKworICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25l
KSwgdGhpc09iamVjdC0+Z2V0SW5kZXhRdWlja2x5KHByb3BlcnR5TmFtZSkpOwogICAgIHJldHVy
biB0cnVlOwogfQogCkBAIC00NzUsMTAgKzQ0OCwxMSBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJy
YXlWaWV3PEFkYXB0b3I+OjpwdXRCeUluZGV4KAogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9y
PgogYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRlUHJvcGVydHlC
eUluZGV4KAotICAgIEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwg
dW5zaWduZWQgcHJvcGVydHlOYW1lKQorICAgIEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
LCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUpCiB7Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52
bSgpOwotICAgIHJldHVybiBKU0NlbGw6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIGdsb2JhbE9iamVj
dCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwgcHJvcGVydHlOYW1lKSk7CisgICAgLy8gSW50ZWdlci1p
bmRleGVkIGVsZW1lbnRzIGNhbid0IGJlIGRlbGV0ZWQsIHNvIHdlIG11c3QgcmV0dXJuIGZhbHNl
IHdoZW4gdGhlIGluZGV4IGlzIHZhbGlkLgorICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4oY2VsbCk7CisgICAg
cmV0dXJuIHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSB8fCBwcm9wZXJ0eU5hbWUgPj0gdGhpc09i
amVjdC0+bV9sZW5ndGg7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuaAppbmRleCA5ODIzYzZiYzA0MmE2ZjkzOWVmMmQxODEzMjAxYmM3MjhkMzYyODhlLi5hYmUw
ZGMxMjg5NDFhMGMwNjZjMjUwNzZlMzE5MzIyNjUwMmNhYzcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKQEAg
LTYwLDYgKzYwLDYgQEAgSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jUHJvcGVy
dHlJc0VudW1lcmFibGUpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5DVElPTihnbG9iYWxGdW5jT3du
S2V5cyk7CiBKU0NfREVDTEFSRV9IT1NUX0ZVTkNUSU9OKGdsb2JhbEZ1bmNEYXRlVGltZUZvcm1h
dCk7CiAKLWRvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOworSlNfRVhQT1JUX1BSSVZBVEUg
ZG91YmxlIGpzVG9OdW1iZXIoU3RyaW5nVmlldyk7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAppbmRleCA2
YzUzOWZjZTMzNGRjNmE0ZWJkZGMyOThjNGIwYjEwZGY1NzMxMWExLi4zMWUwMGY5ODM4ZGNlMTlh
OThjOWQyNzkzYjE1M2M3YTI2MWIyMWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU09iamVjdElubGluZXMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU09iamVjdElubGluZXMuaApAQCAtMTM3LDYgKzEzNyw4IEBAIEFMV0FZU19JTkxJ
TkUgYm9vbCBKU09iamVjdDo6Z2V0UHJvcGVydHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIHVuc2lnCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChvYmpl
Y3QtPnR5cGUoKSA9PSBQcm94eU9iamVjdFR5cGUgJiYgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUo
KSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVydHkpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChpc1R5cGVkQXJyYXlUeXBlKG9iamVj
dC0+dHlwZSgpKSAmJiBwcm9wZXJ0eU5hbWUgPj0ganNDYXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4o
b2JqZWN0KS0+bGVuZ3RoKCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIEpT
VmFsdWUgcHJvdG90eXBlOwogICAgICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZv
KCkub3ZlcnJpZGVzR2V0UHJvdG90eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9
PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKICAgICAgICAg
ICAgIHByb3RvdHlwZSA9IG9iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KHZtKTsKQEAgLTE4MCw2
ICsxODIsOCBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldE5vbkluZGV4UHJvcGVy
dHlTbG90KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplYwogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIGlmIChvYmplY3QtPnR5cGUoKSA9PSBQcm94eU9iamVjdFR5
cGUgJiYgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVybmFs
TWV0aG9kVHlwZTo6SGFzUHJvcGVydHkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICAgICAgaWYgKGlzVHlwZWRBcnJheVR5cGUob2JqZWN0LT50eXBlKCkpICYmIGlzQ2Fu
b25pY2FsTnVtZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIEpTVmFsdWUgcHJvdG90eXBlOwogICAg
ICAgICBpZiAoTElLRUxZKCFzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkub3ZlcnJpZGVzR2V0UHJvdG90
eXBlKCkgfHwgc2xvdC5pbnRlcm5hbE1ldGhvZFR5cGUoKSA9PSBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAKaW5kZXggOTY5NWViMDk1ZGQxYTAzM2UwYTMzNTFkNTFj
ZDY3MGY1Mzc0NTg3My4uNGI5Zjk1Y2Y2MzFiZGE1MzU0ZTc1MWFkNDAyOTE2MmNkYTdmN2JjOCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlZEFycmF5cy5jcHAK
QEAgLTY0LDEzICs2NCw1IEBAIE1BS0VfU19JTkZPKEZsb2F0NjQpOwogCiBNQUtFX0NPTlNUUlVD
VE9SUyhEYXRhVmlldyk7CiAKLUpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUih0aHJvd05ldXRlcmVk
VHlwZWRBcnJheVR5cGVFcnJvciwgKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEVuY29k
ZWRKU1ZhbHVlIG9iamVjdCwgUHJvcGVydHlOYW1lKSkKLXsKLSAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwot
ICAgIEFTU0VSVF9VTlVTRUQob2JqZWN0LCBqc0Nhc3Q8SlNBcnJheUJ1ZmZlclZpZXcqPihKU1Zh
bHVlOjpkZWNvZGUob2JqZWN0KSktPmlzTmV1dGVyZWQoKSk7Ci0gICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRh
Y2hlZEVycm9yTWVzc2FnZSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIEpTQwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmIx
NmMzNTcxNzU1MGFhZmQ2ZDcyMDgwMGVlNTVkMDk2NDFlMTkzOC4uMWFhZmM3NTUzZDU0ZDY3MDky
MjY5MTlhYzc0OThjYTQ0ZDUyMDU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTEwLTE2
ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KKworICAgICAgICBFbnN1
cmUgJVR5cGVkQXJyYXklIGVzc2VudGlhbCBpbnRlcm5hbCBtZXRob2RzIGFkaGVyZSB0byBzcGVj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc4NTQK
KworICAgICAgICBSZXZpZXdlZCBieSBZdXN1a2UgU3V6dWtpLgorCisgICAgICAgICogZmFzdC9j
YW52YXMvd2ViZ2wvYXJyYXlidWZmZXItdHJhbnNmZXItb2YtY29udHJvbC5odG1sOgorICAgICAg
ICAqIGpzL2RvbS9kZmctdHlwZWQtYXJyYXktbmV1dGVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBqcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL2RmZy10eXBlZC1hcnJheS1uZXV0ZXIuanM6CisgICAgICAg
ICoganMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qczoKKyAgICAgICAgQWRq
dXN0IHRlc3RzLgorCiAyMDIwLTEwLTE1ICBLYXJsIFJhY2tsZXIgIDxyYWNrbGVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjY3NjYyKTogWyBNb2phdmUrIGRlYnVnIHdrMSBd
IHdlYmdsLzIuMC4wL2NvbmZvcm1hbmNlL2V4dGVuc2lvbnMvd2ViZ2wtY29tcHJlc3NlZC10ZXh0
dXJlLXMzdGMtc3JnYi5odG1sIGlzIGEgZmxha3kgY3Jhc2gKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5YnVmZmVyLXRyYW5zZmVyLW9mLWNvbnRyb2wuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5YnVmZmVyLXRyYW5zZmVyLW9m
LWNvbnRyb2wuaHRtbAppbmRleCA0Y2IzYmI2ZmZlODAwYjUxYzVjNzljZjFmNjA2NzJmMjBmN2Rj
NjYxLi45MzQ1MTFmZDM2NWIwMWM0YTYzM2MwZDFmZmVkM2EzNmZhMjliMzg0IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheWJ1ZmZlci10cmFuc2Zlci1vZi1j
b250cm9sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2ViZ2wvYXJyYXlidWZm
ZXItdHJhbnNmZXItb2YtY29udHJvbC5odG1sCkBAIC0xMDEsMjQgKzEwMSwxNiBAQCBmdW5jdGlv
biBhc3NlcnRWaWV3Q2xvc2VkKHRlc3ROYW1lLCB2aWV3KQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICB2YXIgdiA9IHZpZXdbMF07Ci0gICAgICAgICAg
ICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGluZGV4IGdldCBvbiBhIGNsb3NlZCB2aWV3
IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIik7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgfSBjYXRjaCh4bikgewotICAgICAgICAgICAgICAgIGlmICh4biAh
PSAiVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZy
b20gdGhlIHZpZXciKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUg
KyAiOiBpbmRleCBnZXQgb24gYSBjbG9zZWQgdmlldyB0aHJldyB0aGUgd3JvbmcgZXhjZXB0aW9u
OiAiICsgeG4pOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAiOiBpbmRleCBn
ZXQgb24gYSBjbG9zZWQgdmlldyB0aHJldyBhbiBleGNlcHRpb246ICIgKyB4bik7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB0cnkg
ewogICAgICAgICAgICAgICAgIHZpZXdbMF0gPSA0MjsKLSAgICAgICAgICAgICAgICB0ZXN0RmFp
bGVkKHRlc3ROYW1lICsgIjogaW5kZXggc2V0IG9uIGEgY2xvc2VkIHZpZXcgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24iKTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICB9IGNhdGNoKHhuKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHhuICE9ICJUeXBlRXJyb3I6
IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIp
IHsKLSAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGluZGV4IHNl
dCB0aGVuIGdldCBvbiBhIGNsb3NlZCB2aWV3IHRocmV3IHRoZSB3cm9uZyBleGNlcHRpb246ICIg
KyB4bik7Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGluZGV4IHNldCBv
biBhIGNsb3NlZCB2aWV3IHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgdHJ5IHsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2pzL2RvbS9kZmctdHlwZWQtYXJyYXktbmV1dGVyLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2pzL2RvbS9kZmctdHlwZWQtYXJyYXktbmV1dGVyLWV4cGVjdGVkLnR4
dAppbmRleCA1NTZiZDRkMTVlMzNkMmMxMTk1ODRlZTY1Yjc3YmQxZTY0YzA1ZmM4Li45Y2RjZWU3
OGRhMDE0YzkzMTQ4Mjg4NDlhZWE3MTUzYTJhMDMzYWE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9qcy9kb20vZGZnLXR5cGVkLWFycmF5LW5ldXRlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvanMvZG9tL2RmZy10eXBlZC1hcnJheS1uZXV0ZXItZXhwZWN0ZWQudHh0CkBAIC04LDkg
KzgsOSBAQCBQQVNTIGFycmF5WzBdIGlzIDQyCiBQQVNTIGZvbyhhcnJheSkgaXMgMTAwCiBQQVNT
IGJhcihhcnJheSkgaXMgNDIKIFBBU1MgYXJyYXkubGVuZ3RoIGlzIDAKLVBBU1MgYXJyYXlbMF0g
dGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3LgorUEFTUyBhcnJheVswXSBpcyB1bmRlZmluZWQKIFBB
U1MgZm9vKGFycmF5KSBpcyAwCi1QQVNTIGJhcihhcnJheSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2
aWV3LgorUEFTUyBiYXIoYXJyYXkpIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pz
L2RvbS9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CmluZGV4IDhlYzAxMTli
Mzc3MTRhY2YxNDMxYmI2YTZkNzkzZTE1OTIwNDAxZDYuLjk5Y2I5MzM3MTg5N2U0ZTQ1NGUyMzU2
OTQ2ODdkYmQyMWIzOWQ5ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL2RvbS9nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ItZXhwZWN0ZWQudHh0CkBAIC0xNDQsNyArMTQ0LDcgQEAg
UEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGNhbnZhc1BpeGVsQXJyYXksIDAp
LnZhbHVlIGlzIGNhbnZhc1BpeGVsQXIKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3Jp
cHRvcihjYW52YXNQaXhlbEFycmF5LCAwKS5oYXNPd25Qcm9wZXJ0eSgnZ2V0JykgaXMgZmFsc2UK
IFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjYW52YXNQaXhlbEFycmF5LCAw
KS5oYXNPd25Qcm9wZXJ0eSgnc2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihjYW52YXNQaXhlbEFycmF5LCAwKS5lbnVtZXJhYmxlIGlzIHRydWUKLVBB
U1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjYW52YXNQaXhlbEFycmF5LCAwKS5j
b25maWd1cmFibGUgaXMgZmFsc2UKK1BBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihjYW52YXNQaXhlbEFycmF5LCAwKS5jb25maWd1cmFibGUgaXMgdHJ1ZQogUEFTUyBPYmplY3Qu
Z2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHNlbGVjdCwgMCkudmFsdWUgaXMgc2VsZWN0WzBdCiBQ
QVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZWN0LCAwKS5oYXNPd25Qcm9w
ZXJ0eSgnZ2V0JykgaXMgZmFsc2UKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihzZWxlY3QsIDApLmhhc093blByb3BlcnR5KCdzZXQnKSBpcyBmYWxzZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kZmctdHlwZWQtYXJyYXktbmV1dGVyLmpz
IGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kZmctdHlwZWQtYXJyYXktbmV1dGVy
LmpzCmluZGV4IDc4Y2FmYzAwZTViYjVmN2EwOGYzYWRjNDJiMmI5YzRhMDc3YjhkODcuLmUzZGRi
OTQzZDQ4OTAyZDk2NmNhNDllYTgzYjQ1MGUzZjVkMjQ5YTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLXR5cGVkLWFycmF5LW5ldXRlci5qcworKysgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy10eXBlZC1hcnJheS1uZXV0ZXIuanMK
QEAgLTI0LDcgKzI0LDcgQEAgc2hvdWxkQmUoImJhcihhcnJheSkiLCAiNDIiKTsKIHdpbmRvdy5w
b3N0TWVzc2FnZShhcnJheSwgIioiLCBbYXJyYXkuYnVmZmVyXSk7CiAKIHNob3VsZEJlKCJhcnJh
eS5sZW5ndGgiLCAiMCIpOwotc2hvdWxkVGhyb3coImFycmF5WzBdIik7CitzaG91bGRCZSgiYXJy
YXlbMF0iLCAidW5kZWZpbmVkIik7CiAKIHNob3VsZEJlKCJmb28oYXJyYXkpIiwgIjAiKTsKLXNo
b3VsZFRocm93KCJiYXIoYXJyYXkpIik7CitzaG91bGRCZSgiYmFyKGFycmF5KSIsICJ1bmRlZmlu
ZWQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IuanMgYi9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlE
ZXNjcmlwdG9yLmpzCmluZGV4IDJlZDMwYWM3ZDNkNThiMzE2MWUwZTdhOGJhNmQwMDE1ZWM0MWRk
OTguLmM2NTEyMTEzMjg1NjY3MzBmMmZjNzllNjFhNDZlNGU2MDRhNzU3YmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKKysr
IGIvTGF5b3V0VGVzdHMvanMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwpA
QCAtNDksNyArNDksNyBAQCBkZXNjcmlwdG9yU2hvdWxkQmUoImRvY3VtZW50LmdldEVsZW1lbnRz
QnlUYWdOYW1lKCdkaXYnKSIsICIwIiwge3dyaXRhYmxlOiBmYWxzZQogZGVzY3JpcHRvclNob3Vs
ZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdwYXNzJykiLCAiMCIsIHt3cml0
YWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6
ImRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ3Bhc3MnKVswXSJ9KTsKIHZhciBjYW52
YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKIHZhciBjYW52YXNQaXhlbEFy
cmF5ID0gY2FudmFzLmdldENvbnRleHQoIjJkIikuY3JlYXRlSW1hZ2VEYXRhKDEwLDEwKS5kYXRh
OwotZGVzY3JpcHRvclNob3VsZEJlKCJjYW52YXNQaXhlbEFycmF5IiwgIjAiLCB7d3JpdGFibGU6
IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIHZhbHVlOiJjYW52
YXNQaXhlbEFycmF5WzBdIn0pOworZGVzY3JpcHRvclNob3VsZEJlKCJjYW52YXNQaXhlbEFycmF5
IiwgIjAiLCB7d3JpdGFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTog
dHJ1ZSwgdmFsdWU6ImNhbnZhc1BpeGVsQXJyYXlbMF0ifSk7CiB2YXIgc2VsZWN0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CiBzZWxlY3QuaW5uZXJIVE1MID0gIjxvcHRpb24+
Zm9vPC9vcHRpb24+IjsKIGRlc2NyaXB0b3JTaG91bGRCZSgic2VsZWN0IiwgIjAiLCB7d3JpdGFi
bGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgdmFsdWU6InNl
bGVjdFswXSJ9KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggNDEzMmE4MTg0NzRjZjQ4ZjUwNzliYWE4YTE2ZWRjZWEyOWZjZGZkMS4uN2Nh
MzRjNTFjNGM0ZDdiMTQ0ZjM1Yjk5YTc4ZjgxODBlYzM5NGI4NSAxMDA2NDQKLS0tIGEvSlNUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvSlNUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAy
MC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CisKKyAgICAg
ICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwgbWV0aG9kcyBhZGhlcmUg
dG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICAq
IHN0cmVzcy9hcnJheS1wcm90b3R5cGUtc3BsaWNlLW1ha2luZy10eXBlZC1hcnJheS5qczoKKyAg
ICAgICAgKiBzdHJlc3MvYXJyYXktc3BlY2llcy1jb25maWctYXJyYXktY29uc3RydWN0b3IuanM6
CisgICAgICAgICogc3RyZXNzL2RlbGV0ZS1wcm9wZXJ0eS1kZmctaW5saW5lLmpzOgorICAgICAg
ICAqIHN0cmVzcy9mbG9hdDMyYXJyYXktb3V0LW9mLWJvdW5kcy5qczoKKyAgICAgICAgKiBzdHJl
c3MvcHV0LWRpcmVjdC1pbmRleC1icm9rZW4tMi5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRh
cnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanM6CisgICAgICAgICogc3RyZXNzL3R5
cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5
LWNvbmZpZ3VyZS1pbmRleC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1mdW5jdGlv
bnMtd2l0aC1uZXV0ZXJlZC5qczoKKyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1nZXRvd25w
cm9wZXJ0eS5qczogUmVuYW1lZCBmcm9tIEpTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3du
cHJvcGVydHktbm90LWNvbmZpZ3VyYWJsZS5qcy4KKyAgICAgICAgKiBzdHJlc3MvdHlwZWQtYXJy
YXktY2Fub25pY2FsLW51bWVyaWMtaW5kZXgtc3RyaW5nLmpzOgorICAgICAgICBBZGp1c3QgdGVz
dHMuCisKKyAgICAgICAgKiB0ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sOgorICAgICAgICBBZGRy
ZXNzIGFsbCB0ZXN0IGZhaWx1cmVzIHVuZGVyIGJ1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2ludGVybmFscy4KKyAgICAgICAgTm90ZSB0aGF0IHRoZXJlIGFyZSBhIHNsZXcgb2YgY29y
cmVjdGlvbnMgbmVlZGVkIGZvciB0aGVzZSB0ZXN0IGNhc2VzLAorICAgICAgICB3aGljaCB3ZXJl
IGRpc2NvdmVyZWQgaW4gdGhlIGNvdXJzZSBvZiB3b3JraW5nIG9uIHRoaXMgcGF0Y2g6CisgICAg
ICAgIGh0dHBzOi8vZ2l0aHViLmNvbS90YzM5L3Rlc3QyNjIvcHVsbC8yODMzI2lzc3VlY29tbWVu
dC03MDk2MzU4NTAKKyAgICAgICAgQWNjb3JkaW5nbHksIHRoZXNlIHJlbWFpbmluZyBsaW5lcyBz
aG91bGQgYWxsIGRpc2FwcGVhciBpbiB0aGUgZnV0dXJlLgorCiAyMDIwLTEwLTE0ICBSb3NzIEtp
cnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVzdDI2
MiAoMjAyMC4xMC4xNCkKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LXByb3RvdHlw
ZS1zcGxpY2UtbWFraW5nLXR5cGVkLWFycmF5LmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktcHJv
dG90eXBlLXNwbGljZS1tYWtpbmctdHlwZWQtYXJyYXkuanMKaW5kZXggNzAxN2Q2ZjE5MGQ5Mjk1
YzdlYTI5MzI3MDlkYzY2MTBiOWM1NmI2Mi4uMWFjNmE0NjVhYzY2OWNkODkwZWNmMWQ4Zjg3Mzky
ZTFlMWEyNTFlYyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktcHJvdG90eXBlLXNw
bGljZS1tYWtpbmctdHlwZWQtYXJyYXkuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktcHJv
dG90eXBlLXNwbGljZS1tYWtpbmctdHlwZWQtYXJyYXkuanMKQEAgLTI1LDcgKzI1LDcgQEAgdGVz
dChmdW5jdGlvbigpIHsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgZXJyID0gZTsKICAgICB9
Ci0gICAgYXNzZXJ0KGVyci50b1N0cmluZygpID09PSAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRv
IGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkgYXQg
aW5kZXg6IDAiKTsKKyAgICBhc3NlcnQoZXJyLnRvU3RyaW5nKCkgPT09ICJUeXBlRXJyb3I6IEF0
dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuIik7CiAKICAgICBhc3NlcnQo
eCBpbnN0YW5jZW9mIEFycmF5KTsKICAgICBhc3NlcnQoeC5sZW5ndGggPT09IDUpOwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktc3BlY2llcy1jb25maWctYXJyYXktY29uc3RydWN0
b3IuanMgYi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1zcGVjaWVzLWNvbmZpZy1hcnJheS1jb25zdHJ1
Y3Rvci5qcwppbmRleCBkOTI5Zjc0YmFkMThjMGQ0M2UxNDVmZjBjNzJkZTJmMmU5N2EyMTlkLi43
NzAzNjhkNDYyMmE0YTRlYTdjMjYwMGZiMTNlOTQwNjBlN2FhNGU2IDEwMDY0NAotLS0gYS9KU1Rl
c3RzL3N0cmVzcy9hcnJheS1zcGVjaWVzLWNvbmZpZy1hcnJheS1jb25zdHJ1Y3Rvci5qcworKysg
Yi9KU1Rlc3RzL3N0cmVzcy9hcnJheS1zcGVjaWVzLWNvbmZpZy1hcnJheS1jb25zdHJ1Y3Rvci5q
cwpAQCAtMzEsMTAgKzMxLDkgQEAgZnVuY3Rpb24gc2hvdWxkVGhyb3coZiwgbSkgewogfQogCiBm
dW5jdGlvbiB0ZXN0KCkgewotICAgIGNvbnN0IG1lc3NhZ2UgPSAiVHlwZUVycm9yOiBBdHRlbXB0
aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJy
YXkgYXQgaW5kZXg6IDAiOwogICAgIGZvby5jb25jYXQoWzFdKTsKICAgICBmb28gPSBbMSwyLDMs
NF07Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gZm9vLnNsaWNlKDApLCBtZXNzYWdlKTsKKyAgICBm
b28uc2xpY2UoMCk7CiAgICAgZm9vID0gWzEsMiwzLDRdOwogICAgIGxldCByID0gZm9vLnNwbGlj
ZSgpOwogICAgIGlmICghKHIgaW5zdGFuY2VvZiBJbnQzMkFycmF5KSkKQEAgLTQyLDcgKzQxLDcg
QEAgZnVuY3Rpb24gdGVzdCgpIHsKICAgICBpZiAoci5sZW5ndGggIT09IDApCiAgICAgICAgIHRo
cm93ICJCYWQiOwogICAgIGZvbyA9IFsxLDIsMyw0XTsKLSAgICBzaG91bGRUaHJvdygoKSA9PiBm
b28uc3BsaWNlKDApLCBtZXNzYWdlKTsKKyAgICBmb28uc3BsaWNlKDApOwogfQogbm9JbmxpbmUo
dGVzdCk7CiBmb3IgKGxldCBpID0gMDsgaSA8IDMwMDA7ICsraSkKZGlmZiAtLWdpdCBhL0pTVGVz
dHMvc3RyZXNzL2RlbGV0ZS1wcm9wZXJ0eS1kZmctaW5saW5lLmpzIGIvSlNUZXN0cy9zdHJlc3Mv
ZGVsZXRlLXByb3BlcnR5LWRmZy1pbmxpbmUuanMKaW5kZXggYWMzMmY5M2RiODBjMTZhYmRmNDUy
YjgxMmYwNzhjM2MyZGNmMTFhMC4uMmQ0MzkxY2FiODNmOGY3MTljNWMyYmFmMDBmYzNhNzVjMTE0
ZjZlMyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvZGVsZXRlLXByb3BlcnR5LWRmZy1pbmxp
bmUuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvZGVsZXRlLXByb3BlcnR5LWRmZy1pbmxpbmUuanMK
QEAgLTMyNCw3ICszMjQsNyBAQCBmdW5jdGlvbiB0ZXN0VHlwZWRBcnJheSgpIHsKICAgICBsZXQg
Zm9vID0gbmV3IFVpbnQ4QXJyYXkoMTIpOwogICAgIHRyYW5zZmVyQXJyYXlCdWZmZXIoZm9vLmJ1
ZmZlcikKICAgICBkb0RlbGV0ZTEyKGZvbykKLSAgICBhc3NlcnRfdGhyb3dzKCgpID0+IGRlbGV0
ZSBmb29bMF0pCisgICAgYXNzZXJ0KGRlbGV0ZSBmb29bMF0pOwogfQogbm9JbmxpbmUodGVzdFR5
cGVkQXJyYXkpCiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2Zsb2F0MzJhcnJheS1vdXQt
b2YtYm91bmRzLmpzIGIvSlNUZXN0cy9zdHJlc3MvZmxvYXQzMmFycmF5LW91dC1vZi1ib3VuZHMu
anMKaW5kZXggMDJhMDJkZGE3ZGViZjJjNjYwZDIwNzcwZTljYzQyNTM1NzY0ZTE1YS4uMGY1Nzcy
ZjQ4OGZlZjhjZjliMjZmNzY2ZWQ5MWEwMGUwNDNkNDk2YSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9z
dHJlc3MvZmxvYXQzMmFycmF5LW91dC1vZi1ib3VuZHMuanMKKysrIGIvSlNUZXN0cy9zdHJlc3Mv
ZmxvYXQzMmFycmF5LW91dC1vZi1ib3VuZHMuanMKQEAgLTI1LDUgKzI1LDUgQEAgaWYgKHJlc3Vs
dCAhPT0gdm9pZCAwKQogCiBGbG9hdDMyQXJyYXkucHJvdG90eXBlWzFdID0gMjM7CiByZXN1bHQg
PSBmb28obWFrZSg0MiksIDEpOwotaWYgKHJlc3VsdCAhPT0gMjMpCitpZiAocmVzdWx0ICE9PSB2
b2lkIDApCiAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvSlNUZXN0cy9zdHJlc3MvcHV0LWRpcmVjdC1pbmRleC1icm9rZW4tMi5qcyBiL0pTVGVz
dHMvc3RyZXNzL3B1dC1kaXJlY3QtaW5kZXgtYnJva2VuLTIuanMKaW5kZXggM2Y4MDcxOGNlM2E1
YTllNzJhNzhhYmZkMjE0YmRjOWJkNDE0Y2VmZC4uMDNiOGY2NzdlNzJmMWMzNzlkYzc2ZDgwZDU4
NjJmYThiZTFmZWRhNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvcHV0LWRpcmVjdC1pbmRl
eC1icm9rZW4tMi5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy9wdXQtZGlyZWN0LWluZGV4LWJyb2tl
bi0yLmpzCkBAIC0zOSw4ICszOSw3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgfSBjYXRjaChl
KSB7CiAgICAgICAgIGVyciA9IGU7CiAgICAgfQotICAgIGFzc2VydCghIWVycik7Ci0gICAgYXNz
ZXJ0KGVyci50b1N0cmluZygpID09PSAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3Vy
ZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6IDAi
KTsKKyAgICBhc3NlcnQoIWVycik7CiB9KTsKIAogdGVzdChmdW5jdGlvbigpIHsKQEAgLTg4LDcg
Kzg3LDcgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9IGNhdGNoKGUpIHsKICAgICAgICAgZXJy
ID0gZTsKICAgICB9Ci0gICAgYXNzZXJ0KGVyci50b1N0cmluZygpID09PSAiVHlwZUVycm9yOiBB
dHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9uIGEgdHlw
ZWQgYXJyYXkgYXQgaW5kZXg6IDAiKTsKKyAgICBhc3NlcnQoZXJyLnRvU3RyaW5nKCkgPT09ICJU
eXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHkuIik7CiB9
KTsKIAogdGVzdChmdW5jdGlvbigpIHsKQEAgLTEzOSw3ICsxMzgsNyBAQCB0ZXN0KGZ1bmN0aW9u
KCkgewogICAgIH0gY2F0Y2goZSkgewogICAgICAgICBlcnIgPSBlOwogICAgIH0KLSAgICBhc3Nl
cnQoZXJyLnRvU3RyaW5nKCkgPT09ICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY29uZmlndXJl
IG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheSBhdCBpbmRleDogMCIp
OworICAgIGFzc2VydChlcnIudG9TdHJpbmcoKSA9PT0gIlR5cGVFcnJvcjogQXR0ZW1wdGVkIHRv
IGFzc2lnbiB0byByZWFkb25seSBwcm9wZXJ0eS4iKTsKIH0pOwogCiB0ZXN0KGZ1bmN0aW9uKCkg
ewpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktY2Fub25pY2FsLW51bWVy
aWMtaW5kZXgtc3RyaW5nLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWQtYXJyYXktY2Fub25pY2Fs
LW51bWVyaWMtaW5kZXgtc3RyaW5nLmpzCmluZGV4IGYwNzdkNzA2YWI0MGE1MWU0NTg0NjgyZGFk
MzNhMjFjYWEzNmQxZWQuLjNkYmQwMjM3OTI0YzkyOTZhYWMxMmJkYTE2MDhhNGM1MzBiYzQ3OTEg
MTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkLWFycmF5LWNhbm9uaWNhbC1udW1lcmlj
LWluZGV4LXN0cmluZy5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZC1hcnJheS1jYW5vbmlj
YWwtbnVtZXJpYy1pbmRleC1zdHJpbmcuanMKQEAgLTcyLDMzICs3MiwyNiBAQCB0ZXN0SW52YWxp
ZEluZGljZXMoWwogICAgICc0Mjk0OTY3Mjk2JywKIF0pOwogCi1jb25zdCBtYWtlVGVzdFZhbGlk
SW5kZXggPSAoY29uZmlndXJhYmxlKSA9PgotICAgIChhcnJheSwga2V5LCB2YWx1ZSwgYXNzZXJ0
KSA9PiB7Ci0gICAgICAgIGFzc2VydChhcnJheVtrZXldID09PSB2YWx1ZSwgYCR7a2V5LnRvU3Ry
aW5nKCl9IHNob3VsZCBiZSBzZXQgdG8gJHt2YWx1ZX1gKTsKLSAgICAgICAgYXNzZXJ0KGtleSBp
biBhcnJheSwgYHNob3VsZCBjb250YWluIGtleSAke2tleS50b1N0cmluZygpfWApOwotCi0gICAg
ICAgIGFzc2VydChhcnJheS5oYXNPd25Qcm9wZXJ0eShrZXkpID09PSB0cnVlLCBgaGFzT3duUHJv
cGVydHkoJHtrZXkudG9TdHJpbmcoKX0pIHNob3VsZCBiZSB0cnVlYCk7Ci0gICAgICAgIGNvbnN0
IGRlc2NyaXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCBrZXkp
OwotICAgICAgICBhc3NlcnQodHlwZW9mIGRlc2NyaXB0b3IgPT09ICdvYmplY3QnLCBgT2JqZWN0
LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigke2tleS50b1N0cmluZygpfSkgcmV0dXJuIGFuIG9i
amVjdGApOwotICAgICAgICBhc3NlcnQoZGVzY3JpcHRvci52YWx1ZSA9PT0gdmFsdWUsIGBkZXNj
cmlwdG9yLnZhbHVlIHNob3VsZCBiZSAke3ZhbHVlfWApOwotICAgICAgICBhc3NlcnQoZGVzY3Jp
cHRvci53cml0YWJsZSA9PT0gdHJ1ZSwgYGRlc2NyaXB0b3Iud3JpdGFibGUgc2hvdWxkIGJlIHRy
dWVgKTsKLSAgICAgICAgYXNzZXJ0KGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9PT0gdHJ1ZSwgYGRl
c2NyaXB0b3IuZW51bWVyYWJsZSBzaG91bGQgYmUgdHJ1ZWApOwotICAgICAgICBhc3NlcnQoZGVz
Y3JpcHRvci5jb25maWd1cmFibGUgPT09IGNvbmZpZ3VyYWJsZSwgYGRlc2NyaXB0b3IuY29uZmln
dXJhYmxlIHNob3VsZCBiZSAke2NvbmZpZ3VyYWJsZX1gKTsKLSAgICB9OwotCi1jb25zdCB0ZXN0
VmFsaWRDb25maWd1cmFibGVJbmRpY2VzID0gbWFrZVRlc3QobWFrZVRlc3RWYWxpZEluZGV4KHRy
dWUpKTsKK2NvbnN0IHRlc3RWYWxpZEluZGljZXMgPSBtYWtlVGVzdCgoYXJyYXksIGtleSwgdmFs
dWUsIGFzc2VydCkgPT4geworICAgIGFzc2VydChhcnJheVtrZXldID09PSB2YWx1ZSwgYCR7a2V5
LnRvU3RyaW5nKCl9IHNob3VsZCBiZSBzZXQgdG8gJHt2YWx1ZX1gKTsKKyAgICBhc3NlcnQoa2V5
IGluIGFycmF5LCBgc2hvdWxkIGNvbnRhaW4ga2V5ICR7a2V5LnRvU3RyaW5nKCl9YCk7CisKKyAg
ICBhc3NlcnQoYXJyYXkuaGFzT3duUHJvcGVydHkoa2V5KSA9PT0gdHJ1ZSwgYGhhc093blByb3Bl
cnR5KCR7a2V5LnRvU3RyaW5nKCl9KSBzaG91bGQgYmUgdHJ1ZWApOworICAgIGNvbnN0IGRlc2Ny
aXB0b3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCBrZXkpOworICAg
IGFzc2VydCh0eXBlb2YgZGVzY3JpcHRvciA9PT0gJ29iamVjdCcsIGBPYmplY3QuZ2V0T3duUHJv
cGVydHlEZXNjcmlwdG9yKCR7a2V5LnRvU3RyaW5nKCl9KSByZXR1cm4gYW4gb2JqZWN0YCk7Cisg
ICAgYXNzZXJ0KGRlc2NyaXB0b3IudmFsdWUgPT09IHZhbHVlLCBgZGVzY3JpcHRvci52YWx1ZSBz
aG91bGQgYmUgJHt2YWx1ZX1gKTsKKyAgICBhc3NlcnQoZGVzY3JpcHRvci53cml0YWJsZSA9PT0g
dHJ1ZSwgYGRlc2NyaXB0b3Iud3JpdGFibGUgc2hvdWxkIGJlIHRydWVgKTsKKyAgICBhc3NlcnQo
ZGVzY3JpcHRvci5lbnVtZXJhYmxlID09PSB0cnVlLCBgZGVzY3JpcHRvci5lbnVtZXJhYmxlIHNo
b3VsZCBiZSB0cnVlYCk7CisgICAgYXNzZXJ0KGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID09PSB0
cnVlLCBgZGVzY3JpcHRvci5jb25maWd1cmFibGUgc2hvdWxkIGJlIHRydWVgKTsKK30pOwogCi10
ZXN0VmFsaWRDb25maWd1cmFibGVJbmRpY2VzKFsKK3Rlc3RWYWxpZEluZGljZXMoWwogICAgICcw
MScsCiAgICAgJzAuMTAnLAogICAgICcrSW5maW5pdHknLAogICAgICctTmFOJywKICAgICAnLTAu
MCcsCiAgICAgU3ltYm9sKCcxJyksCi1dKTsKLQotdGVzdFZhbGlkTm9uQ29uZmlndXJhYmxlSW5k
aWNlcyA9IG1ha2VUZXN0KG1ha2VUZXN0VmFsaWRJbmRleChmYWxzZSkpCi10ZXN0VmFsaWROb25D
b25maWd1cmFibGVJbmRpY2VzKFsKICAgICAnMCcsCiAgICAgMCwKIF0pOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanMg
Yi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1tb25vbW9ycGhpYy1uZXV0ZXJlZC5q
cwppbmRleCA4MWQ3YzNiZDI3OGM5ZTZmNGM1MTdkNThjMmZjN2E3ODY1MjA2NzFjLi5iZWJhODVl
ZDhjNDkwY2Q3MmJiNWYyZTJkMmM3NjRkNTEwODIxYzZjIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1tb25vbW9ycGhpYy1uZXV0ZXJlZC5qcworKysgYi9KU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1tb25vbW9ycGhpYy1uZXV0ZXJlZC5qcwpAQCAt
MSw2MSArMSw5IEBACiB0eXBlZEFycmF5cyA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4
Q2xhbXBlZEFycmF5LCBJbnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMy
QXJyYXksIEZsb2F0MzJBcnJheSwgRmxvYXQ2NEFycmF5XTsKIAotCi1mdW5jdGlvbiBjaGVjayhh
cnJheSwgdGh1bmssIGNvdW50KSB7Ci0gICAgbGV0IGZhaWxlZCA9IHRydWU7Ci0gICAgdHJ5IHsK
LSAgICAgICAgdGh1bmsoYXJyYXksIGNvdW50KTsKLSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAg
aWYgKGUgIT0gIlR5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRh
Y2hlZCBmcm9tIHRoZSB2aWV3IikKLSAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihbdGh1bmss
IGNvdW50LCBlXSk7Ci0gICAgICAgIGZhaWxlZCA9IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZmFp
bGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3IoW3RodW5rLCBjb3VudF0pOwotfQotbm9Jbmxp
bmUoY2hlY2spOwotCi1mdW5jdGlvbiB0ZXN0KHRodW5rLCBhcnJheSkgewotICAgIGxldCBmbiA9
IEZ1bmN0aW9uKCJhcnJheSIsICJpIiwgdGh1bmspOwotICAgIG5vSW5saW5lKGZuKTsKLSAgICBm
b3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspCi0gICAgICAgIGNoZWNrKGFycmF5LCBmbiwg
aSk7Ci19Ci0KLWZvciAobGV0IGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7Ci0gICAgbGV0
IGFycmF5ID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICB0cmFuc2ZlckFycmF5QnVmZmVyKGFy
cmF5LmJ1ZmZlcik7Ci0gICAgdGVzdCgiYXJyYXlbMF0iLCBhcnJheSk7Ci0gICAgdGVzdCgiZGVs
ZXRlIGFycmF5WzBdIiwgYXJyYXkpOwotICAgIHRlc3QoIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoYXJyYXksIDApIiwgYXJyYXkpOwotICAgIHRlc3QoImFycmF5WzBdID0gMSIsIGFy
cmF5KTsKLSAgICB0ZXN0KCJhcnJheVtpXSA9IDEiLCBhcnJheSk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RGVEwodGh1bmssIGFycmF5LCBmYWlsQXJyYXkpIHsKLSAgICBsZXQgZm4gPSBGdW5jdGlvbigi
YXJyYXkiLCAiaSIsIHRodW5rKTsKLSAgICBub0lubGluZShmbik7Ci0gICAgZm9yIChsZXQgaSA9
IDA7IGkgPCAxMDAwMDsgaSsrKQotICAgICAgICBmbihhcnJheSwgaSkKLSAgICBjaGVjayhmYWls
QXJyYXksIGZuLCAxMDAwMCk7Ci19Ci0KLWZvciAobGV0IGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJy
YXlzKSB7Ci0gICAgbGV0IGFycmF5ID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICBsZXQgZmFp
bEFycmF5ID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICB0cmFuc2ZlckFycmF5QnVmZmVyKGZh
aWxBcnJheS5idWZmZXIpOwotICAgIHRlc3RGVEwoImFycmF5WzBdIiwgYXJyYXksIGZhaWxBcnJh
eSk7Ci0gICAgdGVzdEZUTCgiZGVsZXRlIGFycmF5WzBdIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0g
ICAgdGVzdEZUTCgiT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcnJheSwgMCkiLCBh
cnJheSwgZmFpbEFycmF5KTsKLSAgICB0ZXN0RlRMKCJhcnJheVswXSA9IDEiLCBhcnJheSwgZmFp
bEFycmF5KTsKLSAgICB0ZXN0RlRMKCJhcnJheVtpXSA9IDEiLCBhcnJheSwgZmFpbEFycmF5KTsK
LX0KLQotCiBmdW5jdGlvbiBjaGVja05vRXhjZXB0aW9uKGFycmF5LCB0aHVuaywgY291bnQpIHsK
ICAgICB0aHVuayhhcnJheSwgY291bnQpOwogfQotbm9JbmxpbmUoY2hlY2spOworbm9JbmxpbmUo
Y2hlY2tOb0V4Y2VwdGlvbik7CiAKIGZ1bmN0aW9uIHRlc3ROb0V4Y2VwdGlvbih0aHVuaywgYXJy
YXkpIHsKICAgICBsZXQgZm4gPSBGdW5jdGlvbigiYXJyYXkiLCAiaSIsIHRodW5rKTsKQEAgLTY3
LDcgKzE1LDEyIEBAIGZ1bmN0aW9uIHRlc3ROb0V4Y2VwdGlvbih0aHVuaywgYXJyYXkpIHsKIGZv
ciAobGV0IGNvbnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7CiAgICAgbGV0IGFycmF5ID0gbmV3
IGNvbnN0cnVjdG9yKDEwKTsKICAgICB0cmFuc2ZlckFycmF5QnVmZmVyKGFycmF5LmJ1ZmZlcik7
Ci0gICAgdGVzdE5vRXhjZXB0aW9uKCJPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksIDAsIHsg
dmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCBlbnVtZXJhYmxl
OiB0cnVlIH0pIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiYXJyYXlbMF0iLCBhcnJh
eSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJkZWxldGUgYXJyYXlbMF0iLCBhcnJheSk7CisgICAg
dGVzdE5vRXhjZXB0aW9uKCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCAw
KSIsIGFycmF5KTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oImFycmF5WzBdID0gMSIsIGFycmF5KTsK
KyAgICB0ZXN0Tm9FeGNlcHRpb24oImFycmF5W2ldID0gMSIsIGFycmF5KTsKKyAgICB0ZXN0Tm9F
eGNlcHRpb24oIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3Jp
dGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSIsIGFy
cmF5KTsKIH0KIAogZnVuY3Rpb24gdGVzdEZUTE5vRXhjZXB0aW9uKHRodW5rLCBhcnJheSwgZmFp
bEFycmF5KSB7CkBAIC03Nyw5ICszMCwxNSBAQCBmdW5jdGlvbiB0ZXN0RlRMTm9FeGNlcHRpb24o
dGh1bmssIGFycmF5LCBmYWlsQXJyYXkpIHsKICAgICAgICAgZm4oYXJyYXksIGkpCiAgICAgY2hl
Y2tOb0V4Y2VwdGlvbihmYWlsQXJyYXksIGZuLCAxMDAwMCk7CiB9CisKIGZvciAobGV0IGNvbnN0
cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7CiAgICAgbGV0IGFycmF5ID0gbmV3IGNvbnN0cnVjdG9y
KDEwKTsKICAgICBsZXQgZmFpbEFycmF5ID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKICAgICB0cmFu
c2ZlckFycmF5QnVmZmVyKGZhaWxBcnJheS5idWZmZXIpOwotICAgIHRlc3RGVExOb0V4Y2VwdGlv
bigiT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTog
dHJ1ZSwgY29uZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSIsIGFycmF5LCBm
YWlsQXJyYXkpOworICAgIHRlc3RGVExOb0V4Y2VwdGlvbigiYXJyYXlbMF0iLCBhcnJheSwgZmFp
bEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oImRlbGV0ZSBhcnJheVswXSIsIGFycmF5
LCBmYWlsQXJyYXkpOworICAgIHRlc3RGVExOb0V4Y2VwdGlvbigiT2JqZWN0LmdldE93blByb3Bl
cnR5RGVzY3JpcHRvcihhcnJheSwgMCkiLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRM
Tm9FeGNlcHRpb24oImFycmF5WzBdID0gMSIsIGFycmF5LCBmYWlsQXJyYXkpOworICAgIHRlc3RG
VExOb0V4Y2VwdGlvbigiYXJyYXlbaV0gPSAxIiwgYXJyYXksIGZhaWxBcnJheSk7CisgICAgdGVz
dEZUTE5vRXhjZXB0aW9uKCJPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJyYXksIDAsIHsgdmFsdWU6
IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWUg
fSkiLCBhcnJheSwgZmFpbEFycmF5KTsKIH0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5
cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1h
Y2Nlc3MtbmV1dGVyZWQuanMKaW5kZXggYzUyMTUyZmJiZjFhZjgyNDQxYTQzNjk2OTFlNDU2Yjhi
ZTJkYjUxNC4uYWJlYjA1OTk5OTI1MDk4NWFiOTE4ZWI0MjU5NDM2NzI2OWQwNzM5NyAxMDA2NDQK
LS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbmV1dGVyZWQuanMKKysrIGIv
SlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbmV1dGVyZWQuanMKQEAgLTEsMzMgKzEs
NSBAQAogdHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRB
cnJheSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBG
bG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07CiAKLQotZnVuY3Rpb24gY2hlY2sodGh1bmssIGNv
dW50KSB7Ci0gICAgbGV0IGFycmF5ID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICB0cmFuc2Zl
ckFycmF5QnVmZmVyKGFycmF5LmJ1ZmZlcik7Ci0gICAgbGV0IGZhaWxlZCA9IHRydWU7Ci0gICAg
dHJ5IHsKLSAgICAgICAgdGh1bmsoYXJyYXkpOwotICAgIH0gY2F0Y2goZSkgewotICAgICAgICBp
ZiAoZSAhPSAiVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFj
aGVkIGZyb20gdGhlIHZpZXciKQotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFt0aHVuaywg
Y291bnQsIGVdKTsKLSAgICAgICAgZmFpbGVkID0gZmFsc2U7Ci0gICAgfQotICAgIGlmIChmYWls
ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcihbdGh1bmssIGNvdW50XSk7Ci19Ci0KLWZ1bmN0
aW9uIHRlc3QodGh1bmssIGNvdW50KSB7Ci0gICAgZm9yIChjb25zdHJ1Y3RvciBvZiB0eXBlZEFy
cmF5cykKLSAgICAgICAgY2hlY2sodGh1bmssIGNvdW50KTsKLX0KLQotZm9yIChsZXQgaSA9IDA7
IGkgPCAxMDAwMDsgaSsrKSB7Ci0gICAgdGVzdCgoYXJyYXkpID0+IGFycmF5WzBdLCBpKTsKLSAg
ICB0ZXN0KChhcnJheSkgPT4gZGVsZXRlIGFycmF5WzBdLCBpKTsKLSAgICB0ZXN0KChhcnJheSkg
PT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcnJheSwgMCksIGkpOwotICAgIHRl
c3QoKGFycmF5KSA9PiBhcnJheVswXSA9IDEsIGkpOwotfQotCiBmdW5jdGlvbiBjaGVja05vRXhj
ZXB0aW9uKHRodW5rLCBjb3VudCkgewogICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3Rvcigx
MCk7CiAgICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwpAQCAtNDAsNSArMTIs
OSBAQCBmdW5jdGlvbiB0ZXN0Tm9FeGNlcHRpb24odGh1bmssIGNvdW50KSB7CiB9CiAKIGZvciAo
bGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewotICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkp
ID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFibGU6
IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIGVudW1lcmFibGU6IHRydWUgfSksIGkpCisgICAg
dGVzdE5vRXhjZXB0aW9uKChhcnJheSkgPT4gYXJyYXlbMF0sIGkpOworICAgIHRlc3ROb0V4Y2Vw
dGlvbigoYXJyYXkpID0+IGRlbGV0ZSBhcnJheVswXSwgaSk7CisgICAgdGVzdE5vRXhjZXB0aW9u
KChhcnJheSkgPT4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihhcnJheSwgMCksIGkp
OworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IGFycmF5WzBdID0gMSwgaSk7CisgICAg
dGVzdE5vRXhjZXB0aW9uKChhcnJheSkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGFycmF5LCAw
LCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJh
YmxlOiB0cnVlIH0pLCBpKQogfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1jb25maWd1cmUtaW5kZXguanMgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvbmZpZ3Vy
ZS1pbmRleC5qcwppbmRleCA1N2FlZjM3NjliMTNjMDE2ZjNhODRiZjUzMmU3NGY1OTI3OWZiZjc3
Li5lNDY1YmQxMGYzMDAzM2U4MGYwMDIxNWY3Yjc5NDUyMjRjODQyYWU4IDEwMDY0NAotLS0gYS9K
U1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWNvbmZpZ3VyZS1pbmRleC5qcworKysgYi9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWNvbmZpZ3VyZS1pbmRleC5qcwpAQCAtNDAsMTMgKzQwLDEzIEBA
IGZ1bmN0aW9uIHRlc3QoYXJyYXksIGEsIGMsIGVycm9yICkgewogZnVuY3Rpb24gZm9vKCkgewog
ICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsKICAgICAgICAgbGV0IGEgPSBu
ZXcgY29uc3RydWN0b3IoMTApOwotICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwg
bWFrZURlc2NyaXB0b3IoZmFsc2UsIGZhbHNlLCB0cnVlLCB0cnVlKSk7CisgICAgICAgIE9iamVj
dC5kZWZpbmVQcm9wZXJ0eShhLCAwLCBtYWtlRGVzY3JpcHRvcihmYWxzZSwgdHJ1ZSwgdHJ1ZSwg
dHJ1ZSkpOwogICAgICAgICBhc3NlcnQoYVswXSA9PT0gMSk7Ci0gICAgICAgIGFzc2VydFRocm93
cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2Us
IGZhbHNlLCB0cnVlLCBmYWxzZSksICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gc3RvcmUgbm9u
LWVudW1lcmFibGUgaW5kZXhlZCBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5LiIpKTsKLSAgICAg
ICAgYXNzZXJ0VGhyb3dzKCgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAwLCBtYWtlRGVz
Y3JpcHRvcihmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSksICJUeXBlRXJyb3I6IEF0dGVtcHRp
bmcgdG8gc3RvcmUgbm9uLWVudW1lcmFibGUgaW5kZXhlZCBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFy
cmF5LiIpKTsKLSAgICAgICAgYXNzZXJ0VGhyb3dzKCgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0
eShhLCAwLCBtYWtlRGVzY3JpcHRvcihmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlKSwgIlR5cGVF
cnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBub24td3JpdGFibGUgaW5kZXhlZCBwcm9wZXJ0eSBv
biBhIHR5cGVkIGFycmF5LiIpKTsKKyAgICAgICAgYXNzZXJ0VGhyb3dzKCgpID0+IE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShhLCAwLCBtYWtlRGVzY3JpcHRvcihmYWxzZSwgdHJ1ZSwgdHJ1ZSwgZmFs
c2UpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4
ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7CisgICAgICAgIGFzc2VydFRocm93cygo
KSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRy
dWUsIGZhbHNlLCBmYWxzZSksICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gc3RvcmUgbm9uLWVu
dW1lcmFibGUgaW5kZXhlZCBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5LiIpKTsKKyAgICAgICAg
YXNzZXJ0VGhyb3dzKCgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCAwLCBtYWtlRGVzY3Jp
cHRvcihmYWxzZSwgdHJ1ZSwgZmFsc2UsIHRydWUpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRv
IHN0b3JlIG5vbi13cml0YWJsZSBpbmRleGVkIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXkuIikp
OwogCi0gICAgICAgIHRlc3QoYSwgZmFsc2UsIHRydWUsICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcg
dG8gY29uZmlndXJlIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkuIik7CisgICAgICAgIHRlc3Qo
YSwgZmFsc2UsIGZhbHNlLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1jb25m
aWd1cmFibGUgcHJvcGVydHkuIik7CiAgICAgICAgIGZvciAoYyBvZiBib29scykgewogICAgICAg
ICAgICAgdGVzdChhLCB0cnVlLCBjLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIGFj
Y2Vzc29yIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKQogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZ1bmN0aW9ucy13aXRoLW5ldXRl
cmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJl
ZC5qcwppbmRleCBjY2FkM2EwZWUwOGI3ZjRjODc1MThjYTUzYTM5MjI1OWExNTY2NGY4Li41NDg0
MTlmOGY2MWExZTY1NmU0ZTBiMmU5ZjBkNjViMGE0NGIyMmZmIDEwMDY0NAotLS0gYS9KU1Rlc3Rz
L3N0cmVzcy90eXBlZGFycmF5LWZ1bmN0aW9ucy13aXRoLW5ldXRlcmVkLmpzCisrKyBiL0pTVGVz
dHMvc3RyZXNzL3R5cGVkYXJyYXktZnVuY3Rpb25zLXdpdGgtbmV1dGVyZWQuanMKQEAgLTc3LDIy
ICs3NywxMyBAQCBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykKIC8vIFRlc3QgdGhhdCB3
ZSBoYW5kbGUgbmV1dGVyaW5nIGZvciBhbnkgdG9JbnRlZ2VyIG5ldXRlcmluZyB0aGUgYXJyYXli
dWZmZXIuCiBwcm90b3R5cGVGdW5jdGlvbnMgPSBbCiAgICAgeyBmdW5jOnByb3RvLmNvcHlXaXRo
aW4sIGFyZ3M6WyJwcmltIiwgInByaW0iLCAicHJpbSJdIH0sCi0gICAgeyBmdW5jOnByb3RvLmV2
ZXJ5LCBhcmdzOlsiZnVuYyJdIH0sCiAgICAgeyBmdW5jOnByb3RvLmZpbGwsIGFyZ3M6WyJwcmlt
IiwgInByaW0iLCAicHJpbSJdIH0sCi0gICAgeyBmdW5jOnByb3RvLmZpbHRlciwgYXJnczpbImZ1
bmMiXSB9LAotICAgIHsgZnVuYzpwcm90by5maW5kLCBhcmdzOlsiZnVuYyJdIH0sCi0gICAgeyBm
dW5jOnByb3RvLmZpbmRJbmRleCwgYXJnczpbImZ1bmMiXSB9LAotICAgIHsgZnVuYzpwcm90by5m
b3JFYWNoLCBhcmdzOlsiZnVuYyJdIH0sCiAgICAgeyBmdW5jOnByb3RvLmluZGV4T2YsIGFyZ3M6
WyJuYSIsICJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uaW5jbHVkZXMsIGFyZ3M6WyJuYSIs
ICJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uam9pbiwgYXJnczpbInByaW0iXSB9LAogICAg
IHsgZnVuYzpwcm90by5sYXN0SW5kZXhPZiwgYXJnczpbIm5hIiwgInByaW0iXSB9LAotICAgIHsg
ZnVuYzpwcm90by5tYXAsIGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8ucmVkdWNl
LCBhcmdzOlsiZnVuYyJdIH0sCi0gICAgeyBmdW5jOnByb3RvLnJlZHVjZVJpZ2h0LCBhcmdzOlsi
ZnVuYyJdIH0sCiAgICAgeyBmdW5jOnByb3RvLnNldCwgYXJnczpbImFycmF5IiwgInByaW0iXSB9
LAogICAgIHsgZnVuYzpwcm90by5zbGljZSwgYXJnczpbInByaW0iLCAicHJpbSJdIH0sCi0gICAg
eyBmdW5jOnByb3RvLnNvbWUsIGFyZ3M6WyJmdW5jIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uc29y
dCwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVuYzpwcm90by5zdWJhcnJheSwgYXJnczpbInBy
aW0iLCAicHJpbSJdIH0sCiBdOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJh
eS1nZXRvd25wcm9wZXJ0eS1ub3QtY29uZmlndXJhYmxlLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1nZXRvd25wcm9wZXJ0eS1ub3QtY29uZmlndXJhYmxlLmpzCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCBjM2RhOWQ5MjVmZjhiMzk0MTdhYmRlZmRkMGViN2RkYmY2OTI4MjU2
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMv
c3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNvbmZpZ3VyYWJsZS5qcworKysg
L2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAKLXR5cGVkQXJyYXlzID0gW0ludDhBcnJheSwgVWlu
dDhBcnJheSwgVWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5LCBJbnQz
MkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwotCi1mdW5j
dGlvbiBhc3NlcnQoY29uZCkgewotICAgIGlmICghY29uZCkKLSAgICAgICAgdGhyb3cgbmV3IEVy
cm9yKCJiYWQgYXNzZXJ0aW9uISIpOwotfQotCi1mdW5jdGlvbiBmb28oKSB7Ci0gICAgZm9yIChj
b25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewotICAgICAgICBsZXQgYSA9IG5ldyBjb25zdHJ1
Y3RvcigxMCk7Ci0gICAgICAgIGxldCBiID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRv
cihhLCAwKTsKLSAgICAgICAgYXNzZXJ0KGIudmFsdWUgPT09IDApOwotICAgICAgICBhc3NlcnQo
Yi53cml0YWJsZSA9PT0gdHJ1ZSk7Ci0gICAgICAgIGFzc2VydChiLmVudW1lcmFibGUgPT09IHRy
dWUpOwotICAgICAgICBhc3NlcnQoYi5jb25maWd1cmFibGUgPT09IGZhbHNlKTsKLSAgICB9Ci19
Ci0KLWZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBpKyspCi0gICAgZm9vKCk7CmRpZmYgLS1naXQg
YS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWdldG93bnByb3BlcnR5LmpzIGIvSlNUZXN0cy9z
dHJlc3MvdHlwZWRhcnJheS1nZXRvd25wcm9wZXJ0eS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMzkyZWI3OTc1
MGQ3MDcxNmY2ODRkYTE4NmQxOTQwZjhmNGRjNWUwCi0tLSAvZGV2L251bGwKKysrIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1nZXRvd25wcm9wZXJ0eS5qcwpAQCAtMCwwICsxLDIwIEBACit0
eXBlZEFycmF5cyA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4Q2xhbXBlZEFycmF5LCBJ
bnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMyQXJyYXksIEZsb2F0MzJB
cnJheSwgRmxvYXQ2NEFycmF5XTsKKworZnVuY3Rpb24gYXNzZXJ0KGNvbmQpIHsKKyAgICBpZiAo
IWNvbmQpCisgICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGFzc2VydGlvbiEiKTsKK30KKwor
ZnVuY3Rpb24gZm9vKCkgeworICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsK
KyAgICAgICAgbGV0IGEgPSBuZXcgY29uc3RydWN0b3IoMTApOworICAgICAgICBsZXQgYiA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwgMCk7CisgICAgICAgIGFzc2VydChiLnZh
bHVlID09PSAwKTsKKyAgICAgICAgYXNzZXJ0KGIud3JpdGFibGUgPT09IHRydWUpOworICAgICAg
ICBhc3NlcnQoYi5lbnVtZXJhYmxlID09PSB0cnVlKTsKKyAgICAgICAgYXNzZXJ0KGIuY29uZmln
dXJhYmxlID09PSB0cnVlKTsKKyAgICB9Cit9CisKK2ZvciAobGV0IGkgPSAwOyBpIDwgMTAwOyBp
KyspCisgICAgZm9vKCk7CmRpZmYgLS1naXQgYS9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25z
LnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIvZXhwZWN0YXRpb25zLnlhbWwKaW5kZXggYzI1MTc3ZmI4
NTk1M2ZhZDUxZGNjZTZiNjY5ZjFkMTYwYTkxYjM5MC4uYTc2YmVlNWFlNDUwYjJkMmEzZGIwNjQ0
NjU5YjY2MTkwNzUxZTkxNSAxMDA2NDQKLS0tIGEvSlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9u
cy55YW1sCisrKyBiL0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbApAQCAtMTI0MCwx
NSArMTI0MCw0MiBAQCB0ZXN0L2J1aWx0LWlucy9SZWdFeHAvcHJvdG90eXBlL2V4ZWMvdS1sYXN0
aW5kZXgtYWR2LmpzOgogdGVzdC9idWlsdC1pbnMvUmVnRXhwL3F1YW50aWZpZXItaW50ZWdlci1s
aW1pdC5qczoKICAgZGVmYXVsdDogJ1N5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVz
c2lvbjogbnVtYmVyIHRvbyBsYXJnZSBpbiB7fSBxdWFudGlmaWVyJwogICBzdHJpY3QgbW9kZTog
J1N5bnRheEVycm9yOiBJbnZhbGlkIHJlZ3VsYXIgZXhwcmVzc2lvbjogbnVtYmVyIHRvbyBsYXJn
ZSBpbiB7fSBxdWFudGlmaWVyJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUv
ZXZlcnkvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2ZpbHRlci9j
YWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhw
ZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBU
eXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvZmluZC9wcmVkaWNhdGUt
bWF5LWRldGFjaC1idWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IHRocm93cyBh
IFR5cGVFcnJvciBnZXR0aW5nIGEgdmFsdWUgZnJvbSB0aGUgZGV0YWNoZWQgYnVmZmVyIEV4cGVj
dGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24g
YXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVz
dDI2MkVycm9yOiB0aHJvd3MgYSBUeXBlRXJyb3IgZ2V0dGluZyBhIHZhbHVlIGZyb20gdGhlIGRl
dGFjaGVkIGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwor
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUvZmluZEluZGV4L3ByZWRpY2F0ZS1t
YXktZGV0YWNoLWJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogdGhyb3dzIGEg
VHlwZUVycm9yIGdldHRpbmcgYSB2YWx1ZSBmcm9tIHRoZSBkZXRhY2hlZCBidWZmZXIgRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IHRocm93cyBhIFR5cGVFcnJvciBnZXR0aW5nIGEgdmFsdWUgZnJvbSB0aGUgZGV0
YWNoZWQgYnVmZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhj
ZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0
ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9mb3JFYWNoL2NhbGxiYWNrZm4tZGV0
YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVF
cnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQg
Z290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1
aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9tYXAvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIu
anM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBn
b3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0
IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0
MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5
cGVkQXJyYXkvcHJvdG90eXBlL3JlZHVjZS9jYWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKKyAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRl
c3QyNjJFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJv
ciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJh
eS9wcm90b3R5cGUvcmVkdWNlUmlnaHQvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CisgIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0
MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdU
ZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3Ig
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkv
cHJvdG90eXBlL3NsaWNlL2RldGFjaGVkLWJ1ZmZlci1jdXN0b20tY3Rvci1vdGhlci10YXJnZXR0
eXBlLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gaGF2
ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIG9ialswXSB0byBoYXZlIGNvbmZpZ3Vy
YWJsZTp0cnVlLiAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBkZWZhdWx0OiAnVGVz
dDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gYmUgY29uZmlndXJhYmxlLCBidXQgd2FzIG5v
dC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIG9ialswXSB0byBiZSBjb25maWd1cmFibGUsIGJ1dCB3YXMgbm90LiAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9w
cm90b3R5cGUvc2xpY2UvZGV0YWNoZWQtYnVmZmVyLXplcm8tY291bnQtY3VzdG9tLWN0b3Itb3Ro
ZXItdGFyZ2V0dHlwZS5qczoKICAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJh
eUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5
QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3NsaWNlL2Rl
dGFjaGVkLWJ1ZmZlci16ZXJvLWNvdW50LWN1c3RvbS1jdG9yLXNhbWUtdGFyZ2V0dHlwZS5qczoK
ICAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBk
ZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiAgIHN0
cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRl
dGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3Qv
YnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3NvbWUvY2FsbGJhY2tmbi1kZXRhY2hidWZm
ZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1
dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBU
ZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3RvcnMvYnVmZmVyLWFyZy9ieXRlb2Zmc2V0LXRvLW51
bWJlci1kZXRhY2hidWZmZXIuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVk
IGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBSYW5nZUVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJv
ciBidXQgZ290IGEgUmFuZ2VFcnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwpAQCAt
MTMwOSw4NCArMTMzNiwyNCBAQCB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3Jz
L2N0b3JzL3R5cGVkYXJyYXktYXJnL3NhbWUtY3Rvci1idWZmZXItY3RvcgogdGVzdC9idWlsdC1p
bnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0b3It
YnVmZmVyLWN0b3ItdmFsdWUtbm90LW9iai10aHJvd3MuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9u
IHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiAgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMv
RGVmaW5lT3duUHJvcGVydHkvdG9udW1iZXItdmFsdWUtZGV0YWNoZWQtYnVmZmVyLmpzOgotICBk
ZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFj
aGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0
IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNo
ZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvRGVsZXRlL2RldGFjaGVkLWJ1
ZmZlci1yZWFsbS5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1
ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVm
ZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxz
L0RlbGV0ZS9kZXRhY2hlZC1idWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0
b3JzL2ludGVybmFscy9EZWxldGUva2V5LWlzLW91dC1vZi1ib3VuZHMtbm9uLXN0cmljdC5qczoK
LSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogVGhlIHZhbHVlIG9mIGBkZWxldGUgc2FtcGxlWyIx
Il1gIGlzIHRydWUgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRvIGJl
IHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVk
QXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0RlbGV0ZS9rZXktaXMtb3V0LW9mLWJvdW5kcy1z
dHJpY3QuanM6Ci0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmFibGUgdG8gZGVsZXRlIHBy
b3BlcnR5LiAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlw
ZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0L2RldGFjaGVkLWJ1ZmZlci1yZWFsbS5q
czoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0g
IHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVu
IGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9kZXRhY2hl
ZC1idWZmZXIuanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZm
ZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZl
ciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9H
ZXQvaW5maW5pdHktZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBV
bmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVu
ZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0
cnVjdG9ycy9pbnRlcm5hbHMvR2V0L2tleS1pcy1ub3QtaW50ZWdlci5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9p
bnRlcm5hbHMvR2V0L2tleS1pcy1ub3QtbWludXMtemVyby5qczoKLSAgZGVmYXVsdDogJ1Rlc3Qy
NjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogT3Jk
aW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRoIEZsb2F0
NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5h
bHMvR2V0L2tleS1pcy1vdXQtb2YtYm91bmRzLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBPcmRpbmFyeUdldCB3YXMgY2FsbGVkISBSZWY6IDkuMS44LjEgMy5jIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBPcmRpbmFyeUdl
dCB3YXMgY2FsbGVkISBSZWY6IDkuMS44LjEgMy5jIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9HZXRP
d25Qcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJy
b3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmll
dyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJv
cjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5
Q29uc3RydWN0b3JzL2ludGVybmFscy9HZXRPd25Qcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXIuanM6
Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4g
ZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBz
dHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBk
ZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0
L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWZpbmVPd25Qcm9w
ZXJ0eS9rZXktaXMtbnVtZXJpY2luZGV4LWRlc2MtY29uZmlndXJhYmxlLmpzOgorICBkZWZhdWx0
OiAiVGVzdDI2MkVycm9yOiBkZWZpbmVQcm9wZXJ0eSdzIHJlc3VsdCBFeHBlY3RlZCBTYW1lVmFs
dWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pIgorICBzdHJpY3QgbW9kZTogIlRlc3QyNjJFcnJvcjogZGVmaW5lUHJvcGVydHkncyBy
ZXN1bHQgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKSIKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlD
b25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L2tleS1pcy1udW1lcmljaW5k
ZXguanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq2Zh
bHNlwrssIMKrdHJ1ZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxz
ZcK7LCDCq3RydWXCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwog
dGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0T3duUHJv
cGVydHkvaW5kZXgtcHJvcC1kZXNjLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIG9ialsw
XSB0byBoYXZlIGNvbmZpZ3VyYWJsZTp0cnVlLiAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJv
cGVydHkvYWJydXB0LWZyb20tb3JkaW5hcnktaGFzLXBhcmVudC1oYXNwcm9wZXJ0eS5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0g
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiAgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1By
b3BlcnR5L2RldGFjaGVkLWJ1ZmZlci1yZWFsbS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0Lmhhcyhz
YW1wbGUsICIwIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7
LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1Byb3BlcnR5
L2RldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5o
YXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3Ry
dWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LmhhcyhzYW1wbGUsICIwIikg
bXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5z
L1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1Byb3BlcnR5L2luZmluaXR5LXdp
dGgtZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5n
IEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMv
aW50ZXJuYWxzL0hhc1Byb3BlcnR5L2luaGVyaXRlZC1wcm9wZXJ0eS5qczoKLSAgZGVmYXVsdDog
J1Rlc3QyNjJFcnJvcjogNDIgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IDQyIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7
KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9rZXktaXMtZ3Jl
YXRlci10aGFuLWxhc3QtaW5kZXguanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxl
Y3QuaGFzKHNhbXBsZSwgIjEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUo
wqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAi
MSIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxz
ZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9rZXktaXMt
bG93ZXItdGhhbi16ZXJvLmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0Lmhh
cyhzYW1wbGUsICItMSIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3Ry
dWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
Ci0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LmhhcyhzYW1wbGUsICItMSIp
IG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7
KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlu
cy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9rZXktaXMtbWlu
dXMtemVyby5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxl
LCAiLTAiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKr
ZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJp
Y3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTAiKSBtdXN0IHJl
dHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUg
dHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLW5vdC1pbnRlZ2Vy
LmpzOgotICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiAxLjEgRXhwZWN0ZWQgU2FtZVZhbHVlKMKr
dHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IDEuMSBFeHBlY3RlZCBTYW1lVmFsdWUo
wqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gYmUgY29u
ZmlndXJhYmxlLCBidXQgd2FzIG5vdC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAg
c3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIG9ialswXSB0byBiZSBjb25maWd1
cmFibGUsIGJ1dCB3YXMgbm90LiAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogdGVzdC9i
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0L2RldGFjaGVkLWJ1
ZmZlci1yZWFsbS5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1
ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVm
ZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHNhbXBsZVswXSA9IDFgIGlzIGZh
bHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzHCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBg
c2FtcGxlWzBdID0gMWAgaXMgZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7LCDCq2ZhbHNl
wrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL1NldC9kZXRhY2hlZC1idWZmZXIu
anM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJl
ZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwot
ICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqsxwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYHNhbXBsZVswXSA9
IDFgIGlzIGZhbHNlIEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzHCuywgwqtmYWxzZcK7KSB0byBiZSB0
cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFy
cmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9TZXQvdG9udW1iZXItdmFsdWUtZGV0YWNoZWQtYnVm
ZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhh
cyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFz
IGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0L3Rv
bnVtYmVyLXZhbHVlLXRocm93cy5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogYHNhbXBs
ZVsiMS4xIl0gPSBvYmpgIHRocm93cyBUZXN0MjYyRXJyb3IgRXhwZWN0ZWQgYSBUZXN0MjYyRXJy
b3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRlc3Rp
bmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IGBz
YW1wbGVbIjEuMSJdID0gb2JqYCB0aHJvd3MgVGVzdDI2MkVycm9yIEV4cGVjdGVkIGEgVGVzdDI2
MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChU
ZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4
cGVjdGVkIFNhbWVWYWx1ZSjCq3VuZGVmaW5lZMK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3VuZGVmaW5lZMK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvaW50bDQwMi9EYXRlVGltZUZvcm1h
dC9wcm90b3R5cGUvZm9ybWF0UmFuZ2UvZW4tVVMuanM6CiAgIGRlZmF1bHQ6ICdUZXN0MjYyRXJy
b3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzEvMy8yMDE54oCJ4oCT4oCJMS81LzIwMTnCuywgwqsx
LzMvMjAxOSDigJMgMS81LzIwMTnCuykgdG8gYmUgdHJ1ZScKICAgc3RyaWN0IG1vZGU6ICdUZXN0
MjYyRXJyb3I6IEV4cGVjdGVkIFNhbWVWYWx1ZSjCqzEvMy8yMDE54oCJ4oCT4oCJMS81LzIwMTnC
uywgwqsxLzMvMjAxOSDigJMgMS81LzIwMTnCuykgdG8gYmUgdHJ1ZScK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411661</attachid>
            <date>2020-10-17 02:08:51 -0700</date>
            <delta_ts>2020-10-17 02:59:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217854-20201017020850.patch</filename>
            <type>text/plain</type>
            <size>58039</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
NGM4NTU1ODBmYjMzZGQ2MGRlNWM2ODA1MjYxYmM1OWVmZTI0MDM5Li41MzI3NjE3NTdkZGFjYWI5
ZmIyMDUyNjg4NWE0Yzc0NjQ2NTc2NDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29u
eS5jb20+CisKKyAgICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50ZXJuYWwg
bWV0aG9kcyBhZGhlcmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVr
aS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHJlc3NlcyBodHRwczovL2dpdGh1Yi5jb20vdGMz
OS9lY21hMjYyL3B1bGwvMjE2NCwKKyAgICAgICAgd2hpY2ggYWxpZ25zIGRldGFjaGVkIGJ1ZmZl
ciBzZW1hbnRpY3MgaW4gdHlwZWQgYXJyYXlzIHdpdGggd2ViIHJlYWxpdHkuCisKKyAgICAgICAg
SW4gcGFydGljdWxhcjoKKyAgICAgICAgLSBbW0hhc1Byb3BlcnR5XV0gbXVzdCBub3QgdGhyb3cK
KyAgICAgICAgLSBJbnRlZ2VySW5kZXhlZEVsZW1lbnRHZXQgKGkuZS4gW1tHZXRPd25Qcm9wZXJ0
eV1dIGFuZCBbW0dldF1dKSBtdXN0IG5vdCB0aHJvdworICAgICAgICAtIEludGVnZXJJbmRleGVk
RWxlbWVudFNldCAoaS5lLiBbW0RlZmluZU93blByb3BlcnR5XV0gYW5kIFtbU2V0XV0pIG11c3Qg
bm90IHRocm93CisgICAgICAgIC0gSW50ZWdlci1pbmRleGVkIGVsZW1lbnRzIG11c3QgYmUgW1tD
b25maWd1cmFibGVdXSAodG8gYXZvaWQgYnJlYWtpbmcgYSBbW0hhc1Byb3BlcnR5XV0gaW52YXJp
YW50KQorICAgICAgICAtIFtbRGVsZXRlXV0gbXVzdCBiZSBvdmVycmlkZGVuIHRvIHJldHVybiBm
YWxzZSBmb3IgaW50ZWdlci1pbmRleGVkIGVsZW1lbnRzICh3aGljaCBhcmUgKm5vdCogZGVsZXRh
YmxlKQorCisgICAgICAgIFRoaXMgcGF0Y2ggZnVydGhlcm1vcmUgZW5zdXJlcyB0aGF0IGFsbCBv
ZiB0aGVzZSBlc3NlbnRpYWwgaW50ZXJuYWwgbWV0aG9kcyBoYXZlIGEgc3BlYy1wZXJmZWN0IGlt
cGxlbWVudGF0aW9uLgorCisgICAgICAgIE5vdGUgdGhhdCB0aGVyZSBhcmUgYSBjb3VwbGUgb2Yg
aW50ZXJlc3RpbmcgcmlwcGxlIGVmZmVjdHMgaGVyZToKKyAgICAgICAgLSBUaGUgZmlsbCgpLCBz
b3J0KCksIGFuZCBzZXQoKSBtZXRob2RzIHNob3VsZCB0aHJvdyBleHBsaWNpdGx5LCBidXQgd2Un
ZCBiZWVuIGxldHRpbmcgW1tHZXRdXSB0aHJvdyBpbnN0ZWFkLgorICAgICAgICAtIE90aGVyIGNh
bGxiYWNrLXRha2luZyBtZXRob2RzIHNob3VsZCAqbm90KiB0aHJvdyBhbnltb3JlOyB0aGV5IG9u
bHkgZGlkIHNvIGltcGxpY2l0bHkgdmlhIFtbR2V0XV0gYW5kIFtbU2V0XV0uCisKKyAgICAgICAg
KiBidWlsdGlucy9UeXBlZEFycmF5UHJvdG90eXBlLmpzOgorICAgICAgICAoZmlsbCk6CisgICAg
ICAgIChzb3J0KToKKyAgICAgICAgKiBydW50aW1lL0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3Lmg6
CisgICAgICAgICogcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaDoKKyAg
ICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OnNldCk6CisgICAg
ICAgIChKU0M6OkpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0
eVNsb3QpOgorICAgICAgICAoSlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6
cHV0KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmRl
ZmluZU93blByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5KToKKyAgICAgICAgKEpTQzo6SlNHZW5lcmljVHlwZWRB
cnJheVZpZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOgorICAgICAgICAo
SlNDOjpKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KToKKyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmg6CisgICAg
ICAgICogcnVudGltZS9KU09iamVjdElubGluZXMuaDoKKyAgICAgICAgKEpTQzo6SlNPYmplY3Q6
OmdldFByb3BlcnR5U2xvdCk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpnZXROb25JbmRleFBy
b3BlcnR5U2xvdCk6CisgICAgICAgICogcnVudGltZS9KU1R5cGVkQXJyYXlzLmNwcDoKKwogMjAy
MC0xMC0xNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVXNlIEBwdXRCeVZhbERpcmVjdCBpbnN0ZWFkIG9mIEFycmF5LnByb3RvdHlwZS5AcHVzaCBp
biBidWlsdC1pbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9idWlsdGlucy9U
eXBlZEFycmF5UHJvdG90eXBlLmpzIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5
cGVkQXJyYXlQcm90b3R5cGUuanMKaW5kZXggOWNkYzM3YTMxMzM0YzIyYzE3MTFiZjQxNGVmZGQ2
NTY2YTZlZjI0Ni4uNzYyMTNjMjc5OTA1Nzg1Mjk3NzhlZmVkMGYwNGMwMjU4YjI5YzAwZSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90b3R5
cGUuanMKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J1aWx0aW5zL1R5cGVkQXJyYXlQcm90
b3R5cGUuanMKQEAgLTk2LDYgKzk2LDkgQEAgZnVuY3Rpb24gZmlsbCh2YWx1ZSAvKiBbLCBzdGFy
dCBbLCBlbmRdXSAqLykKICAgICB2YXIgc3RhcnQgPSBAdHlwZWRBcnJheUNsYW1wQXJndW1lbnRU
b1N0YXJ0T3JFbmQoQGFyZ3VtZW50KDEpLCBsZW5ndGgsIDApOwogICAgIHZhciBlbmQgPSBAdHlw
ZWRBcnJheUNsYW1wQXJndW1lbnRUb1N0YXJ0T3JFbmQoQGFyZ3VtZW50KDIpLCBsZW5ndGgsIGxl
bmd0aCk7CiAKKyAgICBpZiAoQGlzTmV1dGVyZWQodGhpcykpCisgICAgICAgIEB0aHJvd1R5cGVF
cnJvcigiVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2
aWV3Iik7CisKICAgICBmb3IgKHZhciBpID0gc3RhcnQ7IGkgPCBlbmQ7IGkrKykKICAgICAgICAg
dGhpc1tpXSA9IG51bWJlcjsKICAgICByZXR1cm4gdGhpczsKQEAgLTE3NSw3ICsxNzgsMTYgQEAg
ZnVuY3Rpb24gc29ydChjb21wYXJhdG9yKQogICAgICAgICByZXR1cm4gYSA8IGIgPyBhIDogYjsK
ICAgICB9CiAKLSAgICBmdW5jdGlvbiBtZXJnZShkc3QsIHNyYywgc3JjSW5kZXgsIHNyY0VuZCwg
d2lkdGgsIGNvbXBhcmF0b3IpCisgICAgdmFyIGNvbXBhcmUgPSAoYSwgYikgPT4geworICAgICAg
ICB2YXIgcmVzdWx0ID0gQHRvTnVtYmVyKGNvbXBhcmF0b3IoYSwgYikpOworCisgICAgICAgIGlm
IChAaXNOZXV0ZXJlZCh0aGlzKSkKKyAgICAgICAgICAgIEB0aHJvd1R5cGVFcnJvcigiVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3Iik7CisKKyAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9OworCisgICAgZnVuY3Rpb24gbWVyZ2UoZHN0LCBz
cmMsIHNyY0luZGV4LCBzcmNFbmQsIHdpZHRoKQogICAgIHsKICAgICAgICAgdmFyIGxlZnQgPSBz
cmNJbmRleDsKICAgICAgICAgdmFyIGxlZnRFbmQgPSBtaW4obGVmdCArIHdpZHRoLCBzcmNFbmQp
OwpAQCAtMTg0LDcgKzE5Niw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikKIAogICAgICAg
ICBmb3IgKHZhciBkc3RJbmRleCA9IGxlZnQ7IGRzdEluZGV4IDwgcmlnaHRFbmQ7ICsrZHN0SW5k
ZXgpIHsKICAgICAgICAgICAgIGlmIChyaWdodCA8IHJpZ2h0RW5kKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKGxlZnQgPj0gbGVmdEVuZCB8fCBjb21wYXJhdG9yKHNyY1tyaWdodF0sIHNyY1tsZWZ0
XSkgPCAwKSB7CisgICAgICAgICAgICAgICAgaWYgKGxlZnQgPj0gbGVmdEVuZCB8fCBjb21wYXJl
KHNyY1tyaWdodF0sIHNyY1tsZWZ0XSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIGRzdFtk
c3RJbmRleF0gPSBzcmNbcmlnaHQrK107CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgICAgIH0KQEAgLTE5NCw3ICsyMDYsNyBAQCBmdW5jdGlvbiBzb3J0KGNvbXBh
cmF0b3IpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBmdW5jdGlvbiBtZXJnZVNvcnQoYXJyYXks
IHZhbHVlQ291bnQsIGNvbXBhcmF0b3IpCisgICAgZnVuY3Rpb24gbWVyZ2VTb3J0KGFycmF5LCB2
YWx1ZUNvdW50KQogICAgIHsKICAgICAgICAgdmFyIGJ1ZmZlciA9IFsgXTsKICAgICAgICAgYnVm
ZmVyLmxlbmd0aCA9IHZhbHVlQ291bnQ7CkBAIC0yMDQsNyArMjE2LDcgQEAgZnVuY3Rpb24gc29y
dChjb21wYXJhdG9yKQogCiAgICAgICAgIGZvciAodmFyIHdpZHRoID0gMTsgd2lkdGggPCB2YWx1
ZUNvdW50OyB3aWR0aCAqPSAyKSB7CiAgICAgICAgICAgICBmb3IgKHZhciBzcmNJbmRleCA9IDA7
IHNyY0luZGV4IDwgdmFsdWVDb3VudDsgc3JjSW5kZXggKz0gMiAqIHdpZHRoKQotICAgICAgICAg
ICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVDb3VudCwgd2lkdGgsIGNvbXBh
cmF0b3IpOworICAgICAgICAgICAgICAgIG1lcmdlKGRzdCwgc3JjLCBzcmNJbmRleCwgdmFsdWVD
b3VudCwgd2lkdGgpOwogCiAgICAgICAgICAgICB2YXIgdG1wID0gc3JjOwogICAgICAgICAgICAg
c3JjID0gZHN0OwpAQCAtMjI1LDcgKzIzNyw3IEBAIGZ1bmN0aW9uIHNvcnQoY29tcGFyYXRvcikK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNvbXBhcmF0b3IgIT09IEB1bmRlZmluZWQpCi0g
ICAgICAgIG1lcmdlU29ydCh0aGlzLCBsZW5ndGgsIGNvbXBhcmF0b3IpOworICAgICAgICBtZXJn
ZVNvcnQodGhpcywgbGVuZ3RoKTsKICAgICBlbHNlCiAgICAgICAgIEB0eXBlZEFycmF5U29ydCh0
aGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2Vu
ZXJpY1R5cGVkQXJyYXlWaWV3LmgKaW5kZXggYTVmNzdiMjY3MzUwZGFlODZjYTJhNGIyZmNmMjUx
NmIzMjgwYmM0NC4uMGNhNmM0MzI1ODE5Mjg3NDQwZDllYzc3ZGJmMTQyY2Q3ZTljZGNlMCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJh
eVZpZXcuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBl
ZEFycmF5Vmlldy5oCkBAIC05MCw4ICs5MCw2IEBAIGVudW0gY2xhc3MgQ29weVR5cGUgewogCiBl
eHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRF
cnJvck1lc3NhZ2U7CiAKLUpTQ19ERUNMQVJFX0NVU1RPTV9HRVRURVIodGhyb3dOZXV0ZXJlZFR5
cGVkQXJyYXlUeXBlRXJyb3IpOwotCiB0ZW1wbGF0ZTx0eXBlbmFtZSBBZGFwdG9yPgogY2xhc3Mg
SlNHZW5lcmljVHlwZWRBcnJheVZpZXcgZmluYWwgOiBwdWJsaWMgSlNBcnJheUJ1ZmZlclZpZXcg
ewogcHVibGljOgpAQCAtMTczLDEyICsxNzEsNyBAQCBwdWJsaWM6CiAgICAgICAgIHR5cGVuYW1l
IEFkYXB0b3I6OlR5cGUgdmFsdWUgPSB0b05hdGl2ZUZyb21WYWx1ZTxBZGFwdG9yPihnbG9iYWxP
YmplY3QsIGpzVmFsdWUpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBmYWxz
ZSk7CiAKLSAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSkgewotICAgICAgICAgICAgdGhyb3dUeXBl
RXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hl
ZEVycm9yTWVzc2FnZSk7Ci0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KLQot
ICAgICAgICBpZiAoaSA+PSBtX2xlbmd0aCkKKyAgICAgICAgaWYgKGlzTmV1dGVyZWQoKSB8fCBp
ID49IG1fbGVuZ3RoKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHNldElu
ZGV4UXVpY2tseVRvTmF0aXZlVmFsdWUoaSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5lcmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGlu
ZXMuaAppbmRleCAyNjkwZGE2OWZmNWFiMmYwNGZjMTkzZTllOTU0MjA5MDU2ZDQwMmYzLi5hYzU3
ZmZiMTFiY2EwMzY2ZGY1MmE4ODU0OWI4MGNmNDExZWU0MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmlld0lubGluZXMuaAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dlbmVyaWNUeXBlZEFycmF5Vmll
d0lubGluZXMuaApAQCAtMzAyLDggKzMwMiwxMSBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlW
aWV3PEFkYXB0b3I+OjpzZXQoCiAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBmYWxzZSk7CiAgICAgICAgICAgICBib29sIHN1Y2Nlc3MgPSBzZXRJbmRleChnbG9iYWxPYmpl
Y3QsIG9mZnNldCArIGksIHZhbHVlKTsKICAgICAgICAgICAgIEVYQ0VQVElPTl9BU1NFUlQoIXNj
b3BlLmV4Y2VwdGlvbigpIHx8ICFzdWNjZXNzKTsKLSAgICAgICAgICAgIGlmICghc3VjY2VzcykK
KyAgICAgICAgICAgIGlmICghc3VjY2VzcykgeworICAgICAgICAgICAgICAgIGlmIChpc05ldXRl
cmVkKCkpCisgICAgICAgICAgICAgICAgICAgIHRocm93VHlwZUVycm9yKGdsb2JhbE9iamVjdCwg
c2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UpOwogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IH0KQEAgLTMzNywyNyArMzQwLDEyIEBAIGJvb2wgSlNH
ZW5lcmljVHlwZWRBcnJheVZpZXc8QWRhcHRvcj46OmdldE93blByb3BlcnR5U2xvdCgKICAgICBK
U0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNUeXBl
ZEFycmF5Vmlldyo+KG9iamVjdCk7CiAKICAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+IGluZGV4
ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmICh0aGlzT2JqZWN0LT5p
c05ldXRlcmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmplY3QsIHN0
YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHRocm93TmV1dGVy
ZWRUeXBlZEFycmF5VHlwZUVycm9yKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9Ci0KLSAgICAgICAgaWYgKHRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShpbmRleC52
YWx1ZSgpKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRyaWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2JqZWN0
LT5nZXRJbmRleFF1aWNrbHkoaW5kZXgudmFsdWUoKSkpOwotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIH0KLQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHN0YXRpY19h
c3NlcnQoc3RkOjppc19maW5hbF92PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+Piwg
ImdldE93blByb3BlcnR5U2xvdEJ5SW5kZXggbXVzdCBub3QgYmUgb3ZlcnJpZGRlbiIpOworICAg
ICAgICByZXR1cm4gZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxP
YmplY3QsIGluZGV4LnZhbHVlKCksIHNsb3QpOwogICAgIH0KIAotICAgIGlmIChpc0Nhbm9uaWNh
bE51bWVyaWNJbmRleFN0cmluZyhwcm9wZXJ0eU5hbWUpKSB7Ci0gICAgICAgIGlmICh0aGlzT2Jq
ZWN0LT5pc05ldXRlcmVkKCkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0Q3VzdG9tKHRoaXNPYmpl
Y3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHRocm93
TmV1dGVyZWRUeXBlZEFycmF5VHlwZUVycm9yKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0KKyAgICBpZiAoaXNDYW5vbmljYWxOdW1lcmljSW5kZXhTdHJpbmcocHJvcGVy
dHlOYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KIAogICAgIHJldHVybiBCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQpAQCAtMzY3LDI0ICszNTUsMjAgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFy
cmF5VmlldzxBZGFwdG9yPjo6cHV0KAogICAgIEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwK
ICAgICBQdXRQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0
LT52bSgpOwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQogICAg
IEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3Kj4oY2VsbCk7CiAKLSAgICAvLyBodHRwczovL3RjMzkuZ2l0aHViLmlvL2Vj
bWEyNjIvI3NlYy1pbnRlZ2VyLWluZGV4ZWQtZXhvdGljLW9iamVjdHMtc2V0LXAtdi1yZWNlaXZl
cgotICAgIC8vIElnbm9yZSB0aGUgcmVjZWl2ZXIgZXZlbiBpZiB0aGUgcmVjZWl2ZXIgaXMgYWx0
ZXJlZCB0byBub24gYmFzZSB2YWx1ZS4KLSAgICAvLyA5LjQuNS41LTItYi1pIFJldHVybiA/IElu
dGVnZXJJbmRleGVkRWxlbWVudFNldChPLCBudW1lcmljSW5kZXgsIFYpLgotICAgIGlmIChPcHRp
b25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCi0gICAgICAg
IFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgcHV0QnlJbmRleCh0aGlzT2JqZWN0LCBnbG9iYWxP
YmplY3QsIGluZGV4LnZhbHVlKCksIHZhbHVlLCBzbG90LmlzU3RyaWN0TW9kZSgpKSk7CisgICAg
aWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
eworICAgICAgICBzdGF0aWNfYXNzZXJ0KHN0ZDo6aXNfZmluYWxfdjxKU0dlbmVyaWNUeXBlZEFy
cmF5VmlldzxBZGFwdG9yPj4sICJwdXRCeUluZGV4IG11c3Qgbm90IGJlIG92ZXJyaWRkZW4iKTsK
KyAgICAgICAgcmV0dXJuIHB1dEJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0LCBpbmRl
eC52YWx1ZSgpLCB2YWx1ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSk7CisgICAgfQogCiAgICAgaWYg
KGlzQ2Fub25pY2FsTnVtZXJpY0luZGV4U3RyaW5nKHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAg
aWYgKHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KGdsb2JhbE9iamVjdCwgc2NvcGUsIHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJv
ck1lc3NhZ2UpOworICAgICAgICAvLyBDYXNlcyBsaWtlICctMCcsICcxLjEnLCBldGMuIGFyZSBz
dGlsbCBvYmxpZ2VkIHRvIGdpdmUgdGhlIFJIUyBhIGNoYW5jZSB0byB0aHJvdy4KKyAgICAgICAg
dG9OYXRpdmVGcm9tVmFsdWU8QWRhcHRvcj4oZ2xvYmFsT2JqZWN0LCB2YWx1ZSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEJh
c2U6OnB1dCh0aGlzT2JqZWN0LCBnbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNs
b3QpKTsKKyAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIGdsb2JhbE9iamVjdCwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgc2xvdCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEFkYXB0b3I+
CkBAIC00MDMsMTQgKzM4NywxNCBAQCBib29sIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0
b3I+OjpkZWZpbmVPd25Qcm9wZXJ0eSgKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgfTsKIAotICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA+PSB0aGlzT2JqZWN0LT5tX2xlbmd0
aCkKKyAgICAgICAgaWYgKCF0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkgJiYgaW5kZXgudmFsdWUo
KSA+PSB0aGlzT2JqZWN0LT5tX2xlbmd0aCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgICAgICBpZiAoZGVzY3JpcHRvci5pc0FjY2Vzc29yRGVzY3JpcHRvcigpKQogICAgICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQoIkF0dGVtcHRpbmcgdG8gc3RvcmUgYWNj
ZXNzb3IgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheSBhdCBpbmRleDogIik7CiAKLSAgICAgICAg
aWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3JJZk5lZWRlZCgiQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNvbmZpZ3VyYWJs
ZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAiKTsKKyAgICAgICAgaWYgKGRl
c2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmICFkZXNjcmlwdG9yLmNvbmZpZ3VyYWJs
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9ySWZOZWVkZWQoIkF0dGVtcHRp
bmcgdG8gc3RvcmUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0
IGluZGV4OiAiKTsKIAogICAgICAgICBpZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgp
ICYmICFkZXNjcmlwdG9yLmVudW1lcmFibGUoKSkKICAgICAgICAgICAgIHJldHVybiB0aHJvd1R5
cGVFcnJvcklmTmVlZGVkKCJBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIHByb3Bl
cnR5IG9uIGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6ICIpOwpAQCAtNDM0LDE2ICs0MTgsMTYgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZpZXc8
QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5KAogICAgIEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRGVsZXRlUHJvcGVy
dHlTbG90JiBzbG90KQogewotICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAgICAgSlNHZW5lcmljVHlwZWRB
cnJheVZpZXcqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNHZW5lcmljVHlwZWRBcnJheVZpZXcqPihj
ZWxsKTsKIAotICAgIGlmIChwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKLSAgICAgICAgaWYg
KHRoaXNPYmplY3QtPmlzTmV1dGVyZWQoKSkKLSAgICAgICAgICAgIHJldHVybiB0eXBlRXJyb3Io
Z2xvYmFsT2JqZWN0LCBzY29wZSwgdHJ1ZSwgdHlwZWRBcnJheUJ1ZmZlckhhc0JlZW5EZXRhY2hl
ZEVycm9yTWVzc2FnZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoT3B0aW9uYWw8
dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIHN0
YXRpY19hc3NlcnQoc3RkOjppc19maW5hbF92PEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0
b3I+PiwgImRlbGV0ZVByb3BlcnR5QnlJbmRleCBtdXN0IG5vdCBiZSBvdmVycmlkZGVuIik7Cisg
ICAgICAgIHJldHVybiBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZ2xvYmFsT2Jq
ZWN0LCBpbmRleC52YWx1ZSgpKTsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoaXNDYW5vbmljYWxO
dW1lcmljSW5kZXhTdHJpbmcocHJvcGVydHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisK
ICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZ2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCkBAIC00NTMsMTUgKzQzNywxMCBAQCBib29sIEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3PEFkYXB0b3I+OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KAogewogICAgIEpTR2VuZXJpY1R5cGVkQXJyYXlWaWV3KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
R2VuZXJpY1R5cGVkQXJyYXlWaWV3Kj4ob2JqZWN0KTsKIAotICAgIGlmICh0aGlzT2JqZWN0LT5p
c05ldXRlcmVkKCkpIHsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFByb3BlcnR5QXR0cmlidXRlOjpOb25lKSwgdGhyb3dOZXV0ZXJlZFR5
cGVkQXJyYXlUeXBlRXJyb3IpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBp
ZiAoIXRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVpY2tseShwcm9wZXJ0eU5hbWUpKQorICAgIGlm
ICh0aGlzT2JqZWN0LT5pc05ldXRlcmVkKCkgfHwgIXRoaXNPYmplY3QtPmNhbkdldEluZGV4UXVp
Y2tseShwcm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgCi0gICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUHJvcGVydHlBdHRy
aWJ1dGU6OkRvbnREZWxldGUpLCB0aGlzT2JqZWN0LT5nZXRJbmRleFF1aWNrbHkocHJvcGVydHlO
YW1lKSk7CisKKyAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihQcm9wZXJ0eUF0dHJpYnV0ZTo6Tm9uZSksIHRoaXNPYmplY3QtPmdldEluZGV4UXVpY2ts
eShwcm9wZXJ0eU5hbWUpKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDc1LDEwICs0NTQs
MTEgQEAgYm9vbCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6cHV0QnlJbmRleCgK
IAogdGVtcGxhdGU8dHlwZW5hbWUgQWRhcHRvcj4KIGJvb2wgSlNHZW5lcmljVHlwZWRBcnJheVZp
ZXc8QWRhcHRvcj46OmRlbGV0ZVByb3BlcnR5QnlJbmRleCgKLSAgICBKU0NlbGwqIGNlbGwsIEpT
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkKKyAgICBK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgcHJvcGVydHlOYW1lKQogewot
ICAgIFZNJiB2bSA9IGdsb2JhbE9iamVjdC0+dm0oKTsKLSAgICByZXR1cm4gSlNDZWxsOjpkZWxl
dGVQcm9wZXJ0eShjZWxsLCBnbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0sIHByb3Bl
cnR5TmFtZSkpOworICAgIC8vIEludGVnZXItaW5kZXhlZCBlbGVtZW50cyBjYW4ndCBiZSBkZWxl
dGVkLCBzbyB3ZSBtdXN0IHJldHVybiBmYWxzZSB3aGVuIHRoZSBpbmRleCBpcyB2YWxpZC4KKyAg
ICBKU0dlbmVyaWNUeXBlZEFycmF5VmlldyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0dlbmVyaWNU
eXBlZEFycmF5Vmlldyo+KGNlbGwpOworICAgIHJldHVybiB0aGlzT2JqZWN0LT5pc05ldXRlcmVk
KCkgfHwgcHJvcGVydHlOYW1lID49IHRoaXNPYmplY3QtPm1fbGVuZ3RoOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBBZGFwdG9yPgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKaW5kZXggOTgyM2M2YmMwNDJhNmY5Mzll
ZjJkMTgxMzIwMWJjNzI4ZDM2Mjg4ZS4uYWJlMGRjMTI4OTQxYTBjMDY2YzI1MDc2ZTMxOTMyMjY1
MDJjYWM3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9i
YWxPYmplY3RGdW5jdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCkBAIC02MCw2ICs2MCw2IEBAIEpTQ19ERUNMQVJFX0hP
U1RfRlVOQ1RJT04oZ2xvYmFsRnVuY1Byb3BlcnR5SXNFbnVtZXJhYmxlKTsKIEpTQ19ERUNMQVJF
X0hPU1RfRlVOQ1RJT04oZ2xvYmFsRnVuY093bktleXMpOwogSlNDX0RFQ0xBUkVfSE9TVF9GVU5D
VElPTihnbG9iYWxGdW5jRGF0ZVRpbWVGb3JtYXQpOwogCi1kb3VibGUganNUb051bWJlcihTdHJp
bmdWaWV3KTsKK0pTX0VYUE9SVF9QUklWQVRFIGRvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcp
OwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTT2JqZWN0SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3RJbmxpbmVzLmgKaW5kZXggNmM1MzlmY2UzMzRkYzZhNGViZGRjMjk4YzRiMGIx
MGRmNTczMTFhMS4uMzFlMDBmOTgzOGRjZTE5YTk4YzlkMjc5M2IxNTNjN2EyNjFiMjFjNiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3RJbmxpbmVzLmgKQEAg
LTEzNyw2ICsxMzcsOCBAQCBBTFdBWVNfSU5MSU5FIGJvb2wgSlNPYmplY3Q6OmdldFByb3BlcnR5
U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICBpZiAob2JqZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBl
ICYmIHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6Okhhc1Byb3BlcnR5KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICBpZiAoaXNUeXBlZEFycmF5VHlwZShvYmplY3QtPnR5cGUoKSkgJiYgcHJvcGVydHlOYW1lID49
IGpzQ2FzdDxKU0FycmF5QnVmZmVyVmlldyo+KG9iamVjdCktPmxlbmd0aCgpKQorICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgaWYg
KExJS0VMWSghc3RydWN0dXJlLT50eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3RvdHlwZSgpIHx8
IHNsb3QuaW50ZXJuYWxNZXRob2RUeXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhv
ZFR5cGU6OlZNSW5xdWlyeSkpCiAgICAgICAgICAgICBwcm90b3R5cGUgPSBvYmplY3QtPmdldFBy
b3RvdHlwZURpcmVjdCh2bSk7CkBAIC0xODAsNiArMTgyLDggQEAgQUxXQVlTX0lOTElORSBib29s
IEpTT2JqZWN0OjpnZXROb25JbmRleFByb3BlcnR5U2xvdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWMKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBpZiAob2Jq
ZWN0LT50eXBlKCkgPT0gUHJveHlPYmplY3RUeXBlICYmIHNsb3QuaW50ZXJuYWxNZXRob2RUeXBl
KCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6Okhhc1Byb3BlcnR5KQogICAg
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGlmIChpc1R5cGVkQXJyYXlU
eXBlKG9iamVjdC0+dHlwZSgpKSAmJiBpc0Nhbm9uaWNhbE51bWVyaWNJbmRleFN0cmluZyhwcm9w
ZXJ0eU5hbWUpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAg
ICAgICBKU1ZhbHVlIHByb3RvdHlwZTsKICAgICAgICAgaWYgKExJS0VMWSghc3RydWN0dXJlLT50
eXBlSW5mbygpLm92ZXJyaWRlc0dldFByb3RvdHlwZSgpIHx8IHNsb3QuaW50ZXJuYWxNZXRob2RU
eXBlKCkgPT0gUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVkQXJyYXlzLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCmluZGV4
IDk2OTVlYjA5NWRkMWEwMzNlMGEzMzUxZDUxY2Q2NzBmNTM3NDU4NzMuLjRiOWY5NWNmNjMxYmRh
NTM1NGU3NTFhZDQwMjkxNjJjZGE3ZjdiYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVHlwZWRBcnJheXMuY3BwCkBAIC02NCwxMyArNjQsNSBAQCBNQUtFX1NfSU5G
TyhGbG9hdDY0KTsKIAogTUFLRV9DT05TVFJVQ1RPUlMoRGF0YVZpZXcpOwogCi1KU0NfREVGSU5F
X0NVU1RPTV9HRVRURVIodGhyb3dOZXV0ZXJlZFR5cGVkQXJyYXlUeXBlRXJyb3IsIChKU0dsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBFbmNvZGVkSlNWYWx1ZSBvYmplY3QsIFByb3BlcnR5TmFt
ZSkpCi17Ci0gICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwotICAgIGF1dG8gc2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBBU1NFUlRfVU5VU0VEKG9iamVjdCwganND
YXN0PEpTQXJyYXlCdWZmZXJWaWV3Kj4oSlNWYWx1ZTo6ZGVjb2RlKG9iamVjdCkpLT5pc05ldXRl
cmVkKCkpOwotICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUs
IHR5cGVkQXJyYXlCdWZmZXJIYXNCZWVuRGV0YWNoZWRFcnJvck1lc3NhZ2UpOwotfQotCiB9IC8v
IG5hbWVzcGFjZSBKU0MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDZiMTZjMzU3MTc1NTBhYWZkNmQ3MjA4MDBlZTU1ZDA5
NjQxZTE5MzguLjFhYWZjNzU1M2Q1NGQ2NzA5MjI2OTE5YWM3NDk4Y2E0NGQ1MjA1ODkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMC0xMC0xNiAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xp
bmdAc29ueS5jb20+CisKKyAgICAgICAgRW5zdXJlICVUeXBlZEFycmF5JSBlc3NlbnRpYWwgaW50
ZXJuYWwgbWV0aG9kcyBhZGhlcmUgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE3ODU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtl
IFN1enVraS4KKworICAgICAgICAqIGZhc3QvY2FudmFzL3dlYmdsL2FycmF5YnVmZmVyLXRyYW5z
ZmVyLW9mLWNvbnRyb2wuaHRtbDoKKyAgICAgICAgKiBqcy9kb20vZGZnLXR5cGVkLWFycmF5LW5l
dXRlci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL2dldE93blByb3BlcnR5RGVzY3Jp
cHRvci1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9kZmctdHlw
ZWQtYXJyYXktbmV1dGVyLmpzOgorICAgICAgICAqIGpzL3Jlc291cmNlcy9nZXRPd25Qcm9wZXJ0
eURlc2NyaXB0b3IuanM6CisgICAgICAgIEFkanVzdCB0ZXN0cy4KKwogMjAyMC0xMC0xNSAgS2Fy
bCBSYWNrbGVyICA8cmFja2xlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjI2
NzY2Mik6IFsgTW9qYXZlKyBkZWJ1ZyB3azEgXSB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9leHRl
bnNpb25zL3dlYmdsLWNvbXByZXNzZWQtdGV4dHVyZS1zM3RjLXNyZ2IuaHRtbCBpcyBhIGZsYWt5
IGNyYXNoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93ZWJnbC9hcnJheWJ1
ZmZlci10cmFuc2Zlci1vZi1jb250cm9sLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy93
ZWJnbC9hcnJheWJ1ZmZlci10cmFuc2Zlci1vZi1jb250cm9sLmh0bWwKaW5kZXggNGNiM2JiNmZm
ZTgwMGI1MWM1Yzc5Y2YxZjYwNjcyZjIwZjdkYzY2MS4uOTM0NTExZmQzNjViMDFjNGE2MzNjMGQx
ZmZlZDNhMzZmYTI5YjM4NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvd2Vi
Z2wvYXJyYXlidWZmZXItdHJhbnNmZXItb2YtY29udHJvbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3dlYmdsL2FycmF5YnVmZmVyLXRyYW5zZmVyLW9mLWNvbnRyb2wuaHRtbApA
QCAtMTAxLDI0ICsxMDEsMTYgQEAgZnVuY3Rpb24gYXNzZXJ0Vmlld0Nsb3NlZCh0ZXN0TmFtZSwg
dmlldykKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICAg
dmFyIHYgPSB2aWV3WzBdOwotICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQodGVzdE5hbWUgKyAi
OiBpbmRleCBnZXQgb24gYSBjbG9zZWQgdmlldyBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbiIp
OwotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0gY2F0Y2goeG4p
IHsKLSAgICAgICAgICAgICAgICBpZiAoeG4gIT0gIlR5cGVFcnJvcjogVW5kZXJseWluZyBBcnJh
eUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IikgewotICAgICAgICAgICAg
ICAgICAgICB0ZXN0RmFpbGVkKHRlc3ROYW1lICsgIjogaW5kZXggZ2V0IG9uIGEgY2xvc2VkIHZp
ZXcgdGhyZXcgdGhlIHdyb25nIGV4Y2VwdGlvbjogIiArIHhuKTsKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB0ZXN0
RmFpbGVkKHRlc3ROYW1lICsgIjogaW5kZXggZ2V0IG9uIGEgY2xvc2VkIHZpZXcgdGhyZXcgYW4g
ZXhjZXB0aW9uOiAiICsgeG4pOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgdHJ5IHsKICAgICAgICAgICAgICAgICB2aWV3WzBdID0g
NDI7Ci0gICAgICAgICAgICAgICAgdGVzdEZhaWxlZCh0ZXN0TmFtZSArICI6IGluZGV4IHNldCBv
biBhIGNsb3NlZCB2aWV3IGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uIik7Ci0gICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfSBjYXRjaCh4bikgewotICAgICAgICAg
ICAgICAgIGlmICh4biAhPSAiVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBi
ZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXciKSB7Ci0gICAgICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQodGVzdE5hbWUgKyAiOiBpbmRleCBzZXQgdGhlbiBnZXQgb24gYSBjbG9zZWQgdmlldyB0
aHJldyB0aGUgd3JvbmcgZXhjZXB0aW9uOiAiICsgeG4pOwotICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQodGVzdE5hbWUgKyAiOiBpbmRleCBzZXQgb24gYSBjbG9zZWQgdmlldyB0aHJldyBhbiBleGNl
cHRpb24iKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgIHRyeSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vZGZnLXR5
cGVkLWFycmF5LW5ldXRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZGZnLXR5
cGVkLWFycmF5LW5ldXRlci1leHBlY3RlZC50eHQKaW5kZXggNTU2YmQ0ZDE1ZTMzZDJjMTE5NTg0
ZWU2NWI3N2JkMWU2NGMwNWZjOC4uOWNkY2VlNzhkYTAxNGM5MzE0ODI4ODQ5YWVhNzE1M2EyYTAz
M2FhNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvZG9tL2RmZy10eXBlZC1hcnJheS1uZXV0
ZXItZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9kZmctdHlwZWQtYXJyYXkt
bmV1dGVyLWV4cGVjdGVkLnR4dApAQCAtOCw5ICs4LDkgQEAgUEFTUyBhcnJheVswXSBpcyA0Mgog
UEFTUyBmb28oYXJyYXkpIGlzIDEwMAogUEFTUyBiYXIoYXJyYXkpIGlzIDQyCiBQQVNTIGFycmF5
Lmxlbmd0aCBpcyAwCi1QQVNTIGFycmF5WzBdIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVu
ZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldy4KK1BB
U1MgYXJyYXlbMF0gaXMgdW5kZWZpbmVkCiBQQVNTIGZvbyhhcnJheSkgaXMgMAotUEFTUyBiYXIo
YXJyYXkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIg
aGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldy4KK1BBU1MgYmFyKGFycmF5KSBpcyB1bmRl
ZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2dldE93blByb3BlcnR5RGVzY3JpcHRvci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
LWV4cGVjdGVkLnR4dAppbmRleCA4ZWMwMTE5YjM3NzE0YWNmMTQzMWJiNmE2ZDc5M2UxNTkyMDQw
MWQ2Li45OWNiOTMzNzE4OTdlNGU0NTRlMjM1Njk0Njg3ZGJkMjFiMzlkOTg5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLWV4cGVj
dGVkLnR4dApAQCAtMTQ0LDcgKzE0NCw3IEBAIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVz
Y3JpcHRvcihjYW52YXNQaXhlbEFycmF5LCAwKS52YWx1ZSBpcyBjYW52YXNQaXhlbEFyCiBQQVNT
IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuaGFz
T3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURl
c2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuaGFzT3duUHJvcGVydHkoJ3NldCcpIGlzIGZh
bHNlCiBQQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJh
eSwgMCkuZW51bWVyYWJsZSBpcyB0cnVlCi1QQVNTIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuY29uZmlndXJhYmxlIGlzIGZhbHNlCitQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoY2FudmFzUGl4ZWxBcnJheSwgMCkuY29uZmln
dXJhYmxlIGlzIHRydWUKIFBBU1MgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihzZWxl
Y3QsIDApLnZhbHVlIGlzIHNlbGVjdFswXQogUEFTUyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNj
cmlwdG9yKHNlbGVjdCwgMCkuaGFzT3duUHJvcGVydHkoJ2dldCcpIGlzIGZhbHNlCiBQQVNTIE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3Ioc2VsZWN0LCAwKS5oYXNPd25Qcm9wZXJ0eSgn
c2V0JykgaXMgZmFsc2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvZGZnLXR5cGVkLWFycmF5LW5ldXRlci5qcyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvZGZnLXR5cGVkLWFycmF5LW5ldXRlci5qcwppbmRleCA3OGNhZmMwMGU1YmI1ZjdhMDhm
M2FkYzQyYjJiOWM0YTA3N2I4ZDg3Li5lM2RkYjk0M2Q0ODkwMmQ5NjZjYTQ5ZWE4M2I0NTBlM2Y1
ZDI0OWExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy10
eXBlZC1hcnJheS1uZXV0ZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9kZmctdHlwZWQtYXJyYXktbmV1dGVyLmpzCkBAIC0yNCw3ICsyNCw3IEBAIHNob3VsZEJlKCJi
YXIoYXJyYXkpIiwgIjQyIik7CiB3aW5kb3cucG9zdE1lc3NhZ2UoYXJyYXksICIqIiwgW2FycmF5
LmJ1ZmZlcl0pOwogCiBzaG91bGRCZSgiYXJyYXkubGVuZ3RoIiwgIjAiKTsKLXNob3VsZFRocm93
KCJhcnJheVswXSIpOworc2hvdWxkQmUoImFycmF5WzBdIiwgInVuZGVmaW5lZCIpOwogCiBzaG91
bGRCZSgiZm9vKGFycmF5KSIsICIwIik7Ci1zaG91bGRUaHJvdygiYmFyKGFycmF5KSIpOworc2hv
dWxkQmUoImJhcihhcnJheSkiLCAidW5kZWZpbmVkIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9qcy9yZXNvdXJjZXMvZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzIGIvTGF5b3V0VGVzdHMv
anMvcmVzb3VyY2VzL2dldE93blByb3BlcnR5RGVzY3JpcHRvci5qcwppbmRleCAyZWQzMGFjN2Qz
ZDU4YjMxNjFlMGU3YThiYTZkMDAxNWVjNDFkZDk4Li5jNjUxMjExMzI4NTY2NzMwZjJmYzc5ZTYx
YTQ2ZTRlNjA0YTc1N2JmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9yZXNvdXJjZXMvZ2V0
T3duUHJvcGVydHlEZXNjcmlwdG9yLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3Jlc291cmNlcy9n
ZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IuanMKQEAgLTQ5LDcgKzQ5LDcgQEAgZGVzY3JpcHRvclNo
b3VsZEJlKCJkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnZGl2JykiLCAiMCIsIHt3cml0
YWJsZTogZmFsc2UKIGRlc2NyaXB0b3JTaG91bGRCZSgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNs
YXNzTmFtZSgncGFzcycpIiwgIjAiLCB7d3JpdGFibGU6IGZhbHNlLCBlbnVtZXJhYmxlOiB0cnVl
LCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiJkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NO
YW1lKCdwYXNzJylbMF0ifSk7CiB2YXIgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
Y2FudmFzIik7CiB2YXIgY2FudmFzUGl4ZWxBcnJheSA9IGNhbnZhcy5nZXRDb250ZXh0KCIyZCIp
LmNyZWF0ZUltYWdlRGF0YSgxMCwxMCkuZGF0YTsKLWRlc2NyaXB0b3JTaG91bGRCZSgiY2FudmFz
UGl4ZWxBcnJheSIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBjb25m
aWd1cmFibGU6IGZhbHNlLCB2YWx1ZToiY2FudmFzUGl4ZWxBcnJheVswXSJ9KTsKK2Rlc2NyaXB0
b3JTaG91bGRCZSgiY2FudmFzUGl4ZWxBcnJheSIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVt
ZXJhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRydWUsIHZhbHVlOiJjYW52YXNQaXhlbEFycmF5
WzBdIn0pOwogdmFyIHNlbGVjdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpOwog
c2VsZWN0LmlubmVySFRNTCA9ICI8b3B0aW9uPmZvbzwvb3B0aW9uPiI7CiBkZXNjcmlwdG9yU2hv
dWxkQmUoInNlbGVjdCIsICIwIiwge3dyaXRhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlLCBj
b25maWd1cmFibGU6IHRydWUsIHZhbHVlOiJzZWxlY3RbMF0ifSk7CmRpZmYgLS1naXQgYS9KU1Rl
c3RzL0NoYW5nZUxvZyBiL0pTVGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQxMzJhODE4NDc0Y2Y0OGY1
MDc5YmFhOGExNmVkY2VhMjlmY2RmZDEuLjdjYTM0YzUxYzRjNGQ3YjE0NGYzNWI5OWE3OGY4MTgw
ZWMzOTRiODUgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjAtMTAtMTYgIFJvc3MgS2lyc2xpbmcgIDxyb3Nz
LmtpcnNsaW5nQHNvbnkuY29tPgorCisgICAgICAgIEVuc3VyZSAlVHlwZWRBcnJheSUgZXNzZW50
aWFsIGludGVybmFsIG1ldGhvZHMgYWRoZXJlIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzg1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IFl1c3VrZSBTdXp1a2kuCisKKyAgICAgICAgKiBzdHJlc3MvYXJyYXktcHJvdG90eXBlLXNwbGlj
ZS1tYWtpbmctdHlwZWQtYXJyYXkuanM6CisgICAgICAgICogc3RyZXNzL2FycmF5LXNwZWNpZXMt
Y29uZmlnLWFycmF5LWNvbnN0cnVjdG9yLmpzOgorICAgICAgICAqIHN0cmVzcy9kZWxldGUtcHJv
cGVydHktZGZnLWlubGluZS5qczoKKyAgICAgICAgKiBzdHJlc3MvZmxvYXQzMmFycmF5LW91dC1v
Zi1ib3VuZHMuanM6CisgICAgICAgICogc3RyZXNzL3B1dC1kaXJlY3QtaW5kZXgtYnJva2VuLTIu
anM6CisgICAgICAgICogc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW1vbm9tb3JwaGljLW5ldXRl
cmVkLmpzOgorICAgICAgICAqIHN0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1uZXV0ZXJlZC5qczoK
KyAgICAgICAgKiBzdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUtaW5kZXguanM6CisgICAgICAg
ICogc3RyZXNzL3R5cGVkYXJyYXktZnVuY3Rpb25zLXdpdGgtbmV1dGVyZWQuanM6CisgICAgICAg
ICogc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHkuanM6IFJlbmFtZWQgZnJvbSBKU1Rl
c3RzL3N0cmVzcy90eXBlZGFycmF5LWdldG93bnByb3BlcnR5LW5vdC1jb25maWd1cmFibGUuanMu
CisgICAgICAgICogc3RyZXNzL3R5cGVkLWFycmF5LWNhbm9uaWNhbC1udW1lcmljLWluZGV4LXN0
cmluZy5qczoKKyAgICAgICAgQWRqdXN0IHRlc3RzLgorCisgICAgICAgICogdGVzdDI2Mi9leHBl
Y3RhdGlvbnMueWFtbDoKKyAgICAgICAgQWRkcmVzcyBhbGwgdGVzdCBmYWlsdXJlcyB1bmRlciBi
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMuCisgICAgICAgIE5vdGUg
dGhhdCB0aGVyZSBhcmUgYSBzbGV3IG9mIGNvcnJlY3Rpb25zIG5lZWRlZCBmb3IgdGhlc2UgdGVz
dCBjYXNlcywKKyAgICAgICAgd2hpY2ggd2VyZSBkaXNjb3ZlcmVkIGluIHRoZSBjb3Vyc2Ugb2Yg
d29ya2luZyBvbiB0aGlzIHBhdGNoOgorICAgICAgICBodHRwczovL2dpdGh1Yi5jb20vdGMzOS90
ZXN0MjYyL3B1bGwvMjgzMyNpc3N1ZWNvbW1lbnQtNzA5NjM1ODUwCisgICAgICAgIEFjY29yZGlu
Z2x5LCB0aGVzZSByZW1haW5pbmcgbGluZXMgc2hvdWxkIGFsbCBkaXNhcHBlYXIgaW4gdGhlIGZ1
dHVyZS4KKwogMjAyMC0xMC0xNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5j
b20+CiAKICAgICAgICAgVXBkYXRlIHRlc3QyNjIgKDIwMjAuMTAuMTQpCmRpZmYgLS1naXQgYS9K
U1Rlc3RzL3N0cmVzcy9hcnJheS1wcm90b3R5cGUtc3BsaWNlLW1ha2luZy10eXBlZC1hcnJheS5q
cyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXByb3RvdHlwZS1zcGxpY2UtbWFraW5nLXR5cGVkLWFy
cmF5LmpzCmluZGV4IDcwMTdkNmYxOTBkOTI5NWM3ZWEyOTMyNzA5ZGM2NjEwYjljNTZiNjIuLjFh
YzZhNDY1YWM2NjljZDg5MGVjZjFkOGY4NzM5MmUxZTFhMjUxZWMgMTAwNjQ0Ci0tLSBhL0pTVGVz
dHMvc3RyZXNzL2FycmF5LXByb3RvdHlwZS1zcGxpY2UtbWFraW5nLXR5cGVkLWFycmF5LmpzCisr
KyBiL0pTVGVzdHMvc3RyZXNzL2FycmF5LXByb3RvdHlwZS1zcGxpY2UtbWFraW5nLXR5cGVkLWFy
cmF5LmpzCkBAIC0yNSw3ICsyNSw3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgICAgfSBjYXRjaChl
KSB7CiAgICAgICAgIGVyciA9IGU7CiAgICAgfQotICAgIGFzc2VydChlcnIudG9TdHJpbmcoKSA9
PT0gIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNvbmZpZ3VyYWJsZSBw
cm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAwIik7CisgICAgYXNzZXJ0KGVyci50
b1N0cmluZygpID09PSAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWduIHRvIHJlYWRvbmx5
IHByb3BlcnR5LiIpOwogCiAgICAgYXNzZXJ0KHggaW5zdGFuY2VvZiBBcnJheSk7CiAgICAgYXNz
ZXJ0KHgubGVuZ3RoID09PSA1KTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2FycmF5LXNw
ZWNpZXMtY29uZmlnLWFycmF5LWNvbnN0cnVjdG9yLmpzIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXkt
c3BlY2llcy1jb25maWctYXJyYXktY29uc3RydWN0b3IuanMKaW5kZXggZDkyOWY3NGJhZDE4YzBk
NDNlMTQ1ZmYwYzcyZGUyZjJlOTdhMjE5ZC4uNzcwMzY4ZDQ2MjJhNGE0ZWE3YzI2MDBmYjEzZTk0
MDYwZTdhYTRlNiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvYXJyYXktc3BlY2llcy1jb25m
aWctYXJyYXktY29uc3RydWN0b3IuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvYXJyYXktc3BlY2ll
cy1jb25maWctYXJyYXktY29uc3RydWN0b3IuanMKQEAgLTMxLDEwICszMSw5IEBAIGZ1bmN0aW9u
IHNob3VsZFRocm93KGYsIG0pIHsKIH0KIAogZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBjb25zdCBt
ZXNzYWdlID0gIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNvbmZpZ3Vy
YWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAwIjsKICAgICBmb28uY29u
Y2F0KFsxXSk7CiAgICAgZm9vID0gWzEsMiwzLDRdOwotICAgIHNob3VsZFRocm93KCgpID0+IGZv
by5zbGljZSgwKSwgbWVzc2FnZSk7CisgICAgZm9vLnNsaWNlKDApOwogICAgIGZvbyA9IFsxLDIs
Myw0XTsKICAgICBsZXQgciA9IGZvby5zcGxpY2UoKTsKICAgICBpZiAoIShyIGluc3RhbmNlb2Yg
SW50MzJBcnJheSkpCkBAIC00Miw3ICs0MSw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYg
KHIubGVuZ3RoICE9PSAwKQogICAgICAgICB0aHJvdyAiQmFkIjsKICAgICBmb28gPSBbMSwyLDMs
NF07Ci0gICAgc2hvdWxkVGhyb3coKCkgPT4gZm9vLnNwbGljZSgwKSwgbWVzc2FnZSk7CisgICAg
Zm9vLnNwbGljZSgwKTsKIH0KIG5vSW5saW5lKHRlc3QpOwogZm9yIChsZXQgaSA9IDA7IGkgPCAz
MDAwOyArK2kpCmRpZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy9kZWxldGUtcHJvcGVydHktZGZn
LWlubGluZS5qcyBiL0pTVGVzdHMvc3RyZXNzL2RlbGV0ZS1wcm9wZXJ0eS1kZmctaW5saW5lLmpz
CmluZGV4IGFjMzJmOTNkYjgwYzE2YWJkZjQ1MmI4MTJmMDc4YzNjMmRjZjExYTAuLjJkNDM5MWNh
YjgzZjhmNzE5YzVjMmJhZjAwZmMzYTc1YzExNGY2ZTMgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3Ry
ZXNzL2RlbGV0ZS1wcm9wZXJ0eS1kZmctaW5saW5lLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Rl
bGV0ZS1wcm9wZXJ0eS1kZmctaW5saW5lLmpzCkBAIC0zMjQsNyArMzI0LDcgQEAgZnVuY3Rpb24g
dGVzdFR5cGVkQXJyYXkoKSB7CiAgICAgbGV0IGZvbyA9IG5ldyBVaW50OEFycmF5KDEyKTsKICAg
ICB0cmFuc2ZlckFycmF5QnVmZmVyKGZvby5idWZmZXIpCiAgICAgZG9EZWxldGUxMihmb28pCi0g
ICAgYXNzZXJ0X3Rocm93cygoKSA9PiBkZWxldGUgZm9vWzBdKQorICAgIGFzc2VydChkZWxldGUg
Zm9vWzBdKTsKIH0KIG5vSW5saW5lKHRlc3RUeXBlZEFycmF5KQogCmRpZmYgLS1naXQgYS9KU1Rl
c3RzL3N0cmVzcy9mbG9hdDMyYXJyYXktb3V0LW9mLWJvdW5kcy5qcyBiL0pTVGVzdHMvc3RyZXNz
L2Zsb2F0MzJhcnJheS1vdXQtb2YtYm91bmRzLmpzCmluZGV4IDAyYTAyZGRhN2RlYmYyYzY2MGQy
MDc3MGU5Y2M0MjUzNTc2NGUxNWEuLjBmNTc3MmY0ODhmZWY4Y2Y5YjI2Zjc2NmVkOTFhMDBlMDQz
ZDQ5NmEgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL2Zsb2F0MzJhcnJheS1vdXQtb2YtYm91
bmRzLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL2Zsb2F0MzJhcnJheS1vdXQtb2YtYm91bmRzLmpz
CkBAIC0yNSw1ICsyNSw1IEBAIGlmIChyZXN1bHQgIT09IHZvaWQgMCkKIAogRmxvYXQzMkFycmF5
LnByb3RvdHlwZVsxXSA9IDIzOwogcmVzdWx0ID0gZm9vKG1ha2UoNDIpLCAxKTsKLWlmIChyZXN1
bHQgIT09IDIzKQoraWYgKHJlc3VsdCAhPT0gdm9pZCAwKQogICAgIHRocm93ICJFcnJvcjogYmFk
IHJlc3VsdDogIiArIHJlc3VsdDsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3B1dC1kaXJl
Y3QtaW5kZXgtYnJva2VuLTIuanMgYi9KU1Rlc3RzL3N0cmVzcy9wdXQtZGlyZWN0LWluZGV4LWJy
b2tlbi0yLmpzCmluZGV4IDNmODA3MThjZTNhNWE5ZTcyYTc4YWJmZDIxNGJkYzliZDQxNGNlZmQu
LjAzYjhmNjc3ZTcyZjFjMzc5ZGM3NmQ4MGQ1ODYyZmE4YmUxZmVkYTUgMTAwNjQ0Ci0tLSBhL0pT
VGVzdHMvc3RyZXNzL3B1dC1kaXJlY3QtaW5kZXgtYnJva2VuLTIuanMKKysrIGIvSlNUZXN0cy9z
dHJlc3MvcHV0LWRpcmVjdC1pbmRleC1icm9rZW4tMi5qcwpAQCAtMzksOCArMzksNyBAQCB0ZXN0
KGZ1bmN0aW9uKCkgewogICAgIH0gY2F0Y2goZSkgewogICAgICAgICBlcnIgPSBlOwogICAgIH0K
LSAgICBhc3NlcnQoISFlcnIpOwotICAgIGFzc2VydChlcnIudG9TdHJpbmcoKSA9PT0gIlR5cGVF
cnJvcjogQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBv
biBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAwIik7CisgICAgYXNzZXJ0KCFlcnIpOwogfSk7CiAK
IHRlc3QoZnVuY3Rpb24oKSB7CkBAIC04OCw3ICs4Nyw3IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAg
ICAgfSBjYXRjaChlKSB7CiAgICAgICAgIGVyciA9IGU7CiAgICAgfQotICAgIGFzc2VydChlcnIu
dG9TdHJpbmcoKSA9PT0gIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBjb25maWd1cmUgbm9uLWNv
bmZpZ3VyYWJsZSBwcm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5IGF0IGluZGV4OiAwIik7CisgICAg
YXNzZXJ0KGVyci50b1N0cmluZygpID09PSAiVHlwZUVycm9yOiBBdHRlbXB0ZWQgdG8gYXNzaWdu
IHRvIHJlYWRvbmx5IHByb3BlcnR5LiIpOwogfSk7CiAKIHRlc3QoZnVuY3Rpb24oKSB7CkBAIC0x
MzksNyArMTM4LDcgQEAgdGVzdChmdW5jdGlvbigpIHsKICAgICB9IGNhdGNoKGUpIHsKICAgICAg
ICAgZXJyID0gZTsKICAgICB9Ci0gICAgYXNzZXJ0KGVyci50b1N0cmluZygpID09PSAiVHlwZUVy
cm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9u
IGEgdHlwZWQgYXJyYXkgYXQgaW5kZXg6IDAiKTsKKyAgICBhc3NlcnQoZXJyLnRvU3RyaW5nKCkg
PT09ICJUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHku
Iik7CiB9KTsKIAogdGVzdChmdW5jdGlvbigpIHsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNz
L3R5cGVkLWFycmF5LWNhbm9uaWNhbC1udW1lcmljLWluZGV4LXN0cmluZy5qcyBiL0pTVGVzdHMv
c3RyZXNzL3R5cGVkLWFycmF5LWNhbm9uaWNhbC1udW1lcmljLWluZGV4LXN0cmluZy5qcwppbmRl
eCBmMDc3ZDcwNmFiNDBhNTFlNDU4NDY4MmRhZDMzYTIxY2FhMzZkMWVkLi4zZGJkMDIzNzkyNGM5
Mjk2YWFjMTJiZGExNjA4YTRjNTMwYmM0NzkxIDEwMDY0NAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90
eXBlZC1hcnJheS1jYW5vbmljYWwtbnVtZXJpYy1pbmRleC1zdHJpbmcuanMKKysrIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWQtYXJyYXktY2Fub25pY2FsLW51bWVyaWMtaW5kZXgtc3RyaW5nLmpzCkBA
IC03MiwzMyArNzIsMjYgQEAgdGVzdEludmFsaWRJbmRpY2VzKFsKICAgICAnNDI5NDk2NzI5Nics
CiBdKTsKIAotY29uc3QgbWFrZVRlc3RWYWxpZEluZGV4ID0gKGNvbmZpZ3VyYWJsZSkgPT4KLSAg
ICAoYXJyYXksIGtleSwgdmFsdWUsIGFzc2VydCkgPT4gewotICAgICAgICBhc3NlcnQoYXJyYXlb
a2V5XSA9PT0gdmFsdWUsIGAke2tleS50b1N0cmluZygpfSBzaG91bGQgYmUgc2V0IHRvICR7dmFs
dWV9YCk7Ci0gICAgICAgIGFzc2VydChrZXkgaW4gYXJyYXksIGBzaG91bGQgY29udGFpbiBrZXkg
JHtrZXkudG9TdHJpbmcoKX1gKTsKLQotICAgICAgICBhc3NlcnQoYXJyYXkuaGFzT3duUHJvcGVy
dHkoa2V5KSA9PT0gdHJ1ZSwgYGhhc093blByb3BlcnR5KCR7a2V5LnRvU3RyaW5nKCl9KSBzaG91
bGQgYmUgdHJ1ZWApOwotICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blBy
b3BlcnR5RGVzY3JpcHRvcihhcnJheSwga2V5KTsKLSAgICAgICAgYXNzZXJ0KHR5cGVvZiBkZXNj
cmlwdG9yID09PSAnb2JqZWN0JywgYE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoJHtr
ZXkudG9TdHJpbmcoKX0pIHJldHVybiBhbiBvYmplY3RgKTsKLSAgICAgICAgYXNzZXJ0KGRlc2Ny
aXB0b3IudmFsdWUgPT09IHZhbHVlLCBgZGVzY3JpcHRvci52YWx1ZSBzaG91bGQgYmUgJHt2YWx1
ZX1gKTsKLSAgICAgICAgYXNzZXJ0KGRlc2NyaXB0b3Iud3JpdGFibGUgPT09IHRydWUsIGBkZXNj
cmlwdG9yLndyaXRhYmxlIHNob3VsZCBiZSB0cnVlYCk7Ci0gICAgICAgIGFzc2VydChkZXNjcmlw
dG9yLmVudW1lcmFibGUgPT09IHRydWUsIGBkZXNjcmlwdG9yLmVudW1lcmFibGUgc2hvdWxkIGJl
IHRydWVgKTsKLSAgICAgICAgYXNzZXJ0KGRlc2NyaXB0b3IuY29uZmlndXJhYmxlID09PSBjb25m
aWd1cmFibGUsIGBkZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSBzaG91bGQgYmUgJHtjb25maWd1cmFi
bGV9YCk7Ci0gICAgfTsKLQotY29uc3QgdGVzdFZhbGlkQ29uZmlndXJhYmxlSW5kaWNlcyA9IG1h
a2VUZXN0KG1ha2VUZXN0VmFsaWRJbmRleCh0cnVlKSk7Citjb25zdCB0ZXN0VmFsaWRJbmRpY2Vz
ID0gbWFrZVRlc3QoKGFycmF5LCBrZXksIHZhbHVlLCBhc3NlcnQpID0+IHsKKyAgICBhc3NlcnQo
YXJyYXlba2V5XSA9PT0gdmFsdWUsIGAke2tleS50b1N0cmluZygpfSBzaG91bGQgYmUgc2V0IHRv
ICR7dmFsdWV9YCk7CisgICAgYXNzZXJ0KGtleSBpbiBhcnJheSwgYHNob3VsZCBjb250YWluIGtl
eSAke2tleS50b1N0cmluZygpfWApOworCisgICAgYXNzZXJ0KGFycmF5Lmhhc093blByb3BlcnR5
KGtleSkgPT09IHRydWUsIGBoYXNPd25Qcm9wZXJ0eSgke2tleS50b1N0cmluZygpfSkgc2hvdWxk
IGJlIHRydWVgKTsKKyAgICBjb25zdCBkZXNjcmlwdG9yID0gT2JqZWN0LmdldE93blByb3BlcnR5
RGVzY3JpcHRvcihhcnJheSwga2V5KTsKKyAgICBhc3NlcnQodHlwZW9mIGRlc2NyaXB0b3IgPT09
ICdvYmplY3QnLCBgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcigke2tleS50b1N0cmlu
ZygpfSkgcmV0dXJuIGFuIG9iamVjdGApOworICAgIGFzc2VydChkZXNjcmlwdG9yLnZhbHVlID09
PSB2YWx1ZSwgYGRlc2NyaXB0b3IudmFsdWUgc2hvdWxkIGJlICR7dmFsdWV9YCk7CisgICAgYXNz
ZXJ0KGRlc2NyaXB0b3Iud3JpdGFibGUgPT09IHRydWUsIGBkZXNjcmlwdG9yLndyaXRhYmxlIHNo
b3VsZCBiZSB0cnVlYCk7CisgICAgYXNzZXJ0KGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9PT0gdHJ1
ZSwgYGRlc2NyaXB0b3IuZW51bWVyYWJsZSBzaG91bGQgYmUgdHJ1ZWApOworICAgIGFzc2VydChk
ZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSwgYGRlc2NyaXB0b3IuY29uZmlndXJhYmxl
IHNob3VsZCBiZSB0cnVlYCk7Cit9KTsKIAotdGVzdFZhbGlkQ29uZmlndXJhYmxlSW5kaWNlcyhb
Cit0ZXN0VmFsaWRJbmRpY2VzKFsKICAgICAnMDEnLAogICAgICcwLjEwJywKICAgICAnK0luZmlu
aXR5JywKICAgICAnLU5hTicsCiAgICAgJy0wLjAnLAogICAgIFN5bWJvbCgnMScpLAotXSk7Ci0K
LXRlc3RWYWxpZE5vbkNvbmZpZ3VyYWJsZUluZGljZXMgPSBtYWtlVGVzdChtYWtlVGVzdFZhbGlk
SW5kZXgoZmFsc2UpKQotdGVzdFZhbGlkTm9uQ29uZmlndXJhYmxlSW5kaWNlcyhbCiAgICAgJzAn
LAogICAgIDAsCiBdKTsKZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNj
ZXNzLW1vbm9tb3JwaGljLW5ldXRlcmVkLmpzIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1h
Y2Nlc3MtbW9ub21vcnBoaWMtbmV1dGVyZWQuanMKaW5kZXggODFkN2MzYmQyNzhjOWU2ZjRjNTE3
ZDU4YzJmYzdhNzg2NTIwNjcxYy4uYmViYTg1ZWQ4YzQ5MGNkNzJiYjVmMmUyZDJjNzY0ZDUxMDgy
MWM2YyAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3MtbW9ub21v
cnBoaWMtbmV1dGVyZWQuanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1hY2Nlc3Mt
bW9ub21vcnBoaWMtbmV1dGVyZWQuanMKQEAgLTEsNjEgKzEsOSBAQAogdHlwZWRBcnJheXMgPSBb
SW50OEFycmF5LCBVaW50OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWlu
dDE2QXJyYXksIEludDMyQXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRB
cnJheV07CiAKLQotZnVuY3Rpb24gY2hlY2soYXJyYXksIHRodW5rLCBjb3VudCkgewotICAgIGxl
dCBmYWlsZWQgPSB0cnVlOwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5rKGFycmF5LCBjb3VudCk7
Ci0gICAgfSBjYXRjaChlKSB7Ci0gICAgICAgIGlmIChlICE9ICJUeXBlRXJyb3I6IFVuZGVybHlp
bmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyIpCi0gICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoW3RodW5rLCBjb3VudCwgZV0pOwotICAgICAgICBmYWlsZWQg
PSBmYWxzZTsKLSAgICB9Ci0gICAgaWYgKGZhaWxlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KFt0aHVuaywgY291bnRdKTsKLX0KLW5vSW5saW5lKGNoZWNrKTsKLQotZnVuY3Rpb24gdGVzdCh0
aHVuaywgYXJyYXkpIHsKLSAgICBsZXQgZm4gPSBGdW5jdGlvbigiYXJyYXkiLCAiaSIsIHRodW5r
KTsKLSAgICBub0lubGluZShmbik7Ci0gICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxMDAwMDsgaSsr
KQotICAgICAgICBjaGVjayhhcnJheSwgZm4sIGkpOwotfQotCi1mb3IgKGxldCBjb25zdHJ1Y3Rv
ciBvZiB0eXBlZEFycmF5cykgewotICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7
Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIHRlc3QoImFycmF5
WzBdIiwgYXJyYXkpOwotICAgIHRlc3QoImRlbGV0ZSBhcnJheVswXSIsIGFycmF5KTsKLSAgICB0
ZXN0KCJPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGFycmF5LCAwKSIsIGFycmF5KTsK
LSAgICB0ZXN0KCJhcnJheVswXSA9IDEiLCBhcnJheSk7Ci0gICAgdGVzdCgiYXJyYXlbaV0gPSAx
IiwgYXJyYXkpOwotfQotCi1mdW5jdGlvbiB0ZXN0RlRMKHRodW5rLCBhcnJheSwgZmFpbEFycmF5
KSB7Ci0gICAgbGV0IGZuID0gRnVuY3Rpb24oImFycmF5IiwgImkiLCB0aHVuayk7Ci0gICAgbm9J
bmxpbmUoZm4pOwotICAgIGZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykKLSAgICAgICAg
Zm4oYXJyYXksIGkpCi0gICAgY2hlY2soZmFpbEFycmF5LCBmbiwgMTAwMDApOwotfQotCi1mb3Ig
KGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewotICAgIGxldCBhcnJheSA9IG5ldyBj
b25zdHJ1Y3RvcigxMCk7Ci0gICAgbGV0IGZhaWxBcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7
Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihmYWlsQXJyYXkuYnVmZmVyKTsKLSAgICB0ZXN0RlRM
KCJhcnJheVswXSIsIGFycmF5LCBmYWlsQXJyYXkpOwotICAgIHRlc3RGVEwoImRlbGV0ZSBhcnJh
eVswXSIsIGFycmF5LCBmYWlsQXJyYXkpOwotICAgIHRlc3RGVEwoIk9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0gICAgdGVzdEZU
TCgiYXJyYXlbMF0gPSAxIiwgYXJyYXksIGZhaWxBcnJheSk7Ci0gICAgdGVzdEZUTCgiYXJyYXlb
aV0gPSAxIiwgYXJyYXksIGZhaWxBcnJheSk7Ci19Ci0KLQogZnVuY3Rpb24gY2hlY2tOb0V4Y2Vw
dGlvbihhcnJheSwgdGh1bmssIGNvdW50KSB7CiAgICAgdGh1bmsoYXJyYXksIGNvdW50KTsKIH0K
LW5vSW5saW5lKGNoZWNrKTsKK25vSW5saW5lKGNoZWNrTm9FeGNlcHRpb24pOwogCiBmdW5jdGlv
biB0ZXN0Tm9FeGNlcHRpb24odGh1bmssIGFycmF5KSB7CiAgICAgbGV0IGZuID0gRnVuY3Rpb24o
ImFycmF5IiwgImkiLCB0aHVuayk7CkBAIC02Nyw3ICsxNSwxMiBAQCBmdW5jdGlvbiB0ZXN0Tm9F
eGNlcHRpb24odGh1bmssIGFycmF5KSB7CiBmb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFy
cmF5cykgewogICAgIGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgdHJhbnNm
ZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwotICAgIHRlc3ROb0V4Y2VwdGlvbigiT2JqZWN0
LmRlZmluZVByb3BlcnR5KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgY29u
ZmlndXJhYmxlOiBmYWxzZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSIsIGFycmF5KTsKKyAgICB0ZXN0
Tm9FeGNlcHRpb24oImFycmF5WzBdIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiZGVs
ZXRlIGFycmF5WzBdIiwgYXJyYXkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigiT2JqZWN0LmdldE93
blByb3BlcnR5RGVzY3JpcHRvcihhcnJheSwgMCkiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0
aW9uKCJhcnJheVswXSA9IDEiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJhcnJheVtp
XSA9IDEiLCBhcnJheSk7CisgICAgdGVzdE5vRXhjZXB0aW9uKCJPYmplY3QuZGVmaW5lUHJvcGVy
dHkoYXJyYXksIDAsIHsgdmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IHRy
dWUsIGVudW1lcmFibGU6IHRydWUgfSkiLCBhcnJheSk7CiB9CiAKIGZ1bmN0aW9uIHRlc3RGVExO
b0V4Y2VwdGlvbih0aHVuaywgYXJyYXksIGZhaWxBcnJheSkgewpAQCAtNzcsOSArMzAsMTUgQEAg
ZnVuY3Rpb24gdGVzdEZUTE5vRXhjZXB0aW9uKHRodW5rLCBhcnJheSwgZmFpbEFycmF5KSB7CiAg
ICAgICAgIGZuKGFycmF5LCBpKQogICAgIGNoZWNrTm9FeGNlcHRpb24oZmFpbEFycmF5LCBmbiwg
MTAwMDApOwogfQorCiBmb3IgKGxldCBjb25zdHJ1Y3RvciBvZiB0eXBlZEFycmF5cykgewogICAg
IGxldCBhcnJheSA9IG5ldyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgbGV0IGZhaWxBcnJheSA9IG5l
dyBjb25zdHJ1Y3RvcigxMCk7CiAgICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihmYWlsQXJyYXkuYnVm
ZmVyKTsKLSAgICB0ZXN0RlRMTm9FeGNlcHRpb24oIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhcnJh
eSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFibGU6IHRydWUsIGNvbmZpZ3VyYWJsZTogZmFsc2UsIGVu
dW1lcmFibGU6IHRydWUgfSkiLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNl
cHRpb24oImFycmF5WzBdIiwgYXJyYXksIGZhaWxBcnJheSk7CisgICAgdGVzdEZUTE5vRXhjZXB0
aW9uKCJkZWxldGUgYXJyYXlbMF0iLCBhcnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9F
eGNlcHRpb24oIk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApIiwgYXJy
YXksIGZhaWxBcnJheSk7CisgICAgdGVzdEZUTE5vRXhjZXB0aW9uKCJhcnJheVswXSA9IDEiLCBh
cnJheSwgZmFpbEFycmF5KTsKKyAgICB0ZXN0RlRMTm9FeGNlcHRpb24oImFycmF5W2ldID0gMSIs
IGFycmF5LCBmYWlsQXJyYXkpOworICAgIHRlc3RGVExOb0V4Y2VwdGlvbigiT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KGFycmF5LCAwLCB7IHZhbHVlOiAxLCB3cml0YWJsZTogdHJ1ZSwgY29uZmlndXJh
YmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlIH0pIiwgYXJyYXksIGZhaWxBcnJheSk7CiB9CmRp
ZmYgLS1naXQgYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWFjY2Vzcy1uZXV0ZXJlZC5qcyBi
L0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNjZXNzLW5ldXRlcmVkLmpzCmluZGV4IGM1MjE1
MmZiYmYxYWY4MjQ0MWE0MzY5NjkxZTQ1NmI4YmUyZGI1MTQuLmFiZWIwNTk5OTkyNTA5ODVhYjkx
OGViNDI1OTQzNjcyNjlkMDczOTcgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJy
YXktYWNjZXNzLW5ldXRlcmVkLmpzCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktYWNj
ZXNzLW5ldXRlcmVkLmpzCkBAIC0xLDMzICsxLDUgQEAKIHR5cGVkQXJyYXlzID0gW0ludDhBcnJh
eSwgVWludDhBcnJheSwgVWludDhDbGFtcGVkQXJyYXksIEludDE2QXJyYXksIFVpbnQxNkFycmF5
LCBJbnQzMkFycmF5LCBVaW50MzJBcnJheSwgRmxvYXQzMkFycmF5LCBGbG9hdDY0QXJyYXldOwog
Ci0KLWZ1bmN0aW9uIGNoZWNrKHRodW5rLCBjb3VudCkgewotICAgIGxldCBhcnJheSA9IG5ldyBj
b25zdHJ1Y3RvcigxMCk7Ci0gICAgdHJhbnNmZXJBcnJheUJ1ZmZlcihhcnJheS5idWZmZXIpOwot
ICAgIGxldCBmYWlsZWQgPSB0cnVlOwotICAgIHRyeSB7Ci0gICAgICAgIHRodW5rKGFycmF5KTsK
LSAgICB9IGNhdGNoKGUpIHsKLSAgICAgICAgaWYgKGUgIT0gIlR5cGVFcnJvcjogVW5kZXJseWlu
ZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IikKLSAgICAgICAg
ICAgIHRocm93IG5ldyBFcnJvcihbdGh1bmssIGNvdW50LCBlXSk7Ci0gICAgICAgIGZhaWxlZCA9
IGZhbHNlOwotICAgIH0KLSAgICBpZiAoZmFpbGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
W3RodW5rLCBjb3VudF0pOwotfQotCi1mdW5jdGlvbiB0ZXN0KHRodW5rLCBjb3VudCkgewotICAg
IGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpCi0gICAgICAgIGNoZWNrKHRodW5rLCBj
b3VudCk7Ci19Ci0KLWZvciAobGV0IGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgewotICAgIHRlc3Qo
KGFycmF5KSA9PiBhcnJheVswXSwgaSk7Ci0gICAgdGVzdCgoYXJyYXkpID0+IGRlbGV0ZSBhcnJh
eVswXSwgaSk7Ci0gICAgdGVzdCgoYXJyYXkpID0+IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2Ny
aXB0b3IoYXJyYXksIDApLCBpKTsKLSAgICB0ZXN0KChhcnJheSkgPT4gYXJyYXlbMF0gPSAxLCBp
KTsKLX0KLQogZnVuY3Rpb24gY2hlY2tOb0V4Y2VwdGlvbih0aHVuaywgY291bnQpIHsKICAgICBs
ZXQgYXJyYXkgPSBuZXcgY29uc3RydWN0b3IoMTApOwogICAgIHRyYW5zZmVyQXJyYXlCdWZmZXIo
YXJyYXkuYnVmZmVyKTsKQEAgLTQwLDUgKzEyLDkgQEAgZnVuY3Rpb24gdGVzdE5vRXhjZXB0aW9u
KHRodW5rLCBjb3VudCkgewogfQogCiBmb3IgKGxldCBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsK
LSAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXJy
YXksIDAsIHsgdmFsdWU6IDEsIHdyaXRhYmxlOiB0cnVlLCBjb25maWd1cmFibGU6IGZhbHNlLCBl
bnVtZXJhYmxlOiB0cnVlIH0pLCBpKQorICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IGFy
cmF5WzBdLCBpKTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5KSA9PiBkZWxldGUgYXJyYXlb
MF0sIGkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IE9iamVjdC5nZXRPd25Qcm9w
ZXJ0eURlc2NyaXB0b3IoYXJyYXksIDApLCBpKTsKKyAgICB0ZXN0Tm9FeGNlcHRpb24oKGFycmF5
KSA9PiBhcnJheVswXSA9IDEsIGkpOworICAgIHRlc3ROb0V4Y2VwdGlvbigoYXJyYXkpID0+IE9i
amVjdC5kZWZpbmVQcm9wZXJ0eShhcnJheSwgMCwgeyB2YWx1ZTogMSwgd3JpdGFibGU6IHRydWUs
IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZSB9KSwgaSkKIH0KZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktY29uZmlndXJlLWluZGV4LmpzIGIvSlNUZXN0
cy9zdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUtaW5kZXguanMKaW5kZXggNTdhZWYzNzY5YjEz
YzAxNmYzYTg0YmY1MzJlNzRmNTkyNzlmYmY3Ny4uZTQ2NWJkMTBmMzAwMzNlODBmMDAyMTVmN2I3
OTQ1MjI0Yzg0MmFlOCAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25m
aWd1cmUtaW5kZXguanMKKysrIGIvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1jb25maWd1cmUt
aW5kZXguanMKQEAgLTQwLDEzICs0MCwxMyBAQCBmdW5jdGlvbiB0ZXN0KGFycmF5LCBhLCBjLCBl
cnJvciApIHsKIGZ1bmN0aW9uIGZvbygpIHsKICAgICBmb3IgKGNvbnN0cnVjdG9yIG9mIHR5cGVk
QXJyYXlzKSB7CiAgICAgICAgIGxldCBhID0gbmV3IGNvbnN0cnVjdG9yKDEwKTsKLSAgICAgICAg
T2JqZWN0LmRlZmluZVByb3BlcnR5KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCBmYWxzZSwg
dHJ1ZSwgdHJ1ZSkpOworICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURl
c2NyaXB0b3IoZmFsc2UsIHRydWUsIHRydWUsIHRydWUpKTsKICAgICAgICAgYXNzZXJ0KGFbMF0g
PT09IDEpOwotICAgICAgICBhc3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5
KGEsIDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpLCAiVHlwZUVy
cm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkg
b24gYSB0eXBlZCBhcnJheS4iKSk7Ci0gICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIGZhbHNlLCBmYWxzZSwg
ZmFsc2UpLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGlu
ZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7Ci0gICAgICAgIGFzc2VydFRocm93
cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2Us
IGZhbHNlLCBmYWxzZSwgdHJ1ZSksICJUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gc3RvcmUgbm9u
LXdyaXRhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24gYSB0eXBlZCBhcnJheS4iKSk7CisgICAgICAg
IGFzc2VydFRocm93cygoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2Ny
aXB0b3IoZmFsc2UsIHRydWUsIHRydWUsIGZhbHNlKSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0
byBzdG9yZSBub24tZW51bWVyYWJsZSBpbmRleGVkIHByb3BlcnR5IG9uIGEgdHlwZWQgYXJyYXku
IikpOworICAgICAgICBhc3NlcnRUaHJvd3MoKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KGEs
IDAsIG1ha2VEZXNjcmlwdG9yKGZhbHNlLCB0cnVlLCBmYWxzZSwgZmFsc2UpLCAiVHlwZUVycm9y
OiBBdHRlbXB0aW5nIHRvIHN0b3JlIG5vbi1lbnVtZXJhYmxlIGluZGV4ZWQgcHJvcGVydHkgb24g
YSB0eXBlZCBhcnJheS4iKSk7CisgICAgICAgIGFzc2VydFRocm93cygoKSA9PiBPYmplY3QuZGVm
aW5lUHJvcGVydHkoYSwgMCwgbWFrZURlc2NyaXB0b3IoZmFsc2UsIHRydWUsIGZhbHNlLCB0cnVl
KSwgIlR5cGVFcnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBub24td3JpdGFibGUgaW5kZXhlZCBw
cm9wZXJ0eSBvbiBhIHR5cGVkIGFycmF5LiIpKTsKIAotICAgICAgICB0ZXN0KGEsIGZhbHNlLCB0
cnVlLCAiVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3VyZSBub24tY29uZmlndXJhYmxl
IHByb3BlcnR5LiIpOworICAgICAgICB0ZXN0KGEsIGZhbHNlLCBmYWxzZSwgIlR5cGVFcnJvcjog
QXR0ZW1wdGluZyB0byBzdG9yZSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwogICAgICAg
ICBmb3IgKGMgb2YgYm9vbHMpIHsKICAgICAgICAgICAgIHRlc3QoYSwgdHJ1ZSwgYywgIlR5cGVF
cnJvcjogQXR0ZW1wdGluZyB0byBzdG9yZSBhY2Nlc3NvciBpbmRleGVkIHByb3BlcnR5IG9uIGEg
dHlwZWQgYXJyYXkuIikKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlw
ZWRhcnJheS1mdW5jdGlvbnMtd2l0aC1uZXV0ZXJlZC5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVk
YXJyYXktZnVuY3Rpb25zLXdpdGgtbmV1dGVyZWQuanMKaW5kZXggY2NhZDNhMGVlMDhiN2Y0Yzg3
NTE4Y2E1M2EzOTIyNTlhMTU2NjRmOC4uNTQ4NDE5ZjhmNjFhMWU2NTZlNGUwYjJlOWYwZDY1YjBh
NDRiMjJmZiAxMDA2NDQKLS0tIGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1mdW5jdGlvbnMt
d2l0aC1uZXV0ZXJlZC5qcworKysgYi9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWZ1bmN0aW9u
cy13aXRoLW5ldXRlcmVkLmpzCkBAIC03NywyMiArNzcsMTMgQEAgZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwOyBpKyspCiAvLyBUZXN0IHRoYXQgd2UgaGFuZGxlIG5ldXRlcmluZyBmb3IgYW55IHRv
SW50ZWdlciBuZXV0ZXJpbmcgdGhlIGFycmF5YnVmZmVyLgogcHJvdG90eXBlRnVuY3Rpb25zID0g
WwogICAgIHsgZnVuYzpwcm90by5jb3B5V2l0aGluLCBhcmdzOlsicHJpbSIsICJwcmltIiwgInBy
aW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5ldmVyeSwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsg
ZnVuYzpwcm90by5maWxsLCBhcmdzOlsicHJpbSIsICJwcmltIiwgInByaW0iXSB9LAotICAgIHsg
ZnVuYzpwcm90by5maWx0ZXIsIGFyZ3M6WyJmdW5jIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8uZmlu
ZCwgYXJnczpbImZ1bmMiXSB9LAotICAgIHsgZnVuYzpwcm90by5maW5kSW5kZXgsIGFyZ3M6WyJm
dW5jIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8uZm9yRWFjaCwgYXJnczpbImZ1bmMiXSB9LAogICAg
IHsgZnVuYzpwcm90by5pbmRleE9mLCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAgICAgeyBmdW5j
OnByb3RvLmluY2x1ZGVzLCBhcmdzOlsibmEiLCAicHJpbSJdIH0sCiAgICAgeyBmdW5jOnByb3Rv
LmpvaW4sIGFyZ3M6WyJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8ubGFzdEluZGV4T2YsIGFy
Z3M6WyJuYSIsICJwcmltIl0gfSwKLSAgICB7IGZ1bmM6cHJvdG8ubWFwLCBhcmdzOlsiZnVuYyJd
IH0sCi0gICAgeyBmdW5jOnByb3RvLnJlZHVjZSwgYXJnczpbImZ1bmMiXSB9LAotICAgIHsgZnVu
Yzpwcm90by5yZWR1Y2VSaWdodCwgYXJnczpbImZ1bmMiXSB9LAogICAgIHsgZnVuYzpwcm90by5z
ZXQsIGFyZ3M6WyJhcnJheSIsICJwcmltIl0gfSwKICAgICB7IGZ1bmM6cHJvdG8uc2xpY2UsIGFy
Z3M6WyJwcmltIiwgInByaW0iXSB9LAotICAgIHsgZnVuYzpwcm90by5zb21lLCBhcmdzOlsiZnVu
YyJdIH0sCiAgICAgeyBmdW5jOnByb3RvLnNvcnQsIGFyZ3M6WyJmdW5jIl0gfSwKICAgICB7IGZ1
bmM6cHJvdG8uc3ViYXJyYXksIGFyZ3M6WyJwcmltIiwgInByaW0iXSB9LAogXTsKZGlmZiAtLWdp
dCBhL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNvbmZpZ3Vy
YWJsZS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVydHktbm90LWNv
bmZpZ3VyYWJsZS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzNkYTlkOTI1ZmY4
YjM5NDE3YWJkZWZkZDBlYjdkZGJmNjkyODI1Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy90eXBlZGFycmF5LWdldG93bnByb3Bl
cnR5LW5vdC1jb25maWd1cmFibGUuanMKKysrIC9kZXYvbnVsbApAQCAtMSwyMCArMCwwIEBACi10
eXBlZEFycmF5cyA9IFtJbnQ4QXJyYXksIFVpbnQ4QXJyYXksIFVpbnQ4Q2xhbXBlZEFycmF5LCBJ
bnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMyQXJyYXksIEZsb2F0MzJB
cnJheSwgRmxvYXQ2NEFycmF5XTsKLQotZnVuY3Rpb24gYXNzZXJ0KGNvbmQpIHsKLSAgICBpZiAo
IWNvbmQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcigiYmFkIGFzc2VydGlvbiEiKTsKLX0KLQot
ZnVuY3Rpb24gZm9vKCkgewotICAgIGZvciAoY29uc3RydWN0b3Igb2YgdHlwZWRBcnJheXMpIHsK
LSAgICAgICAgbGV0IGEgPSBuZXcgY29uc3RydWN0b3IoMTApOwotICAgICAgICBsZXQgYiA9IE9i
amVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoYSwgMCk7Ci0gICAgICAgIGFzc2VydChiLnZh
bHVlID09PSAwKTsKLSAgICAgICAgYXNzZXJ0KGIud3JpdGFibGUgPT09IHRydWUpOwotICAgICAg
ICBhc3NlcnQoYi5lbnVtZXJhYmxlID09PSB0cnVlKTsKLSAgICAgICAgYXNzZXJ0KGIuY29uZmln
dXJhYmxlID09PSBmYWxzZSk7Ci0gICAgfQotfQotCi1mb3IgKGxldCBpID0gMDsgaSA8IDEwMDsg
aSsrKQotICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvdHlwZWRhcnJheS1n
ZXRvd25wcm9wZXJ0eS5qcyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJvcGVy
dHkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZTM5MmViNzk3NTBkNzA3MTZmNjg0ZGExODZkMTk0MGY4ZjRkYzVl
MAotLS0gL2Rldi9udWxsCisrKyBiL0pTVGVzdHMvc3RyZXNzL3R5cGVkYXJyYXktZ2V0b3ducHJv
cGVydHkuanMKQEAgLTAsMCArMSwyMCBAQAordHlwZWRBcnJheXMgPSBbSW50OEFycmF5LCBVaW50
OEFycmF5LCBVaW50OENsYW1wZWRBcnJheSwgSW50MTZBcnJheSwgVWludDE2QXJyYXksIEludDMy
QXJyYXksIFVpbnQzMkFycmF5LCBGbG9hdDMyQXJyYXksIEZsb2F0NjRBcnJheV07CisKK2Z1bmN0
aW9uIGFzc2VydChjb25kKSB7CisgICAgaWYgKCFjb25kKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoImJhZCBhc3NlcnRpb24hIik7Cit9CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICBmb3IgKGNv
bnN0cnVjdG9yIG9mIHR5cGVkQXJyYXlzKSB7CisgICAgICAgIGxldCBhID0gbmV3IGNvbnN0cnVj
dG9yKDEwKTsKKyAgICAgICAgbGV0IGIgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9y
KGEsIDApOworICAgICAgICBhc3NlcnQoYi52YWx1ZSA9PT0gMCk7CisgICAgICAgIGFzc2VydChi
LndyaXRhYmxlID09PSB0cnVlKTsKKyAgICAgICAgYXNzZXJ0KGIuZW51bWVyYWJsZSA9PT0gdHJ1
ZSk7CisgICAgICAgIGFzc2VydChiLmNvbmZpZ3VyYWJsZSA9PT0gdHJ1ZSk7CisgICAgfQorfQor
Citmb3IgKGxldCBpID0gMDsgaSA8IDEwMDsgaSsrKQorICAgIGZvbygpOwpkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyL2V4cGVjdGF0aW9ucy55YW1sIGIvSlNUZXN0cy90ZXN0MjYyL2V4cGVj
dGF0aW9ucy55YW1sCmluZGV4IGMyNTE3N2ZiODU5NTNmYWQ1MWRjY2U2YjY2OWYxZDE2MGE5MWIz
OTAuLmE3NmJlZTVhZTQ1MGIyZDJhM2RiMDY0NDY1OWI2NjE5MDc1MWU5MTUgMTAwNjQ0Ci0tLSBh
L0pTVGVzdHMvdGVzdDI2Mi9leHBlY3RhdGlvbnMueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIv
ZXhwZWN0YXRpb25zLnlhbWwKQEAgLTEyNDAsMTUgKzEyNDAsNDIgQEAgdGVzdC9idWlsdC1pbnMv
UmVnRXhwL3Byb3RvdHlwZS9leGVjL3UtbGFzdGluZGV4LWFkdi5qczoKIHRlc3QvYnVpbHQtaW5z
L1JlZ0V4cC9xdWFudGlmaWVyLWludGVnZXItbGltaXQuanM6CiAgIGRlZmF1bHQ6ICdTeW50YXhF
cnJvcjogSW52YWxpZCByZWd1bGFyIGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30g
cXVhbnRpZmllcicKICAgc3RyaWN0IG1vZGU6ICdTeW50YXhFcnJvcjogSW52YWxpZCByZWd1bGFy
IGV4cHJlc3Npb246IG51bWJlciB0b28gbGFyZ2UgaW4ge30gcXVhbnRpZmllcicKK3Rlc3QvYnVp
bHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL2V2ZXJ5L2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVy
LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQg
Z290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmlj
dCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVz
dDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9U
eXBlZEFycmF5L3Byb3RvdHlwZS9maWx0ZXIvY2FsbGJhY2tmbi1kZXRhY2hidWZmZXIuanM6Cisg
IGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBU
ZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJy
b3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJy
YXkvcHJvdG90eXBlL2ZpbmQvcHJlZGljYXRlLW1heS1kZXRhY2gtYnVmZmVyLmpzOgorICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiB0aHJvd3MgYSBUeXBlRXJyb3IgZ2V0dGluZyBhIHZhbHVlIGZy
b20gdGhlIGRldGFjaGVkIGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVFcnJvciB0byBiZSB0aHJvd24g
YnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRB
cnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogdGhyb3dzIGEgVHlwZUVycm9y
IGdldHRpbmcgYSB2YWx1ZSBmcm9tIHRoZSBkZXRhY2hlZCBidWZmZXIgRXhwZWN0ZWQgYSBUeXBl
RXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBhdCBhbGwgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJv
dG90eXBlL2ZpbmRJbmRleC9wcmVkaWNhdGUtbWF5LWRldGFjaC1idWZmZXIuanM6CisgIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IHRocm93cyBhIFR5cGVFcnJvciBnZXR0aW5nIGEgdmFsdWUgZnJv
bSB0aGUgZGV0YWNoZWQgYnVmZmVyIEV4cGVjdGVkIGEgVHlwZUVycm9yIHRvIGJlIHRocm93biBi
dXQgbm8gZXhjZXB0aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiB0aHJvd3MgYSBUeXBlRXJyb3Ig
Z2V0dGluZyBhIHZhbHVlIGZyb20gdGhlIGRldGFjaGVkIGJ1ZmZlciBFeHBlY3RlZCBhIFR5cGVF
cnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90
b3R5cGUvZm9yRWFjaC9jYWxsYmFja2ZuLWRldGFjaGJ1ZmZlci5qczoKKyAgZGVmYXVsdDogJ1Rl
c3QyNjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFRlc3QyNjJFcnJvciAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheS9wcm90b3R5cGUv
bWFwL2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9y
OiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9yZWR1Y2UvY2Fs
bGJhY2tmbi1kZXRhY2hidWZmZXIuanM6CisgIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IEV4cGVj
dGVkIGEgVHlwZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IEV4cGVjdGVkIGEgVHlw
ZUVycm9yIGJ1dCBnb3QgYSBUZXN0MjYyRXJyb3IgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKK3Rlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3JlZHVjZVJpZ2h0L2NhbGxi
YWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3Rl
ZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2
NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVF
cnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRhY2hlZC1idWZm
ZXItY3VzdG9tLWN0b3Itb3RoZXItdGFyZ2V0dHlwZS5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJF
cnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGhhdmUgY29uZmlndXJhYmxlOnRydWUuIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4gKFRlc3Rpbmcgd2l0aCBGbG9h
dDY0QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRv
IGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdhcyBub3QuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5
LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gYmUg
Y29uZmlndXJhYmxlLCBidXQgd2FzIG5vdC4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
IHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXkvcHJvdG90eXBlL3NsaWNlL2RldGFjaGVkLWJ1ZmZl
ci16ZXJvLWNvdW50LWN1c3RvbS1jdG9yLW90aGVyLXRhcmdldHR5cGUuanM6CiAgIGRlZmF1bHQ6
ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJv
bSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTog
J1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9t
IHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9U
eXBlZEFycmF5L3Byb3RvdHlwZS9zbGljZS9kZXRhY2hlZC1idWZmZXItemVyby1jb3VudC1jdXN0
b20tY3Rvci1zYW1lLXRhcmdldHR5cGUuanM6CiAgIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5kZXJs
eWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5L3Byb3RvdHlw
ZS9zb21lL2NhbGxiYWNrZm4tZGV0YWNoYnVmZmVyLmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5n
IHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBl
Y3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgVGVzdDI2MkVycm9yIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2N0b3Jz
L2J1ZmZlci1hcmcvYnl0ZW9mZnNldC10by1udW1iZXItZGV0YWNoYnVmZmVyLmpzOgogICBkZWZh
dWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciBidXQgZ290IGEgUmFuZ2VF
cnJvciAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3Qy
NjJFcnJvcjogRXhwZWN0ZWQgYSBUeXBlRXJyb3IgYnV0IGdvdCBhIFJhbmdlRXJyb3IgKFRlc3Rp
bmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKQEAgLTEzMDksODQgKzEzMzYsMjQgQEAgdGVzdC9idWls
dC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9jdG9ycy90eXBlZGFycmF5LWFyZy9zYW1lLWN0
b3ItYnVmZmVyLWN0b3IKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvY3Rv
cnMvdHlwZWRhcnJheS1hcmcvc2FtZS1jdG9yLWJ1ZmZlci1jdG9yLXZhbHVlLW5vdC1vYmotdGhy
b3dzLmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBhIFR5cGVFcnJvciB0
byBiZSB0aHJvd24gYnV0IG5vIGV4Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3
aXRoIEZsb2F0NjRBcnJheS4pJwogICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0
ZWQgYSBUeXBlRXJyb3IgdG8gYmUgdGhyb3duIGJ1dCBubyBleGNlcHRpb24gd2FzIHRocm93biBh
dCBhbGwgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVk
QXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0RlZmluZU93blByb3BlcnR5L3RvbnVtYmVyLXZh
bHVlLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWlu
ZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdp
dGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5n
IEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0
aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMv
aW50ZXJuYWxzL0RlbGV0ZS9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdU
eXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0
aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5
cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRo
ZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBl
ZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWxldGUvZGV0YWNoZWQtYnVmZmVyLmpzOgot
ICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRl
dGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3Ry
aWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0
YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9i
dWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvRGVsZXRlL2tleS1pcy1v
dXQtb2YtYm91bmRzLW5vbi1zdHJpY3QuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFRo
ZSB2YWx1ZSBvZiBgZGVsZXRlIHNhbXBsZVsiMSJdYCBpcyB0cnVlIEV4cGVjdGVkIFNhbWVWYWx1
ZSjCq2ZhbHNlwrssIMKrdHJ1ZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFy
cmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9E
ZWxldGUva2V5LWlzLW91dC1vZi1ib3VuZHMtc3RyaWN0LmpzOgotICBzdHJpY3QgbW9kZTogJ1R5
cGVFcnJvcjogVW5hYmxlIHRvIGRlbGV0ZSBwcm9wZXJ0eS4gKFRlc3Rpbmcgd2l0aCBGbG9hdDY0
QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxz
L0dldC9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdUeXBlRXJyb3I6IFVu
ZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5cGVFcnJvcjogVW5k
ZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3Ry
dWN0b3JzL2ludGVybmFscy9HZXQvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlw
ZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhl
IHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBl
RXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUg
dmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRB
cnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0L2luZmluaXR5LWRldGFjaGVkLWJ1ZmZlci5q
czoKLSAgZGVmYXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVl
biBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0g
IHN0cmljdCBtb2RlOiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVu
IGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRl
c3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMt
bm90LWludGVnZXIuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdh
cyBjYWxsZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScK
LSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJl
ZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQt
aW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtbm90LW1pbnVz
LXplcm8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxs
ZWQhIFJlZjogOS4xLjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3Ry
aWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IE9yZGluYXJ5R2V0IHdhcyBjYWxsZWQhIFJlZjogOS4x
LjguMSAzLmMgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5
cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0dldC9rZXktaXMtb3V0LW9mLWJvdW5kcy5q
czoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVm
OiA5LjEuOC4xIDMuYyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9k
ZTogJ1Rlc3QyNjJFcnJvcjogT3JkaW5hcnlHZXQgd2FzIGNhbGxlZCEgUmVmOiA5LjEuOC4xIDMu
YyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJh
eUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0T3duUHJvcGVydHkvZGV0YWNoZWQtYnVmZmVyLXJl
YWxtLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhh
cyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXku
KScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFz
IGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4p
JwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvR2V0T3du
UHJvcGVydHkvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBVbmRl
cmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRlc3Rp
bmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVuZGVy
bHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVzdGlu
ZyB3aXRoIEZsb2F0NjRBcnJheS4pJwordGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVj
dG9ycy9pbnRlcm5hbHMvRGVmaW5lT3duUHJvcGVydHkva2V5LWlzLW51bWVyaWNpbmRleC1kZXNj
LWNvbmZpZ3VyYWJsZS5qczoKKyAgZGVmYXVsdDogIlRlc3QyNjJFcnJvcjogZGVmaW5lUHJvcGVy
dHkncyByZXN1bHQgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJl
IHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKSIKKyAgc3RyaWN0IG1vZGU6ICJUZXN0
MjYyRXJyb3I6IGRlZmluZVByb3BlcnR5J3MgcmVzdWx0IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3Ry
dWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Liki
Cit0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9EZWZpbmVP
d25Qcm9wZXJ0eS9rZXktaXMtbnVtZXJpY2luZGV4LmpzOgorICBkZWZhdWx0OiAnVGVzdDI2MkVy
cm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqtmYWxzZcK7LCDCq3RydWXCuykgdG8gYmUgdHJ1ZSAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgU2FtZVZhbHVlKMKrZmFsc2XCuywgwqt0cnVlwrspIHRvIGJlIHRydWUgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25z
dHJ1Y3RvcnMvaW50ZXJuYWxzL0dldE93blByb3BlcnR5L2luZGV4LXByb3AtZGVzYy5qczoKLSAg
ZGVmYXVsdDogJ1Rlc3QyNjJFcnJvcjogRXhwZWN0ZWQgb2JqWzBdIHRvIGhhdmUgY29uZmlndXJh
YmxlOnRydWUuIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAn
VGVzdDI2MkVycm9yOiBFeHBlY3RlZCBvYmpbMF0gdG8gaGF2ZSBjb25maWd1cmFibGU6dHJ1ZS4g
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlD
b25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hhc1Byb3BlcnR5L2FicnVwdC1mcm9tLW9yZGluYXJ5LWhh
cy1wYXJlbnQtaGFzcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6ICAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjog
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5
Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXItcmVhbG0u
anM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjAiKSBt
dXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykg
dG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTog
J1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNl
IEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3Ry
dWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9kZXRhY2hlZC1idWZmZXIuanM6Ci0gIGRlZmF1
bHQ6ICdUZXN0MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjAiKSBtdXN0IHJldHVybiBm
YWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiMCIpIG11c3QgcmV0dXJuIGZhbHNlIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVy
bmFscy9IYXNQcm9wZXJ0eS9pbmZpbml0eS13aXRoLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVm
YXVsdDogJ1R5cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hl
ZCBmcm9tIHRoZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi10ZXN0L2J1aWx0
LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2ludGVybmFscy9IYXNQcm9wZXJ0eS9pbmhlcml0
ZWQtcHJvcGVydHkuanM6Ci0gIGRlZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IDQyIEV4cGVjdGVkIFNh
bWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxv
YXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiA0MiBFeHBlY3RlZCBT
YW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRl
cm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLWdyZWF0ZXItdGhhbi1sYXN0LWluZGV4LmpzOgotICBk
ZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBSZWZsZWN0LmhhcyhzYW1wbGUsICIxIikgbXVzdCByZXR1
cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRy
dWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYy
RXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIjEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3Rl
ZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRo
IEZsb2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9p
bnRlcm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLWxvd2VyLXRoYW4temVyby5qczoKLSAgZGVmYXVs
dDogJ1Rlc3QyNjJFcnJvcjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTEiKSBtdXN0IHJldHVybiBm
YWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAo
VGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJv
cjogUmVmbGVjdC5oYXMoc2FtcGxlLCAiLTEiKSBtdXN0IHJldHVybiBmYWxzZSBFeHBlY3RlZCBT
YW1lVmFsdWUowqt0cnVlwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZs
b2F0NjRBcnJheS4pJwotdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRl
cm5hbHMvSGFzUHJvcGVydHkva2V5LWlzLW1pbnVzLXplcm8uanM6Ci0gIGRlZmF1bHQ6ICdUZXN0
MjYyRXJyb3I6IFJlZmxlY3QuaGFzKHNhbXBsZSwgIi0wIikgbXVzdCByZXR1cm4gZmFsc2UgRXhw
ZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUZXN0MjYyRXJyb3I6IFJlZmxl
Y3QuaGFzKHNhbXBsZSwgIi0wIikgbXVzdCByZXR1cm4gZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVl
KMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJy
YXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3RvcnMvaW50ZXJuYWxzL0hh
c1Byb3BlcnR5L2tleS1pcy1ub3QtaW50ZWdlci5qczoKLSAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogMS4xIEV4cGVjdGVkIFNhbWVWYWx1ZSjCq3RydWXCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVl
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVy
cm9yOiAxLjEgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrdHJ1ZcK7LCDCq2ZhbHNlwrspIHRvIGJlIHRy
dWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgZGVmYXVsdDogJ1Rlc3QyNjJFcnJv
cjogRXhwZWN0ZWQgb2JqWzBdIHRvIGJlIGNvbmZpZ3VyYWJsZSwgYnV0IHdhcyBub3QuIChUZXN0
aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBF
eHBlY3RlZCBvYmpbMF0gdG8gYmUgY29uZmlndXJhYmxlLCBidXQgd2FzIG5vdC4gKFRlc3Rpbmcg
d2l0aCBGbG9hdDY0QXJyYXkuKScKIHRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlDb25zdHJ1Y3Rv
cnMvaW50ZXJuYWxzL1NldC9kZXRhY2hlZC1idWZmZXItcmVhbG0uanM6Ci0gIGRlZmF1bHQ6ICdU
eXBlRXJyb3I6IFVuZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0
aGUgdmlldyAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwotICBzdHJpY3QgbW9kZTogJ1R5
cGVFcnJvcjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRo
ZSB2aWV3IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisgIGRlZmF1bHQ6ICdUZXN0MjYy
RXJyb3I6IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3RlZCBTYW1lVmFsdWUowqsxwrss
IMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBz
dHJpY3QgbW9kZTogJ1Rlc3QyNjJFcnJvcjogYHNhbXBsZVswXSA9IDFgIGlzIGZhbHNlIEV4cGVj
dGVkIFNhbWVWYWx1ZSjCqzHCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGgg
RmxvYXQ2NEFycmF5LiknCiB0ZXN0L2J1aWx0LWlucy9UeXBlZEFycmF5Q29uc3RydWN0b3JzL2lu
dGVybmFscy9TZXQvZGV0YWNoZWQtYnVmZmVyLmpzOgotICBkZWZhdWx0OiAnVHlwZUVycm9yOiBV
bmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcgKFRl
c3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLSAgc3RyaWN0IG1vZGU6ICdUeXBlRXJyb3I6IFVu
ZGVybHlpbmcgQXJyYXlCdWZmZXIgaGFzIGJlZW4gZGV0YWNoZWQgZnJvbSB0aGUgdmlldyAoVGVz
dGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJworICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBgc2Ft
cGxlWzBdID0gMWAgaXMgZmFsc2UgRXhwZWN0ZWQgU2FtZVZhbHVlKMKrMcK7LCDCq2ZhbHNlwrsp
IHRvIGJlIHRydWUgKFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKKyAgc3RyaWN0IG1vZGU6
ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbMF0gPSAxYCBpcyBmYWxzZSBFeHBlY3RlZCBTYW1lVmFs
dWUowqsxwrssIMKrZmFsc2XCuykgdG8gYmUgdHJ1ZSAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJh
eS4pJwogdGVzdC9idWlsdC1pbnMvVHlwZWRBcnJheUNvbnN0cnVjdG9ycy9pbnRlcm5hbHMvU2V0
L3RvbnVtYmVyLXZhbHVlLWRldGFjaGVkLWJ1ZmZlci5qczoKLSAgZGVmYXVsdDogJ1R5cGVFcnJv
cjogVW5kZXJseWluZyBBcnJheUJ1ZmZlciBoYXMgYmVlbiBkZXRhY2hlZCBmcm9tIHRoZSB2aWV3
IChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0cmljdCBtb2RlOiAnVHlwZUVycm9y
OiBVbmRlcmx5aW5nIEFycmF5QnVmZmVyIGhhcyBiZWVuIGRldGFjaGVkIGZyb20gdGhlIHZpZXcg
KFRlc3Rpbmcgd2l0aCBGbG9hdDY0QXJyYXkuKScKLXRlc3QvYnVpbHQtaW5zL1R5cGVkQXJyYXlD
b25zdHJ1Y3RvcnMvaW50ZXJuYWxzL1NldC90b251bWJlci12YWx1ZS10aHJvd3MuanM6Ci0gIGRl
ZmF1bHQ6ICdUZXN0MjYyRXJyb3I6IGBzYW1wbGVbIjEuMSJdID0gb2JqYCB0aHJvd3MgVGVzdDI2
MkVycm9yIEV4cGVjdGVkIGEgVGVzdDI2MkVycm9yIHRvIGJlIHRocm93biBidXQgbm8gZXhjZXB0
aW9uIHdhcyB0aHJvd24gYXQgYWxsIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCi0gIHN0
cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBgc2FtcGxlWyIxLjEiXSA9IG9iamAgdGhyb3dzIFRl
c3QyNjJFcnJvciBFeHBlY3RlZCBhIFRlc3QyNjJFcnJvciB0byBiZSB0aHJvd24gYnV0IG5vIGV4
Y2VwdGlvbiB3YXMgdGhyb3duIGF0IGFsbCAoVGVzdGluZyB3aXRoIEZsb2F0NjRBcnJheS4pJwor
ICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1bmRlZmluZWTC
uywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5LiknCisg
IHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqt1bmRlZmlu
ZWTCuywgwqtmYWxzZcK7KSB0byBiZSB0cnVlIChUZXN0aW5nIHdpdGggRmxvYXQ2NEFycmF5Likn
CiB0ZXN0L2ludGw0MDIvRGF0ZVRpbWVGb3JtYXQvcHJvdG90eXBlL2Zvcm1hdFJhbmdlL2VuLVVT
LmpzOgogICBkZWZhdWx0OiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUowqsxLzMv
MjAxOeKAieKAk+KAiTEvNS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEvNS8yMDE5wrspIHRvIGJl
IHRydWUnCiAgIHN0cmljdCBtb2RlOiAnVGVzdDI2MkVycm9yOiBFeHBlY3RlZCBTYW1lVmFsdWUo
wqsxLzMvMjAxOeKAieKAk+KAiTEvNS8yMDE5wrssIMKrMS8zLzIwMTkg4oCTIDEvNS8yMDE5wrsp
IHRvIGJlIHRydWUnCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411683</attachid>
            <date>2020-10-17 15:55:38 -0700</date>
            <delta_ts>2020-10-17 15:56:16 -0700</delta_ts>
            <desc>Unreviewed fix, for EWS</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>648</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5cGVk
QXJyYXlWaWV3SW5saW5lcy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHZW5l
cmljVHlwZWRBcnJheVZpZXdJbmxpbmVzLmgKaW5kZXggYWM1N2ZmYjExYmNhLi5lZWE4NWEyZTZj
ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2VuZXJpY1R5
cGVkQXJyYXlWaWV3SW5saW5lcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTR2VuZXJpY1R5cGVkQXJyYXlWaWV3SW5saW5lcy5oCkBAIC0zODcsNyArMzg3LDcgQEAgYm9v
bCBKU0dlbmVyaWNUeXBlZEFycmF5VmlldzxBZGFwdG9yPjo6ZGVmaW5lT3duUHJvcGVydHkoCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH07CiAKLSAgICAgICAgaWYgKCF0aGlz
T2JqZWN0LT5pc05ldXRlcmVkKCkgJiYgaW5kZXgudmFsdWUoKSA+PSB0aGlzT2JqZWN0LT5tX2xl
bmd0aCkKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPj0gdGhpc09iamVjdC0+bV9sZW5ndGgp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKGRlc2NyaXB0b3IuaXNB
Y2Nlc3NvckRlc2NyaXB0b3IoKSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>