<?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>139710</bug_id>
          
          <creation_ts>2014-12-16 15:33:47 -0800</creation_ts>
          <short_desc>Use Ref for SecurityOrigin.</short_desc>
          <delta_ts>2014-12-16 17:47:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mkwst</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1056170</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-16 15:33:47 -0800</bug_when>
    <thetext>The various SecurityOrigin::create() helpers should return Ref&lt;SecurityOrigin&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056172</commentid>
    <comment_count>1</comment_count>
      <attachid>243401</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-12-16 15:53:33 -0800</bug_when>
    <thetext>Created attachment 243401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056204</commentid>
    <comment_count>2</comment_count>
      <attachid>243401</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 17:47:53 -0800</bug_when>
    <thetext>Comment on attachment 243401
Patch

Clearing flags on attachment: 243401

Committed r177422: &lt;http://trac.webkit.org/changeset/177422&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056205</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-16 17:47:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243401</attachid>
            <date>2014-12-16 15:53:33 -0800</date>
            <delta_ts>2014-12-16 17:47:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139710.diff</filename>
            <type>text/plain</type>
            <size>34138</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYmJmYmZjLi5mODAzNTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTMg
QEAKIDIwMTQtMTItMTYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCisgICAg
ICAgIFVzZSBSZWYgZm9yIFNlY3VyaXR5T3JpZ2luLgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQu
b3JnL2IvMTM5NzEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSooKSByZXR1cm4gUmVmPFNlY3VyaXR5
T3JpZ2luPi4KKworICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6Om9yaWdpbik6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50TG9hZFRpbWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudExvYWRU
aW1pbmc6OmFkZFJlZGlyZWN0KToKKyAgICAgICAgKiBsb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXI6OndpbGxTZW5kUmVxdWVzdCk6Cisg
ICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAqIGxvYWRlci9QaW5nTG9h
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBpbmdMb2FkZXI6OnNlbmRQaW5nKToKKyAgICAg
ICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZUhvc3Q6OmlzQXBwbGljYXRpb25DYWNoZUJsb2NrZWRG
b3JSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Omdl
dE9yaWdpbnNXaXRoQ2FjaGUpOgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmlwVVJMRm9yVXNlSW5SZXBvcnQpOgorICAgICAg
ICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3Jv
c3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q2FjaGVkT3JpZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OmNyZWF0ZVVuaXF1ZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bjo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjYW5S
ZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjptYXliZUNyZWF0ZUZyb21E
YXRhYmFzZUlkZW50aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIHBhZ2UvU2VjdXJpdHlPcmln
aW4uaDoKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlY3VyaXR5UG9saWN5Ojppc0FjY2Vzc1RvVVJMV2hpdGVMaXN0ZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVB
VkZvdW5kYXRpb25PYmpDOjpoYXNTaW5nbGVTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogc3Rv
cmFnZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlVHJhY2tl
cjo6ZGVsZXRlT3JpZ2luV2l0aElkZW50aWZpZXIpOgorICAgICAgICAqIHdvcmtlcnMvRGVmYXVs
dFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk6OmNvbm5lY3RUb1dvcmtlcik6CisgICAgICAgICogd29ya2Vy
cy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkU3RhcnR1
cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKToKKworMjAxNC0xMi0xNiAgQW5kcmVhcyBL
bGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKICAgICAgICAgTG9nIHdoaWNoIEFjdGl2ZURPTU9i
amVjdChzKSBjYW4ndCBiZSBzdXNwZW5kZWQgZm9yIFBhZ2VDYWNoZS4KICAgICAgICAgPGh0dHBz
Oi8vd2Via2l0Lm9yZy9iLzEzOTY5Nz4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAppbmRleCAyNTQ1ODg0Li4wOWUyM2Y5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNDg4LDggKzQ4OCw3IEBAIFN0cmluZyBIVE1MQW5j
aG9yRWxlbWVudDo6c2VhcmNoKCkgY29uc3QKIAogU3RyaW5nIEhUTUxBbmNob3JFbGVtZW50Ojpv
cmlnaW4oKSBjb25zdAogewotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShocmVmKCkpOwotICAgIHJldHVybiBvcmlnaW4tPnRvU3RyaW5n
KCk7CisgICAgcmV0dXJuIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoaHJlZigpKS5nZXQoKS50b1N0
cmluZygpOwogfQogCiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRTZWFyY2goY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExv
YWRUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZFRpbWluZy5j
cHAKaW5kZXggMmY3NGNiOS4uNDE0ZjY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0RvY3VtZW50TG9hZFRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Rv
Y3VtZW50TG9hZFRpbWluZy5jcHAKQEAgLTgzLDggKzgzLDggQEAgdm9pZCBEb2N1bWVudExvYWRU
aW1pbmc6OmFkZFJlZGlyZWN0KGNvbnN0IFVSTCYgcmVkaXJlY3RpbmdVcmwsIGNvbnN0IFVSTCYg
cmVkaXIKICAgICAgICAgbV9yZWRpcmVjdFN0YXJ0ID0gbV9mZXRjaFN0YXJ0OwogICAgIG1fcmVk
aXJlY3RFbmQgPSBtX2ZldGNoU3RhcnQgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsK
ICAgICAvLyBDaGVjayBpZiB0aGUgcmVkaXJlY3RlZCB1cmwgaXMgYWxsb3dlZCB0byBhY2Nlc3Mg
dGhlIHJlZGlyZWN0aW5nIHVybCdzIHRpbWluZyBpbmZvcm1hdGlvbi4KLSAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IHJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGUocmVkaXJlY3RlZFVybCk7Ci0gICAgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0ID0gIXJl
ZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi0+Y2FuUmVxdWVzdChyZWRpcmVjdGluZ1VybCk7CisgICAg
UmVmPFNlY3VyaXR5T3JpZ2luPiByZWRpcmVjdGVkU2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShyZWRpcmVjdGVkVXJsKSk7CisgICAgbV9oYXNDcm9zc09yaWdpblJlZGlyZWN0
ID0gIXJlZGlyZWN0ZWRTZWN1cml0eU9yaWdpbi5nZXQoKS5jYW5SZXF1ZXN0KHJlZGlyZWN0aW5n
VXJsKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9E
b2N1bWVudExvYWRlci5jcHAKaW5kZXggN2MwMTBkMi4uMjQ1OGIzYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCkBAIC01MTYsOCArNTE2LDggQEAgdm9pZCBEb2N1
bWVudExvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYgbmV3UmVxdWVzdCwg
Y29uc3QgUmVzb3VyY2UKICAgICBpZiAoIXJlZGlyZWN0UmVzcG9uc2UuaXNOdWxsKCkpIHsKICAg
ICAgICAgLy8gSWYgdGhlIHJlZGlyZWN0aW5nIHVybCBpcyBub3QgYWxsb3dlZCB0byBkaXNwbGF5
IGNvbnRlbnQgZnJvbSB0aGUgdGFyZ2V0IG9yaWdpbiwKICAgICAgICAgLy8gdGhlbiBibG9jayB0
aGUgcmVkaXJlY3QuCi0gICAgICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gcmVkaXJlY3RpbmdP
cmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHJlZGlyZWN0UmVzcG9uc2UudXJsKCkpOwot
ICAgICAgICBpZiAoIXJlZGlyZWN0aW5nT3JpZ2luLT5jYW5EaXNwbGF5KG5ld1JlcXVlc3QudXJs
KCkpKSB7CisgICAgICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gcmVkaXJlY3RpbmdPcmlnaW4oU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShyZWRpcmVjdFJlc3BvbnNlLnVybCgpKSk7CisgICAgICAgIGlm
ICghcmVkaXJlY3RpbmdPcmlnaW4uZ2V0KCkuY2FuRGlzcGxheShuZXdSZXF1ZXN0LnVybCgpKSkg
ewogICAgICAgICAgICAgRnJhbWVMb2FkZXI6OnJlcG9ydExvY2FsTG9hZEZhaWxlZChtX2ZyYW1l
LCBuZXdSZXF1ZXN0LnVybCgpLnN0cmluZygpKTsKICAgICAgICAgICAgIGNhbmNlbE1haW5SZXNv
dXJjZUxvYWQoZnJhbWVMb2FkZXIoKS0+Y2FuY2VsbGVkRXJyb3IobmV3UmVxdWVzdCkpOwogICAg
ICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
NWU1N2U5NS4uNWQ5YjhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBA
IC0xNzgyLDggKzE3ODIsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExv
YWQoKQogCiAgICAgaWYgKHBkbCAmJiBtX2RvY3VtZW50TG9hZGVyKSB7CiAgICAgICAgIC8vIENo
ZWNrIGlmIHRoZSBkZXN0aW5hdGlvbiBwYWdlIGlzIGFsbG93ZWQgdG8gYWNjZXNzIHRoZSBwcmV2
aW91cyBwYWdlJ3MgdGltaW5nIGluZm9ybWF0aW9uLgotICAgICAgICBSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShwZGwtPnJlcXVl
c3QoKS51cmwoKSk7Ci0gICAgICAgIG1fZG9jdW1lbnRMb2FkZXItPnRpbWluZygpLT5zZXRIYXNT
YW1lT3JpZ2luQXNQcmV2aW91c0RvY3VtZW50KHNlY3VyaXR5T3JpZ2luLT5jYW5SZXF1ZXN0KG1f
cHJldmlvdXNVUkwpKTsKKyAgICAgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdp
bihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHBkbC0+cmVxdWVzdCgpLnVybCgpKSk7CisgICAgICAg
IG1fZG9jdW1lbnRMb2FkZXItPnRpbWluZygpLT5zZXRIYXNTYW1lT3JpZ2luQXNQcmV2aW91c0Rv
Y3VtZW50KHNlY3VyaXR5T3JpZ2luLmdldCgpLmNhblJlcXVlc3QobV9wcmV2aW91c1VSTCkpOwog
ICAgIH0KIAogICAgIC8vIENhbGwgY2xpZW50UmVkaXJlY3RDYW5jZWxsZWRPckZpbmlzaGVkKCkg
aGVyZSBzbyB0aGF0IHRoZSBmcmFtZSBsb2FkIGRlbGVnYXRlIGlzIG5vdGlmaWVkIHRoYXQgdGhl
IHJlZGlyZWN0J3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9QaW5nTG9hZGVyLmNwcAppbmRleCA1YjNiOTkx
Li4wNGE2OGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUGluZ0xvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BpbmdMb2FkZXIuY3BwCkBAIC03OCwxMiAr
NzgsMTIgQEAgdm9pZCBQaW5nTG9hZGVyOjpzZW5kUGluZyhGcmFtZSYgZnJhbWUsIGNvbnN0IFVS
TCYgcGluZ1VSTCwgY29uc3QgVVJMJiBkZXN0aW5hdGkKICAgICBmcmFtZS5sb2FkZXIoKS5hZGRF
eHRyYUZpZWxkc1RvU3VicmVzb3VyY2VSZXF1ZXN0KHJlcXVlc3QpOwogCiAgICAgU2VjdXJpdHlP
cmlnaW4qIHNvdXJjZU9yaWdpbiA9IGZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7
Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBwaW5nT3JpZ2luID0gU2VjdXJpdHlPcmlnaW46
OmNyZWF0ZShwaW5nVVJMKTsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHBpbmdPcmlnaW4oU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShwaW5nVVJMKSk7CiAgICAgRnJhbWVMb2FkZXI6OmFkZEhUVFBP
cmlnaW5JZk5lZWRlZChyZXF1ZXN0LCBzb3VyY2VPcmlnaW4tPnRvU3RyaW5nKCkpOwogICAgIHJl
cXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpQaW5nVG8sIGRlc3RpbmF0
aW9uVVJMKTsKICAgICBpZiAoIVNlY3VyaXR5UG9saWN5OjpzaG91bGRIaWRlUmVmZXJyZXIocGlu
Z1VSTCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSkgewogICAgICAgICByZXF1
ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6UGluZ0Zyb20sIGZyYW1lLmRv
Y3VtZW50KCktPnVybCgpKTsKLSAgICAgICAgaWYgKCFzb3VyY2VPcmlnaW4tPmlzU2FtZVNjaGVt
ZUhvc3RQb3J0KHBpbmdPcmlnaW4uZ2V0KCkpKSB7CisgICAgICAgIGlmICghc291cmNlT3JpZ2lu
LT5pc1NhbWVTY2hlbWVIb3N0UG9ydCgmcGluZ09yaWdpbi5nZXQoKSkpIHsKICAgICAgICAgICAg
IFN0cmluZyByZWZlcnJlciA9IFNlY3VyaXR5UG9saWN5OjpnZW5lcmF0ZVJlZmVycmVySGVhZGVy
KGZyYW1lLmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCksIHBpbmdVUkwsIGZyYW1lLmxvYWRl
cigpLm91dGdvaW5nUmVmZXJyZXIoKSk7CiAgICAgICAgICAgICBpZiAoIXJlZmVycmVyLmlzRW1w
dHkoKSkKICAgICAgICAgICAgICAgICByZXF1ZXN0LnNldEhUVFBSZWZlcnJlcihyZWZlcnJlcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVIb3N0LmNwcAppbmRleCA5Y2ZiNTA1Li40OTM0NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlSG9zdC5jcHAKQEAg
LTQ5MCw4ICs0OTAsOCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVIb3N0Ojppc0FwcGxpY2F0aW9u
Q2FjaGVCbG9ja2VkRm9yUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcQogICAgIGlmIChmcmFtZS0+
aXNNYWluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPFNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4gPSBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHJlcXVlc3QudXJsKCkp
OwotICAgIHJldHVybiAhb3JpZ2luLT5jYW5BY2Nlc3NBcHBsaWNhdGlvbkNhY2hlKGZyYW1lLT5k
b2N1bWVudCgpLT50b3BPcmlnaW4oKSk7CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBvcmlnaW4o
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXF1ZXN0LnVybCgpKSk7CisgICAgcmV0dXJuICFvcmln
aW4uZ2V0KCkuY2FuQWNjZXNzQXBwbGljYXRpb25DYWNoZShmcmFtZS0+ZG9jdW1lbnQoKS0+dG9w
T3JpZ2luKCkpOwogfQogCiB9ICAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHAKaW5kZXggYWFhMmUzYS4uMDYxNzJkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC0xNTY3
LDEwICsxNTY3LDggQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Z2V0T3JpZ2luc1dp
dGhDYWNoZShIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4KICAgICAvLyBNdWx0aXBsZSBt
YW5pZmVzdCBVUkxzIG1pZ2h0IHNoYXJlIHRoZSBzYW1lIFNlY3VyaXR5T3JpZ2luLCBzbyB3ZSBt
aWdodCBiZSBjcmVhdGluZyBleHRyYSwgd2FzdGVkIG9yaWdpbnMgaGVyZS4KICAgICAvLyBUaGUg
Y3VycmVudCBzY2hlbWEgZG9lc24ndCBhbGxvdyBmb3IgYSBtb3JlIGVmZmljaWVudCB3YXkgb2Yg
YnVpbGRpbmcgdGhpcyBsaXN0LgogICAgIHNpemVfdCBjb3VudCA9IHVybHMuc2l6ZSgpOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY291bnQ7ICsraSkgewotICAgICAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsc1tpXSk7Ci0g
ICAgICAgIG9yaWdpbnMuYWRkKG9yaWdpbik7Ci0gICAgfQorICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgY291bnQ7ICsraSkKKyAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZSh1cmxzW2ldKSk7CiB9CiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmRlbGV0
ZUFsbEVudHJpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCmluZGV4IDg1NjRjMGIuLmRjOTA3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTE1ODMsNyArMTU4Myw3IEBAIHN0YXRpYyBT
dHJpbmcgc3RyaXBVUkxGb3JVc2VJblJlcG9ydChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVS
TCYgdXJsKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgaWYgKCF1cmwuaXNIaWVyYXJj
aGljYWwoKSB8fCB1cmwucHJvdG9jb2xJcygiZmlsZSIpKQogICAgICAgICByZXR1cm4gdXJsLnBy
b3RvY29sKCk7Ci0gICAgcmV0dXJuIGRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVl
c3QodXJsKSA/IHVybC5zdHJpcHBlZEZvclVzZUFzUmVmZXJyZXIoKSA6IFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUodXJsKS0+dG9TdHJpbmcoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuc2VjdXJpdHlP
cmlnaW4oKS0+Y2FuUmVxdWVzdCh1cmwpID8gdXJsLnN0cmlwcGVkRm9yVXNlQXNSZWZlcnJlcigp
IDogU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpLmdldCgpLnRvU3RyaW5nKCk7CiB9CiAKICNp
ZiBFTkFCTEUoQ1NQX05FWFQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdp
bmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggMTZhYjUw
ZC4uNWNkYTkyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMjAyMCw3ICsyMDIw
LDcgQEAgU3RyaW5nIERPTVdpbmRvdzo6Y3Jvc3NEb21haW5BY2Nlc3NFcnJvck1lc3NhZ2UoY29u
c3QgRE9NV2luZG93JiBhY3RpdmVXaW5kb3cpCiAgICAgVVJMIGFjdGl2ZVVSTCA9IGFjdGl2ZVdp
bmRvdy5kb2N1bWVudCgpLT51cmwoKTsKICAgICBVUkwgdGFyZ2V0VVJMID0gZG9jdW1lbnQoKS0+
dXJsKCk7CiAgICAgaWYgKGRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pIHx8
IGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkgewot
ICAgICAgICBtZXNzYWdlID0gIkJsb2NrZWQgYSBmcmFtZSBhdCBcIiIgKyBTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlKGFjdGl2ZVVSTCktPnRvU3RyaW5nKCkgKyAiXCIgZnJvbSBhY2Nlc3NpbmcgYSBm
cmFtZSBhdCBcIiIgKyBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHRhcmdldFVSTCktPnRvU3RyaW5n
KCkgKyAiXCIuICI7CisgICAgICAgIG1lc3NhZ2UgPSAiQmxvY2tlZCBhIGZyYW1lIGF0IFwiIiAr
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoYWN0aXZlVVJMKS5nZXQoKS50b1N0cmluZygpICsgIlwi
IGZyb20gYWNjZXNzaW5nIGEgZnJhbWUgYXQgXCIiICsgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0
YXJnZXRVUkwpLmdldCgpLnRvU3RyaW5nKCkgKyAiXCIuICI7CiAgICAgICAgIGlmIChkb2N1bWVu
dCgpLT5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSAmJiBhY3RpdmVXaW5kb3cuZG9jdW1lbnQo
KS0+aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCiAgICAgICAgICAgICByZXR1cm4gIlNhbmRi
b3ggYWNjZXNzIHZpb2xhdGlvbjogIiArIG1lc3NhZ2UgKyAiIEJvdGggZnJhbWVzIGFyZSBzYW5k
Ym94ZWQgYW5kIGxhY2sgdGhlIFwiYWxsb3ctc2FtZS1vcmlnaW5cIiBmbGFnLiI7CiAgICAgICAg
IGlmIChkb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKaW5kZXggMmM4OGIxYy4uNTgwMzM2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTc0LDExICs3NCwxMSBAQCBVUkwgU2Vj
dXJpdHlPcmlnaW46OmV4dHJhY3RJbm5lclVSTChjb25zdCBVUkwmIHVybCkKICAgICByZXR1cm4g
VVJMKFBhcnNlZFVSTFN0cmluZywgZGVjb2RlVVJMRXNjYXBlU2VxdWVuY2VzKHVybC5wYXRoKCkp
KTsKIH0KIAotc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGdldENhY2hlZE9yaWdp
bihjb25zdCBVUkwmIHVybCkKK3N0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGdldENhY2hl
ZE9yaWdpbihjb25zdCBVUkwmIHVybCkKIHsKICAgICBpZiAodXJsLnByb3RvY29sSXMoImJsb2Ii
KSkKICAgICAgICAgcmV0dXJuIFRocmVhZGFibGVCbG9iUmVnaXN0cnk6OmdldENhY2hlZE9yaWdp
bih1cmwpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRyOwogfQogCiBzdGF0aWMg
Ym9vbCBzaG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKGNvbnN0IFVSTCYgdXJsKQpAQCAtMTYzLDE0
ICsxNjMsMTMgQEAgU2VjdXJpdHlPcmlnaW46OlNlY3VyaXR5T3JpZ2luKGNvbnN0IFNlY3VyaXR5
T3JpZ2luKiBvdGhlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShjb25zdCBVUkwmIHVybCkKK1JlZjxTZWN1cml0eU9yaWdpbj4gU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZShjb25zdCBVUkwmIHVybCkKIHsKLSAgICBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IGNhY2hlZE9yaWdpbiA9IGdldENhY2hlZE9yaWdpbih1cmwpOwotICAgIGlmIChj
YWNoZWRPcmlnaW4uZ2V0KCkpCi0gICAgICAgIHJldHVybiBjYWNoZWRPcmlnaW47CisgICAgaWYg
KFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gY2FjaGVkT3JpZ2luID0gZ2V0Q2FjaGVkT3JpZ2luKHVy
bCkpCisgICAgICAgIHJldHVybiBjYWNoZWRPcmlnaW4ucmVsZWFzZU5vbk51bGwoKTsKIAogICAg
IGlmIChzaG91bGRUcmVhdEFzVW5pcXVlT3JpZ2luKHVybCkpIHsKLSAgICAgICAgUmVmUHRyPFNl
Y3VyaXR5T3JpZ2luPiBvcmlnaW4gPSBhZG9wdFJlZihuZXcgU2VjdXJpdHlPcmlnaW4oKSk7Cisg
ICAgICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luKGFkb3B0UmVmKCpuZXcgU2VjdXJpdHlP
cmlnaW4pKTsKIAogICAgICAgICBpZiAodXJsLnByb3RvY29sSXMoImZpbGUiKSkgewogICAgICAg
ICAgICAgLy8gVW5mb3J0dW5hdGVseSwgd2UgY2FuJ3QgcmVwcmVzZW50IGFsbCB1bmlxdWUgb3Jp
Z2lucyBleGFjdGx5CkBAIC0xODAsMjUgKzE3OSwyNSBAQCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsKQogICAgICAgICAgICAg
b3JpZ2luLT5tX25lZWRzRGF0YWJhc2VJZGVudGlmaWVyUXVpcmtGb3JGaWxlcyA9IHRydWU7CiAg
ICAgICAgIH0KIAotICAgICAgICByZXR1cm4gb3JpZ2luLnJlbGVhc2UoKTsKKyAgICAgICAgcmV0
dXJuIG9yaWdpbjsKICAgICB9CiAKICAgICBpZiAoc2hvdWxkVXNlSW5uZXJVUkwodXJsKSkKLSAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWN1cml0eU9yaWdpbihleHRyYWN0SW5uZXJVUkwo
dXJsKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWN1cml0eU9yaWdpbihleHRy
YWN0SW5uZXJVUkwodXJsKSkpOwogCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWN1cml0eU9y
aWdpbih1cmwpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWN1cml0eU9yaWdpbih1cmwp
KTsKIH0KIAotUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZVVuaXF1ZSgpCitSZWY8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVVbmlx
dWUoKQogewotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gYWRvcHRSZWYobmV3
IFNlY3VyaXR5T3JpZ2luKCkpOwotICAgIEFTU0VSVChvcmlnaW4tPmlzVW5pcXVlKCkpOwotICAg
IHJldHVybiBvcmlnaW4ucmVsZWFzZSgpOworICAgIFJlZjxTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
KGFkb3B0UmVmKCpuZXcgU2VjdXJpdHlPcmlnaW4pKTsKKyAgICBBU1NFUlQob3JpZ2luLmdldCgp
LmlzVW5pcXVlKCkpOworICAgIHJldHVybiBvcmlnaW47CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IFNlY3VyaXR5T3JpZ2luOjppc29sYXRlZENvcHkoKSBjb25zdAorUmVmPFNlY3Vy
aXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNlY3VyaXR5T3JpZ2luKHRoaXMpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZWN1cml0eU9yaWdpbih0aGlzKSk7CiB9CiAKIHZvaWQgU2VjdXJpdHlPcmln
aW46OnNldERvbWFpbkZyb21ET00oY29uc3QgU3RyaW5nJiBuZXdEb21haW4pCkBAIC0yODksMTcg
KzI4OCwxNyBAQCBib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5SZXF1ZXN0KGNvbnN0IFVSTCYgdXJs
KSBjb25zdAogICAgIGlmIChpc1VuaXF1ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRhcmdldE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpj
cmVhdGUodXJsKTsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHRhcmdldE9yaWdpbihTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogCiAgICAgaWYgKHRhcmdldE9yaWdpbi0+aXNVbmlxdWUo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gV2UgY2FsbCBpc1NhbWVTY2hlbWVI
b3N0UG9ydCBoZXJlIGluc3RlYWQgb2YgY2FuQWNjZXNzIGJlY2F1c2Ugd2Ugd2FudAogICAgIC8v
IHRvIGlnbm9yZSBkb2N1bWVudC5kb21haW4gZWZmZWN0cy4KLSAgICBpZiAoaXNTYW1lU2NoZW1l
SG9zdFBvcnQodGFyZ2V0T3JpZ2luLmdldCgpKSkKKyAgICBpZiAoaXNTYW1lU2NoZW1lSG9zdFBv
cnQoJnRhcmdldE9yaWdpbi5nZXQoKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYg
KFNlY3VyaXR5UG9saWN5Ojppc0FjY2Vzc1doaXRlTGlzdGVkKHRoaXMsIHRhcmdldE9yaWdpbi5n
ZXQoKSkpCisgICAgaWYgKFNlY3VyaXR5UG9saWN5Ojppc0FjY2Vzc1doaXRlTGlzdGVkKHRoaXMs
ICZ0YXJnZXRPcmlnaW4uZ2V0KCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIHJldHVy
biBmYWxzZTsKQEAgLTQ4OCwxNCArNDg3LDE0IEBAIFN0cmluZyBTZWN1cml0eU9yaWdpbjo6dG9S
YXdTdHJpbmcoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQudG9TdHJpbmcoKTsKIH0KIAotUGFz
c1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
Y29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpCitSZWY8U2VjdXJpdHlPcmlnaW4+IFNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgb3JpZ2luU3RyaW5nKQogewog
ICAgIHJldHVybiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFVSTChVUkwoKSwgb3JpZ2luU3RyaW5n
KSk7CiB9CiAKIHN0YXRpYyBjb25zdCBjaGFyIHNlcGFyYXRvckNoYXJhY3RlciA9ICdfJzsKIAot
UGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46Om1heWJlQ3JlYXRlRnJv
bURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKK1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46Om1heWJlQ3JlYXRlRnJvbURhdGFi
YXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllcikKIHsgCiAgICAg
Ly8gTWFrZSBzdXJlIHRoZXJlJ3MgYSBmaXJzdCBzZXBhcmF0b3IKICAgICBzaXplX3Qgc2VwYXJh
dG9yMSA9IGRhdGFiYXNlSWRlbnRpZmllci5maW5kKHNlcGFyYXRvckNoYXJhY3Rlcik7CkBAIC01
MzAsMTUgKzUyOSwxNCBAQCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdp
bjo6bWF5YmVDcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbgogICAgIHJldHVybiBjcmVh
dGUoVVJMKFVSTCgpLCBwcm90b2NvbCArICI6Ly8iICsgaG9zdCArICI6IiArIFN0cmluZzo6bnVt
YmVyKHBvcnQpICsgIi8iKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYgZGF0
YWJhc2VJZGVudGlmaWVyKQorUmVmPFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmll
cikKIHsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IG1heWJlQ3JlYXRlRnJv
bURhdGFiYXNlSWRlbnRpZmllcihkYXRhYmFzZUlkZW50aWZpZXIpOwotICAgIGlmIChvcmlnaW4p
Ci0gICAgICAgIHJldHVybiBvcmlnaW4ucmVsZWFzZSgpOworICAgIGlmIChSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IG9yaWdpbiA9IG1heWJlQ3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihkYXRh
YmFzZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gb3JpZ2luLnJlbGVhc2VOb25OdWxsKCk7
CiAgICAgcmV0dXJuIGNyZWF0ZShVUkwoKSk7CiB9CiAKLVBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3Qg
U3RyaW5nJiBob3N0LCBpbnQgcG9ydCkKK1JlZjxTZWN1cml0eU9yaWdpbj4gU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIGhvc3QsIGlu
dCBwb3J0KQogewogICAgIGlmIChwb3J0IDwgMCB8fCBwb3J0ID4gTWF4QWxsb3dlZFBvcnQpCiAg
ICAgICAgIHJldHVybiBjcmVhdGVVbmlxdWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmln
aW4uaAppbmRleCBhZWU0ZjBkLi4wM2ZmZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5oCkBAIC01MCwxNyArNTAsMTcgQEAgcHVibGljOgogICAgICAgICBCbG9ja0FsbFN0b3Jh
Z2UKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFBhc3NSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+IGNyZWF0ZShjb25zdCBVUkwmKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gY3JlYXRlVW5pcXVlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJl
ZjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlKGNvbnN0IFVSTCYpOworICAgIHN0YXRpYyBSZWY8U2Vj
dXJpdHlPcmlnaW4+IGNyZWF0ZVVuaXF1ZSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGlj
IFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIo
Y29uc3QgU3RyaW5nJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZWN1cml0eU9y
aWdpbj4gY3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKICAgICAv
LyBBbHRlcm5hdGUgZm9ybSBvZiBjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyIHRoYXQgcmV0
dXJucyBhIG51bGxwdHIgb24gZmFpbHVyZSwgaW5zdGVhZCBvZiBhbiBlbXB0eSBvcmlnaW4uCiAg
ICAgLy8gRklYTUU6IE1hbnkgdXNlcnMgb2YgY3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllciBz
ZWVtIHRvIGV4cGVjdCBtYXliZUNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIgYmVoYXZpb3Is
CiAgICAgLy8gYnV0IHRoZXkgYXJlbid0IGdldHRpbmcgaXQgc28gdGhleSBtaWdodCBiZSBidWdn
eS4KLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4g
bWF5YmVDcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKGNvbnN0IFN0cmluZyYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1heWJlQ3JlYXRlRnJv
bURhdGFiYXNlSWRlbnRpZmllcihjb25zdCBTdHJpbmcmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVGcm9tU3RyaW5nKGNvbnN0
IFN0cmluZyYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3QgU3RyaW5nJiBob3N0
LCBpbnQgcG9ydCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxTZWN1cml0eU9yaWdp
bj4gY3JlYXRlRnJvbVN0cmluZyhjb25zdCBTdHJpbmcmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBwcm90b2NvbCwg
Y29uc3QgU3RyaW5nJiBob3N0LCBpbnQgcG9ydCk7CiAKICAgICAvLyBTb21lIFVSTCBzY2hlbWVz
IHVzZSBuZXN0ZWQgVVJMcyBmb3IgdGhlaXIgc2VjdXJpdHkgY29udGV4dC4gRm9yIGV4YW1wbGUs
CiAgICAgLy8gZmlsZXN5c3RlbSBVUkxzIGxvb2sgbGlrZSB0aGUgZm9sbG93aW5nOgpAQCAtNzcs
NyArNzcsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDcmVhdGUgYSBkZWVwIGNvcHkgb2YgdGhpcyBT
ZWN1cml0eU9yaWdpbi4gVGhpcyBtZXRob2QgaXMgdXNlZnVsCiAgICAgLy8gd2hlbiBtYXJzaGFs
bGluZyBhIFNlY3VyaXR5T3JpZ2luIHRvIGFub3RoZXIgdGhyZWFkLgotICAgIFdFQkNPUkVfRVhQ
T1JUIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IGlzb2xhdGVkQ29weSgpIGNvbnN0OworICAg
IFdFQkNPUkVfRVhQT1JUIFJlZjxTZWN1cml0eU9yaWdpbj4gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7
CiAKICAgICAvLyBTZXQgdGhlIGRvbWFpbiBwcm9wZXJ0eSBvZiB0aGlzIHNlY3VyaXR5IG9yaWdp
biB0byBuZXdEb21haW4uIFRoaXMKICAgICAvLyBmdW5jdGlvbiBkb2VzIG5vdCBjaGVjayB3aGV0
aGVyIG5ld0RvbWFpbiBpcyBhIHN1ZmZpeCBvZiB0aGUgY3VycmVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NlY3VyaXR5UG9saWN5LmNwcAppbmRleCA3MGQ2OWEwLi4zNTI3YWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NlY3VyaXR5UG9saWN5LmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIGJvb2wgU2VjdXJp
dHlQb2xpY3k6OmlzQWNjZXNzV2hpdGVMaXN0ZWQoY29uc3QgU2VjdXJpdHlPcmlnaW4qIGFjdGl2
ZU9yaWdpbiwgY29uCiAKIGJvb2wgU2VjdXJpdHlQb2xpY3k6OmlzQWNjZXNzVG9VUkxXaGl0ZUxp
c3RlZChjb25zdCBTZWN1cml0eU9yaWdpbiogYWN0aXZlT3JpZ2luLCBjb25zdCBVUkwmIHVybCkK
IHsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IHRhcmdldE9yaWdpbiA9IFNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGUodXJsKTsKLSAgICByZXR1cm4gaXNBY2Nlc3NXaGl0ZUxpc3RlZChhY3RpdmVP
cmlnaW4sIHRhcmdldE9yaWdpbi5nZXQoKSk7CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiB0YXJn
ZXRPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1cmwpKTsKKyAgICByZXR1cm4gaXNBY2Nl
c3NXaGl0ZUxpc3RlZChhY3RpdmVPcmlnaW4sICZ0YXJnZXRPcmlnaW4uZ2V0KCkpOwogfQogCiB2
b2lkIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBT
ZWN1cml0eU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Eb21haW4sIGJvb2wgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCBhNjk1MGM3Li43Yzcx
YjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTIwMDgsOSArMjAwOCw5IEBAIGJvb2wg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6aGFzU2luZ2xlU2VjdXJpdHlPcmln
aW4oKSBjb25zdAogICAgIGlmICghbV9hdkFzc2V0IHx8IFttX2F2QXNzZXQgc3RhdHVzT2ZWYWx1
ZUZvcktleTpAInJlc29sdmVkVVJMIiBlcnJvcjpudWxscHRyXSAhPSBBVktleVZhbHVlU3RhdHVz
TG9hZGVkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgUmVmUHRyPFNlY3VyaXR5
T3JpZ2luPiByZXNvbHZlZE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVzb2x2ZWRV
UkwoKSk7Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiByZXF1ZXN0ZWRPcmlnaW4gPSBTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhhc3NldFVSTCgpKTsKLSAgICByZXR1cm4gcmVz
b2x2ZWRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHJlcXVlc3RlZE9yaWdpbi5nZXQoKSk7
CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiByZXNvbHZlZE9yaWdpbihTZWN1cml0eU9yaWdpbjo6
Y3JlYXRlKHJlc29sdmVkVVJMKCkpKTsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IHJlcXVlc3Rl
ZE9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhhc3NldFVSTCgpKSk7Cisg
ICAgcmV0dXJuIHJlc29sdmVkT3JpZ2luLmdldCgpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KCZyZXF1
ZXN0ZWRPcmlnaW4uZ2V0KCkpOwogfQogCiAjaWYgSEFWRShBVkZPVU5EQVRJT05fVklERU9fT1VU
UFVUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9TdG9yYWdlVHJhY2tlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCAwOTFk
NTcwLi5kYjZhOTQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VU
cmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cApAQCAtNDc2LDcgKzQ3Niw3IEBAIHZvaWQgU3RvcmFnZVRyYWNrZXI6OnN5bmNEZWxldGVBbGxP
cmlnaW5zKCkKIAogdm9pZCBTdG9yYWdlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luV2l0aElkZW50aWZp
ZXIoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyKQogewotICAgIGRlbGV0ZU9yaWdpbihT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5JZGVudGlm
aWVyKS5nZXQoKSk7CisgICAgZGVsZXRlT3JpZ2luKCZTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJv
bURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5JZGVudGlmaWVyKS5nZXQoKSk7CiB9CiAKIHZvaWQg
U3RvcmFnZVRyYWNrZXI6OmRlbGV0ZU9yaWdpbihTZWN1cml0eU9yaWdpbiogb3JpZ2luKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3Np
dG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBv
c2l0b3J5LmNwcAppbmRleCBlOWFjYTk5Li41ZDMyNmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAt
Mzc2LDcgKzM3Niw3IEBAIHZvaWQgRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OmRvY3Vt
ZW50RGV0YWNoZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogdm9pZCBEZWZhdWx0U2hhcmVkV29ya2Vy
UmVwb3NpdG9yeTo6Y29ubmVjdFRvV29ya2VyKFBhc3NSZWZQdHI8U2hhcmVkV29ya2VyPiB3b3Jr
ZXIsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBvcnQsIGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIE11dGV4
TG9ja2VyIGxvY2sobV9sb2NrKTsKLSAgICBBU1NFUlQod29ya2VyLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2VzcyhTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlKHVybCkuZ2V0KCkpKTsKKyAgICBBU1NFUlQod29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkFjY2VzcygmU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZSh1cmwpLmdldCgpKSk7CiAgICAgLy8gRmV0Y2ggYSBwcm94eSBjb3JyZXNwb25kaW5nIHRvIHRo
aXMgU2hhcmVkV29ya2VyLgogICAgIFJlZlB0cjxTaGFyZWRXb3JrZXJQcm94eT4gcHJveHkgPSBn
ZXRQcm94eShuYW1lLCB1cmwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L1dvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5j
cHAKaW5kZXggYWRlNTY5OS4uMTEyMzI4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmNwcApAQCAtOTksNyArOTksNyBAQCBXb3JrZXJUaHJlYWRTdGFydHVwRGF0YTo6V29y
a2VyVGhyZWFkU3RhcnR1cERhdGEoY29uc3QgVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cgogICAg
ICwgbV9zdGFydE1vZGUoc3RhcnRNb2RlKQogICAgICwgbV9jb250ZW50U2VjdXJpdHlQb2xpY3ko
Y29udGVudFNlY3VyaXR5UG9saWN5Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9jb250ZW50U2Vj
dXJpdHlQb2xpY3lUeXBlKGNvbnRlbnRTZWN1cml0eVBvbGljeVR5cGUpCi0gICAgLCBtX3RvcE9y
aWdpbih0b3BPcmlnaW4gPyB0b3BPcmlnaW4tPmlzb2xhdGVkQ29weSgpIDogMCkKKyAgICAsIG1f
dG9wT3JpZ2luKHRvcE9yaWdpbiA/ICZ0b3BPcmlnaW4tPmlzb2xhdGVkQ29weSgpLmdldCgpIDog
bnVsbHB0cikKIHsKICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm47CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggNThhNmMxNS4uOGNmMTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDE0LTEyLTE2ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBVc2UgUmVmIGZvciBTZWN1cml0eU9yaWdpbi4KKyAgICAgICAgPGh0dHBzOi8vd2Vi
a2l0Lm9yZy9iLzEzOTcxMD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFN0b3JhZ2UvV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQubW06CisgICAgICAg
IChXZWJTdG9yYWdlVHJhY2tlckNsaWVudDo6ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4pOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKCtbV2ViVmlldyBfYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3RpbmF0aW9uUHJvdG9jb2w6
ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOl0pOgorICAgICAgICAo
K1tXZWJWaWV3IF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmln
aW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlvbkhvc3Q6YWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnM6XSk6CisKIDIwMTQtMTItMTYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRGlzYWJsZSBUZXh0SW5kaWNhdGlvbiBmb3IgTG9va3VwIGlt
bWVkaWF0ZSBhY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dl
YlN0b3JhZ2VUcmFja2VyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvU3RvcmFnZS9XZWJT
dG9yYWdlVHJhY2tlckNsaWVudC5tbQppbmRleCA0OTE4M2I0Li44YTFiOGUyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9TdG9yYWdlL1dlYlN0b3JhZ2VUcmFja2VyQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1N0b3JhZ2UvV2ViU3RvcmFnZVRyYWNrZXJDbGllbnQubW0K
QEAgLTY2LDcgKzY2LDcgQEAgdm9pZCBXZWJTdG9yYWdlVHJhY2tlckNsaWVudDo6ZGlzcGF0Y2hE
aWRNb2RpZnlPcmlnaW4oUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4KIAogdm9pZCBXZWJTdG9y
YWdlVHJhY2tlckNsaWVudDo6ZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW4oY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyKQogewotICAgIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdp
biA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tRGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbklk
ZW50aWZpZXIpOworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUZyb21EYXRhYmFzZUlkZW50aWZpZXIob3JpZ2luSWRlbnRpZmllcik7CiAK
ICAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7CiAgICAgICAgIC8vIGxlYWtSZWYgaXMgYmFsYW5j
ZWQgYnkgYWRvcHRSZWYgaW4gZGlzcGF0Y2hEaWRNb2RpZnlPcmlnaW5Pbk1haW5UaHJlYWQuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZjU3M2QwOS4uMDdlNTM5OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMzk2NSwxMiArMzk2NSwxMiBAQCBz
dGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCiAKICsgKHZvaWQpX2FkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNTdHJpbmcgKilzb3Vy
Y2VPcmlnaW4gZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5hdGlvblByb3Rv
Y29sIGRlc3RpbmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3QgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMKIHsKLSAg
ICBTZWN1cml0eVBvbGljeTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIFNl
Y3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3Rv
Y29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAog
KyAodm9pZClfcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2lu
OihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmluZyAq
KWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3RpbmF0
aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucwogewotICAgIFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeSgqU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2lu
KSwgZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CisgICAgU2VjdXJpdHlQb2xpY3k6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiku
Z2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogfQogCiArICh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlz
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCAzMzdjYmRjLi40YWE3NGYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMTQtMTItMTYgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBw
bGUuY29tPgorCisgICAgICAgIFVzZSBSZWYgZm9yIFNlY3VyaXR5T3JpZ2luLgorICAgICAgICA8
aHR0cHM6Ly93ZWJraXQub3JnL2IvMTM5NzEwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViRGF0YWJhc2VNYW5hZ2VyLmNwcDoKKyAgICAgICAg
KFdlYkRhdGFiYXNlTWFuYWdlcjo6c2V0UXVvdGEpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgor
ICAgICAgICAoV2ViVmlldzo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAg
ICAoV2ViVmlldzo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorCiAyMDE0LTEy
LTExICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04gKEFzeW5jIFRleHQgSW5wdXQpOiBUZXh0IGlucHV0IG1ldGhvZCBzdGF0ZSBpcyBub3Qg
cmVzZXQgd2hlbiByZWxvYWRpbmcgYSBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViRGF0YWJhc2VN
YW5hZ2VyLmNwcAppbmRleCBjMWRmOTg2Li41ZTk3MzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJEYXRhYmFzZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkRhdGFiYXNlTWFuYWdlci5jcHAKQEAgLTM4Miw3ICszODIsNyBAQCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2V0UXVvdGEoCiAgICAgaWYgKHRoaXMgIT0g
c19zaGFyZWRXZWJEYXRhYmFzZU1hbmFnZXIpCiAgICAgICAgIHJldHVybiBFX0ZBSUw7CiAKLSAg
ICBEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5zZXRRdW90YShTZWN1cml0eU9yaWdpbjo6Y3Jl
YXRlRnJvbVN0cmluZyhvcmlnaW4pLmdldCgpLCBxdW90YSk7CisgICAgRGF0YWJhc2VNYW5hZ2Vy
OjptYW5hZ2VyKCkuc2V0UXVvdGEoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3Jp
Z2luKS5wdHIoKSwgcXVvdGEpOwogCiAgICAgcmV0dXJuIFNfT0s7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCmluZGV4IGM4MDRjM2MuLjgzMjQ2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC02NDA5
LDEzICs2NDA5LDEzIEBAIEhSRVNVTFQgV2ViVmlldzo6aW52YWxpZGF0ZUJhY2tpbmdTdG9yZShj
b25zdCBSRUNUKiByZWN0KQogCiBIUkVTVUxUIFdlYlZpZXc6OmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KEJTVFIgc291cmNlT3JpZ2luLCBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEJT
VFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewot
ICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqU2VjdXJp
dHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodG9TdHJpbmcoc291cmNlT3JpZ2luKSksIHRvU3Ry
aW5nKGRlc3RpbmF0aW9uUHJvdG9jb2wpLCB0b1N0cmluZyhkZXN0aW5hdGlvbkhvc3QpLCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHRvU3Ry
aW5nKHNvdXJjZU9yaWdpbikpLmdldCgpLCB0b1N0cmluZyhkZXN0aW5hdGlvblByb3RvY29sKSwg
dG9TdHJpbmcoZGVzdGluYXRpb25Ib3N0KSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwog
ICAgIHJldHVybiBTX09LOwogfQogCiBIUkVTVUxUIFdlYlZpZXc6OnJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KEJTVFIgc291cmNlT3JpZ2luLCBCU1RSIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KQogewotICAgIFNlY3VyaXR5UG9saWN5OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSgqU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodG9TdHJpbmcoc291cmNlT3JpZ2lu
KSksIHRvU3RyaW5nKGRlc3RpbmF0aW9uUHJvdG9jb2wpLCB0b1N0cmluZyhkZXN0aW5hdGlvbkhv
c3QpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgU2VjdXJpdHlQb2xpY3k6OnJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKHRvU3RyaW5nKHNvdXJjZU9yaWdpbikpLmdldCgpLCB0b1N0cmluZyhkZXN0aW5hdGlv
blByb3RvY29sKSwgdG9TdHJpbmcoZGVzdGluYXRpb25Ib3N0KSwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMmRjM2JlNy4u
MTEwMzEyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTEyLTE2ICBBbmRyZWFz
IEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgUmVmIGZvciBTZWN1cml0
eU9yaWdpbi4KKyAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEzOTcxMD4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIERhdGFiYXNlUHJvY2Vz
cy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpVbmlx
dWVJREJEYXRhYmFzZTo6ZGF0YWJhc2VGaWxlbmFtZUlkZW50aWZpZXIpOgorICAgICAgICAqIFdl
YlByb2Nlc3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRy
aWVzRm9yT3JpZ2luKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIv
V2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYklEQlNlcnZl
ckNvbm5lY3Rpb246OldlYklEQlNlcnZlckNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpJ
bmplY3RlZEJ1bmRsZTo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgorICAgICAgICAo
V2ViS2l0OjpJbmplY3RlZEJ1bmRsZTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkp
OgorCiAyMDE0LTEyLTE2ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAK
ICAgICAgICAgR2V0IHJpZCBvZiBQYXNzUmVmUHRyIGluc2lkZSBTdG9yYWdlTWFuYWdlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERC
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBmYzhiODMzLi5iODc5ODJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFi
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtOTMsOCArOTMsOCBAQCBTdHJpbmcgVW5pcXVlSURCRGF0
YWJhc2U6OmZpbGVuYW1lRm9yRGF0YWJhc2VOYW1lKCkgY29uc3QKIAogU3RyaW5nIFVuaXF1ZUlE
QkRhdGFiYXNlOjpkYXRhYmFzZUZpbGVuYW1lSWRlbnRpZmllcihjb25zdCBTZWN1cml0eU9yaWdp
bkRhdGEmIG9yaWdpbkRhdGEpIGNvbnN0CiB7Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cml0eU9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luRGF0YS5wcm90b2Nv
bCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOwotICAgIHJldHVybiBzZWN1cml0
eU9yaWdpbi0+ZGF0YWJhc2VJZGVudGlmaWVyKCk7CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBz
ZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2ws
IG9yaWdpbkRhdGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KSk7CisgICAgcmV0dXJuIHNlY3VyaXR5
T3JpZ2luLmdldCgpLmRhdGFiYXNlSWRlbnRpZmllcigpOwogfQogCiBib29sIFVuaXF1ZUlEQkRh
dGFiYXNlOjpjYW5TaGFyZURhdGFiYXNlcyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9wZW5p
bmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgbWFpbkZyYW1lT3JpZ2luKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9BcHBsaWNhdGlvbkNhY2hl
L1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvQXBwbGljYXRpb25DYWNoZS9XZWJBcHBsaWNhdGlvbkNhY2hlTWFuYWdlci5jcHAKaW5kZXgg
NGQ5NWI0YS4uMjE2NmFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9B
cHBsaWNhdGlvbkNhY2hlL1dlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0FwcGxpY2F0aW9uQ2FjaGUvV2ViQXBwbGljYXRpb25DYWNo
ZU1hbmFnZXIuY3BwCkBAIC03OCwxMSArNzgsOCBAQCB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVN
YW5hZ2VyOjpnZXRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQog
CiB2b2lkIFdlYkFwcGxpY2F0aW9uQ2FjaGVNYW5hZ2VyOjpkZWxldGVFbnRyaWVzRm9yT3JpZ2lu
KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luRGF0YSkKIHsKLSAgICBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+IG9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUob3JpZ2luRGF0YS5w
cm90b2NvbCwgb3JpZ2luRGF0YS5ob3N0LCBvcmlnaW5EYXRhLnBvcnQpOwotICAgIGlmICghb3Jp
Z2luKQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgQXBwbGljYXRpb25DYWNoZTo6ZGVsZXRl
Q2FjaGVGb3JPcmlnaW4ob3JpZ2luLmdldCgpKTsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IG9y
aWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbkRhdGEucHJvdG9jb2wsIG9yaWdpbkRh
dGEuaG9zdCwgb3JpZ2luRGF0YS5wb3J0KSk7CisgICAgQXBwbGljYXRpb25DYWNoZTo6ZGVsZXRl
Q2FjaGVGb3JPcmlnaW4oJm9yaWdpbi5nZXQoKSk7CiB9CiAKIHZvaWQgV2ViQXBwbGljYXRpb25D
YWNoZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QlNlcnZlckNvbm5lY3Rpb24uY3BwCmluZGV4IGE5ZDk0YjQuLjhhZDcwZjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTYyLDggKzYyLDggQEAg
UGFzc1JlZlB0cjxXZWJJREJTZXJ2ZXJDb25uZWN0aW9uPiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9u
OjpjcmVhdGUoY29uc3QgU3RyaW5nJgogV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6V2ViSURCU2Vy
dmVyQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIG9wZW5pbmdPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBtYWluRnJhbWVPcmln
aW4pCiAgICAgOiBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKGdlbmVyYXRlU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIoKSkKICAgICAsIG1fZGF0YWJhc2VOYW1lKGRhdGFiYXNlTmFtZSkK
LSAgICAsIG1fb3BlbmluZ09yaWdpbigqb3BlbmluZ09yaWdpbi5pc29sYXRlZENvcHkoKSkKLSAg
ICAsIG1fbWFpbkZyYW1lT3JpZ2luKCptYWluRnJhbWVPcmlnaW4uaXNvbGF0ZWRDb3B5KCkpCisg
ICAgLCBtX29wZW5pbmdPcmlnaW4ob3BlbmluZ09yaWdpbi5pc29sYXRlZENvcHkoKSkKKyAgICAs
IG1fbWFpbkZyYW1lT3JpZ2luKG1haW5GcmFtZU9yaWdpbi5pc29sYXRlZENvcHkoKSkKIHsKICAg
ICBzZW5kKE1lc3NhZ2VzOjpEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb246OkVzdGFibGlz
aElEQkNvbm5lY3Rpb24obV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcikpOwogICAgIHNlbmQo
TWVzc2FnZXM6OkRhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb246OkVzdGFibGlzaENvbm5lY3Rp
b24oZGF0YWJhc2VOYW1lLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigm
b3BlbmluZ09yaWdpbiksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCZt
YWluRnJhbWVPcmlnaW4pKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCmluZGV4IDdkMmExN2IuLjg3
ZGYwZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCkBAIC0zMjgsMTIgKzMyOCwxMiBAQCB2b2lk
IEluamVjdGVkQnVuZGxlOjpzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoV2ViUGFnZUdyb3Vw
UHJveHkqIHBhZ2VHcm91cCwgYgogCiB2b2lkIEluamVjdGVkQnVuZGxlOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5n
JiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKLSAgICBTZWN1cml0eVBvbGljeTo6YWRk
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3Ry
aW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhz
b3VyY2VPcmlnaW4pLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3Qs
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAogdm9pZCBJbmplY3RlZEJ1bmRsZTo6
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU3RyaW5nJiBzb3VyY2VPcmln
aW4sIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7Ci0gICAgU2Vj
dXJpdHlQb2xpY3k6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLCBkZXN0aW5hdGlvblByb3RvY29s
LCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBTZWN1
cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoU2VjdXJpdHlPcmln
aW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKS5nZXQoKSwgZGVzdGluYXRpb25Qcm90
b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiB9CiAK
IHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>