<?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>214525</bug_id>
          
          <creation_ts>2020-07-18 15:27:30 -0700</creation_ts>
          <short_desc>Remove OpIsObjectOrNull from ClassExprNode::emitBytecode()</short_desc>
          <delta_ts>2020-08-19 17:55: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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=214443</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=214645</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=215572</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=144457</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Trivial</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1672833</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-18 15:27:30 -0700</bug_when>
    <thetext>Remove OpIsObjectOrNull from ClassExprNode::emitBytecode()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672834</commentid>
    <comment_count>1</comment_count>
      <attachid>404649</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-18 15:32:38 -0700</bug_when>
    <thetext>Created attachment 404649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1672917</commentid>
    <comment_count>2</comment_count>
      <attachid>404649</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-19 11:01:10 -0700</bug_when>
    <thetext>Comment on attachment 404649
Patch

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

Would like to review this but I am not necessarily a good person to make the call about the new terminology.

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        1. Replaces OpIsObjectOrNull in ClassExprNode::emitBytecode() with emitIsObject() +
&gt; +           emitIsNull(), fixing `document.all` as `superclass.prototype` case with DFG/FTL,
&gt; +           and tweaks error message to reflect that `null` is allowed. Also removes
&gt; +           `superclass === undefined` check as it&apos;s on a slow path and the spec [1] lacks it.

I suggest doing this as a separate patch. It’s a behavior change and resolves a potential incompatibility with other engines, I guess?

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        2. Renames is_object_or_null bytecode op to typeof_is_object, fixing confusing
&gt; +           operationObjectIsObject() name, and aligning it with typeof_is_undefined. New name
&gt; +           offers better semantics and clearly communicates the op should be avoided when
&gt; +           implementing new features because of `typeof` behavior with [[IsHTMLDDA]] objects [2].
&gt; +
&gt; +        3. Leveraging fast path of JSCell::isCallable(), aligns jsTypeofIsObject() with DFG
&gt; +           inliner and compiler. No behavior change, microbenchmarks/is-object-or-null-*.js
&gt; +           are neutral.

These seem like great ideas, but not necessarily connected with the above. Just inspired by it. Internal clarifications with no behavior change. Any performance benefit?

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:-1504
&gt; -                        // FIXME: This could just call getCallData.
&gt; -                        // https://bugs.webkit.org/show_bug.cgi?id=144457

Should we close this bug? If I understand correctly, it implies there is a small performance benefit possible due to this refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673178</commentid>
    <comment_count>3</comment_count>
      <attachid>404649</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-07-20 12:41:09 -0700</bug_when>
    <thetext>Comment on attachment 404649
Patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:22
&gt;&gt; +           are neutral.
&gt; 
&gt; These seem like great ideas, but not necessarily connected with the above. Just inspired by it. Internal clarifications with no behavior change. Any performance benefit?

I think it might make sense to do this in a followup, and to also fix the second reference to the FIXME.

I also commented on a refactor that would be nice to do at the same time, where it makes various inlinings of the C++ code all call a single helper function.)

&gt;&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:-1504
&gt;&gt; -                        // https://bugs.webkit.org/show_bug.cgi?id=144457
&gt; 
&gt; Should we close this bug? If I understand correctly, it implies there is a small performance benefit possible due to this refactoring.

We should probably just change the below to also call isCallable

(I think that perhaps this enhancement can be done in a separate patch?)

&gt; Source/JavaScriptCore/runtime/Operations.cpp:109
&gt; +bool jsTypeofIsObject(JSGlobalObject* globalObject, JSValue v)

Suggestion:

We have this implemented in a few different places. What I&apos;d do is:
1. Move this to a header where it&apos;s ALWAYS_INLINE
2. Make AI call this
3. make operationTypeOfIsObject call it (You could even break this down into two functions, one that takes JSValue, one that takes JSObject*.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673825</commentid>
    <comment_count>4</comment_count>
      <attachid>404924</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-22 08:33:50 -0700</bug_when>
    <thetext>Created attachment 404924
Patch

Bring back `superclass === undefined` check, revert AbstractInterpreter and jsTypeofIsObject changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1673828</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-07-22 08:48:43 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)

Thank you for taking a look!

&gt; I suggest doing this as a separate patch. It’s a behavior change and
&gt; resolves a potential incompatibility with other engines, I guess?

It&apos;s unobservable: instead of directly throwing for `undefined`, `isConstructor` is called with it and also throws.
I believe it is better to remove 1 bytecode from ClassExprNode as `class extends undefined` is very rare.

&gt; These seem like great ideas, but not necessarily connected with the above.
&gt; Just inspired by it. Internal clarifications with no behavior change. Any
&gt; performance benefit?

No performance benefit: inlining by `child.m_type` catches most of the cases.

&gt; Suggestion:
&gt; 
&gt; We have this implemented in a few different places. What I&apos;d do is:
&gt; 1. Move this to a header where it&apos;s ALWAYS_INLINE
&gt; 2. Make AI call this
&gt; 3. make operationTypeOfIsObject call it (You could even break this down into
&gt; two functions, one that takes JSValue, one that takes JSObject*.)

That&apos;s a great idea! Thank you, Saam.
Let&apos;s defer this to a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1675027</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-25 15:28:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/66110833&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680356</commentid>
    <comment_count>7</comment_count>
      <attachid>404924</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2020-08-14 10:55:40 -0700</bug_when>
    <thetext>Comment on attachment 404924
Patch

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

r=me with some code relocation.

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        1. Replaces OpIsObjectOrNull in ClassExprNode::emitBytecode() with emitIsObject() +
&gt; +           emitIsNull(), fixing `document.all` as `superclass.prototype` case with DFG/FTL.
&gt; +           Also, tweaks error message to reflect that `null` is allowed.

Can you describe what the change in behavior is? I assume it&apos;s that we say document.all can&apos;t be the superclass of a class expression?

&gt; Source/JavaScriptCore/ChangeLog:14
&gt; +        2. Renames is_object_or_null bytecode op to typeof_is_object, fixing confusing

Nit: fixing confusing =&gt; fixing the confusing.

&gt; Source/JavaScriptCore/bytecode/BytecodeList.rb:336
&gt; -        :is_object_or_null,
&gt; +        :typeof_is_object,

Can you put this next to typeof_is_undefined.

&gt; Source/JavaScriptCore/bytecode/BytecodeUseDef.cpp:191
&gt; -    USES(OpIsObjectOrNull, operand)
&gt; +    USES(OpTypeofIsObject, operand)

ditto on location.

&gt; Source/JavaScriptCore/bytecode/BytecodeUseDef.cpp:498
&gt; -    DEFS(OpIsObjectOrNull, dst)
&gt; +    DEFS(OpTypeofIsObject, dst)

ditto on  location.

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1463
&gt; -    case IsObjectOrNull:
&gt; +    case TypeOfIsObject:

Ditto on location

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1499
&gt; -            case IsObjectOrNull:
&gt; +            case TypeOfIsObject:

Ditto on location

&gt; Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:1695
&gt; -        case IsObjectOrNull:
&gt; +        case TypeOfIsObject:

Ditto on location I&apos;m not going to comment on each of them for brevity but can you migrate all the various places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680674</commentid>
    <comment_count>8</comment_count>
      <attachid>406684</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2020-08-16 11:59:27 -0700</bug_when>
    <thetext>Created attachment 406684
Patch

Relocate TypeOfIsObject next to TypeOfIsUndefined, clarify ChangeLog and fix typo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680684</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-16 13:40:21 -0700</bug_when>
    <thetext>Committed r265744: &lt;https://trac.webkit.org/changeset/265744&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406684.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404649</attachid>
            <date>2020-07-18 15:32:38 -0700</date>
            <delta_ts>2020-07-22 08:33:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214525-20200719013236.patch</filename>
            <type>text/plain</type>
            <size>38372</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NWE4MDlkN2Y3MDEyYWJlMTcxNjNiMzI3NGYxNTVkODc0ZjI4OTU5Li42MmJiNWY5ZDdhNDYxOTAy
ZTI0OWVkNjRkODY1ODA4ZDg3MDcyOThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4MyBAQAorMjAyMC0wNy0xOCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVtb3ZlIE9wSXNPYmplY3RPck51bGwgZnJvbSBDbGFzc0V4cHJO
b2RlOjplbWl0Qnl0ZWNvZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaDoKKworICAgICAgICAxLiBSZXBsYWNlcyBPcElzT2JqZWN0
T3JOdWxsIGluIENsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29kZSgpIHdpdGggZW1pdElzT2JqZWN0
KCkgKworICAgICAgICAgICBlbWl0SXNOdWxsKCksIGZpeGluZyBgZG9jdW1lbnQuYWxsYCBhcyBg
c3VwZXJjbGFzcy5wcm90b3R5cGVgIGNhc2Ugd2l0aCBERkcvRlRMLAorICAgICAgICAgICBhbmQg
dHdlYWtzIGVycm9yIG1lc3NhZ2UgdG8gcmVmbGVjdCB0aGF0IGBudWxsYCBpcyBhbGxvd2VkLiBB
bHNvIHJlbW92ZXMKKyAgICAgICAgICAgYHN1cGVyY2xhc3MgPT09IHVuZGVmaW5lZGAgY2hlY2sg
YXMgaXQncyBvbiBhIHNsb3cgcGF0aCBhbmQgdGhlIHNwZWMgWzFdIGxhY2tzIGl0LgorCisgICAg
ICAgIDIuIFJlbmFtZXMgaXNfb2JqZWN0X29yX251bGwgYnl0ZWNvZGUgb3AgdG8gdHlwZW9mX2lz
X29iamVjdCwgZml4aW5nIGNvbmZ1c2luZworICAgICAgICAgICBvcGVyYXRpb25PYmplY3RJc09i
amVjdCgpIG5hbWUsIGFuZCBhbGlnbmluZyBpdCB3aXRoIHR5cGVvZl9pc191bmRlZmluZWQuIE5l
dyBuYW1lCisgICAgICAgICAgIG9mZmVycyBiZXR0ZXIgc2VtYW50aWNzIGFuZCBjbGVhcmx5IGNv
bW11bmljYXRlcyB0aGUgb3Agc2hvdWxkIGJlIGF2b2lkZWQgd2hlbgorICAgICAgICAgICBpbXBs
ZW1lbnRpbmcgbmV3IGZlYXR1cmVzIGJlY2F1c2Ugb2YgYHR5cGVvZmAgYmVoYXZpb3Igd2l0aCBb
W0lzSFRNTEREQV1dIG9iamVjdHMgWzJdLgorCisgICAgICAgIDMuIExldmVyYWdpbmcgZmFzdCBw
YXRoIG9mIEpTQ2VsbDo6aXNDYWxsYWJsZSgpLCBhbGlnbnMganNUeXBlb2ZJc09iamVjdCgpIHdp
dGggREZHCisgICAgICAgICAgIGlubGluZXIgYW5kIGNvbXBpbGVyLiBObyBiZWhhdmlvciBjaGFu
Z2UsIG1pY3JvYmVuY2htYXJrcy9pcy1vYmplY3Qtb3ItbnVsbC0qLmpzCisgICAgICAgICAgIGFy
ZSBuZXV0cmFsLgorCisgICAgICAgIFsxXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1y
dW50aW1lLXNlbWFudGljcy1jbGFzc2RlZmluaXRpb25ldmFsdWF0aW9uIChzdGVwIDUuZSkKKyAg
ICAgICAgWzJdOiBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jc2VjLUlzSFRNTEREQS1pbnRlcm5h
bC1zbG90LXR5cGVvZgorCisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiOgorICAg
ICAgICAqIGJ5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcDoKKyAgICAgICAgKEpTQzo6Y29tcHV0
ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAgIChKU0M6OmNvbXB1dGVEZWZzRm9y
Qnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHA6CisgICAgICAgIChKU0M6OkJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RXF1YWxpdHlP
cEltcGwpOgorICAgICAgICAqIGJ5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwOgorICAgICAg
ICAoSlNDOjpDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUpOgorICAgICAgICAqIGRmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpERkc6OkFic3RyYWN0
SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyk6CisgICAgICAg
ICogZGZnL0RGR0J5dGVDb2RlUGFyc2VyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29k
ZVBhcnNlcjo6cGFyc2VCbG9jayk6CisgICAgICAgICogZGZnL0RGR0NhcGFiaWxpdGllcy5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6Y2FwYWJpbGl0eUxldmVsKToKKyAgICAgICAgKiBkZmcvREZH
Q2xvYmJlcml6ZS5oOgorICAgICAgICAoSlNDOjpERkc6OmNsb2JiZXJpemUpOgorICAgICAgICAq
IGRmZy9ERkdEb2VzR0MuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmRvZXNHQyk6CisgICAgICAg
ICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6
OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAg
IChXVEY6OnByaW50SW50ZXJuYWwpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoK
KyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHT3BlcmF0aW9u
cy5jcHA6CisgICAgICAgICogZGZnL0RGR09wZXJhdGlvbnMuaDoKKyAgICAgICAgKiBkZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdTYWZlVG9F
eGVjdXRlLmg6CisgICAgICAgIChKU0M6OkRGRzo6c2FmZVRvRXhlY3V0ZSk6CisgICAgICAgICog
ZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZVR5cGVPZklzT2JqZWN0KToKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxh
dGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0T3JOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBkZmcv
REZHU3BlY3VsYXRpdmVKSVQuaDoKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAg
ICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTENhcGFiaWxpdGllcy5j
cHA6CisgICAgICAgIChKU0M6OkZUTDo6Y2FuQ29tcGlsZSk6CisgICAgICAgICogZnRsL0ZUTExv
d2VyREZHVG9CMy5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRGR1RvQjM6OmNv
bXBpbGVOb2RlKToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGls
ZVR5cGVPZklzT2JqZWN0KToKKyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6
Y29tcGlsZUlzT2JqZWN0T3JOdWxsKTogRGVsZXRlZC4KKyAgICAgICAgKiBqaXQvSklULmNwcDoK
KyAgICAgICAgKEpTQzo6SklUOjpwcml2YXRlQ29tcGlsZU1haW5QYXNzKToKKyAgICAgICAgKiBs
bGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbToKKyAgICAgICAgKiBydW50aW1lL0NvbW1vblNs
b3dQYXRocy5jcHA6CisgICAgICAgIChKU0M6OlNMT1dfUEFUSF9ERUNMKToKKyAgICAgICAgKiBy
dW50aW1lL0NvbW1vblNsb3dQYXRocy5oOgorICAgICAgICAqIHJ1bnRpbWUvT3BlcmF0aW9ucy5j
cHA6CisgICAgICAgIChKU0M6OmpzVHlwZW9mSXNPYmplY3QpOgorICAgICAgICAoSlNDOjpqc0lz
T2JqZWN0VHlwZU9yTnVsbCk6IERlbGV0ZWQuCisgICAgICAgICogcnVudGltZS9PcGVyYXRpb25z
Lmg6CisKIDIwMjAtMDctMTcgIEFsZXhleSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29t
PgogCiAgICAgICAgIGVtaXRJc1VuZGVmaW5lZCgpIHNob3VsZCBub3Qgc3BlY2lhbC1jYXNlIFtb
SXNIVE1MRERBXV0gb2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9C
eXRlY29kZUxpc3QucmIKaW5kZXggNTg3ODQ1ZmQ1MGUzMmViZmJlZTZkYmQ4ZDZlZjEwNTk0YWIz
ZDFjNS4uNWM2ZDkyOGRhOWI4NzM1YjVjMzFiMGQxZWVlNzVjNGIxNjMwYTRkOSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC0zMzMsNyAr
MzMzLDcgQEAgb3BfZ3JvdXAgOlVuYXJ5T3AsCiAgICAgICAgIDppc19udW1iZXIsCiAgICAgICAg
IDppc19iaWdfaW50LAogICAgICAgICA6aXNfb2JqZWN0LAotICAgICAgICA6aXNfb2JqZWN0X29y
X251bGwsCisgICAgICAgIDp0eXBlb2ZfaXNfb2JqZWN0LAogICAgICAgICA6aXNfZnVuY3Rpb24s
CiAgICAgICAgIDppc19jb25zdHJ1Y3RvciwKICAgICBdLApkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKaW5kZXggNWY1ODY1OGEyZTZiMWU0
NDZkODNhMjEwMDAyODUzZWIyMzhjYzQxYi4uZjU4YTM1Yzc5ODIyMjkyOWU4MDg3YjQ2YmRkM2Zk
MWJhMDI5MGYzYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5
dGVjb2RlVXNlRGVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0
ZWNvZGVVc2VEZWYuY3BwCkBAIC0xODgsNyArMTg4LDcgQEAgdm9pZCBjb21wdXRlVXNlc0ZvckJ5
dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVyLCBjb25zdCBJbnN0
cnUKICAgICBVU0VTKE9wSXNOdW1iZXIsIG9wZXJhbmQpCiAgICAgVVNFUyhPcElzQmlnSW50LCBv
cGVyYW5kKQogICAgIFVTRVMoT3BJc09iamVjdCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNPYmpl
Y3RPck51bGwsIG9wZXJhbmQpCisgICAgVVNFUyhPcFR5cGVvZklzT2JqZWN0LCBvcGVyYW5kKQog
ICAgIFVTRVMoT3BJc0NlbGxXaXRoVHlwZSwgb3BlcmFuZCkKICAgICBVU0VTKE9wSXNGdW5jdGlv
biwgb3BlcmFuZCkKICAgICBVU0VTKE9wSXNDb25zdHJ1Y3Rvciwgb3BlcmFuZCkKQEAgLTQ5NSw3
ICs0OTUsNyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwodW5zaWduZWQg
bnVtVmFycywgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydQogICAgIERFRlMoT3BJc051bWJlciwg
ZHN0KQogICAgIERFRlMoT3BJc0JpZ0ludCwgZHN0KQogICAgIERFRlMoT3BJc09iamVjdCwgZHN0
KQotICAgIERFRlMoT3BJc09iamVjdE9yTnVsbCwgZHN0KQorICAgIERFRlMoT3BUeXBlb2ZJc09i
amVjdCwgZHN0KQogICAgIERFRlMoT3BJc0NlbGxXaXRoVHlwZSwgZHN0KQogICAgIERFRlMoT3BJ
c0Z1bmN0aW9uLCBkc3QpCiAgICAgREVGUyhPcElzQ29uc3RydWN0b3IsIGRzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3Iu
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRv
ci5jcHAKaW5kZXggNjgwNmYzOTU1NmNhZDE1ZThmNzNkY2Q1YTRkZDU3ODQ3ZjZhZGMzZi4uODM3
N2UzZGIxNzU4YTcxY2Q2ODQ2ODI2MTgxNDE2ODYzODJhY2QxZCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAK
QEAgLTE3MTUsNyArMTcxNSw3IEBAIGJvb2wgQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRFcXVhbGl0
eU9wSW1wbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHNyYzEsIFJlCiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIm9iamVjdCIpIHsKICAgICAgICAgICAgICAg
ICByZXdpbmQoKTsKLSAgICAgICAgICAgICAgICBPcElzT2JqZWN0T3JOdWxsOjplbWl0KHRoaXMs
IGRzdCwgb3AubV92YWx1ZSk7CisgICAgICAgICAgICAgICAgT3BUeXBlb2ZJc09iamVjdDo6ZW1p
dCh0aGlzLCBkc3QsIG9wLm1fdmFsdWUpOwogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHZhbHVlID09ICJmdW5jdGlvbiIpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2Vu
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNw
cAppbmRleCBmOTZlMWMzNTI1MDFiMjE3ZmU5MGNhOGE4ZjA4MzkxNzU0NWFhZWMyLi4xMDY0NDMz
YjVmNWY3NmI1ZTEyZmE0NGExZWZkNzU3YjE1YjQ1YTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCkBAIC00ODkyLDIzICs0
ODkyLDE5IEBAIFJlZ2lzdGVySUQqIENsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29k
ZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklECiAKICAgICAgICAgUmVmUHRyPFJlZ2lz
dGVySUQ+IHRlbXBSZWdpc3RlciA9IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKTsKIAotICAgICAg
ICBSZWY8TGFiZWw+IHN1cGVyY2xhc3NJc1VuZGVmaW5lZExhYmVsID0gZ2VuZXJhdG9yLm5ld0xh
YmVsKCk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdElz
VW5kZWZpbmVkKHRlbXBSZWdpc3Rlci5nZXQoKSwgc3VwZXJjbGFzcy5nZXQoKSksIHN1cGVyY2xh
c3NJc1VuZGVmaW5lZExhYmVsLmdldCgpKTsKLQogICAgICAgICBSZWY8TGFiZWw+IHN1cGVyY2xh
c3NJc051bGxMYWJlbCA9IGdlbmVyYXRvci5uZXdMYWJlbCgpOwogICAgICAgICBnZW5lcmF0b3Iu
ZW1pdEp1bXBJZlRydWUoZ2VuZXJhdG9yLmVtaXRJc051bGwodGVtcFJlZ2lzdGVyLmdldCgpLCBz
dXBlcmNsYXNzLmdldCgpKSwgc3VwZXJjbGFzc0lzTnVsbExhYmVsLmdldCgpKTsKIAogICAgICAg
ICBSZWY8TGFiZWw+IHN1cGVyY2xhc3NJc0NvbnN0cnVjdG9yTGFiZWwgPSBnZW5lcmF0b3IubmV3
TGFiZWwoKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGdlbmVyYXRvci5lbWl0
SXNDb25zdHJ1Y3Rvcih0ZW1wUmVnaXN0ZXIuZ2V0KCksIHN1cGVyY2xhc3MuZ2V0KCkpLCBzdXBl
cmNsYXNzSXNDb25zdHJ1Y3RvckxhYmVsLmdldCgpKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRM
YWJlbChzdXBlcmNsYXNzSXNVbmRlZmluZWRMYWJlbC5nZXQoKSk7CiAgICAgICAgIGdlbmVyYXRv
ci5lbWl0VGhyb3dUeXBlRXJyb3IoIlRoZSBzdXBlcmNsYXNzIGlzIG5vdCBhIGNvbnN0cnVjdG9y
LiJfcyk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0TGFiZWwoc3VwZXJjbGFzc0lzQ29uc3RydWN0
b3JMYWJlbC5nZXQoKSk7CiAgICAgICAgIGdlbmVyYXRvci5lbWl0R2V0QnlJZChwcm90b1BhcmVu
dC5nZXQoKSwgc3VwZXJjbGFzcy5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5TmFtZXMoKS5wcm90
b3R5cGUpOwogCiAgICAgICAgIFJlZjxMYWJlbD4gcHJvdG9QYXJlbnRJc09iamVjdE9yTnVsbExh
YmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElm
VHJ1ZShnZW5lcmF0b3IuZW1pdFVuYXJ5T3A8T3BJc09iamVjdE9yTnVsbD4odGVtcFJlZ2lzdGVy
LmdldCgpLCBwcm90b1BhcmVudC5nZXQoKSksIHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJl
bC5nZXQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1p
dFVuYXJ5T3A8T3BJc0Z1bmN0aW9uPih0ZW1wUmVnaXN0ZXIuZ2V0KCksIHByb3RvUGFyZW50Lmdl
dCgpKSwgcHJvdG9QYXJlbnRJc09iamVjdE9yTnVsbExhYmVsLmdldCgpKTsKLSAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXRUaHJvd1R5cGVFcnJvcigiVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3Mg
cHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QuIl9zKTsKKyAgICAgICAgZ2VuZXJh
dG9yLmVtaXRKdW1wSWZUcnVlKGdlbmVyYXRvci5lbWl0SXNPYmplY3QodGVtcFJlZ2lzdGVyLmdl
dCgpLCBwcm90b1BhcmVudC5nZXQoKSksIHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJlbC5n
ZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdElz
TnVsbCh0ZW1wUmVnaXN0ZXIuZ2V0KCksIHByb3RvUGFyZW50LmdldCgpKSwgcHJvdG9QYXJlbnRJ
c09iamVjdE9yTnVsbExhYmVsLmdldCgpKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRUaHJvd1R5
cGVFcnJvcigiVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5
IGlzIG5vdCBhbiBvYmplY3Qgb3IgbnVsbC4iX3MpOwogICAgICAgICBnZW5lcmF0b3IuZW1pdExh
YmVsKHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJlbC5nZXQoKSk7CiAKICAgICAgICAgZ2Vu
ZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGNvbnN0cnVjdG9yLmdldCgpLCBnZW5lcmF0b3IucHJv
cGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90bywgc3VwZXJjbGFzcy5nZXQoKSwgUHJvcGVydHlO
b2RlOjpVbmtub3duKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCA2MjBlZDRkMDg1MTM3YjgwZDBm
ZGQ3NTJkOGY1Y2VlNWFhMGFiYWU3Li5mZjQyNzM4NGE0YWRiNzY5ZmVhMDYyMTUyYjEwMzg0ZWMz
MjY4NmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0
SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0xNDU2LDcgKzE0NTYsNyBAQCBib29sIEFi
c3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNp
Z25lZCBjbG9iYmVyTGltaQogICAgIGNhc2UgSXNCaWdJbnQ6CiAgICAgY2FzZSBOdW1iZXJJc0lu
dGVnZXI6CiAgICAgY2FzZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgorICAg
IGNhc2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgIGNhc2UgSXND
b25zdHJ1Y3RvcjoKICAgICBjYXNlIElzQ2VsbFdpdGhUeXBlOgpAQCAtMTQ5MiwxOCArMTQ5Miwx
NSBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAgICAgICAgY2FzZSBJc09iamVjdDoK
ICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oY2hpbGQudmFsdWUo
KS5pc09iamVjdCgpKSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
IElzT2JqZWN0T3JOdWxsOgorICAgICAgICAgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKICAgICAg
ICAgICAgICAgICBpZiAoY2hpbGQudmFsdWUoKS5pc09iamVjdCgpKSB7CiAgICAgICAgICAgICAg
ICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChjaGlsZC52YWx1ZSgpKTsKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKG9iamVjdC0+dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKQorICAg
ICAgICAgICAgICAgICAgICBpZiAob2JqZWN0LT5zdHJ1Y3R1cmUobV92bSktPm1hc3F1ZXJhZGVz
QXNVbmRlZmluZWQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2Vt
YW50aWMpKSkKICAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9v
bGVhbihmYWxzZSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlIGlmICghKG9iamVjdC0+aW5s
aW5lVHlwZUZsYWdzKCkgJiBPdmVycmlkZXNHZXRDYWxsRGF0YSkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oIWNoaWxkLnZhbHVlKCkuYXNDZWxs
KCktPnN0cnVjdHVyZShtX3ZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChtX2NvZGVCbG9jay0+
Z2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRpYykpKSk7Ci0gICAgICAgICAgICAg
ICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgY291
bGQganVzdCBjYWxsIGdldENhbGxEYXRhLgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1NwotICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3RhbnRXYXNTZXQgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChvYmplY3QtPmlzQ2FsbGFibGUobV92bSkp
CisgICAgICAgICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oZmFs
c2UpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICAgICAg
c2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKHRydWUpKTsKICAgICAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGNoaWxk
LnZhbHVlKCkuaXNOdWxsKCkpKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTE2ODgsNyAr
MTY4NSw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4
ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAKICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgor
ICAgICAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAgICAgICAgICAgLy8gRklYTUU6IFVzZSB0
aGUgbWFzcXVlcmFkZXMtYXMtdW5kZWZpbmVkIHdhdGNocG9pbnQgdGhpbmd5LgogICAgICAgICAg
ICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1NgogICAg
ICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJz
ZXIuY3BwCmluZGV4IGFjNDc3NTg0YjQ4NzA1ZTczMTE0N2Y4ZGNmMGRmNzc0MTg0YWRiMzEuLjVm
MTY0NzgxMGEzZTYzYWQ1YzQxM2Q5NWQ5ZTRjZDFmNzU2NWI1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCkBAIC01Nzg4LDExICs1Nzg4
LDExIEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2sodW5zaWduZWQgbGltaXQpCiAg
ICAgICAgICAgICBORVhUX09QQ09ERShvcF9pc19vYmplY3QpOwogICAgICAgICB9CiAKLSAgICAg
ICAgY2FzZSBvcF9pc19vYmplY3Rfb3JfbnVsbDogewotICAgICAgICAgICAgYXV0byBieXRlY29k
ZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BJc09iamVjdE9yTnVsbD4oKTsKKyAgICAgICAg
Y2FzZSBvcF90eXBlb2ZfaXNfb2JqZWN0OiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0g
Y3VycmVudEluc3RydWN0aW9uLT5hczxPcFR5cGVvZklzT2JqZWN0PigpOwogICAgICAgICAgICAg
Tm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUubV9vcGVyYW5kKTsKLSAgICAgICAgICAgIHNldChi
eXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChJc09iamVjdE9yTnVsbCwgdmFsdWUpKTsKLSAgICAg
ICAgICAgIE5FWFRfT1BDT0RFKG9wX2lzX29iamVjdF9vcl9udWxsKTsKKyAgICAgICAgICAgIHNl
dChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChUeXBlT2ZJc09iamVjdCwgdmFsdWUpKTsKKyAg
ICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX3R5cGVvZl9pc19vYmplY3QpOwogICAgICAgICB9CiAK
ICAgICAgICAgY2FzZSBvcF9pc19mdW5jdGlvbjogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDFjNmM2NmY4MDIzNWNmOTY5ZWJiMjMxNjE5
M2NkODM0NzBkOGM0MzUuLmZmNWJiYTkyNmY4MTU4ZjJmMjBjMDI3OWM1MjFhNTgzOTAyM2QxOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAKQEAg
LTE0OSw3ICsxNDksNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29kZUlE
IG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgY29uc3QgSQogICAgIGNhc2Ugb3BfaXNf
bnVtYmVyOgogICAgIGNhc2Ugb3BfaXNfYmlnX2ludDoKICAgICBjYXNlIG9wX2lzX29iamVjdDoK
LSAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgorICAgIGNhc2Ugb3BfdHlwZW9mX2lzX29i
amVjdDoKICAgICBjYXNlIG9wX2lzX2NlbGxfd2l0aF90eXBlOgogICAgIGNhc2Ugb3BfaXNfZnVu
Y3Rpb246CiAgICAgY2FzZSBvcF9pc19jb25zdHJ1Y3RvcjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggMzE4YWQ2YjUwZDRhZWE2ZDM0M2U0NGJmNGE3MDI3
NmNhNGZmNWNkZS4uZWQyOGE1ZTBmZmM1NDJjZDlhODJjMTM2MDlkNjQ3MWU4MDUxNTVlYiAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKQEAgLTU5Miw5ICs1OTIs
OSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBjb25zdCBSZWFk
RnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICB3cml0ZShIZWFwT2JqZWN0Q291
bnQpOwogICAgICAgICByZXR1cm47CiAKLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgorICAgIGNh
c2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxkcyk7Ci0gICAgICAgIGRl
ZihIZWFwTG9jYXRpb24oSXNPYmplY3RPck51bGxMb2MsIE1pc2NGaWVsZHMsIG5vZGUtPmNoaWxk
MSgpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICBkZWYoSGVhcExvY2F0aW9uKFR5cGVPZklz
T2JqZWN0TG9jLCBNaXNjRmllbGRzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIElzRnVuY3Rpb246CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNzNjNzhlMzc1Yjk4OWVlZGUxZmJj
YmZkMTNmZDQ2ZDdlZDBmMmUyMC4uNmFkYmYyNzA0ZDhkYjlmMWYyOWI1MDk4ZjdhZGEzODM4NTBk
MTc4YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcApAQCAtMTUwLDcg
KzE1MCw3IEBAIGJvb2wgZG9lc0dDKEdyYXBoJiBncmFwaCwgTm9kZSogbm9kZSkKICAgICBjYXNl
IElzQmlnSW50OgogICAgIGNhc2UgTnVtYmVySXNJbnRlZ2VyOgogICAgIGNhc2UgSXNPYmplY3Q6
Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAg
IGNhc2UgSXNGdW5jdGlvbjoKICAgICBjYXNlIElzQ29uc3RydWN0b3I6CiAgICAgY2FzZSBJc0Nl
bGxXaXRoVHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4
dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3Bw
CmluZGV4IDkwZTliMTM0ZWVhMDIxODk3NDNjZjE0MWE3ZDlhNmYyZTcxNmIwNDMuLmYwNTA2YzVl
ZTFmMDVlYmRhODlmZjI1NWNiYTFlZTcxNGM1MDUzOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMjcxOCw3ICsyNzE4LDcgQEAgcHJpdmF0ZToK
ICAgICAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgICAgIGNhc2UgSXNOdW1iZXI6CiAgICAgICAg
IGNhc2UgSXNCaWdJbnQ6Ci0gICAgICAgIGNhc2UgSXNPYmplY3RPck51bGw6CisgICAgICAgIGNh
c2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgICAgIGNhc2UgSXNGdW5jdGlvbjoKICAgICAgICAgY2Fz
ZSBJc0NvbnN0cnVjdG9yOgogICAgICAgICBjYXNlIENyZWF0ZURpcmVjdEFyZ3VtZW50czoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAppbmRleCBiMjAz
ZDllYTMwMjQwNjNiYTY5NWI1NzhjNmZmYTM2NGY2OWE5ZDNiLi5kY2Y4YmJmZDlkYTExMjY3OGQy
MzEwMDE1YzQ3YzY3NTY2NTg4M2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdIZWFwTG9jYXRpb24uY3BwCkBAIC02Miw4ICs2Miw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQ
cmludFN0cmVhbSYgb3V0LCBMb2NhdGlvbktpbmQga2luZCkKICAgICAgICAgb3V0LnByaW50KCJJ
bnZhbGlkYXRpb25Qb2ludExvYyIpOwogICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIGNh
c2UgSXNPYmplY3RPck51bGxMb2M6Ci0gICAgICAgIG91dC5wcmludCgiSXNPYmplY3RPck51bGxM
b2MiKTsKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0TG9jOgorICAgICAgICBvdXQucHJpbnQoIlR5
cGVPZklzT2JqZWN0TG9jIik7CiAgICAgICAgIHJldHVybjsKIAogICAgIGNhc2UgSXNGdW5jdGlv
bkxvYzoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0
aW9uLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCmluZGV4
IDQ0NDI5YTY3YjZmNTIxOGRkMGFjY2M5MzRiNzc2NGFlYjhkNWQ3ODAuLmFlNGVlZDZiNzAxMzYw
NjAyNjE4OWJhZmZmMjQ3MTA3NzFhOTM1NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdIZWFwTG9jYXRpb24uaApAQCAtNTYsNyArNTYsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7
CiAgICAgSW52YWxpZGF0aW9uUG9pbnRMb2MsCiAgICAgSXNGdW5jdGlvbkxvYywKICAgICBJc0Nv
bnN0cnVjdG9yTG9jLAotICAgIElzT2JqZWN0T3JOdWxsTG9jLAorICAgIFR5cGVPZklzT2JqZWN0
TG9jLAogICAgIE5hbWVkUHJvcGVydHlMb2MsCiAgICAgUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9j
LAogICAgIFNldHRlckxvYywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHTm9kZVR5cGUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApp
bmRleCBlMmM0OGFlZTVmMGRhOTI4YmE5NDA1OGUxNDFjM2U1ZWQ3Y2U0NTZmLi4wZDNkMWQyNjdh
NTY0MGYwMjYxZDdiNjE0MmY2NzMxM2IwMDQ4M2VlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdOb2RlVHlwZS5oCkBAIC00MDAsNyArNDAwLDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogICAgIG1hY3JvKElzQmlnSW50LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAg
IG1hY3JvKE51bWJlcklzSW50ZWdlciwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJ
c09iamVjdCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKLSAgICBtYWNybyhJc09iamVjdE9yTnVsbCwg
Tm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAgICBtYWNybyhUeXBlT2ZJc09iamVjdCwgTm9kZVJlc3Vs
dEJvb2xlYW4pIFwKICAgICBtYWNybyhJc0Z1bmN0aW9uLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAog
ICAgIG1hY3JvKElzQ29uc3RydWN0b3IsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8o
SXNUeXBlZEFycmF5VmlldywgTm9kZVJlc3VsdEJvb2xlYW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IDU4ZmRhOWIzMjcwN2NlYjllODVlNjYx
M2RkNjUwNGMyYTQ1YTA0ZjguLmFhYWY4OTA4YjBmNGZkYzRmY2ZhNzg5NTRlN2NlOTljZWE5ZTM1
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAt
MjEwMyw3ICsyMTAzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVJl
c3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIKICAgICByZXR1cm4gY29u
c3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50c1RvQ29weVJlZ2lv
biwgYXJyYXlTaXplKTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0
SXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpCitz
aXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc09iamVjdChKU0dsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxP
YmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJB
TUUodm0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRp
b25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBh
MzhjNmRkYzlhMzY3ZjMyYzExODI2ZjI5ZTY0NTFiODY0YTE1ODcxLi45NjY3M2JiOWRkOTUwYjRl
MzdjN2VjYWM3NjA3YjA2MDZmODRiN2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaApAQCAtMjEzLDcgKzIxMyw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBv
cGVyYXRpb25NYXBTZXQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwK
IHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRpb25XZWFrU2V0QWRkKFZNKiwgSlNDZWxsKiwgSlND
ZWxsKiwgaW50MzJfdCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlv
bldlYWtNYXBTZXQoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJf
dCkgV1RGX0lOVEVSTkFMOwogZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRk1vZE9uSW50
cyhpbnQzMl90LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBv
cGVyYXRpb25PYmplY3RJc09iamVjdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKK3NpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xv
YmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uT2JqZWN0SXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9J
TlRFUk5BTDsKIHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklzQ29uc3RydWN0b3IoSlNH
bG9iYWxPYmplY3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRf
T1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZk9iamVjdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCop
IFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
UHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggZDEwNzZkNGU5MTRlNzA1
ODg3NWI0NTI2ZTRjNDNkOGRjMzJjY2YyYS4uMTBhNTk5Njc3NTllYmVlNzg0ZDc5YTdlZmJmZTMy
NTkyYjgxNWFhNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEwMzgsNyArMTAzOCw3IEBA
IHByaXZhdGU6CiAgICAgICAgIGNhc2UgSXNCaWdJbnQ6CiAgICAgICAgIGNhc2UgTnVtYmVySXNJ
bnRlZ2VyOgogICAgICAgICBjYXNlIElzT2JqZWN0OgotICAgICAgICBjYXNlIElzT2JqZWN0T3JO
dWxsOgorICAgICAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAgICAgICBjYXNlIElzRnVuY3Rp
b246CiAgICAgICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAgICAgICAgY2FzZSBJc0NlbGxXaXRo
VHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhl
Y3V0ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKaW5k
ZXggMDQwZDNmM2NjOGQ0YjQxOTc3MmM5YTFhZDY4YjZlNGJkOTIzNzkxZi4uZmY4ODQxNjllODE4
YjVhMWVhMmZmOTQzZTEyOGY3NmZkYTU2MzBjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgKQEAgLTI2Myw3ICsyNjMsNyBAQCBib29sIHNhZmVUb0V4
ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUs
IGJvb2wgaWdubwogICAgIGNhc2UgSXNCaWdJbnQ6CiAgICAgY2FzZSBOdW1iZXJJc0ludGVnZXI6
CiAgICAgY2FzZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgorICAgIGNhc2Ug
VHlwZU9mSXNPYmplY3Q6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgIGNhc2UgSXNDb25zdHJ1
Y3RvcjoKICAgICBjYXNlIElzQ2VsbFdpdGhUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAppbmRleCBmYzQxMWUzNjNjYTJiZjI2ODg4Njll
MGExZDQ0MjFiNTRjY2EzYmUzLi4xNjkxMWEyNzgzMDExMDU5NmI5MjA5NjI3ZmQ3YmI4YWVjNmY0
YjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
LmNwcApAQCAtOTQ5Niw3ICs5NDk2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlz
T2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgdW5ibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIs
IG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNPYmplY3RPck51bGwo
Tm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVjdChO
b2RlKiBub2RlKQogewogICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ppdC5n
cmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpOwogICAgIApAQCAt
OTUzMSw3ICs5NTMxLDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0T3JO
dWxsKE5vZGUqIG5vZGUpCiAgICAgCiAgICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAg
IHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25PYmpl
Y3RJc09iamVjdCwgcmVzdWx0R1BSLCBnbG9iYWxPYmplY3QsCisgICAgICAgICAgICBzbG93UGF0
aCwgdGhpcywgb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QsIHJlc3VsdEdQUiwgZ2xvYmFsT2JqZWN0
LAogICAgICAgICAgICAgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSkpOwogICAgIAogICAgIGRvbmUu
bGluaygmbV9qaXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5oCmluZGV4IDY2MjVkNjM5NmE1ZWVkZWFmZWQ1NmM2NDBmYTg3OWZjNGUxMWNjYTcuLmJk
NTYxY2VlYjhjNDg4NTJhODYxOGMyNWUwNzRmZGEzZjVhZTgyMTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKQEAgLTE0MDUsNyArMTQwNSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVSZWdFeHBUZXN0KE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVTdHJpbmdSZXBsYWNlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc09iamVjdChOb2Rl
Kik7Ci0gICAgdm9pZCBjb21waWxlSXNPYmplY3RPck51bGwoTm9kZSopOworICAgIHZvaWQgY29t
cGlsZVR5cGVPZklzT2JqZWN0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc0Z1bmN0aW9uKE5v
ZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc0NvbnN0cnVjdG9yKE5vZGUqKTsKICAgICB2b2lkIGNv
bXBpbGVUeXBlT2YoTm9kZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKaW5kZXggYTFmMzFhYjQ0OTFlMWMxNDc2OGU3MGI5
YjY1YWRmMmQwYzNiN2ZlMi4uNzc2NDJlOWIwYjFkODZmYzcyZmM1NGNmMTZkMTc1NGQwOThiNmM1
YyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJ
VDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklUMzJfNjQuY3BwCkBAIC0zNzE2LDggKzM3MTYsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpj
b21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgSXNP
YmplY3RPck51bGw6IHsKLSAgICAgICAgY29tcGlsZUlzT2JqZWN0T3JOdWxsKG5vZGUpOworICAg
IGNhc2UgVHlwZU9mSXNPYmplY3Q6IHsKKyAgICAgICAgY29tcGlsZVR5cGVPZklzT2JqZWN0KG5v
ZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCmluZGV4IDA2YTA4MWNhZGNlMmFmNDhhYTVl
ZjAzNWI5YzIxODRiMTdkYTY2MzIuLmE0ZThkMGU3ZWNhYjkxZjdlNjlmZmU0Zjc5YjAwM2Y3ODc1
NWY4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRp
dmVKSVQ2NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVDY0LmNwcApAQCAtNDY5MSw4ICs0NjkxLDggQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBjYXNlIElzT2Jq
ZWN0T3JOdWxsOiB7Ci0gICAgICAgIGNvbXBpbGVJc09iamVjdE9yTnVsbChub2RlKTsKKyAgICBj
YXNlIFR5cGVPZklzT2JqZWN0OiB7CisgICAgICAgIGNvbXBpbGVUeXBlT2ZJc09iamVjdChub2Rl
KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRs
L0ZUTENhcGFiaWxpdGllcy5jcHAKaW5kZXggOTZhN2YxNjQxNDYwYTUyZTgyNmU1YzkzN2NmY2Q4
NTRkMzliZDQyZS4uODNhZGJlMWUzYjA1NDVjZjFmMmU1MTNlMjBlNmEwNDViYWE1MWZlNSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcApAQCAtMjY0
LDcgKzI2NCw3IEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBub2Rl
KQogICAgIGNhc2UgSXNCaWdJbnQ6CiAgICAgY2FzZSBOdW1iZXJJc0ludGVnZXI6CiAgICAgY2Fz
ZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgorICAgIGNhc2UgVHlwZU9mSXNP
YmplY3Q6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAg
ICBjYXNlIElzVHlwZWRBcnJheVZpZXc6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZU
TExvd2VyREZHVG9CMy5jcHAKaW5kZXggODVkNDk5MTJlZGI4OWE5NTEyMDBiOWE4MjFkMjJhNGMw
ZWQyMmNlMy4uNzBjMWJhODU1ZWMyNTQ4N2U5YjA1YzNlMTA0ZjE0NWEyNGI2ZjU5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtMTQyNyw4
ICsxNDI3LDggQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJc09iamVjdDoKICAgICAgICAgICAg
IGNvbXBpbGVJc09iamVjdCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSXNP
YmplY3RPck51bGw6Ci0gICAgICAgICAgICBjb21waWxlSXNPYmplY3RPck51bGwoKTsKKyAgICAg
ICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKKyAgICAgICAgICAgIGNvbXBpbGVUeXBlT2ZJc09iamVj
dCgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSXNGdW5jdGlvbjoKICAgICAg
ICAgICAgIGNvbXBpbGVJc0Z1bmN0aW9uKCk7CkBAIC0xMTY1Miw3ICsxMTY1Miw3IEBAIHByaXZh
dGU6CiAgICAgICAgIHZtQ2FsbChWb2lkLCBvcGVyYXRpb25XZWFrTWFwU2V0LCBtX3ZtVmFsdWUs
IG1hcCwga2V5LCB2YWx1ZSwgaGFzaCk7CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlSXNPYmpl
Y3RPck51bGwoKQorICAgIHZvaWQgY29tcGlsZVR5cGVPZklzT2JqZWN0KCkKICAgICB7CiAgICAg
ICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVjdEZv
cihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIApAQCAtMTE2OTEsNyArMTE2OTEs
NyBAQCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgc2xvd1Jlc3VsdFZhbHVlID0gbGF6eVNsb3dQ
YXRoKAogICAgICAgICAgICAgWz0sICZ2bV0gKGNvbnN0IFZlY3RvcjxMb2NhdGlvbj4mIGxvY2F0
aW9ucykgLT4gUmVmUHRyPExhenlTbG93UGF0aDo6R2VuZXJhdG9yPiB7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGNyZWF0ZUxhenlDYWxsR2VuZXJhdG9yKHZtLAotICAgICAgICAgICAgICAgICAg
ICBvcGVyYXRpb25PYmplY3RJc09iamVjdCwgbG9jYXRpb25zWzBdLmRpcmVjdEdQUigpLAorICAg
ICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgbG9jYXRpb25zWzBdLmRp
cmVjdEdQUigpLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1Q
dHIoZ2xvYmFsT2JqZWN0KSwgbG9jYXRpb25zWzFdLmRpcmVjdEdQUigpKTsKICAgICAgICAgICAg
IH0sIHZhbHVlKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0LmFu
Y2hvcihtX291dC5ub3RaZXJvNjQoc2xvd1Jlc3VsdFZhbHVlKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0
L0pJVC5jcHAKaW5kZXggMjFhZDc2Y2YyMDQ1NGUyZjk4N2IwZjAwMjNmNTllYzAwYWZjOGFhYy4u
OGM0Nzk4ODkzODMzMjhiMjQyOTEyMGEwMjk0M2NmMTBhZDZlZGFiOCAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklULmNwcApAQCAtMjg2LDcgKzI4Niw3IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGls
ZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX1NMT1dfT1AoZ3JlYXRlcmVxKQogICAgICAgICBE
RUZJTkVfU0xPV19PUChpc19mdW5jdGlvbikKICAgICAgICAgREVGSU5FX1NMT1dfT1AoaXNfY29u
c3RydWN0b3IpCi0gICAgICAgIERFRklORV9TTE9XX09QKGlzX29iamVjdF9vcl9udWxsKQorICAg
ICAgICBERUZJTkVfU0xPV19PUCh0eXBlb2ZfaXNfb2JqZWN0KQogICAgICAgICBERUZJTkVfU0xP
V19PUCh0eXBlb2YpCiAgICAgICAgIERFRklORV9TTE9XX09QKHN0cmNhdCkKICAgICAgICAgREVG
SU5FX1NMT1dfT1AocHVzaF93aXRoX3Njb3BlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IGJiOGVmZDVkNjE4YzFjMDZh
ZTZiYjA0NWM0ODZjYWZhN2RkOThjZDQuLmE5YTdkZDRkZGRkY2UwZWEyNWQ3YzY0OTllYzYzMjY3
MzNiYWVkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9sbGludC9Mb3dMZXZl
bEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2
ZWxJbnRlcnByZXRlci5hc20KQEAgLTE3ODMsNyArMTc4Myw3IEBAIHNsb3dQYXRoT3AoaW5fYnlf
aWQpCiBzbG93UGF0aE9wKGluX2J5X3ZhbCkKIHNsb3dQYXRoT3AoaXNfZnVuY3Rpb24pCiBzbG93
UGF0aE9wKGlzX2NvbnN0cnVjdG9yKQotc2xvd1BhdGhPcChpc19vYmplY3Rfb3JfbnVsbCkKK3Ns
b3dQYXRoT3AodHlwZW9mX2lzX29iamVjdCkKIHNsb3dQYXRoT3AobGVzcykKIHNsb3dQYXRoT3Ao
bGVzc2VxKQogc2xvd1BhdGhPcChtb2QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAppbmRleCBmZGFjZTcyY2JmNTc2NThiODYyMTUwOTU0
ZGZjNmFiY2VkOThmYWUwLi5iMDI4OWY0NDJjMTFiMDE2ZjI5NWVjZjJiMjViMjNlNTJmYjZlZGQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0
aHMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRo
cy5jcHAKQEAgLTgwNCwxMSArODA0LDExIEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90eXBl
b2YpCiAgICAgUkVUVVJOKGpzVHlwZVN0cmluZ0ZvclZhbHVlKGdsb2JhbE9iamVjdCwgR0VUX0Mo
Ynl0ZWNvZGUubV92YWx1ZSkuanNWYWx1ZSgpKSk7CiB9CiAKLVNMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9pc19vYmplY3Rfb3JfbnVsbCkKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90eXBlb2Zf
aXNfb2JqZWN0KQogewogICAgIEJFR0lOKCk7Ci0gICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxP
cElzT2JqZWN0T3JOdWxsPigpOwotICAgIFJFVFVSTihqc0Jvb2xlYW4oanNJc09iamVjdFR5cGVP
ck51bGwoZ2xvYmFsT2JqZWN0LCBHRVRfQyhieXRlY29kZS5tX29wZXJhbmQpLmpzVmFsdWUoKSkp
KTsKKyAgICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wVHlwZW9mSXNPYmplY3Q+KCk7CisgICAg
UkVUVVJOKGpzQm9vbGVhbihqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0
ZWNvZGUubV9vcGVyYW5kKS5qc1ZhbHVlKCkpKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3df
cGF0aF9pc19mdW5jdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0NvbW1vblNsb3dQYXRocy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29t
bW9uU2xvd1BhdGhzLmgKaW5kZXggNjUzOGE1NTViMjVlZjA2ZTEwZDE3OWY1ZmFmNTg0YjcwNjIy
MWRkYS4uZGVjNTdiYmVjNTk0NzczOWU2NjBlNGM3Nzg1YmVjYmE1YzJmYzA3MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmgKQEAgLTI0Miw3
ICsyNDIsNyBAQCBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2JpdG9yKTsKIFNMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYml0eG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfdHlwZW9mKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNf
b2JqZWN0KTsKLVNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNfb2JqZWN0X29yX251
bGwpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2ZfaXNfb2JqZWN0KTsK
IFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNfZnVuY3Rpb24pOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19jb25zdHJ1Y3Rvcik7CiBTTE9XX1BBVEhfSElEREVO
X0RFQ0woc2xvd19wYXRoX2luX2J5X2lkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5jcHAKaW5kZXggOGE5ZmUwZDVmMTg3ZDU2MTNlNzU0NjM1YzU3ZjAzZTgz
OWJhOTNhMi4uNDViMWZhNTY5Yjk3ZWQ3MmUzMGVjYjRlNjIyNmRiMmZlZjY5NDY0NiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAKQEAgLTEwNiwyMyAr
MTA2LDE4IEBAIEpTVmFsdWUganNUeXBlU3RyaW5nRm9yVmFsdWUoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2KQogICAgIHJldHVybiBqc1R5cGVTdHJpbmdGb3JWYWx1ZShn
bG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCwgdik7CiB9CiAKLWJvb2wganNJc09iamVj
dFR5cGVPck51bGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2KQorYm9v
bCBqc1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUg
dikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7Ci0gICAgaWYgKCF2LmlzQ2Vs
bCgpKQotICAgICAgICByZXR1cm4gdi5pc051bGwoKTsKLQotICAgIEpTVHlwZSB0eXBlID0gdi5h
c0NlbGwoKS0+dHlwZSgpOwotICAgIGlmICh0eXBlID09IFN0cmluZ1R5cGUgfHwgdHlwZSA9PSBT
eW1ib2xUeXBlIHx8IHR5cGUgPT0gSGVhcEJpZ0ludFR5cGUpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICBpZiAodHlwZSA+PSBPYmplY3RUeXBlKSB7Ci0gICAgICAgIGlmIChhc09iamVjdCh2
KS0+c3RydWN0dXJlKHZtKS0+bWFzcXVlcmFkZXNBc1VuZGVmaW5lZChnbG9iYWxPYmplY3QpKQot
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICh2LmlzT2JqZWN0KCkpIHsKICAgICAg
ICAgSlNPYmplY3QqIG9iamVjdCA9IGFzT2JqZWN0KHYpOworICAgICAgICBpZiAob2JqZWN0LT5z
dHJ1Y3R1cmUodm0pLT5tYXNxdWVyYWRlc0FzVW5kZWZpbmVkKGdsb2JhbE9iamVjdCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIGlmIChvYmplY3QtPmlzQ2FsbGFibGUodm0p
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHYuaXNOdWxsKCk7CiB9CiAKIHNpemVfdCBu
b3JtYWxpemVQcm90b3R5cGVDaGFpbihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0Nl
bGwqIGJhc2UsIGJvb2wmIHNhd1BvbHlQcm90bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL09wZXJhdGlvbnMuaAppbmRleCBmMDg1NmE0YzE1YzQwNDcwOTdkNDkwNTQ1MDVjOWVjM2Fi
MGYyODk3Li5jMGQzOTI4ZjhhNjhhYWM3NjRlMzM0NzBiYzNiMGY0NzYwMTJmY2U5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBKU0MgewogTkVWRVJfSU5MSU5FIEpTVmFsdWUganNBZGRTbG93Q2FzZShKU0ds
b2JhbE9iamVjdCosIEpTVmFsdWUsIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVTdHJpbmdGb3JW
YWx1ZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVTdHJpbmdGb3JW
YWx1ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci1ib29sIGpzSXNPYmplY3RUeXBl
T3JOdWxsKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Citib29sIGpzVHlwZW9mSXNPYmplY3Qo
SlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKIHNpemVfdCBub3JtYWxpemVQcm90b3R5cGVDaGFp
bihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGJvb2wmIHNhd1BvbHlQcm90byk7CiAKIEFMV0FZ
U19JTkxJTkUgSlNTdHJpbmcqIGpzU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IGNvbnN0IFN0cmluZyYgdTEsIEpTU3RyaW5nKiBzMikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwNWIyMDUzY2RkNWZhODRl
MmYxNzJkMGI1NjdkYTIyMzE0YjZlMmI1Li4wMmQzNDFhODI1YTc3MzVhZTY1NTcxNTdkODYwZmI0
MzM4Y2QyZjE0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDctMTggIEFsZXhleSBTaHZh
eWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFJlbW92ZSBPcElzT2JqZWN0
T3JOdWxsIGZyb20gQ2xhc3NFeHByTm9kZTo6ZW1pdEJ5dGVjb2RlKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDUyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5ldyB0ZXN0cyBhcmUgYWRkZWQgZm9y
IGBkb2N1bWVudC5hbGxgIHJhdGhlciB0aGFuIGBtYWtlTWFzcXVlcmFkZXIoKWAgc2luY2UKKyAg
ICAgICAgdGhlIGxhdHRlciBoYXMgc3VmZmljaWVudCB0ZXN0IGNvdmVyYWdlIGFuZCB0YWtlcyB0
aGUgc2hvcnQgcGF0aCBhcyBKU0Z1bmN0aW9uLgorCisgICAgICAgICoganMvY2xhc3Mtc3ludGF4
LWV4dGVuZHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9kb2N1bWVudC1hbGwtY2xh
c3MtZXh0ZW5kcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9kb2N1bWVu
dC1hbGwtY2xhc3MtZXh0ZW5kcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vZG9jdW1l
bnQtYWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGpzL2RvbS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVu
ZHMuanM6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxs
LXR5cGVvZi1pcy1vYmplY3QtZm9sZC5qczogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRl
c3RzL2NsYXNzLXN5bnRheC1leHRlbmRzLmpzOgorCiAyMDIwLTA3LTE3ICBMYXVybyBNb3VyYSAg
PGxtb3VyYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gR2FyZGVuIGltYWdlYml0
bWFwLXJlbmRlcmluZyBjb250ZXh0IGZhaWx1cmVzIGFmdGVyIHIyNjQ0NTkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1leHRlbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1leHRlbmRzLWV4cGVjdGVkLnR4dAppbmRleCA0OGRlMmI5
OGQwZjgyZjA2NjU2MDhmNmQxM2UwMDNjNThhNWNiNGJkLi5lZGE0OGRiOTY0OGVlOTMwOWM3NzU3
YjEzYmVlODhiMzk1OTNjODRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50
YXgtZXh0ZW5kcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4
LWV4dGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0yNiw5ICsyNiw5IEBAIFBBU1MgeC5fX3Byb3RvX186
OjpGdW5jdGlvbi5wcm90b3R5cGUKIFBBU1MgeCA9IGNsYXNzIGV4dGVuZHMgMyB7IGNvbnN0cnVj
dG9yKCkgeyB9IH07IHguX19wcm90b19fOjo6VHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBu
b3QgYSBjb25zdHJ1Y3Rvci4KIFBBU1MgeCA9IGNsYXNzIGV4dGVuZHMgImFiYyIgeyBjb25zdHJ1
Y3RvcigpIHsgfSB9OyB4Ll9fcHJvdG9fXzo6OlR5cGVFcnJvcjogVGhlIHN1cGVyY2xhc3MgaXMg
bm90IGEgY29uc3RydWN0b3IuCiBQQVNTIGJhc2VXaXRoQmFkUHJvdG90eXBlID0gZnVuY3Rpb24g
KCkge307IGJhc2VXaXRoQmFkUHJvdG90eXBlLnByb3RvdHlwZSA9IDM7IG5ldyBiYXNlV2l0aEJh
ZFByb3RvdHlwZQotUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7
IGNvbnN0cnVjdG9yKCkgeyB9IH06OjpUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJj
bGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyB4ID0gY2xh
c3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH06OjpU
eXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0
eSBpcyBub3QgYW4gb2JqZWN0IG9yIG51bGwuCiBQQVNTIGJhc2VXaXRoQmFkUHJvdG90eXBlLnBy
b3RvdHlwZSA9ICJhYmMiCi1QQVNTIHggPSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJvdG90
eXBlIHsgY29uc3RydWN0b3IoKSB7IH0gfTo6OlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBz
dXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIHgg
PSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJvdG90eXBlIHsgY29uc3RydWN0b3IoKSB7IH0g
fTo6OlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHBy
b3BlcnR5IGlzIG5vdCBhbiBvYmplY3Qgb3IgbnVsbC4KIFBBU1MgYmFzZVdpdGhCYWRQcm90b3R5
cGUucHJvdG90eXBlID0gbnVsbDsgeCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5
cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9CiBQQVNTIHggPSAxOyBjID0gY2xhc3MgZXh0ZW5kcyAr
K3ggeyBjb25zdHJ1Y3RvcigpIHsgfSB9Ozo6OlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2Vu
ICcrKycKIFBBU1MgeCA9IDE7IGMgPSBjbGFzcyBleHRlbmRzIHgrKyB7IGNvbnN0cnVjdG9yKCkg
eyB9IH07Ojo6U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJysrJy4gRXhwZWN0ZWQgb3Bl
bmluZyAneycgYXQgdGhlIHN0YXJ0IG9mIGEgY2xhc3MgYm9keS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2pzL2RvbS9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjM3Yzk5ODRhZmNjMTJmYTJkYjc1ZTQ3NjA3YjE1YmNiYWZhNjlhYjIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4
dGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK2RvY3VtZW50LmFsbCB3b3JrcyBh
cyBzdXBlcmNsYXNzLnByb3RvdHlwZSwgYnV0IG5vdCBhcyBzdXBlcmNsYXNzCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RBc1N1cGVyY2xhc3NQcm90b3R5cGUoKSBp
cyB0cnVlCitQQVNTIGNsYXNzIEZvbyBleHRlbmRzIGRvY3VtZW50LmFsbCB7fSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4uCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hODViMWZiNjM1N2E4M2Y0Zjc2YjZjOGNjZDhkYzYwMTQ0MzU5MDBjCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRz
Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLWNs
YXNzLWV4dGVuZHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2Jq
ZWN0LWZvbGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMwMTk2MDUyZmUyNjU3Mjg3OTBhNTVk
NTRmODM1YWEyNTQwZTBlOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20v
ZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxMCBAQAordHlwZW9mIGRvY3VtZW50LmFsbCBpcyBuZXZlciAnb2JqZWN0JworCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0VHlwZW9mSXNPYmplY3QoKSBpcyB0cnVl
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0
LWZvbGQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2RvbS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9i
amVjdC1mb2xkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFjZDAxMWU2MWIzYTAyZThhY2RkMWI5YTkwNGNk
YWZmMWJhNGM0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9kb2N1bWVu
dC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2Ny
aXB0LXRlc3RzL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRzLmpzIGIvTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zZjExZmM1NmRjZWY2NzA0OTYwYzAyZTRiZGYwYTNmYjBiN2RjMTk4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1hbGwtY2xhc3Mt
ZXh0ZW5kcy5qcwpAQCAtMCwwICsxLDE4IEBACitkZXNjcmlwdGlvbigiZG9jdW1lbnQuYWxsIHdv
cmtzIGFzIHN1cGVyY2xhc3MucHJvdG90eXBlLCBidXQgbm90IGFzIHN1cGVyY2xhc3MiKTsKKwor
ZnVuY3Rpb24gdGVzdEFzU3VwZXJjbGFzc1Byb3RvdHlwZSgpIHsKKyAgICBmdW5jdGlvbiBCYXIo
KSB7fQorICAgIEJhci5wcm90b3R5cGUgPSBkb2N1bWVudC5hbGw7CisKKyAgICBmb3IgKGxldCBp
ID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgICAgIGNsYXNzIEZvbyBleHRlbmRzIEJhciB7fQor
CisgICAgICAgIGlmICghKG5ldyBGb28oKSBpbnN0YW5jZW9mIEJhcikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Nob3VsZEJlKCJ0
ZXN0QXNTdXBlcmNsYXNzUHJvdG90eXBlKCkiLCAidHJ1ZSIpOworc2hvdWxkVGhyb3coImNsYXNz
IEZvbyBleHRlbmRzIGRvY3VtZW50LmFsbCB7fSIsICInVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFz
cyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4nIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9k
b20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQuanMgYi9M
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2Jq
ZWN0LWZvbGQuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1ODZkODFmZGY4MzdmYTA0MDk4NWI5M2Y0MjZkMjRi
MGI1NDA2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC5qcwpAQCAtMCwwICsxLDE3IEBA
CitkZXNjcmlwdGlvbigidHlwZW9mIGRvY3VtZW50LmFsbCBpcyBuZXZlciAnb2JqZWN0JyIpOwor
Citjb25zdCBkb2N1bWVudEFsbCA9IGRvY3VtZW50LmFsbDsKK2Z1bmN0aW9uIHRlc3RUeXBlb2ZJ
c09iamVjdCgpIHsKKyAgICBsZXQgYWNjID0gMDsKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFl
NjsgKytpKQorICAgICAgICBhY2MgKz0gKHR5cGVvZiBkb2N1bWVudEFsbCA9PT0gIm9iamVjdCIp
OworCisgICAgaWYgKGFjYyAhPT0gMCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9y
IChsZXQgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAgICAgICAgYWNjICs9ICh0eXBlb2YgZG9jdW1l
bnRBbGwgIT09ICJvYmplY3QiKTsKKyAgICByZXR1cm4gYWNjID09PSAxZTY7Cit9CisKK3Nob3Vs
ZEJlKCJ0ZXN0VHlwZW9mSXNPYmplY3QoKSIsICJ0cnVlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4dGVuZHMuanMgYi9MYXlvdXRUZXN0
cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4dGVuZHMuanMKaW5kZXggNDg3NTc0OTNj
MDgyNzdmMTkwNGM2M2EyYzcxNDk1N2ZmOTExNjNkZS4uYWNiNDAxN2FlNDQ0MWI2YzE3MGUyNDc0
NDVlMWZiNDVjYTU2ODM1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3Rz
L2NsYXNzLXN5bnRheC1leHRlbmRzLmpzCisrKyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9jbGFzcy1zeW50YXgtZXh0ZW5kcy5qcwpAQCAtODEsOSArODEsOSBAQCBzaG91bGRCZSgneC5f
X3Byb3RvX18nLCAnRnVuY3Rpb24ucHJvdG90eXBlJyk7CiBzaG91bGRUaHJvdygneCA9IGNsYXNz
IGV4dGVuZHMgMyB7IGNvbnN0cnVjdG9yKCkgeyB9IH07IHguX19wcm90b19fJywgJyJUeXBlRXJy
b3I6IFRoZSBzdXBlcmNsYXNzIGlzIG5vdCBhIGNvbnN0cnVjdG9yLiInKTsKIHNob3VsZFRocm93
KCd4ID0gY2xhc3MgZXh0ZW5kcyAiYWJjIiB7IGNvbnN0cnVjdG9yKCkgeyB9IH07IHguX19wcm90
b19fJywgJyJUeXBlRXJyb3I6IFRoZSBzdXBlcmNsYXNzIGlzIG5vdCBhIGNvbnN0cnVjdG9yLiIn
KTsKIHNob3VsZE5vdFRocm93KCdiYXNlV2l0aEJhZFByb3RvdHlwZSA9IGZ1bmN0aW9uICgpIHt9
OyBiYXNlV2l0aEJhZFByb3RvdHlwZS5wcm90b3R5cGUgPSAzOyBuZXcgYmFzZVdpdGhCYWRQcm90
b3R5cGUnKTsKLXNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3Rv
dHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH0nLCAnIlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRo
ZSBzdXBlcmNsYXNzXCdzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0LiInKTsK
K3Nob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNv
bnN0cnVjdG9yKCkgeyB9IH0nLCAnIlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNs
YXNzXCdzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0IG9yIG51bGwuIicpOwog
c2hvdWxkTm90VGhyb3coJ2Jhc2VXaXRoQmFkUHJvdG90eXBlLnByb3RvdHlwZSA9ICJhYmMiJyk7
Ci1zaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBj
b25zdHJ1Y3RvcigpIHsgfSB9JywgJyJUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJj
bGFzc1wncyBwcm90b3R5cGUgcHJvcGVydHkgaXMgbm90IGFuIG9iamVjdC4iJyk7CitzaG91bGRU
aHJvdygneCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3Rv
cigpIHsgfSB9JywgJyJUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzc1wncyBw
cm90b3R5cGUgcHJvcGVydHkgaXMgbm90IGFuIG9iamVjdCBvciBudWxsLiInKTsKIHNob3VsZE5v
dFRocm93KCdiYXNlV2l0aEJhZFByb3RvdHlwZS5wcm90b3R5cGUgPSBudWxsOyB4ID0gY2xhc3Mg
ZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH0nKTsKIAog
c2hvdWxkVGhyb3coJ3ggPSAxOyBjID0gY2xhc3MgZXh0ZW5kcyArK3ggeyBjb25zdHJ1Y3Rvcigp
IHsgfSB9OycpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404924</attachid>
            <date>2020-07-22 08:33:50 -0700</date>
            <delta_ts>2020-08-16 11:59:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214525-20200722183349.patch</filename>
            <type>text/plain</type>
            <size>32796</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc3IEBA
CisyMDIwLTA3LTIyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgT3BJc09iamVjdE9yTnVsbCBmcm9tIENsYXNzRXhwck5vZGU6OmVtaXRC
eXRlY29kZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQ1MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoOgorCisgICAgICAgIDEuIFJlcGxhY2VzIE9wSXNPYmplY3RPck51bGwgaW4g
Q2xhc3NFeHByTm9kZTo6ZW1pdEJ5dGVjb2RlKCkgd2l0aCBlbWl0SXNPYmplY3QoKSArCisgICAg
ICAgICAgIGVtaXRJc051bGwoKSwgZml4aW5nIGBkb2N1bWVudC5hbGxgIGFzIGBzdXBlcmNsYXNz
LnByb3RvdHlwZWAgY2FzZSB3aXRoIERGRy9GVEwuCisgICAgICAgICAgIEFsc28sIHR3ZWFrcyBl
cnJvciBtZXNzYWdlIHRvIHJlZmxlY3QgdGhhdCBgbnVsbGAgaXMgYWxsb3dlZC4KKworICAgICAg
ICAyLiBSZW5hbWVzIGlzX29iamVjdF9vcl9udWxsIGJ5dGVjb2RlIG9wIHRvIHR5cGVvZl9pc19v
YmplY3QsIGZpeGluZyBjb25mdXNpbmcKKyAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0SXNPYmpl
Y3QoKSBuYW1lLCBhbmQgYWxpZ25pbmcgaXQgd2l0aCB0eXBlb2ZfaXNfdW5kZWZpbmVkLgorICAg
ICAgICAgICBOZXcgbmFtZSBvZmZlcnMgYmV0dGVyIHNlbWFudGljcyBhbmQgY2xlYXJseSBjb21t
dW5pY2F0ZXMgdGhlIG9wIHNob3VsZCBiZSBhdm9pZGVkIHdoZW4KKyAgICAgICAgICAgaW1wbGVt
ZW50aW5nIG5ldyBmZWF0dXJlcyBiZWNhdXNlIG9mIGB0eXBlb2ZgIGJlaGF2aW9yIHdpdGggW1tJ
c0hUTUxEREFdXSBvYmplY3RzIFsxXS4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9l
Y21hMjYyLyNzZWMtSXNIVE1MRERBLWludGVybmFsLXNsb3QtdHlwZW9mCisKKyAgICAgICAgKiBi
eXRlY29kZS9CeXRlY29kZUxpc3QucmI6CisgICAgICAgICogYnl0ZWNvZGUvQnl0ZWNvZGVVc2VE
ZWYuY3BwOgorICAgICAgICAoSlNDOjpjb21wdXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKToK
KyAgICAgICAgKEpTQzo6Y29tcHV0ZURlZnNGb3JCeXRlY29kZUluZGV4SW1wbCk6CisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OmVtaXRFcXVhbGl0eU9wSW1wbCk6CisgICAgICAgICogYnl0ZWNvbXBp
bGVyL05vZGVzQ29kZWdlbi5jcHA6CisgICAgICAgIChKU0M6OkNsYXNzRXhwck5vZGU6OmVtaXRC
eXRlY29kZSk6CisgICAgICAgICogZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmg6
CisgICAgICAgIChKU0M6OkRGRzo6QWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlw
ZT46OmV4ZWN1dGVFZmZlY3RzKToKKyAgICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
OgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKToKKyAgICAg
ICAgKiBkZmcvREZHQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjYXBhYmls
aXR5TGV2ZWwpOgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6
OkRGRzo6Y2xvYmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAg
IChKU0M6OkRGRzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4dXBQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6Rml4dXBQaGFzZTo6Zml4dXBOb2RlKToKKyAgICAgICAgKiBkZmcv
REZHSGVhcExvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdURjo6cHJpbnRJbnRlcm5hbCk6CisgICAg
ICAgICogZGZnL0RGR0hlYXBMb2NhdGlvbi5oOgorICAgICAgICAqIGRmZy9ERkdOb2RlVHlwZS5o
OgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKiBkZmcvREZHT3Bl
cmF0aW9ucy5oOgorICAgICAgICAqIGRmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5j
cHA6CisgICAgICAgICogZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaDoKKyAgICAgICAgKEpTQzo6REZH
OjpzYWZlVG9FeGVjdXRlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlVHlwZU9mSXNPYmplY3Qp
OgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlSXNPYmplY3RPck51
bGwpOiBEZWxldGVkLgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oOgorICAgICAg
ICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpT
cGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklU
NjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAg
ICAgICAgKiBmdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpjYW5D
b21waWxlKToKKyAgICAgICAgKiBmdGwvRlRMTG93ZXJERkdUb0IzLmNwcDoKKyAgICAgICAgKEpT
Qzo6RlRMOjpERkc6Okxvd2VyREZHVG9CMzo6Y29tcGlsZU5vZGUpOgorICAgICAgICAoSlNDOjpG
VEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlVHlwZU9mSXNPYmplY3QpOgorICAgICAgICAo
SlNDOjpGVEw6OkRGRzo6TG93ZXJERkdUb0IzOjpjb21waWxlSXNPYmplY3RPck51bGwpOiBEZWxl
dGVkLgorICAgICAgICAqIGppdC9KSVQuY3BwOgorICAgICAgICAoSlNDOjpKSVQ6OnByaXZhdGVD
b21waWxlTWFpblBhc3MpOgorICAgICAgICAqIGxsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNt
OgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcDoKKyAgICAgICAgKEpTQzo6
U0xPV19QQVRIX0RFQ0wpOgorICAgICAgICAqIHJ1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmg6Cisg
ICAgICAgICogcnVudGltZS9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6anNUeXBlb2ZJ
c09iamVjdCk6CisgICAgICAgIChKU0M6OmpzSXNPYmplY3RUeXBlT3JOdWxsKTogRGVsZXRlZC4K
KyAgICAgICAgKiBydW50aW1lL09wZXJhdGlvbnMuaDoKKwogMjAyMC0wNy0yMSAgTWFyayBMYW0g
IDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU2ltcGxpZnkgRGlzYWxsb3dTY29wZSwg
RGlzYWxsb3dHQywgYW5kIERpc2FsbG93Vk1SZWVudHJ5IGltcGxlbWVudGF0aW9ucy4KSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QucmIKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgkocmV2
aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2Rl
TGlzdC5yYgkod29ya2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw3IEBAIG9wX2dyb3VwIDpVbmFy
eU9wLAogICAgICAgICA6aXNfbnVtYmVyLAogICAgICAgICA6aXNfYmlnX2ludCwKICAgICAgICAg
OmlzX29iamVjdCwKLSAgICAgICAgOmlzX29iamVjdF9vcl9udWxsLAorICAgICAgICA6dHlwZW9m
X2lzX29iamVjdCwKICAgICAgICAgOmlzX2Z1bmN0aW9uLAogICAgICAgICA6aXNfY29uc3RydWN0
b3IsCiAgICAgXSwKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29k
ZVVzZURlZi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2Rl
L0J5dGVjb2RlVXNlRGVmLmNwcAkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTg4
LDcgKzE4OCw3IEBAIHZvaWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZUluZGV4SW1wbChWaXIKICAg
ICBVU0VTKE9wSXNOdW1iZXIsIG9wZXJhbmQpCiAgICAgVVNFUyhPcElzQmlnSW50LCBvcGVyYW5k
KQogICAgIFVTRVMoT3BJc09iamVjdCwgb3BlcmFuZCkKLSAgICBVU0VTKE9wSXNPYmplY3RPck51
bGwsIG9wZXJhbmQpCisgICAgVVNFUyhPcFR5cGVvZklzT2JqZWN0LCBvcGVyYW5kKQogICAgIFVT
RVMoT3BJc0NlbGxXaXRoVHlwZSwgb3BlcmFuZCkKICAgICBVU0VTKE9wSXNGdW5jdGlvbiwgb3Bl
cmFuZCkKICAgICBVU0VTKE9wSXNDb25zdHJ1Y3Rvciwgb3BlcmFuZCkKQEAgLTQ5NSw3ICs0OTUs
NyBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleEltcGwodW5zCiAgICAgREVGUyhP
cElzTnVtYmVyLCBkc3QpCiAgICAgREVGUyhPcElzQmlnSW50LCBkc3QpCiAgICAgREVGUyhPcElz
T2JqZWN0LCBkc3QpCi0gICAgREVGUyhPcElzT2JqZWN0T3JOdWxsLCBkc3QpCisgICAgREVGUyhP
cFR5cGVvZklzT2JqZWN0LCBkc3QpCiAgICAgREVGUyhPcElzQ2VsbFdpdGhUeXBlLCBkc3QpCiAg
ICAgREVGUyhPcElzRnVuY3Rpb24sIGRzdCkKICAgICBERUZTKE9wSXNDb25zdHJ1Y3RvciwgZHN0
KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxl
ci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNzE1LDcgKzE3MTUsNyBAQCBib29sIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0RXF1
YWxpdHlPcEltCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gIm9iamVj
dCIpIHsKICAgICAgICAgICAgICAgICByZXdpbmQoKTsKLSAgICAgICAgICAgICAgICBPcElzT2Jq
ZWN0T3JOdWxsOjplbWl0KHRoaXMsIGRzdCwgb3AubV92YWx1ZSk7CisgICAgICAgICAgICAgICAg
T3BUeXBlb2ZJc09iamVjdDo6ZW1pdCh0aGlzLCBkc3QsIG9wLm1fdmFsdWUpOwogICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKHZhbHVl
ID09ICJmdW5jdGlvbiIpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGls
ZXIvTm9kZXNDb2RlZ2VuLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDkwNiw5ICs0OTA2LDkgQEAgUmVnaXN0ZXJJRCogQ2xhc3NFeHByTm9kZTo6ZW1p
dEJ5dGVjb2RlKAogICAgICAgICBnZW5lcmF0b3IuZW1pdEdldEJ5SWQocHJvdG9QYXJlbnQuZ2V0
KCksIHN1cGVyY2xhc3MuZ2V0KCksIGdlbmVyYXRvci5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBl
KTsKIAogICAgICAgICBSZWY8TGFiZWw+IHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJlbCA9
IGdlbmVyYXRvci5uZXdMYWJlbCgpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUo
Z2VuZXJhdG9yLmVtaXRVbmFyeU9wPE9wSXNPYmplY3RPck51bGw+KHRlbXBSZWdpc3Rlci5nZXQo
KSwgcHJvdG9QYXJlbnQuZ2V0KCkpLCBwcm90b1BhcmVudElzT2JqZWN0T3JOdWxsTGFiZWwuZ2V0
KCkpOwotICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUoZ2VuZXJhdG9yLmVtaXRVbmFy
eU9wPE9wSXNGdW5jdGlvbj4odGVtcFJlZ2lzdGVyLmdldCgpLCBwcm90b1BhcmVudC5nZXQoKSks
IHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJlbC5nZXQoKSk7Ci0gICAgICAgIGdlbmVyYXRv
ci5lbWl0VGhyb3dUeXBlRXJyb3IoIlRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3Rv
dHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0LiJfcyk7CisgICAgICAgIGdlbmVyYXRvci5l
bWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdElzT2JqZWN0KHRlbXBSZWdpc3Rlci5nZXQoKSwg
cHJvdG9QYXJlbnQuZ2V0KCkpLCBwcm90b1BhcmVudElzT2JqZWN0T3JOdWxsTGFiZWwuZ2V0KCkp
OworICAgICAgICBnZW5lcmF0b3IuZW1pdEp1bXBJZlRydWUoZ2VuZXJhdG9yLmVtaXRJc051bGwo
dGVtcFJlZ2lzdGVyLmdldCgpLCBwcm90b1BhcmVudC5nZXQoKSksIHByb3RvUGFyZW50SXNPYmpl
Y3RPck51bGxMYWJlbC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0VGhyb3dUeXBlRXJy
b3IoIlRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBu
b3QgYW4gb2JqZWN0IG9yIG51bGwuIl9zKTsKICAgICAgICAgZ2VuZXJhdG9yLmVtaXRMYWJlbChw
cm90b1BhcmVudElzT2JqZWN0T3JOdWxsTGFiZWwuZ2V0KCkpOwogCiAgICAgICAgIGdlbmVyYXRv
ci5lbWl0RGlyZWN0UHV0QnlJZChjb25zdHJ1Y3Rvci5nZXQoKSwgZ2VuZXJhdG9yLnByb3BlcnR5
TmFtZXMoKS51bmRlcnNjb3JlUHJvdG8sIHN1cGVyY2xhc3MuZ2V0KCksIFByb3BlcnR5Tm9kZTo6
VW5rbm93bik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50
ZXJwcmV0ZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCShyZXZpc2lvbiAyNjQ2OTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTE0NjAsNyArMTQ2MCw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICBjYXNlIElzQmlnSW50OgogICAgIGNhc2UgTnVtYmVy
SXNJbnRlZ2VyOgogICAgIGNhc2UgSXNPYmplY3Q6Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoK
KyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAgIGNhc2UgSXNGdW5jdGlvbjoKICAgICBjYXNl
IElzQ29uc3RydWN0b3I6CiAgICAgY2FzZSBJc0NlbGxXaXRoVHlwZToKQEAgLTE0OTYsNyArMTQ5
Niw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAg
ICAgIGNhc2UgSXNPYmplY3Q6CiAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNC
b29sZWFuKGNoaWxkLnZhbHVlKCkuaXNPYmplY3QoKSkpOwogICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKKyAgICAgICAgICAgIGNhc2UgVHlw
ZU9mSXNPYmplY3Q6CiAgICAgICAgICAgICAgICAgaWYgKGNoaWxkLnZhbHVlKCkuaXNPYmplY3Qo
KSkgewogICAgICAgICAgICAgICAgICAgICBKU09iamVjdCogb2JqZWN0ID0gYXNPYmplY3QoY2hp
bGQudmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChvYmplY3QtPnR5cGUoKSA9PSBK
U0Z1bmN0aW9uVHlwZSkKQEAgLTE2OTIsNyArMTY5Miw3IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnBy
ZXRlcjxBYnN0cmFjdFN0YXRlVHkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSXNPYmplY3RPck51bGw6CisgICAgICAgIGNhc2Ug
VHlwZU9mSXNPYmplY3Q6CiAgICAgICAgICAgICAvLyBGSVhNRTogVXNlIHRoZSBtYXNxdWVyYWRl
cy1hcy11bmRlZmluZWQgd2F0Y2hwb2ludCB0aGluZ3kuCiAgICAgICAgICAgICAvLyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0NDU2CiAgICAgICAgICAgICAKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3Bw
CShyZXZpc2lvbiAyNjQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0J5dGVD
b2RlUGFyc2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTc4OCwxMSArNTc4OCwxMSBAQCB2b2lk
IEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkCiAgICAgICAgICAgICBORVhUX09Q
Q09ERShvcF9pc19vYmplY3QpOwogICAgICAgICB9CiAKLSAgICAgICAgY2FzZSBvcF9pc19vYmpl
Y3Rfb3JfbnVsbDogewotICAgICAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVj
dGlvbi0+YXM8T3BJc09iamVjdE9yTnVsbD4oKTsKKyAgICAgICAgY2FzZSBvcF90eXBlb2ZfaXNf
b2JqZWN0OiB7CisgICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9u
LT5hczxPcFR5cGVvZklzT2JqZWN0PigpOwogICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQo
Ynl0ZWNvZGUubV9vcGVyYW5kKTsKLSAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRk
VG9HcmFwaChJc09iamVjdE9yTnVsbCwgdmFsdWUpKTsKLSAgICAgICAgICAgIE5FWFRfT1BDT0RF
KG9wX2lzX29iamVjdF9vcl9udWxsKTsKKyAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwg
YWRkVG9HcmFwaChUeXBlT2ZJc09iamVjdCwgdmFsdWUpKTsKKyAgICAgICAgICAgIE5FWFRfT1BD
T0RFKG9wX3R5cGVvZl9pc19vYmplY3QpOwogICAgICAgICB9CiAKICAgICAgICAgY2FzZSBvcF9p
c19mdW5jdGlvbjogewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmls
aXRpZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2Fw
YWJpbGl0aWVzLmNwcAkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDksNyArMTQ5LDcg
QEAgQ2FwYWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRAogICAgIGNhc2Ugb3Bf
aXNfbnVtYmVyOgogICAgIGNhc2Ugb3BfaXNfYmlnX2ludDoKICAgICBjYXNlIG9wX2lzX29iamVj
dDoKLSAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOgorICAgIGNhc2Ugb3BfdHlwZW9mX2lz
X29iamVjdDoKICAgICBjYXNlIG9wX2lzX2NlbGxfd2l0aF90eXBlOgogICAgIGNhc2Ugb3BfaXNf
ZnVuY3Rpb246CiAgICAgY2FzZSBvcF9pc19jb25zdHJ1Y3RvcjoKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyNjQ2OTUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAt
NTkyLDkgKzU5Miw5IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUK
ICAgICAgICAgd3JpdGUoSGVhcE9iamVjdENvdW50KTsKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Y2FzZSBJc09iamVjdE9yTnVsbDoKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAgICAgICBy
ZWFkKE1pc2NGaWVsZHMpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKElzT2JqZWN0T3JOdWxs
TG9jLCBNaXNjRmllbGRzLCBub2RlLT5jaGlsZDEoKSksIExhenlOb2RlKG5vZGUpKTsKKyAgICAg
ICAgZGVmKEhlYXBMb2NhdGlvbihUeXBlT2ZJc09iamVjdExvYywgTWlzY0ZpZWxkcywgbm9kZS0+
Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCiAg
ICAgY2FzZSBJc0Z1bmN0aW9uOgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdE
b2VzR0MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9l
c0dDLmNwcAkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdEb2VzR0MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNyArMTUwLDcgQEAgYm9vbCBkb2Vz
R0MoR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlKQogICAgIGNhc2UgSXNCaWdJbnQ6CiAgICAgY2Fz
ZSBOdW1iZXJJc0ludGVnZXI6CiAgICAgY2FzZSBJc09iamVjdDoKLSAgICBjYXNlIElzT2JqZWN0
T3JOdWxsOgorICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgY2FzZSBJc0Z1bmN0aW9uOgog
ICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAgICBjYXNlIElzQ2VsbFdpdGhUeXBlOgpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAy
NjQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNzE4LDcgKzI3MTgsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNl
IElzQm9vbGVhbjoKICAgICAgICAgY2FzZSBJc051bWJlcjoKICAgICAgICAgY2FzZSBJc0JpZ0lu
dDoKLSAgICAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlT2ZJc09i
amVjdDoKICAgICAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgICAgICBjYXNlIElzQ29uc3RydWN0
b3I6CiAgICAgICAgIGNhc2UgQ3JlYXRlRGlyZWN0QXJndW1lbnRzOgpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAkocmV2aXNpb24gMjY0Njk1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw4ICs2Miw4IEBAIHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVh
bSYgb3V0LCBMb2MKICAgICAgICAgb3V0LnByaW50KCJJbnZhbGlkYXRpb25Qb2ludExvYyIpOwog
ICAgICAgICByZXR1cm47CiAgICAgICAgIAotICAgIGNhc2UgSXNPYmplY3RPck51bGxMb2M6Ci0g
ICAgICAgIG91dC5wcmludCgiSXNPYmplY3RPck51bGxMb2MiKTsKKyAgICBjYXNlIFR5cGVPZklz
T2JqZWN0TG9jOgorICAgICAgICBvdXQucHJpbnQoIlR5cGVPZklzT2JqZWN0TG9jIik7CiAgICAg
ICAgIHJldHVybjsKIAogICAgIGNhc2UgSXNGdW5jdGlvbkxvYzoKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkocmV2aXNpb24gMjY0Njk1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAkod29ya2luZyBjb3B5
KQpAQCAtNTYsNyArNTYsNyBAQCBlbnVtIExvY2F0aW9uS2luZCB7CiAgICAgSW52YWxpZGF0aW9u
UG9pbnRMb2MsCiAgICAgSXNGdW5jdGlvbkxvYywKICAgICBJc0NvbnN0cnVjdG9yTG9jLAotICAg
IElzT2JqZWN0T3JOdWxsTG9jLAorICAgIFR5cGVPZklzT2JqZWN0TG9jLAogICAgIE5hbWVkUHJv
cGVydHlMb2MsCiAgICAgUmVnRXhwT2JqZWN0TGFzdEluZGV4TG9jLAogICAgIFNldHRlckxvYywK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmgJKHJldmlzaW9uIDI2
NDY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDAwLDcgKzQwMCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZH
IHsKICAgICBtYWNybyhJc0JpZ0ludCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhO
dW1iZXJJc0ludGVnZXIsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNPYmplY3Qs
IE5vZGVSZXN1bHRCb29sZWFuKSBcCi0gICAgbWFjcm8oSXNPYmplY3RPck51bGwsIE5vZGVSZXN1
bHRCb29sZWFuKSBcCisgICAgbWFjcm8oVHlwZU9mSXNPYmplY3QsIE5vZGVSZXN1bHRCb29sZWFu
KSBcCiAgICAgbWFjcm8oSXNGdW5jdGlvbiwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNy
byhJc0NvbnN0cnVjdG9yLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKElzVHlwZWRB
cnJheVZpZXcsIE5vZGVSZXN1bHRCb29sZWFuKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09wZXJhdGlvbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIx
MDMsNyArMjEwMyw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25DcmVhdGVSZXMK
ICAgICByZXR1cm4gY29uc3RydWN0QXJyYXkoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFyZ3Vt
ZW50c1RvQ29weVJlZ2lvbiwgYXJyYXlTaXplKTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04g
b3BlcmF0aW9uT2JqZWN0SXNPYmplY3QoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlND
ZWxsKiBvYmplY3QpCitzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc09iamVj
dChKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0NlbGwqIG9iamVjdCkKIHsKICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBE
RUNMQVJFX0NBTExfRlJBTUUodm0pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPcGVyYXRpb25zLmgJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTMsNyArMjEzLDcgQEAg
SlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk1hcFNldChKUwogdm9pZCBKSVRfT1BFUkFU
SU9OIG9wZXJhdGlvbldlYWtTZXRBZGQoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBpbnQzMl90KSBX
VEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uV2Vha01hcFNldChWTSos
IEpTQ2VsbCosIEpTQ2VsbCosIEVuY29kZWRKU1ZhbHVlLCBpbnQzMl90KSBXVEZfSU5URVJOQUw7
CiBkb3VibGUgSklUX09QRVJBVElPTiBvcGVyYXRpb25GTW9kT25JbnRzKGludDMyX3QsIGludDMy
X3QpIFdURl9JTlRFUk5BTDsKLXNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbk9iamVjdElz
T2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOworc2l6ZV90IEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uVHlwZU9mSXNPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBKU0Nl
bGwqKSBXVEZfSU5URVJOQUw7CiBzaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25PYmplY3RJ
c0Z1bmN0aW9uKEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogc2l6ZV90
IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSXNDb25zdHJ1Y3RvcihKU0dsb2JhbE9iamVjdCosIEVu
Y29kZWRKU1ZhbHVlKSBXVEZfSU5URVJOQUw7CiBKU0NlbGwqIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uVHlwZU9mT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDM4LDcgKzEwMzgsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIElz
QmlnSW50OgogICAgICAgICBjYXNlIE51bWJlcklzSW50ZWdlcjoKICAgICAgICAgY2FzZSBJc09i
amVjdDoKLSAgICAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKKyAgICAgICAgY2FzZSBUeXBlT2ZJ
c09iamVjdDoKICAgICAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgICAgICBjYXNlIElzQ29uc3Ry
dWN0b3I6CiAgICAgICAgIGNhc2UgSXNDZWxsV2l0aFR5cGU6CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAkocmV2aXNpb24gMjY0Njk1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTYWZlVG9FeGVjdXRlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI2Myw3ICsyNjMsNyBAQCBib29sIHNhZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5
cGUmIHN0CiAgICAgY2FzZSBJc0JpZ0ludDoKICAgICBjYXNlIE51bWJlcklzSW50ZWdlcjoKICAg
ICBjYXNlIElzT2JqZWN0OgotICAgIGNhc2UgSXNPYmplY3RPck51bGw6CisgICAgY2FzZSBUeXBl
T2ZJc09iamVjdDoKICAgICBjYXNlIElzRnVuY3Rpb246CiAgICAgY2FzZSBJc0NvbnN0cnVjdG9y
OgogICAgIGNhc2UgSXNDZWxsV2l0aFR5cGU6CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAJKHJldmlzaW9uIDI2NDY5
NSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM3MTYsOCArMzcxNiw4IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgY2Fz
ZSBJc09iamVjdE9yTnVsbDogewotICAgICAgICBjb21waWxlSXNPYmplY3RPck51bGwobm9kZSk7
CisgICAgY2FzZSBUeXBlT2ZJc09iamVjdDogeworICAgICAgICBjb21waWxlVHlwZU9mSXNPYmpl
Y3Qobm9kZSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KIApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyNjQ2
OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NjkxLDggKzQ2OTEsOCBAQCB2b2lkIFNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2Ug
SXNPYmplY3RPck51bGw6IHsKLSAgICAgICAgY29tcGlsZUlzT2JqZWN0T3JOdWxsKG5vZGUpOwor
ICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6IHsKKyAgICAgICAgY29tcGlsZVR5cGVPZklzT2JqZWN0
KG5vZGUpOwogICAgICAgICBicmVhazsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyNjQ2OTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtOTUwNiw3ICs5NTA2LDcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGls
ZUlzT2JqZWN0KE5vZAogICAgIHVuYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2Rl
KTsKIH0KIAotdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0T3JOdWxsKE5vZGUq
IG5vZGUpCit2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlVHlwZU9mSXNPYmplY3QoTm9kZSog
bm9kZSkKIHsKICAgICBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gbV9qaXQuZ3JhcGgo
KS5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKICAgICAKQEAgLTk1NDEs
NyArOTU0MSw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdE9yTnUKICAg
ICAKICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcigKICAgICAgICAgc2xvd1BhdGhDYWxsKAotICAg
ICAgICAgICAgc2xvd1BhdGgsIHRoaXMsIG9wZXJhdGlvbk9iamVjdElzT2JqZWN0LCByZXN1bHRH
UFIsIGdsb2JhbE9iamVjdCwKKyAgICAgICAgICAgIHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25U
eXBlT2ZJc09iamVjdCwgcmVzdWx0R1BSLCBnbG9iYWxPYmplY3QsCiAgICAgICAgICAgICB2YWx1
ZVJlZ3MucGF5bG9hZEdQUigpKSk7CiAgICAgCiAgICAgZG9uZS5saW5rKCZtX2ppdCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCShyZXZp
c2lvbiAyNjQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZl
SklULmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MDUsNyArMTQwNSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGNvbXBpbGVSZWdFeHBUZXN0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdSZXBs
YWNlKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc09iamVjdChOb2RlKik7Ci0gICAgdm9pZCBj
b21waWxlSXNPYmplY3RPck51bGwoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVR5cGVPZklzT2Jq
ZWN0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc0Z1bmN0aW9uKE5vZGUqKTsKICAgICB2b2lk
IGNvbXBpbGVJc0NvbnN0cnVjdG9yKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVUeXBlT2YoTm9k
ZSopOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVz
LmNwcAkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExD
YXBhYmlsaXRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjQsNyArMjY0LDcgQEAgaW5saW5l
IENhcGFiaWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgSXNCaWdJbnQ6CiAg
ICAgY2FzZSBOdW1iZXJJc0ludGVnZXI6CiAgICAgY2FzZSBJc09iamVjdDoKLSAgICBjYXNlIElz
T2JqZWN0T3JOdWxsOgorICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgY2FzZSBJc0Z1bmN0
aW9uOgogICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAgICBjYXNlIElzVHlwZWRBcnJheVZpZXc6
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3Bw
CShyZXZpc2lvbiAyNjQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2Vy
REZHVG9CMy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MjcsOCArMTQyNyw4IEBAIHByaXZhdGU6
CiAgICAgICAgIGNhc2UgSXNPYmplY3Q6CiAgICAgICAgICAgICBjb21waWxlSXNPYmplY3QoKTsK
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgotICAgICAg
ICAgICAgY29tcGlsZUlzT2JqZWN0T3JOdWxsKCk7CisgICAgICAgIGNhc2UgVHlwZU9mSXNPYmpl
Y3Q6CisgICAgICAgICAgICBjb21waWxlVHlwZU9mSXNPYmplY3QoKTsKICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICBjYXNlIElzRnVuY3Rpb246CiAgICAgICAgICAgICBjb21waWxlSXNGdW5j
dGlvbigpOwpAQCAtMTE2NjksNyArMTE2NjksNyBAQCBwcml2YXRlOgogICAgICAgICB2bUNhbGwo
Vm9pZCwgb3BlcmF0aW9uV2Vha01hcFNldCwgbV92bVZhbHVlLCBtYXAsIGtleSwgdmFsdWUsIGhh
c2gpOwogICAgIH0KIAotICAgIHZvaWQgY29tcGlsZUlzT2JqZWN0T3JOdWxsKCkKKyAgICB2b2lk
IGNvbXBpbGVUeXBlT2ZJc09iamVjdCgpCiAgICAgewogICAgICAgICBKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gbV9ncmFwaC5nbG9iYWxPYmplY3RGb3IobV9ub2RlLT5vcmlnaW4uc2Vt
YW50aWMpOwogICAgICAgICAKQEAgLTExNzA4LDcgKzExNzA4LDcgQEAgcHJpdmF0ZToKICAgICAg
ICAgTFZhbHVlIHNsb3dSZXN1bHRWYWx1ZSA9IGxhenlTbG93UGF0aCgKICAgICAgICAgICAgIFs9
LCAmdm1dIChjb25zdCBWZWN0b3I8TG9jYXRpb24+JiBsb2NhdGlvbnMpIC0+IFJlZlB0cjxMYXp5
U2xvd1BhdGg6OkdlbmVyYXRvcj4gewogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVMYXp5
Q2FsbEdlbmVyYXRvcih2bSwKLSAgICAgICAgICAgICAgICAgICAgb3BlcmF0aW9uT2JqZWN0SXNP
YmplY3QsIGxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKSwKKyAgICAgICAgICAgICAgICAgICAgb3Bl
cmF0aW9uVHlwZU9mSXNPYmplY3QsIGxvY2F0aW9uc1swXS5kaXJlY3RHUFIoKSwKICAgICAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKGdsb2JhbE9iamVjdCksIGxv
Y2F0aW9uc1sxXS5kaXJlY3RHUFIoKSk7CiAgICAgICAgICAgICB9LCB2YWx1ZSk7CiAgICAgICAg
IFZhbHVlRnJvbUJsb2NrIHNsb3dSZXN1bHQgPSBtX291dC5hbmNob3IobV9vdXQubm90WmVybzY0
KHNsb3dSZXN1bHRWYWx1ZSkpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklULmNwcAkocmV2
aXNpb24gMjY0Njk1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODYsNyArMjg2LDcgQEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFp
blBhc3MoKQogICAgICAgICBERUZJTkVfU0xPV19PUChncmVhdGVyZXEpCiAgICAgICAgIERFRklO
RV9TTE9XX09QKGlzX2Z1bmN0aW9uKQogICAgICAgICBERUZJTkVfU0xPV19PUChpc19jb25zdHJ1
Y3RvcikKLSAgICAgICAgREVGSU5FX1NMT1dfT1AoaXNfb2JqZWN0X29yX251bGwpCisgICAgICAg
IERFRklORV9TTE9XX09QKHR5cGVvZl9pc19vYmplY3QpCiAgICAgICAgIERFRklORV9TTE9XX09Q
KHR5cGVvZikKICAgICAgICAgREVGSU5FX1NMT1dfT1Aoc3RyY2F0KQogICAgICAgICBERUZJTkVf
U0xPV19PUChwdXNoX3dpdGhfc2NvcGUpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxp
bnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCShyZXZpc2lvbiAyNjQ2OTUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20JKHdv
cmtpbmcgY29weSkKQEAgLTE3ODMsNyArMTc4Myw3IEBAIHNsb3dQYXRoT3AoaW5fYnlfaWQpCiBz
bG93UGF0aE9wKGluX2J5X3ZhbCkKIHNsb3dQYXRoT3AoaXNfZnVuY3Rpb24pCiBzbG93UGF0aE9w
KGlzX2NvbnN0cnVjdG9yKQotc2xvd1BhdGhPcChpc19vYmplY3Rfb3JfbnVsbCkKK3Nsb3dQYXRo
T3AodHlwZW9mX2lzX29iamVjdCkKIHNsb3dQYXRoT3AobGVzcykKIHNsb3dQYXRoT3AobGVzc2Vx
KQogc2xvd1BhdGhPcChtb2QpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTgwNCwxMSArODA0LDExIEBAIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90eXBlb2YpCiAg
ICAgUkVUVVJOKGpzVHlwZVN0cmluZ0ZvclZhbHVlKGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNv
ZGUubV92YWx1ZSkuanNWYWx1ZSgpKSk7CiB9CiAKLVNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9p
c19vYmplY3Rfb3JfbnVsbCkKK1NMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF90eXBlb2ZfaXNfb2Jq
ZWN0KQogewogICAgIEJFR0lOKCk7Ci0gICAgYXV0byBieXRlY29kZSA9IHBjLT5hczxPcElzT2Jq
ZWN0T3JOdWxsPigpOwotICAgIFJFVFVSTihqc0Jvb2xlYW4oanNJc09iamVjdFR5cGVPck51bGwo
Z2xvYmFsT2JqZWN0LCBHRVRfQyhieXRlY29kZS5tX29wZXJhbmQpLmpzVmFsdWUoKSkpKTsKKyAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wVHlwZW9mSXNPYmplY3Q+KCk7CisgICAgUkVUVVJO
KGpzQm9vbGVhbihqc1R5cGVvZklzT2JqZWN0KGdsb2JhbE9iamVjdCwgR0VUX0MoYnl0ZWNvZGUu
bV9vcGVyYW5kKS5qc1ZhbHVlKCkpKSk7CiB9CiAKIFNMT1dfUEFUSF9ERUNMKHNsb3dfcGF0aF9p
c19mdW5jdGlvbikKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNs
b3dQYXRocy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5oCShyZXZpc2lvbiAyNjQ2OTUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAkod29ya2luZyBjb3B5KQpAQCAtMjQyLDcgKzI0
Miw3IEBAIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYml0b3IpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF9iaXR4b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF90eXBlb2YpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19vYmpl
Y3QpOwotU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19vYmplY3Rfb3JfbnVsbCk7
CitTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX3R5cGVvZl9pc19vYmplY3QpOwogU0xP
V19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19mdW5jdGlvbik7CiBTTE9XX1BBVEhfSElE
REVOX0RFQ0woc2xvd19wYXRoX2lzX2NvbnN0cnVjdG9yKTsKIFNMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfaW5fYnlfaWQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3BlcmF0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvT3BlcmF0aW9ucy5jcHAJKHJldmlzaW9uIDI2NDY5NSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYsNyAr
MTA2LDcgQEAgSlNWYWx1ZSBqc1R5cGVTdHJpbmdGb3JWYWx1ZShKU0dsb2JhbE9iagogICAgIHJl
dHVybiBqc1R5cGVTdHJpbmdGb3JWYWx1ZShnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVj
dCwgdik7CiB9CiAKLWJvb2wganNJc09iamVjdFR5cGVPck51bGwoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgSlNWYWx1ZSB2KQorYm9vbCBqc1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgdikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmpl
Y3QtPnZtKCk7CiAgICAgaWYgKCF2LmlzQ2VsbCgpKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAkocmV2aXNpb24gMjY0Njk1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3
ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogTkVWRVJfSU5MSU5FIEpTVmFsdWUganNBZGRTbG93
Q2FzZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUsIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVT
dHJpbmdGb3JWYWx1ZShKU0dsb2JhbE9iamVjdCosIEpTVmFsdWUpOwogSlNWYWx1ZSBqc1R5cGVT
dHJpbmdGb3JWYWx1ZShWTSYsIEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Ci1ib29sIGpzSXNP
YmplY3RUeXBlT3JOdWxsKEpTR2xvYmFsT2JqZWN0KiwgSlNWYWx1ZSk7Citib29sIGpzVHlwZW9m
SXNPYmplY3QoSlNHbG9iYWxPYmplY3QqLCBKU1ZhbHVlKTsKIHNpemVfdCBub3JtYWxpemVQcm90
b3R5cGVDaGFpbihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCosIGJvb2wmIHNhd1BvbHlQcm90byk7
CiAKIEFMV0FZU19JTkxJTkUgSlNTdHJpbmcqIGpzU3RyaW5nKEpTR2xvYmFsT2JqZWN0KiBnbG9i
YWxPYmplY3QsIGNvbnN0IFN0cmluZyYgdTEsIEpTU3RyaW5nKiBzMikKSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDI2NDY5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDIyIEBACisyMDIwLTA3LTIyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdt
YWlsLmNvbT4KKworICAgICAgICBSZW1vdmUgT3BJc09iamVjdE9yTnVsbCBmcm9tIENsYXNzRXhw
ck5vZGU6OmVtaXRCeXRlY29kZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTQ1MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBOZXcgdGVzdHMgYXJlIGFkZGVkIGZvciBgZG9jdW1lbnQuYWxsYCByYXRo
ZXIgdGhhbiBgbWFrZU1hc3F1ZXJhZGVyKClgIHNpbmNlCisgICAgICAgIHRoZSBsYXR0ZXIgaGFz
IHN1ZmZpY2llbnQgdGVzdCBjb3ZlcmFnZSBhbmQgdGFrZXMgdGhlIHNob3J0IHBhdGggYXMgSlNG
dW5jdGlvbi4KKworICAgICAgICAqIGpzL2NsYXNzLXN5bnRheC1leHRlbmRzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBqcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMu
aHRtbDogQWRkZWQuCisgICAgICAgICoganMvZG9tL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2Jq
ZWN0LWZvbGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vZG9jdW1lbnQt
YWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20v
c2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRzLmpzOiBBZGRlZC4KKyAgICAg
ICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZv
bGQuanM6IEFkZGVkLgorICAgICAgICAqIGpzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZXh0
ZW5kcy5qczoKKwogMjAyMC0wNy0yMiAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSB0
ZXN0IGV4cGVjdGF0aW9ucyBhZnRlciByMjY0Njk0LgpJbmRleDogTGF5b3V0VGVzdHMvanMvY2xh
c3Mtc3ludGF4LWV4dGVuZHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL2NsYXNzLXN5bnRheC1leHRlbmRzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY0Njk1KQor
KysgTGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4dGVuZHMtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNiw5ICsyNiw5IEBAIFBBU1MgeC5fX3Byb3RvX186OjpGdW5jdGlvbi5w
cm90b3R5cGUKIFBBU1MgeCA9IGNsYXNzIGV4dGVuZHMgMyB7IGNvbnN0cnVjdG9yKCkgeyB9IH07
IHguX19wcm90b19fOjo6VHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25zdHJ1
Y3Rvci4KIFBBU1MgeCA9IGNsYXNzIGV4dGVuZHMgImFiYyIgeyBjb25zdHJ1Y3RvcigpIHsgfSB9
OyB4Ll9fcHJvdG9fXzo6OlR5cGVFcnJvcjogVGhlIHN1cGVyY2xhc3MgaXMgbm90IGEgY29uc3Ry
dWN0b3IuCiBQQVNTIGJhc2VXaXRoQmFkUHJvdG90eXBlID0gZnVuY3Rpb24gKCkge307IGJhc2VX
aXRoQmFkUHJvdG90eXBlLnByb3RvdHlwZSA9IDM7IG5ldyBiYXNlV2l0aEJhZFByb3RvdHlwZQot
UEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9y
KCkgeyB9IH06OjpUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3Rv
dHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0LgorUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBi
YXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH06OjpUeXBlRXJyb3I6IFRo
ZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4g
b2JqZWN0IG9yIG51bGwuCiBQQVNTIGJhc2VXaXRoQmFkUHJvdG90eXBlLnByb3RvdHlwZSA9ICJh
YmMiCi1QQVNTIHggPSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJvdG90eXBlIHsgY29uc3Ry
dWN0b3IoKSB7IH0gfTo6OlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3Mg
cHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIHggPSBjbGFzcyBleHRl
bmRzIGJhc2VXaXRoQmFkUHJvdG90eXBlIHsgY29uc3RydWN0b3IoKSB7IH0gfTo6OlR5cGVFcnJv
cjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5v
dCBhbiBvYmplY3Qgb3IgbnVsbC4KIFBBU1MgYmFzZVdpdGhCYWRQcm90b3R5cGUucHJvdG90eXBl
ID0gbnVsbDsgeCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1
Y3RvcigpIHsgfSB9CiBQQVNTIHggPSAxOyBjID0gY2xhc3MgZXh0ZW5kcyArK3ggeyBjb25zdHJ1
Y3RvcigpIHsgfSB9Ozo6OlN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcrKycKIFBBU1Mg
eCA9IDE7IGMgPSBjbGFzcyBleHRlbmRzIHgrKyB7IGNvbnN0cnVjdG9yKCkgeyB9IH07Ojo6U3lu
dGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gJysrJy4gRXhwZWN0ZWQgb3BlbmluZyAneycgYXQg
dGhlIHN0YXJ0IG9mIGEgY2xhc3MgYm9keS4KSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kb2N1
bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRzLWV4cGVjdGVkLnR4dAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVu
ZHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK2RvY3VtZW50
LmFsbCB3b3JrcyBhcyBzdXBlcmNsYXNzLnByb3RvdHlwZSwgYnV0IG5vdCBhcyBzdXBlcmNsYXNz
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRlc3RBc1N1cGVyY2xhc3NQ
cm90b3R5cGUoKSBpcyB0cnVlCitQQVNTIGNsYXNzIEZvbyBleHRlbmRzIGRvY3VtZW50LmFsbCB7
fSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25z
dHJ1Y3Rvci4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRz
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC1jbGFz
cy1leHRlbmRzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2RvY3Vt
ZW50LWFsbC1jbGFzcy1leHRlbmRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMCBA
QAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50
LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2pzL2RvbS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLWV4cGVj
dGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxs
LXR5cGVvZi1pcy1vYmplY3QtZm9sZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSwxMCBAQAordHlwZW9mIGRvY3VtZW50LmFsbCBpcyBuZXZlciAnb2JqZWN0JworCitPbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXN0VHlwZW9mSXNPYmplY3QoKSBpcyB0
cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJ
bmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZv
bGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLXR5
cGVvZi1pcy1vYmplY3QtZm9sZC5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pz
L2RvbS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVv
Zi1pcy1vYmplY3QtZm9sZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG9jdW1l
bnQtYWxsLWNsYXNzLWV4dGVuZHMuanMJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvanMv
ZG9tL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACitkZXNjcmlwdGlvbigiZG9jdW1lbnQuYWxsIHdvcmtzIGFz
IHN1cGVyY2xhc3MucHJvdG90eXBlLCBidXQgbm90IGFzIHN1cGVyY2xhc3MiKTsKKworZnVuY3Rp
b24gdGVzdEFzU3VwZXJjbGFzc1Byb3RvdHlwZSgpIHsKKyAgICBmdW5jdGlvbiBCYXIoKSB7fQor
ICAgIEJhci5wcm90b3R5cGUgPSBkb2N1bWVudC5hbGw7CisKKyAgICBmb3IgKGxldCBpID0gMDsg
aSA8IDFlNTsgKytpKSB7CisgICAgICAgIGNsYXNzIEZvbyBleHRlbmRzIEJhciB7fQorCisgICAg
ICAgIGlmICghKG5ldyBGb28oKSBpbnN0YW5jZW9mIEJhcikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Nob3VsZEJlKCJ0ZXN0QXNT
dXBlcmNsYXNzUHJvdG90eXBlKCkiLCAidHJ1ZSIpOworc2hvdWxkVGhyb3coImNsYXNzIEZvbyBl
eHRlbmRzIGRvY3VtZW50LmFsbCB7fSIsICInVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBu
b3QgYSBjb25zdHJ1Y3Rvci4nIik7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9i
amVjdC1mb2xkLmpzCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3QtZm9sZC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE3IEBACitkZXNjcmlwdGlvbigidHlwZW9mIGRvY3VtZW50LmFsbCBpcyBu
ZXZlciAnb2JqZWN0JyIpOworCitjb25zdCBkb2N1bWVudEFsbCA9IGRvY3VtZW50LmFsbDsKK2Z1
bmN0aW9uIHRlc3RUeXBlb2ZJc09iamVjdCgpIHsKKyAgICBsZXQgYWNjID0gMDsKKyAgICBmb3Ig
KGxldCBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgICAgICBhY2MgKz0gKHR5cGVvZiBkb2N1bWVu
dEFsbCA9PT0gIm9iamVjdCIpOworCisgICAgaWYgKGFjYyAhPT0gMCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAgICAgICAgYWNj
ICs9ICh0eXBlb2YgZG9jdW1lbnRBbGwgIT09ICJvYmplY3QiKTsKKyAgICByZXR1cm4gYWNjID09
PSAxZTY7Cit9CisKK3Nob3VsZEJlKCJ0ZXN0VHlwZW9mSXNPYmplY3QoKSIsICJ0cnVlIik7Cklu
ZGV4OiBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4LWV4dGVuZHMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1l
eHRlbmRzLmpzCShyZXZpc2lvbiAyNjQ2OTUpCisrKyBMYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVz
dHMvY2xhc3Mtc3ludGF4LWV4dGVuZHMuanMJKHdvcmtpbmcgY29weSkKQEAgLTgxLDkgKzgxLDkg
QEAgc2hvdWxkQmUoJ3guX19wcm90b19fJywgJ0Z1bmN0aW9uLnByb3RvdAogc2hvdWxkVGhyb3co
J3ggPSBjbGFzcyBleHRlbmRzIDMgeyBjb25zdHJ1Y3RvcigpIHsgfSB9OyB4Ll9fcHJvdG9fXycs
ICciVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4iJyk7CiBz
aG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgImFiYyIgeyBjb25zdHJ1Y3RvcigpIHsgfSB9
OyB4Ll9fcHJvdG9fXycsICciVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25z
dHJ1Y3Rvci4iJyk7CiBzaG91bGROb3RUaHJvdygnYmFzZVdpdGhCYWRQcm90b3R5cGUgPSBmdW5j
dGlvbiAoKSB7fTsgYmFzZVdpdGhCYWRQcm90b3R5cGUucHJvdG90eXBlID0gMzsgbmV3IGJhc2VX
aXRoQmFkUHJvdG90eXBlJyk7Ci1zaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdp
dGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9JywgJyJUeXBlRXJyb3I6IFRoZSB2
YWx1ZSBvZiB0aGUgc3VwZXJjbGFzc1wncyBwcm90b3R5cGUgcHJvcGVydHkgaXMgbm90IGFuIG9i
amVjdC4iJyk7CitzaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90
b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9JywgJyJUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0
aGUgc3VwZXJjbGFzc1wncyBwcm90b3R5cGUgcHJvcGVydHkgaXMgbm90IGFuIG9iamVjdCBvciBu
dWxsLiInKTsKIHNob3VsZE5vdFRocm93KCdiYXNlV2l0aEJhZFByb3RvdHlwZS5wcm90b3R5cGUg
PSAiYWJjIicpOwotc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJv
dG90eXBlIHsgY29uc3RydWN0b3IoKSB7IH0gfScsICciVHlwZUVycm9yOiBUaGUgdmFsdWUgb2Yg
dGhlIHN1cGVyY2xhc3NcJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3QuIicp
Oworc2hvdWxkVGhyb3coJ3ggPSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJvdG90eXBlIHsg
Y29uc3RydWN0b3IoKSB7IH0gfScsICciVHlwZUVycm9yOiBUaGUgdmFsdWUgb2YgdGhlIHN1cGVy
Y2xhc3NcJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3Qgb3IgbnVsbC4iJyk7
CiBzaG91bGROb3RUaHJvdygnYmFzZVdpdGhCYWRQcm90b3R5cGUucHJvdG90eXBlID0gbnVsbDsg
eCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsg
fSB9Jyk7CiAKIHNob3VsZFRocm93KCd4ID0gMTsgYyA9IGNsYXNzIGV4dGVuZHMgKyt4IHsgY29u
c3RydWN0b3IoKSB7IH0gfTsnKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406684</attachid>
            <date>2020-08-16 11:59:27 -0700</date>
            <delta_ts>2020-08-16 13:40:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214525-20200816215925.patch</filename>
            <type>text/plain</type>
            <size>45182</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY1NjgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NTIyNDhjOGI5ZDI0NTJjYzQ3NTMzZGRiYWI1MGY1ZWYwZGNmMjYxLi43NmNjNTdhNDUxMjZjZmIy
OGZhMjYzYWQxNWVjMGQyYWJjOWE3YmFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3OSBAQAorMjAyMC0wOC0xNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFp
bC5jb20+CisKKyAgICAgICAgUmVtb3ZlIE9wSXNPYmplY3RPck51bGwgZnJvbSBDbGFzc0V4cHJO
b2RlOjplbWl0Qnl0ZWNvZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjE0NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWlsbGVyLgor
CisgICAgICAgIFRoaXMgcGF0Y2g6CisKKyAgICAgICAgMS4gUmVwbGFjZXMgT3BJc09iamVjdE9y
TnVsbCBpbiBDbGFzc0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUoKSBbMV0gd2l0aCBlbWl0SXNPYmpl
Y3QoKSArCisgICAgICAgICAgIGVtaXRJc051bGwoKSwgcHJldmVudGluZyBERkcvRlRMIGZyb20g
dGhyb3dpbmcgYSBUeXBlRXJyb3IgaWYgYGRvY3VtZW50LmFsbGAgaXMgdGhlCisgICAgICAgICAg
IHZhbHVlIG9mIHN1cGVyY2xhc3MgInByb3RvdHlwZSIgcHJvcGVydHksIHdoaWNoIGFsaWducyBK
U0Mgd2l0aCBWOCBhbmQgU3BpZGVyTW9ua2V5LgorICAgICAgICAgICBBbHNvLCB0d2Vha3MgZXJy
b3IgbWVzc2FnZSB0byByZWZsZWN0IHRoYXQgYG51bGxgIGlzIGFsbG93ZWQuCisKKyAgICAgICAg
Mi4gUmVuYW1lcyBpc19vYmplY3Rfb3JfbnVsbCBieXRlY29kZSBvcCB0byB0eXBlb2ZfaXNfb2Jq
ZWN0LCBmaXhpbmcgdGhlIGNvbmZ1c2luZworICAgICAgICAgICBvcGVyYXRpb25PYmplY3RJc09i
amVjdCgpIG5hbWUsIGFuZCBhbGlnbnMgaXQgd2l0aCB0eXBlb2ZfaXNfdW5kZWZpbmVkLgorICAg
ICAgICAgICBOZXcgbmFtZSBvZmZlcnMgYmV0dGVyIHNlbWFudGljcyBhbmQgY2xlYXJseSBjb21t
dW5pY2F0ZXMgdGhlIG9wIHNob3VsZCBiZSBhdm9pZGVkIHdoZW4KKyAgICAgICAgICAgaW1wbGVt
ZW50aW5nIG5ldyBmZWF0dXJlcyBiZWNhdXNlIG9mIGB0eXBlb2ZgIGJlaGF2aW9yIHdpdGggW1tJ
c0hUTUxEREFdXSBvYmplY3RzIFsyXS4KKworICAgICAgICBbMV06IGh0dHBzOi8vdGMzOS5lcy9l
Y21hMjYyLyNzZWMtcnVudGltZS1zZW1hbnRpY3MtY2xhc3NkZWZpbml0aW9uZXZhbHVhdGlvbiAo
c3RlcCA1LmcuaWkpCisgICAgICAgIFsyXTogaHR0cHM6Ly90YzM5LmVzL2VjbWEyNjIvI3NlYy1J
c0hUTUxEREEtaW50ZXJuYWwtc2xvdC10eXBlb2YKKworICAgICAgICAqIGJ5dGVjb2RlL0J5dGVj
b2RlTGlzdC5yYjoKKyAgICAgICAgKiBieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHA6CisgICAg
ICAgIChKU0M6OmNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVJbmRleEltcGwpOgorICAgICAgICAoSlND
Ojpjb21wdXRlRGVmc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKToKKyAgICAgICAgKiBieXRlY29tcGls
ZXIvQnl0ZWNvZGVHZW5lcmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEVxdWFsaXR5T3BJbXBsKToKKyAgICAgICAgKiBieXRlY29tcGlsZXIvTm9kZXNDb2Rl
Z2VuLmNwcDoKKyAgICAgICAgKEpTQzo6Q2xhc3NFeHByTm9kZTo6ZW1pdEJ5dGVjb2RlKToKKyAg
ICAgICAgKiBkZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaDoKKyAgICAgICAgKEpT
Qzo6REZHOjpBYnN0cmFjdEludGVycHJldGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVm
ZmVjdHMpOgorICAgICAgICAqIGRmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHA6CisgICAgICAgIChK
U0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OnBhcnNlQmxvY2spOgorICAgICAgICAqIGRmZy9ERkdD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpERkc6OmNhcGFiaWxpdHlMZXZlbCk6Cisg
ICAgICAgICogZGZnL0RGR0Nsb2JiZXJpemUuaDoKKyAgICAgICAgKEpTQzo6REZHOjpjbG9iYmVy
aXplKToKKyAgICAgICAgKiBkZmcvREZHRG9lc0dDLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpk
b2VzR0MpOgorICAgICAgICAqIGRmZy9ERkdGaXh1cFBoYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpGaXh1cFBoYXNlOjpmaXh1cE5vZGUpOgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRp
b24uY3BwOgorICAgICAgICAoV1RGOjpwcmludEludGVybmFsKToKKyAgICAgICAgKiBkZmcvREZH
SGVhcExvY2F0aW9uLmg6CisgICAgICAgICogZGZnL0RGR05vZGVUeXBlLmg6CisgICAgICAgICog
ZGZnL0RGR09wZXJhdGlvbnMuY3BwOgorICAgICAgICAqIGRmZy9ERkdPcGVyYXRpb25zLmg6Cisg
ICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAg
KiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1
dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6
OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVjdCk6CisgICAgICAgIChK
U0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVJc09iamVjdE9yTnVsbCk6IERlbGV0ZWQu
CisgICAgICAgICogZGZnL0RGR1NwZWN1bGF0aXZlSklULmg6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklU
Ojpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHA6CisgICAg
ICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUpOgorICAgICAgICAqIGZ0bC9G
VExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAg
ICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6
TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dl
ckRGR1RvQjM6OmNvbXBpbGVUeXBlT2ZJc09iamVjdCk6CisgICAgICAgIChKU0M6OkZUTDo6REZH
OjpMb3dlckRGR1RvQjM6OmNvbXBpbGVJc09iamVjdE9yTnVsbCk6IERlbGV0ZWQuCisgICAgICAg
ICogaml0L0pJVC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6cHJpdmF0ZUNvbXBpbGVNYWluUGFz
cyk6CisgICAgICAgICogbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc206CisgICAgICAgICog
cnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwOgorICAgICAgICAoSlNDOjpTTE9XX1BBVEhfREVD
TCk6CisgICAgICAgICogcnVudGltZS9Db21tb25TbG93UGF0aHMuaDoKKyAgICAgICAgKiBydW50
aW1lL09wZXJhdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpqc1R5cGVvZklzT2JqZWN0KToKKyAg
ICAgICAgKEpTQzo6anNJc09iamVjdFR5cGVPck51bGwpOiBEZWxldGVkLgorICAgICAgICAqIHJ1
bnRpbWUvT3BlcmF0aW9ucy5oOgorCiAyMDIwLTA4LTEzICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFp
a2FsZXNoQGdtYWlsLmNvbT4KIAogICAgICAgICBDYWNoZSBTdHJ1Y3R1cmU6OmF0dHJpYnV0ZUNo
YW5nZVRyYW5zaXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5yYiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRl
Y29kZUxpc3QucmIKaW5kZXggNTg3ODQ1ZmQ1MGUzMmViZmJlZTZkYmQ4ZDZlZjEwNTk0YWIzZDFj
NS4uZjBjZDFhMjQyMWM0NDkxOTdhOWExZDc5MTg3NGUwYzBjNDY2M2FiNiAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlTGlzdC5yYgorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVMaXN0LnJiCkBAIC0zMjgsMTIgKzMy
OCwxMiBAQCBvcF9ncm91cCA6VW5hcnlPcCwKICAgICAgICAgOnVuc2lnbmVkLAogICAgICAgICA6
aXNfZW1wdHksCiAgICAgICAgIDp0eXBlb2ZfaXNfdW5kZWZpbmVkLAorICAgICAgICA6dHlwZW9m
X2lzX29iamVjdCwKICAgICAgICAgOmlzX3VuZGVmaW5lZF9vcl9udWxsLAogICAgICAgICA6aXNf
Ym9vbGVhbiwKICAgICAgICAgOmlzX251bWJlciwKICAgICAgICAgOmlzX2JpZ19pbnQsCiAgICAg
ICAgIDppc19vYmplY3QsCi0gICAgICAgIDppc19vYmplY3Rfb3JfbnVsbCwKICAgICAgICAgOmlz
X2Z1bmN0aW9uLAogICAgICAgICA6aXNfY29uc3RydWN0b3IsCiAgICAgXSwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQnl0ZWNvZGVVc2VEZWYuY3BwCmluZGV4IDVmNTg2
NThhMmU2YjFlNDQ2ZDgzYTIxMDAwMjg1M2ViMjM4Y2M0MWIuLjUwZmMwMDk3YjBiNDUzYzI1NDVl
YWFkZDI5MWEzMWIwOTczOGZmNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZVVzZURlZi5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmNwcApAQCAtMTgzLDEyICsxODMsMTIgQEAgdm9pZCBjb21w
dXRlVXNlc0ZvckJ5dGVjb2RlSW5kZXhJbXBsKFZpcnR1YWxSZWdpc3RlciBzY29wZVJlZ2lzdGVy
LCBjb25zdCBJbnN0cnUKICAgICBVU0VTKE9wVHlwZW9mLCB2YWx1ZSkKICAgICBVU0VTKE9wSXNF
bXB0eSwgb3BlcmFuZCkKICAgICBVU0VTKE9wVHlwZW9mSXNVbmRlZmluZWQsIG9wZXJhbmQpCisg
ICAgVVNFUyhPcFR5cGVvZklzT2JqZWN0LCBvcGVyYW5kKQogICAgIFVTRVMoT3BJc1VuZGVmaW5l
ZE9yTnVsbCwgb3BlcmFuZCkKICAgICBVU0VTKE9wSXNCb29sZWFuLCBvcGVyYW5kKQogICAgIFVT
RVMoT3BJc051bWJlciwgb3BlcmFuZCkKICAgICBVU0VTKE9wSXNCaWdJbnQsIG9wZXJhbmQpCiAg
ICAgVVNFUyhPcElzT2JqZWN0LCBvcGVyYW5kKQotICAgIFVTRVMoT3BJc09iamVjdE9yTnVsbCwg
b3BlcmFuZCkKICAgICBVU0VTKE9wSXNDZWxsV2l0aFR5cGUsIG9wZXJhbmQpCiAgICAgVVNFUyhP
cElzRnVuY3Rpb24sIG9wZXJhbmQpCiAgICAgVVNFUyhPcElzQ29uc3RydWN0b3IsIG9wZXJhbmQp
CkBAIC00OTAsMTIgKzQ5MCwxMiBAQCB2b2lkIGNvbXB1dGVEZWZzRm9yQnl0ZWNvZGVJbmRleElt
cGwodW5zaWduZWQgbnVtVmFycywgY29uc3QgSW5zdHJ1Y3Rpb24qIGluc3RydQogICAgIERFRlMo
T3BJZGVudGl0eVdpdGhQcm9maWxlLCBzcmNEc3QpCiAgICAgREVGUyhPcElzRW1wdHksIGRzdCkK
ICAgICBERUZTKE9wVHlwZW9mSXNVbmRlZmluZWQsIGRzdCkKKyAgICBERUZTKE9wVHlwZW9mSXNP
YmplY3QsIGRzdCkKICAgICBERUZTKE9wSXNVbmRlZmluZWRPck51bGwsIGRzdCkKICAgICBERUZT
KE9wSXNCb29sZWFuLCBkc3QpCiAgICAgREVGUyhPcElzTnVtYmVyLCBkc3QpCiAgICAgREVGUyhP
cElzQmlnSW50LCBkc3QpCiAgICAgREVGUyhPcElzT2JqZWN0LCBkc3QpCi0gICAgREVGUyhPcElz
T2JqZWN0T3JOdWxsLCBkc3QpCiAgICAgREVGUyhPcElzQ2VsbFdpdGhUeXBlLCBkc3QpCiAgICAg
REVGUyhPcElzRnVuY3Rpb24sIGRzdCkKICAgICBERUZTKE9wSXNDb25zdHJ1Y3RvciwgZHN0KQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdl
bmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2Rl
R2VuZXJhdG9yLmNwcAppbmRleCAyMTVkNmI3ZTNjYTI5YWZkYmVjMGE4NDQwYTM1NzhiYjU5MDMy
YzI2Li5iZTNhYmY4ZDMzMzY3ZTI1MmQ5NmZmN2Q4MThhMDdlZTFjZmE0MGUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJh
dG9yLmNwcApAQCAtMTcxNSw3ICsxNzE1LDcgQEAgYm9vbCBCeXRlY29kZUdlbmVyYXRvcjo6ZW1p
dEVxdWFsaXR5T3BJbXBsKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogc3JjMSwgUmUKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSAib2JqZWN0IikgewogICAgICAg
ICAgICAgICAgIHJld2luZCgpOwotICAgICAgICAgICAgICAgIE9wSXNPYmplY3RPck51bGw6OmVt
aXQodGhpcywgZHN0LCBvcC5tX3ZhbHVlKTsKKyAgICAgICAgICAgICAgICBPcFR5cGVvZklzT2Jq
ZWN0OjplbWl0KHRoaXMsIGRzdCwgb3AubV92YWx1ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAodmFsdWUgPT0gImZ1bmN0aW9u
IikgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rl
c0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9Ob2Rlc0Nv
ZGVnZW4uY3BwCmluZGV4IDJlMDNlODUxYmU4MzA5NmJkODUzOGI5MDllODU0MWRkY2Y2MWFkOTYu
LmZlNmRjNWNhYjM5MmYwYjQ2OTU1YjMwMWZiNTQ0ZTJmYTEwMDIwYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXNDb2RlZ2VuLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVzQ29kZWdlbi5jcHAKQEAgLTQ5
MDIsOSArNDkwMiw5IEBAIFJlZ2lzdGVySUQqIENsYXNzRXhwck5vZGU6OmVtaXRCeXRlY29kZShC
eXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklECiAgICAgICAgIGdlbmVyYXRv
ci5lbWl0R2V0QnlJZChwcm90b1BhcmVudC5nZXQoKSwgc3VwZXJjbGFzcy5nZXQoKSwgZ2VuZXJh
dG9yLnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUpOwogCiAgICAgICAgIFJlZjxMYWJlbD4gcHJv
dG9QYXJlbnRJc09iamVjdE9yTnVsbExhYmVsID0gZ2VuZXJhdG9yLm5ld0xhYmVsKCk7Ci0gICAg
ICAgIGdlbmVyYXRvci5lbWl0SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdFVuYXJ5T3A8T3BJc09i
amVjdE9yTnVsbD4odGVtcFJlZ2lzdGVyLmdldCgpLCBwcm90b1BhcmVudC5nZXQoKSksIHByb3Rv
UGFyZW50SXNPYmplY3RPck51bGxMYWJlbC5nZXQoKSk7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0
SnVtcElmVHJ1ZShnZW5lcmF0b3IuZW1pdFVuYXJ5T3A8T3BJc0Z1bmN0aW9uPih0ZW1wUmVnaXN0
ZXIuZ2V0KCksIHByb3RvUGFyZW50LmdldCgpKSwgcHJvdG9QYXJlbnRJc09iamVjdE9yTnVsbExh
YmVsLmdldCgpKTsKLSAgICAgICAgZ2VuZXJhdG9yLmVtaXRUaHJvd1R5cGVFcnJvcigiVGhlIHZh
bHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmpl
Y3QuIl9zKTsKKyAgICAgICAgZ2VuZXJhdG9yLmVtaXRKdW1wSWZUcnVlKGdlbmVyYXRvci5lbWl0
SXNPYmplY3QodGVtcFJlZ2lzdGVyLmdldCgpLCBwcm90b1BhcmVudC5nZXQoKSksIHByb3RvUGFy
ZW50SXNPYmplY3RPck51bGxMYWJlbC5nZXQoKSk7CisgICAgICAgIGdlbmVyYXRvci5lbWl0SnVt
cElmVHJ1ZShnZW5lcmF0b3IuZW1pdElzTnVsbCh0ZW1wUmVnaXN0ZXIuZ2V0KCksIHByb3RvUGFy
ZW50LmdldCgpKSwgcHJvdG9QYXJlbnRJc09iamVjdE9yTnVsbExhYmVsLmdldCgpKTsKKyAgICAg
ICAgZ2VuZXJhdG9yLmVtaXRUaHJvd1R5cGVFcnJvcigiVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNs
YXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3Qgb3IgbnVsbC4iX3MpOwog
ICAgICAgICBnZW5lcmF0b3IuZW1pdExhYmVsKHByb3RvUGFyZW50SXNPYmplY3RPck51bGxMYWJl
bC5nZXQoKSk7CiAKICAgICAgICAgZ2VuZXJhdG9yLmVtaXREaXJlY3RQdXRCeUlkKGNvbnN0cnVj
dG9yLmdldCgpLCBnZW5lcmF0b3IucHJvcGVydHlOYW1lcygpLnVuZGVyc2NvcmVQcm90bywgc3Vw
ZXJjbGFzcy5nZXQoKSwgUHJvcGVydHlOb2RlOjpVbmtub3duKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaApp
bmRleCBmNGE4Mjc4OTJlZTc4OWE2YjE0YmMwZTRkNWMwNjhhZTM1MjVkOWUzLi5kMTJhYTE1NGNj
NmJjMjA3YWY4MzcxZTMwN2EwZTVjN2ZlN2NiYjhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0x
NDUxLDEzICsxNDUxLDEzIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRl
VHlwZT46OmV4ZWN1dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAKICAgICBjYXNlIElz
RW1wdHk6CiAgICAgY2FzZSBUeXBlT2ZJc1VuZGVmaW5lZDoKKyAgICBjYXNlIFR5cGVPZklzT2Jq
ZWN0OgogICAgIGNhc2UgSXNVbmRlZmluZWRPck51bGw6CiAgICAgY2FzZSBJc0Jvb2xlYW46CiAg
ICAgY2FzZSBJc051bWJlcjoKICAgICBjYXNlIElzQmlnSW50OgogICAgIGNhc2UgTnVtYmVySXNJ
bnRlZ2VyOgogICAgIGNhc2UgSXNPYmplY3Q6Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAg
ICBjYXNlIElzRnVuY3Rpb246CiAgICAgY2FzZSBJc0NvbnN0cnVjdG9yOgogICAgIGNhc2UgSXND
ZWxsV2l0aFR5cGU6CkBAIC0xNDc1LDYgKzE0NzUsMjEgQEAgYm9vbCBBYnN0cmFjdEludGVycHJl
dGVyPEFic3RyYWN0U3RhdGVUeXBlPjo6ZXhlY3V0ZUVmZmVjdHModW5zaWduZWQgY2xvYmJlckxp
bWkKICAgICAgICAgICAgICAgICAgICAgPyBjaGlsZC52YWx1ZSgpLmFzQ2VsbCgpLT5zdHJ1Y3R1
cmUobV92bSktPm1hc3F1ZXJhZGVzQXNVbmRlZmluZWQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVj
dEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKQogICAgICAgICAgICAgICAgICAgICA6IGNoaWxk
LnZhbHVlKCkuaXNVbmRlZmluZWQoKSkpOwogICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKKyAgICAgICAgICAgICAgICBpZiAoY2hpbGQudmFs
dWUoKS5pc09iamVjdCgpKSB7CisgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3Qg
PSBhc09iamVjdChjaGlsZC52YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG9iamVj
dC0+dHlwZSgpID09IEpTRnVuY3Rpb25UeXBlKQorICAgICAgICAgICAgICAgICAgICAgICAgc2V0
Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGZhbHNlKSk7CisgICAgICAgICAgICAgICAgICAgIGVs
c2UgaWYgKCEob2JqZWN0LT5pbmxpbmVUeXBlRmxhZ3MoKSAmIE92ZXJyaWRlc0dldENhbGxEYXRh
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbigh
Y2hpbGQudmFsdWUoKS5hc0NlbGwoKS0+c3RydWN0dXJlKG1fdm0pLT5tYXNxdWVyYWRlc0FzVW5k
ZWZpbmVkKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGlj
KSkpKTsKKyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICAvLyBGSVhNRTogVGhpcyBjb3VsZCBqdXN0IGNhbGwgZ2V0Q2FsbERhdGEuCisgICAgICAgICAg
ICAgICAgICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTQ0NDU3CisgICAgICAgICAgICAgICAgICAgICAgICBjb25zdGFudFdhc1NldCA9IGZhbHNlOwor
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAg
ICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihjaGlsZC52YWx1ZSgpLmlzTnVs
bCgpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIElzVW5kZWZp
bmVkT3JOdWxsOgogICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbihj
aGlsZC52YWx1ZSgpLmlzVW5kZWZpbmVkT3JOdWxsKCkpKTsKICAgICAgICAgICAgICAgICBicmVh
azsKQEAgLTE0OTMsMjEgKzE1MDgsNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJh
Y3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVyTGltaQogICAgICAg
ICAgICAgY2FzZSBJc09iamVjdDoKICAgICAgICAgICAgICAgICBzZXRDb25zdGFudChub2RlLCBq
c0Jvb2xlYW4oY2hpbGQudmFsdWUoKS5pc09iamVjdCgpKSk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICBjYXNlIElzT2JqZWN0T3JOdWxsOgotICAgICAgICAgICAgICAgIGlm
IChjaGlsZC52YWx1ZSgpLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgSlNPYmpl
Y3QqIG9iamVjdCA9IGFzT2JqZWN0KGNoaWxkLnZhbHVlKCkpOwotICAgICAgICAgICAgICAgICAg
ICBpZiAob2JqZWN0LT50eXBlKCkgPT0gSlNGdW5jdGlvblR5cGUpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBzZXRDb25zdGFudChub2RlLCBqc0Jvb2xlYW4oZmFsc2UpKTsKLSAgICAgICAgICAg
ICAgICAgICAgZWxzZSBpZiAoIShvYmplY3QtPmlubGluZVR5cGVGbGFncygpICYgT3ZlcnJpZGVz
R2V0Q2FsbERhdGEpKQotICAgICAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwg
anNCb29sZWFuKCFjaGlsZC52YWx1ZSgpLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUobV92bSktPm1hc3F1
ZXJhZGVzQXNVbmRlZmluZWQobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmln
aW4uc2VtYW50aWMpKSkpOwotICAgICAgICAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIGp1c3QgY2FsbCBnZXRDYWxsRGF0YS4K
LSAgICAgICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDQ0NTcKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0
ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICB9IGVsc2UK
LSAgICAgICAgICAgICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGNoaWxkLnZh
bHVlKCkuaXNOdWxsKCkpKTsKLSAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGNh
c2UgSXNGdW5jdGlvbjoKICAgICAgICAgICAgICAgICBpZiAoY2hpbGQudmFsdWUoKS5pc09iamVj
dCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdChj
aGlsZC52YWx1ZSgpKTsKQEAgLTE2MDIsNiArMTYwMiwzOCBAQCBib29sIEFic3RyYWN0SW50ZXJw
cmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0cyh1bnNpZ25lZCBjbG9iYmVy
TGltaQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKKyAgICAg
ICAgICAgIC8vIEZJWE1FOiBVc2UgdGhlIG1hc3F1ZXJhZGVzLWFzLXVuZGVmaW5lZCB3YXRjaHBv
aW50IHRoaW5neS4KKyAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDQ0NTYKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gVGhlc2UgZXhw
cmVzc2lvbnMgYXJlIGNvbXBsaWNhdGVkIHRvIHBhcnNlLiBBIGhlbHBmdWwgd2F5IHRvIHBhcnNl
IHRoaXMgaXMgdGhhdAorICAgICAgICAgICAgLy8gIiEoVCAmIH5TKSIgbWVhbnMgIlQgaXMgYSBz
dWJzZXQgb2YgUyIuIENvbnZlcnNlbHksICIhKFQgJiBTKSIgbWVhbnMgIlQgaXMgYQorICAgICAg
ICAgICAgLy8gZGlzam9pbnQgc2V0IGZyb20gUyIuIFRoaW5ncyBsaWtlICJUIC0gUyIgbWVhbnMg
dGhhdCwgcHJvdmlkZWQgdGhhdCBTIGlzIGEKKyAgICAgICAgICAgIC8vIHN1YnNldCBvZiBULCBp
dCdzIHRoZSAic2V0IG9mIGFsbCB0aGluZ3MgaW4gVCBidXQgbm90IGluIFMiLiBUaGluZ3MgbGlr
ZSAiVCB8IFMiCisgICAgICAgICAgICAvLyBtZWFuIHRoZSAidW5pb24gb2YgVCBhbmQgUyIuCisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIC8vIElzIHRoZSBjaGlsZCdzIHR5cGUgYW4gb2JqZWN0
IHRoYXQgaXNuJ3QgYW4gb3RoZXItb2JqZWN0IChpLmUuIG9iamVjdCB0aGF0IGNvdWxkCisgICAg
ICAgICAgICAvLyBoYXZlIG1hc3F1YXJlZGVzLWFzLXVuZGVmaW5lZCB0cmFwcykgYW5kIGlzbid0
IGEgZnVuY3Rpb24/IFRoZW46IHdlIHNob3VsZCBmb2xkCisgICAgICAgICAgICAvLyB0aGlzIHRv
IHRydWUuCisgICAgICAgICAgICBpZiAoIShjaGlsZC5tX3R5cGUgJiB+KFNwZWNPYmplY3QgLSBT
cGVjT2JqZWN0T3RoZXIgLSBTcGVjRnVuY3Rpb24pKSkgeworICAgICAgICAgICAgICAgIHNldENv
bnN0YW50KG5vZGUsIGpzQm9vbGVhbih0cnVlKSk7CisgICAgICAgICAgICAgICAgY29uc3RhbnRX
YXNTZXQgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgCisgICAgICAgICAgICAvLyBJcyB0aGUgY2hpbGQncyB0eXBlIGRlZmluaXRlbHkg
bm90IGVpdGhlciBvZjogYW4gb2JqZWN0IHRoYXQgaXNuJ3QgYSBmdW5jdGlvbiwKKyAgICAgICAg
ICAgIC8vIG9yIGVpdGhlciB1bmRlZmluZWQgb3IgbnVsbD8gVGhlbjogd2Ugc2hvdWxkIGZvbGQg
dGhpcyB0byBmYWxzZS4gVGhpcyBtZWFucworICAgICAgICAgICAgLy8gZm9yIGV4YW1wbGUgdGhh
dCBpZiBpdCdzIGFueSBub24tZnVuY3Rpb24gb2JqZWN0LCBpbmNsdWRpbmcgdGhvc2UgdGhhdCBo
YXZlCisgICAgICAgICAgICAvLyBtYXNxdWVyYWRlcy1hcy11bmRlZmluZWQgdHJhcHMsIHRoZW4g
d2UgZG9uJ3QgZm9sZC4gSXQgYWxzbyBtZWFucyB3ZSB3b24ndCBmb2xkCisgICAgICAgICAgICAv
LyBpZiBpdCdzIHVuZGVmaW5lZC1vci1udWxsLCBzaW5jZSB0aGUgdHlwZSBiaXRzIGRvbid0IGRp
c3Rpbmd1aXNoIGJldHdlZW4KKyAgICAgICAgICAgIC8vIHVuZGVmaW5lZCAod2hpY2ggc2hvdWxk
IGZvbGQgdG8gZmFsc2UpIGFuZCBudWxsICh3aGljaCBzaG91bGQgZm9sZCB0byB0cnVlKS4KKyAg
ICAgICAgICAgIGlmICghKGNoaWxkLm1fdHlwZSAmICgoU3BlY09iamVjdCAtIFNwZWNGdW5jdGlv
bikgfCBTcGVjT3RoZXIpKSkgeworICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpz
Qm9vbGVhbihmYWxzZSkpOworICAgICAgICAgICAgICAgIGNvbnN0YW50V2FzU2V0ID0gdHJ1ZTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgSXNVbmRlZmluZWRPck51bGw6CiAgICAgICAg
ICAgICBpZiAoIShjaGlsZC5tX3R5cGUgJiB+U3BlY090aGVyKSkgewpAQCAtMTY4OCwzOCArMTcy
MCw2IEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1
dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIElzT2JqZWN0T3JOdWxsOgotICAgICAgICAgICAgLy8gRklYTUU6IFVzZSB0aGUgbWFzcXVl
cmFkZXMtYXMtdW5kZWZpbmVkIHdhdGNocG9pbnQgdGhpbmd5LgotICAgICAgICAgICAgLy8gaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDQ1NgotICAgICAgICAgICAg
Ci0gICAgICAgICAgICAvLyBUaGVzZSBleHByZXNzaW9ucyBhcmUgY29tcGxpY2F0ZWQgdG8gcGFy
c2UuIEEgaGVscGZ1bCB3YXkgdG8gcGFyc2UgdGhpcyBpcyB0aGF0Ci0gICAgICAgICAgICAvLyAi
IShUICYgflMpIiBtZWFucyAiVCBpcyBhIHN1YnNldCBvZiBTIi4gQ29udmVyc2VseSwgIiEoVCAm
IFMpIiBtZWFucyAiVCBpcyBhCi0gICAgICAgICAgICAvLyBkaXNqb2ludCBzZXQgZnJvbSBTIi4g
VGhpbmdzIGxpa2UgIlQgLSBTIiBtZWFucyB0aGF0LCBwcm92aWRlZCB0aGF0IFMgaXMgYQotICAg
ICAgICAgICAgLy8gc3Vic2V0IG9mIFQsIGl0J3MgdGhlICJzZXQgb2YgYWxsIHRoaW5ncyBpbiBU
IGJ1dCBub3QgaW4gUyIuIFRoaW5ncyBsaWtlICJUIHwgUyIKLSAgICAgICAgICAgIC8vIG1lYW4g
dGhlICJ1bmlvbiBvZiBUIGFuZCBTIi4KLSAgICAgICAgICAgIAotICAgICAgICAgICAgLy8gSXMg
dGhlIGNoaWxkJ3MgdHlwZSBhbiBvYmplY3QgdGhhdCBpc24ndCBhbiBvdGhlci1vYmplY3QgKGku
ZS4gb2JqZWN0IHRoYXQgY291bGQKLSAgICAgICAgICAgIC8vIGhhdmUgbWFzcXVhcmVkZXMtYXMt
dW5kZWZpbmVkIHRyYXBzKSBhbmQgaXNuJ3QgYSBmdW5jdGlvbj8gIFRoZW46IHdlIHNob3VsZCBm
b2xkCi0gICAgICAgICAgICAvLyB0aGlzIHRvIHRydWUuCi0gICAgICAgICAgICBpZiAoIShjaGls
ZC5tX3R5cGUgJiB+KFNwZWNPYmplY3QgLSBTcGVjT2JqZWN0T3RoZXIgLSBTcGVjRnVuY3Rpb24p
KSkgewotICAgICAgICAgICAgICAgIHNldENvbnN0YW50KG5vZGUsIGpzQm9vbGVhbih0cnVlKSk7
Ci0gICAgICAgICAgICAgICAgY29uc3RhbnRXYXNTZXQgPSB0cnVlOwotICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICAvLyBJcyB0
aGUgY2hpbGQncyB0eXBlIGRlZmluaXRlbHkgbm90IGVpdGhlciBvZjogYW4gb2JqZWN0IHRoYXQg
aXNuJ3QgYSBmdW5jdGlvbiwKLSAgICAgICAgICAgIC8vIG9yIGVpdGhlciB1bmRlZmluZWQgb3Ig
bnVsbD8gIFRoZW46IHdlIHNob3VsZCBmb2xkIHRoaXMgdG8gZmFsc2UuICBUaGlzIG1lYW5zCi0g
ICAgICAgICAgICAvLyBmb3IgZXhhbXBsZSB0aGF0IGlmIGl0J3MgYW55IG5vbi1mdW5jdGlvbiBv
YmplY3QsIGluY2x1ZGluZyB0aG9zZSB0aGF0IGhhdmUKLSAgICAgICAgICAgIC8vIG1hc3F1ZXJh
ZGVzLWFzLXVuZGVmaW5lZCB0cmFwcywgdGhlbiB3ZSBkb24ndCBmb2xkLiBJdCBhbHNvIG1lYW5z
IHdlIHdvbid0IGZvbGQKLSAgICAgICAgICAgIC8vIGlmIGl0J3MgdW5kZWZpbmVkLW9yLW51bGws
IHNpbmNlIHRoZSB0eXBlIGJpdHMgZG9uJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbgotICAgICAgICAg
ICAgLy8gdW5kZWZpbmVkICh3aGljaCBzaG91bGQgZm9sZCB0byBmYWxzZSkgYW5kIG51bGwgKHdo
aWNoIHNob3VsZCBmb2xkIHRvIHRydWUpLgotICAgICAgICAgICAgaWYgKCEoY2hpbGQubV90eXBl
ICYgKChTcGVjT2JqZWN0IC0gU3BlY0Z1bmN0aW9uKSB8IFNwZWNPdGhlcikpKSB7Ci0gICAgICAg
ICAgICAgICAgc2V0Q29uc3RhbnQobm9kZSwganNCb29sZWFuKGZhbHNlKSk7Ci0gICAgICAgICAg
ICAgICAgY29uc3RhbnRXYXNTZXQgPSB0cnVlOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2Fz
ZSBJc0Z1bmN0aW9uOgogICAgICAgICAgICAgaWYgKCEoY2hpbGQubV90eXBlICYgflNwZWNGdW5j
dGlvbikpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNv
ZGVQYXJzZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNl
ci5jcHAKaW5kZXggYWM0Nzc1ODRiNDg3MDVlNzMxMTQ3ZjhkY2YwZGY3NzQxODRhZGIzMS4uNjdi
YTEyZGYzMWQ5NmJjYmRkOGM5ZjI3ZDc3MWVkOWZkOWNlOTIyNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTU3NDIsNiArNTc0Miwx
MiBAQCB2b2lkIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZUJsb2NrKHVuc2lnbmVkIGxpbWl0KQogICAg
ICAgICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKFR5cGVPZklzVW5kZWZpbmVk
LCB2YWx1ZSkpOwogICAgICAgICAgICAgTkVYVF9PUENPREUob3BfaXNfdW5kZWZpbmVkKTsKICAg
ICAgICAgfQorICAgICAgICBjYXNlIG9wX3R5cGVvZl9pc19vYmplY3Q6IHsKKyAgICAgICAgICAg
IGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wVHlwZW9mSXNPYmplY3Q+
KCk7CisgICAgICAgICAgICBOb2RlKiB2YWx1ZSA9IGdldChieXRlY29kZS5tX29wZXJhbmQpOwor
ICAgICAgICAgICAgc2V0KGJ5dGVjb2RlLm1fZHN0LCBhZGRUb0dyYXBoKFR5cGVPZklzT2JqZWN0
LCB2YWx1ZSkpOworICAgICAgICAgICAgTkVYVF9PUENPREUob3BfdHlwZW9mX2lzX29iamVjdCk7
CisgICAgICAgIH0KICAgICAgICAgY2FzZSBvcF9pc191bmRlZmluZWRfb3JfbnVsbDogewogICAg
ICAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BJc1VuZGVm
aW5lZE9yTnVsbD4oKTsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGJ5dGVjb2RlLm1f
b3BlcmFuZCk7CkBAIC01Nzg4LDEzICs1Nzk0LDYgQEAgdm9pZCBCeXRlQ29kZVBhcnNlcjo6cGFy
c2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2lzX29i
amVjdCk7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIG9wX2lzX29iamVjdF9vcl9udWxsOiB7
Ci0gICAgICAgICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcElz
T2JqZWN0T3JOdWxsPigpOwotICAgICAgICAgICAgTm9kZSogdmFsdWUgPSBnZXQoYnl0ZWNvZGUu
bV9vcGVyYW5kKTsKLSAgICAgICAgICAgIHNldChieXRlY29kZS5tX2RzdCwgYWRkVG9HcmFwaChJ
c09iamVjdE9yTnVsbCwgdmFsdWUpKTsKLSAgICAgICAgICAgIE5FWFRfT1BDT0RFKG9wX2lzX29i
amVjdF9vcl9udWxsKTsKLSAgICAgICAgfQotCiAgICAgICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246
IHsKICAgICAgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9w
SXNGdW5jdGlvbj4oKTsKICAgICAgICAgICAgIE5vZGUqIHZhbHVlID0gZ2V0KGJ5dGVjb2RlLm1f
b3BlcmFuZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFi
aWxpdGllcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5j
cHAKaW5kZXggMWM2YzY2ZjgwMjM1Y2Y5NjllYmIyMzE2MTkzY2Q4MzQ3MGQ4YzQzNS4uNjFiZWZl
NjJkN2NmYzI0ZjYxMjFlNTIxYTExNmVlY2FlMzQ5MTQxYSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVzLmNwcApAQCAtMTQ0LDEyICsxNDQsMTIgQEAgQ2Fw
YWJpbGl0eUxldmVsIGNhcGFiaWxpdHlMZXZlbChPcGNvZGVJRCBvcGNvZGVJRCwgQ29kZUJsb2Nr
KiBjb2RlQmxvY2ssIGNvbnN0IEkKICAgICBjYXNlIG9wX2luc3RhbmNlb2ZfY3VzdG9tOgogICAg
IGNhc2Ugb3BfaXNfZW1wdHk6CiAgICAgY2FzZSBvcF90eXBlb2ZfaXNfdW5kZWZpbmVkOgorICAg
IGNhc2Ugb3BfdHlwZW9mX2lzX29iamVjdDoKICAgICBjYXNlIG9wX2lzX3VuZGVmaW5lZF9vcl9u
dWxsOgogICAgIGNhc2Ugb3BfaXNfYm9vbGVhbjoKICAgICBjYXNlIG9wX2lzX251bWJlcjoKICAg
ICBjYXNlIG9wX2lzX2JpZ19pbnQ6CiAgICAgY2FzZSBvcF9pc19vYmplY3Q6Ci0gICAgY2FzZSBv
cF9pc19vYmplY3Rfb3JfbnVsbDoKICAgICBjYXNlIG9wX2lzX2NlbGxfd2l0aF90eXBlOgogICAg
IGNhc2Ugb3BfaXNfZnVuY3Rpb246CiAgICAgY2FzZSBvcF9pc19jb25zdHJ1Y3RvcjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgKaW5kZXggODUyMDBkNWRhZjFkZWU4
ZTkwZmU4MTQxZGJiMWNjYmQ5YjUzMzdlZS4uM2Y3NDFkNGFlY2ZhYzZhMDViNjE0YTZjZjRjN2Ey
NzdlMDcxNWVhZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9i
YmVyaXplLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmgK
QEAgLTU5Miw5ICs1OTIsOSBAQCB2b2lkIGNsb2JiZXJpemUoR3JhcGgmIGdyYXBoLCBOb2RlKiBu
b2RlLCBjb25zdCBSZWFkRnVuY3RvciYgcmVhZCwgY29uc3QgV3JpdGVGdQogICAgICAgICB3cml0
ZShIZWFwT2JqZWN0Q291bnQpOwogICAgICAgICByZXR1cm47CiAKLSAgICBjYXNlIElzT2JqZWN0
T3JOdWxsOgorICAgIGNhc2UgVHlwZU9mSXNPYmplY3Q6CiAgICAgICAgIHJlYWQoTWlzY0ZpZWxk
cyk7Ci0gICAgICAgIGRlZihIZWFwTG9jYXRpb24oSXNPYmplY3RPck51bGxMb2MsIE1pc2NGaWVs
ZHMsIG5vZGUtPmNoaWxkMSgpKSwgTGF6eU5vZGUobm9kZSkpOworICAgICAgICBkZWYoSGVhcExv
Y2F0aW9uKFR5cGVPZklzT2JqZWN0TG9jLCBNaXNjRmllbGRzLCBub2RlLT5jaGlsZDEoKSksIExh
enlOb2RlKG5vZGUpKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBjYXNlIElzRnVu
Y3Rpb246CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKaW5kZXggNzNjNzhl
Mzc1Yjk4OWVlZGUxZmJjYmZkMTNmZDQ2ZDdlZDBmMmUyMC4uMDQ4YTdiYTQyNTI4NTcyZTU4Y2Ix
NDg3NGFmNzU4ZGYwM2NlZTk4NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dD
LmNwcApAQCAtMTQ0LDEzICsxNDQsMTMgQEAgYm9vbCBkb2VzR0MoR3JhcGgmIGdyYXBoLCBOb2Rl
KiBub2RlKQogICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJc0VtcHR5
OgogICAgIGNhc2UgVHlwZU9mSXNVbmRlZmluZWQ6CisgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoK
ICAgICBjYXNlIElzVW5kZWZpbmVkT3JOdWxsOgogICAgIGNhc2UgSXNCb29sZWFuOgogICAgIGNh
c2UgSXNOdW1iZXI6CiAgICAgY2FzZSBJc0JpZ0ludDoKICAgICBjYXNlIE51bWJlcklzSW50ZWdl
cjoKICAgICBjYXNlIElzT2JqZWN0OgotICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAgICAgY2Fz
ZSBJc0Z1bmN0aW9uOgogICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAgICBjYXNlIElzQ2VsbFdp
dGhUeXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBo
YXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKaW5k
ZXggOTBlOWIxMzRlZWEwMjE4OTc0M2NmMTQxYTdkOWE2ZjJlNzE2YjA0My4uY2M0OTQ3MmI5NTRj
NTc2YTcyMmU0YmQ1YWU5YTc2ZGEzYTlkNjgxNSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCkBAIC0yNzE0LDExICsyNzE0LDExIEBAIHByaXZhdGU6CiAg
ICAgICAgIGNhc2UgSXNUeXBlZEFycmF5VmlldzoKICAgICAgICAgY2FzZSBJc0VtcHR5OgogICAg
ICAgICBjYXNlIFR5cGVPZklzVW5kZWZpbmVkOgorICAgICAgICBjYXNlIFR5cGVPZklzT2JqZWN0
OgogICAgICAgICBjYXNlIElzVW5kZWZpbmVkT3JOdWxsOgogICAgICAgICBjYXNlIElzQm9vbGVh
bjoKICAgICAgICAgY2FzZSBJc051bWJlcjoKICAgICAgICAgY2FzZSBJc0JpZ0ludDoKLSAgICAg
ICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAgICAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAgICAg
ICBjYXNlIElzQ29uc3RydWN0b3I6CiAgICAgICAgIGNhc2UgQ3JlYXRlRGlyZWN0QXJndW1lbnRz
OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24u
Y3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uY3BwCmluZGV4
IGIyMDNkOWVhMzAyNDA2M2JhNjk1YjU3OGM2ZmZhMzY0ZjY5YTlkM2IuLmRjZjhiYmZkOWRhMTEy
Njc4ZDIzMTAwMTVjNDdjNjc1NjY1ODgzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAKQEAgLTYyLDggKzYyLDggQEAgdm9pZCBwcmludEludGVy
bmFsKFByaW50U3RyZWFtJiBvdXQsIExvY2F0aW9uS2luZCBraW5kKQogICAgICAgICBvdXQucHJp
bnQoIkludmFsaWRhdGlvblBvaW50TG9jIik7CiAgICAgICAgIHJldHVybjsKICAgICAgICAgCi0g
ICAgY2FzZSBJc09iamVjdE9yTnVsbExvYzoKLSAgICAgICAgb3V0LnByaW50KCJJc09iamVjdE9y
TnVsbExvYyIpOworICAgIGNhc2UgVHlwZU9mSXNPYmplY3RMb2M6CisgICAgICAgIG91dC5wcmlu
dCgiVHlwZU9mSXNPYmplY3RMb2MiKTsKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2FzZSBJc0Z1
bmN0aW9uTG9jOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFw
TG9jYXRpb24uaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgK
aW5kZXggNDQ0MjlhNjdiNmY1MjE4ZGQwYWNjYzkzNGI3NzY0YWViOGQ1ZDc4MC4uYWU0ZWVkNmI3
MDEzNjA2MDI2MTg5YmFmZmYyNDcxMDc3MWE5MzU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRpb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5oCkBAIC01Niw3ICs1Niw3IEBAIGVudW0gTG9jYXRpb25L
aW5kIHsKICAgICBJbnZhbGlkYXRpb25Qb2ludExvYywKICAgICBJc0Z1bmN0aW9uTG9jLAogICAg
IElzQ29uc3RydWN0b3JMb2MsCi0gICAgSXNPYmplY3RPck51bGxMb2MsCisgICAgVHlwZU9mSXNP
YmplY3RMb2MsCiAgICAgTmFtZWRQcm9wZXJ0eUxvYywKICAgICBSZWdFeHBPYmplY3RMYXN0SW5k
ZXhMb2MsCiAgICAgU2V0dGVyTG9jLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlw
ZS5oCmluZGV4IGUyYzQ4YWVlNWYwZGE5MjhiYTk0MDU4ZTE0MWMzZTVlZDdjZTQ1NmYuLjE5ZDQ2
NjNjYWFjMjBkMzc5YTI0Yzc5NGM0OTI4MWM1MTdkMmRhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR05vZGVUeXBlLmgKQEAgLTM5Myw2ICszOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsg
bmFtZXNwYWNlIERGRyB7CiAgICAgbWFjcm8oSXNDZWxsV2l0aFR5cGUsIE5vZGVSZXN1bHRCb29s
ZWFuKSBcCiAgICAgbWFjcm8oSXNFbXB0eSwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNy
byhUeXBlT2ZJc1VuZGVmaW5lZCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKKyAgICBtYWNybyhUeXBl
T2ZJc09iamVjdCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc1VuZGVmaW5lZE9y
TnVsbCwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc0Jvb2xlYW4sIE5vZGVSZXN1
bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNOdW1iZXIsIE5vZGVSZXN1bHRCb29sZWFuKSBcCkBA
IC00MDAsNyArNDAxLDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1h
Y3JvKElzQmlnSW50LCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3JvKE51bWJlcklzSW50
ZWdlciwgTm9kZVJlc3VsdEJvb2xlYW4pIFwKICAgICBtYWNybyhJc09iamVjdCwgTm9kZVJlc3Vs
dEJvb2xlYW4pIFwKLSAgICBtYWNybyhJc09iamVjdE9yTnVsbCwgTm9kZVJlc3VsdEJvb2xlYW4p
IFwKICAgICBtYWNybyhJc0Z1bmN0aW9uLCBOb2RlUmVzdWx0Qm9vbGVhbikgXAogICAgIG1hY3Jv
KElzQ29uc3RydWN0b3IsIE5vZGVSZXN1bHRCb29sZWFuKSBcCiAgICAgbWFjcm8oSXNUeXBlZEFy
cmF5VmlldywgTm9kZVJlc3VsdEJvb2xlYW4pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR09wZXJhdGlvbnMuY3BwCmluZGV4IGU0MzEwMzlkZTg5NzFlMWUyYzMzY2NkYzI4MDBmZjU2
M2RlMmYzNzkuLjkxZDQ4NjM3Y2QzMGJkODk4NDZhNWMyMTFhYzA1YmI2YjFlZTZlOTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT3BlcmF0aW9ucy5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmNwcApAQCAtMjEwMyw3ICsy
MTAzLDcgQEAgSlNDZWxsKiBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkNyZWF0ZVJlc3QoSlNHbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVnaXN0ZXIKICAgICByZXR1cm4gY29uc3RydWN0QXJy
YXkoZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUsIGFyZ3VtZW50c1RvQ29weVJlZ2lvbiwgYXJyYXlT
aXplKTsKIH0KIAotc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uT2JqZWN0SXNPYmplY3Qo
SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDZWxsKiBvYmplY3QpCitzaXplX3QgSklU
X09QRVJBVElPTiBvcGVyYXRpb25UeXBlT2ZJc09iamVjdChKU0dsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0LCBKU0NlbGwqIG9iamVjdCkKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZt
KCk7CiAgICAgQ2FsbEZyYW1lKiBjYWxsRnJhbWUgPSBERUNMQVJFX0NBTExfRlJBTUUodm0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPcGVyYXRpb25zLmggYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlvbnMuaAppbmRleCBhMzhjNmRkYzlh
MzY3ZjMyYzExODI2ZjI5ZTY0NTFiODY0YTE1ODcxLi45NjY3M2JiOWRkOTUwYjRlMzdjN2VjYWM3
NjA3YjA2MDZmODRiN2Q1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09wZXJhdGlv
bnMuaApAQCAtMjEzLDcgKzIxMyw3IEBAIEpTQ2VsbCogSklUX09QRVJBVElPTiBvcGVyYXRpb25N
YXBTZXQoSlNHbG9iYWxPYmplY3QqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwKIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25XZWFrU2V0QWRkKFZNKiwgSlNDZWxsKiwgSlNDZWxsKiwgaW50
MzJfdCkgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbldlYWtNYXBT
ZXQoVk0qLCBKU0NlbGwqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSwgaW50MzJfdCkgV1RGX0lO
VEVSTkFMOwogZG91YmxlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uRk1vZE9uSW50cyhpbnQzMl90
LCBpbnQzMl90KSBXVEZfSU5URVJOQUw7Ci1zaXplX3QgSklUX09QRVJBVElPTiBvcGVyYXRpb25P
YmplY3RJc09iamVjdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsKK3Np
emVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvblR5cGVPZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKikgV1RGX0lOVEVSTkFMOwogc2l6ZV90IEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
T2JqZWN0SXNGdW5jdGlvbihKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRFUk5BTDsK
IHNpemVfdCBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbklzQ29uc3RydWN0b3IoSlNHbG9iYWxPYmpl
Y3QqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFMOwogSlNDZWxsKiBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblR5cGVPZk9iamVjdChKU0dsb2JhbE9iamVjdCosIEpTQ2VsbCopIFdURl9JTlRF
Uk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlv
blByb3BhZ2F0aW9uUGhhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKaW5kZXggNzEwM2Y5ZGI5MGJkYjdmMzUwNWZkYzEy
MzQ5ZDJiZmQ3NmQ0ZjJmMS4uODZmODdmMjU3NmRlNzgxNGVmZWFjYzkwNWI2OTMyODdmYmVkYzZl
MiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJv
cGFnYXRpb25QaGFzZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVk
aWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKQEAgLTEwMzUsMTMgKzEwMzUsMTMgQEAgcHJpdmF0
ZToKICAgICAgICAgY2FzZSBJbnN0YW5jZU9mQ3VzdG9tOgogICAgICAgICBjYXNlIElzRW1wdHk6
CiAgICAgICAgIGNhc2UgVHlwZU9mSXNVbmRlZmluZWQ6CisgICAgICAgIGNhc2UgVHlwZU9mSXNP
YmplY3Q6CiAgICAgICAgIGNhc2UgSXNVbmRlZmluZWRPck51bGw6CiAgICAgICAgIGNhc2UgSXNC
b29sZWFuOgogICAgICAgICBjYXNlIElzTnVtYmVyOgogICAgICAgICBjYXNlIElzQmlnSW50Ogog
ICAgICAgICBjYXNlIE51bWJlcklzSW50ZWdlcjoKICAgICAgICAgY2FzZSBJc09iamVjdDoKLSAg
ICAgICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAgICAgICAgY2FzZSBJc0Z1bmN0aW9uOgogICAg
ICAgICBjYXNlIElzQ29uc3RydWN0b3I6CiAgICAgICAgIGNhc2UgSXNDZWxsV2l0aFR5cGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IDA0MGQz
ZjNjYzhkNGI0MTk3NzJjOWExYWQ2OGI2ZTRiZDkyMzc5MWYuLmVlMmFjYjczYWMxY2Q1ZjkxNmU0
MGRjOTlmZjU0ZWE4OWM1YjI4MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCkBAIC0yNTcsMTMgKzI1NywxMyBAQCBib29sIHNhZmVUb0V4ZWN1dGUo
QWJzdHJhY3RTdGF0ZVR5cGUmIHN0YXRlLCBHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGJvb2wg
aWdubwogICAgIGNhc2UgT3ZlcnJpZGVzSGFzSW5zdGFuY2U6CiAgICAgY2FzZSBJc0VtcHR5Ogog
ICAgIGNhc2UgVHlwZU9mSXNVbmRlZmluZWQ6CisgICAgY2FzZSBUeXBlT2ZJc09iamVjdDoKICAg
ICBjYXNlIElzVW5kZWZpbmVkT3JOdWxsOgogICAgIGNhc2UgSXNCb29sZWFuOgogICAgIGNhc2Ug
SXNOdW1iZXI6CiAgICAgY2FzZSBJc0JpZ0ludDoKICAgICBjYXNlIE51bWJlcklzSW50ZWdlcjoK
ICAgICBjYXNlIElzT2JqZWN0OgotICAgIGNhc2UgSXNPYmplY3RPck51bGw6CiAgICAgY2FzZSBJ
c0Z1bmN0aW9uOgogICAgIGNhc2UgSXNDb25zdHJ1Y3RvcjoKICAgICBjYXNlIElzQ2VsbFdpdGhU
eXBlOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNw
cAppbmRleCBmNDZiNDE4Nzk5YjhlMzRiNzc2MDE2YTk5ZTBiNjQ4Nzc3ZWQ0MWQzLi5hMDgxNzlh
NGRlZDI0N2ZlNzZhYjQ5Y2ZmOTRiOGRjNjZmYWQ1MTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcApAQCAtOTUwNiw3ICs5NTA2LDcgQEAg
dm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0KE5vZGUqIG5vZGUpCiAgICAgdW5i
bGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUpOwogfQogCi12b2lkIFNwZWN1bGF0
aXZlSklUOjpjb21waWxlSXNPYmplY3RPck51bGwoTm9kZSogbm9kZSkKK3ZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGVUeXBlT2ZJc09iamVjdChOb2RlKiBub2RlKQogewogICAgIEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2ppdC5ncmFwaCgpLmdsb2JhbE9iamVjdEZvcihub2Rl
LT5vcmlnaW4uc2VtYW50aWMpOwogICAgIApAQCAtOTU0MSw3ICs5NTQxLDcgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZUlzT2JqZWN0T3JOdWxsKE5vZGUqIG5vZGUpCiAgICAgCiAgICAg
YWRkU2xvd1BhdGhHZW5lcmF0b3IoCiAgICAgICAgIHNsb3dQYXRoQ2FsbCgKLSAgICAgICAgICAg
IHNsb3dQYXRoLCB0aGlzLCBvcGVyYXRpb25PYmplY3RJc09iamVjdCwgcmVzdWx0R1BSLCBnbG9i
YWxPYmplY3QsCisgICAgICAgICAgICBzbG93UGF0aCwgdGhpcywgb3BlcmF0aW9uVHlwZU9mSXNP
YmplY3QsIHJlc3VsdEdQUiwgZ2xvYmFsT2JqZWN0LAogICAgICAgICAgICAgdmFsdWVSZWdzLnBh
eWxvYWRHUFIoKSkpOwogICAgIAogICAgIGRvbmUubGluaygmbV9qaXQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCmluZGV4IDY2MjVkNjM5NmE1ZWVk
ZWFmZWQ1NmM2NDBmYTg3OWZjNGUxMWNjYTcuLmJkNTYxY2VlYjhjNDg4NTJhODYxOGMyNWUwNzRm
ZGEzZjVhZTgyMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3Bl
Y3VsYXRpdmVKSVQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0
aXZlSklULmgKQEAgLTE0MDUsNyArMTQwNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVS
ZWdFeHBUZXN0KE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVTdHJpbmdSZXBsYWNlKE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVJc09iamVjdChOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlSXNPYmpl
Y3RPck51bGwoTm9kZSopOworICAgIHZvaWQgY29tcGlsZVR5cGVPZklzT2JqZWN0KE5vZGUqKTsK
ICAgICB2b2lkIGNvbXBpbGVJc0Z1bmN0aW9uKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVJc0Nv
bnN0cnVjdG9yKE5vZGUqKTsKICAgICB2b2lkIGNvbXBpbGVUeXBlT2YoTm9kZSopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAK
aW5kZXggOGE5NWRmNTUyODQ2YWE2NGRiZmUzYTY0YzZjMzc1MzRhYjg0OTE0MC4uYTNhNzllMDBl
Yjc3ZTAxMjJjNzYxMTQ2ZjhhOWI5MmI2NDI4ODBjZSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0zNjY0LDYgKzM2
NjQsMTEgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAg
ICBicmVhazsKICAgICB9CiAKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OiB7CisgICAgICAgIGNv
bXBpbGVUeXBlT2ZJc09iamVjdChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAg
Y2FzZSBJc1VuZGVmaW5lZE9yTnVsbDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0
aGlzLCBub2RlLT5jaGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywg
UmV1c2UsIHZhbHVlLCBUYWdXb3JkKTsKQEAgLTM3MTYsMTEgKzM3MjEsNiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAot
ICAgIGNhc2UgSXNPYmplY3RPck51bGw6IHsKLSAgICAgICAgY29tcGlsZUlzT2JqZWN0T3JOdWxs
KG5vZGUpOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KICAgICBjYXNlIElzRnVuY3Rpb246IHsK
ICAgICAgICAgY29tcGlsZUlzRnVuY3Rpb24obm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKaW5kZXgg
MzI1NjYwZTUzNWQ5NWI0MDVhNTFkZWRhYmNkZTYzNmI1ZTRlZTAyMC4uNzViNWQ5MjRkM2YwYWRm
MWY2M2NhZGM3NDIzN2VjOTVjMjU1ZDMxZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCkBAIC00MjgzLDYgKzQyODMsMTEgQEAgdm9p
ZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBicmVhazsKICAg
ICB9CiAKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OiB7CisgICAgICAgIGNvbXBpbGVUeXBlT2ZJ
c09iamVjdChub2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgY2FzZSBJc1VuZGVm
aW5lZE9yTnVsbDogewogICAgICAgICBKU1ZhbHVlT3BlcmFuZCB2YWx1ZSh0aGlzLCBub2RlLT5j
aGlsZDEoKSk7CiAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIHZhbHVl
KTsKQEAgLTQ2OTEsMTEgKzQ2OTYsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5v
ZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIGNhc2UgSXNPYmplY3RPck51
bGw6IHsKLSAgICAgICAgY29tcGlsZUlzT2JqZWN0T3JOdWxsKG5vZGUpOwotICAgICAgICBicmVh
azsKLSAgICB9Ci0KICAgICBjYXNlIElzRnVuY3Rpb246IHsKICAgICAgICAgY29tcGlsZUlzRnVu
Y3Rpb24obm9kZSk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExDYXBhYmlsaXRpZXMuY3BwCmluZGV4IDk2YTdmMTY0MTQ2MGE1MmU4MjZlNWM5MzdjZmNk
ODU0ZDM5YmQ0MmUuLjk5YTQ3NmYyYjg4N2I1ZGFhYTdmZDY0YzE3NDlmM2Y5N2M4MDVhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTI1
OCwxMyArMjU4LDEzIEBAIGlubGluZSBDYXBhYmlsaXR5TGV2ZWwgY2FuQ29tcGlsZShOb2RlKiBu
b2RlKQogICAgIGNhc2UgV2Vha01hcFNldDoKICAgICBjYXNlIElzRW1wdHk6CiAgICAgY2FzZSBU
eXBlT2ZJc1VuZGVmaW5lZDoKKyAgICBjYXNlIFR5cGVPZklzT2JqZWN0OgogICAgIGNhc2UgSXNV
bmRlZmluZWRPck51bGw6CiAgICAgY2FzZSBJc0Jvb2xlYW46CiAgICAgY2FzZSBJc051bWJlcjoK
ICAgICBjYXNlIElzQmlnSW50OgogICAgIGNhc2UgTnVtYmVySXNJbnRlZ2VyOgogICAgIGNhc2Ug
SXNPYmplY3Q6Ci0gICAgY2FzZSBJc09iamVjdE9yTnVsbDoKICAgICBjYXNlIElzRnVuY3Rpb246
CiAgICAgY2FzZSBJc0NvbnN0cnVjdG9yOgogICAgIGNhc2UgSXNUeXBlZEFycmF5VmlldzoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAppbmRleCBlNzg5
MmFjNmMyMGU5Njc1OGI0MzMzZGQ2ZjUzYzU1ZGZiZTJjYWExLi42NzA5OTUzZmVkY2I0MWNmMjhl
NDdhNGVhZTdmNGFiMTdiN2YzYmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExMb3dlckRGR1RvQjMuY3BwCkBAIC0xMzY3LDYgKzEzNjcsOSBAQCBwcml2YXRlOgogICAgICAg
ICBjYXNlIFR5cGVPZklzVW5kZWZpbmVkOgogICAgICAgICAgICAgY29tcGlsZVR5cGVPZklzVW5k
ZWZpbmVkKCk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBUeXBlT2ZJc09iamVj
dDoKKyAgICAgICAgICAgIGNvbXBpbGVUeXBlT2ZJc09iamVjdCgpOworICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIGNhc2UgSXNVbmRlZmluZWRPck51bGw6CiAgICAgICAgICAgICBjb21waWxl
SXNVbmRlZmluZWRPck51bGwoKTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTQyNyw5ICsxNDMw
LDYgQEAgcHJpdmF0ZToKICAgICAgICAgY2FzZSBJc09iamVjdDoKICAgICAgICAgICAgIGNvbXBp
bGVJc09iamVjdCgpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgSXNPYmplY3RP
ck51bGw6Ci0gICAgICAgICAgICBjb21waWxlSXNPYmplY3RPck51bGwoKTsKLSAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICBjYXNlIElzRnVuY3Rpb246CiAgICAgICAgICAgICBjb21waWxlSXNG
dW5jdGlvbigpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC0xMTY3MSw3ICsxMTY3MSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIHZtQ2FsbChWb2lkLCBvcGVyYXRpb25XZWFrTWFwU2V0LCBtX3ZtVmFs
dWUsIG1hcCwga2V5LCB2YWx1ZSwgaGFzaCk7CiAgICAgfQogCi0gICAgdm9pZCBjb21waWxlSXNP
YmplY3RPck51bGwoKQorICAgIHZvaWQgY29tcGlsZVR5cGVPZklzT2JqZWN0KCkKICAgICB7CiAg
ICAgICAgIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihtX25vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CiAgICAgICAgIApAQCAtMTE3MTAsNyArMTE3
MTAsNyBAQCBwcml2YXRlOgogICAgICAgICBMVmFsdWUgc2xvd1Jlc3VsdFZhbHVlID0gbGF6eVNs
b3dQYXRoKAogICAgICAgICAgICAgWz0sICZ2bV0gKGNvbnN0IFZlY3RvcjxMb2NhdGlvbj4mIGxv
Y2F0aW9ucykgLT4gUmVmUHRyPExhenlTbG93UGF0aDo6R2VuZXJhdG9yPiB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGNyZWF0ZUxhenlDYWxsR2VuZXJhdG9yKHZtLAotICAgICAgICAgICAgICAg
ICAgICBvcGVyYXRpb25PYmplY3RJc09iamVjdCwgbG9jYXRpb25zWzBdLmRpcmVjdEdQUigpLAor
ICAgICAgICAgICAgICAgICAgICBvcGVyYXRpb25UeXBlT2ZJc09iamVjdCwgbG9jYXRpb25zWzBd
LmRpcmVjdEdQUigpLAogICAgICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJ
bW1QdHIoZ2xvYmFsT2JqZWN0KSwgbG9jYXRpb25zWzFdLmRpcmVjdEdQUigpKTsKICAgICAgICAg
ICAgIH0sIHZhbHVlKTsKICAgICAgICAgVmFsdWVGcm9tQmxvY2sgc2xvd1Jlc3VsdCA9IG1fb3V0
LmFuY2hvcihtX291dC5ub3RaZXJvNjQoc2xvd1Jlc3VsdFZhbHVlKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L0pJVC5jcHAKaW5kZXggMWUxY2YwNmUzMTU3ZDA1MTQ5NjUyNTBlNGJjMTNiYjEwMWVkZGMy
Zi4uZjA3NTFjM2JmMTIxZTdlNzdjMTk3YTMzYWJkNDk1ZDhkMDUyMTAzMCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklULmNwcApAQCAtMjg2LDggKzI4Niw4IEBAIHZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZU1haW5QYXNzKCkKICAgICAgICAgREVGSU5FX1NMT1dfT1AoZ3JlYXRlcmVxKQogICAgICAg
ICBERUZJTkVfU0xPV19PUChpc19mdW5jdGlvbikKICAgICAgICAgREVGSU5FX1NMT1dfT1AoaXNf
Y29uc3RydWN0b3IpCi0gICAgICAgIERFRklORV9TTE9XX09QKGlzX29iamVjdF9vcl9udWxsKQog
ICAgICAgICBERUZJTkVfU0xPV19PUCh0eXBlb2YpCisgICAgICAgIERFRklORV9TTE9XX09QKHR5
cGVvZl9pc19vYmplY3QpCiAgICAgICAgIERFRklORV9TTE9XX09QKHN0cmNhdCkKICAgICAgICAg
REVGSU5FX1NMT1dfT1AocHVzaF93aXRoX3Njb3BlKQogICAgICAgICBERUZJTkVfU0xPV19PUChj
cmVhdGVfbGV4aWNhbF9lbnZpcm9ubWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQppbmRleCA1MWQzYzQ5ZDIzNzBmYzIyMWVj
YjI3YTE3YjBmNTZkNGM4YWJhNmVmLi5hZmM4NGNlZmM2NTJmYzMxNjVjNTNkNjkzM2MwYWE3ZjI5
MGMyN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJ
bnRlcnByZXRlci5hc20KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVs
SW50ZXJwcmV0ZXIuYXNtCkBAIC0xNzgzLDcgKzE3ODMsNiBAQCBzbG93UGF0aE9wKGluX2J5X2lk
KQogc2xvd1BhdGhPcChpbl9ieV92YWwpCiBzbG93UGF0aE9wKGlzX2Z1bmN0aW9uKQogc2xvd1Bh
dGhPcChpc19jb25zdHJ1Y3RvcikKLXNsb3dQYXRoT3AoaXNfb2JqZWN0X29yX251bGwpCiBzbG93
UGF0aE9wKGxlc3MpCiBzbG93UGF0aE9wKGxlc3NlcSkKIHNsb3dQYXRoT3AobW9kKQpAQCAtMTc5
OSw2ICsxNzk4LDcgQEAgc2xvd1BhdGhPcChzdHJjYXQpCiBzbG93UGF0aE9wKHRocm93X3N0YXRp
Y19lcnJvcikKIHNsb3dQYXRoT3AodG9faW5kZXhfc3RyaW5nKQogc2xvd1BhdGhPcCh0eXBlb2Yp
CitzbG93UGF0aE9wKHR5cGVvZl9pc19vYmplY3QpCiBzbG93UGF0aE9wKHVucmVhY2hhYmxlKQog
c2xvd1BhdGhPcChuZXdfcHJvbWlzZSkKIHNsb3dQYXRoT3AobmV3X2dlbmVyYXRvcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCmluZGV4
IGZkYWNlNzJjYmY1NzY1OGI4NjIxNTA5NTRkZmM2YWJjZWQ5OGZhZTAuLmIwMjg5ZjQ0MmMxMWIw
MTZmMjk1ZWNmMmIyNWIyM2U1MmZiNmVkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcApAQCAtODA0LDExICs4MDQsMTEgQEAgU0xP
V19QQVRIX0RFQ0woc2xvd19wYXRoX3R5cGVvZikKICAgICBSRVRVUk4oanNUeXBlU3RyaW5nRm9y
VmFsdWUoZ2xvYmFsT2JqZWN0LCBHRVRfQyhieXRlY29kZS5tX3ZhbHVlKS5qc1ZhbHVlKCkpKTsK
IH0KIAotU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2lzX29iamVjdF9vcl9udWxsKQorU0xPV19Q
QVRIX0RFQ0woc2xvd19wYXRoX3R5cGVvZl9pc19vYmplY3QpCiB7CiAgICAgQkVHSU4oKTsKLSAg
ICBhdXRvIGJ5dGVjb2RlID0gcGMtPmFzPE9wSXNPYmplY3RPck51bGw+KCk7Ci0gICAgUkVUVVJO
KGpzQm9vbGVhbihqc0lzT2JqZWN0VHlwZU9yTnVsbChnbG9iYWxPYmplY3QsIEdFVF9DKGJ5dGVj
b2RlLm1fb3BlcmFuZCkuanNWYWx1ZSgpKSkpOworICAgIGF1dG8gYnl0ZWNvZGUgPSBwYy0+YXM8
T3BUeXBlb2ZJc09iamVjdD4oKTsKKyAgICBSRVRVUk4oanNCb29sZWFuKGpzVHlwZW9mSXNPYmpl
Y3QoZ2xvYmFsT2JqZWN0LCBHRVRfQyhieXRlY29kZS5tX29wZXJhbmQpLmpzVmFsdWUoKSkpKTsK
IH0KIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2lzX2Z1bmN0aW9uKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuaAppbmRleCAwZjQzNGUwNWUw
NDBjOWE3ZTEzZjNjN2E5Mzg5MzRhMzFmNTJhODUxLi5iODk5MWQ2YWIxODYwN2E3ZDQ1YmQwMWZh
ZDlhNzVhZDExZGZmZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db21tb25TbG93UGF0aHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9D
b21tb25TbG93UGF0aHMuaApAQCAtMjUxLDggKzI1MSw4IEBAIFNMT1dfUEFUSF9ISURERU5fREVD
TChzbG93X3BhdGhfYml0YW5kKTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfYml0
b3IpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9iaXR4b3IpOwogU0xPV19QQVRI
X0hJRERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2YpOworU0xPV19QQVRIX0hJRERFTl9ERUNMKHNs
b3dfcGF0aF90eXBlb2ZfaXNfb2JqZWN0KTsKIFNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3Bh
dGhfaXNfb2JqZWN0KTsKLVNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaXNfb2JqZWN0
X29yX251bGwpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19mdW5jdGlvbik7
CiBTTE9XX1BBVEhfSElEREVOX0RFQ0woc2xvd19wYXRoX2lzX2NvbnN0cnVjdG9yKTsKIFNMT1df
UEFUSF9ISURERU5fREVDTChzbG93X3BhdGhfaW5fYnlfaWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcAppbmRleCA4YTlmZTBkNWYxODdkNTYxM2U3NTQ2
MzVjNTdmMDNlODM5YmE5M2EyLi5kMTA5Mzc3YzRiYWUyMDZjYjAxNDc2MmVmMDIyNTVmYWFkMGU3
N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25z
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcGVyYXRpb25zLmNwcApA
QCAtMTA2LDcgKzEwNiw3IEBAIEpTVmFsdWUganNUeXBlU3RyaW5nRm9yVmFsdWUoSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1ZSB2KQogICAgIHJldHVybiBqc1R5cGVTdHJpbmdG
b3JWYWx1ZShnbG9iYWxPYmplY3QtPnZtKCksIGdsb2JhbE9iamVjdCwgdik7CiB9CiAKLWJvb2wg
anNJc09iamVjdFR5cGVPck51bGwoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNWYWx1
ZSB2KQorYm9vbCBqc1R5cGVvZklzT2JqZWN0KEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IEpTVmFsdWUgdikKIHsKICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgaWYg
KCF2LmlzQ2VsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3BlcmF0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3BlcmF0aW9ucy5o
CmluZGV4IGYwODU2YTRjMTVjNDA0NzA5N2Q0OTA1NDUwNWM5ZWMzYWIwZjI4OTcuLmMwZDM5Mjhm
OGE2OGFhYzc2NGUzMzQ3MGJjM2IwZjQ3NjAxMmZjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcGVyYXRpb25zLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiBORVZFUl9JTkxJTkUgSlNWYWx1ZSBqc0FkZFNsb3dDYXNlKEpTR2xvYmFsT2JqZWN0KiwgSlNW
YWx1ZSwgSlNWYWx1ZSk7CiBKU1ZhbHVlIGpzVHlwZVN0cmluZ0ZvclZhbHVlKEpTR2xvYmFsT2Jq
ZWN0KiwgSlNWYWx1ZSk7CiBKU1ZhbHVlIGpzVHlwZVN0cmluZ0ZvclZhbHVlKFZNJiwgSlNHbG9i
YWxPYmplY3QqLCBKU1ZhbHVlKTsKLWJvb2wganNJc09iamVjdFR5cGVPck51bGwoSlNHbG9iYWxP
YmplY3QqLCBKU1ZhbHVlKTsKK2Jvb2wganNUeXBlb2ZJc09iamVjdChKU0dsb2JhbE9iamVjdCos
IEpTVmFsdWUpOwogc2l6ZV90IG5vcm1hbGl6ZVByb3RvdHlwZUNoYWluKEpTR2xvYmFsT2JqZWN0
KiwgSlNDZWxsKiwgYm9vbCYgc2F3UG9seVByb3RvKTsKIAogQUxXQVlTX0lOTElORSBKU1N0cmlu
ZyoganNTdHJpbmcoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgY29uc3QgU3RyaW5nJiB1
MSwgSlNTdHJpbmcqIHMyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4NDNiOTgyZDZiYjhhMTM5Y2NmZTVjNTcxNDBlYmJi
N2IzZGI1MGQuLjExZDQyM2E1ZGYxZWQ0NzdiODAzNzU4ZDViZGE5ZjhjOTQ3MGViZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAyMC0wOC0xNCAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgUmVtb3ZlIE9wSXNPYmplY3RPck51bGwgZnJvbSBDbGFz
c0V4cHJOb2RlOjplbWl0Qnl0ZWNvZGUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0NTI1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VpdGggTWls
bGVyLgorCisgICAgICAgIE5ldyB0ZXN0cyBhcmUgYWRkZWQgZm9yIGBkb2N1bWVudC5hbGxgIHJh
dGhlciB0aGFuIGBtYWtlTWFzcXVlcmFkZXIoKWAgc2luY2UKKyAgICAgICAgdGhlIGxhdHRlciBo
YXMgc3VmZmljaWVudCB0ZXN0IGNvdmVyYWdlIGFuZCB0YWtlcyB0aGUgc2hvcnQgcGF0aCBhcyBK
U0Z1bmN0aW9uLgorCisgICAgICAgICoganMvY2xhc3Mtc3ludGF4LWV4dGVuZHMtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL2RvbS9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5k
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBqcy9kb20vZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1v
YmplY3QtZm9sZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGpzL2RvbS9kb2N1bWVu
dC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGpzL2Rv
bS9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMuanM6IEFkZGVkLgorICAg
ICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3Qt
Zm9sZC5qczogQWRkZWQuCisgICAgICAgICoganMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1l
eHRlbmRzLmpzOgorCiAyMDIwLTA4LTE0ICBIZWN0b3IgTG9wZXogIDxoZWN0b3JfaV9sb3BlekBh
cHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBpT1MgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3VzZXItdGltaW5nL21lYXN1cmVfbmF2aWdhdGlvbl90aW1pbmcuaHRtbCBpcyBh
IGZsYWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1l
eHRlbmRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2pzL2NsYXNzLXN5bnRheC1leHRlbmRz
LWV4cGVjdGVkLnR4dAppbmRleCA0OGRlMmI5OGQwZjgyZjA2NjU2MDhmNmQxM2UwMDNjNThhNWNi
NGJkLi5lZGE0OGRiOTY0OGVlOTMwOWM3NzU3YjEzYmVlODhiMzk1OTNjODRlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9qcy9jbGFzcy1zeW50YXgtZXh0ZW5kcy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvanMvY2xhc3Mtc3ludGF4LWV4dGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0yNiw5
ICsyNiw5IEBAIFBBU1MgeC5fX3Byb3RvX186OjpGdW5jdGlvbi5wcm90b3R5cGUKIFBBU1MgeCA9
IGNsYXNzIGV4dGVuZHMgMyB7IGNvbnN0cnVjdG9yKCkgeyB9IH07IHguX19wcm90b19fOjo6VHlw
ZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4KIFBBU1MgeCA9IGNs
YXNzIGV4dGVuZHMgImFiYyIgeyBjb25zdHJ1Y3RvcigpIHsgfSB9OyB4Ll9fcHJvdG9fXzo6OlR5
cGVFcnJvcjogVGhlIHN1cGVyY2xhc3MgaXMgbm90IGEgY29uc3RydWN0b3IuCiBQQVNTIGJhc2VX
aXRoQmFkUHJvdG90eXBlID0gZnVuY3Rpb24gKCkge307IGJhc2VXaXRoQmFkUHJvdG90eXBlLnBy
b3RvdHlwZSA9IDM7IG5ldyBiYXNlV2l0aEJhZFByb3RvdHlwZQotUEFTUyB4ID0gY2xhc3MgZXh0
ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH06OjpUeXBlRXJy
b3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBu
b3QgYW4gb2JqZWN0LgorUEFTUyB4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlw
ZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH06OjpUeXBlRXJyb3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3Vw
ZXJjbGFzcydzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBub3QgYW4gb2JqZWN0IG9yIG51bGwuCiBQ
QVNTIGJhc2VXaXRoQmFkUHJvdG90eXBlLnByb3RvdHlwZSA9ICJhYmMiCi1QQVNTIHggPSBjbGFz
cyBleHRlbmRzIGJhc2VXaXRoQmFkUHJvdG90eXBlIHsgY29uc3RydWN0b3IoKSB7IH0gfTo6OlR5
cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5
IGlzIG5vdCBhbiBvYmplY3QuCitQQVNTIHggPSBjbGFzcyBleHRlbmRzIGJhc2VXaXRoQmFkUHJv
dG90eXBlIHsgY29uc3RydWN0b3IoKSB7IH0gfTo6OlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRo
ZSBzdXBlcmNsYXNzJ3MgcHJvdG90eXBlIHByb3BlcnR5IGlzIG5vdCBhbiBvYmplY3Qgb3IgbnVs
bC4KIFBBU1MgYmFzZVdpdGhCYWRQcm90b3R5cGUucHJvdG90eXBlID0gbnVsbDsgeCA9IGNsYXNz
IGV4dGVuZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9CiBQQVNT
IHggPSAxOyBjID0gY2xhc3MgZXh0ZW5kcyArK3ggeyBjb25zdHJ1Y3RvcigpIHsgfSB9Ozo6OlN5
bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICcrKycKIFBBU1MgeCA9IDE7IGMgPSBjbGFzcyBl
eHRlbmRzIHgrKyB7IGNvbnN0cnVjdG9yKCkgeyB9IH07Ojo6U3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgdG9rZW4gJysrJy4gRXhwZWN0ZWQgb3BlbmluZyAneycgYXQgdGhlIHN0YXJ0IG9mIGEgY2xh
c3MgYm9keS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL2RvbS9kb2N1bWVudC1hbGwtY2xh
c3MtZXh0ZW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxs
LWNsYXNzLWV4dGVuZHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3Yzk5ODRhZmNjMTJmYTJk
Yjc1ZTQ3NjA3YjE1YmNiYWZhNjlhYjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9q
cy9kb20vZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTEgQEAKK2RvY3VtZW50LmFsbCB3b3JrcyBhcyBzdXBlcmNsYXNzLnByb3RvdHlwZSwgYnV0IG5v
dCBhcyBzdXBlcmNsYXNzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRl
c3RBc1N1cGVyY2xhc3NQcm90b3R5cGUoKSBpcyB0cnVlCitQQVNTIGNsYXNzIEZvbyBleHRlbmRz
IGRvY3VtZW50LmFsbCB7fSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFz
cyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3Vt
ZW50LWFsbC1jbGFzcy1leHRlbmRzLmh0bWwgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQt
YWxsLWNsYXNzLWV4dGVuZHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODViMWZiNjM1N2E4M2Y0Zjc2YjZj
OGNjZDhkYzYwMTQ0MzU5MDBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9t
L2RvY3VtZW50LWFsbC1jbGFzcy1leHRlbmRzLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NU
WVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJz
Y3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLWNsYXNzLWV4dGVuZHMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2RvY3VtZW50LWFs
bC10eXBlb2YtaXMtb2JqZWN0LWZvbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMvZG9t
L2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjMwMTk2MDUyZmUyNjU3Mjg3OTBhNTVkNTRmODM1YWEyNTQwZTBlOWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9qcy9kb20vZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmplY3Qt
Zm9sZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAordHlwZW9mIGRvY3VtZW50LmFsbCBp
cyBuZXZlciAnb2JqZWN0JworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0
ZXN0VHlwZW9mSXNPYmplY3QoKSBpcyB0cnVlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMvZG9tL2Rv
Y3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQuaHRtbCBiL0xheW91dFRlc3RzL2pzL2Rv
bS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGFj
ZDAxMWU2MWIzYTAyZThhY2RkMWI5YTkwNGNkYWZmMWJhNGM0OAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2pzL2RvbS9kb2N1bWVudC1hbGwtdHlwZW9mLWlzLW9iamVjdC1mb2xkLmh0
bWwKQEAgLTAsMCArMSwxMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVv
Zi1pcy1vYmplY3QtZm9sZC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC1jbGFzcy1l
eHRlbmRzLmpzIGIvTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kb2N1bWVudC1hbGwt
Y2xhc3MtZXh0ZW5kcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZjExZmM1NmRjZWY2NzA0OTYwYzAyZTRiZGYw
YTNmYjBiN2RjMTk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvanMvZG9tL3Njcmlw
dC10ZXN0cy9kb2N1bWVudC1hbGwtY2xhc3MtZXh0ZW5kcy5qcwpAQCAtMCwwICsxLDE4IEBACitk
ZXNjcmlwdGlvbigiZG9jdW1lbnQuYWxsIHdvcmtzIGFzIHN1cGVyY2xhc3MucHJvdG90eXBlLCBi
dXQgbm90IGFzIHN1cGVyY2xhc3MiKTsKKworZnVuY3Rpb24gdGVzdEFzU3VwZXJjbGFzc1Byb3Rv
dHlwZSgpIHsKKyAgICBmdW5jdGlvbiBCYXIoKSB7fQorICAgIEJhci5wcm90b3R5cGUgPSBkb2N1
bWVudC5hbGw7CisKKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgKytpKSB7CisgICAgICAg
IGNsYXNzIEZvbyBleHRlbmRzIEJhciB7fQorCisgICAgICAgIGlmICghKG5ldyBGb28oKSBpbnN0
YW5jZW9mIEJhcikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0
dXJuIHRydWU7Cit9CisKK3Nob3VsZEJlKCJ0ZXN0QXNTdXBlcmNsYXNzUHJvdG90eXBlKCkiLCAi
dHJ1ZSIpOworc2hvdWxkVGhyb3coImNsYXNzIEZvbyBleHRlbmRzIGRvY3VtZW50LmFsbCB7fSIs
ICInVHlwZUVycm9yOiBUaGUgc3VwZXJjbGFzcyBpcyBub3QgYSBjb25zdHJ1Y3Rvci4nIik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RvY3VtZW50LWFsbC10
eXBlb2YtaXMtb2JqZWN0LWZvbGQuanMgYi9MYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2RvY3VtZW50LWFsbC10eXBlb2YtaXMtb2JqZWN0LWZvbGQuanMKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmQ1ODZk
ODFmZGY4MzdmYTA0MDk4NWI5M2Y0MjZkMjRiMGI1NDA2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZG9jdW1lbnQtYWxsLXR5cGVvZi1pcy1vYmpl
Y3QtZm9sZC5qcwpAQCAtMCwwICsxLDE3IEBACitkZXNjcmlwdGlvbigidHlwZW9mIGRvY3VtZW50
LmFsbCBpcyBuZXZlciAnb2JqZWN0JyIpOworCitjb25zdCBkb2N1bWVudEFsbCA9IGRvY3VtZW50
LmFsbDsKK2Z1bmN0aW9uIHRlc3RUeXBlb2ZJc09iamVjdCgpIHsKKyAgICBsZXQgYWNjID0gMDsK
KyAgICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNjsgKytpKQorICAgICAgICBhY2MgKz0gKHR5cGVv
ZiBkb2N1bWVudEFsbCA9PT0gIm9iamVjdCIpOworCisgICAgaWYgKGFjYyAhPT0gMCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAxZTY7ICsraSkKKyAg
ICAgICAgYWNjICs9ICh0eXBlb2YgZG9jdW1lbnRBbGwgIT09ICJvYmplY3QiKTsKKyAgICByZXR1
cm4gYWNjID09PSAxZTY7Cit9CisKK3Nob3VsZEJlKCJ0ZXN0VHlwZW9mSXNPYmplY3QoKSIsICJ0
cnVlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3lu
dGF4LWV4dGVuZHMuanMgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvY2xhc3Mtc3ludGF4
LWV4dGVuZHMuanMKaW5kZXggNDg3NTc0OTNjMDgyNzdmMTkwNGM2M2EyYzcxNDk1N2ZmOTExNjNk
ZS4uYWNiNDAxN2FlNDQ0MWI2YzE3MGUyNDc0NDVlMWZiNDVjYTU2ODM1YSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvanMvc2NyaXB0LXRlc3RzL2NsYXNzLXN5bnRheC1leHRlbmRzLmpzCisrKyBi
L0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9jbGFzcy1zeW50YXgtZXh0ZW5kcy5qcwpAQCAt
ODEsOSArODEsOSBAQCBzaG91bGRCZSgneC5fX3Byb3RvX18nLCAnRnVuY3Rpb24ucHJvdG90eXBl
Jyk7CiBzaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgMyB7IGNvbnN0cnVjdG9yKCkgeyB9
IH07IHguX19wcm90b19fJywgJyJUeXBlRXJyb3I6IFRoZSBzdXBlcmNsYXNzIGlzIG5vdCBhIGNv
bnN0cnVjdG9yLiInKTsKIHNob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5kcyAiYWJjIiB7IGNv
bnN0cnVjdG9yKCkgeyB9IH07IHguX19wcm90b19fJywgJyJUeXBlRXJyb3I6IFRoZSBzdXBlcmNs
YXNzIGlzIG5vdCBhIGNvbnN0cnVjdG9yLiInKTsKIHNob3VsZE5vdFRocm93KCdiYXNlV2l0aEJh
ZFByb3RvdHlwZSA9IGZ1bmN0aW9uICgpIHt9OyBiYXNlV2l0aEJhZFByb3RvdHlwZS5wcm90b3R5
cGUgPSAzOyBuZXcgYmFzZVdpdGhCYWRQcm90b3R5cGUnKTsKLXNob3VsZFRocm93KCd4ID0gY2xh
c3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH0nLCAn
IlR5cGVFcnJvcjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzXCdzIHByb3RvdHlwZSBwcm9w
ZXJ0eSBpcyBub3QgYW4gb2JqZWN0LiInKTsKK3Nob3VsZFRocm93KCd4ID0gY2xhc3MgZXh0ZW5k
cyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7IGNvbnN0cnVjdG9yKCkgeyB9IH0nLCAnIlR5cGVFcnJv
cjogVGhlIHZhbHVlIG9mIHRoZSBzdXBlcmNsYXNzXCdzIHByb3RvdHlwZSBwcm9wZXJ0eSBpcyBu
b3QgYW4gb2JqZWN0IG9yIG51bGwuIicpOwogc2hvdWxkTm90VGhyb3coJ2Jhc2VXaXRoQmFkUHJv
dG90eXBlLnByb3RvdHlwZSA9ICJhYmMiJyk7Ci1zaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVu
ZHMgYmFzZVdpdGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9JywgJyJUeXBlRXJy
b3I6IFRoZSB2YWx1ZSBvZiB0aGUgc3VwZXJjbGFzc1wncyBwcm90b3R5cGUgcHJvcGVydHkgaXMg
bm90IGFuIG9iamVjdC4iJyk7CitzaG91bGRUaHJvdygneCA9IGNsYXNzIGV4dGVuZHMgYmFzZVdp
dGhCYWRQcm90b3R5cGUgeyBjb25zdHJ1Y3RvcigpIHsgfSB9JywgJyJUeXBlRXJyb3I6IFRoZSB2
YWx1ZSBvZiB0aGUgc3VwZXJjbGFzc1wncyBwcm90b3R5cGUgcHJvcGVydHkgaXMgbm90IGFuIG9i
amVjdCBvciBudWxsLiInKTsKIHNob3VsZE5vdFRocm93KCdiYXNlV2l0aEJhZFByb3RvdHlwZS5w
cm90b3R5cGUgPSBudWxsOyB4ID0gY2xhc3MgZXh0ZW5kcyBiYXNlV2l0aEJhZFByb3RvdHlwZSB7
IGNvbnN0cnVjdG9yKCkgeyB9IH0nKTsKIAogc2hvdWxkVGhyb3coJ3ggPSAxOyBjID0gY2xhc3Mg
ZXh0ZW5kcyArK3ggeyBjb25zdHJ1Y3RvcigpIHsgfSB9OycpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>