<?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>224662</bug_id>
          
          <creation_ts>2021-04-16 02:43:37 -0700</creation_ts>
          <short_desc>Deploy Ref/RefPtr in ApplyStyleCommand</short_desc>
          <delta_ts>2021-04-24 15:09:52 -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>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>koivisto</cc>
    
    <cc>mifenton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1750992</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-16 02:43:37 -0700</bug_when>
    <thetext>Deploy smart pointers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1750997</commentid>
    <comment_count>1</comment_count>
      <attachid>426199</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-04-16 02:47:10 -0700</bug_when>
    <thetext>Created attachment 426199
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751016</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-16 04:09:47 -0700</bug_when>
    <thetext>Committed r276133 (236627@main): &lt;https://commits.webkit.org/236627@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426199.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753951</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-24 15:09:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/77110129&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426199</attachid>
            <date>2021-04-16 02:47:10 -0700</date>
            <delta_ts>2021-04-16 04:09:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224662-20210416024709.patch</filename>
            <type>text/plain</type>
            <size>31573</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MTA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODAzMzdmYzJlOWNhMjM5
ZWNiZWNiNTU3ZGVlYTU0NjcwN2Y5ZWE1Ni4uYmQ2ZTI0ODVmYzdjMmJjODNlNWE5YTdmZjRmZjRi
NzU0YWM3YzBlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDIxLTA0LTE2ICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERlcGxveSBSZWYvUmVmUHRy
IGluIEFwcGx5U3R5bGVDb21tYW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjQ2NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBEZXBsb3llZCBzbWFydCBwb2ludGVycyBpbiBBcHBseVN0eWxlQ29tbWFu
ZC4gQWxzbyBkZXBsb3llZCBTY3JpcHREaXNhbGxvd2VkU2NvcGUgYXJvdW5kIHRoZSBjb2RlCisg
ICAgICAgIHdoaWNoIGFjY2Vzc2VzIHRoZSByZW5kZXIgdHJlZSBpbiBBcHBseVN0eWxlQ29tbWFu
ZDo6YXBwbHlJbmxpbmVTdHlsZVRvUHVzaERvd24uCisKKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5
U3R5bGVDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjph
cHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OmR1bW15U3Bh
bkFuY2VzdG9yRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6
Y2xlYW51cFVuc3R5bGVkQXBwbGVTdHlsZVNwYW5zKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5
U3R5bGVDb21tYW5kOjpzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2RlQmlkaSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlRW1iZWRkaW5nVXBUb0VuY2xvc2luZ0Js
b2NrKToKKyAgICAgICAgKFdlYkNvcmU6OmhpZ2hlc3RFbWJlZGRpbmdBbmNlc3Rvcik6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6Zml4UmFuZ2VBbmRBcHBseUlubGluZVN0
eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRhaW5zTm9uRWRpdGFibGVSZWdpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb05vZGVS
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6c2hvdWxkQXBwbHlJ
bmxpbmVTdHlsZVRvUnVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpo
aWdoZXN0QW5jZXN0b3JXaXRoQ29uZmxpY3RpbmdJbmxpbmVTdHlsZSk6CisgICAgICAgIChXZWJD
b3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZVRvUHVzaERvd24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OnB1c2hEb3duSW5saW5lU3R5bGVBcm91
bmROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVDb21tYW5kOjpyZW1vdmVJbmxp
bmVTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVN0eWxlQ29tbWFuZDo6bWVyZ2VTdGFy
dFdpdGhQcmV2aW91c0lmSWRlbnRpY2FsKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5U3R5bGVD
b21tYW5kOjptZXJnZUVuZFdpdGhOZXh0SWZJZGVudGljYWwpOgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlTdHlsZUNvbW1hbmQ6OnN1cnJvdW5kTm9kZVJhbmdlV2l0aEVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVDaGFuZ2UpOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbHlTdHlsZUNvbW1hbmQ6OmpvaW5DaGlsZFRleHROb2Rlcyk6
CisgICAgICAgICogZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oOgorCiAyMDIxLTA0LTE1ICBQ
ZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVVBdIFdlYkNvbnRl
bnQgcHJvY2VzcyBzaG91bGQgbm90IGNyZWF0ZSBBVk91dHB1dENvbnRleHQgaW5zdGFuY2VzIHdo
ZW4gbWVkaWEgaW4gR1BVIFByb2Nlc3MgaXMgZW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcAppbmRleCA0NWM3OTMxYTZjMTA0MDY5OGRmNTYwZmI2
YTgyM2E1M2UwNDRjNzFiLi40MTI5OGJhMWJlZWQ5MzY1OGI0OWM0MmRmYTU5ZjI5ZGExOGY3ZWM2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcApAQCAt
NDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIk5vZGVUcmF2ZXJzYWwuaCIKICNpbmNsdWRlICJSZW5k
ZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0LmgiCisjaW5jbHVkZSAiU2NyaXB0RGlz
YWxsb3dlZFNjb3BlLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAi
U3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlRleHQuaCIKQEAgLTM0NCw3ICszNDUsNyBAQCB2
b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKEVkaXRp
bmdTdHlsZSogc3R5bGUpCiAgICAgLy8gQ2FsY3VsYXRlIGxvb3AgZW5kIHBvaW50LgogICAgIC8v
IElmIHRoZSBlbmQgbm9kZSBpcyBiZWZvcmUgdGhlIHN0YXJ0IG5vZGUgKGNhbiBvbmx5IGhhcHBl
biBpZiB0aGUgZW5kIG5vZGUgaXMKICAgICAvLyBhbiBhbmNlc3RvciBvZiB0aGUgc3RhcnQgbm9k
ZSksIHdlIGdhdGhlciBub2RlcyB1cCB0byB0aGUgbmV4dCBzaWJsaW5nIG9mIHRoZSBlbmQgbm9k
ZQotICAgIE5vZGUqIGJleW9uZEVuZDsKKyAgICBSZWZQdHI8Tm9kZT4gYmV5b25kRW5kOwogICAg
IEFTU0VSVChzdGFydC5kZXByZWNhdGVkTm9kZSgpKTsKICAgICBBU1NFUlQoZW5kLmRlcHJlY2F0
ZWROb2RlKCkpOwogICAgIGlmIChzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5pc0Rlc2NlbmRhbnRP
ZigqZW5kLmRlcHJlY2F0ZWROb2RlKCkpKQpAQCAtMzUzLDcgKzM1NCw3IEBAIHZvaWQgQXBwbHlT
dHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRpdmVGb250U3R5bGVDaGFuZ2UoRWRpdGluZ1N0eWxlKiBz
dHlsZSkKICAgICAgICAgYmV5b25kRW5kID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgqZW5kLmRlcHJl
Y2F0ZWROb2RlKCkpOwogICAgIAogICAgIHN0YXJ0ID0gc3RhcnQudXBzdHJlYW0oKTsgLy8gTW92
ZSB1cHN0cmVhbSB0byBlbnN1cmUgd2UgZG8gbm90IGFkZCByZWR1bmRhbnQgc3BhbnMuCi0gICAg
Tm9kZSogc3RhcnROb2RlID0gc3RhcnQuZGVwcmVjYXRlZE5vZGUoKTsKKyAgICBhdXRvIHN0YXJ0
Tm9kZSA9IG1ha2VSZWZQdHIoc3RhcnQuZGVwcmVjYXRlZE5vZGUoKSk7CiAKICAgICAvLyBNYWtl
IHN1cmUgd2UncmUgbm90IGFscmVhZHkgYXQgdGhlIGVuZCBvciB0aGUgbmV4dCBOb2RlVHJhdmVy
c2FsOjpuZXh0KCkgd2lsbCB0cmF2ZXJzZSBwYXN0IGl0LgogICAgIGlmIChzdGFydE5vZGUgPT0g
YmV5b25kRW5kKQpAQCAtMzY4LDE4ICszNjksMTggQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6
YXBwbHlSZWxhdGl2ZUZvbnRTdHlsZUNoYW5nZShFZGl0aW5nU3R5bGUqIHN0eWxlKQogCiAgICAg
Ly8gU3RvcmUgYXdheSBmb250IHNpemUgYmVmb3JlIG1ha2luZyBhbnkgY2hhbmdlcyB0byB0aGUg
ZG9jdW1lbnQuCiAgICAgLy8gVGhpcyBlbnN1cmVzIHRoYXQgY2hhbmdlcyB0byBvbmUgbm9kZSB3
b24ndCBlZmZlY3QgYW5vdGhlci4KLSAgICBIYXNoTWFwPE5vZGUqLCBmbG9hdD4gc3RhcnRpbmdG
b250U2l6ZXM7Ci0gICAgZm9yIChOb2RlKiBub2RlID0gc3RhcnROb2RlOyBub2RlICE9IGJleW9u
ZEVuZDsgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpKSB7CisgICAgSGFzaE1hcDxS
ZWY8Tm9kZT4sIGZsb2F0PiBzdGFydGluZ0ZvbnRTaXplczsKKyAgICBmb3IgKGF1dG8gbm9kZSA9
IHN0YXJ0Tm9kZTsgbm9kZSAhPSBiZXlvbmRFbmQ7IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0
KCpub2RlKSkgewogICAgICAgICBBU1NFUlQobm9kZSk7Ci0gICAgICAgIHN0YXJ0aW5nRm9udFNp
emVzLnNldChub2RlLCBjb21wdXRlZEZvbnRTaXplKG5vZGUpKTsKKyAgICAgICAgc3RhcnRpbmdG
b250U2l6ZXMuc2V0KCpub2RlLCBjb21wdXRlZEZvbnRTaXplKG5vZGUuZ2V0KCkpKTsKICAgICB9
CiAKICAgICAvLyBUaGVzZSBzcGFucyB3ZXJlIGFkZGVkIGJ5IHVzLiBJZiBlbXB0eSBhZnRlciBm
b250IHNpemUgY2hhbmdlcywgdGhleSBjYW4gYmUgcmVtb3ZlZC4KICAgICBWZWN0b3I8UmVmPEhU
TUxFbGVtZW50Pj4gdW5zdHlsZWRTcGFuczsKLSAgICAKLSAgICBOb2RlKiBsYXN0U3R5bGVkTm9k
ZSA9IG51bGxwdHI7CisKKyAgICBSZWZQdHI8Tm9kZT4gbGFzdFN0eWxlZE5vZGU7CiAgICAgYm9v
bCByZWFjaGVkRW5kID0gZmFsc2U7Ci0gICAgZm9yIChhdXRvIG5vZGUgPSBtYWtlUmVmUHRyKHN0
YXJ0Tm9kZSk7IG5vZGUgIT0gYmV5b25kRW5kICYmICFyZWFjaGVkRW5kOyBub2RlID0gTm9kZVRy
YXZlcnNhbDo6bmV4dCgqbm9kZSkpIHsKKyAgICBmb3IgKGF1dG8gbm9kZSA9IHN0YXJ0Tm9kZTsg
bm9kZSAhPSBiZXlvbmRFbmQgJiYgIXJlYWNoZWRFbmQ7IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpu
ZXh0KCpub2RlKSkgewogICAgICAgICBBU1NFUlQobm9kZSk7CiAgICAgICAgIFJlZlB0cjxIVE1M
RWxlbWVudD4gZWxlbWVudDsKICAgICAgICAgaWYgKGlzPEhUTUxFbGVtZW50Pigqbm9kZSkpIHsK
QEAgLTM5MSwxNSArMzkyLDE1IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OmFwcGx5UmVsYXRp
dmVGb250U3R5bGVDaGFuZ2UoRWRpdGluZ1N0eWxlKiBzdHlsZSkKICAgICAgICAgICAgIC8vIExh
c3Qgc3R5bGVkIG5vZGUgd2FzIG5vdCBwYXJlbnQgbm9kZSBvZiB0aGlzIHRleHQgbm9kZSwgYnV0
IHdlIHdpc2ggdG8gc3R5bGUgdGhpcwogICAgICAgICAgICAgLy8gdGV4dCBub2RlLiBUbyBtYWtl
IHRoaXMgcG9zc2libGUsIGFkZCBhIHN0eWxlIHNwYW4gdG8gc3Vycm91bmQgdGhpcyB0ZXh0IG5v
ZGUuCiAgICAgICAgICAgICBhdXRvIHNwYW4gPSBjcmVhdGVTdHlsZVNwYW5FbGVtZW50KGRvY3Vt
ZW50KCkpOwotICAgICAgICAgICAgaWYgKCFzdXJyb3VuZE5vZGVSYW5nZVdpdGhFbGVtZW50KCpu
b2RlLCAqbm9kZSwgc3Bhbi5jb3B5UmVmKCkpKQorICAgICAgICAgICAgaWYgKCFzdXJyb3VuZE5v
ZGVSYW5nZVdpdGhFbGVtZW50KCpub2RlLCAqbm9kZSwgc3BhbikpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICByZWFjaGVkRW5kID0gbm9kZS0+aXNEZXNjZW5kYW50T2Yo
YmV5b25kRW5kKTsKKyAgICAgICAgICAgIHJlYWNoZWRFbmQgPSBub2RlLT5pc0Rlc2NlbmRhbnRP
ZihiZXlvbmRFbmQuZ2V0KCkpOwogICAgICAgICAgICAgZWxlbWVudCA9IFdURk1vdmUoc3Bhbik7
CiAgICAgICAgIH0gIGVsc2UgewogICAgICAgICAgICAgLy8gT25seSBoYW5kbGUgSFRNTCBlbGVt
ZW50cyBhbmQgdGV4dCBub2Rlcy4KICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0g
ICAgICAgIGxhc3RTdHlsZWROb2RlID0gbm9kZS5nZXQoKTsKKyAgICAgICAgbGFzdFN0eWxlZE5v
ZGUgPSBub2RlOwogCiAgICAgICAgIFJlZlB0cjxNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzPiBpbmxp
bmVTdHlsZSA9IGNvcHlTdHlsZU9yQ3JlYXRlRW1wdHkoZWxlbWVudC0+aW5saW5lU3R5bGUoKSk7
CiAgICAgICAgIGZsb2F0IGN1cnJlbnRGb250U2l6ZSA9IGNvbXB1dGVkRm9udFNpemUobm9kZS5n
ZXQoKSk7CkBAIC00MjQsMTIgKzQyNSwxMiBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBs
eVJlbGF0aXZlRm9udFN0eWxlQ2hhbmdlKEVkaXRpbmdTdHlsZSogc3R5bGUpCiAgICAgICAgIHJl
bW92ZU5vZGVQcmVzZXJ2aW5nQ2hpbGRyZW4odW5zdHlsZWRTcGFuKTsKIH0KIAotc3RhdGljIENv
bnRhaW5lck5vZGUqIGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQor
c3RhdGljIENvbnRhaW5lck5vZGUqIGR1bW15U3BhbkFuY2VzdG9yRm9yTm9kZShOb2RlKiBub2Rl
KQogewotICAgIHdoaWxlIChub2RlICYmICghaXM8RWxlbWVudD4oKm5vZGUpIHx8ICFpc1N0eWxl
U3Bhbk9yU3BhbldpdGhPbmx5U3R5bGVBdHRyaWJ1dGUoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUp
KSkpCi0gICAgICAgIG5vZGUgPSBub2RlLT5wYXJlbnROb2RlKCk7Ci0gICAgCi0gICAgcmV0dXJu
IG5vZGUgPyBub2RlLT5wYXJlbnROb2RlKCkgOiBudWxscHRyOworICAgIFJlZlB0cjxOb2RlPiBj
dXJyZW50Tm9kZSA9IG5vZGU7CisgICAgd2hpbGUgKGN1cnJlbnROb2RlICYmICghaXM8RWxlbWVu
dD4oKmN1cnJlbnROb2RlKSB8fCAhaXNTdHlsZVNwYW5PclNwYW5XaXRoT25seVN0eWxlQXR0cmli
dXRlKGRvd25jYXN0PEVsZW1lbnQ+KCpjdXJyZW50Tm9kZSkpKSkKKyAgICAgICAgY3VycmVudE5v
ZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50Tm9kZSgpOworICAgIHJldHVybiBjdXJyZW50Tm9kZSA/
IGN1cnJlbnROb2RlLT5wYXJlbnROb2RlKCkgOiBudWxscHRyOwogfQogCiB2b2lkIEFwcGx5U3R5
bGVDb21tYW5kOjpjbGVhbnVwVW5zdHlsZWRBcHBsZVN0eWxlU3BhbnMoQ29udGFpbmVyTm9kZSog
ZHVtbXlTcGFuQW5jZXN0b3IpCkBAIC00NDIsNDggKzQ0Myw0OCBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjpjbGVhbnVwVW5zdHlsZWRBcHBsZVN0eWxlU3BhbnMoQ29udGFpbmVyTm9kZSogZHVt
bXlTcGFuQQogICAgIC8vIGNsb25lZC9zcGxpdCwgdGhlIG5ldyBub2RlIGlzIGFsd2F5cyBhIHNp
Ymxpbmcgb2YgaXQuIFRoZXJlZm9yZSwgd2Ugc2NhbgogICAgIC8vIGFsbCB0aGUgY2hpbGRyZW4g
b2YgdGhlIGR1bW15J3MgcGFyZW50CiAKLSAgICBWZWN0b3I8RWxlbWVudCo+IHRvUmVtb3ZlOwor
ICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IHRvUmVtb3ZlOwogICAgIGZvciAoYXV0byYgY2hpbGQg
OiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqZHVtbXlTcGFuQW5jZXN0b3IpKSB7CiAgICAgICAg
IGlmIChpc1NwYW5XaXRob3V0QXR0cmlidXRlc09yVW5zdHlsZWRTdHlsZVNwYW4oY2hpbGQpKQot
ICAgICAgICAgICAgdG9SZW1vdmUuYXBwZW5kKCZjaGlsZCk7CisgICAgICAgICAgICB0b1JlbW92
ZS5hcHBlbmQoY2hpbGQpOwogICAgIH0KIAogICAgIGZvciAoYXV0byYgZWxlbWVudCA6IHRvUmVt
b3ZlKQotICAgICAgICByZW1vdmVOb2RlUHJlc2VydmluZ0NoaWxkcmVuKCplbGVtZW50KTsKKyAg
ICAgICAgcmVtb3ZlTm9kZVByZXNlcnZpbmdDaGlsZHJlbihlbGVtZW50LmdldCgpKTsKIH0KIAot
SFRNTEVsZW1lbnQqIEFwcGx5U3R5bGVDb21tYW5kOjpzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2Rl
QmlkaShOb2RlKiBub2RlLCBib29sIGJlZm9yZSwgV3JpdGluZ0RpcmVjdGlvbiBhbGxvd2VkRGly
ZWN0aW9uKQorUmVmUHRyPEhUTUxFbGVtZW50PiBBcHBseVN0eWxlQ29tbWFuZDo6c3BsaXRBbmNl
c3RvcnNXaXRoVW5pY29kZUJpZGkoTm9kZSogbm9kZSwgYm9vbCBiZWZvcmUsIFdyaXRpbmdEaXJl
Y3Rpb24gYWxsb3dlZERpcmVjdGlvbikKIHsKICAgICAvLyBXZSBhcmUgYWxsb3dlZCB0byBsZWF2
ZSB0aGUgaGlnaGVzdCBhbmNlc3RvciB3aXRoIHVuaWNvZGUtYmlkaSB1bnNwbGl0IGlmIGl0IGlz
IHVuaWNvZGUtYmlkaTogZW1iZWQgYW5kIGRpcmVjdGlvbjogYWxsb3dlZERpcmVjdGlvbi4KICAg
ICAvLyBJbiB0aGF0IGNhc2UsIHdlIHJldHVybiB0aGUgdW5zcGxpdCBhbmNlc3Rvci4gT3RoZXJ3
aXNlLCB3ZSByZXR1cm4gMC4KLSAgICBFbGVtZW50KiBibG9jayA9IGVuY2xvc2luZ0Jsb2NrKG5v
ZGUpOworICAgIGF1dG8gYmxvY2sgPSBtYWtlUmVmUHRyKGVuY2xvc2luZ0Jsb2NrKG5vZGUpKTsK
ICAgICBpZiAoIWJsb2NrIHx8IGJsb2NrID09IG5vZGUpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE5vZGUqIGhpZ2hlc3RBbmNlc3RvcldpdGhVbmlj
b2RlQmlkaSA9IG51bGxwdHI7Ci0gICAgTm9kZSogbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmlj
b2RlQmlkaSA9IG51bGxwdHI7CisgICAgUmVmUHRyPE5vZGU+IGhpZ2hlc3RBbmNlc3RvcldpdGhV
bmljb2RlQmlkaTsKKyAgICBSZWZQdHI8Tm9kZT4gbmV4dEhpZ2hlc3RBbmNlc3RvcldpdGhVbmlj
b2RlQmlkaTsKICAgICBpbnQgaGlnaGVzdEFuY2VzdG9yVW5pY29kZUJpZGkgPSAwOwotICAgIGZv
ciAoTm9kZSogbiA9IG5vZGUtPnBhcmVudE5vZGUoKTsgbiAhPSBibG9jazsgbiA9IG4tPnBhcmVu
dE5vZGUoKSkgewotICAgICAgICBpbnQgdW5pY29kZUJpZGkgPSB0b0lkZW50aWZpZXIoQ29tcHV0
ZWRTdHlsZUV4dHJhY3RvcihuKS5wcm9wZXJ0eVZhbHVlKENTU1Byb3BlcnR5VW5pY29kZUJpZGkp
KTsKKyAgICBmb3IgKGF1dG8gYW5jZXN0b3IgPSBtYWtlUmVmUHRyKG5vZGUtPnBhcmVudE5vZGUo
KSk7IGFuY2VzdG9yICE9IGJsb2NrOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkp
IHsKKyAgICAgICAgaW50IHVuaWNvZGVCaWRpID0gdG9JZGVudGlmaWVyKENvbXB1dGVkU3R5bGVF
eHRyYWN0b3IoYW5jZXN0b3IuZ2V0KCkpLnByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlVbmljb2Rl
QmlkaSkpOwogICAgICAgICBpZiAodW5pY29kZUJpZGkgJiYgdW5pY29kZUJpZGkgIT0gQ1NTVmFs
dWVOb3JtYWwpIHsKICAgICAgICAgICAgIGhpZ2hlc3RBbmNlc3RvclVuaWNvZGVCaWRpID0gdW5p
Y29kZUJpZGk7CiAgICAgICAgICAgICBuZXh0SGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRp
ID0gaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpOwotICAgICAgICAgICAgaGlnaGVzdEFu
Y2VzdG9yV2l0aFVuaWNvZGVCaWRpID0gbjsKKyAgICAgICAgICAgIGhpZ2hlc3RBbmNlc3Rvcldp
dGhVbmljb2RlQmlkaSA9IGFuY2VzdG9yOwogICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFo
aWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAotICAgIEhUTUxFbGVtZW50KiB1bnNwbGl0QW5jZXN0b3IgPSBu
dWxscHRyOworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gdW5zcGxpdEFuY2VzdG9yOwogCiAgICAg
aWYgKGFsbG93ZWREaXJlY3Rpb24gIT0gV3JpdGluZ0RpcmVjdGlvbjo6TmF0dXJhbCAmJiBoaWdo
ZXN0QW5jZXN0b3JVbmljb2RlQmlkaSAhPSBDU1NWYWx1ZUJpZGlPdmVycmlkZSAmJiBpczxIVE1M
RWxlbWVudD4oKmhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSkpIHsKLSAgICAgICAgYXV0
byBoaWdoZXN0QW5jZXN0b3JEaXJlY3Rpb24gPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShoaWdoZXN0
QW5jZXN0b3JXaXRoVW5pY29kZUJpZGksIEVkaXRpbmdTdHlsZTo6QWxsUHJvcGVydGllcyktPnRl
eHREaXJlY3Rpb24oKTsKKyAgICAgICAgYXV0byBoaWdoZXN0QW5jZXN0b3JEaXJlY3Rpb24gPSBF
ZGl0aW5nU3R5bGU6OmNyZWF0ZShoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkuZ2V0KCks
IEVkaXRpbmdTdHlsZTo6QWxsUHJvcGVydGllcyktPnRleHREaXJlY3Rpb24oKTsKICAgICAgICAg
aWYgKGhpZ2hlc3RBbmNlc3RvckRpcmVjdGlvbiAmJiAqaGlnaGVzdEFuY2VzdG9yRGlyZWN0aW9u
ID09IGFsbG93ZWREaXJlY3Rpb24pIHsKICAgICAgICAgICAgIGlmICghbmV4dEhpZ2hlc3RBbmNl
c3RvcldpdGhVbmljb2RlQmlkaSkKLSAgICAgICAgICAgICAgICByZXR1cm4gZG93bmNhc3Q8SFRN
TEVsZW1lbnQ+KGhpZ2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHN0YXRpY19wb2ludGVyX2Nhc3Q8SFRNTEVsZW1lbnQ+KFdURk1vdmUoaGlnaGVz
dEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKSk7CiAKLSAgICAgICAgICAgIHVuc3BsaXRBbmNlc3Rv
ciA9IGRvd25jYXN0PEhUTUxFbGVtZW50PihoaWdoZXN0QW5jZXN0b3JXaXRoVW5pY29kZUJpZGkp
OworICAgICAgICAgICAgdW5zcGxpdEFuY2VzdG9yID0gc3RhdGljX3BvaW50ZXJfY2FzdDxIVE1M
RWxlbWVudD4oaGlnaGVzdEFuY2VzdG9yV2l0aFVuaWNvZGVCaWRpKTsKICAgICAgICAgICAgIGhp
Z2hlc3RBbmNlc3RvcldpdGhVbmljb2RlQmlkaSA9IG5leHRIaWdoZXN0QW5jZXN0b3JXaXRoVW5p
Y29kZUJpZGk7CiAgICAgICAgIH0KICAgICB9CkBAIC00OTgsMTcgKzQ5OSwxNyBAQCBIVE1MRWxl
bWVudCogQXBwbHlTdHlsZUNvbW1hbmQ6OnNwbGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVCaWRpKE5v
ZGUqIG5vZGUsIGJvb2wgYgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGN1cnJlbnROb2Rl
ID0gcGFyZW50OwogICAgIH0KKwogICAgIHJldHVybiB1bnNwbGl0QW5jZXN0b3I7CiB9CiAKIHZv
aWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUVtYmVkZGluZ1VwVG9FbmNsb3NpbmdCbG9jayhO
b2RlKiBub2RlLCBOb2RlKiB1bnNwbGl0QW5jZXN0b3IpCiB7Ci0gICAgRWxlbWVudCogYmxvY2sg
PSBlbmNsb3NpbmdCbG9jayhub2RlKTsKKyAgICBhdXRvIGJsb2NrID0gbWFrZVJlZlB0cihlbmNs
b3NpbmdCbG9jayhub2RlKSk7CiAgICAgaWYgKCFibG9jayB8fCBibG9jayA9PSBub2RlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBOb2RlKiBwYXJlbnQgPSBudWxscHRyOwotICAgIGZvciAoTm9k
ZSogYW5jZXN0b3IgPSBub2RlLT5wYXJlbnROb2RlKCk7IGFuY2VzdG9yICE9IGJsb2NrICYmIGFu
Y2VzdG9yICE9IHVuc3BsaXRBbmNlc3RvcjsgYW5jZXN0b3IgPSBwYXJlbnQpIHsKKyAgICBmb3Ig
KFJlZlB0cjxOb2RlPiBhbmNlc3RvciA9IG5vZGUtPnBhcmVudE5vZGUoKSwgcGFyZW50OyBhbmNl
c3RvciAhPSBibG9jayAmJiBhbmNlc3RvciAhPSB1bnNwbGl0QW5jZXN0b3I7IGFuY2VzdG9yID0g
cGFyZW50KSB7CiAgICAgICAgIHBhcmVudCA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCk7CiAgICAg
ICAgIGlmICghaXM8U3R5bGVkRWxlbWVudD4oKmFuY2VzdG9yKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwpAQCAtNTI3LDcgKzUyOCw3IEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUVt
YmVkZGluZ1VwVG9FbmNsb3NpbmdCbG9jayhOb2RlKiBub2RlLCBOb2RlKiB1bnNwCiAgICAgICAg
ICAgICAvLyBvdGhlciBhdHRyaWJ1dGVzLCBsaWtlIHdlIChzaG91bGQpIGRvIHdpdGggQiBhbmQg
SSBlbGVtZW50cy4KICAgICAgICAgICAgIHJlbW92ZU5vZGVBdHRyaWJ1dGUoZWxlbWVudCwgZGly
QXR0cik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBSZWZQdHI8TXV0YWJsZVN0eWxl
UHJvcGVydGllcz4gaW5saW5lU3R5bGUgPSBjb3B5U3R5bGVPckNyZWF0ZUVtcHR5KGVsZW1lbnQu
aW5saW5lU3R5bGUoKSk7CisgICAgICAgICAgICBhdXRvIGlubGluZVN0eWxlID0gY29weVN0eWxl
T3JDcmVhdGVFbXB0eShlbGVtZW50LmlubGluZVN0eWxlKCkpOwogICAgICAgICAgICAgaW5saW5l
U3R5bGUtPnNldFByb3BlcnR5KENTU1Byb3BlcnR5VW5pY29kZUJpZGksIENTU1ZhbHVlTm9ybWFs
KTsKICAgICAgICAgICAgIGlubGluZVN0eWxlLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eURp
cmVjdGlvbik7CiAgICAgICAgICAgICBzZXROb2RlQXR0cmlidXRlKGVsZW1lbnQsIHN0eWxlQXR0
ciwgaW5saW5lU3R5bGUtPmFzVGV4dCgpKTsKQEAgLTUzNywxNCArNTM4LDE0IEBAIHZvaWQgQXBw
bHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUVtYmVkZGluZ1VwVG9FbmNsb3NpbmdCbG9jayhOb2RlKiBu
b2RlLCBOb2RlKiB1bnNwCiAgICAgfQogfQogCi1zdGF0aWMgTm9kZSogaGlnaGVzdEVtYmVkZGlu
Z0FuY2VzdG9yKE5vZGUqIHN0YXJ0Tm9kZSwgTm9kZSogZW5jbG9zaW5nTm9kZSkKK3N0YXRpYyBS
ZWZQdHI8Tm9kZT4gaGlnaGVzdEVtYmVkZGluZ0FuY2VzdG9yKE5vZGUqIHN0YXJ0Tm9kZSwgTm9k
ZSogZW5jbG9zaW5nTm9kZSkKIHsKLSAgICBmb3IgKE5vZGUqIG4gPSBzdGFydE5vZGU7IG4gJiYg
biAhPSBlbmNsb3NpbmdOb2RlOyBuID0gbi0+cGFyZW50Tm9kZSgpKSB7Ci0gICAgICAgIGlmIChu
LT5pc0hUTUxFbGVtZW50KCkgJiYgdG9JZGVudGlmaWVyKENvbXB1dGVkU3R5bGVFeHRyYWN0b3Io
bikucHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVVuaWNvZGVCaWRpKSkgPT0gQ1NTVmFsdWVFbWJl
ZCkKLSAgICAgICAgICAgIHJldHVybiBuOworICAgIGZvciAoYXV0byBjdXJyZW50Tm9kZSA9IG1h
a2VSZWZQdHIoc3RhcnROb2RlKTsgY3VycmVudE5vZGUgJiYgY3VycmVudE5vZGUgIT0gZW5jbG9z
aW5nTm9kZTsgY3VycmVudE5vZGUgPSBjdXJyZW50Tm9kZS0+cGFyZW50Tm9kZSgpKSB7CisgICAg
ICAgIGlmIChjdXJyZW50Tm9kZS0+aXNIVE1MRWxlbWVudCgpICYmIHRvSWRlbnRpZmllcihDb21w
dXRlZFN0eWxlRXh0cmFjdG9yKGN1cnJlbnROb2RlLmdldCgpKS5wcm9wZXJ0eVZhbHVlKENTU1By
b3BlcnR5VW5pY29kZUJpZGkpKSA9PSBDU1NWYWx1ZUVtYmVkKQorICAgICAgICAgICAgcmV0dXJu
IGN1cnJlbnROb2RlOwogICAgIH0KIAotICAgIHJldHVybiAwOworICAgIHJldHVybiBudWxscHRy
OwogfQogCiB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjphcHBseUlubGluZVN0eWxlKEVkaXRpbmdT
dHlsZSYgc3R5bGUpCkBAIC02MDEsMTkgKzYwMiwxOSBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5k
OjphcHBseUlubGluZVN0eWxlKEVkaXRpbmdTdHlsZSYgc3R5bGUpCiAgICAgUmVmUHRyPEVkaXRp
bmdTdHlsZT4gZW1iZWRkaW5nU3R5bGU7CiAgICAgaWYgKHRleHREaXJlY3Rpb24uaGFzVmFsdWUo
KSkgewogICAgICAgICAvLyBMZWF2ZSBhbG9uZSBhbiBhbmNlc3RvciB0aGF0IHByb3ZpZGVzIHRo
ZSBkZXNpcmVkIHNpbmdsZSBsZXZlbCBlbWJlZGRpbmcsIGlmIHRoZXJlIGlzIG9uZS4KLSAgICAg
ICAgYXV0byogc3RhcnRVbnNwbGl0QW5jZXN0b3IgPSBzcGxpdEFuY2VzdG9yc1dpdGhVbmljb2Rl
QmlkaShzdGFydC5kZXByZWNhdGVkTm9kZSgpLCB0cnVlLCAqdGV4dERpcmVjdGlvbik7Ci0gICAg
ICAgIGF1dG8qIGVuZFVuc3BsaXRBbmNlc3RvciA9IHNwbGl0QW5jZXN0b3JzV2l0aFVuaWNvZGVC
aWRpKGVuZC5kZXByZWNhdGVkTm9kZSgpLCBmYWxzZSwgKnRleHREaXJlY3Rpb24pOwotICAgICAg
ICByZW1vdmVFbWJlZGRpbmdVcFRvRW5jbG9zaW5nQmxvY2soc3RhcnQuZGVwcmVjYXRlZE5vZGUo
KSwgc3RhcnRVbnNwbGl0QW5jZXN0b3IpOwotICAgICAgICByZW1vdmVFbWJlZGRpbmdVcFRvRW5j
bG9zaW5nQmxvY2soZW5kLmRlcHJlY2F0ZWROb2RlKCksIGVuZFVuc3BsaXRBbmNlc3Rvcik7Cisg
ICAgICAgIGF1dG8gc3RhcnRVbnNwbGl0QW5jZXN0b3IgPSBzcGxpdEFuY2VzdG9yc1dpdGhVbmlj
b2RlQmlkaShzdGFydC5kZXByZWNhdGVkTm9kZSgpLCB0cnVlLCAqdGV4dERpcmVjdGlvbik7Cisg
ICAgICAgIGF1dG8gZW5kVW5zcGxpdEFuY2VzdG9yID0gc3BsaXRBbmNlc3RvcnNXaXRoVW5pY29k
ZUJpZGkoZW5kLmRlcHJlY2F0ZWROb2RlKCksIGZhbHNlLCAqdGV4dERpcmVjdGlvbik7CisgICAg
ICAgIHJlbW92ZUVtYmVkZGluZ1VwVG9FbmNsb3NpbmdCbG9jayhzdGFydC5kZXByZWNhdGVkTm9k
ZSgpLCBzdGFydFVuc3BsaXRBbmNlc3Rvci5nZXQoKSk7CisgICAgICAgIHJlbW92ZUVtYmVkZGlu
Z1VwVG9FbmNsb3NpbmdCbG9jayhlbmQuZGVwcmVjYXRlZE5vZGUoKSwgZW5kVW5zcGxpdEFuY2Vz
dG9yLmdldCgpKTsKIAogICAgICAgICAvLyBBdm9pZCByZW1vdmluZyB0aGUgZGlyIGF0dHJpYnV0
ZSBhbmQgdGhlIHVuaWNvZGUtYmlkaSBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMgZnJvbSB0aGUg
dW5zcGxpdCBhbmNlc3RvcnMuCiAgICAgICAgIFBvc2l0aW9uIGVtYmVkZGluZ1JlbW92ZVN0YXJ0
ID0gcmVtb3ZlU3RhcnQ7CiAgICAgICAgIGlmIChzdGFydFVuc3BsaXRBbmNlc3RvciAmJiBub2Rl
RnVsbHlTZWxlY3RlZCgqc3RhcnRVbnNwbGl0QW5jZXN0b3IsIHJlbW92ZVN0YXJ0LCBlbmQpKQot
ICAgICAgICAgICAgZW1iZWRkaW5nUmVtb3ZlU3RhcnQgPSBwb3NpdGlvbkluUGFyZW50QWZ0ZXJO
b2RlKHN0YXJ0VW5zcGxpdEFuY2VzdG9yKTsKKyAgICAgICAgICAgIGVtYmVkZGluZ1JlbW92ZVN0
YXJ0ID0gcG9zaXRpb25JblBhcmVudEFmdGVyTm9kZShzdGFydFVuc3BsaXRBbmNlc3Rvci5nZXQo
KSk7CiAKICAgICAgICAgUG9zaXRpb24gZW1iZWRkaW5nUmVtb3ZlRW5kID0gZW5kOwogICAgICAg
ICBpZiAoZW5kVW5zcGxpdEFuY2VzdG9yICYmIG5vZGVGdWxseVNlbGVjdGVkKCplbmRVbnNwbGl0
QW5jZXN0b3IsIHJlbW92ZVN0YXJ0LCBlbmQpKQotICAgICAgICAgICAgZW1iZWRkaW5nUmVtb3Zl
RW5kID0gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoZW5kVW5zcGxpdEFuY2VzdG9yKS5kb3du
c3RyZWFtKCk7CisgICAgICAgICAgICBlbWJlZGRpbmdSZW1vdmVFbmQgPSBwb3NpdGlvbkluUGFy
ZW50QmVmb3JlTm9kZShlbmRVbnNwbGl0QW5jZXN0b3IuZ2V0KCkpLmRvd25zdHJlYW0oKTsKIAog
ICAgICAgICBpZiAoZW1iZWRkaW5nUmVtb3ZlRW5kICE9IHJlbW92ZVN0YXJ0IHx8IGVtYmVkZGlu
Z1JlbW92ZUVuZCAhPSBlbmQpIHsKICAgICAgICAgICAgIHN0eWxlV2l0aG91dEVtYmVkZGluZyA9
IHN0eWxlLmNvcHkoKTsKQEAgLTY1MiwxMiArNjUzLDEyIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1h
bmQ6OmFwcGx5SW5saW5lU3R5bGUoRWRpdGluZ1N0eWxlJiBzdHlsZSkKICAgICBSZWZQdHI8RWRp
dGluZ1N0eWxlPiBzdHlsZVRvQXBwbHkgPSAmc3R5bGU7CiAgICAgaWYgKHRleHREaXJlY3Rpb24u
aGFzVmFsdWUoKSkgewogICAgICAgICAvLyBBdm9pZCBhcHBseWluZyB0aGUgdW5pY29kZS1iaWRp
IGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcyBiZW5lYXRoIGFuY2VzdG9ycyB0aGF0IGFscmVhZHkg
aGF2ZSB0aGVtLgotICAgICAgICBOb2RlKiBlbWJlZGRpbmdTdGFydE5vZGUgPSBoaWdoZXN0RW1i
ZWRkaW5nQW5jZXN0b3Ioc3RhcnQuZGVwcmVjYXRlZE5vZGUoKSwgZW5jbG9zaW5nQmxvY2soc3Rh
cnQuZGVwcmVjYXRlZE5vZGUoKSkpOwotICAgICAgICBOb2RlKiBlbWJlZGRpbmdFbmROb2RlID0g
aGlnaGVzdEVtYmVkZGluZ0FuY2VzdG9yKGVuZC5kZXByZWNhdGVkTm9kZSgpLCBlbmNsb3NpbmdC
bG9jayhlbmQuZGVwcmVjYXRlZE5vZGUoKSkpOworICAgICAgICBhdXRvIGVtYmVkZGluZ1N0YXJ0
Tm9kZSA9IGhpZ2hlc3RFbWJlZGRpbmdBbmNlc3RvcihzdGFydC5kZXByZWNhdGVkTm9kZSgpLCBl
bmNsb3NpbmdCbG9jayhzdGFydC5kZXByZWNhdGVkTm9kZSgpKSk7CisgICAgICAgIGF1dG8gZW1i
ZWRkaW5nRW5kTm9kZSA9IGhpZ2hlc3RFbWJlZGRpbmdBbmNlc3RvcihlbmQuZGVwcmVjYXRlZE5v
ZGUoKSwgZW5jbG9zaW5nQmxvY2soZW5kLmRlcHJlY2F0ZWROb2RlKCkpKTsKIAogICAgICAgICBp
ZiAoZW1iZWRkaW5nU3RhcnROb2RlIHx8IGVtYmVkZGluZ0VuZE5vZGUpIHsKLSAgICAgICAgICAg
IFBvc2l0aW9uIGVtYmVkZGluZ0FwcGx5U3RhcnQgPSBlbWJlZGRpbmdTdGFydE5vZGUgPyBwb3Np
dGlvbkluUGFyZW50QWZ0ZXJOb2RlKGVtYmVkZGluZ1N0YXJ0Tm9kZSkgOiBzdGFydDsKLSAgICAg
ICAgICAgIFBvc2l0aW9uIGVtYmVkZGluZ0FwcGx5RW5kID0gZW1iZWRkaW5nRW5kTm9kZSA/IHBv
c2l0aW9uSW5QYXJlbnRCZWZvcmVOb2RlKGVtYmVkZGluZ0VuZE5vZGUpIDogZW5kOworICAgICAg
ICAgICAgUG9zaXRpb24gZW1iZWRkaW5nQXBwbHlTdGFydCA9IGVtYmVkZGluZ1N0YXJ0Tm9kZSA/
IHBvc2l0aW9uSW5QYXJlbnRBZnRlck5vZGUoZW1iZWRkaW5nU3RhcnROb2RlLmdldCgpKSA6IHN0
YXJ0OworICAgICAgICAgICAgUG9zaXRpb24gZW1iZWRkaW5nQXBwbHlFbmQgPSBlbWJlZGRpbmdF
bmROb2RlID8gcG9zaXRpb25JblBhcmVudEJlZm9yZU5vZGUoZW1iZWRkaW5nRW5kTm9kZS5nZXQo
KSkgOiBlbmQ7CiAgICAgICAgICAgICBBU1NFUlQoZW1iZWRkaW5nQXBwbHlTdGFydC5pc05vdE51
bGwoKSAmJiBlbWJlZGRpbmdBcHBseUVuZC5pc05vdE51bGwoKSk7CiAKICAgICAgICAgICAgIGlm
ICghZW1iZWRkaW5nU3R5bGUpIHsKQEAgLTY4MCwxNSArNjgxLDE1IEBAIHZvaWQgQXBwbHlTdHls
ZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGUoRWRpdGluZ1N0eWxlJiBzdHlsZSkKIAogdm9pZCBB
cHBseVN0eWxlQ29tbWFuZDo6Zml4UmFuZ2VBbmRBcHBseUlubGluZVN0eWxlKEVkaXRpbmdTdHls
ZSYgc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29uc3QgUG9zaXRpb24mIGVuZCkKIHsK
LSAgICBOb2RlKiBzdGFydE5vZGUgPSBzdGFydC5kZXByZWNhdGVkTm9kZSgpOworICAgIGF1dG8g
c3RhcnROb2RlID0gbWFrZVJlZlB0cihzdGFydC5kZXByZWNhdGVkTm9kZSgpKTsKIAogICAgIGlm
IChzdGFydC5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpID49IGNhcmV0TWF4T2Zmc2V0KCpzdGFy
dE5vZGUpKSB7CiAgICAgICAgIHN0YXJ0Tm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKnN0YXJ0
Tm9kZSk7Ci0gICAgICAgIGlmICghc3RhcnROb2RlIHx8IGVuZCA8IGZpcnN0UG9zaXRpb25Jbk9y
QmVmb3JlTm9kZShzdGFydE5vZGUpKQorICAgICAgICBpZiAoIXN0YXJ0Tm9kZSB8fCBlbmQgPCBm
aXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUoc3RhcnROb2RlLmdldCgpKSkKICAgICAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBOb2RlKiBwYXN0RW5kTm9kZSA9IGVuZC5kZXByZWNhdGVk
Tm9kZSgpOworICAgIGF1dG8gcGFzdEVuZE5vZGUgPSBtYWtlUmVmUHRyKGVuZC5kZXByZWNhdGVk
Tm9kZSgpKTsKICAgICBpZiAoZW5kLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgPj0gY2FyZXRN
YXhPZmZzZXQoKnBhc3RFbmROb2RlKSkKICAgICAgICAgcGFzdEVuZE5vZGUgPSBOb2RlVHJhdmVy
c2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbigqcGFzdEVuZE5vZGUpOwogCkBAIC03MDIsMTMgKzcw
MywxMyBAQCB2b2lkIEFwcGx5U3R5bGVDb21tYW5kOjpmaXhSYW5nZUFuZEFwcGx5SW5saW5lU3R5
bGUoRWRpdGluZ1N0eWxlJiBzdHlsZSwgY29uc3QgUAogICAgIC8vIGUuZy4gV2hlbiBhcHBseWlu
ZyBmb250LXNpemU6IGxhcmdlIG9uIDxmb250IGNvbG9yPSJibHVlIj5oZWxsbzwvZm9udD4sIHdl
IG5lZWQgdG8gaW5jbHVkZSB0aGUgZm9udCBlbGVtZW50IGluIG91ciBydW4KICAgICAvLyB0byBn
ZW5lcmF0ZSA8Zm9udCBjb2xvcj0iYmx1ZSIgc2l6ZT0iNCI+aGVsbG88L2ZvbnQ+IGluc3RlYWQg
b2YgPGZvbnQgY29sb3I9ImJsdWUiPjxmb250IHNpemU9IjQiPmhlbGxvPC9mb250PjwvZm9udD4K
ICAgICBhdXRvIHJhbmdlID0gKm1ha2VTaW1wbGVSYW5nZShzdGFydCwgZW5kKTsKLSAgICBhdXRv
KiBlZGl0YWJsZVJvb3QgPSBzdGFydE5vZGUtPnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKKyAgICBh
dXRvIGVkaXRhYmxlUm9vdCA9IG1ha2VSZWZQdHIoc3RhcnROb2RlLT5yb290RWRpdGFibGVFbGVt
ZW50KCkpOwogICAgIGlmIChzdGFydE5vZGUgIT0gZWRpdGFibGVSb290KSB7CiAgICAgICAgIHdo
aWxlIChlZGl0YWJsZVJvb3QgJiYgc3RhcnROb2RlLT5wYXJlbnROb2RlKCkgIT0gZWRpdGFibGVS
b290ICYmIGlzTm9kZVZpc2libHlDb250YWluZWRXaXRoaW4oKnN0YXJ0Tm9kZS0+cGFyZW50Tm9k
ZSgpLCByYW5nZSkpCiAgICAgICAgICAgICBzdGFydE5vZGUgPSBzdGFydE5vZGUtPnBhcmVudE5v
ZGUoKTsKICAgICB9CiAKLSAgICBhcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2Uoc3R5bGUsICpz
dGFydE5vZGUsIHBhc3RFbmROb2RlKTsKKyAgICBhcHBseUlubGluZVN0eWxlVG9Ob2RlUmFuZ2Uo
c3R5bGUsICpzdGFydE5vZGUsIHBhc3RFbmROb2RlLmdldCgpKTsKIH0KIAogc3RhdGljIGJvb2wg
Y29udGFpbnNOb25FZGl0YWJsZVJlZ2lvbihOb2RlJiBub2RlKQpAQCAtNzE2LDggKzcxNyw4IEBA
IHN0YXRpYyBib29sIGNvbnRhaW5zTm9uRWRpdGFibGVSZWdpb24oTm9kZSYgbm9kZSkKICAgICBp
ZiAoIW5vZGUuaGFzRWRpdGFibGVTdHlsZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IE5vZGUqIHNpYmxpbmcgPSBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdDaGlsZHJlbihub2Rl
KTsKLSAgICBmb3IgKE5vZGUqIGRlc2NlbmRhbnQgPSBub2RlLmZpcnN0Q2hpbGQoKTsgZGVzY2Vu
ZGFudCAmJiBkZXNjZW5kYW50ICE9IHNpYmxpbmc7IGRlc2NlbmRhbnQgPSBOb2RlVHJhdmVyc2Fs
OjpuZXh0KCpkZXNjZW5kYW50KSkgeworICAgIGF1dG8gc2libGluZyA9IG1ha2VSZWZQdHIoTm9k
ZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4obm9kZSkpOworICAgIGZvciAoYXV0byBk
ZXNjZW5kYW50ID0gbWFrZVJlZlB0cihub2RlLmZpcnN0Q2hpbGQoKSk7IGRlc2NlbmRhbnQgJiYg
ZGVzY2VuZGFudCAhPSBzaWJsaW5nOyBkZXNjZW5kYW50ID0gTm9kZVRyYXZlcnNhbDo6bmV4dCgq
ZGVzY2VuZGFudCkpIHsKICAgICAgICAgaWYgKCFkZXNjZW5kYW50LT5oYXNFZGl0YWJsZVN0eWxl
KCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC03NzEsNyArNzcyLDcgQEAg
dm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZVRvTm9kZVJhbmdlKEVkaXRp
bmdTdHlsZSYgc3R5bGUsIE5vZGUmIHMKICAgICAgICAgICAgIC8vIEFkZCB0byB0aGlzIGVsZW1l
bnQncyBpbmxpbmUgc3R5bGUgYW5kIHNraXAgb3ZlciBpdHMgY29udGVudHMuCiAgICAgICAgICAg
ICBIVE1MRWxlbWVudCYgZWxlbWVudCA9IGRvd25jYXN0PEhUTUxFbGVtZW50Pigqbm9kZSk7CiAg
ICAgICAgICAgICBSZWZQdHI8TXV0YWJsZVN0eWxlUHJvcGVydGllcz4gaW5saW5lU3R5bGUgPSBj
b3B5U3R5bGVPckNyZWF0ZUVtcHR5KGVsZW1lbnQuaW5saW5lU3R5bGUoKSk7Ci0gICAgICAgICAg
ICBpZiAoTXV0YWJsZVN0eWxlUHJvcGVydGllcyogb3RoZXJTdHlsZSA9IHN0eWxlLnN0eWxlKCkp
CisgICAgICAgICAgICBpZiAoYXV0byBvdGhlclN0eWxlID0gbWFrZVJlZlB0cihzdHlsZS5zdHls
ZSgpKSkKICAgICAgICAgICAgICAgICBpbmxpbmVTdHlsZS0+bWVyZ2VBbmRPdmVycmlkZU9uQ29u
ZmxpY3QoKm90aGVyU3R5bGUpOwogICAgICAgICAgICAgc2V0Tm9kZUF0dHJpYnV0ZShlbGVtZW50
LCBzdHlsZUF0dHIsIGlubGluZVN0eWxlLT5hc1RleHQoKSk7CiAgICAgICAgICAgICBuZXh0ID0g
Tm9kZVRyYXZlcnNhbDo6bmV4dFNraXBwaW5nQ2hpbGRyZW4oKm5vZGUpOwpAQCAtNzkwLDIwICs3
OTEsMjAgQEAgdm9pZCBBcHBseVN0eWxlQ29tbWFuZDo6YXBwbHlJbmxpbmVTdHlsZVRvTm9kZVJh
bmdlKEVkaXRpbmdTdHlsZSYgc3R5bGUsIE5vZGUmIHMKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCi0gICAgICAgIE5vZGUqIHJ1blN0YXJ0ID0gbm9kZS5nZXQoKTsKLSAgICAgICAgTm9kZSog
cnVuRW5kID0gbm9kZS5nZXQoKTsKLSAgICAgICAgTm9kZSogc2libGluZyA9IG5vZGUtPm5leHRT
aWJsaW5nKCk7Ci0gICAgICAgIHdoaWxlIChzaWJsaW5nICYmIHNpYmxpbmcgIT0gcGFzdEVuZE5v
ZGUgJiYgIXNpYmxpbmctPmNvbnRhaW5zKHBhc3RFbmROb2RlKSAmJiAoIWlzQmxvY2soc2libGlu
ZykgfHwgc2libGluZy0+aGFzVGFnTmFtZShiclRhZykpICYmICFjb250YWluc05vbkVkaXRhYmxl
UmVnaW9uKCpzaWJsaW5nKSkgeworICAgICAgICBhdXRvIHJ1blN0YXJ0ID0gbm9kZTsKKyAgICAg
ICAgYXV0byBydW5FbmQgPSBub2RlOworICAgICAgICBhdXRvIHNpYmxpbmcgPSBtYWtlUmVmUHRy
KG5vZGUtPm5leHRTaWJsaW5nKCkpOworICAgICAgICB3aGlsZSAoc2libGluZyAmJiBzaWJsaW5n
ICE9IHBhc3RFbmROb2RlICYmICFzaWJsaW5nLT5jb250YWlucyhwYXN0RW5kTm9kZSkgJiYgKCFp
c0Jsb2NrKHNpYmxpbmcuZ2V0KCkpIHx8IHNpYmxpbmctPmhhc1RhZ05hbWUoYnJUYWcpKSAmJiAh
Y29udGFpbnNOb25FZGl0YWJsZVJlZ2lvbigqc2libGluZykpIHsKICAgICAgICAgICAgIHJ1bkVu
ZCA9IHNpYmxpbmc7CiAgICAgICAgICAgICBzaWJsaW5nID0gcnVuRW5kLT5uZXh0U2libGluZygp
OwogICAgICAgICB9CiAgICAgICAgIG5leHQgPSBOb2RlVHJhdmVyc2FsOjpuZXh0U2tpcHBpbmdD
aGlsZHJlbigqcnVuRW5kKTsKIAotICAgICAgICBOb2RlKiBwYXN0RW5kTm9kZSA9IE5vZGVUcmF2
ZXJzYWw6Om5leHRTa2lwcGluZ0NoaWxkcmVuKCpydW5FbmQpOwotICAgICAgICBpZiAoIXNob3Vs
ZEFwcGx5SW5saW5lU3R5bGVUb1J1bihzdHlsZSwgcnVuU3RhcnQsIHBhc3RFbmROb2RlKSkKKyAg
ICAgICAgYXV0byBwYXN0RW5kTm9kZSA9IG1ha2VSZWZQdHIoTm9kZVRyYXZlcnNhbDo6bmV4dFNr
aXBwaW5nQ2hpbGRyZW4oKnJ1bkVuZCkpOworICAgICAgICBpZiAoIXNob3VsZEFwcGx5SW5saW5l
U3R5bGVUb1J1bihzdHlsZSwgcnVuU3RhcnQuZ2V0KCksIHBhc3RFbmROb2RlLmdldCgpKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJ1bnMuYXBwZW5kKElubGluZVJ1blRvQXBw
bHlTdHlsZShydW5TdGFydCwgcnVuRW5kLCBwYXN0RW5kTm9kZSkpOworICAgICAgICBydW5zLmFw
cGVuZChJbmxpbmVSdW5Ub0FwcGx5U3R5bGUocnVuU3RhcnQuZ2V0KCksIHJ1bkVuZC5nZXQoKSwg
cGFzdEVuZE5vZGUuZ2V0KCkpKTsKICAgICB9CiAKICAgICBmb3IgKGF1dG8mIHJ1biA6IHJ1bnMp
IHsKQEAgLTgzNSwxMyArODM2LDEzIEBAIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6OnNob3VsZEFw
cGx5SW5saW5lU3R5bGVUb1J1bihFZGl0aW5nU3R5bGUmIHN0eWxlLCBOb2RlKiByCiB7CiAgICAg
QVNTRVJUKHJ1blN0YXJ0KTsKIAotICAgIGZvciAoTm9kZSogbm9kZSA9IHJ1blN0YXJ0OyBub2Rl
ICYmIG5vZGUgIT0gcGFzdEVuZE5vZGU7IG5vZGUgPSBOb2RlVHJhdmVyc2FsOjpuZXh0KCpub2Rl
KSkgeworICAgIGZvciAoYXV0byBub2RlID0gbWFrZVJlZlB0cihydW5TdGFydCk7IG5vZGUgJiYg
bm9kZSAhPSBwYXN0RW5kTm9kZTsgbm9kZSA9IE5vZGVUcmF2ZXJzYWw6Om5leHQoKm5vZGUpKSB7
CiAgICAgICAgIGlmIChub2RlLT5oYXNDaGlsZE5vZGVzKCkpCiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgLy8gV2UgZG9uJ3QgY29uc2lkZXIgbV9pc0lubGluZUVsZW1lbnRUb1JlbW92
ZUZ1bmN0aW9uIGhlcmUgYmVjYXVzZSB3ZSBuZXZlciBhcHBseSBzdHlsZSB3aGVuIG1faXNJbmxp
bmVFbGVtZW50VG9SZW1vdmVGdW5jdGlvbiBpcyBzcGVjaWZpZWQKICAgICAgICAgaWYgKCFzdHls
ZS5zdHlsZUlzUHJlc2VudEluQ29tcHV0ZWRTdHlsZU9mTm9kZSgqbm9kZSkpCiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKG1fc3R5bGVkSW5saW5lRWxlbWVudCAmJiAhZW5j
bG9zaW5nRWxlbWVudFdpdGhUYWcocG9zaXRpb25CZWZvcmVOb2RlKG5vZGUpLCBtX3N0eWxlZElu
bGluZUVsZW1lbnQtPnRhZ1FOYW1lKCkpKQorICAgICAgICBpZiAobV9zdHlsZWRJbmxpbmVFbGVt
ZW50ICYmICFlbmNsb3NpbmdFbGVtZW50V2l0aFRhZyhwb3NpdGlvbkJlZm9yZU5vZGUobm9kZS5n
ZXQoKSksIG1fc3R5bGVkSW5saW5lRWxlbWVudC0+dGFnUU5hbWUoKSkpCiAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtOTYxLDE3ICs5NjIsMTcg
QEAgYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6cmVtb3ZlQ1NTU3R5bGUoRWRpdGluZ1N0eWxlJiBz
dHlsZSwgSFRNTEVsZW1lbnQmIGVsZW1lbnQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotSFRNTEVs
ZW1lbnQqIEFwcGx5U3R5bGVDb21tYW5kOjpoaWdoZXN0QW5jZXN0b3JXaXRoQ29uZmxpY3RpbmdJ
bmxpbmVTdHlsZShFZGl0aW5nU3R5bGUmIHN0eWxlLCBOb2RlKiBub2RlKQorUmVmUHRyPEhUTUxF
bGVtZW50PiBBcHBseVN0eWxlQ29tbWFuZDo6aGlnaGVzdEFuY2VzdG9yV2l0aENvbmZsaWN0aW5n
SW5saW5lU3R5bGUoRWRpdGluZ1N0eWxlJiBzdHlsZSwgTm9kZSogbm9kZSkKIHsKICAgICBpZiAo
IW5vZGUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgSFRNTEVsZW1lbnQqIHJlc3Vs
dCA9IG51bGxwdHI7Ci0gICAgTm9kZSogdW5zcGxpdHRhYmxlRWxlbWVudCA9IHVuc3BsaXR0YWJs
ZUVsZW1lbnRGb3JQb3NpdGlvbihmaXJzdFBvc2l0aW9uSW5PckJlZm9yZU5vZGUobm9kZSkpOwor
ICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gcmVzdWx0OworICAgIGF1dG8gdW5zcGxpdHRhYmxlRWxl
bWVudCA9IG1ha2VSZWZQdHIodW5zcGxpdHRhYmxlRWxlbWVudEZvclBvc2l0aW9uKGZpcnN0UG9z
aXRpb25Jbk9yQmVmb3JlTm9kZShub2RlKSkpOwogCi0gICAgZm9yIChOb2RlKiBhbmNlc3RvciA9
IG5vZGU7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnROb2RlKCkpIHsKKyAg
ICBmb3IgKGF1dG8gYW5jZXN0b3IgPSBtYWtlUmVmUHRyKG5vZGUpOyBhbmNlc3RvcjsgYW5jZXN0
b3IgPSBhbmNlc3Rvci0+cGFyZW50Tm9kZSgpKSB7CiAgICAgICAgIGlmIChpczxIVE1MRWxlbWVu
dD4oKmFuY2VzdG9yKSAmJiBzaG91bGRSZW1vdmVJbmxpbmVTdHlsZUZyb21FbGVtZW50KHN0eWxl
LCBkb3duY2FzdDxIVE1MRWxlbWVudD4oKmFuY2VzdG9yKSkpCi0gICAgICAgICAgICByZXN1bHQg
PSBkb3duY2FzdDxIVE1MRWxlbWVudD4oYW5jZXN0b3IpOworICAgICAgICAgICAgcmVzdWx0ID0g
c3RhdGljX3BvaW50ZXJfY2FzdDxIVE1MRWxlbWVudD4oYW5jZXN0b3IpOwogICAgICAgICAvLyBT
aG91bGQgc3RvcCBhdCB0aGUgZWRpdGFibGUgcm9vdCAoY2Fubm90IGNyb3NzIGVkaXRpbmcgYm91
bmRhcnkpIGFuZAogICAgICAgICAvLyBhbHNvIHN0b3AgYXQgdGhlIHVuc3BsaXR0YWJsZSBlbGVt
ZW50IHRvIGJlIGNvbnNpc3RlbnQgd2l0aCBvdGhlciBVQXMKICAgICAgICAgaWYgKGFuY2VzdG9y
ID09IHVuc3BsaXR0YWJsZUVsZW1lbnQpCkBAIC0xMDAxLDEwICsxMDAyLDE0IEBAIHZvaWQgQXBw
bHlTdHlsZUNvbW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb1B1c2hEb3duKE5vZGUmIG5vZGUsIEVk
aXRpbmdTdHlsZSogc3R5CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobm9kZS5y
ZW5kZXJlcigpLT5pc1RleHQoKSAmJiBzdGF0aWNfY2FzdDxSZW5kZXJUZXh0Kj4obm9kZS5yZW5k
ZXJlcigpKS0+aXNBbGxDb2xsYXBzaWJsZVdoaXRlc3BhY2UoKSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChub2RlLnJlbmRlcmVyKCktPmlzQlIoKSAmJiAhbm9kZS5yZW5kZXJlcigpLT5zdHls
ZSgpLnByZXNlcnZlTmV3bGluZSgpKQotICAgICAgICByZXR1cm47CisgICAgeworICAgICAgICBT
Y3JpcHREaXNhbGxvd2VkU2NvcGU6OkluTWFpblRocmVhZCBzY3JpcHREaXNhbGxvd2VkU2NvcGU7
CisKKyAgICAgICAgaWYgKG5vZGUucmVuZGVyZXIoKS0+aXNUZXh0KCkgJiYgc3RhdGljX2Nhc3Q8
UmVuZGVyVGV4dCo+KG5vZGUucmVuZGVyZXIoKSktPmlzQWxsQ29sbGFwc2libGVXaGl0ZXNwYWNl
KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChub2RlLnJlbmRlcmVyKCktPmlz
QlIoKSAmJiAhbm9kZS5yZW5kZXJlcigpLT5zdHlsZSgpLnByZXNlcnZlTmV3bGluZSgpKQorICAg
ICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIC8vIFdlIGNhbid0IHdyYXAgbm9kZSB3aXRo
IHRoZSBzdHlsZWQgZWxlbWVudCBoZXJlIGJlY2F1c2UgbmV3IHN0eWxlZCBlbGVtZW50IHdpbGwg
bmV2ZXIgYmUgcmVtb3ZlZCBpZiB3ZSBkaWQuCiAgICAgLy8gSWYgd2UgbW9kaWZpZWQgdGhlIGNo
aWxkIHBvaW50ZXIgaW4gcHVzaERvd25JbmxpbmVTdHlsZUFyb3VuZE5vZGUgdG8gcG9pbnQgdG8g
bmV3IHN0eWxlIGVsZW1lbnQKQEAgLTEwMTQsNyArMTAxOSw3IEBAIHZvaWQgQXBwbHlTdHlsZUNv
bW1hbmQ6OmFwcGx5SW5saW5lU3R5bGVUb1B1c2hEb3duKE5vZGUmIG5vZGUsIEVkaXRpbmdTdHls
ZSogc3R5CiAKIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnB1c2hEb3duSW5saW5lU3R5bGVBcm91
bmROb2RlKEVkaXRpbmdTdHlsZSYgc3R5bGUsIE5vZGUqIHRhcmdldE5vZGUpCiB7Ci0gICAgSFRN
TEVsZW1lbnQqIGhpZ2hlc3RBbmNlc3RvciA9IGhpZ2hlc3RBbmNlc3RvcldpdGhDb25mbGljdGlu
Z0lubGluZVN0eWxlKHN0eWxlLCB0YXJnZXROb2RlKTsKKyAgICBhdXRvIGhpZ2hlc3RBbmNlc3Rv
ciA9IGhpZ2hlc3RBbmNlc3RvcldpdGhDb25mbGljdGluZ0lubGluZVN0eWxlKHN0eWxlLCB0YXJn
ZXROb2RlKTsKICAgICBpZiAoIWhpZ2hlc3RBbmNlc3RvcikKICAgICAgICAgcmV0dXJuOwogCkBA
IC0xMDc2LDEzICsxMDgxLDEzIEBAIHZvaWQgQXBwbHlTdHlsZUNvbW1hbmQ6OnJlbW92ZUlubGlu
ZVN0eWxlKEVkaXRpbmdTdHlsZSYgc3R5bGUsIGNvbnN0IFBvc2l0aW9uJiBzCiAgICAgLy8gSWYg
dGhlIHB1c2hEb3duU3RhcnQgaXMgYXQgdGhlIGVuZCBvZiBhIHRleHQgbm9kZSwgdGhlbiB0aGlz
IG5vZGUgaXMgbm90IGZ1bGx5IHNlbGVjdGVkLgogICAgIC8vIE1vdmUgaXQgdG8gdGhlIG5leHQg
ZGVlcCBxdWl2YWxlbnQgcG9zaXRpb24gdG8gYXZvaWQgcmVtb3ZpbmcgdGhlIHN0eWxlIGZyb20g
dGhpcyBub2RlLgogICAgIC8vIGUuZy4gaWYgcHVzaERvd25TdGFydCB3YXMgYXQgUG9zaXRpb24o
ImhlbGxvIiwgNSkgaW4gPGI+aGVsbG88ZGl2PndvcmxkPC9kaXY+PC9iPiwgd2Ugd2FudCBQb3Np
dGlvbigid29ybGQiLCAwKSBpbnN0ZWFkLgotICAgIGF1dG8qIHB1c2hEb3duU3RhcnRDb250YWlu
ZXIgPSBwdXNoRG93blN0YXJ0LmNvbnRhaW5lck5vZGUoKTsKKyAgICBhdXRvIHB1c2hEb3duU3Rh
cnRDb250YWluZXIgPSBtYWtlUmVmUHRyKHB1c2hEb3duU3RhcnQuY29udGFpbmVyTm9kZSgpKTsK
ICAgICBpZiAoaXM8VGV4dD4ocHVzaERvd25TdGFydENvbnRhaW5lcikgJiYgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHB1c2hEb3duU3RhcnQuY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpKSA9
PSBkb3duY2FzdDxUZXh0PigqcHVzaERvd25TdGFydENvbnRhaW5lcikubGVuZ3RoKCkpCiAgICAg
ICAgIHB1c2hEb3duU3RhcnQgPSBuZXh0VmlzdWFsbHlEaXN0aW5jdENhbmRpZGF0ZShwdXNoRG93
blN0YXJ0KTsKICAgICAvLyBJZiBwdXNoRG93bkVuZCBpcyBhdCB0aGUgc3RhcnQgb2YgYSB0ZXh0
IG5vZGUsIHRoZW4gdGhpcyBub2RlIGlzIG5vdCBmdWxseSBzZWxlY3RlZC4KICAgICAvLyBNb3Zl
IGl0IHRvIHRoZSBwcmV2aW91cyBkZWVwIGVxdWl2YWxlbnQgcG9zaXRpb24gdG8gYXZvaWQgcmVt
b3ZpbmcgdGhlIHN0eWxlIGZyb20gdGhpcyBub2RlLgogICAgIFBvc2l0aW9uIHB1c2hEb3duRW5k
ID0gZW5kLnVwc3RyZWFtKCk7Ci0gICAgYXV0byogcHVzaERvd25FbmRDb250YWluZXIgPSBwdXNo
RG93bkVuZC5jb250YWluZXJOb2RlKCk7CisgICAgYXV0byBwdXNoRG93bkVuZENvbnRhaW5lciA9
IG1ha2VSZWZQdHIocHVzaERvd25FbmQuY29udGFpbmVyTm9kZSgpKTsKICAgICBpZiAoaXM8VGV4
dD4ocHVzaERvd25FbmRDb250YWluZXIpICYmICFwdXNoRG93bkVuZC5jb21wdXRlT2Zmc2V0SW5D
b250YWluZXJOb2RlKCkpCiAgICAgICAgIHB1c2hEb3duRW5kID0gcHJldmlvdXNWaXN1YWxseURp
c3RpbmN0Q2FuZGlkYXRlKHB1c2hEb3duRW5kKTsKIApAQCAtMTI0MywxMSArMTI0OCwxMSBAQCBi
b29sIEFwcGx5U3R5bGVDb21tYW5kOjppc1ZhbGlkQ2FyZXRQb3NpdGlvbkluVGV4dE5vZGUoY29u
c3QgUG9zaXRpb24mIHBvc2l0aW9uKQogCiBib29sIEFwcGx5U3R5bGVDb21tYW5kOjptZXJnZVN0
YXJ0V2l0aFByZXZpb3VzSWZJZGVudGljYWwoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQ
b3NpdGlvbiYgZW5kKQogewotICAgIGF1dG8qIHN0YXJ0Tm9kZSA9IHN0YXJ0LmNvbnRhaW5lck5v
ZGUoKTsKKyAgICBhdXRvIHN0YXJ0Tm9kZSA9IG1ha2VSZWZQdHIoc3RhcnQuY29udGFpbmVyTm9k
ZSgpKTsKICAgICBpZiAoc3RhcnQuY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaXNBdG9taWNOb2RlKHN0YXJ0Tm9kZSkpIHsK
KyAgICBpZiAoaXNBdG9taWNOb2RlKHN0YXJ0Tm9kZS5nZXQoKSkpIHsKICAgICAgICAgLy8gbm90
ZTogcHJpb3Igc2libGluZ3MgY291bGQgYmUgdW5yZW5kZXJlZCBlbGVtZW50cy4gaXQncyBzaWxs
eSB0byBtaXNzIHRoZQogICAgICAgICAvLyBtZXJnZSBvcHBvcnR1bml0eSBqdXN0IGZvciB0aGF0
LgogICAgICAgICBpZiAoc3RhcnROb2RlLT5wcmV2aW91c1NpYmxpbmcoKSkKQEAgLTEyNTYsNyAr
MTI2MSw3IEBAIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6Om1lcmdlU3RhcnRXaXRoUHJldmlvdXNJ
ZklkZW50aWNhbChjb25zdCBQb3NpdGlvbiYgc3RhcnQsCiAgICAgICAgIHN0YXJ0Tm9kZSA9IHN0
YXJ0Tm9kZS0+cGFyZW50Tm9kZSgpOwogICAgIH0KIAotICAgIGF1dG8qIHByZXZpb3VzU2libGlu
ZyA9IHN0YXJ0Tm9kZS0+cHJldmlvdXNTaWJsaW5nKCk7CisgICAgYXV0byBwcmV2aW91c1NpYmxp
bmcgPSBtYWtlUmVmUHRyKHN0YXJ0Tm9kZS0+cHJldmlvdXNTaWJsaW5nKCkpOwogICAgIGlmICgh
cHJldmlvdXNTaWJsaW5nIHx8ICFhcmVJZGVudGljYWxFbGVtZW50cygqc3RhcnROb2RlLCAqcHJl
dmlvdXNTaWJsaW5nKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMjY5LDE4ICsxMjc0
LDE4IEBAIGJvb2wgQXBwbHlTdHlsZUNvbW1hbmQ6Om1lcmdlU3RhcnRXaXRoUHJldmlvdXNJZklk
ZW50aWNhbChjb25zdCBQb3NpdGlvbiYgc3RhcnQsCiAgICAgLy8gRklYTUU6IEluY29uc2lzdGVu
dCB0aGF0IHdlIHVzZSBjb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlIGZvciBzdGFydCwgYnV0
IGRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0IGZvciBlbmQuCiAgICAgdW5zaWduZWQgc3RhcnRPZmZz
ZXQgPSBzdGFydENoaWxkLT5jb21wdXRlTm9kZUluZGV4KCk7CiAgICAgdW5zaWduZWQgZW5kT2Zm
c2V0ID0gZW5kLmRlcHJlY2F0ZWRFZGl0aW5nT2Zmc2V0KCkgKyAoc3RhcnROb2RlID09IGVuZC5k
ZXByZWNhdGVkTm9kZSgpID8gc3RhcnRPZmZzZXQgOiAwKTsKLSAgICB1cGRhdGVTdGFydEVuZCh7
IHN0YXJ0Tm9kZSwgc3RhcnRPZmZzZXQsIFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNo
b3IgfSwKKyAgICB1cGRhdGVTdGFydEVuZCh7IHN0YXJ0Tm9kZS5nZXQoKSwgc3RhcnRPZmZzZXQs
IFBvc2l0aW9uOjpQb3NpdGlvbklzT2Zmc2V0SW5BbmNob3IgfSwKICAgICAgICAgeyBlbmQuZGVw
cmVjYXRlZE5vZGUoKSwgZW5kT2Zmc2V0LCBQb3NpdGlvbjo6UG9zaXRpb25Jc09mZnNldEluQW5j
aG9yIH0pOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEFwcGx5U3R5bGVDb21tYW5kOjpt
ZXJnZUVuZFdpdGhOZXh0SWZJZGVudGljYWwoY29uc3QgUG9zaXRpb24mIHN0YXJ0LCBjb25zdCBQ
b3NpdGlvbiYgZW5kKQogewotICAgIE5vZGUqIGVuZE5vZGUgPSBlbmQuY29udGFpbmVyTm9kZSgp
OworICAgIGF1dG8gZW5kTm9kZSA9IG1ha2VSZWZQdHIoZW5kLmNvbnRhaW5lck5vZGUoKSk7CiAK
LSAgICBpZiAoaXNBdG9taWNOb2RlKGVuZE5vZGUpKSB7CisgICAgaWYgKGlzQXRvbWljTm9kZShl
bmROb2RlLmdldCgpKSkgewogICAgICAgICBpbnQgZW5kT2Zmc2V0ID0gZW5kLmNvbXB1dGVPZmZz
ZXRJbkNvbnRhaW5lck5vZGUoKTsKLSAgICAgICAgaWYgKG9mZnNldElzQmVmb3JlTGFzdE5vZGVP
ZmZzZXQoZW5kT2Zmc2V0LCBlbmROb2RlKSB8fCBlbmQuZGVwcmVjYXRlZE5vZGUoKS0+bmV4dFNp
YmxpbmcoKSkKKyAgICAgICAgaWYgKG9mZnNldElzQmVmb3JlTGFzdE5vZGVPZmZzZXQoZW5kT2Zm
c2V0LCBlbmROb2RlLmdldCgpKSB8fCBlbmQuZGVwcmVjYXRlZE5vZGUoKS0+bmV4dFNpYmxpbmco
KSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBlbmROb2RlID0gZW5kLmRl
cHJlY2F0ZWROb2RlKCktPnBhcmVudE5vZGUoKTsKQEAgLTEyODksNyArMTI5NCw3IEBAIGJvb2wg
QXBwbHlTdHlsZUNvbW1hbmQ6Om1lcmdlRW5kV2l0aE5leHRJZklkZW50aWNhbChjb25zdCBQb3Np
dGlvbiYgc3RhcnQsIGNvbnN0CiAgICAgaWYgKGVuZE5vZGUtPmhhc1RhZ05hbWUoYnJUYWcpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBOb2RlKiBuZXh0U2libGluZyA9IGVuZE5vZGUt
Pm5leHRTaWJsaW5nKCk7CisgICAgYXV0byBuZXh0U2libGluZyA9IG1ha2VSZWZQdHIoZW5kTm9k
ZS0+bmV4dFNpYmxpbmcoKSk7CiAgICAgaWYgKCFuZXh0U2libGluZyB8fCAhYXJlSWRlbnRpY2Fs
RWxlbWVudHMoKmVuZE5vZGUsICpuZXh0U2libGluZykpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IApAQCAtMTMzNiw3ICsxMzQxLDcgQEAgYm9vbCBBcHBseVN0eWxlQ29tbWFuZDo6c3Vycm91bmRO
b2RlUmFuZ2VXaXRoRWxlbWVudChOb2RlJiBzdGFydE5vZGUsIE5vZGUmIGVuZE4KICAgICAgICAg
bWVyZ2VJZGVudGljYWxFbGVtZW50cyhlbGVtZW50LCBkb3duY2FzdDxFbGVtZW50PigqbmV4dFNp
YmxpbmcpKTsKIAogICAgIGlmIChpczxFbGVtZW50PihwcmV2aW91c1NpYmxpbmcpICYmIHByZXZp
b3VzU2libGluZy0+aGFzRWRpdGFibGVTdHlsZSgpKSB7Ci0gICAgICAgIGF1dG8qIG1lcmdlZEVs
ZW1lbnQgPSBwcmV2aW91c1NpYmxpbmctPm5leHRTaWJsaW5nKCk7CisgICAgICAgIGF1dG8gbWVy
Z2VkRWxlbWVudCA9IG1ha2VSZWZQdHIocHJldmlvdXNTaWJsaW5nLT5uZXh0U2libGluZygpKTsK
ICAgICAgICAgQVNTRVJUKG1lcmdlZEVsZW1lbnQpOwogICAgICAgICBpZiAobWVyZ2VkRWxlbWVu
dC0+aGFzRWRpdGFibGVTdHlsZSgpICYmIGFyZUlkZW50aWNhbEVsZW1lbnRzKCpwcmV2aW91c1Np
YmxpbmcsICptZXJnZWRFbGVtZW50KSkKICAgICAgICAgICAgIG1lcmdlSWRlbnRpY2FsRWxlbWVu
dHMoZG93bmNhc3Q8RWxlbWVudD4oKnByZXZpb3VzU2libGluZyksIGRvd25jYXN0PEVsZW1lbnQ+
KCptZXJnZWRFbGVtZW50KSk7CkBAIC0xMzk5LDggKzE0MDQsOCBAQCB2b2lkIEFwcGx5U3R5bGVD
b21tYW5kOjphcHBseUlubGluZVN0eWxlQ2hhbmdlKE5vZGUmIHBhc3NlZFN0YXJ0LCBOb2RlJiBw
YXNzZWRFbgogICAgIEFTU0VSVChlbmROb2RlLT5pc0Nvbm5lY3RlZCgpKTsKIAogICAgIC8vIEZp
bmQgYXBwcm9wcmlhdGUgZm9udCBhbmQgc3BhbiBlbGVtZW50cyB0b3AtZG93bi4KLSAgICBIVE1M
Rm9udEVsZW1lbnQqIGZvbnRDb250YWluZXIgPSBudWxscHRyOwotICAgIEhUTUxFbGVtZW50KiBz
dHlsZUNvbnRhaW5lciA9IG51bGxwdHI7CisgICAgUmVmUHRyPEhUTUxGb250RWxlbWVudD4gZm9u
dENvbnRhaW5lcjsKKyAgICBSZWZQdHI8SFRNTEVsZW1lbnQ+IHN0eWxlQ29udGFpbmVyOwogICAg
IHdoaWxlIChzdGFydE5vZGUgPT0gZW5kTm9kZSkgewogICAgICAgICBpZiAoaXM8SFRNTEVsZW1l
bnQ+KCpzdGFydE5vZGUpKSB7CiAgICAgICAgICAgICBhdXRvJiBjb250YWluZXIgPSBkb3duY2Fz
dDxIVE1MRWxlbWVudD4oKnN0YXJ0Tm9kZSk7CkBAIC0xNDk3LDcgKzE1MDIsNyBAQCB2b2lkIEFw
cGx5U3R5bGVDb21tYW5kOjpqb2luQ2hpbGRUZXh0Tm9kZXMoTm9kZSogbm9kZSwgY29uc3QgUG9z
aXRpb24mIHN0YXJ0LCBjbwogICAgICAgICB0ZXh0Tm9kZXMuYXBwZW5kKCp0ZXh0Tm9kZSk7CiAK
ICAgICBmb3IgKGF1dG8mIGNoaWxkVGV4dCA6IHRleHROb2RlcykgewotICAgICAgICBOb2RlKiBu
ZXh0ID0gY2hpbGRUZXh0LT5uZXh0U2libGluZygpOworICAgICAgICBhdXRvIG5leHQgPSBtYWtl
UmVmUHRyKGNoaWxkVGV4dC0+bmV4dFNpYmxpbmcoKSk7CiAgICAgICAgIGlmICghaXM8VGV4dD4o
bmV4dCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvQXBwbHlTdHlsZUNvbW1hbmQuaAppbmRleCBiMDNhNTQwYzZiY2I2MzY4YjkyNjYyNGRmMjM5
OWUxMjZiMzY4YTg2Li41N2NlOGVjZmQzNmM3NTI4NDdhZGVkMmNmZmY3MjQ1NDMzYmJhYjM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5oCkBAIC04Miw3ICs4
Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXBsYWNlV2l0aFNwYW5PclJlbW92ZUlmV2l0aG91
dEF0dHJpYnV0ZXMoSFRNTEVsZW1lbnQmKTsKICAgICBib29sIHJlbW92ZUltcGxpY2l0bHlTdHls
ZWRFbGVtZW50KEVkaXRpbmdTdHlsZSYsIEhUTUxFbGVtZW50JiwgSW5saW5lU3R5bGVSZW1vdmFs
TW9kZSwgRWRpdGluZ1N0eWxlKiBleHRyYWN0ZWRTdHlsZSk7CiAgICAgYm9vbCByZW1vdmVDU1NT
dHlsZShFZGl0aW5nU3R5bGUmLCBIVE1MRWxlbWVudCYsIElubGluZVN0eWxlUmVtb3ZhbE1vZGUg
PSBSZW1vdmVJZk5lZWRlZCwgRWRpdGluZ1N0eWxlKiBleHRyYWN0ZWRTdHlsZSA9IG51bGxwdHIp
OwotICAgIEhUTUxFbGVtZW50KiBoaWdoZXN0QW5jZXN0b3JXaXRoQ29uZmxpY3RpbmdJbmxpbmVT
dHlsZShFZGl0aW5nU3R5bGUmLCBOb2RlKik7CisgICAgUmVmUHRyPEhUTUxFbGVtZW50PiBoaWdo
ZXN0QW5jZXN0b3JXaXRoQ29uZmxpY3RpbmdJbmxpbmVTdHlsZShFZGl0aW5nU3R5bGUmLCBOb2Rl
Kik7CiAgICAgdm9pZCBhcHBseUlubGluZVN0eWxlVG9QdXNoRG93bihOb2RlJiwgRWRpdGluZ1N0
eWxlKik7CiAgICAgdm9pZCBwdXNoRG93bklubGluZVN0eWxlQXJvdW5kTm9kZShFZGl0aW5nU3R5
bGUmLCBOb2RlKik7CiAgICAgdm9pZCByZW1vdmVJbmxpbmVTdHlsZShFZGl0aW5nU3R5bGUmLCBj
b25zdCBQb3NpdGlvbiYgc3RhcnQsIGNvbnN0IFBvc2l0aW9uJiBlbmQpOwpAQCAtMTEzLDcgKzEx
Myw3IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgY29tcHV0ZWRGb250U2l6ZShOb2RlKik7CiAgICAg
dm9pZCBqb2luQ2hpbGRUZXh0Tm9kZXMoTm9kZSosIGNvbnN0IFBvc2l0aW9uJiBzdGFydCwgY29u
c3QgUG9zaXRpb24mIGVuZCk7CiAKLSAgICBIVE1MRWxlbWVudCogc3BsaXRBbmNlc3RvcnNXaXRo
VW5pY29kZUJpZGkoTm9kZSosIGJvb2wgYmVmb3JlLCBXcml0aW5nRGlyZWN0aW9uIGFsbG93ZWRE
aXJlY3Rpb24pOworICAgIFJlZlB0cjxIVE1MRWxlbWVudD4gc3BsaXRBbmNlc3RvcnNXaXRoVW5p
Y29kZUJpZGkoTm9kZSosIGJvb2wgYmVmb3JlLCBXcml0aW5nRGlyZWN0aW9uIGFsbG93ZWREaXJl
Y3Rpb24pOwogICAgIHZvaWQgcmVtb3ZlRW1iZWRkaW5nVXBUb0VuY2xvc2luZ0Jsb2NrKE5vZGUq
IG5vZGUsIE5vZGUqIHVuc3BsaXRBbmNlc3Rvcik7CiAKICAgICB2b2lkIHVwZGF0ZVN0YXJ0RW5k
KGNvbnN0IFBvc2l0aW9uJiBuZXdTdGFydCwgY29uc3QgUG9zaXRpb24mIG5ld0VuZCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>