<?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>237191</bug_id>
          
          <creation_ts>2022-02-25 01:14:00 -0800</creation_ts>
          <short_desc>Better isolate RemoteVideoFrameObjectHeap clients from ThreadSafeObjectHeap implementation details</short_desc>
          <delta_ts>2022-02-25 08:58:26 -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>WebRTC</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>
          
          <blocked>237198</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1845942</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-25 01:14:00 -0800</bug_when>
    <thetext>Better isolate RemoteVideoFrameObjectHeap clients from ThreadSafeObjectHeap implementation details</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845944</commentid>
    <comment_count>1</comment_count>
      <attachid>453185</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-25 01:29:27 -0800</bug_when>
    <thetext>Created attachment 453185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845946</commentid>
    <comment_count>2</comment_count>
      <attachid>453185</attachid>
    <who name="Kimmo Kinnunen">kkinnunen</who>
    <bug_when>2022-02-25 01:54:12 -0800</bug_when>
    <thetext>Comment on attachment 453185
Patch

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

&gt; Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h:43
&gt; +using ThreadSafeVideoFrameHeap = ThreadSafeObjectHeap&lt;RemoteVideoFrameIdentifier, RefPtr&lt;WebCore::MediaSample&gt;&gt;;

This doesn&apos;t look useful.

If you want to make it impossible to call retire, either make the heap a member or try if it&apos;s possible to delete the individual method that you think are problematic.

&gt; Source/WebKit/GPUProcess/media/RemoteVideoFrameObjectHeap.h:58
&gt; +    const WebCore::ProcessIdentity&amp; resourceOwner() const { return m_resourceOwner; }

Don&apos;t do this.
If the resources are marked as owned when they are put to a resource heap, that is already too late.
They should be marked as owned preferably as close to creation as possible.

E.g. the fact that something is stored to the object heap does not mean the attribution is made.
The fact that GPUP creates something on behalf of WP means the attribution is made.

So if / when we want to make sure that VideoFrame instances always have attribution, we should add the process identifier as the parameter to all the classes that create VideoFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845956</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-25 03:26:13 -0800</bug_when>
    <thetext>&gt; So if / when we want to make sure that VideoFrame instances always have
&gt; attribution, we should add the process identifier as the parameter to all
&gt; the classes that create VideoFrame.

This is error prone as we might forget to set attribution.
AIUI, we are missing to do it in RemoteMediaPlayerProxy for instance.
I&apos;ll fix RemoteMediaPlayerProxy but I would prefer to enforce setting attribution more easily, preferably by compilation errors or through ASSERTs otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845957</commentid>
    <comment_count>4</comment_count>
      <attachid>453189</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-02-25 03:27:34 -0800</bug_when>
    <thetext>Created attachment 453189
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846038</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-02-25 08:57:40 -0800</bug_when>
    <thetext>Committed r290513 (247797@main): &lt;https://commits.webkit.org/247797@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453189.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846039</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-25 08:58:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/89476575&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453185</attachid>
            <date>2022-02-25 01:29:27 -0800</date>
            <delta_ts>2022-02-25 03:27:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237191-20220225102925.patch</filename>
            <type>text/plain</type>
            <size>21451</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBkNmM3MzQzZWZmMjQ0MzE2
MzljMjdmNzExNTEwNzA4YWFiMmE1MWMuLmNiNDFjMWViNzc3MTZkYTIyOWFiZDM5YWNkZGE5NDUy
YWNhZGY4ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjItMDItMjUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEJldHRlciBpc29sYXRlIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwIGNsaWVudHMgZnJvbSBUaHJlYWRTYWZlT2JqZWN0SGVhcCBp
bXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzcxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBtYWtlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwIEFQSSBpbmRlcGVuZGVudCBvZiBUaHJlYWRTYWZlT2JqZWN0SGVhcC4KKyAgICAgICAgQWxz
byBtYWtlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIHNldCB0aGUgY29ycmVzcG9uZGluZyBX
ZWJQcm9jZXNzIGFzIG93bmVyIG9mIHN0b3JlZCB2aWRlbyBmcmFtZXMuCisgICAgICAgIFRoaXMg
c2ltcGxpZmllcyBjbGllbnQgY29kZSwgZm9yIGluc3RhbmNlIGJ5IG5vdCBoYXZpbmcgdG8gY2Fy
ZSBhYm91dCB0aW1lcnMsIG9yIHVzaW5nIG1vcmUga25vd24gbmFtZXMgbGlrZSBhZGQvZ2V0IGlu
c3RlYWQgb2YgcmV0aXJlLgorICAgICAgICBTaW1wbGlmeSBhIGJpdCBTaGFyZWRWaWRlb0ZyYW1l
UmVhZGVyIHNvIHRoYXQgaXQgaXMgZWl0aGVyIGluc3RhbnRpYXRlZCBXZWJQcm9jZXNzIHNpZGUg
d2l0aG91dCBvYmplY3QgaGVhcCBhbmQgc2hvdWxkIG5vdCB1c2UgSU9TdXJmYWNlCisgICAgICAg
IG9yIGluc3RhbnRpYXRlZCBHUFVQcm9jZXNzIHNpZGUgd2l0aCBhbiBvYmplY3QgaGVhcCBhbmQg
c2hvdWxkIHVzZSBJT1N1cmZhY2VzLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4K
KworICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wu
Y3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0
R0wuaDoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMQ29jb2EuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5
ZXJQcm94eS5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcC5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcC5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0Nv
ZGVjc1Byb3h5Lm1tOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJl
ZFZpZGVvRnJhbWUuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRW
aWRlb0ZyYW1lLmg6CisKIDIwMjItMDItMjQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIE9wdGltaXplIGJsYWNrIGZyYW1lIHNlbmRpbmcgaW4gTWVkaWFSZWNv
cmRlclByaXZhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwCmluZGV4IDVhZGE2MTY4NTAzMTRl
YjM2NjIyOWVlMGEzMDcxMTRiODVhMTRhNGIuLmE2NThmYWQ5NWI0YjIzY2E3OGFjZmE0NTA0YjZh
YWE3M2MzNjBlZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmNwcApAQCAtMjI4LDEyICsyMjgs
OCBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludENvbXBvc2l0ZWRSZXN1bHRz
VG9NZWRpYVNhbXBsZShDb21wbGV0aW9uSGFuZAogewogICAgIGFzc2VydElzQ3VycmVudCh3b3Jr
UXVldWUoKSk7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVQcm94
eTo6UHJvcGVydGllcz4gcmVzdWx0OwotICAgIGlmIChhdXRvIHZpZGVvRnJhbWUgPSBtX2NvbnRl
eHQtPnBhaW50Q29tcG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkpIHsKLSAgICAgICAgYXV0
byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJhbWVXcml0ZVJlZmVyZW5jZTo6Z2VuZXJhdGVGb3JBZGQo
KTsKLSAgICAgICAgYXV0byBuZXdGcmFtZVJlZmVyZW5jZSA9IHdyaXRlLnJldGlyZWRSZWZlcmVu
Y2UoKTsKLSAgICAgICAgcmVzdWx0ID0gUmVtb3RlVmlkZW9GcmFtZVByb3h5Ojpwcm9wZXJ0aWVz
KFdURk1vdmUobmV3RnJhbWVSZWZlcmVuY2UpLCAqdmlkZW9GcmFtZSk7Ci0gICAgICAgIG1fdmlk
ZW9GcmFtZU9iamVjdEhlYXAtPnJldGlyZShXVEZNb3ZlKHdyaXRlKSwgV1RGTW92ZSh2aWRlb0Zy
YW1lKSwgc3RkOjpudWxsb3B0KTsKLSAgICB9CisgICAgaWYgKGF1dG8gdmlkZW9GcmFtZSA9IG1f
Y29udGV4dC0+cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoKSkKKyAgICAgICAg
cmVzdWx0ID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+YWRkKHZpZGVvRnJhbWUucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQpKTsKIH0KICNl
bmRpZgpAQCAtMjc3LDcgKzI3Myw3IEBAIHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OnBh
aW50UGl4ZWxCdWZmZXJUb0ltYWdlQnVmZmVyKHN0ZDo6b3B0aW9uYWw8V2ViQ29yCiB2b2lkIFJl
bW90ZUdyYXBoaWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFdlYktpdDo6
UmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2UgcmVhZCwgdWludDMyX3QsIHVpbnQzMl90LCBp
bnQzMl90LCB1aW50MzJfdCwgdWludDMyX3QsIHVpbnQzMl90LCBib29sLCBib29sICwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPnJldGlyZShXVEZNb3Zl
KHJlYWQpLCBkZWZhdWx0VGltZW91dCk7CisgICAgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+Z2V0
KFdURk1vdmUocmVhZCkpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaAppbmRleCBhOTE0ZTNkY2YwNmI5OGE3NjZkYzM0YzI0NGM1
YmMyN2Y1MGE5OWJmLi45ZTA1NGNkYjcxNDg3OTFiY2U4YTAxZmUzZWU5ZDVlN2QwZjU1ZmUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhp
Y3NDb250ZXh0R0wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlR3JhcGhpY3NDb250ZXh0R0wuaApAQCAtMTM3LDcgKzEzNyw2IEBAIHByaXZhdGU6CiBwcm90
ZWN0ZWQ6CiAgICAgV2Vha1B0cjxHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M7CiAgICAgUmVmUHRyPElQQzo6U3RyZWFtU2VydmVyQ29ubmVjdGlv
bj4gbV9zdHJlYW1Db25uZWN0aW9uOwotICAgIHN0YXRpYyBjb25zdGV4cHIgU2Vjb25kcyBkZWZh
dWx0VGltZW91dCA9IDEwX3M7CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdXNpbmcgR0NHTENv
bnRleHQgPSBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHRHTENvY29hOwogI2Vsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRl
eHRHTENvY29hLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVH
cmFwaGljc0NvbnRleHRHTENvY29hLmNwcAppbmRleCBhNDk3MGMzNzI5NTVlMDA1MGFkYmRkMDFi
OWVlNmIwMTk1MjU0NzM4Li4wZTE2ZGJhZjgwNzU1MzdjMTQ3NDM2N2UzOTllZWY1ZjM0ZTgyZjI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3Jh
cGhpY3NDb250ZXh0R0xDb2NvYS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2EuY3BwCkBAIC01MCw3ICs1MCw3IEBA
IHZvaWQgUmVtb3RlR3JhcGhpY3NDb250ZXh0R0w6OmNvcHlUZXh0dXJlRnJvbVZpZGVvRnJhbWUo
V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lCiAgICAgVU5VU0VEX1ZBUklBQkxFKHByZW11bHRpcGx5
QWxwaGEpOwogICAgIEFTU0VSVF9VTlVTRUQodGFyZ2V0LCB0YXJnZXQgPT0gV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0R0w6OlRFWFRVUkVfMkQpOwogCi0gICAgYXV0byB2aWRlb0ZyYW1lID0gbV92
aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0
KTsKKyAgICBhdXRvIHZpZGVvRnJhbWUgPSBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5nZXQoV1RG
TW92ZShyZWFkKSk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKSB7CiAgICAgICAgIEFTU0VSVF9JU19U
RVNUSU5HX0lQQygpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQ
cm94eS5jcHAKaW5kZXggOTQ5ZmYzMjA1NTUwYjQ4YjdjYzc5ZTQ1MDUxNmE0MDQwMmE0YTM5OS4u
ZDNiODFhYmM0Y2ExNzYzZDQ3Mjk5YTA4MzMzOWVkNDY2NDA2MDhhMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5
LmNwcApAQCAtODc5LDEyICs4NzksOCBAQCB2b2lkIFJlbW90ZU1lZGlhUGxheWVyUHJveHk6OnZp
ZGVvRnJhbWVGb3JDdXJyZW50VGltZUlmQ2hhbmdlZChDb21wbGV0aW9uSGFuZGxlcgogICAgIGlm
IChtX3ZpZGVvRnJhbWVGb3JDdXJyZW50VGltZSAhPSB2aWRlb0ZyYW1lKSB7CiAgICAgICAgIG1f
dmlkZW9GcmFtZUZvckN1cnJlbnRUaW1lID0gdmlkZW9GcmFtZTsKICAgICAgICAgY2hhbmdlZCA9
IHRydWU7Ci0gICAgICAgIGlmICh2aWRlb0ZyYW1lKSB7Ci0gICAgICAgICAgICBhdXRvIHdyaXRl
ID0gUmVtb3RlVmlkZW9GcmFtZVdyaXRlUmVmZXJlbmNlOjpnZW5lcmF0ZUZvckFkZCgpOwotICAg
ICAgICAgICAgYXV0byBuZXdGcmFtZVJlZmVyZW5jZSA9IHdyaXRlLnJldGlyZWRSZWZlcmVuY2Uo
KTsKLSAgICAgICAgICAgIHJlc3VsdCA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJvcGVydGll
cyhXVEZNb3ZlKG5ld0ZyYW1lUmVmZXJlbmNlKSwgKnZpZGVvRnJhbWUpOwotICAgICAgICAgICAg
bV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUod3JpdGUpLCBXVEZNb3ZlKHZp
ZGVvRnJhbWUpLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICB9CisgICAgICAgIGlmICh2aWRlb0Zy
YW1lKQorICAgICAgICAgICAgcmVzdWx0ID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+YWRkKHZp
ZGVvRnJhbWUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgfQogICAgIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUocmVzdWx0KSwgY2hhbmdlZCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcApp
bmRleCA4Yjc0ZWI3ZDY3MDBhNzAyOGEyM2Y0ZTEzOWMyZmM4NjY0NzIyODRjLi5lYmI0N2I0ZGM2
NGRmYTVjY2M4MzQ5NjRjMjEwYmVjM2U1YTdmOWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5j
cHAKQEAgLTQ3LDcgKzQ3LDggQEAgUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6Y3JlYXRlKEdQVUNvbm5lY3Rpb24KIAogUmVtb3RlVmlk
ZW9GcmFtZU9iamVjdEhlYXA6OlJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwKEdQVUNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MmIGNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCiAgICAgOiBtX2dwdUNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MoJmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MpCi0gICAgLCBtX2Nvbm5l
Y3Rpb24obV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzLT5jb25uZWN0aW9uKCkpCisgICAgLCBt
X2Nvbm5lY3Rpb24oY29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jb25uZWN0aW9uKCkpCisgICAgLCBt
X3Jlc291cmNlT3duZXIoY29ubmVjdGlvblRvV2ViUHJvY2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHko
KSkKIHsKICAgICBtX2dwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MtPm1lc3NhZ2VSZWNlaXZlck1h
cCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXA6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgKnRoaXMpOwogfQpAQCAtNzgsMTIgKzc5LDE1IEBA
IHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoUmVm
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RICiBSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciBSZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6Y3JlYXRlUmVtb3RlVmlkZW9GcmFtZShSZWY8V2ViQ29y
ZTo6TWVkaWFTYW1wbGU+JiYgZnJhbWUpCiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gUmVtb3Rl
VmlkZW9GcmFtZUlkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOwotICAgIGFkZChpZGVu
dGlmaWVyLCBXVEZNb3ZlKGZyYW1lKSk7CisgICAgVGhyZWFkU2FmZVZpZGVvRnJhbWVIZWFwOjph
ZGQoaWRlbnRpZmllciwgV1RGTW92ZShmcmFtZSkpOwogICAgIHJldHVybiBpZGVudGlmaWVyOwog
fQogCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXMgUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXA6OmFkZFZpZGVvRnJhbWUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiYmIGZyYW1l
KQorUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzIFJlbW90ZVZpZGVvRnJhbWVPYmpl
Y3RIZWFwOjphZGQoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiYmIGZyYW1lKQogeworICAgIGlm
IChtX3Jlc291cmNlT3duZXIpCisgICAgICAgIGZyYW1lLT5zZXRPd25lcnNoaXBJZGVudGl0eSht
X3Jlc291cmNlT3duZXIpOworCiAgICAgYXV0byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJhbWVXcml0
ZVJlZmVyZW5jZTo6Z2VuZXJhdGVGb3JBZGQoKTsKICAgICBhdXRvIG5ld0ZyYW1lUmVmZXJlbmNl
ID0gd3JpdGUucmV0aXJlZFJlZmVyZW5jZSgpOwogICAgIGF1dG8gcHJvcGVydGllcyA9IFJlbW90
ZVZpZGVvRnJhbWVQcm94eTo6cHJvcGVydGllcyhXVEZNb3ZlKG5ld0ZyYW1lUmVmZXJlbmNlKSwg
ZnJhbWUpOwpAQCAtMTExLDcgKzExNSw2IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXA6OmdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuCiAgICAg
YXV0byBwaXhlbEJ1ZmZlciA9IHZpZGVvRnJhbWUtPnBpeGVsQnVmZmVyKCk7CiAgICAgaWYgKCFw
aXhlbEJ1ZmZlcikgewogICAgICAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OlJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwUHJveHlQcm9jZXNzb3I6OlZpZGVvRnJhbWVCdWZmZXJOb3RG
b3VuZCB7IGlkZW50aWZpZXIgfSwgMCk7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMjksMjMgKzEzMiwxNiBAQCB2b2lkIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVvRnJh
bWVSZWFkUmVmZXJlbgogCiB2b2lkIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpwaXhlbEJ1
ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmIHJlYWQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBhdXRvIHZpZGVvRnJhbWUgPSByZXRpcmUoV1RGTW92ZShyZWFkKSwgZGVmYXVs
dFRpbWVvdXQpOworICAgIGF1dG8gdmlkZW9GcmFtZSA9IHJldGlyZShXVEZNb3ZlKHJlYWQpLCAw
X3MpOwogICAgIGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19J
UEMoKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIobnVsbHB0cik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJSZWY+IHBpeGVsQnVmZmVyOwot
ICAgIGlmIChpczxWaWRlb0ZyYW1lQ1Y+KHZpZGVvRnJhbWUpKQotICAgICAgICBwaXhlbEJ1ZmZl
ciA9IGRvd25jYXN0PFZpZGVvRnJhbWVDVj4oKnZpZGVvRnJhbWUpLnBpeGVsQnVmZmVyKCk7Ci0g
ICAgZWxzZSBpZiAoaXM8TWVkaWFTYW1wbGVBVkZPYmpDPigqdmlkZW9GcmFtZSkpCi0gICAgICAg
IHBpeGVsQnVmZmVyID0gZG93bmNhc3Q8TWVkaWFTYW1wbGVBVkZPYmpDPigqdmlkZW9GcmFtZSku
cGl4ZWxCdWZmZXIoKTsKLSAgICBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwotICAgICAgICByZXR1cm47Ci0g
ICAgfQotICAgIGNvbXBsZXRpb25IYW5kbGVyKHBpeGVsQnVmZmVyKTsKKworICAgIGF1dG8gcGl4
ZWxCdWZmZXIgPSB2aWRlb0ZyYW1lLT5waXhlbEJ1ZmZlcigpOworICAgIEFTU0VSVChwaXhlbEJ1
ZmZlcik7CisgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShwaXhlbEJ1ZmZlcikpOwogfQog
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9tZWRpYS9SZW1v
dGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5oIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgKaW5kZXggMmIwMGE1Zjg5YmQzNGZhY2NlZjY4
YWVmNTE0NmEwYWZmYTQ5YTQyMS4uZjNhYmE1ZjczYzQ1YWM5ZTAzZWVhOTAyNTMzYTNhODgwMDAw
NWNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNwcmFnbWEg
b25jZQogCiAjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKSAmJiBFTkFCTEUoVklERU8pCi0jaW5jbHVk
ZSAiUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJSZW1vdGVWaWRlb0Zy
YW1lUHJveHkuaCIKICNpbmNsdWRlICJUaHJlYWRTYWZlT2JqZWN0SGVhcC5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvTWVkaWFTYW1wbGUuaD4KQEAgLTM5LDI0ICszOCwyNyBAQAogbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCi0vLyBIb2xkcyByZWZl
cmVuY2VzIHRvIGFsbCBWaWRlb0ZyYW1lIGluc3RhbmNlcyB0aGF0IGFyZSBtYXBwZWQgZnJvbSBX
ZWIgcHJvY2VzcyB0byBHUFUgcHJvY2VzcyB0d28gcHJvY2Vzc2VzLgotLy8gQXMgY3VycmVudGx5
IHRoZXJlIGlzIG5vIHNwZWNpYWwgc3RhdGUgZm9yIFJlbW90ZVZpZGVvRnJhbWUsIHRoZSBvYmpl
Y3QgaGVhcCBzdG9yZXMgVmlkZW9GcmFtZSBpbnN0YW5jZXMgKE1lZGlhU2FtcGxlKS4KLS8vIEFz
IGN1cnJlbnRseSB0aGVyZSBpcyBubyBSZW1vdGVWaWRlb0ZyYW1lLCByZXNwb25zaWJsZSBmb3Ig
ZGlzcGF0Y2hpbmcgdGhlIFZpZGVvRnJhbWUgbWV0aG9kcyB0byB0aGUgb2JqZWN0cy4KLS8vIENv
bnN1bWUgdGhyZWFkIGlzIHRoZSB0aHJlYWQgdGhhdCB1c2VzIHRoZSBWaWRlb0ZyYW1lLiBGb3Ig
R1BVUCB0aGlzIGlzIHRoZSBtZWRpYSBwbGF5ZXIgdGhyZWFkLCB0aGUgbWFpbiB0aHJlYWQuCisv
LyBIb2xkcyByZWZlcmVuY2VzIHRvIGFsbCBWaWRlb0ZyYW1lIGluc3RhbmNlcyB0aGF0IGFyZSBt
YXBwZWQgZnJvbSBHUFUgcHJvY2VzcyB0byBXZWIgcHJvY2Vzcy4KIC8vIEZJWE1FOiBjdXJyZW50
bHkgVmlkZW9GcmFtZSBpbnN0YW5jZXMgYXJlIE1lZGlhU2FtcGxlIGluc3RhbmNlcy4KLWNsYXNz
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVPYmpl
Y3RIZWFwPFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyLCBSZWZQdHI8V2ViQ29yZTo6TWVkaWFT
YW1wbGU+PiwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7Cit1c2luZyBUaHJlYWRTYWZl
VmlkZW9GcmFtZUhlYXAgPSBUaHJlYWRTYWZlT2JqZWN0SGVhcDxSZW1vdGVWaWRlb0ZyYW1lSWRl
bnRpZmllciwgUmVmUHRyPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPj47CitjbGFzcyBSZW1vdGVWaWRl
b0ZyYW1lT2JqZWN0SGVhcCBmaW5hbCA6IHByaXZhdGUgVGhyZWFkU2FmZVZpZGVvRnJhbWVIZWFw
LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBjcmVhdGUoR1BVQ29ubmVjdGlvblRvV2ViUHJv
Y2VzcyYpOwogICAgIH5SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCgpOwogCi0gICAgLy8gRklY
TUU6IFRoaXMgd2lsbCBiZSByZW1vdmVkIG9uY2UgY2FsbCBzaXRlcyB1c2UgYWRkVmlkZW9GcmFt
ZSgpLgogICAgIFJlbW90ZVZpZGVvRnJhbWVJZGVudGlmaWVyIGNyZWF0ZVJlbW90ZVZpZGVvRnJh
bWUoUmVmPFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiYmKTsKLSAgICBSZW1vdGVWaWRlb0ZyYW1lUHJv
eHk6OlByb3BlcnRpZXMgYWRkVmlkZW9GcmFtZShSZWY8V2ViQ29yZTo6TWVkaWFTYW1wbGU+JiYp
OworICAgIFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyBhZGQoUmVmPFdlYkNvcmU6
Ok1lZGlhU2FtcGxlPiYmKTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6TWVkaWFTYW1wbGU+IGdldChS
ZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW5jZSYmIHJlYWQpIHsgcmV0dXJuIHJldGlyZShXVEZN
b3ZlKHJlYWQpLCAwX3MpOyB9CiAKICAgICB2b2lkIHN0b3BMaXN0ZW5pbmdGb3JJUEMoUmVmPFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiYmIHJlZkZyb21Db25uZWN0aW9uKTsKIAorICAgIHZv
aWQgcmVmKCkgeyBUaHJlYWRTYWZlVmlkZW9GcmFtZUhlYXA6OnJlZigpOyB9CisgICAgdm9pZCBk
ZXJlZigpIHsgVGhyZWFkU2FmZVZpZGVvRnJhbWVIZWFwOjpkZXJlZigpOyB9CisKKyAgICBjb25z
dCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIoKSBjb25zdCB7IHJldHVy
biBtX3Jlc291cmNlT3duZXI7IH0KKwogcHJpdmF0ZToKLSAgICBSZW1vdGVWaWRlb0ZyYW1lT2Jq
ZWN0SGVhcChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgZXhwbGljaXQgUmVtb3Rl
VmlkZW9GcmFtZU9iamVjdEhlYXAoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAg
Ly8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBAIC02OCwxMCAr
NzAsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlk
ZW9GcmFtZVJlYWRSZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwaXhlbEJ1ZmZlcihSZW1vdGVWaWRl
b0ZyYW1lUmVhZFJlZmVyZW5jZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxD
VlBpeGVsQnVmZmVyUmVmPik+JiYpOwogI2VuZGlmCi0gICAgaW5saW5lIHN0YXRpYyBTZWNvbmRz
IGRlZmF1bHRUaW1lb3V0ID0gMTBfczsKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mq
IG1fZ3B1Q29ubmVjdGlvblRvV2ViUHJvY2VzcyBXVEZfR1VBUkRFRF9CWV9DQVBBQklMSVRZKG1h
aW5UaHJlYWQpOwogICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
KyAgICBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkgbV9yZXNvdXJjZU93bmVyOwogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIFNoYXJlZFZpZGVvRnJhbWVXcml0ZXIgbV9zaGFyZWRWaWRlb0ZyYW1l
V3JpdGVyOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2Vi
cnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94eS5tbQppbmRleCAwYWVhNWZmNzc4MzljMDExMTZmYzI1
ODZkNjRjZWU1NTNlMWU2MGJkLi40NjQ5ODE5ZTNjMWNjNzg1MTYxYjJmNGMyMTNmNWEwYjM4NTMx
ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJU
Q0NvZGVjc1Byb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGli
V2ViUlRDQ29kZWNzUHJveHkubW0KQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljIEZ1bmN0aW9uPHZv
aWQoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhlbEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVp
bnQzMl8KICAgICAgICAgaWYgKHJlc291cmNlT3duZXIpCiAgICAgICAgICAgICBzYW1wbGUtPnNl
dE93bmVyc2hpcElkZW50aXR5KHJlc291cmNlT3duZXIpOwogICAgICAgICBpZiAodXNlUmVtb3Rl
RnJhbWVzKSB7Ci0gICAgICAgICAgICBhdXRvIHByb3BlcnRpZXMgPSB2aWRlb0ZyYW1lT2JqZWN0
SGVhcC0+YWRkVmlkZW9GcmFtZShzYW1wbGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAg
ICBhdXRvIHByb3BlcnRpZXMgPSB2aWRlb0ZyYW1lT2JqZWN0SGVhcC0+YWRkKHNhbXBsZS5yZWxl
YXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6Okxp
YldlYlJUQ0NvZGVjczo6Q29tcGxldGVkRGVjb2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAs
IFdURk1vdmUocHJvcGVydGllcykgfSwgMCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVG
cmFtZShSVENFbmNvZGVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOgogewogICAgIFJl
dGFpblB0cjxDVlBpeGVsQnVmZmVyUmVmPiBwaXhlbEJ1ZmZlcjsKICAgICBpZiAoc2FtcGxlUmVm
ZXJlbmNlKSB7Ci0gICAgICAgIGF1dG8gc2FtcGxlID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+
cmV0aXJlKFdURk1vdmUoKnNhbXBsZVJlZmVyZW5jZSksIDBfcyk7CisgICAgICAgIGF1dG8gc2Ft
cGxlID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+Z2V0KFdURk1vdmUoKnNhbXBsZVJlZmVyZW5j
ZSkpOwogICAgICAgICBpZiAoIXNhbXBsZSkKICAgICAgICAgICAgIHJldHVybjsKIApAQCAtMjgy
LDcgKzI4Miw3IEBAIHZvaWQgTGliV2ViUlRDQ29kZWNzUHJveHk6OnNldFNoYXJlZFZpZGVvRnJh
bWVTZW1hcGhvcmUoUlRDRW5jb2RlcklkZW50aWZpZXIgaWRlCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmICghZW5jb2Rlci0+ZnJhbWVSZWFkZXIpCi0gICAgICAgIGVuY29kZXItPmZyYW1lUmVh
ZGVyID0gbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyPihSZWYgeyBtX3ZpZGVvRnJh
bWVPYmplY3RIZWFwIH0sIG1fcmVzb3VyY2VPd25lcik7CisgICAgICAgIGVuY29kZXItPmZyYW1l
UmVhZGVyID0gbWFrZVVuaXF1ZTxTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyPihtX3ZpZGVvRnJhbWVP
YmplY3RIZWFwLmdldCgpKTsKICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlci0+c2V0U2VtYXBob3Jl
KFdURk1vdmUoc2VtYXBob3JlKSk7CiB9CiAKQEAgLTI5Niw3ICsyOTYsNyBAQCB2b2lkIExpYldl
YlJUQ0NvZGVjc1Byb3h5OjpzZXRTaGFyZWRWaWRlb0ZyYW1lTWVtb3J5KFJUQ0VuY29kZXJJZGVu
dGlmaWVyIGlkZW50aQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIWVuY29kZXItPmZyYW1l
UmVhZGVyKQotICAgICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hhcmVk
VmlkZW9GcmFtZVJlYWRlcj4oUmVmIHsgbV92aWRlb0ZyYW1lT2JqZWN0SGVhcCB9LCBtX3Jlc291
cmNlT3duZXIpOworICAgICAgICBlbmNvZGVyLT5mcmFtZVJlYWRlciA9IG1ha2VVbmlxdWU8U2hh
cmVkVmlkZW9GcmFtZVJlYWRlcj4obV92aWRlb0ZyYW1lT2JqZWN0SGVhcC5nZXQoKSk7CiAgICAg
ZW5jb2Rlci0+ZnJhbWVSZWFkZXItPnNldFNoYXJlZE1lbW9yeShpcGNIYW5kbGUpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVj
b3JkZXIuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVNZWRpYVJl
Y29yZGVyLmNwcAppbmRleCBkNjUxZTAyYTQ4YmQxOTUxODJhNzNmNzY1YTVkNTc0NTMwNzE3MjVi
Li5iMzhiNDNmODliMDdlZWI4YWUxN2M2YTJmM2UzODExZDExN2I1NDBkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZU1lZGlhUmVjb3JkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlTWVkaWFSZWNvcmRlci5j
cHAKQEAgLTU2LDcgKzU2LDcgQEAgUmVtb3RlTWVkaWFSZWNvcmRlcjo6UmVtb3RlTWVkaWFSZWNv
cmRlcihHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBncHVDb25uZWN0aW8KICAgICA6IG1fZ3B1
Q29ubmVjdGlvblRvV2ViUHJvY2VzcyhncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgICwg
bV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX3dyaXRlcihXVEZNb3ZlKHdyaXRlcikp
Ci0gICAgLCBtX3NoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmIHsgZ3B1Q29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpIH0sIHsgZ3B1Q29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy53ZWJQcm9jZXNzSWRlbnRpdHkoKSB9KQorICAgICwgbV9zaGFyZWRWaWRlb0ZyYW1lUmVh
ZGVyKGdwdUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MudmlkZW9GcmFtZU9iamVjdEhlYXAoKSkKIHsK
ICAgICBpZiAocmVjb3JkQXVkaW8pCiAgICAgICAgIG1fcmluZ0J1ZmZlciA9IG1ha2VVbmlxdWU8
Q0FSaW5nQnVmZmVyPigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dl
YnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwCmluZGV4
IGUwZWNhNmYzN2NlZDUzMDhlNzUyYzFjNzRjZTlkZDVlOWI1MzQyMjcuLjZlMWQyMTcwM2ZjMWE5
MGI4N2I4MDY0ZmRjZWNhNDY1MTViZmMwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlM
YXllci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1JlbW90ZVZpZGVv
U2FtcGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotc3RhdGljIGNvbnN0ZXhwciBTZWNvbmRz
IGRlZmF1bHRUaW1lb3V0IHsgMV9zIH07CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBA
IC01Miw3ICs1MSw3IEBAIFJlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcjo6UmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyKEdQVUNvbm5lY3Rpb25Ub1dlCiAgICAgLCBtX2lkZW50aWZp
ZXIoaWRlbnRpZmllcikKICAgICAsIG1fY29ubmVjdGlvbihXVEZNb3ZlKGNvbm5lY3Rpb24pKQog
ICAgICwgbV9zYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIoTG9jYWxTYW1wbGVCdWZmZXJEaXNwbGF5
TGF5ZXI6OmNyZWF0ZSgqdGhpcykpCi0gICAgLCBtX3NoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVm
IHsgbV9ncHVDb25uZWN0aW9uLnZpZGVvRnJhbWVPYmplY3RIZWFwKCkgfSwgbV9ncHVDb25uZWN0
aW9uLndlYlByb2Nlc3NJZGVudGl0eSgpKQorICAgICwgbV9zaGFyZWRWaWRlb0ZyYW1lUmVhZGVy
KG1fZ3B1Q29ubmVjdGlvbi52aWRlb0ZyYW1lT2JqZWN0SGVhcCgpKQogewogICAgIEFTU0VSVCht
X3NhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCmluZGV4IDYwY2Fh
MjhkNDRiOTkxNDNlMzFlYWRlYmJmNDJjMmYyODMxZTE1Y2MuLjlmZDdkYmExNmVkNDE3MzlkNDNk
M2MwMjQ3YjBhMGFjNmZmYTEwYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwCkBAIC0xMzQsMTAgKzEzNCw4
IEBAIHZvaWQgU2hhcmVkVmlkZW9GcmFtZVdyaXRlcjo6ZGlzYWJsZSgpCiAgICAgbV9zZW1hcGhv
cmUtPnNpZ25hbCgpOwogfQogCi1TaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpTaGFyZWRWaWRlb0Zy
YW1lUmVhZGVyKFJlZlB0cjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4mJiBvYmplY3RIZWFw
LCBjb25zdCBQcm9jZXNzSWRlbnRpdHkmIHJlc291cmNlT3duZXIsIFVzZUlPU3VyZmFjZUJ1ZmZl
clBvb2wgdXNlSU9TdXJmYWNlQnVmZmVyUG9vbCkKK1NoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OlNo
YXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiYmIG9i
amVjdEhlYXApCiAgICAgOiBtX29iamVjdEhlYXAoV1RGTW92ZShvYmplY3RIZWFwKSkKLSAgICAs
IG1fcmVzb3VyY2VPd25lcihyZXNvdXJjZU93bmVyKQotICAgICwgbV91c2VJT1N1cmZhY2VCdWZm
ZXJQb29sKHVzZUlPU3VyZmFjZUJ1ZmZlclBvb2wpCiB7CiB9CiAKQEAgLTE2NCw4ICsxNjIsOCBA
QCBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVh
ZCgpCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBhdXRvIHJlc3VsdCA9IGluZm8tPmNyZWF0
ZVBpeGVsQnVmZmVyRnJvbU1lbW9yeShkYXRhICsgU2hhcmVkVmlkZW9GcmFtZUluZm9FbmNvZGlu
Z0xlbmd0aCwgcGl4ZWxCdWZmZXJQb29sKCppbmZvKSk7Ci0gICAgaWYgKHJlc3VsdCAmJiBtX3Jl
c291cmNlT3duZXIgJiYgbV91c2VJT1N1cmZhY2VCdWZmZXJQb29sID09IFVzZUlPU3VyZmFjZUJ1
ZmZlclBvb2w6OlllcykKLSAgICAgICAgc2V0T3duZXJzaGlwSWRlbnRpdHlGb3JDVlBpeGVsQnVm
ZmVyKHJlc3VsdC5nZXQoKSwgbV9yZXNvdXJjZU93bmVyKTsKKyAgICBpZiAobV9vYmplY3RIZWFw
KQorICAgICAgICBzZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZmZXIocmVzdWx0Lmdl
dCgpLCBtX29iamVjdEhlYXAtPnJlc291cmNlT3duZXIoKSk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIApAQCAtMTc3LDcgKzE3NSw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9G
cmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAg
IGlmICghbV9vYmplY3RIZWFwKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAg
ICAgYXV0byBzYW1wbGUgPSBtX29iamVjdEhlYXAtPnJldGlyZShXVEZNb3ZlKHJlZmVyZW5jZSks
IDBfcyk7CisgICAgICAgIGF1dG8gc2FtcGxlID0gbV9vYmplY3RIZWFwLT5nZXQoV1RGTW92ZShy
ZWZlcmVuY2UpKTsKICAgICAgICAgaWYgKCFzYW1wbGUpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICAgICAgQVNTRVJUKHNhbXBsZS0+cGl4ZWxCdWZmZXIoKSk7CkBAIC0xOTIsOSAr
MTkwLDkgQEAgUmVmUHRyPE1lZGlhU2FtcGxlPiBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyOjpyZWFk
KFNoYXJlZFZpZGVvRnJhbWUmJiBzaGFyZWRWaWRlb0YKICAgICB9LCBbdGhpc10oSW50U2l6ZSBz
aXplKSAtPiBSZXRhaW5QdHI8Q1ZQaXhlbEJ1ZmZlclJlZj4gewogICAgICAgICBpZiAobV9ibGFj
a0ZyYW1lU2l6ZSAhPSBzaXplKSB7CiAgICAgICAgICAgICBtX2JsYWNrRnJhbWVTaXplID0gc2l6
ZTsKLSAgICAgICAgICAgIG1fYmxhY2tGcmFtZSA9IFdlYkNvcmU6OmNyZWF0ZUJsYWNrUGl4ZWxC
dWZmZXIobV9ibGFja0ZyYW1lU2l6ZS53aWR0aCgpLCBtX2JsYWNrRnJhbWVTaXplLmhlaWdodCgp
LCBtX3VzZUlPU3VyZmFjZUJ1ZmZlclBvb2wgPT0gVXNlSU9TdXJmYWNlQnVmZmVyUG9vbDo6WWVz
KTsKLSAgICAgICAgICAgIGlmIChtX3Jlc291cmNlT3duZXIgJiYgbV91c2VJT1N1cmZhY2VCdWZm
ZXJQb29sID09IFVzZUlPU3VyZmFjZUJ1ZmZlclBvb2w6OlllcykKLSAgICAgICAgICAgICAgICBz
ZXRPd25lcnNoaXBJZGVudGl0eUZvckNWUGl4ZWxCdWZmZXIobV9ibGFja0ZyYW1lLmdldCgpLCBt
X3Jlc291cmNlT3duZXIpOworICAgICAgICAgICAgbV9ibGFja0ZyYW1lID0gV2ViQ29yZTo6Y3Jl
YXRlQmxhY2tQaXhlbEJ1ZmZlcihtX2JsYWNrRnJhbWVTaXplLndpZHRoKCksIG1fYmxhY2tGcmFt
ZVNpemUuaGVpZ2h0KCksIHVzZUlPU3VyZmFjZUJ1ZmZlclBvb2woKSk7CisgICAgICAgICAgICBp
ZiAobV9vYmplY3RIZWFwKQorICAgICAgICAgICAgICAgIHNldE93bmVyc2hpcElkZW50aXR5Rm9y
Q1ZQaXhlbEJ1ZmZlcihtX2JsYWNrRnJhbWUuZ2V0KCksIG1fb2JqZWN0SGVhcC0+cmVzb3VyY2VP
d25lcigpKTsKICAgICAgICAgfQogICAgICAgICByZXR1cm4gbV9ibGFja0ZyYW1lLmdldCgpOwog
ICAgIH0pOwpAQCAtMjA3LDcgKzIwNSw3IEBAIFJlZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlk
ZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRlb0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAKIENW
UGl4ZWxCdWZmZXJQb29sUmVmIFNoYXJlZFZpZGVvRnJhbWVSZWFkZXI6OnBpeGVsQnVmZmVyUG9v
bChjb25zdCBTaGFyZWRWaWRlb0ZyYW1lSW5mbyYgaW5mbykKIHsKLSAgICBpZiAobV91c2VJT1N1
cmZhY2VCdWZmZXJQb29sID09IFVzZUlPU3VyZmFjZUJ1ZmZlclBvb2w6Ok5vKQorICAgIGlmICgh
dXNlSU9TdXJmYWNlQnVmZmVyUG9vbCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGlmICghbV9idWZmZXJQb29sIHx8IG1fYnVmZmVyUG9vbFR5cGUgIT0gaW5mby5idWZmZXJUeXBl
KCkgfHwgbV9idWZmZXJQb29sV2lkdGggIT0gaW5mby53aWR0aCgpIHx8IG1fYnVmZmVyUG9vbEhl
aWdodCAhPSBpbmZvLmhlaWdodCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmgKaW5kZXggNTkwNDdmY2ZiYzBiNjUx
MjlmNjM2ODg4YjMxNWIyY2U4ZmRmMjNjYy4uZjdkOGY3MmYzZmQ2ODUwMjA2OTUxNDM3MTI1NGMw
MDY5Zjk3ZWYyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS93ZWJy
dGMvU2hhcmVkVmlkZW9GcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
d2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuaApAQCAtODcsOCArODcsNyBAQCBwcml2YXRlOgogY2xh
c3MgU2hhcmVkVmlkZW9GcmFtZVJlYWRlciB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgZW51bSBjbGFzcyBVc2VJT1N1cmZhY2VCdWZmZXJQb29sIHsgTm8sIFll
cyB9OwotICAgIGV4cGxpY2l0IFNoYXJlZFZpZGVvRnJhbWVSZWFkZXIoUmVmUHRyPFJlbW90ZVZp
ZGVvRnJhbWVPYmplY3RIZWFwPiYmLCBjb25zdCBXZWJDb3JlOjpQcm9jZXNzSWRlbnRpdHkmID0g
eyB9LCBVc2VJT1N1cmZhY2VCdWZmZXJQb29sID0gVXNlSU9TdXJmYWNlQnVmZmVyUG9vbDo6WWVz
KTsKKyAgICBleHBsaWNpdCBTaGFyZWRWaWRlb0ZyYW1lUmVhZGVyKFJlZjxSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcD4mJik7CiAgICAgU2hhcmVkVmlkZW9GcmFtZVJlYWRlcigpOwogCiAgICAg
dm9pZCBzZXRTZW1hcGhvcmUoSVBDOjpTZW1hcGhvcmUmJiBzZW1hcGhvcmUpIHsgbV9zZW1hcGhv
cmUgPSBXVEZNb3ZlKHNlbWFwaG9yZSk7IH0KQEAgLTEwMCw5ICs5OSw5IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgQ1ZQaXhlbEJ1ZmZlclBvb2xSZWYgcGl4ZWxCdWZmZXJQb29sKGNvbnN0IFdl
YkNvcmU6OlNoYXJlZFZpZGVvRnJhbWVJbmZvJik7CiAKKyAgICBib29sIHVzZUlPU3VyZmFjZUJ1
ZmZlclBvb2woKSBjb25zdCB7IHJldHVybiAhIW1fb2JqZWN0SGVhcDsgfQorCiAgICAgUmVmUHRy
PFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiBtX29iamVjdEhlYXA7Ci0gICAgV2ViQ29yZTo6
UHJvY2Vzc0lkZW50aXR5IG1fcmVzb3VyY2VPd25lcjsKLSAgICBVc2VJT1N1cmZhY2VCdWZmZXJQ
b29sIG1fdXNlSU9TdXJmYWNlQnVmZmVyUG9vbCB7IFVzZUlPU3VyZmFjZUJ1ZmZlclBvb2w6Ok5v
IH07CiAgICAgSVBDOjpTZW1hcGhvcmUgbV9zZW1hcGhvcmU7CiAgICAgUmVmUHRyPFNoYXJlZE1l
bW9yeT4gbV9zdG9yYWdlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453189</attachid>
            <date>2022-02-25 03:27:34 -0800</date>
            <delta_ts>2022-02-25 08:57:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237191-20220225122732.patch</filename>
            <type>text/plain</type>
            <size>16777</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDFiNzM2MDJjZWNiYWM3N2Ex
YmM2MDBkYjkwZDEyOTMxNzg5NzNiOTYuLmU1ZjUwMTZhYzgyNDMwNTc2NGEzMTZiMjhkODNmYmNl
MDA3YjhhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjItMDItMjUgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEJldHRlciBpc29sYXRlIFJlbW90
ZVZpZGVvRnJhbWVPYmplY3RIZWFwIGNsaWVudHMgZnJvbSBUaHJlYWRTYWZlT2JqZWN0SGVhcCBp
bXBsZW1lbnRhdGlvbiBkZXRhaWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzcxOTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBtYWtlIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RI
ZWFwIEFQSSBpbmRlcGVuZGVudCBvZiBUaHJlYWRTYWZlT2JqZWN0SGVhcC4KKyAgICAgICAgVGhp
cyBtYWtlcyBjb2RlIG1vcmUgcmVhZGFibGUgYW5kIHNpbXBsaWZpZXMgY2xpZW50IHNpZGUgdXNh
Z2UgYXMgd2VsbCwKKyAgICAgICAgZm9yIGluc3RhbmNlIGJ5IG5vdCBoYXZpbmcgdG8gY2FyZSBh
Ym91dCB0aW1lcnMsIG9yIHVzaW5nIG1vcmUga25vd24gbmFtZXMgbGlrZSBhZGQvZ2V0IGluc3Rl
YWQgb2YgcmV0aXJlLgorCisgICAgICAgIE5vIGNoYW5nZSBvZiBiZWhhdmlvci4KKworICAgICAg
ICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuY3BwOgorICAg
ICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0wuaDoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29jb2Eu
Y3BwOgorICAgICAgICAqIEdQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5j
cHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVh
cC5jcHA6CisgICAgICAgICogR1BVUHJvY2Vzcy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcC5oOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tOgorICAgICAgICAqIEdQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3Bs
YXlMYXllci5jcHA6CisgICAgICAgICogU2hhcmVkL1RocmVhZFNhZmVPYmplY3RIZWFwLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9HUFUvd2VicnRjL1NoYXJlZFZpZGVvRnJhbWUuY3BwOgorCiAy
MDIyLTAyLTI1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBP
cHRpbWl6ZSBibGFjayBmcmFtZSBzZW5kaW5nIGluIE1lZGlhUmVjb3JkZXJQcml2YXRlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuY3BwIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdy
YXBoaWNzQ29udGV4dEdMLmNwcAppbmRleCA1YWRhNjE2ODUwMzE0ZWIzNjYyMjllZTBhMzA3MTE0
Yjg1YTE0YTRiLi5hNjU4ZmFkOTViNGIyM2NhNzhhY2ZhNDUwNGI2YWFhNzNjMzYwZWY1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3ND
b250ZXh0R0wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVHcmFwaGljc0NvbnRleHRHTC5jcHAKQEAgLTIyOCwxMiArMjI4LDggQEAgdm9pZCBSZW1vdGVH
cmFwaGljc0NvbnRleHRHTDo6cGFpbnRDb21wb3NpdGVkUmVzdWx0c1RvTWVkaWFTYW1wbGUoQ29t
cGxldGlvbkhhbmQKIHsKICAgICBhc3NlcnRJc0N1cnJlbnQod29ya1F1ZXVlKCkpOwogICAgIHN0
ZDo6b3B0aW9uYWw8V2ViS2l0OjpSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OlByb3BlcnRpZXM+IHJl
c3VsdDsKLSAgICBpZiAoYXV0byB2aWRlb0ZyYW1lID0gbV9jb250ZXh0LT5wYWludENvbXBvc2l0
ZWRSZXN1bHRzVG9NZWRpYVNhbXBsZSgpKSB7Ci0gICAgICAgIGF1dG8gd3JpdGUgPSBSZW1vdGVW
aWRlb0ZyYW1lV3JpdGVSZWZlcmVuY2U6OmdlbmVyYXRlRm9yQWRkKCk7Ci0gICAgICAgIGF1dG8g
bmV3RnJhbWVSZWZlcmVuY2UgPSB3cml0ZS5yZXRpcmVkUmVmZXJlbmNlKCk7Ci0gICAgICAgIHJl
c3VsdCA9IFJlbW90ZVZpZGVvRnJhbWVQcm94eTo6cHJvcGVydGllcyhXVEZNb3ZlKG5ld0ZyYW1l
UmVmZXJlbmNlKSwgKnZpZGVvRnJhbWUpOwotICAgICAgICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFw
LT5yZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUodmlkZW9GcmFtZSksIHN0ZDo6bnVsbG9w
dCk7Ci0gICAgfQorICAgIGlmIChhdXRvIHZpZGVvRnJhbWUgPSBtX2NvbnRleHQtPnBhaW50Q29t
cG9zaXRlZFJlc3VsdHNUb01lZGlhU2FtcGxlKCkpCisgICAgICAgIHJlc3VsdCA9IG1fdmlkZW9G
cmFtZU9iamVjdEhlYXAtPmFkZCh2aWRlb0ZyYW1lLnJlbGVhc2VOb25OdWxsKCkpOwogICAgIGNv
bXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVzdWx0KSk7CiB9CiAjZW5kaWYKQEAgLTI3Nyw3ICsy
NzMsNyBAQCB2b2lkIFJlbW90ZUdyYXBoaWNzQ29udGV4dEdMOjpwYWludFBpeGVsQnVmZmVyVG9J
bWFnZUJ1ZmZlcihzdGQ6Om9wdGlvbmFsPFdlYkNvcgogdm9pZCBSZW1vdGVHcmFwaGljc0NvbnRl
eHRHTDo6Y29weVRleHR1cmVGcm9tVmlkZW9GcmFtZShXZWJLaXQ6OlJlbW90ZVZpZGVvRnJhbWVS
ZWFkUmVmZXJlbmNlIHJlYWQsIHVpbnQzMl90LCB1aW50MzJfdCwgaW50MzJfdCwgdWludDMyX3Qs
IHVpbnQzMl90LCB1aW50MzJfdCwgYm9vbCwgYm9vbCAsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICBtX3ZpZGVvRnJhbWVPYmplY3RIZWFwLT5yZXRpcmUoV1RGTW92ZShyZWFkKSwgZGVmYXVsdFRp
bWVvdXQpOworICAgIG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPmdldChXVEZNb3ZlKHJlYWQpKTsK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7CiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0NvbnRleHRHTC5o
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmgKaW5kZXggYTkxNGUzZGNmMDZiOThhNzY2ZGMzNGMyNDRjNWJjMjdmNTBhOTliZi4uOWUw
NTRjZGI3MTQ4NzkxYmNlOGEwMWZlM2VlOWQ1ZTdkMGY1NWZlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMLmgKKysr
IGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4
dEdMLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwcml2YXRlOgogcHJvdGVjdGVkOgogICAgIFdlYWtQ
dHI8R1BVQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OwogICAgIFJlZlB0cjxJUEM6OlN0cmVhbVNlcnZlckNvbm5lY3Rpb24+IG1fc3RyZWFtQ29ubmVj
dGlvbjsKLSAgICBzdGF0aWMgY29uc3RleHByIFNlY29uZHMgZGVmYXVsdFRpbWVvdXQgPSAxMF9z
OwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHVzaW5nIEdDR0xDb250ZXh0ID0gV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0R0xDb2NvYTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xDb2NvYS5jcHAgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlR3JhcGhpY3NDb250ZXh0R0xD
b2NvYS5jcHAKaW5kZXggYTQ5NzBjMzcyOTU1ZTAwNTBhZGJkZDAxYjllZTZiMDE5NTI1NDczOC4u
MGUxNmRiYWY4MDc1NTM3YzE0NzQzNjdlMzk5ZWVmNWYzNGU4MmYyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZUdyYXBoaWNzQ29udGV4dEdMQ29j
b2EuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVHcmFw
aGljc0NvbnRleHRHTENvY29hLmNwcApAQCAtNTAsNyArNTAsNyBAQCB2b2lkIFJlbW90ZUdyYXBo
aWNzQ29udGV4dEdMOjpjb3B5VGV4dHVyZUZyb21WaWRlb0ZyYW1lKFdlYktpdDo6UmVtb3RlVmlk
ZW9GcmFtZQogICAgIFVOVVNFRF9WQVJJQUJMRShwcmVtdWx0aXBseUFscGhhKTsKICAgICBBU1NF
UlRfVU5VU0VEKHRhcmdldCwgdGFyZ2V0ID09IFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMOjpU
RVhUVVJFXzJEKTsKIAotICAgIGF1dG8gdmlkZW9GcmFtZSA9IG1fdmlkZW9GcmFtZU9iamVjdEhl
YXAtPnJldGlyZShXVEZNb3ZlKHJlYWQpLCBkZWZhdWx0VGltZW91dCk7CisgICAgYXV0byB2aWRl
b0ZyYW1lID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+Z2V0KFdURk1vdmUocmVhZCkpOwogICAg
IGlmICghdmlkZW9GcmFtZSkgewogICAgICAgICBBU1NFUlRfSVNfVEVTVElOR19JUEMoKTsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZU1lZGlhUGxheWVyUHJveHkuY3BwCmluZGV4IDk0
OWZmMzIwNTU1MGI0OGI3Y2M3OWU0NTA1MTZhNDA0MDJhNGEzOTkuLmQzYjgxYWJjNGNhMTc2M2Q0
NzI5OWEwODMzMzllZDQ2NjQwNjA4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9tZWRpYS9SZW1vdGVNZWRpYVBsYXllclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlTWVkaWFQbGF5ZXJQcm94eS5jcHAKQEAgLTg3OSwxMiAr
ODc5LDggQEAgdm9pZCBSZW1vdGVNZWRpYVBsYXllclByb3h5Ojp2aWRlb0ZyYW1lRm9yQ3VycmVu
dFRpbWVJZkNoYW5nZWQoQ29tcGxldGlvbkhhbmRsZXIKICAgICBpZiAobV92aWRlb0ZyYW1lRm9y
Q3VycmVudFRpbWUgIT0gdmlkZW9GcmFtZSkgewogICAgICAgICBtX3ZpZGVvRnJhbWVGb3JDdXJy
ZW50VGltZSA9IHZpZGVvRnJhbWU7CiAgICAgICAgIGNoYW5nZWQgPSB0cnVlOwotICAgICAgICBp
ZiAodmlkZW9GcmFtZSkgewotICAgICAgICAgICAgYXV0byB3cml0ZSA9IFJlbW90ZVZpZGVvRnJh
bWVXcml0ZVJlZmVyZW5jZTo6Z2VuZXJhdGVGb3JBZGQoKTsKLSAgICAgICAgICAgIGF1dG8gbmV3
RnJhbWVSZWZlcmVuY2UgPSB3cml0ZS5yZXRpcmVkUmVmZXJlbmNlKCk7Ci0gICAgICAgICAgICBy
ZXN1bHQgPSBSZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnByb3BlcnRpZXMoV1RGTW92ZShuZXdGcmFt
ZVJlZmVyZW5jZSksICp2aWRlb0ZyYW1lKTsKLSAgICAgICAgICAgIG1fdmlkZW9GcmFtZU9iamVj
dEhlYXAtPnJldGlyZShXVEZNb3ZlKHdyaXRlKSwgV1RGTW92ZSh2aWRlb0ZyYW1lKSwgc3RkOjpu
dWxsb3B0KTsKLSAgICAgICAgfQorICAgICAgICBpZiAodmlkZW9GcmFtZSkKKyAgICAgICAgICAg
IHJlc3VsdCA9IG1fdmlkZW9GcmFtZU9iamVjdEhlYXAtPmFkZCh2aWRlb0ZyYW1lLnJlbGVhc2VO
b25OdWxsKCkpOwogICAgIH0KICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdCks
IGNoYW5nZWQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9tZWRpYS9SZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcC5jcHAKaW5kZXggOGI3NGViN2Q2NzAw
YTcwMjhhMjNmNGUxMzljMmZjODY2NDcyMjg0Yy4uNjg3ZjZmOWEzYzc3ZDE2YjQ5MmNiZjIwYzMy
Yzk5NjU2OGY1MTBjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL21lZGlh
L1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuY3BwCkBAIC00Nyw3ICs0Nyw3
IEBAIFJlZjxSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcD4gUmVtb3RlVmlkZW9GcmFtZU9iamVj
dEhlYXA6OmNyZWF0ZShHUFVDb25uZWN0aW9uCiAKIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFw
OjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcChHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzJiBj
b25uZWN0aW9uVG9XZWJQcm9jZXNzKQogICAgIDogbV9ncHVDb25uZWN0aW9uVG9XZWJQcm9jZXNz
KCZjb25uZWN0aW9uVG9XZWJQcm9jZXNzKQotICAgICwgbV9jb25uZWN0aW9uKG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2Vzcy0+Y29ubmVjdGlvbigpKQorICAgICwgbV9jb25uZWN0aW9uKGNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3MuY29ubmVjdGlvbigpKQogewogICAgIG1fZ3B1Q29ubmVjdGlvblRv
V2ViUHJvY2Vzcy0+bWVzc2FnZVJlY2VpdmVyTWFwKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCAq
dGhpcyk7CiB9CkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhl
YXA6OnN0b3BMaXN0ZW5pbmdGb3JJUEMoUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RICiAgICAg
ICAgIC8vIENsaWVudHMgbWlnaHQgaG9sZCBvbiB0byB0aGUgcmVmIGFmdGVyIHRoaXMgaGFwcGVu
cy4gVGhleSBzaG91bGQgYWxzbyBzdG9wIHRoZW1zZWx2ZXMsIGJ1dCBpZiB0aGV5IGRvIG5vdCwK
ICAgICAgICAgLy8gYXZvaWQgYmlnIG1lbW9yeSBsZWFrcyBieSBjbGVhcmluZyB0aGUgZnJhbWVz
LiBUaGUgY2xpZW50cyBzaG91bGQgZmFpbCBncmFjZWZ1bGx5IChkbyBub3RoaW5nKSBpbiBjYXNl
IHRoZXkgZmFpbCB0byBsb29rIHVwCiAgICAgICAgIC8vIGZyYW1lcy4KLSAgICAgICAgY2xlYXIo
KTsKKyAgICAgICAgbV9oZWFwLmNsZWFyKCk7CiAgICAgICAgIC8vIFRPRE86IGFkZCBjYW4gaGFw
cGVuIGFmdGVyIHN0b3BwaW5nLgogICAgIH0KIH0KQEAgLTc4LDMwICs3OCwzMCBAQCB2b2lkIFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpzdG9wTGlzdGVuaW5nRm9ySVBDKFJlZjxSZW1vdGVW
aWRlb0ZyYW1lT2JqZWN0SAogUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgUmVtb3RlVmlkZW9G
cmFtZU9iamVjdEhlYXA6OmNyZWF0ZVJlbW90ZVZpZGVvRnJhbWUoUmVmPFdlYkNvcmU6Ok1lZGlh
U2FtcGxlPiYmIGZyYW1lKQogewogICAgIGF1dG8gaWRlbnRpZmllciA9IFJlbW90ZVZpZGVvRnJh
bWVJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKLSAgICBhZGQoaWRlbnRpZmllciwg
V1RGTW92ZShmcmFtZSkpOworICAgIG1faGVhcC5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShmcmFt
ZSkpOwogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCi1SZW1vdGVWaWRlb0ZyYW1lUHJveHk6
OlByb3BlcnRpZXMgUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA6OmFkZFZpZGVvRnJhbWUoUmVm
PFdlYkNvcmU6Ok1lZGlhU2FtcGxlPiYmIGZyYW1lKQorUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQ
cm9wZXJ0aWVzIFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjphZGQoUmVmPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlPiYmIGZyYW1lKQogewogICAgIGF1dG8gd3JpdGUgPSBSZW1vdGVWaWRlb0ZyYW1l
V3JpdGVSZWZlcmVuY2U6OmdlbmVyYXRlRm9yQWRkKCk7CiAgICAgYXV0byBuZXdGcmFtZVJlZmVy
ZW5jZSA9IHdyaXRlLnJldGlyZWRSZWZlcmVuY2UoKTsKICAgICBhdXRvIHByb3BlcnRpZXMgPSBS
ZW1vdGVWaWRlb0ZyYW1lUHJveHk6OnByb3BlcnRpZXMoV1RGTW92ZShuZXdGcmFtZVJlZmVyZW5j
ZSksIGZyYW1lKTsKLSAgICByZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUoZnJhbWUpLCBz
dGQ6Om51bGxvcHQpOworICAgIG1faGVhcC5yZXRpcmUoV1RGTW92ZSh3cml0ZSksIFdURk1vdmUo
ZnJhbWUpLCBzdGQ6Om51bGxvcHQpOwogICAgIHJldHVybiBwcm9wZXJ0aWVzOwogfQogCiB2b2lk
IFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpyZWxlYXNlVmlkZW9GcmFtZShSZW1vdGVWaWRl
b0ZyYW1lV3JpdGVSZWZlcmVuY2UmJiB3cml0ZSkKIHsKICAgICBhc3NlcnRJc01haW5UaHJlYWQo
KTsKLSAgICByZXRpcmVSZW1vdmUoV1RGTW92ZSh3cml0ZSkpOworICAgIG1faGVhcC5yZXRpcmVS
ZW1vdmUoV1RGTW92ZSh3cml0ZSkpOwogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiB2b2lkIFJl
bW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwOjpnZXRWaWRlb0ZyYW1lQnVmZmVyKFJlbW90ZVZpZGVv
RnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSByZWFk
LmlkZW50aWZpZXIoKTsKLSAgICBhdXRvIHZpZGVvRnJhbWUgPSByZXRpcmUoV1RGTW92ZShyZWFk
KSwgMF9zKTsKKyAgICBhdXRvIHZpZGVvRnJhbWUgPSBtX2hlYXAucmV0aXJlKFdURk1vdmUocmVh
ZCksIDBfcyk7CiAKICAgICBpZiAoIXZpZGVvRnJhbWUpIHsKICAgICAgICAgbV9jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcFByb3h5UHJvY2Vzc29y
OjpWaWRlb0ZyYW1lQnVmZmVyTm90Rm91bmQgeyBpZGVudGlmaWVyIH0sIDApOwpAQCAtMTI5LDIz
ICsxMjksMTYgQEAgdm9pZCBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcDo6Z2V0VmlkZW9GcmFt
ZUJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJlZmVyZW4KIAogdm9pZCBSZW1vdGVWaWRlb0Zy
YW1lT2JqZWN0SGVhcDo6cGl4ZWxCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRSZWZlcmVuY2Um
JiByZWFkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
Pik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byB2aWRlb0ZyYW1lID0gcmV0aXJl
KFdURk1vdmUocmVhZCksIGRlZmF1bHRUaW1lb3V0KTsKKyAgICBhdXRvIHZpZGVvRnJhbWUgPSBt
X2hlYXAucmV0aXJlKFdURk1vdmUocmVhZCksIDBfcyk7CiAgICAgaWYgKCF2aWRlb0ZyYW1lKSB7
CiAgICAgICAgIEFTU0VSVF9JU19URVNUSU5HX0lQQygpOwogICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihudWxscHRyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSZXRhaW5QdHI8Q1ZQ
aXhlbEJ1ZmZlclJlZj4gcGl4ZWxCdWZmZXI7Ci0gICAgaWYgKGlzPFZpZGVvRnJhbWVDVj4odmlk
ZW9GcmFtZSkpCi0gICAgICAgIHBpeGVsQnVmZmVyID0gZG93bmNhc3Q8VmlkZW9GcmFtZUNWPigq
dmlkZW9GcmFtZSkucGl4ZWxCdWZmZXIoKTsKLSAgICBlbHNlIGlmIChpczxNZWRpYVNhbXBsZUFW
Rk9iakM+KCp2aWRlb0ZyYW1lKSkKLSAgICAgICAgcGl4ZWxCdWZmZXIgPSBkb3duY2FzdDxNZWRp
YVNhbXBsZUFWRk9iakM+KCp2aWRlb0ZyYW1lKS5waXhlbEJ1ZmZlcigpOwotICAgIGVsc2Ugewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
bnVsbHB0cik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgY29tcGxldGlvbkhhbmRsZXIo
cGl4ZWxCdWZmZXIpOworCisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHZpZGVvRnJhbWUtPnBpeGVs
QnVmZmVyKCk7CisgICAgQVNTRVJUKHBpeGVsQnVmZmVyKTsKKyAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHBpeGVsQnVmZmVyKSk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL21lZGlhL1JlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwLmggYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aAppbmRleCAyYjAwYTVmODliZDM0ZmFjY2VmNjhhZWY1MTQ2YTBhZmZhNDlhNDIxLi40OWYzZWZh
Y2FkYTIyZTAwYWNmMjJmOGU5NWRmZmViOWYyYWFmNDM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAuaAorKysgYi9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvbWVkaWEvUmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXAu
aApAQCAtMjYsMTEgKzI2LDEwIEBACiAjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShHUFVfUFJP
Q0VTUykgJiYgRU5BQkxFKFZJREVPKQotI2luY2x1ZGUgIlJlbW90ZVZpZGVvRnJhbWVJZGVudGlm
aWVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlVmlkZW9GcmFtZVByb3h5LmgiCiAjaW5jbHVkZSAiVGhy
ZWFkU2FmZU9iamVjdEhlYXAuaCIKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2FtcGxlLmg+Ci0j
aW5jbHVkZSA8d3RmL1RocmVhZEFzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2Fm
ZVJlZkNvdW50ZWQuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlNoYXJlZFZp
ZGVvRnJhbWUuaCIKQEAgLTM5LDI0ICszOCwyMCBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFz
cyBHUFVDb25uZWN0aW9uVG9XZWJQcm9jZXNzOwogCi0vLyBIb2xkcyByZWZlcmVuY2VzIHRvIGFs
bCBWaWRlb0ZyYW1lIGluc3RhbmNlcyB0aGF0IGFyZSBtYXBwZWQgZnJvbSBXZWIgcHJvY2VzcyB0
byBHUFUgcHJvY2VzcyB0d28gcHJvY2Vzc2VzLgotLy8gQXMgY3VycmVudGx5IHRoZXJlIGlzIG5v
IHNwZWNpYWwgc3RhdGUgZm9yIFJlbW90ZVZpZGVvRnJhbWUsIHRoZSBvYmplY3QgaGVhcCBzdG9y
ZXMgVmlkZW9GcmFtZSBpbnN0YW5jZXMgKE1lZGlhU2FtcGxlKS4KLS8vIEFzIGN1cnJlbnRseSB0
aGVyZSBpcyBubyBSZW1vdGVWaWRlb0ZyYW1lLCByZXNwb25zaWJsZSBmb3IgZGlzcGF0Y2hpbmcg
dGhlIFZpZGVvRnJhbWUgbWV0aG9kcyB0byB0aGUgb2JqZWN0cy4KLS8vIENvbnN1bWUgdGhyZWFk
IGlzIHRoZSB0aHJlYWQgdGhhdCB1c2VzIHRoZSBWaWRlb0ZyYW1lLiBGb3IgR1BVUCB0aGlzIGlz
IHRoZSBtZWRpYSBwbGF5ZXIgdGhyZWFkLCB0aGUgbWFpbiB0aHJlYWQuCi0vLyBGSVhNRTogY3Vy
cmVudGx5IFZpZGVvRnJhbWUgaW5zdGFuY2VzIGFyZSBNZWRpYVNhbXBsZSBpbnN0YW5jZXMuCi1j
bGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZl
T2JqZWN0SGVhcDxSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlPj4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworLy8gSG9sZHMgcmVm
ZXJlbmNlcyB0byBhbGwgVmlkZW9GcmFtZSBpbnN0YW5jZXMgdGhhdCBhcmUgbWFwcGVkIGZyb20g
R1BVIHByb2Nlc3MgdG8gV2ViIHByb2Nlc3MuCitjbGFzcyBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0
SGVhcCBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxSZW1vdGVWaWRlb0ZyYW1l
T2JqZWN0SGVhcD4sIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgogICAg
IHN0YXRpYyBSZWY8UmVtb3RlVmlkZW9GcmFtZU9iamVjdEhlYXA+IGNyZWF0ZShHUFVDb25uZWN0
aW9uVG9XZWJQcm9jZXNzJik7CiAgICAgflJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwKCk7CiAK
LSAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGJlIHJlbW92ZWQgb25jZSBjYWxsIHNpdGVzIHVzZSBh
ZGRWaWRlb0ZyYW1lKCkuCiAgICAgUmVtb3RlVmlkZW9GcmFtZUlkZW50aWZpZXIgY3JlYXRlUmVt
b3RlVmlkZW9GcmFtZShSZWY8V2ViQ29yZTo6TWVkaWFTYW1wbGU+JiYpOwotICAgIFJlbW90ZVZp
ZGVvRnJhbWVQcm94eTo6UHJvcGVydGllcyBhZGRWaWRlb0ZyYW1lKFJlZjxXZWJDb3JlOjpNZWRp
YVNhbXBsZT4mJik7CisgICAgUmVtb3RlVmlkZW9GcmFtZVByb3h5OjpQcm9wZXJ0aWVzIGFkZChS
ZWY8V2ViQ29yZTo6TWVkaWFTYW1wbGU+JiYpOworICAgIFJlZlB0cjxXZWJDb3JlOjpNZWRpYVNh
bXBsZT4gZ2V0KFJlbW90ZVZpZGVvRnJhbWVSZWFkUmVmZXJlbmNlJiYgcmVhZCkgeyByZXR1cm4g
bV9oZWFwLnJldGlyZShXVEZNb3ZlKHJlYWQpLCAwX3MpOyB9CiAKICAgICB2b2lkIHN0b3BMaXN0
ZW5pbmdGb3JJUEMoUmVmPFJlbW90ZVZpZGVvRnJhbWVPYmplY3RIZWFwPiYmIHJlZkZyb21Db25u
ZWN0aW9uKTsKIAogcHJpdmF0ZToKLSAgICBSZW1vdGVWaWRlb0ZyYW1lT2JqZWN0SGVhcChHUFVD
b25uZWN0aW9uVG9XZWJQcm9jZXNzJik7CisgICAgZXhwbGljaXQgUmVtb3RlVmlkZW9GcmFtZU9i
amVjdEhlYXAoR1BVQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYpOwogCiAgICAgLy8gSVBDOjpNZXNz
YWdlUmVjZWl2ZXIgb3ZlcnJpZGVzLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpD
b25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CkBAIC02OCwxMCArNjMsMTAgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGdldFZpZGVvRnJhbWVCdWZmZXIoUmVtb3RlVmlkZW9GcmFtZVJlYWRS
ZWZlcmVuY2UmJik7CiAgICAgdm9pZCBwaXhlbEJ1ZmZlcihSZW1vdGVWaWRlb0ZyYW1lUmVhZFJl
ZmVyZW5jZSYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJldGFpblB0cjxDVlBpeGVsQnVmZmVy
UmVmPik+JiYpOwogI2VuZGlmCi0gICAgaW5saW5lIHN0YXRpYyBTZWNvbmRzIGRlZmF1bHRUaW1l
b3V0ID0gMTBfczsKIAogICAgIEdQVUNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MqIG1fZ3B1Q29ubmVj
dGlvblRvV2ViUHJvY2VzcyBXVEZfR1VBUkRFRF9CWV9DQVBBQklMSVRZKG1haW5UaHJlYWQpOwog
ICAgIGNvbnN0IFJlZjxJUEM6OkNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKKyAgICBUaHJlYWRT
YWZlT2JqZWN0SGVhcDxSZW1vdGVWaWRlb0ZyYW1lSWRlbnRpZmllciwgUmVmUHRyPFdlYkNvcmU6
Ok1lZGlhU2FtcGxlPj4gbV9oZWFwOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFNoYXJlZFZp
ZGVvRnJhbWVXcml0ZXIgbV9zaGFyZWRWaWRlb0ZyYW1lV3JpdGVyOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5
Lm1tIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9MaWJXZWJSVENDb2RlY3NQcm94
eS5tbQppbmRleCAwYWVhNWZmNzc4MzljMDExMTZmYzI1ODZkNjRjZWU1NTNlMWU2MGJkLi5kZmI1
NTVhOTY3MGZhZjM3NTY4YTJjMDY1NDcwNGQwMmY0ZWM4YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL0xpYldlYlJUQ0NvZGVjc1Byb3h5Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvTGliV2ViUlRDQ29kZWNzUHJveHkubW0KQEAg
LTkxLDcgKzkxLDcgQEAgc3RhdGljIEZ1bmN0aW9uPHZvaWQoQ1ZQaXhlbEJ1ZmZlclJlZiBwaXhl
bEJ1ZmZlciwgdWludDMyX3QgdGltZVN0YW1wTnMsIHVpbnQzMl8KICAgICAgICAgaWYgKHJlc291
cmNlT3duZXIpCiAgICAgICAgICAgICBzYW1wbGUtPnNldE93bmVyc2hpcElkZW50aXR5KHJlc291
cmNlT3duZXIpOwogICAgICAgICBpZiAodXNlUmVtb3RlRnJhbWVzKSB7Ci0gICAgICAgICAgICBh
dXRvIHByb3BlcnRpZXMgPSB2aWRlb0ZyYW1lT2JqZWN0SGVhcC0+YWRkVmlkZW9GcmFtZShzYW1w
bGUucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICBhdXRvIHByb3BlcnRpZXMgPSB2aWRl
b0ZyYW1lT2JqZWN0SGVhcC0+YWRkKHNhbXBsZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAg
ICAgIGNvbm5lY3Rpb24tPnNlbmQoTWVzc2FnZXM6OkxpYldlYlJUQ0NvZGVjczo6Q29tcGxldGVk
RGVjb2RpbmcgeyBpZGVudGlmaWVyLCB0aW1lU3RhbXAsIFdURk1vdmUocHJvcGVydGllcykgfSwg
MCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTIzMSw3ICsyMzEsNyBAQCB2
b2lkIExpYldlYlJUQ0NvZGVjc1Byb3h5OjplbmNvZGVGcmFtZShSVENFbmNvZGVySWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOgogewogICAgIFJldGFpblB0cjxDVlBpeGVsQnVmZmVyUmVm
PiBwaXhlbEJ1ZmZlcjsKICAgICBpZiAoc2FtcGxlUmVmZXJlbmNlKSB7Ci0gICAgICAgIGF1dG8g
c2FtcGxlID0gbV92aWRlb0ZyYW1lT2JqZWN0SGVhcC0+cmV0aXJlKFdURk1vdmUoKnNhbXBsZVJl
ZmVyZW5jZSksIDBfcyk7CisgICAgICAgIGF1dG8gc2FtcGxlID0gbV92aWRlb0ZyYW1lT2JqZWN0
SGVhcC0+Z2V0KFdURk1vdmUoKnNhbXBsZVJlZmVyZW5jZSkpOwogICAgICAgICBpZiAoIXNhbXBs
ZSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9HUFVQ
cm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIuY3BwIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL3dlYnJ0Yy9SZW1vdGVTYW1wbGVCdWZmZXJEaXNwbGF5TGF5ZXIu
Y3BwCmluZGV4IGUwZWNhNmYzN2NlZDUzMDhlNzUyYzFjNzRjZTlkZDVlOWI1MzQyMjcuLmU3YTBj
YTI3NWZlNWY2MGZmN2VlYmU4YTg4YWY4NmFkYTZjNzQyODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mvd2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZl
ckRpc3BsYXlMYXllci5jcHAKQEAgLTM3LDcgKzM3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jl
bW90ZVZpZGVvU2FtcGxlLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewotc3RhdGljIGNvbnN0ZXhw
ciBTZWNvbmRzIGRlZmF1bHRUaW1lb3V0IHsgMV9zIH07CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9UaHJlYWRTYWZlT2JqZWN0
SGVhcC5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvVGhyZWFkU2FmZU9iamVjdEhlYXAuaAppbmRl
eCAxNWRjNjU3MjIwMmM5MDBmMTlmNzY4ZDA0MzQ1OTNkN2FlOGZiMTM1Li5jMzA2ZjMyNGZiOWZh
MDA5M2FkM2U1YzE2YTM4Zjk5YTBjOTUzZDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9UaHJlYWRTYWZlT2JqZWN0SGVhcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Ro
cmVhZFNhZmVPYmplY3RIZWFwLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZEFzc2Vy
dGlvbnMuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CiAKQEAgLTQ1LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAvLyBD
dXJyZW50bHkgaW1wbGVtZW50ZWQgb25seSBmb3IgcmVhZC1vbmx5IChjcmVhdGUtcmVhZC1kZXN0
cm95KSBvciBjb3B5LW9uLXdyaXRlIHR5cGVzLAogLy8gZS5nLiBubyB0d28tcGhhc2UgZ2V0KCkg
b3BlcmF0aW9ucyBhcmUgbm90IGltcGxlbWVudGVkIHlldC4KIHRlbXBsYXRlPHR5cGVuYW1lIElk
ZW50aWZpZXIsIHR5cGVuYW1lIEhlbGRUeXBlPgotY2xhc3MgVGhyZWFkU2FmZU9iamVjdEhlYXAg
OiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkU2FmZU9iamVjdEhlYXA8SWRlbnRp
ZmllciwgSGVsZFR5cGU+PiB7CitjbGFzcyBUaHJlYWRTYWZlT2JqZWN0SGVhcCB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgUmVhZFJlZmVyZW5jZSA9IHR5cGVuYW1lIE9iamVjdElkZW50aWZpZXJSZWZl
cmVuY2VUcmFja2VyPElkZW50aWZpZXI+OjpSZWFkUmVmZXJlbmNlOwogICAgIHVzaW5nIFdyaXRl
UmVmZXJlbmNlID0gdHlwZW5hbWUgT2JqZWN0SWRlbnRpZmllclJlZmVyZW5jZVRyYWNrZXI8SWRl
bnRpZmllcj46OldyaXRlUmVmZXJlbmNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS93ZWJydGMvU2hhcmVkVmlkZW9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAppbmRleCA2MGNhYTI4ZDQ0
Yjk5MTQzZTMxZWFkZWJiZjQyYzJmMjgzMWUxNWNjLi45MDA5NDAzMWY4NjNhNjZkNTUyZTk0Mjcz
YTBkOGI4NGZmNGUyZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BV
L3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL3dlYnJ0Yy9TaGFyZWRWaWRlb0ZyYW1lLmNwcApAQCAtMTc3LDcgKzE3Nyw3IEBAIFJl
ZlB0cjxNZWRpYVNhbXBsZT4gU2hhcmVkVmlkZW9GcmFtZVJlYWRlcjo6cmVhZChTaGFyZWRWaWRl
b0ZyYW1lJiYgc2hhcmVkVmlkZW9GCiAgICAgICAgIGlmICghbV9vYmplY3RIZWFwKQogICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICAgICAgYXV0byBzYW1wbGUgPSBtX29iamVjdEhl
YXAtPnJldGlyZShXVEZNb3ZlKHJlZmVyZW5jZSksIDBfcyk7CisgICAgICAgIGF1dG8gc2FtcGxl
ID0gbV9vYmplY3RIZWFwLT5nZXQoV1RGTW92ZShyZWZlcmVuY2UpKTsKICAgICAgICAgaWYgKCFz
YW1wbGUpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgQVNTRVJUKHNhbXBs
ZS0+cGl4ZWxCdWZmZXIoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>