<?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>234485</bug_id>
          
          <creation_ts>2021-12-19 00:45:04 -0800</creation_ts>
          <short_desc>[GTK][a11y] Implement list markers when building with ATSPI</short_desc>
          <delta_ts>2021-12-21 00:47:19 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>230253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>aperez</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1825422</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-19 00:45:04 -0800</bug_when>
    <thetext>Properly expose the list item markers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825425</commentid>
    <comment_count>1</comment_count>
      <attachid>447545</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-19 00:58:22 -0800</bug_when>
    <thetext>Created attachment 447545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1825905</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-12-21 00:47:19 -0800</bug_when>
    <thetext>Committed r287304 (245456@trunk): &lt;https://commits.webkit.org/245456@trunk&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447545</attachid>
            <date>2021-12-19 00:58:22 -0800</date>
            <delta_ts>2021-12-20 04:34:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-atspi-list-markers.diff</filename>
            <type>text/plain</type>
            <size>39169</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MzNmZDY2ODExMTUuLmYyNzU4MTc1MTkzOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDQyIEBACisyMDIxLTEyLTE5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXVthMTF5XSBJbXBsZW1lbnQgbGlzdCBtYXJrZXJz
IHdoZW4gYnVpbGRpbmcgd2l0aCBBVFNQSQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM0NDg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRm9yIGxpc3QgaXRlbSBtYXJrZXJzIGluIEFUU1BJIHdlIGFyZSBm
b2xsb3dpbmcgdGhlIGNocm9taXVtIGFwcHJvYWNoLCBleHBvc2luZyB0aGUgbWFya2VycyBhcyBo
eXBlcmxpbmtzLCBzbworICAgICAgICBpbmNsdWRlZCBpbiB0aGUgbGlzdCBpdGVtIHRleHQgc3Ry
aW5nIGFzIHRoZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyLiBUaGlzIGFwcHJvYWNoIGFs
c28gYWxsb3dzIHRvIGV4cG9zZQorICAgICAgICBpbWFnZSBtYXJrZXJzLiBTaW5jZSB3ZSBkb24n
dCBoYXZlIGEgbGlzdCBtYXJrZXIgcm9sZSBpbiBBVFNQSSwgd2UgdXNlIGVpdGhlciB0ZXh0IG9y
IGltYWdlIHJvbGVzLiBOZXcgbWV0aG9kcworICAgICAgICBoYXZlIGJlZW4gYWRkZWQgdG8gZ2V0
IHRoZSByb2xlLCByb2xlIG5hbWUgYW5kIGxvY2FsaXplZCByb2xlIG5hbWUgZm9yIHRoZSBjYXNl
cyBpbiB3aGljaCB0aGVyZSBpc24ndCBhIGRpcmVjdAorICAgICAgICBtYXRjaCBiZXR3ZWVuIHRo
ZSB3ZWJjb3JlIHJvbGUgYW5kIHRoZSBhdHNwaSByb2xlLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlIGNvbnN0KTogSW4gQVRTUEkgd2Ug
d2FudCB0aGUgdGV4dCB3aXRoIHN1ZmZpeC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3Np
YmlsaXR5T2JqZWN0QXRzcGk6OmludGVyZmFjZXNGb3JPYmplY3QpOiBNYWtlIGl0ZW0gbWFya2Vy
cyBpbXBsZW1lbnQgaHlwZXJsaW5rIGludGVyZmFjZSBhbmQKKyAgICAgICAgZWl0aGVyIHRleHQg
b3IgaW1hZ2UuCisgICAgICAgIChXZWJDb3JlOjphdHNwaVJvbGUpOiBBc3NlcnQgaWYgTGlzdE1h
cmtlciByb2xlIGlzIHBhc3NlZCBzaW5jZSB0aGF0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlLgorICAg
ICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjplZmZlY3RpdmVSb2xlIGNv
bnN0KTogSGFuZGxlIHRoZSBMaXN0TWFya2VyIHJvbGUgYXMgc3BlY2lhbCBjYXNlIGNhc2UuCisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnJvbGUgY29uc3QpOiBD
aGVjayBpZiB0aGVyZSdzIGFuIGVmZmVjdGl2ZSByb2xlIGZpcnN0LgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjplZmZlY3RpdmVSb2xlTmFtZSBjb25zdCk6IEhh
bmRsZSBlZmZlY3RpdmUgcm9sZSBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjpyb2xlTmFtZSBjb25zdCk6IENoZWNrIGlmIHRoZXJlJ3MgYW4gZWZmZWN0
aXZlIHJvbGUgZmlyc3QuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRz
cGk6OmVmZmVjdGl2ZUxvY2FsaXplZFJvbGVOYW1lIGNvbnN0KTogSGFuZGxlIGVmZmVjdGl2ZSBy
b2xlIGhlcmUuCisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omxv
Y2FsaXplZFJvbGVOYW1lIGNvbnN0KTogQ2hlY2sgaWYgdGhlcmUncyBhbiBlZmZlY3RpdmUgcm9s
ZSBmaXJzdC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaS5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvYXRzcGkvQWNjZXNzaWJpbGl0eU9i
amVjdFRleHRBdHNwaS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OnRleHQgY29uc3QpOiBSZW1vdmUgdGhlIG1haW4gdGhyZWFkIG1pY3JvLW9wdGltaXph
dGlvbiB0byBhdm9pZCBtb3JlCisgICAgICAgIGR1cGxpY2F0ZWQgY29kZSBhbmQgaW5zZXJ0IHRo
ZSBvYmplY3QgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGZvciBsaXN0IGl0ZW1zIGhhdmluZyBhIG1h
cmtlci4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdElucHV0T2Zmc2V0KTogSGVscGVyIGZ1bmN0
aW9uIHRvIGFkanVzdCB0aGUgaW5wdXQgb2Zmc2V0IGluIGNhc2Ugb2YgaGF2aW5nIGEgbGlzdCBp
dGVtIG1hcmtlci4KKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdE91dHB1dE9mZnNldCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBhZGp1c3QgdGhlIG91dHB1dCBvZmZzZXQgaW4gY2FzZSBvZiBoYXZpbmcg
YSBsaXN0IGl0ZW0gbWFya2VyLgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dEF0c3BpOjp0ZXh0SW5zZXJ0ZWQpOiBVc2UgYWRqdXN0T3V0cHV0T2Zmc2V0KCkuCisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnRleHREZWxldGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmJvdW5kYXJ5T2Zm
c2V0IGNvbnN0KTogQWRqdXN0IG9mZnNldHMgYW5kIGhhbmRsZSB3b3JkcyBhcyBzcGVjaWFsIGNh
c2UgdG8KKyAgICAgICAgYWx3YXlzIGNvbnNpZGVyIHRoZSBsaXN0IG1hcmtlciBhcyBhIHdvcmQu
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Om9mZnNldEF0UG9p
bnQgY29uc3QpOiBVc2UgYWRqdXN0T3V0cHV0T2Zmc2V0KCkuCisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnRleHRBdHRyaWJ1dGVzIGNvbnN0KTogQWRqdXN0IG9m
ZnNldHMgYW5kIGhhbmRsZSBsaXN0IGl0ZW0gbWFya2VyIGFzIHNwZWNpYWwKKyAgICAgICAgY2Fz
ZSB0byBhbHdheXMgY29uc2lkZXIgdGhlIG1hcmtlciBhcyBhbiBpbmRlcGVuZGVudCB0ZXh0IHJ1
bi4KKwogMjAyMS0xMi0xNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CiAKICAgICAgICAgW0dUS11bYTExeV0gQWRkIHN1cHBvcnQgZm9yIGxvYWRpbmcgZXZlbnRz
IHdoZW4gYnVpbGRpbmcgd2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNTI2MGM2
N2E4NWRhLi4xNmJlNmE1ZjJkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNzgxLDEwICs3
ODEsMTUgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnN0cmluZ1ZhbHVlKCkg
Y29uc3QKICAgICAgICAgfQogICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVuZGVyTWVudUxpc3Q+
KCptX3JlbmRlcmVyKS50ZXh0KCk7CiAgICAgfQotICAgIAotICAgIGlmIChpczxSZW5kZXJMaXN0
TWFya2VyPigqbV9yZW5kZXJlcikpCisKKyAgICBpZiAoaXM8UmVuZGVyTGlzdE1hcmtlcj4oKm1f
cmVuZGVyZXIpKSB7CisjaWYgVVNFKEFUU1BJKQorICAgICAgICByZXR1cm4gZG93bmNhc3Q8UmVu
ZGVyTGlzdE1hcmtlcj4oKm1fcmVuZGVyZXIpLnRleHRXaXRoU3VmZml4KCkudG9TdHJpbmcoKTsK
KyNlbHNlCiAgICAgICAgIHJldHVybiBkb3duY2FzdDxSZW5kZXJMaXN0TWFya2VyPigqbV9yZW5k
ZXJlcikudGV4dFdpdGhvdXRTdWZmaXgoKS50b1N0cmluZygpOwotICAgIAorI2VuZGlmCisgICAg
fQorCiAgICAgaWYgKGlzV2ViQXJlYSgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2li
aWxpdHlPYmplY3RBdHNwaS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKaW5kZXggNTZkNTUzMjdkZWQ5Li5kYjU2OWUx
YTBkMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvYXRzcGkvQWNj
ZXNzaWJpbGl0eU9iamVjdEF0c3BpLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5jcHAKQEAgLTczLDE2ICs3Myw2IEBA
IE9wdGlvblNldDxBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OkludGVyZmFjZT4gQWNjZXNzaWJp
bGl0eU9iamVjdEF0c3BpOjppbnRlcmZhCiAgICAgICAgICAgICBpZiAoKHJlbmRlcmVyICYmIHJl
bmRlcmVyLT5jaGlsZHJlbklubGluZSgpKSB8fCByb2xlSXNUZXh0VHlwZShjb3JlT2JqZWN0LnJv
bGVWYWx1ZSgpKSB8fCBjb3JlT2JqZWN0LmlzTWF0aFRva2VuKCkpCiAgICAgICAgICAgICAgICAg
aW50ZXJmYWNlcy5hZGQoSW50ZXJmYWNlOjpUZXh0KTsKICAgICAgICAgfQotCi0gICAgICAgIC8v
IEFkZCB0aGUgVGV4dCBpbnRlcmZhY2UgZm9yIGxpc3QgaXRlbXMgd2hvc2UgZmlyc3QgYWNjZXNz
aWJsZSBjaGlsZCBoYXMgYSB0ZXh0IHJlbmRlcmVyLgotICAgICAgICBpZiAoY29yZU9iamVjdC5y
b2xlVmFsdWUoKSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW0pIHsKLSAgICAgICAgICAg
IGNvbnN0IGF1dG8mIGNoaWxkcmVuID0gY29yZU9iamVjdC5jaGlsZHJlbigpOwotICAgICAgICAg
ICAgaWYgKCFjaGlsZHJlbi5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBhdXRvIGNoaWxk
SW50ZXJmYWNlcyA9IGludGVyZmFjZXNGb3JPYmplY3QoKmNoaWxkcmVuWzBdKTsKLSAgICAgICAg
ICAgICAgICBpZiAoY2hpbGRJbnRlcmZhY2VzLmNvbnRhaW5zKEludGVyZmFjZTo6VGV4dCkpCi0g
ICAgICAgICAgICAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6VGV4dCk7Ci0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoY29yZU9iamVjdC5zdXBwb3J0
c1JhbmdlVmFsdWUoKSkKQEAgLTEwOSw2ICs5OSwxNCBAQCBPcHRpb25TZXQ8QWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjpJbnRlcmZhY2U+IEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6aW50ZXJm
YQogICAgICAgICB8fCBjb3JlT2JqZWN0LnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpSb3dIZWFkZXIpCiAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6VGFibGVDZWxs
KTsKIAorICAgIGlmIChjb3JlT2JqZWN0LnJvbGVWYWx1ZSgpID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpMaXN0TWFya2VyICYmIHJlbmRlcmVyKSB7CisgICAgICAgIGlmIChyZW5kZXJlci0+aXNJbWFn
ZSgpKQorICAgICAgICAgICAgaW50ZXJmYWNlcy5hZGQoSW50ZXJmYWNlOjpJbWFnZSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6VGV4dCk7Cisg
ICAgICAgIGludGVyZmFjZXMuYWRkKEludGVyZmFjZTo6SHlwZXJsaW5rKTsKKyAgICB9CisKICAg
ICByZXR1cm4gaW50ZXJmYWNlczsKIH0KIApAQCAtMjcyLDggKzI3MCw2IEBAIHN0YXRpYyB1bnNp
Z25lZCBhdHNwaVJvbGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpHcmFwaGljc1N5bWJvbDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJ
bWFnZToKICAgICAgICAgcmV0dXJuIEF0c3BpOjpSb2xlOjpJbWFnZTsKLSAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMaXN0TWFya2VyOgotICAgICAgICByZXR1cm4gQXRzcGk6OlJvbGU6OlRl
eHQ7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgogICAgICAg
ICByZXR1cm4gQXRzcGk6OlJvbGU6OkFydGljbGU7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RG9jdW1lbnQ6CkBAIC0zOTMsNiArMzg5LDggQEAgc3RhdGljIHVuc2lnbmVkIGF0c3BpUm9s
ZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRh
YmxlSGVhZGVyQ29udGFpbmVyOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZhbHVlSW5k
aWNhdG9yOgogICAgICAgICByZXR1cm4gQXRzcGk6OlJvbGU6OlVua25vd247CisgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGlzdE1hcmtlcjoKKyAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtMTI0MywzMCArMTI0MSwxMDQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6Omxv
YWRFdmVudChjb25zdCBjaGFyKiBldmVudCkKICAgICBtX3Jvb3QuYXRzcGkoKS5sb2FkRXZlbnQo
KnRoaXMsIGV2ZW50KTsKIH0KIAorc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gQWNjZXNzaWJpbGl0
eU9iamVjdEF0c3BpOjplZmZlY3RpdmVSb2xlKCkgY29uc3QKK3sKKyAgICBSRUxFQVNFX0FTU0VS
VCghaXNNYWluVGhyZWFkKCkpOworICAgIFJFTEVBU0VfQVNTRVJUKG1fYXhPYmplY3QpOworCisg
ICAgc3dpdGNoIChtX2F4T2JqZWN0LT5yb2xlVmFsdWUoKSkgeworICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6Okxpc3RNYXJrZXI6CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRy
aWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8dW5zaWduZWQ+KFt0aGlzXSgpIC0+IHVuc2lnbmVkIHsK
KyAgICAgICAgICAgIGlmIChtX2NvcmVPYmplY3QpCisgICAgICAgICAgICAgICAgbV9jb3JlT2Jq
ZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKKworICAgICAgICAgICAgaWYgKCFtX2NvcmVPYmpl
Y3QpCisgICAgICAgICAgICAgICAgcmV0dXJuIEF0c3BpOjpSb2xlOjpJbnZhbGlkUm9sZTsKKwor
ICAgICAgICAgICAgYXV0byogcmVuZGVyZXIgPSBtX2NvcmVPYmplY3QtPnJlbmRlcmVyKCk7Cisg
ICAgICAgICAgICByZXR1cm4gcmVuZGVyZXIgJiYgcmVuZGVyZXItPmlzSW1hZ2UoKSA/IEF0c3Bp
OjpSb2xlOjpJbWFnZSA6IEF0c3BpOjpSb2xlOjpUZXh0OworICAgICAgICB9KTsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
fQorCiB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnJvbGUoKSBjb25zdAogewog
ICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKCFtX2F4T2JqZWN0
KQogICAgICAgICByZXR1cm4gQXRzcGk6OlJvbGU6OlVua25vd247CiAKKyAgICBpZiAoYXV0byBl
ZmZlY3RpdmUgPSBlZmZlY3RpdmVSb2xlKCkpCisgICAgICAgIHJldHVybiAqZWZmZWN0aXZlOwor
CiAgICAgcmV0dXJuIGF0c3BpUm9sZShtX2F4T2JqZWN0LT5yb2xlVmFsdWUoKSk7CiB9CiAKK1N0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmVmZmVjdGl2ZVJvbGVOYW1lKCkgY29uc3QK
K3sKKyAgICBhdXRvIGVmZmVjdGl2ZSA9IGVmZmVjdGl2ZVJvbGUoKTsKKyAgICBpZiAoIWVmZmVj
dGl2ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHN3aXRjaCAoKmVmZmVjdGl2ZSkgewor
ICAgIGNhc2UgQXRzcGk6OlJvbGU6OkltYWdlOgorICAgICAgICByZXR1cm4gImltYWdlIjsKKyAg
ICBjYXNlIEF0c3BpOjpSb2xlOjpUZXh0OgorICAgICAgICByZXR1cm4gInRleHQiOworICAgIGNh
c2UgQXRzcGk6OlJvbGU6OkludmFsaWRSb2xlOgorICAgICAgICByZXR1cm4gImludmFsaWQiOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7Cit9CisKIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OnJv
bGVOYW1lKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwog
ICAgIGlmICghbV9heE9iamVjdCkKICAgICAgICAgcmV0dXJuICJpbnZhbGlkIjsKIAorICAgIGF1
dG8gZWZmZWN0aXZlID0gZWZmZWN0aXZlUm9sZU5hbWUoKTsKKyAgICBpZiAoIWVmZmVjdGl2ZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBlZmZlY3RpdmU7CisKICAgICByZXR1cm4gbV9heE9i
amVjdC0+cm9sZVBsYXRmb3JtU3RyaW5nKCk7CiB9CiAKK2NvbnN0IGNoYXIqIEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaTo6ZWZmZWN0aXZlTG9jYWxpemVkUm9sZU5hbWUoKSBjb25zdAoreworICAg
IGF1dG8gZWZmZWN0aXZlID0gZWZmZWN0aXZlUm9sZSgpOworICAgIGlmICghZWZmZWN0aXZlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHN3aXRjaCAoKmVmZmVjdGl2ZSkgeworICAg
IGNhc2UgQXRzcGk6OlJvbGU6OkltYWdlOgorICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUF0
c3BpOjpsb2NhbGl6ZWRSb2xlTmFtZShBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2UpOworICAgIGNh
c2UgQXRzcGk6OlJvbGU6OlRleHQ6CisgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QXRzcGk6
OmxvY2FsaXplZFJvbGVOYW1lKEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNUZXh0KTsKKyAgICBj
YXNlIEF0c3BpOjpSb2xlOjpJbnZhbGlkUm9sZToKKyAgICAgICAgcmV0dXJuIF8oImludmFsaWQi
KTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOworfQorCiBjb25zdCBjaGFyKiBBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OmxvY2FsaXplZFJvbGVOYW1lKCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogICAgIGlmICghbV9heE9iamVjdCkKICAgICAgICAgcmV0dXJuIF8o
ImludmFsaWQiKTsKIAorICAgIGlmIChjb25zdCBhdXRvKiBlZmZlY3RpdmUgPSBlZmZlY3RpdmVM
b2NhbGl6ZWRSb2xlTmFtZSgpKQorICAgICAgICByZXR1cm4gZWZmZWN0aXZlOworCiAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlBdHNwaTo6bG9jYWxpemVkUm9sZU5hbWUobV9heE9iamVjdC0+cm9s
ZVZhbHVlKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAppbmRleCBhNDNmMjY4Y2E4
ZWEuLjFhYWM1ZTNhMjI1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RBdHNwaS5oCkBAIC0xNjUsNyAr
MTY1LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjaGlsZEFkZGVkKEFjY2Vzc2liaWxpdHlPYmpl
Y3RBdHNwaSYpOwogICAgIHZvaWQgY2hpbGRSZW1vdmVkKEFjY2Vzc2liaWxpdHlPYmplY3RBdHNw
aSYpOwogCisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gZWZmZWN0aXZlUm9sZSgpIGNvbnN0
OworICAgIFN0cmluZyBlZmZlY3RpdmVSb2xlTmFtZSgpIGNvbnN0OwogICAgIFN0cmluZyByb2xl
TmFtZSgpIGNvbnN0OworICAgIGNvbnN0IGNoYXIqIGVmZmVjdGl2ZUxvY2FsaXplZFJvbGVOYW1l
KCkgY29uc3Q7CiAgICAgY29uc3QgY2hhciogbG9jYWxpemVkUm9sZU5hbWUoKSBjb25zdDsKICAg
ICB2b2lkIGJ1aWxkQXR0cmlidXRlcyhHVmFyaWFudEJ1aWxkZXIqKSBjb25zdDsKICAgICB2b2lk
IGJ1aWxkUmVsYXRpb25TZXQoR1ZhcmlhbnRCdWlsZGVyKikgY29uc3Q7CkBAIC0yNDMsNiArMjQ2
LDcgQEAgcHJpdmF0ZToKICAgICBBdG9taWM8Ym9vbD4gbV9pc1JlZ2lzdGVyZWQgeyBmYWxzZSB9
OwogICAgIFN0cmluZyBtX3BhdGg7CiAgICAgU3RyaW5nIG1faHlwZXJsaW5rUGF0aDsKKyAgICBt
dXRhYmxlIHN0ZDo6YXRvbWljPGJvb2w+IG1faGFzTGlzdE1hcmtlckF0U3RhcnQ7CiAgICAgbXV0
YWJsZSBpbnQgbV9pbmRleEluUGFyZW50IHsgLTEgfTsKICAgICBtdXRhYmxlIExvY2sgbV9yb290
TG9jazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3Bp
L0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0QXRzcGkuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcAppbmRleCA5NTM4
MjVkMDkwNGUuLmY0MTk2MDk0ZDNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9hdHNwaS9BY2Nlc3NpYmlsaXR5T2JqZWN0VGV4dEF0c3BpLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2F0c3BpL0FjY2Vzc2liaWxpdHlPYmplY3RUZXh0QXRz
cGkuY3BwCkBAIC0yOSwxMCArMjksMTMgQEAKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1TY3JlZW4uaCIKICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgorI2luY2x1ZGUg
IlJlbmRlckxpc3RJdGVtLmgiCisjaW5jbHVkZSAiUmVuZGVyTGlzdE1hcmtlci5oIgogI2luY2x1
ZGUgIlN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRJdGVy
YXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1ZGUgPGdpby9naW8uaD4K
KyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTI2OCw2ICsyNzEsOCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpOjp0ZXh0KCkgY29uc3QKICAgICBpZiAoIWF4T2JqZWN0KQogICAgICAgICByZXR1cm4geyB9
OwogCisgICAgbV9oYXNMaXN0TWFya2VyQXRTdGFydC5zdG9yZShmYWxzZSk7CisKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKICAgICBpZiAoYXhPYmplY3QtPnJvbGVWYWx1ZSgpID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpDb2xvcldlbGwpIHsKICAgICAgICAgYXV0byBjb2xvciA9IGNvbnZl
cnRDb2xvcjxTUkdCQTxmbG9hdD4+KGF4T2JqZWN0LT5jb2xvclZhbHVlKCkpOwpAQCAtMjgzLDE2
ICsyODgsMjQgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3RBdHNwaTo6dGV4dCgpIGNvbnN0
CiAgICAgaWYgKCF2YWx1ZS5pc051bGwoKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCi0gICAg
aWYgKGF4T2JqZWN0ID09IG1fY29yZU9iamVjdCkKLSAgICAgICAgcmV0dXJuIG1fY29yZU9iamVj
dC0+dGV4dFVuZGVyRWxlbWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoQWNj
ZXNzaWJpbGl0eVRleHRVbmRlckVsZW1lbnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1
ZGVBbGxDaGlsZHJlbikpOwotCiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFs
dWVGcm9tTWFpblRocmVhZDxTdHJpbmc+KFt0aGlzXSgpIC0+IFN0cmluZyB7CiAgICAgICAgIGlm
IChtX2NvcmVPYmplY3QpCiAgICAgICAgICAgICBtX2NvcmVPYmplY3QtPnVwZGF0ZUJhY2tpbmdT
dG9yZSgpOwogCiAgICAgICAgIGlmICghbV9jb3JlT2JqZWN0KQogICAgICAgICAgICAgcmV0dXJu
IHsgfTsKLSAgICAgICAgcmV0dXJuIG1fY29yZU9iamVjdC0+dGV4dFVuZGVyRWxlbWVudChBY2Nl
c3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoQWNjZXNzaWJpbGl0eVRleHRVbmRlckVsZW1l
bnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJlbikpLmlzb2xhdGVk
Q29weSgpOworCisgICAgICAgIGF1dG8gdGV4dCA9IG1fY29yZU9iamVjdC0+dGV4dFVuZGVyRWxl
bWVudChBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUoQWNjZXNzaWJpbGl0eVRleHRV
bmRlckVsZW1lbnRNb2RlOjpUZXh0VW5kZXJFbGVtZW50TW9kZUluY2x1ZGVBbGxDaGlsZHJlbikp
OworICAgICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBtX2NvcmVPYmplY3QtPnJlbmRlcmVyKCkp
IHsKKyAgICAgICAgICAgIGlmIChpczxSZW5kZXJMaXN0SXRlbT4oKnJlbmRlcmVyKSAmJiBkb3du
Y2FzdDxSZW5kZXJMaXN0SXRlbT4oKnJlbmRlcmVyKS5tYXJrZXJSZW5kZXJlcigpKSB7CisgICAg
ICAgICAgICAgICAgaWYgKHJlbmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpID09IFRleHREaXJl
Y3Rpb246OkxUUikgeworICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gbWFrZVN0cmluZyhvYmpl
Y3RSZXBsYWNlbWVudENoYXJhY3RlciwgdGV4dCk7CisgICAgICAgICAgICAgICAgICAgIG1faGFz
TGlzdE1hcmtlckF0U3RhcnQuc3RvcmUodHJ1ZSk7CisgICAgICAgICAgICAgICAgfSBlbHNlCisg
ICAgICAgICAgICAgICAgICAgIHRleHQgPSBtYWtlU3RyaW5nKHRleHQsIG9iamVjdFJlcGxhY2Vt
ZW50Q2hhcmFjdGVyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
dGV4dDsKICAgICB9KTsKIH0KIApAQCAtMzQ1LDYgKzM1OCwxNiBAQCBDU3RyaW5nIEFjY2Vzc2li
aWxpdHlPYmplY3RBdHNwaTo6dGV4dChpbnQgc3RhcnRPZmZzZXQsIGludCBlbmRPZmZzZXQpIGNv
bnN0CiAgICAgcmV0dXJuIHN1YnN0cmluZy5nZXQoKTsKIH0KIAorc3RhdGljIGlubGluZSBpbnQg
YWRqdXN0SW5wdXRPZmZzZXQodW5zaWduZWQgdXRmMTZPZmZzZXQsIGJvb2wgaGFzTGlzdE1hcmtl
ckF0U3RhcnQpCit7CisgICAgcmV0dXJuIGhhc0xpc3RNYXJrZXJBdFN0YXJ0ICYmIHV0ZjE2T2Zm
c2V0ID8gdXRmMTZPZmZzZXQgLSAxIDogdXRmMTZPZmZzZXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUg
aW50IGFkanVzdE91dHB1dE9mZnNldCh1bnNpZ25lZCB1dGYxNk9mZnNldCwgYm9vbCBoYXNMaXN0
TWFya2VyQXRTdGFydCkKK3sKKyAgICByZXR1cm4gaGFzTGlzdE1hcmtlckF0U3RhcnQgPyB1dGYx
Nk9mZnNldCArIDEgOiB1dGYxNk9mZnNldDsKK30KKwogdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
QXRzcGk6OnRleHRJbnNlcnRlZChjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmlz
aWJsZVBvc2l0aW9uJiBwb3NpdGlvbikKIHsKICAgICBSRUxFQVNFX0FTU0VSVChpc01haW5UaHJl
YWQoKSk7CkBAIC0zNTMsNyArMzc2LDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
OnRleHRJbnNlcnRlZChjb25zdCBTdHJpbmcmIGluc2VydGVkVGV4dCwgY29uc3QgVmkKIAogICAg
IGF1dG8gdXRmMTZUZXh0ID0gdGV4dCgpOwogICAgIGF1dG8gdXRmOFRleHQgPSB1dGYxNlRleHQu
dXRmOCgpOwotICAgIGF1dG8gdXRmMTZPZmZzZXQgPSBtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlz
aWJsZVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBhdXRvIHV0ZjE2T2Zmc2V0ID0gYWRqdXN0T3V0
cHV0T2Zmc2V0KG1fY29yZU9iamVjdC0+aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24ocG9zaXRpb24p
LCBtX2hhc0xpc3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSk7CiAgICAgYXV0byBtYXBwaW5nID0gb2Zm
c2V0TWFwcGluZyh1dGYxNlRleHQpOwogICAgIGF1dG8gb2Zmc2V0ID0gVVRGMTZPZmZzZXRUb1VU
RjgobWFwcGluZywgdXRmMTZPZmZzZXQpOwogICAgIGF1dG8gdXRmOEluc2VydGVkVGV4dCA9IGlu
c2VydGVkVGV4dC51dGY4KCk7CkBAIC0zNjksNyArMzkyLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0QXRzcGk6OnRleHREZWxldGVkKGNvbnN0IFN0cmluZyYgZGVsZXRlZFRleHQsIGNvbnN0
IFZpc2kKIAogICAgIGF1dG8gdXRmMTZUZXh0ID0gdGV4dCgpOwogICAgIGF1dG8gdXRmOFRleHQg
PSB1dGYxNlRleHQudXRmOCgpOwotICAgIGF1dG8gdXRmMTZPZmZzZXQgPSBtX2NvcmVPYmplY3Qt
PmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHBvc2l0aW9uKTsKKyAgICBhdXRvIHV0ZjE2T2Zmc2V0
ID0gYWRqdXN0T3V0cHV0T2Zmc2V0KG1fY29yZU9iamVjdC0+aW5kZXhGb3JWaXNpYmxlUG9zaXRp
b24ocG9zaXRpb24pLCBtX2hhc0xpc3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSk7CiAgICAgYXV0byBt
YXBwaW5nID0gb2Zmc2V0TWFwcGluZyh1dGYxNlRleHQpOwogICAgIGF1dG8gb2Zmc2V0ID0gVVRG
MTZPZmZzZXRUb1VURjgobWFwcGluZywgdXRmMTZPZmZzZXQpOwogICAgIGF1dG8gdXRmOERlbGV0
ZWRUZXh0ID0gZGVsZXRlZFRleHQudXRmOCgpOwpAQCAtMzg2LDEyICs0MDksMTUgQEAgSW50UG9p
bnQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpib3VuZGFyeU9mZnNldCh1bnNpZ25lZCB1dGYx
Nk9mZnNldCwgVGV4dEdyYW4KICAgICAgICAgaWYgKCFtX2NvcmVPYmplY3QpCiAgICAgICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgICAgIFZpc2libGVQb3NpdGlvbiBvZmZzZXRQb3NpdGlvbiA9
IG1fY29yZU9iamVjdC0+dmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgodXRmMTZPZmZzZXQpOworICAg
ICAgICBWaXNpYmxlUG9zaXRpb24gb2Zmc2V0UG9zaXRpb24gPSBtX2NvcmVPYmplY3QtPnZpc2li
bGVQb3NpdGlvbkZvckluZGV4KGFkanVzdElucHV0T2Zmc2V0KHV0ZjE2T2Zmc2V0LCBtX2hhc0xp
c3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSkpOwogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnRQ
b3NpdGlvbiwgZW5kUG9zdGlvbjsKICAgICAgICAgc3dpdGNoIChncmFudWxhcml0eSkgewogICAg
ICAgICBjYXNlIFRleHRHcmFudWxhcml0eTo6Q2hhcmFjdGVyOgogICAgICAgICAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgY2FzZSBUZXh0R3JhbnVsYXJpdHk6Oldv
cmRTdGFydDogeworICAgICAgICAgICAgaWYgKCF1dGYxNk9mZnNldCAmJiBtX2hhc0xpc3RNYXJr
ZXJBdFN0YXJ0LmxvYWQoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4geyAwLCAxIH07CisKICAg
ICAgICAgICAgIHN0YXJ0UG9zaXRpb24gPSBpc1N0YXJ0T2ZXb3JkKG9mZnNldFBvc2l0aW9uKSAm
JiBkZXByZWNhdGVkSXNFZGl0aW5nV2hpdGVzcGFjZShvZmZzZXRQb3NpdGlvbi5jaGFyYWN0ZXJC
ZWZvcmUoKSkgPyBvZmZzZXRQb3NpdGlvbiA6IHN0YXJ0T2ZXb3JkKG9mZnNldFBvc2l0aW9uLCBM
ZWZ0V29yZElmT25Cb3VuZGFyeSk7CiAgICAgICAgICAgICBlbmRQb3N0aW9uID0gbmV4dFdvcmRQ
b3NpdGlvbihzdGFydFBvc2l0aW9uKTsKICAgICAgICAgICAgIGF1dG8gcG9zaXRpb25BZnRlclNw
YWNpbmdBbmRGb2xsb3dpbmdXb3JkID0gbmV4dFdvcmRQb3NpdGlvbihlbmRQb3N0aW9uKTsKQEAg
LTQwNSw2ICs0MzEsOSBAQCBJbnRQb2ludCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OmJvdW5k
YXJ5T2Zmc2V0KHVuc2lnbmVkIHV0ZjE2T2Zmc2V0LCBUZXh0R3JhbgogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBUZXh0R3JhbnVsYXJpdHk6OldvcmRFbmQ6IHsK
KyAgICAgICAgICAgIGlmICghdXRmMTZPZmZzZXQgJiYgbV9oYXNMaXN0TWFya2VyQXRTdGFydC5s
b2FkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHsgMCwgMSB9OworCiAgICAgICAgICAgICBz
dGFydFBvc2l0aW9uID0gcHJldmlvdXNXb3JkUG9zaXRpb24ob2Zmc2V0UG9zaXRpb24pOwogICAg
ICAgICAgICAgYXV0byBwb3NpdGlvbkJlZm9yZVNwYWNpbmdBbmRQcmV2aW91c1dvcmQgPSBwcmV2
aW91c1dvcmRQb3NpdGlvbihzdGFydFBvc2l0aW9uKTsKICAgICAgICAgICAgIGlmIChwb3NpdGlv
bkJlZm9yZVNwYWNpbmdBbmRQcmV2aW91c1dvcmQgIT0gc3RhcnRQb3NpdGlvbikKQEAgLTQzOCw3
ICs0NjcsMTIgQEAgSW50UG9pbnQgQWNjZXNzaWJpbGl0eU9iamVjdEF0c3BpOjpib3VuZGFyeU9m
ZnNldCh1bnNpZ25lZCB1dGYxNk9mZnNldCwgVGV4dEdyYW4KICAgICAgICAgICAgIGVuZFBvc3Rp
b24gPSBlbmRPZlBhcmFncmFwaChvZmZzZXRQb3NpdGlvbik7CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQotICAgICAgICByZXR1cm4geyBtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJs
ZVBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pLCBtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJsZVBv
c2l0aW9uKGVuZFBvc3Rpb24pIH07CisKKyAgICAgICAgYXV0byBzdGFydE9mZnNldCA9IG1fY29y
ZU9iamVjdC0+aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oc3RhcnRQb3NpdGlvbik7CisgICAgICAg
IC8vIEZvciBubyB3b3JkIGJvdW5kYXJpZXMsIGluY2x1ZGUgdGhlIGxpc3QgbWFya2VyIGlmIHN0
YXJ0IG9mZnNldCBpcyAwLgorICAgICAgICBpZiAoIXN0YXJ0T2Zmc2V0ICYmIG1faGFzTGlzdE1h
cmtlckF0U3RhcnQubG9hZCgpICYmIChncmFudWxhcml0eSA9PSBUZXh0R3JhbnVsYXJpdHk6Oldv
cmRTdGFydCB8fCBncmFudWxhcml0eSA9PSBUZXh0R3JhbnVsYXJpdHk6OldvcmRFbmQpKQorICAg
ICAgICAgICAgc3RhcnRPZmZzZXQgPSBhZGp1c3RPdXRwdXRPZmZzZXQoc3RhcnRPZmZzZXQsIG1f
aGFzTGlzdE1hcmtlckF0U3RhcnQubG9hZCgpKTsKKyAgICAgICAgcmV0dXJuIHsgc3RhcnRPZmZz
ZXQsIGFkanVzdE91dHB1dE9mZnNldChtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJsZVBvc2l0
aW9uKGVuZFBvc3Rpb24pLCBtX2hhc0xpc3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSkgfTsKICAgICB9
KTsKIH0KIApAQCAtNjE4LDcgKzY1Miw3IEBAIGludCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6
Om9mZnNldEF0UG9pbnQoY29uc3QgSW50UG9pbnQmIHBvaW50LCB1aW50MzJfdCBjb29yCiAgICAg
ICAgIGlmIChwb3NpdGlvbi5pc051bGwoKSkKICAgICAgICAgICAgIHJldHVybiAtMTsKIAotICAg
ICAgICByZXR1cm4gbV9jb3JlT2JqZWN0LT5pbmRleEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlv
bik7CisgICAgICAgIHJldHVybiBhZGp1c3RPdXRwdXRPZmZzZXQobV9jb3JlT2JqZWN0LT5pbmRl
eEZvclZpc2libGVQb3NpdGlvbihwb3NpdGlvbiksIG1faGFzTGlzdE1hcmtlckF0U3RhcnQubG9h
ZCgpKTsKICAgICB9KTsKIAogICAgIGlmICh1dGYxNk9mZnNldCA9PSAtMSkKQEAgLTc3Niw3ICs4
MTAsNyBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OlRleHRBdHRyaWJ1dGVzIEFjY2Vzc2li
aWxpdHlPYmplY3RBdHNwaTo6dGV4dEF0dHJpYnV0ZQogICAgICAgICBpZiAobV9jb3JlT2JqZWN0
KQogICAgICAgICAgICAgbV9jb3JlT2JqZWN0LT51cGRhdGVCYWNraW5nU3RvcmUoKTsKIAotICAg
ICAgICBpZiAoIW1fY29yZU9iamVjdCB8fCAhbV9jb3JlT2JqZWN0LT5yZW5kZXJlcigpIHx8ICFt
X2NvcmVPYmplY3QtPm5vZGUoKSkKKyAgICAgICAgaWYgKCFtX2NvcmVPYmplY3QgfHwgIW1fY29y
ZU9iamVjdC0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIHJldHVybiB7IH07CiAKICAgICAgICAg
YXV0byBhY2Nlc3NpYmlsaXR5VGV4dEF0dHJpYnV0ZXMgPSBbdGhpc10oQVhDb3JlT2JqZWN0KiBh
eE9iamVjdCwgY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGRlZmF1bHRBdHRyaWJ1dGVz
KSAtPiBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiB7CkBAIC04NDksNyArODgzLDI0IEBAIEFjY2Vz
c2liaWxpdHlPYmplY3RBdHNwaTo6VGV4dEF0dHJpYnV0ZXMgQWNjZXNzaWJpbGl0eU9iamVjdEF0
c3BpOjp0ZXh0QXR0cmlidXRlCiAgICAgICAgIGlmICghdXRmMTZPZmZzZXQpCiAgICAgICAgICAg
ICByZXR1cm4geyBkZWZhdWx0QXR0cmlidXRlcywgLTEsIC0xIH07CiAKLSAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIG9mZnNldFBvc2l0aW9uID0gbV9jb3JlT2JqZWN0LT52aXNpYmxlUG9zaXRpb25G
b3JJbmRleCgqdXRmMTZPZmZzZXQpOworICAgICAgICBpZiAoaXM8UmVuZGVyTGlzdE1hcmtlcj4o
Km1fY29yZU9iamVjdC0+cmVuZGVyZXIoKSkpCisgICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0
QXR0cmlidXRlcywgMCwgc3RhdGljX2Nhc3Q8aW50PihtX2NvcmVPYmplY3QtPnN0cmluZ1ZhbHVl
KCkubGVuZ3RoKCkpIH07CisKKyAgICAgICAgaWYgKCFtX2NvcmVPYmplY3QtPm5vZGUoKSkKKyAg
ICAgICAgICAgIHJldHVybiB7IGRlZmF1bHRBdHRyaWJ1dGVzLCAtMSwgLTEgfTsKKworICAgICAg
ICBpZiAoISp1dGYxNk9mZnNldCAmJiBtX2hhc0xpc3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSkgewor
ICAgICAgICAgICAgLy8gQWx3YXlzIGNvbnNpZGVyIGxpc3QgbWFya2VyIGFuIGluZGVwZW5kZW50
IHJ1bi4KKyAgICAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGFjY2Vzc2liaWxpdHlUZXh0QXR0
cmlidXRlcyhtX2NvcmVPYmplY3QtPmNoaWxkcmVuKClbMF0uZ2V0KCksIGRlZmF1bHRBdHRyaWJ1
dGVzKTsKKyAgICAgICAgICAgIGlmICghaW5jbHVkZURlZmF1bHQpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHsgYXR0cmlidXRlcywgMCwgMSB9OworCisgICAgICAgICAgICBmb3IgKGNvbnN0IGF1
dG8mIGl0IDogYXR0cmlidXRlcykKKyAgICAgICAgICAgICAgICBkZWZhdWx0QXR0cmlidXRlcy5z
ZXQoaXQua2V5LCBpdC52YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4geyBkZWZhdWx0QXR0cmli
dXRlcywgMCwgMSB9OworICAgICAgICB9CisKKyAgICAgICAgVmlzaWJsZVBvc2l0aW9uIG9mZnNl
dFBvc2l0aW9uID0gbV9jb3JlT2JqZWN0LT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChhZGp1c3RJ
bnB1dE9mZnNldCgqdXRmMTZPZmZzZXQsIG1faGFzTGlzdE1hcmtlckF0U3RhcnQubG9hZCgpKSk7
CiAgICAgICAgIGF1dG8qIGNoaWxkTm9kZSA9IG9mZnNldFBvc2l0aW9uLmRlZXBFcXVpdmFsZW50
KCkuZGVwcmVjYXRlZE5vZGUoKTsKICAgICAgICAgaWYgKCFjaGlsZE5vZGUpCiAgICAgICAgICAg
ICByZXR1cm4geyBkZWZhdWx0QXR0cmlidXRlcywgLTEsIC0xIH07CkBAIC04OTQsMTMgKzk0NSwx
NSBAQCBBY2Nlc3NpYmlsaXR5T2JqZWN0QXRzcGk6OlRleHRBdHRyaWJ1dGVzIEFjY2Vzc2liaWxp
dHlPYmplY3RBdHNwaTo6dGV4dEF0dHJpYnV0ZQogICAgICAgICAgICAgZW5kUG9zaXRpb24gPSBs
YXN0UG9zaXRpb25Jbk9yQWZ0ZXJOb2RlKGVuZFJlbmRlcmVyLT5ub2RlKCkpOwogICAgICAgICB9
CiAKKyAgICAgICAgYXV0byBzdGFydE9mZnNldCA9IGFkanVzdE91dHB1dE9mZnNldChtX2NvcmVP
YmplY3QtPmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pLCBtX2hhc0xpc3RN
YXJrZXJBdFN0YXJ0LmxvYWQoKSk7CisgICAgICAgIGF1dG8gZW5kT2Zmc2V0ID0gYWRqdXN0T3V0
cHV0T2Zmc2V0KG1fY29yZU9iamVjdC0+aW5kZXhGb3JWaXNpYmxlUG9zaXRpb24oZW5kUG9zaXRp
b24pLCBtX2hhc0xpc3RNYXJrZXJBdFN0YXJ0LmxvYWQoKSk7CiAgICAgICAgIGlmICghaW5jbHVk
ZURlZmF1bHQpCi0gICAgICAgICAgICByZXR1cm4geyBhdHRyaWJ1dGVzLCBtX2NvcmVPYmplY3Qt
PmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0UG9zaXRpb24pLCBtX2NvcmVPYmplY3QtPmlu
ZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGVuZFBvc2l0aW9uKSB9OworICAgICAgICAgICAgcmV0dXJu
IHsgYXR0cmlidXRlcywgc3RhcnRPZmZzZXQsIGVuZE9mZnNldCB9OwogCiAgICAgICAgIGZvciAo
Y29uc3QgYXV0byYgaXQgOiBhdHRyaWJ1dGVzKQogICAgICAgICAgICAgZGVmYXVsdEF0dHJpYnV0
ZXMuc2V0KGl0LmtleSwgaXQudmFsdWUpOwogCi0gICAgICAgIHJldHVybiB7IGRlZmF1bHRBdHRy
aWJ1dGVzLCBtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKHN0YXJ0UG9zaXRp
b24pLCBtX2NvcmVPYmplY3QtPmluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uKGVuZFBvc2l0aW9uKSB9
OworICAgICAgICByZXR1cm4geyBkZWZhdWx0QXR0cmlidXRlcywgc3RhcnRPZmZzZXQsIGVuZE9m
ZnNldCB9OwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggMTg0MDQyYTgwZTcwLi40MWNiNWI3ZmZhNGYgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAyMS0xMi0xOSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW0dUS11bYTExeV0gSW1wbGVtZW50IGxpc3QgbWFya2VycyB3aGVuIGJ1aWxkaW5n
IHdpdGggQVRTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzNDQ4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCB0ZXN0IGNhc2VzIHRvIGNoZWNrIGxpc3QgaXRlbSBtYXJrZXJzLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHku
Y3BwOgorICAgICAgICAodGVzdEFjY2Vzc2libGVMaXN0TWFya2Vycyk6CisgICAgICAgICh0ZXN0
VGV4dExpc3RNYXJrZXJzKToKKyAgICAgICAgKHRlc3RIeXBlcmxpbmtCYXNpYyk6CisgICAgICAg
ICh0ZXN0SHlwZXJ0ZXh0QmFzaWMpOgorICAgICAgICAoYmVmb3JlQWxsKToKKwogMjAyMS0xMi0x
NSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAg
W0dUS11bYTExeV0gQWRkIHN1cHBvcnQgZm9yIGxvYWRpbmcgZXZlbnRzIHdoZW4gYnVpbGRpbmcg
d2l0aCBBVFNQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRH
dGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCmluZGV4IGExYjk1MDU2OGJi
Yy4uOTBlMjFlNWI3NWYzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdEd0ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHdGsvVGVzdFdlYktpdEFjY2Vzc2liaWxpdHkuY3BwCkBAIC04NzIs
NiArODcyLDc5IEBAIHN0YXRpYyB2b2lkIHRlc3RBY2Nlc3NpYmxlRXZlbnRMaXN0ZW5lcihBY2Nl
c3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydF9jbXBpbnQo
YXRzcGlfYWNjZXNzaWJsZV9nZXRfcm9sZShyb290T2JqZWN0LmdldCgpLCBudWxscHRyKSwgPT0s
IEFUU1BJX1JPTEVfRklMTEVSKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdEFjY2Vzc2libGVMaXN0
TWFya2VycyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyNpZiAh
VVNFKEFUU1BJKQorICAgIGdfdGVzdF9za2lwKCJMaXN0IG1hcmtlcnMgYXJlIGhhbmRsZWQgZGlm
ZmVyZW50bHkgd2l0aCBBVEsiKTsKKyNlbHNlCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBiYXNlRGly
KGdfc3RyZHVwX3ByaW50ZigiZmlsZTovLyVzLyIsIFRlc3Q6OmdldFJlc291cmNlc0RpcigpLmRh
dGEoKSkpOworICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYwMCk7CisgICAgdGVzdC0+bG9h
ZEh0bWwoCisgICAgICAgICI8aHRtbD4iCisgICAgICAgICIgIDxoZWFkPiIKKyAgICAgICAgIiAg
ICA8c3R5bGU+IgorICAgICAgICAiICAgICAgLmltZyB7IGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChi
bGFuay5pY28pIH0iCisgICAgICAgICIgICAgPC9zdHlsZT4iCisgICAgICAgICIgIDwvaGVhZD4i
CisgICAgICAgICIgIDxib2R5PiIKKyAgICAgICAgIiAgICA8b2w+IgorICAgICAgICAiICAgICAg
PGxpPkxpc3QgaXRlbSAxPC9saT4iCisgICAgICAgICIgICAgPC9vbD4iCisgICAgICAgICIgICAg
PHVsIGNsYXNzPSdpbWcnPiIKKyAgICAgICAgIiAgICAgIDxsaT5MaXN0IGl0ZW0gMTwvbGk+Igor
ICAgICAgICAiICAgIDwvdWw+IgorICAgICAgICAiICA8L2JvZHk+IgorICAgICAgICAiPC9odG1s
PiIsCisgICAgICAgIGJhc2VEaXIuZ2V0KCkpOworICAgIHRlc3QtPndhaXRVbnRpbExvYWRGaW5p
c2hlZCgpOworCisgICAgYXV0byB0ZXN0QXBwID0gdGVzdC0+ZmluZFRlc3RBcHBsaWNhdGlvbigp
OworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRSh0ZXN0QXBwLmdldCgpKSk7
CisKKyAgICBhdXRvIGRvY3VtZW50V2ViID0gdGVzdC0+ZmluZERvY3VtZW50V2ViKHRlc3RBcHAu
Z2V0KCkpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShkb2N1bWVudFdl
Yi5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGls
ZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVsbHB0ciksID09LCAyKTsKKworICAgIGF1dG8g
b2wgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1l
bnRXZWIuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FD
Q0VTU0lCTEUob2wuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJs
ZV9nZXRfcm9sZShvbC5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX0xJU1QpOworICAg
IGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChvbC5nZXQo
KSwgbnVsbHB0ciksID09LCAxKTsKKworICAgIGF1dG8gbGkgPSBhZG9wdEdSZWYoYXRzcGlfYWNj
ZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgob2wuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBn
X2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUobGkuZ2V0KCkpKTsKKyAgICBnX2Fzc2Vy
dF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfcm9sZShsaS5nZXQoKSwgbnVsbHB0ciksID09
LCBBVFNQSV9ST0xFX0xJU1RfSVRFTSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vz
c2libGVfZ2V0X2NoaWxkX2NvdW50KGxpLmdldCgpLCBudWxscHRyKSwgPT0sIDEpOworICAgIGF1
dG8gbWFya2VyID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4
KGxpLmdldCgpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NF
U1NJQkxFKG1hcmtlci5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3Np
YmxlX2dldF9yb2xlKG1hcmtlci5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9ST0xFX1RFWFQp
OworICAgIEdVbmlxdWVQdHI8Y2hhcj4gbmFtZShhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xlX25h
bWUobWFya2VyLmdldCgpLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKG5hbWUuZ2V0
KCksID09LCAidGV4dCIpOworICAgIG5hbWUucmVzZXQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfbG9j
YWxpemVkX3JvbGVfbmFtZShtYXJrZXIuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9j
bXBzdHIobmFtZS5nZXQoKSwgPT0sICJ0ZXh0Iik7CisgICAgR1JlZlB0cjxBdHNwaVRleHQ+IHRl
eHQgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfdGV4dF9pZmFjZShtYXJrZXIuZ2V0
KCkpKTsKKyAgICBnX2Fzc2VydF9ub25udWxsKHRleHQuZ2V0KCkpOworCisgICAgYXV0byB1bCA9
IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdl
Yi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNT
SUJMRSh1bC5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxlX2dl
dF9yb2xlKHVsLmdldCgpLCBudWxscHRyKSwgPT0sIEFUU1BJX1JPTEVfTElTVCk7CisgICAgZ19h
c3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50KHVsLmdldCgpLCBu
dWxscHRyKSwgPT0sIDEpOworCisgICAgbGkgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9n
ZXRfY2hpbGRfYXRfaW5kZXgodWwuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90
cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUobGkuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQo
YXRzcGlfYWNjZXNzaWJsZV9nZXRfcm9sZShsaS5nZXQoKSwgbnVsbHB0ciksID09LCBBVFNQSV9S
T0xFX0xJU1RfSVRFTSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0
X2NoaWxkX2NvdW50KGxpLmdldCgpLCBudWxscHRyKSwgPT0sIDEpOworICAgIG1hcmtlciA9IGFk
b3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChsaS5nZXQoKSwgMCwg
bnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShtYXJrZXIu
Z2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfcm9sZSht
YXJrZXIuZ2V0KCksIG51bGxwdHIpLCA9PSwgQVRTUElfUk9MRV9JTUFHRSk7CisgICAgbmFtZS5y
ZXNldChhdHNwaV9hY2Nlc3NpYmxlX2dldF9yb2xlX25hbWUobWFya2VyLmdldCgpLCBudWxscHRy
KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKG5hbWUuZ2V0KCksID09LCAiaW1hZ2UiKTsKKyAgICBu
YW1lLnJlc2V0KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2xvY2FsaXplZF9yb2xlX25hbWUobWFya2Vy
LmdldCgpLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKG5hbWUuZ2V0KCksID09LCAi
aW1hZ2UiKTsKKyAgICBHUmVmUHRyPEF0c3BpSW1hZ2U+IGltYWdlID0gYWRvcHRHUmVmKGF0c3Bp
X2FjY2Vzc2libGVfZ2V0X2ltYWdlX2lmYWNlKG1hcmtlci5nZXQoKSkpOworICAgIGdfYXNzZXJ0
X25vbm51bGwoaW1hZ2UuZ2V0KCkpOworI2VuZGlmCit9CisKIHN0YXRpYyB2b2lkIHRlc3RDb21w
b25lbnRIaXRUZXN0KEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewog
ICAgIHRlc3QtPnNob3dJbldpbmRvdygpOwpAQCAtMTc2Miw2ICsxODM1LDEyMCBAQCBzdGF0aWMg
dm9pZCB0ZXN0VGV4dFJlcGxhY2VkT2JqZWN0cyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKICNlbmRpZgogfQogCitzdGF0aWMgdm9pZCB0ZXN0VGV4dExpc3RNYXJrZXJz
KEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworI2lmICFVU0UoQVRT
UEkpCisgICAgZ190ZXN0X3NraXAoIkxpc3QgbWFya2VycyBhcmUgaGFuZGxlZCBkaWZmZXJlbnRs
eSB3aXRoIEFUSyIpOworI2Vsc2UKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3coODAwLCA2MDApOwor
ICAgIHRlc3QtPmxvYWRIdG1sKAorICAgICAgICAiPGh0bWw+IgorICAgICAgICAiICA8Ym9keT4i
CisgICAgICAgICIgICAgPHVsPiIKKyAgICAgICAgIiAgICAgIDxsaT5MaXN0IDxiPml0ZW08L2I+
IDE8L2xpPiIKKyAgICAgICAgIiAgICA8L3VsPiIKKyAgICAgICAgIiAgICA8b2wgc3R5bGU9J2Rp
cmVjdGlvbjpydGw7Jz4iCisgICAgICAgICIgICAgICA8bGk+TGlzdCA8Yj5pdGVtPC9iPiAxPC9s
aT4iCisgICAgICAgICIgICAgPC9vbD4iCisgICAgICAgICIgIDwvYm9keT4iCisgICAgICAgICI8
L2h0bWw+IiwKKyAgICAgICAgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlz
aGVkKCk7CisKKyAgICBhdXRvIHRlc3RBcHAgPSB0ZXN0LT5maW5kVGVzdEFwcGxpY2F0aW9uKCk7
CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKHRlc3RBcHAuZ2V0KCkpKTsK
KworICAgIGF1dG8gZG9jdW1lbnRXZWIgPSB0ZXN0LT5maW5kRG9jdW1lbnRXZWIodGVzdEFwcC5n
ZXQoKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKGRvY3VtZW50V2Vi
LmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxk
X2NvdW50KGRvY3VtZW50V2ViLmdldCgpLCBudWxscHRyKSwgPT0sIDIpOworCisgICAgYXV0byB1
bCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVu
dFdlYi5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUND
RVNTSUJMRSh1bC5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9hY2Nlc3NpYmxl
X2dldF9jaGlsZF9jb3VudCh1bC5nZXQoKSwgbnVsbHB0ciksID09LCAxKTsKKworICAgIGF1dG8g
bGkgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgodWwuZ2V0
KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQobGkuZ2V0
KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291
bnQobGkuZ2V0KCksIG51bGxwdHIpLCA9PSwgMSk7CisKKyAgICBhdXRvIGxlbmd0aCA9IGF0c3Bp
X3RleHRfZ2V0X2NoYXJhY3Rlcl9jb3VudChBVFNQSV9URVhUKGxpLmdldCgpKSwgbnVsbHB0cik7
CisgICAgZ19hc3NlcnRfY21waW50KGxlbmd0aCwgPT0sIDEyKTsKKworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gdGV4dChhdHNwaV90ZXh0X2dldF90ZXh0KEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAwLCAt
MSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LmdldCgpLCA9PSwgIlwzNTdc
Mjc3XDI3NExpc3QgaXRlbSAxIik7CisKKyAgICBVbmlxdWVBdHNwaVRleHRSYW5nZSByYW5nZShh
dHNwaV90ZXh0X2dldF9zdHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAwLCBB
VFNQSV9URVhUX0dSQU5VTEFSSVRZX0NIQVIsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBz
dHIocmFuZ2UtPmNvbnRlbnQsID09LCAiXDM1N1wyNzdcMjc0Iik7CisgICAgZ19hc3NlcnRfY21w
aW50KHJhbmdlLT5zdGFydF9vZmZzZXQsID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFu
Z2UtPmVuZF9vZmZzZXQsID09LCAxKTsKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9z
dHJpbmdfYXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAxLCBBVFNQSV9URVhUX0dSQU5V
TEFSSVRZX0NIQVIsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRl
bnQsID09LCAiTCIpOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9
PSwgMSk7CisgICAgZ19hc3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMik7Cisg
ICAgcmFuZ2UucmVzZXQoYXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhU
KGxpLmdldCgpKSwgMCwgQVRTUElfVEVYVF9HUkFOVUxBUklUWV9XT1JELCBudWxscHRyKSk7Cisg
ICAgZ19hc3NlcnRfY21wc3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIlwzNTdcMjc3XDI3NCIpOwor
ICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+c3RhcnRfb2Zmc2V0LCA9PSwgMCk7CisgICAgZ19h
c3NlcnRfY21waW50KHJhbmdlLT5lbmRfb2Zmc2V0LCA9PSwgMSk7CisgICAgcmFuZ2UucmVzZXQo
YXRzcGlfdGV4dF9nZXRfc3RyaW5nX2F0X29mZnNldChBVFNQSV9URVhUKGxpLmdldCgpKSwgMSwg
QVRTUElfVEVYVF9HUkFOVUxBUklUWV9XT1JELCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21w
c3RyKHJhbmdlLT5jb250ZW50LCA9PSwgIkxpc3QgIik7CisgICAgZ19hc3NlcnRfY21waW50KHJh
bmdlLT5zdGFydF9vZmZzZXQsID09LCAxKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPmVu
ZF9vZmZzZXQsID09LCA2KTsKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJpbmdf
YXRfb2Zmc2V0KEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAwLCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZ
X0xJTkUsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09
LCAiXDM1N1wyNzdcMjc0TGlzdCBpdGVtIDEiKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2Ut
PnN0YXJ0X29mZnNldCwgPT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29m
ZnNldCwgPT0sIDEyKTsKKyAgICByYW5nZS5yZXNldChhdHNwaV90ZXh0X2dldF9zdHJpbmdfYXRf
b2Zmc2V0KEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAxLCBBVFNQSV9URVhUX0dSQU5VTEFSSVRZX0xJ
TkUsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIocmFuZ2UtPmNvbnRlbnQsID09LCAi
XDM1N1wyNzdcMjc0TGlzdCBpdGVtIDEiKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQocmFuZ2UtPnN0
YXJ0X29mZnNldCwgPT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChyYW5nZS0+ZW5kX29mZnNl
dCwgPT0sIDEyKTsKKworICAgIGludCBzdGFydE9mZnNldCwgZW5kT2Zmc2V0OworICAgIEdSZWZQ
dHI8R0hhc2hUYWJsZT4gYXR0cmlidXRlcyA9IGFkb3B0R1JlZihhdHNwaV90ZXh0X2dldF9hdHRy
aWJ1dGVfcnVuKEFUU1BJX1RFWFQobGkuZ2V0KCkpLCAwLCBGQUxTRSwgJnN0YXJ0T2Zmc2V0LCAm
ZW5kT2Zmc2V0LCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChhdHRyaWJ1dGVzLmdl
dCgpKTsKKyAgICBnX2Fzc2VydF9jbXB1aW50KGdfaGFzaF90YWJsZV9zaXplKGF0dHJpYnV0ZXMu
Z2V0KCkpLCA9PSwgMCk7CisgICAgZ19hc3NlcnRfY21waW50KHN0YXJ0T2Zmc2V0LCA9PSwgMCk7
CisgICAgZ19hc3NlcnRfY21waW50KGVuZE9mZnNldCwgPT0sIDEpOworICAgIGF0dHJpYnV0ZXMg
PSBhZG9wdEdSZWYoYXRzcGlfdGV4dF9nZXRfYXR0cmlidXRlX3J1bihBVFNQSV9URVhUKGxpLmdl
dCgpKSwgMywgRkFMU0UsICZzdGFydE9mZnNldCwgJmVuZE9mZnNldCwgbnVsbHB0cikpOworICAg
IGdfYXNzZXJ0X25vbm51bGwoYXR0cmlidXRlcy5nZXQoKSk7CisgICAgZ19hc3NlcnRfY21wdWlu
dChnX2hhc2hfdGFibGVfc2l6ZShhdHRyaWJ1dGVzLmdldCgpKSwgPT0sIDApOworICAgIGdfYXNz
ZXJ0X2NtcGludChzdGFydE9mZnNldCwgPT0sIDEpOworICAgIGdfYXNzZXJ0X2NtcGludChlbmRP
ZmZzZXQsID09LCA2KTsKKyAgICBhdHRyaWJ1dGVzID0gYWRvcHRHUmVmKGF0c3BpX3RleHRfZ2V0
X2F0dHJpYnV0ZV9ydW4oQVRTUElfVEVYVChsaS5nZXQoKSksIDgsIEZBTFNFLCAmc3RhcnRPZmZz
ZXQsICZlbmRPZmZzZXQsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9ub25udWxsKGF0dHJpYnV0
ZXMuZ2V0KCkpOworICAgIGdfYXNzZXJ0X2NtcHVpbnQoZ19oYXNoX3RhYmxlX3NpemUoYXR0cmli
dXRlcy5nZXQoKSksID4sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChzdGFydE9mZnNldCwgPT0s
IDYpOworICAgIGdfYXNzZXJ0X2NtcGludChlbmRPZmZzZXQsID09LCAxMCk7CisgICAgYXR0cmli
dXRlcyA9IGFkb3B0R1JlZihhdHNwaV90ZXh0X2dldF9hdHRyaWJ1dGVfcnVuKEFUU1BJX1RFWFQo
bGkuZ2V0KCkpLCAxMSwgRkFMU0UsICZzdGFydE9mZnNldCwgJmVuZE9mZnNldCwgbnVsbHB0cikp
OworICAgIGdfYXNzZXJ0X25vbm51bGwoYXR0cmlidXRlcy5nZXQoKSk7CisgICAgZ19hc3NlcnRf
Y21wdWludChnX2hhc2hfdGFibGVfc2l6ZShhdHRyaWJ1dGVzLmdldCgpKSwgPT0sIDApOworICAg
IGdfYXNzZXJ0X2NtcGludChzdGFydE9mZnNldCwgPT0sIDEwKTsKKyAgICBnX2Fzc2VydF9jbXBp
bnQoZW5kT2Zmc2V0LCA9PSwgMTIpOworCisgICAgYXV0byBtYXJrZXIgPSBhZG9wdEdSZWYoYXRz
cGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgobGkuZ2V0KCksIDAsIG51bGxwdHIpKTsK
KyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX1RFWFQobWFya2VyLmdldCgpKSk7CisgICAgdGV4
dC5yZXNldChhdHNwaV90ZXh0X2dldF90ZXh0KEFUU1BJX1RFWFQobWFya2VyLmdldCgpKSwgMCwg
LTEsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIodGV4dC5nZXQoKSwgPT0sICLigKIg
Iik7CisKKyAgICBhdXRvIG9sID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxk
X2F0X2luZGV4KGRvY3VtZW50V2ViLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRf
dHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKG9sLmdldCgpKSk7CisgICAgZ19hc3NlcnRfY21waW50
KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50KG9sLmdldCgpLCBudWxscHRyKSwgPT0s
IDEpOworCisgICAgbGkgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRf
aW5kZXgob2wuZ2V0KCksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lT
X1RFWFQobGkuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9n
ZXRfY2hpbGRfY291bnQobGkuZ2V0KCksIG51bGxwdHIpLCA9PSwgMSk7CisKKyAgICBsZW5ndGgg
PSBhdHNwaV90ZXh0X2dldF9jaGFyYWN0ZXJfY291bnQoQVRTUElfVEVYVChsaS5nZXQoKSksIG51
bGxwdHIpOworICAgIGdfYXNzZXJ0X2NtcGludChsZW5ndGgsID09LCAxMik7CisKKyAgICB0ZXh0
LnJlc2V0KGF0c3BpX3RleHRfZ2V0X3RleHQoQVRTUElfVEVYVChsaS5nZXQoKSksIDAsIC0xLCBu
dWxscHRyKSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHRleHQuZ2V0KCksID09LCAiTGlzdCBpdGVt
IDFcMzU3XDI3N1wyNzQiKTsKKworICAgIG1hcmtlciA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3Np
YmxlX2dldF9jaGlsZF9hdF9pbmRleChsaS5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNz
ZXJ0X3RydWUoQVRTUElfSVNfVEVYVChtYXJrZXIuZ2V0KCkpKTsKKyAgICB0ZXh0LnJlc2V0KGF0
c3BpX3RleHRfZ2V0X3RleHQoQVRTUElfVEVYVChtYXJrZXIuZ2V0KCkpLCAwLCAtMSwgbnVsbHB0
cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0LmdldCgpLCA9PSwgIjEuICIpOworI2VuZGlm
Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RWYWx1ZUJhc2ljKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQogewogICAgIHRlc3QtPnNob3dJbldpbmRvdyg4MDAsIDYwMCk7CkBA
IC0xODIzLDYgKzIwMTAsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SHlwZXJsaW5rQmFzaWMoQWNjZXNz
aWJpbGl0eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgICAgICIgICAgPGRpdiByb2xl
PSdsaW5rJz5MaW5rPC9kaXY+IgogICAgICAgICAiICAgIDxwPlRoaXMgaXMgPGJ1dHRvbj5idXR0
b24xPC9idXR0b24+IGFuZCA8YnV0dG9uPmJ1dHRvbjI8L2J1dHRvbj4gaW4gYSBwYXJhZ3JhcGg8
L3A+IgogICAgICAgICAiICAgIDxwPlRoaXMgaXMgPGEgaHJlZj0naHR0cHM6Ly93d3cud2Via2l0
Z3RrLm9yZyc+bGluazE8L2E+IGFuZCA8YSBocmVmPSdodHRwczovL3d3dy5nbm9tZS5vcmcnPmxp
bmsyPC9hPiBpbiBwYXJhZ3JhcGg8L3A+IgorICAgICAgICAiICAgIDx1bD48bGk+TGlzdCBpdGVt
PC9saT48L3VsPiIKICAgICAgICAgIiAgPC9ib2R5PiIKICAgICAgICAgIjwvaHRtbD4iLAogICAg
ICAgICBudWxscHRyKTsKQEAgLTE4MzMsNyArMjAyMSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RIeXBl
cmxpbmtCYXNpYyhBY2Nlc3NpYmlsaXR5VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogICAg
IGF1dG8gZG9jdW1lbnRXZWIgPSB0ZXN0LT5maW5kRG9jdW1lbnRXZWIodGVzdEFwcC5nZXQoKSk7
CiAgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9JU19BQ0NFU1NJQkxFKGRvY3VtZW50V2ViLmdldCgp
KSk7Ci0gICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2NvdW50
KGRvY3VtZW50V2ViLmdldCgpLCBudWxscHRyKSwgPT0sIDQpOworICAgIGdfYXNzZXJ0X2NtcGlu
dChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwgbnVs
bHB0ciksID09LCA1KTsKIAogICAgIGF1dG8gc2VjdGlvbiA9IGFkb3B0R1JlZihhdHNwaV9hY2Nl
c3NpYmxlX2dldF9jaGlsZF9hdF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMCwgbnVsbHB0cikp
OwogICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShzZWN0aW9uLmdldCgpKSk7
CkBAIC0xOTQ0LDYgKzIxMzIsMjYgQEAgc3RhdGljIHZvaWQgdGVzdEh5cGVybGlua0Jhc2ljKEFj
Y2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgIHVyaS5yZXNldChhdHNw
aV9oeXBlcmxpbmtfZ2V0X3VyaShBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSksIDAsIG51bGxw
dHIpKTsKICAgICBnX2Fzc2VydF9jbXBzdHIodXJpLmdldCgpLCA9PSwgImh0dHBzOi8vd3d3Lmdu
b21lLm9yZy8iKTsKICAgICBnX2Fzc2VydF90cnVlKGF0c3BpX2h5cGVybGlua19nZXRfb2JqZWN0
KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgMCwgbnVsbHB0cikgPT0gbGluazIuZ2V0KCkp
OworCisjaWYgVVNFKEFUU1BJKQorICAgIGF1dG8gdWwgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNz
aWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgoZG9jdW1lbnRXZWIuZ2V0KCksIDQsIG51bGxwdHIpKTsK
KyAgICBnX2Fzc2VydF90cnVlKEFUU1BJX0lTX0FDQ0VTU0lCTEUodWwuZ2V0KCkpKTsKKyAgICBn
X2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfY291bnQodWwuZ2V0KCks
IG51bGxwdHIpLCA9PSwgMSk7CisgICAgYXV0byBsaSA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3Np
YmxlX2dldF9jaGlsZF9hdF9pbmRleCh1bC5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNz
ZXJ0X3RydWUoQVRTUElfSVNfQUNDRVNTSUJMRShsaS5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2Nt
cGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChsaS5nZXQoKSwgbnVsbHB0ciks
ID09LCAxKTsKKyAgICBhdXRvIG1hcmtlciA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dl
dF9jaGlsZF9hdF9pbmRleChsaS5nZXQoKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfQUNDRVNTSUJMRShtYXJrZXIuZ2V0KCkpKTsKKyAgICBsaW5rID0gYWRvcHRH
UmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2h5cGVybGluayhtYXJrZXIuZ2V0KCkpKTsKKyAgICBn
X2Fzc2VydF90cnVlKEFUU1BJX0lTX0hZUEVSTElOSyhsaW5rLmdldCgpKSk7CisgICAgZ19hc3Nl
cnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfbl9hbmNob3JzKEFUU1BJX0hZUEVSTElOSyhs
aW5rLmdldCgpKSwgbnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0c3BpX2h5
cGVybGlua19pc192YWxpZChBVFNQSV9IWVBFUkxJTksobGluay5nZXQoKSksIG51bGxwdHIpKTsK
KyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJsaW5rX2dldF9zdGFydF9pbmRleChBVFNQ
SV9IWVBFUkxJTksobGluay5nZXQoKSksIG51bGxwdHIpLCA9PSwgMCk7CisgICAgZ19hc3NlcnRf
Y21waW50KGF0c3BpX2h5cGVybGlua19nZXRfZW5kX2luZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5r
LmdldCgpKSwgbnVsbHB0ciksID09LCAxKTsKKyAgICB1cmkucmVzZXQoYXRzcGlfaHlwZXJsaW5r
X2dldF91cmkoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCAwLCBudWxscHRyKSk7CisgICAg
Z19hc3NlcnRfY21wc3RyKHVyaS5nZXQoKSwgPT0sICIiKTsKKyAgICBnX2Fzc2VydF90cnVlKGF0
c3BpX2h5cGVybGlua19nZXRfb2JqZWN0KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgMCwg
bnVsbHB0cikgPT0gbWFya2VyLmdldCgpKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCB0ZXN0
SHlwZXJ0ZXh0QmFzaWMoQWNjZXNzaWJpbGl0eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBA
IC0xOTUzLDYgKzIxNjEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SHlwZXJ0ZXh0QmFzaWMoQWNjZXNz
aWJpbGl0eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgICAgICI8aHRtbD4iCiAgICAg
ICAgICIgIDxib2R5PiIKICAgICAgICAgIiAgICA8cD5UaGlzIGlzIDxidXR0b24+YnV0dG9uPC9i
dXR0b24+IGFuZCA8YSBocmVmPSdodHRwczovL3d3dy53ZWJraXRndGsub3JnJz5saW5rPC9hPiBp
biBhIHBhcmFncmFwaDwvcD4iCisgICAgICAgICIgICAgPG9sPjxsaT5MaXN0IHdpdGggYSA8YSBo
cmVmPSdodHRwczovL3d3dy53ZWJraXQub3JnJz5saW5rPC9hPjwvbGk+PC9vbD4iCiAgICAgICAg
ICIgIDwvYm9keT4iCiAgICAgICAgICI8L2h0bWw+IiwKICAgICAgICAgbnVsbHB0cik7CkBAIC0x
OTYzLDcgKzIxNzIsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0SHlwZXJ0ZXh0QmFzaWMoQWNjZXNzaWJp
bGl0eVRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAKICAgICBhdXRvIGRvY3VtZW50V2ViID0g
dGVzdC0+ZmluZERvY3VtZW50V2ViKHRlc3RBcHAuZ2V0KCkpOwogICAgIGdfYXNzZXJ0X3RydWUo
QVRTUElfSVNfQUNDRVNTSUJMRShkb2N1bWVudFdlYi5nZXQoKSkpOwotICAgIGdfYXNzZXJ0X2Nt
cGludChhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChkb2N1bWVudFdlYi5nZXQoKSwg
bnVsbHB0ciksID09LCAxKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfYWNjZXNzaWJsZV9n
ZXRfY2hpbGRfY291bnQoZG9jdW1lbnRXZWIuZ2V0KCksIG51bGxwdHIpLCA9PSwgMik7CiAKICAg
ICBhdXRvIHAgPSBhZG9wdEdSZWYoYXRzcGlfYWNjZXNzaWJsZV9nZXRfY2hpbGRfYXRfaW5kZXgo
ZG9jdW1lbnRXZWIuZ2V0KCksIDAsIG51bGxwdHIpKTsKICAgICBnX2Fzc2VydF90cnVlKEFUU1BJ
X0lTX0hZUEVSVEVYVChwLmdldCgpKSk7CkBAIC0yMDExLDYgKzIyMjAsNDAgQEAgc3RhdGljIHZv
aWQgdGVzdEh5cGVydGV4dEJhc2ljKEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBnY29uc3Rwb2lu
dGVyKQogICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcnRleHRfZ2V0X2xpbmtfaW5kZXgo
QVRTUElfSFlQRVJURVhUKHAuZ2V0KCkpLCAyMCwgbnVsbHB0ciksID09LCAxKTsKICAgICBnX2Fz
c2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0ZXh0X2dldF9saW5rX2luZGV4KEFUU1BJX0hZUEVSVEVY
VChwLmdldCgpKSwgMjQsIG51bGxwdHIpLCA9PSwgLTEpOwogI2VuZGlmCisKKyNpZiBVU0UoQVRT
UEkpCisgICAgYXV0byBvbCA9IGFkb3B0R1JlZihhdHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9h
dF9pbmRleChkb2N1bWVudFdlYi5nZXQoKSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3Ry
dWUoQVRTUElfSVNfQUNDRVNTSUJMRShvbC5nZXQoKSkpOworICAgIGdfYXNzZXJ0X2NtcGludChh
dHNwaV9hY2Nlc3NpYmxlX2dldF9jaGlsZF9jb3VudChvbC5nZXQoKSwgbnVsbHB0ciksID09LCAx
KTsKKyAgICBhdXRvIGxpID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vzc2libGVfZ2V0X2NoaWxkX2F0
X2luZGV4KG9sLmdldCgpLCAwLCBudWxscHRyKSk7CisgICAgZ19hc3NlcnRfdHJ1ZShBVFNQSV9J
U19IWVBFUlRFWFQobGkuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0
ZXh0X2dldF9uX2xpbmtzKEFUU1BJX0hZUEVSVEVYVChsaS5nZXQoKSksIG51bGxwdHIpLCA9PSwg
Mik7CisgICAgbGluayA9IGFkb3B0R1JlZihhdHNwaV9oeXBlcnRleHRfZ2V0X2xpbmsoQVRTUElf
SFlQRVJURVhUKGxpLmdldCgpKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRT
UElfSVNfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlf
aHlwZXJsaW5rX2dldF9uX2FuY2hvcnMoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxs
cHRyKSwgPT0sIDEpOworICAgIGdfYXNzZXJ0X3RydWUoYXRzcGlfaHlwZXJsaW5rX2lzX3ZhbGlk
KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2Nt
cGludChhdHNwaV9oeXBlcmxpbmtfZ2V0X3N0YXJ0X2luZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5r
LmdldCgpKSwgbnVsbHB0ciksID09LCAwKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlw
ZXJsaW5rX2dldF9lbmRfaW5kZXgoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRy
KSwgPT0sIDEpOworICAgIHVyaS5yZXNldChhdHNwaV9oeXBlcmxpbmtfZ2V0X3VyaShBVFNQSV9I
WVBFUkxJTksobGluay5nZXQoKSksIDAsIG51bGxwdHIpKTsKKyAgICBnX2Fzc2VydF9jbXBzdHIo
dXJpLmdldCgpLCA9PSwgIiIpOworICAgIGF1dG8gbWFya2VyID0gYWRvcHRHUmVmKGF0c3BpX2Fj
Y2Vzc2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGxpLmdldCgpLCAwLCBudWxscHRyKSk7CisgICAg
Z19hc3NlcnRfdHJ1ZShhdHNwaV9oeXBlcmxpbmtfZ2V0X29iamVjdChBVFNQSV9IWVBFUkxJTkso
bGluay5nZXQoKSksIDAsIG51bGxwdHIpID09IG1hcmtlci5nZXQoKSk7CisgICAgbGluayA9IGFk
b3B0R1JlZihhdHNwaV9oeXBlcnRleHRfZ2V0X2xpbmsoQVRTUElfSFlQRVJURVhUKGxpLmdldCgp
KSwgMSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X3RydWUoQVRTUElfSVNfSFlQRVJMSU5LKGxp
bmsuZ2V0KCkpKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJsaW5rX2dldF9uX2Fu
Y2hvcnMoQVRTUElfSFlQRVJMSU5LKGxpbmsuZ2V0KCkpLCBudWxscHRyKSwgPT0sIDEpOworICAg
IGdfYXNzZXJ0X3RydWUoYXRzcGlfaHlwZXJsaW5rX2lzX3ZhbGlkKEFUU1BJX0hZUEVSTElOSyhs
aW5rLmdldCgpKSwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcmxp
bmtfZ2V0X3N0YXJ0X2luZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0ciks
ID09LCAxMyk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVybGlua19nZXRfZW5kX2lu
ZGV4KEFUU1BJX0hZUEVSTElOSyhsaW5rLmdldCgpKSwgbnVsbHB0ciksID09LCAxNCk7CisgICAg
dXJpLnJlc2V0KGF0c3BpX2h5cGVybGlua19nZXRfdXJpKEFUU1BJX0hZUEVSTElOSyhsaW5rLmdl
dCgpKSwgMCwgbnVsbHB0cikpOworICAgIGdfYXNzZXJ0X2NtcHN0cih1cmkuZ2V0KCksID09LCAi
aHR0cHM6Ly93d3cud2Via2l0Lm9yZy8iKTsKKyAgICBhID0gYWRvcHRHUmVmKGF0c3BpX2FjY2Vz
c2libGVfZ2V0X2NoaWxkX2F0X2luZGV4KGxpLmdldCgpLCAxLCBudWxscHRyKSk7CisgICAgZ19h
c3NlcnRfdHJ1ZShhdHNwaV9oeXBlcmxpbmtfZ2V0X29iamVjdChBVFNQSV9IWVBFUkxJTksobGlu
ay5nZXQoKSksIDAsIG51bGxwdHIpID09IGEuZ2V0KCkpOworCisgICAgZ19hc3NlcnRfY21waW50
KGF0c3BpX2h5cGVydGV4dF9nZXRfbGlua19pbmRleChBVFNQSV9IWVBFUlRFWFQobGkuZ2V0KCkp
LCAwLCBudWxscHRyKSwgPT0sIDApOworICAgIGdfYXNzZXJ0X2NtcGludChhdHNwaV9oeXBlcnRl
eHRfZ2V0X2xpbmtfaW5kZXgoQVRTUElfSFlQRVJURVhUKGxpLmdldCgpKSwgMSwgbnVsbHB0ciks
ID09LCAtMSk7CisgICAgZ19hc3NlcnRfY21waW50KGF0c3BpX2h5cGVydGV4dF9nZXRfbGlua19p
bmRleChBVFNQSV9IWVBFUlRFWFQobGkuZ2V0KCkpLCAxMywgbnVsbHB0ciksID09LCAxKTsKKyAg
ICBnX2Fzc2VydF9jbXBpbnQoYXRzcGlfaHlwZXJ0ZXh0X2dldF9saW5rX2luZGV4KEFUU1BJX0hZ
UEVSVEVYVChsaS5nZXQoKSksIDE0LCBudWxscHRyKSwgPT0sIC0xKTsKKyNlbmRpZgogfQogCiBz
dGF0aWMgdm9pZCB0ZXN0QWN0aW9uQmFzaWMoQWNjZXNzaWJpbGl0eVRlc3QqIHRlc3QsIGdjb25z
dHBvaW50ZXIpCkBAIC0yODY0LDYgKzMxMDcsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgQWNj
ZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJhY2Nlc3NpYmxlL3N0
YXRlIiwgdGVzdEFjY2Vzc2libGVTdGF0ZSk7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgi
V2ViS2l0QWNjZXNzaWJpbGl0eSIsICJhY2Nlc3NpYmxlL3N0YXRlLWNoYW5nZWQiLCB0ZXN0QWNj
ZXNzaWJsZVN0YXRlQ2hhbmdlZCk7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0
QWNjZXNzaWJpbGl0eSIsICJhY2Nlc3NpYmxlL2V2ZW50LWxpc3RlbmVyIiwgdGVzdEFjY2Vzc2li
bGVFdmVudExpc3RlbmVyKTsKKyAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRkKCJXZWJLaXRBY2Nl
c3NpYmlsaXR5IiwgImFjY2Vzc2libGUvbGlzdC1tYXJrZXJzIiwgdGVzdEFjY2Vzc2libGVMaXN0
TWFya2Vycyk7CiAgICAgQWNjZXNzaWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0
eSIsICJjb21wb25lbnQvaGl0LXRlc3QiLCB0ZXN0Q29tcG9uZW50SGl0VGVzdCk7CiAjaWZkZWYg
QVRTUElfU0NST0xMVFlQRV9DT1VOVAogICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktp
dEFjY2Vzc2liaWxpdHkiLCAiY29tcG9uZW50L3Njcm9sbC10byIsIHRlc3RDb21wb25lbnRTY3Jv
bGxUbyk7CkBAIC0yODc2LDYgKzMxMjAsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgQWNjZXNz
aWJpbGl0eVRlc3Q6OmFkZCgiV2ViS2l0QWNjZXNzaWJpbGl0eSIsICJ0ZXh0L2F0dHJpYnV0ZXMi
LCB0ZXN0VGV4dEF0dHJpYnV0ZXMpOwogICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktp
dEFjY2Vzc2liaWxpdHkiLCAidGV4dC9zdGF0ZS1jaGFuZ2VkIiwgdGVzdFRleHRTdGF0ZUNoYW5n
ZWQpOwogICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAi
dGV4dC9yZXBsYWNlZC1vYmplY3RzIiwgdGVzdFRleHRSZXBsYWNlZE9iamVjdHMpOworICAgIEFj
Y2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAidGV4dC9saXN0LW1h
cmtlcnMiLCB0ZXN0VGV4dExpc3RNYXJrZXJzKTsKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6YWRk
KCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgInZhbHVlL2Jhc2ljIiwgdGVzdFZhbHVlQmFzaWMpOwog
ICAgIEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAiaHlwZXJs
aW5rL2Jhc2ljIiwgdGVzdEh5cGVybGlua0Jhc2ljKTsKICAgICBBY2Nlc3NpYmlsaXR5VGVzdDo6
YWRkKCJXZWJLaXRBY2Nlc3NpYmlsaXR5IiwgImh5cGVydGV4dC9iYXNpYyIsIHRlc3RIeXBlcnRl
eHRCYXNpYyk7Cg==
</data>
<flag name="review"
          id="473211"
          type_id="1"
          status="+"
          setter="aperez"
    />
          </attachment>
      

    </bug>

</bugzilla>