<?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>151676</bug_id>
          
          <creation_ts>2015-11-30 14:52:15 -0800</creation_ts>
          <short_desc>Use Optional instead of isNull out argument for nullable getters</short_desc>
          <delta_ts>2015-11-30 15:57:42 -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>WebCore JavaScript</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1144954</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-30 14:52:15 -0800</bug_when>
    <thetext>Use Optional instead of isNull out argument for nullable getters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144961</commentid>
    <comment_count>1</comment_count>
      <attachid>266286</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-30 15:00:12 -0800</bug_when>
    <thetext>Created attachment 266286
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144962</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-30 15:01:00 -0800</bug_when>
    <thetext>I noticed how awkward nullable attributes were, so I fixed them to use Optional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144999</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-11-30 15:57:42 -0800</bug_when>
    <thetext>Committed r192839: &lt;http://trac.webkit.org/changeset/192839&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266286</attachid>
            <date>2015-11-30 15:00:12 -0800</date>
            <delta_ts>2015-11-30 15:45:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-151676-20151130145951.patch</filename>
            <type>text/plain</type>
            <size>36106</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RkNTRjYmZlNTMxNzQx
YTc1ZDY3ZTRmYzM2M2M2OGI3M2FmNzZmOC4uNGI2YzQ0NTZmNTNiMjUyZGY0ZDRkMWFkZjkwMDZj
NmY0MzQwYTU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDE1LTExLTMwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgT3B0aW9uYWwgaW5zdGVh
ZCBvZiBpc051bGwgb3V0IGFyZ3VtZW50IGZvciBudWxsYWJsZSBnZXR0ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE2NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2Us
IGp1c3QgY2xlYW5lciBjb2RlLgorCisgICAgICAgICogTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29y
ZGluYXRlcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6YWx0aXR1ZGUpOiBS
ZXR1cm4gYW4gT3B0aW9uYWwuCisgICAgICAgIChXZWJDb3JlOjpDb29yZGluYXRlczo6YWx0aXR1
ZGVBY2N1cmFjeSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q29vcmRpbmF0ZXM6OmhlYWRp
bmcpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVzOjpzcGVlZCk6IERpdHRv
LgorICAgICAgICAqIE1vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaDogRGl0dG8uCisK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUpOiBBZGRlZC4g
VGhlIGNvZGUgYmVmb3JlIHdhcyBjYWxsaW5nCisgICAgICAgIHRocm91Z2ggdG8gRXZlbnQ6OmNy
ZWF0ZSwgd2hpY2ggaXMgY2xlYXJseSBub3Qgd2hhdCB3YXMgd2FudGVkLiBBbHNvIHJlbW92ZWQK
KyAgICAgICAgdW5uZWVkZWQgZXhwbGljaXQgZGVzdHJ1Y3Rvci4KKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaDogQ2hhbmdlZCByZXR1cm4gdHlwZSBv
ZiBuZXdWZXJzaW9uCisgICAgICAgIHRvIE9wdGlvbmFsIGFuZCB1cGRhdGVkIGZvciBhYm92ZSBj
aGFuZ2UuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVmVyc2lvbkNo
YW5nZUV2ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlZlcnNp
b25DaGFuZ2VFdmVudDo6bmV3VmVyc2lvbik6IENoYW5nZWQgdG8gcmV0dXJuCisgICAgICAgIGFu
IE9wdGlvbmFsLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJWZXJzaW9u
Q2hhbmdlRXZlbnRJbXBsLmg6IFJlbW92ZWQgdW51c2VkCisgICAgICAgIGRlZmF1bHQgYXJndW1l
bnQgdmFsdWVzOyB0aGUgZXZlbnQgdHlwZSBvbmUsIGF0IGxlYXN0LCB3YXMgY2xlYXJseSBpbmNv
cnJlY3QuCisgICAgICAgIE1hZGUgbW9yZSB0aGluZ3MgcHJpdmF0ZSwgZ290IHJpZCBvZiB1bm5l
ZWRlZCBkZXN0cnVjdG9yLCBtYXJrZWQgY2xhc3MgZmluYWwKKyAgICAgICAgaW5zdGVhZCBvZiBt
YXJraW5nIGFsbCBmdW5jdGlvbnMgZmluYWwuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9sZWdhY3kvTGVnYWN5VmVyc2lvbkNoYW5nZUV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudDo6bmV3VmVyc2lvbik6IFNhbWUgYXMgYWJvdmUuCisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVZlcnNpb25DaGFuZ2VFdmVu
dC5oOiBEaXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhVHJhY2tDb25zdHJhaW50czo6
b3B0aW9uYWwpOiBSZW1vdmVkIGJvZ3VzIGJvb2wgdmFsdWUuIElmIHdlCisgICAgICAgIGNvbWUg
YmFjayB0byBmaW5pc2ggbGF0ZXIgd2Ugd2lsbCBoYXZlIHRvIGltcGxlbWVudCBvcHRpb25hbCBy
ZXR1cm4gdmFsdWVzCisgICAgICAgIGZvciBhcnJheXMgaW4gdGhlIEphdmFTY3JpcHQgYmluZGlu
Z3MgZ2VuZXJhdG9yLCB3aGljaCBzaG91bGQgYmUgc3RyYWlnaHRmb3J3YXJkLgorICAgICAgICAq
IE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmg6IERpdHRvLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjp0
b051bGxhYmxlSlNOdW1iZXIpOiBBZGRlZC4gVGhpcyBmdW5jdGlvbiB0ZW1wbGF0ZSBpcyB1c2Vk
IGZvcgorICAgICAgICByZXR1cm4gdmFsdWVzIHRoYXQgYXJlIG51bGxhYmxlIG51bWJlcnMuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JHT2JqZWN0LnBtOgorICAg
ICAgICAoR2VuZXJhdGVGdW5jdGlvbik6IFJlcGxhY2VkIHNvbWUgZXhpc3RpbmcgYm9ndXMgY29k
ZSB0byBoYW5kbGUgbnVsbGFibGVzIHdpdGgKKyAgICAgICAgbmV3IGVxdWFsbHktYm9ndXMgY29k
ZSB0aGF0IHNob3VsZCBiZSBubyB3b3JzZSBhbmQgd2lsbCBjb21waWxlLgorCisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uKTogUmVtb3ZlZCBvbGQgc3VwcG9ydCBmb3IgbnVsbGFibGVzLgorICAgICAg
ICAoTmF0aXZlVG9KU1ZhbHVlKTogQWRkZWQgbmV3IHN1cHBvcnQgZm9yIG51bGxhYmxlIG51bWJl
cnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JPYmpDLnBtOgor
ICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6IFJlbW92ZWQgc3VwcG9ydCBmb3IgbnVs
bGFibGVzLiBXZSBhbG1vc3QgY2VydGFpbmx5CisgICAgICAgIHdvbid0IG5lZWQgaXQgZm9yIE9i
amVjdGl2ZS1DIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6IFVwZGF0ZWQuCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6IFVwZGF0ZWQuCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L09iakMvRE9NVGVzdE9iai5tbTogVXBkYXRlZC4KKwogMjAxNS0xMS0z
MCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgTW9kZXJuIElE
QjogUmVzb2x2ZSBmbGFreSBHQy12cy13cmFwcGVyIGlzc3VlIHdpdGggSURCT3BlbkRCUmVxdWVz
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRp
bmF0ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRl
cy5jcHAKaW5kZXggZDdiNzU5ZDM3ZDQ0MDVmZGU3ODFmNDA3MWE0ZmUyY2ZjY2EwYTVkMy4uYmJj
NzZjN2RkM2Q5ZDI3MGM0NWYwZGU0OGFkZjAxYjQ2ZTFlYmZmYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9nZW9sb2NhdGlvbi9Db29yZGluYXRlcy5jcHAKQEAgLTI4LDQwICsy
OCwzMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWRvdWJsZSBDb29yZGluYXRlczo6YWx0
aXR1ZGUoYm9vbCYgaXNOdWxsKSBjb25zdAorT3B0aW9uYWw8ZG91YmxlPiBDb29yZGluYXRlczo6
YWx0aXR1ZGUoKSBjb25zdAogewotICAgIGlmIChtX2NhblByb3ZpZGVBbHRpdHVkZSkKLSAgICAg
ICAgcmV0dXJuIG1fYWx0aXR1ZGU7Ci0KLSAgICBpc051bGwgPSB0cnVlOwotICAgIHJldHVybiAw
OworICAgIGlmICghbV9jYW5Qcm92aWRlQWx0aXR1ZGUpCisgICAgICAgIHJldHVybiBOdWxsb3B0
OworICAgIHJldHVybiBtX2FsdGl0dWRlOwogfQogCi1kb3VibGUgQ29vcmRpbmF0ZXM6OmFsdGl0
dWRlQWNjdXJhY3koYm9vbCYgaXNOdWxsKSBjb25zdAorT3B0aW9uYWw8ZG91YmxlPiBDb29yZGlu
YXRlczo6YWx0aXR1ZGVBY2N1cmFjeSgpIGNvbnN0CiB7Ci0gICAgaWYgKG1fY2FuUHJvdmlkZUFs
dGl0dWRlQWNjdXJhY3kpCi0gICAgICAgIHJldHVybiBtX2FsdGl0dWRlQWNjdXJhY3k7Ci0KLSAg
ICBpc051bGwgPSB0cnVlOwotICAgIHJldHVybiAwOworICAgIGlmICghbV9jYW5Qcm92aWRlQWx0
aXR1ZGVBY2N1cmFjeSkKKyAgICAgICAgcmV0dXJuIE51bGxvcHQ7CisgICAgcmV0dXJuIG1fYWx0
aXR1ZGVBY2N1cmFjeTsKIH0KIAotZG91YmxlIENvb3JkaW5hdGVzOjpoZWFkaW5nKGJvb2wmIGlz
TnVsbCkgY29uc3QKK09wdGlvbmFsPGRvdWJsZT4gQ29vcmRpbmF0ZXM6OmhlYWRpbmcoKSBjb25z
dAogewotICAgIGlmIChtX2NhblByb3ZpZGVIZWFkaW5nKQotICAgICAgICByZXR1cm4gbV9oZWFk
aW5nOwotCi0gICAgaXNOdWxsID0gdHJ1ZTsKLSAgICByZXR1cm4gMDsKKyAgICBpZiAoIW1fY2Fu
UHJvdmlkZUhlYWRpbmcpCisgICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBtX2hl
YWRpbmc7CiB9CiAKLWRvdWJsZSBDb29yZGluYXRlczo6c3BlZWQoYm9vbCYgaXNOdWxsKSBjb25z
dAorT3B0aW9uYWw8ZG91YmxlPiBDb29yZGluYXRlczo6c3BlZWQoKSBjb25zdAogewotICAgIGlm
IChtX2NhblByb3ZpZGVTcGVlZCkKLSAgICAgICAgcmV0dXJuIG1fc3BlZWQ7Ci0KLSAgICBpc051
bGwgPSB0cnVlOwotICAgIHJldHVybiAwOworICAgIGlmICghbV9jYW5Qcm92aWRlU3BlZWQpCisg
ICAgICAgIHJldHVybiBOdWxsb3B0OworICAgIHJldHVybiBtX3NwZWVkOwogfQogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9n
ZW9sb2NhdGlvbi9Db29yZGluYXRlcy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9nZW9sb2Nh
dGlvbi9Db29yZGluYXRlcy5oCmluZGV4IDVjYjNjZmIwNjc3YmQyNzZlZGQyMzJiOWU5YzI3NWQ3
ODFmMGY5N2QuLmU0YTQzNmUxZTQ3NTE3ZDE5OTczZjUyYmE5YzFmYTk2MjkzMDBkNGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZ2VvbG9jYXRpb24vQ29vcmRpbmF0ZXMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2dlb2xvY2F0aW9uL0Nvb3JkaW5hdGVzLmgKQEAg
LTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgQ29vcmRpbmF0ZXNfaAogCiAjaW5jbHVkZSAiRXZlbnQu
aCIKKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00MiwxMSArNDMsMTEgQEAgcHVibGljOgogCiAg
ICAgZG91YmxlIGxhdGl0dWRlKCkgY29uc3QgeyByZXR1cm4gbV9sYXRpdHVkZTsgfQogICAgIGRv
dWJsZSBsb25naXR1ZGUoKSBjb25zdCB7IHJldHVybiBtX2xvbmdpdHVkZTsgfQotICAgIGRvdWJs
ZSBhbHRpdHVkZShib29sJiBpc051bGwpIGNvbnN0OworICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0
aXR1ZGUoKSBjb25zdDsKICAgICBkb3VibGUgYWNjdXJhY3koKSBjb25zdCB7IHJldHVybiBtX2Fj
Y3VyYWN5OyB9Ci0gICAgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3koYm9vbCYgaXNOdWxsKSBjb25z
dDsKLSAgICBkb3VibGUgaGVhZGluZyhib29sJiBpc051bGwpIGNvbnN0OwotICAgIGRvdWJsZSBz
cGVlZChib29sJiBpc051bGwpIGNvbnN0OworICAgIE9wdGlvbmFsPGRvdWJsZT4gYWx0aXR1ZGVB
Y2N1cmFjeSgpIGNvbnN0OworICAgIE9wdGlvbmFsPGRvdWJsZT4gaGVhZGluZygpIGNvbnN0Owor
ICAgIE9wdGlvbmFsPGRvdWJsZT4gc3BlZWQoKSBjb25zdDsKICAgICAKIHByaXZhdGU6CiAgICAg
Q29vcmRpbmF0ZXMoZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGUsIGRvdWJsZSBhbHRpdHVkZSwgZG91YmxlIGFjY3VyYWN5LCBib29sIHByb3Zp
ZGVzQWx0aXR1ZGVBY2N1cmFjeSwgZG91YmxlIGFsdGl0dWRlQWNjdXJhY3ksIGJvb2wgcHJvdmlk
ZXNIZWFkaW5nLCBkb3VibGUgaGVhZGluZywgYm9vbCBwcm92aWRlc1NwZWVkLCBkb3VibGUgc3Bl
ZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJz
aW9uQ2hhbmdlRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
VmVyc2lvbkNoYW5nZUV2ZW50LmNwcAppbmRleCA0ZDQ2NGNmMmY0MjA3NTRhYmVlZGU3OTQ1NzI1
OGRlZTBmYjFjZjUwLi5mZTZiNTZlZjk0NmI2NTliM2MyMjExYTllZmI1NmU0ODQ4YmY2ZDFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hh
bmdlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZl
cnNpb25DaGFuZ2VFdmVudC5jcHAKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIEVOQUJMRShJTkRF
WEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIklEQlZl
cnNpb25DaGFuZ2VFdmVudEltcGwuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJREJWZXJz
aW9uQ2hhbmdlRXZlbnQ6OklEQlZlcnNpb25DaGFuZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpCkBAIC0zNSw2ICszOCwxMyBAQCBJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6OklEQlZlcnNp
b25DaGFuZ2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7CiB9CiAKK1JlZjxJREJW
ZXJzaW9uQ2hhbmdlRXZlbnQ+IElEQlZlcnNpb25DaGFuZ2VFdmVudDo6Y3JlYXRlKCkKK3sKKyAg
ICAvLyBGSVhNRTogVGhpcyBpcyBjYWxsZWQgb25seSBieSBkb2N1bWVudC5jcmVhdGVFdmVudC4g
SSBkb24ndCBzZWUgaG93IGl0J3MgdmFsdWFibGUgdG8gY3JlYXRlIGFuIGV2ZW50IHdpdGgKKyAg
ICAvLyByZWFkLW9ubHkgb2xkVmVyc2lvbiBhdHRyaWJ1dGUgb2YgMCBhbmQgbmV3VmVyc2lvbiBv
ZiBudWxsOyBwcmVzZXJ2aW5nIHRoYXQgYmVoYXZpb3IgZm9yIG5vdy4KKyAgICByZXR1cm4gSURC
Q2xpZW50OjpJREJWZXJzaW9uQ2hhbmdlRXZlbnQ6OmNyZWF0ZSgwLCAwLCBldmVudE5hbWVzKCku
dmVyc2lvbmNoYW5nZUV2ZW50KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oCmluZGV4IDQwZDUy
YWIyMmU2OGIyNWFlYjExYzA3MGQ3NzczNTdiYmFlZDg0ZmEuLjVkMTQ5M2MyMjE2MzdlZGE1ZjJh
MWMxOTRjMjUzYzNkNDcyZDkyOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlZlcnNpb25DaGFuZ2VFdmVudC5oCkBAIC0yOSwyMSArMjksMTkg
QEAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAogI2luY2x1ZGUgIkV2ZW50LmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCVmVyc2lvbkNoYW5nZUV2ZW50IDogcHVi
bGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIH5JREJWZXJzaW9uQ2hhbmdlRXZlbnQo
KSB7IH0KKyAgICBzdGF0aWMgUmVmPElEQlZlcnNpb25DaGFuZ2VFdmVudD4gY3JlYXRlKCk7CiAK
ICAgICB2aXJ0dWFsIHVpbnQ2NF90IG9sZFZlcnNpb24oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVh
bCB1aW50NjRfdCBuZXdWZXJzaW9uKGJvb2wmIGlzTnVsbCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgT3B0aW9uYWw8dWludDY0X3Q+IG5ld1ZlcnNpb24oKSBjb25zdCA9IDA7CiAKIHByb3RlY3Rl
ZDoKLSAgICBJREJWZXJzaW9uQ2hhbmdlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAg
ZXhwbGljaXQgSURCVmVyc2lvbkNoYW5nZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSk7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVmVyc2lvbkNoYW5nZUV2ZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVmVyc2lvbkNoYW5n
ZUV2ZW50SW1wbC5jcHAKaW5kZXggNTJhZWQ4NGExYzYzZDNiZmFhNTg1MDIxY2UyZTgwNDgyZGM5
ZGE2Ni4uNDhhMmVlZDI2MWU1MDM3ZDA0M2M1YTk5ODM3ZmRkNmIzMmRlZTcwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlZlcnNpb25DaGFu
Z2VFdmVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJWZXJzaW9uQ2hhbmdlRXZlbnRJbXBsLmNwcApAQCAtMzgsOSArMzgsMTAgQEAgSURC
VmVyc2lvbkNoYW5nZUV2ZW50OjpJREJWZXJzaW9uQ2hhbmdlRXZlbnQodWludDY0X3Qgb2xkVmVy
c2lvbiwgdWludDY0X3QgbmV3VmUKIHsKIH0KIAotdWludDY0X3QgSURCVmVyc2lvbkNoYW5nZUV2
ZW50OjpuZXdWZXJzaW9uKGJvb2wmIGlzTnVsbCkgY29uc3QKK09wdGlvbmFsPHVpbnQ2NF90PiBJ
REJWZXJzaW9uQ2hhbmdlRXZlbnQ6Om5ld1ZlcnNpb24oKSBjb25zdAogewotICAgIGlzTnVsbCA9
ICFtX25ld1ZlcnNpb247CisgICAgaWYgKCFtX25ld1ZlcnNpb24pCisgICAgICAgIHJldHVybiBO
dWxsb3B0OwogICAgIHJldHVybiBtX25ld1ZlcnNpb247CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJWZXJzaW9uQ2hhbmdlRXZlbnRJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVmVyc2lv
bkNoYW5nZUV2ZW50SW1wbC5oCmluZGV4IDg0NzMwMDU3ZTM0OWY3MTlkZDUyY2NkODg0ZGEyNDdk
NGE0MmM3MTAuLmQyNmQ1MTg1MjgzOTkxYzgyMDhmNTEyMDU2MDMxYWQ4OGE2ZDIwMDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJWZXJzaW9u
Q2hhbmdlRXZlbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQlZlcnNpb25DaGFuZ2VFdmVudEltcGwuaApAQCAtMzMsMjMgKzMzLDIyIEBACiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIAotY2xhc3MgSURCVmVy
c2lvbkNoYW5nZUV2ZW50IDogcHVibGljIFdlYkNvcmU6OklEQlZlcnNpb25DaGFuZ2VFdmVudCB7
CitjbGFzcyBJREJWZXJzaW9uQ2hhbmdlRXZlbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6SURC
VmVyc2lvbkNoYW5nZUV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPElEQlZlcnNpb25D
aGFuZ2VFdmVudD4gY3JlYXRlKHVpbnQ2NF90IG9sZFZlcnNpb24gPSAwLCB1aW50NjRfdCBuZXdW
ZXJzaW9uID0gMCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUgPSBBdG9taWNTdHJpbmco
KSkKKyAgICBzdGF0aWMgUmVmPElEQlZlcnNpb25DaGFuZ2VFdmVudD4gY3JlYXRlKHVpbnQ2NF90
IG9sZFZlcnNpb24sIHVpbnQ2NF90IG5ld1ZlcnNpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSURCVmVyc2lvbkNo
YW5nZUV2ZW50KG9sZFZlcnNpb24sIG5ld1ZlcnNpb24sIGV2ZW50VHlwZSkpOwogICAgIH0KIAot
ICAgIHZpcnR1YWwgdWludDY0X3Qgb2xkVmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsIHsg
cmV0dXJuIG1fb2xkVmVyc2lvbjsgfQotICAgIHZpcnR1YWwgdWludDY0X3QgbmV3VmVyc2lvbihi
b29sJiBpc051bGwpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotCi0gICAgdmlydHVhbCBFdmVudElu
dGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwotCiBwcml2YXRl
OgogICAgIElEQlZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCBvbGRWZXJzaW9uLCB1aW50NjRf
dCBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAKLSAgICB1aW50
NjRfdCBtX29sZFZlcnNpb24geyAwIH07Ci0gICAgdWludDY0X3QgbV9uZXdWZXJzaW9uIHsgMCB9
OworICAgIHZpcnR1YWwgdWludDY0X3Qgb2xkVmVyc2lvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1fb2xkVmVyc2lvbjsgfQorICAgIHZpcnR1YWwgT3B0aW9uYWw8dWludDY0X3Q+IG5ld1Zl
cnNpb24oKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEV2ZW50SW50ZXJmYWNlIGV2ZW50
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CisKKyAgICB1aW50NjRfdCBtX29sZFZlcnNpb247
CisgICAgdWludDY0X3QgbV9uZXdWZXJzaW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgSURCQ2xp
ZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kv
TGVnYWN5VmVyc2lvbkNoYW5nZUV2ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xlZ2FjeS9MZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCmluZGV4IDI4NjI0YWY4
MTc0YjhmODhjZjQxZWVhNGRkOWY4YzViMzUxMDFlMWQuLjkyMmY3NTk3YjQ5NDk0MTU2YmU4ZTA0
NDU5N2Y2ZWNmMWJjN2QyODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2xlZ2FjeS9MZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQu
Y3BwCkBAIC0zNywxMyArMzcsOCBAQCBMZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQ6OkxlZ2FjeVZl
cnNpb25DaGFuZ2VFdmVudCh1bnNpZ25lZCBsb25nIGxvbmcgb2xkVmVyc2lvbgogewogfQogCi1M
ZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQ6On5MZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQoKQorT3B0
aW9uYWw8dWludDY0X3Q+IExlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudDo6bmV3VmVyc2lvbigpIGNv
bnN0CiB7Ci19Ci0KLXVpbnQ2NF90IExlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudDo6bmV3VmVyc2lv
bihib29sJiBpc051bGwpIGNvbnN0Ci17Ci0gICAgaXNOdWxsID0gZmFsc2U7CiAgICAgcmV0dXJu
IG1fbmV3VmVyc2lvbjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvbGVnYWN5L0xlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGVnYWN5L0xlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudC5oCmlu
ZGV4IGQ4Mzg1ZTk2NTZkYzU1OTA5N2FhNzEyYWZjMzVlY2U0M2Q5MWZmNjcuLmViZGI2MjA1N2Fm
NDFlZDUwYjc0NTBlNmU3OGRiMzkxYWNjYmM3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2xlZ2FjeS9MZWdhY3lWZXJzaW9uQ2hhbmdlRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZWdhY3kvTGVnYWN5VmVyc2lvbkNo
YW5nZUV2ZW50LmgKQEAgLTMzLDIzICszMywyMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LWNsYXNzIExlZ2FjeVZlcnNpb25DaGFuZ2VFdmVudCA6IHB1YmxpYyBJREJWZXJzaW9uQ2hhbmdl
RXZlbnQgeworY2xhc3MgTGVnYWN5VmVyc2lvbkNoYW5nZUV2ZW50IGZpbmFsIDogcHVibGljIElE
QlZlcnNpb25DaGFuZ2VFdmVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxMZWdhY3lWZXJz
aW9uQ2hhbmdlRXZlbnQ+IGNyZWF0ZSh1bnNpZ25lZCBsb25nIGxvbmcgb2xkVmVyc2lvbiA9IDAs
IHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdWZXJzaW9uID0gMCwgY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUgPSBBdG9taWNTdHJpbmcoKSkKKyAgICBzdGF0aWMgUmVmPExlZ2FjeVZlcnNpb25D
aGFuZ2VFdmVudD4gY3JlYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBvbGRWZXJzaW9uLCB1bnNpZ25l
ZCBsb25nIGxvbmcgbmV3VmVyc2lvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUpCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBMZWdhY3lWZXJzaW9uQ2hhbmdlRXZl
bnQob2xkVmVyc2lvbiwgbmV3VmVyc2lvbiwgZXZlbnRUeXBlKSk7CiAgICAgfQogCi0gICAgdmly
dHVhbCB+TGVnYWN5VmVyc2lvbkNoYW5nZUV2ZW50KCk7Ci0KLSAgICB2aXJ0dWFsIHVpbnQ2NF90
IG9sZFZlcnNpb24oKSBjb25zdCBvdmVycmlkZSBmaW5hbCB7IHJldHVybiBtX29sZFZlcnNpb247
IH0KLSAgICB2aXJ0dWFsIHVpbnQ2NF90IG5ld1ZlcnNpb24oYm9vbCYgaXNOdWxsKSBjb25zdCBv
dmVycmlkZSBmaW5hbDsKLQotICAgIHZpcnR1YWwgRXZlbnRJbnRlcmZhY2UgZXZlbnRJbnRlcmZh
Y2UoKSBjb25zdCBvdmVycmlkZSBmaW5hbDsKLQogcHJpdmF0ZToKICAgICBMZWdhY3lWZXJzaW9u
Q2hhbmdlRXZlbnQodW5zaWduZWQgbG9uZyBsb25nIG9sZFZlcnNpb24sIHVuc2lnbmVkIGxvbmcg
bG9uZyBuZXdWZXJzaW9uLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSk7CiAKKyAgICB2
aXJ0dWFsIHVpbnQ2NF90IG9sZFZlcnNpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX29s
ZFZlcnNpb247IH0KKyAgICB2aXJ0dWFsIE9wdGlvbmFsPHVpbnQ2NF90PiBuZXdWZXJzaW9uKCkg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBFdmVudEludGVyZmFjZSBldmVudEludGVyZmFj
ZSgpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgdWludDY0X3QgbV9vbGRWZXJzaW9uOwogICAgIHVp
bnQ2NF90IG1fbmV3VmVyc2lvbjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKaW5kZXggMGEz
N2NjNjE4ZTc4MzI4NzVmYjVhZjc2NmRkZjk0MjFiN2ZkZDEzOS4uYTA1M2E2MGYyY2NlYjI1YmRj
ZDZkZDJjZTAwODM2Nzg3ZTEwOTZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcApAQCAtNDgs
NyArNDgsNyBAQCBNZWRpYVRyYWNrQ29uc3RyYWludHM6Ok1lZGlhVHJhY2tDb25zdHJhaW50cyhQ
YXNzUmVmUHRyPE1lZGlhQ29uc3RyYWludHNJbXBsPiBjbwogewogfQogCi1WZWN0b3I8UGFzc1Jl
ZlB0cjxNZWRpYVRyYWNrQ29uc3RyYWludD4+IE1lZGlhVHJhY2tDb25zdHJhaW50czo6b3B0aW9u
YWwoYm9vbCkgY29uc3QKK1ZlY3RvcjxQYXNzUmVmUHRyPE1lZGlhVHJhY2tDb25zdHJhaW50Pj4g
TWVkaWFUcmFja0NvbnN0cmFpbnRzOjpvcHRpb25hbCgpIGNvbnN0CiB7CiAgICAgLy8gaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMTk1NAogICAgIG5vdEltcGxlbWVu
dGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tDb25zdHJhaW50cy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9NZWRpYVRyYWNrQ29uc3RyYWludHMuaAppbmRleCBkMzk1ZTJmYTdlZTZjODRmMjdlYzhkMTZm
MzJhY2NmNDYyYTU0NjJmLi4xYmM0ZWEwMmZiZjYyMDZhODUzYjEzYjM0NTNlY2UxOGQyZDk0Y2Vh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tDb25zdHJhaW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogCiAgICAg
c3RhdGljIFJlZjxNZWRpYVRyYWNrQ29uc3RyYWludHM+IGNyZWF0ZShQYXNzUmVmUHRyPE1lZGlh
Q29uc3RyYWludHNJbXBsPik7CiAKLSAgICBWZWN0b3I8UGFzc1JlZlB0cjxNZWRpYVRyYWNrQ29u
c3RyYWludD4+IG9wdGlvbmFsKGJvb2wpIGNvbnN0OworICAgIFZlY3RvcjxQYXNzUmVmUHRyPE1l
ZGlhVHJhY2tDb25zdHJhaW50Pj4gb3B0aW9uYWwoKSBjb25zdDsKICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldCogbWFuZGF0b3J5KCkgY29uc3Q7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDJmOTIzMjIxYTllMGMwNmRkNzJjOTNj
NDJiMGVhYThhZDU1MDY1MDguLmMzYzU4OThjYmE4YTRkNjkzMDRhM2UxYzkxNmI5MGI1YjQ5OTJh
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC01MSw2
ICs1MSw5IEBACiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogCisvLyBGSVhNRTogV2UgY291bGQgbWFrZSB0aGlzIGZpbGUgYSBsb3QgZWFzaWVy
IHRvIHJlYWQgYnkgcHV0dGluZyBhbGwgZnVuY3Rpb24gZGVjbGFyYXRpb25zIGF0IHRoZSB0b3As
CisvLyBhbmQgZnVuY3Rpb24gZGVmaW5pdGlvbnMgYmVsb3csIGV2ZW4gZm9yIHRlbXBsYXRlIGFu
ZCBpbmxpbmUgZnVuY3Rpb25zLgorCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEhhc2hFbnRyeTsK
IGNsYXNzIEpTRnVuY3Rpb247CkBAIC0yODMsNiArMjg2LDcgQEAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCByZXBvcnRFeGNlcHRpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkV4Y2VwdGlvbiosIENhY2hl
ZFNjcmkKIHZvaWQgcmVwb3J0Q3VycmVudEV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwogCiBK
U0M6OkpTVmFsdWUgY3JlYXRlRE9NRXhjZXB0aW9uKEpTQzo6RXhlY1N0YXRlKiwgRXhjZXB0aW9u
Q29kZSk7CisKIC8vIENvbnZlcnQgYSBET00gaW1wbGVtZW50YXRpb24gZXhjZXB0aW9uIGNvZGUg
aW50byBhIEphdmFTY3JpcHQgZXhjZXB0aW9uIGluIHRoZSBleGVjdXRpb24gc3RhdGUuCiBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldERPTUV4Y2VwdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEV4Y2VwdGlv
bkNvZGUpOwogCkBAIC0zMDUsNiArMzA5LDggQEAgQXRvbWljU3RyaW5nIHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKEpTQzo6UHJvcGVydHlOYW1lKTsKIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0
aE51bGxDaGVjayhKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNWYWx1ZSk7IC8vIG51bGwgaWYgdGhl
IHZhbHVlIGlzIG51bGwKIFN0cmluZyB2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENo
ZWNrKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU1ZhbHVlKTsgLy8gbnVsbCBpZiB0aGUgdmFsdWUg
aXMgbnVsbCBvciB1bmRlZmluZWQKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4gSlNDOjpKU1ZhbHVl
IHRvTnVsbGFibGVKU051bWJlcihPcHRpb25hbDxUPik7IC8vIG51bGwgaWYgdGhlIG9wdGlvbmFs
IGlzIG51bGwKKwogaW5saW5lIGludDMyX3QgZmluaXRlSW50MzJWYWx1ZShKU0M6OkpTVmFsdWUg
dmFsdWUsIEpTQzo6RXhlY1N0YXRlKiBleGVjLCBib29sJiBva2F5KQogewogICAgIGRvdWJsZSBu
dW1iZXIgPSB2YWx1ZS50b051bWJlcihleGVjKTsKQEAgLTM1MCwxMCArMzU2LDEyIEBAIGlubGlu
ZSB1aW50MzJfdCB0b1VJbnQzMihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIHZh
bHVlLCBJbnRlZ2VyQ29udmVyCiBXRUJDT1JFX0VYUE9SVCBpbnQ2NF90IHRvSW50NjQoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkpTVmFsdWUsIEludGVnZXJDb252ZXJzaW9uQ29uZmlndXJhdGlvbik7
CiBXRUJDT1JFX0VYUE9SVCB1aW50NjRfdCB0b1VJbnQ2NChKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6
SlNWYWx1ZSwgSW50ZWdlckNvbnZlcnNpb25Db25maWd1cmF0aW9uKTsKIAotLy8gUmV0dXJucyBh
IERhdGUgaW5zdG5hY2UgZm9yIHRoZSBzcGVjaWZpZWQgdmFsdWUsIG9yIE5hTiBpZiB0aGUgZGF0
ZSBpcyBub3QgYSBudW1iZXIuCisvLyBSZXR1cm5zIGEgRGF0ZSBpbnN0YW5jZSBmb3IgdGhlIHNw
ZWNpZmllZCB2YWx1ZSwgb3IgTmFOIGlmIHRoZSBkYXRlIGlzIG5vdCBhIG51bWJlci4KIEpTQzo6
SlNWYWx1ZSBqc0RhdGVPck5hTihKU0M6OkV4ZWNTdGF0ZSosIGRvdWJsZSk7CisKIC8vIFJldHVy
bnMgYSBEYXRlIGluc3RhbmNlIGZvciB0aGUgc3BlY2lmaWVkIHZhbHVlLCBvciBudWxsIGlmIHRo
ZSB2YWx1ZSBpcyBOYU4gb3IgaW5maW5pdHkuCiBKU0M6OkpTVmFsdWUganNEYXRlT3JOdWxsKEpT
Qzo6RXhlY1N0YXRlKiwgZG91YmxlKTsKKwogLy8gTmFOIGlmIHRoZSB2YWx1ZSBjYW4ndCBiZSBj
b252ZXJ0ZWQgdG8gYSBkYXRlLgogZG91YmxlIHZhbHVlVG9EYXRlKEpTQzo6RXhlY1N0YXRlKiwg
SlNDOjpKU1ZhbHVlKTsKIApAQCAtNjg1LDcgKzY5MywxMiBAQCBpbmxpbmUgdm9pZCBzZXRQcm9w
ZXJ0eVRvT2JqZWN0KEpTQzo6RXhlY1N0YXRlJiBleGVjLCBKU0M6OkpTT2JqZWN0JiBvYmplY3Qs
IGNvbgogICAgIEpTQzo6UHV0UHJvcGVydHlTbG90IHByb3BlcnR5U2xvdCgmb2JqZWN0KTsKICAg
ICBKU0M6OkpTT2JqZWN0OjpwdXQoJm9iamVjdCwgJmV4ZWMsIEpTQzo6SWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmZXhlYywgbmFtZSksIHZhbHVlLCBwcm9wZXJ0eVNsb3QpOwogfQotICAgIAorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvTnVsbGFibGVKU051bWJl
cihPcHRpb25hbDxUPiBvcHRpb25hbE51bWJlcikKK3sKKyAgICByZXR1cm4gb3B0aW9uYWxOdW1i
ZXIgPyBKU0M6OmpzTnVtYmVyKG9wdGlvbmFsTnVtYmVyLnZhbHVlKCkpIDogSlNDOjpqc051bGwo
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gSlNET01CaW5kaW5n
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckdPYmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JHT2JqZWN0LnBtCmluZGV4IDQ1ZTE4YjdmNWVhMDJhZGMxMDY2NTU5MWUzOTk3YmJiMGE4
OTFkYWYuLjhjMTA3YTM1NzQ4Y2YxNzU5NmNmZDg5ODExYzAzZjU2YTVmY2Q2MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3Qu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09i
amVjdC5wbQpAQCAtNTc1LDggKzU3NSw2IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnR5IHsKIAogICAg
IHB1c2goQHR4dEdldFByb3BzLCAiICAgIGNhc2UgJHtwcm9wRW51bX06XG4iKTsKIAotICAgICMg
RklYTUU6IFNob3VsZCB3ZSByZXR1cm4gYSBkZWZhdWx0IHZhbHVlIHdoZW4gaXNOdWxsID09IHRy
dWU/Ci0KICAgICBteSAkcG9zdENvbnZlcnRGdW5jdGlvbiA9ICIiOwogICAgIGlmICgkZ3R5cGUg
ZXEgInN0cmluZyIpIHsKICAgICAgICAgcHVzaChAdHh0R2V0UHJvcHMsICIgICAgICAgIGdfdmFs
dWVfdGFrZV9zdHJpbmcodmFsdWUsICIgLiAkZ2V0dGVyRnVuY3Rpb25OYW1lIC4gIigiIC4gam9p
bigiLCAiLCBAZ2V0dGVyQXJndW1lbnRzKSAuICIpKTtcbiIpOwpAQCAtMTIzOSw2ICsxMjM3LDEy
IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKICAgICAgICAgICAgICRhc3NpZ25Qb3N0ID0gIiki
OwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgJGFzc2lnbiA9ICIke3JldHVyblR5cGV9
IHJlc3VsdCA9ICI7CisgICAgICAgICAgICBpZiAoJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmlzTnVs
bGFibGUpIHsKKyAgICAgICAgICAgICAgICAjIEZJWE1FOiBSZXR1cm5pbmcgMCBpcyBwcm9iYWJs
eSBub3QgcmlnaHQgZm9yIGFsbCBudWxsYWJsZSBhdHRyaWJ1dGUgdmFsdWVzLgorICAgICAgICAg
ICAgICAgICMgV2UgbWF5IHdhbnQgdG8gaGFuZGxlIHRoaXMgdGhlIHdheSB3ZSBkbyBpbiB0aGUg
T2JqZWN0aXZlLUMgYmluZGluZ3M6IG5vdAorICAgICAgICAgICAgICAgICMgaGFuZGxlIGl0IGF0
IGFsbCwgYW5kIG5vdCBleHBvc2UgYW55IG51bGxhYmxlcy4KKyAgICAgICAgICAgICAgICAkYXNz
aWduUG9zdCA9ICIudmFsdWVPcigwKSI7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAg
ICAgICBpZiAoJGZ1bmN0aW9uU2lnVHlwZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIikgewpA
QCAtMTI0NywxMiArMTI1MSw2IEBAIHN1YiBHZW5lcmF0ZUZ1bmN0aW9uIHsKICAgICAgICAgfQog
ICAgIH0KIAotICAgICMgRklYTUU6IFNob3VsZCB3ZSByZXR1cm4gYSBkZWZhdWx0IHZhbHVlIHdo
ZW4gaXNOdWxsID09IHRydWU/Ci0gICAgaWYgKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5pc051bGxh
YmxlKSB7Ci0gICAgICAgIHB1c2goQGNCb2R5LCAiICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7XG4i
KTsKLSAgICAgICAgcHVzaChAY2FsbEltcGxQYXJhbXMsICJpc051bGwiKTsKLSAgICB9Ci0KICAg
ICBpZiAoJHJhaXNlc0V4Y2VwdGlvbikgewogICAgICAgICBwdXNoKEBjQm9keSwgIiAgICBXZWJD
b3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDtcbiIpOwogICAgICAgICBwdXNoKEBjYWxsSW1wbFBh
cmFtcywgImVjIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCmluZGV4IDQ0ODVlZGRkZWVlMzlhNGZkNzNmMGRlOTMxZGMyOTA1MmRm
ZjFhMmIuLmIxMzJhMDcxZDQ1YzRmNDFmZGEzNzVjNTQ4MDY0YzJhZDc5YTA4ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBA
IC0yMjc4LDggKzIyNzgsNiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgICAg
ICAgICBteSAkbmFtZSA9ICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgICAg
IG15ICR0eXBlID0gJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwotICAgICAgICAgICAgIyBO
dWxsYWJsZSB3cmFwcGVyIHR5cGVzIGRvIG5vdCBuZWVkIGFueSBzcGVjaWFsIGhhbmRsaW5nIGFz
IHRoZSBpbXBsZW1lbnRhdGlvbiBjYW4gcmV0dXJuIGEgbnVsbCBwb2ludGVyLgotICAgICAgICAg
ICAgbXkgJGlzTnVsbGFibGUgPSAkYXR0cmlidXRlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUgJiYg
ISRjb2RlR2VuZXJhdG9yLT5Jc1dyYXBwZXJUeXBlKCR0eXBlKTsKICAgICAgICAgICAgICRjb2Rl
R2VuZXJhdG9yLT5Bc3NlcnROb3RTZXF1ZW5jZVR5cGUoJHR5cGUpOwogICAgICAgICAgICAgbXkg
JGdldEZ1bmN0aW9uTmFtZSA9IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZU5hbWUs
ICRjbGFzc05hbWUsICRpbnRlcmZhY2UsICRhdHRyaWJ1dGUpOwogICAgICAgICAgICAgbXkgJGlt
cGxHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkYXR0cmli
dXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1lbnRlZEFzIn0gfHwg
JG5hbWUpOwpAQCAtMjQxMSw4ICsyNDA5LDYgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShKUyIgLiAkY29uc3RydWN0b3JUeXBlIC4gIjo6Z2V0Q29uc3RydWN0b3Ioc3Rh
dGUtPnZtKCksIGNhc3RlZFRoaXMtPmdsb2JhbE9iamVjdCgpKSk7XG4iKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9IGVsc2lmICghJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiR2V0dGVyUmFpc2VzRXhjZXB0aW9uIn0pIHsKLSAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGlzTnVsbCA9IGZhbHNlO1xuIikgaWYg
JGlzTnVsbGFibGU7Ci0KICAgICAgICAgICAgICAgICBteSAkY2FjaGVJbmRleCA9IDA7CiAgICAg
ICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkNhY2hlZEF0dHJpYnV0ZSJ9KSB7CiAgICAgICAgICAgICAgICAgICAgICRjYWNoZUluZGV4
ID0gJGN1cnJlbnRDYWNoZWRBdHRyaWJ1dGU7CkBAIC0yNDM1LDcgKzI0MzEsNiBAQCBzdWIgR2Vu
ZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgbXkgKCRmdW5jdGlvbk5hbWUsIEBhcmd1
bWVudHMpID0gJGNvZGVHZW5lcmF0b3ItPkdldHRlckV4cHJlc3Npb24oXCVpbXBsSW5jbHVkZXMs
ICRpbnRlcmZhY2VOYW1lLCAkYXR0cmlidXRlKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChA
YXJndW1lbnRzLCAiaXNOdWxsIikgaWYgJGlzTnVsbGFibGU7CiAgICAgICAgICAgICAgICAgICAg
IGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJJbXBsZW1l
bnRlZEJ5In0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRpbXBsZW1lbnRlZEJ5ID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSW1wbGVtZW50ZWRC
eSJ9OwogICAgICAgICAgICAgICAgICAgICAgICAgJGltcGxJbmNsdWRlc3siJHtpbXBsZW1lbnRl
ZEJ5fS5oIn0gPSAxOwpAQCAtMjQ1NiwyMiArMjQ1MSwxMiBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgSlNWYWx1ZSByZXN1bHQgPSAkanNUeXBlO1xu
Iik7CiAgICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICBpZiAoJGlz
TnVsbGFibGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmIChpc051bGwpXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgY2FzdGVkVGhpcy0+bV8iIC4gJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5uYW1lIC4gIi5zZXQoc3RhdGUtPnZtKCksIGNhc3RlZFRoaXMsIHJlc3VsdCk7
XG4iKSBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2Fj
aGVkQXR0cmlidXRlIn0pOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTtcbiIpOwogCiAgICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGlmICgkaXNOdWxsYWJsZSkgewotICAgICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBib29sIGlzTnVsbCA9IGZhbHNlO1xuIik7Ci0g
ICAgICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgImlzTnVsbCIpOwotICAgICAg
ICAgICAgICAgIH0KLQogICAgICAgICAgICAgICAgIHVuc2hpZnQoQGFyZ3VtZW50cywgR2VuZXJh
dGVDYWxsV2l0aCgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
YWxsV2l0aCJ9LCBcQGltcGxDb250ZW50LCAiSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkp
IikpOwogCiAgICAgICAgICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eU9yTGlzdFByb3BlcnR5VHlw
ZSkgewpAQCAtMjQ4NCwxMSArMjQ2OSw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAK
ICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBzZXRET01FeGNlcHRpb24o
c3RhdGUsIGVjKTtcbiIpOwogCi0gICAgICAgICAgICAgICAgaWYgKCRpc051bGxhYmxlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChpc051bGwpXG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVy
biBKU1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpO1xuIik7Ci0gICAgICAgICAgICAgICAgfQotCiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpO1xuIik7CiAgICAgICAgICAgICB9CiAKQEAgLTQxNjEsMTMgKzQxNDEsMTUg
QEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICByZXR1cm4gIlN5bWJvbDo6Y3JlYXRlKHN0
YXRlLT52bSgpLCAqKCR2YWx1ZSkudWlkKCkpIjsKICAgICB9CiAKLSAgICBpZiAoJHNpZ25hdHVy
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxlY3QifSBhbmQgKCR0eXBlIGVxICJ1bnNpZ25l
ZCBsb25nIiBvciAkdHlwZSBlcSAidW5zaWduZWQgc2hvcnQiKSkgewotICAgICAgICAkdmFsdWUg
PX4gcy9nZXRVbnNpZ25lZEludGVncmFsQXR0cmlidXRlL2dldEludGVncmFsQXR0cmlidXRlL2c7
Ci0gICAgICAgIHJldHVybiAianNOdW1iZXIoc3RkOjptYXgoMCwgIiAuICR2YWx1ZSAuICIpKSI7
Ci0gICAgfQotCiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUoJHR5cGUp
IG9yICR0eXBlIGVxICJET01UaW1lU3RhbXAiKSB7Ci0gICAgICAgIHJldHVybiAianNOdW1iZXIo
JHZhbHVlKSI7CisgICAgICAgICMgV2UgY291bGQgaW5zdGVhZCBvdmVybG9hZCBhIGZ1bmN0aW9u
IHRvIHdvcmsgd2l0aCBvcHRpb25hbCBhcyB3ZWxsIGFzIG5vbi1vcHRpb25hbCBudW1iZXJzLCBi
dXQgdGhpcworICAgICAgICAjIGlzIHNsaWdodGx5IGJldHRlciBiZWNhdXNlIGl0IGd1YXJhbnRl
ZXMgd2Ugd2lsbCBmYWlsIHRvIGNvbXBpbGUgaWYgdGhlIElETCBmaWxlIGRvZXNuJ3QgbWF0Y2gg
dGhlIEMrKy4KKyAgICAgICAgbXkgJGZ1bmN0aW9uID0gJHNpZ25hdHVyZS0+aXNOdWxsYWJsZSA/
ICJ0b051bGxhYmxlSlNOdW1iZXIiIDogImpzTnVtYmVyIjsKKyAgICAgICAgaWYgKCRzaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZWZsZWN0In0gYW5kICgkdHlwZSBlcSAidW5zaWdu
ZWQgbG9uZyIgb3IgJHR5cGUgZXEgInVuc2lnbmVkIHNob3J0IikpIHsKKyAgICAgICAgICAgICR2
YWx1ZSA9fiBzL2dldFVuc2lnbmVkSW50ZWdyYWxBdHRyaWJ1dGUvZ2V0SW50ZWdyYWxBdHRyaWJ1
dGUvZzsKKyAgICAgICAgICAgIHJldHVybiAiJGZ1bmN0aW9uKHN0ZDo6bWF4KDAsICIgLiAkdmFs
dWUgLiAiKSkiOworICAgICAgICB9CisgICAgICAgIHJldHVybiAiJGZ1bmN0aW9uKCR2YWx1ZSki
OwogICAgIH0KIAogICAgIGlmICgkY29kZUdlbmVyYXRvci0+SXNFbnVtVHlwZSgkdHlwZSkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ck9iakMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JP
YmpDLnBtCmluZGV4IDY0NjI4MDNhZjMxYzQ2MmY2N2YxZGE5NjI5Y2IwMWM3MDI3ZjgwNDMuLjdh
Mjc0ZmRjMjZkNjFlYjlkNzYxZGMzMjM3NDc2ZDcxNzk3NTgxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvck9iakMucG0KKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yT2JqQy5wbQpAQCAtMTA1
LDcgKzEwNSw2IEBAIG15ICViYXNlVHlwZUhhc2ggPSAoIk9iamVjdCIgPT4gMSwgIk5vZGUiID0+
IDEsICJOb2RlTGlzdCIgPT4gMSwgIk5hbWVkTm9kZU1hcCIKIAogIyBDb25zdGFudHMKIG15ICRz
aG91bGRVc2VDR0NvbG9yID0gZGVmaW5lZCAkRU5We1BMQVRGT1JNX05BTUV9ICYmICRFTlZ7UExB
VEZPUk1fTkFNRX0gbmUgIm1hY29zeCI7Ci1teSAkbnVsbGFibGVJbml0ID0gImJvb2wgaXNOdWxs
ID0gZmFsc2U7IjsKIG15ICRleGNlcHRpb25Jbml0ID0gIldlYkNvcmU6OkV4Y2VwdGlvbkNvZGUg
ZWMgPSAwOyI7CiBteSAkanNDb250ZXh0U2V0dGVyID0gIldlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsiOwogbXkgJGV4Y2VwdGlvblJhaXNlT25FcnJvciA9ICJXZWJDb3JlOjpy
YWlzZU9uRE9NRXJyb3IoZWMpOyI7CkBAIC0xMzYwLDE0ICsxMzU5LDE0IEBAIHN1YiBHZW5lcmF0
ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnRUYWlsIC49ICIp
KSI7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgICMgSXQgd291bGQgYmUgZWFzeSB0byBh
ZGQgbnVsbGFibGUgc3VwcG9ydCBoZXJlIGlmIHdlIGV2ZXIgbmVlZCBpdCwgYnV0IHdlIHByb2Jh
Ymx5IG5ldmVyCisgICAgICAgICAgICAjIHdpbGwgc2luY2Ugd2UgYXJlIHVubGlrZWx5IHRvIGFk
ZCBPYmplY3RpdmUtQyBiaW5kaW5ncyB0aGF0IHJlcXVpcmUgaXQgaW4gdGhlIGZ1dHVyZS4KKyAg
ICAgICAgICAgICMgSW4gcGFydGljdWxhciwgd2UnZCBoYXZlIHRvIGRlY2lkZSB3aGF0IHJldHVy
biB0eXBlIHRvIHVzZSBmb3IgIm51bWJlciBvciBudWxsIi4KKwogICAgICAgICAgICAgbXkgJGdl
dHRlckNvbnRlbnQ7Ci0gICAgICAgICAgICBpZiAoJGhhc0dldHRlckV4Y2VwdGlvbiB8fCAkYXR0
cmlidXRlLT5zaWduYXR1cmUtPmlzTnVsbGFibGUpIHsKKyAgICAgICAgICAgIGlmICgkaGFzR2V0
dGVyRXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgJGdldHRlckNvbnRlbnQgPSAkZ2V0dGVy
Q29udGVudEhlYWQ7CiAgICAgICAgICAgICAgICAgbXkgJGdldHRlcldpdGhvdXRBdHRyaWJ1dGVz
ID0gJGdldHRlckNvbnRlbnRIZWFkID1+IC9cKCR8LCAkLyA/ICJlYyIgOiAiLCBlYyI7Ci0gICAg
ICAgICAgICAgICAgaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+aXNOdWxsYWJsZSkgewotICAg
ICAgICAgICAgICAgICAgICAkZ2V0dGVyQ29udGVudCAuPSAkZ2V0dGVyV2l0aG91dEF0dHJpYnV0
ZXMgPyAiaXNOdWxsIiA6ICIsIGlzTnVsbCI7Ci0gICAgICAgICAgICAgICAgICAgICRnZXR0ZXJX
aXRob3V0QXR0cmlidXRlcyA9IDA7Ci0gICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGlmICgkaGFzR2V0dGVyRXhjZXB0aW9uKSB7CiAgICAgICAgICAgICAgICAgICAgICRnZXR0ZXJD
b250ZW50IC49ICRnZXR0ZXJXaXRob3V0QXR0cmlidXRlcyA/ICJlYyIgOiAiLCBlYyI7CiAgICAg
ICAgICAgICAgICAgfQpAQCAtMTM4MywxMSArMTM4Miw2IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkanNDb250ZXh0U2V0
dGVyXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCBAY3VzdG9tR2V0dGVyQ29u
dGVudCk7CiAKLSAgICAgICAgICAgICMgRklYTUU6IFNob3VsZCB3ZSByZXR1cm4gYSBkZWZhdWx0
IHZhbHVlIHdoZW4gaXNOdWxsID09IHRydWU/Ci0gICAgICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+
c2lnbmF0dXJlLT5pc051bGxhYmxlKSB7Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnRzLCAiICAgICRudWxsYWJsZUluaXRcbiIpOwotICAgICAgICAgICAgfQotCiAgICAgICAgICAg
ICBpZiAoJGhhc0dldHRlckV4Y2VwdGlvbikgewogICAgICAgICAgICAgICAgICMgRGlmZmVyZW50
aWF0ZWQgYmV0d2VlbiB3aGVuIHRoZSByZXR1cm4gdHlwZSBpcyBhIHBvaW50ZXIgYW5kCiAgICAg
ICAgICAgICAgICAgIyBub3QgZm9yIHdoaXRlIHNwYWNlIGlzc3VlIChpZS4gRm9vICpyZXN1bHQg
dnMuIGludCByZXN1bHQpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAppbmRleCAw
ZmU0MmIzYTY4N2EwZTAzZjg0NjEwZmY3MTNlZmQ1MGRjMWQyNmQxLi5kNjBkMWM4OTY2NmRiNDk4
ZmJiMzRiMjAyMTI3ODM4NzUwYTQ5NGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T2Jq
LmNwcApAQCAtMjQxNSw4ICsyNDE1LDcgQEAgZ2RvdWJsZSB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dl
dF9udWxsYWJsZV9kb3VibGVfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqIHNlbGYKICAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxmKSwgMCk7CiAgICAgV2ViQ29yZTo6VGVz
dE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBib29sIGlzTnVsbCA9IGZhbHNl
OwotICAgIGdkb3VibGUgcmVzdWx0ID0gaXRlbS0+bnVsbGFibGVEb3VibGVBdHRyaWJ1dGUoaXNO
dWxsKTsKKyAgICBnZG91YmxlIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlRG91YmxlQXR0cmlidXRl
KCkudmFsdWVPcigwKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yNDI1LDggKzI0MjQs
NyBAQCBnbG9uZyB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxsYWJsZV9sb25nX2F0dHJpYnV0
ZShXZWJLaXRET01UZXN0T2JqKiBzZWxmKQogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1Rf
T0JKKHNlbGYpLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0gV2ViS2l0Ojpjb3Jl
KHNlbGYpOwotICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7Ci0gICAgZ2xvbmcgcmVzdWx0ID0gaXRl
bS0+bnVsbGFibGVMb25nQXR0cmlidXRlKGlzTnVsbCk7CisgICAgZ2xvbmcgcmVzdWx0ID0gaXRl
bS0+bnVsbGFibGVMb25nQXR0cmlidXRlKCkudmFsdWVPcigwKTsKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCkBAIC0yNDM1LDggKzI0MzMsNyBAQCBnYm9vbGVhbiB3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2dldF9udWxsYWJsZV9ib29sZWFuX2F0dHJpYnV0ZShXZWJLaXRET01UZXN0T2JqKiBzZQogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKICAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfRE9NX0lTX1RFU1RfT0JKKHNlbGYpLCBGQUxTRSk7CiAgICAgV2ViQ29y
ZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBib29sIGlzTnVsbCA9
IGZhbHNlOwotICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlQm9vbGVhbkF0dHJp
YnV0ZShpc051bGwpOworICAgIGdib29sZWFuIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlQm9vbGVh
bkF0dHJpYnV0ZSgpLnZhbHVlT3IoMCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMjQ0
NSw4ICsyNDQyLDcgQEAgZ2NoYXIqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxhYmxlX3N0
cmluZ19hdHRyaWJ1dGUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikKICAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lU
X0RPTV9JU19URVNUX09CSihzZWxmKSwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9
IFdlYktpdDo6Y29yZShzZWxmKTsKLSAgICBib29sIGlzTnVsbCA9IGZhbHNlOwotICAgIGdjaGFy
KiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0ZW0tPm51bGxhYmxlU3RyaW5nQXR0cmli
dXRlKGlzTnVsbCkpOworICAgIGdjaGFyKiByZXN1bHQgPSBjb252ZXJ0VG9VVEY4U3RyaW5nKGl0
ZW0tPm51bGxhYmxlU3RyaW5nQXR0cmlidXRlKCkpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
QEAgLTI0NTUsOCArMjQ1MSw3IEBAIGdsb25nIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X251bGxh
YmxlX2xvbmdfc2V0dGFibGVfYXR0cmlidXRlKFdlYktpdERPTVRlc3RPYmoqCiAgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfVEVTVF9PQkooc2VsZiksIDApOwogICAgIFdlYkNvcmU6OlRlc3RPYmoq
IGl0ZW0gPSBXZWJLaXQ6OmNvcmUoc2VsZik7Ci0gICAgYm9vbCBpc051bGwgPSBmYWxzZTsKLSAg
ICBnbG9uZyByZXN1bHQgPSBpdGVtLT5udWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZShpc051
bGwpOworICAgIGdsb25nIHJlc3VsdCA9IGl0ZW0tPm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmli
dXRlKCkudmFsdWVPcigwKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yNDc0LDkgKzI0
NjksOCBAQCBnbG9uZyB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2dldF9udWxsYWJsZV9zdHJpbmdfdmFs
dWUoV2ViS2l0RE9NVGVzdE9iaiogc2VsZiwgR0VycgogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9ET01fSVNfVEVTVF9PQkooc2VsZiksIDApOwogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKCFlcnJvciB8fCAhKmVycm9yLCAwKTsKICAgICBXZWJDb3JlOjpUZXN0T2JqKiBpdGVtID0g
V2ViS2l0Ojpjb3JlKHNlbGYpOwotICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CiAgICAgV2ViQ29y
ZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgZ2xvbmcgcmVzdWx0ID0gaXRlbS0+bnVsbGFi
bGVTdHJpbmdWYWx1ZShpc051bGwsIGVjKTsKKyAgICBnbG9uZyByZXN1bHQgPSBpdGVtLT5udWxs
YWJsZVN0cmluZ1ZhbHVlKGVjKS52YWx1ZU9yKDApOwogICAgIGlmIChlYykgewogICAgICAgICBX
ZWJDb3JlOjpFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24gZWNkZXNjKGVjKTsKICAgICAgICAgZ19z
ZXRfZXJyb3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIp
LCBlY2Rlc2MuY29kZSwgZWNkZXNjLm5hbWUpOwpAQCAtMjUxNSw4ICsyNTA5LDcgQEAgV2ViS2l0
RE9NVGVzdE5vZGUqIHdlYmtpdF9kb21fdGVzdF9vYmpfZ2V0X3B1dF9mb3J3YXJkc19udWxsYWJs
ZV9hdHRyaWJ1dGUoV2ViS2kKICAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0RPTV9JU19URVNUX09CSihzZWxm
KSwgMCk7CiAgICAgV2ViQ29yZTo6VGVzdE9iaiogaXRlbSA9IFdlYktpdDo6Y29yZShzZWxmKTsK
LSAgICBib29sIGlzTnVsbCA9IGZhbHNlOwotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0Tm9kZT4g
Z29iamVjdFJlc3VsdCA9IFdURjo6Z2V0UHRyKGl0ZW0tPnB1dEZvcndhcmRzTnVsbGFibGVBdHRy
aWJ1dGUoaXNOdWxsKSk7CisgICAgUmVmUHRyPFdlYkNvcmU6OlRlc3ROb2RlPiBnb2JqZWN0UmVz
dWx0ID0gV1RGOjpnZXRQdHIoaXRlbS0+cHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZSgpKTsK
ICAgICByZXR1cm4gV2ViS2l0OjpraXQoZ29iamVjdFJlc3VsdC5nZXQoKSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmou
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAKaW5kZXggNzdiYTRlZDhjODY5ZmQ1OGFiZjUzZjBiNzUyNzM3OTUyZDQzZTlkMy4uZTVmM2Jk
MDMwYzJiNzVmZGM4OWFlM2VkYThiOTgyYTcwZGI0YWNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKQEAgLTE4MjQs
MTEgKzE4MjQsOCBAQCBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZURvdWJsZUF0dHJp
YnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCogc2xvdAogICAgICAgICAgICAgcmV0dXJu
IHJlcG9ydERlcHJlY2F0ZWRHZXR0ZXJFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm51bGxhYmxl
RG91YmxlQXR0cmlidXRlIik7CiAgICAgICAgIHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigq
c3RhdGUsICJUZXN0T2JqIiwgIm51bGxhYmxlRG91YmxlQXR0cmlidXRlIik7CiAgICAgfQotICAg
IGJvb2wgaXNOdWxsID0gZmFsc2U7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBw
ZWQoKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzTnVtYmVyKGltcGwubnVsbGFibGVEb3VibGVB
dHRyaWJ1dGUoaXNOdWxsKSk7Ci0gICAgaWYgKGlzTnVsbCkKLSAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bGwoKSk7CisgICAgSlNWYWx1ZSByZXN1bHQgPSB0b051bGxhYmxlSlNO
dW1iZXIoaW1wbC5udWxsYWJsZURvdWJsZUF0dHJpYnV0ZSgpKTsKICAgICByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTE4NDQsMTEgKzE4NDEsOCBAQCBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RPYmpOdWxsYWJsZUxvbmdBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgSlNP
YmplY3QqIHNsb3RCYQogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydERlcHJlY2F0ZWRHZXR0ZXJF
cnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm51bGxhYmxlTG9uZ0F0dHJpYnV0ZSIpOwogICAgICAg
ICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJudWxsYWJs
ZUxvbmdBdHRyaWJ1dGUiKTsKICAgICB9Ci0gICAgYm9vbCBpc051bGwgPSBmYWxzZTsKICAgICBh
dXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgpOwotICAgIEpTVmFsdWUgcmVzdWx0ID0g
anNOdW1iZXIoaW1wbC5udWxsYWJsZUxvbmdBdHRyaWJ1dGUoaXNOdWxsKSk7Ci0gICAgaWYgKGlz
TnVsbCkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc051bGwoKSk7CisgICAgSlNW
YWx1ZSByZXN1bHQgPSB0b051bGxhYmxlSlNOdW1iZXIoaW1wbC5udWxsYWJsZUxvbmdBdHRyaWJ1
dGUoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShyZXN1bHQpOwogfQogCkBAIC0xODY0
LDExICsxODU4LDggQEAgRW5jb2RlZEpTVmFsdWUganNUZXN0T2JqTnVsbGFibGVCb29sZWFuQXR0
cmlidXRlKEV4ZWNTdGF0ZSogc3RhdGUsIEpTT2JqZWN0KiBzbG8KICAgICAgICAgICAgIHJldHVy
biByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJudWxsYWJs
ZUJvb2xlYW5BdHRyaWJ1dGUiKTsKICAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9y
KCpzdGF0ZSwgIlRlc3RPYmoiLCAibnVsbGFibGVCb29sZWFuQXR0cmlidXRlIik7CiAgICAgfQot
ICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CiAgICAgYXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndy
YXBwZWQoKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVhbihpbXBsLm51bGxhYmxlQm9v
bGVhbkF0dHJpYnV0ZShpc051bGwpKTsKLSAgICBpZiAoaXNOdWxsKQotICAgICAgICByZXR1cm4g
SlNWYWx1ZTo6ZW5jb2RlKGpzTnVsbCgpKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IGpzQm9vbGVh
bihpbXBsLm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKHJlc3VsdCk7CiB9CiAKQEAgLTE4ODQsMTEgKzE4NzUsOCBAQCBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3RPYmpOdWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09i
amVjdCogc2xvdAogICAgICAgICAgICAgcmV0dXJuIHJlcG9ydERlcHJlY2F0ZWRHZXR0ZXJFcnJv
cigqc3RhdGUsICJUZXN0T2JqIiwgIm51bGxhYmxlU3RyaW5nQXR0cmlidXRlIik7CiAgICAgICAg
IHJldHVybiB0aHJvd0dldHRlclR5cGVFcnJvcigqc3RhdGUsICJUZXN0T2JqIiwgIm51bGxhYmxl
U3RyaW5nQXR0cmlidXRlIik7CiAgICAgfQotICAgIGJvb2wgaXNOdWxsID0gZmFsc2U7CiAgICAg
YXV0byYgaW1wbCA9IGNhc3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBKU1ZhbHVlIHJlc3VsdCA9
IGpzU3RyaW5nV2l0aENhY2hlKHN0YXRlLCBpbXBsLm51bGxhYmxlU3RyaW5nQXR0cmlidXRlKGlz
TnVsbCkpOwotICAgIGlmIChpc051bGwpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdWxsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0ganNTdHJpbmdXaXRoQ2FjaGUoc3RhdGUs
IGltcGwubnVsbGFibGVTdHJpbmdBdHRyaWJ1dGUoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCkBAIC0xOTA0LDExICsxODkyLDggQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwg
SlNPYmplY3QKICAgICAgICAgICAgIHJldHVybiByZXBvcnREZXByZWNhdGVkR2V0dGVyRXJyb3Io
KnN0YXRlLCAiVGVzdE9iaiIsICJudWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogICAg
ICAgICByZXR1cm4gdGhyb3dHZXR0ZXJUeXBlRXJyb3IoKnN0YXRlLCAiVGVzdE9iaiIsICJudWxs
YWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZSIpOwogICAgIH0KLSAgICBib29sIGlzTnVsbCA9IGZh
bHNlOwogICAgIGF1dG8mIGltcGwgPSBjYXN0ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgSlNWYWx1
ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLm51bGxhYmxlTG9uZ1NldHRhYmxlQXR0cmlidXRlKGlz
TnVsbCkpOwotICAgIGlmIChpc051bGwpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNOdWxsKCkpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9OdWxsYWJsZUpTTnVtYmVyKGltcGwu
bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUoKSk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShyZXN1bHQpOwogfQogCkBAIC0xOTI1LDEyICsxOTEwLDkgQEAgRW5jb2RlZEpTVmFsdWUg
anNUZXN0T2JqTnVsbGFibGVTdHJpbmdWYWx1ZShFeGVjU3RhdGUqIHN0YXRlLCBKU09iamVjdCog
c2xvdEJhc2UKICAgICAgICAgcmV0dXJuIHRocm93R2V0dGVyVHlwZUVycm9yKCpzdGF0ZSwgIlRl
c3RPYmoiLCAibnVsbGFibGVTdHJpbmdWYWx1ZSIpOwogICAgIH0KICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKLSAgICBib29sIGlzTnVsbCA9IGZhbHNlOwogICAgIGF1dG8mIGltcGwgPSBjYXN0
ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgSlNWYWx1ZSByZXN1bHQgPSBqc051bWJlcihpbXBsLm51
bGxhYmxlU3RyaW5nVmFsdWUoaXNOdWxsLCBlYykpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9O
dWxsYWJsZUpTTnVtYmVyKGltcGwubnVsbGFibGVTdHJpbmdWYWx1ZShlYykpOwogICAgIHNldERP
TUV4Y2VwdGlvbihzdGF0ZSwgZWMpOwotICAgIGlmIChpc051bGwpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUoanNOdWxsKCkpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVz
dWx0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L09iakMvRE9NVGVzdE9iai5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9PYmpDL0RPTVRlc3RPYmoubW0KaW5kZXggNWE1ZWJmNTlkMzU5N2E1NmEwNGZkMzFhMmQy
OTQyNWZmMjdkZjEyMS4uNTc4N2QwNTdmODVlMjYzMzUxOTZkYzQzMzVhZDE2MGI1ZDZiNDZmMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L09iakMvRE9N
VGVzdE9iai5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvT2Jq
Qy9ET01UZXN0T2JqLm1tCkBAIC04MDAsMzEgKzgwMCwzMSBAQCAtIChpbnQpcmVwbGFjZWFibGVB
dHRyaWJ1dGUKIC0gKGRvdWJsZSludWxsYWJsZURvdWJsZUF0dHJpYnV0ZQogewogICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+bnVsbGFi
bGVEb3VibGVBdHRyaWJ1dGUoaXNOdWxsKTsKKyAgICByZXR1cm4gSU1QTC0+bnVsbGFibGVEb3Vi
bGVBdHRyaWJ1dGUoKTsKIH0KIAogLSAoaW50KW51bGxhYmxlTG9uZ0F0dHJpYnV0ZQogewogICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4gSU1QTC0+
bnVsbGFibGVMb25nQXR0cmlidXRlKGlzTnVsbCk7CisgICAgcmV0dXJuIElNUEwtPm51bGxhYmxl
TG9uZ0F0dHJpYnV0ZSgpOwogfQogCiAtIChCT09MKW51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZQog
ewogICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKLSAgICByZXR1cm4g
SU1QTC0+bnVsbGFibGVCb29sZWFuQXR0cmlidXRlKGlzTnVsbCk7CisgICAgcmV0dXJuIElNUEwt
Pm51bGxhYmxlQm9vbGVhbkF0dHJpYnV0ZSgpOwogfQogCiAtIChOU1N0cmluZyAqKW51bGxhYmxl
U3RyaW5nQXR0cmlidXRlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOwotICAgIHJldHVybiBJTVBMLT5udWxsYWJsZVN0cmluZ0F0dHJpYnV0ZShpc051bGwpOwor
ICAgIHJldHVybiBJTVBMLT5udWxsYWJsZVN0cmluZ0F0dHJpYnV0ZSgpOwogfQogCiAtIChpbnQp
bnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1dGUKIHsKICAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7Ci0gICAgcmV0dXJuIElNUEwtPm51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlKGlzTnVsbCk7CisgICAgcmV0dXJuIElNUEwtPm51bGxhYmxlTG9uZ1NldHRhYmxl
QXR0cmlidXRlKCk7CiB9CiAKIC0gKHZvaWQpc2V0TnVsbGFibGVMb25nU2V0dGFibGVBdHRyaWJ1
dGU6KGludCluZXdOdWxsYWJsZUxvbmdTZXR0YWJsZUF0dHJpYnV0ZQpAQCAtODM3LDcgKzgzNyw3
IEBAIC0gKGludCludWxsYWJsZVN0cmluZ1ZhbHVlCiB7CiAgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOwogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGludCByZXN1bHQgPSBJTVBMLT5udWxsYWJsZVN0cmluZ1ZhbHVlKGlzTnVsbCwgZWMpOwor
ICAgIGludCByZXN1bHQgPSBJTVBMLT5udWxsYWJsZVN0cmluZ1ZhbHVlKGVjKTsKICAgICBXZWJD
b3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC04NjMs
NyArODYzLDcgQEAgLSAoRE9NVGVzdE5vZGUgKilwdXRGb3J3YXJkc0F0dHJpYnV0ZQogLSAoRE9N
VGVzdE5vZGUgKilwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlCiB7CiAgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwotICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIo
SU1QTC0+cHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJpYnV0ZShpc051bGwpKSk7CisgICAgcmV0dXJu
IGtpdChXVEY6OmdldFB0cihJTVBMLT5wdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlKCkpKTsK
IH0KIAogLSAodm9pZCl2b2lkTWV0aG9kCg==
</data>
<flag name="review"
          id="291301"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>