<?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>182964</bug_id>
          
          <creation_ts>2018-02-20 04:51:33 -0800</creation_ts>
          <short_desc>[Cairo] Drop target GraphicsContext usage in Cairo operations</short_desc>
          <delta_ts>2018-02-20 09:04:26 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1400727</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-20 04:51:33 -0800</bug_when>
    <thetext>[Cairo] Drop target GraphicsContext usage in Cairo operations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400732</commentid>
    <comment_count>1</comment_count>
      <attachid>334261</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-20 04:58:01 -0800</bug_when>
    <thetext>Created attachment 334261
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400734</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-20 05:00:09 -0800</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #1)
&gt; Created attachment 334261 [details]
&gt; Patch

Patch here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400781</commentid>
    <comment_count>3</comment_count>
      <attachid>334261</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-20 09:03:10 -0800</bug_when>
    <thetext>Comment on attachment 334261
Patch

Clearing flags on attachment: 334261

Committed r228821: &lt;https://trac.webkit.org/changeset/228821&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400782</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-02-20 09:03:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1400783</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-20 09:04:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/37709530&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>334261</attachid>
            <date>2018-02-20 04:58:01 -0800</date>
            <delta_ts>2018-02-20 09:03:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182964-20180220135759.patch</filename>
            <type>text/plain</type>
            <size>40859</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI4Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzE2ZTRhZGY5MjZmYjA3
YTI1MmRkNjQ5MjM4YmNjOTlkNjVjN2FlYy4uZmEwN2Y5MWIzNGFlODE4NzM3NTEwOWEwNzhmOWQ1
NTE4ZDY5YmJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUyIEBACiAyMDE4LTAyLTIwICBaYW4g
RG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KIAorICAgICAgICBbQ2Fpcm9dIERyb3Ag
dGFyZ2V0IEdyYXBoaWNzQ29udGV4dCB1c2FnZSBpbiBDYWlybyBvcGVyYXRpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODI5NjQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgR3JhcGhpY3NDb250
ZXh0IHBhcmFtZXRlcnMgaW4gdmFyaW91cyBDYWlybyBvcGVyYXRpb25zIGFyZSBub3QgdXNlZAor
ICAgICAgICBhbnltb3JlLCBzbyB0aGV5IGNhbiBiZSByZW1vdmVkLiBDYWxsc2l0ZXMgYXJlIHVw
ZGF0ZWQgdG8gcmVmbGVjdCB0aGlzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vQ2Fpcm9PcGVyYXRpb25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpkcmF3U2hh
ZG93TGF5ZXJCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmZpbGxTaGFkb3dCdWZm
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdQYXRoU2hhZG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhaXJvOjpkcmF3R2x5cGhzU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OkNh
aXJvOjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFJvdW5kZWRSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkNhaXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZmlsbFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fp
cm86OnN0cm9rZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OnN0cm9rZVBhdGgpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2Fpcm86OmRyYXdHbHlwaHMpOgorICAgICAgICAoV2ViQ29yZTo6
Q2Fpcm86OmRyYXdOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpDYWlybzo6ZHJhd1N1
cmZhY2UpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9u
cy5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6ZHJhd0dseXBocyk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpkcmF3TmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0OjpmaWxsUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQ6OnN0cm9rZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0OjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9r
ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpwbGF0Zm9ybUZpbGxS
b3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0
V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvOjpmaWxsUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHRJbXBsQ2Fpcm86OmZpbGxSb3VuZGVkUmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRJbXBsQ2Fpcm86OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZmlsbFBhdGgpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpzdHJva2VSZWN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdHbHlwaHMpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpkcmF3TmF0aXZlSW1hZ2UpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5k
YXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3Vu
ZGF0aW9uOjpEaXJlY3QzRFByZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUpOgorCisyMDE4LTAy
LTIwICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKwogICAgICAgICBbQ2Fp
cm9dIExldmVyYWdlIFNoYWRvd0JsdXIgd2l0aG91dCB1c2luZyBzY3JhdGNoIGJ1ZmZlciwgdGFy
Z2V0IEdyYXBoaWNzQ29udGV4dAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTgyOTU4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggN2JhZGYyZDEzNzI2Y2RiMjNlMTU4YTE4
MDc0ZmQ0MWI2NDRlMmYyMS4uNGU1N2MxMWFhNDEzN2U4NmRiY2M3ZmQ1MjkwNmU2YzZlNzI4NzIz
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wMi0yMCAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0NhaXJvXSBEcm9wIHRhcmdldCBHcmFw
aGljc0NvbnRleHQgdXNhZ2UgaW4gQ2Fpcm8gb3BlcmF0aW9ucworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgyOTY0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIEdyYXBoaWNzQ29udGV4dCBwYXJhbWV0
ZXJzIGluIHZhcmlvdXMgQ2Fpcm8gb3BlcmF0aW9ucyBhcmUgbm90IHVzZWQKKyAgICAgICAgYW55
bW9yZSwgc28gdGhleSBjYW4gYmUgcmVtb3ZlZC4gQ2FsbHNpdGVzIGFyZSB1cGRhdGVkIHRvIHJl
ZmxlY3QgdGhpcy4KKworICAgICAgICAqIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWly
by5jcHA6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6cGFpbnQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRHdGsuY3BwOgor
ICAgICAgICAoV2ViS2l0Ojpjb252ZXJ0Q2Fpcm9TdXJmYWNlVG9TaGFyZWFibGVCaXRtYXApOgor
CiAyMDE4LTAyLTIwICBZb3VzdWtlIEtpbW90byAgPHlvdXN1a2Uua2ltb3RvQHNvbnkuY29tPgog
CiAgICAgICAgIFtXaW5dIEZpeCBNU1ZDJ3MgdHJlYXRpbmcgX19hdHRyaWJ1dGVfXygod2Fybl91
bnVzZWRfcmVzdWx0KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9DYWlyb09wZXJhdGlvbnMuY3BwCmluZGV4IGIzMjk2ZDA5OTg0NGU3NGI1
YjE3MGVhZDQzOTlmZmQ3MjE3YzQwMGEuLjE4NjJkZWZhMWViM2ZiZDQ2NmYxZmJhMmRhZDlmOGQ0
NjBhZTI4MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0NhaXJvT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmNwcApAQCAtMTc1LDcgKzE3NSw3IEBAIGVudW0g
UGF0aERyYXdpbmdTdHlsZSB7CiAgICAgRmlsbEFuZFN0cm9rZSA9IEZpbGwgKyBTdHJva2UKIH07
CiAKLXN0YXRpYyB2b2lkIGRyYXdTaGFkb3dMYXllckJ1ZmZlcihQbGF0Zm9ybUNvbnRleHRDYWly
byYgcGxhdGZvcm1Db250ZXh0LCBJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQ
b2ludCYgbGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBTaGFk
b3dTdGF0ZSYgc2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3N0
YXRpYyB2b2lkIGRyYXdTaGFkb3dMYXllckJ1ZmZlcihQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYg
bGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBTaGFkb3dTdGF0
ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAgUmVmUHRyPEltYWdlPiBpbWFnZSA9IGxheWVySW1hZ2Uu
Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlKTsKICAgICBpZiAoIWltYWdlKQpAQCAtMTg0
LDExICsxODQsMTEgQEAgc3RhdGljIHZvaWQgZHJhd1NoYWRvd0xheWVyQnVmZmVyKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIEltYWdlQnUKICAgICBpZiAoYXV0byBzdXJm
YWNlID0gaW1hZ2UtPm5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkpIHsKICAgICAgICAgZHJh
d05hdGl2ZUltYWdlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZS5nZXQoKSwgRmxvYXRSZWN0KHJv
dW5kZWRJbnRQb2ludChsYXllck9yaWdpbiksIGxheWVyU2l6ZSksIEZsb2F0UmVjdChGbG9hdFBv
aW50KCksIGxheWVyU2l6ZSksCiAgICAgICAgICAgICBzaGFkb3dTdGF0ZS5nbG9iYWxDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlTm9ybWFsLCBJbWFnZU9yaWVudGF0aW9uKCksCi0gICAgICAg
ICAgICBJbnRlcnBvbGF0aW9uRGVmYXVsdCwgc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGEsIFNoYWRv
d1N0YXRlKCksIHRhcmdldENvbnRleHQpOworICAgICAgICAgICAgSW50ZXJwb2xhdGlvbkRlZmF1
bHQsIHNoYWRvd1N0YXRlLmdsb2JhbEFscGhhLCBTaGFkb3dTdGF0ZSgpKTsKICAgICB9CiB9CiAK
LXN0YXRpYyB2b2lkIGZpbGxTaGFkb3dCdWZmZXIoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRm
b3JtQ29udGV4dCwgSW1hZ2VCdWZmZXImIGxheWVySW1hZ2UsIGNvbnN0IEZsb2F0UG9pbnQmIGxh
eWVyT3JpZ2luLCBjb25zdCBGbG9hdFNpemUmIGxheWVyU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBz
b3VyY2VSZWN0LCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4
dCYgdGFyZ2V0Q29udGV4dCkKK3N0YXRpYyB2b2lkIGZpbGxTaGFkb3dCdWZmZXIoUGxhdGZvcm1D
b250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgSW1hZ2VCdWZmZXImIGxheWVySW1hZ2UsIGNv
bnN0IEZsb2F0UG9pbnQmIGxheWVyT3JpZ2luLCBjb25zdCBGbG9hdFNpemUmIGxheWVyU2l6ZSwg
Y29uc3QgRmxvYXRSZWN0JiBzb3VyY2VSZWN0LCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3Rh
dGUpCiB7CiAgICAgc2F2ZShwbGF0Zm9ybUNvbnRleHQpOwogCkBAIC0yMDEsMTIgKzIwMSwxMiBA
QCBzdGF0aWMgdm9pZCBmaWxsU2hhZG93QnVmZmVyKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0
Zm9ybUNvbnRleHQsIEltYWdlQnVmZmVyJgogICAgIEZpbGxTb3VyY2UgZmlsbFNvdXJjZTsKICAg
ICBmaWxsU291cmNlLmdsb2JhbEFscGhhID0gc2hhZG93U3RhdGUuZ2xvYmFsQWxwaGE7CiAgICAg
ZmlsbFNvdXJjZS5jb2xvciA9IHNoYWRvd1N0YXRlLmNvbG9yOwotICAgIGZpbGxSZWN0KHBsYXRm
b3JtQ29udGV4dCwgRmxvYXRSZWN0KGxheWVyT3JpZ2luLCBzb3VyY2VSZWN0LnNpemUoKSksIGZp
bGxTb3VyY2UsIFNoYWRvd1N0YXRlKCksIHRhcmdldENvbnRleHQpOworICAgIGZpbGxSZWN0KHBs
YXRmb3JtQ29udGV4dCwgRmxvYXRSZWN0KGxheWVyT3JpZ2luLCBzb3VyY2VSZWN0LnNpemUoKSks
IGZpbGxTb3VyY2UsIFNoYWRvd1N0YXRlKCkpOwogCiAgICAgcmVzdG9yZShwbGF0Zm9ybUNvbnRl
eHQpOwogfQogCi1zdGF0aWMgaW5saW5lIHZvaWQgZHJhd1BhdGhTaGFkb3coUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdXJjZSwg
Y29uc3QgU3Ryb2tlU291cmNlJiBzdHJva2VTb3VyY2UsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFk
b3dTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiB0YXJnZXRDb250ZXh0LCBQYXRoRHJhd2luZ1N0eWxl
IGRyYXdpbmdTdHlsZSkKK3N0YXRpYyBpbmxpbmUgdm9pZCBkcmF3UGF0aFNoYWRvdyhQbGF0Zm9y
bUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291
cmNlLCBjb25zdCBTdHJva2VTb3VyY2UmIHN0cm9rZVNvdXJjZSwgY29uc3QgU2hhZG93U3RhdGUm
IHNoYWRvd1N0YXRlLCBQYXRoRHJhd2luZ1N0eWxlIGRyYXdpbmdTdHlsZSkKIHsKICAgICBTaGFk
b3dCbHVyIHNoYWRvdyh7IHNoYWRvd1N0YXRlLmJsdXIsIHNoYWRvd1N0YXRlLmJsdXIgfSwgc2hh
ZG93U3RhdGUub2Zmc2V0LCBzaGFkb3dTdGF0ZS5jb2xvciwgc2hhZG93U3RhdGUuaWdub3JlVHJh
bnNmb3Jtcyk7CiAgICAgaWYgKHNoYWRvdy50eXBlKCkgPT0gU2hhZG93Qmx1cjo6Tm9TaGFkb3cp
CkBAIC0yNTYsNyArMjU2LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGRyYXdQYXRoU2hhZG93KFBs
YXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEYKICAgICAgICAgICAg
ICAgICBjYWlyb19zdHJva2UoY2Fpcm9TaGFkb3dDb250ZXh0KTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfSwKLSAgICAgICAgWyZwbGF0Zm9ybUNvbnRleHQsICZzaGFkb3dTdGF0ZSwgJmNhaXJv
Q29udGV4dCwgJnBhdGgsICZ0YXJnZXRDb250ZXh0XShJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwg
Y29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXpl
LCBjb25zdCBGbG9hdFJlY3QmKQorICAgICAgICBbJnBsYXRmb3JtQ29udGV4dCwgJnNoYWRvd1N0
YXRlLCAmY2Fpcm9Db250ZXh0LCAmcGF0aF0oSW1hZ2VCdWZmZXImIGxheWVySW1hZ2UsIGNvbnN0
IEZsb2F0UG9pbnQmIGxheWVyT3JpZ2luLCBjb25zdCBGbG9hdFNpemUmIGxheWVyU2l6ZSwgY29u
c3QgRmxvYXRSZWN0JikKICAgICAgICAgewogICAgICAgICAgICAgLy8gVGhlIG9yaWdpbmFsIHBh
dGggbWF5IHN0aWxsIGJlIGhhbmdpbmcgYXJvdW5kIG9uIHRoZSBjb250ZXh0IGFuZCBlbmRTaGFk
b3dMYXllcgogICAgICAgICAgICAgLy8gd2lsbCB0YWtlIGNhcmUgb2YgcHJvcGVybHkgY3JlYXRp
bmcgYSBwYXRoIHRvIGRyYXcgdGhlIHJlc3VsdCBzaGFkb3cuIFdlIHJlbW92ZSB0aGUgcGF0aApA
QCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkcmF3UGF0aFNoYWRvdyhQbGF0
Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGCiAgICAgICAgICAgICAv
LyBTZWU6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg4OTcKICAg
ICAgICAgICAgIGNhaXJvX25ld19wYXRoKGNhaXJvQ29udGV4dCk7CiAKLSAgICAgICAgICAgIGRy
YXdTaGFkb3dMYXllckJ1ZmZlcihwbGF0Zm9ybUNvbnRleHQsIGxheWVySW1hZ2UsIGxheWVyT3Jp
Z2luLCBsYXllclNpemUsIHNoYWRvd1N0YXRlLCB0YXJnZXRDb250ZXh0KTsKKyAgICAgICAgICAg
IGRyYXdTaGFkb3dMYXllckJ1ZmZlcihwbGF0Zm9ybUNvbnRleHQsIGxheWVySW1hZ2UsIGxheWVy
T3JpZ2luLCBsYXllclNpemUsIHNoYWRvd1N0YXRlKTsKIAogICAgICAgICAgICAgY2Fpcm9fYXBw
ZW5kX3BhdGgoY2Fpcm9Db250ZXh0LCBwYXRoLmdldCgpKTsKICAgICAgICAgfSk7CkBAIC0zMjYs
NyArMzI2LDcgQEAgc3RhdGljIHZvaWQgZHJhd0dseXBoc1RvQ29udGV4dChjYWlyb190KiBjb250
ZXh0LCBjYWlyb19zY2FsZWRfZm9udF90KiBzY2FsZWRGb24KICAgICB9CiB9CiAKLXN0YXRpYyB2
b2lkIGRyYXdHbHlwaHNTaGFkb3coUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4
dCwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBUZXh0RHJhd2luZ01vZGVGbGFncyB0
ZXh0RHJhd2luZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBjb25zdCBDb2xv
ciYgc2hhZG93Q29sb3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjYWlyb19zY2FsZWRfZm9u
dF90KiBzY2FsZWRGb250LCBkb3VibGUgc3ludGhldGljQm9sZE9mZnNldCwgY29uc3QgVmVjdG9y
PGNhaXJvX2dseXBoX3Q+JiBnbHlwaHMsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkK
K3N0YXRpYyB2b2lkIGRyYXdHbHlwaHNTaGFkb3coUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRm
b3JtQ29udGV4dCwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBUZXh0RHJhd2luZ01v
ZGVGbGFncyB0ZXh0RHJhd2luZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgc2hhZG93T2Zmc2V0LCBj
b25zdCBDb2xvciYgc2hhZG93Q29sb3IsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjYWlyb19z
Y2FsZWRfZm9udF90KiBzY2FsZWRGb250LCBkb3VibGUgc3ludGhldGljQm9sZE9mZnNldCwgY29u
c3QgVmVjdG9yPGNhaXJvX2dseXBoX3Q+JiBnbHlwaHMpCiB7CiAgICAgU2hhZG93Qmx1ciBzaGFk
b3coeyBzaGFkb3dTdGF0ZS5ibHVyLCBzaGFkb3dTdGF0ZS5ibHVyIH0sIHNoYWRvd1N0YXRlLm9m
ZnNldCwgc2hhZG93U3RhdGUuY29sb3IsIHNoYWRvd1N0YXRlLmlnbm9yZVRyYW5zZm9ybXMpOwog
ICAgIGlmICghKHRleHREcmF3aW5nTW9kZSAmIFRleHRNb2RlRmlsbCkgfHwgc2hhZG93LnR5cGUo
KSA9PSBTaGFkb3dCbHVyOjpOb1NoYWRvdykKQEAgLTM1NCw5ICszNTQsOSBAQCBzdGF0aWMgdm9p
ZCBkcmF3R2x5cGhzU2hhZG93KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQs
IGNvbnN0IFNoYWRvdwogICAgICAgICB7CiAgICAgICAgICAgICBkcmF3R2x5cGhzVG9Db250ZXh0
KHNoYWRvd0NvbnRleHQucGxhdGZvcm1Db250ZXh0KCktPmNyKCksIHNjYWxlZEZvbnQsIHN5bnRo
ZXRpY0JvbGRPZmZzZXQsIGdseXBocyk7CiAgICAgICAgIH0sCi0gICAgICAgIFsmcGxhdGZvcm1D
b250ZXh0LCAmc2hhZG93U3RhdGUsICZ0YXJnZXRDb250ZXh0XShJbWFnZUJ1ZmZlciYgbGF5ZXJJ
bWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5
ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmKQorICAgICAgICBbJnBsYXRmb3JtQ29udGV4dCwgJnNo
YWRvd1N0YXRlXShJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5
ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmKQog
ICAgICAgICB7Ci0gICAgICAgICAgICBkcmF3U2hhZG93TGF5ZXJCdWZmZXIocGxhdGZvcm1Db250
ZXh0LCBsYXllckltYWdlLCBsYXllck9yaWdpbiwgbGF5ZXJTaXplLCBzaGFkb3dTdGF0ZSwgdGFy
Z2V0Q29udGV4dCk7CisgICAgICAgICAgICBkcmF3U2hhZG93TGF5ZXJCdWZmZXIocGxhdGZvcm1D
b250ZXh0LCBsYXllckltYWdlLCBsYXllck9yaWdpbiwgbGF5ZXJTaXplLCBzaGFkb3dTdGF0ZSk7
CiAgICAgICAgIH0pOwogfQogCkBAIC02ODAsMjMgKzY4MCwyMyBAQCB2b2lkIHNldE1pdGVyTGlt
aXQoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgZmxvYXQgbWl0ZXJMaW1p
dCkKICAgICBjYWlyb19zZXRfbWl0ZXJfbGltaXQocGxhdGZvcm1Db250ZXh0LmNyKCksIG1pdGVy
TGltaXQpOwogfQogCi12b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9y
bUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNv
dXJjZSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBHcmFwaGljc0NvbnRleHQmIHRh
cmdldENvbnRleHQpCit2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9y
bUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNv
dXJjZSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIGNhaXJvX3QqIGNy
ID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CiAKICAgICBjYWlyb19yZWN0YW5nbGUoY3IsIHJlY3Qu
eCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKLSAgICBkcmF3UGF0
aFNoYWRvdyhwbGF0Zm9ybUNvbnRleHQsIGZpbGxTb3VyY2UsIHsgfSwgc2hhZG93U3RhdGUsIHRh
cmdldENvbnRleHQsIEZpbGwpOworICAgIGRyYXdQYXRoU2hhZG93KHBsYXRmb3JtQ29udGV4dCwg
ZmlsbFNvdXJjZSwgeyB9LCBzaGFkb3dTdGF0ZSwgRmlsbCk7CiAgICAgZmlsbEN1cnJlbnRDYWly
b1BhdGgocGxhdGZvcm1Db250ZXh0LCBmaWxsU291cmNlKTsKIH0KIAotdm9pZCBmaWxsUmVjdChQ
bGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IENvbG9yJiBjb2xvciwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlLCBH
cmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleHQpCit2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29u
dGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3Qg
Q29sb3ImIGNvbG9yLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAgaWYg
KHNoYWRvd1N0YXRlLmlzVmlzaWJsZSgpKSB7CiAgICAgICAgIFNoYWRvd0JsdXIgc2hhZG93KHsg
c2hhZG93U3RhdGUuYmx1ciwgc2hhZG93U3RhdGUuYmx1ciB9LCBzaGFkb3dTdGF0ZS5vZmZzZXQs
IHNoYWRvd1N0YXRlLmNvbG9yLCBzaGFkb3dTdGF0ZS5pZ25vcmVUcmFuc2Zvcm1zKTsKICAgICAg
ICAgc2hhZG93LmRyYXdSZWN0U2hhZG93KFN0YXRlOjpnZXRDVE0ocGxhdGZvcm1Db250ZXh0KSwg
U3RhdGU6OmdldENsaXBCb3VuZHMocGxhdGZvcm1Db250ZXh0KSwgRmxvYXRSb3VuZGVkUmVjdChy
ZWN0KSwKLSAgICAgICAgICAgIFsmcGxhdGZvcm1Db250ZXh0LCAmc2hhZG93U3RhdGUsICZ0YXJn
ZXRDb250ZXh0XShJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5
ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNv
dXJjZVJlY3QpCisgICAgICAgICAgICBbJnBsYXRmb3JtQ29udGV4dCwgJnNoYWRvd1N0YXRlXShJ
bWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNv
bnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QpCiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgZmlsbFNoYWRvd0J1ZmZlcihwbGF0Zm9ybUNv
bnRleHQsIGxheWVySW1hZ2UsIGxheWVyT3JpZ2luLCBsYXllclNpemUsIHNvdXJjZVJlY3QsIHNo
YWRvd1N0YXRlLCB0YXJnZXRDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBmaWxsU2hhZG93QnVm
ZmVyKHBsYXRmb3JtQ29udGV4dCwgbGF5ZXJJbWFnZSwgbGF5ZXJPcmlnaW4sIGxheWVyU2l6ZSwg
c291cmNlUmVjdCwgc2hhZG93U3RhdGUpOwogICAgICAgICAgICAgfSk7CiAgICAgfQogCkBAIC03
MTIsMTQgKzcxMiwxNCBAQCB2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0
Zm9ybUNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY2FpcgogICAgIGNhaXJvX2ZpbGwo
Y3IpOwogfQogCi12b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxh
dGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0LCBjb25zdCBDb2xvciYg
Y29sb3IsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSwgR3JhcGhpY3NDb250ZXh0JiB0
YXJnZXRDb250ZXh0KQordm9pZCBmaWxsUm91bmRlZFJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8m
IHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29s
b3ImIGNvbG9yLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUpCiB7CiAgICAgaWYgKHNo
YWRvd1N0YXRlLmlzVmlzaWJsZSgpKSB7CiAgICAgICAgIFNoYWRvd0JsdXIgc2hhZG93KHsgc2hh
ZG93U3RhdGUuYmx1ciwgc2hhZG93U3RhdGUuYmx1ciB9LCBzaGFkb3dTdGF0ZS5vZmZzZXQsIHNo
YWRvd1N0YXRlLmNvbG9yLCBzaGFkb3dTdGF0ZS5pZ25vcmVUcmFuc2Zvcm1zKTsKICAgICAgICAg
c2hhZG93LmRyYXdSZWN0U2hhZG93KFN0YXRlOjpnZXRDVE0ocGxhdGZvcm1Db250ZXh0KSwgU3Rh
dGU6OmdldENsaXBCb3VuZHMocGxhdGZvcm1Db250ZXh0KSwgcmVjdCwKLSAgICAgICAgICAgIFsm
cGxhdGZvcm1Db250ZXh0LCAmc2hhZG93U3RhdGUsICZ0YXJnZXRDb250ZXh0XShJbWFnZUJ1ZmZl
ciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0
U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QpCisgICAgICAgICAg
ICBbJnBsYXRmb3JtQ29udGV4dCwgJnNoYWRvd1N0YXRlXShJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFn
ZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmlnaW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJT
aXplLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZVJlY3QpCiAgICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgZmlsbFNoYWRvd0J1ZmZlcihwbGF0Zm9ybUNvbnRleHQsIGxheWVySW1hZ2UsIGxh
eWVyT3JpZ2luLCBsYXllclNpemUsIHNvdXJjZVJlY3QsIHNoYWRvd1N0YXRlLCB0YXJnZXRDb250
ZXh0KTsKKyAgICAgICAgICAgICAgICBmaWxsU2hhZG93QnVmZmVyKHBsYXRmb3JtQ29udGV4dCwg
bGF5ZXJJbWFnZSwgbGF5ZXJPcmlnaW4sIGxheWVyU2l6ZSwgc291cmNlUmVjdCwgc2hhZG93U3Rh
dGUpOwogICAgICAgICAgICAgfSk7CiAgICAgfQogCkBAIC03MzUsMTYgKzczNSwxNiBAQCB2b2lk
IGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBj
b25zdCBGbG9hdFJvdW5kZWRSZQogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCi12b2lkIGZp
bGxSZWN0V2l0aFJvdW5kZWRIb2xlKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYgcm91bmRl
ZEhvbGVSZWN0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291cmNlLCBjb25zdCBTaGFkb3dTdGF0
ZSYgc2hhZG93U3RhdGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3ZvaWQgZmls
bFJlY3RXaXRoUm91bmRlZEhvbGUoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4
dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByb3VuZGVk
SG9sZVJlY3QsIGNvbnN0IEZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsIGNvbnN0IFNoYWRvd1N0YXRl
JiBzaGFkb3dTdGF0ZSkKIHsKICAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgbGV2ZXJhZ2UgdGhl
IHNwZWNpZmllZCBjb2xvci4KIAogICAgIGlmIChzaGFkb3dTdGF0ZS5pc1JlcXVpcmVkKHBsYXRm
b3JtQ29udGV4dCkpIHsKICAgICAgICAgU2hhZG93Qmx1ciBzaGFkb3coeyBzaGFkb3dTdGF0ZS5i
bHVyLCBzaGFkb3dTdGF0ZS5ibHVyIH0sIHNoYWRvd1N0YXRlLm9mZnNldCwgc2hhZG93U3RhdGUu
Y29sb3IsIHNoYWRvd1N0YXRlLmlnbm9yZVRyYW5zZm9ybXMpOwogICAgICAgICBzaGFkb3cuZHJh
d0luc2V0U2hhZG93KFN0YXRlOjpnZXRDVE0ocGxhdGZvcm1Db250ZXh0KSwgU3RhdGU6OmdldENs
aXBCb3VuZHMocGxhdGZvcm1Db250ZXh0KSwgcmVjdCwgcm91bmRlZEhvbGVSZWN0LAotICAgICAg
ICAgICAgWyZwbGF0Zm9ybUNvbnRleHQsICZzaGFkb3dTdGF0ZSwgJnRhcmdldENvbnRleHRdKElt
YWdlQnVmZmVyJiBsYXllckltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBsYXllck9yaWdpbiwgY29u
c3QgRmxvYXRTaXplJiBsYXllclNpemUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlUmVjdCkKKyAg
ICAgICAgICAgIFsmcGxhdGZvcm1Db250ZXh0LCAmc2hhZG93U3RhdGVdKEltYWdlQnVmZmVyJiBs
YXllckltYWdlLCBjb25zdCBGbG9hdFBvaW50JiBsYXllck9yaWdpbiwgY29uc3QgRmxvYXRTaXpl
JiBsYXllclNpemUsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlUmVjdCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBmaWxsU2hhZG93QnVmZmVyKHBsYXRmb3JtQ29udGV4dCwgbGF5ZXJJ
bWFnZSwgbGF5ZXJPcmlnaW4sIGxheWVyU2l6ZSwgc291cmNlUmVjdCwgc2hhZG93U3RhdGUsIHRh
cmdldENvbnRleHQpOworICAgICAgICAgICAgICAgIGZpbGxTaGFkb3dCdWZmZXIocGxhdGZvcm1D
b250ZXh0LCBsYXllckltYWdlLCBsYXllck9yaWdpbiwgbGF5ZXJTaXplLCBzb3VyY2VSZWN0LCBz
aGFkb3dTdGF0ZSk7CiAgICAgICAgICAgICB9KTsKICAgICB9CiAKQEAgLTc2MywzNSArNzYzLDM1
IEBAIHZvaWQgZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBs
YXRmb3JtQ29udGV4dCwgY29uc3QgRmxvYXRSCiAgICAgY2Fpcm9fcmVzdG9yZShjcik7CiB9CiAK
LXZvaWQgZmlsbFBhdGgoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29u
c3QgUGF0aCYgcGF0aCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdXJjZSwgY29uc3QgU2hhZG93
U3RhdGUmIHNoYWRvd1N0YXRlLCBHcmFwaGljc0NvbnRleHQmIHRhcmdldENvbnRleHQpCit2b2lk
IGZpbGxQYXRoKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IFBh
dGgmIHBhdGgsIGNvbnN0IEZpbGxTb3VyY2UmIGZpbGxTb3VyY2UsIGNvbnN0IFNoYWRvd1N0YXRl
JiBzaGFkb3dTdGF0ZSkKIHsKICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4dC5jcigp
OwogCiAgICAgc2V0UGF0aE9uQ2Fpcm9Db250ZXh0KGNyLCBwYXRoLnBsYXRmb3JtUGF0aCgpLT5j
b250ZXh0KCkpOwotICAgIGRyYXdQYXRoU2hhZG93KHBsYXRmb3JtQ29udGV4dCwgZmlsbFNvdXJj
ZSwgeyB9LCBzaGFkb3dTdGF0ZSwgdGFyZ2V0Q29udGV4dCwgRmlsbCk7CisgICAgZHJhd1BhdGhT
aGFkb3cocGxhdGZvcm1Db250ZXh0LCBmaWxsU291cmNlLCB7IH0sIHNoYWRvd1N0YXRlLCBGaWxs
KTsKICAgICBmaWxsQ3VycmVudENhaXJvUGF0aChwbGF0Zm9ybUNvbnRleHQsIGZpbGxTb3VyY2Up
OwogfQogCi12b2lkIHN0cm9rZVJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29u
dGV4dCwgY29uc3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgsIGNvbnN0IFN0cm9r
ZVNvdXJjZSYgc3Ryb2tlU291cmNlLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUsIEdy
YXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3ZvaWQgc3Ryb2tlUmVjdChQbGF0Zm9ybUNv
bnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0
IGxpbmVXaWR0aCwgY29uc3QgU3Ryb2tlU291cmNlJiBzdHJva2VTb3VyY2UsIGNvbnN0IFNoYWRv
d1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtQ29udGV4
dC5jcigpOwogICAgIGNhaXJvX3NhdmUoY3IpOwogCiAgICAgY2Fpcm9fcmVjdGFuZ2xlKGNyLCBy
ZWN0LngoKSwgcmVjdC55KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQoKSk7CiAgICAgY2Fp
cm9fc2V0X2xpbmVfd2lkdGgoY3IsIGxpbmVXaWR0aCk7Ci0gICAgZHJhd1BhdGhTaGFkb3cocGxh
dGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwgc2hhZG93U3RhdGUsIHRhcmdldENvbnRl
eHQsIFN0cm9rZSk7CisgICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0
cm9rZVNvdXJjZSwgc2hhZG93U3RhdGUsIFN0cm9rZSk7CiAgICAgcHJlcGFyZUZvclN0cm9raW5n
KGNyLCBzdHJva2VTb3VyY2UsIFByZXNlcnZlQWxwaGEpOwogICAgIGNhaXJvX3N0cm9rZShjcik7
CiAKICAgICBjYWlyb19yZXN0b3JlKGNyKTsKIH0KIAotdm9pZCBzdHJva2VQYXRoKFBsYXRmb3Jt
Q29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNvbnN0IFBhdGgmIHBhdGgsIGNvbnN0IFN0
cm9rZVNvdXJjZSYgc3Ryb2tlU291cmNlLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3RhdGUs
IEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3ZvaWQgc3Ryb2tlUGF0aChQbGF0Zm9y
bUNvbnRleHRDYWlybyYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBQYXRoJiBwYXRoLCBjb25zdCBT
dHJva2VTb3VyY2UmIHN0cm9rZVNvdXJjZSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRl
KQogewogICAgIGNhaXJvX3QqIGNyID0gcGxhdGZvcm1Db250ZXh0LmNyKCk7CiAKICAgICBzZXRQ
YXRoT25DYWlyb0NvbnRleHQoY3IsIHBhdGgucGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKSk7Ci0g
ICAgZHJhd1BhdGhTaGFkb3cocGxhdGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwgc2hh
ZG93U3RhdGUsIHRhcmdldENvbnRleHQsIFN0cm9rZSk7CisgICAgZHJhd1BhdGhTaGFkb3cocGxh
dGZvcm1Db250ZXh0LCB7IH0sIHN0cm9rZVNvdXJjZSwgc2hhZG93U3RhdGUsIFN0cm9rZSk7CiAg
ICAgcHJlcGFyZUZvclN0cm9raW5nKGNyLCBzdHJva2VTb3VyY2UsIFByZXNlcnZlQWxwaGEpOwog
ICAgIGNhaXJvX3N0cm9rZShjcik7CiB9CkBAIC04MDcsOSArODA3LDkgQEAgdm9pZCBjbGVhclJl
Y3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogICAgIGNhaXJvX3Jlc3RvcmUoY3IpOwogfQogCi12b2lkIGRyYXdHbHlwaHMoUGxh
dGZvcm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmls
bFNvdXJjZSwgY29uc3QgU3Ryb2tlU291cmNlJiBzdHJva2VTb3VyY2UsIGNvbnN0IFNoYWRvd1N0
YXRlJiBzaGFkb3dTdGF0ZSwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNhaXJvX3NjYWxlZF9m
b250X3QqIHNjYWxlZEZvbnQsIGRvdWJsZSBzeW50aGV0aWNCb2xkT2Zmc2V0LCBjb25zdCBWZWN0
b3I8Y2Fpcm9fZ2x5cGhfdD4mIGdseXBocywgZmxvYXQgeE9mZnNldCwgVGV4dERyYXdpbmdNb2Rl
RmxhZ3MgdGV4dERyYXdpbmdNb2RlLCBmbG9hdCBzdHJva2VUaGlja25lc3MsIGNvbnN0IEZsb2F0
U2l6ZSYgc2hhZG93T2Zmc2V0LCBjb25zdCBDb2xvciYgc2hhZG93Q29sb3IsIEdyYXBoaWNzQ29u
dGV4dCYgdGFyZ2V0Q29udGV4dCkKK3ZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRleHRDYWly
byYgcGxhdGZvcm1Db250ZXh0LCBjb25zdCBGaWxsU291cmNlJiBmaWxsU291cmNlLCBjb25zdCBT
dHJva2VTb3VyY2UmIHN0cm9rZVNvdXJjZSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRl
LCBjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY2Fpcm9fc2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9u
dCwgZG91YmxlIHN5bnRoZXRpY0JvbGRPZmZzZXQsIGNvbnN0IFZlY3RvcjxjYWlyb19nbHlwaF90
PiYgZ2x5cGhzLCBmbG9hdCB4T2Zmc2V0LCBUZXh0RHJhd2luZ01vZGVGbGFncyB0ZXh0RHJhd2lu
Z01vZGUsIGZsb2F0IHN0cm9rZVRoaWNrbmVzcywgY29uc3QgRmxvYXRTaXplJiBzaGFkb3dPZmZz
ZXQsIGNvbnN0IENvbG9yJiBzaGFkb3dDb2xvcikKIHsKLSAgICBkcmF3R2x5cGhzU2hhZG93KHBs
YXRmb3JtQ29udGV4dCwgc2hhZG93U3RhdGUsIHRleHREcmF3aW5nTW9kZSwgc2hhZG93T2Zmc2V0
LCBzaGFkb3dDb2xvciwgcG9pbnQsIHNjYWxlZEZvbnQsIHN5bnRoZXRpY0JvbGRPZmZzZXQsIGds
eXBocywgdGFyZ2V0Q29udGV4dCk7CisgICAgZHJhd0dseXBoc1NoYWRvdyhwbGF0Zm9ybUNvbnRl
eHQsIHNoYWRvd1N0YXRlLCB0ZXh0RHJhd2luZ01vZGUsIHNoYWRvd09mZnNldCwgc2hhZG93Q29s
b3IsIHBvaW50LCBzY2FsZWRGb250LCBzeW50aGV0aWNCb2xkT2Zmc2V0LCBnbHlwaHMpOwogCiAg
ICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybUNvbnRleHQuY3IoKTsKICAgICBjYWlyb19zYXZlKGNy
KTsKQEAgLTgzNiw3ICs4MzYsNyBAQCB2b2lkIGRyYXdHbHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fp
cm8mIHBsYXRmb3JtQ29udGV4dCwgY29uc3QgRmlsbFNvdXJjZSYgZmlsbFNvdQogICAgIGNhaXJv
X3Jlc3RvcmUoY3IpOwogfQogCi12b2lkIGRyYXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRD
YWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3Bl
cmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSBibGVuZE1vZGUsIEltYWdlT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5IGltYWdlSW50ZXJwb2xhdGlv
blF1YWxpdHksIGZsb2F0IGdsb2JhbEFscGhhLCBjb25zdCBTaGFkb3dTdGF0ZSYgc2hhZG93U3Rh
dGUsIEdyYXBoaWNzQ29udGV4dCYgdGFyZ2V0Q29udGV4dCkKK3ZvaWQgZHJhd05hdGl2ZUltYWdl
KFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCog
c3VyZmFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNS
ZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5k
TW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHkg
aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxvYXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRv
d1N0YXRlJiBzaGFkb3dTdGF0ZSkKIHsKICAgICBwbGF0Zm9ybUNvbnRleHQuc2F2ZSgpOwogCkBA
IC04NTksNyArODU5LDcgQEAgdm9pZCBkcmF3TmF0aXZlSW1hZ2UoUGxhdGZvcm1Db250ZXh0Q2Fp
cm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXIKICAgICAgICAgfQogICAg
IH0KIAotICAgIGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFjZSwgZHN0LCBzcmNS
ZWN0LCBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBnbG9iYWxBbHBoYSwgc2hhZG93U3RhdGUs
IHRhcmdldENvbnRleHQpOworICAgIGRyYXdTdXJmYWNlKHBsYXRmb3JtQ29udGV4dCwgc3VyZmFj
ZSwgZHN0LCBzcmNSZWN0LCBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBnbG9iYWxBbHBoYSwg
c2hhZG93U3RhdGUpOwogICAgIHBsYXRmb3JtQ29udGV4dC5yZXN0b3JlKCk7CiB9CiAKQEAgLTg2
OSw3ICs4NjksNyBAQCB2b2lkIGRyYXdQYXR0ZXJuKFBsYXRmb3JtQ29udGV4dENhaXJvJiBwbGF0
Zm9ybUNvbnRleHQsIGNhaXJvX3N1cmZhY2VfdCogc3VyZmFjZQogICAgIGRyYXdQYXR0ZXJuVG9D
YWlyb0NvbnRleHQocGxhdGZvcm1Db250ZXh0LmNyKCksIHN1cmZhY2UsIHNpemUsIHRpbGVSZWN0
LCBwYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgdG9DYWlyb09wZXJhdG9yKGNvbXBvc2l0ZU9wZXJh
dG9yLCBibGVuZE1vZGUpLCBkZXN0UmVjdCk7CiB9CiAKLXZvaWQgZHJhd1N1cmZhY2UoUGxhdGZv
cm1Db250ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNl
LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIG9yaWdpbmFsU3Jj
UmVjdCwgSW50ZXJwb2xhdGlvblF1YWxpdHkgaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgZmxv
YXQgZ2xvYmFsQWxwaGEsIGNvbnN0IFNoYWRvd1N0YXRlJiBzaGFkb3dTdGF0ZSwgR3JhcGhpY3ND
b250ZXh0JiB0YXJnZXRDb250ZXh0KQordm9pZCBkcmF3U3VyZmFjZShQbGF0Zm9ybUNvbnRleHRD
YWlybyYgcGxhdGZvcm1Db250ZXh0LCBjYWlyb19zdXJmYWNlX3QqIHN1cmZhY2UsIGNvbnN0IEZs
b2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgb3JpZ2luYWxTcmNSZWN0LCBJbnRl
cnBvbGF0aW9uUXVhbGl0eSBpbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCBnbG9iYWxB
bHBoYSwgY29uc3QgU2hhZG93U3RhdGUmIHNoYWRvd1N0YXRlKQogewogICAgIC8vIEF2b2lkIGlu
dmFsaWQgY2Fpcm8gbWF0cml4IHdpdGggc21hbGwgdmFsdWVzLgogICAgIGlmIChzdGQ6OmZhYnMo
ZGVzdFJlY3Qud2lkdGgoKSkgPCAwLjVmIHx8IHN0ZDo6ZmFicyhkZXN0UmVjdC5oZWlnaHQoKSkg
PCAwLjVmKQpAQCAtOTM2LDkgKzkzNiw5IEBAIHZvaWQgZHJhd1N1cmZhY2UoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mIHBsYXRmb3JtQ29udGV4dCwgY2Fpcm9fc3VyZmFjZV90KiBzdXJmYWNlCiAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgZHJhd1BhdHRlcm5Ub0NhaXJvQ29udGV4dChzaGFk
b3dDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLT5jcigpLCBwYXR0ZXJuLmdldCgpLCBkZXN0UmVj
dCwgMSk7CiAgICAgICAgICAgICB9LAotICAgICAgICAgICAgWyZwbGF0Zm9ybUNvbnRleHQsICZz
aGFkb3dTdGF0ZSwgJnRhcmdldENvbnRleHRdKEltYWdlQnVmZmVyJiBsYXllckltYWdlLCBjb25z
dCBGbG9hdFBvaW50JiBsYXllck9yaWdpbiwgY29uc3QgRmxvYXRTaXplJiBsYXllclNpemUsIGNv
bnN0IEZsb2F0UmVjdCYpCisgICAgICAgICAgICBbJnBsYXRmb3JtQ29udGV4dCwgJnNoYWRvd1N0
YXRlXShJbWFnZUJ1ZmZlciYgbGF5ZXJJbWFnZSwgY29uc3QgRmxvYXRQb2ludCYgbGF5ZXJPcmln
aW4sIGNvbnN0IEZsb2F0U2l6ZSYgbGF5ZXJTaXplLCBjb25zdCBGbG9hdFJlY3QmKQogICAgICAg
ICAgICAgewotICAgICAgICAgICAgICAgIGRyYXdTaGFkb3dMYXllckJ1ZmZlcihwbGF0Zm9ybUNv
bnRleHQsIGxheWVySW1hZ2UsIGxheWVyT3JpZ2luLCBsYXllclNpemUsIHNoYWRvd1N0YXRlLCB0
YXJnZXRDb250ZXh0KTsKKyAgICAgICAgICAgICAgICBkcmF3U2hhZG93TGF5ZXJCdWZmZXIocGxh
dGZvcm1Db250ZXh0LCBsYXllckltYWdlLCBsYXllck9yaWdpbiwgbGF5ZXJTaXplLCBzaGFkb3dT
dGF0ZSk7CiAgICAgICAgICAgICB9KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvT3BlcmF0aW9ucy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKaW5kZXggZDFm
M2M1YmQ0ZTIzNmNmNDY1MzM3ZTNiOGJmYjljZDAwOWQ5ZDg3ZS4uNjI1NGRmZjA1NThhNzdmMDc0
MTU0M2RkOTFkNjZjMmVkYzVlZjA0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQ2Fpcm9PcGVyYXRpb25zLmgKQEAgLTQ2LDcgKzQ2LDYg
QEAgY2xhc3MgQ29sb3I7CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0
OwogY2xhc3MgRmxvYXRTaXplOwotY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUGF0aDsK
IGNsYXNzIFBsYXRmb3JtQ29udGV4dENhaXJvOwogCkBAIC0xMjcsMjEgKzEyNiwyMSBAQCB2b2lk
IHNldExpbmVEYXNoKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRGFzaEFycmF5JiwgZmxv
YXQpOwogdm9pZCBzZXRMaW5lSm9pbihQbGF0Zm9ybUNvbnRleHRDYWlybyYsIExpbmVKb2luKTsK
IHZvaWQgc2V0TWl0ZXJMaW1pdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGZsb2F0KTsKIAotdm9p
ZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IEZpbGxTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0ZSYsIEdyYXBoaWNzQ29udGV4dCYpOwotdm9p
ZCBmaWxsUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0
IENvbG9yJiwgY29uc3QgU2hhZG93U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmKTsKK3ZvaWQgZmls
bFJlY3QoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGaWxs
U291cmNlJiwgY29uc3QgU2hhZG93U3RhdGUmKTsKK3ZvaWQgZmlsbFJlY3QoUGxhdGZvcm1Db250
ZXh0Q2Fpcm8mLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBDb2xvciYsIGNvbnN0IFNoYWRvd1N0
YXRlJik7CiB2b2lkIGZpbGxSZWN0KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRS
ZWN0JiwgY2Fpcm9fcGF0dGVybl90Kik7Ci12b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNv
bnRleHRDYWlybyYsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYsIGNvbnN0
IFNoYWRvd1N0YXRlJiwgR3JhcGhpY3NDb250ZXh0Jik7Ci12b2lkIGZpbGxSZWN0V2l0aFJvdW5k
ZWRIb2xlKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxv
YXRSb3VuZGVkUmVjdCYsIGNvbnN0IEZpbGxTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0ZSYsIEdy
YXBoaWNzQ29udGV4dCYpOwotdm9pZCBmaWxsUGF0aChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNv
bnN0IFBhdGgmLCBjb25zdCBGaWxsU291cmNlJiwgY29uc3QgU2hhZG93U3RhdGUmLCBHcmFwaGlj
c0NvbnRleHQmKTsKLXZvaWQgc3Ryb2tlUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0
IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25zdCBTdHJva2VTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0
ZSYsIEdyYXBoaWNzQ29udGV4dCYpOwotdm9pZCBzdHJva2VQYXRoKFBsYXRmb3JtQ29udGV4dENh
aXJvJiwgY29uc3QgUGF0aCYsIGNvbnN0IFN0cm9rZVNvdXJjZSYsIGNvbnN0IFNoYWRvd1N0YXRl
JiwgR3JhcGhpY3NDb250ZXh0Jik7Cit2b2lkIGZpbGxSb3VuZGVkUmVjdChQbGF0Zm9ybUNvbnRl
eHRDYWlybyYsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmLCBjb25zdCBDb2xvciYsIGNvbnN0IFNo
YWRvd1N0YXRlJik7Cit2b2lkIGZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKFBsYXRmb3JtQ29udGV4
dENhaXJvJiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSb3VuZGVkUmVjdCYsIGNvbnN0
IEZpbGxTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0ZSYpOwordm9pZCBmaWxsUGF0aChQbGF0Zm9y
bUNvbnRleHRDYWlybyYsIGNvbnN0IFBhdGgmLCBjb25zdCBGaWxsU291cmNlJiwgY29uc3QgU2hh
ZG93U3RhdGUmKTsKK3ZvaWQgc3Ryb2tlUmVjdChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0
IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25zdCBTdHJva2VTb3VyY2UmLCBjb25zdCBTaGFkb3dTdGF0
ZSYpOwordm9pZCBzdHJva2VQYXRoKFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY29uc3QgUGF0aCYs
IGNvbnN0IFN0cm9rZVNvdXJjZSYsIGNvbnN0IFNoYWRvd1N0YXRlJik7CiB2b2lkIGNsZWFyUmVj
dChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYpOwogCi12b2lkIGRyYXdH
bHlwaHMoUGxhdGZvcm1Db250ZXh0Q2Fpcm8mLCBjb25zdCBGaWxsU291cmNlJiwgY29uc3QgU3Ry
b2tlU291cmNlJiwgY29uc3QgU2hhZG93U3RhdGUmLCBjb25zdCBGbG9hdFBvaW50JiwgY2Fpcm9f
c2NhbGVkX2ZvbnRfdCosIGRvdWJsZSwgY29uc3QgVmVjdG9yPGNhaXJvX2dseXBoX3Q+JiwgZmxv
YXQsIFRleHREcmF3aW5nTW9kZUZsYWdzLCBmbG9hdCwgY29uc3QgRmxvYXRTaXplJiwgY29uc3Qg
Q29sb3ImLCBHcmFwaGljc0NvbnRleHQmKTsKK3ZvaWQgZHJhd0dseXBocyhQbGF0Zm9ybUNvbnRl
eHRDYWlybyYsIGNvbnN0IEZpbGxTb3VyY2UmLCBjb25zdCBTdHJva2VTb3VyY2UmLCBjb25zdCBT
aGFkb3dTdGF0ZSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjYWlyb19zY2FsZWRfZm9udF90KiwgZG91
YmxlLCBjb25zdCBWZWN0b3I8Y2Fpcm9fZ2x5cGhfdD4mLCBmbG9hdCwgVGV4dERyYXdpbmdNb2Rl
RmxhZ3MsIGZsb2F0LCBjb25zdCBGbG9hdFNpemUmLCBjb25zdCBDb2xvciYpOwogCi12b2lkIGRy
YXdOYXRpdmVJbWFnZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZhY2VfdCosIGNv
bnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVu
ZE1vZGUsIEltYWdlT3JpZW50YXRpb24sIEludGVycG9sYXRpb25RdWFsaXR5LCBmbG9hdCwgY29u
c3QgU2hhZG93U3RhdGUmLCBHcmFwaGljc0NvbnRleHQmKTsKK3ZvaWQgZHJhd05hdGl2ZUltYWdl
KFBsYXRmb3JtQ29udGV4dENhaXJvJiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0
JiwgY29uc3QgRmxvYXRSZWN0JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgSW1hZ2VP
cmllbnRhdGlvbiwgSW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBTaGFkb3dTdGF0
ZSYpOwogdm9pZCBkcmF3UGF0dGVybihQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJvX3N1cmZh
Y2VfdCosIGNvbnN0IEludFNpemUmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3Qm
LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgQ29tcG9zaXRlT3Bl
cmF0b3IsIEJsZW5kTW9kZSk7Ci12b2lkIGRyYXdTdXJmYWNlKFBsYXRmb3JtQ29udGV4dENhaXJv
JiwgY2Fpcm9fc3VyZmFjZV90KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0Jiwg
SW50ZXJwb2xhdGlvblF1YWxpdHksIGZsb2F0LCBjb25zdCBTaGFkb3dTdGF0ZSYsIEdyYXBoaWNz
Q29udGV4dCYpOwordm9pZCBkcmF3U3VyZmFjZShQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNhaXJv
X3N1cmZhY2VfdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEludGVycG9s
YXRpb25RdWFsaXR5LCBmbG9hdCwgY29uc3QgU2hhZG93U3RhdGUmKTsKIAogdm9pZCBkcmF3UmVj
dChQbGF0Zm9ybUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBjb25zdCBD
b2xvciYsIFN0cm9rZVN0eWxlLCBjb25zdCBDb2xvciYpOwogdm9pZCBkcmF3TGluZShQbGF0Zm9y
bUNvbnRleHRDYWlybyYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFBvaW50JiwgU3Ry
b2tlU3R5bGUsIGNvbnN0IENvbG9yJiwgZmxvYXQsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDYWlyby5jcHAKaW5kZXggZWYyMWVi
N2FiNDc1MzMzM2M3MmZhNzkwN2M4ZDU3MDBmYmQzZTc1MC4uMDZkOWQ3NDk0YTRiZWFhOGUzYTlj
ZTdhZmU2ZGFiMzViMWMyZGI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vRm9udENhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCkBAIC03NCw3ICs3NCw3IEBAIHZvaWQgRm9u
dENhc2NhZGU6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGb250
JiBmb250LCBjb25zdCBHCiAgICAgYXV0byYgc3RhdGUgPSBjb250ZXh0LnN0YXRlKCk7CiAgICAg
Q2Fpcm86OmRyYXdHbHlwaHMoKmNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIENhaXJvOjpGaWxs
U291cmNlKHN0YXRlKSwgQ2Fpcm86OlN0cm9rZVNvdXJjZShzdGF0ZSksCiAgICAgICAgIENhaXJv
OjpTaGFkb3dTdGF0ZShzdGF0ZSksIHBvaW50LCBzY2FsZWRGb250LCBzeW50aGV0aWNCb2xkT2Zm
c2V0LCBnbHlwaHMsIHhPZmZzZXQsCi0gICAgICAgIHN0YXRlLnRleHREcmF3aW5nTW9kZSwgc3Rh
dGUuc3Ryb2tlVGhpY2tuZXNzLCBzdGF0ZS5zaGFkb3dPZmZzZXQsIHN0YXRlLnNoYWRvd0NvbG9y
LCBjb250ZXh0KTsKKyAgICAgICAgc3RhdGUudGV4dERyYXdpbmdNb2RlLCBzdGF0ZS5zdHJva2VU
aGlja25lc3MsIHN0YXRlLnNoYWRvd09mZnNldCwgc3RhdGUuc2hhZG93Q29sb3IpOwogfQogCiAj
aWYgRU5BQkxFKENTUzNfVEVYVF9ERUNPUkFUSU9OX1NLSVBfSU5LKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCmluZGV4IDE4YTE5YmU0NjU5NmM5MjZmNDAxMDcxYmJiMGE0Zjg0N2Y5Njll
ZjQuLjZjZGVhMTg3NTc4ZWViOTY1NWQxMWJjYjNlNWYzMzFhYTY1OWUyY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFw
aGljc0NvbnRleHRDYWlyby5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6ZHJhd05hdGl2ZUltYWdlKGNvbnN0IE5hdGl2ZUltYWdlUHRyJiBpbWFnZSwgY29uc3Qg
RmxvYXRTaQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRvJiBz
dGF0ZSA9IHRoaXMtPnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZv
cm1Db250ZXh0KCksIGltYWdlLmdldCgpLCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3Bl
cmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50YXRpb24sIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1
YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpLCAqdGhpcyk7Cisg
ICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZSgqcGxhdGZvcm1Db250ZXh0KCksIGltYWdlLmdldCgp
LCBkZXN0UmVjdCwgc3JjUmVjdCwgY29tcG9zaXRlT3BlcmF0b3IsIGJsZW5kTW9kZSwgb3JpZW50
YXRpb24sIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWly
bzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAogLy8gVGhpcyBpcyBvbmx5IHVzZWQgdG8gZHJh
dyBib3JkZXJzLCBzbyB3ZSBzaG91bGQgbm90IGRyYXcgc2hhZG93cy4KQEAgLTE4MSw3ICsxODEs
NyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFBhdGgoY29uc3QgUGF0aCYgcGF0aCkKIAog
ICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYXV0byYgc3RhdGUgPSB0aGlz
LT5zdGF0ZSgpOwotICAgIENhaXJvOjpmaWxsUGF0aCgqcGxhdGZvcm1Db250ZXh0KCksIHBhdGgs
IENhaXJvOjpGaWxsU291cmNlKHN0YXRlKSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSwgKnRo
aXMpOworICAgIENhaXJvOjpmaWxsUGF0aCgqcGxhdGZvcm1Db250ZXh0KCksIHBhdGgsIENhaXJv
OjpGaWxsU291cmNlKHN0YXRlKSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCkBAIC0xOTYs
NyArMTk2LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVBhdGgoY29uc3QgUGF0aCYg
cGF0aCkKIAogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgYXV0byYgc3Rh
dGUgPSB0aGlzLT5zdGF0ZSgpOwotICAgIENhaXJvOjpzdHJva2VQYXRoKCpwbGF0Zm9ybUNvbnRl
eHQoKSwgcGF0aCwgQ2Fpcm86OlN0cm9rZVNvdXJjZShzdGF0ZSksIENhaXJvOjpTaGFkb3dTdGF0
ZShzdGF0ZSksICp0aGlzKTsKKyAgICBDYWlybzo6c3Ryb2tlUGF0aCgqcGxhdGZvcm1Db250ZXh0
KCksIHBhdGgsIENhaXJvOjpTdHJva2VTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3RhdGUo
c3RhdGUpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKQEAgLTIxMSw3ICsyMTEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Zmls
bFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogCiAgICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29u
dGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMtPnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmZp
bGxSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3RhdGUp
LCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpLCAqdGhpcyk7CisgICAgQ2Fpcm86OmZpbGxSZWN0
KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3RhdGUpLCBDYWly
bzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtMjI1LDcg
KzIyNSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3Qm
IHJlY3QsIGNvbnN0IENvbG9yJiBjb2xvcikKICAgICB9CiAKICAgICBBU1NFUlQoaGFzUGxhdGZv
cm1Db250ZXh0KCkpOwotICAgIENhaXJvOjpmaWxsUmVjdCgqcGxhdGZvcm1Db250ZXh0KCksIHJl
Y3QsIGNvbG9yLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUoKSksICp0aGlzKTsKKyAgICBDYWly
bzo6ZmlsbFJlY3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCBjb2xvciwgQ2Fpcm86OlNoYWRv
d1N0YXRlKHN0YXRlKCkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQpAQCAtNTAxLDcgKzUwMSw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
OjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQogCiAg
ICAgQVNTRVJUKGhhc1BsYXRmb3JtQ29udGV4dCgpKTsKICAgICBhdXRvJiBzdGF0ZSA9IHRoaXMt
PnN0YXRlKCk7Ci0gICAgQ2Fpcm86OnN0cm9rZVJlY3QoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0
LCBsaW5lV2lkdGgsIENhaXJvOjpTdHJva2VTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3Rh
dGUoc3RhdGUpLCAqdGhpcyk7CisgICAgQ2Fpcm86OnN0cm9rZVJlY3QoKnBsYXRmb3JtQ29udGV4
dCgpLCByZWN0LCBsaW5lV2lkdGgsIENhaXJvOjpTdHJva2VTb3VyY2Uoc3RhdGUpLCBDYWlybzo6
U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHQ6OnNldExpbmVD
YXAoTGluZUNhcCBsaW5lQ2FwKQpAQCAtNjQxLDcgKzY0MSw3IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0OjpwbGF0Zm9ybUZpbGxSb3VuZGVkUmVjdChjb25zdCBGbG9hdFJvdW5kZWRSZWN0JiByZWN0
LCBjb25zCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChoYXNQbGF0Zm9ybUNvbnRleHQo
KSk7Ci0gICAgQ2Fpcm86OmZpbGxSb3VuZGVkUmVjdCgqcGxhdGZvcm1Db250ZXh0KCksIHJlY3Qs
IGNvbG9yLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUoKSksICp0aGlzKTsKKyAgICBDYWlybzo6
ZmlsbFJvdW5kZWRSZWN0KCpwbGF0Zm9ybUNvbnRleHQoKSwgcmVjdCwgY29sb3IsIENhaXJvOjpT
aGFkb3dTdGF0ZShzdGF0ZSgpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVj
dFdpdGhSb3VuZGVkSG9sZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0Um91bmRl
ZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yKQpAQCAtNjU2LDcgKzY1
Niw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IEZsb2F0CiAKICAgICBBU1NFUlQoaGFzUGxhdGZvcm1D
b250ZXh0KCkpOwogICAgIGF1dG8mIHN0YXRlID0gdGhpcy0+c3RhdGUoKTsKLSAgICBDYWlybzo6
ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUoKnBsYXRmb3JtQ29udGV4dCgpLCByZWN0LCByb3VuZGVk
SG9sZVJlY3QsIENhaXJvOjpGaWxsU291cmNlKHN0YXRlKSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0
YXRlKSwgKnRoaXMpOworICAgIENhaXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZSgqcGxhdGZv
cm1Db250ZXh0KCksIHJlY3QsIHJvdW5kZWRIb2xlUmVjdCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3Rh
dGUpLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdQYXR0ZXJuKEltYWdlJiBpbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJu
VHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFj
aW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxlbmRNb2RlIGJsZW5k
TW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm8uY3BwCmluZGV4IDE3MmRiNmM0
MzU4YmYwYjRhMDczYzNkMzkyM2MyZWZkNmY0OTQxZTkuLjVmOWU0NTk0MTJjODFmZjZhMzQwMGFl
MDEyMjRjOWQwMmEwYWQwYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dEltcGxDYWlyby5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvLmNw
cApAQCAtMTM5LDE1ICsxMzksMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OnNl
dE1pdGVyTGltaXQoZmxvYXQgbWl0ZXJMaW1pdCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBs
Q2Fpcm86OmZpbGxSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICBhdXRvJiBjb250
ZXh0ID0gZ3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgYXV0byYgc3RhdGUgPSBjb250ZXh0LnN0YXRl
KCk7Ci0gICAgQ2Fpcm86OmZpbGxSZWN0KG1fcGxhdGZvcm1Db250ZXh0LCByZWN0LCBDYWlybzo6
RmlsbFNvdXJjZShzdGF0ZSksIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSksIGNvbnRleHQpOwor
ICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhpY3NDb250ZXh0KCkuc3RhdGUoKTsKKyAgICBDYWlybzo6
ZmlsbFJlY3QobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIENhaXJvOjpGaWxsU291cmNlKHN0YXRl
KSwgQ2Fpcm86OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
SW1wbENhaXJvOjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0IENvbG9yJiBj
b2xvcikKIHsKLSAgICBhdXRvJiBjb250ZXh0ID0gZ3JhcGhpY3NDb250ZXh0KCk7Ci0gICAgQ2Fp
cm86OmZpbGxSZWN0KG1fcGxhdGZvcm1Db250ZXh0LCByZWN0LCBjb2xvciwgQ2Fpcm86OlNoYWRv
d1N0YXRlKGNvbnRleHQuc3RhdGUoKSksIGNvbnRleHQpOworICAgIENhaXJvOjpmaWxsUmVjdCht
X3BsYXRmb3JtQ29udGV4dCwgcmVjdCwgY29sb3IsIENhaXJvOjpTaGFkb3dTdGF0ZShncmFwaGlj
c0NvbnRleHQoKS5zdGF0ZSgpKSk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJv
OjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIEdyYWRpZW50JiBncmFkaWVudCkKQEAg
LTE2MSw0MiArMTU5LDM5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpmaWxsUmVj
dChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIEdyYWRpZW50JiBncmFkaWVuCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0SW1wbENhaXJvOjpmaWxsUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGNvbnN0
IENvbG9yJiBjb2xvciwgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3BlcmF0b3IsIEJsZW5k
TW9kZSBibGVuZE1vZGUpCiB7Ci0gICAgYXV0byYgY29udGV4dCA9IGdyYXBoaWNzQ29udGV4dCgp
OwotICAgIENvbXBvc2l0ZU9wZXJhdG9yIHByZXZpb3VzT3BlcmF0b3IgPSBjb250ZXh0LnN0YXRl
KCkuY29tcG9zaXRlT3BlcmF0b3I7CisgICAgYXV0byYgc3RhdGUgPSBncmFwaGljc0NvbnRleHQo
KS5zdGF0ZSgpOworICAgIENvbXBvc2l0ZU9wZXJhdG9yIHByZXZpb3VzT3BlcmF0b3IgPSBzdGF0
ZS5jb21wb3NpdGVPcGVyYXRvcjsKIAogICAgIENhaXJvOjpTdGF0ZTo6c2V0Q29tcG9zaXRlT3Bl
cmF0aW9uKG1fcGxhdGZvcm1Db250ZXh0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlKTsK
LSAgICBDYWlybzo6ZmlsbFJlY3QobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIGNvbG9yLCBDYWly
bzo6U2hhZG93U3RhdGUoY29udGV4dC5zdGF0ZSgpKSwgY29udGV4dCk7CisgICAgQ2Fpcm86OmZp
bGxSZWN0KG1fcGxhdGZvcm1Db250ZXh0LCByZWN0LCBjb2xvciwgQ2Fpcm86OlNoYWRvd1N0YXRl
KHN0YXRlKSk7CiAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24obV9wbGF0
Zm9ybUNvbnRleHQsIHByZXZpb3VzT3BlcmF0b3IsIEJsZW5kTW9kZU5vcm1hbCk7CiB9CiAKIHZv
aWQgR3JhcGhpY3NDb250ZXh0SW1wbENhaXJvOjpmaWxsUm91bmRlZFJlY3QoY29uc3QgRmxvYXRS
b3VuZGVkUmVjdCYgcmVjdCwgY29uc3QgQ29sb3ImIGNvbG9yLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
KQogewotICAgIGF1dG8mIGNvbnRleHQgPSBncmFwaGljc0NvbnRleHQoKTsKKyAgICBhdXRvJiBz
dGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7CiAKLSAgICBDb21wb3NpdGVPcGVyYXRv
ciBwcmV2aW91c09wZXJhdG9yID0gY29udGV4dC5jb21wb3NpdGVPcGVyYXRpb24oKTsKKyAgICBD
b21wb3NpdGVPcGVyYXRvciBwcmV2aW91c09wZXJhdG9yID0gc3RhdGUuY29tcG9zaXRlT3BlcmF0
b3I7CiAgICAgQ2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24obV9wbGF0Zm9ybUNv
bnRleHQsIHByZXZpb3VzT3BlcmF0b3IsIGJsZW5kTW9kZSk7CiAKLSAgICBDYWlybzo6U2hhZG93
U3RhdGUgc2hhZG93U3RhdGUoY29udGV4dC5zdGF0ZSgpKTsKLQorICAgIENhaXJvOjpTaGFkb3dT
dGF0ZSBzaGFkb3dTdGF0ZShzdGF0ZSk7CiAgICAgaWYgKHJlY3QuaXNSb3VuZGVkKCkpCi0gICAg
ICAgIENhaXJvOjpmaWxsUm91bmRlZFJlY3QobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIGNvbG9y
LCBzaGFkb3dTdGF0ZSwgY29udGV4dCk7CisgICAgICAgIENhaXJvOjpmaWxsUm91bmRlZFJlY3Qo
bV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIGNvbG9yLCBzaGFkb3dTdGF0ZSk7CiAgICAgZWxzZQot
ICAgICAgICBDYWlybzo6ZmlsbFJlY3QobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QucmVjdCgpLCBj
b2xvciwgc2hhZG93U3RhdGUsIGNvbnRleHQpOworICAgICAgICBDYWlybzo6ZmlsbFJlY3QobV9w
bGF0Zm9ybUNvbnRleHQsIHJlY3QucmVjdCgpLCBjb2xvciwgc2hhZG93U3RhdGUpOwogCiAgICAg
Q2Fpcm86OlN0YXRlOjpzZXRDb21wb3NpdGVPcGVyYXRpb24obV9wbGF0Zm9ybUNvbnRleHQsIHBy
ZXZpb3VzT3BlcmF0b3IsIEJsZW5kTW9kZU5vcm1hbCk7CiB9CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0SW1wbENhaXJvOjpmaWxsUmVjdFdpdGhSb3VuZGVkSG9sZShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IEZsb2F0Um91bmRlZFJlY3QmIHJvdW5kZWRIb2xlUmVjdCwgY29uc3QgQ29sb3Im
KQogewotICAgIGF1dG8mIGNvbnRleHQgPSBncmFwaGljc0NvbnRleHQoKTsKLSAgICBDYWlybzo6
ZmlsbFJlY3RXaXRoUm91bmRlZEhvbGUobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIHJvdW5kZWRI
b2xlUmVjdCwgeyB9LCBDYWlybzo6U2hhZG93U3RhdGUoY29udGV4dC5zdGF0ZSgpKSwgY29udGV4
dCk7CisgICAgQ2Fpcm86OmZpbGxSZWN0V2l0aFJvdW5kZWRIb2xlKG1fcGxhdGZvcm1Db250ZXh0
LCByZWN0LCByb3VuZGVkSG9sZVJlY3QsIHsgfSwgQ2Fpcm86OlNoYWRvd1N0YXRlKGdyYXBoaWNz
Q29udGV4dCgpLnN0YXRlKCkpKTsKIH0KIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86
OmZpbGxQYXRoKGNvbnN0IFBhdGgmIHBhdGgpCiB7Ci0gICAgYXV0byYgY29udGV4dCA9IGdyYXBo
aWNzQ29udGV4dCgpOwotICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgpOwotICAgIENh
aXJvOjpmaWxsUGF0aChtX3BsYXRmb3JtQ29udGV4dCwgcGF0aCwgQ2Fpcm86OkZpbGxTb3VyY2Uo
c3RhdGUpLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUpLCBjb250ZXh0KTsKKyAgICBhdXRvJiBz
dGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7CisgICAgQ2Fpcm86OmZpbGxQYXRoKG1f
cGxhdGZvcm1Db250ZXh0LCBwYXRoLCBDYWlybzo6RmlsbFNvdXJjZShzdGF0ZSksIENhaXJvOjpT
aGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6
ZmlsbEVsbGlwc2UoY29uc3QgRmxvYXRSZWN0JiByZWN0KQpAQCAtMjA4LDE2ICsyMDMsMTQgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmZpbGxFbGxpcHNlKGNvbnN0IEZsb2F0UmVj
dCYgcmVjdCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OnN0cm9rZVJlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0LCBmbG9hdCBsaW5lV2lkdGgpCiB7Ci0gICAgYXV0byYgY29udGV4
dCA9IGdyYXBoaWNzQ29udGV4dCgpOwotICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgp
OwotICAgIENhaXJvOjpzdHJva2VSZWN0KG1fcGxhdGZvcm1Db250ZXh0LCByZWN0LCBsaW5lV2lk
dGgsIENhaXJvOjpTdHJva2VTb3VyY2Uoc3RhdGUpLCBDYWlybzo6U2hhZG93U3RhdGUoc3RhdGUp
LCBjb250ZXh0KTsKKyAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNzQ29udGV4dCgpLnN0YXRlKCk7
CisgICAgQ2Fpcm86OnN0cm9rZVJlY3QobV9wbGF0Zm9ybUNvbnRleHQsIHJlY3QsIGxpbmVXaWR0
aCwgQ2Fpcm86OlN0cm9rZVNvdXJjZShzdGF0ZSksIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkp
OwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6c3Ryb2tlUGF0aChjb25zdCBQ
YXRoJiBwYXRoKQogewotICAgIGF1dG8mIGNvbnRleHQgPSBncmFwaGljc0NvbnRleHQoKTsKLSAg
ICBhdXRvJiBzdGF0ZSA9IGNvbnRleHQuc3RhdGUoKTsKLSAgICBDYWlybzo6c3Ryb2tlUGF0aCht
X3BsYXRmb3JtQ29udGV4dCwgcGF0aCwgQ2Fpcm86OlN0cm9rZVNvdXJjZShzdGF0ZSksIENhaXJv
OjpTaGFkb3dTdGF0ZShzdGF0ZSksIGNvbnRleHQpOworICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhp
Y3NDb250ZXh0KCkuc3RhdGUoKTsKKyAgICBDYWlybzo6c3Ryb2tlUGF0aChtX3BsYXRmb3JtQ29u
dGV4dCwgcGF0aCwgQ2Fpcm86OlN0cm9rZVNvdXJjZShzdGF0ZSksIENhaXJvOjpTaGFkb3dTdGF0
ZShzdGF0ZSkpOwogfQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6c3Ryb2tlRWxs
aXBzZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCkBAIC0yNTUsMTEgKzI0OCwxMCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBjb25z
dCBHbHlwaEJ1ZmZlciYgZwogICAgIGNhaXJvX3NjYWxlZF9mb250X3QqIHNjYWxlZEZvbnQgPSBm
b250LnBsYXRmb3JtRGF0YSgpLnNjYWxlZEZvbnQoKTsKICAgICBkb3VibGUgc3ludGhldGljQm9s
ZE9mZnNldCA9IGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpOwogCi0gICAgYXV0byYgY29udGV4
dCA9IGdyYXBoaWNzQ29udGV4dCgpOwotICAgIGF1dG8mIHN0YXRlID0gY29udGV4dC5zdGF0ZSgp
OworICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhpY3NDb250ZXh0KCkuc3RhdGUoKTsKICAgICBDYWly
bzo6ZHJhd0dseXBocyhtX3BsYXRmb3JtQ29udGV4dCwgQ2Fpcm86OkZpbGxTb3VyY2Uoc3RhdGUp
LCBDYWlybzo6U3Ryb2tlU291cmNlKHN0YXRlKSwKICAgICAgICAgQ2Fpcm86OlNoYWRvd1N0YXRl
KHN0YXRlKSwgcG9pbnQsIHNjYWxlZEZvbnQsIHN5bnRoZXRpY0JvbGRPZmZzZXQsIGdseXBocywg
eE9mZnNldCwKLSAgICAgICAgc3RhdGUudGV4dERyYXdpbmdNb2RlLCBzdGF0ZS5zdHJva2VUaGlj
a25lc3MsIHN0YXRlLnNoYWRvd09mZnNldCwgc3RhdGUuc2hhZG93Q29sb3IsIGNvbnRleHQpOwor
ICAgICAgICBzdGF0ZS50ZXh0RHJhd2luZ01vZGUsIHN0YXRlLnN0cm9rZVRoaWNrbmVzcywgc3Rh
dGUuc2hhZG93T2Zmc2V0LCBzdGF0ZS5zaGFkb3dDb2xvcik7CiB9CiAKIEltYWdlRHJhd1Jlc3Vs
dCBHcmFwaGljc0NvbnRleHRJbXBsQ2Fpcm86OmRyYXdJbWFnZShJbWFnZSYgaW1hZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgZGVzdGluYXRpb24sIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlLCBjb25zdCBJ
bWFnZVBhaW50aW5nT3B0aW9ucyYgaW1hZ2VQYWludGluZ09wdGlvbnMpCkBAIC0yODAsOSArMjcy
LDggQEAgSW1hZ2VEcmF3UmVzdWx0IEdyYXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1RpbGVk
SW1hZ2UoSW1hZ2UmIGltYWdlLCBjb25zdCBGbG8KIHZvaWQgR3JhcGhpY3NDb250ZXh0SW1wbENh
aXJvOjpkcmF3TmF0aXZlSW1hZ2UoY29uc3QgTmF0aXZlSW1hZ2VQdHImIGltYWdlLCBjb25zdCBG
bG9hdFNpemUmIGltYWdlU2l6ZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxv
YXRSZWN0JiBzcmNSZWN0LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSwgSW1hZ2VPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKIHsKICAgICBV
TlVTRURfUEFSQU0oaW1hZ2VTaXplKTsKLSAgICBhdXRvJiBjb250ZXh0ID0gZ3JhcGhpY3NDb250
ZXh0KCk7Ci0gICAgYXV0byYgc3RhdGUgPSBjb250ZXh0LnN0YXRlKCk7Ci0gICAgQ2Fpcm86OmRy
YXdOYXRpdmVJbWFnZShtX3BsYXRmb3JtQ29udGV4dCwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBz
cmNSZWN0LCBjb21wb3NpdGVPcGVyYXRvciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUu
aW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0
ZShzdGF0ZSksIGdyYXBoaWNzQ29udGV4dCgpKTsKKyAgICBhdXRvJiBzdGF0ZSA9IGdyYXBoaWNz
Q29udGV4dCgpLnN0YXRlKCk7CisgICAgQ2Fpcm86OmRyYXdOYXRpdmVJbWFnZShtX3BsYXRmb3Jt
Q29udGV4dCwgaW1hZ2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcGVyYXRv
ciwgYmxlbmRNb2RlLCBvcmllbnRhdGlvbiwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0
eSwgc3RhdGUuYWxwaGEsIENhaXJvOjpTaGFkb3dTdGF0ZShzdGF0ZSkpOwogfQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dEltcGxDYWlybzo6ZHJhd1BhdHRlcm4oSW1hZ2UmIGltYWdlLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRpbGVSZWN0LCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBj
b25zdCBGbG9hdFNpemUmLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcGVyYXRvciwgQmxl
bmRNb2RlIGJsZW5kTW9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVNZWRpYUZvdW5kYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91
bmRhdGlvbi5jcHAKaW5kZXggN2ZhZDA5NjJmNDMzNGZiNWZjYTFiNGU3ZmFiOGUxOTZiODAwZjAy
YS4uMzU5ZWUxMWQ1YzA0MDllMzIxMTE3OGU2NTliMjJmMjE4MzU1N2U0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhRm91bmRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhRm91bmRhdGlvbi5jcHAKQEAgLTI5NzUsNyArMjk3
NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFGb3VuZGF0aW9uOjpEaXJlY3QzRFBy
ZXNlbnRlcjo6cGFpbnRDdXJyZW50RnJhbWUoV2ViCiAgICAgICAgIGlmIChpbWFnZSkgewogICAg
ICAgICAgICAgQVNTRVJUKGNvbnRleHQuaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgICAgICAg
ICAgYXV0byYgc3RhdGUgPSBjb250ZXh0LnN0YXRlKCk7Ci0gICAgICAgICAgICBDYWlybzo6ZHJh
d1N1cmZhY2UoKmNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGltYWdlLCBkZXN0UmVjdCwgc3Jj
UmVjdCwgc3RhdGUuaW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eSwgc3RhdGUuYWxwaGEsIENhaXJv
OjpTaGFkb3dTdGF0ZShzdGF0ZSksIGNvbnRleHQpOworICAgICAgICAgICAgQ2Fpcm86OmRyYXdT
dXJmYWNlKCpjb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpLCBpbWFnZSwgZGVzdFJlY3QsIHNyY1Jl
Y3QsIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6
U2hhZG93U3RhdGUoc3RhdGUpKTsKICAgICAgICAgICAgIGNhaXJvX3N1cmZhY2VfZGVzdHJveShp
bWFnZSk7CiAgICAgICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9j
YWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKaW5kZXggMzIwOWI3N2RiOWI2ZDg4M2VhYjFm
NjBiMGQzOGQxZGUwNjY1MWMzMy4uYzczNDdjNzllNjY5MzgzNzg1ZDA1ZDIyOWU0N2I3NDdjMWYw
Y2E1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0
bWFwQ2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2NhaXJvL1NoYXJlYWJsZUJp
dG1hcENhaXJvLmNwcApAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFNoYXJlYWJsZUJpdG1hcDo6cGFp
bnQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBmbG9hdCBzY2FsZUZhY3RvciwgY29uc3QgSQog
CiAgICAgQVNTRVJUKGNvbnRleHQuaGFzUGxhdGZvcm1Db250ZXh0KCkpOwogICAgIGF1dG8mIHN0
YXRlID0gY29udGV4dC5zdGF0ZSgpOwotICAgIENhaXJvOjpkcmF3U3VyZmFjZSgqY29udGV4dC5w
bGF0Zm9ybUNvbnRleHQoKSwgc3VyZmFjZS5nZXQoKSwgZGVzdFJlY3QsIHNyY1JlY3RTY2FsZWQs
IHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWlybzo6U2hh
ZG93U3RhdGUoc3RhdGUpLCBjb250ZXh0KTsKKyAgICBDYWlybzo6ZHJhd1N1cmZhY2UoKmNvbnRl
eHQucGxhdGZvcm1Db250ZXh0KCksIHN1cmZhY2UuZ2V0KCksIGRlc3RSZWN0LCBzcmNSZWN0U2Nh
bGVkLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86
OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiB9CiAKIFJlZlB0cjxjYWlyb19zdXJmYWNlX3Q+IFNoYXJl
YWJsZUJpdG1hcDo6Y3JlYXRlQ2Fpcm9TdXJmYWNlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvZ3RrL1dlYkRyYWdDbGllbnRH
dGsuY3BwCmluZGV4IDM0MmEyNWNhODM2YzUxYTYyNjc3YTliYjI5OTJjYmQyNmZlM2NkNGIuLjg3
MTYxMjBmNzFkY2Y5YWMyM2Q4ZDEzZWJkZjkzYzY3ZGYzM2Q4OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9ndGsvV2ViRHJhZ0NsaWVudEd0ay5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2d0ay9XZWJE
cmFnQ2xpZW50R3RrLmNwcApAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4gY29udmVydENhaXJvU3VyZmFjZVRvU2hhcmVhYmxlQml0bWFwKGNhaXJvX3N1cmZh
YwogCiAgICAgQVNTRVJUKGdyYXBoaWNzQ29udGV4dC0+aGFzUGxhdGZvcm1Db250ZXh0KCkpOwog
ICAgIGF1dG8mIHN0YXRlID0gZ3JhcGhpY3NDb250ZXh0LT5zdGF0ZSgpOwotICAgIENhaXJvOjpk
cmF3U3VyZmFjZSgqZ3JhcGhpY3NDb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgc3VyZmFjZSwg
SW50UmVjdChJbnRQb2ludCgpLCBpbWFnZVNpemUpLCBJbnRSZWN0KEludFBvaW50KCksIGltYWdl
U2l6ZSksIHN0YXRlLmltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHksIHN0YXRlLmFscGhhLCBDYWly
bzo6U2hhZG93U3RhdGUoc3RhdGUpLCAqZ3JhcGhpY3NDb250ZXh0KTsKKyAgICBDYWlybzo6ZHJh
d1N1cmZhY2UoKmdyYXBoaWNzQ29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHN1cmZhY2UsIElu
dFJlY3QoSW50UG9pbnQoKSwgaW1hZ2VTaXplKSwgSW50UmVjdChJbnRQb2ludCgpLCBpbWFnZVNp
emUpLCBzdGF0ZS5pbWFnZUludGVycG9sYXRpb25RdWFsaXR5LCBzdGF0ZS5hbHBoYSwgQ2Fpcm86
OlNoYWRvd1N0YXRlKHN0YXRlKSk7CiAgICAgcmV0dXJuIGJpdG1hcDsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>