<?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>194377</bug_id>
          
          <creation_ts>2019-02-06 22:14:16 -0800</creation_ts>
          <short_desc>Placeholder bug to test patch</short_desc>
          <delta_ts>2019-02-07 17:46:21 -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>Web Template Framework</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1503642</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2019-02-06 22:14:16 -0800</bug_when>
    <thetext>MSVC keeps failing, I&apos;ll use this to test the patch without spamming everyone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503646</commentid>
    <comment_count>1</comment_count>
      <attachid>361379</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2019-02-06 22:17:46 -0800</bug_when>
    <thetext>Created attachment 361379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504055</commentid>
    <comment_count>2</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2019-02-07 17:46:20 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504056</commentid>
    <comment_count>3</comment_count>
      <attachid>361476</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2019-02-07 17:46:21 -0800</bug_when>
    <thetext>Created attachment 361476
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361379</attachid>
            <date>2019-02-06 22:17:46 -0800</date>
            <delta_ts>2019-02-07 17:46:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194377-20190206221745.patch</filename>
            <type>text/plain</type>
            <size>24086</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY1Njg0MzMwNDI2ZTc1ODg0OWI1MWUy
NTkyMjNkMzdlMzI3MGU1OWUuLjY0MjdkM2Y2YmRiNzY3NjUxN2E1MzQ3ZDBjYjE0ODM3OWQ3MWEw
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDItMDYgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNsYW1wVG8oKTogZG8gbm90IGNvbnZlcnQg
dGhlIGlucHV0IHRvIGRvdWJsZSB3aGVuIGRlYWxpbmcgd2l0aCBpbnRlZ2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjYzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY5MjMxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBQcmV2aW91c2x5LCBldmVyeSB1c2Ugb2YgY2xhbXBUbygpIHdhcyBjb252
ZXJ0aW5nIHRoZSBpbnB1dCB0byBkb3VibGUsCisgICAgICAgIGRvaW5nIHRoZSBjb21wYXJpc29u
IGluIGRvdWJsZSwgdGhlbiBjYXN0aW5nIGJhY2sgdG8gd2hhdGV2ZXIgdHlwZSB3YXMgbmVlZGVk
LgorCisgICAgICAgIEluIG1hbnkgY2FzZSwgdGhhdCB3YXMgdmVyeSB3YXN0ZWZ1bC4gV2ViS2l0
IGhhcyBtYW55IGNhc2VzIG9mIGNsYW1wVG8oKSB3aXRoCisgICAgICAgIHRoZSBzYW1lIHR5cGUg
YXMgaW5wdXQvb3V0cHV0LCBvciB3aXRoIGludGVnZXIgdHlwZXMgb2YgZGlmZmVyZW50IHNpemUv
c2lnbi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBmZXcgdmVyc2lvbnMgb2YgY2xhbXBU
bygpIGZvciB0aGUgY29tbW9uIGNhc2VzIHNlZW4gaW4gV2ViS2l0LgorICAgICAgICBJbiBlYWNo
IGNhc2UsIEkgdHJpZWQgdG8gbWluaW1pemUgdGhlIGFtb3VudCBvZiBjb252ZXJzaW9uIG5lZWRl
ZCBhdCBydW50aW1lLgorCisgICAgICAgICogd3RmL01hdGhFeHRyYXMuaDoKKyAgICAgICAgKGNs
YW1wVG8pOgorCiAyMDE5LTAyLTA1ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgdGhlIGF1dG9tYXRpYyBjaGVja2luZyBhbmQgcmVnZW5lcmF0aW9u
cyBvZiAueGNmaWxlbGlzdHMgZHVyaW5nIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0OTYwMjRjZTE2
MmMyNDhjNTViNDE3NzUxYmUxYmVhOWIyNjRjNWUuLmViNzcwM2MxN2QxYTA3ZmIzOWI3Y2NmNzNj
YmM4YzI5ZThkMTU0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOS0wMi0wNiAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2xhbXBU
bygpOiBkbyBub3QgY29udmVydCB0aGUgaW5wdXQgdG8gZG91YmxlIHdoZW4gZGVhbGluZyB3aXRo
IGludGVnZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjkyMzEyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1ha2UgdGhlIGNhbGxzIHRvIGNsYW1w
VG88ZmxvYXQ+KCkgdW5hbWJpZ3VvdXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3Bv
cnRSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRTaGFwZUltYWdlVGhyZXNob2xkKToKKwogMjAxOS0wMi0wNiAgS2Vp
dGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIC54Y2ZpbGVs
aXN0IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKaW5kZXggNWVlZjE5ODc5MGNiMWVlODY0OTBkNDllZTFl
N2U2OWE1YzkyYTMyYS4uNmUxNzcwMDlkNzJlN2U3MWNhYmMwYjc3Y2ZmYWRmZjhjNGIwYmUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01hdGhFeHRyYXMuaApAQCAtMTIzLDE1ICsxMjMsMTEwIEBAIHRlbXBsYXRlPD4gY29uc3Rl
eHByIGZsb2F0IGRlZmF1bHRNaW5pbXVtRm9yQ2xhbXAoKSB7IHJldHVybiAtc3RkOjpudW1lcmlj
X2xpbWl0CiB0ZW1wbGF0ZTw+IGNvbnN0ZXhwciBkb3VibGUgZGVmYXVsdE1pbmltdW1Gb3JDbGFt
cCgpIHsgcmV0dXJuIC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOyB9CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgVCBkZWZhdWx0TWF4aW11bUZvckNsYW1wKCkgeyBy
ZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7IH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIFQgY2xhbXBUbyhkb3VibGUgdmFsdWUsIFQgbWluID0gZGVmYXVsdE1pbmlt
dW1Gb3JDbGFtcDxUPigpLCBUIG1heCA9IGRlZmF1bHRNYXhpbXVtRm9yQ2xhbXA8VD4oKSkKKy8v
IFNhbWUgdHlwZSBpbiBhbmQgb3V0LgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlw
ZW5hbWUgU291cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxU
YXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFsdWUsIFRhcmdldFR5cGU+Ojp0eXBlCitjbGFtcFRv
KFNvdXJjZVR5cGUgdmFsdWUsIFRhcmdldFR5cGUgbWluID0gZGVmYXVsdE1pbmltdW1Gb3JDbGFt
cDxUYXJnZXRUeXBlPigpLCBUYXJnZXRUeXBlIG1heCA9IGRlZmF1bHRNYXhpbXVtRm9yQ2xhbXA8
VGFyZ2V0VHlwZT4oKSkKIHsKLSAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nhc3Q8ZG91YmxlPiht
YXgpKQorICAgIGlmICh2YWx1ZSA+PSBtYXgpCiAgICAgICAgIHJldHVybiBtYXg7Ci0gICAgaWYg
KHZhbHVlIDw9IHN0YXRpY19jYXN0PGRvdWJsZT4obWluKSkKKyAgICBpZiAodmFsdWUgPD0gbWlu
KQogICAgICAgICByZXR1cm4gbWluOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7
CisgICAgcmV0dXJuIHZhbHVlOworfQorCisvLyBGbG9hdGluZyBwb2ludCBzb3VyY2UuCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXRUeXBlLCB0eXBlbmFtZSBTb3VyY2VUeXBlPgordHlwZW5hbWUg
c3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFs
dWUKKyAgICAmJiBzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFNvdXJjZVR5cGU+Ojp2YWx1ZQorICAg
ICYmICEoc3RkOjppc19mbG9hdGluZ19wb2ludDxUYXJnZXRUeXBlPjo6dmFsdWUgJiYgc2l6ZW9m
KFRhcmdldFR5cGUpID4gc2l6ZW9mKFNvdXJjZVR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2Ns
YW1wVG8oU291cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0TWluaW11bUZv
ckNsYW1wPFRhcmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1heGltdW1Gb3JD
bGFtcDxUYXJnZXRUeXBlPigpKQoreworICAgIGlmICh2YWx1ZSA+PSBzdGF0aWNfY2FzdDxTb3Vy
Y2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlmICh2YWx1ZSA8PSBzdGF0
aWNfY2FzdDxTb3VyY2VUeXBlPihtaW4pKQorICAgICAgICByZXR1cm4gbWluOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+Cit0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
Zjwhc3RkOjppc19zYW1lPFRhcmdldFR5cGUsIFNvdXJjZVR5cGU+Ojp2YWx1ZQorICAgICYmIHN0
ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8U291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjppc19m
bG9hdGluZ19wb2ludDxUYXJnZXRUeXBlPjo6dmFsdWUKKyAgICAmJiAoc2l6ZW9mKFRhcmdldFR5
cGUpID4gc2l6ZW9mKFNvdXJjZVR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291
cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0TWluaW11bUZvckNsYW1wPFRh
cmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1heGltdW1Gb3JDbGFtcDxUYXJn
ZXRUeXBlPigpKQoreworICAgIFRhcmdldFR5cGUgY29udmVydGVkVmFsdWUgPSBzdGF0aWNfY2Fz
dDxUYXJnZXRUeXBlPih2YWx1ZSk7CisgICAgaWYgKGNvbnZlcnRlZFZhbHVlID49IG1heCkKKyAg
ICAgICAgcmV0dXJuIG1heDsKKyAgICBpZiAoY29udmVydGVkVmFsdWUgPD0gbWluKQorICAgICAg
ICByZXR1cm4gbWluOworICAgIHJldHVybiBjb252ZXJ0ZWRWYWx1ZTsKK30KKworLy8gU291cmNl
IGFuZCBUYXJnZXQgaGF2ZSB0aGUgc2FtZSBzaWduIGFuZCBTb3VyY2UgaXMgbGFyZ2VyIG9yIGVx
dWFsIHRvIFRhcmdldAordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5hbWUgU291
cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX3NhbWU8VGFyZ2V0VHlw
ZSwgU291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2VU
eXBlPjo6aXNfaW50ZWdlcgorICAgICYmIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46
OmlzX2ludGVnZXIKKyAgICAmJiBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+Ojppc19z
aWduZWQgPT0gc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2VUeXBlPjo6aXNfc2lnbmVkCisgICAg
JiYgc2l6ZW9mKFNvdXJjZVR5cGUpID49IHNpemVvZihUYXJnZXRUeXBlKSwgVGFyZ2V0VHlwZT46
OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0
TWluaW11bUZvckNsYW1wPFRhcmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1h
eGltdW1Gb3JDbGFtcDxUYXJnZXRUeXBlPigpKQoreworICAgIGlmICh2YWx1ZSA+PSBzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlmICh2YWx1
ZSA8PSBzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihtaW4pKQorICAgICAgICByZXR1cm4gbWluOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7Cit9CisKKy8vIENsYW1w
aW5nIGEgdW5zaWduZWQgaW50ZWdlciB0byB0aGUgbWF4IHNpZ25lZCB2YWx1ZS4KK3RlbXBsYXRl
PHR5cGVuYW1lIFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+Cit0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjwhc3RkOjppc19zYW1lPFRhcmdldFR5cGUsIFNvdXJjZVR5cGU+Ojp2YWx1ZQor
ICAgICYmIHN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46OmlzX2ludGVnZXIKKyAgICAm
JiBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+Ojppc19pbnRlZ2VyCisgICAgJiYgc3Rk
OjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgIXN0ZDo6bnVt
ZXJpY19saW1pdHM8U291cmNlVHlwZT46OmlzX3NpZ25lZAorICAgICYmIHNpemVvZihTb3VyY2VU
eXBlKSA+PSBzaXplb2YoVGFyZ2V0VHlwZSksIFRhcmdldFR5cGU+Ojp0eXBlCitjbGFtcFRvKFNv
dXJjZVR5cGUgdmFsdWUpCit7CisgICAgVGFyZ2V0VHlwZSBtYXggPSBzdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+OjptYXgoKTsKKyAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nhc3Q8U291
cmNlVHlwZT4obWF4KSkKKyAgICAgICAgcmV0dXJuIG1heDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VGFyZ2V0VHlwZT4odmFsdWUpOworfQorCisvLyBDbGFtcGluZyBhIHNpZ25lZCBpbnRlZ2Vy
IGludG8gYSB2YWxpZCB1bnNpZ25lZCBpbnRlZ2VyLgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0
VHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6
OmlzX3NhbWU8VGFyZ2V0VHlwZSwgU291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjpudW1l
cmljX2xpbWl0czxTb3VyY2VUeXBlPjo6aXNfaW50ZWdlcgorICAgICYmIHN0ZDo6bnVtZXJpY19s
aW1pdHM8VGFyZ2V0VHlwZT46OmlzX2ludGVnZXIKKyAgICAmJiAhc3RkOjpudW1lcmljX2xpbWl0
czxUYXJnZXRUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgc3RkOjpudW1lcmljX2xpbWl0czxTb3Vy
Y2VUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgc2l6ZW9mKFNvdXJjZVR5cGUpID09IHNpemVvZihU
YXJnZXRUeXBlKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1ZSkK
K3sKKyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VGFyZ2V0VHlwZT4odmFsdWUpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJn
ZXRUeXBlLCB0eXBlbmFtZSBTb3VyY2VUeXBlPgordHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0
ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFsdWUKKyAgICAmJiBzdGQ6Om51
bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+Ojppc19pbnRlZ2VyCisgICAgJiYgc3RkOjpudW1lcmlj
X2xpbWl0czxUYXJnZXRUeXBlPjo6aXNfaW50ZWdlcgorICAgICYmICFzdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+Ojppc19zaWduZWQKKyAgICAmJiBzdGQ6Om51bWVyaWNfbGltaXRzPFNv
dXJjZVR5cGU+Ojppc19zaWduZWQKKyAgICAmJiAoc2l6ZW9mKFNvdXJjZVR5cGUpID4gc2l6ZW9m
KFRhcmdldFR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1
ZSkKK3sKKyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICBUYXJnZXRU
eXBlIG1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpOworICAgIGlm
ICh2YWx1ZSA+PSBzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4g
bWF4OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7CiB9Ci10ZW1w
bGF0ZTw+IGlubGluZSBsb25nIGxvbmcgaW50IGNsYW1wVG8oZG91YmxlLCBsb25nIGxvbmcgaW50
LCBsb25nIGxvbmcgaW50KTsgLy8gY2xhbXBUbyBkb2VzIG5vdCBzdXBwb3J0IGxvbmcgbG9uZyBp
bnRzLgogCiBpbmxpbmUgaW50IGNsYW1wVG9JbnRlZ2VyKGRvdWJsZSB2YWx1ZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1YTlkZWQyZWMwMzg0MjI5NTU4MDg4MWM5MjBmMTM0
NzdkYTgyNDY2Li5hYWJjMDJiZmMxZDYwOGQxZWYxMzYwYjQ5YmZjNDdiYWRjMWM3MjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNTMwLDggKzE1MzAsOCBAQCBMYXlvdXRSZWN0
IEZyYW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0
UmVjdCYgbGF5b3V0VgogICAgICAgICAvLyBUaGUgbWF4IHN0YWJsZSBsYXlvdXQgdmlld3BvcnQg
b3JpZ2luIHJlYWxseSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQg
aXRzZWxmLCBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgbG9jYXRpb24gb2YgdGhlIGxheW91dCB2
aWV3cG9ydCBvbmUgZmluYWwgdGltZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgZW5kIHVwIG91
dCBvZiBib3VuZHMgb2YgdGhlIGRvY3VtZW50LgogICAgICAgICAvLyBXaXRob3V0IHRoaXMgYWRq
dXN0bWVudCAoYW5kIHdpdGggdXNpbmcgdGhlIG5vbi1jb25zdHJhaW5lZCB1bm9ic2N1cmVkQ29u
dGVudFJlY3QncyBzaXplIGFzIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQpIHRoZSBs
YXlvdXQgdmlld3BvcnQgY2FuIGJlIHB1c2hlZCBwYXN0IHRoZSBib3VuZHMgb2YgdGhlIGRvY3Vt
ZW50IGR1cmluZyBydWJiZXItYmFuZGluZywgYW5kIGNhbm5vdCBiZSBwdXNoZWQKICAgICAgICAg
Ly8gYmFjayBpbiB1bnRpbCB0aGUgdXNlciBzY3JvbGxzIGJhY2sgaW4gdGhlIG90aGVyIGRpcmVj
dGlvbi4KLSAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WChjbGFtcFRvPGZsb2F0Pihs
YXlvdXRWaWV3cG9ydE9yaWdpbi54KCksIDAsIGRvY3VtZW50UmVjdC53aWR0aCgpIC0gbGF5b3V0
Vmlld3BvcnRSZWN0LndpZHRoKCkpKTsKLSAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0
WShjbGFtcFRvPGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCksIDAsIGRvY3VtZW50UmVj
dC5oZWlnaHQoKSAtIGxheW91dFZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOworICAgICAgICBsYXlv
dXRWaWV3cG9ydE9yaWdpbi5zZXRYKGNsYW1wVG88ZmxvYXQ+KGxheW91dFZpZXdwb3J0T3JpZ2lu
LngoKS50b0Zsb2F0KCksIDAsIGRvY3VtZW50UmVjdC53aWR0aCgpIC0gbGF5b3V0Vmlld3BvcnRS
ZWN0LndpZHRoKCkpKTsKKyAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WShjbGFtcFRv
PGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCkudG9GbG9hdCgpLCAwLCBkb2N1bWVudFJl
Y3QuaGVpZ2h0KCkgLSBsYXlvdXRWaWV3cG9ydFJlY3QuaGVpZ2h0KCkpKTsKICAgICB9CiAgICAg
bGF5b3V0Vmlld3BvcnRSZWN0LnNldExvY2F0aW9uKGxheW91dFZpZXdwb3J0T3JpZ2luKTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
MzI0ZWZlNThjZDA5ZTllNDRhYzg2MjA5YzhhMzI0OTgxNmQwMmM0My4uNjk2NTBkZjIwZjA4ZTlk
ZTkzMjVmZGZmMDY3ZTQ3NzIyMmIxMzQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEwNTUsNyArMTA1NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFRleHRTdHJva2VXaWR0aChmbG9hdCB3KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVk
RGF0YSwgdGV4dFN0cm9rZVdpZHRoLCB3KTsgfQogICAgIHZvaWQgc2V0VGV4dEZpbGxDb2xvcihj
b25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHRleHRGaWxsQ29s
b3IsIGMpOyB9CiAgICAgdm9pZCBzZXRDYXJldENvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9W
QVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgY2FyZXRDb2xvciwgYyk7IH0KLSAgICB2b2lkIHNldE9w
YWNpdHkoZmxvYXQgZikgeyBmbG9hdCB2ID0gY2xhbXBUbzxmbG9hdD4oZiwgMCwgMSk7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3BhY2l0eSwgdik7IH0KKyAgICB2b2lkIHNldE9w
YWNpdHkoZmxvYXQgZikgeyBmbG9hdCB2ID0gY2xhbXBUbzxmbG9hdD4oZiwgMC5mLCAxLmYpOyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG9wYWNpdHksIHYpOyB9CiAgICAgdm9pZCBz
ZXRBcHBlYXJhbmNlKENvbnRyb2xQYXJ0IGEpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCBhcHBlYXJhbmNlLCBhKTsgfQogICAgIC8vIEZvciB2YWxpZCB2YWx1ZXMgb2YgYm94LWFs
aWduIHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA5L1dELWNzczMtZmxleGJveC0yMDA5MDcy
My8jYWxpZ25tZW50CiAgICAgdm9pZCBzZXRCb3hBbGlnbihCb3hBbGlnbm1lbnQgYSkgeyBTRVRf
TkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBkZXByZWNhdGVkRmxleGlibGVCb3gs
IGFsaWduLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYSkpOyB9CkBAIC0yMTk2LDcgKzIxOTYsNyBA
QCBpbmxpbmUgdm9pZCBSZW5kZXJTdHlsZTo6c2V0U2hhcGVPdXRzaWRlKFJlZlB0cjxTaGFwZVZh
bHVlPiYmIHZhbHVlKQogCiBpbmxpbmUgdm9pZCBSZW5kZXJTdHlsZTo6c2V0U2hhcGVJbWFnZVRo
cmVzaG9sZChmbG9hdCBzaGFwZUltYWdlVGhyZXNob2xkKQogewotICAgIGZsb2F0IGNsYW1wZWRT
aGFwZUltYWdlVGhyZXNob2xkID0gY2xhbXBUbzxmbG9hdD4oc2hhcGVJbWFnZVRocmVzaG9sZCwg
MCwgMSk7CisgICAgZmxvYXQgY2xhbXBlZFNoYXBlSW1hZ2VUaHJlc2hvbGQgPSBjbGFtcFRvPGZs
b2F0PihzaGFwZUltYWdlVGhyZXNob2xkLCAwLmYsIDEuZik7CiAgICAgU0VUX1ZBUihtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLCBzaGFwZUltYWdlVGhyZXNob2xkLCBjbGFtcGVkU2hhcGVJbWFnZVRo
cmVzaG9sZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAyNzRkMzM5MTA5MTkwMDAzNTUxOGE5NzQxYjVkY2RmOTY0ZDRlN2MyLi4wZmZk
MTYwZWQ1MjEwZjM3YmNiZGJiMGM3YWJmZTJhOWUwYWVjMzZlIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDIt
MDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNs
YW1wVG8oKTogZG8gbm90IGNvbnZlcnQgdGhlIGlucHV0IHRvIGRvdWJsZSB3aGVuIGRlYWxpbmcg
d2l0aCBpbnRlZ2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk0MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY5MjMxMj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01hdGhFeHRyYXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdENsYW1w
RmxvYXRpbmdQb2ludFRvRmxvYXRpbmdQb2ludCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0
ZXN0Q2xhbXBGbG9hdGluZ1BvaW50VG9JbnRlZ2VyKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVz
dENsYW1wVW5zaWduZWRUb1NpZ25lZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0ZXN0Q2xh
bXBTaWduZWRUb1Vuc2lnbmVkKToKKwogMjAxOS0wMi0wNiAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhbGx5IGVuYWJsZSB0aGUgYXV0b21hdGljIGNoZWNr
aW5nIGFuZCByZWdlbmVyYXRpb25zIG9mIC54Y2ZpbGVsaXN0cyBkdXJpbmcgYnVpbGRzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NYXRoRXh0cmFzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01hdGhFeHRyYXMuY3BwCmluZGV4IDE3ODlhMGVi
OGIwNzczMGI5YTNkMTJjMDUzOTNmNDU5YmE5ZWFlNmQuLjdiZGE2NGM5NmZkNWJlNWU1YjkzYjgx
MmY4NWFjZjZiOTVlNGU4NDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL01hdGhFeHRyYXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01h
dGhFeHRyYXMuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTc0LDYg
KzE3NSwxNzYgQEAgVEVTVChXVEYsIGNsYW1wVG9VbnNpZ25lZExvbmdMb25nKQogICAgIEVYUEVD
VF9FUShjbGFtcFRvPHVuc2lnbmVkPigtMSksIDB1KTsKIH0KIAorI2lmICFDT01QSUxFUihNU1ZD
KQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KK3N0
YXRpYyB2b2lkIHRlc3RDbGFtcEZsb2F0aW5nUG9pbnRUb0Zsb2F0aW5nUG9pbnQoKQoreworICAg
IC8vIE5vIGNsYW1waW5nLgorICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRp
Y19jYXN0PFNvdXJjZVR5cGU+KDApKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEp
KSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMSkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRh
cmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEuNSkpLCBzdGF0aWNfY2FzdDxUYXJn
ZXRUeXBlPigxLjUpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPigtMSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPigtMSkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KC0x
LjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oLTEuNSkpOworCisgICAgLy8gRXhwbGljaXQg
Ym91bmRhcmllcywgY2xhbXBlZCBvciBub3QuCisgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oLTQyKSwgc3RhdGljX2Nhc3Q8U291cmNlVHlw
ZT4oLTQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oLTQyKSk7CisgICAgRVhQRUNUX0VR
KGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oLTQzKSwgc3RhdGlj
X2Nhc3Q8U291cmNlVHlwZT4oLTQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RhdGlj
X2Nhc3Q8U291cmNlVHlwZT4oLTQyLjUpKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oNDIpLCBzdGF0aWNfY2FzdDxTb3VyY2VUeXBl
Pig0MSksIHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0
VHlwZT4oNDIpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2Fz
dDxTb3VyY2VUeXBlPig0MyksIHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDQxKSwgc3RhdGljX2Nh
c3Q8U291cmNlVHlwZT4oNDIuNSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGF0aWNfY2Fz
dDxTb3VyY2VUeXBlPig0Mi41KSkpOworCisgICAgLy8gSW50ZWdlciBib3VuZHMuCisgICAgRVhQ
RUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpICsgMSksIHN0YXRpY19jYXN0PFRhcmdldFR5
cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSArIDEpOworICAgIEVYUEVD
VF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpKSk7CisgICAgRVhQRUNUX0VRKGNsYW1w
VG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCkpICsgMSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSArIDEpOworCisgICAgRVhQRUNUX0VRKGNsYW1w
VG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWluKCkpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQzMl90Pjo6bWluKCkpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRU
eXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+
OjptaW4oKSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDY0X3Q+OjptaW4oKSkpOworCisgICAgaWYgKHN0ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBkb3Vi
bGU+Ojp2YWx1ZSAmJiBzdGQ6OmlzX3NhbWU8U291cmNlVHlwZSwgZmxvYXQ+Ojp2YWx1ZSkgewor
ICAgICAgICAvLyBJZiB0aGUgc291cmNlIGlzIGZsb2F0IGFuZCB0YXJnZXQgaXMgZG91YmxlLCB0
aGUgaW5wdXQgb2YgdGhvc2UgY2FzZXMgaGFzIGxvc3QgYml0cyBpbiBmbG9hdC4KKyAgICAgICAg
Ly8gSW4gdGhhdCBjYXNlLCB3ZSBhbHNvIHJvdW5kIHRoZSBleHBlY3RhdGlvbiB0byBmbG9hdC4K
KyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNl
VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKSwgc3RhdGljX2Nhc3Q8
VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpKSk7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+
KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1p
bigpKSAtIDEpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgLSAxKSk7CisgICAgICAgIEVY
UEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSAtIDEpLCBzdGF0aWNfY2FzdDxUYXJnZXRU
eXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptaW4oKSkgLSAxKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88
VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWF4KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpIC0gMSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpKSAtIDEpOworICAgICAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJn
ZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptaW4oKSkgLSAxKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWluKCkpIC0gMSk7CisgICAgfQorCisgICAgLy8gSW5maW5pdHkuCisg
ICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxTb3Vy
Y2VUeXBlPjo6aW5maW5pdHkoKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1h
eCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPigtc3RkOjpudW1lcmljX2xp
bWl0czxTb3VyY2VUeXBlPjo6aW5maW5pdHkoKSksIC1zdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdl
dFR5cGU+OjptYXgoKSk7Cit9CisKK1RFU1QoV1RGLCBjbGFtcEZsb2F0aW5nUG9pbnRUb0Zsb2F0
aW5nUG9pbnQpCit7CisgICAgdGVzdENsYW1wRmxvYXRpbmdQb2ludFRvRmxvYXRpbmdQb2ludDxm
bG9hdCwgZmxvYXQ+KCk7CisgICAgdGVzdENsYW1wRmxvYXRpbmdQb2ludFRvRmxvYXRpbmdQb2lu
dDxkb3VibGUsIGRvdWJsZT4oKTsKKworICAgIHRlc3RDbGFtcEZsb2F0aW5nUG9pbnRUb0Zsb2F0
aW5nUG9pbnQ8ZG91YmxlLCBmbG9hdD4oKTsKKyAgICB0ZXN0Q2xhbXBGbG9hdGluZ1BvaW50VG9G
bG9hdGluZ1BvaW50PGZsb2F0LCBkb3VibGU+KCk7Cit9CisjZW5kaWYgLy8gIUNPTVBJTEVSKE1T
VkMpCisKK3RlbXBsYXRlPHR5cGVuYW1lIEZsb2F0aW5nUG9pbnRUeXBlPgorc3RhdGljIHZvaWQg
dGVzdENsYW1wRmxvYXRpbmdQb2ludFRvSW50ZWdlcigpCit7CisgICAgRVhQRUNUX0VRKGNsYW1w
VG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KDApKSwgMCk7CisgICAg
RVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+
KDEpKSwgMSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8Rmxv
YXRpbmdQb2ludFR5cGU+KC0xKSksIC0xKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90
PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQz
Ml90Pjo6bWF4KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSkgKyAxLmYpLCBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJf
dD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
MzJfdD46Om1pbigpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKTsKKyAg
ICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlw
ZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpIC0gMS5mKSwgc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMy
X3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVp
bnQzMl90Pjo6bWF4KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwor
ICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRU
eXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQzMl90Pjo6bWF4KCkpICsgMS5mKSwgc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGlu
dDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQzMl90Pjo6bWluKCkpKSwgMC5mKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90
PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2
NF90Pjo6bWF4KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkgKyAxLmYpLCBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJf
dD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
NjRfdD46Om1pbigpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKTsKKyAg
ICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlw
ZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkpIC0gMS5mKSwgc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMy
X3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVp
bnQ2NF90Pjo6bWF4KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOwor
ICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRU
eXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQ2NF90Pjo6bWF4KCkpICsgMS5mKSwgc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGlu
dDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQ2NF90Pjo6bWluKCkpKSwgMC5mKTsKKworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMy
X3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPEZs
b2F0aW5nUG9pbnRUeXBlPjo6aW5maW5pdHkoKSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8
RmxvYXRpbmdQb2ludFR5cGU+KC1zdGQ6Om51bWVyaWNfbGltaXRzPEZsb2F0aW5nUG9pbnRUeXBl
Pjo6aW5maW5pdHkoKSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSk7Cit9
CisKK1RFU1QoV1RGLCBjbGFtcEZsb2F0VG9JbnQpCit7CisgICAgdGVzdENsYW1wRmxvYXRpbmdQ
b2ludFRvSW50ZWdlcjxmbG9hdD4oKTsKKyAgICB0ZXN0Q2xhbXBGbG9hdGluZ1BvaW50VG9JbnRl
Z2VyPGRvdWJsZT4oKTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5h
bWUgU291cmNlVHlwZT4KK3N0YXRpYyB2b2lkIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnMoKQor
eworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5
cGU+KDApKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMCkpOworICAgIEVYUEVDVF9FUShjbGFt
cFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEpKSwgc3RhdGljX2Nhc3Q8
VGFyZ2V0VHlwZT4oMSkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRp
Y19jYXN0PFNvdXJjZVR5cGU+KC0xKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46
OmlzX3NpZ25lZCA/IHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KC0xKSA6IHN0ZDo6bnVtZXJpY19s
aW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdl
dFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0
VHlwZT46Om1pbigpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1pbigpKTsK
KyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+OjptYXgoKSkpLCBzdGQ6Om51bWVyaWNf
bGltaXRzPFRhcmdldFR5cGU+OjptYXgoKSk7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJn
ZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptaW4oKSksIHN0ZDo6bnVt
ZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1pbigpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxU
YXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptYXgoKSksIHN0ZDo6
bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKK30KKworVEVTVChXVEYsIGNsYW1w
U2FtZVNpZ25JbnRlZ2VycykKK3sKKyAgICB0ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPGNoYXIs
IGNoYXI+KCk7CisgICAgdGVzdENsYW1wU2FtZVNpZ25JbnRlZ2Vyczx1bnNpZ25lZCBjaGFyLCB1
bnNpZ25lZCBjaGFyPigpOworICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8Y2hhciwgaW50
MzJfdD4oKTsKKyAgICB0ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPHVuc2lnbmVkIGNoYXIsIHVp
bnQzMl90PigpOworICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8Y2hhciwgaW50NjRfdD4o
KTsKKyAgICB0ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPHVuc2lnbmVkIGNoYXIsIHVpbnQ2NF90
PigpOworCisgICAgdGVzdENsYW1wU2FtZVNpZ25JbnRlZ2VyczxpbnQzMl90LCBpbnQzMl90Pigp
OworICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8dWludDMyX3QsIHVpbnQzMl90PigpOwor
ICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8aW50MzJfdCwgaW50NjRfdD4oKTsKKyAgICB0
ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPHVpbnQzMl90LCB1aW50NjRfdD4oKTsKKyAgICB0ZXN0
Q2xhbXBTYW1lU2lnbkludGVnZXJzPGludDE2X3QsIGludDY0X3Q+KCk7CisgICAgdGVzdENsYW1w
U2FtZVNpZ25JbnRlZ2Vyczx1aW50MTZfdCwgdWludDY0X3Q+KCk7Cit9CisKK3RlbXBsYXRlPHR5
cGVuYW1lIFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+CitzdGF0aWMgdm9pZCB0ZXN0
Q2xhbXBVbnNpZ25lZFRvU2lnbmVkKCkKK3sKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRU
eXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigwKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+
KDApKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3Vy
Y2VUeXBlPigxKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDEpKTsKKworICAgIEVYUEVDVF9F
UShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJp
Y19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKSAtIDEpLCBzdGQ6Om51bWVyaWNfbGltaXRzPFRh
cmdldFR5cGU+OjptYXgoKSAtIDEpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+
KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46
Om1heCgpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICBF
WFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6
Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+OjptYXgoKSkgKyAxKSwgc3RkOjpudW1lcmljX2xp
bWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5
cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46Om1heCgpKSwgc3RkOjpudW1lcmlj
X2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdl
dFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46Om1heCgpIC0gMSksIHN0ZDo6
bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKK30KKworVEVTVChXVEYsIGNsYW1w
VW5zaWduZWRUb1NpZ25lZCkKK3sKKyAgICB0ZXN0Q2xhbXBVbnNpZ25lZFRvU2lnbmVkPGNoYXIs
IHVuc2lnbmVkIGNoYXI+KCk7CisgICAgdGVzdENsYW1wVW5zaWduZWRUb1NpZ25lZDxjaGFyLCB1
aW50MzJfdD4oKTsKKyAgICB0ZXN0Q2xhbXBVbnNpZ25lZFRvU2lnbmVkPGludDMyX3QsIHVpbnQz
Ml90PigpOworICAgIHRlc3RDbGFtcFVuc2lnbmVkVG9TaWduZWQ8aW50NjRfdCwgdWludDY0X3Q+
KCk7CisgICAgdGVzdENsYW1wVW5zaWduZWRUb1NpZ25lZDxpbnQzMl90LCB1aW50NjRfdD4oKTsK
KyAgICB0ZXN0Q2xhbXBVbnNpZ25lZFRvU2lnbmVkPGludDE2X3QsIHVpbnQzMl90PigpOworICAg
IHRlc3RDbGFtcFVuc2lnbmVkVG9TaWduZWQ8aW50MTZfdCwgdWludDY0X3Q+KCk7Cit9CisKK3Rl
bXBsYXRlPHR5cGVuYW1lIFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+CitzdGF0aWMg
dm9pZCB0ZXN0Q2xhbXBTaWduZWRUb1Vuc2lnbmVkKCkKK3sKKyAgICBFWFBFQ1RfRVEoY2xhbXBU
bzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigwKSksIHN0YXRpY19jYXN0PFRh
cmdldFR5cGU+KDApKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPigxKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDEpKTsKKyAgICBF
WFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigtMSkp
LCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPigwKSk7CisKKyAgICBpZiAoc2l6ZW9mKFRhcmdldFR5
cGUpIDwgc2l6ZW9mKFNvdXJjZVR5cGUpKSB7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPFRh
cmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFy
Z2V0VHlwZT46Om1pbigpKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDApKTsKKyAgICAgICAg
RVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3Rk
OjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpIC0gMSksIHN0ZDo6bnVtZXJpY19s
aW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpIC0gMSk7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRv
PFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8
VGFyZ2V0VHlwZT46Om1heCgpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1h
eCgpKTsKKyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8
U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpICsgMSks
IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICB9CisKKyAgICBF
WFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5
cGU+OjptaW4oKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDApKTsKKyAgICBpZiAoc2l6ZW9m
KFRhcmdldFR5cGUpIDwgc2l6ZW9mKFNvdXJjZVR5cGUpKQorICAgICAgICBFWFBFQ1RfRVEoY2xh
bXBUbzxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptYXgoKSks
IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICBlbHNlCisgICAg
ICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8U291
cmNlVHlwZT46Om1heCgpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxTb3VyY2VUeXBlPjo6bWF4KCkpKTsKK30KKworVEVTVChXVEYsIGNsYW1wU2lnbmVkVG9V
bnNpZ25lZCkKK3sKKyAgICB0ZXN0Q2xhbXBTaWduZWRUb1Vuc2lnbmVkPHVuc2lnbmVkIGNoYXIs
IGNoYXI+KCk7CisgICAgdGVzdENsYW1wU2lnbmVkVG9VbnNpZ25lZDx1bnNpZ25lZCBjaGFyLCBp
bnQzMl90PigpOworICAgIHRlc3RDbGFtcFNpZ25lZFRvVW5zaWduZWQ8dWludDMyX3QsIGludDMy
X3Q+KCk7CisgICAgdGVzdENsYW1wU2lnbmVkVG9VbnNpZ25lZDx1aW50NjRfdCwgaW50NjRfdD4o
KTsKKyAgICB0ZXN0Q2xhbXBTaWduZWRUb1Vuc2lnbmVkPHVpbnQzMl90LCBpbnQ2NF90PigpOwor
ICAgIHRlc3RDbGFtcFNpZ25lZFRvVW5zaWduZWQ8dWludDE2X3QsIGludDMyX3Q+KCk7CisgICAg
dGVzdENsYW1wU2lnbmVkVG9VbnNpZ25lZDx1aW50MTZfdCwgaW50NjRfdD4oKTsKK30KKwogVEVT
VChXVEYsIHJvdW5kVXBUb1Bvd2VyT2ZUd28pCiB7CiAgICAgRVhQRUNUX0VRKFdURjo6cm91bmRV
cFRvUG93ZXJPZlR3byhVSU5UMzJfTUFYKSwgMFUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361476</attachid>
            <date>2019-02-07 17:46:21 -0800</date>
            <delta_ts>2019-02-07 17:46:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194377-20190207174620.patch</filename>
            <type>text/plain</type>
            <size>29147</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY1Njg0MzMwNDI2ZTc1ODg0OWI1MWUy
NTkyMjNkMzdlMzI3MGU1OWUuLjY0MjdkM2Y2YmRiNzY3NjUxN2E1MzQ3ZDBjYjE0ODM3OWQ3MWEw
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDItMDYgIEJlbmphbWluIFBvdWxhaW4gIDxi
ZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNsYW1wVG8oKTogZG8gbm90IGNvbnZlcnQg
dGhlIGlucHV0IHRvIGRvdWJsZSB3aGVuIGRlYWxpbmcgd2l0aCBpbnRlZ2VycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MjYzCisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS80NzY5MjMxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICBQcmV2aW91c2x5LCBldmVyeSB1c2Ugb2YgY2xhbXBUbygpIHdhcyBjb252
ZXJ0aW5nIHRoZSBpbnB1dCB0byBkb3VibGUsCisgICAgICAgIGRvaW5nIHRoZSBjb21wYXJpc29u
IGluIGRvdWJsZSwgdGhlbiBjYXN0aW5nIGJhY2sgdG8gd2hhdGV2ZXIgdHlwZSB3YXMgbmVlZGVk
LgorCisgICAgICAgIEluIG1hbnkgY2FzZSwgdGhhdCB3YXMgdmVyeSB3YXN0ZWZ1bC4gV2ViS2l0
IGhhcyBtYW55IGNhc2VzIG9mIGNsYW1wVG8oKSB3aXRoCisgICAgICAgIHRoZSBzYW1lIHR5cGUg
YXMgaW5wdXQvb3V0cHV0LCBvciB3aXRoIGludGVnZXIgdHlwZXMgb2YgZGlmZmVyZW50IHNpemUv
c2lnbi4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYSBmZXcgdmVyc2lvbnMgb2YgY2xhbXBU
bygpIGZvciB0aGUgY29tbW9uIGNhc2VzIHNlZW4gaW4gV2ViS2l0LgorICAgICAgICBJbiBlYWNo
IGNhc2UsIEkgdHJpZWQgdG8gbWluaW1pemUgdGhlIGFtb3VudCBvZiBjb252ZXJzaW9uIG5lZWRl
ZCBhdCBydW50aW1lLgorCisgICAgICAgICogd3RmL01hdGhFeHRyYXMuaDoKKyAgICAgICAgKGNs
YW1wVG8pOgorCiAyMDE5LTAyLTA1ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4K
IAogICAgICAgICBFbmFibGUgdGhlIGF1dG9tYXRpYyBjaGVja2luZyBhbmQgcmVnZW5lcmF0aW9u
cyBvZiAueGNmaWxlbGlzdHMgZHVyaW5nIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGY0OTYwMjRjZTE2
MmMyNDhjNTViNDE3NzUxYmUxYmVhOWIyNjRjNWUuLmViNzcwM2MxN2QxYTA3ZmIzOWI3Y2NmNzNj
YmM4YzI5ZThkMTU0MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxOS0wMi0wNiAg
QmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CisKKyAgICAgICAgY2xhbXBU
bygpOiBkbyBub3QgY29udmVydCB0aGUgaW5wdXQgdG8gZG91YmxlIHdoZW4gZGVhbGluZyB3aXRo
IGludGVnZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTQyNjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ3NjkyMzEyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIE1ha2UgdGhlIGNhbGxzIHRvIGNsYW1w
VG88ZmxvYXQ+KCkgdW5hbWJpZ3VvdXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmNvbXB1dGVVcGRhdGVkTGF5b3V0Vmlld3Bv
cnRSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpzZXRPcGFjaXR5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclN0eWxlOjpzZXRTaGFwZUltYWdlVGhyZXNob2xkKToKKwogMjAxOS0wMi0wNiAgS2Vp
dGggUm9sbGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIC54Y2ZpbGVs
aXN0IGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmggYi9Tb3Vy
Y2UvV1RGL3d0Zi9NYXRoRXh0cmFzLmgKaW5kZXggNWVlZjE5ODc5MGNiMWVlODY0OTBkNDllZTFl
N2U2OWE1YzkyYTMyYS4uNmUxNzcwMDlkNzJlN2U3MWNhYmMwYjc3Y2ZmYWRmZjhjNGIwYmUzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvTWF0aEV4dHJhcy5oCisrKyBiL1NvdXJjZS9XVEYv
d3RmL01hdGhFeHRyYXMuaApAQCAtMTIzLDE1ICsxMjMsMTEwIEBAIHRlbXBsYXRlPD4gY29uc3Rl
eHByIGZsb2F0IGRlZmF1bHRNaW5pbXVtRm9yQ2xhbXAoKSB7IHJldHVybiAtc3RkOjpudW1lcmlj
X2xpbWl0CiB0ZW1wbGF0ZTw+IGNvbnN0ZXhwciBkb3VibGUgZGVmYXVsdE1pbmltdW1Gb3JDbGFt
cCgpIHsgcmV0dXJuIC1zdGQ6Om51bWVyaWNfbGltaXRzPGRvdWJsZT46Om1heCgpOyB9CiB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBjb25zdGV4cHIgVCBkZWZhdWx0TWF4aW11bUZvckNsYW1wKCkgeyBy
ZXR1cm4gc3RkOjpudW1lcmljX2xpbWl0czxUPjo6bWF4KCk7IH0KIAotdGVtcGxhdGU8dHlwZW5h
bWUgVD4gaW5saW5lIFQgY2xhbXBUbyhkb3VibGUgdmFsdWUsIFQgbWluID0gZGVmYXVsdE1pbmlt
dW1Gb3JDbGFtcDxUPigpLCBUIG1heCA9IGRlZmF1bHRNYXhpbXVtRm9yQ2xhbXA8VD4oKSkKKy8v
IFNhbWUgdHlwZSBpbiBhbmQgb3V0LgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlw
ZW5hbWUgU291cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPHN0ZDo6aXNfc2FtZTxU
YXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFsdWUsIFRhcmdldFR5cGU+Ojp0eXBlCitjbGFtcFRv
KFNvdXJjZVR5cGUgdmFsdWUsIFRhcmdldFR5cGUgbWluID0gZGVmYXVsdE1pbmltdW1Gb3JDbGFt
cDxUYXJnZXRUeXBlPigpLCBUYXJnZXRUeXBlIG1heCA9IGRlZmF1bHRNYXhpbXVtRm9yQ2xhbXA8
VGFyZ2V0VHlwZT4oKSkKIHsKLSAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nhc3Q8ZG91YmxlPiht
YXgpKQorICAgIGlmICh2YWx1ZSA+PSBtYXgpCiAgICAgICAgIHJldHVybiBtYXg7Ci0gICAgaWYg
KHZhbHVlIDw9IHN0YXRpY19jYXN0PGRvdWJsZT4obWluKSkKKyAgICBpZiAodmFsdWUgPD0gbWlu
KQogICAgICAgICByZXR1cm4gbWluOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxUPih2YWx1ZSk7
CisgICAgcmV0dXJuIHZhbHVlOworfQorCisvLyBGbG9hdGluZyBwb2ludCBzb3VyY2UuCit0ZW1w
bGF0ZTx0eXBlbmFtZSBUYXJnZXRUeXBlLCB0eXBlbmFtZSBTb3VyY2VUeXBlPgordHlwZW5hbWUg
c3RkOjplbmFibGVfaWY8IXN0ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFs
dWUKKyAgICAmJiBzdGQ6OmlzX2Zsb2F0aW5nX3BvaW50PFNvdXJjZVR5cGU+Ojp2YWx1ZQorICAg
ICYmICEoc3RkOjppc19mbG9hdGluZ19wb2ludDxUYXJnZXRUeXBlPjo6dmFsdWUgJiYgc2l6ZW9m
KFRhcmdldFR5cGUpID4gc2l6ZW9mKFNvdXJjZVR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2Ns
YW1wVG8oU291cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0TWluaW11bUZv
ckNsYW1wPFRhcmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1heGltdW1Gb3JD
bGFtcDxUYXJnZXRUeXBlPigpKQoreworICAgIGlmICh2YWx1ZSA+PSBzdGF0aWNfY2FzdDxTb3Vy
Y2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlmICh2YWx1ZSA8PSBzdGF0
aWNfY2FzdDxTb3VyY2VUeXBlPihtaW4pKQorICAgICAgICByZXR1cm4gbWluOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1l
IFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+Cit0eXBlbmFtZSBzdGQ6OmVuYWJsZV9p
Zjwhc3RkOjppc19zYW1lPFRhcmdldFR5cGUsIFNvdXJjZVR5cGU+Ojp2YWx1ZQorICAgICYmIHN0
ZDo6aXNfZmxvYXRpbmdfcG9pbnQ8U291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjppc19m
bG9hdGluZ19wb2ludDxUYXJnZXRUeXBlPjo6dmFsdWUKKyAgICAmJiAoc2l6ZW9mKFRhcmdldFR5
cGUpID4gc2l6ZW9mKFNvdXJjZVR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291
cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0TWluaW11bUZvckNsYW1wPFRh
cmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1heGltdW1Gb3JDbGFtcDxUYXJn
ZXRUeXBlPigpKQoreworICAgIFRhcmdldFR5cGUgY29udmVydGVkVmFsdWUgPSBzdGF0aWNfY2Fz
dDxUYXJnZXRUeXBlPih2YWx1ZSk7CisgICAgaWYgKGNvbnZlcnRlZFZhbHVlID49IG1heCkKKyAg
ICAgICAgcmV0dXJuIG1heDsKKyAgICBpZiAoY29udmVydGVkVmFsdWUgPD0gbWluKQorICAgICAg
ICByZXR1cm4gbWluOworICAgIHJldHVybiBjb252ZXJ0ZWRWYWx1ZTsKK30KKworLy8gU291cmNl
IGFuZCBUYXJnZXQgaGF2ZSB0aGUgc2FtZSBzaWduIGFuZCBTb3VyY2UgaXMgbGFyZ2VyIG9yIGVx
dWFsIHRvIFRhcmdldAordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5hbWUgU291
cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6OmlzX3NhbWU8VGFyZ2V0VHlw
ZSwgU291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2VU
eXBlPjo6aXNfaW50ZWdlcgorICAgICYmIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46
OmlzX2ludGVnZXIKKyAgICAmJiBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+Ojppc19z
aWduZWQgPT0gc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2VUeXBlPjo6aXNfc2lnbmVkCisgICAg
JiYgc2l6ZW9mKFNvdXJjZVR5cGUpID49IHNpemVvZihUYXJnZXRUeXBlKSwgVGFyZ2V0VHlwZT46
OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1ZSwgVGFyZ2V0VHlwZSBtaW4gPSBkZWZhdWx0
TWluaW11bUZvckNsYW1wPFRhcmdldFR5cGU+KCksIFRhcmdldFR5cGUgbWF4ID0gZGVmYXVsdE1h
eGltdW1Gb3JDbGFtcDxUYXJnZXRUeXBlPigpKQoreworICAgIGlmICh2YWx1ZSA+PSBzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4gbWF4OworICAgIGlmICh2YWx1
ZSA8PSBzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihtaW4pKQorICAgICAgICByZXR1cm4gbWluOwor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7Cit9CisKKy8vIENsYW1w
aW5nIGEgdW5zaWduZWQgaW50ZWdlciB0byB0aGUgbWF4IHNpZ25lZCB2YWx1ZS4KK3RlbXBsYXRl
PHR5cGVuYW1lIFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+Cit0eXBlbmFtZSBzdGQ6
OmVuYWJsZV9pZjwhc3RkOjppc19zYW1lPFRhcmdldFR5cGUsIFNvdXJjZVR5cGU+Ojp2YWx1ZQor
ICAgICYmIHN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46OmlzX2ludGVnZXIKKyAgICAm
JiBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+Ojppc19pbnRlZ2VyCisgICAgJiYgc3Rk
OjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgIXN0ZDo6bnVt
ZXJpY19saW1pdHM8U291cmNlVHlwZT46OmlzX3NpZ25lZAorICAgICYmIHNpemVvZihTb3VyY2VU
eXBlKSA+PSBzaXplb2YoVGFyZ2V0VHlwZSksIFRhcmdldFR5cGU+Ojp0eXBlCitjbGFtcFRvKFNv
dXJjZVR5cGUgdmFsdWUpCit7CisgICAgVGFyZ2V0VHlwZSBtYXggPSBzdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+OjptYXgoKTsKKyAgICBpZiAodmFsdWUgPj0gc3RhdGljX2Nhc3Q8U291
cmNlVHlwZT4obWF4KSkKKyAgICAgICAgcmV0dXJuIG1heDsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VGFyZ2V0VHlwZT4odmFsdWUpOworfQorCisvLyBDbGFtcGluZyBhIHNpZ25lZCBpbnRlZ2Vy
IGludG8gYSB2YWxpZCB1bnNpZ25lZCBpbnRlZ2VyLgordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0
VHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KK3R5cGVuYW1lIHN0ZDo6ZW5hYmxlX2lmPCFzdGQ6
OmlzX3NhbWU8VGFyZ2V0VHlwZSwgU291cmNlVHlwZT46OnZhbHVlCisgICAgJiYgc3RkOjpudW1l
cmljX2xpbWl0czxTb3VyY2VUeXBlPjo6aXNfaW50ZWdlcgorICAgICYmIHN0ZDo6bnVtZXJpY19s
aW1pdHM8VGFyZ2V0VHlwZT46OmlzX2ludGVnZXIKKyAgICAmJiAhc3RkOjpudW1lcmljX2xpbWl0
czxUYXJnZXRUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgc3RkOjpudW1lcmljX2xpbWl0czxTb3Vy
Y2VUeXBlPjo6aXNfc2lnbmVkCisgICAgJiYgc2l6ZW9mKFNvdXJjZVR5cGUpID09IHNpemVvZihU
YXJnZXRUeXBlKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1ZSkK
K3sKKyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VGFyZ2V0VHlwZT4odmFsdWUpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUYXJn
ZXRUeXBlLCB0eXBlbmFtZSBTb3VyY2VUeXBlPgordHlwZW5hbWUgc3RkOjplbmFibGVfaWY8IXN0
ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBTb3VyY2VUeXBlPjo6dmFsdWUKKyAgICAmJiBzdGQ6Om51
bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+Ojppc19pbnRlZ2VyCisgICAgJiYgc3RkOjpudW1lcmlj
X2xpbWl0czxUYXJnZXRUeXBlPjo6aXNfaW50ZWdlcgorICAgICYmICFzdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+Ojppc19zaWduZWQKKyAgICAmJiBzdGQ6Om51bWVyaWNfbGltaXRzPFNv
dXJjZVR5cGU+Ojppc19zaWduZWQKKyAgICAmJiAoc2l6ZW9mKFNvdXJjZVR5cGUpID4gc2l6ZW9m
KFRhcmdldFR5cGUpKSwgVGFyZ2V0VHlwZT46OnR5cGUKK2NsYW1wVG8oU291cmNlVHlwZSB2YWx1
ZSkKK3sKKyAgICBpZiAodmFsdWUgPCAwKQorICAgICAgICByZXR1cm4gMDsKKyAgICBUYXJnZXRU
eXBlIG1heCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpOworICAgIGlm
ICh2YWx1ZSA+PSBzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihtYXgpKQorICAgICAgICByZXR1cm4g
bWF4OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPih2YWx1ZSk7CiB9Ci10ZW1w
bGF0ZTw+IGlubGluZSBsb25nIGxvbmcgaW50IGNsYW1wVG8oZG91YmxlLCBsb25nIGxvbmcgaW50
LCBsb25nIGxvbmcgaW50KTsgLy8gY2xhbXBUbyBkb2VzIG5vdCBzdXBwb3J0IGxvbmcgbG9uZyBp
bnRzLgogCiBpbmxpbmUgaW50IGNsYW1wVG9JbnRlZ2VyKGRvdWJsZSB2YWx1ZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA1YTlkZWQyZWMwMzg0MjI5NTU4MDg4MWM5MjBmMTM0
NzdkYTgyNDY2Li5hYWJjMDJiZmMxZDYwOGQxZWYxMzYwYjQ5YmZjNDdiYWRjMWM3MjM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0xNTMwLDggKzE1MzAsOCBAQCBMYXlvdXRSZWN0
IEZyYW1lVmlldzo6Y29tcHV0ZVVwZGF0ZWRMYXlvdXRWaWV3cG9ydFJlY3QoY29uc3QgTGF5b3V0
UmVjdCYgbGF5b3V0VgogICAgICAgICAvLyBUaGUgbWF4IHN0YWJsZSBsYXlvdXQgdmlld3BvcnQg
b3JpZ2luIHJlYWxseSBkZXBlbmRzIG9uIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQg
aXRzZWxmLCBzbyB3ZSBuZWVkIHRvIGFkanVzdCB0aGUgbG9jYXRpb24gb2YgdGhlIGxheW91dCB2
aWV3cG9ydCBvbmUgZmluYWwgdGltZSB0byBtYWtlIHN1cmUgaXQgZG9lcyBub3QgZW5kIHVwIG91
dCBvZiBib3VuZHMgb2YgdGhlIGRvY3VtZW50LgogICAgICAgICAvLyBXaXRob3V0IHRoaXMgYWRq
dXN0bWVudCAoYW5kIHdpdGggdXNpbmcgdGhlIG5vbi1jb25zdHJhaW5lZCB1bm9ic2N1cmVkQ29u
dGVudFJlY3QncyBzaXplIGFzIHRoZSBzaXplIG9mIHRoZSBsYXlvdXQgdmlld3BvcnQpIHRoZSBs
YXlvdXQgdmlld3BvcnQgY2FuIGJlIHB1c2hlZCBwYXN0IHRoZSBib3VuZHMgb2YgdGhlIGRvY3Vt
ZW50IGR1cmluZyBydWJiZXItYmFuZGluZywgYW5kIGNhbm5vdCBiZSBwdXNoZWQKICAgICAgICAg
Ly8gYmFjayBpbiB1bnRpbCB0aGUgdXNlciBzY3JvbGxzIGJhY2sgaW4gdGhlIG90aGVyIGRpcmVj
dGlvbi4KLSAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WChjbGFtcFRvPGZsb2F0Pihs
YXlvdXRWaWV3cG9ydE9yaWdpbi54KCksIDAsIGRvY3VtZW50UmVjdC53aWR0aCgpIC0gbGF5b3V0
Vmlld3BvcnRSZWN0LndpZHRoKCkpKTsKLSAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0
WShjbGFtcFRvPGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCksIDAsIGRvY3VtZW50UmVj
dC5oZWlnaHQoKSAtIGxheW91dFZpZXdwb3J0UmVjdC5oZWlnaHQoKSkpOworICAgICAgICBsYXlv
dXRWaWV3cG9ydE9yaWdpbi5zZXRYKGNsYW1wVG88ZmxvYXQ+KGxheW91dFZpZXdwb3J0T3JpZ2lu
LngoKS50b0Zsb2F0KCksIDAsIGRvY3VtZW50UmVjdC53aWR0aCgpIC0gbGF5b3V0Vmlld3BvcnRS
ZWN0LndpZHRoKCkpKTsKKyAgICAgICAgbGF5b3V0Vmlld3BvcnRPcmlnaW4uc2V0WShjbGFtcFRv
PGZsb2F0PihsYXlvdXRWaWV3cG9ydE9yaWdpbi55KCkudG9GbG9hdCgpLCAwLCBkb2N1bWVudFJl
Y3QuaGVpZ2h0KCkgLSBsYXlvdXRWaWV3cG9ydFJlY3QuaGVpZ2h0KCkpKTsKICAgICB9CiAgICAg
bGF5b3V0Vmlld3BvcnRSZWN0LnNldExvY2F0aW9uKGxheW91dFZpZXdwb3J0T3JpZ2luKTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
MzI0ZWZlNThjZDA5ZTllNDRhYzg2MjA5YzhhMzI0OTgxNmQwMmM0My4uNjk2NTBkZjIwZjA4ZTlk
ZTkzMjVmZGZmMDY3ZTQ3NzIyMmIxMzQ4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTEwNTUsNyArMTA1NSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFRleHRTdHJva2VXaWR0aChmbG9hdCB3KSB7IFNFVF9WQVIobV9yYXJlSW5oZXJpdGVk
RGF0YSwgdGV4dFN0cm9rZVdpZHRoLCB3KTsgfQogICAgIHZvaWQgc2V0VGV4dEZpbGxDb2xvcihj
b25zdCBDb2xvciYgYykgeyBTRVRfVkFSKG1fcmFyZUluaGVyaXRlZERhdGEsIHRleHRGaWxsQ29s
b3IsIGMpOyB9CiAgICAgdm9pZCBzZXRDYXJldENvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9W
QVIobV9yYXJlSW5oZXJpdGVkRGF0YSwgY2FyZXRDb2xvciwgYyk7IH0KLSAgICB2b2lkIHNldE9w
YWNpdHkoZmxvYXQgZikgeyBmbG9hdCB2ID0gY2xhbXBUbzxmbG9hdD4oZiwgMCwgMSk7IFNFVF9W
QVIobV9yYXJlTm9uSW5oZXJpdGVkRGF0YSwgb3BhY2l0eSwgdik7IH0KKyAgICB2b2lkIHNldE9w
YWNpdHkoZmxvYXQgZikgeyBmbG9hdCB2ID0gY2xhbXBUbzxmbG9hdD4oZiwgMC5mLCAxLmYpOyBT
RVRfVkFSKG1fcmFyZU5vbkluaGVyaXRlZERhdGEsIG9wYWNpdHksIHYpOyB9CiAgICAgdm9pZCBz
ZXRBcHBlYXJhbmNlKENvbnRyb2xQYXJ0IGEpIHsgU0VUX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWRE
YXRhLCBhcHBlYXJhbmNlLCBhKTsgfQogICAgIC8vIEZvciB2YWxpZCB2YWx1ZXMgb2YgYm94LWFs
aWduIHNlZSBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDA5L1dELWNzczMtZmxleGJveC0yMDA5MDcy
My8jYWxpZ25tZW50CiAgICAgdm9pZCBzZXRCb3hBbGlnbihCb3hBbGlnbm1lbnQgYSkgeyBTRVRf
TkVTVEVEX1ZBUihtX3JhcmVOb25Jbmhlcml0ZWREYXRhLCBkZXByZWNhdGVkRmxleGlibGVCb3gs
IGFsaWduLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oYSkpOyB9CkBAIC0yMTk2LDcgKzIxOTYsNyBA
QCBpbmxpbmUgdm9pZCBSZW5kZXJTdHlsZTo6c2V0U2hhcGVPdXRzaWRlKFJlZlB0cjxTaGFwZVZh
bHVlPiYmIHZhbHVlKQogCiBpbmxpbmUgdm9pZCBSZW5kZXJTdHlsZTo6c2V0U2hhcGVJbWFnZVRo
cmVzaG9sZChmbG9hdCBzaGFwZUltYWdlVGhyZXNob2xkKQogewotICAgIGZsb2F0IGNsYW1wZWRT
aGFwZUltYWdlVGhyZXNob2xkID0gY2xhbXBUbzxmbG9hdD4oc2hhcGVJbWFnZVRocmVzaG9sZCwg
MCwgMSk7CisgICAgZmxvYXQgY2xhbXBlZFNoYXBlSW1hZ2VUaHJlc2hvbGQgPSBjbGFtcFRvPGZs
b2F0PihzaGFwZUltYWdlVGhyZXNob2xkLCAwLmYsIDEuZik7CiAgICAgU0VUX1ZBUihtX3JhcmVO
b25Jbmhlcml0ZWREYXRhLCBzaGFwZUltYWdlVGhyZXNob2xkLCBjbGFtcGVkU2hhcGVJbWFnZVRo
cmVzaG9sZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5n
ZUxvZwppbmRleCAyNzRkMzM5MTA5MTkwMDAzNTUxOGE5NzQxYjVkY2RmOTY0ZDRlN2MyLi4wZmZk
MTYwZWQ1MjEwZjM3YmNiZGJiMGM3YWJmZTJhOWUwYWVjMzZlIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDIt
MDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1pbkB3ZWJraXQub3JnPgorCisgICAgICAgIGNs
YW1wVG8oKTogZG8gbm90IGNvbnZlcnQgdGhlIGlucHV0IHRvIGRvdWJsZSB3aGVuIGRlYWxpbmcg
d2l0aCBpbnRlZ2VycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk0MjYzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NzY5MjMxMj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL01hdGhFeHRyYXMuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVzdENsYW1w
RmxvYXRpbmdQb2ludFRvRmxvYXRpbmdQb2ludCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0
ZXN0Q2xhbXBGbG9hdGluZ1BvaW50VG9JbnRlZ2VyKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OnRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnMpOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6dGVz
dENsYW1wVW5zaWduZWRUb1NpZ25lZCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp0ZXN0Q2xh
bXBTaWduZWRUb1Vuc2lnbmVkKToKKwogMjAxOS0wMi0wNiAgS2VpdGggUm9sbGluICA8a3JvbGxp
bkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVhbGx5IGVuYWJsZSB0aGUgYXV0b21hdGljIGNoZWNr
aW5nIGFuZCByZWdlbmVyYXRpb25zIG9mIC54Y2ZpbGVsaXN0cyBkdXJpbmcgYnVpbGRzCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9NYXRoRXh0cmFzLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01hdGhFeHRyYXMuY3BwCmluZGV4IDE3ODlhMGVi
OGIwNzczMGI5YTNkMTJjMDUzOTNmNDU5YmE5ZWFlNmQuLmM3NGUzYzllNTQ3NGY2OTg5N2U5NDYx
MjU5NTQ3NWMyZDZlM2JkMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL01hdGhFeHRyYXMuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL01h
dGhFeHRyYXMuY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMiBJ
bnRlbCBDb3Jwb3JhdGlvbgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTc0LDYg
KzE3NSwyMzggQEAgVEVTVChXVEYsIGNsYW1wVG9VbnNpZ25lZExvbmdMb25nKQogICAgIEVYUEVD
VF9FUShjbGFtcFRvPHVuc2lnbmVkPigtMSksIDB1KTsKIH0KIAorI2lmICFDT01QSUxFUihNU1ZD
KQordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5hbWUgU291cmNlVHlwZT4KK3N0
YXRpYyB2b2lkIHRlc3RDbGFtcEZsb2F0aW5nUG9pbnRUb0Zsb2F0aW5nUG9pbnQoKQoreworICAg
IC8vIE5vIGNsYW1waW5nLgorICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRp
Y19jYXN0PFNvdXJjZVR5cGU+KDApKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEp
KSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMSkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRh
cmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEuNSkpLCBzdGF0aWNfY2FzdDxUYXJn
ZXRUeXBlPigxLjUpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPigtMSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPigtMSkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KC0x
LjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oLTEuNSkpOworCisgICAgLy8gRXhwbGljaXQg
Ym91bmRhcmllcywgY2xhbXBlZCBvciBub3QuCisgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oLTQyKSwgc3RhdGljX2Nhc3Q8U291cmNlVHlw
ZT4oLTQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oLTQyKSk7CisgICAgRVhQRUNUX0VR
KGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oLTQzKSwgc3RhdGlj
X2Nhc3Q8U291cmNlVHlwZT4oLTQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RhdGlj
X2Nhc3Q8U291cmNlVHlwZT4oLTQyLjUpKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oNDIpLCBzdGF0aWNfY2FzdDxTb3VyY2VUeXBl
Pig0MSksIHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDQyLjUpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0
VHlwZT4oNDIpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2Fz
dDxTb3VyY2VUeXBlPig0MyksIHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDQxKSwgc3RhdGljX2Nh
c3Q8U291cmNlVHlwZT4oNDIuNSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGF0aWNfY2Fz
dDxTb3VyY2VUeXBlPig0Mi41KSkpOworCisgICAgLy8gSW50ZWdlciBib3VuZHMuCisgICAgRVhQ
RUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpu
dW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpICsgMSksIHN0YXRpY19jYXN0PFRhcmdldFR5
cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSArIDEpOworICAgIEVYUEVD
VF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50NjRfdD46Om1heCgpKSk7CisgICAgRVhQRUNUX0VRKGNsYW1w
VG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWF4KCkpICsgMSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSArIDEpOworCisgICAgRVhQRUNUX0VRKGNsYW1w
VG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0
czxpbnQzMl90Pjo6bWluKCkpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmlj
X2xpbWl0czxpbnQzMl90Pjo6bWluKCkpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRU
eXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+
OjptaW4oKSkpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDY0X3Q+OjptaW4oKSkpOworCisgICAgaWYgKHN0ZDo6aXNfc2FtZTxUYXJnZXRUeXBlLCBkb3Vi
bGU+Ojp2YWx1ZSAmJiBzdGQ6OmlzX3NhbWU8U291cmNlVHlwZSwgZmxvYXQ+Ojp2YWx1ZSkgewor
ICAgICAgICAvLyBJZiB0aGUgc291cmNlIGlzIGZsb2F0IGFuZCB0YXJnZXQgaXMgZG91YmxlLCB0
aGUgaW5wdXQgb2YgdGhvc2UgY2FzZXMgaGFzIGxvc3QgYml0cyBpbiBmbG9hdC4KKyAgICAgICAg
Ly8gSW4gdGhhdCBjYXNlLCB3ZSBhbHNvIHJvdW5kIHRoZSBleHBlY3RhdGlvbiB0byBmbG9hdC4K
KyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNl
VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpKSwgc3RhdGljX2Nhc3Q8
VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpKSk7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+
KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1p
bigpKSAtIDEpLCBzdGF0aWNfY2FzdDxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgLSAxKSk7CisgICAgICAgIEVY
UEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSAtIDEpLCBzdGF0aWNfY2FzdDxUYXJnZXRU
eXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+
OjptaW4oKSkgLSAxKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88
VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWF4KCkpKTsKKyAgICAgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0
VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpIC0gMSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KHN0ZDo6bnVtZXJpY19saW1p
dHM8aW50MzJfdD46Om1pbigpKSAtIDEpOworICAgICAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJn
ZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMy
X3Q+OjptaW4oKSkgLSAxKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxpbnQzMl90Pjo6bWluKCkpIC0gMSk7CisgICAgfQorCisgICAgLy8gQXQgdGhlIGxpbWl0
LgorICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8
VGFyZ2V0VHlwZT46Om1heCgpKSwgc3RkOjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4
KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KC1zdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+OjptYXgoKSksIC1zdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+
OjptYXgoKSk7CisKKyAgICAvLyBBdCBFcHNpbG9uIGZyb20gdGhlIGxpbWl0LgorICAgIFRhcmdl
dFR5cGUgZXBzaWxvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46OmVwc2lsb24o
KTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRz
PFRhcmdldFR5cGU+OjptYXgoKSAtIGVwc2lsb24pLCBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdl
dFR5cGU+OjptYXgoKSAtIGVwc2lsb24pOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5
cGU+KC1zdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+OjptYXgoKSArIGVwc2lsb24pLCAt
c3RkOjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkgKyBlcHNpbG9uKTsKKworICAg
IC8vIEluZmluaXR5LgorICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8U291cmNlVHlwZT46OmluZmluaXR5KCkpLCBzdGQ6Om51bWVyaWNfbGltaXRz
PFRhcmdldFR5cGU+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4o
LXN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46OmluZmluaXR5KCkpLCAtc3RkOjpudW1l
cmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpOworfQorCitURVNUKFdURiwgY2xhbXBGbG9h
dGluZ1BvaW50VG9GbG9hdGluZ1BvaW50KQoreworICAgIHRlc3RDbGFtcEZsb2F0aW5nUG9pbnRU
b0Zsb2F0aW5nUG9pbnQ8ZmxvYXQsIGZsb2F0PigpOworICAgIHRlc3RDbGFtcEZsb2F0aW5nUG9p
bnRUb0Zsb2F0aW5nUG9pbnQ8ZG91YmxlLCBkb3VibGU+KCk7CisKKyAgICB0ZXN0Q2xhbXBGbG9h
dGluZ1BvaW50VG9GbG9hdGluZ1BvaW50PGRvdWJsZSwgZmxvYXQ+KCk7CisgICAgdGVzdENsYW1w
RmxvYXRpbmdQb2ludFRvRmxvYXRpbmdQb2ludDxmbG9hdCwgZG91YmxlPigpOworCisgICAgLy8g
TGFyZ2UgZG91YmxlIGludG8gc21hbGxlciBmbG9hdC4KKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxm
bG9hdD4oc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4
KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEo
Y2xhbXBUbzxmbG9hdD4oLXN0YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xpbWl0czxm
bG9hdD46Om1heCgpKSksIC1zdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPGZsb2F0PihzdGF0aWNfY2FzdDxkb3VibGU+KHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjptYXgoKSkgKyAxKSwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxmbG9hdD4oLXN0YXRpY19jYXN0PGRvdWJs
ZT4oc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSAtIDEpLCAtc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxmbG9hdD4oc3Rk
OjpudW1lcmljX2xpbWl0czxkb3VibGU+OjptYXgoKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8Zmxv
YXQ+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88ZmxvYXQ+KC1zdGQ6Om51bWVyaWNf
bGltaXRzPGRvdWJsZT46Om1heCgpKSwgLXN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgo
KSk7CisKKyAgICBmbG9hdCBmbG9hdEVzcGlsb24gPSBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0
Pjo6ZXBzaWxvbigpOworICAgIGRvdWJsZSBkb3VibGVFc3BpbG9uID0gc3RkOjpudW1lcmljX2xp
bWl0czxkb3VibGU+OjplcHNpbG9uKCk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88ZmxvYXQ+KHN0
YXRpY19jYXN0PGRvdWJsZT4oc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSArIGRv
dWJsZUVzcGlsb24pLCBzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpOworICAgIEVY
UEVDVF9FUShjbGFtcFRvPGZsb2F0PihzdGF0aWNfY2FzdDxkb3VibGU+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjptYXgoKSkgLSBkb3VibGVFc3BpbG9uKSwgc3RkOjpudW1lcmljX2xpbWl0
czxmbG9hdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxmbG9hdD4oc3RhdGljX2Nh
c3Q8ZG91YmxlPihzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpICsgZmxvYXRFc3Bp
bG9uKSwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEo
Y2xhbXBUbzxmbG9hdD4oc3RhdGljX2Nhc3Q8ZG91YmxlPihzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6bWF4KCkpIC0gZmxvYXRFc3BpbG9uKSwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46
Om1heCgpIC0gZmxvYXRFc3BpbG9uKTsKK30KKyNlbmRpZiAvLyAhQ09NUElMRVIoTVNWQykKKwor
dGVtcGxhdGU8dHlwZW5hbWUgRmxvYXRpbmdQb2ludFR5cGU+CitzdGF0aWMgdm9pZCB0ZXN0Q2xh
bXBGbG9hdGluZ1BvaW50VG9JbnRlZ2VyKCkKK3sKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQz
Ml90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oMCkpLCAwKTsKKyAgICBFWFBFQ1Rf
RVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oMSkpLCAx
KTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1Bv
aW50VHlwZT4oLTEpKSwgLTEpOworICAgIGlmIChzdGQ6OmlzX3NhbWU8RmxvYXRpbmdQb2ludFR5
cGUsIGRvdWJsZT46OnZhbHVlKQorICAgICAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90Pihz
dGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpIC0gMS5mKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkgLSAx
KTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19j
YXN0PEZsb2F0aW5nUG9pbnRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgo
KSkgLSAxLmYpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQ
RUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8
aW50MzJfdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNf
Y2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4
KCkpICsgMS5mKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworCisgICAg
aWYgKHN0ZDo6aXNfc2FtZTxGbG9hdGluZ1BvaW50VHlwZSwgZG91YmxlPjo6dmFsdWUpCisgICAg
ICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRU
eXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgKyAxLmYpLCBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSArIDEpOworICAgIGVsc2UKKyAgICAgICAgRVhQ
RUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0
ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSArIDEuZiksIHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1pbigpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90Pihz
dGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWluKCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpOworICAgIEVY
UEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBlPihz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSkgLSAxLmYpLCBzdGQ6Om51bWVyaWNf
bGltaXRzPGludDMyX3Q+OjptaW4oKSk7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90
PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50
MzJfdD46Om1heCgpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKKyAg
ICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlw
ZT4oc3RkOjpudW1lcmljX2xpbWl0czx1aW50MzJfdD46Om1heCgpKSArIDEuZiksIHN0ZDo6bnVt
ZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQz
Ml90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czx1
aW50MzJfdD46Om1pbigpKSksIDAuZik7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90
PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2
NF90Pjo6bWF4KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWF4KCkpOworICAg
IEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PEZsb2F0aW5nUG9pbnRUeXBl
PihzdGQ6Om51bWVyaWNfbGltaXRzPGludDY0X3Q+OjptYXgoKSkgKyAxLmYpLCBzdGQ6Om51bWVy
aWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJf
dD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50
NjRfdD46Om1pbigpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKTsKKyAg
ICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlw
ZT4oc3RkOjpudW1lcmljX2xpbWl0czxpbnQ2NF90Pjo6bWluKCkpIC0gMS5mKSwgc3RkOjpudW1l
cmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkpOworCisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50
MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8
dWludDY0X3Q+OjptYXgoKSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7
CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2lu
dFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDY0X3Q+OjptYXgoKSkgKyAxLmYpLCBzdGQ6
Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88
aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1p
dHM8dWludDY0X3Q+OjptaW4oKSkpLCAwLmYpOworCisgICAgRmxvYXRpbmdQb2ludFR5cGUgZXBz
aWxvbiA9IHN0ZDo6bnVtZXJpY19saW1pdHM8RmxvYXRpbmdQb2ludFR5cGU+OjplcHNpbG9uKCk7
CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2lu
dFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgpKSAtIGVwc2lsb24pLCBz
dGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1w
VG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19s
aW1pdHM8aW50MzJfdD46Om1heCgpKSArIGVwc2lsb24pLCBzdGQ6Om51bWVyaWNfbGltaXRzPGlu
dDMyX3Q+OjptYXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nh
c3Q8RmxvYXRpbmdQb2ludFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigp
KSAtIGVwc2lsb24pLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSk7CisgICAg
RVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8RmxvYXRpbmdQb2ludFR5cGU+
KHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1pbigpKSArIGVwc2lsb24pLCBzdGQ6Om51
bWVyaWNfbGltaXRzPGludDMyX3Q+OjptaW4oKSk7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxp
bnQzMl90PihzdGF0aWNfY2FzdDxGbG9hdGluZ1BvaW50VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0
czxGbG9hdGluZ1BvaW50VHlwZT46OmluZmluaXR5KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxp
bnQzMl90Pjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19j
YXN0PEZsb2F0aW5nUG9pbnRUeXBlPigtc3RkOjpudW1lcmljX2xpbWl0czxGbG9hdGluZ1BvaW50
VHlwZT46OmluZmluaXR5KCkpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90Pjo6bWluKCkp
OworfQorCitURVNUKFdURiwgY2xhbXBGbG9hdFRvSW50KQoreworICAgIHRlc3RDbGFtcEZsb2F0
aW5nUG9pbnRUb0ludGVnZXI8ZmxvYXQ+KCk7CisgICAgdGVzdENsYW1wRmxvYXRpbmdQb2ludFRv
SW50ZWdlcjxkb3VibGU+KCk7CisKKyAgICAvLyAyKioyNCA9IDE2Nzc3MjE2LCB0aGUgbGFyZ2Vz
dCBpbnRlZ2VyIHJlcHJlc2VudGFibGUgZXhhY3RseSBhcyBmbG9hdC4KKyAgICBFWFBFQ1RfRVEo
Y2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxmbG9hdD4oMTY3NzcyMTUpKSwgMTY3NzcyMTUp
OworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PGZsb2F0PigxNjc3
NzIxNikpLCAxNjc3NzIxNik7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGlj
X2Nhc3Q8ZmxvYXQ+KDE2Nzc3MjE3KSksIDE2Nzc3MjE2KTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBU
bzxpbnQzMl90PihzdGF0aWNfY2FzdDxkb3VibGU+KDE2Nzc3MjE2KSksIDE2Nzc3MjE2KTsKKyAg
ICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2FzdDxkb3VibGU+KDE2Nzc3MjE3
KSksIDE2Nzc3MjE3KTsKKworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDE2X3Q+KHN0YXRpY19j
YXN0PGZsb2F0PigxNjc3NzIxNSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDE2X3Q+OjptYXgo
KSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MTZfdD4oc3RhdGljX2Nhc3Q8ZmxvYXQ+KDE2
Nzc3MjE2KSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MTZfdD46Om1heCgpKTsKKyAgICBFWFBF
Q1RfRVEoY2xhbXBUbzxpbnQxNl90PihzdGF0aWNfY2FzdDxmbG9hdD4oMTY3NzcyMTcpKSwgc3Rk
OjpudW1lcmljX2xpbWl0czxpbnQxNl90Pjo6bWF4KCkpOworCisgICAgLy8gMioqNTMgPSA5MDA3
MTk5MjU0NzQwOTkyLCB0aGUgbGFyZ2VzdCBpbnRlZ2VyIHJlcHJlc2VudGFibGUgZXhhY3RseSBh
cyBkb3VibGUuCisgICAgRVhQRUNUX0VRKGNsYW1wVG88dWludDY0X3Q+KHN0YXRpY19jYXN0PGRv
dWJsZT4oOTAwNzE5OTI1NDc0MDk5MSkpLCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oOTAwNzE5OTI1
NDc0MDk5MSkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPHVpbnQ2NF90PihzdGF0aWNfY2FzdDxk
b3VibGU+KDkwMDcxOTkyNTQ3NDA5OTIpKSwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KDkwMDcxOTky
NTQ3NDA5OTIpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzx1aW50NjRfdD4oc3RhdGljX2Nhc3Q8
ZG91YmxlPig5MDA3MTk5MjU0NzQwOTkzKSksIHN0YXRpY19jYXN0PHVpbnQ2NF90Pig5MDA3MTk5
MjU0NzQwOTkyKSk7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxpbnQzMl90PihzdGF0aWNfY2Fz
dDxkb3VibGU+KDkwMDcxOTkyNTQ3NDA5OTEpKSwgc3RkOjpudW1lcmljX2xpbWl0czxpbnQzMl90
Pjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPGludDMyX3Q+KHN0YXRpY19jYXN0PGRv
dWJsZT4oOTAwNzE5OTI1NDc0MDk5MikpLCBzdGQ6Om51bWVyaWNfbGltaXRzPGludDMyX3Q+Ojpt
YXgoKSk7CisgICAgRVhQRUNUX0VRKGNsYW1wVG88aW50MzJfdD4oc3RhdGljX2Nhc3Q8ZG91Ymxl
Pig5MDA3MTk5MjU0NzQwOTkzKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8aW50MzJfdD46Om1heCgp
KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVGFyZ2V0VHlwZSwgdHlwZW5hbWUgU291cmNlVHlw
ZT4KK3N0YXRpYyB2b2lkIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnMoKQoreworICAgIEVYUEVD
VF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDApKSwgc3Rh
dGljX2Nhc3Q8VGFyZ2V0VHlwZT4oMCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5
cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KDEpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4o
MSkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJj
ZVR5cGU+KC0xKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46OmlzX3NpZ25lZCA/
IHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KC0xKSA6IHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0
VHlwZT46Om1heCgpKTsKKworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRp
Y19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1pbigp
KSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1pbigpKTsKKyAgICBFWFBFQ1Rf
RVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVy
aWNfbGltaXRzPFRhcmdldFR5cGU+OjptYXgoKSkpLCBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdl
dFR5cGU+OjptYXgoKSk7CisKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGQ6
Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptaW4oKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8
VGFyZ2V0VHlwZT46Om1pbigpKTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihz
dGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptYXgoKSksIHN0ZDo6bnVtZXJpY19saW1p
dHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKK30KKworVEVTVChXVEYsIGNsYW1wU2FtZVNpZ25JbnRl
Z2VycykKK3sKKyAgICB0ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPGNoYXIsIGNoYXI+KCk7Cisg
ICAgdGVzdENsYW1wU2FtZVNpZ25JbnRlZ2Vyczx1bnNpZ25lZCBjaGFyLCB1bnNpZ25lZCBjaGFy
PigpOworICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8Y2hhciwgaW50MzJfdD4oKTsKKyAg
ICB0ZXN0Q2xhbXBTYW1lU2lnbkludGVnZXJzPHVuc2lnbmVkIGNoYXIsIHVpbnQzMl90PigpOwor
ICAgIHRlc3RDbGFtcFNhbWVTaWduSW50ZWdlcnM8Y2hhciwgaW50NjRfdD4oKTsKKyAgICB0ZXN0
Q2xhbXBTYW1lU2lnbkludGVnZXJzPHVuc2lnbmVkIGNoYXIsIHVpbnQ2NF90PigpOworCisgICAg
dGVzdENsYW1wU2FtZVNpZ25JbnRlZ2VyczxpbnQzMl90LCBpbnQzMl90PigpOworICAgIHRlc3RD
bGFtcFNhbWVTaWduSW50ZWdlcnM8dWludDMyX3QsIHVpbnQzMl90PigpOworICAgIHRlc3RDbGFt
cFNhbWVTaWduSW50ZWdlcnM8aW50MzJfdCwgaW50NjRfdD4oKTsKKyAgICB0ZXN0Q2xhbXBTYW1l
U2lnbkludGVnZXJzPHVpbnQzMl90LCB1aW50NjRfdD4oKTsKKyAgICB0ZXN0Q2xhbXBTYW1lU2ln
bkludGVnZXJzPGludDE2X3QsIGludDY0X3Q+KCk7CisgICAgdGVzdENsYW1wU2FtZVNpZ25JbnRl
Z2Vyczx1aW50MTZfdCwgdWludDY0X3Q+KCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFRhcmdl
dFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+CitzdGF0aWMgdm9pZCB0ZXN0Q2xhbXBVbnNpZ25l
ZFRvU2lnbmVkKCkKK3sKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNf
Y2FzdDxTb3VyY2VUeXBlPigwKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDApKTsKKyAgICBF
WFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigxKSks
IHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDEpKTsKKworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRh
cmdldFR5cGU+KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFy
Z2V0VHlwZT46Om1heCgpKSAtIDEpLCBzdGQ6Om51bWVyaWNfbGltaXRzPFRhcmdldFR5cGU+Ojpt
YXgoKSAtIDEpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0YXRpY19jYXN0
PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKSksIHN0
ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICBFWFBFQ1RfRVEoY2xh
bXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPihzdGQ6Om51bWVyaWNfbGlt
aXRzPFRhcmdldFR5cGU+OjptYXgoKSkgKyAxKSwgc3RkOjpudW1lcmljX2xpbWl0czxUYXJnZXRU
eXBlPjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6bnVt
ZXJpY19saW1pdHM8U291cmNlVHlwZT46Om1heCgpKSwgc3RkOjpudW1lcmljX2xpbWl0czxUYXJn
ZXRUeXBlPjo6bWF4KCkpOworICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6
bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46Om1heCgpIC0gMSksIHN0ZDo6bnVtZXJpY19saW1p
dHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKK30KKworVEVTVChXVEYsIGNsYW1wVW5zaWduZWRUb1Np
Z25lZCkKK3sKKyAgICB0ZXN0Q2xhbXBVbnNpZ25lZFRvU2lnbmVkPGNoYXIsIHVuc2lnbmVkIGNo
YXI+KCk7CisgICAgdGVzdENsYW1wVW5zaWduZWRUb1NpZ25lZDxjaGFyLCB1aW50MzJfdD4oKTsK
KyAgICB0ZXN0Q2xhbXBVbnNpZ25lZFRvU2lnbmVkPGludDMyX3QsIHVpbnQzMl90PigpOworICAg
IHRlc3RDbGFtcFVuc2lnbmVkVG9TaWduZWQ8aW50NjRfdCwgdWludDY0X3Q+KCk7CisgICAgdGVz
dENsYW1wVW5zaWduZWRUb1NpZ25lZDxpbnQzMl90LCB1aW50NjRfdD4oKTsKKyAgICB0ZXN0Q2xh
bXBVbnNpZ25lZFRvU2lnbmVkPGludDE2X3QsIHVpbnQzMl90PigpOworICAgIHRlc3RDbGFtcFVu
c2lnbmVkVG9TaWduZWQ8aW50MTZfdCwgdWludDY0X3Q+KCk7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFRhcmdldFR5cGUsIHR5cGVuYW1lIFNvdXJjZVR5cGU+CitzdGF0aWMgdm9pZCB0ZXN0Q2xh
bXBTaWduZWRUb1Vuc2lnbmVkKCkKK3sKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBl
PihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigwKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDAp
KTsKKyAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VU
eXBlPigxKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDEpKTsKKyAgICBFWFBFQ1RfRVEoY2xh
bXBUbzxUYXJnZXRUeXBlPihzdGF0aWNfY2FzdDxTb3VyY2VUeXBlPigtMSkpLCBzdGF0aWNfY2Fz
dDxUYXJnZXRUeXBlPigwKSk7CisKKyAgICBpZiAoc2l6ZW9mKFRhcmdldFR5cGUpIDwgc2l6ZW9m
KFNvdXJjZVR5cGUpKSB7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+KHN0
YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1p
bigpKSksIHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDApKTsKKyAgICAgICAgRVhQRUNUX0VRKGNs
YW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4oc3RkOjpudW1lcmljX2xp
bWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpIC0gMSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0
VHlwZT46Om1heCgpIC0gMSk7CisgICAgICAgIEVYUEVDVF9FUShjbGFtcFRvPFRhcmdldFR5cGU+
KHN0YXRpY19jYXN0PFNvdXJjZVR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46
Om1heCgpKSksIHN0ZDo6bnVtZXJpY19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICAg
ICAgRVhQRUNUX0VRKGNsYW1wVG88VGFyZ2V0VHlwZT4oc3RhdGljX2Nhc3Q8U291cmNlVHlwZT4o
c3RkOjpudW1lcmljX2xpbWl0czxUYXJnZXRUeXBlPjo6bWF4KCkpICsgMSksIHN0ZDo6bnVtZXJp
Y19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICB9CisKKyAgICBFWFBFQ1RfRVEoY2xh
bXBUbzxUYXJnZXRUeXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptaW4oKSks
IHN0YXRpY19jYXN0PFRhcmdldFR5cGU+KDApKTsKKyAgICBpZiAoc2l6ZW9mKFRhcmdldFR5cGUp
IDwgc2l6ZW9mKFNvdXJjZVR5cGUpKQorICAgICAgICBFWFBFQ1RfRVEoY2xhbXBUbzxUYXJnZXRU
eXBlPihzdGQ6Om51bWVyaWNfbGltaXRzPFNvdXJjZVR5cGU+OjptYXgoKSksIHN0ZDo6bnVtZXJp
Y19saW1pdHM8VGFyZ2V0VHlwZT46Om1heCgpKTsKKyAgICBlbHNlCisgICAgICAgIEVYUEVDVF9F
UShjbGFtcFRvPFRhcmdldFR5cGU+KHN0ZDo6bnVtZXJpY19saW1pdHM8U291cmNlVHlwZT46Om1h
eCgpKSwgc3RhdGljX2Nhc3Q8VGFyZ2V0VHlwZT4oc3RkOjpudW1lcmljX2xpbWl0czxTb3VyY2VU
eXBlPjo6bWF4KCkpKTsKK30KKworVEVTVChXVEYsIGNsYW1wU2lnbmVkVG9VbnNpZ25lZCkKK3sK
KyAgICB0ZXN0Q2xhbXBTaWduZWRUb1Vuc2lnbmVkPHVuc2lnbmVkIGNoYXIsIGNoYXI+KCk7Cisg
ICAgdGVzdENsYW1wU2lnbmVkVG9VbnNpZ25lZDx1bnNpZ25lZCBjaGFyLCBpbnQzMl90PigpOwor
ICAgIHRlc3RDbGFtcFNpZ25lZFRvVW5zaWduZWQ8dWludDMyX3QsIGludDMyX3Q+KCk7CisgICAg
dGVzdENsYW1wU2lnbmVkVG9VbnNpZ25lZDx1aW50NjRfdCwgaW50NjRfdD4oKTsKKyAgICB0ZXN0
Q2xhbXBTaWduZWRUb1Vuc2lnbmVkPHVpbnQzMl90LCBpbnQ2NF90PigpOworICAgIHRlc3RDbGFt
cFNpZ25lZFRvVW5zaWduZWQ8dWludDE2X3QsIGludDMyX3Q+KCk7CisgICAgdGVzdENsYW1wU2ln
bmVkVG9VbnNpZ25lZDx1aW50MTZfdCwgaW50NjRfdD4oKTsKK30KKwogVEVTVChXVEYsIHJvdW5k
VXBUb1Bvd2VyT2ZUd28pCiB7CiAgICAgRVhQRUNUX0VRKFdURjo6cm91bmRVcFRvUG93ZXJPZlR3
byhVSU5UMzJfTUFYKSwgMFUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>