<?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>85890</bug_id>
          
          <creation_ts>2012-05-08 09:17:33 -0700</creation_ts>
          <short_desc>Element: isURLAttribute() should take a const Attribute&amp;.</short_desc>
          <delta_ts>2012-05-08 09:26:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>618555</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-05-08 09:17:33 -0700</bug_when>
    <thetext>We should enforce the const-ness of Attribute here at compile-time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618557</commentid>
    <comment_count>1</comment_count>
      <attachid>140727</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-05-08 09:18:25 -0700</bug_when>
    <thetext>Created attachment 140727
QBasic patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>618566</commentid>
    <comment_count>2</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-05-08 09:26:52 -0700</bug_when>
    <thetext>Committed r116430: &lt;http://trac.webkit.org/changeset/116430&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140727</attachid>
            <date>2012-05-08 09:18:25 -0700</date>
            <delta_ts>2012-05-08 09:20:02 -0700</delta_ts>
            <desc>QBasic patch</desc>
            <filename>bug-85890.diff</filename>
            <type>text/plain</type>
            <size>39390</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MWZlY2M4Li43YTRjMTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTAw
IEBACiAyMDEyLTA1LTA4ICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAorICAg
ICAgICBFbGVtZW50OiBpc1VSTEF0dHJpYnV0ZSgpIHNob3VsZCB0YWtlIGEgY29uc3QgQXR0cmli
dXRlJi4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvODU4OTA+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIGlzVVJMQXR0cmlidXRl
KEF0dHJpYnV0ZSopIHRvIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIHRvIGVuZm9y
Y2UKKyAgICAgICAgdGhlIGZhY3QgdGhhdCBpdCBkb2Vzbid0IG11dGF0ZSB0aGUgQXR0cmlidXRl
IGF0IGNvbXBpbGUtdGltZS4KKyAgICAgICAgQWxzbyBzcHJpbmtsZSBPVkVSUklERSB3aGlsZSB3
ZSdyZSBhdCBpdC4KKworICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVsZW1lbnQ6OmdldFVSTEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjpnZXROb25FbXB0eVVSTEF0dHJpYnV0ZSk6CisgICAgICAgICogZG9tL0VsZW1lbnQuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBlZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRRdW90ZWRVUkxBdHRyaWJ1dGVWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQXR0cmlidXRlKToKKyAgICAgICAgKiBlZGl0aW5n
L21hcmt1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb21wbGV0ZVVSTHMpOgorICAgICAgICAq
IGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hv
ckVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVt
ZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MQmFzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTEJhc2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9I
VE1MQmFzZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MQm9keUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAg
ICAgKiBodG1sL0hUTUxCb2R5RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEJ1dHRvbkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEJ1dHRvbkVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxCdXR0b25FbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVtYmVkRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEVtYmVkRWxlbWVudC5o
OgorICAgICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxGb3JtRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRNTEZv
cm1FbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MRnJhbWVFbGVtZW50QmFzZTo6aXNVUkxBdHRyaWJ1dGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuaDoKKyAgICAgICAgKEhUTUxGcmFt
ZUVsZW1lbnRCYXNlKToKKyAgICAgICAgKiBodG1sL0hUTUxIdG1sRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MSHRtbEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAg
KiBodG1sL0hUTUxIdG1sRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TGlua0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRt
bC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MTW9kRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTW9kRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAg
ICAgICAqIGh0bWwvSFRNTE1vZEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxPYmplY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxPYmplY3RFbGVtZW50Ojppc1VSTEF0
dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oOgorICAgICAgICAq
IGh0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUGFyYW1F
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MUGFyYW1FbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9IVE1MUXVvdGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxRdW90ZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hU
TUxRdW90ZUVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFNv
dXJjZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNvdXJjZUVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxTb3VyY2VFbGVtZW50Lmg6CisgICAg
ICAgICogaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MVGFibGVDZWxsRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgorICAgICAgICAqIGh0bWwvSFRN
TFRhYmxlQ2VsbEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRhYmxlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUpOgor
ICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRy
YWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50Ojppc1VS
TEF0dHJpYnV0ZSk6CisgICAgICAgICogaHRtbC9IVE1MVHJhY2tFbGVtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NW
R1NjcmlwdEVsZW1lbnQuaDoKKworMjAxMi0wNS0wOCAgQW5kcmVhcyBLbGluZyAgPGtsaW5nQHdl
YmtpdC5vcmc+CisKICAgICAgICAgRWxlbWVudDogTWVyZ2UgaWRBdHRyaWJ1dGVDaGFuZ2VkKCkg
aW50byBhdHRyaWJ1dGVDaGFuZ2VkKCkuCiAgICAgICAgIDxodHRwOi8vd2Via2l0Lm9yZy9iLzg1
ODg1PgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNjIwYzNhZS4uMTNjYjA2ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcApAQCAtODY2LDExICs4NjYsNiBAQCB2b2lkIEVsZW1lbnQ6OmNyZWF0
ZUF0dHJpYnV0ZURhdGEoKSBjb25zdAogICAgIG1fYXR0cmlidXRlRGF0YSA9IEVsZW1lbnRBdHRy
aWJ1dGVEYXRhOjpjcmVhdGUoKTsKIH0KIAotYm9vbCBFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShB
dHRyaWJ1dGUqKSBjb25zdAotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogY29uc3QgUXVhbGlm
aWVkTmFtZSYgRWxlbWVudDo6aW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gc3JjQXR0cjsKQEAgLTE4NDEsNyArMTgzNiw3IEBAIEtVUkwgRWxlbWVudDo6Z2V0
VVJMQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpIGNvbnN0CiAjaWYgIUFTU0VS
VF9ESVNBQkxFRAogICAgIGlmIChtX2F0dHJpYnV0ZURhdGEpIHsKICAgICAgICAgaWYgKEF0dHJp
YnV0ZSogYXR0cmlidXRlID0gZ2V0QXR0cmlidXRlSXRlbShuYW1lKSkKLSAgICAgICAgICAgIEFT
U0VSVChpc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpKTsKKyAgICAgICAgICAgIEFTU0VSVChpc1VS
TEF0dHJpYnV0ZSgqYXR0cmlidXRlKSk7CiAgICAgfQogI2VuZGlmCiAgICAgcmV0dXJuIGRvY3Vt
ZW50KCktPmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhnZXRB
dHRyaWJ1dGUobmFtZSkpKTsKQEAgLTE4NTIsNyArMTg0Nyw3IEBAIEtVUkwgRWxlbWVudDo6Z2V0
Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKICNp
ZiAhQVNTRVJUX0RJU0FCTEVECiAgICAgaWYgKG1fYXR0cmlidXRlRGF0YSkgewogICAgICAgICBp
ZiAoQXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBnZXRBdHRyaWJ1dGVJdGVtKG5hbWUpKQotICAgICAg
ICAgICAgQVNTRVJUKGlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSkpOworICAgICAgICAgICAgQVNT
RVJUKGlzVVJMQXR0cmlidXRlKCphdHRyaWJ1dGUpKTsKICAgICB9CiAjZW5kaWYKICAgICBTdHJp
bmcgdmFsdWUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoZ2V0QXR0cmlidXRl
KG5hbWUpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDZmNzMwMjYuLjFjY2ZmNGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuaApAQCAtMjgxLDcgKzI4MSw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBhY2Nlc3NLZXlBY3Rpb24oYm9vbCAvKnNlbmRUb0FueUV2ZW50Ki8pIHsgfQogCi0gICAgdmly
dHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgS1VSTCBnZXRVUkxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNv
bnN0OwogICAgIEtVUkwgZ2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9NYXJrdXBBY2N1
bXVsYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNw
cAppbmRleCAxNTc1MmJjLi44MDA1MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL01hcmt1cEFjY3VtdWxhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL01h
cmt1cEFjY3VtdWxhdG9yLmNwcApAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgTWFya3VwQWNjdW11
bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYsIEVsZW1lbnQqLCBO
YW1lc3BhCiAKIHZvaWQgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFF1b3RlZFVSTEF0dHJpYnV0
ZVZhbHVlKFN0cmluZ0J1aWxkZXImIHJlc3VsdCwgY29uc3QgRWxlbWVudCogZWxlbWVudCwgY29u
c3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmlzVVJMQXR0
cmlidXRlKGNvbnN0X2Nhc3Q8QXR0cmlidXRlKj4oJmF0dHJpYnV0ZSkpKTsKKyAgICBBU1NFUlQo
ZWxlbWVudC0+aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKSk7CiAgICAgY29uc3QgU3RyaW5nIHJl
c29sdmVkVVJMU3RyaW5nID0gcmVzb2x2ZVVSTElmTmVlZGVkKGVsZW1lbnQsIGF0dHJpYnV0ZS52
YWx1ZSgpKTsKICAgICBVQ2hhciBxdW90ZUNoYXIgPSAnIic7CiAgICAgU3RyaW5nIHN0cmlwcGVk
VVJMU3RyaW5nID0gcmVzb2x2ZWRVUkxTdHJpbmcuc3RyaXBXaGl0ZVNwYWNlKCk7CkBAIC00MTks
NyArNDE5LDcgQEAgdm9pZCBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQXR0cmlidXRlKFN0cmlu
Z0J1aWxkZXImIHJlc3VsdCwgRWxlbWVudCogZWxlbWVudCwKIAogICAgIHJlc3VsdC5hcHBlbmQo
Jz0nKTsKIAotICAgIGlmIChlbGVtZW50LT5pc1VSTEF0dHJpYnV0ZShjb25zdF9jYXN0PEF0dHJp
YnV0ZSo+KCZhdHRyaWJ1dGUpKSkKKyAgICBpZiAoZWxlbWVudC0+aXNVUkxBdHRyaWJ1dGUoYXR0
cmlidXRlKSkKICAgICAgICAgYXBwZW5kUXVvdGVkVVJMQXR0cmlidXRlVmFsdWUocmVzdWx0LCBl
bGVtZW50LCBhdHRyaWJ1dGUpOwogICAgIGVsc2UgewogICAgICAgICByZXN1bHQuYXBwZW5kKCci
Jyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXggYmI0OWIzNy4uZDJjODMzYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHN0YXRpYyB2b2lk
IGNvbXBsZXRlVVJMcyhOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIGJhc2VVUkwpCiAgICAgICAg
ICAgICB1bnNpZ25lZCBsZW5ndGggPSBlLT5hdHRyaWJ1dGVDb3VudCgpOwogICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICAg
QXR0cmlidXRlKiBhdHRyaWJ1dGUgPSBlLT5hdHRyaWJ1dGVJdGVtKGkpOwotICAgICAgICAgICAg
ICAgIGlmIChlLT5pc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpKQorICAgICAgICAgICAgICAgIGlm
IChlLT5pc1VSTEF0dHJpYnV0ZSgqYXR0cmlidXRlKSkKICAgICAgICAgICAgICAgICAgICAgY2hh
bmdlcy5hcHBlbmQoQXR0cmlidXRlQ2hhbmdlKGUsIGF0dHJpYnV0ZS0+bmFtZSgpLCBLVVJMKHBh
cnNlZEJhc2VVUkwsIGF0dHJpYnV0ZS0+dmFsdWUoKSkuc3RyaW5nKCkpKTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApp
bmRleCA0OTYwNzQ3Li5hNWIzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcApAQCAtMjQ1LDkgKzI0NSw5IEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmFj
Y2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKICAgICBkaXNwYXRjaFNpbXVsYXRl
ZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7CiB9CiAKLWJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKK2Jvb2wgSFRNTEFuY2hvckVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAog
ewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGF0dHIpOworICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSgpID09IGhyZWZB
dHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiBib29s
IEhUTUxBbmNob3JFbGVtZW50OjpjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmgKaW5kZXggMWZlYzY1OC4uYmFlYmRjNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuaApAQCAtMTEyLDcgKzExMiw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0QWN0aXZlKGJvb2wgYWN0aXZlID0gdHJ1ZSwgYm9vbCBwYXVzZSA9
IGZhbHNlKTsKICAgICB2aXJ0dWFsIHZvaWQgYWNjZXNzS2V5QWN0aW9uKGJvb2wgc2VuZE1vdXNl
RXZlbnRzKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29u
c3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNv
bnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBjYW5TdGFydFNlbGVjdGlvbigpIGNvbnN0
OwogICAgIHZpcnR1YWwgU3RyaW5nIHRhcmdldCgpIGNvbnN0OwogICAgIHZpcnR1YWwgc2hvcnQg
dGFiSW5kZXgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJh
c2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcApp
bmRleCAzYzFjM2YzLi5iNzZiNjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxCYXNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1l
bnQuY3BwCkBAIC02NSw5ICs2NSw5IEBAIHZvaWQgSFRNTEJhc2VFbGVtZW50OjpyZW1vdmVkRnJv
bShOb2RlKiBpbnNlcnRpb25Qb2ludCkKICAgICAgICAgZG9jdW1lbnQoKS0+cHJvY2Vzc0Jhc2VF
bGVtZW50KCk7CiB9CiAKLWJvb2wgSFRNTEJhc2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRy
aWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKK2Jvb2wgSFRNTEJhc2VFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0
cmlidXRlLT5uYW1lKCkgPT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRl
KGF0dHJpYnV0ZSk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gaHJlZkF0dHIgfHwg
SFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIFN0cmluZyBIVE1M
QmFzZUVsZW1lbnQ6OnRhcmdldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCYXNlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQmFzZUVsZW1l
bnQuaAppbmRleCAyMzM0ZDdlLi45NzM0M2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxCYXNlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJhc2VF
bGVtZW50LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHJpdmF0ZToKICAgICBIVE1MQmFzZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIFN0cmluZyB0
YXJnZXQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRy
aWJ1dGUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIEluc2VydGlvbk5vdGlmaWNhdGlvblJlcXVl
c3QgaW5zZXJ0ZWRJbnRvKE5vZGUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3Zl
ZEZyb20oTm9kZSopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MQm9keUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQu
Y3BwCmluZGV4IGJiNDBiMDAuLjRjMzg2MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEJvZHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCb2R5
RWxlbWVudC5jcHAKQEAgLTE4Myw5ICsxODMsOSBAQCB2b2lkIEhUTUxCb2R5RWxlbWVudDo6ZGlk
Tm90aWZ5RGVzY2VuZGFudEluc2VyZXRpb25zKE5vZGUqIGluc2VydGlvblBvaW50KQogICAgICAg
ICB2aWV3LT5zY2hlZHVsZVJlbGF5b3V0KCk7CiB9CiAKLWJvb2wgSFRNTEJvZHlFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0Citib29sIEhUTUxCb2R5RWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBIVE1MRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoYXR0cik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gYmFj
a2dyb3VuZEF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9
CiAKIGJvb2wgSFRNTEJvZHlFbGVtZW50OjpzdXBwb3J0c0ZvY3VzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxCb2R5RWxlbWVudC5oCmluZGV4IGIxOGJkNmQuLmJkZWJkYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJvZHlFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuaApAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgSW5zZXJ0aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBpbnNlcnRlZEludG8oTm9k
ZSopIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkaWROb3RpZnlEZXNjZW5kYW50SW5zZXJl
dGlvbnMoTm9kZSopIE9WRVJSSURFOwogICAgIAotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJp
YnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUo
Y29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgCiAgICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRm9jdXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25F
bGVtZW50LmNwcAppbmRleCBkOTFiZDQ5Li4yNGVlNzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmNwcApAQCAtMTc3LDkgKzE3Nyw5IEBAIHZvaWQgSFRNTEJ1dHRv
bkVsZW1lbnQ6OmFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2ZW50cykKICAgICBkaXNw
YXRjaFNpbXVsYXRlZENsaWNrKDAsIHNlbmRNb3VzZUV2ZW50cyk7CiB9CiAKLWJvb2wgSFRNTEJ1
dHRvbkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QKK2Jvb2wg
SFRNTEJ1dHRvbkVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmli
dXRlKSBjb25zdAogewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0dHIg
fHwgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CisgICAgcmV0
dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gZm9ybWFjdGlvbkF0dHIgfHwgSFRNTEZvcm1Db250cm9s
RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogU3RyaW5nIEhUTUxCdXR0
b25FbGVtZW50Ojp2YWx1ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxCdXR0b25FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxCdXR0b25FbGVt
ZW50LmgKaW5kZXggMmQyOTZjYi4uOGRkYjAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQnV0dG9uRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEJ1
dHRvbkVsZW1lbnQuaApAQCAtNTYsNyArNTYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRBY3RpdmF0ZWRTdWJtaXQoYm9vbCBmbGFnKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhY2Nl
c3NLZXlBY3Rpb24oYm9vbCBzZW5kTW91c2VFdmVudHMpOwotICAgIHZpcnR1YWwgYm9vbCBpc1VS
TEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRy
aWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJv
b2wgY2FuU3RhcnRTZWxlY3Rpb24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDVmOGIyMjMuLmQzNjdmOWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC05NTYsMTAgKzk1NiwxMCBAQCB2b2lkIEhUTUxFbGVt
ZW50OjphZGp1c3REaXJlY3Rpb25hbGl0eUlmTmVlZGVkQWZ0ZXJDaGlsZHJlbkNoYW5nZWQoTm9k
ZSogYmVmb3JlQwogICAgIH0KIH0KIAotYm9vbCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUo
QXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0Citib29sIEhUTUxFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKICNpZiBFTkFCTEUoTUlD
Uk9EQVRBKQotICAgIHJldHVybiBhdHRyaWJ1dGUtPm5hbWUoKSA9PSBpdGVtaWRBdHRyOworICAg
IHJldHVybiBhdHRyaWJ1dGUubmFtZSgpID09IGl0ZW1pZEF0dHI7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShhdHRyaWJ1dGUpOwogICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaAppbmRleCA4YjZhZWY0Li45NWE4ZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRWxlbWVu
dC5oCkBAIC0xMjEsNyArMTIxLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBjaGls
ZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3JlQ2hh
bmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0gMCk7
CiAgICAgdm9pZCBjYWxjdWxhdGVBbmRBZGp1c3REaXJlY3Rpb25hbGl0eSgpOwogCi0gICAgdmly
dHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKIAog
cHJpdmF0ZToKICAgICB2aXJ0dWFsIFN0cmluZyBub2RlTmFtZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKaW5kZXggMGZjMGIxNy4uODM5ZjMzYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCkBAIC0yMDgsOSArMjA4LDkg
QEAgYm9vbCBIVE1MRW1iZWRFbGVtZW50OjpyZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5k
ZXJpbmdDb250ZXh0JiBjb250ZXh0KQogICAgIHJldHVybiBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50
OjpyZW5kZXJlcklzTmVlZGVkKGNvbnRleHQpOwogfQogCi1ib29sIEhUTUxFbWJlZEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikgY29uc3QKK2Jvb2wgSFRNTEVtYmVkRWxl
bWVudDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyIHx8IEhUTUxQbHVnSW5JbWFnZUVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOworICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSgp
ID09IHNyY0F0dHIgfHwgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0
cmlidXRlKTsKIH0KIAogY29uc3QgUXVhbGlmaWVkTmFtZSYgSFRNTEVtYmVkRWxlbWVudDo6aW1h
Z2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEVtYmVkRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRW1iZWRF
bGVtZW50LmgKaW5kZXggODZiZjhlZC4uODU5N2RmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRW1iZWRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RW1iZWRFbGVtZW50LmgKQEAgLTQwLDcgKzQwLDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwg
Ym9vbCByZW5kZXJlcklzTmVlZGVkKGNvbnN0IE5vZGVSZW5kZXJpbmdDb250ZXh0Jik7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgUXVhbGlmaWVkTmFtZSYgaW1hZ2VTb3VyY2VBdHRyaWJ1dGVO
YW1lKCkgY29uc3Q7CiAKICAgICB2aXJ0dWFsIFJlbmRlcldpZGdldCogcmVuZGVyV2lkZ2V0Rm9y
SlNCaW5kaW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4
IGRmNzhkNjYuLjc3NGJlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZv
cm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5j
cHAKQEAgLTUxNSw5ICs1MTUsOSBAQCB2b2lkIEhUTUxGb3JtRWxlbWVudDo6cmVtb3ZlRm9ybUVs
ZW1lbnQoRm9ybUFzc29jaWF0ZWRFbGVtZW50KiBlKQogICAgIHJlbW92ZUZyb21WZWN0b3IobV9h
c3NvY2lhdGVkRWxlbWVudHMsIGUpOwogfQogCi1ib29sIEhUTUxGb3JtRWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBjb25zdAorYm9vbCBIVE1MRm9ybUVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewotICAgIHJl
dHVybiBhdHRyLT5uYW1lKCkgPT0gYWN0aW9uQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRy
aWJ1dGUoYXR0cik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gYWN0aW9uQXR0ciB8
fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogdm9pZCBIVE1M
Rm9ybUVsZW1lbnQ6OnJlZ2lzdGVySW1nRWxlbWVudChIVE1MSW1hZ2VFbGVtZW50KiBlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggYzMwMTNiZi4uNmJmZTVjYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC0xMjQsOCArMTI0LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlTG9jYWxFdmVudHMoRXZlbnQqKTsKIAogICAg
IHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBPVkVSUklERTsKLQotICAg
IHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZG9jdW1lbnREaWRSZXN1bWVGcm9tUGFnZUNhY2hlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAKaW5kZXggYzM0
ZGRlYi4uM2I2MDM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVF
bGVtZW50QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50
QmFzZS5jcHAKQEAgLTIyNSw5ICsyMjUsOSBAQCB2b2lkIEhUTUxGcmFtZUVsZW1lbnRCYXNlOjpz
ZXRGb2N1cyhib29sIHJlY2VpdmVkKQogICAgIH0KIH0KIAotYm9vbCBIVE1MRnJhbWVFbGVtZW50
QmFzZTo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAorYm9vbCBIVE1MRnJh
bWVFbGVtZW50QmFzZTo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIGF0dHItPm5hbWUoKSA9PSBzcmNBdHRyIHx8IEhUTUxGcmFt
ZU93bmVyRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cik7CisgICAgcmV0dXJuIGF0dHJpYnV0
ZS5uYW1lKCkgPT0gc3JjQXR0ciB8fCBIVE1MRnJhbWVPd25lckVsZW1lbnQ6OmlzVVJMQXR0cmli
dXRlKGF0dHJpYnV0ZSk7CiB9CiAKIGludCBIVE1MRnJhbWVFbGVtZW50QmFzZTo6d2lkdGgoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5oCmluZGV4IDU0ODkxYTQu
LjA4MWI0NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVu
dEJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmgK
QEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGb2N1
cygpIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBzZXRGb2N1cyhib29sKTsKICAgICAKLSAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgYm9vbCBpc0ZyYW1lRWxlbWVudEJhc2UoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CiAKICAgICBib29sIHZpZXdTb3VyY2VNb2RlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U291
cmNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5jcHAKaW5kZXggYTI3YjBk
Zi4uOGY2ZWM3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmNwcApAQCAt
NTEsOSArNTEsOSBAQCBQYXNzUmVmUHRyPEhUTUxIdG1sRWxlbWVudD4gSFRNTEh0bWxFbGVtZW50
OjpjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZQogICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgSFRNTEh0bWxFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50KSk7CiB9CiAKLWJvb2wgSFRN
TEh0bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QK
K2Jvb2wgSFRNTEh0bWxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0
dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gbWFuaWZl
c3RBdHRyIHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOworICAgIHJl
dHVybiBhdHRyaWJ1dGUubmFtZSgpID09IG1hbmlmZXN0QXR0ciB8fCBIVE1MRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogdm9pZCBIVE1MSHRtbEVsZW1lbnQ6Omluc2Vy
dGVkQnlQYXJzZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEh0bWxFbGVtZW50LmgKaW5kZXggOTgy
NjI3YS4uNDBmOGJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSHRtbEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxIdG1sRWxlbWVudC5oCkBAIC0z
OCw3ICszOCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTEh0bWxFbGVtZW50KGNvbnN0
IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0
cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0
ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBlMDhmYjU3Li43
YmY2MTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTI1
OSwxMyArMjU5LDEzIEBAIGludCBIVE1MSW1hZ2VFbGVtZW50OjpuYXR1cmFsSGVpZ2h0KCkgY29u
c3QKICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJl
cihyZW5kZXJlcigpLCAxLjBmKS5oZWlnaHQoKTsKIH0KIAotYm9vbCBIVE1MSW1hZ2VFbGVtZW50
Ojppc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpIGNvbnN0Citib29sIEhUTUxJbWFnZUVs
ZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAog
ewotICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gc3JjQXR0cgotICAgICAgICB8fCBhdHRyLT5u
YW1lKCkgPT0gbG93c3JjQXR0cgotICAgICAgICB8fCBhdHRyLT5uYW1lKCkgPT0gbG9uZ2Rlc2NB
dHRyCi0gICAgICAgIHx8IChhdHRyLT5uYW1lKCkgPT0gdXNlbWFwQXR0ciAmJiBhdHRyLT52YWx1
ZSgpLnN0cmluZygpWzBdICE9ICcjJykKLSAgICAgICAgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKGF0dHIpOworICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSgpID09IHNyY0F0dHIKKyAg
ICAgICAgfHwgYXR0cmlidXRlLm5hbWUoKSA9PSBsb3dzcmNBdHRyCisgICAgICAgIHx8IGF0dHJp
YnV0ZS5uYW1lKCkgPT0gbG9uZ2Rlc2NBdHRyCisgICAgICAgIHx8IChhdHRyaWJ1dGUubmFtZSgp
ID09IHVzZW1hcEF0dHIgJiYgYXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKClbMF0gIT0gJyMnKQor
ICAgICAgICB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAog
Y29uc3QgQXRvbWljU3RyaW5nJiBIVE1MSW1hZ2VFbGVtZW50OjphbHQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAppbmRleCAzYWI5NWEzLi42MjU1NGY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuaApAQCAtOTMsNyArOTMsNyBAQCBwcml2
YXRlOgogCiAgICAgdmlydHVhbCBib29sIGNhblN0YXJ0U2VsZWN0aW9uKCkgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUq
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRl
JikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgZHJhZ2dhYmxlKCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IDQ2MDFiYzMu
LmZiYmFiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAt
MTIzNSw5ICsxMjM1LDkgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50KiBldnQpCiAgICAgICAgIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50OjpkZWZh
dWx0RXZlbnRIYW5kbGVyKGV2dCk7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAorYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gYXR0ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgYXR0ci0+bmFtZSgpID09IGZvcm1hY3Rp
b25BdHRyIHx8IEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRy
KTsKKyAgICByZXR1cm4gYXR0cmlidXRlLm5hbWUoKSA9PSBzcmNBdHRyIHx8IGF0dHJpYnV0ZS5u
YW1lKCkgPT0gZm9ybWFjdGlvbkF0dHIgfHwgSFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIFN0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpk
ZWZhdWx0VmFsdWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApp
bmRleCBkNDM3OWMxLi4wYmM1ZmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaApAQCAtMjk4LDcgKzI5OCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkKiBwcmVE
aXNwYXRjaEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCBwb3N0RGlzcGF0
Y2hFdmVudEhhbmRsZXIoRXZlbnQqLCB2b2lkKiBkYXRhRnJvbVByZURpc3BhdGNoKTsKIAotICAg
IHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFsdWUoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmluZGV4IDBkYjY2MzYuLmUxNzkyNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTM5MCw5ICszOTAs
OSBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6c3RhcnRMb2FkaW5nRHluYW1pY1NoZWV0KCkKICAg
ICBhZGRQZW5kaW5nU2hlZXQoQmxvY2tpbmcpOwogfQogCi1ib29sIEhUTUxMaW5rRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAorYm9vbCBIVE1MTGlua0VsZW1l
bnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewot
ICAgIHJldHVybiBhdHRyLT5uYW1lKCkgPT0gaHJlZkF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKGF0dHIpOworICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSgpID09IGhyZWZBdHRy
IHx8IEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiBLVVJMIEhU
TUxMaW5rRWxlbWVudDo6aHJlZigpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuaAppbmRleCA4Y2I5MTc3Li44MjM5ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lkIHNldERp
c2FibGVkU3RhdGUoYm9vbCk7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0
cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0
dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDFlMjdjZDQuLmFkOGZi
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcApAQCAtNDAyMSw5
ICs0MDIxLDkgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYUNhblN0YXJ0KCkKICAgICBs
b2FkSW50ZXJuYWwoKTsKIH0KIAotYm9vbCBIVE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0
ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKK2Jvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gc3JjQXR0
ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpzZXRTaG91bGREZWxheUxvYWRFdmVudChib29sIHNob3VsZERlbGF5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA2ZGUzNWRiLi5iMTli
ZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzI1LDcgKzMy
NSw3IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0dHJpYnV0ZShBdHRy
aWJ1dGUqKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgZmluaXNoUGFyc2luZ0NoaWxkcmVu
KCk7Ci0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkTW92ZVRvTmV3RG9jdW1lbnQoRG9jdW1lbnQqIG9sZERvY3VtZW50KSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAKaW5kZXggOWQwOTYxYy4uMzMxODVjNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5jcHAKQEAgLTM5LDkgKzM5LDkgQEAg
UGFzc1JlZlB0cjxIVE1MTW9kRWxlbWVudD4gSFRNTE1vZEVsZW1lbnQ6OmNyZWF0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLAogICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTE1vZEVs
ZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotYm9vbCBIVE1MTW9kRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0Citib29sIEhUTUxNb2RFbGVt
ZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsK
LSAgICByZXR1cm4gYXR0cmlidXRlLT5uYW1lKCkgPT0gY2l0ZUF0dHIgfHwgSFRNTEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkg
PT0gY2l0ZUF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1vZEVsZW1lbnQuaAppbmRleCBjZGI2ZGNlLi5jMWJl
OTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNb2RFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTW9kRWxlbWVudC5oCkBAIC0zNSw3ICszNSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSFRNTE1vZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFt
ZSYsIERvY3VtZW50Kik7CiAKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmli
dXRlKikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJp
YnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogfTsKIAogfSAvL25hbWVzcGFjZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAppbmRleCBlMDkzNDljLi43MThlOGQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcApAQCAtMzUxLDkgKzM1MSw5
IEBAIHZvaWQgSFRNTE9iamVjdEVsZW1lbnQ6OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRC
eVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlCiAgICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudDo6
Y2hpbGRyZW5DaGFuZ2VkKGNoYW5nZWRCeVBhcnNlciwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5n
ZSwgY2hpbGRDb3VudERlbHRhKTsKIH0KIAotYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoQXR0cmlidXRlICphdHRyKSBjb25zdAorYm9vbCBIVE1MT2JqZWN0RWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGF0dHItPm5hbWUoKSA9PSBkYXRhQXR0ciB8fCAoYXR0ci0+bmFtZSgpID09IHVzZW1h
cEF0dHIgJiYgYXR0ci0+dmFsdWUoKS5zdHJpbmcoKVswXSAhPSAnIycpIHx8IEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIpOworICAgIHJldHVybiBhdHRyaWJ1dGUu
bmFtZSgpID09IGRhdGFBdHRyIHx8IChhdHRyaWJ1dGUubmFtZSgpID09IHVzZW1hcEF0dHIgJiYg
YXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKClbMF0gIT0gJyMnKSB8fCBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiBjb25zdCBRdWFsaWZpZWRO
YW1lJiBIVE1MT2JqZWN0RWxlbWVudDo6aW1hZ2VTb3VyY2VBdHRyaWJ1dGVOYW1lKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuaAppbmRleCBiNTAwNDVkLi5hMGU2
NjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5oCkBAIC03OCw3ICs3
OCw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wg
Y2hhbmdlZEJ5UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFm
dGVyQ2hhbmdlID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCi0gICAgdmlydHVhbCBi
b29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBp
c1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGNvbnN0IFF1YWxpZmllZE5hbWUmIGltYWdlU291cmNlQXR0cmlidXRlTmFtZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdldEZvckpTQmluZGluZ3Mo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQuY3BwCmluZGV4IDM5ZGY0NjQu
LjlmNjA5Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcApAQCAt
NTksMTEgKzU5LDExIEBAIGJvb2wgSFRNTFBhcmFtRWxlbWVudDo6aXNVUkxQYXJhbWV0ZXIoY29u
c3QgU3RyaW5nJiBuYW1lKQogICAgIHJldHVybiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCAiZGF0
YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsICJtb3ZpZSIpIHx8IGVxdWFsSWdub3JpbmdD
YXNlKG5hbWUsICJzcmMiKTsKIH0KIAotYm9vbCBIVE1MUGFyYW1FbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShBdHRyaWJ1dGUqIGF0dHIpIGNvbnN0Citib29sIEhUTUxQYXJhbUVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewotICAgIGlmIChh
dHRyLT5uYW1lKCkgPT0gdmFsdWVBdHRyICYmIGlzVVJMUGFyYW1ldGVyKG5hbWUoKSkpCisgICAg
aWYgKGF0dHJpYnV0ZS5uYW1lKCkgPT0gdmFsdWVBdHRyICYmIGlzVVJMUGFyYW1ldGVyKG5hbWUo
KSkpCiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBIVE1MRWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoYXR0cik7CisgICAgcmV0dXJuIEhUTUxFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShh
dHRyaWJ1dGUpOwogfQogCiB2b2lkIEhUTUxQYXJhbUVsZW1lbnQ6OmFkZFN1YnJlc291cmNlQXR0
cmlidXRlVVJMcyhMaXN0SGFzaFNldDxLVVJMPiYgdXJscykgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MUGFyYW1FbGVtZW50LmgKaW5kZXggMDllMmRmZC4uZjg2OGUxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MUGFyYW1FbGVtZW50LmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBIVE1MUGFyYW1FbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVu
dCopOwogCi0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0
OworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25z
dCBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVS
THMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
UXVvdGVFbGVtZW50LmNwcAppbmRleCBkNjI5YmM5Li5jZDcyMTE1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFF1b3RlRWxlbWVudC5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgTm9kZTo6SW5zZXJ0
aW9uTm90aWZpY2F0aW9uUmVxdWVzdCBIVE1MUXVvdGVFbGVtZW50OjppbnNlcnRlZEludG8oTm9k
ZSogaW5zZXJ0aW8KICAgICByZXR1cm4gSFRNTEVsZW1lbnQ6Omluc2VydGVkSW50byhpbnNlcnRp
b25Qb2ludCk7CiB9CiAKLWJvb2wgSFRNTFF1b3RlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0
cmlidXRlKiBhdHRyaWJ1dGUpIGNvbnN0Citib29sIEhUTUxRdW90ZUVsZW1lbnQ6OmlzVVJMQXR0
cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYgYXR0cmlidXRlKSBjb25zdAogewotICAgIHJldHVybiBh
dHRyaWJ1dGUtPm5hbWUoKSA9PSBjaXRlQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1
dGUoYXR0cmlidXRlKTsKKyAgICByZXR1cm4gYXR0cmlidXRlLm5hbWUoKSA9PSBjaXRlQXR0ciB8
fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUXVvdGVFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAppbmRleCAyMWNmNTBkLi43MmI4MmNhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxRdW90ZUVsZW1lbnQuaApAQCAtMzcsNyArMzcsNyBAQCBwcml2
YXRlOgogICAgIEhUTUxRdW90ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7CiAgICAgCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2Vy
dGVkSW50byhOb2RlKikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRl
KEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25z
dCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklERTsKIH07CiAKIH0gLy9uYW1lc3BhY2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKaW5kZXggMjQ0ZmM0Zi4uMGUzN2Jl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAKQEAgLTQ3LDkg
KzQ3LDkgQEAgUGFzc1JlZlB0cjxIVE1MU2NyaXB0RWxlbWVudD4gSFRNTFNjcmlwdEVsZW1lbnQ6
OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWcKICAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxTY3JpcHRFbGVtZW50KHRhZ05hbWUsIGRvY3VtZW50LCB3YXNJbnNlcnRlZEJ5UGFyc2Vy
LCBmYWxzZSkpOwogfQogCi1ib29sIEhUTUxTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShB
dHRyaWJ1dGUqIGF0dHIpIGNvbnN0Citib29sIEhUTUxTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJp
YnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0
ci0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHIp
OworICAgIHJldHVybiBhdHRyaWJ1dGUubmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6
OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAKIHZvaWQgSFRNTFNjcmlwdEVsZW1lbnQ6
OmNoaWxkcmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdl
LCBOb2RlKiBhZnRlckNoYW5nZSwgaW50IGNoaWxkQ291bnREZWx0YSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFNjcmlwdEVsZW1lbnQuaAppbmRleCAyZTMxNDZlLi4wMzhjYmUxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhO
b2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChib29sIGNo
YW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2RlKiBhZnRl
ckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKIAotICAgIHZpcnR1YWwgYm9v
bCBpc1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNV
UkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAKICAgICB2aXJ0
dWFsIHZvaWQgYWRkU3VicmVzb3VyY2VBdHRyaWJ1dGVVUkxzKExpc3RIYXNoU2V0PEtVUkw+Jikg
Y29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5jcHAKaW5kZXgg
YzJmOTM2Mi4uMjlkYzE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291
cmNlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVu
dC5jcHAKQEAgLTExNyw5ICsxMTcsOSBAQCB2b2lkIEhUTUxTb3VyY2VFbGVtZW50OjplcnJvckV2
ZW50VGltZXJGaXJlZChUaW1lcjxIVE1MU291cmNlRWxlbWVudD4qKQogICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUpKTsK
IH0KIAotYm9vbCBIVE1MU291cmNlRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBh
dHRyaWJ1dGUpIGNvbnN0Citib29sIEhUTUxTb3VyY2VFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShj
b25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0cmlidXRl
LT5uYW1lKCkgPT0gc3JjQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmli
dXRlKTsKKyAgICByZXR1cm4gYXR0cmlidXRlLm5hbWUoKSA9PSBzcmNBdHRyIHx8IEhUTUxFbGVt
ZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiAjaWYgRU5BQkxFKE1JQ1JPREFU
QSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNvdXJjZUVsZW1lbnQuaAppbmRleCAzNzkxODNlLi41
M2ViN2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTb3VyY2VFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU291cmNlRWxlbWVudC5oCkBAIC01MSw3
ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgdmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRp
b25SZXF1ZXN0IGluc2VydGVkSW50byhOb2RlKikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxSZW1vdmUoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRl
KikgY29uc3Q7CisgICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdm9pZCBlcnJvckV2ZW50VGltZXJGaXJlZChUaW1l
cjxIVE1MU291cmNlRWxlbWVudD4qKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUNlbGxFbGVtZW50LmNwcAppbmRleCA5YmYwYzkxLi5mZjBiM2M4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcApAQCAtMTIxLDkgKzEyMSw5IEBAIFN0
eWxlUHJvcGVydHlTZXQqIEhUTUxUYWJsZUNlbGxFbGVtZW50OjphZGRpdGlvbmFsQXR0cmlidXRl
U3R5bGUoKQogICAgIHJldHVybiAwOwogfQogCi1ib29sIEhUTUxUYWJsZUNlbGxFbGVtZW50Ojpp
c1VSTEF0dHJpYnV0ZShBdHRyaWJ1dGUgKmF0dHIpIGNvbnN0Citib29sIEhUTUxUYWJsZUNlbGxF
bGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkgY29uc3QK
IHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IGJhY2tncm91bmRBdHRyIHx8IEhUTUxUYWJs
ZVBhcnRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyKTsKKyAgICByZXR1cm4gYXR0cmlidXRl
Lm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBIVE1MVGFibGVQYXJ0RWxlbWVudDo6aXNVUkxB
dHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAogU3RyaW5nIEhUTUxUYWJsZUNlbGxFbGVtZW50Ojph
YmJyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaApp
bmRleCBkMWY3NGZkLi4yZjQxZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUYWJsZUNlbGxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVD
ZWxsRWxlbWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIFN0
eWxlUHJvcGVydHlTZXQqIGFkZGl0aW9uYWxBdHRyaWJ1dGVTdHlsZSgpIE9WRVJSSURFOwogCi0g
ICAgdmlydHVhbCBib29sIGlzVVJMQXR0cmlidXRlKEF0dHJpYnV0ZSopIGNvbnN0OworICAgIHZp
cnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBjb25zdCBPVkVSUklE
RTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhh
c2hTZXQ8S1VSTD4mKSBjb25zdDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxUYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVt
ZW50LmNwcAppbmRleCBiOTEzMDJmLi45OGY3NmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKQEAgLTU1NSw5ICs1NTUsOSBAQCBTdHlsZVByb3BlcnR5U2V0KiBI
VE1MVGFibGVFbGVtZW50OjphZGRpdGlvbmFsR3JvdXBTdHlsZShib29sIHJvd3MpCiAgICAgcmV0
dXJuIGNvbHVtbkJvcmRlclN0eWxlOwogfQogCi1ib29sIEhUTUxUYWJsZUVsZW1lbnQ6OmlzVVJM
QXR0cmlidXRlKEF0dHJpYnV0ZSAqYXR0cikgY29uc3QKK2Jvb2wgSFRNTFRhYmxlRWxlbWVudDo6
aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIGF0dHItPm5hbWUoKSA9PSBiYWNrZ3JvdW5kQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNV
UkxBdHRyaWJ1dGUoYXR0cik7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gYmFja2dy
b3VuZEF0dHIgfHwgSFRNTEVsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CiB9CiAK
IEhUTUxDb2xsZWN0aW9uKiBIVE1MVGFibGVFbGVtZW50Ojpyb3dzKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVGFibGVFbGVtZW50LmgKaW5kZXggODk1YzRmZC4uNDYzZThhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmgKQEAgLTc0LDcgKzc0LDcgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIHZvaWQgcGFyc2VBdHRyaWJ1dGUoQXR0cmlidXRlKikgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGlzUHJlc2VudGF0aW9uQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
KSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdFN0eWxlRm9yQXR0cmli
dXRlKEF0dHJpYnV0ZSosIFN0eWxlUHJvcGVydHlTZXQqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwogCiAgICAg
Ly8gVXNlZCB0byBvYnRhaW4gZWl0aGVyIGEgc29saWQgb3Igb3V0c2V0IGJvcmRlciBkZWNsIGFu
ZCB0byBkZWFsIHdpdGggdGhlIGZyYW1lIGFuZCBydWxlcyBhdHRyaWJ1dGVzLgogICAgIHZpcnR1
YWwgU3R5bGVQcm9wZXJ0eVNldCogYWRkaXRpb25hbEF0dHJpYnV0ZVN0eWxlKCkgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcAppbmRleCBhZmQxZGMzLi5i
NzJjNzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAKQEAgLTE4
NCw5ICsxODQsOSBAQCBUZXh0VHJhY2sqIEhUTUxUcmFja0VsZW1lbnQ6OnRyYWNrKCkKICAgICBy
ZXR1cm4gZW5zdXJlVHJhY2soKTsKIH0KIAotYm9vbCBIVE1MVHJhY2tFbGVtZW50Ojppc1VSTEF0
dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHJpYnV0ZSkgY29uc3QKK2Jvb2wgSFRNTFRyYWNrRWxlbWVu
dDo6aXNVUkxBdHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlJiBhdHRyaWJ1dGUpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGF0dHJpYnV0ZS0+bmFtZSgpID09IHNyY0F0dHIgfHwgSFRNTEVsZW1lbnQ6Omlz
VVJMQXR0cmlidXRlKGF0dHJpYnV0ZSk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0g
c3JjQXR0ciB8fCBIVE1MRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoYXR0cmlidXRlKTsKIH0KIAog
dm9pZCBIVE1MVHJhY2tFbGVtZW50OjpzY2hlZHVsZUxvYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxUcmFja0VsZW1lbnQuaAppbmRleCBhODU4NjNkLi4xZDk2ZGU4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxUcmFja0VsZW1lbnQuaApAQCAtNzksNyArNzksNyBAQCBwcml2YXRlOgogCiAgICAg
dmlydHVhbCBJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IGluc2VydGVkSW50byhOb2RlKikg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxSZW1vdmUoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwog
CiAjaWYgRU5BQkxFKE1JQ1JPREFUQSkKICAgICB2aXJ0dWFsIFN0cmluZyBpdGVtVmFsdWVUZXh0
KCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAppbmRleCBkNmQ3NDU2Li44NmZlODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKQEAgLTE4MiwxMCArMTgyLDkgQEAgdW5zaWduZWQgSFRNTFZpZGVvRWxlbWVu
dDo6aGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gb2sgPyBoIDogMDsKIH0KICAgICAKLWJvb2wg
SFRNTFZpZGVvRWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyaWJ1dGUpIGNv
bnN0Citib29sIEhUTUxWaWRlb0VsZW1lbnQ6OmlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0
ZSYgYXR0cmlidXRlKSBjb25zdAogewotICAgIHJldHVybiBIVE1MTWVkaWFFbGVtZW50Ojppc1VS
TEF0dHJpYnV0ZShhdHRyaWJ1dGUpCi0gICAgICAgIHx8IGF0dHJpYnV0ZS0+bmFtZSgpID09IHBv
c3RlckF0dHI7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gcG9zdGVyQXR0ciB8fCBI
VE1MTWVkaWFFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShhdHRyaWJ1dGUpOwogfQogCiBjb25zdCBR
dWFsaWZpZWROYW1lJiBIVE1MVmlkZW9FbGVtZW50OjppbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCAwNTZiODM1
Li42N2JiZTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtODEs
NyArODEsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNWaWRlbygpIGNvbnN0IHsgcmV0dXJu
IHBsYXllcigpICYmIHBsYXllcigpLT5oYXNWaWRlbygpOyB9CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzRnVsbHNjcmVlbigpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0
ZShBdHRyaWJ1dGUqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoY29u
c3QgQXR0cmlidXRlJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBRdWFsaWZp
ZWROYW1lJiBpbWFnZVNvdXJjZUF0dHJpYnV0ZU5hbWUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U2NyaXB0RWxlbWVudC5jcHAKaW5kZXggZDQzYTEzNy4uYTQ2OWZmMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcApAQCAtMTMyLDkgKzEzMiw5IEBAIHZvaWQgU1ZHU2Ny
aXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBi
ZWZvcmVDaGFuZ2UsCiAgICAgU2NyaXB0RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKCk7CiB9CiAK
LWJvb2wgU1ZHU2NyaXB0RWxlbWVudDo6aXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKiBhdHRyKSBj
b25zdAorYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRyaWJ1
dGUmIGF0dHJpYnV0ZSkgY29uc3QKIHsKLSAgICByZXR1cm4gYXR0ci0+bmFtZSgpID09IHNvdXJj
ZUF0dHJpYnV0ZVZhbHVlKCk7CisgICAgcmV0dXJuIGF0dHJpYnV0ZS5uYW1lKCkgPT0gc291cmNl
QXR0cmlidXRlVmFsdWUoKTsKIH0KIAogdm9pZCBTVkdTY3JpcHRFbGVtZW50OjpmaW5pc2hQYXJz
aW5nQ2hpbGRyZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmgKaW5kZXggZWIx
NjY5OC4uNTdiNzQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5oCkBAIC01
MCw3ICs1MCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNoaWxkcmVuQ2hhbmdlZChi
b29sIGNoYW5nZWRCeVBhcnNlciA9IGZhbHNlLCBOb2RlKiBiZWZvcmVDaGFuZ2UgPSAwLCBOb2Rl
KiBhZnRlckNoYW5nZSA9IDAsIGludCBjaGlsZENvdW50RGVsdGEgPSAwKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBzdmdBdHRyaWJ1dGVDaGFuZ2VkKGNvbnN0IFF1YWxpZmllZE5hbWUmKTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNVUkxBdHRyaWJ1dGUoQXR0cmlidXRlKikgY29uc3Q7CisgICAgdmlydHVh
bCBib29sIGlzVVJMQXR0cmlidXRlKGNvbnN0IEF0dHJpYnV0ZSYpIGNvbnN0IE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hQYXJzaW5nQ2hpbGRyZW4oKTsKIAogICAgIHZpcnR1YWwg
dm9pZCBhZGRTdWJyZXNvdXJjZUF0dHJpYnV0ZVVSTHMoTGlzdEhhc2hTZXQ8S1VSTD4mKSBjb25z
dDsK
</data>
<flag name="review"
          id="146690"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>