<?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>131907</bug_id>
          
          <creation_ts>2014-04-19 22:09:20 -0700</creation_ts>
          <short_desc>Rename the CSSSelector PseudoType to PseudoClassType</short_desc>
          <delta_ts>2014-04-20 13:44:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1002340</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-19 22:09:20 -0700</bug_when>
    <thetext>Rename the CSSSelector PseudoType to PseudoClassType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002341</commentid>
    <comment_count>1</comment_count>
      <attachid>229755</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-19 22:14:21 -0700</bug_when>
    <thetext>Created attachment 229755
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1002418</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-04-20 13:44:37 -0700</bug_when>
    <thetext>Committed r167571: &lt;http://trac.webkit.org/changeset/167571&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>229755</attachid>
            <date>2014-04-19 22:14:21 -0700</date>
            <delta_ts>2014-04-19 22:56:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131907-20140419221358.patch</filename>
            <type>text/plain</type>
            <size>74739</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDU0Yzc4NDQ0ZmIxYzYw
NTg1OTMyMWIxODU0NzgwOWI3MWI3ZmViZC4uNTQ5MGMyYTRkM2Q0OTM4ZmNmN2Q5OTI3NGFkZTc2
OWIzMzc2NjFkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE0LTA0LTE5ICBCZW5q
YW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW5hbWUgdGhl
IENTU1NlbGVjdG9yIFBzZXVkb1R5cGUgdG8gUHNldWRvQ2xhc3NUeXBlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzE5MDcKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQc2V1ZG8gRWxlbWVudHMgYW5kIFBh
Z2UgUHNldWRvIENsYXNzZXMgaGF2ZSBiZWVuIG1vdmVkIG91dCBvZiBQc2V1ZG9UeXBlIGluIHBy
ZXZpb3VzIHBhdGNoZXMuCisgICAgICAgIFRoZSByZW1haW5pbmcgdmFsdWVzIGluIHRoZSBQc2V1
ZG9UeXBlIGVudW1lcmF0aW9uIGFyZSB0aGUgcHNldWRvIGNsYXNzZXMuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBpcyB0aGUgZmluYWwgY2xlYW4gdXAsIFBzZXVkb1R5cGUgaXMgcmVuYW1lZCB0byBQ
c2V1ZG9DbGFzc1R5cGUuCisKKyAgICAgICAgKiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAg
ICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2Vy
U2VsZWN0b3I6OnBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9y
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmg6CisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXJTZWxlY3Rvcjo6cHNldWRvQ2xhc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1BhcnNlclNlbGVjdG9yOjpwc2V1ZG9UeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKiBjc3MvQ1NT
U2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNwZWNpZmljaXR5
Rm9yT25lU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6YXBwZW5kUHNldWRvQ2xhc3NGdW5j
dGlvblRhaWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dCk6
CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxl
Y3Rvcjo6cHNldWRvQ2xhc3NUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpw
c2V1ZG9FbGVtZW50VHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6cGFnZVBz
ZXVkb0NsYXNzVHlwZSk6CisgICAgICAgIChXZWJDb3JlOjpwc2V1ZG9DbGFzc0lzUmVsYXRpdmVU
b1NpYmxpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc1NpYmxpbmdTZWxl
Y3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OnBzZXVkb1R5cGUpOiBEZWxldGVkLgorICAgICAg
ICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmZpbmRCZXN0
UnVsZVNldEFuZEFkZCk6CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKToKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyk6CisgICAgICAg
IChXZWJDb3JlOjpTZWxlY3RvckNoZWNrZXI6OmRldGVybWluZUxpbmtNYXRjaFR5cGUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2VsZWN0b3JDaGVja2VyOjptYXRjaGVzRm9jdXNQc2V1ZG9DbGFzcyk6
CisgICAgICAgICogY3NzL1NlbGVjdG9yQ2hlY2tlci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Vs
ZWN0b3JDaGVja2VyOjppc0NvbW1vblBzZXVkb0NsYXNzU2VsZWN0b3IpOgorICAgICAgICAqIGNz
cy9TZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3Rv
ckNoZWNrZXJGYXN0UGF0aDo6Y29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvck1hdGNoZXMpOgorICAg
ICAgICAqIGNzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAu
aW46CisgICAgICAgICogY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oOgorICAgICAgICAqIGNz
cy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0
eWxlRm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5k
Q29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6CisgICAgICAgIChlbnVtZXJhYmxlUHNldWRvVHlw
ZSk6CisgICAgICAgICogY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6YWRkUHNldWRvQ2xhc3NUeXBlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVjdG9yQ29kZUdlbmVyYXRvcjo6U2VsZWN0b3JD
b2RlR2VuZXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9yQ29tcGlsZXI6OlNlbGVj
dG9yQ29kZUdlbmVyYXRvcjo6Z2VuZXJhdGVFbGVtZW50TWF0Y2hpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6U2VsZWN0b3JDb21waWxlcjo6YWRkUHNldWRvVHlwZSk6IERlbGV0ZWQuCisgICAgICAg
ICogaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bXB1dGVQc2V1ZG9DbGFzc01hc2spOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NTQWdl
bnQ6OmZvcmNlUHNldWRvU3RhdGUpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5oOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVk
b1N0YXRlSW1wbCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5oOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBz
ZXVkb1N0YXRlKToKKwogMjAxNC0wNC0xOSAgQmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBNYWtlIHRoZSBDU1MgSklUIGNvbXBpbGUgZm9yIEFSTTY0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgppbmRleCAzYTYzNDUxODFlZDViMDk5NTIwNTc0YTc3
Nzk4YjJjMThjNGYzM2Y3Li44NjNiNTA3ZmY3OTM3ZDBhMjYzYTM3Y2EwZjU0MzBjMDUxYzZhNjFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAgLTEyMTksNyArMTIxOSw3IEBAIHBz
ZXVkbzoKICAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3MpOwogICAgICAgICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKnN0ZDo6
dW5pcXVlX3B0cjxWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4+KCQ0
KSk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7Ci0gICAg
ICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
QW55KQorICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnkpCiAgICAgICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5y
ZWxlYXNlKCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjMwLDcgKzEyMzAsNyBAQCBwc2V1ZG86
CiAgICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwog
ICAgICAgICBzZWxlY3Rvci0+c2V0QXJndW1lbnQoJDQpOwogICAgICAgICBzZWxlY3Rvci0+c2V0
UHNldWRvQ2xhc3NWYWx1ZSgkMik7Ci0gICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgp
ICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQorICAgICAgICBpZiAoc2VsZWN0b3ItPnBz
ZXVkb0NsYXNzVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Vua25vd24pCiAgICAg
ICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CiAgICAgLy8gdXNlZCBieSA6
bnRoLSoKQEAgLTEyNDAsNyArMTI0MCw3IEBAIHBzZXVkbzoKICAgICAgICAgc2VsZWN0b3ItPnNl
dE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRB
cmd1bWVudChBdG9taWNTdHJpbmc6Om51bWJlcigkNCAqICQ1KSk7CiAgICAgICAgIHNlbGVjdG9y
LT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsKLSAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9U
eXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCisgICAgICAgIGlmIChzZWxlY3Rv
ci0+cHNldWRvQ2xhc3NUeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVW5rbm93bikK
ICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgpOwogICAgIH0KICAgICAvLyB1c2Vk
IGJ5IDpudGgtKihvZGQvZXZlbikgYW5kIDpsYW5nCkBAIC0xMjQ5LDEzICsxMjQ5LDEzIEBAIHBz
ZXVkbzoKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
cyk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7CiAgICAgICAgIHNlbGVjdG9y
LT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsKLSAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5
cGUgdHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCk7Ci0gICAgICAgIGlmICh0eXBlID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQorICAgICAgICBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NUeXBlIHR5cGUgPSBzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCk7CisgICAgICAgIGlmICh0
eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Vua25vd24pCiAgICAgICAgICAgICBzZWxl
Y3RvciA9IG51bGxwdHI7Ci0gICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb050aENoaWxkIHx8Ci0gICAgICAgICAgICAgICAgIHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb050aE9mVHlwZSB8fAotICAgICAgICAgICAgICAgICB0eXBlID09IENTU1NlbGVjdG9yOjpQ
c2V1ZG9OdGhMYXN0Q2hpbGQgfHwKLSAgICAgICAgICAgICAgICAgdHlwZSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvTnRoTGFzdE9mVHlwZSkgeworICAgICAgICBlbHNlIGlmICh0eXBlID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc050aENoaWxkIHx8CisgICAgICAgICAgICAgICAgIHR5cGUgPT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoT2ZUeXBlIHx8CisgICAgICAgICAgICAgICAgIHR5
cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoTGFzdENoaWxkIHx8CisgICAgICAgICAg
ICAgICAgIHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoTGFzdE9mVHlwZSkgewog
ICAgICAgICAgICAgaWYgKCFpc1ZhbGlkTnRoVG9rZW4oJDQpKQogICAgICAgICAgICAgICAgIHNl
bGVjdG9yID0gbnVsbHB0cjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlclZhbHVlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFs
dWVzLmNwcAppbmRleCA1ODQ5NDA4YWQyYWIzMmM2NjRjOTNjZTg5NTAzNGZhZjBlZDNhYTMwLi5j
MjNkOGIwMmYzZTA3Y2YzMGVjMjU3NjkwYTdjZjlmMDVhMTBhN2Q0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyVmFsdWVzLmNwcApAQCAtMjA2LDcgKzIwNiw3IEBAIENTU1BhcnNlclNlbGVj
dG9yKiBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rpb25TZWxl
Y3Rvcihjb25zCiBDU1NQYXJzZXJTZWxlY3RvciogQ1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKENTU1BhcnNlclN0cmluZyYg
cHNldWRvVHlwZVN0cmluZykKIHsKICAgICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVk
b0VsZW1lbnQgcHNldWRvVHlwZSA9IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudFN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nKTsKLSAgICBpZiAocHNldWRvVHlwZS5wc2V1ZG9D
bGFzcyAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikgeworICAgIGlmIChwc2V1ZG9UeXBl
LnBzZXVkb0NsYXNzICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Vua25vd24pIHsKICAgICAg
ICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7
CiAgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0NsYXNzOwogICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0g
cHNldWRvVHlwZS5wc2V1ZG9DbGFzczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXJWYWx1ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApp
bmRleCBhNGVmMGI5YWYzODkyYWE5MzQ3ZGY2YmFhNTBiZjUxMTBlYmZmYTJlLi4yYTMyM2NjODI4
M2E1Yjg2ZTk0NzM2MTM5ZTJmZjlmMWM2ZDM1ZTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
clZhbHVlcy5oCkBAIC0xOTcsNyArMTk3LDcgQEAgcHVibGljOgogICAgIHZvaWQgYWRvcHRTZWxl
Y3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4mIHNl
bGVjdG9yVmVjdG9yKTsKIAogICAgIHZvaWQgc2V0UHNldWRvQ2xhc3NWYWx1ZShjb25zdCBDU1NQ
YXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKTsKLSAgICBDU1NTZWxlY3Rvcjo6UHNldWRv
VHlwZSBwc2V1ZG9UeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+cHNldWRvVHlwZSgp
OyB9CisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSBwc2V1ZG9DbGFzc1R5cGUoKSBj
b25zdCB7IHJldHVybiBtX3NlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKTsgfQogICAgIGJvb2wg
aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNDdXN0
b21Qc2V1ZG9FbGVtZW50KCk7IH0KIAogICAgIGJvb2wgaXNQc2V1ZG9FbGVtZW50Q3VlRnVuY3Rp
b24oKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggZDVhMzQ2M2QyODdh
ZTI4NzY0OTlkNTQ1NGYxZmIzNGI5YmI0MGIzMy4uYjNlZTczYTEzOGRjNGIwM2M0Mzc2ZjRmZTA4
YjgxNTAyOGYyNDI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC05Miw3ICs5
Miw3IEBAIGlubGluZSB1bnNpZ25lZCBDU1NTZWxlY3Rvcjo6c3BlY2lmaWNpdHlGb3JPbmVTZWxl
Y3RvcigpIGNvbnN0CiAgICAgY2FzZSBQc2V1ZG9DbGFzczoKICAgICAgICAgLy8gRklYTUU6IFBz
dWVkb0FueSBzaG91bGQgYmFzZSB0aGUgc3BlY2lmaWNpdHkgb24gdGhlIHN1Yi1zZWxlY3RvcnMu
CiAgICAgICAgIC8vIFNlZSBodHRwOi8vbGlzdHMudzMub3JnL0FyY2hpdmVzL1B1YmxpYy93d3ct
c3R5bGUvMjAxMFNlcC8wNTMwLmh0bWwKLSAgICAgICAgaWYgKHBzZXVkb1R5cGUoKSA9PSBQc2V1
ZG9Ob3QgJiYgc2VsZWN0b3JMaXN0KCkpCisgICAgICAgIGlmIChwc2V1ZG9DbGFzc1R5cGUoKSA9
PSBQc2V1ZG9DbGFzc05vdCAmJiBzZWxlY3Rvckxpc3QoKSkKICAgICAgICAgICAgIHJldHVybiBz
ZWxlY3Rvckxpc3QoKS0+Zmlyc3QoKS0+c3BlY2lmaWNpdHlGb3JPbmVTZWxlY3RvcigpOwogICAg
ICAgICBGQUxMVEhST1VHSDsKICAgICBjYXNlIEV4YWN0OgpAQCAtMjMwLDEyICsyMzAsMTIgQEAg
Ym9vbCBDU1NTZWxlY3Rvcjo6b3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYgb3RoZXIpIGNv
bnN0CiAKIHN0YXRpYyB2b2lkIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKFN0cmluZ0J1
aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogewotICAgIHN3aXRjaCAo
c2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xh
bmc6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b050aE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlOgor
ICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpKSB7CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzTnRoQ2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhMYXN0Q2hp
bGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhPZlR5cGU6CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhMYXN0T2ZUeXBlOgogICAgICAgICBzdHIuYXBw
ZW5kKHNlbGVjdG9yLT5hcmd1bWVudCgpKTsKICAgICAgICAgc3RyLmFwcGVuZCgnKScpOwogICAg
ICAgICBicmVhazsKQEAgLTI2OCwxMyArMjY4LDEzIEBAIFN0cmluZyBDU1NTZWxlY3Rvcjo6c2Vs
ZWN0b3JUZXh0KGNvbnN0IFN0cmluZyYgcmlnaHRTaWRlKSBjb25zdAogICAgICAgICAgICAgc3Ry
LmFwcGVuZCgnLicpOwogICAgICAgICAgICAgc2VyaWFsaXplSWRlbnRpZmllcihjcy0+dmFsdWUo
KSwgc3RyKTsKICAgICAgICAgfSBlbHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3MpIHsKLSAgICAgICAgICAgIHN3aXRjaCAoY3MtPnBzZXVkb1R5cGUoKSkgewor
ICAgICAgICAgICAgc3dpdGNoIChjcy0+cHNldWRvQ2xhc3NUeXBlKCkpIHsKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Bbmlt
YXRpbmdGdWxsU2NyZWVuVHJhbnNpdGlvbjoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246CiAgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbi10cmFu
c2l0aW9uIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FueTogeworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NBbnk6IHsKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
Oi13ZWJraXQtYW55KCIpOwogICAgICAgICAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJz
dFN1YlNlbGVjdG9yID0gY3MtPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOwogICAgICAgICAgICAg
ICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rv
cjsgc3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNl
bGVjdG9yKSkgewpAQCAtMjg1LDE4MCArMjg1LDE4MCBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNl
bGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kKCcpJyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BbnlMaW5rOgorICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnlMaW5rOgogICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hbnktbGluayIpOwogICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQXV0b2ZpbGw6Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0F1dG9maWxsOgogICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hdXRvZmlsbCIpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRHJh
ZzoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRHJhZzoKICAgICAg
ICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13ZWJraXQtZHJhZyIpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFBh
Z2VNZWRpYToKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRnVsbFBh
Z2VNZWRpYToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13ZWJraXQtZnVs
bC1wYWdlLW1lZGlhIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVl
bjoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRnVsbFNjcmVlbjoK
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13ZWJraXQtZnVsbC1zY3JlZW4i
KTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0Z1bGxTY3JlZW5BbmNlc3RvcjoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzRnVsbFNjcmVlbkFuY2VzdG9yOgogICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvciIpOwogICAgICAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVl
bkRvY3VtZW50OgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGdWxs
U2NyZWVuRG9jdW1lbnQ6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Vi
a2l0LWZ1bGwtc2NyZWVuLWRvY3VtZW50Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5k
aWYKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQWN0aXZlOgogICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6YWN0aXZlIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgorICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NDaGVja2VkOgogICAgICAgICAgICAgICAgIHN0
ci5hcHBlbmRMaXRlcmFsKCI6Y2hlY2tlZCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ29ybmVyUHJlc2VudDoKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQ29ybmVyUHJlc2VudDoKICAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmNvcm5lci1wcmVzZW50Iik7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWNyZW1l
bnQ6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RlY3JlbWVudDoK
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlY3JlbWVudCIpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVm
YXVsdDoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGVmYXVsdDoK
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlZmF1bHQiKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2Fi
bGVkOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NEaXNhYmxlZDoK
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRpc2FibGVkIik7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Eb3Vi
bGVCdXR0b246CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RvdWJs
ZUJ1dHRvbjoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRvdWJsZS1idXR0
b24iKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0VtcHR5OgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NFbXB0eToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmVtcHR5Iik7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9FbmFibGVkOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NFbmFi
bGVkOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZW5hYmxlZCIpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
RW5kOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NFbmQ6CiAgICAg
ICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjplbmQiKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZpcnN0Q2hpbGQ6CiAgICAg
ICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdC1jaGlsZCIpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RP
ZlR5cGU6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0ZpcnN0T2ZU
eXBlOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6Zmlyc3Qtb2YtdHlwZSIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRm9jdXM6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Zv
Y3VzOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6Zm9jdXMiKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdXR1cmU6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc0Z1dHVyZToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJh
bCgiOmZ1dHVyZSIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogI2VuZGlmCi0gICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgorICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NIb3Jpem9udGFsOgogICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmRMaXRlcmFsKCI6aG9yaXpvbnRhbCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSG92ZXI6CisgICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hvdmVyOgogICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6aG92ZXIiKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2U6CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc0luUmFuZ2U6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjppbi1yYW5nZSIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5jcmVtZW50OgorICAgICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbmNyZW1lbnQ6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVu
ZExpdGVyYWwoIjppbmNyZW1lbnQiKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5hdGU6CisgICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0luZGV0ZXJtaW5hdGU6CiAgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjppbmRldGVybWluYXRlIik7CiAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgorICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbnZhbGlkOgogICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6aW52YWxpZCIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFuZzoKICAgICAgICAgICAgICAgICBz
dHIuYXBwZW5kTGl0ZXJhbCgiOmxhbmcoIik7CiAgICAgICAgICAgICAgICAgYXBwZW5kUHNldWRv
Q2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hpbGQ6CisgICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhc3RDaGlsZDoKICAgICAgICAgICAgICAgICBz
dHIuYXBwZW5kTGl0ZXJhbCgiOmxhc3QtY2hpbGQiKTsKICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhc3RPZlR5cGU6CiAgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsYXN0LW9mLXR5cGUiKTsKICAgICAgICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6CisgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xpbms6CiAgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsaW5rIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm9CdXR0b246CiAgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpuby1idXR0b24iKTsKICAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vdDoKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm90OgogICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6bm90KCIpOwogICAgICAgICAgICAgICAgIGlmIChjb25zdCBDU1NTZWxlY3Rv
ckxpc3QqIHNlbGVjdG9yTGlzdCA9IGNzLT5zZWxlY3Rvckxpc3QoKSkKICAgICAgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZChzZWxlY3Rvckxpc3QtPmZpcnN0KCktPnNlbGVjdG9yVGV4dCgpKTsK
ICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoQ2hpbGQ6CiAgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjpudGgtY2hpbGQoIik7CiAgICAgICAgICAgICAgICAgYXBw
ZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CiAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQ6Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc050aExhc3RDaGlsZDoKICAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1sYXN0LWNoaWxkKCIpOwogICAg
ICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwgY3MpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
TnRoTGFzdE9mVHlwZToKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
TnRoTGFzdE9mVHlwZToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1s
YXN0LW9mLXR5cGUoIik7CiAgICAgICAgICAgICAgICAgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlv
blRhaWwoc3RyLCBjcyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc050aE9mVHlwZToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0
ZXJhbCgiOm50aC1vZi10eXBlKCIpOwogICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNz
RnVuY3Rpb25UYWlsKHN0ciwgY3MpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seUNoaWxkOgorICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPbmx5Q2hpbGQ6CiAgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjpvbmx5LWNoaWxkIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPbmx5T2ZUeXBlOgogICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6b25seS1vZi10eXBlIik7CiAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9PcHRpb25hbDoKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzT3B0aW9uYWw6CiAgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpvcHRpb25hbCIpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT3V0T2ZSYW5nZToKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzT3V0T2ZSYW5nZToKICAgICAg
ICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm91dC1vZi1yYW5nZSIpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3Q6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9DbGFzc1Bhc3Q6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpwYXN0
Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAjZW5kaWYKLSAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1JlYWRPbmx5OgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3NSZWFkT25seToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OnJlYWQtb25seSIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvUmVhZFdyaXRlOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NSZWFkV3JpdGU6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIjpyZWFkLXdyaXRlIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZXF1aXJlZDoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzUmVxdWlyZWQ6CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjpyZXF1aXJlZCIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUm9vdDoKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzUm9vdDoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OnJvb3QiKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Njb3BlOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NTY29wZToKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnNjb3BlIik7
CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9TaW5nbGVCdXR0b246CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1NpbmdsZUJ1dHRvbjoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnNp
bmdsZS1idXR0b24iKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3NTdGFydDoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnN0
YXJ0Iik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9UYXJnZXQ6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1RhcmdldDoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnRhcmdldCIp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmFsaWQ6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Zh
bGlkOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6dmFsaWQiKTsKICAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zl
cnRpY2FsOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWZXJ0aWNh
bDoKICAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnZlcnRpY2FsIik7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9W
aXNpdGVkOgorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWaXNpdGVk
OgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6dmlzaXRlZCIpOwogICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvV2lu
ZG93SW5hY3RpdmU6CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1dp
bmRvd0luYWN0aXZlOgogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6d2luZG93
LWluYWN0aXZlIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBkZWZhdWx0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAppbmRleCBhMjViOThiOTY1ODMxMTgyODcyYmI2MTEx
MzRhYTdlMjk5M2FiY2FiLi5mMmFjZjdmNGVmNjZkMWRkYWE4NTZlYzYzMTZmMDlkNDdmOTRmNTEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuaApAQCAtNzgsNjcgKzc4LDY3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFNoYWRvd0Rlc2NlbmRhbnQsCiAgICAgICAgIH07CiAK
LSAgICAgICAgZW51bSBQc2V1ZG9UeXBlIHsKLSAgICAgICAgICAgIFBzZXVkb1Vua25vd24gPSAw
LAotICAgICAgICAgICAgUHNldWRvRW1wdHksCi0gICAgICAgICAgICBQc2V1ZG9GaXJzdENoaWxk
LAotICAgICAgICAgICAgUHNldWRvRmlyc3RPZlR5cGUsCi0gICAgICAgICAgICBQc2V1ZG9MYXN0
Q2hpbGQsCi0gICAgICAgICAgICBQc2V1ZG9MYXN0T2ZUeXBlLAotICAgICAgICAgICAgUHNldWRv
T25seUNoaWxkLAotICAgICAgICAgICAgUHNldWRvT25seU9mVHlwZSwKLSAgICAgICAgICAgIFBz
ZXVkb050aENoaWxkLAotICAgICAgICAgICAgUHNldWRvTnRoT2ZUeXBlLAotICAgICAgICAgICAg
UHNldWRvTnRoTGFzdENoaWxkLAotICAgICAgICAgICAgUHNldWRvTnRoTGFzdE9mVHlwZSwKLSAg
ICAgICAgICAgIFBzZXVkb0xpbmssCi0gICAgICAgICAgICBQc2V1ZG9WaXNpdGVkLAotICAgICAg
ICAgICAgUHNldWRvQW55LAotICAgICAgICAgICAgUHNldWRvQW55TGluaywKLSAgICAgICAgICAg
IFBzZXVkb0F1dG9maWxsLAotICAgICAgICAgICAgUHNldWRvSG92ZXIsCi0gICAgICAgICAgICBQ
c2V1ZG9EcmFnLAotICAgICAgICAgICAgUHNldWRvRm9jdXMsCi0gICAgICAgICAgICBQc2V1ZG9B
Y3RpdmUsCi0gICAgICAgICAgICBQc2V1ZG9DaGVja2VkLAotICAgICAgICAgICAgUHNldWRvRW5h
YmxlZCwKLSAgICAgICAgICAgIFBzZXVkb0Z1bGxQYWdlTWVkaWEsCi0gICAgICAgICAgICBQc2V1
ZG9EZWZhdWx0LAotICAgICAgICAgICAgUHNldWRvRGlzYWJsZWQsCi0gICAgICAgICAgICBQc2V1
ZG9PcHRpb25hbCwKLSAgICAgICAgICAgIFBzZXVkb1JlcXVpcmVkLAotICAgICAgICAgICAgUHNl
dWRvUmVhZE9ubHksCi0gICAgICAgICAgICBQc2V1ZG9SZWFkV3JpdGUsCi0gICAgICAgICAgICBQ
c2V1ZG9WYWxpZCwKLSAgICAgICAgICAgIFBzZXVkb0ludmFsaWQsCi0gICAgICAgICAgICBQc2V1
ZG9JbmRldGVybWluYXRlLAotICAgICAgICAgICAgUHNldWRvVGFyZ2V0LAotICAgICAgICAgICAg
UHNldWRvTGFuZywKLSAgICAgICAgICAgIFBzZXVkb05vdCwKLSAgICAgICAgICAgIFBzZXVkb1Jv
b3QsCi0gICAgICAgICAgICBQc2V1ZG9TY29wZSwKLSAgICAgICAgICAgIFBzZXVkb1dpbmRvd0lu
YWN0aXZlLAotICAgICAgICAgICAgUHNldWRvQ29ybmVyUHJlc2VudCwKLSAgICAgICAgICAgIFBz
ZXVkb0RlY3JlbWVudCwKLSAgICAgICAgICAgIFBzZXVkb0luY3JlbWVudCwKLSAgICAgICAgICAg
IFBzZXVkb0hvcml6b250YWwsCi0gICAgICAgICAgICBQc2V1ZG9WZXJ0aWNhbCwKLSAgICAgICAg
ICAgIFBzZXVkb1N0YXJ0LAotICAgICAgICAgICAgUHNldWRvRW5kLAotICAgICAgICAgICAgUHNl
dWRvRG91YmxlQnV0dG9uLAotICAgICAgICAgICAgUHNldWRvU2luZ2xlQnV0dG9uLAotICAgICAg
ICAgICAgUHNldWRvTm9CdXR0b24sCisgICAgICAgIGVudW0gUHNldWRvQ2xhc3NUeXBlIHsKKyAg
ICAgICAgICAgIFBzZXVkb0NsYXNzVW5rbm93biA9IDAsCisgICAgICAgICAgICBQc2V1ZG9DbGFz
c0VtcHR5LAorICAgICAgICAgICAgUHNldWRvQ2xhc3NGaXJzdENoaWxkLAorICAgICAgICAgICAg
UHNldWRvQ2xhc3NGaXJzdE9mVHlwZSwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzTGFzdENoaWxk
LAorICAgICAgICAgICAgUHNldWRvQ2xhc3NMYXN0T2ZUeXBlLAorICAgICAgICAgICAgUHNldWRv
Q2xhc3NPbmx5Q2hpbGQsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc09ubHlPZlR5cGUsCisgICAg
ICAgICAgICBQc2V1ZG9DbGFzc050aENoaWxkLAorICAgICAgICAgICAgUHNldWRvQ2xhc3NOdGhP
ZlR5cGUsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc050aExhc3RDaGlsZCwKKyAgICAgICAgICAg
IFBzZXVkb0NsYXNzTnRoTGFzdE9mVHlwZSwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzTGluaywK
KyAgICAgICAgICAgIFBzZXVkb0NsYXNzVmlzaXRlZCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNz
QW55LAorICAgICAgICAgICAgUHNldWRvQ2xhc3NBbnlMaW5rLAorICAgICAgICAgICAgUHNldWRv
Q2xhc3NBdXRvZmlsbCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzSG92ZXIsCisgICAgICAgICAg
ICBQc2V1ZG9DbGFzc0RyYWcsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0ZvY3VzLAorICAgICAg
ICAgICAgUHNldWRvQ2xhc3NBY3RpdmUsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0NoZWNrZWQs
CisgICAgICAgICAgICBQc2V1ZG9DbGFzc0VuYWJsZWQsCisgICAgICAgICAgICBQc2V1ZG9DbGFz
c0Z1bGxQYWdlTWVkaWEsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0RlZmF1bHQsCisgICAgICAg
ICAgICBQc2V1ZG9DbGFzc0Rpc2FibGVkLAorICAgICAgICAgICAgUHNldWRvQ2xhc3NPcHRpb25h
bCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzUmVxdWlyZWQsCisgICAgICAgICAgICBQc2V1ZG9D
bGFzc1JlYWRPbmx5LAorICAgICAgICAgICAgUHNldWRvQ2xhc3NSZWFkV3JpdGUsCisgICAgICAg
ICAgICBQc2V1ZG9DbGFzc1ZhbGlkLAorICAgICAgICAgICAgUHNldWRvQ2xhc3NJbnZhbGlkLAor
ICAgICAgICAgICAgUHNldWRvQ2xhc3NJbmRldGVybWluYXRlLAorICAgICAgICAgICAgUHNldWRv
Q2xhc3NUYXJnZXQsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0xhbmcsCisgICAgICAgICAgICBQ
c2V1ZG9DbGFzc05vdCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzUm9vdCwKKyAgICAgICAgICAg
IFBzZXVkb0NsYXNzU2NvcGUsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc1dpbmRvd0luYWN0aXZl
LAorICAgICAgICAgICAgUHNldWRvQ2xhc3NDb3JuZXJQcmVzZW50LAorICAgICAgICAgICAgUHNl
dWRvQ2xhc3NEZWNyZW1lbnQsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0luY3JlbWVudCwKKyAg
ICAgICAgICAgIFBzZXVkb0NsYXNzSG9yaXpvbnRhbCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNz
VmVydGljYWwsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc1N0YXJ0LAorICAgICAgICAgICAgUHNl
dWRvQ2xhc3NFbmQsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0RvdWJsZUJ1dHRvbiwKKyAgICAg
ICAgICAgIFBzZXVkb0NsYXNzU2luZ2xlQnV0dG9uLAorICAgICAgICAgICAgUHNldWRvQ2xhc3NO
b0J1dHRvbiwKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgICAgICAgICBQc2V1ZG9G
dWxsU2NyZWVuLAotICAgICAgICAgICAgUHNldWRvRnVsbFNjcmVlbkRvY3VtZW50LAotICAgICAg
ICAgICAgUHNldWRvRnVsbFNjcmVlbkFuY2VzdG9yLAotICAgICAgICAgICAgUHNldWRvQW5pbWF0
aW5nRnVsbFNjcmVlblRyYW5zaXRpb24sCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0Z1bGxTY3Jl
ZW4sCisgICAgICAgICAgICBQc2V1ZG9DbGFzc0Z1bGxTY3JlZW5Eb2N1bWVudCwKKyAgICAgICAg
ICAgIFBzZXVkb0NsYXNzRnVsbFNjcmVlbkFuY2VzdG9yLAorICAgICAgICAgICAgUHNldWRvQ2xh
c3NBbmltYXRpbmdGdWxsU2NyZWVuVHJhbnNpdGlvbiwKICNlbmRpZgotICAgICAgICAgICAgUHNl
dWRvSW5SYW5nZSwKLSAgICAgICAgICAgIFBzZXVkb091dE9mUmFuZ2UsCisgICAgICAgICAgICBQ
c2V1ZG9DbGFzc0luUmFuZ2UsCisgICAgICAgICAgICBQc2V1ZG9DbGFzc091dE9mUmFuZ2UsCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICAgICAgICAgUHNldWRvRnV0dXJlLAotICAgICAg
ICAgICAgUHNldWRvUGFzdCwKKyAgICAgICAgICAgIFBzZXVkb0NsYXNzRnV0dXJlLAorICAgICAg
ICAgICAgUHNldWRvQ2xhc3NQYXN0LAogI2VuZGlmCiAgICAgICAgIH07CiAKQEAgLTE4OCwxMiAr
MTg4LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgUmlnaHRCb3R0b21NYXJn
aW5Cb3gsCiAgICAgICAgIH07CiAKLSAgICAgICAgUHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29u
c3QKLSAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKG1fbWF0Y2ggPT0gUHNldWRvQ2xhc3Mp
OwotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBzZXVkb1R5cGU+KG1fcHNldWRvVHlw
ZSk7Ci0gICAgICAgIH0KLQogICAgICAgICBzdGF0aWMgUHNldWRvRWxlbWVudFR5cGUgcGFyc2VQ
c2V1ZG9FbGVtZW50VHlwZShjb25zdCBTdHJpbmcmKTsKICAgICAgICAgc3RhdGljIFBzZXVkb0lk
IHBzZXVkb0lkKFBzZXVkb0VsZW1lbnRUeXBlKTsKIApAQCAtMjIwLDggKzIxNCwyMyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBudGhBKCkgY29uc3Q7CiAgICAgICAgIGludCBu
dGhCKCkgY29uc3Q7CiAKLSAgICAgICAgUHNldWRvRWxlbWVudFR5cGUgcHNldWRvRWxlbWVudFR5
cGUoKSBjb25zdCB7IEFTU0VSVChtX21hdGNoID09IFBzZXVkb0VsZW1lbnQpOyByZXR1cm4gc3Rh
dGljX2Nhc3Q8UHNldWRvRWxlbWVudFR5cGU+KG1fcHNldWRvVHlwZSk7IH0KLSAgICAgICAgUGFn
ZVBzZXVkb0NsYXNzVHlwZSBwYWdlUHNldWRvQ2xhc3NUeXBlKCkgY29uc3QgeyBBU1NFUlQobV9t
YXRjaCA9PSBQYWdlUHNldWRvQ2xhc3MpOyByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZVBzZXVkb0Ns
YXNzVHlwZT4obV9wc2V1ZG9UeXBlKTsgfQorICAgICAgICBQc2V1ZG9DbGFzc1R5cGUgcHNldWRv
Q2xhc3NUeXBlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKG1fbWF0Y2gg
PT0gUHNldWRvQ2xhc3MpOworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBzZXVkb0Ns
YXNzVHlwZT4obV9wc2V1ZG9UeXBlKTsKKyAgICAgICAgfQorCisgICAgICAgIFBzZXVkb0VsZW1l
bnRUeXBlIHBzZXVkb0VsZW1lbnRUeXBlKCkgY29uc3QKKyAgICAgICAgeworICAgICAgICAgICAg
QVNTRVJUKG1fbWF0Y2ggPT0gUHNldWRvRWxlbWVudCk7CisgICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8UHNldWRvRWxlbWVudFR5cGU+KG1fcHNldWRvVHlwZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBQYWdlUHNldWRvQ2xhc3NUeXBlIHBhZ2VQc2V1ZG9DbGFzc1R5cGUoKSBjb25zdAor
ICAgICAgICB7CisgICAgICAgICAgICBBU1NFUlQobV9tYXRjaCA9PSBQYWdlUHNldWRvQ2xhc3Mp
OworICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBhZ2VQc2V1ZG9DbGFzc1R5cGU+KG1f
cHNldWRvVHlwZSk7CisgICAgICAgIH0KIAogICAgICAgICBib29sIG1hdGNoZXNQc2V1ZG9FbGVt
ZW50KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNVbmtub3duUHNldWRvRWxlbWVudCgpIGNvbnN0
OwpAQCAtMzE2LDI2ICszMjUsMjYgQEAgaW5saW5lIGJvb2wgQ1NTU2VsZWN0b3I6OmlzQ3VzdG9t
UHNldWRvRWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fbWF0Y2ggPT0gUHNldWRvRWxlbWVu
dCAmJiAobV9wc2V1ZG9UeXBlID09IFBzZXVkb0VsZW1lbnRVc2VyQWdlbnRDdXN0b20gfHwgbV9w
c2V1ZG9UeXBlID09IFBzZXVkb0VsZW1lbnRXZWJLaXRDdXN0b20pOwogfQogCi1zdGF0aWMgaW5s
aW5lIGJvb2wgcHNldWRvQ2xhc3NJc1JlbGF0aXZlVG9TaWJsaW5ncyhDU1NTZWxlY3Rvcjo6UHNl
dWRvVHlwZSB0eXBlKQorc3RhdGljIGlubGluZSBib29sIHBzZXVkb0NsYXNzSXNSZWxhdGl2ZVRv
U2libGluZ3MoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSB0eXBlKQogewotICAgIHJldHVy
biB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbXB0eQotICAgICAgICB8fCB0eXBlID09IENT
U1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkCi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0ZpcnN0T2ZUeXBlCi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0xhc3RDaGlsZAotICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0
T2ZUeXBlCi0gICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlDaGlsZAot
ICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlCi0gICAgICAg
IHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkCi0gICAgICAgIHx8IHR5cGUg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZQotICAgICAgICB8fCB0eXBlID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9OdGhMYXN0Q2hpbGQKLSAgICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rv
cjo6UHNldWRvTnRoTGFzdE9mVHlwZTsKKyAgICByZXR1cm4gdHlwZSA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3NFbXB0eQorICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc0ZpcnN0Q2hpbGQKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NGaXJzdE9mVHlwZQorICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c0xhc3RDaGlsZAorICAgICAgICB8fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xh
c3RPZlR5cGUKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPbmx5
Q2hpbGQKKyAgICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPbmx5T2ZU
eXBlCisgICAgICAgIHx8IHR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoQ2hpbGQK
KyAgICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhPZlR5cGUKKyAg
ICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhMYXN0Q2hpbGQKKyAg
ICAgICAgfHwgdHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOdGhMYXN0T2ZUeXBlOwog
fQogCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6aXNTaWJsaW5nU2VsZWN0b3IoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3JlbGF0aW9uID09IERpcmVjdEFkamFjZW50CiAgICAgICAgIHx8IG1f
cmVsYXRpb24gPT0gSW5kaXJlY3RBZGphY2VudAotICAgICAgICB8fCAobV9tYXRjaCA9PSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3MgJiYgcHNldWRvQ2xhc3NJc1JlbGF0aXZlVG9TaWJsaW5ncyhw
c2V1ZG9UeXBlKCkpKTsKKyAgICAgICAgfHwgKG1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzICYmIHBzZXVkb0NsYXNzSXNSZWxhdGl2ZVRvU2libGluZ3MocHNldWRvQ2xhc3NUeXBl
KCkpKTsKIH0KIAogaW5saW5lIGJvb2wgQ1NTU2VsZWN0b3I6OmlzQXR0cmlidXRlU2VsZWN0b3Io
KSBjb25zdApAQCAtMzY5LDcgKzM3OCw3IEBAIGlubGluZSB2b2lkIENTU1NlbGVjdG9yOjpzZXRW
YWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQogaW5saW5lIENTU1NlbGVjdG9yOjpDU1NT
ZWxlY3RvcigpCiAgICAgOiBtX3JlbGF0aW9uKERlc2NlbmRhbnQpCiAgICAgLCBtX21hdGNoKFVu
a25vd24pCi0gICAgLCBtX3BzZXVkb1R5cGUoUHNldWRvVW5rbm93bikKKyAgICAsIG1fcHNldWRv
VHlwZSgwKQogICAgICwgbV9wYXJzZWROdGgoZmFsc2UpCiAgICAgLCBtX2lzTGFzdEluU2VsZWN0
b3JMaXN0KGZhbHNlKQogICAgICwgbV9pc0xhc3RJblRhZ0hpc3RvcnkodHJ1ZSkKQEAgLTM4Miw3
ICszOTEsNyBAQCBpbmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKCkKIGlubGluZSBDU1NT
ZWxlY3Rvcjo6Q1NTU2VsZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWUsIGJvb2wg
dGFnSXNGb3JOYW1lc3BhY2VSdWxlKQogICAgIDogbV9yZWxhdGlvbihEZXNjZW5kYW50KQogICAg
ICwgbV9tYXRjaChUYWcpCi0gICAgLCBtX3BzZXVkb1R5cGUoUHNldWRvVW5rbm93bikKKyAgICAs
IG1fcHNldWRvVHlwZSgwKQogICAgICwgbV9wYXJzZWROdGgoZmFsc2UpCiAgICAgLCBtX2lzTGFz
dEluU2VsZWN0b3JMaXN0KGZhbHNlKQogICAgICwgbV9pc0xhc3RJblRhZ0hpc3RvcnkodHJ1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCAxODg0YjZiOTA0YjQzNTM4NWYyZmMzMGIzZTZlMGMz
NWVhOTBhY2EzLi5mMzNmZDM3MzljYjI0ZDJiM2IzYjkwMDQyYjEwNTQ0ZGVjOGFjZDA3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xOTgsMTMgKzE5OCwxMyBAQCBib29sIFJ1bGVTZXQ6OmZp
bmRCZXN0UnVsZVNldEFuZEFkZChjb25zdCBDU1NTZWxlY3RvciogY29tcG9uZW50LCBSdWxlRGF0
YSYgcnVsZQogICAgIH0KICNlbmRpZgogICAgIGlmIChTZWxlY3RvckNoZWNrZXI6OmlzQ29tbW9u
UHNldWRvQ2xhc3NTZWxlY3Rvcihjb21wb25lbnQpKSB7Ci0gICAgICAgIHN3aXRjaCAoY29tcG9u
ZW50LT5wc2V1ZG9UeXBlKCkpIHsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGlu
azoKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKLSAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKKyAgICAgICAgc3dpdGNoIChjb21wb25lbnQt
PnBzZXVkb0NsYXNzVHlwZSgpKSB7CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzTGluazoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWaXNpdGVkOgor
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0FueUxpbms6CiAgICAgICAgICAg
ICBtX2xpbmtQc2V1ZG9DbGFzc1J1bGVzLmFwcGVuZChydWxlRGF0YSk7CiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRm9jdXM6CisgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICBtX2Zv
Y3VzUHNldWRvQ2xhc3NSdWxlcy5hcHBlbmQocnVsZURhdGEpOwogICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIGRlZmF1bHQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCmluZGV4IDZmMDllZDc0YTBhM2RmZGEzOGE2MmFkYWZhNWQ0YTdjNTBjZTI2NTUuLjhiY2Qz
NDM3MDBhNzg2NGU1MWY1ZjI4ZDkxZDNmNzU0NmRmOGUzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvckNoZWNrZXIuY3BwCkBAIC0zODUsNyArMzg1LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25z
dAogCiAgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
cykgewogICAgICAgICAvLyBIYW5kbGUgOm5vdCB1cCBmcm9udC4KLSAgICAgICAgaWYgKHNlbGVj
dG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb05vdCkgeworICAgICAgICBp
ZiAoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c05vdCkgewogICAgICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3Qg
PSBzZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCk7CiAKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBw
cm9iYWJseSBzaG91bGQgZml4IHRoZSBwYXJzZXIgYW5kIG1ha2UgaXQgbmV2ZXIgcHJvZHVjZSA6
bm90IHJ1bGVzIHdpdGggbWlzc2luZyBzZWxlY3RvciBsaXN0LgpAQCAtMzk5LDkgKzM5OSw5IEBA
IGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29u
dGV4dCYgY29udGV4dCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgLy8gOm5vdCBjYW5ub3Qg
bmVzdC4gSSBkb24ndCByZWFsbHkga25vdyB3aHkgdGhpcyBpcyBhCiAgICAgICAgICAgICAgICAg
ICAgIC8vIHJlc3RyaWN0aW9uIGluIENTUzMsIGJ1dCBpdCBpcywgc28gbGV0J3MgaG9ub3IgaXQu
CiAgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBwYXJzZXIgZW5mb3JjZXMgdGhhdCB0aGlzIG5l
dmVyIG9jY3VycwotICAgICAgICAgICAgICAgICAgICBBU1NFUlQoc3ViQ29udGV4dC5zZWxlY3Rv
ci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3QpOworICAgICAgICAgICAg
ICAgICAgICBBU1NFUlQoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgIT0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm90KTsKICAgICAgICAgICAgICAgICAgICAgLy8gV2Ug
c2VsZWN0IGJldHdlZW4gOnZpc2l0ZWQgYW5kIDpsaW5rIHdoZW4gYXBwbHlpbmcuIFdlIGRvbid0
IGtub3cgd2hpY2ggb25lIGFwcGxpZWQgKG9yIG5vdCkgeWV0LgotICAgICAgICAgICAgICAgICAg
ICBpZiAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvVHlwZSgpID09IENTU1NlbGVjdG9yOjpQ
c2V1ZG9WaXNpdGVkIHx8IChzdWJDb250ZXh0LnNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NT
U2VsZWN0b3I6OlBzZXVkb0xpbmsgJiYgc3ViQ29udGV4dC52aXNpdGVkTWF0Y2hUeXBlID09IFZp
c2l0ZWRNYXRjaEVuYWJsZWQpKQorICAgICAgICAgICAgICAgICAgICBpZiAoc3ViQ29udGV4dC5z
ZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmlz
aXRlZCB8fCAoc3ViQ29udGV4dC5zZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCkgPT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzTGluayAmJiBzdWJDb250ZXh0LnZpc2l0ZWRNYXRjaFR5cGUgPT0g
VmlzaXRlZE1hdGNoRW5hYmxlZCkpCiAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKCFjaGVja09uZShzdWJD
b250ZXh0KSkKQEAgLTQxMiwxNiArNDEyLDE2IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVj
a09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCkgY29uc3QKICAgICAg
ICAgICAgIC8vIChzaW5jZSB0aGVyZSBhcmUgbm8gZWxlbWVudHMgaW52b2x2ZWQpLgogICAgICAg
ICAgICAgcmV0dXJuIGNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoY29udGV4dCwgJmVsZW1lbnQt
PmRvY3VtZW50KCksIHNlbGVjdG9yKTsKICAgICAgICAgfSBlbHNlIGlmIChjb250ZXh0Lmhhc1Nl
bGVjdGlvblBzZXVkbykgewotICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkg
PT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlKQorICAgICAgICAgICAgaWYgKHNl
bGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NXaW5k
b3dJbmFjdGl2ZSkKICAgICAgICAgICAgICAgICByZXR1cm4gIWVsZW1lbnQtPmRvY3VtZW50KCku
cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5pc0FjdGl2ZSgpOwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gTm9ybWFsIGVsZW1lbnQgcHNldWRvIGNsYXNzIGNoZWNraW5nLgotICAgICAgICBzd2l0
Y2ggKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICAgICAgc3dpdGNoIChzZWxlY3Rvci0+
cHNldWRvQ2xhc3NUeXBlKCkpIHsKICAgICAgICAgICAgIC8vIFBzZXVkbyBjbGFzc2VzOgotICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzTm90OgogICAgICAgICAgICAgYnJlYWs7IC8vIEFscmVhZHkgaGFuZGxl
ZCB1cCBhYm92ZS4KLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6CisgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRW1wdHk6CiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSB0cnVlOwogICAgICAgICAgICAgICAgIGZvciAo
Tm9kZSogbiA9IGVsZW1lbnQtPmZpcnN0Q2hpbGQoKTsgbjsgbiA9IG4tPm5leHRTaWJsaW5nKCkp
IHsKQEAgLTQ0Niw3ICs0NDYsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29u
c3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6CisgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzRmlyc3RDaGlsZDoKICAgICAgICAgICAgIC8vIGZpcnN0LWNo
aWxkIG1hdGNoZXMgdGhlIGZpcnN0IGNoaWxkIHRoYXQgaXMgYW4gZWxlbWVudAogICAgICAgICAg
ICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBlbGVtZW50LT5wYXJlbnRFbGVtZW50KCkp
IHsKICAgICAgICAgICAgICAgICBib29sIHJlc3VsdCA9IGlzRmlyc3RDaGlsZEVsZW1lbnQoZWxl
bWVudCk7CkBAIC00NTksNyArNDU5LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25l
KGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RPZlR5cGU6CisgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRmlyc3RPZlR5cGU6CiAgICAgICAgICAgICAvLyBm
aXJzdC1vZi10eXBlIG1hdGNoZXMgdGhlIGZpcnN0IGVsZW1lbnQgb2YgaXRzIHR5cGUKICAgICAg
ICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVudC0+cGFyZW50RWxlbWVu
dCgpKSB7CiAgICAgICAgICAgICAgICAgYm9vbCByZXN1bHQgPSBpc0ZpcnN0T2ZUeXBlKGVsZW1l
bnQsIGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwpAQCAtNDY4LDcgKzQ2OCw3IEBAIGJvb2wgU2VsZWN0
b3JDaGVja2VyOjpjaGVja09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4
dCkgY29uc3QKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RD
aGlsZDoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYXN0Q2hpbGQ6CiAg
ICAgICAgICAgICAvLyBsYXN0LWNoaWxkIG1hdGNoZXMgdGhlIGxhc3QgY2hpbGQgdGhhdCBpcyBh
biBlbGVtZW50CiAgICAgICAgICAgICBpZiAoRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSkgewogICAgICAgICAgICAgICAgIGJvb2wgcmVzdWx0ID0gcGFy
ZW50RWxlbWVudC0+aXNGaW5pc2hlZFBhcnNpbmdDaGlsZHJlbigpICYmIGlzTGFzdENoaWxkRWxl
bWVudChlbGVtZW50KTsKQEAgLTQ4MSw3ICs0ODEsNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0T2ZUeXBlOgorICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xhc3RPZlR5cGU6CiAgICAgICAgICAg
ICAvLyBsYXN0LW9mLXR5cGUgbWF0Y2hlcyB0aGUgbGFzdCBlbGVtZW50IG9mIGl0cyB0eXBlCiAg
ICAgICAgICAgICBpZiAoRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1lbnQtPnBhcmVudEVs
ZW1lbnQoKSkgewogICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0gUmVzb2x2aW5nU3R5bGUp
CkBAIC00OTEsNyArNDkxLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0
IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAgICAgICAg
IHJldHVybiBpc0xhc3RPZlR5cGUoZWxlbWVudCwgZWxlbWVudC0+dGFnUU5hbWUoKSk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvT25seUNoaWxkOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc09u
bHlDaGlsZDoKICAgICAgICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxlbWVu
dC0+cGFyZW50RWxlbWVudCgpKSB7CiAgICAgICAgICAgICAgICAgYm9vbCBmaXJzdENoaWxkID0g
aXNGaXJzdENoaWxkRWxlbWVudChlbGVtZW50KTsKICAgICAgICAgICAgICAgICBib29sIG9ubHlD
aGlsZCA9IGZpcnN0Q2hpbGQgJiYgcGFyZW50RWxlbWVudC0+aXNGaW5pc2hlZFBhcnNpbmdDaGls
ZHJlbigpICYmIGlzTGFzdENoaWxkRWxlbWVudChlbGVtZW50KTsKQEAgLTUwNyw3ICs1MDcsNyBA
QCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0Nv
bnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJuIG9ubHlDaGlsZDsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9Pbmx5T2ZUeXBlOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc09ubHlPZlR5cGU6CiAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzZWxlY3RvciBpcyB2
ZXJ5IHNsb3cuCiAgICAgICAgICAgICBpZiAoRWxlbWVudCogcGFyZW50RWxlbWVudCA9IGVsZW1l
bnQtPnBhcmVudEVsZW1lbnQoKSkgewogICAgICAgICAgICAgICAgIGlmIChtX21vZGUgPT0gUmVz
b2x2aW5nU3R5bGUpIHsKQEAgLTUxOSw3ICs1MTksNyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6
Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAg
ICAgICAgICAgICAgICAgcmV0dXJuIGlzRmlyc3RPZlR5cGUoZWxlbWVudCwgZWxlbWVudC0+dGFn
UU5hbWUoKSkgJiYgaXNMYXN0T2ZUeXBlKGVsZW1lbnQsIGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb050aENoaWxkOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c050aENoaWxkOgogICAgICAgICAgICAgaWYgKCFzZWxlY3Rvci0+cGFyc2VOdGgoKSkKICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50
ID0gZWxlbWVudC0+cGFyZW50RWxlbWVudCgpKSB7CkBAIC01MzYsNyArNTM2LDcgQEAgYm9vbCBT
ZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBj
b250ZXh0KSBjb25zdAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9OdGhPZlR5cGU6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoT2ZU
eXBlOgogICAgICAgICAgICAgaWYgKCFzZWxlY3Rvci0+cGFyc2VOdGgoKSkKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpKSB7CkBAIC01NDgsNyArNTQ4LDcgQEAgYm9vbCBTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0
KSBjb25zdAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhM
YXN0Q2hpbGQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTnRoTGFzdENo
aWxkOgogICAgICAgICAgICAgaWYgKCFzZWxlY3Rvci0+cGFyc2VOdGgoKSkKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIGlmIChFbGVtZW50KiBwYXJlbnRFbGVtZW50ID0gZWxl
bWVudC0+cGFyZW50RWxlbWVudCgpKSB7CkBAIC01NjEsNyArNTYxLDcgQEAgYm9vbCBTZWxlY3Rv
ckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjb250ZXh0
KSBjb25zdAogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhM
YXN0T2ZUeXBlOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc050aExhc3RP
ZlR5cGU6CiAgICAgICAgICAgICBpZiAoIXNlbGVjdG9yLT5wYXJzZU50aCgpKQogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgaWYgKEVsZW1lbnQqIHBhcmVudEVsZW1lbnQgPSBl
bGVtZW50LT5wYXJlbnRFbGVtZW50KCkpIHsKQEAgLTU3NSwxMSArNTc1LDExIEBAIGJvb2wgU2Vs
ZWN0b3JDaGVja2VyOjpjaGVja09uZShjb25zdCBTZWxlY3RvckNoZWNraW5nQ29udGV4dCYgY29u
dGV4dCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
VGFyZ2V0OgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1RhcmdldDoKICAg
ICAgICAgICAgIGlmIChlbGVtZW50ID09IGVsZW1lbnQtPmRvY3VtZW50KCkuY3NzVGFyZ2V0KCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55OgorICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0FueToKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICBTZWxlY3Rv
ckNoZWNraW5nQ29udGV4dCBzdWJDb250ZXh0KGNvbnRleHQpOwogICAgICAgICAgICAgICAgIHN1
YkNvbnRleHQuaXNTdWJTZWxlY3RvciA9IHRydWU7CkBAIC01OTAsMTYgKzU5MCwxNiBAQCBib29s
IFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQm
IGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0F1dG9maWxsOgor
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0F1dG9maWxsOgogICAgICAgICAg
ICAgcmV0dXJuIGlzQXV0b2ZpbGxlZChlbGVtZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQW55TGluazoKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoK
KyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnlMaW5rOgorICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xpbms6CiAgICAgICAgICAgICAvLyA6dmlzaXRl
ZCBhbmQgOmxpbmsgbWF0Y2hlcyBhcmUgc2VwYXJhdGVkIGxhdGVyIHdoZW4gYXBwbHlpbmcgdGhl
IHN0eWxlLiBIZXJlIGJvdGggY2xhc3NlcyBtYXRjaCBhbGwgbGlua3MuLi4KICAgICAgICAgICAg
IHJldHVybiBlbGVtZW50LT5pc0xpbmsoKTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvVmlzaXRlZDoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWaXNpdGVk
OgogICAgICAgICAgICAgLy8gLi4uZXhjZXB0IGlmIDp2aXNpdGVkIG1hdGNoaW5nIGlzIGRpc2Fi
bGVkIGZvciBhbmNlc3Rvci9zaWJsaW5nIG1hdGNoaW5nLgogICAgICAgICAgICAgcmV0dXJuIGVs
ZW1lbnQtPmlzTGluaygpICYmIGNvbnRleHQudmlzaXRlZE1hdGNoVHlwZSA9PSBWaXNpdGVkTWF0
Y2hFbmFibGVkOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgorICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RyYWc6CiAgICAgICAgICAgICBpZiAobV9t
b2RlID09IFJlc29sdmluZ1N0eWxlKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNvbnRleHQuZWxl
bWVudFN0eWxlKQogICAgICAgICAgICAgICAgICAgICBjb250ZXh0LmVsZW1lbnRTdHlsZS0+c2V0
QWZmZWN0ZWRCeURyYWcoKTsKQEAgLTYwOSw5ICs2MDksOSBAQCBib29sIFNlbGVjdG9yQ2hlY2tl
cjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0
CiAgICAgICAgICAgICBpZiAoZWxlbWVudC0+cmVuZGVyZXIoKSAmJiBlbGVtZW50LT5yZW5kZXJl
cigpLT5pc0RyYWdnaW5nKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRm9jdXM6CisgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgICAgICByZXR1
cm4gbWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MoZWxlbWVudCk7Ci0gICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0hvdmVyOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c0hvdmVyOgogICAgICAgICAgICAgLy8gSWYgd2UncmUgaW4gcXVpcmtzIG1vZGUsIHRoZW4gaG92
ZXIgc2hvdWxkIG5ldmVyIG1hdGNoIGFuY2hvcnMgd2l0aCBubwogICAgICAgICAgICAgLy8gaHJl
ZiBhbmQgKjpob3ZlciBzaG91bGQgbm90IG1hdGNoIGFueXRoaW5nLiBUaGlzIGlzIGltcG9ydGFu
dCBmb3Igc2l0ZXMgbGlrZSB3c2ouY29tLgogICAgICAgICAgICAgaWYgKG1fc3RyaWN0UGFyc2lu
ZyB8fCBjb250ZXh0LmlzU3ViU2VsZWN0b3IgfHwgZWxlbWVudC0+aXNMaW5rKCkpIHsKQEAgLTYy
MSwxMSArNjIxLDExIEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja09uZShjb25zdCBTZWxl
Y3RvckNoZWNraW5nQ29udGV4dCYgY29udGV4dCkgY29uc3QKICAgICAgICAgICAgICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudC0+c2V0Q2hpbGRyZW5BZmZlY3Rl
ZEJ5SG92ZXIoKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1l
bnQtPmhvdmVyZWQoKSB8fCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmZvcmNlUHNldWRvU3Rh
dGUoZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvdmVyKSkKKyAgICAgICAgICAgICAgICBp
ZiAoZWxlbWVudC0+aG92ZXJlZCgpIHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQ
c2V1ZG9TdGF0ZShlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NIb3ZlcikpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKKyAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBY3RpdmU6CiAgICAgICAgICAgICAvLyBJZiB3
ZSdyZSBpbiBxdWlya3MgbW9kZSwgdGhlbiA6YWN0aXZlIHNob3VsZCBuZXZlciBtYXRjaCBhbmNo
b3JzIHdpdGggbm8KICAgICAgICAgICAgIC8vIGhyZWYgYW5kICo6YWN0aXZlIHNob3VsZCBub3Qg
bWF0Y2ggYW55dGhpbmcuCiAgICAgICAgICAgICBpZiAobV9zdHJpY3RQYXJzaW5nIHx8IGNvbnRl
eHQuaXNTdWJTZWxlY3RvciB8fCBlbGVtZW50LT5pc0xpbmsoKSkgewpAQCAtNjM1LDM5ICs2MzUs
MzkgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tp
bmdDb250ZXh0JiBjb250ZXh0KSBjb25zdAogICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICAgICAgICAgICBlbGVtZW50LT5zZXRDaGlsZHJlbkFmZmVjdGVkQnlBY3RpdmUo
KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQtPmFjdGl2
ZSgpIHx8IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShlbGVtZW50
LCBDU1NTZWxlY3Rvcjo6UHNldWRvQWN0aXZlKSkKKyAgICAgICAgICAgICAgICBpZiAoZWxlbWVu
dC0+YWN0aXZlKCkgfHwgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRl
KGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0FjdGl2ZSkpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzRW5hYmxlZDoKICAgICAgICAgICAgIHJldHVybiBpc0VuYWJs
ZWQoZWxlbWVudCk7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxQYWdlTWVk
aWE6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRnVsbFBhZ2VNZWRpYToK
ICAgICAgICAgICAgIHJldHVybiBlbGVtZW50LT5kb2N1bWVudCgpLmlzTWVkaWFEb2N1bWVudCgp
OwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgorICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gaXNE
ZWZhdWx0QnV0dG9uRm9yRm9ybShlbGVtZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRGlzYWJsZWQ6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRGlz
YWJsZWQ6CiAgICAgICAgICAgICByZXR1cm4gaXNEaXNhYmxlZChlbGVtZW50KTsKLSAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZE9ubHk6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzUmVhZE9ubHk6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1JlYWRP
bmx5UHNldWRvQ2xhc3MoZWxlbWVudCk7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1JlYWRXcml0ZToKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NSZWFkV3Jp
dGU6CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKGVsZW1l
bnQpOwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9PcHRpb25hbDoKKyAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPcHRpb25hbDoKICAgICAgICAgICAgIHJldHVy
biBpc09wdGlvbmFsRm9ybUNvbnRyb2woZWxlbWVudCk7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1JlcXVpcmVkOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c1JlcXVpcmVkOgogICAgICAgICAgICAgcmV0dXJuIGlzUmVxdWlyZWRGb3JtQ29udHJvbChlbGVt
ZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6CisgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmFsaWQ6CiAgICAgICAgICAgICByZXR1cm4gaXNW
YWxpZChlbGVtZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDoK
KyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJbnZhbGlkOgogICAgICAgICAg
ICAgcmV0dXJuIGlzSW52YWxpZChlbGVtZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2hlY2tlZDoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NDaGVj
a2VkOgogICAgICAgICAgICAgcmV0dXJuIGlzQ2hlY2tlZChlbGVtZW50KTsKLSAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1pbmF0ZToKKyAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3NJbmRldGVybWluYXRlOgogICAgICAgICAgICAgcmV0dXJuIHNob3Vs
ZEFwcGVhckluZGV0ZXJtaW5hdGUoZWxlbWVudCk7Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Jvb3Q6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzUm9vdDoK
ICAgICAgICAgICAgIGlmIChlbGVtZW50ID09IGVsZW1lbnQtPmRvY3VtZW50KCkuZG9jdW1lbnRF
bGVtZW50KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoKKyAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMYW5nOgogICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIEF0b21pY1N0cmluZyB2YWx1ZTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC02ODQs
MzUgKzY4NCwzNSBAQCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tPbmUoY29uc3QgU2VsZWN0
b3JDaGVja2luZ0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgorICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc0Z1bGxTY3JlZW46CiAgICAgICAgICAgICByZXR1cm4gbWF0Y2hl
c0Z1bGxTY3JlZW5Qc2V1ZG9DbGFzcyhlbGVtZW50KTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246CisgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246CiAgICAg
ICAgICAgICBpZiAoZWxlbWVudCAhPSBlbGVtZW50LT5kb2N1bWVudCgpLndlYmtpdEN1cnJlbnRG
dWxsU2NyZWVuRWxlbWVudCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50LT5kb2N1bWVudCgpLmlzQW5pbWF0aW5nRnVsbFNjcmVlbigp
OwotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuQW5jZXN0b3I6Cisg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRnVsbFNjcmVlbkFuY2VzdG9yOgog
ICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmNvbnRhaW5zRnVsbFNjcmVlbkVsZW1lbnQoKTsK
LSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbkRvY3VtZW50OgorICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Z1bGxTY3JlZW5Eb2N1bWVudDoKICAg
ICAgICAgICAgIC8vIFdoaWxlIGEgRG9jdW1lbnQgaXMgaW4gdGhlIGZ1bGxzY3JlZW4gc3RhdGUs
IHRoZSAnZnVsbC1zY3JlZW4tZG9jdW1lbnQnIHBzZXVkb2NsYXNzIGFwcGxpZXMKICAgICAgICAg
ICAgIC8vIHRvIGFsbCBlbGVtZW50cyBvZiB0aGF0IERvY3VtZW50LgogICAgICAgICAgICAgaWYg
KCFlbGVtZW50LT5kb2N1bWVudCgpLndlYmtpdElzRnVsbFNjcmVlbigpKQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCi0gICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2U6CisgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzSW5SYW5nZToKICAgICAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50
KCkuc2V0Q29udGFpbnNWYWxpZGl0eVN0eWxlUnVsZXMoKTsKICAgICAgICAgICAgIHJldHVybiBl
bGVtZW50LT5pc0luUmFuZ2UoKTsKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT3V0
T2ZSYW5nZToKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NPdXRPZlJhbmdl
OgogICAgICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS5zZXRDb250YWluc1ZhbGlkaXR5U3R5
bGVSdWxlcygpOwogICAgICAgICAgICAgcmV0dXJuIGVsZW1lbnQtPmlzT3V0T2ZSYW5nZSgpOwog
I2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
RnV0dXJlOgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0Z1dHVyZToKICAg
ICAgICAgICAgIHJldHVybiBtYXRjaGVzRnV0dXJlQ3VlUHNldWRvQ2xhc3MoZWxlbWVudCk7Ci0g
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3Q6CisgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzUGFzdDoKICAgICAgICAgICAgIHJldHVybiBtYXRjaGVzUGFzdEN1
ZVBzZXVkb0NsYXNzKGVsZW1lbnQpOwogI2VuZGlmCiAKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvU2NvcGU6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzU2Nv
cGU6CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgY29uc3QgTm9kZSogY29udGV4dHVh
bFJlZmVyZW5jZU5vZGUgPSAhY29udGV4dC5zY29wZSA/IGVsZW1lbnQtPmRvY3VtZW50KCkuZG9j
dW1lbnRFbGVtZW50KCkgOiBjb250ZXh0LnNjb3BlOwogICAgICAgICAgICAgICAgIGlmIChlbGVt
ZW50ID09IGNvbnRleHR1YWxSZWZlcmVuY2VOb2RlKQpAQCAtNzIwLDE5ICs3MjAsMTkgQEAgYm9v
bCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrT25lKGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0
JiBjb250ZXh0KSBjb25zdAogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6Ci0gICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1ZlcnRpY2FsOgotICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9EZWNyZW1lbnQ6Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3Jl
bWVudDoKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU3RhcnQ6Ci0gICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuZDoKLSAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRG91YmxlQnV0dG9uOgotICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TaW5nbGVC
dXR0b246Ci0gICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgotICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Db3JuZXJQcmVzZW50OgorICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hvcml6b250YWw6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzVmVydGljYWw6CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzRGVjcmVtZW50OgorICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0lu
Y3JlbWVudDoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NTdGFydDoKKyAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NFbmQ6CisgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzRG91YmxlQnV0dG9uOgorICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc1NpbmdsZUJ1dHRvbjoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3NOb0J1dHRvbjoKKyAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NDb3JuZXJQcmVzZW50OgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd246CisgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzVW5rbm93bjoKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgYnJlYWs7CkBAIC03NjYsMTggKzc2NiwxOCBA
QCBib29sIFNlbGVjdG9yQ2hlY2tlcjo6Y2hlY2tTY3JvbGxiYXJQc2V1ZG9DbGFzcyhjb25zdCBT
ZWxlY3RvckNoZWNraW5nQ29udGV4dCYgYwogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSB0ZW1w
b3JhcnkgaGFjayBmb3IgcmVzaXplcnMgYW5kIHNjcm9sbGJhciBjb3JuZXJzLiBFdmVudHVhbGx5
IDp3aW5kb3ctaW5hY3RpdmUgc2hvdWxkIGJlY29tZSBhIHJlYWwKICAgICAvLyBwc2V1ZG8gY2xh
c3MgYW5kIGp1c3QgYXBwbHkgdG8gZXZlcnl0aGluZy4KLSAgICBpZiAoc2VsZWN0b3ItPnBzZXVk
b1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvV2luZG93SW5hY3RpdmUpCisgICAgaWYgKHNl
bGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NXaW5k
b3dJbmFjdGl2ZSkKICAgICAgICAgcmV0dXJuICFkb2N1bWVudC0+cGFnZSgpLT5mb2N1c0NvbnRy
b2xsZXIoKS5pc0FjdGl2ZSgpOwogCiAgICAgaWYgKCFzY3JvbGxiYXIpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHN3aXRjaCAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNl
dWRvQ2xhc3NUeXBlKCkpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0VuYWJs
ZWQ6CiAgICAgICAgIHJldHVybiBzY3JvbGxiYXItPmVuYWJsZWQoKTsKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9EaXNhYmxlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c0Rpc2FibGVkOgogICAgICAgICByZXR1cm4gIXNjcm9sbGJhci0+ZW5hYmxlZCgpOwotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvdmVyOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzSG92ZXI6CiAgICAgICAgIHsKICAgICAgICAgICAgIFNjcm9sbGJhclBhcnQgaG92ZXJl
ZFBhcnQgPSBzY3JvbGxiYXItPmhvdmVyZWRQYXJ0KCk7CiAgICAgICAgICAgICBpZiAocGFydCA9
PSBTY3JvbGxiYXJCR1BhcnQpCkBAIC03ODYsNyArNzg2LDcgQEAgYm9vbCBTZWxlY3RvckNoZWNr
ZXI6OmNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRl
eHQmIGMKICAgICAgICAgICAgICAgICByZXR1cm4gaG92ZXJlZFBhcnQgPT0gQmFja1RyYWNrUGFy
dCB8fCBob3ZlcmVkUGFydCA9PSBGb3J3YXJkVHJhY2tQYXJ0IHx8IGhvdmVyZWRQYXJ0ID09IFRo
dW1iUGFydDsKICAgICAgICAgICAgIHJldHVybiBwYXJ0ID09IGhvdmVyZWRQYXJ0OwogICAgICAg
ICB9Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWN0aXZlOgorICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzQWN0aXZlOgogICAgICAgICB7CiAgICAgICAgICAgICBTY3JvbGxi
YXJQYXJ0IHByZXNzZWRQYXJ0ID0gc2Nyb2xsYmFyLT5wcmVzc2VkUGFydCgpOwogICAgICAgICAg
ICAgaWYgKHBhcnQgPT0gU2Nyb2xsYmFyQkdQYXJ0KQpAQCAtNzk1LDE5ICs3OTUsMTkgQEAgYm9v
bCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2Nyb2xsYmFyUHNldWRvQ2xhc3MoY29uc3QgU2VsZWN0
b3JDaGVja2luZ0NvbnRleHQmIGMKICAgICAgICAgICAgICAgICByZXR1cm4gcHJlc3NlZFBhcnQg
PT0gQmFja1RyYWNrUGFydCB8fCBwcmVzc2VkUGFydCA9PSBGb3J3YXJkVHJhY2tQYXJ0IHx8IHBy
ZXNzZWRQYXJ0ID09IFRodW1iUGFydDsKICAgICAgICAgICAgIHJldHVybiBwYXJ0ID09IHByZXNz
ZWRQYXJ0OwogICAgICAgICB9Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSG9yaXpvbnRh
bDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hvcml6b250YWw6CiAgICAgICAg
IHJldHVybiBzY3JvbGxiYXItPm9yaWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhcjsK
LSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WZXJ0aWNhbDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc1ZlcnRpY2FsOgogICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLT5vcmll
bnRhdGlvbigpID09IFZlcnRpY2FsU2Nyb2xsYmFyOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0RlY3JlbWVudDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0RlY3JlbWVu
dDoKICAgICAgICAgcmV0dXJuIHBhcnQgPT0gQmFja0J1dHRvblN0YXJ0UGFydCB8fCBwYXJ0ID09
IEJhY2tCdXR0b25FbmRQYXJ0IHx8IHBhcnQgPT0gQmFja1RyYWNrUGFydDsKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9JbmNyZW1lbnQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NJbmNyZW1lbnQ6CiAgICAgICAgIHJldHVybiBwYXJ0ID09IEZvcndhcmRCdXR0b25TdGFy
dFBhcnQgfHwgcGFydCA9PSBGb3J3YXJkQnV0dG9uRW5kUGFydCB8fCBwYXJ0ID09IEZvcndhcmRU
cmFja1BhcnQ7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU3RhcnQ6CisgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NTdGFydDoKICAgICAgICAgcmV0dXJuIHBhcnQgPT0gQmFj
a0J1dHRvblN0YXJ0UGFydCB8fCBwYXJ0ID09IEZvcndhcmRCdXR0b25TdGFydFBhcnQgfHwgcGFy
dCA9PSBCYWNrVHJhY2tQYXJ0OwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuZDoKKyAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0VuZDoKICAgICAgICAgcmV0dXJuIHBhcnQg
PT0gQmFja0J1dHRvbkVuZFBhcnQgfHwgcGFydCA9PSBGb3J3YXJkQnV0dG9uRW5kUGFydCB8fCBw
YXJ0ID09IEZvcndhcmRUcmFja1BhcnQ7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRG91
YmxlQnV0dG9uOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRG91YmxlQnV0dG9u
OgogICAgICAgICB7CiAgICAgICAgICAgICBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRv
bnNQbGFjZW1lbnQgPSBzY3JvbGxiYXItPnRoZW1lKCktPmJ1dHRvbnNQbGFjZW1lbnQoKTsKICAg
ICAgICAgICAgIGlmIChwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgfHwgcGFydCA9PSBGb3J3
YXJkQnV0dG9uU3RhcnRQYXJ0IHx8IHBhcnQgPT0gQmFja1RyYWNrUGFydCkKQEAgLTgxNiwxNCAr
ODE2LDE0IEBAIGJvb2wgU2VsZWN0b3JDaGVja2VyOjpjaGVja1Njcm9sbGJhclBzZXVkb0NsYXNz
KGNvbnN0IFNlbGVjdG9yQ2hlY2tpbmdDb250ZXh0JiBjCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGJ1dHRvbnNQbGFjZW1lbnQgPT0gU2Nyb2xsYmFyQnV0dG9uc0RvdWJsZUVuZCB8fCBidXR0b25z
UGxhY2VtZW50ID09IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVCb3RoOwogICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgICAgICB9Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xl
QnV0dG9uOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzU2luZ2xlQnV0dG9uOgog
ICAgICAgICB7CiAgICAgICAgICAgICBTY3JvbGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRvbnNQ
bGFjZW1lbnQgPSBzY3JvbGxiYXItPnRoZW1lKCktPmJ1dHRvbnNQbGFjZW1lbnQoKTsKICAgICAg
ICAgICAgIGlmIChwYXJ0ID09IEJhY2tCdXR0b25TdGFydFBhcnQgfHwgcGFydCA9PSBGb3J3YXJk
QnV0dG9uRW5kUGFydCB8fCBwYXJ0ID09IEJhY2tUcmFja1BhcnQgfHwgcGFydCA9PSBGb3J3YXJk
VHJhY2tQYXJ0KQogICAgICAgICAgICAgICAgIHJldHVybiBidXR0b25zUGxhY2VtZW50ID09IFNj
cm9sbGJhckJ1dHRvbnNTaW5nbGU7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc05vQnV0dG9uOgogICAgICAgICB7CiAgICAgICAgICAgICBTY3Jv
bGxiYXJCdXR0b25zUGxhY2VtZW50IGJ1dHRvbnNQbGFjZW1lbnQgPSBzY3JvbGxiYXItPnRoZW1l
KCktPmJ1dHRvbnNQbGFjZW1lbnQoKTsKICAgICAgICAgICAgIGlmIChwYXJ0ID09IEJhY2tUcmFj
a1BhcnQpCkBAIC04MzIsNyArODMyLDcgQEAgYm9vbCBTZWxlY3RvckNoZWNrZXI6OmNoZWNrU2Ny
b2xsYmFyUHNldWRvQ2xhc3MoY29uc3QgU2VsZWN0b3JDaGVja2luZ0NvbnRleHQmIGMKICAgICAg
ICAgICAgICAgICByZXR1cm4gYnV0dG9uc1BsYWNlbWVudCA9PSBTY3JvbGxiYXJCdXR0b25zTm9u
ZSB8fCBidXR0b25zUGxhY2VtZW50ID09IFNjcm9sbGJhckJ1dHRvbnNEb3VibGVTdGFydDsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0Nvcm5lclByZXNlbnQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3ND
b3JuZXJQcmVzZW50OgogICAgICAgICByZXR1cm4gc2Nyb2xsYmFyLT5zY3JvbGxhYmxlQXJlYSgp
LT5pc1Njcm9sbENvcm5lclZpc2libGUoKTsKICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4g
ZmFsc2U7CkBAIC04NDcsOCArODQ3LDggQEAgdW5zaWduZWQgU2VsZWN0b3JDaGVja2VyOjpkZXRl
cm1pbmVMaW5rTWF0Y2hUeXBlKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKICAgICAvLyA6
dmlzaXRlZCBuZXZlciBtYXRjaGVzIG90aGVyIGVsZW1lbnRzIHRoYW4gdGhlIGlubmVybW9zdCBs
aW5rIGVsZW1lbnQuCiAgICAgZm9yICg7IHNlbGVjdG9yOyBzZWxlY3RvciA9IHNlbGVjdG9yLT50
YWdIaXN0b3J5KCkpIHsKICAgICAgICAgaWYgKHNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzcykgewotICAgICAgICAgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNldWRv
VHlwZSgpKSB7Ci0gICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6CisgICAg
ICAgICAgICBzd2l0Y2ggKHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSkgeworICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NOb3Q6CiAgICAgICAgICAgICAgICAgewog
ICAgICAgICAgICAgICAgICAgICAvLyA6bm90KDp2aXNpdGVkKSBpcyBlcXVpdmFsZW50IHRvIDps
aW5rLiBQYXJzZXIgZW5mb3JjZXMgdGhhdCA6bm90IGNhbid0IG5lc3QuCiAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IENTU1NlbGVjdG9yTGlzdCogc2VsZWN0b3JMaXN0ID0gc2VsZWN0b3ItPnNl
bGVjdG9yTGlzdCgpOwpAQCAtODU3LDE5ICs4NTcsMTkgQEAgdW5zaWduZWQgU2VsZWN0b3JDaGVj
a2VyOjpkZXRlcm1pbmVMaW5rTWF0Y2hUeXBlKGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikK
IAogICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IENTU1NlbGVjdG9yKiBzdWJTZWxlY3Rv
ciA9IHNlbGVjdG9yTGlzdC0+Zmlyc3QoKTsgc3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yID0gc3Vi
U2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1
YlNlbGVjdG9yLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcykgewotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHN1YlR5cGUgPSBz
dWJTZWxlY3Rvci0+cHNldWRvVHlwZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlm
IChzdWJUeXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgc3ViVHlwZSA9IHN1YlNl
bGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
ZiAoc3ViVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NWaXNpdGVkKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBsaW5rTWF0Y2hUeXBlICY9IH5TZWxlY3RvckNoZWNrZXI6
Ok1hdGNoVmlzaXRlZDsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGlmIChzdWJU
eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVsc2UgaWYgKHN1YlR5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGluaykKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlua01hdGNoVHlwZSAmPSB+U2VsZWN0b3JD
aGVja2VyOjpNYXRjaExpbms7CiAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rOgorICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMaW5rOgogICAgICAgICAgICAgICAgIGxpbmtNYXRj
aFR5cGUgJj0gflNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwogICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmlzaXRlZDoKICAgICAgICAg
ICAgICAgICBsaW5rTWF0Y2hUeXBlICY9IH5TZWxlY3RvckNoZWNrZXI6Ok1hdGNoTGluazsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIGRlZmF1bHQ6CkBAIC04OTUsNyArODk1
LDcgQEAgc3RhdGljIGJvb2wgaXNGcmFtZUZvY3VzZWQoY29uc3QgRWxlbWVudCogZWxlbWVudCkK
IAogYm9vbCBTZWxlY3RvckNoZWNrZXI6Om1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKGNvbnN0IEVs
ZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgaWYgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9y
Y2VQc2V1ZG9TdGF0ZShjb25zdF9jYXN0PEVsZW1lbnQqPihlbGVtZW50KSwgQ1NTU2VsZWN0b3I6
OlBzZXVkb0ZvY3VzKSkKKyAgICBpZiAoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBz
ZXVkb1N0YXRlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpLCBDU1NTZWxlY3Rvcjo6UHNl
dWRvQ2xhc3NGb2N1cykpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIHJldHVybiBlbGVtZW50
LT5mb2N1c2VkKCkgJiYgaXNGcmFtZUZvY3VzZWQoZWxlbWVudCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U2VsZWN0b3JDaGVja2VyLmgKaW5kZXggMDlhYTY5MDQ0MjdlZDY4NjFmYTIyZTMzYzdlMDRkNjg2
MjQ2NGFmNi4uYWZhOTYyZjlmM2UyYzliMDM4NTI4YzVlMmIyNGM1MmJmYjVhZTUwNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvckNoZWNrZXIuaApAQCAtMTA4LDExICsxMDgsMTEgQEAgaW5saW5l
IGJvb2wgU2VsZWN0b3JDaGVja2VyOjppc0NvbW1vblBzZXVkb0NsYXNzU2VsZWN0b3IoY29uc3Qg
Q1NTU2VsZWN0b3IqIHNlbGUKIHsKICAgICBpZiAoc2VsZWN0b3ItPm1fbWF0Y2ggIT0gQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgQ1NTU2VsZWN0
b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCk7Ci0gICAg
cmV0dXJuIHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbmsKLSAgICAgICAgfHwg
cHNldWRvVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluawotICAgICAgICB8fCBwc2V1
ZG9UeXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkCi0gICAgICAgIHx8IHBzZXVkb1R5
cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0ZvY3VzOworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1R5cGUgcHNldWRvVHlwZSA9IHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKTsKKyAgICBy
ZXR1cm4gcHNldWRvVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMaW5rCisgICAgICAg
IHx8IHBzZXVkb1R5cGUgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQW55TGluaworICAgICAg
ICB8fCBwc2V1ZG9UeXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Zpc2l0ZWQKKyAgICAg
ICAgfHwgcHNldWRvVHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czsKIH0KIAog
aW5saW5lIGJvb2wgU2VsZWN0b3JDaGVja2VyOjp0YWdNYXRjaGVzKGNvbnN0IEVsZW1lbnQqIGVs
ZW1lbnQsIGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ1FOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlckZhc3RQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvckNoZWNrZXJGYXN0UGF0aC5jcHAKaW5kZXggYmRjNTE0NGFkMzExZDRlNThj
NzU4YTU1ZDlkNTU5NDBjYWE2YTc5Ny4uNWY2MDVkNGQ0ZTA4MmY5ZGQyOTkzNGY0MmI2MDkxZjQz
NjQxODMzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yQ2hlY2tlckZh
c3RQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JDaGVja2VyRmFzdFBh
dGguY3BwCkBAIC0yMDYsMTMgKzIwNiwxMyBAQCBib29sIFNlbGVjdG9yQ2hlY2tlckZhc3RQYXRo
OjpjYW5Vc2UoY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQogYm9vbCBTZWxlY3RvckNoZWNr
ZXJGYXN0UGF0aDo6Y29tbW9uUHNldWRvQ2xhc3NTZWxlY3Rvck1hdGNoZXMoU2VsZWN0b3JDaGVj
a2VyOjpWaXNpdGVkTWF0Y2hUeXBlIHZpc2l0ZWRNYXRjaFR5cGUpIGNvbnN0CiB7CiAgICAgQVNT
RVJUKFNlbGVjdG9yQ2hlY2tlcjo6aXNDb21tb25Qc2V1ZG9DbGFzc1NlbGVjdG9yKG1fc2VsZWN0
b3IpKTsKLSAgICBzd2l0Y2ggKG1fc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSkgewotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55
TGluazoKKyAgICBzd2l0Y2ggKG1fc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpKSB7CisgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NMaW5rOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0NsYXNzQW55TGluazoKICAgICAgICAgcmV0dXJuIG1fZWxlbWVudC0+aXNMaW5rKCk7
Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKKyAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc1Zpc2l0ZWQ6CiAgICAgICAgIHJldHVybiBtX2VsZW1lbnQtPmlzTGlu
aygpICYmIHZpc2l0ZWRNYXRjaFR5cGUgPT0gU2VsZWN0b3JDaGVja2VyOjpWaXNpdGVkTWF0Y2hF
bmFibGVkOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZvY3VzOgorICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzRm9jdXM6CiAgICAgICAgIHJldHVybiBTZWxlY3RvckNoZWNr
ZXI6Om1hdGNoZXNGb2N1c1BzZXVkb0NsYXNzKG1fZWxlbWVudCk7CiAgICAgZGVmYXVsdDoKICAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVu
dE1hcC5pbgppbmRleCA3NzljYzg4YzY5MDJkOWIyYjM5YmI3NWQ1ZmJjMGJlZjQ3OTk2M2FiLi41
ZjBjMjAwODJiZThiZTA1ZjI1MTVlYzQwM2M0ZDNkNDk0Y2FjMjU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29t
cGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4KQEAgLTUsOCArNSw4IEBACiAtd2Via2l0LWRyYWcKIC13
ZWJraXQtZnVsbC1wYWdlLW1lZGlhCiBhY3RpdmUKLWFmdGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1
ZG9FbGVtZW50QWZ0ZXIKLWJlZm9yZSwgUHNldWRvVW5rbm93biwgUHNldWRvRWxlbWVudEJlZm9y
ZQorYWZ0ZXIsIFBzZXVkb0NsYXNzVW5rbm93biwgUHNldWRvRWxlbWVudEFmdGVyCitiZWZvcmUs
IFBzZXVkb0NsYXNzVW5rbm93biwgUHNldWRvRWxlbWVudEJlZm9yZQogY2hlY2tlZAogY29ybmVy
LXByZXNlbnQKIGRlY3JlbWVudApAQCAtMTcsOCArMTcsOCBAQCBlbXB0eQogZW5hYmxlZAogZW5k
CiBmaXJzdC1jaGlsZAotZmlyc3QtbGV0dGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9FbGVtZW50
Rmlyc3RMZXR0ZXIKLWZpcnN0LWxpbmUsIFBzZXVkb1Vua25vd24sIFBzZXVkb0VsZW1lbnRGaXJz
dExpbmUKK2ZpcnN0LWxldHRlciwgUHNldWRvQ2xhc3NVbmtub3duLCBQc2V1ZG9FbGVtZW50Rmly
c3RMZXR0ZXIKK2ZpcnN0LWxpbmUsIFBzZXVkb0NsYXNzVW5rbm93biwgUHNldWRvRWxlbWVudEZp
cnN0TGluZQogZmlyc3Qtb2YtdHlwZQogZm9jdXMKIGhvcml6b250YWwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaAppbmRleCA4MjNlNjYwNTE5ZTA5MWE0MmJiMDY4
MjBlMDBlN2ZhOWZkY2FlOGM2Li44ZDgxYWNlZGU1MTFlMzBkNDQwNzcxYzYwNmE2ZDRmNDgzZjVh
YmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oCkBAIC0z
Miw3ICszMiw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBQc2V1ZG9DbGFzc09y
Q29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgewotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBl
IHBzZXVkb0NsYXNzOworICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xh
c3M7CiAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRUeXBlIGNvbXBhdGliaWxpdHlQc2V1
ZG9FbGVtZW50OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDFk
YTgzOGI0ZTdjNmRhZGEzNTNjMDZiMzFlNWI3MjU3OWNjNWU4OTEuLjc3NmM2MjBiYjgzNDlkN2Y3
YjhlNDQxMzJmYmYwYTdkNzZmMmUwNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5j
cHAKQEAgLTc4MCw3ICs3ODAsNyBAQCBQYXNzUmVmPFJlbmRlclN0eWxlPiBTdHlsZVJlc29sdmVy
OjpzdHlsZUZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyU3R5bAogICAgICAgICBz
dGF0ZS5zdHlsZSgpLT5zZXRJc0xpbmsodHJ1ZSk7CiAgICAgICAgIEVJbnNpZGVMaW5rIGxpbmtT
dGF0ZSA9IHN0YXRlLmVsZW1lbnRMaW5rU3RhdGUoKTsKICAgICAgICAgaWYgKGxpbmtTdGF0ZSAh
PSBOb3RJbnNpZGVMaW5rKSB7Ci0gICAgICAgICAgICBib29sIGZvcmNlVmlzaXRlZCA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShlbGVtZW50LCBDU1NTZWxlY3Rv
cjo6UHNldWRvVmlzaXRlZCk7CisgICAgICAgICAgICBib29sIGZvcmNlVmlzaXRlZCA9IEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShlbGVtZW50LCBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NWaXNpdGVkKTsKICAgICAgICAgICAgIGlmIChmb3JjZVZpc2l0ZWQpCiAg
ICAgICAgICAgICAgICAgbGlua1N0YXRlID0gSW5zaWRlVmlzaXRlZExpbms7CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxl
Y3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKaW5kZXggZWNlZjhh
ZWNjNjIxNjMyZjFlM2UyMjY3YjcxOThmYTkyZTdlNTc0ZC4uMDgxZThhODhjMDM3MjUxN2Q2MGFk
YmM0MDVmMThiYWNhODQ3ZjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VT
ZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVs
ZW1lbnRNYXAucHkKQEAgLTI4LDcgKzI4LDcgQEAgaW1wb3J0IHN5cwogCiAKIGRlZiBlbnVtZXJh
YmxlUHNldWRvVHlwZShzdHJpbmdQc2V1ZG9UeXBlKToKLSAgICBvdXRwdXQgPSBbJ0NTU1NlbGVj
dG9yOjpQc2V1ZG8nXQorICAgIG91dHB1dCA9IFsnQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzJ10K
IAogICAgIGlmIHN0cmluZ1BzZXVkb1R5cGUuZW5kc3dpdGgoJygnKToKICAgICAgICAgc3RyaW5n
UHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbOi0xXQpAQCAtMTA3LDcgKzEwNyw3IEBAIHN0
cnVjdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5
IHsKIAogJX0KICVzdHJ1Y3QtdHlwZQotJWRlZmluZSBpbml0aWFsaXplci1zdWZmaXggLHtDU1NT
ZWxlY3Rvcjo6UHNldWRvVW5rbm93bixDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudFVua25vd259
CislZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAse0NTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Vu
a25vd24sQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3dufQogJWRlZmluZSBjbGFzcy1u
YW1lIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcEhhc2gKICVv
bWl0LXN0cnVjdC10eXBlCiAlbGFuZ3VhZ2U9QysrCkBAIC0xOTMsNyArMTkzLDcgQEAgUHNldWRv
Q2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudFMKIAogICAgIGlmIChlbnRyeSkKICAgICAgICAgcmV0dXJuIGVudHJ5
LT5wc2V1ZG9UeXBlczsKLSAgICByZXR1cm4geyBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93biwg
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtub3duIH07CisgICAgcmV0dXJuIHsgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzVW5rbm93biwgQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnRVbmtu
b3duIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzc2ppdC9TZWxlY3RvckNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzc2pp
dC9TZWxlY3RvckNvbXBpbGVyLmNwcAppbmRleCBiZDg3NzdmNGI5M2QzOWEwZGY3YzIyNzJlNmU3
MzMyZTBlY2NlODliLi5lNjE4ZjQzNzM3NzhhMjNiYzRiZGViZmUyZTZiZmRiNjI4OGU1NWEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3NqaXQvU2VsZWN0b3JDb21waWxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3Nzaml0L1NlbGVjdG9yQ29tcGlsZXIuY3BwCkBAIC0yNTQsODIg
KzI1NCw4MiBAQCBzdGF0aWMgaW5saW5lIEZ1bmN0aW9uVHlwZSBtb3N0UmVzdHJpY3RpdmVGdW5j
dGlvblR5cGUoRnVuY3Rpb25UeXBlIGEsIEZ1bmN0aW9uVAogICAgIHJldHVybiBzdGQ6Om1heChh
LCBiKTsKIH0KIAotc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUgYWRkUHNldWRvVHlwZShjb25z
dCBDU1NTZWxlY3RvciYgc2VsZWN0b3IsIFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50LCBTZWxl
Y3RvckNvbnRleHQgc2VsZWN0b3JDb250ZXh0KQorc3RhdGljIGlubGluZSBGdW5jdGlvblR5cGUg
YWRkUHNldWRvQ2xhc3NUeXBlKGNvbnN0IENTU1NlbGVjdG9yJiBzZWxlY3RvciwgU2VsZWN0b3JG
cmFnbWVudCYgZnJhZ21lbnQsIFNlbGVjdG9yQ29udGV4dCBzZWxlY3RvckNvbnRleHQpCiB7Ci0g
ICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSA9IHNlbGVjdG9yLnBzZXVkb1R5cGUoKTsK
KyAgICBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHR5cGUgPSBzZWxlY3Rvci5wc2V1ZG9D
bGFzc1R5cGUoKTsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICAvLyBVbm9wdGltaXplZCBwc2V1
ZG8gc2VsZWN0b3IuIFRoZXkgYXJlIGp1c3QgZnVuY3Rpb24gY2FsbCB0byBhIHNpbXBsZSB0ZXN0
aW5nIGZ1bmN0aW9uLgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0F1dG9maWxsOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzQXV0b2ZpbGw6CiAgICAgICAgIGZyYWdtZW50
LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5hcHBlbmQoSlNDOjpGdW5jdGlvblB0cihpc0F1dG9m
aWxsZWQpKTsKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVj
a2VyOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NDaGVja2VkOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXpl
ZFBzZXVkb0NsYXNzZXMuYXBwZW5kKEpTQzo6RnVuY3Rpb25QdHIoaXNDaGVja2VkKSk7CiAgICAg
ICAgIHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzRGVmYXVsdDoKICAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2Vz
LmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyKGlzRGVmYXVsdEJ1dHRvbkZvckZvcm0pKTsKICAgICAg
ICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzRGlzYWJsZWQ6CiAgICAgICAgIGZyYWdtZW50LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nl
cy5hcHBlbmQoSlNDOjpGdW5jdGlvblB0cihpc0Rpc2FibGVkKSk7CiAgICAgICAgIHJldHVybiBG
dW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbmFibGVkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzRW5hYmxl
ZDoKICAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6
OkZ1bmN0aW9uUHRyKGlzRW5hYmxlZCkpOwogICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpT
aW1wbGVTZWxlY3RvckNoZWNrZXI7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRm9jdXM6
CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKICAgICAgICAgZnJhZ21l
bnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChKU0M6OkZ1bmN0aW9uUHRyKFNlbGVj
dG9yQ2hlY2tlcjo6bWF0Y2hlc0ZvY3VzUHNldWRvQ2xhc3MpKTsKICAgICAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0luZGV0ZXJtaW5hdGU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NJ
bmRldGVybWluYXRlOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXMu
YXBwZW5kKEpTQzo6RnVuY3Rpb25QdHIoc2hvdWxkQXBwZWFySW5kZXRlcm1pbmF0ZSkpOwogICAg
ICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW52YWxpZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc0ludmFsaWQ6CiAgICAgICAgIGZyYWdtZW50LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nl
cy5hcHBlbmQoSlNDOjpGdW5jdGlvblB0cihpc0ludmFsaWQpKTsKICAgICAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb09wdGlvbmFsOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzT3B0aW9u
YWw6CiAgICAgICAgIGZyYWdtZW50LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5hcHBlbmQoSlND
OjpGdW5jdGlvblB0cihpc09wdGlvbmFsRm9ybUNvbnRyb2wpKTsKICAgICAgICAgcmV0dXJuIEZ1
bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1JlYWRPbmx5OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzUmVhZE9u
bHk6CiAgICAgICAgIGZyYWdtZW50LnVub3B0aW1pemVkUHNldWRvQ2xhc3Nlcy5hcHBlbmQoSlND
OjpGdW5jdGlvblB0cihtYXRjaGVzUmVhZE9ubHlQc2V1ZG9DbGFzcykpOwogICAgICAgICByZXR1
cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvUmVhZFdyaXRlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
UmVhZFdyaXRlOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXMuYXBw
ZW5kKEpTQzo6RnVuY3Rpb25QdHIobWF0Y2hlc1JlYWRXcml0ZVBzZXVkb0NsYXNzKSk7CiAgICAg
ICAgIHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9SZXF1aXJlZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc1JlcXVpcmVkOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNz
ZXMuYXBwZW5kKEpTQzo6RnVuY3Rpb25QdHIoaXNSZXF1aXJlZEZvcm1Db250cm9sKSk7CiAgICAg
ICAgIHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9WYWxpZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1ZhbGlkOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXMuYXBw
ZW5kKEpTQzo6RnVuY3Rpb25QdHIoaXNWYWxpZCkpOwogICAgICAgICByZXR1cm4gRnVuY3Rpb25U
eXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW46CisgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQ2xhc3NGdWxsU2NyZWVuOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXpl
ZFBzZXVkb0NsYXNzZXMuYXBwZW5kKEpTQzo6RnVuY3Rpb25QdHIobWF0Y2hlc0Z1bGxTY3JlZW5Q
c2V1ZG9DbGFzcykpOwogICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXI7CiAjZW5kaWYKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvRnV0dXJlOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
RnV0dXJlOgogICAgICAgICBmcmFnbWVudC51bm9wdGltaXplZFBzZXVkb0NsYXNzZXMuYXBwZW5k
KEpTQzo6RnVuY3Rpb25QdHIobWF0Y2hlc0Z1dHVyZUN1ZVBzZXVkb0NsYXNzKSk7CiAgICAgICAg
IHJldHVybiBGdW5jdGlvblR5cGU6OlNpbXBsZVNlbGVjdG9yQ2hlY2tlcjsKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
UGFzdDoKICAgICAgICAgZnJhZ21lbnQudW5vcHRpbWl6ZWRQc2V1ZG9DbGFzc2VzLmFwcGVuZChK
U0M6OkZ1bmN0aW9uUHRyKG1hdGNoZXNQYXN0Q3VlUHNldWRvQ2xhc3MpKTsKICAgICAgICAgcmV0
dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JDaGVja2VyOwogI2VuZGlmCiAKICAgICAv
LyBPcHRpbWl6ZWQgcHNldWRvIHNlbGVjdG9ycy4KLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9BbnlMaW5rOgotICAgICAgICBmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmFkZChDU1NTZWxlY3Rv
cjo6UHNldWRvTGluayk7CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnlMaW5r
OgorICAgICAgICBmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmFkZChDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NMaW5rKTsKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6U2ltcGxlU2VsZWN0b3JD
aGVja2VyOwogCi0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKKyAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0xpbms6CiAgICAgICAgIGZyYWdtZW50LnBzZXVkb0NsYXNz
ZXMuYWRkKHR5cGUpOwogICAgICAgICByZXR1cm4gRnVuY3Rpb25UeXBlOjpTaW1wbGVTZWxlY3Rv
ckNoZWNrZXI7CiAKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdENoaWxkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9Pbmx5Q2hpbGQ6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGaXJz
dENoaWxkOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTGFzdENoaWxkOgorICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzT25seUNoaWxkOgogICAgICAgICBmcmFnbWVu
dC5wc2V1ZG9DbGFzc2VzLmFkZCh0eXBlKTsKICAgICAgICAgaWYgKHNlbGVjdG9yQ29udGV4dCA9
PSBTZWxlY3RvckNvbnRleHQ6OlF1ZXJ5U2VsZWN0b3IpCiAgICAgICAgICAgICByZXR1cm4gRnVu
Y3Rpb25UeXBlOjpTaW1wbGVTZWxlY3RvckNoZWNrZXI7CiAgICAgICAgIHJldHVybiBGdW5jdGlv
blR5cGU6OlNlbGVjdG9yQ2hlY2tlcldpdGhDaGVja2luZ0NvbnRleHQ7CiAKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc050aENoaWxkOgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoIXNlbGVjdG9yLnBhcnNl
TnRoKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hB
bnl0aGluZzsKQEAgLTM5Miw3ICszOTIsNyBAQCBpbmxpbmUgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpTZWxlY3RvckNvZGVHZW5lcmF0b3IoY29uc3QgQ1NTU2VsZWN0b3IqIHJvb3RTZWxlYwogICAg
ICAgICAgICAgZnJhZ21lbnQuY2xhc3NOYW1lcy5hcHBlbmQoc2VsZWN0b3ItPnZhbHVlKCkuaW1w
bCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzczoKLSAgICAgICAgICAgIG1fZnVuY3Rpb25UeXBlID0gbW9zdFJlc3RyaWN0aXZlRnVu
Y3Rpb25UeXBlKG1fZnVuY3Rpb25UeXBlLCBhZGRQc2V1ZG9UeXBlKCpzZWxlY3RvciwgZnJhZ21l
bnQsIG1fc2VsZWN0b3JDb250ZXh0KSk7CisgICAgICAgICAgICBtX2Z1bmN0aW9uVHlwZSA9IG1v
c3RSZXN0cmljdGl2ZUZ1bmN0aW9uVHlwZShtX2Z1bmN0aW9uVHlwZSwgYWRkUHNldWRvQ2xhc3NU
eXBlKCpzZWxlY3RvciwgZnJhZ21lbnQsIG1fc2VsZWN0b3JDb250ZXh0KSk7CiAgICAgICAgICAg
ICBpZiAobV9mdW5jdGlvblR5cGUgPT0gRnVuY3Rpb25UeXBlOjpDYW5ub3RDb21waWxlIHx8IG1f
ZnVuY3Rpb25UeXBlID09IEZ1bmN0aW9uVHlwZTo6Q2Fubm90TWF0Y2hBbnl0aGluZykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBicmVhazsKQEAgLTExNjMsNyArMTE2Myw3
IEBAIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9yOjpnZW5lcmF0ZUJhY2t0cmFja2luZ1RhaWxz
SWZOZWVkZWQoQXNzZW1ibGVyOjpKdW1wTGlzCiAKIHZvaWQgU2VsZWN0b3JDb2RlR2VuZXJhdG9y
OjpnZW5lcmF0ZUVsZW1lbnRNYXRjaGluZyhBc3NlbWJsZXI6Okp1bXBMaXN0JiBmYWlsdXJlQ2Fz
ZXMsIGNvbnN0IFNlbGVjdG9yRnJhZ21lbnQmIGZyYWdtZW50KQogewotICAgIGlmIChmcmFnbWVu
dC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9MaW5rKSkKKyAgICBp
ZiAoZnJhZ21lbnQucHNldWRvQ2xhc3Nlcy5jb250YWlucyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xh
c3NMaW5rKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SXNMaW5rKGZhaWx1cmVDYXNlcyk7CiAK
ICAgICBpZiAoZnJhZ21lbnQudGFnTmFtZSkKQEAgLTExNzQsMTEgKzExNzQsMTEgQEAgdm9pZCBT
ZWxlY3RvckNvZGVHZW5lcmF0b3I6OmdlbmVyYXRlRWxlbWVudE1hdGNoaW5nKEFzc2VtYmxlcjo6
SnVtcExpc3QmIGZhaWx1cmUKIAogICAgIGdlbmVyYXRlRWxlbWVudERhdGFNYXRjaGluZyhmYWls
dXJlQ2FzZXMsIGZyYWdtZW50KTsKIAotICAgIGlmIChmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNv
bnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9Pbmx5Q2hpbGQpKQorICAgIGlmIChmcmFnbWVudC5w
c2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc09ubHlDaGlsZCkp
CiAgICAgICAgIGdlbmVyYXRlRWxlbWVudElzT25seUNoaWxkKGZhaWx1cmVDYXNlcywgZnJhZ21l
bnQpOwotICAgIGlmIChmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9y
OjpQc2V1ZG9GaXJzdENoaWxkKSkKKyAgICBpZiAoZnJhZ21lbnQucHNldWRvQ2xhc3Nlcy5jb250
YWlucyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGaXJzdENoaWxkKSkKICAgICAgICAgZ2VuZXJh
dGVFbGVtZW50SXNGaXJzdENoaWxkKGZhaWx1cmVDYXNlcywgZnJhZ21lbnQpOwotICAgIGlmIChm
cmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hp
bGQpKQorICAgIGlmIChmcmFnbWVudC5wc2V1ZG9DbGFzc2VzLmNvbnRhaW5zKENTU1NlbGVjdG9y
OjpQc2V1ZG9DbGFzc0xhc3RDaGlsZCkpCiAgICAgICAgIGdlbmVyYXRlRWxlbWVudElzTGFzdENo
aWxkKGZhaWx1cmVDYXNlcywgZnJhZ21lbnQpOwogICAgIGlmICghZnJhZ21lbnQubnRoQ2hpbGRm
aWx0ZXJzLmlzRW1wdHkoKSkKICAgICAgICAgZ2VuZXJhdGVFbGVtZW50SXNOdGhDaGlsZChmYWls
dXJlQ2FzZXMsIGZyYWdtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwCmluZGV4IDBiOWIzMmM1ODA0OTUzOGExNjY5OWYyZTM3ODc1MDEyY2I0
ZDhhNDEuLjkyNTVkMDJlZjM2MDU3MzBmYmJmOWEyOGM0MTgwZjdlZmFkY2YwNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcApAQCAtNjksMTEg
KzY5LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGVudW0gRm9yY2VQc2V1ZG9DbGFzc0ZsYWdzIHsKLSAgICBQc2V1ZG9Ob25lID0gMCwKLSAg
ICBQc2V1ZG9Ib3ZlciA9IDEgPDwgMCwKLSAgICBQc2V1ZG9Gb2N1cyA9IDEgPDwgMSwKLSAgICBQ
c2V1ZG9BY3RpdmUgPSAxIDw8IDIsCi0gICAgUHNldWRvVmlzaXRlZCA9IDEgPDwgMworICAgIFBz
ZXVkb0NsYXNzTm9uZSA9IDAsCisgICAgUHNldWRvQ2xhc3NIb3ZlciA9IDEgPDwgMCwKKyAgICBQ
c2V1ZG9DbGFzc0ZvY3VzID0gMSA8PCAxLAorICAgIFBzZXVkb0NsYXNzQWN0aXZlID0gMSA8PCAy
LAorICAgIFBzZXVkb0NsYXNzVmlzaXRlZCA9IDEgPDwgMwogfTsKIAogc3RhdGljIHVuc2lnbmVk
IGNvbXB1dGVQc2V1ZG9DbGFzc01hc2soSW5zcGVjdG9yQXJyYXkqIHBzZXVkb0NsYXNzQXJyYXkp
CkBAIC04Myw5ICs4Myw5IEBAIHN0YXRpYyB1bnNpZ25lZCBjb21wdXRlUHNldWRvQ2xhc3NNYXNr
KEluc3BlY3RvckFycmF5KiBwc2V1ZG9DbGFzc0FycmF5KQogICAgIERFUFJFQ0FURURfREVGSU5F
X1NUQVRJQ19MT0NBTChTdHJpbmcsIGZvY3VzLCAoQVNDSUlMaXRlcmFsKCJmb2N1cyIpKSk7CiAg
ICAgREVQUkVDQVRFRF9ERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgdmlzaXRlZCwgKEFTQ0lJ
TGl0ZXJhbCgidmlzaXRlZCIpKSk7CiAgICAgaWYgKCFwc2V1ZG9DbGFzc0FycmF5IHx8ICFwc2V1
ZG9DbGFzc0FycmF5LT5sZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIFBzZXVkb05vbmU7CisgICAg
ICAgIHJldHVybiBQc2V1ZG9DbGFzc05vbmU7CiAKLSAgICB1bnNpZ25lZCByZXN1bHQgPSBQc2V1
ZG9Ob25lOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IFBzZXVkb0NsYXNzTm9uZTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IHBzZXVkb0NsYXNzQXJyYXktPmxlbmd0aCgpOyArK2kpIHsKICAg
ICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBwc2V1ZG9DbGFzc1ZhbHVlID0gcHNldWRvQ2xh
c3NBcnJheS0+Z2V0KGkpOwogICAgICAgICBTdHJpbmcgcHNldWRvQ2xhc3M7CkBAIC05MywxMyAr
OTMsMTMgQEAgc3RhdGljIHVuc2lnbmVkIGNvbXB1dGVQc2V1ZG9DbGFzc01hc2soSW5zcGVjdG9y
QXJyYXkqIHBzZXVkb0NsYXNzQXJyYXkpCiAgICAgICAgIGlmICghc3VjY2VzcykKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAocHNldWRvQ2xhc3MgPT0gYWN0aXZlKQotICAgICAg
ICAgICAgcmVzdWx0IHw9IFBzZXVkb0FjdGl2ZTsKKyAgICAgICAgICAgIHJlc3VsdCB8PSBQc2V1
ZG9DbGFzc0FjdGl2ZTsKICAgICAgICAgZWxzZSBpZiAocHNldWRvQ2xhc3MgPT0gaG92ZXIpCi0g
ICAgICAgICAgICByZXN1bHQgfD0gUHNldWRvSG92ZXI7CisgICAgICAgICAgICByZXN1bHQgfD0g
UHNldWRvQ2xhc3NIb3ZlcjsKICAgICAgICAgZWxzZSBpZiAocHNldWRvQ2xhc3MgPT0gZm9jdXMp
Ci0gICAgICAgICAgICByZXN1bHQgfD0gUHNldWRvRm9jdXM7CisgICAgICAgICAgICByZXN1bHQg
fD0gUHNldWRvQ2xhc3NGb2N1czsKICAgICAgICAgZWxzZSBpZiAocHNldWRvQ2xhc3MgPT0gdmlz
aXRlZCkKLSAgICAgICAgICAgIHJlc3VsdCB8PSBQc2V1ZG9WaXNpdGVkOworICAgICAgICAgICAg
cmVzdWx0IHw9IFBzZXVkb0NsYXNzVmlzaXRlZDsKICAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0
OwpAQCAtNjYwLDcgKzY2MCw3IEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmRpZFVucmVnaXN0
ZXJOYW1lZEZsb3dDb250ZW50RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsCiAgICAgbV9mcm9u
dGVuZERpc3BhdGNoZXItPnVucmVnaXN0ZXJlZE5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KGRvY3Vt
ZW50Tm9kZUlkLCBuYW1lZEZsb3ctPm5hbWUoKS5zdHJpbmcoKSwgY29udGVudEVsZW1lbnROb2Rl
SWQpOwogfQogCi1ib29sIEluc3BlY3RvckNTU0FnZW50Ojpmb3JjZVBzZXVkb1N0YXRlKEVsZW1l
bnQqIGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVkb1R5cGUpCitib29sIElu
c3BlY3RvckNTU0FnZW50Ojpmb3JjZVBzZXVkb1N0YXRlKEVsZW1lbnQqIGVsZW1lbnQsIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3NUeXBlKQogewogICAgIGlmIChtX25v
ZGVJZFRvRm9yY2VkUHNldWRvU3RhdGUuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC02NzQsMTUgKzY3NCwxNSBAQCBib29sIEluc3BlY3RvckNTU0FnZW50Ojpmb3JjZVBzZXVk
b1N0YXRlKEVsZW1lbnQqIGVsZW1lbnQsIENTU1NlbGVjdG9yOjpQc2V1ZG9UeQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBmb3JjZWRQc2V1ZG9TdGF0ZSA9IGl0LT52YWx1
ZTsKLSAgICBzd2l0Y2ggKHBzZXVkb1R5cGUpIHsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9BY3RpdmU6Ci0gICAgICAgIHJldHVybiBmb3JjZWRQc2V1ZG9TdGF0ZSAmIFBzZXVkb0FjdGl2
ZTsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1czoKLSAgICAgICAgcmV0dXJuIGZv
cmNlZFBzZXVkb1N0YXRlICYgUHNldWRvRm9jdXM7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvSG92ZXI6Ci0gICAgICAgIHJldHVybiBmb3JjZWRQc2V1ZG9TdGF0ZSAmIFBzZXVkb0hvdmVy
OwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQ6Ci0gICAgICAgIHJldHVybiBm
b3JjZWRQc2V1ZG9TdGF0ZSAmIFBzZXVkb1Zpc2l0ZWQ7CisgICAgc3dpdGNoIChwc2V1ZG9DbGFz
c1R5cGUpIHsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0FjdGl2ZToKKyAgICAg
ICAgcmV0dXJuIGZvcmNlZFBzZXVkb1N0YXRlICYgUHNldWRvQ2xhc3NBY3RpdmU7CisgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NGb2N1czoKKyAgICAgICAgcmV0dXJuIGZvcmNlZFBz
ZXVkb1N0YXRlICYgUHNldWRvQ2xhc3NGb2N1czsKKyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc0hvdmVyOgorICAgICAgICByZXR1cm4gZm9yY2VkUHNldWRvU3RhdGUgJiBQc2V1ZG9D
bGFzc0hvdmVyOworICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVmlzaXRlZDoKKyAg
ICAgICAgcmV0dXJuIGZvcmNlZFBzZXVkb1N0YXRlICYgUHNldWRvQ2xhc3NWaXNpdGVkOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oCmluZGV4IDczZmYwMGViYjViZjEyNzQzNDU4
ODE4OTJlMmE0OGFjZjI3ODMwNTIuLmU1ZDVlNTJmYzE5NGY2ZTRiODE0NjEzNmQ3NzRlZDE1OTRk
Y2U4ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NB
Z2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5o
CkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBDU1NTdHlsZVJ1bGUqIGFz
Q1NTU3R5bGVSdWxlKENTU1J1bGUqKTsKIAotICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShFbGVt
ZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOworICAgIGJvb2wgZm9yY2VQc2V1ZG9TdGF0
ZShFbGVtZW50KiwgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSk7CiAgICAgdmlydHVhbCB2
b2lkIGRpZENyZWF0ZUZyb250ZW5kQW5kQmFja2VuZChJbnNwZWN0b3I6Okluc3BlY3RvckZyb250
ZW5kQ2hhbm5lbCosIEluc3BlY3Rvcjo6SW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIqKSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgd2lsbERlc3Ryb3lGcm9udGVuZEFuZEJhY2tlbmQoSW5z
cGVjdG9yOjpJbnNwZWN0b3JEaXNjb25uZWN0UmVhc29uKSBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IHZvaWQgZGlzY2FyZEFnZW50KCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCmluZGV4IDQ4MTY5NmYyNTJl
NjVmMjIwZTE5YmQ4NjRmODIxZWU5NDIwMWE3MWYuLmMwMzBiZjUxOWZjZmMxM2Y3ZjA1ZTc5MzFl
YmIzODczZmNlOGQ5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwCkBAIC0yNzAsNyArMjcwLDcgQEAgYm9vbCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmhhbmRsZU1vdXNlUHJlc3NJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqIGluc3RydW0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBp
bnN0cnVtZW50aW5nQWdlbnRzLCBFbGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRv
VHlwZSBwc2V1ZG9TdGF0ZSkKK2Jvb2wgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBz
ZXVkb1N0YXRlSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBF
bGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb1N0YXRl
KQogewogICAgIGlmIChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50aW5n
QWdlbnRzLT5pbnNwZWN0b3JDU1NBZ2VudCgpKQogICAgICAgICByZXR1cm4gY3NzQWdlbnQtPmZv
cmNlUHNldWRvU3RhdGUoZWxlbWVudCwgcHNldWRvU3RhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oCmluZGV4IDAxZmY1MzU5
YTY5YzU0MjliYmNhMzViZTFlMzIxYTBiODFjYWJlZDkuLjE2OWNmYWRlNTkzMTljMDAyZjM3ZGFh
ZmIzMDQyMjkxOTNiYjdmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoUGFnZSosIGNvbnN0IEhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKICAgICBzdGF0aWMgYm9vbCBoYW5k
bGVNb3VzZVByZXNzKFBhZ2UqKTsKICAgICBzdGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KFBh
Z2UqLCBOb2RlKik7Ci0gICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZShFbGVtZW50Kiwg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUpOworICAgIHN0YXRpYyBib29sIGZvcmNlUHNldWRvU3Rh
dGUoRWxlbWVudCosIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUpOwogCiAgICAgc3RhdGlj
IHZvaWQgd2lsbFNlbmRYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyB2b2lkIGRpZFNjaGVkdWxlUmVzb3VyY2VSZXF1
ZXN0KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiB1cmwpOwpAQCAtMzM0LDcgKzMzNCw3IEBAIHBy
aXZhdGU6CiAgICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRJbXBsKEluc3Ry
dW1lbnRpbmdBZ2VudHMqLCBjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncyk7CiAgICAgc3RhdGljIGJvb2wgaGFuZGxlVG91Y2hFdmVudEltcGwoSW5zdHJ1bWVudGlu
Z0FnZW50cyosIE5vZGUqKTsKICAgICBzdGF0aWMgYm9vbCBoYW5kbGVNb3VzZVByZXNzSW1wbChJ
bnN0cnVtZW50aW5nQWdlbnRzKik7Ci0gICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZUlt
cGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZSk7CisgICAgc3RhdGljIGJvb2wgZm9yY2VQc2V1ZG9TdGF0ZUltcGwoSW5zdHJ1bWVudGluZ0Fn
ZW50cyosIEVsZW1lbnQqLCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlKTsKIAogICAgIHN0
YXRpYyB2b2lkIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
LCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIHZvaWQgZGlkU2NoZWR1bGVSZXNvdXJj
ZVJlcXVlc3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBjb25zdCBTdHJpbmcmIHVybCwgRnJh
bWUqKTsKQEAgLTc3OSw3ICs3NzksNyBAQCBpbmxpbmUgYm9vbCBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmhhbmRsZU1vdXNlUHJlc3MoUGFnZSogcGFnZSkKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLWlubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0
ZShFbGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9TdGF0ZSkK
K2lubGluZSBib29sIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShF
bGVtZW50KiBlbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb1N0YXRl
KQogewogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgRkFTVF9SRVRVUk5fSUZfTk9fRlJPTlRF
TkRTKGZhbHNlKTsK
</data>
<flag name="review"
          id="254126"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>