<?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>163191</bug_id>
          
          <creation_ts>2016-10-09 17:54:23 -0700</creation_ts>
          <short_desc>Move ApplePaySession from legacy to new DOM exceptions</short_desc>
          <delta_ts>2016-10-09 19:16:40 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238153</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 17:54:23 -0700</bug_when>
    <thetext>Move ApplePaySession from legacy to new DOM exceptions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238154</commentid>
    <comment_count>1</comment_count>
      <attachid>291057</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 18:08:54 -0700</bug_when>
    <thetext>Created attachment 291057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238155</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 18:09:51 -0700</bug_when>
    <thetext>I did a grep for &quot;LegacyException&quot; and the first IDL file that showed up was ApplePaySession.idl, so here we go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1238162</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-10-09 19:16:40 -0700</bug_when>
    <thetext>Committed r206977: &lt;http://trac.webkit.org/changeset/206977&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291057</attachid>
            <date>2016-10-09 18:08:54 -0700</date>
            <delta_ts>2016-10-09 19:14:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163191-20161009180534.patch</filename>
            <type>text/plain</type>
            <size>37100</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2OTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTZmNjMzMDI3ZmJkNWM1
ZDM4YWMwZjllZDcyMTBhNGY1Yjk4MTYzNC4uNTAwYzRmMTllOTZlMmM1ZGFjZDEwZTQyYTBlODAx
MzVlZjcxYTQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE2LTEwLTA5ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIEFwcGxlUGF5U2Vzc2lv
biBmcm9tIGxlZ2FjeSB0byBuZXcgRE9NIGV4Y2VwdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzE5MQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUpOiBV
c2UgRXhjZXB0aW9uT3IuCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OkFwcGxl
UGF5U2Vzc2lvbik6IE1vdmVkIGluaXRpYWxpemF0aW9uCisgICAgICAgIG9mIHR3byBvZiB0aGUg
ZGF0YSBtZW1iZXJzIHRvIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChXZWJDb3JlOjpBcHBs
ZVBheVNlc3Npb246OnN1cHBvcnRzVmVyc2lvbik6IFVzZSBFeGNlcHRpb25Pci4KKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBheW1lbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVD
YXJkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXlt
ZW50U2V0dXApOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6YmVn
aW4pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6YWJvcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVNZXJjaGFu
dFZhbGlkYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6
Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbik6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lv
bjo6Y29tcGxldGVQYXltZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb246OnZhbGlkYXRlTWVyY2hhbnQpOiBVc2UgYXV0byBhbmQgZ2V0IGluc3RlYWQgb2YKKyAg
ICAgICAgdXNpbmcgYSBSZWZQdHIgdHlwZSBhbmQgKiBmb3IgZXZlbnQgZGlzcGF0Y2hpbmcuCisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmRpZEF1dGhvcml6ZVBheW1lbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6ZGlkU2VsZWN0U2hpcHBp
bmdNZXRob2QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6ZGlk
U2VsZWN0U2hpcHBpbmdDb250YWN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBh
eVNlc3Npb246OmRpZFNlbGVjdFBheW1lbnRNZXRob2QpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvbjo6ZGlkQ2FuY2VsUGF5bWVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpwYXltZW50Q29vcmRpbmF0b3IpOiBNb3ZlZCBkZXJl
ZmVyZW5jaW5nCisgICAgICAgIGluc2lkZSB0aGUgZG93bmNhc3QuCisKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oOiBVcGRhdGVkIGZvciBjaGFuZ2VzIGFib3Zl
LgorCisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaWRsOiBVc2Ug
TWF5VGhyb3dFeGNlcHRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0FwcGxlUGF5U2Vz
c2lvbkN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0FwcGxlUGF5U2Vzc2lvbjo6Y29t
cGxldGVTaGlwcGluZ01ldGhvZFNlbGVjdGlvbik6CisgICAgICAgIFVzZSBwcm9wYWdhdGVFeGNl
cHRpb24uCisgICAgICAgIChXZWJDb3JlOjpKU0FwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlw
cGluZ0NvbnRhY3RTZWxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkpTQXBwbGVQ
YXlTZXNzaW9uOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24pOiBEaXR0by4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oOiBBZGRlZCBpbXBsZW1lbnRhdGlvbiBv
ZiB0b0pTQm9vbGVhbi4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24pOiBHZW5lcmF0
ZSB0aGUgZGlmZmVyZW50IGFyZ3VtZW50cyBmb3IKKyAgICAgICAgdG9KU05ld2x5Q3JlYXRlZCB3
aGVuIENvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24gaXMgc3BlY2lmaWVkIHRoYXQKKyAgICAg
ICAgYWN0aXZhdGUgdGhlIHZlcnNpb24gb2YgdGhhdCBmdW5jdGlvbiB0aGF0IGhhbmRsZXMgZXhj
ZXB0aW9ucy4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6
IEFkZGVkIENvbnN0cnVjdG9yTWF5VGhyb3dFeGNlcHRpb24uCisKIDIwMTYtMTAtMDkgIEZ1amlp
IEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgW0NNYWtlXSBD
TWFrZSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBkZXAgZmlsZXMgZm9yIGltcGxpY2l0IGRlcGVuZGVu
Y3kKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlT
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNz
aW9uLmNwcAppbmRleCBkMmQyMmIwYjdkMzUyNDVhOWRkNTdiOGM0NjUwYjNlYTgxZmU2ZWQ5Li5j
YzFkYTlhZTQxZmFkNjExZmFlOWYzNDE1YjMwMjk2YTg5OGY2ODg4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC02MzUs
NDkgKzYzNSw0MCBAQCBzdGF0aWMgYm9vbCBjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhEb2N1
bWVudCYgZG9jdW1lbnQsIFN0cmluZyYgZXJyb3JNZXNzYWdlKQogICAgIHJldHVybiB0cnVlOwog
fQogCi1SZWZQdHI8QXBwbGVQYXlTZXNzaW9uPiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShEb2N1
bWVudCYgZG9jdW1lbnQsIHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0IERpY3Rpb25hcnkmIGRpY3Rp
b25hcnksIEV4Y2VwdGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8UmVmPEFwcGxlUGF5U2Vzc2lv
bj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgdW5zaWduZWQg
dmVyc2lvbiwgY29uc3QgRGljdGlvbmFyeSYgZGljdGlvbmFyeSkKIHsKICAgICBET01XaW5kb3cm
IHdpbmRvdyA9ICpkb2N1bWVudC5kb21XaW5kb3coKTsKIAogICAgIFN0cmluZyBlcnJvck1lc3Nh
Z2U7CiAgICAgaWYgKCFjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJcyhkb2N1bWVudCwgZXJyb3JN
ZXNzYWdlKSkgewogICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdl
KTsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAg
ICAgfQogCiAgICAgaWYgKCFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUo
KSkgewogICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1lc3NhZ2UoIk11c3QgY3JlYXRlIGEgbmV3
IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIik7Ci0gICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogICAgIH0KIAogICAg
IGF1dG8mIHBheW1lbnRDb29yZGluYXRvciA9IGRvY3VtZW50LmZyYW1lKCktPm1haW5GcmFtZSgp
LnBheW1lbnRDb29yZGluYXRvcigpOwogCiAgICAgaWYgKCF2ZXJzaW9uIHx8ICFwYXltZW50Q29v
cmRpbmF0b3Iuc3VwcG9ydHNWZXJzaW9uKHZlcnNpb24pKSB7CiAgICAgICAgIHdpbmRvdy5wcmlu
dEVycm9yTWVzc2FnZShtYWtlU3RyaW5nKCJcIiIgKyBTdHJpbmc6Om51bWJlcih2ZXJzaW9uKSwg
IlwiIGlzIG5vdCBhIHN1cHBvcnRlZCB2ZXJzaW9uLiIpKTsKLSAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAgICAgfQogCiAgICAgYXV0byBwYXltZW50
UmVxdWVzdCA9IGNyZWF0ZVBheW1lbnRSZXF1ZXN0KHZlcnNpb24sIHdpbmRvdywgZGljdGlvbmFy
eSk7Ci0gICAgaWYgKCFwYXltZW50UmVxdWVzdCkgewotICAgICAgICBlYyA9IFRZUEVfTUlTTUFU
Q0hfRVJSOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKCFwYXltZW50
UmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFRZUEVfTUlTTUFUQ0hfRVJSIH07
CiAKLSAgICBpZiAoIVBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yKHdpbmRvdykudmFsaWRhdGUoKnBh
eW1lbnRSZXF1ZXN0KSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQorICAgIGlmICghUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3Iod2luZG93KS52YWxpZGF0ZSgqcGF5bWVudFJlcXVlc3QpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEFwcGxlUGF5U2Vzc2lvbihkb2N1bWVudCwgV1RGTW92ZSgqcGF5bWVudFJlcXVlc3QpKSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgQXBwbGVQYXlTZXNzaW9uKGRvY3VtZW50LCBXVEZNb3Zl
KCpwYXltZW50UmVxdWVzdCkpKTsKIH0KIAogQXBwbGVQYXlTZXNzaW9uOjpBcHBsZVBheVNlc3Np
b24oRG9jdW1lbnQmIGRvY3VtZW50LCBQYXltZW50UmVxdWVzdCYmIHBheW1lbnRSZXF1ZXN0KQog
ICAgIDogQWN0aXZlRE9NT2JqZWN0KCZkb2N1bWVudCkKLSAgICAsIG1fc3RhdGUoU3RhdGU6Oklk
bGUpCi0gICAgLCBtX21lcmNoYW50VmFsaWRhdGlvblN0YXRlKE1lcmNoYW50VmFsaWRhdGlvblN0
YXRlOjpJZGxlKQogICAgICwgbV9wYXltZW50UmVxdWVzdChXVEZNb3ZlKHBheW1lbnRSZXF1ZXN0
KSkKIHsKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKQEAgLTY4NywxMiArNjc4LDEwIEBAIEFwcGxl
UGF5U2Vzc2lvbjo6fkFwcGxlUGF5U2Vzc2lvbigpCiB7CiB9CiAKLWJvb2wgQXBwbGVQYXlTZXNz
aW9uOjpzdXBwb3J0c1ZlcnNpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgdW5zaWduZWQgdmVyc2lvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNlcHRp
b25Pcjxib29sPiBBcHBsZVBheVNlc3Npb246OnN1cHBvcnRzVmVyc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCB1bnNpZ25lZCB2ZXJzaW9uKQogewot
ICAgIGlmICghdmVyc2lvbikgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KKyAgICBpZiAoIXZlcnNpb24pCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKIAogICAgIGF1dG8mIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgIERP
TVdpbmRvdyYgd2luZG93ID0gKmRvY3VtZW50LmRvbVdpbmRvdygpOwpAQCAtNzAwLDEyICs2ODks
MTAgQEAgYm9vbCBBcHBsZVBheVNlc3Npb246OnN1cHBvcnRzVmVyc2lvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db24KICAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwog
ICAgIGlmICghY2FuQ2FsbEFwcGxlUGF5U2Vzc2lvbkFQSXMoZG9jdW1lbnQsIGVycm9yTWVzc2Fn
ZSkpIHsKICAgICAgICAgd2luZG93LnByaW50RXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKICAgICB9CiAK
LSAgICBhdXRvJiBwYXltZW50Q29vcmRpbmF0b3IgPSBkb2N1bWVudC5mcmFtZSgpLT5tYWluRnJh
bWUoKS5wYXltZW50Q29vcmRpbmF0b3IoKTsKLSAgICByZXR1cm4gcGF5bWVudENvb3JkaW5hdG9y
LnN1cHBvcnRzVmVyc2lvbih2ZXJzaW9uKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuZnJhbWUoKS0+
bWFpbkZyYW1lKCkucGF5bWVudENvb3JkaW5hdG9yKCkuc3VwcG9ydHNWZXJzaW9uKHZlcnNpb24p
OwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGREaXNjbG9zZUFwcGxlUGF5Q2FwYWJpbGl0eShEb2N1
bWVudCYgZG9jdW1lbnQpCkBAIC03MTcsNyArNzA0LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkRGlz
Y2xvc2VBcHBsZVBheUNhcGFiaWxpdHkoRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIHJldHVybiBk
b2N1bWVudC5mcmFtZSgpLT5zZXR0aW5ncygpLmFwcGxlUGF5Q2FwYWJpbGl0eURpc2Nsb3N1cmVB
bGxvd2VkKCk7CiB9CiAKLWJvb2wgQXBwbGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHMoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCitFeGNlcHRpb25Pcjxib29sPiBBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50
cyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogewogICAg
IGF1dG8mIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQpOwogICAgIERPTVdpbmRvdyYgd2luZG93ID0gKmRvY3VtZW50LmRvbVdpbmRvdygpOwpAQCAt
NzI1LDE1ICs3MTIsMTMgQEAgYm9vbCBBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50cyhT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25Db24KICAgICBTdHJpbmcgZXJy
b3JNZXNzYWdlOwogICAgIGlmICghY2FuQ2FsbEFwcGxlUGF5U2Vzc2lvbkFQSXMoZG9jdW1lbnQs
IGVycm9yTWVzc2FnZSkpIHsKICAgICAgICAgd2luZG93LnByaW50RXJyb3JNZXNzYWdlKGVycm9y
TWVzc2FnZSk7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIg
fTsKICAgICB9CiAKLSAgICBhdXRvJiBwYXltZW50Q29vcmRpbmF0b3IgPSBkb2N1bWVudC5mcmFt
ZSgpLT5tYWluRnJhbWUoKS5wYXltZW50Q29vcmRpbmF0b3IoKTsKLSAgICByZXR1cm4gcGF5bWVu
dENvb3JkaW5hdG9yLmNhbk1ha2VQYXltZW50cygpOworICAgIHJldHVybiBkb2N1bWVudC5mcmFt
ZSgpLT5tYWluRnJhbWUoKS5wYXltZW50Q29vcmRpbmF0b3IoKS5jYW5NYWtlUGF5bWVudHMoKTsK
IH0KIAotdm9pZCBBcHBsZVBheVNlc3Npb246OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJk
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFN0
cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFBy
b21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNz
aW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBzY3JpcHRFeGVjdXRpb25Db250ZXh0LCBjb25zdCBTdHJpbmcmIG1lcmNoYW50SWRlbnRpZmll
ciwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwYXNzZWRQcm9taXNlKQogewogICAgIGF1dG8mIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAg
IERPTVdpbmRvdyYgd2luZG93ID0gKmRvY3VtZW50LmRvbVdpbmRvdygpOwpAQCAtNzQxLDggKzcy
Niw3IEBAIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2Fy
ZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpCiAgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsK
ICAgICBpZiAoIWNhbkNhbGxBcHBsZVBheVNlc3Npb25BUElzKGRvY3VtZW50LCBlcnJvck1lc3Nh
Z2UpKSB7CiAgICAgICAgIHdpbmRvdy5wcmludEVycm9yTWVzc2FnZShlcnJvck1lc3NhZ2UpOwot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAgICAgfQogCiAgICAg
UmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZShXVEZNb3ZlKHBhc3NlZFByb21pc2UpKTsK
QEAgLTc1Myw3ICs3MzcsNyBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6Y2FuTWFrZVBheW1lbnRz
V2l0aEFjdGl2ZUNhcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgc2NyaQogICAgICAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Byb21pc2UsIGNhbk1ha2VQYXltZW50c10oKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIHByb21pc2UtPnJlc29sdmUoY2FuTWFrZVBheW1lbnRzKTsKICAgICAg
ICAgfSk7Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAKICAg
ICBhdXRvJiBwYXltZW50Q29vcmRpbmF0b3IgPSBkb2N1bWVudC5mcmFtZSgpLT5tYWluRnJhbWUo
KS5wYXltZW50Q29vcmRpbmF0b3IoKTsKQEAgLTc2MSw5ICs3NDUsMTAgQEAgdm9pZCBBcHBsZVBh
eVNlc3Npb246OmNhbk1ha2VQYXltZW50c1dpdGhBY3RpdmVDYXJkKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIHNjcmkKICAgICBwYXltZW50Q29vcmRpbmF0b3IuY2FuTWFrZVBheW1lbnRzV2l0aEFj
dGl2ZUNhcmQobWVyY2hhbnRJZGVudGlmaWVyLCBkb2N1bWVudC5kb21haW4oKSwgW3Byb21pc2Vd
KGJvb2wgY2FuTWFrZVBheW1lbnRzKSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS0+cmVzb2x2
ZShjYW5NYWtlUGF5bWVudHMpOwogICAgIH0pOworICAgIHJldHVybiB7IH07CiB9CiAKLXZvaWQg
QXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVy
LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFByb21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVj
KQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHBhc3NlZFByb21p
c2UpCiB7CiAgICAgYXV0byYgZG9jdW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCk7CiAgICAgRE9NV2luZG93JiB3aW5kb3cgPSAqZG9jdW1lbnQuZG9tV2lu
ZG93KCk7CkBAIC03NzEsMTQgKzc1NiwxMiBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBh
eW1lbnRTZXR1cChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBzY3JpcHRFeGVjdXRpb25DbwogICAg
IFN0cmluZyBlcnJvck1lc3NhZ2U7CiAgICAgaWYgKCFjYW5DYWxsQXBwbGVQYXlTZXNzaW9uQVBJ
cyhkb2N1bWVudCwgZXJyb3JNZXNzYWdlKSkgewogICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1l
c3NhZ2UoZXJyb3JNZXNzYWdlKTsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0g
ICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNT
X0VSUiB9OwogICAgIH0KIAogICAgIGlmICghU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpIHsKICAgICAgICAgd2luZG93LnByaW50RXJyb3JNZXNzYWdlKCJNdXN0IGNh
bGwgQXBwbGVQYXlTZXNzaW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBhIHVzZXIgZ2VzdHVyZSBo
YW5kbGVyLiIpOwotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAg
ICAgfQogCiAgICAgUmVmUHRyPERlZmVycmVkUHJvbWlzZT4gcHJvbWlzZShXVEZNb3ZlKHBhc3Nl
ZFByb21pc2UpKTsKQEAgLTc4NywyNCArNzcwLDIzIEBAIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpv
cGVuUGF5bWVudFNldHVwKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIHNjcmlwdEV4ZWN1dGlvbkNv
CiAgICAgcGF5bWVudENvb3JkaW5hdG9yLm9wZW5QYXltZW50U2V0dXAobWVyY2hhbnRJZGVudGlm
aWVyLCBkb2N1bWVudC5kb21haW4oKSwgW3Byb21pc2VdKGJvb2wgcmVzdWx0KSBtdXRhYmxlIHsK
ICAgICAgICAgcHJvbWlzZS0+cmVzb2x2ZShyZXN1bHQpOwogICAgIH0pOworCisgICAgcmV0dXJu
IHsgfTsKIH0KIAotdm9pZCBBcHBsZVBheVNlc3Npb246OmJlZ2luKEV4Y2VwdGlvbkNvZGUmIGVj
KQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpiZWdpbigpCiB7CiAgICAgYXV0
byYgZG9jdW1lbnQgPSAqZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CiAgICAgYXV0byYgd2luZG93ID0gKmRvY3VtZW50LmRvbVdpbmRvdygpOwogCiAgICAgaWYg
KCFjYW5CZWdpbigpKSB7CiAgICAgICAgIHdpbmRvdy5wcmludEVycm9yTWVzc2FnZSgiUGF5bWVu
dCBzZXNzaW9uIGlzIGFscmVhZHkgYWN0aXZlLiIpOwotICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5W
QUxJRF9BQ0NFU1NfRVJSIH07CiAgICAgfQogCiAgICAgaWYgKHBheW1lbnRDb29yZGluYXRvcigp
Lmhhc0FjdGl2ZVNlc3Npb24oKSkgewogICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1lc3NhZ2Uo
IlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iKTsKLQotICAgICAg
ICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAgICAgfQogCiAgICAgVmVjdG9y
PFVSTD4gbGlua0ljb25VUkxzOwpAQCAtODEzLDQwICs3OTUsMzYgQEAgdm9pZCBBcHBsZVBheVNl
c3Npb246OmJlZ2luKEV4Y2VwdGlvbkNvZGUmIGVjKQogCiAgICAgaWYgKCFwYXltZW50Q29vcmRp
bmF0b3IoKS5iZWdpblBheW1lbnRTZXNzaW9uKCp0aGlzLCBkb2N1bWVudC51cmwoKSwgbGlua0lj
b25VUkxzLCBtX3BheW1lbnRSZXF1ZXN0KSkgewogICAgICAgICB3aW5kb3cucHJpbnRFcnJvck1l
c3NhZ2UoIlRoZXJlIGlzIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXltZW50IHNlc3Npb24uIik7
Ci0KLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogICAgIH0KIAog
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogCiAgICAgc2V0UGVuZGluZ0FjdGl2aXR5KHRo
aXMpOworCisgICAgcmV0dXJuIHsgfTsKIH0KIAotdm9pZCBBcHBsZVBheVNlc3Npb246OmFib3J0
KEV4Y2VwdGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjph
Ym9ydCgpCiB7Ci0gICAgaWYgKCFjYW5BYm9ydCgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghY2FuQWJvcnQoKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAg
bV9zdGF0ZSA9IFN0YXRlOjpBYm9ydGVkOwogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmFib3J0
UGF5bWVudFNlc3Npb24oKTsKIAogICAgIGRpZFJlYWNoRmluYWxTdGF0ZSgpOworCisgICAgcmV0
dXJuIHsgfTsKIH0KIAotdm9pZCBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlTWVyY2hhbnRWYWxp
ZGF0aW9uKGNvbnN0IERpY3Rpb25hcnkmIG1lcmNoYW50U2Vzc2lvbkRpY3Rpb25hcnksIEV4Y2Vw
dGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0
ZU1lcmNoYW50VmFsaWRhdGlvbihjb25zdCBEaWN0aW9uYXJ5JiBtZXJjaGFudFNlc3Npb25EaWN0
aW9uYXJ5KQogewotICAgIGlmICghY2FuQ29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICBpZiAoIWNhbkNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9uKCkpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKIAotICAgIGlmICghbWVyY2hhbnRT
ZXNzaW9uRGljdGlvbmFyeS5pbml0aWFsaXplck9iamVjdCgpKSB7Ci0gICAgICAgIGVjID0gVHlw
ZUVycm9yOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghbWVyY2hhbnRTZXNzaW9u
RGljdGlvbmFyeS5pbml0aWFsaXplck9iamVjdCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yIH07CiAKICAgICBhdXRvJiBkb2N1bWVudCA9ICpkb3duY2FzdDxEb2N1bWVu
dD4oc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBhdXRvJiB3aW5kb3cgPSAqZG9jdW1l
bnQuZG9tV2luZG93KCk7CkBAIC04NTUsMTQgKzgzMywxNCBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lv
bjo6Y29tcGxldGVNZXJjaGFudFZhbGlkYXRpb24oY29uc3QgRGljdGlvbmFyeSYgbWVyY2hhbnRT
ZXNzaQogICAgIGF1dG8gbWVyY2hhbnRTZXNzaW9uID0gUGF5bWVudE1lcmNoYW50U2Vzc2lvbjo6
ZnJvbUpTKCptZXJjaGFudFNlc3Npb25EaWN0aW9uYXJ5LmV4ZWNTdGF0ZSgpLCBtZXJjaGFudFNl
c3Npb25EaWN0aW9uYXJ5LmluaXRpYWxpemVyT2JqZWN0KCksIGVycm9yTWVzc2FnZSk7CiAgICAg
aWYgKCFtZXJjaGFudFNlc3Npb24pIHsKICAgICAgICAgd2luZG93LnByaW50RXJyb3JNZXNzYWdl
KGVycm9yTWVzc2FnZSk7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAg
ICByZXR1cm47CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIg
fTsKICAgICB9CiAKICAgICBtX21lcmNoYW50VmFsaWRhdGlvblN0YXRlID0gTWVyY2hhbnRWYWxp
ZGF0aW9uU3RhdGU6OlZhbGlkYXRpb25Db21wbGV0ZTsKICAgICBwYXltZW50Q29vcmRpbmF0b3Io
KS5jb21wbGV0ZU1lcmNoYW50VmFsaWRhdGlvbigqbWVyY2hhbnRTZXNzaW9uKTsKLX0KIAorICAg
IHJldHVybiB7IH07Cit9CiAKIHN0YXRpYyBPcHRpb25hbDxQYXltZW50QXV0aG9yaXphdGlvblN0
YXR1cz4gdG9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyh1bnNpZ25lZCBzaG9ydCBzdGF0dXMp
CiB7CkBAIC04OTYsMTQzICs4NzQsMTE2IEBAIHN0YXRpYyBPcHRpb25hbDxQYXltZW50QXV0aG9y
aXphdGlvblN0YXR1cz4gdG9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyh1bnNpZ25lCiAgICAg
fQogfQogCi12b2lkIEFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNlbGVj
dGlvbih1bnNpZ25lZCBzaG9ydCBzdGF0dXMsIGNvbnN0IERpY3Rpb25hcnkmIG5ld1RvdGFsRGlj
dGlvbmFyeSwgY29uc3QgQXJyYXlWYWx1ZSYgbmV3TGluZUl0ZW1zQXJyYXksIEV4Y2VwdGlvbkNv
ZGUmIGVjKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBw
aW5nTWV0aG9kU2VsZWN0aW9uKHVuc2lnbmVkIHNob3J0IHN0YXR1cywgY29uc3QgRGljdGlvbmFy
eSYgbmV3VG90YWxEaWN0aW9uYXJ5LCBjb25zdCBBcnJheVZhbHVlJiBuZXdMaW5lSXRlbXNBcnJh
eSkKIHsKLSAgICBpZiAoIWNhbkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oKSkgewot
ICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICBpZiAoIWNhbkNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oKSkKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgYXV0byBhdXRo
b3JpemF0aW9uU3RhdHVzID0gdG9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhzdGF0dXMpOwot
ICAgIGlmICghYXV0aG9yaXphdGlvblN0YXR1cykgewotICAgICAgICBlYyA9IElOVkFMSURfQUND
RVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIWF1dGhvcml6YXRpb25T
dGF0dXMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsK
IAogICAgIGF1dG8mIHdpbmRvdyA9ICpkb3duY2FzdDxEb2N1bWVudD4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKS0+ZG9tV2luZG93KCk7CiAgICAgYXV0byBuZXdUb3RhbCA9IGNyZWF0ZUxpbmVJ
dGVtKHdpbmRvdywgbmV3VG90YWxEaWN0aW9uYXJ5KTsKLSAgICBpZiAoIW5ld1RvdGFsKSB7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIGlmICghbmV3VG90YWwpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FD
Q0VTU19FUlIgfTsKIAotICAgIGlmICghUGF5bWVudFJlcXVlc3RWYWxpZGF0b3Iod2luZG93KS52
YWxpZGF0ZVRvdGFsKCpuZXdUb3RhbCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFQYXltZW50UmVxdWVzdFZhbGlk
YXRvcih3aW5kb3cpLnZhbGlkYXRlVG90YWwoKm5ld1RvdGFsKSkKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgYXV0byBuZXdMaW5lSXRlbXMg
PSBjcmVhdGVMaW5lSXRlbXMod2luZG93LCBuZXdMaW5lSXRlbXNBcnJheSk7Ci0gICAgaWYgKCFu
ZXdMaW5lSXRlbXMpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgaWYgKCFuZXdMaW5lSXRlbXMpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsKIAogICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOwogICAgIFBheW1lbnRSZXF1ZXN0OjpUb3RhbEFuZExpbmVJdGVtcyB0b3RhbEFuZExp
bmVJdGVtczsKICAgICB0b3RhbEFuZExpbmVJdGVtcy50b3RhbCA9ICpuZXdUb3RhbDsKICAgICB0
b3RhbEFuZExpbmVJdGVtcy5saW5lSXRlbXMgPSAqbmV3TGluZUl0ZW1zOwogICAgIHBheW1lbnRD
b29yZGluYXRvcigpLmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oKmF1dGhvcml6YXRp
b25TdGF0dXMsIHRvdGFsQW5kTGluZUl0ZW1zKTsKKworICAgIHJldHVybiB7IH07CiB9CiAKLXZv
aWQgQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNp
Z25lZCBzaG9ydCBzdGF0dXMsIGNvbnN0IEFycmF5VmFsdWUmIG5ld1NoaXBwaW5nTWV0aG9kc0Fy
cmF5LCBjb25zdCBEaWN0aW9uYXJ5JiBuZXdUb3RhbERpY3Rpb25hcnksIGNvbnN0IEFycmF5VmFs
dWUmIG5ld0xpbmVJdGVtc0FycmF5LCBFeGNlcHRpb25Db2RlJiBlYykKK0V4Y2VwdGlvbk9yPHZv
aWQ+IEFwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5z
aWduZWQgc2hvcnQgc3RhdHVzLCBjb25zdCBBcnJheVZhbHVlJiBuZXdTaGlwcGluZ01ldGhvZHNB
cnJheSwgY29uc3QgRGljdGlvbmFyeSYgbmV3VG90YWxEaWN0aW9uYXJ5LCBjb25zdCBBcnJheVZh
bHVlJiBuZXdMaW5lSXRlbXNBcnJheSkKIHsKLSAgICBpZiAoIWNhbkNvbXBsZXRlU2hpcHBpbmdD
b250YWN0U2VsZWN0aW9uKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFjYW5Db21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbigpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1Nf
RVJSIH07CiAKICAgICBhdXRvIGF1dGhvcml6YXRpb25TdGF0dXMgPSB0b1BheW1lbnRBdXRob3Jp
emF0aW9uU3RhdHVzKHN0YXR1cyk7Ci0gICAgaWYgKCFhdXRob3JpemF0aW9uU3RhdHVzKSB7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIGlmICghYXV0aG9yaXphdGlvblN0YXR1cykKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgYXV0byYgd2luZG93ID0gKmRvd25jYXN0PERv
Y3VtZW50PihzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLT5kb21XaW5kb3coKTsKIAogICAgIGF1
dG8gbmV3U2hpcHBpbmdNZXRob2RzID0gY3JlYXRlU2hpcHBpbmdNZXRob2RzKHdpbmRvdywgbmV3
U2hpcHBpbmdNZXRob2RzQXJyYXkpOwotICAgIGlmICghbmV3U2hpcHBpbmdNZXRob2RzKSB7Ci0g
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQor
ICAgIGlmICghbmV3U2hpcHBpbmdNZXRob2RzKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAKICAgICBhdXRvIG5ld1RvdGFsID0gY3JlYXRlTGluZUl0
ZW0od2luZG93LCBuZXdUb3RhbERpY3Rpb25hcnkpOwotICAgIGlmICghbmV3VG90YWwpIHsKLSAg
ICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Cisg
ICAgaWYgKCFuZXdUb3RhbCkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUND
RVNTX0VSUiB9OwogCi0gICAgaWYgKCFQYXltZW50UmVxdWVzdFZhbGlkYXRvcih3aW5kb3cpLnZh
bGlkYXRlVG90YWwoKm5ld1RvdGFsKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIVBheW1lbnRSZXF1ZXN0VmFsaWRh
dG9yKHdpbmRvdykudmFsaWRhdGVUb3RhbCgqbmV3VG90YWwpKQorICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAKICAgICBhdXRvIG5ld0xpbmVJdGVtcyA9
IGNyZWF0ZUxpbmVJdGVtcyh3aW5kb3csIG5ld0xpbmVJdGVtc0FycmF5KTsKLSAgICBpZiAoIW5l
d0xpbmVJdGVtcykgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KKyAgICBpZiAoIW5ld0xpbmVJdGVtcykKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRlOjpB
Y3RpdmU7CiAgICAgUGF5bWVudFJlcXVlc3Q6OlRvdGFsQW5kTGluZUl0ZW1zIHRvdGFsQW5kTGlu
ZUl0ZW1zOwogICAgIHRvdGFsQW5kTGluZUl0ZW1zLnRvdGFsID0gKm5ld1RvdGFsOwogICAgIHRv
dGFsQW5kTGluZUl0ZW1zLmxpbmVJdGVtcyA9ICpuZXdMaW5lSXRlbXM7CiAgICAgcGF5bWVudENv
b3JkaW5hdG9yKCkuY29tcGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24oKmF1dGhvcml6YXRp
b25TdGF0dXMsICpuZXdTaGlwcGluZ01ldGhvZHMsIHRvdGFsQW5kTGluZUl0ZW1zKTsKKworICAg
IHJldHVybiB7IH07CiB9CiAKLXZvaWQgQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVBheW1lbnRN
ZXRob2RTZWxlY3Rpb24oY29uc3QgRGljdGlvbmFyeSYgbmV3VG90YWxEaWN0aW9uYXJ5LCBjb25z
dCBBcnJheVZhbHVlJiBuZXdMaW5lSXRlbXNBcnJheSwgRXhjZXB0aW9uQ29kZSYgZWMpCitFeGNl
cHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVj
dGlvbihjb25zdCBEaWN0aW9uYXJ5JiBuZXdUb3RhbERpY3Rpb25hcnksIGNvbnN0IEFycmF5VmFs
dWUmIG5ld0xpbmVJdGVtc0FycmF5KQogewotICAgIGlmICghY2FuQ29tcGxldGVQYXltZW50TWV0
aG9kU2VsZWN0aW9uKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFjYW5Db21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24oKSkKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9
OwogCi0gICAgYXV0byYgd2luZG93ID0gKmRvd25jYXN0PERvY3VtZW50PihzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpLT5kb21XaW5kb3coKTsKKyAgICBhdXRvJiB3aW5kb3cgPSAqZG93bmNhc3Q8
RG9jdW1lbnQ+KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpLmRvbVdpbmRvdygpOwogICAgIGF1
dG8gbmV3VG90YWwgPSBjcmVhdGVMaW5lSXRlbSh3aW5kb3csIG5ld1RvdGFsRGljdGlvbmFyeSk7
Ci0gICAgaWYgKCFuZXdUb3RhbCkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIW5ld1RvdGFsKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07CiAKLSAgICBpZiAoIVBheW1lbnRS
ZXF1ZXN0VmFsaWRhdG9yKHdpbmRvdykudmFsaWRhdGVUb3RhbCgqbmV3VG90YWwpKSB7Ci0gICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAg
IGlmICghUGF5bWVudFJlcXVlc3RWYWxpZGF0b3Iod2luZG93KS52YWxpZGF0ZVRvdGFsKCpuZXdU
b3RhbCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19FUlIgfTsK
IAogICAgIGF1dG8gbmV3TGluZUl0ZW1zID0gY3JlYXRlTGluZUl0ZW1zKHdpbmRvdywgbmV3TGlu
ZUl0ZW1zQXJyYXkpOwotICAgIGlmICghbmV3TGluZUl0ZW1zKSB7Ci0gICAgICAgIGVjID0gSU5W
QUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghbmV3TGlu
ZUl0ZW1zKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSU5WQUxJRF9BQ0NFU1NfRVJSIH07
CiAKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKICAgICBQYXltZW50UmVxdWVzdDo6VG90
YWxBbmRMaW5lSXRlbXMgdG90YWxBbmRMaW5lSXRlbXM7CiAgICAgdG90YWxBbmRMaW5lSXRlbXMu
dG90YWwgPSAqbmV3VG90YWw7CiAgICAgdG90YWxBbmRMaW5lSXRlbXMubGluZUl0ZW1zID0gKm5l
d0xpbmVJdGVtczsKICAgICBwYXltZW50Q29vcmRpbmF0b3IoKS5jb21wbGV0ZVBheW1lbnRNZXRo
b2RTZWxlY3Rpb24odG90YWxBbmRMaW5lSXRlbXMpOworCisgICAgcmV0dXJuIHsgfTsKIH0KIAot
dm9pZCBBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlUGF5bWVudCh1bnNpZ25lZCBzaG9ydCBzdGF0
dXMsIEV4Y2VwdGlvbkNvZGUmIGVjKQorRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9u
Ojpjb21wbGV0ZVBheW1lbnQodW5zaWduZWQgc2hvcnQgc3RhdHVzKQogewotICAgIGlmICghY2Fu
Q29tcGxldGVQYXltZW50KCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFjYW5Db21wbGV0ZVBheW1lbnQoKSkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElOVkFMSURfQUNDRVNTX0VSUiB9OwogCiAgICAgYXV0
byBhdXRob3JpemF0aW9uU3RhdHVzID0gdG9QYXltZW50QXV0aG9yaXphdGlvblN0YXR1cyhzdGF0
dXMpOwotICAgIGlmICghYXV0aG9yaXphdGlvblN0YXR1cykgewotICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIWF1dGhvcml6
YXRpb25TdGF0dXMpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJTlZBTElEX0FDQ0VTU19F
UlIgfTsKIAogICAgIHBheW1lbnRDb29yZGluYXRvcigpLmNvbXBsZXRlUGF5bWVudFNlc3Npb24o
KmF1dGhvcml6YXRpb25TdGF0dXMpOwogCiAgICAgaWYgKCFpc0ZpbmFsU3RhdGVTdGF0dXMoKmF1
dGhvcml6YXRpb25TdGF0dXMpKSB7CiAgICAgICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwot
ICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogCiAgICAgbV9zdGF0
ZSA9IFN0YXRlOjpDb21wbGV0ZWQ7CiAgICAgdW5zZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7Cisg
ICAgcmV0dXJuIHsgfTsKIH0KIAogdm9pZCBBcHBsZVBheVNlc3Npb246OnZhbGlkYXRlTWVyY2hh
bnQoY29uc3QgVVJMJiB2YWxpZGF0aW9uVVJMKQpAQCAtMTA1Myw4ICsxMDA0LDggQEAgdm9pZCBB
cHBsZVBheVNlc3Npb246OnZhbGlkYXRlTWVyY2hhbnQoY29uc3QgVVJMJiB2YWxpZGF0aW9uVVJM
KQogCiAgICAgbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZSA9IE1lcmNoYW50VmFsaWRhdGlvblN0
YXRlOjpWYWxpZGF0aW5nTWVyY2hhbnQ7CiAKLSAgICBSZWZQdHI8QXBwbGVQYXlWYWxpZGF0ZU1l
cmNoYW50RXZlbnQ+IGV2ZW50ID0gQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZlbnQ6OmNyZWF0
ZShldmVudE5hbWVzKCkudmFsaWRhdGVtZXJjaGFudEV2ZW50LCB2YWxpZGF0aW9uVVJMKTsKLSAg
ICBkaXNwYXRjaEV2ZW50KCpldmVudCk7CisgICAgYXV0byBldmVudCA9IEFwcGxlUGF5VmFsaWRh
dGVNZXJjaGFudEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnZhbGlkYXRlbWVyY2hhbnRFdmVu
dCwgdmFsaWRhdGlvblVSTCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSk7CiB9CiAK
IHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRBdXRob3JpemVQYXltZW50KGNvbnN0IFBheW1lbnQm
IHBheW1lbnQpCkBAIC0xMDYzLDggKzEwMTQsOCBAQCB2b2lkIEFwcGxlUGF5U2Vzc2lvbjo6ZGlk
QXV0aG9yaXplUGF5bWVudChjb25zdCBQYXltZW50JiBwYXltZW50KQogCiAgICAgbV9zdGF0ZSA9
IFN0YXRlOjpBdXRob3JpemVkOwogCi0gICAgUmVmUHRyPEFwcGxlUGF5UGF5bWVudEF1dGhvcml6
ZWRFdmVudD4gZXZlbnQgPSBBcHBsZVBheVBheW1lbnRBdXRob3JpemVkRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkucGF5bWVudGF1dGhvcml6ZWRFdmVudCwgcGF5bWVudCk7Ci0gICAgZGlzcGF0
Y2hFdmVudCgqZXZlbnQpOworICAgIGF1dG8gZXZlbnQgPSBBcHBsZVBheVBheW1lbnRBdXRob3Jp
emVkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkucGF5bWVudGF1dGhvcml6ZWRFdmVudCwgcGF5
bWVudCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSk7CiB9CiAKIHZvaWQgQXBwbGVQ
YXlTZXNzaW9uOjpkaWRTZWxlY3RTaGlwcGluZ01ldGhvZChjb25zdCBQYXltZW50UmVxdWVzdDo6
U2hpcHBpbmdNZXRob2QmIHNoaXBwaW5nTWV0aG9kKQpAQCAtMTA3Nyw4ICsxMDI4LDggQEAgdm9p
ZCBBcHBsZVBheVNlc3Npb246OmRpZFNlbGVjdFNoaXBwaW5nTWV0aG9kKGNvbnN0IFBheW1lbnRS
ZXF1ZXN0OjpTaGlwcGluZ01ldGgKICAgICB9CiAKICAgICBtX3N0YXRlID0gU3RhdGU6OlNoaXBw
aW5nTWV0aG9kU2VsZWN0ZWQ7Ci0gICAgUmVmUHRyPEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxl
Y3RlZEV2ZW50PiBldmVudCA9IEFwcGxlUGF5U2hpcHBpbmdNZXRob2RTZWxlY3RlZEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nbWV0aG9kc2VsZWN0ZWRFdmVudCwgc2hpcHBpbmdN
ZXRob2QpOwotICAgIGRpc3BhdGNoRXZlbnQoKmV2ZW50KTsKKyAgICBhdXRvIGV2ZW50ID0gQXBw
bGVQYXlTaGlwcGluZ01ldGhvZFNlbGVjdGVkRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuc2hp
cHBpbmdtZXRob2RzZWxlY3RlZEV2ZW50LCBzaGlwcGluZ01ldGhvZCk7CisgICAgZGlzcGF0Y2hF
dmVudChldmVudC5nZXQoKSk7CiB9CiAKIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxlY3RT
aGlwcGluZ0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29udGFjdCkKQEAg
LTEwOTEsOCArMTA0Miw4IEBAIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxlY3RTaGlwcGlu
Z0NvbnRhY3QoY29uc3QgUGF5bWVudENvbnRhY3QmIHNoaXBwaW5nQ29uCiAgICAgfQogCiAgICAg
bV9zdGF0ZSA9IFN0YXRlOjpTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZDsKLSAgICBSZWZQdHI8QXBw
bGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2ZW50PiBldmVudCA9IEFwcGxlUGF5U2hpcHBp
bmdDb250YWN0U2VsZWN0ZWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5zaGlwcGluZ2NvbnRh
Y3RzZWxlY3RlZEV2ZW50LCBzaGlwcGluZ0NvbnRhY3QpOwotICAgIGRpc3BhdGNoRXZlbnQoKmV2
ZW50KTsKKyAgICBhdXRvIGV2ZW50ID0gQXBwbGVQYXlTaGlwcGluZ0NvbnRhY3RTZWxlY3RlZEV2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLnNoaXBwaW5nY29udGFjdHNlbGVjdGVkRXZlbnQsIHNo
aXBwaW5nQ29udGFjdCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSk7CiB9CiAKIHZv
aWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRTZWxlY3RQYXltZW50TWV0aG9kKGNvbnN0IFBheW1lbnRN
ZXRob2QmIHBheW1lbnRNZXRob2QpCkBAIC0xMTA1LDggKzEwNTYsOCBAQCB2b2lkIEFwcGxlUGF5
U2Vzc2lvbjo6ZGlkU2VsZWN0UGF5bWVudE1ldGhvZChjb25zdCBQYXltZW50TWV0aG9kJiBwYXlt
ZW50TWV0aG9kKQogICAgIH0KIAogICAgIG1fc3RhdGUgPSBTdGF0ZTo6UGF5bWVudE1ldGhvZFNl
bGVjdGVkOwotICAgIFJlZlB0cjxBcHBsZVBheVBheW1lbnRNZXRob2RTZWxlY3RlZEV2ZW50PiBl
dmVudCA9IEFwcGxlUGF5UGF5bWVudE1ldGhvZFNlbGVjdGVkRXZlbnQ6OmNyZWF0ZShldmVudE5h
bWVzKCkucGF5bWVudG1ldGhvZHNlbGVjdGVkRXZlbnQsIHBheW1lbnRNZXRob2QpOwotICAgIGRp
c3BhdGNoRXZlbnQoKmV2ZW50KTsKKyAgICBhdXRvIGV2ZW50ID0gQXBwbGVQYXlQYXltZW50TWV0
aG9kU2VsZWN0ZWRFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5wYXltZW50bWV0aG9kc2VsZWN0
ZWRFdmVudCwgcGF5bWVudE1ldGhvZCk7CisgICAgZGlzcGF0Y2hFdmVudChldmVudC5nZXQoKSk7
CiB9CiAKIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRDYW5jZWxQYXltZW50KCkKQEAgLTExMTUs
OCArMTA2Niw4IEBAIHZvaWQgQXBwbGVQYXlTZXNzaW9uOjpkaWRDYW5jZWxQYXltZW50KCkKIAog
ICAgIG1fc3RhdGUgPSBTdGF0ZTo6Q2FuY2VsZWQ7CiAKLSAgICBSZWZQdHI8RXZlbnQ+IGV2ZW50
ID0gRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuY2FuY2VsRXZlbnQsIGZhbHNlLCBmYWxzZSk7
Ci0gICAgZGlzcGF0Y2hFdmVudCgqZXZlbnQpOworICAgIGF1dG8gZXZlbnQgPSBFdmVudDo6Y3Jl
YXRlKGV2ZW50TmFtZXMoKS5jYW5jZWxFdmVudCwgZmFsc2UsIGZhbHNlKTsKKyAgICBkaXNwYXRj
aEV2ZW50KGV2ZW50LmdldCgpKTsKIAogICAgIGRpZFJlYWNoRmluYWxTdGF0ZSgpOwogfQpAQCAt
MTE1Nyw3ICsxMTA4LDcgQEAgdm9pZCBBcHBsZVBheVNlc3Npb246OnN0b3AoKQogCiBQYXltZW50
Q29vcmRpbmF0b3ImIEFwcGxlUGF5U2Vzc2lvbjo6cGF5bWVudENvb3JkaW5hdG9yKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSktPmZyYW1lKCktPm1haW5GcmFtZSgpLnBheW1lbnRDb29yZGluYXRvcigpOworICAgIHJldHVy
biBkb3duY2FzdDxEb2N1bWVudD4oKnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkuZnJhbWUoKS0+
bWFpbkZyYW1lKCkucGF5bWVudENvb3JkaW5hdG9yKCk7CiB9CiAKIGJvb2wgQXBwbGVQYXlTZXNz
aW9uOjpjYW5CZWdpbigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheVNlc3Npb24uaAppbmRleCBhMzgxYzE2MjUwM2M1MmQ2OGJlZGVmMjc1ZGFm
MDhlZTlkNjI0ZDQ1Li42NDkxNzFlNGVlMmNmZDlmMzUyODg4NGZjYmQ0YTMyYjQ0ZWVjZGFiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9u
LmgKQEAgLTI5LDcgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCi0jaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiUGF5bWVudFJlcXVlc3QuaCIKICNpbmNsdWRl
IDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ4LDcgKzQ4LDcg
QEAgY2xhc3MgVVJMOwogCiBjbGFzcyBBcHBsZVBheVNlc3Npb24gZmluYWwgOiBwdWJsaWMgUmVm
Q291bnRlZDxBcHBsZVBheVNlc3Npb24+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMg
RXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxB
cHBsZVBheVNlc3Npb24+IGNyZWF0ZShEb2N1bWVudCYsIHVuc2lnbmVkIHZlcnNpb24sIGNvbnN0
IERpY3Rpb25hcnkmLCBFeGNlcHRpb25Db2RlJik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJl
ZjxBcHBsZVBheVNlc3Npb24+PiBjcmVhdGUoRG9jdW1lbnQmLCB1bnNpZ25lZCB2ZXJzaW9uLCBj
b25zdCBEaWN0aW9uYXJ5Jik7CiAgICAgdmlydHVhbCB+QXBwbGVQYXlTZXNzaW9uKCk7CiAKICAg
ICAvLyBET00gQVBJLgpAQCAtNjEsMTggKzYxLDE4IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX1BJTl9JTkNPUlJFQ1QgPSA2OwogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzaG9ydCBTVEFUVVNfUElOX0xPQ0tPVVQgPSA3OwogCi0gICAgc3RhdGlj
IGJvb2wgc3VwcG9ydHNWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNpZ25lZCB2
ZXJzaW9uLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIGJvb2wgY2FuTWFrZVBheW1lbnRz
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIHZv
aWQgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgc3RhdGljIHZvaWQgb3BlblBheW1lbnRTZXR1cChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8Ym9vbD4gc3VwcG9ydHNWZXJzaW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCB1bnNp
Z25lZCB2ZXJzaW9uKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8Ym9vbD4gY2FuTWFrZVBheW1l
bnRzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9p
ZD4gY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IFN0cmluZyYgbWVyY2hhbnRJZGVudGlmaWVyLCBSZWY8RGVmZXJyZWRQcm9taXNlPiYm
KTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gb3BlblBheW1lbnRTZXR1cChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiBtZXJjaGFudElkZW50aWZpZXIsIFJlZjxE
ZWZlcnJlZFByb21pc2U+JiYpOwogCi0gICAgdm9pZCBiZWdpbihFeGNlcHRpb25Db2RlJik7Ci0g
ICAgdm9pZCBhYm9ydChFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjb21wbGV0ZU1lcmNoYW50
VmFsaWRhdGlvbihjb25zdCBEaWN0aW9uYXJ5JiBtZXJjaGFudFNlc3Npb25EaWN0aW9uYXJ5LCBF
eGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9u
KHVuc2lnbmVkIHNob3J0IHN0YXR1cywgY29uc3QgRGljdGlvbmFyeSYgbmV3VG90YWwsIGNvbnN0
IEFycmF5VmFsdWUmIG5ld0xpbmVJdGVtcywgRXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgY29t
cGxldGVTaGlwcGluZ0NvbnRhY3RTZWxlY3Rpb24odW5zaWduZWQgc2hvcnQgc3RhdHVzLCBjb25z
dCBBcnJheVZhbHVlJiBuZXdTaGlwcGluZ01ldGhvZHMsIGNvbnN0IERpY3Rpb25hcnkmIG5ld1Rv
dGFsLCBjb25zdCBBcnJheVZhbHVlJiBuZXdMaW5lSXRlbXMsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICB2b2lkIGNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihjb25zdCBEaWN0aW9uYXJ5JiBu
ZXdUb3RhbCwgY29uc3QgQXJyYXlWYWx1ZSYgbmV3TGluZUl0ZW1zLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBjb21wbGV0ZVBheW1lbnQodW5zaWduZWQgc2hvcnQgc3RhdHVzLCBFeGNlcHRp
b25Db2RlJik7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gYmVnaW4oKTsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBhYm9ydCgpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlTWVyY2hhbnRW
YWxpZGF0aW9uKGNvbnN0IERpY3Rpb25hcnkmIG1lcmNoYW50U2Vzc2lvbkRpY3Rpb25hcnkpOwor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24odW5z
aWduZWQgc2hvcnQgc3RhdHVzLCBjb25zdCBEaWN0aW9uYXJ5JiBuZXdUb3RhbCwgY29uc3QgQXJy
YXlWYWx1ZSYgbmV3TGluZUl0ZW1zKTsKKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBjb21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNpZ25lZCBzaG9ydCBzdGF0dXMsIGNvbnN0IEFycmF5
VmFsdWUmIG5ld1NoaXBwaW5nTWV0aG9kcywgY29uc3QgRGljdGlvbmFyeSYgbmV3VG90YWwsIGNv
bnN0IEFycmF5VmFsdWUmIG5ld0xpbmVJdGVtcyk7CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gY29t
cGxldGVQYXltZW50TWV0aG9kU2VsZWN0aW9uKGNvbnN0IERpY3Rpb25hcnkmIG5ld1RvdGFsLCBj
b25zdCBBcnJheVZhbHVlJiBuZXdMaW5lSXRlbXMpOworICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IGNv
bXBsZXRlUGF5bWVudCh1bnNpZ25lZCBzaG9ydCBzdGF0dXMpOwogCiAgICAgY29uc3QgUGF5bWVu
dFJlcXVlc3QmIHBheW1lbnRSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9wYXltZW50UmVxdWVz
dDsgfQogCkBAIC0xMjYsMTMgKzEyNiwxMyBAQCBwcml2YXRlOgogCiAgICAgICAgIEFib3J0ZWQs
CiAgICAgICAgIENhbmNlbGVkLAotICAgIH0gbV9zdGF0ZTsKKyAgICB9IG1fc3RhdGUgeyBTdGF0
ZTo6SWRsZSB9OwogCiAgICAgZW51bSBjbGFzcyBNZXJjaGFudFZhbGlkYXRpb25TdGF0ZSB7CiAg
ICAgICAgIElkbGUsCiAgICAgICAgIFZhbGlkYXRpbmdNZXJjaGFudCwKICAgICAgICAgVmFsaWRh
dGlvbkNvbXBsZXRlLAotICAgIH0gbV9tZXJjaGFudFZhbGlkYXRpb25TdGF0ZTsKKyAgICB9IG1f
bWVyY2hhbnRWYWxpZGF0aW9uU3RhdGUgeyBNZXJjaGFudFZhbGlkYXRpb25TdGF0ZTo6SWRsZSB9
OwogCiAgICAgY29uc3QgUGF5bWVudFJlcXVlc3QgbV9wYXltZW50UmVxdWVzdDsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5pZGwK
aW5kZXggOGZhNmNjNzVkMDM3NDYwMDJhN2FlYmZjOTU1YmQ1ZGVlMDUyYWI3YS4uMGQ3MGQxNDEw
OGMwNGIyM2JkYTc4YjQxZDhkZGEwZWMyOGJhNzQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmlkbApAQCAtMjgsNyArMjgsNyBA
QAogICAgIENvbmRpdGlvbmFsPUFQUExFX1BBWSwKICAgICBDb25zdHJ1Y3Rvcih1bnNpZ25lZCBs
b25nIHZlcnNpb24sIERpY3Rpb25hcnkgcGF5bWVudFJlcXVlc3QpLAogICAgIENvbnN0cnVjdG9y
Q2FsbFdpdGg9RG9jdW1lbnQsCi0gICAgQ29uc3RydWN0b3JNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlv
biwKKyAgICBDb25zdHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uLAogICAgIEVuYWJsZWRCeVNldHRp
bmc9QXBwbGVQYXksCiBdIGludGVyZmFjZSBBcHBsZVBheVNlc3Npb24gOiBFdmVudFRhcmdldCB7
CiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX1NVQ0NFU1MgPSAwOwpAQCAtNDAsMTgg
KzQwLDE4IEBACiAgICAgY29uc3QgdW5zaWduZWQgc2hvcnQgU1RBVFVTX1BJTl9JTkNPUlJFQ1Qg
PSA2OwogICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0IFNUQVRVU19QSU5fTE9DS09VVCA9IDc7CiAK
LSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5VGhyb3dMZWdhY3lFeGNl
cHRpb25dIHN0YXRpYyBib29sZWFuIHN1cHBvcnRzVmVyc2lvbih1bnNpZ25lZCBsb25nIHZlcnNp
b24pOwotICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0xlZ2Fj
eUV4Y2VwdGlvbl0gc3RhdGljIGJvb2xlYW4gY2FuTWFrZVBheW1lbnRzKCk7Ci0gICAgW0NhbGxX
aXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIE1heVRocm93TGVnYWN5RXhjZXB0aW9uXSBzdGF0
aWMgUHJvbWlzZSBjYW5NYWtlUGF5bWVudHNXaXRoQWN0aXZlQ2FyZChET01TdHJpbmcgbWVyY2hh
bnRJZGVudGlmaWVyKTsKLSAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgTWF5
VGhyb3dMZWdhY3lFeGNlcHRpb25dIHN0YXRpYyBQcm9taXNlIG9wZW5QYXltZW50U2V0dXAoRE9N
U3RyaW5nIG1lcmNoYW50SWRlbnRpZmllcik7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBzdGF0aWMgYm9vbGVhbiBzdXBwb3J0c1ZlcnNp
b24odW5zaWduZWQgbG9uZyB2ZXJzaW9uKTsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgTWF5VGhyb3dFeGNlcHRpb25dIHN0YXRpYyBib29sZWFuIGNhbk1ha2VQYXltZW50
cygpOworICAgIFtDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gc3RhdGljIFByb21pc2UgY2FuTWFrZVBheW1lbnRzV2l0aEFjdGl2ZUNhcmQoRE9NU3Ry
aW5nIG1lcmNoYW50SWRlbnRpZmllcik7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIE1heVRocm93RXhjZXB0aW9uXSBzdGF0aWMgUHJvbWlzZSBvcGVuUGF5bWVudFNldHVw
KERPTVN0cmluZyBtZXJjaGFudElkZW50aWZpZXIpOwogCi0gICAgW01heVRocm93TGVnYWN5RXhj
ZXB0aW9uXSB2b2lkIGJlZ2luKCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lk
IGFib3J0KCk7Ci0gICAgW01heVRocm93TGVnYWN5RXhjZXB0aW9uXSB2b2lkIGNvbXBsZXRlTWVy
Y2hhbnRWYWxpZGF0aW9uKERpY3Rpb25hcnkgbWVyY2hhbnRTZXNzaW9uKTsKLSAgICBbQ3VzdG9t
LCBNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKHVuc2lnbmVkIHNob3J0IHN0YXR1cywgRGljdGlvbmFyeSBuZXdUb3RhbCwgc2VxdWVu
Y2U8RGljdGlvbmFyeT4gbmV3TGluZUl0ZW1zKTsKLSAgICBbQ3VzdG9tLCBNYXlUaHJvd0xlZ2Fj
eUV4Y2VwdGlvbl0gdm9pZCBjb21wbGV0ZVNoaXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNpZ25l
ZCBzaG9ydCBzdGF0dXMsIHNlcXVlbmNlPERpY3Rpb25hcnk+IG5ld1NoaXBwaW5nTWV0aG9kcywg
RGljdGlvbmFyeSBuZXdUb3RhbCwgc2VxdWVuY2U8RGljdGlvbmFyeT4gbmV3TGluZUl0ZW1zKTsK
LSAgICBbQ3VzdG9tLCBNYXlUaHJvd0xlZ2FjeUV4Y2VwdGlvbl0gdm9pZCBjb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24oRGljdGlvbmFyeSBuZXdUb3RhbCwgc2VxdWVuY2U8RGljdGlvbmFy
eT4gbmV3TGluZUl0ZW1zKTsKLSAgICBbTWF5VGhyb3dMZWdhY3lFeGNlcHRpb25dIHZvaWQgY29t
cGxldGVQYXltZW50KHVuc2lnbmVkIHNob3J0IHN0YXR1cyk7CisgICAgW01heVRocm93RXhjZXB0
aW9uXSB2b2lkIGJlZ2luKCk7CisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIGFib3J0KCk7
CisgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIGNvbXBsZXRlTWVyY2hhbnRWYWxpZGF0aW9u
KERpY3Rpb25hcnkgbWVyY2hhbnRTZXNzaW9uKTsKKyAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBjb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2VsZWN0aW9uKHVuc2lnbmVkIHNob3J0
IHN0YXR1cywgRGljdGlvbmFyeSBuZXdUb3RhbCwgc2VxdWVuY2U8RGljdGlvbmFyeT4gbmV3TGlu
ZUl0ZW1zKTsKKyAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2VwdGlvbl0gdm9pZCBjb21wbGV0ZVNo
aXBwaW5nQ29udGFjdFNlbGVjdGlvbih1bnNpZ25lZCBzaG9ydCBzdGF0dXMsIHNlcXVlbmNlPERp
Y3Rpb25hcnk+IG5ld1NoaXBwaW5nTWV0aG9kcywgRGljdGlvbmFyeSBuZXdUb3RhbCwgc2VxdWVu
Y2U8RGljdGlvbmFyeT4gbmV3TGluZUl0ZW1zKTsKKyAgICBbQ3VzdG9tLCBNYXlUaHJvd0V4Y2Vw
dGlvbl0gdm9pZCBjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxlY3Rpb24oRGljdGlvbmFyeSBuZXdU
b3RhbCwgc2VxdWVuY2U8RGljdGlvbmFyeT4gbmV3TGluZUl0ZW1zKTsKKyAgICBbTWF5VGhyb3dF
eGNlcHRpb25dIHZvaWQgY29tcGxldGVQYXltZW50KHVuc2lnbmVkIHNob3J0IHN0YXR1cyk7CiAK
ICAgICBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9udmFsaWRhdGVtZXJjaGFudDsKICAgICBhdHRy
aWJ1dGUgRXZlbnRIYW5kbGVyIG9ucGF5bWVudG1ldGhvZHNlbGVjdGVkOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcHBsZVBheVNlc3Npb25DdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBcHBsZVBheVNlc3Npb25DdXN0b20uY3BwCmlu
ZGV4IDJkM2E1ZmU2MTI4MDJmOTFjOTczNmY1NjQzYjllNWU2MGViMDVjYmIuLjYzMWM0YjI3NWU0
ZWNjNWNiZGNhM2Q3NDE3MzYyNjNhNGE5NjMzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQXBwbGVQYXlTZXNzaW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0FwcGxlUGF5U2Vzc2lvbkN1c3RvbS5jcHAKQEAgLTUzLDcgKzUz
LDYgQEAgSlNWYWx1ZSBKU0FwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ01ldGhvZFNl
bGVjdGlvbihFeGVjU3RhdGUmIHN0YXRlKQogICAgIGlmIChVTkxJS0VMWShzdGF0ZS5hcmd1bWVu
dENvdW50KCkgPCAzKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmRlY29kZSh0aHJvd1ZNRXJy
b3IoJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRlKSkp
OwogCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgdWludDE2X3Qgc3RhdHVzID0gY29u
dmVydDx1aW50MTZfdD4oc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDApLCBOb3JtYWxDb252ZXJzaW9u
KTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1ZhbHVlKCkpOwogCkBAIC02Miw4
ICs2MSw3IEBAIEpTVmFsdWUgSlNBcHBsZVBheVNlc3Npb246OmNvbXBsZXRlU2hpcHBpbmdNZXRo
b2RTZWxlY3Rpb24oRXhlY1N0YXRlJiBzdGF0ZSkKIAogICAgIEFycmF5VmFsdWUgbmV3TGluZUl0
ZW1zIHsgJnN0YXRlLCBzdGF0ZS5hcmd1bWVudCgyKSB9OwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7Ci0gICAgaW1wbC5jb21wbGV0ZVNoaXBwaW5nTWV0aG9kU2Vs
ZWN0aW9uKHN0YXR1cywgbmV3VG90YWwsIG5ld0xpbmVJdGVtcywgZWMpOwotICAgIHNldERPTUV4
Y2VwdGlvbigmc3RhdGUsIGVjKTsKKyAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHNjb3Bl
LCBpbXBsLmNvbXBsZXRlU2hpcHBpbmdNZXRob2RTZWxlY3Rpb24oc3RhdHVzLCBuZXdUb3RhbCwg
bmV3TGluZUl0ZW1zKSk7CiAKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KQEAgLTgzLDcg
KzgxLDYgQEAgSlNWYWx1ZSBKU0FwcGxlUGF5U2Vzc2lvbjo6Y29tcGxldGVTaGlwcGluZ0NvbnRh
Y3RTZWxlY3Rpb24oRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJn
dW1lbnRDb3VudCgpIDwgNCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodGhyb3dW
TUVycm9yKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0
ZSkpKTsKIAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIHVpbnQxNl90IHN0YXR1cyA9
IGNvbnZlcnQ8dWludDE2X3Q+KHN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKSwgTm9ybWFsQ29udmVy
c2lvbik7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIApAQCAt
OTUsOCArOTIsOCBAQCBKU1ZhbHVlIEpTQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVNoaXBwaW5n
Q29udGFjdFNlbGVjdGlvbihFeGVjU3RhdGUmIHN0YXRlKQogCiAgICAgQXJyYXlWYWx1ZSBuZXdM
aW5lSXRlbXMgeyAmc3RhdGUsIHN0YXRlLmFyZ3VtZW50KDMpIH07CiAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKLSAgICBpbXBsLmNvbXBsZXRlU2hpcHBpbmdDb250
YWN0U2VsZWN0aW9uKHN0YXR1cywgbmV3U2hpcHBpbmdNZXRob2RzLCBuZXdUb3RhbCwgbmV3TGlu
ZUl0ZW1zLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOworCisgICAgcHJv
cGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgaW1wbC5jb21wbGV0ZVNoaXBwaW5nQ29udGFj
dFNlbGVjdGlvbihzdGF0dXMsIG5ld1NoaXBwaW5nTWV0aG9kcywgbmV3VG90YWwsIG5ld0xpbmVJ
dGVtcykpOwogCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CkBAIC0xMTYsMTQgKzExMywx
MyBAQCBKU1ZhbHVlIEpTQXBwbGVQYXlTZXNzaW9uOjpjb21wbGV0ZVBheW1lbnRNZXRob2RTZWxl
Y3Rpb24oRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBpZiAoVU5MSUtFTFkoc3RhdGUuYXJndW1lbnRD
b3VudCgpIDwgMikpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjpkZWNvZGUodGhyb3dWTUVycm9y
KCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKCZzdGF0ZSkpKTsK
IAotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgIERpY3Rpb25hcnkgbmV3VG90YWwgPSB7
ICZzdGF0ZSwgc3RhdGUuYXJndW1lbnQoMCkgfTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNj
b3BlLCBKU1ZhbHVlKCkpOwogCiAgICAgQXJyYXlWYWx1ZSBuZXdMaW5lSXRlbXMgeyAmc3RhdGUs
IHN0YXRlLmFyZ3VtZW50KDEpIH07CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNW
YWx1ZSgpKTsKLSAgICBpbXBsLmNvbXBsZXRlUGF5bWVudE1ldGhvZFNlbGVjdGlvbihuZXdUb3Rh
bCwgbmV3TGluZUl0ZW1zLCBlYyk7Ci0gICAgc2V0RE9NRXhjZXB0aW9uKCZzdGF0ZSwgZWMpOwor
CisgICAgcHJvcGFnYXRlRXhjZXB0aW9uKHN0YXRlLCBzY29wZSwgaW1wbC5jb21wbGV0ZVBheW1l
bnRNZXRob2RTZWxlY3Rpb24obmV3VG90YWwsIG5ld0xpbmVJdGVtcykpOwogCiAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGlu
Zy5oCmluZGV4IGExMmYxZGU1YjBkYTJhZGVjOGJmMTJmNzQ5NDJiOThjNTRjM2RjYzcuLmJhNmEx
ZWQzMWU2M2M2YTVmOTBjMWM0ZWY3ZTQ0NDUzNmMxOGU3YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC05MjUsNiArOTI1LDE1IEBAIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUs
IEpTRE9NR2xvYmFsCiAgICAgcmV0dXJuIHRvSlMoJnN0YXRlLCAmZ2xvYmFsT2JqZWN0LCB2YWx1
ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiB9CiAKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KU0Jv
b2xlYW4oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUs
IEV4Y2VwdGlvbk9yPGJvb2w+JiYgdmFsdWUpCit7CisgICAgaWYgKFVOTElLRUxZKHZhbHVlLmhh
c0V4Y2VwdGlvbigpKSkgeworICAgICAgICBwcm9wYWdhdGVFeGNlcHRpb24oc3RhdGUsIHRocm93
U2NvcGUsIHZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgIHJldHVybiB7IH07Cisg
ICAgfQorICAgIHJldHVybiBKU0M6OmpzQm9vbGVhbih2YWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUo
KSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGlubGluZSBKU0M6OkpTVmFsdWUgdG9KU05l
d2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSwgRXhjZXB0aW9uT3I8VD4mJiB2
YWx1ZSkKIHsKICAgICBpZiAoVU5MSUtFTFkodmFsdWUuaGFzRXhjZXB0aW9uKCkpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmlu
ZGV4IDc4MWExYjU5ODdiNzJjOTQ3ZWI2MDQ4MjRiNGI4ZWM5MTlkZmJmYjguLmU5N2M3NWVkNGU2
MzRlZmIwMzQ2NzY4N2FiZDIyMTA0ZGJiZDM4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC01NTg0LDcgKzU1ODQsMTEg
QEAgRU5ECiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpO1xu
IikgaWYgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uc3RydWN0b3JDYWxsV2l0aH0sICJTY3JpcHRTdGF0
ZSIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU1ZhbHVl
OjplbmNvZGUodG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgY2FzdGVkVGhpcy0+Z2xvYmFsT2JqZWN0
KCksIFdURk1vdmUob2JqZWN0KSkpO1xuIik7CisgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uc3RydWN0b3JNYXlUaHJvd0V4Y2VwdGlvbn0pIHsKKyAg
ICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZSh0b0pTTmV3bHlDcmVhdGVkKCpzdGF0ZSwgKmNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgp
LCB0aHJvd1Njb3BlLCBXVEZNb3ZlKG9iamVjdCkpKTtcbiIpOworICAgICAgICAgICAgfSBlbHNl
IHsKKyAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZSh0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBjYXN0ZWRUaGlzLT5nbG9iYWxPYmpl
Y3QoKSwgV1RGTW92ZShvYmplY3QpKSk7XG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCA2
ZDI2YzU1Mzg1NTQzYWNlYWQ2NDZlMmZiMmM1ZDY0YWU1ZTljYzAyLi4yNTE3ODIwYzk4ZGMzOWZi
NmMwMDBjZTVhYzg2MjY0ODAzYWM0M2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKQEAgLTMzLDYgKzMzLDcgQEAgQ29uZGl0aW9u
YWw9KgogQ29uc3RydWN0b3IKIENvbnN0cnVjdG9yQ2FsbFdpdGg9RG9jdW1lbnR8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZQogQ29uc3RydWN0b3JDb25kaXRpb25hbD0qCitDb25z
dHJ1Y3Rvck1heVRocm93RXhjZXB0aW9uCiBDb25zdHJ1Y3Rvck1heVRocm93TGVnYWN5RXhjZXB0
aW9uCiBDb25zdHJ1Y3RvclRlbXBsYXRlPUV2ZW50fFR5cGVkQXJyYXkKIEN1c3RvbQo=
</data>
<flag name="review"
          id="314202"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="314203"
          type_id="3"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>