<?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>205428</bug_id>
          
          <creation_ts>2019-12-18 17:41:29 -0800</creation_ts>
          <short_desc>AXIsolatedObject::findMatchingObjects implementation.</short_desc>
          <delta_ts>2019-12-19 10:52:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1600080</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-12-18 17:41:29 -0800</bug_when>
    <thetext>AXIsolatedObject::findMatchingObjects implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600091</commentid>
    <comment_count>1</comment_count>
      <attachid>386046</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2019-12-18 18:01:13 -0800</bug_when>
    <thetext>Created attachment 386046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600382</commentid>
    <comment_count>2</comment_count>
      <attachid>386046</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-19 10:51:45 -0800</bug_when>
    <thetext>Comment on attachment 386046
Patch

Clearing flags on attachment: 386046

Committed r253769: &lt;https://trac.webkit.org/changeset/253769&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600383</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-19 10:51:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1600384</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-19 10:52:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/58084676&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386046</attachid>
            <date>2019-12-18 18:01:13 -0800</date>
            <delta_ts>2019-12-19 10:51:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205428-20191218210111.patch</filename>
            <type>text/plain</type>
            <size>29084</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzNTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc2ZTM2Yzc0ZGQ4NGI4
OTc2YmIwOGJmNTAwMmZmMzlhMzZjNmEzNS4uMTQ3ODI2MzI1YTQ1Mjk4NWVlZTkwMDNmYzg4Y2Y4
OWJhMWI2YjhmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE5LTEyLTE4ICBBbmRy
ZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4KKworICAgICAgICBBWElzb2xhdGVk
T2JqZWN0OjpmaW5kTWF0Y2hpbmdPYmplY3RzIGltcGxlbWVudGF0aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA1NDI4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBtZXRob2QgaXMgZXhlcmNp
c2VkIGJ5IHNldmVyYWwgbGF5b3V0IHRlc3RzIHN1Y2ggYXMKKyAgICAgICAgYWNjZXNzaWJpbGl0
eS9tYWMvc2VhcmNoLXByZWRpY2F0ZS5odG1sLgorCisgICAgICAgIC0gTW92ZWQgdGhlIHNlYXJj
aCBhbGdvcml0aG0gaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mCisgICAgICAgIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OmZpbmRNYXRjaGluZ09iamVjdHMgdG8gdGhlIEFjY2Vzc2liaWxpdHkgbmFtZXNw
YWNlLAorICAgICAgICBzbyB0aGF0IGl0IGNhbiBiZSB1c2VkIGluIEFYSXNvbGF0ZWRPYmplY3Qg
YXMgd2VsbC4KKyAgICAgICAgLSBTdGF0aWMgaGVscGVyIGZ1bmN0aW9ucyBhcmUgYWxzbyBtb3Zl
ZCBpbnRvIHRoZSBBY2Nlc3NpYmlsaXR5CisgICAgICAgIG5hbWVzcGFjZS4KKyAgICAgICAgLSBD
aGFuZ2VkIHRoZSBzaWduYXR1cmUgb2YgY29udGFpbnNUZXh0IHRvIGJlIG1vcmUgYXBwcm9wcmlh
dGUgYW5kIGluCisgICAgICAgIGxpbmUgd2l0aCBvdGhlciBtZXRob2RzLgorCisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbnRhaW5zVGV4dCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAg
KFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNo
QXRJbmRleCk6IE1vdmVkIGZyb20gQWNjZXNzaWJpbGl0eU9iamVjdC4KKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHk6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKTogTW92
ZWQgZnJvbSBBY2Nlc3NpYmlsaXR5T2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eTo6aXNBY2Nlc3NpYmlsaXR5VGV4dFNlYXJjaE1hdGNoKTogTW92ZWQgZnJvbSBBY2Nlc3Np
YmlsaXR5T2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6b2JqZWN0TWF0
Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KTogTW92ZWQgZnJvbSBBY2Nlc3NpYmls
aXR5T2JqZWN0LgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5n
T2JqZWN0cyk6IFNlYXJjaCBhbGdvcml0aG0gdG8gYmUgcmV1c2VkIGJ5IEFjY2Vzc2liaWxpdHlP
YmplY3QgYW5kIEFYSXNvbGF0ZWRPYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgpOiBNb3Zl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoKTogTW92ZWQuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5T2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2gpOiBNb3ZlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6Om9iamVjdE1hdGNoZXNTZWFyY2hDcml0
ZXJpYVdpdGhSZXN1bHRMaW1pdCk6IE1vdmVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L0FYSXNvbGF0ZWRUcmVlTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2Jq
ZWN0OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OmNvbnRhaW5zVGV4dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZFRyZWVOb2RlLmg6CisKIDIwMTktMTItMTYgIEFuZHJlcyBHb256
YWxleiAgPGFuZHJlc2dfMjJAYXBwbGUuY29tPgogCiAgICAgICAgIElzb2xhdGVkIG9iamVjdCBp
bXBsZW1lbnRhdGlvbiBvZiBwYXJhbWV0ZXJpemVkIGF0dHJpYnV0ZSBTZWxlY3RUZXh0V2l0aENy
aXRlcmlhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdC5jcHAKaW5kZXggZTcwZTNmYTQwY2QzMThlZjQ3NmNmOWUyNjYxZWQwZGVkNDFh
ZmViNS4uNWRlZjU4OGFhMzFhMmJhNmM1OGI2Yzg0OWVhYWZmYTMzODFiZjQ0ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
CkBAIC0xMjAsMTg3ICsxMjAsMTMgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0RldGFj
aGVkKCkgY29uc3QKICNlbmRpZgogfQogCi1ib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmlzQWNj
ZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChBWENvcmVPYmplY3QqIGF4T2JqZWN0
LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEqIGNyaXRlcmlhLCBzaXplX3QgaW5kZXgpCiti
b29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbnRhaW5zVGV4dChTdHJpbmcgY29uc3QmIHRleHQp
IGNvbnN0CiB7Ci0gICAgc3dpdGNoIChjcml0ZXJpYS0+c2VhcmNoS2V5c1tpbmRleF0pIHsKLSAg
ICAvLyBUaGUgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6QW55VHlwZSBtYXRjaGVzIGFueSBub24t
bnVsbCBBY2Nlc3NpYmlsaXR5T2JqZWN0LgotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtl
eTo6QW55VHlwZToKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIAotICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVNlYXJjaEtleTo6QXJ0aWNsZToKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOwotICAgICAg
ICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpCbG9ja3F1b3RlU2FtZUxl
dmVsOgotICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0Ci0gICAgICAgICAgICAm
JiBheE9iamVjdC0+aXNCbG9ja3F1b3RlKCkKLSAgICAgICAgICAgICYmIGF4T2JqZWN0LT5ibG9j
a3F1b3RlTGV2ZWwoKSA9PSBjcml0ZXJpYS0+c3RhcnRPYmplY3QtPmJsb2NrcXVvdGVMZXZlbCgp
OwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkJsb2NrcXVvdGU6
Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNCbG9ja3F1b3RlKCk7Ci0gICAgICAgIAotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6Qm9sZEZvbnQ6Ci0gICAgICAgIHJldHVybiBh
eE9iamVjdC0+aGFzQm9sZEZvbnQoKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
U2VhcmNoS2V5OjpCdXR0b246Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNCdXR0b24oKTsK
LSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpDaGVja0JveDoKLSAg
ICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc0NoZWNrYm94KCk7Ci0gICAgICAgIAotICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6Q29udHJvbDoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0
LT5pc0NvbnRyb2woKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5
OjpEaWZmZXJlbnRUeXBlOgotICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0Ci0g
ICAgICAgICAgICAmJiBheE9iamVjdC0+cm9sZVZhbHVlKCkgIT0gY3JpdGVyaWEtPnN0YXJ0T2Jq
ZWN0LT5yb2xlVmFsdWUoKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNo
S2V5OjpGb250Q2hhbmdlOgotICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0Ci0g
ICAgICAgICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVGb250KGNyaXRlcmlhLT5zdGFydE9iamVj
dC0+cmVuZGVyZXIoKSk7Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtl
eTo6Rm9udENvbG9yQ2hhbmdlOgotICAgICAgICByZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0
Ci0gICAgICAgICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVGb250Q29sb3IoY3JpdGVyaWEtPnN0
YXJ0T2JqZWN0LT5yZW5kZXJlcigpKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5
U2VhcmNoS2V5OjpGcmFtZToKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc1dlYkFyZWEoKTsK
LSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpHcmFwaGljOgotICAg
ICAgICByZXR1cm4gYXhPYmplY3QtPmlzSW1hZ2UoKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5U2VhcmNoS2V5OjpIZWFkaW5nTGV2ZWwxOgotICAgICAgICByZXR1cm4gYXhPYmpl
Y3QtPmhlYWRpbmdMZXZlbCgpID09IDE7Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVNlYXJjaEtleTo6SGVhZGluZ0xldmVsMjoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oZWFk
aW5nTGV2ZWwoKSA9PSAyOwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hL
ZXk6OkhlYWRpbmdMZXZlbDM6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVs
KCkgPT0gMzsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpIZWFk
aW5nTGV2ZWw0OgotICAgICAgICByZXR1cm4gYXhPYmplY3QtPmhlYWRpbmdMZXZlbCgpID09IDQ7
Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6SGVhZGluZ0xldmVs
NToKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oZWFkaW5nTGV2ZWwoKSA9PSA1OwotICAgICAg
ICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdMZXZlbDY6Ci0gICAg
ICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkgPT0gNjsKLSAgICAgICAgCi0gICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpIZWFkaW5nU2FtZUxldmVsOgotICAgICAgICBy
ZXR1cm4gY3JpdGVyaWEtPnN0YXJ0T2JqZWN0Ci0gICAgICAgICAgICAmJiBheE9iamVjdC0+aXNI
ZWFkaW5nKCkKLSAgICAgICAgICAgICYmIGF4T2JqZWN0LT5oZWFkaW5nTGV2ZWwoKSA9PSBjcml0
ZXJpYS0+c3RhcnRPYmplY3QtPmhlYWRpbmdMZXZlbCgpOwotICAgICAgICAKLSAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmc6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+
aXNIZWFkaW5nKCk7Ci0gICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpIaWdo
bGlnaHRlZDoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNIaWdobGlnaHRpbmcoKTsKLSAg
ICAgICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6S2V5Ym9hcmRGb2N1
c2FibGU6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNLZXlib2FyZEZvY3VzYWJsZSgpOwot
ICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6Okl0YWxpY0ZvbnQ6Ci0g
ICAgICAgIHJldHVybiBheE9iamVjdC0+aGFzSXRhbGljRm9udCgpOwotICAgICAgICAKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkxhbmRtYXJrOgotICAgICAgICByZXR1cm4gYXhP
YmplY3QtPmlzTGFuZG1hcmsoKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2Vh
cmNoS2V5OjpMaW5rOiB7Ci0gICAgICAgIGJvb2wgaXNMaW5rID0gYXhPYmplY3QtPmlzTGluaygp
OwotI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgICAgIGlmICghaXNMaW5rKQotICAgICAg
ICAgICAgaXNMaW5rID0gYXhPYmplY3QtPmlzRGVzY2VuZGFudE9mUm9sZShBY2Nlc3NpYmlsaXR5
Um9sZTo6V2ViQ29yZUxpbmspOwotI2VuZGlmCi0gICAgICAgIHJldHVybiBpc0xpbms7Ci0gICAg
fQotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6Okxpc3Q6Ci0gICAg
ICAgIHJldHVybiBheE9iamVjdC0+aXNMaXN0KCk7Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVNlYXJjaEtleTo6TGl2ZVJlZ2lvbjoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5z
dXBwb3J0c0xpdmVSZWdpb24oKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2Vh
cmNoS2V5OjpNaXNzcGVsbGVkV29yZDoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNNaXNz
cGVsbGluZygpOwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6Ok91
dGxpbmU6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNUcmVlKCk7Ci0gICAgICAgIAotICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6UGxhaW5UZXh0OgotICAgICAgICByZXR1cm4g
YXhPYmplY3QtPmhhc1BsYWluVGV4dCgpOwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxp
dHlTZWFyY2hLZXk6OlJhZGlvR3JvdXA6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNSYWRp
b0dyb3VwKCk7Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6U2Ft
ZVR5cGU6Ci0gICAgICAgIHJldHVybiBjcml0ZXJpYS0+c3RhcnRPYmplY3QKLSAgICAgICAgICAg
ICYmIGF4T2JqZWN0LT5yb2xlVmFsdWUoKSA9PSBjcml0ZXJpYS0+c3RhcnRPYmplY3QtPnJvbGVW
YWx1ZSgpOwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlN0YXRp
Y1RleHQ6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+aXNTdGF0aWNUZXh0KCk7Ci0gICAgICAg
IAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6U3R5bGVDaGFuZ2U6Ci0gICAgICAg
IHJldHVybiBjcml0ZXJpYS0+c3RhcnRPYmplY3QKLSAgICAgICAgICAgICYmICFheE9iamVjdC0+
aGFzU2FtZVN0eWxlKGNyaXRlcmlhLT5zdGFydE9iamVjdC0+cmVuZGVyZXIoKSk7Ci0gICAgICAg
IAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6VGFibGVTYW1lTGV2ZWw6Ci0gICAg
ICAgIHJldHVybiBjcml0ZXJpYS0+c3RhcnRPYmplY3QKLSAgICAgICAgICAgICYmIGlzPEFjY2Vz
c2liaWxpdHlUYWJsZT4oKmF4T2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+
KCpheE9iamVjdCkuaXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpCi0gICAgICAgICAg
ICAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KCpheE9iamVjdCkudGFibGVMZXZlbCgp
ID09IGNyaXRlcmlhLT5zdGFydE9iamVjdC0+dGFibGVMZXZlbCgpOwotICAgICAgICAKLSAgICBj
YXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlRhYmxlOgotICAgICAgICByZXR1cm4gaXM8QWNj
ZXNzaWJpbGl0eVRhYmxlPigqYXhPYmplY3QpICYmIGRvd25jYXN0PEFjY2Vzc2liaWxpdHlUYWJs
ZT4oKmF4T2JqZWN0KS5pc0V4cG9zYWJsZVRocm91Z2hBY2Nlc3NpYmlsaXR5KCk7Ci0gICAgICAg
IAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6VGV4dEZpZWxkOgotICAgICAgICBy
ZXR1cm4gYXhPYmplY3QtPmlzVGV4dENvbnRyb2woKTsKLSAgICAgICAgCi0gICAgY2FzZSBBY2Nl
c3NpYmlsaXR5U2VhcmNoS2V5OjpVbmRlcmxpbmU6Ci0gICAgICAgIHJldHVybiBheE9iamVjdC0+
aGFzVW5kZXJsaW5lKCk7Ci0gICAgICAgIAotICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtl
eTo6VW52aXNpdGVkTGluazoKLSAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc1VudmlzaXRlZCgp
OwotICAgICAgICAKLSAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlZpc2l0ZWRMaW5r
OgotICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzVmlzaXRlZCgpOwotICAgICAgICAKLSAgICBk
ZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotfQotCi1ib29sIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OmlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKEFYQ29yZU9iamVj
dCogYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSogY3JpdGVyaWEpCi17Ci0g
ICAgaWYgKCFheE9iamVjdCB8fCAhY3JpdGVyaWEpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAKLSAgICBzaXplX3QgbGVuZ3RoID0gY3JpdGVyaWEtPnNlYXJjaEtleXMuc2l6ZSgpOwotICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKGlzQWNj
ZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChheE9iamVjdCwgY3JpdGVyaWEsIGkp
KSB7Ci0gICAgICAgICAgICBpZiAoY3JpdGVyaWEtPnZpc2libGVPbmx5ICYmICFheE9iamVjdC0+
aXNPblNjcmVlbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojppc0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2go
QVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKiBjcml0
ZXJpYSkKLXsKLSAgICBpZiAoIWF4T2JqZWN0IHx8ICFjcml0ZXJpYSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIAotICAgIHJldHVybiBheE9iamVjdC0+Y29udGFpbnNUZXh0KCZjcml0ZXJp
YS0+c2VhcmNoVGV4dCk7Ci19Ci0KLWJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udGFpbnNU
ZXh0KFN0cmluZyogdGV4dCkgY29uc3QKLXsKLSAgICAvLyBJZiB0ZXh0IGlzIG51bGwgb3IgZW1w
dHkgd2UgcmV0dXJuIHRydWUuCi0gICAgcmV0dXJuICF0ZXh0Ci0gICAgICAgIHx8IHRleHQtPmlz
RW1wdHkoKQotICAgICAgICB8fCBmaW5kUGxhaW5UZXh0KHRpdGxlKCksICp0ZXh0LCBDYXNlSW5z
ZW5zaXRpdmUpCi0gICAgICAgIHx8IGZpbmRQbGFpblRleHQoYWNjZXNzaWJpbGl0eURlc2NyaXB0
aW9uKCksICp0ZXh0LCBDYXNlSW5zZW5zaXRpdmUpCi0gICAgICAgIHx8IGZpbmRQbGFpblRleHQo
c3RyaW5nVmFsdWUoKSwgKnRleHQsIENhc2VJbnNlbnNpdGl2ZSk7CisgICAgLy8gSWYgdGV4dCBp
cyBlbXB0eSB3ZSByZXR1cm4gdHJ1ZS4KKyAgICByZXR1cm4gdGV4dC5pc0VtcHR5KCkKKyAgICAg
ICAgfHwgZmluZFBsYWluVGV4dCh0aXRsZSgpLCB0ZXh0LCBDYXNlSW5zZW5zaXRpdmUpCisgICAg
ICAgIHx8IGZpbmRQbGFpblRleHQoYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCksIHRleHQsIENh
c2VJbnNlbnNpdGl2ZSkKKyAgICAgICAgfHwgZmluZFBsYWluVGV4dChzdHJpbmdWYWx1ZSgpLCB0
ZXh0LCBDYXNlSW5zZW5zaXRpdmUpOwogfQogCiAvLyBBUklBIG1hcmtzIGVsZW1lbnRzIGFzIGhh
dmluZyB0aGVpciBhY2Nlc3NpYmxlIG5hbWUgZGVyaXZlIGZyb20gZWl0aGVyIHRoZWlyIGNvbnRl
bnRzLCBvciB0aGVpciBhdXRob3IgcHJvdmlkZSBuYW1lLgpAQCAtNzM1LDc5ICs1NjEsMTcgQEAg
c3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5KEFYQ29yZU9iamVjdCogb2JqZWN0LCBi
b29sIGlzRm9yd2FyZCwgQVhDb3JlT2IKICAgICB9CiB9CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0
aGUgbnVtYmVyIG9mIHJlc3VsdHMgaXMgbm93ID49IHRoZSBudW1iZXIgb2YgcmVzdWx0cyBkZXNp
cmVkLgotYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpvYmplY3RNYXRjaGVzU2VhcmNoQ3JpdGVy
aWFXaXRoUmVzdWx0TGltaXQoQVhDb3JlT2JqZWN0KiBvYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFy
Y2hDcml0ZXJpYSogY3JpdGVyaWEsIEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0
cykKLXsKLSAgICBpZiAoaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2gob2JqZWN0LCBj
cml0ZXJpYSkgJiYgaXNBY2Nlc3NpYmlsaXR5VGV4dFNlYXJjaE1hdGNoKG9iamVjdCwgY3JpdGVy
aWEpKSB7Ci0gICAgICAgIHJlc3VsdHMuYXBwZW5kKG9iamVjdCk7Ci0gICAgICAgIAotICAgICAg
ICAvLyBFbm91Z2ggcmVzdWx0cyB3ZXJlIGZvdW5kIHRvIHN0b3Agc2VhcmNoaW5nLgotICAgICAg
ICBpZiAocmVzdWx0cy5zaXplKCkgPj0gY3JpdGVyaWEtPnJlc3VsdHNMaW1pdCkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KIHZv
aWQgQWNjZXNzaWJpbGl0eU9iamVjdDo6ZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5
U2VhcmNoQ3JpdGVyaWEqIGNyaXRlcmlhLCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJl
c3VsdHMpCiB7CiAgICAgQVNTRVJUKGNyaXRlcmlhKTsKLSAgICAKICAgICBpZiAoIWNyaXRlcmlh
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBheE9i
amVjdENhY2hlKCkpCiAgICAgICAgIGNhY2hlLT5zdGFydENhY2hpbmdDb21wdXRlZE9iamVjdEF0
dHJpYnV0ZXNVbnRpbFRyZWVNdXRhdGVzKCk7CiAKLSAgICAvLyBUaGlzIHNlYXJjaCBtZWNoYW5p
c20gb25seSBzZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGluZyBv
YmplY3QuCi0gICAgLy8gSXQgZG9lcyB0aGlzIGJ5IHN0ZXBwaW5nIHVwIHRoZSBwYXJlbnQgY2hh
aW4gYW5kIGF0IGVhY2ggbGV2ZWwgZG9pbmcgYSBERlMuCi0gICAgCi0gICAgLy8gSWYgdGhlcmUn
cyBubyBzdGFydCBvYmplY3QsIGl0IG1lYW5zIHdlIHdhbnQgdG8gc2VhcmNoIGV2ZXJ5dGhpbmcu
Ci0gICAgQVhDb3JlT2JqZWN0KiBzdGFydE9iamVjdCA9IGNyaXRlcmlhLT5zdGFydE9iamVjdDsK
LSAgICBpZiAoIXN0YXJ0T2JqZWN0KQotICAgICAgICBzdGFydE9iamVjdCA9IHRoaXM7Ci0gICAg
Ci0gICAgYm9vbCBpc0ZvcndhcmQgPSBjcml0ZXJpYS0+c2VhcmNoRGlyZWN0aW9uID09IEFjY2Vz
c2liaWxpdHlTZWFyY2hEaXJlY3Rpb246Ok5leHQ7Ci0gICAgCi0gICAgLy8gVGhlIGZpcnN0IGl0
ZXJhdGlvbiBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVuIG9mIHRo
ZSBzdGFydCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KLSAgICAvLyBpdGVyYXRp
bmcgYmFja3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3QgYmUgY29u
c2lkZXJlZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgotICAgIC8v
IGV4Y2VwdGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1c2Ugd2Ug
d2FudCB0byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJlY3Rpb24u
Ci0gICAgQVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7Ci0gICAgaWYgKCFp
c0ZvcndhcmQgJiYgc3RhcnRPYmplY3QgIT0gdGhpcykgewotICAgICAgICBwcmV2aW91c09iamVj
dCA9IHN0YXJ0T2JqZWN0OwotICAgICAgICBzdGFydE9iamVjdCA9IHN0YXJ0T2JqZWN0LT5wYXJl
bnRPYmplY3RVbmlnbm9yZWQoKTsKLSAgICB9Ci0gICAgCi0gICAgLy8gVGhlIG91dGVyIGxvb3Ag
c3RlcHMgdXAgdGhlIHBhcmVudCBjaGFpbiBlYWNoIHRpbWUgKHVuaWdub3JlZCBpcyBpbXBvcnRh
bnQgaGVyZSBiZWNhdXNlIG90aGVyd2lzZSBlbGVtZW50cyB3b3VsZCBiZSBzZWFyY2hlZCB0d2lj
ZSkKLSAgICBmb3IgKGF1dG8qIHN0b3BTZWFyY2hFbGVtZW50ID0gcGFyZW50T2JqZWN0VW5pZ25v
cmVkKCk7IHN0YXJ0T2JqZWN0ICYmIHN0YXJ0T2JqZWN0ICE9IHN0b3BTZWFyY2hFbGVtZW50OyBz
dGFydE9iamVjdCA9IHN0YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3RVbmlnbm9yZWQoKSkgewotCi0g
ICAgICAgIC8vIE9ubHkgYXBwZW5kIHRoZSBjaGlsZHJlbiBhZnRlci9iZWZvcmUgdGhlIHByZXZp
b3VzIGVsZW1lbnQsIHNvIHRoYXQgdGhlIHNlYXJjaCBkb2VzIG5vdCBjaGVjayBlbGVtZW50cyB0
aGF0IGFyZSAKLSAgICAgICAgLy8gYWxyZWFkeSBiZWhpbmQvYWhlYWQgb2Ygc3RhcnQgZWxlbWVu
dC4KLSAgICAgICAgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yIHNlYXJjaFN0YWNrOwotICAg
ICAgICBpZiAoIWNyaXRlcmlhLT5pbW1lZGlhdGVEZXNjZW5kYW50c09ubHkgfHwgc3RhcnRPYmpl
Y3QgPT0gdGhpcykKLSAgICAgICAgICAgIGFwcGVuZENoaWxkcmVuVG9BcnJheShzdGFydE9iamVj
dCwgaXNGb3J3YXJkLCBwcmV2aW91c09iamVjdCwgc2VhcmNoU3RhY2spOwotCi0gICAgICAgIC8v
IFRoaXMgbm93IGRvZXMgYSBERlMgYXQgdGhlIGN1cnJlbnQgbGV2ZWwgb2YgdGhlIHBhcmVudC4K
LSAgICAgICAgd2hpbGUgKCFzZWFyY2hTdGFjay5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIEFY
Q29yZU9iamVjdCogc2VhcmNoT2JqZWN0ID0gc2VhcmNoU3RhY2subGFzdCgpLmdldCgpOwotICAg
ICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KHNlYXJj
aE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQotICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWNyaXRlcmlhLT5pbW1lZGlhdGVEZXNjZW5kYW50
c09ubHkpCi0gICAgICAgICAgICAgICAgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5KHNlYXJjaE9iamVj
dCwgaXNGb3J3YXJkLCAwLCBzZWFyY2hTdGFjayk7Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGlmIChyZXN1bHRzLnNpemUoKSA+PSBjcml0ZXJpYS0+cmVzdWx0c0xpbWl0KQotICAgICAg
ICAgICAgYnJlYWs7Ci0KLSAgICAgICAgLy8gV2hlbiBtb3ZpbmcgYmFja3dhcmRzLCB0aGUgcGFy
ZW50IG9iamVjdCBuZWVkcyB0byBiZSBjaGVja2VkLCBiZWNhdXNlIHRlY2huaWNhbGx5IGl0J3Mg
ImJlZm9yZSIgdGhlIHN0YXJ0aW5nIGVsZW1lbnQuCi0gICAgICAgIGlmICghaXNGb3J3YXJkICYm
IHN0YXJ0T2JqZWN0ICE9IHRoaXMgJiYgb2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJl
c3VsdExpbWl0KHN0YXJ0T2JqZWN0LCBjcml0ZXJpYSwgcmVzdWx0cykpCi0gICAgICAgICAgICBi
cmVhazsKLQotICAgICAgICBwcmV2aW91c09iamVjdCA9IHN0YXJ0T2JqZWN0OwotICAgIH0KKyAg
ICBjcml0ZXJpYS0+YW5jaG9yT2JqZWN0ID0gdGhpczsKKyAgICBBY2Nlc3NpYmlsaXR5OjpmaW5k
TWF0Y2hpbmdPYmplY3RzKCpjcml0ZXJpYSwgcmVzdWx0cyk7CiB9CiAKIC8vIFJldHVybnMgdGhl
IHJhbmdlIHRoYXQgaXMgZmV3ZXIgcG9zaXRpb25zIGF3YXkgZnJvbSB0aGUgcmVmZXJlbmNlIHJh
bmdlLgpAQCAtMzg4Niw2ICszNjUwLDIwMiBAQCBTdHJpbmcgcm9sZVRvUGxhdGZvcm1TdHJpbmco
QWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICByZXR1cm4gcm9sZU1hcC0+Z2V0KHN0YXRpY19j
YXN0PHVuc2lnbmVkPihyb2xlKSk7CiB9CiAKK3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9i
amVjdFNlYXJjaE1hdGNoQXRJbmRleChBWENvcmVPYmplY3QqIGF4T2JqZWN0LCBBY2Nlc3NpYmls
aXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBzaXplX3QgaW5kZXgpCit7CisgICAg
c3dpdGNoIChjcml0ZXJpYS5zZWFyY2hLZXlzW2luZGV4XSkgeworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVNlYXJjaEtleTo6QW55VHlwZToKKyAgICAgICAgLy8gVGhlIEFjY2Vzc2liaWxpdHlTZWFy
Y2hLZXk6OkFueVR5cGUgbWF0Y2hlcyBhbnkgbm9uLW51bGwgQWNjZXNzaWJpbGl0eU9iamVjdC4K
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpB
cnRpY2xlOgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNo
S2V5OjpCbG9ja3F1b3RlU2FtZUxldmVsOgorICAgICAgICByZXR1cm4gY3JpdGVyaWEuc3RhcnRP
YmplY3QKKyAgICAgICAgICAgICYmIGF4T2JqZWN0LT5pc0Jsb2NrcXVvdGUoKQorICAgICAgICAg
ICAgJiYgYXhPYmplY3QtPmJsb2NrcXVvdGVMZXZlbCgpID09IGNyaXRlcmlhLnN0YXJ0T2JqZWN0
LT5ibG9ja3F1b3RlTGV2ZWwoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkJs
b2NrcXVvdGU6CisgICAgICAgIHJldHVybiBheE9iamVjdC0+aXNCbG9ja3F1b3RlKCk7CisgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpCb2xkRm9udDoKKyAgICAgICAgcmV0dXJuIGF4
T2JqZWN0LT5oYXNCb2xkRm9udCgpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6
QnV0dG9uOgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzQnV0dG9uKCk7CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpDaGVja0JveDoKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0
LT5pc0NoZWNrYm94KCk7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpDb250cm9s
OgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzQ29udHJvbCgpOworICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVNlYXJjaEtleTo6RGlmZmVyZW50VHlwZToKKyAgICAgICAgcmV0dXJuIGNyaXRlcmlh
LnN0YXJ0T2JqZWN0CisgICAgICAgICAgICAmJiBheE9iamVjdC0+cm9sZVZhbHVlKCkgIT0gY3Jp
dGVyaWEuc3RhcnRPYmplY3QtPnJvbGVWYWx1ZSgpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNl
YXJjaEtleTo6Rm9udENoYW5nZToKKyAgICAgICAgcmV0dXJuIGNyaXRlcmlhLnN0YXJ0T2JqZWN0
CisgICAgICAgICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVGb250KGNyaXRlcmlhLnN0YXJ0T2Jq
ZWN0LT5yZW5kZXJlcigpKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkZvbnRD
b2xvckNoYW5nZToKKyAgICAgICAgcmV0dXJuIGNyaXRlcmlhLnN0YXJ0T2JqZWN0CisgICAgICAg
ICAgICAmJiAhYXhPYmplY3QtPmhhc1NhbWVGb250Q29sb3IoY3JpdGVyaWEuc3RhcnRPYmplY3Qt
PnJlbmRlcmVyKCkpOworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6RnJhbWU6Cisg
ICAgICAgIHJldHVybiBheE9iamVjdC0+aXNXZWJBcmVhKCk7CisgICAgY2FzZSBBY2Nlc3NpYmls
aXR5U2VhcmNoS2V5OjpHcmFwaGljOgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzSW1hZ2Uo
KTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdMZXZlbDE6CisgICAg
ICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkgPT0gMTsKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdMZXZlbDI6CisgICAgICAgIHJldHVybiBheE9iamVj
dC0+aGVhZGluZ0xldmVsKCkgPT0gMjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6
OkhlYWRpbmdMZXZlbDM6CisgICAgICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkg
PT0gMzsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdMZXZlbDQ6Cisg
ICAgICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVsKCkgPT0gNDsKKyAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdMZXZlbDU6CisgICAgICAgIHJldHVybiBheE9i
amVjdC0+aGVhZGluZ0xldmVsKCkgPT0gNTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hL
ZXk6OkhlYWRpbmdMZXZlbDY6CisgICAgICAgIHJldHVybiBheE9iamVjdC0+aGVhZGluZ0xldmVs
KCkgPT0gNjsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhlYWRpbmdTYW1lTGV2
ZWw6CisgICAgICAgIHJldHVybiBjcml0ZXJpYS5zdGFydE9iamVjdAorICAgICAgICAgICAgJiYg
YXhPYmplY3QtPmlzSGVhZGluZygpCisgICAgICAgICAgICAmJiBheE9iamVjdC0+aGVhZGluZ0xl
dmVsKCkgPT0gY3JpdGVyaWEuc3RhcnRPYmplY3QtPmhlYWRpbmdMZXZlbCgpOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6SGVhZGluZzoKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0
LT5pc0hlYWRpbmcoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OkhpZ2hsaWdo
dGVkOgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPmhhc0hpZ2hsaWdodGluZygpOworICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6S2V5Ym9hcmRGb2N1c2FibGU6CisgICAgICAgIHJl
dHVybiBheE9iamVjdC0+aXNLZXlib2FyZEZvY3VzYWJsZSgpOworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVNlYXJjaEtleTo6SXRhbGljRm9udDoKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNJ
dGFsaWNGb250KCk7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpMYW5kbWFyazoK
KyAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5pc0xhbmRtYXJrKCk7CisgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5U2VhcmNoS2V5OjpMaW5rOiB7CisgICAgICAgIGJvb2wgaXNMaW5rID0gYXhPYmplY3Qt
PmlzTGluaygpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgICAgIGlmICghaXNMaW5r
KQorICAgICAgICAgICAgaXNMaW5rID0gYXhPYmplY3QtPmlzRGVzY2VuZGFudE9mUm9sZShBY2Nl
c3NpYmlsaXR5Um9sZTo6V2ViQ29yZUxpbmspOworI2VuZGlmCisgICAgICAgIHJldHVybiBpc0xp
bms7CisgICAgfQorICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6TGlzdDoKKyAgICAg
ICAgcmV0dXJuIGF4T2JqZWN0LT5pc0xpc3QoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFy
Y2hLZXk6OkxpdmVSZWdpb246CisgICAgICAgIHJldHVybiBheE9iamVjdC0+c3VwcG9ydHNMaXZl
UmVnaW9uKCk7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpNaXNzcGVsbGVkV29y
ZDoKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNNaXNzcGVsbGluZygpOworICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6T3V0bGluZToKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0
LT5pc1RyZWUoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlBsYWluVGV4dDoK
KyAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNQbGFpblRleHQoKTsKKyAgICBjYXNlIEFjY2Vz
c2liaWxpdHlTZWFyY2hLZXk6OlJhZGlvR3JvdXA6CisgICAgICAgIHJldHVybiBheE9iamVjdC0+
aXNSYWRpb0dyb3VwKCk7CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpTYW1lVHlw
ZToKKyAgICAgICAgcmV0dXJuIGNyaXRlcmlhLnN0YXJ0T2JqZWN0CisgICAgICAgICAgICAmJiBh
eE9iamVjdC0+cm9sZVZhbHVlKCkgPT0gY3JpdGVyaWEuc3RhcnRPYmplY3QtPnJvbGVWYWx1ZSgp
OworICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6U3RhdGljVGV4dDoKKyAgICAgICAg
cmV0dXJuIGF4T2JqZWN0LT5pc1N0YXRpY1RleHQoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlT
ZWFyY2hLZXk6OlN0eWxlQ2hhbmdlOgorICAgICAgICByZXR1cm4gY3JpdGVyaWEuc3RhcnRPYmpl
Y3QKKyAgICAgICAgICAgICYmICFheE9iamVjdC0+aGFzU2FtZVN0eWxlKGNyaXRlcmlhLnN0YXJ0
T2JqZWN0LT5yZW5kZXJlcigpKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlRh
YmxlU2FtZUxldmVsOgorICAgICAgICByZXR1cm4gY3JpdGVyaWEuc3RhcnRPYmplY3QKKyAgICAg
ICAgICAgICYmIGlzPEFjY2Vzc2liaWxpdHlUYWJsZT4oKmF4T2JqZWN0KSAmJiBkb3duY2FzdDxB
Y2Nlc3NpYmlsaXR5VGFibGU+KCpheE9iamVjdCkuaXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJp
bGl0eSgpCisgICAgICAgICAgICAmJiBkb3duY2FzdDxBY2Nlc3NpYmlsaXR5VGFibGU+KCpheE9i
amVjdCkudGFibGVMZXZlbCgpID09IGNyaXRlcmlhLnN0YXJ0T2JqZWN0LT50YWJsZUxldmVsKCk7
CisgICAgY2FzZSBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5OjpUYWJsZToKKyAgICAgICAgcmV0dXJu
IGlzPEFjY2Vzc2liaWxpdHlUYWJsZT4oKmF4T2JqZWN0KSAmJiBkb3duY2FzdDxBY2Nlc3NpYmls
aXR5VGFibGU+KCpheE9iamVjdCkuaXNFeHBvc2FibGVUaHJvdWdoQWNjZXNzaWJpbGl0eSgpOwor
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVNlYXJjaEtleTo6VGV4dEZpZWxkOgorICAgICAgICByZXR1
cm4gYXhPYmplY3QtPmlzVGV4dENvbnRyb2woKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFy
Y2hLZXk6OlVuZGVybGluZToKKyAgICAgICAgcmV0dXJuIGF4T2JqZWN0LT5oYXNVbmRlcmxpbmUo
KTsKKyAgICBjYXNlIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXk6OlVudmlzaXRlZExpbms6CisgICAg
ICAgIHJldHVybiBheE9iamVjdC0+aXNVbnZpc2l0ZWQoKTsKKyAgICBjYXNlIEFjY2Vzc2liaWxp
dHlTZWFyY2hLZXk6OlZpc2l0ZWRMaW5rOgorICAgICAgICByZXR1cm4gYXhPYmplY3QtPmlzVmlz
aXRlZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisK
K3N0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKEFYQ29yZU9iamVj
dCogYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEp
Cit7CisgICAgaWYgKCFheE9iamVjdCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc2l6
ZV90IGxlbmd0aCA9IGNyaXRlcmlhLnNlYXJjaEtleXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgaWYgKGlzQWNjZXNzaWJpbGl0eU9i
amVjdFNlYXJjaE1hdGNoQXRJbmRleChheE9iamVjdCwgY3JpdGVyaWEsIGkpKSB7CisgICAgICAg
ICAgICBpZiAoY3JpdGVyaWEudmlzaWJsZU9ubHkgJiYgIWF4T2JqZWN0LT5pc09uU2NyZWVuKCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIGZhbHNlOworfQorCitzdGF0aWMgYm9vbCBp
c0FjY2Vzc2liaWxpdHlUZXh0U2VhcmNoTWF0Y2goQVhDb3JlT2JqZWN0KiBheE9iamVjdCwgQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSkKK3sKKyAgICBpZiAoIWF4
T2JqZWN0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGF4T2JqZWN0LT5jb250
YWluc1RleHQoY3JpdGVyaWEuc2VhcmNoVGV4dCk7Cit9CisKK3N0YXRpYyBib29sIG9iamVjdE1h
dGNoZXNTZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRMaW1pdChBWENvcmVPYmplY3QqIG9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0
OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImIHJlc3VsdHMpCit7CisgICAgaWYgKGlzQWNj
ZXNzaWJpbGl0eU9iamVjdFNlYXJjaE1hdGNoKG9iamVjdCwgY3JpdGVyaWEpICYmIGlzQWNjZXNz
aWJpbGl0eVRleHRTZWFyY2hNYXRjaChvYmplY3QsIGNyaXRlcmlhKSkgeworICAgICAgICByZXN1
bHRzLmFwcGVuZChvYmplY3QpOworCisgICAgICAgIC8vIEVub3VnaCByZXN1bHRzIHdlcmUgZm91
bmQgdG8gc3RvcCBzZWFyY2hpbmcuCisgICAgICAgIGlmIChyZXN1bHRzLnNpemUoKSA+PSBjcml0
ZXJpYS5yZXN1bHRzTGltaXQpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmls
aXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKK3sKKyAgICAvLyBUaGlzIHNlYXJjaCBhbGdv
cml0aG0gb25seSBzZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGlu
ZyBvYmplY3QuCisgICAgLy8gSXQgZG9lcyB0aGlzIGJ5IHN0ZXBwaW5nIHVwIHRoZSBwYXJlbnQg
Y2hhaW4gYW5kIGF0IGVhY2ggbGV2ZWwgZG9pbmcgYSBERlMuCisKKyAgICAvLyBJZiB0aGVyZSdz
IG5vIHN0YXJ0IG9iamVjdCwgaXQgbWVhbnMgd2Ugd2FudCB0byBzZWFyY2ggZXZlcnl0aGluZy4K
KyAgICBBWENvcmVPYmplY3QqIHN0YXJ0T2JqZWN0ID0gY3JpdGVyaWEuc3RhcnRPYmplY3Q7Cisg
ICAgaWYgKCFzdGFydE9iamVjdCkKKyAgICAgICAgc3RhcnRPYmplY3QgPSBjcml0ZXJpYS5hbmNo
b3JPYmplY3Q7CisKKyAgICBib29sIGlzRm9yd2FyZCA9IGNyaXRlcmlhLnNlYXJjaERpcmVjdGlv
biA9PSBBY2Nlc3NpYmlsaXR5U2VhcmNoRGlyZWN0aW9uOjpOZXh0OworCisgICAgLy8gVGhlIGZp
cnN0IGl0ZXJhdGlvbiBvZiB0aGUgb3V0ZXIgbG9vcCB3aWxsIGV4YW1pbmUgdGhlIGNoaWxkcmVu
IG9mIHRoZSBzdGFydCBvYmplY3QgZm9yIG1hdGNoZXMuIEhvd2V2ZXIsIHdoZW4KKyAgICAvLyBp
dGVyYXRpbmcgYmFja3dhcmRzLCB0aGUgc3RhcnQgb2JqZWN0IGNoaWxkcmVuIHNob3VsZCBub3Qg
YmUgY29uc2lkZXJlZCwgc28gdGhlIGxvb3AgaXMgc2tpcHBlZCBhaGVhZC4gV2UgbWFrZSBhbgor
ICAgIC8vIGV4Y2VwdGlvbiB3aGVuIG5vIHN0YXJ0IG9iamVjdCB3YXMgc3BlY2lmaWVkIGJlY2F1
c2Ugd2Ugd2FudCB0byBzZWFyY2ggZXZlcnl0aGluZyByZWdhcmRsZXNzIG9mIHNlYXJjaCBkaXJl
Y3Rpb24uCisgICAgQVhDb3JlT2JqZWN0KiBwcmV2aW91c09iamVjdCA9IG51bGxwdHI7CisgICAg
aWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRPYmplY3QgIT0gY3JpdGVyaWEuYW5jaG9yT2JqZWN0KSB7
CisgICAgICAgIHByZXZpb3VzT2JqZWN0ID0gc3RhcnRPYmplY3Q7CisgICAgICAgIHN0YXJ0T2Jq
ZWN0ID0gc3RhcnRPYmplY3QtPnBhcmVudE9iamVjdFVuaWdub3JlZCgpOworICAgIH0KKworICAg
IC8vIFRoZSBvdXRlciBsb29wIHN0ZXBzIHVwIHRoZSBwYXJlbnQgY2hhaW4gZWFjaCB0aW1lICh1
bmlnbm9yZWQgaXMgaW1wb3J0YW50IGhlcmUgYmVjYXVzZSBvdGhlcndpc2UgZWxlbWVudHMgd291
bGQgYmUgc2VhcmNoZWQgdHdpY2UpCisgICAgZm9yIChhdXRvKiBzdG9wU2VhcmNoRWxlbWVudCA9
IGNyaXRlcmlhLmFuY2hvck9iamVjdC0+cGFyZW50T2JqZWN0VW5pZ25vcmVkKCk7IHN0YXJ0T2Jq
ZWN0ICYmIHN0YXJ0T2JqZWN0ICE9IHN0b3BTZWFyY2hFbGVtZW50OyBzdGFydE9iamVjdCA9IHN0
YXJ0T2JqZWN0LT5wYXJlbnRPYmplY3RVbmlnbm9yZWQoKSkgeworICAgICAgICAvLyBPbmx5IGFw
cGVuZCB0aGUgY2hpbGRyZW4gYWZ0ZXIvYmVmb3JlIHRoZSBwcmV2aW91cyBlbGVtZW50LCBzbyB0
aGF0IHRoZSBzZWFyY2ggZG9lcyBub3QgY2hlY2sgZWxlbWVudHMgdGhhdCBhcmUKKyAgICAgICAg
Ly8gYWxyZWFkeSBiZWhpbmQvYWhlYWQgb2Ygc3RhcnQgZWxlbWVudC4KKyAgICAgICAgQVhDb3Jl
T2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Igc2VhcmNoU3RhY2s7CisgICAgICAg
IGlmICghY3JpdGVyaWEuaW1tZWRpYXRlRGVzY2VuZGFudHNPbmx5IHx8IHN0YXJ0T2JqZWN0ID09
IGNyaXRlcmlhLmFuY2hvck9iamVjdCkKKyAgICAgICAgICAgIGFwcGVuZENoaWxkcmVuVG9BcnJh
eShzdGFydE9iamVjdCwgaXNGb3J3YXJkLCBwcmV2aW91c09iamVjdCwgc2VhcmNoU3RhY2spOwor
CisgICAgICAgIC8vIFRoaXMgbm93IGRvZXMgYSBERlMgYXQgdGhlIGN1cnJlbnQgbGV2ZWwgb2Yg
dGhlIHBhcmVudC4KKyAgICAgICAgd2hpbGUgKCFzZWFyY2hTdGFjay5pc0VtcHR5KCkpIHsKKyAg
ICAgICAgICAgIEFYQ29yZU9iamVjdCogc2VhcmNoT2JqZWN0ID0gc2VhcmNoU3RhY2subGFzdCgp
LmdldCgpOworICAgICAgICAgICAgc2VhcmNoU3RhY2sucmVtb3ZlTGFzdCgpOworCisgICAgICAg
ICAgICBpZiAob2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0KHNlYXJj
aE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQorICAgICAgICAgICAgICAgIGJyZWFrOworCisg
ICAgICAgICAgICBpZiAoIWNyaXRlcmlhLmltbWVkaWF0ZURlc2NlbmRhbnRzT25seSkKKyAgICAg
ICAgICAgICAgICBhcHBlbmRDaGlsZHJlblRvQXJyYXkoc2VhcmNoT2JqZWN0LCBpc0ZvcndhcmQs
IDAsIHNlYXJjaFN0YWNrKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChyZXN1bHRzLnNpemUo
KSA+PSBjcml0ZXJpYS5yZXN1bHRzTGltaXQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAg
ICAvLyBXaGVuIG1vdmluZyBiYWNrd2FyZHMsIHRoZSBwYXJlbnQgb2JqZWN0IG5lZWRzIHRvIGJl
IGNoZWNrZWQsIGJlY2F1c2UgdGVjaG5pY2FsbHkgaXQncyAiYmVmb3JlIiB0aGUgc3RhcnRpbmcg
ZWxlbWVudC4KKyAgICAgICAgaWYgKCFpc0ZvcndhcmQgJiYgc3RhcnRPYmplY3QgIT0gY3JpdGVy
aWEuYW5jaG9yT2JqZWN0ICYmIG9iamVjdE1hdGNoZXNTZWFyY2hDcml0ZXJpYVdpdGhSZXN1bHRM
aW1pdChzdGFydE9iamVjdCwgY3JpdGVyaWEsIHJlc3VsdHMpKQorICAgICAgICAgICAgYnJlYWs7
CisKKyAgICAgICAgcHJldmlvdXNPYmplY3QgPSBzdGFydE9iamVjdDsKKyAgICB9Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIEFjY2Vzc2liaWxpdHkKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApp
bmRleCAxNjJlN2MwYmQ1YjhlOWQ3YTgzNTViODk3MWFiNjAxZGIzNWE2ZjJlLi40MzRmM2VhMGY5
NDRhZTg2OGQxNmVkY2Y3NGExOWU2ZjZkMTg5ODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaApAQCAtMTIwLDcgKzEyMCw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzQWNjZXNzaWJpbGl0eVNWR1Jvb3QoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBib29sIGNvbnRhaW5zVGV4
dChTdHJpbmcgKikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBjb250YWluc1RleHQoU3RyaW5n
IGNvbnN0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGlzQXR0YWNobWVudEVsZW1lbnQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNIZWFkaW5nKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTc2MiwxMCArNzYyLDYgQEAgcHJv
dGVjdGVkOgogICAgIFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYUFuY2VzdG9yKCkgY29u
c3Q7CiAgICAgdm9pZCBzY3JvbGxBcmVhQW5kQW5jZXN0b3Ioc3RkOjpwYWlyPFNjcm9sbGFibGVB
cmVhKiwgQWNjZXNzaWJpbGl0eU9iamVjdCo+JikgY29uc3Q7CiAKLSAgICBzdGF0aWMgYm9vbCBp
c0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgoQVhDb3JlT2JqZWN0KiwgQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKiwgc2l6ZV90KTsKLSAgICBzdGF0aWMgYm9vbCBpc0Fj
Y2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaChBWENvcmVPYmplY3QqLCBBY2Nlc3NpYmlsaXR5
U2VhcmNoQ3JpdGVyaWEqKTsKLSAgICBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlUZXh0U2Vh
cmNoTWF0Y2goQVhDb3JlT2JqZWN0KiwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKik7Ci0g
ICAgc3RhdGljIGJvb2wgb2JqZWN0TWF0Y2hlc1NlYXJjaENyaXRlcmlhV2l0aFJlc3VsdExpbWl0
KEFYQ29yZU9iamVjdCosIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSosIEFjY2Vzc2liaWxp
dHlDaGlsZHJlblZlY3RvciYpOwogICAgIHZpcnR1YWwgQWNjZXNzaWJpbGl0eVJvbGUgYnV0dG9u
Um9sZVR5cGUoKSBjb25zdDsKICAgICBTdHJpbmcgcm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBj
b25zdDsKICAgICBib29sIGlzT25TY3JlZW4oKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFj
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgKaW5kZXggZmY0NGY3NzQ1OGUyNDU5NDdjZjcxZDk3Y2RiN2E1ZDRiM2RkNDQ2Ny4u
MzZkMjljNmFmY2ExYjQ0YzYzNmE4ZmNiOGU4MjEzOGFiYThmODE0ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50
ZXJmYWNlLmgKQEAgLTI5Myw2ICsyOTMsNyBAQCBlbnVtIGNsYXNzIEFjY2Vzc2liaWxpdHlTZWFy
Y2hLZXkgewogfTsKIAogc3RydWN0IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSB7CisgICAg
QVhDb3JlT2JqZWN0KiBhbmNob3JPYmplY3QgeyBudWxscHRyIH07CiAgICAgQVhDb3JlT2JqZWN0
KiBzdGFydE9iamVjdDsKICAgICBBY2Nlc3NpYmlsaXR5U2VhcmNoRGlyZWN0aW9uIHNlYXJjaERp
cmVjdGlvbjsKICAgICBWZWN0b3I8QWNjZXNzaWJpbGl0eVNlYXJjaEtleT4gc2VhcmNoS2V5czsK
QEAgLTQ4OCw3ICs0ODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJp
bGl0eVNWR1Jvb3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXNzaWJpbGl0
eVNWR0VsZW1lbnQoKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY29udGFpbnNUZXh0
KFN0cmluZyAqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIGNvbnRhaW5zVGV4dChTdHJp
bmcgY29uc3QmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQXR0YWNobWVudEVsZW1l
bnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzSGVhZGluZygpIGNvbnN0ID0gMDsK
ICAgICB2aXJ0dWFsIGJvb2wgaXNMaW5rKCkgY29uc3QgPSAwOwpAQCAtMTEyOSw2ICsxMTMwLDgg
QEAgVCogZmluZEFuY2VzdG9yKGNvbnN0IFQmIG9iamVjdCwgYm9vbCBpbmNsdWRlU2VsZiwgY29u
c3QgRiYgbWF0Y2hlcykKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordm9pZCBmaW5kTWF0Y2hp
bmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYsIEFYQ29yZU9iamVj
dDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJik7CisKIHRlbXBsYXRlPHR5cGVuYW1lIFU+
IGlubGluZSB2b2lkIHBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChVJiYgbGFtYmRhKQogewog
ICAgIGlmIChpc01haW5UaHJlYWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZU5vZGUuY3BwCmlu
ZGV4IGY1YjBkZWE5ZWE2YmVhODFhZGMyOGIyYmU5ZDcxYzYzNjExYzY3NDQuLjBhNWJiNGE0MzIz
OTU2NzVhNTI4MjVlZGVjNGFlZThiMTI2OTBmMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWVO
b2RlLmNwcApAQCAtNzA3LDYgKzcwNywxNiBAQCBWZWN0b3I8U3RyaW5nPiBBWElzb2xhdGVkT2Jq
ZWN0OjpwZXJmb3JtVGV4dE9wZXJhdGlvbihBY2Nlc3NpYmlsaXR5VGV4dE9wZXJhdGlvbgogICAg
IH0pOwogfQogCit2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmZpbmRNYXRjaGluZ09iamVjdHMoQWNj
ZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhKiBjcml0ZXJpYSwgQWNjZXNzaWJpbGl0eUNoaWxkcmVu
VmVjdG9yJiByZXN1bHRzKQoreworICAgIEFTU0VSVChjcml0ZXJpYSk7CisgICAgaWYgKCFjcml0
ZXJpYSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY3JpdGVyaWEtPmFuY2hvck9iamVjdCA9IHRo
aXM7CisgICAgQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cygqY3JpdGVyaWEsIHJl
c3VsdHMpOworfQorCiBib29sIEFYSXNvbGF0ZWRPYmplY3Q6OnJlcGxhY2VUZXh0SW5SYW5nZShj
b25zdCBTdHJpbmcmLCBjb25zdCBQbGFpblRleHRSYW5nZSYpCiB7CiAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CkBAIC03NzMsNyArNzgzLDcgQEAgYm9vbCBBWElzb2xhdGVkT2JqZWN0Ojppc0Fj
Y2Vzc2liaWxpdHlTVkdFbGVtZW50KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgQVhJc29sYXRlZE9iamVjdDo6Y29udGFpbnNUZXh0KFN0cmluZyopIGNvbnN0Citib29sIEFY
SXNvbGF0ZWRPYmplY3Q6OmNvbnRhaW5zVGV4dChTdHJpbmcgY29uc3QmKSBjb25zdAogewogICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlTm9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWVOb2RlLmgKaW5kZXggYWVhOGZjMWFjMGNlNjhmYzNhMzhhNTE4MTk5NmRmYTUyZWVkYTkx
ZS4uMmNlMDRkYzBlNThhYmIyOGI1NGMxYzYwMjAyOTc2MDgzNGNjYzNkZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWVO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJ
c29sYXRlZFRyZWVOb2RlLmgKQEAgLTUyNCw2ICs1MjQsNyBAQCBwcml2YXRlOgogICAgIC8vIFBh
cmFtZXRlcml6ZWQgYXR0cmlidXRlIHJldHJpZXZhbC4KICAgICBWZWN0b3I8UmVmUHRyPFJhbmdl
Pj4gZmluZFRleHRSYW5nZXMoQWNjZXNzaWJpbGl0eVNlYXJjaFRleHRDcml0ZXJpYSBjb25zdCYp
IGNvbnN0IG92ZXJyaWRlOwogICAgIFZlY3RvcjxTdHJpbmc+IHBlcmZvcm1UZXh0T3BlcmF0aW9u
KEFjY2Vzc2liaWxpdHlUZXh0T3BlcmF0aW9uIGNvbnN0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBm
aW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSosIEFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3RvciYpIG92ZXJyaWRlOwogCiAgICAgLy8gQXR0cmlidXRlcyByZXRy
aWV2ZWQgZnJvbSB0aGUgcm9vdCBub2RlIG9ubHkgc28gdGhhdCB0aGUgZGF0YSBpc24ndCBkdXBs
aWNhdGVkIG9uIGVhY2ggbm9kZS4KICAgICB1aW50NjRfdCBzZXNzaW9uSUQoKSBjb25zdCBvdmVy
cmlkZTsKQEAgLTYwMSw3ICs2MDIsNiBAQCBwcml2YXRlOgogICAgIC8vIFRPRE86IEZ1bmN0aW9u
cwogICAgIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBTdHJpbmcoKTsgfQogICAgIFJlZlB0cjxSYW5nZT4gZ2V0TWlzc3BlbGxp
bmdSYW5nZShSZWZQdHI8UmFuZ2U+IGNvbnN0JiwgQWNjZXNzaWJpbGl0eVNlYXJjaERpcmVjdGlv
bikgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZvaWQgZmluZE1hdGNo
aW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEqLCBBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImKSBvdmVycmlkZSB7IH0KICAgICBGbG9hdFJlY3QgY29udmVydEZyYW1lVG9T
cGFjZShjb25zdCBGbG9hdFJlY3QmLCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBGbG9hdFJlY3QoKTsgfQogICAgIHZvaWQgaW5jcmVtZW50KCkg
b3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBkZWNyZW1lbnQoKSBvdmVycmlkZSB7IH0KQEAgLTYyMiw3
ICs2MjIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U2Nyb2xsVmlldygp
IGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHUm9vdCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIGJvb2wgaXNBY2Nlc3NpYmlsaXR5U1ZHRWxlbWVudCgpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgY29udGFpbnNUZXh0KFN0cmluZyopIGNvbnN0IG92ZXJyaWRlOwor
ICAgIGJvb2wgY29udGFpbnNUZXh0KFN0cmluZyBjb25zdCYpIGNvbnN0IG92ZXJyaWRlOwogICAg
IGJvb2wgaXNBdHRhY2htZW50RWxlbWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNO
YXRpdmVJbWFnZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgaXNJbWFnZUJ1dHRvbigpIGNv
bnN0IG92ZXJyaWRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>