<?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>237604</bug_id>
          
          <creation_ts>2022-03-08 06:59:18 -0800</creation_ts>
          <short_desc>Use PropertyRegistry consistently in svgAttributeChanged</short_desc>
          <delta_ts>2022-03-10 07:54:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1849244</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-08 06:59:18 -0800</bug_when>
    <thetext>Use PropertyRegistry consistently in svgAttributeChanged.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849245</commentid>
    <comment_count>1</comment_count>
      <attachid>454118</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-08 07:01:41 -0800</bug_when>
    <thetext>Created attachment 454118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849590</commentid>
    <comment_count>2</comment_count>
      <attachid>454118</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-09 02:25:47 -0800</bug_when>
    <thetext>Comment on attachment 454118
Patch

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

Unofficial review: Looks good, just a few comments.

&gt; Source/WebCore/ChangeLog:8
&gt; +        Use PropertyRegistry consistently in svgAttributeChanged.

This is a bit too thin, I&apos;d state that most svgAttributeChanged() methods start with if (PropReg::isKnownAttr(...)) and some are missing, and that you&apos;re unifying this for consistency reasons.

&gt; Source/WebCore/svg/SVGFEBlendElement.cpp:86
&gt; +    if (PropertyRegistry::isKnownAttribute(attrName)) {

out of curiosity, did you check that each of the isKnownAttribute() functions has exactly the same attributes registered as we atually handle in svgAttributeChanged().
Could be that we missed something in the past, that&apos;s now fixed, by this usage pattern (no explicit check for all the attribute names, but instead use isKnownAttribute()).

&gt; Source/WebCore/svg/SVGFEComponentTransferElement.cpp:65
&gt; +void SVGFEComponentTransferElement::svgAttributeChanged(const QualifiedName&amp; attrName)

This needs a test :/

&gt; Source/WebCore/svg/SVGImageElement.cpp:107
&gt; +        else {

else if (auto* ..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849700</commentid>
    <comment_count>3</comment_count>
      <attachid>454244</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-09 08:51:38 -0800</bug_when>
    <thetext>Created attachment 454244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849703</commentid>
    <comment_count>4</comment_count>
      <attachid>454118</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-09 08:54:20 -0800</bug_when>
    <thetext>Comment on attachment 454118
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Use PropertyRegistry consistently in svgAttributeChanged.
&gt; 
&gt; This is a bit too thin, I&apos;d state that most svgAttributeChanged() methods start with if (PropReg::isKnownAttr(...)) and some are missing, and that you&apos;re unifying this for consistency reasons.

Done.

&gt;&gt; Source/WebCore/svg/SVGFEBlendElement.cpp:86
&gt;&gt; +    if (PropertyRegistry::isKnownAttribute(attrName)) {
&gt; 
&gt; out of curiosity, did you check that each of the isKnownAttribute() functions has exactly the same attributes registered as we atually handle in svgAttributeChanged().
&gt; Could be that we missed something in the past, that&apos;s now fixed, by this usage pattern (no explicit check for all the attribute names, but instead use isKnownAttribute()).

I did by cross checking all changed files. One thing I missed though is that SVGFEDiffuseLightingElement::svgAttributeChanged incorrectly checked for SVGNames::lighting_colorAttr!

&gt;&gt; Source/WebCore/svg/SVGFEComponentTransferElement.cpp:65
&gt;&gt; +void SVGFEComponentTransferElement::svgAttributeChanged(const QualifiedName&amp; attrName)
&gt; 
&gt; This needs a test :/

Ok I removed this part since it is not high priority at all.

&gt;&gt; Source/WebCore/svg/SVGImageElement.cpp:107
&gt;&gt; +        else {
&gt; 
&gt; else if (auto* ..

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849999</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2022-03-10 01:38:32 -0800</bug_when>
    <thetext>(In reply to Rob Buis from comment #4)
&gt; &gt; This needs a test :/
&gt; 
&gt; Ok I removed this part since it is not high priority at all.

Can you still create a ticket, add a FIXME that the svgAttributeChanged() implementation is missing with a ref to the new ticket?

Other than that, the last iteration looks great, unofficial r=me :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850003</commentid>
    <comment_count>6</comment_count>
      <attachid>454327</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-10 01:59:49 -0800</bug_when>
    <thetext>Created attachment 454327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850013</commentid>
    <comment_count>7</comment_count>
      <attachid>454327</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2022-03-10 03:27:44 -0800</bug_when>
    <thetext>Comment on attachment 454327
Patch

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

Looks good to me, assuming that PropertyRegistry::isKnownAttribute works knowing the calling class. I would also add ASSERTs in the places where the code is making assumptions about what the remaining attributes to handle are.

&gt; Source/WebCore/svg/SVGFEBlendElement.cpp:94
&gt; +    if (PropertyRegistry::isKnownAttribute(attrName)) {
&gt;          InstanceInvalidationGuard guard(*this);
&gt; -        primitiveAttributeChanged(attrName);
&gt; -        return;
&gt; -    }
&gt; -
&gt; -    if (attrName == SVGNames::inAttr || attrName == SVGNames::in2Attr) {
&gt; -        InstanceInvalidationGuard guard(*this);
&gt; -        invalidate();
&gt; +        if (attrName == SVGNames::modeAttr)
&gt; +            primitiveAttributeChanged(attrName);
&gt; +        else
&gt; +            invalidate();
&gt;          return;
&gt;      }
&gt;  

I believe in all the cases where the code assumes that a particular attribute is being handled in an else or a default code path, an assertion will make things a lot more understandable for the reader. Before it was easier to see what behavior corresponded to what attribute and the assertion will help to maintain the same readability. So here you could ASSERT(attrName == SVGNames::inAttr || attrName == SVGNames::in2Attr) in the else path.

&gt; Source/WebCore/svg/SVGPathElement.cpp:69
&gt; -    if (attrName == SVGNames::dAttr) {
&gt; +    if (PropertyRegistry::isKnownAttribute(attrName)) {
&gt;          InstanceInvalidationGuard guard(*this);

I think in these cases as well, an assertion could make the code a bit more understandable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850026</commentid>
    <comment_count>8</comment_count>
      <attachid>454332</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-10 04:19:09 -0800</bug_when>
    <thetext>Created attachment 454332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850094</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-10 07:53:41 -0800</bug_when>
    <thetext>Committed r291108 (248270@main): &lt;https://commits.webkit.org/248270@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454332.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1850096</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-10 07:54:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/90098010&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454118</attachid>
            <date>2022-03-08 07:01:41 -0800</date>
            <delta_ts>2022-03-09 08:51:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237604-20220308150139.patch</filename>
            <type>text/plain</type>
            <size>22989</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjdkNjg1YjA3YzMxYTdi
NWVhZWY2N2JhZmY0YzEwYzNhOTJlNmMxOS4uN2VkM2E2ZDhiYmQzYjMzOGQ4MjYzNjEyMjRiOTBj
YmExNDY5NTBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDIyLTAzLTA4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXNlIFByb3BlcnR5UmVnaXN0cnkg
Y29uc2lzdGVudGx5IGluIHN2Z0F0dHJpYnV0ZUNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzYwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBQcm9wZXJ0eVJlZ2lzdHJ5IGNvbnNpc3Rl
bnRseSBpbiBzdmdBdHRyaWJ1dGVDaGFuZ2VkLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBh
ZGRzIGEgc3ZnQXR0cmlidXRlQ2hhbmdlZCBpbXBsZW1lbnRhdGlvbiBmb3IgU1ZHRkVDb21wb25l
bnRUcmFuc2ZlckVsZW1lbnQuCisKKyAgICAgICAgKiBzdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6
CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaDoK
KyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAg
ICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQp
OgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGRUltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3Zn
L1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1lcmdl
Tm9kZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhvbG9neUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRVRp
bGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdHZW9tZXRyeUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcv
U1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
UG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdTdG9w
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdG9wRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZCk6CisKIDIwMjItMDMtMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBPcHRpbWl6ZSB0aGUgcGFzc2luZyBvZiBkYXRhIGFjcm9zcyB0aHJlYWRz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcAppbmRleCBlMWNjODMzNWMz
MjBkOWVmZTVjMjQzODQzMGZjODM5NzQ4ZTc2ZjM1Li5jM2YzZGY5YzE3YzU3OWRmZTI4NzE4NTJh
Mjc1ODk2NmIwZDBmYjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVu
ZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5j
cHAKQEAgLTgzLDE1ICs4MywxMiBAQCBib29sIFNWR0ZFQmxlbmRFbGVtZW50OjpzZXRGaWx0ZXJF
ZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnN0IFF1YQogCiB2b2lkIFNW
R0ZFQmxlbmRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6bW9kZUF0dHIpIHsK
KyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsK
ICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAg
IHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmluMkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFy
ZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjptb2RlQXR0cikKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0
ZUNoYW5nZWQoYXR0ck5hbWUpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBpbnZhbGlkYXRl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDY5ZjkxZGMwZTUwOTY3Y2ZjNjdjY2FhZmYw
MGZkMTRhM2Q4NTY3YzQuLjVmZjExY2NiN2I1NGIwNWM1MzliMmQ0NjkwNzYzNTg5MGU4MDQzMzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcApA
QCAtODQsMTUgKzg0LDEyIEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnNldEZpbHRl
ckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uCiAKIHZvaWQgU1ZHRkVD
b2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0eXBlQXR0ciB8
fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJl
Z2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUlu
dmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRl
Q2hhbmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlv
bkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRy
TmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuY3BwCmluZGV4IDlhNzViNDYyODdm
YzA2OTQwOTIyZWMzOTUxMzE3M2VlZjI0MDMzZTguLmU4OTJkODQ4Y2NlYmU0NzM0ODk1MTdlNGUy
ZmFjZjRmYzNmZTM3OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBv
bmVudFRyYW5zZmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApAQCAtNjIsNiArNjIsMTcgQEAgdm9pZCBTVkdGRUNv
bXBvbmVudFRyYW5zZmVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY28KICAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXM6OnBh
cnNlQXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KIAordm9pZCBTVkdGRUNvbXBvbmVudFRyYW5z
ZmVyRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKK3sKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
TmFtZSkpIHsKKyAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7
CisgICAgICAgIGludmFsaWRhdGVGaWx0ZXJQcmltaXRpdmVQYXJlbnQodGhpcyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXM6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOworfQorCiBSZWZQdHI8RmlsdGVyRWZm
ZWN0PiBTVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudDo6ZmlsdGVyRWZmZWN0KGNvbnN0IFNW
R0ZpbHRlckJ1aWxkZXImLCBjb25zdCBGaWx0ZXJFZmZlY3RWZWN0b3ImKSBjb25zdAogewogICAg
IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24gcmVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAppbmRleCA2NGY3YjlhZTg5MWFiOTMx
MjdkOTkwZjQ0N2VlNGRmMjY0NTU4YjExLi5mMTRjM2M3NzJhNmMzY2Q4YTE0OWQwZGQ2YzQyMmYw
ZWMzMGM3YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuaApAQCAtNDAsOCArNDAsOCBAQCBwcml2YXRlOgogICAgIHVzaW5nIFBy
b3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVnaXN0cnk8U1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcz47CiAg
ICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVydHlSZWdpc3RyeSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQogCi0gICAgLy8gRklYTUU6IHN2Z0F0
dHJpYnV0ZUNoYW5nZWQgbWlzc2luZy4KICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmLCBjb25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBvdmVycmlkZTsKIAogICAgIFZl
Y3RvcjxBdG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJbnB1dHNOYW1lcygpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIHsgaW4xKCkgfTsgfQogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGZpbHRlckVm
ZmVjdChjb25zdCBTVkdGaWx0ZXJCdWlsZGVyJiwgY29uc3QgRmlsdGVyRWZmZWN0VmVjdG9yJikg
Y29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21w
b3NpdGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1l
bnQuY3BwCmluZGV4IDQ1OWVkYWI4NTk3YmEyNzk2Yzc3OTJmOWZlZTU3OGM5ODM4ZGFhMWEuLjlk
YjQzNTcxNjE3MDQwNGIyZjAwNGIyMzgxNDM1NDIzZGVkODQ2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwCkBAIC0xMTUsMTUgKzExNSwxMiBAQCBi
b29sIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRl
ckVmZmVjdCogZWZmZWN0LCBjb25zdAogCiB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBp
ZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9wZXJhdG9yQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6azFBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprMkF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmszQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azRBdHRyKSB7Cisg
ICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAg
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBw
cmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjppbjJBdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQg
Z3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGlmIChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQor
ICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmlt
aXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5j
cHAKaW5kZXggMDJiYzM3YjZkNGEzYmMyOGRhOGFlZDM2M2FlMTc0OTdmNjE5Zjc2Yi4uYTRiOGRm
NTFmMTM5NmJkOTQzNTAyNGQ2ZDQyMGYxMDE1ZWZjY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCkBAIC0xNzIsMTUgKzE3Miwx
MiBAQCB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzZXRLZXJuZWxVbml0TGVuZ3Ro
KGZsb2F0IHgsIGZsb2F0IHkpCiAKIHZvaWQgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjplZGdlTW9kZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OmRpdmlzb3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpiaWFzQXR0ciB8fCBh
dHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OnRhcmdldFlBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBbHBoYUF0dHIpIHsKKyAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
SW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2
ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Om9yZGVyQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsTWF0cml4QXR0cikg
ewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAg
ICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3JkZXJBdHRyIHx8IGF0dHJOYW1lID09IFNWR05h
bWVzOjprZXJuZWxNYXRyaXhBdHRyKQorICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA5Njg0ZmFiODAwY2MwNTZhODM0Yjc0
N2VjZjJkNzNkYmFmMGZjNjk4Li40NDNhNDc1ODNkMjY2Yzk4YTU5ZDVlYTliNGNhNjE4Nzk2YTQ4
YzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdF
bGVtZW50LmNwcApAQCAtMTI1LDE1ICsxMjUsMTIgQEAgYm9vbCBTVkdGRURpZmZ1c2VMaWdodGlu
Z0VsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwK
IAogdm9pZCBTVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpkaWZmdXNl
Q29uc3RhbnRBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6bGlnaHRpbmdfY29sb3JBdHRyKSB7CisgICAgaWYg
KFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAg
IEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRp
dmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7Cisg
ICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAgICAgaW52
YWxpZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVD
aGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAppbmRleCBiNjJj
NDY0OWJlMTM5OTZjMTgxZTNhOTg2ZTBmOWMzYzNkNTNkYjE0Li44MDk1OTcxNmFkMDVmNzk0NDc5
MjYwYTFjZDViYzA5YjRkNmYzZjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcApAQCAtOTksMTUgKzk5LDEyIEBAIGJvb2wgU1ZH
RkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVy
RWZmZWN0KiBlZmZlY3QsCiAKIHZvaWQgU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlm
IChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eENoYW5uZWxTZWxlY3RvckF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVz
OjpzY2FsZUF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgq
dGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0
dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluMkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJ
bnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAg
ICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OmluMkF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNw
cAppbmRleCA0YTljM2M0NWE5MjNlYmQyYWJkZjVhMWZkMmQ3ZmU1MDYwNzk0ZDQzLi5kYTg5MTdi
YTcxY2RjOTZmMmQ5ZmNmOGYwMDAyZDIzNDIyNWI2MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCB2b2lkIFNWR0ZFSW1hZ2VF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaQogCiB2b2lkIFNWR0ZFSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdO
YW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3Ry
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGludmFsaWRhdGUoKTsKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcApp
bmRleCA0YmU5MDc4MjZkYmEwNjE5MzY4NGUwYTRkYWY1YmEyYjVmYTk0YWZhLi40YzQ1ZTVlZjU1
NDU0Y2E1NzhiMGQ1OTFlMWYzNjI5ZWVlNmIyNjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIFNWR0ZFTWVy
Z2VOb2RlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbQogCiB2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmluQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKICAgICAgICAgaW52YWxpZGF0ZUZpbHRlclByaW1pdGl2ZVBhcmVudCh0
aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhv
bG9neUVsZW1lbnQuY3BwCmluZGV4IGFmYjk5OTQwMGQ1MDI2NjczNDI3ZWI3NTA4NjU1ZWUyYzhj
YzFmOTUuLjQ0NzZkODFmMjM2ODUyY2FhY2JmMDY0NTJhOTdiZmRhYmRlOGViZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKQEAgLTk4LDE1ICs5
OCwxMiBAQCBib29sIFNWR0ZFTW9ycGhvbG9neUVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJp
YnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29ucwogCiB2b2lkIFNWR0ZFTW9ycGhvbG9neUVs
ZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIgfHwgYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OnJhZGl1c0F0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRp
b25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQo
YXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0dHJOYW1l
ID09IFNWR05hbWVzOjppbkF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggNjgxNTI2ODA4MmZkODhjMjY3Nzc5
ZjMxMTk4OTNlZDYwODMyMDZiOS4uMGMzZjE0NjMzMzY5NGY4NzllZGFlNTQ4MmNkZWZlY2Q3NDZi
YjBmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRp
bmdFbGVtZW50LmNwcApAQCAtMTM1LDE1ICsxMzUsMTIgQEAgYm9vbCBTVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZl
Y3QKIAogdm9pZCBTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3Bl
Y3VsYXJDb25zdGFudEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyRXhwb25l
bnRBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cikgewor
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAg
cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgewotICAgICAgICBJ
bnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0
ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikKKyAgICAgICAg
ICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJpbWl0aXZlQXR0
cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAppbmRleCAyYTdhM2Y0OTNiZWFmYTFlMmQy
MzRjZTNhOWRjYTNlODIzMzg1ODdmLi5hMzM1MDU0ODYxYjlmMzdjMTViMWUxOTczNDA2YTY5ZmQ0
Y2M4MTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCkBAIC01OCw3
ICs1OCw3IEBAIHZvaWQgU1ZHRkVUaWxlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluCiAKIHZvaWQgU1ZHRkVUaWxlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsK
LSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0cikgeworICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5j
ZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgaW52YWxpZGF0ZSgpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RF
bGVtZW50LmNwcAppbmRleCA1YWI5OTU5M2QyZGEyZWYzNzA2MjkzMGU2YzQ5MjFkNmFiYmFkMzU1
Li44ZjU4YTAxZTViYzg1ZWQ2ODUyNGYwYmQzNTg3MDBlN2ZhMjZkZDQ2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKQEAgLTc0LDE1ICs3NCwx
NSBAQCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdAogCiB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpoZWlnaHRBdHRyKSB7Ci0gICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpIHsK
LSAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLSAgICAgICAgaWYg
KGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAgICAgICAgUmVuZGVyU1ZH
UmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVu
ZGVyZXIpOworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJO
YW1lKSkgeworICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
KyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2Vu
dGF0aW9uYWxIaW50U3R5bGUoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICB1cGRhdGVS
ZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOworICAgICAgICAgICAgaWYgKGF1dG8gcmVuZGVy
ZXIgPSB0aGlzLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291cmNl
OjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsK
KyAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHZW9tZXRyeUVsZW1lbnQuY3BwCmluZGV4IGU2ZjJjMTc5OTY2YWJkYTIyMTRiNzZiMDk2YTNj
NWFiNTQyN2YxYTAuLjU5OWZmMjBhNzQ0Nzk2NzRlOGZlZDU2ZGI2ZGEzZTU1YmRkMTJhZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCkBAIC0xNDcsNyArMTQ3
LDcgQEAgdm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKIAogdm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0g
ICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwYXRoTGVuZ3RoQXR0cikgeworICAgIGlmIChQ
cm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJ
bnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgaWYgKGF1dG8q
IHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291
cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAKaW5kZXggNDlhMmNh
Njk4ZjU0ZTUyZjA5MjBiNTQ4NDZkZTM1ZDM1ZWEyZDFmYS4uM2JkZDUwNjgwNWI1ZjdjNzVlN2Q3
ODE1YzNhOTEyMTVjMWFiNTE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dy
YXBoaWNzRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxl
bWVudC5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCB2b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cgogCiB2
b2lkIFNWR0dyYXBoaWNzRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRyYW5z
Zm9ybUF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShh
dHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhp
cyk7CiAKICAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGE0NjdjZWEwYjJkMTZkODk4
MWE0MGYzNzc0MTQzYjdmMzMyNGZjYTguLjM0YTgwMDMwNDNiNGRhZmU0YzM2NGQ5MmNhZjIxYTgy
NTU1ZDNlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC05Mywz
MCArOTMsMjQgQEAgdm9pZCBTVkdJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcKIAogdm9pZCBTVkdJbWFnZUVsZW1l
bnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7
Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6eUF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgq
dGhpcyk7Ci0gICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7Ci0KLSAg
ICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewotICAgICAgICAg
ICAgaWYgKGRvd25jYXN0PFJlbmRlclNWR0ltYWdlPigqcmVuZGVyZXIpLnVwZGF0ZUltYWdlVmll
d3BvcnQoKSkKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpIHsKKyAgICAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVu
Z3Roc0luZm9ybWF0aW9uKCk7CisKKyAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZG93bmNhc3Q8UmVuZGVyU1ZH
SW1hZ2U+KCpyZW5kZXJlcikudXBkYXRlSW1hZ2VWaWV3cG9ydCgpKQorICAgICAgICAgICAgICAg
ICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52
YWxpZGF0aW9uKCpyZW5kZXJlcik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aGVpZ2h0QXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRT
dHlsZSgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9
IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1h
cmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewot
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAg
aW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0
aW9BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAg
ICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUlu
dmFsaWRhdGlvbigqcmVuZGVyZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYg
KFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
bV9pbWFnZUxvYWRlci51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBl
MTUxOTBlZjgzY2U2NWMyYTE0YzBhYjIxYzlmY2I1MmZiZDMxMDRkLi5lMzFjMWU1MzE4MzkyODFl
ZGI3OGY0ZmFmMDkyN2UyZWUyYWFkMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVu
dC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9pZCBT
VkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmRBdHRyKSB7CisgICAg
aWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpbnZh
bGlkYXRlTVBhdGhEZXBlbmRlbmNpZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVu
dC5jcHAKaW5kZXggZWExZmUwOTJhMTYyMzcxM2M5MzgzM2E1ZDk1N2FkY2UxZTYzOTEwMC4uMzBi
MzRmNDBlYzE1YjBiYzAzYzIxNzVlYWFjYjgxMThmZjI5NTM2MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUG9seUVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bmcmCiAKIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpw
b2ludHNBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUo
YXR0ck5hbWUpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGRvd25jYXN0PFJlbmRl
clNWR1BhdGg+KHRoaXMtPnJlbmRlcmVyKCkpKSB7CiAgICAgICAgICAgICBJbnN0YW5jZUludmFs
aWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXROZWVk
c1NoYXBlVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAppbmRleCAx
OTU3MDBlYmY3YmE3NDE5NDNjMzE3Yzk2ZjUyZWVkNTdlYjI5YTNjLi5iZjVhYmFjMzU2OGZlODkz
YzEyMDA2ZmJlNmFjMTRkZDQyYzNiNTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVu
dC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBTVkdTdG9wRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9pZCBT
VkdTdG9wRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9mZnNldEF0dHIpIHsK
KyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsK
ICAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAgICAgICAg
ICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgICAg
IFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlk
YXRpb24oKnJlbmRlcmVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454244</attachid>
            <date>2022-03-09 08:51:38 -0800</date>
            <delta_ts>2022-03-10 01:59:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237604-20220309165137.patch</filename>
            <type>text/plain</type>
            <size>20750</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmYzE0OWNkMTVkZTRk
YzEzZDA0NjNjMjJkYjU2NzE1ZTFhOTFlYy4uMzZkZTc2NDVmYTMxZGRmNzE0NjZjOTBiOTcwN2U3
ZTA5N2QwZmNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIyLTAzLTA5ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXNlIFByb3BlcnR5UmVnaXN0cnkg
Y29uc2lzdGVudGx5IGluIHN2Z0F0dHJpYnV0ZUNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzYwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBQcm9wZXJ0eVJlZ2lzdHJ5IGNvbnNpc3Rl
bnRseSBpbiBzdmdBdHRyaWJ1dGVDaGFuZ2VkIGJ5IGFsd2F5cyBjaGVja2luZworICAgICAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlIGZpcnN0IHRoaW5nLCBiZWZvcmUgZGVs
ZWdhdGluZyB0byBzdWJjbGFzc2VzLgorCisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
TWVyZ2VOb2RlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9s
b2d5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0dlb21ldHJ5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAq
IHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0wMy0wOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViUlRDIGRlY29kZWQgZnJhbWVzIGFyZSBub3QgY29ycmVj
dGx5IHJvdGF0ZWQgaW4gY2FzZSBHUFUgUHJvY2VzcyBET00gcmVuZGVyaW5nIGZsYWcgaXMgc2V0
IHRvIHRydWUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IGUx
Y2M4MzM1YzMyMGQ5ZWZlNWMyNDM4NDMwZmM4Mzk3NDhlNzZmMzUuLmMzZjNkZjljMTdjNTc5ZGZl
Mjg3MTg1MmEyNzU4OTY2YjBkMGZiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRF
bGVtZW50LmNwcApAQCAtODMsMTUgKzgzLDEyIEBAIGJvb2wgU1ZHRkVCbGVuZEVsZW1lbnQ6OnNl
dEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uc3QgUXVhCiAK
IHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjptb2Rl
QXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJO
YW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
LSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBh
dHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRh
dGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBp
ZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om1vZGVBdHRyKQorICAgICAgICAgICAgcHJpbWl0aXZl
QXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGlu
dmFsaWRhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5kZXggNjlmOTFkYzBlNTA5NjdjZmM2
N2NjYWFmZjAwZmQxNGEzZDg1NjdjNC4uNWZmMTFjY2I3YjU0YjA1YzUzOWIyZDQ2OTA3NjM1ODkw
ZTgwNDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwCkBAIC04NCwxNSArODQsMTIgQEAgYm9vbCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6
c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0LCBjb24KIAogdm9p
ZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFs
aWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnR5
cGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKSB7CisgICAgaWYgKFBy
b3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIElu
c3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVB
dHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAg
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAgICAgaW52YWxp
ZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAppbmRleCA0NTllZGFiODU5N2JhMjc5NmM3
NzkyZjlmZWU1NzhjOTgzOGRhYTFhLi45ZGI0MzU3MTYxNzA0MDRiMmYwMDRiMjM4MTQzNTQyM2Rl
ZDg0NjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNw
cApAQCAtMTE1LDE1ICsxMTUsMTIgQEAgYm9vbCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnNldEZp
bHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uc3QKIAogdm9pZCBT
VkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRv
ckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmsxQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6azJBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprM0F0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6Oms0QXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3du
QXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJk
IGd1YXJkKCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFt
ZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0cikgewotICAgICAgICBJ
bnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0
ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aW4yQXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDAyYmMzN2I2ZDRhM2JjMjhkYThhZWQz
NjNhZTE3NDk3ZjYxOWY3NmIuLmE0YjhkZjUxZjEzOTZiZDk0MzUwMjRkNmQ0MjBmMTAxNWVmY2Nh
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVt
ZW50LmNwcApAQCAtMTcyLDE1ICsxNzIsMTIgQEAgdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxl
bWVudDo6c2V0S2VybmVsVW5pdExlbmd0aChmbG9hdCB4LCBmbG9hdCB5KQogCiB2b2lkIFNWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZWRnZU1v
ZGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpkaXZpc29yQXR0ciB8fCBhdHRyTmFtZSA9
PSBTVkdOYW1lczo6Ymlhc0F0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnRhcmdldFhBdHRy
IHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp0YXJnZXRZQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnByZXNl
cnZlQWxwaGFBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQo
KnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5B
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcmRlckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6Omtlcm5lbE1hdHJpeEF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0
dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9yZGVy
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsTWF0cml4QXR0cikKKyAgICAgICAg
ICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcHJpbWl0aXZlQXR0
cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5k
ZXggOTY4NGZhYjgwMGNjMDU2YTgzNGI3NDdlY2YyZDczZGJhZjBmYzY5OC4uNDQzYTQ3NTgzZDI2
NmM5OGE1OWQ1ZWE5YjRjYTYxODc5NmE0OGM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTEyNSwxNSArMTI1LDEyIEBA
IGJvb2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1
dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsCiAKIHZvaWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6ZGlmZnVzZUNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmxpZ2h0
aW5nX2NvbG9yQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJk
KCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omlu
QXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
LSAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNl
bWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAKaW5kZXggYjYyYzQ2NDliZTEzOTk2YzE4MWUzYTk4NmUwZjljM2MzZDUz
ZGIxNC4uODA5NTk3MTZhZDA1Zjc5NDQ3OTI2MGExY2Q1YmMwOWI0ZDZmM2YzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAg
LTk5LDE1ICs5OSwxMiBAQCBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6c2V0Rmls
dGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0LAogCiB2b2lkIFNWR0ZFRGlz
cGxhY2VtZW50TWFwRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhDaGFubmVs
U2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp5Q2hhbm5lbFNlbGVjdG9yQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c2NhbGVBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRyaWJ1
dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJB
dHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwot
ICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQorICAgICAgICAgICAgaW52
YWxpZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVD
aGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKaW5kZXggNGE5YzNjNDVhOTIzZWJkMmFiZGY1YTFm
ZDJkN2ZlNTA2MDc5NGQ0My4uZGE4OTE3YmE3MWNkYzk2ZjJkOWZjZjhmMDAwMmQyMzQyMjViNjI3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMjcsNyAr
MTI3LDcgQEAgdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmkKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVu
dDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsK
LSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7
CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAg
ICBpbnZhbGlkYXRlKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKaW5kZXggNGJlOTA3ODI2ZGJhMDYxOTM2ODRlMGE0ZGFm
NWJhMmI1ZmE5NGFmYS4uNGM0NWU1ZWY1NTQ1NGNhNTc4YjBkNTkxZTFmMzYyOWVlZTZiMjYwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTYw
LDcgKzYwLDcgQEAgdm9pZCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b20KIAogdm9pZCBTVkdGRU1lcmdlTm9k
ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKKyAgICBpZiAo
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
SW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGludmFsaWRh
dGVGaWx0ZXJQcmltaXRpdmVQYXJlbnQodGhpcyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAppbmRleCBhZmI5OTk0MDBk
NTAyNjY3MzQyN2ViNzUwODY1NWVlMmM4Y2MxZjk1Li40NDc2ZDgxZjIzNjg1MmNhYWNiZjA2NDUy
YTk3YmZkYWJkZThlYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3Jw
aG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9n
eUVsZW1lbnQuY3BwCkBAIC05OCwxNSArOTgsMTIgQEAgYm9vbCBTVkdGRU1vcnBob2xvZ3lFbGVt
ZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnMK
IAogdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1l
czo6b3BlcmF0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKSB7Cisg
ICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAg
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBw
cmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAg
IH0KLQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIElu
c3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRl
KCk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAg
ICAgaW52YWxpZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwCmlu
ZGV4IDY4MTUyNjgwODJmZDg4YzI2Nzc3OWYzMTE5ODkzZWQ2MDgzMjA2YjkuLjBjM2YxNDYzMzM2
OTRmODc5ZWRhZTU0ODJjZGVmZWNkNzQ2YmIwZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTEzNSwxNSArMTM1LDEy
IEBAIGJvb2wgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0
cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0CiAKIHZvaWQgU1ZHRkVTcGVjdWxhckxpZ2h0aW5n
RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNwZWN1bGFyQ29uc3RhbnRBdHRyIHx8IGF0dHJOYW1lID09
IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
a2VybmVsVW5pdExlbmd0aEF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93
bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFy
ZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjppbkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgq
dGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjppbkF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
aWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAK
aW5kZXggMmE3YTNmNDkzYmVhZmExZTJkMjM0Y2UzYTlkY2EzZTgyMzM4NTg3Zi4uYTMzNTA1NDg2
MWI5ZjM3YzE1YjFlMTk3MzQwNmE2OWZkNGNjODE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVRpbGVFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsNyBAQCB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJp
bgogCiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpp
bkF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRy
TmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7
CiAgICAgICAgIGludmFsaWRhdGUoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKaW5kZXggNWFiOTk1OTNkMmRhMmVm
MzcwNjI5MzBlNmM0OTIxZDZhYmJhZDM1NS4uOGY1OGEwMWU1YmM4NWVkNjg1MjRmMGJkMzU4NzAw
ZTdmYTI2ZGQ0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVs
ZW1lbnQuY3BwCkBAIC03NCwxNSArNzQsMTUgQEAgdm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXQKIAog
dm9pZCBTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewotICAgICAg
ICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIgfHwgYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OnlBdHRyKSB7Ci0gICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0lu
Zm9ybWF0aW9uKCk7Ci0gICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIo
KSkKLSAgICAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50
UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3Ry
eTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKKyAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1l
czo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKQorICAgICAg
ICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7CisgICAgICAgIGVs
c2UgeworICAgICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKKyAg
ICAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKKyAgICAgICAg
ICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291cmNl
SW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CisgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcAppbmRleCBlNmYy
YzE3OTk2NmFiZGEyMjE0Yjc2YjA5NmEzYzVhYjU0MjdmMWEwLi41OTlmZjIwYTc0NDc5Njc0ZThm
ZWQ1NmRiNmRhM2U1NWJkZDEyYWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R2VvbWV0cnlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR2VvbWV0cnlF
bGVtZW50LmNwcApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHZvaWQgU1ZHR2VvbWV0cnlFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAK
IHZvaWQgU1ZHR2VvbWV0cnlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cGF0
aExlbmd0aEF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0
ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgq
dGhpcyk7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAg
ICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFuZFBhcmVudFJlc291
cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGlj
c0VsZW1lbnQuY3BwCmluZGV4IDQ5YTJjYTY5OGY1NGU1MmYwOTIwYjU0ODQ2ZGUzNWQzNWVhMmQx
ZmEuLjNiZGQ1MDY4MDViNWY3Yzc1ZTdkNzgxNWMzYTkxMjE1YzFhYjUxODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCkBAIC0xMzIsNyArMTMyLDcgQEAgdm9p
ZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0b21TdHIKIAogdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0
dHJOYW1lID09IFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogCiAgICAgICAgIGlmIChhdXRvIHJlbmRlcmVy
ID0gdGhpcy0+cmVuZGVyZXIoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNw
cAppbmRleCBhNDY3Y2VhMGIyZDE2ZDg5ODFhNDBmMzc3NDE0M2I3ZjMzMjRmY2E4Li5mNzI3ZDdi
YjgxMDhmYTJlOTg0MDE3MTVmMWFiOGQ4NTZlNzIwMjdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
SW1hZ2VFbGVtZW50LmNwcApAQCAtOTMsMjYgKzkzLDE4IEBAIHZvaWQgU1ZHSW1hZ2VFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3Ry
aW5nCiAKIHZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNl
SW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICB1cGRhdGVSZWxhdGl2ZUxl
bmd0aHNJbmZvcm1hdGlvbigpOwotCi0gICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMt
PnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIGlmIChkb3duY2FzdDxSZW5kZXJTVkdJbWFnZT4o
KnJlbmRlcmVyKS51cGRhdGVJbWFnZVZpZXdwb3J0KCkpCi0gICAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aGVpZ2h0QXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0
aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBy
ZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3Vh
cmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5k
ZXJlcigpKQorICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8IGF0dHJO
YW1lID09IFNWR05hbWVzOjp5QXR0cikgeworICAgICAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5n
dGhzSW5mb3JtYXRpb24oKTsKKworICAgICAgICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhp
cy0+cmVuZGVyZXIoKSkgeworICAgICAgICAgICAgICAgIGlmIChkb3duY2FzdDxSZW5kZXJTVkdJ
bWFnZT4oKnJlbmRlcmVyKS51cGRhdGVJbWFnZVZpZXdwb3J0KCkpCisgICAgICAgICAgICAgICAg
ICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZh
bGlkYXRpb24oKnJlbmRlcmVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpo
ZWlnaHRBdHRyKQorICAgICAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0
eWxlKCk7CisgICAgICAgIGVsc2UgaWYgKGF1dG8qIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIo
KSkKICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50
UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IGUxNTE5MGVmODNjZTY1YzJh
MTRjMGFiMjFjOWZjYjUyZmJkMzEwNGQuLmUzMWMxZTUzMTgzOTI4MWVkYjc4ZjRmYWYwOTI3ZTJl
ZTJhYWQwNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtNjUsNyAr
NjUsNyBAQCB2b2lkIFNWR1BhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiB2b2lkIFNWR1BhdGhFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZEF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdp
c3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZh
bGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGludmFsaWRhdGVNUGF0aERlcGVu
ZGVuY2llcygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAppbmRleCBlYTFm
ZTA5MmExNjIzNzEzYzkzODMzYTVkOTU3YWRjZTFlNjM5MTAwLi4zMGIzNGY0MGVjMTViMGJjMDNj
MjE3NWVhYWNiODExOGZmMjk1MzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UG9seUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5j
cHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9pZCBTVkdQ
b2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0dHIpIHsKKyAg
ICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAg
ICAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZG93bmNhc3Q8UmVuZGVyU1ZHUGF0aD4odGhpcy0+
cmVuZGVyZXIoKSkpIHsKICAgICAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3Vh
cmQoKnRoaXMpOwogICAgICAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzU2hhcGVVcGRhdGUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCmluZGV4IDE5NTcwMGViZjdiYTc0MTk0
M2MzMTdjOTZmNTJlZWQ1N2ViMjlhM2MuLmJmNWFiYWMzNTY4ZmU4OTNjMTIwMDZmYmU2YWMxNGRk
NDJjM2I1NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcApAQCAtNjQsNyAr
NjQsNyBAQCB2b2lkIFNWR1N0b3BFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiB2b2lkIFNWR1N0b3BFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cikgeworICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBpZiAoYXV0
byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKICAgICAgICAgICAgIEluc3RhbmNlSW52
YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3Vy
Y2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIp
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454327</attachid>
            <date>2022-03-10 01:59:49 -0800</date>
            <delta_ts>2022-03-10 04:19:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237604-20220310095948.patch</filename>
            <type>text/plain</type>
            <size>21624</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q1NGRlZjViZTc5YmRi
N2ZmOTM1OGQ4YjcwNjU4NWZiY2NlMmVlMS4uMDRkNGQxOWYxZGRkYmFjODVlOTdmNjY2OThjMTAz
ZTc5Y2M1ODdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIyLTAzLTEwICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXNlIFByb3BlcnR5UmVnaXN0cnkg
Y29uc2lzdGVudGx5IGluIHN2Z0F0dHJpYnV0ZUNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzYwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBQcm9wZXJ0eVJlZ2lzdHJ5IGNvbnNpc3Rl
bnRseSBpbiBzdmdBdHRyaWJ1dGVDaGFuZ2VkIGJ5IGFsd2F5cyBjaGVja2luZworICAgICAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlIGZpcnN0IHRoaW5nLCBiZWZvcmUgZGVs
ZWdhdGluZyB0byBzdWJjbGFzc2VzLgorCisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50OjpzdmdBdHRyaWJ1dGVD
aGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgor
ICAgICAgICAqIHN2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZF
TWVyZ2VOb2RlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVNb3JwaG9s
b2d5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFU3Bl
Y3VsYXJMaWdodGluZ0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6
c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0dlb21ldHJ5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgICogc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdHcmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAq
IHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VFbGVt
ZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUGF0aEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUGF0aEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdQb2x5RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0b3BFbGVtZW50OjpzdmdB
dHRyaWJ1dGVDaGFuZ2VkKToKKwogMjAyMi0wMy0wNyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxj
Z2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bV1BFXSBBZGQgaW5pdGlhbCBhZHdh
aXRhIHN0eWxlIGZvciBQREYuanMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQu
Y3BwCmluZGV4IGUxY2M4MzM1YzMyMGQ5ZWZlNWMyNDM4NDMwZmM4Mzk3NDhlNzZmMzUuLmMzZjNk
ZjljMTdjNTc5ZGZlMjg3MTg1MmEyNzU4OTY2YjBkMGZiODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQmxlbmRFbGVtZW50LmNwcApAQCAtODMsMTUgKzgzLDEyIEBAIGJvb2wgU1ZHRkVCbGVu
ZEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwg
Y29uc3QgUXVhCiAKIHZvaWQgU1ZHRkVCbGVuZEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjptb2RlQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0cikgewotICAgICAgICBJbnN0
YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZSgp
OworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om1vZGVBdHRyKQorICAgICAgICAg
ICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIGludmFsaWRhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5kZXggNjlmOTFk
YzBlNTA5NjdjZmM2N2NjYWFmZjAwZmQxNGEzZDg1NjdjNC4uNWZmMTFjY2I3YjU0YjA1YzUzOWIy
ZDQ2OTA3NjM1ODkwZTgwNDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuY3BwCkBAIC04NCwxNSArODQsMTIgQEAgYm9vbCBTVkdGRUNvbG9yTWF0
cml4RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0
LCBjb24KIAogdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0g
U1ZHTmFtZXM6OnR5cGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp2YWx1ZXNBdHRyKSB7
CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAg
ICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAg
IEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlk
YXRlKCk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAg
ICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVB
dHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaApp
bmRleCA2NGY3YjlhZTg5MWFiOTMxMjdkOTkwZjQ0N2VlNGRmMjY0NTU4YjExLi5kYWQ2NWIxYTVk
YzNmNmY2ODQ3NTg0OTI2ZDI3NWQ5NGM5OWQ1YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaApAQCAtNDAsNyArNDAsNyBAQCBw
cml2YXRlOgogICAgIHVzaW5nIFByb3BlcnR5UmVnaXN0cnkgPSBTVkdQcm9wZXJ0eU93bmVyUmVn
aXN0cnk8U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQsIFNWR0ZpbHRlclByaW1pdGl2ZVN0
YW5kYXJkQXR0cmlidXRlcz47CiAgICAgY29uc3QgU1ZHUHJvcGVydHlSZWdpc3RyeSYgcHJvcGVy
dHlSZWdpc3RyeSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvcGVydHlSZWdpc3RyeTsgfQog
Ci0gICAgLy8gRklYTUU6IHN2Z0F0dHJpYnV0ZUNoYW5nZWQgbWlzc2luZy4KKyAgICAvLyBGSVhN
RTogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzcwMiAtIHByb3Zp
ZGUgc3ZnQXR0cmlidXRlIGltcGxlbWVudGF0aW9uIGZvciBTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC4KICAgICB2b2lkIHBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBj
b25zdCBBdG9tU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICBWZWN0b3I8QXRvbVN0cmluZz4gZmls
dGVyRWZmZWN0SW5wdXRzTmFtZXMoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB7IGluMSgpIH07
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvc2l0ZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKaW5kZXgg
NDU5ZWRhYjg1OTdiYTI3OTZjNzc5MmY5ZmVlNTc4Yzk4MzhkYWExYS4uOWRiNDM1NzE2MTcwNDA0
YjJmMDA0YjIzODE0MzU0MjNkZWQ4NDYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29tcG9zaXRlRWxlbWVudC5jcHAKQEAgLTExNSwxNSArMTE1LDEyIEBAIGJvb2wgU1ZHRkVDb21w
b3NpdGVFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZl
Y3QsIGNvbnN0CiAKIHZvaWQgU1ZHRkVDb21wb3NpdGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprMUF0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmsyQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
azNBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprNEF0dHIpIHsKKyAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJp
YnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omlu
MkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7
Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
OjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluMkF0dHIpCisgICAgICAgICAgICBp
bnZhbGlkYXRlKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0
ZUNoYW5nZWQoYXR0ck5hbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcAppbmRleCAwMmJj
MzdiNmQ0YTNiYzI4ZGE4YWVkMzYzYWUxNzQ5N2Y2MTlmNzZiLi5hNGI4ZGY1MWYxMzk2YmQ5NDM1
MDI0ZDZkNDIwZjEwMTVlZmNjYWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKQEAgLTE3MiwxNSArMTcyLDEyIEBAIHZvaWQgU1ZH
RkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OnNldEtlcm5lbFVuaXRMZW5ndGgoZmxvYXQgeCwgZmxv
YXQgeSkKIAogdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hh
bmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OmVkZ2VNb2RlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZGl2aXNv
ckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmJpYXNBdHRyIHx8IGF0dHJOYW1lID09IFNW
R05hbWVzOjp0YXJnZXRYQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dGFyZ2V0WUF0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lz
dHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFs
aWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hh
bmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3JkZXJBdHRy
IHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxNYXRyaXhBdHRyKSB7Ci0gICAgICAgIElu
c3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRl
KCk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjpvcmRlckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbE1h
dHJpeEF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEaWZmdXNl
TGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQuY3BwCmluZGV4IDk2ODRmYWI4MDBjYzA1NmE4MzRiNzQ3ZWNmMmQ3M2RiYWYw
ZmM2OTguLjQ0M2E0NzU4M2QyNjZjOThhNTlkNWVhOWI0Y2E2MTg3OTZhNDhjOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwCkBA
IC0xMjUsMTUgKzEyNSwxMiBAQCBib29sIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c2V0
RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0LAogCiB2b2lkIFNWR0ZF
RGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN1cmZh
Y2VTY2FsZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmRpZmZ1c2VDb25zdGFudEF0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyIHx8IGF0dHJOYW1l
ID09IFNWR05hbWVzOjpsaWdodGluZ19jb2xvckF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdp
c3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZh
bGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNo
YW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgaWYgKGF0
dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRlKCk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5h
bWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwCmluZGV4IGI2MmM0NjQ5YmUxMzk5NmMx
ODFlM2E5ODZlMGY5YzNjM2Q1M2RiMTQuLjgwOTU5NzE2YWQwNWY3OTQ0NzkyNjBhMWNkNWJjMDli
NGQ2ZjNmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQuY3BwCkBAIC05OSwxNSArOTksMTIgQEAgYm9vbCBTVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVj
dCwKIAogdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjp4Q2hhbm5lbFNlbGVjdG9yQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
eUNoYW5uZWxTZWxlY3RvckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnNjYWxlQXR0cikg
eworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
ewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAg
ICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aW4yQXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1
YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0
cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
cHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDRhOWMz
YzQ1YTkyM2ViZDJhYmRmNWExZmQyZDdmZTUwNjA3OTRkNDMuLmRhODkxN2JhNzFjZGM5NmYyZDlm
Y2Y4ZjAwMDJkMjM0MjI1YjYyNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVt
ZW50LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpCiAKIHZv
aWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpwcmVzZXJ2
ZUFzcGVjdFJhdGlvQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0
cmlidXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1
YXJkKCp0aGlzKTsKICAgICAgICAgaW52YWxpZGF0ZSgpOwogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNZXJnZU5vZGVFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCmluZGV4IDRiZTkwNzgy
NmRiYTA2MTkzNjg0ZTBhNGRhZjViYTJiNWZhOTRhZmEuLjRjNDVlNWVmNTU0NTRjYTU3OGIwZDU5
MWUxZjM2MjllZWU2YjI2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1l
cmdlTm9kZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAK
IHZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aW5BdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0
ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwogICAgICAgICBpbnZhbGlkYXRlRmlsdGVyUHJpbWl0aXZlUGFyZW50KHRoaXMpOwogICAgICAg
ICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5j
cHAKaW5kZXggYWZiOTk5NDAwZDUwMjY2NzM0MjdlYjc1MDg2NTVlZTJjOGNjMWY5NS4uNDQ3NmQ4
MWYyMzY4NTJjYWFjYmYwNjQ1MmE5N2JmZGFiZGU4ZWJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcApAQCAtOTgsMTUgKzk4LDEyIEBAIGJvb2wg
U1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0QXR0cmlidXRlKEZpbHRlckVm
ZmVjdCogZWZmZWN0LCBjb25zCiAKIHZvaWQgU1ZHRkVNb3JwaG9sb2d5RWxlbWVudDo6c3ZnQXR0
cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9wZXJhdG9yQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6cmFkaXVzQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmli
dXRlKGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJk
KCp0aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omlu
QXR0cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsK
LSAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6
OmluQXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFy
TGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGln
aHRpbmdFbGVtZW50LmNwcAppbmRleCA2ODE1MjY4MDgyZmQ4OGMyNjc3NzlmMzExOTg5M2VkNjA4
MzIwNmI5Li4wYzNmMTQ2MzMzNjk0Zjg3OWVkYWU1NDgyY2RlZmVjZDc0NmJiMGZiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQuY3Bw
CkBAIC0xMzUsMTUgKzEzNSwxMiBAQCBib29sIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6
OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdAogCiB2b2lkIFNW
R0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpz
dXJmYWNlU2NhbGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckNvbnN0YW50
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0dHIgfHwgYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKSB7CisgICAgaWYgKFByb3Bl
cnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3Rh
bmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRy
aWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlm
IChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAgICAgaW52YWxpZGF0
ZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2Vk
KGF0dHJOYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFVGlsZUVsZW1lbnQuY3BwCmluZGV4IDJhN2EzZjQ5M2JlYWZhMWUyZDIzNGNlM2E5ZGNhM2U4
MjMzODU4N2YuLmEzMzUwNTQ4NjFiOWYzN2MxNWIxZTE5NzM0MDZhNjlmZDRjYzgxODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKQEAgLTU4LDcgKzU4LDcgQEAgdm9p
ZCBTVkdGRVRpbGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9tU3RyaW4KIAogdm9pZCBTVkdGRVRpbGVFbGVtZW50OjpzdmdBdHRyaWJ1
dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6Omlz
S25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9u
R3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpbnZhbGlkYXRlKCk7CiAgICAgICAgIHJldHVy
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmlu
ZGV4IDVhYjk5NTkzZDJkYTJlZjM3MDYyOTMwZTZjNDkyMWQ2YWJiYWQzNTUuLjhmNThhMDFlNWJj
ODVlZDY4NTI0ZjBiZDM1ODcwMGU3ZmEyNmRkNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcApAQCAtNzQsMTUgKzc0LDE1IEBAIHZvaWQgU1ZH
Rm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IG5hbWUsIGNvbnN0IEF0CiAKIHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnN2Z0F0dHJp
YnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0
dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omhl
aWdodEF0dHIpIHsKLSAgICAgICAgaW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxl
KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp5QXR0cikgewotICAgICAgICB1cGRh
dGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOwotICAgICAgICBpZiAoYXV0byByZW5kZXJl
ciA9IHRoaXMtPnJlbmRlcmVyKCkpCi0gICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFy
a0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CisgICAg
aWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOworICAgICAgICBpZiAo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
aGVpZ2h0QXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRT
dHlsZSgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIHVwZGF0ZVJlbGF0aXZlTGVuZ3Ro
c0luZm9ybWF0aW9uKCk7CisgICAgICAgICAgICBpZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJl
bmRlcmVyKCkpCisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlv
dXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOworICAgICAgICB9CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdHZW9tZXRyeUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxl
bWVudC5jcHAKaW5kZXggZTZmMmMxNzk5NjZhYmRhMjIxNGI3NmIwOTZhM2M1YWI1NDI3ZjFhMC4u
NTk5ZmYyMGE3NDQ3OTY3NGU4ZmVkNTZkYjZkYTNlNTViZGQxMmFlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHAKQEAgLTE0Nyw3ICsxNDcsNyBAQCB2b2lkIFNW
R0dlb21ldHJ5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbVN0cgogCiB2b2lkIFNWR0dlb21ldHJ5RWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5h
bWUgPT0gU1ZHTmFtZXM6OnBhdGhMZW5ndGhBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0
cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0
aGlzLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JM
YXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYXBoaWNzRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcAppbmRleCA0OWEyY2E2OThmNTRlNTJmMDky
MGI1NDg0NmRlMzVkMzVlYTJkMWZhLi4zYmRkNTA2ODA1YjVmN2M3NWU3ZDc4MTVjM2E5MTIxNWMx
YWI1MTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcApAQCAt
MTMyLDcgKzEzMiw3IEBAIHZvaWQgU1ZHR3JhcGhpY3NFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyCiAKIHZvaWQgU1ZHR3JhcGhp
Y3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHJhbnNmb3JtQXR0cikgewor
ICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgewog
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKIAogICAgICAg
ICBpZiAoYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ltYWdlRWxlbWVudC5jcHAKaW5kZXggYTQ2N2NlYTBiMmQxNmQ4OTgxYTQwZjM3NzQxNDNi
N2YzMzI0ZmNhOC4uZjcyN2Q3YmI4MTA4ZmEyZTk4NDAxNzE1ZjFhYjhkODU2ZTcyMDI3YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAKQEAgLTkzLDI2ICs5MywxOCBAQCB2
b2lkIFNWR0ltYWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbVN0cmluZwogCiB2b2lkIFNWR0ltYWdlRWxlbWVudDo6c3ZnQXR0cmli
dXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp5QXR0cikg
eworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
ewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAg
ICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhzSW5mb3JtYXRpb24oKTsKLQotICAgICAgICBpZiAoYXV0
byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7Ci0gICAgICAgICAgICBpZiAoZG93bmNh
c3Q8UmVuZGVyU1ZHSW1hZ2U+KCpyZW5kZXJlcikudXBkYXRlSW1hZ2VWaWV3cG9ydCgpKQotICAg
ICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVz
b3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm47
Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0
ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRp
b25hbEhpbnRTdHlsZSgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJO
YW1lID09IFNWR05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cikgewotICAgICAgICBJbnN0
YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaWYgKGF1dG8qIHJl
bmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjp4QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpIHsKKyAgICAgICAgICAg
IHVwZGF0ZVJlbGF0aXZlTGVuZ3Roc0luZm9ybWF0aW9uKCk7CisKKyAgICAgICAgICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAo
ZG93bmNhc3Q8UmVuZGVyU1ZHSW1hZ2U+KCpyZW5kZXJlcikudXBkYXRlSW1hZ2VWaWV3cG9ydCgp
KQorICAgICAgICAgICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFya0ZvckxheW91dEFu
ZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0gZWxzZSBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OndpZHRoQXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGVTVkdQ
cmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOworICAgICAgICBlbHNlIGlmIChhdXRvKiByZW5kZXJl
ciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFy
a0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0
aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRl
eCBlMTUxOTBlZjgzY2U2NWMyYTE0YzBhYjIxYzlmY2I1MmZiZDMxMDRkLi5lMzFjMWU1MzE4Mzky
ODFlZGI3OGY0ZmFmMDkyN2UyZWUyYWFkMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxl
bWVudC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9p
ZCBTVkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmRBdHRyKSB7Cisg
ICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAg
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogICAgICAgICBp
bnZhbGlkYXRlTVBhdGhEZXBlbmRlbmNpZXMoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxl
bWVudC5jcHAKaW5kZXggZWExZmUwOTJhMTYyMzcxM2M5MzgzM2E1ZDk1N2FkY2UxZTYzOTEwMC4u
MzBiMzRmNDBlYzE1YjBiYzAzYzIxNzVlYWFjYjgxMThmZjI5NTM2MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUG9seUVsZW1lbnQuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZvaWQgU1ZHUG9seUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21T
dHJpbmcmCiAKIHZvaWQgU1ZHUG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
Ojpwb2ludHNBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1
dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlclNWR1BhdGg+KHRoaXMtPnJlbmRlcmVyKCkpKSB7CiAgICAgICAgICAgICBJbnN0YW5jZUlu
dmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgICAgIHJlbmRlcmVyLT5zZXRO
ZWVkc1NoYXBlVXBkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3Rv
cEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcAppbmRl
eCAxOTU3MDBlYmY3YmE3NDE5NDNjMzE3Yzk2ZjUyZWVkNTdlYjI5YTNjLi5iZjVhYmFjMzU2OGZl
ODkzYzEyMDA2ZmJlNmFjMTRkZDQyYzNiNTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHU3RvcEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxl
bWVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBTVkdTdG9wRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9p
ZCBTVkdTdG9wRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Om9mZnNldEF0dHIp
IHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkp
IHsKICAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKSB7CiAgICAg
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAg
ICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJrRm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZh
bGlkYXRpb24oKnJlbmRlcmVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454332</attachid>
            <date>2022-03-10 04:19:09 -0800</date>
            <delta_ts>2022-03-10 07:53:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237604-20220310121908.patch</filename>
            <type>text/plain</type>
            <size>24733</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2Q1NGRlZjViZTc5YmRi
N2ZmOTM1OGQ4YjcwNjU4NWZiY2NlMmVlMS4uMDc4ODI0NTkzNTMxZjYxMzA2ZGY1N2Y5MzhkZjky
ZDkxYzliZmYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIyLTAzLTEwICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXNlIFByb3BlcnR5UmVnaXN0cnkg
Y29uc2lzdGVudGx5IGluIHN2Z0F0dHJpYnV0ZUNoYW5nZWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzYwNAorCisgICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBVc2UgUHJvcGVydHlSZWdpc3RyeSBjb25zaXN0
ZW50bHkgaW4gc3ZnQXR0cmlidXRlQ2hhbmdlZCBieSBhbHdheXMgY2hlY2tpbmcKKyAgICAgICAg
UHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZSBmaXJzdCB0aGluZywgYmVmb3JlIGRl
bGVnYXRpbmcgdG8gc3ViY2xhc3Nlcy4KKworICAgICAgICAqIHN2Zy9TVkdGRUJsZW5kRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRUJsZW5kRWxlbWVudDo6c3ZnQXR0cmlidXRl
Q2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZCk6CisgICAgICAgICogc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNo
YW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRUltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAg
ICogc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9T
VkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTW9ycGhv
bG9neUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFU3BlY3Vs
YXJMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9T
VkdGRVRpbGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFVGlsZUVsZW1lbnQ6
OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR0dlb21ldHJ5RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdHZW9tZXRyeUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQpOgorICAgICAgICAqIHN2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHR3JhcGhpY3NFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKToKKyAgICAgICAg
KiBzdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ltYWdlRWxl
bWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZCk6CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1BhdGhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKToKKyAgICAgICAgKiBzdmcvU1ZHUG9seUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U1ZHUG9seUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQpOgorICAgICAgICAqIHN2Zy9T
VkdTdG9wRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdG9wRWxlbWVudDo6c3Zn
QXR0cmlidXRlQ2hhbmdlZCk6CisKIDIwMjItMDMtMDcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gQWRkIGluaXRpYWwgYWR3
YWl0YSBzdHlsZSBmb3IgUERGLmpzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVCbGVuZEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50
LmNwcAppbmRleCBlMWNjODMzNWMzMjBkOWVmZTVjMjQzODQzMGZjODM5NzQ4ZTc2ZjM1Li4wMWM2
NDAwZTIzNDRjOTM1ZWYyODc2NjQ2NDQzMzc3ZTg4YWNkNDYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKQEAgLTgzLDE1ICs4MywxNCBAQCBib29sIFNWR0ZFQmxl
bmRFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3Qs
IGNvbnN0IFF1YQogCiB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2Vk
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBT
VkdOYW1lczo6bW9kZUF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBn
dWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVz
OjppbkF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluMkF0dHIpIHsKLSAgICAgICAgSW5z
dGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUo
KTsKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjptb2RlQXR0cikKKyAgICAgICAg
ICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJO
YW1lID09IFNWR05hbWVzOjppbjJBdHRyKTsKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAg
ICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAppbmRleCA2OWY5MWRjMGU1MDk2N2NmYzY3Y2Nh
YWZmMDBmZDE0YTNkODU2N2M0Li5hMmI4YzYwNzQ1NzQ0OGM4NTUyMWMzYmMxMmQ2ZjkzOWNhMDVj
NmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5j
cHAKQEAgLTg0LDE1ICs4NCwxNCBAQCBib29sIFNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzZXRG
aWx0ZXJFZmZlY3RBdHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbgogCiB2b2lkIFNW
R0ZFQ29sb3JNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHlwZUF0
dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnZhbHVlc0F0dHIpIHsKKyAgICBpZiAoUHJvcGVy
dHlSZWdpc3RyeTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAgSW5zdGFu
Y2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIHByaW1pdGl2ZUF0dHJp
YnV0ZUNoYW5nZWQoYXR0ck5hbWUpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpIHsKLSAgICAgICAgSW5zdGFuY2VJbnZhbGlk
YXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIpCisgICAgICAgICAgICBpbnZhbGlkYXRl
KCk7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05h
bWVzOjp0eXBlQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6dmFsdWVzQXR0cik7CisgICAg
ICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKyAgICAgICAgfQog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5oCmluZGV4IDY0ZjdiOWFlODkxYWI5MzEyN2Q5OTBm
NDQ3ZWU0ZGYyNjQ1NThiMTEuLmRhZDY1YjFhNWRjM2Y2ZjY4NDc1ODQ5MjZkMjc1ZDk0Yzk5ZDVj
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudC5oCkBAIC00MCw3ICs0MCw3IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgUHJvcGVydHlS
ZWdpc3RyeSA9IFNWR1Byb3BlcnR5T3duZXJSZWdpc3RyeTxTVkdGRUNvbXBvbmVudFRyYW5zZmVy
RWxlbWVudCwgU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzPjsKICAgICBjb25z
dCBTVkdQcm9wZXJ0eVJlZ2lzdHJ5JiBwcm9wZXJ0eVJlZ2lzdHJ5KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9wcm9wZXJ0eVJlZ2lzdHJ5OyB9CiAKLSAgICAvLyBGSVhNRTogc3ZnQXR0cmlidXRl
Q2hhbmdlZCBtaXNzaW5nLgorICAgIC8vIEZJWE1FOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3NzAyIC0gcHJvdmlkZSBzdmdBdHRyaWJ1dGUgaW1wbGVtZW50YXRp
b24gZm9yIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LgogICAgIHZvaWQgcGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGNvbnN0IEF0b21TdHJpbmcmKSBvdmVycmlkZTsK
IAogICAgIFZlY3RvcjxBdG9tU3RyaW5nPiBmaWx0ZXJFZmZlY3RJbnB1dHNOYW1lcygpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIHsgaW4xKCkgfTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVDb21wb3NpdGVFbGVtZW50LmNwcAppbmRleCA0NTllZGFiODU5N2JhMjc5NmM3NzkyZjlmZWU1
NzhjOTgzOGRhYTFhLi4xNDk1Y2NmYjkzZTg3M2I2MjIzMjc0ZmM1MmZhYjcwYTI1NGJmODFlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtMTE1
LDE1ICsxMTUsMTQgQEAgYm9vbCBTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OnNldEZpbHRlckVmZmVj
dEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdCwgY29uc3QKIAogdm9pZCBTVkdGRUNvbXBv
c2l0ZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpvcGVyYXRvckF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmsxQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6azJB
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprM0F0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6Oms0QXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRl
KGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0
aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW4yQXR0cikgewotICAgICAgICBJbnN0YW5jZUlu
dmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAgaW52YWxpZGF0ZSgpOworICAg
ICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdO
YW1lczo6aW4yQXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmsxQXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6azJBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprM0F0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Oms0QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6
b3BlcmF0b3JBdHRyKTsKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0
ck5hbWUpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDAyYmMz
N2I2ZDRhM2JjMjhkYThhZWQzNjNhZTE3NDk3ZjYxOWY3NmIuLmJkYjFjZWZkY2M5YmYwZWUxMTg4
OTQ3ODYxYTg3YjgyNzA5NDNkZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtMTcyLDE1ICsxNzIsMTUgQEAgdm9pZCBTVkdG
RUNvbnZvbHZlTWF0cml4RWxlbWVudDo6c2V0S2VybmVsVW5pdExlbmd0aChmbG9hdCB4LCBmbG9h
dCB5KQogCiB2b2lkIFNWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFu
Z2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6ZWRnZU1vZGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpkaXZpc29y
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6Ymlhc0F0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OnRhcmdldFhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp0YXJnZXRZQXR0ciB8
fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6OnByZXNlcnZlQWxwaGFBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0
cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpvcmRlckF0dHIg
fHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbE1hdHJpeEF0dHIpIHsKLSAgICAgICAgSW5z
dGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7Ci0gICAgICAgIGludmFsaWRhdGUo
KTsKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjppbkF0dHIgfHwgYXR0ck5hbWUg
PT0gU1ZHTmFtZXM6Om9yZGVyQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6a2VybmVsTWF0
cml4QXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmVkZ2VNb2RlQXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6ZGl2aXNvckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmJp
YXNBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp0YXJnZXRYQXR0cgorICAgICAgICAgICAg
ICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp0YXJnZXRZQXR0ciB8fCBhdHRyTmFtZSA9PSBT
VkdOYW1lczo6a2VybmVsVW5pdExlbmd0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBy
ZXNlcnZlQWxwaGFBdHRyKTsKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQo
YXR0ck5hbWUpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXgg
OTY4NGZhYjgwMGNjMDU2YTgzNGI3NDdlY2YyZDczZGJhZjBmYzY5OC4uMzBlOTEyOGYyNzIzNGIw
NjIzZjI2NjY0MDI1OGM2ZGE3YjQ1MzEzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTEyNSwxNSArMTI1LDE0IEBAIGJv
b2wgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RBdHRyaWJ1dGUo
RmlsdGVyRWZmZWN0KiBlZmZlY3QsCiAKIHZvaWQgU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50
OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewot
ICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3VyZmFjZVNjYWxlQXR0ciB8fCBhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6ZGlmZnVzZUNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1l
czo6a2VybmVsVW5pdExlbmd0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmxpZ2h0aW5n
X2NvbG9yQXR0cikgeworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRl
KGF0dHJOYW1lKSkgewogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0
aGlzKTsKLSAgICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmluQXR0
cikgewotICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAg
ICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omlu
QXR0cikKKyAgICAgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmRpZmZ1c2VDb25zdGFudEF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnN1cmZhY2VTY2FsZUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKTsKKyAgICAgICAgICAgIHByaW1pdGl2ZUF0dHJp
YnV0ZUNoYW5nZWQoYXR0ck5hbWUpOworICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVu
dC5jcHAKaW5kZXggYjYyYzQ2NDliZTEzOTk2YzE4MWUzYTk4NmUwZjljM2MzZDUzZGIxNC4uZjlk
Yjg1YWVhOTBlNDYxMTVhZjM4YWMwZTg5MzBmYmZiYzI2MmY0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTk5LDE1ICs5
OSwxNCBAQCBib29sIFNWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudDo6c2V0RmlsdGVyRWZmZWN0
QXR0cmlidXRlKEZpbHRlckVmZmVjdCogZWZmZWN0LAogCiB2b2lkIFNWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhDaGFubmVsU2VsZWN0b3JB
dHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjp5Q2hhbm5lbFNlbGVjdG9yQXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6c2NhbGVBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6
OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0
aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2Vk
KGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdHRyTmFtZSA9
PSBTVkdOYW1lczo6aW5BdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKSB7Ci0g
ICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBp
bnZhbGlkYXRlKCk7CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyIHx8
IGF0dHJOYW1lID09IFNWR05hbWVzOjppbjJBdHRyKQorICAgICAgICAgICAgaW52YWxpZGF0ZSgp
OworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1l
czo6eENoYW5uZWxTZWxlY3RvckF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlDaGFubmVs
U2VsZWN0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzY2FsZUF0dHIpOworICAgICAg
ICAgICAgcHJpbWl0aXZlQXR0cmlidXRlQ2hhbmdlZChhdHRyTmFtZSk7CisgICAgICAgIH0KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVu
dC5jcHAKaW5kZXggNGE5YzNjNDVhOTIzZWJkMmFiZGY1YTFmZDJkN2ZlNTA2MDc5NGQ0My4uMWFk
NTE2NTkwMWE1NTI1NmViNDFhMjUzMDJkYTVmZTBhMWEzYTAzMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0xMjcsNyArMTI3LDggQEAgdm9pZCBTVkdGRUlt
YWdlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbVN0cmkKIAogdm9pZCBTVkdGRUltYWdlRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdl
ZChjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0g
U1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAgICAgIEFTU0VSVChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgICAgICBJbnN0
YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgaW52YWxpZGF0ZSgp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVM
aWdodEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNw
cAppbmRleCBjNjI1MjZjY2Q3NTgzMjcwZTg4NTZkMTJlMzI3ZGVjMzM0OTRiMDEyLi4yNDg2NjY0
ZWU2MjQ5MWIwZTE3MTNmNzYzNzYwYTg2OGU5YThkZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUxpZ2h0RWxlbWVudC5jcHAKQEAgLTEyNiw2ICsxMjYsOSBAQCB2b2lkIFNWR0ZFTGlnaHRF
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9tU3RyaQogdm9pZCBTVkdGRUxpZ2h0RWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKIHsKICAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6
aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKKyAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09
IFNWR05hbWVzOjphemltdXRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZWxldmF0aW9u
QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnlBdHRyCisgICAgICAgICAgICB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6ekF0dHIgfHwg
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0WEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnBvaW50c0F0WUF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0WkF0dHIK
KyAgICAgICAgICAgIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxhckV4cG9uZW50QXR0
ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6bGltaXRpbmdDb25lQW5nbGVBdHRyKTsKICAgICAg
ICAgUmVmUHRyIHBhcmVudCA9IHBhcmVudEVsZW1lbnQoKTsKICAgICAgICAgaWYgKCFwYXJlbnQp
CiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVNZXJnZU5vZGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9k
ZUVsZW1lbnQuY3BwCmluZGV4IDRiZTkwNzgyNmRiYTA2MTkzNjg0ZTBhNGRhZjViYTJiNWZhOTRh
ZmEuLjVlYmRjYzlkZDE4YjUxN2Y2NjVlNmEwYTllNThkNjgyN2ViMjU3YmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwCkBAIC02MCw3ICs2MCw4IEBA
IHZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tCiAKIHZvaWQgU1ZHRkVNZXJnZU5vZGVFbGVtZW50Ojpz
dmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAg
IGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVn
aXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAgICAgIEFTU0VSVChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKTsKICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25H
dWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGludmFsaWRhdGVGaWx0ZXJQcmltaXRpdmVQYXJl
bnQodGhpcyk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1v
cnBob2xvZ3lFbGVtZW50LmNwcAppbmRleCBhZmI5OTk0MDBkNTAyNjY3MzQyN2ViNzUwODY1NWVl
MmM4Y2MxZjk1Li43OTA5MjA3NGM0ZjE1ZmRlYWVmZmM2OTY4YTZkNmZiMjUzMzdlN2Y4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC05OCwx
NSArOTgsMTQgQEAgYm9vbCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpzZXRGaWx0ZXJFZmZlY3RB
dHRyaWJ1dGUoRmlsdGVyRWZmZWN0KiBlZmZlY3QsIGNvbnMKIAogdm9pZCBTVkdGRU1vcnBob2xv
Z3lFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3BlcmF0b3JBdHRyIHx8IGF0
dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0
cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxp
ZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFu
Z2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3Vh
cmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7CisgICAgICAgIGlmIChhdHRy
TmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAgICAgaW52YWxpZGF0ZSgpOworICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6b3Bl
cmF0b3JBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpyYWRpdXNBdHRyKTsKKyAgICAgICAg
ICAgIHByaW1pdGl2ZUF0dHJpYnV0ZUNoYW5nZWQoYXR0ck5hbWUpOworICAgICAgICB9CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVNw
ZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA2ODE1MjY4MDgyZmQ4OGMyNjc3NzlmMzEx
OTg5M2VkNjA4MzIwNmI5Li5iNjhiYTM5MDU0NGFhNjViZmI5ZGVkOTY3NGU2ZWNlMmMyOTg3OGEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0Vs
ZW1lbnQuY3BwCkBAIC0xMzUsMTUgKzEzNSwxNCBAQCBib29sIFNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OnNldEZpbHRlckVmZmVjdEF0dHJpYnV0ZShGaWx0ZXJFZmZlY3QqIGVmZmVjdAog
CiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNW
R05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzcGVjdWxh
ckNvbnN0YW50QXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJFeHBvbmVudEF0
dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRyKSB7CisgICAg
aWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CiAgICAg
ICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBwcmlt
aXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKSB7Ci0gICAgICAgIEluc3Rh
bmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAgICAgICBpbnZhbGlkYXRlKCk7
CisgICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6aW5BdHRyKQorICAgICAgICAgICAg
aW52YWxpZGF0ZSgpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIEFTU0VSVChhdHRyTmFt
ZSA9PSBTVkdOYW1lczo6c3BlY3VsYXJDb25zdGFudEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFt
ZXM6OnNwZWN1bGFyRXhwb25lbnRBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpzdXJmYWNl
U2NhbGVBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7
CisgICAgICAgICAgICBwcmltaXRpdmVBdHRyaWJ1dGVDaGFuZ2VkKGF0dHJOYW1lKTsKKyAgICAg
ICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxl
RWxlbWVudC5jcHAKaW5kZXggMmE3YTNmNDkzYmVhZmExZTJkMjM0Y2UzYTlkY2EzZTgyMzM4NTg3
Zi4uZTQ2MTdkZTk1MmQ5OWViY2M3Njg4MTM3ZjFlNzNmYmU1YmQwNjljZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcApAQCAtNTgsNyArNTgsOCBAQCB2b2lkIFNWR0ZF
VGlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21TdHJpbgogCiB2b2lkIFNWR0ZFVGlsZUVsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5n
ZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjppbkF0dHIpIHsKKyAgICBpZiAoUHJvcGVydHlSZWdpc3RyeTo6aXNLbm93bkF0
dHJpYnV0ZShhdHRyTmFtZSkpIHsKKyAgICAgICAgQVNTRVJUKGF0dHJOYW1lID09IFNWR05hbWVz
OjppbkF0dHIpOwogICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlz
KTsKICAgICAgICAgaW52YWxpZGF0ZSgpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNwcAppbmRleCA1YWI5OTU5M2QyZGEy
ZWYzNzA2MjkzMGU2YzQ5MjFkNmFiYmFkMzU1Li40MmYzNmU3YjZkYjk3OWYxYTYxMTBjZjgwYzhm
MTNjODgyZWE1N2JkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9i
amVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0
RWxlbWVudC5jcHAKQEAgLTc0LDE1ICs3NCwxNiBAQCB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdAog
CiB2b2lkIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1l
czo6d2lkdGhBdHRyIHx8IGF0dHJOYW1lID09IFNWR05hbWVzOjpoZWlnaHRBdHRyKSB7Ci0gICAg
ICAgIGludmFsaWRhdGVTVkdQcmVzZW50YXRpb25hbEhpbnRTdHlsZSgpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp4QXR0ciB8fCBhdHRy
TmFtZSA9PSBTVkdOYW1lczo6eUF0dHIpIHsKLSAgICAgICAgdXBkYXRlUmVsYXRpdmVMZW5ndGhz
SW5mb3JtYXRpb24oKTsKLSAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpKQotICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJl
bnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOworICAgIGlmIChQcm9wZXJ0eVJlZ2lz
dHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgeworICAgICAgICBJbnN0YW5jZUludmFs
aWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKKyAgICAgICAgaWYgKGF0dHJOYW1lID09IFNWR05h
bWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIpCisgICAg
ICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKKyAgICAgICAg
ZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnhBdHRyIHx8
IGF0dHJOYW1lID09IFNWR05hbWVzOjp5QXR0cik7CisgICAgICAgICAgICB1cGRhdGVSZWxhdGl2
ZUxlbmd0aHNJbmZvcm1hdGlvbigpOworICAgICAgICAgICAgaWYgKGF1dG8gcmVuZGVyZXIgPSB0
aGlzLT5yZW5kZXJlcigpKQorICAgICAgICAgICAgICAgIFJlbmRlclNWR1Jlc291cmNlOjptYXJr
Rm9yTGF5b3V0QW5kUGFyZW50UmVzb3VyY2VJbnZhbGlkYXRpb24oKnJlbmRlcmVyKTsKKyAgICAg
ICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHR2VvbWV0cnlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9t
ZXRyeUVsZW1lbnQuY3BwCmluZGV4IGU2ZjJjMTc5OTY2YWJkYTIyMTRiNzZiMDk2YTNjNWFiNTQy
N2YxYTAuLjU2NDgwZTkxNmRmZmIzNWE5OTZkNGI0NTlmMWNkZGU2NGI0MGUxYmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHZW9tZXRyeUVsZW1lbnQuY3BwCkBAIC0xNDcsNyArMTQ3LDggQEAg
dm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKIAogdm9pZCBTVkdHZW9tZXRyeUVsZW1lbnQ6OnN2Z0F0
dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAgaWYg
KGF0dHJOYW1lID09IFNWR05hbWVzOjpwYXRoTGVuZ3RoQXR0cikgeworICAgIGlmIChQcm9wZXJ0
eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkgeworICAgICAgICBBU1NFUlQo
YXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBhdGhMZW5ndGhBdHRyKTsKICAgICAgICAgSW5zdGFuY2VJ
bnZhbGlkYXRpb25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgIGlmIChhdXRvKiByZW5kZXJl
ciA9IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFy
a0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhcGhpY3NFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3BwCmluZGV4IDQ5YTJjYTY5OGY1NGU1
MmYwOTIwYjU0ODQ2ZGUzNWQzNWVhMmQxZmEuLmRjMTA4ZTViMjNjNDZkYTk1NjAwYTAyYWFjNjIw
N2VkNWI2NjU2OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdHcmFwaGljc0VsZW1lbnQuY3Bw
CkBAIC0xMzIsNyArMTMyLDggQEAgdm9pZCBTVkdHcmFwaGljc0VsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHIKIAogdm9pZCBTVkdH
cmFwaGljc0VsZW1lbnQ6OnN2Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiB7Ci0gICAgaWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjp0cmFuc2Zvcm1BdHRy
KSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CisgICAgICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6dHJhbnNmb3JtQXR0cik7
CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwogCiAgICAg
ICAgIGlmIChhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAppbmRleCBhNDY3Y2VhMGIyZDE2ZDg5ODFhNDBmMzc3NDE0
M2I3ZjMzMjRmY2E4Li5lMTg1NDg3NDk4NTdhYTg0YmUyYjNiODc5MzBmZjlhYTViZTk4MWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcApAQCAtOTMsMzAgKzkzLDI1IEBA
IHZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nCiAKIHZvaWQgU1ZHSW1hZ2VFbGVtZW50OjpzdmdBdHRy
aWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogewotICAgIGlmIChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnlBdHRy
KSB7CisgICAgaWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUp
KSB7CiAgICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMpOwotICAg
ICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1hdGlvbigpOwotCi0gICAgICAgIGlmIChh
dXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCkpIHsKLSAgICAgICAgICAgIGlmIChkb3du
Y2FzdDxSZW5kZXJTVkdJbWFnZT4oKnJlbmRlcmVyKS51cGRhdGVJbWFnZVZpZXdwb3J0KCkpCisg
ICAgICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6eEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OnlBdHRyKSB7CisgICAgICAgICAgICB1cGRhdGVSZWxhdGl2ZUxlbmd0aHNJbmZvcm1h
dGlvbigpOworCisgICAgICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpKSB7CisgICAgICAgICAgICAgICAgaWYgKGRvd25jYXN0PFJlbmRlclNWR0ltYWdlPigqcmVu
ZGVyZXIpLnVwZGF0ZUltYWdlVmlld3BvcnQoKSkKKyAgICAgICAgICAgICAgICAgICAgUmVuZGVy
U1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigq
cmVuZGVyZXIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UgaWYgKGF0dHJOYW1lID09
IFNWR05hbWVzOjp3aWR0aEF0dHIgfHwgYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmhlaWdodEF0dHIp
CisgICAgICAgICAgICBpbnZhbGlkYXRlU1ZHUHJlc2VudGF0aW9uYWxIaW50U3R5bGUoKTsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBy
ZXNlcnZlQXNwZWN0UmF0aW9BdHRyKTsKKyAgICAgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9
IHRoaXMtPnJlbmRlcmVyKCkpCiAgICAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1h
cmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUludmFsaWRhdGlvbigqcmVuZGVyZXIpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZH
TmFtZXM6OndpZHRoQXR0ciB8fCBhdHRyTmFtZSA9PSBTVkdOYW1lczo6aGVpZ2h0QXR0cikgewot
ICAgICAgICBJbnN0YW5jZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKLSAgICAgICAg
aW52YWxpZGF0ZVNWR1ByZXNlbnRhdGlvbmFsSGludFN0eWxlKCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0
aW9BdHRyKSB7Ci0gICAgICAgIEluc3RhbmNlSW52YWxpZGF0aW9uR3VhcmQgZ3VhcmQoKnRoaXMp
OwotICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpKQotICAgICAg
ICAgICAgUmVuZGVyU1ZHUmVzb3VyY2U6Om1hcmtGb3JMYXlvdXRBbmRQYXJlbnRSZXNvdXJjZUlu
dmFsaWRhdGlvbigqcmVuZGVyZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgaWYg
KFNWR1VSSVJlZmVyZW5jZTo6aXNLbm93bkF0dHJpYnV0ZShhdHRyTmFtZSkpIHsKICAgICAgICAg
bV9pbWFnZUxvYWRlci51cGRhdGVGcm9tRWxlbWVudElnbm9yaW5nUHJldmlvdXNFcnJvcigpOwog
ICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAppbmRleCBl
MTUxOTBlZjgzY2U2NWMyYTE0YzBhYjIxYzlmY2I1MmZiZDMxMDRkLi42YTBjZjkzNmQzNTdhOWVh
ODU3OWUzZjQ3NWVkYjg3MDIzYTU4MGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUGF0aEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVu
dC5jcHAKQEAgLTY1LDcgKzY1LDggQEAgdm9pZCBTVkdQYXRoRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbVN0cmluZyYKIAogdm9pZCBT
VkdQYXRoRWxlbWVudDo6c3ZnQXR0cmlidXRlQ2hhbmdlZChjb25zdCBRdWFsaWZpZWROYW1lJiBh
dHRyTmFtZSkKIHsKLSAgICBpZiAoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OmRBdHRyKSB7CisgICAg
aWYgKFByb3BlcnR5UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAg
ICAgIEFTU0VSVChhdHRyTmFtZSA9PSBTVkdOYW1lczo6ZEF0dHIpOwogICAgICAgICBJbnN0YW5j
ZUludmFsaWRhdGlvbkd1YXJkIGd1YXJkKCp0aGlzKTsKICAgICAgICAgaW52YWxpZGF0ZU1QYXRo
RGVwZW5kZW5jaWVzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCmluZGV4
IGVhMWZlMDkyYTE2MjM3MTNjOTM4MzNhNWQ5NTdhZGNlMWU2MzkxMDAuLjZiZGViZmE3YTQ5NTI0
NjdkOTA1NjUwNjg5Yzc1ZWYxOGUxMTBlYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdQb2x5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BvbHlFbGVt
ZW50LmNwcApAQCAtNTUsNyArNTUsOCBAQCB2b2lkIFNWR1BvbHlFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9tU3RyaW5nJgogCiB2b2lk
IFNWR1BvbHlFbGVtZW50OjpzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogewotICAgIGlmIChhdHRyTmFtZSA9PSBTVkdOYW1lczo6cG9pbnRzQXR0cikg
eworICAgIGlmIChQcm9wZXJ0eVJlZ2lzdHJ5Ojppc0tub3duQXR0cmlidXRlKGF0dHJOYW1lKSkg
eworICAgICAgICBBU1NFUlQoYXR0ck5hbWUgPT0gU1ZHTmFtZXM6OnBvaW50c0F0dHIpOwogICAg
ICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBkb3duY2FzdDxSZW5kZXJTVkdQYXRoPih0aGlzLT5y
ZW5kZXJlcigpKSkgewogICAgICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRpb25HdWFyZCBndWFy
ZCgqdGhpcyk7CiAgICAgICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNTaGFwZVVwZGF0ZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKaW5kZXggMTk1NzAwZWJmN2JhNzQxOTQz
YzMxN2M5NmY1MmVlZDU3ZWIyOWEzYy4uMjA3OTZhOTAyMDI4MGRiNTM2YzRiY2Y1NzQwNDRjN2Mz
ODc1M2QxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC02NCw3ICs2
NCw4IEBAIHZvaWQgU1ZHU3RvcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21TdHJpbmcmCiAKIHZvaWQgU1ZHU3RvcEVsZW1lbnQ6OnN2
Z0F0dHJpYnV0ZUNoYW5nZWQoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiB7Ci0gICAg
aWYgKGF0dHJOYW1lID09IFNWR05hbWVzOjpvZmZzZXRBdHRyKSB7CisgICAgaWYgKFByb3BlcnR5
UmVnaXN0cnk6OmlzS25vd25BdHRyaWJ1dGUoYXR0ck5hbWUpKSB7CisgICAgICAgIEFTU0VSVChh
dHRyTmFtZSA9PSBTVkdOYW1lczo6b2Zmc2V0QXR0cik7CiAgICAgICAgIGlmIChhdXRvIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKSkgewogICAgICAgICAgICAgSW5zdGFuY2VJbnZhbGlkYXRp
b25HdWFyZCBndWFyZCgqdGhpcyk7CiAgICAgICAgICAgICBSZW5kZXJTVkdSZXNvdXJjZTo6bWFy
a0ZvckxheW91dEFuZFBhcmVudFJlc291cmNlSW52YWxpZGF0aW9uKCpyZW5kZXJlcik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>