<?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>144853</bug_id>
          
          <creation_ts>2015-05-10 21:09:07 -0700</creation_ts>
          <short_desc>js/dom/stack-trace.html fails with eager compilation</short_desc>
          <delta_ts>2015-05-12 22:23:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (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>
          <dependson>144877</dependson>
          <blocked>144945</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>basile_clement</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenb</cc>
    
    <cc>mmirman</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1093649</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-10 21:09:07 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094333</commentid>
    <comment_count>1</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 18:06:28 -0700</bug_when>
    <thetext>This looks like an FTL bug. No FTL and the bug goes away.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094337</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 18:20:10 -0700</bug_when>
    <thetext>Wow, this is hilarious.  The various escape analyses don&apos;t have any clue how to handle:

a: NewObject()
b: Check(Number:@a)

or anything else like that where the check is guaranteed to fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094376</commentid>
    <comment_count>3</comment_count>
      <attachid>253012</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 20:36:33 -0700</bug_when>
    <thetext>Created attachment 253012
starting to work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094394</commentid>
    <comment_count>4</comment_count>
      <attachid>253018</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 21:36:58 -0700</bug_when>
    <thetext>Created attachment 253018
the patch

One of the newly introduced tests is still crashing.  I&apos;ll investigate whether this is related to my patch or not.  If it&apos;s unrelated then I&apos;ll land the test skipped and file a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094396</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-12 21:39:22 -0700</bug_when>
    <thetext>Attachment 253018 did not pass style-queue:


ERROR: Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:171:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/dfg/DFGVarargsForwardingPhase.cpp:111:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094402</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 21:58:09 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created attachment 253018 [details]
&gt; the patch
&gt; 
&gt; One of the newly introduced tests is still crashing.  I&apos;ll investigate
&gt; whether this is related to my patch or not.  If it&apos;s unrelated then I&apos;ll
&gt; land the test skipped and file a separate bug.

Yup, it&apos;s a preexisting separate bug: https://bugs.webkit.org/show_bug.cgi?id=144945</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094405</commentid>
    <comment_count>7</comment_count>
      <attachid>253018</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2015-05-12 22:03:08 -0700</bug_when>
    <thetext>Comment on attachment 253018
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=253018&amp;action=review

&gt; Source/JavaScriptCore/jsc.cpp:624
&gt; +        putDirectNativeFunction(vm, this, Identifier::fromString(&amp;vm, &quot;isInt32&quot;), 0, functionIsInt32, CheckInt32, DontEnum | JSC::Function);

I would prefer CheckInt32Intrinsic to follow the other intrinsics naming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1094415</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-05-12 22:23:04 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/184260</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253012</attachid>
            <date>2015-05-12 20:36:33 -0700</date>
            <delta_ts>2015-05-12 21:36:58 -0700</delta_ts>
            <desc>starting to work</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>41025</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxODQyMDUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDYgKzQ3MCw3IEBAIHN0
YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmMKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmFsc2UyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmluZWQxKEV4ZWNTdGF0ZSop
Owogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmluZWQy
KEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Jc0ludDMyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgZnVuY3Rpb25FZmZlY3RmdWw0MihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRlbnRpdHkoRXhlY1N0YXRlKik7CiBzdGF0aWMgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihFeGVjU3Rh
dGUqKTsKQEAgLTYyMCw2ICs2MjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHB1dERpcmVjdE5h
dGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIk9TUkV4
aXQiKSwgMCwgZnVuY3Rpb25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250RW51bSB8
IEpTQzo6RnVuY3Rpb24pOwogICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwgdGhp
cywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ZpbmFsVGllciIpLCAwLCBmdW5jdGlv
bkZhbHNlMiwgSXNGaW5hbFRpZXJJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7
CiAgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgInByZWRpY3RJbnQzMiIpLCAwLCBmdW5jdGlvblVuZGVmaW5lZDIsIFNl
dEludDMySGVhcFByZWRpY3Rpb25JbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlvbik7
CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgImlzSW50MzIiKSwgMCwgZnVuY3Rpb25Jc0ludDMyLCBDaGVja0ludDMy
LCBEb250RW51bSB8IEpTQzo6RnVuY3Rpb24pOwogICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5j
dGlvbih2bSwgdGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmaWF0SW50NTIiKSwg
MCwgZnVuY3Rpb25JZGVudGl0eSwgRmlhdEludDUySW50cmluc2ljLCBEb250RW51bSB8IEpTQzo6
RnVuY3Rpb24pOwogICAgICAgICAKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJlZmZlY3RmdWw0
MiIsIGZ1bmN0aW9uRWZmZWN0ZnVsNDIsIDApOwpAQCAtMTA1Niw2ICsxMDU4LDE0IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWwKIAogRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVmaW5lZDEoRXhlY1N0YXRlKikgeyByZXR1cm4gSlNWYWx1
ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOyB9CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGZ1bmN0aW9uVW5kZWZpbmVkMihFeGVjU3RhdGUqKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNVbmRlZmluZWQoKSk7IH0KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25J
c0ludDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGV4
ZWMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CisgICAgICAgIGlmICghZXhlYy0+YXJndW1lbnQo
aSkuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4oZmFsc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4o
dHJ1ZSkpOworfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRlbnRp
dHkoRXhlY1N0YXRlKiBleGVjKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+YXJndW1l
bnQoMCkpOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1lbnRz
RWxpbWluYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTg0MjA1KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDE0IEBACiAjaW5jbHVkZSAiSlNDSW5s
aW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFj
ZSBERkcgewogCiBuYW1lc3BhY2UgewogCitib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogY2xhc3Mg
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiBwdWJsaWM6CiAgICAg
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZShHcmFwaCYgZ3JhcGgpCkBAIC0xMDEsNiArMTA0LDkg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
KyAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygiQ2Fu
ZGlkYXRlczogIiwgbGlzdER1bXAobV9jYW5kaWRhdGVzKSwgIlxuIik7CiAgICAgfQogICAgIAog
ICAgIC8vIExvb2sgZm9yIGVzY2FwaW5nIHNpdGVzLCBhbmQgcmVtb3ZlIGZyb20gdGhlIGNhbmRp
ZGF0ZXMgc2V0IGlmIHdlIHNlZSBhbiBlc2NhcGUuCkBAIC0xNjAsNiArMTY2LDkgQEAgcHJpdmF0
ZToKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgICAgICAgICBjYXNlIENo
ZWNrOgorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgTW92SGludDoKICAgICAg
ICAgICAgICAgICBjYXNlIFB1dEhpbnQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAt
MTg5LDYgKzE5OCw5IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICB9CisKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9n
KCJBZnRlciBlc2NhcGUgYW5hbHlzaXM6ICIsIGxpc3REdW1wKG1fY2FuZGlkYXRlcyksICJcbiIp
OwogICAgIH0KIAogICAgIC8vIEFueXdoZXJlIHRoYXQgYSBjYW5kaWRhdGUgaXMgbGl2ZSAoaW4g
Ynl0ZWNvZGUgb3IgaW4gREZHKSwgY2hlY2sgaWYgdGhlcmUgaXMgYSBjaGFuY2Ugb2YKQEAgLTMz
MSw2ICszNDMsOSBAQCBwcml2YXRlOgogICAgICAgICAvLyBhdmFpbGFiaWxpdGllcyBtYXkgYmVj
b21lIHdoYXRldmVyLiBPU1IgZXhpdCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgdGhpcyBxdWl0
ZSBuYXR1cmFsbHksCiAgICAgICAgIC8vIHNpbmNlIHRob3NlIGF2YWlsYWJpbGl0aWVzIHNwZWFr
IG9mIHRoZSBzdGFjayBiZWZvcmUgdGhlIG9wdGltaXppbmcgY29tcGlsZXIgc3RhY2sgZnJhbWUg
aXMKICAgICAgICAgLy8gdG9ybiBkb3duLgorCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICAgICAgZGF0YUxvZygiQWZ0ZXIgaW50ZXJmZXJlbmNlIGFuYWx5c2lzOiAiLCBsaXN0RHVtcCht
X2NhbmRpZGF0ZXMpLCAiXG4iKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCB0cmFuc2Zvcm0oKQpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5j
cHAJKHJldmlzaW9uIDE4NDIwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0
ZUNvZGVQYXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTExLDYgKzIxMTEsMTYgQEAgYm9v
bCBCeXRlQ29kZVBhcnNlcjo6aGFuZGxlSW50cmluc2ljKGludAogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAgICAgICAgIAorICAgIGNhc2UgQ2hlY2tJbnQzMjogeworICAgICAgICBpbnNl
cnRDaGVja3MoKTsKKyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmd1bWVudENvdW50SW5j
bHVkaW5nVGhpczsgKytpKSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gZ2V0KHZpcnR1YWxS
ZWdpc3RlckZvckFyZ3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAgICBhZGRU
b0dyYXBoKFBoYW50b20sIEVkZ2Uobm9kZSwgSW50MzJVc2UpKTsKKyAgICAgICAgfQorICAgICAg
ICBzZXQoVmlydHVhbFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBqc0NvbnN0YW50KGpzQm9vbGVh
bih0cnVlKSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAogICAgIGNh
c2UgRmlhdEludDUySW50cmluc2ljOiB7CiAgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVk
aW5nVGhpcyAhPSAyKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25T
aW5raW5nUGhhc2UuY3BwCShyZXZpc2lvbiAxODQyMDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC04MjgsMjUgKzgyOCw0NiBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld0Z1bmN0aW9u
OgogICAgICAgICAgICAgaWYgKCFub2RlLT5jYXN0T3BlcmFuZDxGdW5jdGlvbkV4ZWN1dGFibGUq
PigpLT5zaW5nbGV0b25GdW5jdGlvbigpLT5pc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgICAg
ICBzaW5rQ2FuZGlkYXRlKCk7Ci0gICAgICAgICAgICBtX2dyYXBoLmRvVG9DaGlsZHJlbigKLSAg
ICAgICAgICAgICAgICBub2RlLAotICAgICAgICAgICAgICAgIFsmXSAoRWRnZSBlZGdlKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICAgICAg
fSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIENyZWF0ZUFjdGl2YXRpb246
CiAgICAgICAgICAgICBpZiAoIW1fZ3JhcGguc3ltYm9sVGFibGVGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKS0+c2luZ2xldG9uU2NvcGUoKS0+aXNTdGlsbFZhbGlkKCkpCiAgICAgICAgICAgICAg
ICAgc2lua0NhbmRpZGF0ZSgpOworICAgICAgICAgICAgZXNjYXBlKG5vZGUtPmNoaWxkMSgpLm5v
ZGUoKSk7CisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjYXNlIENoZWNrOgogICAgICAg
ICAgICAgbV9ncmFwaC5kb1RvQ2hpbGRyZW4oCiAgICAgICAgICAgICAgICAgbm9kZSwKICAgICAg
ICAgICAgICAgICBbJl0gKEVkZ2UgZWRnZSkgewotICAgICAgICAgICAgICAgICAgICBlc2NhcGUo
ZWRnZS5ub2RlKCkpOworICAgICAgICAgICAgICAgICAgICAvLyBXZSBzaG91bGRuJ3QgZW1pdCBD
aGVjayB1bmxlc3Mgd2UgYWN0dWFsbHkgd2FudCBhIHR5cGUgY2hlY2suCisgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVChtYXlIYXZlVHlwZUNoZWNrKGVkZ2UudXNlS2luZCgpKSk7CisgICAgICAg
ICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBib29sIG9rID0gdHJ1ZTsKKworICAg
ICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVkZ2UudXNlS2luZCgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGNhc2UgQ2VsbFVzZToKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBPYmplY3RVc2U6
CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb2Ygb3VyIGFsbG9jYXRpb25zIHdpbGwg
cGFzcyB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBGdW5jdGlvblVzZToKKyAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIGFsbG9jYXRpb25zIHdpbGwgcGFzcyB0aGlz
LgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVkZ2UtPm9wKCkgIT0gTmV3RnVuY3Rpb24p
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBvayA9IGZhbHNlOworICAg
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmICghb2spCisgICAgICAgICAg
ICAgICAgICAgICAgICBlc2NhcGUoZWRnZS5ub2RlKCkpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBNb3ZIaW50OgotICAgICAgICBjYXNl
IENoZWNrOgogICAgICAgICBjYXNlIFB1dEhpbnQ6CiAgICAgICAgIGNhc2UgU3RvcmVCYXJyaWVy
OgogICAgICAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6CkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAkocmV2aXNpb24gMTg0MjA1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgJKHdvcmtpbmcgY29weSkK
QEAgLTYwLDYgKzYwLDcgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIE9TUkV4aXRJbnRyaW5zaWMs
CiAgICAgSXNGaW5hbFRpZXJJbnRyaW5zaWMsCiAgICAgU2V0SW50MzJIZWFwUHJlZGljdGlvbklu
dHJpbnNpYywKKyAgICBDaGVja0ludDMyLAogICAgIEZpYXRJbnQ1MkludHJpbnNpYywKIH07CiAK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMt
cGFzdC1pbnZhbGlkLWNoZWNrLWRmZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvdGVzdHMvc3RyZXNzL3NpbmstYXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1kZmcu
anMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Np
bmstYXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1kZmcuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxNyBAQAordmFyIGdsb2JhbFJlc3VsdDsKK09iamVjdC5wcm90b3R5cGUudmFsdWVP
ZiA9IGZ1bmN0aW9uKCkgeyBnbG9iYWxSZXN1bHQgPSAxOyB9CisKK2Z1bmN0aW9uIGZvbygpIHsK
KyAgICBnbG9iYWxSZXN1bHQgPSAwOworICAgICthcmd1bWVudHM7CisgICAgcmV0dXJuIGdsb2Jh
bFJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQgIT09IDEp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0
LWludmFsaWQtY2hlY2staW50MzItZGZnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWlu
dDMyLWRmZy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLWRmZy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBmb28oKSB7CisgICAgcmV0dXJu
IGlzSW50MzIoYXJndW1lbnRzKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChy
ZXN1bHQgIT09IGZhbHNlKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyBy
ZXN1bHQ7Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2lu
ay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZh
bGlkLWNoZWNrLWludDMyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFsaWQtY2hlY2staW50MzIuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKHApIHsKKyAgICB2
YXIgcmVzdWx0ID0gNDI7CisgICAgdmFyIG8gPSBhcmd1bWVudHM7CisgICAgaWYgKHApCisgICAg
ICAgIHJlc3VsdCA9IGlzSW50MzIobyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworbm9Jbmxp
bmUoZm9vKTsKKwordmFyIHJlc3VsdCA9IGZvbyh0cnVlKTsKK2lmIChyZXN1bHQgIT09IGZhbHNl
KQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBiZWdpbm5pbmc6ICIgKyByZXN1bHQ7
CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBm
b28oZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT09IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6
IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28odHJ1ZSk7Citp
ZiAocmVzdWx0ICE9PSBmYWxzZSkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5k
OiAiICsgcmVzdWx0OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3NpbmstYXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1zbmVha2llci5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstYXJndW1lbnRzLXBh
c3QtaW52YWxpZC1jaGVjay1zbmVha2llci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNr
LXNuZWFraWVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKK2Z1bmN0aW9uIGJh
cihvLCBwKSB7CisgICAgdmFyIG8yID0ge2Y6IDB9OworICAgIGlmIChwKQorICAgICAgICBvMi5m
ID0gbzsKKyAgICByZXR1cm4gK28yLmY7Cit9CisKK3ZhciBnbG9iYWxSZXN1bHQ7CitPYmplY3Qu
cHJvdG90eXBlLnZhbHVlT2YgPSBmdW5jdGlvbigpIHsgZ2xvYmFsUmVzdWx0ID0gMTsgfTsKKwor
ZnVuY3Rpb24gZm9vKHAsIHEpIHsKKyAgICBnbG9iYWxSZXN1bHQgPSAwOworICAgIHZhciBvID0g
YXJndW1lbnRzOworICAgIGlmIChwKQorICAgICAgICBiYXIobywgcSk7CisgICAgcmV0dXJuIGds
b2JhbFJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9vKHRydWUsIGZhbHNlKTsKKwor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgYmFyKDEsIHRydWUpOworICAg
IGJhcih7fSwgZmFsc2UpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsK
KyAgICB2YXIgcmVzdWx0ID0gZm9vKGZhbHNlLCB0cnVlKTsKKyAgICBpZiAocmVzdWx0ICE9PSAw
KQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3Zh
ciByZXN1bHQgPSBmb28odHJ1ZSwgdHJ1ZSk7CitpZiAocmVzdWx0ICE9PSAxKQorICAgIHRocm93
ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNo
ZWNrLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLmpzCShyZXZpc2lvbiAwKQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFs
aWQtY2hlY2suanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAordmFyIGdsb2JhbFJl
c3VsdDsKK09iamVjdC5wcm90b3R5cGUudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBnbG9iYWxSZXN1
bHQgPSAxOyB9CisKK2Z1bmN0aW9uIGZvbyhwKSB7CisgICAgZ2xvYmFsUmVzdWx0ID0gMDsKKyAg
ICB2YXIgbyA9IGFyZ3VtZW50czsKKyAgICBpZiAocCkKKyAgICAgICAgK287CisgICAgcmV0dXJu
IGdsb2JhbFJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhmYWxzZSk7CisgICAgaWYgKHJl
c3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3VsdCAhPT0gMSkKKyAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsgcmVzdWx0OworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstZnVuY3Rpb24tcGFzdC1pbnZhbGlk
LWNoZWNrLXNuZWFraWVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90
ZXN0cy9zdHJlc3Mvc2luay1mdW5jdGlvbi1wYXN0LWludmFsaWQtY2hlY2stc25lYWtpZXIuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmst
ZnVuY3Rpb24tcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFraWVyLmpzCSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsMzUgQEAKK2Z1bmN0aW9uIGJhcihvLCBwKSB7CisgICAgaWYgKHApCisgICAgICAg
IHJldHVybiArby5mOworICAgIHJldHVybiA0MjsKK30KKwordmFyIGdsb2JhbFJlc3VsdDsKK0Z1
bmN0aW9uLnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IGdsb2JhbFJlc3VsdCA9IDE7
IH07CisKK2Z1bmN0aW9uIGZvbyhwLCBxKSB7CisgICAgZ2xvYmFsUmVzdWx0ID0gMDsKKyAgICB2
YXIgbyA9IGZ1bmN0aW9uKCkgeyB9OworICAgIHZhciBvMiA9IHtmOiBvfTsKKyAgICBpZiAocCkK
KyAgICAgICAgYmFyKG8yLCBxKTsKKyAgICByZXR1cm4gZ2xvYmFsUmVzdWx0OworfQorCitub0lu
bGluZShmb28pOworCitmb28odHJ1ZSwgZmFsc2UpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDAwOyArK2kpCisgICAgYmFyKHtmOjQyfSwgdHJ1ZSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwg
MTAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oZmFsc2UsIHRydWUpOworICAgIGlm
IChyZXN1bHQgIT09IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJl
c3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh0cnVlLCB0cnVlKTsKK2lmIChyZXN1bHQgIT09
IDEpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsKKwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWZ1bmN0aW9uLXBh
c3QtaW52YWxpZC1jaGVjay1zbmVha3kuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWZ1bmN0aW9uLXBhc3QtaW52YWxpZC1jaGVjay1zbmVh
a3kuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3NpbmstZnVuY3Rpb24tcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFreS5qcwkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDEzIEBACitmdW5jdGlvbiBmb28ocCkgeworICAgIHZhciBvID0gZnVuY3Rp
b24oKSB7IH07CisgICAgdmFyIHEgPSB7ZjogcCA/IG8gOiA0Mn07CisgICAgdmFyIHRtcCA9IHEu
ZiArIDE7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkKKyAgICBmb28oZmFsc2UpOworCitmb28odHJ1ZSk7CisKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLWlu
dDMyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLmpzCShyZXZpc2lvbiAwKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLW9iamVjdC1wYXN0LWludmFs
aWQtY2hlY2staW50MzIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rp
b24gZm9vKHApIHsKKyAgICB2YXIgcmVzdWx0ID0gNDI7CisgICAgdmFyIG8gPSB7fTsKKyAgICBp
ZiAocCkKKyAgICAgICAgcmVzdWx0ID0gaXNJbnQzMihvKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCitub0lubGluZShmb28pOworCit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3Vs
dCAhPT0gZmFsc2UpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJl
c3VsdDsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3Vs
dCA9IGZvbyhmYWxzZSk7CisgICAgaWYgKHJlc3VsdCAhPT0gNDIpCisgICAgICAgIHRocm93ICJF
cnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh0cnVl
KTsKK2lmIChyZXN1bHQgIT09IGZhbHNlKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBh
dCBlbmQ6ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFraWVyLmpzCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFz
dC1pbnZhbGlkLWNoZWNrLXNuZWFraWVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLW9iamVjdC1wYXN0LWludmFsaWQtY2hlY2stc25l
YWtpZXIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorZnVuY3Rpb24gYmFyKG8s
IHApIHsKKyAgICBpZiAocCkKKyAgICAgICAgcmV0dXJuICtvLmY7CisgICAgcmV0dXJuIDQyOwor
fQorCitmdW5jdGlvbiBmb28ocCwgcSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBv
ID0ge3ZhbHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXN1bHQgPSAxOyB9fTsKKyAgICB2YXIgbzIgPSB7
Zjogb307CisgICAgaWYgKHApCisgICAgICAgIGJhcihvMiwgcSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9vKHRydWUsIGZhbHNlKTsKKworZm9yICh2YXIg
aSA9IDA7IGkgPCAxMDAwMDsgKytpKQorICAgIGJhcih7Zjo0Mn0sIHRydWUpOworCitmb3IgKHZh
ciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGZhbHNlLCB0
cnVlKTsKKyAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28odHJ1ZSwgdHJ1ZSk7Citp
ZiAocmVzdWx0ICE9PSAxKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIg
KyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2lu
ay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFreS5qcwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1j
aGVjay1zbmVha3kuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVz
dHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay1zbmVha3kuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gZm9vKHApIHsKKyAgICB2YXIgcmVz
dWx0ID0gMDsKKyAgICB2YXIgbyA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmVzdWx0ID0gMTsg
fX07CisgICAgdmFyIHEgPSB7ZjogcCA/IG8gOiA0Mn07CisgICAgdmFyIHRtcCA9IHEuZiArIDE7
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9
IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhmYWxzZSk7CisgICAg
aWYgKHJlc3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsg
cmVzdWx0OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3VsdCAhPT0gMSkK
KyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsgcmVzdWx0OworCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52
YWxpZC1jaGVjay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMv
c3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay5qcwkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZh
bGlkLWNoZWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIGZv
byhwKSB7CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG8gPSB7dmFsdWVPZjpmdW5jdGlv
bigpIHsgcmVzdWx0ID0gMTsgfX07CisgICAgaWYgKHApCisgICAgICAgICtvOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAw
MDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oZmFsc2UpOworICAgIGlmIChyZXN1bHQg
IT09IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30K
KwordmFyIHJlc3VsdCA9IGZvbyh0cnVlKTsKK2lmIChyZXN1bHQgIT09IDEpCisgICAgdGhyb3cg
IkVycm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsKKwpJbmRleDogTGF5b3V0VGVz
dHMvanMvc3RhY2stdHJhY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2pzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2pzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM2
MiBAQAorVGhpcyB0ZXN0IGNoZWNrcyBzdGFjayB0cmFjZSBjb3JlY3RuZXNzIGluIHNwZWNpYWwg
Y2FzZXMuCistLT4gU3RhY2sgVHJhY2U6CisgICAgMCAgIG5vcm1hbElubmVyIGF0IHN0YWNrLXRy
YWNlLmpzOjg0OjQ3CisgICAgMSAgIG5vcm1hbE91dGVyIGF0IHN0YWNrLXRyYWNlLmpzOjgzOjM3
CisgICAgMiAgIGdsb2JhbCBjb2RlIGF0IHN0YWNrLXRyYWNlLmpzOjg5OjE4CisKKy0tPiBTdGFj
ayBUcmFjZToKKyAgICAwICAgaW5uZXIgYXQgc3RhY2stdHJhY2UuanM6ODE6NDQKKyAgICAxICAg
IGF0IGV2YWwgY29kZQorICAgIDIgICBldmFsIGF0IFtuYXRpdmUgY29kZV0KKyAgICAzICAgZXZh
bGVyIGF0IHN0YWNrLXRyYWNlLmpzOjgyOjI5CisgICAgNCAgIGdsb2JhbCBjb2RlIGF0IHN0YWNr
LXRyYWNlLmpzOjkyOjEzCisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgaW5uZXIgYXQgc3Rh
Y2stdHJhY2UuanM6ODE6NDQKKyAgICAxICAgb3V0ZXIgYXQgc3RhY2stdHJhY2UuanM6ODA6MzQK
KyAgICAyICAgIGF0IGV2YWwgY29kZQorICAgIDMgICBldmFsIGF0IFtuYXRpdmUgY29kZV0KKyAg
ICA0ICAgZXZhbGVyIGF0IHN0YWNrLXRyYWNlLmpzOjgyOjI5CisgICAgNSAgIGdsb2JhbCBjb2Rl
IGF0IHN0YWNrLXRyYWNlLmpzOjkzOjEzCisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgaW5u
ZXIgYXQgc3RhY2stdHJhY2UuanM6ODE6NDQKKyAgICAxICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2st
dHJhY2UuanM6OTY6MjMKKworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICBpbm5lciBhdCBzdGFj
ay10cmFjZS5qczo4MTo0NAorICAgIDEgICBvdXRlciBhdCBzdGFjay10cmFjZS5qczo4MDozNAor
ICAgIDIgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczo5NzoyMworCistLT4gU3RhY2sg
VHJhY2U6CisgICAgMCAgIGhvc3RUaHJvd2VyIGF0IHN0YWNrLXRyYWNlLmpzOjc4OjQzCisgICAg
MSAgIGdsb2JhbCBjb2RlIGF0IHN0YWNrLXRyYWNlLmpzOjEwMDoxOAorCistLT4gU3RhY2sgVHJh
Y2U6CisgICAgMCAgIHNjcmlwdGVySW5uZXIgYXQgc3RhY2stdHJhY2UuanM6ODU6MzcKKyAgICAx
ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MTAyOjIwCisKKy0tPiBTdGFjayBUcmFj
ZToKKyAgICAwICAgc2NyaXB0ZXJPdXRlciBhdCBzdGFjay10cmFjZS5qczo4NjozNworICAgIDEg
ICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoxMDM6MjAKKworLS0+IFN0YWNrIFRyYWNl
OgorICAgIDAgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAx
ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMiAgIHNlbGZS
ZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDMgICBzZWxmUmVjdXJzaXZl
MSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA0ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3Rh
Y2stdHJhY2UuanM6MTA1OjQzCisgICAgNSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNl
LmpzOjEwNTo0MworICAgIDYgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6
NDMKKyAgICA3ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAg
OCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDkgICBzZWxm
UmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAxMCAgIHNlbGZSZWN1cnNp
dmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDExICAgc2VsZlJlY3Vyc2l2ZTEgYXQg
c3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMTIgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10
cmFjZS5qczoxMDU6NDMKKyAgICAxMyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpz
OjEwNTo0MworICAgIDE0ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQz
CisgICAgMTUgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAx
NiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDE3ICAgc2Vs
ZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMTggICBzZWxmUmVjdXJz
aXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAxOSAgIHNlbGZSZWN1cnNpdmUxIGF0
IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDIwICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2st
dHJhY2UuanM6MTA1OjQzCisgICAgMjEgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5q
czoxMDU6NDMKKyAgICAyMiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0
MworICAgIDIzICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAg
MjQgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAyNSAgIHNl
bGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDI2ICAgc2VsZlJlY3Vy
c2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMjcgICBzZWxmUmVjdXJzaXZlMSBh
dCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAyOCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNr
LXRyYWNlLmpzOjEwNTo0MworICAgIDI5ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2Uu
anM6MTA1OjQzCisgICAgMzAgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6
NDMKKyAgICAzMSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAg
IDMyICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMzMgICBz
ZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAzNCAgIHNlbGZSZWN1
cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDM1ICAgc2VsZlJlY3Vyc2l2ZTEg
YXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMzYgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFj
ay10cmFjZS5qczoxMDU6NDMKKyAgICAzNyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNl
LmpzOjEwNTo0MworICAgIDM4ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1
OjQzCisgICAgMzkgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAg
ICA0MCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDQxICAg
c2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNDIgICBzZWxmUmVj
dXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA0MyAgIHNlbGZSZWN1cnNpdmUx
IGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDQ0ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3Rh
Y2stdHJhY2UuanM6MTA1OjQzCisgICAgNDUgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFj
ZS5qczoxMDU6NDMKKyAgICA0NiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEw
NTo0MworICAgIDQ3ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisg
ICAgNDggICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA0OSAg
IHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDUwICAgc2VsZlJl
Y3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNTEgICBzZWxmUmVjdXJzaXZl
MSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA1MiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0
YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDUzICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJh
Y2UuanM6MTA1OjQzCisgICAgNTQgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczox
MDU6NDMKKyAgICA1NSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0Mwor
ICAgIDU2ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNTcg
ICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA1OCAgIHNlbGZS
ZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDU5ICAgc2VsZlJlY3Vyc2l2
ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNjAgICBzZWxmUmVjdXJzaXZlMSBhdCBz
dGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA2MSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRy
YWNlLmpzOjEwNTo0MworICAgIDYyICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6
MTA1OjQzCisgICAgNjMgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMK
KyAgICA2NCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDY1
ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNjYgICBzZWxm
UmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA2NyAgIHNlbGZSZWN1cnNp
dmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDY4ICAgc2VsZlJlY3Vyc2l2ZTEgYXQg
c3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNjkgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10
cmFjZS5qczoxMDU6NDMKKyAgICA3MCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpz
OjEwNTo0MworICAgIDcxICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQz
CisgICAgNzIgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA3
MyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDc0ICAgc2Vs
ZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNzUgICBzZWxmUmVjdXJz
aXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA3NiAgIHNlbGZSZWN1cnNpdmUxIGF0
IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDc3ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2st
dHJhY2UuanM6MTA1OjQzCisgICAgNzggICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5q
czoxMDU6NDMKKyAgICA3OSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0
MworICAgIDgwICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAg
ODEgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA4MiAgIHNl
bGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDgzICAgc2VsZlJlY3Vy
c2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgODQgICBzZWxmUmVjdXJzaXZlMSBh
dCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA4NSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNr
LXRyYWNlLmpzOjEwNTo0MworICAgIDg2ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2Uu
anM6MTA1OjQzCisgICAgODcgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6
NDMKKyAgICA4OCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAg
IDg5ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgOTAgICBz
ZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA5MSAgIHNlbGZSZWN1
cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDkyICAgc2VsZlJlY3Vyc2l2ZTEg
YXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgOTMgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFj
ay10cmFjZS5qczoxMDU6NDMKKyAgICA5NCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNl
LmpzOjEwNTo0MworICAgIDk1ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1
OjQzCisgICAgOTYgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAg
ICA5NyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDk4ICAg
c2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgOTkgICBzZWxmUmVj
dXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKworLS0+IFN0YWNrIFRyYWNlOgorICAg
IDAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxICAgc2Vs
ZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMiAgIHNlbGZSZWN1cnNp
dmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDMgICBzZWxmUmVjdXJzaXZlMiBhdCBz
dGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJh
Y2UuanM6MTE1OjI3CisgICAgNSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjEx
NToyNworICAgIDYgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAg
ICA3ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgOCAgIHNl
bGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDkgICBzZWxmUmVjdXJz
aXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxMCAgIHNlbGZSZWN1cnNpdmUyIGF0
IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDExICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2st
dHJhY2UuanM6MTE1OjI3CisgICAgMTIgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5q
czoxMTU6MjcKKyAgICAxMyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToy
NworICAgIDE0ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAg
MTUgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxNiAgIHNl
bGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDE3ICAgc2VsZlJlY3Vy
c2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMTggICBzZWxmUmVjdXJzaXZlMiBh
dCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxOSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNr
LXRyYWNlLmpzOjExNToyNworICAgIDIwICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2Uu
anM6MTE1OjI3CisgICAgMjEgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6
MjcKKyAgICAyMiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAg
IDIzICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMjQgICBz
ZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAyNSAgIHNlbGZSZWN1
cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDI2ICAgc2VsZlJlY3Vyc2l2ZTIg
YXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMjcgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFj
ay10cmFjZS5qczoxMTU6MjcKKyAgICAyOCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNl
LmpzOjExNToyNworICAgIDI5ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1
OjI3CisgICAgMzAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAg
ICAzMSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDMyICAg
c2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMzMgICBzZWxmUmVj
dXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAzNCAgIHNlbGZSZWN1cnNpdmUy
IGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDM1ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3Rh
Y2stdHJhY2UuanM6MTE1OjI3CisgICAgMzYgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFj
ZS5qczoxMTU6MjcKKyAgICAzNyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjEx
NToyNworICAgIDM4ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3Cisg
ICAgMzkgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0MCAg
IHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDQxICAgc2VsZlJl
Y3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNDIgICBzZWxmUmVjdXJzaXZl
MiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0MyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0
YWNrLXRyYWNlLmpzOjExNToyNworICAgIDQ0ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJh
Y2UuanM6MTE1OjI3CisgICAgNDUgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczox
MTU6MjcKKyAgICA0NiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNwor
ICAgIDQ3ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNDgg
ICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0OSAgIHNlbGZS
ZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDUwICAgc2VsZlJlY3Vyc2l2
ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNTEgICBzZWxmUmVjdXJzaXZlMiBhdCBz
dGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA1MiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRy
YWNlLmpzOjExNToyNworICAgIDUzICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6
MTE1OjI3CisgICAgNTQgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcK
KyAgICA1NSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDU2
ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNTcgICBzZWxm
UmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA1OCAgIHNlbGZSZWN1cnNp
dmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDU5ICAgc2VsZlJlY3Vyc2l2ZTIgYXQg
c3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNjAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10
cmFjZS5qczoxMTU6MjcKKyAgICA2MSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpz
OjExNToyNworICAgIDYyICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3
CisgICAgNjMgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA2
NCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDY1ICAgc2Vs
ZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNjYgICBzZWxmUmVjdXJz
aXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA2NyAgIHNlbGZSZWN1cnNpdmUyIGF0
IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDY4ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2st
dHJhY2UuanM6MTE1OjI3CisgICAgNjkgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5q
czoxMTU6MjcKKyAgICA3MCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToy
NworICAgIDcxICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAg
NzIgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA3MyAgIHNl
bGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDc0ICAgc2VsZlJlY3Vy
c2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNzUgICBzZWxmUmVjdXJzaXZlMiBh
dCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA3NiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNr
LXRyYWNlLmpzOjExNToyNworICAgIDc3ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2Uu
anM6MTE1OjI3CisgICAgNzggICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6
MjcKKyAgICA3OSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAg
IDgwICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgODEgICBz
ZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA4MiAgIHNlbGZSZWN1
cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDgzICAgc2VsZlJlY3Vyc2l2ZTIg
YXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgODQgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFj
ay10cmFjZS5qczoxMTU6MjcKKyAgICA4NSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNl
LmpzOjExNToyNworICAgIDg2ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1
OjI3CisgICAgODcgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAg
ICA4OCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDg5ICAg
c2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgOTAgICBzZWxmUmVj
dXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA5MSAgIHNlbGZSZWN1cnNpdmUy
IGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDkyICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3Rh
Y2stdHJhY2UuanM6MTE1OjI3CisgICAgOTMgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFj
ZS5qczoxMTU6MjcKKyAgICA5NCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjEx
NToyNworICAgIDk1ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3Cisg
ICAgOTYgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA5NyAg
IHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDk4ICAgc2VsZlJl
Y3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgOTkgICBzZWxmUmVjdXJzaXZl
MiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKworLS0+IFN0YWNrIFRyYWNlIG1hdGNoZXMgcGF0
dGVybjoKKyAgICAwICAgIGF0IGV2YWwgY29kZQorICAgIDEgICBldmFsIGF0IFtuYXRpdmUgY29k
ZV0KKyAgICAyICAgc2VsZlJlY3Vyc2l2ZTMgYXQgc3RhY2stdHJhY2UuanMKKworLS0+IFN0YWNr
IFRyYWNlOgorICAgIDAgICB0aHJvd0Vycm9yIGF0IHN0YWNrLXRyYWNlLmpzOjEzOToyMAorICAg
IDEgICB2YWx1ZU9mIGF0IHN0YWNrLXRyYWNlLmpzOjE0NjoyNworICAgIDIgICBnZXR0ZXIxIGF0
IHN0YWNrLXRyYWNlLmpzOjE0OToxMQorICAgIDMgICBub25JbmxpbmVhYmxlIGF0IHN0YWNrLXRy
YWNlLmpzOjE3NToxNworICAgIDQgICBpbmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE4Mzoy
NworICAgIDUgICB5ZXRBbm90aGVySW5saW5lZENhbGwgYXQgc3RhY2stdHJhY2UuanM6MTg4OjE3
CisgICAgNiAgIG1ha2VJbmxpbmFibGVDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE5MzozNAorICAg
IDcgICBnIGF0IHN0YWNrLXRyYWNlLmpzOjIwMjozNAorICAgIDggICBtYXAgYXQgW25hdGl2ZSBj
b2RlXQorICAgIDkgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyMDU6MTYKKworLS0+
IFN0YWNrIFRyYWNlOgorICAgIDAgICB0aHJvd0Vycm9yIGF0IHN0YWNrLXRyYWNlLmpzOjEzOToy
MAorICAgIDEgICBnZXR0ZXIyIGF0IHN0YWNrLXRyYWNlLmpzOjE1NToxMQorICAgIDIgICBub25J
bmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE3NzoxNworICAgIDMgICBpbmxpbmVhYmxlIGF0
IHN0YWNrLXRyYWNlLmpzOjE4MzoyNworICAgIDQgICB5ZXRBbm90aGVySW5saW5lZENhbGwgYXQg
c3RhY2stdHJhY2UuanM6MTg4OjE3CisgICAgNSAgIG1ha2VJbmxpbmFibGVDYWxsIGF0IHN0YWNr
LXRyYWNlLmpzOjE5MzozNAorICAgIDYgICBnIGF0IHN0YWNrLXRyYWNlLmpzOjIwMjozNAorICAg
IDcgICBtYXAgYXQgW25hdGl2ZSBjb2RlXQorICAgIDggICBnbG9iYWwgY29kZSBhdCBzdGFjay10
cmFjZS5qczoyMDU6MTYKKworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICB0aHJvd0Vycm9yIGF0
IHN0YWNrLXRyYWNlLmpzOjEzOToyMAorICAgIDEgICBnZXR0ZXIzIGF0IHN0YWNrLXRyYWNlLmpz
OjE2NzoxNgorICAgIDIgICBub25JbmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE3OToxNwor
ICAgIDMgICBpbmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE4MzoyNworICAgIDQgICB5ZXRB
bm90aGVySW5saW5lZENhbGwgYXQgc3RhY2stdHJhY2UuanM6MTg4OjE3CisgICAgNSAgIG1ha2VJ
bmxpbmFibGVDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE5MzozNAorICAgIDYgICBnIGF0IHN0YWNr
LXRyYWNlLmpzOjIwMjozNAorICAgIDcgICBtYXAgYXQgW25hdGl2ZSBjb2RlXQorICAgIDggICBn
bG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyMDU6MTYKKworLS0+IFN0YWNrIFRyYWNlOgor
ICAgIDAgICB0aHJvd0Vycm9yIGF0IHN0YWNrLXRyYWNlLmpzOjEzOToyMAorICAgIDEgICB2YWx1
ZU9mIGF0IHN0YWNrLXRyYWNlLmpzOjE2MzoyNworICAgIDIgICBnZXR0ZXIzIGF0IHN0YWNrLXRy
YWNlLmpzOjE2OToxNgorICAgIDMgICBub25JbmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE3
OToxNworICAgIDQgICBpbmxpbmVhYmxlIGF0IHN0YWNrLXRyYWNlLmpzOjE4MzoyNworICAgIDUg
ICB5ZXRBbm90aGVySW5saW5lZENhbGwgYXQgc3RhY2stdHJhY2UuanM6MTg4OjE3CisgICAgNiAg
IG1ha2VJbmxpbmFibGVDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE5MzozNAorICAgIDcgICBnIGF0
IHN0YWNrLXRyYWNlLmpzOjIwMjozNAorICAgIDggICBtYXAgYXQgW25hdGl2ZSBjb2RlXQorICAg
IDkgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyMDU6MTYKKworLS0+IFN0YWNrIFRy
YWNlOgorICAgIDAgICBoIGF0IHN0YWNrLXRyYWNlLmpzOjIxMzoyNAorICAgIDEgICBtYXAgYXQg
W25hdGl2ZSBjb2RlXQorICAgIDIgICBtYXBUZXN0IGF0IHN0YWNrLXRyYWNlLmpzOjIyMDoxMAor
ICAgIDMgICBtYXBUZXN0RHJpdmVyIGF0IHN0YWNrLXRyYWNlLmpzOjIyNjoxNgorICAgIDQgICBn
bG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyMzE6MTgKKworLS0+IFN0YWNrIFRyYWNlOgor
ICAgIDAgICBtYXAgYXQgW25hdGl2ZSBjb2RlXQorICAgIDEgICBoIGF0IHN0YWNrLXRyYWNlLmpz
OjIxNToyMQorICAgIDIgICBtYXAgYXQgW25hdGl2ZSBjb2RlXQorICAgIDMgICBtYXBUZXN0IGF0
IHN0YWNrLXRyYWNlLmpzOjIyMDoxMAorICAgIDQgICBtYXBUZXN0RHJpdmVyIGF0IHN0YWNrLXRy
YWNlLmpzOjIyNjoxNgorICAgIDUgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyMzc6
MTgKKworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICB0aHJvd0Vycm9yIGF0IHN0YWNrLXRyYWNl
LmpzOjEzOToyMAorICAgIDEgICBkZmdGdW5jdGlvbiBhdCBzdGFjay10cmFjZS5qczoyNDY6MTkK
KyAgICAyICAgbWFwIGF0IFtuYXRpdmUgY29kZV0KKyAgICAzICAgZ2xvYmFsIGNvZGUgYXQgc3Rh
Y2stdHJhY2UuanM6MjU1OjE4CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgdGhyb3dFcnJv
ciBhdCBzdGFjay10cmFjZS5qczoxMzk6MjAKKyAgICAxICAgZGZnRnVuY3Rpb24gYXQgc3RhY2st
dHJhY2UuanM6MjQ2OjE5CisgICAgMiAgIGYgYXQgc3RhY2stdHJhY2UuanM6MjY0OjEwCisgICAg
MyAgIGdsb2JhbCBjb2RlIGF0IHN0YWNrLXRyYWNlLmpzOjI3MDo2CisKKy0tPiBTdGFjayBUcmFj
ZToKKyAgICAwICAgd2lsbFRocm93IGF0IHN0YWNrLXRyYWNlLmpzOjMwODoyOAorICAgIDEgICBk
ZmcxIGF0IHN0YWNrLXRyYWNlLmpzOjMxOToxMworICAgIDIgICBkZmcyIGF0IHN0YWNrLXRyYWNl
LmpzOjMyMzo5CisgICAgMyAgIGRmZzMgYXQgc3RhY2stdHJhY2UuanM6MzI3OjkKKyAgICA0ICAg
ZGZnVGVzdCBhdCBzdGFjay10cmFjZS5qczoyOTM6MTQKKyAgICA1ICAgZ2xvYmFsIGNvZGUgYXQg
c3RhY2stdHJhY2UuanM6MzY2OjgKKworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICB3aWxsVGhy
b3dGdW5jIGF0IHN0YWNrLXRyYWNlLmpzOjMxMzo2OQorICAgIDEgICBkZmc0IGF0IHN0YWNrLXRy
YWNlLmpzOjMzMToyNworICAgIDIgICBkZmc1IGF0IHN0YWNrLXRyYWNlLmpzOjMzNTo5CisgICAg
MyAgIGRmZzYgYXQgc3RhY2stdHJhY2UuanM6MzM5OjkKKyAgICA0ICAgZGZnVGVzdCBhdCBzdGFj
ay10cmFjZS5qczoyOTM6MTQKKyAgICA1ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6
MzY3OjgKKworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICBpbmxpbmVhYmxlVGhyb3cgYXQgc3Rh
Y2stdHJhY2UuanM6MzAyOjQwCisgICAgMSAgIHdpbGxUaHJvd0V2ZW50dWFsbHkgYXQgc3RhY2st
dHJhY2UuanM6MzExOjI0CisgICAgMiAgIGRmZzcgYXQgc3RhY2stdHJhY2UuanM6MzQzOjEzCisg
ICAgMyAgIGRmZzggYXQgc3RhY2stdHJhY2UuanM6MzQ3OjkKKyAgICA0ICAgZGZnOSBhdCBzdGFj
ay10cmFjZS5qczozNTE6OQorICAgIDUgICBkZmdUZXN0IGF0IHN0YWNrLXRyYWNlLmpzOjI5Mzox
NAorICAgIDYgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczozNjg6OAorCistLT4gU3Rh
Y2sgVHJhY2U6CisgICAgMCAgIGlubGluZWFibGVUaHJvdyBhdCBzdGFjay10cmFjZS5qczozMDI6
NDAKKyAgICAxICAgd2lsbFRocm93RXZlbnR1YWxseUZ1bmMgYXQgc3RhY2stdHJhY2UuanM6MzE0
OjU5CisgICAgMiAgIGRmZ2EgYXQgc3RhY2stdHJhY2UuanM6MzU1OjM3CisgICAgMyAgIGRmZ2Ig
YXQgc3RhY2stdHJhY2UuanM6MzU5OjkKKyAgICA0ICAgZGZnYyBhdCBzdGFjay10cmFjZS5qczoz
NjM6OQorICAgIDUgICBkZmdUZXN0IGF0IHN0YWNrLXRyYWNlLmpzOjI5MzoxNAorICAgIDYgICBn
bG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczozNjk6OAorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvanMvc2Ny
aXB0LXRlc3RzL3N0YWNrLXRyYWNlLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL3Nj
cmlwdC10ZXN0cy9zdGFjay10cmFjZS5qcwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2pz
L3NjcmlwdC10ZXN0cy9zdGFjay10cmFjZS5qcwkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM3
MSBAQAoraWYgKCF0aGlzLmFsZXJ0KSB7CisgICAgZGVidWcgPSBwcmludDsKKyAgICBkZXNjcmlw
dGlvbiA9IHByaW50OworfQorCitkZXNjcmlwdGlvbigKKydUaGlzIHRlc3QgY2hlY2tzIHN0YWNr
IHRyYWNlIGNvcmVjdG5lc3MgaW4gc3BlY2lhbCBjYXNlcy4nCispOworCitmdW5jdGlvbiBzdGFj
a1RyYWNlTGluZUZvcihzdGFja1RyYWNlLCBmcmFtZUluZGV4KSB7CisgICAgdmFyIGkgPSBmcmFt
ZUluZGV4OworICAgIHZhciBpbmRleE9mQXQgPSBzdGFja1RyYWNlW2ldLmluZGV4T2YoJ0AnKQor
ICAgIHZhciBpbmRleE9mTGFzdFNsYXNoID0gc3RhY2tUcmFjZVtpXS5sYXN0SW5kZXhPZignLycp
OworICAgIGlmIChpbmRleE9mTGFzdFNsYXNoID09IC0xKQorICAgICAgICBpbmRleE9mTGFzdFNs
YXNoID0gaW5kZXhPZkF0CisgICAgdmFyIGZ1bmN0aW9uTmFtZSA9IHN0YWNrVHJhY2VbaV0uc3Vi
c3RyaW5nKDAsIGluZGV4T2ZBdCk7CisgICAgdmFyIGZpbGVOYW1lID0gc3RhY2tUcmFjZVtpXS5z
dWJzdHJpbmcoaW5kZXhPZkxhc3RTbGFzaCArIDEpOworICAgIHJldHVybiBmdW5jdGlvbk5hbWUg
KyAiIGF0ICIgKyBmaWxlTmFtZTsKK30KKworZnVuY3Rpb24gcHJpbnRTdGFjayhzdGFja1RyYWNl
KSB7CisgICAgZGVidWcoIi0tPiBTdGFjayBUcmFjZToiKQorICAgIHN0YWNrVHJhY2UgPSBzdGFj
a1RyYWNlLnNwbGl0KCJcbiIpOworICAgIHZhciBsZW5ndGggPSBNYXRoLm1pbihzdGFja1RyYWNl
Lmxlbmd0aCwgMTAwKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQorICAg
ICAgICBkZWJ1ZygiICAgICIgKyBpICsgIiAgICIgKyBzdGFja1RyYWNlTGluZUZvcihzdGFja1Ry
YWNlLCBpKSk7CisgICAgZGVidWcoJycpOworfQorCitmdW5jdGlvbiBkdW1wUGF0dGVybihwYXR0
ZXJuKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKQorICAg
ICAgICBkZWJ1ZygiICAgICIgKyBpICsgIiAgICIgKyBwYXR0ZXJuW2ldKTsKK30KKworZnVuY3Rp
b24gbWF0Y2hlc1BhdHRlcm5BdExpbmUocGF0dGVybiwgcGF0dGVybkluZGV4LCB0cmFjZUxpbmUp
IHsKKyAgICB2YXIgcGF0dGVybkxpbmUgPSBwYXR0ZXJuW3BhdHRlcm5JbmRleF07CisgICAgcmV0
dXJuIHRyYWNlTGluZS5zbGljZSgwLCBwYXR0ZXJuTGluZS5sZW5ndGgpID09IHBhdHRlcm5MaW5l
OworfQorCitmdW5jdGlvbiBtYXRjaFBhdHRlcm4ocGF0dGVybiwgdHJhY2VMaW5lKSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBwYXR0ZXJuLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIGlmICht
YXRjaGVzUGF0dGVybkF0TGluZShwYXR0ZXJuLCBpLCB0cmFjZUxpbmUpKQorICAgICAgICAgICAg
cmV0dXJuIGk7CisgICAgfQorICAgIHJldHVybiAtMTsKK30KKworZnVuY3Rpb24gY2hlY2tTdGFj
a0ZvclBhdHRlcm4oc3RhY2tUcmFjZSwgcGF0dGVybikgeworICAgIHN0YWNrVHJhY2UgPSBzdGFj
a1RyYWNlLnNwbGl0KCJcbiIpOworICAgIHZhciBsZW5ndGggPSBNYXRoLm1pbihzdGFja1RyYWNl
Lmxlbmd0aCwgMTAwKTsKKworICAgIC8vIEdldCB0aGUgbWF0Y2ggaW4gdGhlIHBhdHRlcm4gZm9y
IHRoZSBmaXJzdCBsaW5lOgorICAgIHZhciBmaXJzdFN0YWNrVHJhY2VMaW5lID0gc3RhY2tUcmFj
ZUxpbmVGb3Ioc3RhY2tUcmFjZSwgMCk7CisgICAgdmFyIHBhdHRlcm5JbmRleCA9IG1hdGNoUGF0
dGVybihwYXR0ZXJuLCBmaXJzdFN0YWNrVHJhY2VMaW5lKTsKKyAgICBpZiAocGF0dGVybkluZGV4
IDwgMCkgeworICAgICAgICBkZWJ1ZygiLS0+IFN0YWNrIFRyYWNlIEZBSUxFRCB0byBtYXRjaCBw
YXR0ZXJuOiIpCisgICAgICAgIGR1bXBQYXR0ZXJuKHBhdHRlcm4pOworICAgICAgICBkZWJ1Zygn
Jyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8IGxl
bmd0aDsgaSsrKSB7CisgICAgICAgIHBhdHRlcm5JbmRleCA9ICsrcGF0dGVybkluZGV4ICUgcGF0
dGVybi5sZW5ndGg7CisgICAgICAgIHZhciB0cmFjZUxpbmUgPSBzdGFja1RyYWNlTGluZUZvcihz
dGFja1RyYWNlLCBpKTsKKyAgICAgICAgaWYgKCFtYXRjaGVzUGF0dGVybkF0TGluZShwYXR0ZXJu
LCBwYXR0ZXJuSW5kZXgsIHRyYWNlTGluZSkpIHsKKyAgICAgICAgICAgIGRlYnVnKCItLT4gU3Rh
Y2sgVHJhY2UgRkFJTEVEIHRvIG1hdGNoIHBhdHRlcm46IikKKyAgICAgICAgICAgIGR1bXBQYXR0
ZXJuKHBhdHRlcm4pOworICAgICAgICAgICAgZGVidWcoJycpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgfQorCisgICAgZGVidWcoIi0tPiBTdGFjayBUcmFjZSBtYXRjaGVz
IHBhdHRlcm46IikKKyAgICBkdW1wUGF0dGVybihwYXR0ZXJuKTsKKyAgICBkZWJ1ZygnJyk7Cit9
CisKK2Z1bmN0aW9uIGhvc3RUaHJvd2VyKCkgeyBFbGVtZW50LnByb3RvdHlwZS5hcHBlbmRDaGls
ZC5jYWxsKHsgfSwgW3sgfV0pOyAgfQorZnVuY3Rpb24gY2FsbGJhY2tlcihmKSB7IFswXS5tYXAo
Zik7IH0KK2Z1bmN0aW9uIG91dGVyKGVycm9yTmFtZSkgeyBpbm5lcihlcnJvck5hbWUpOyB9Citm
dW5jdGlvbiBpbm5lcihlcnJvck5hbWUpIHsgdGhyb3cgbmV3IEVycm9yKCJFcnJvciBpbiAiICsg
ZXJyb3JOYW1lKTsgfQorZnVuY3Rpb24gZXZhbGVyKGNvZGUpIHsgZXZhbChjb2RlKTsgfQorZnVu
Y3Rpb24gbm9ybWFsT3V0ZXIoKSB7IG5vcm1hbElubmVyKCk7IH0KK2Z1bmN0aW9uIG5vcm1hbElu
bmVyKCkgeyBpZih0aGlzVmFyRG9lc250RXhpc3QpIGZhaWxJZlRydWUoInNob3VsZEZhaWxCZWZv
cmVUaGlzIikgfTsKK2Z1bmN0aW9uIHNjcmlwdGVySW5uZXIoKSB7IGh0bWxJbm5lcigpOyB9Citm
dW5jdGlvbiBzY3JpcHRlck91dGVyKCkgeyBodG1sT3V0ZXIoKTsgfQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv
LyBFeHBlY3RlZCBmdW5jdGlvbnMgaW4gc3RhY2sgdHJhY2UKKy8vIE5vcm1hbCBDYXNlCit0cnkg
eyBub3JtYWxPdXRlcigpIH0gY2F0Y2ggKGUpIHsgcHJpbnRTdGFjayhlLnN0YWNrKSB9ICAgICAg
ICAgICAgICAgICAgICAgLy8gbm9ybWFsT3V0ZXIgLT4gbm9ybWFsSW5uZXIKKworLy8gRXZhbCBD
YXNlCit0cnkgeyBldmFsZXIoImlubmVyKCdpbm5lciBldmFsJyk7Iik7IH0gY2F0Y2ggKGUpIHsg
cHJpbnRTdGFjayhlLnN0YWNrKSB9ICAgLy8gZXZhbGVyIC0+IGV2YWwgLT4gaW5uZXIKK3RyeSB7
IGV2YWxlcigib3V0ZXIoJ291dGVyIGV2YWwnKTsiKTsgfSBjYXRjaCAoZSkgeyBwcmludFN0YWNr
KGUuc3RhY2spIH0gICAvLyBldmFsZXIgLT4gZXZhbCAtPiBvdXRlciAtPiBpbm5lcgorCisvLyBG
dW5jdGlvbiBDYWxsYmFjayBDYXNlCit0cnkgeyBjYWxsYmFja2VyKGlubmVyKCdpbm5lciBtYXAn
KSk7IH0gY2F0Y2ggKGUpIHsgcHJpbnRTdGFjayhlLnN0YWNrKTsgfSAgIC8vIGNhbGxiYWNrZXIg
LT4gbWFwIC0+IGlubmVyCit0cnkgeyBjYWxsYmFja2VyKG91dGVyKCdvdXRlciBtYXAnKSk7IH0g
Y2F0Y2ggKGUpIHsgcHJpbnRTdGFjayhlLnN0YWNrKTsgfSAgIC8vIGNhbGxiYWNrZXIgLT4gbWFw
IC0+IG91dGVyIC0+IGlubmVyCisKKy8vIEhvc3QgQ29kZSBDYXNlCit0cnkgeyBob3N0VGhyb3dl
cigpOyB9IGNhdGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFjayk7IH0gICAgICAgICAgICAgICAg
ICAgIC8vIGhvc3RUaHJvd2VyCisKK3RyeSB7IHNjcmlwdGVySW5uZXIoKTsgfSBjYXRjaCAoZSkg
eyBwcmludFN0YWNrKGUuc3RhY2spIH0gICAgICAgICAgICAgICAgICAgLy8gcHJvZ3JhbSAtPiBz
Y3JpcHRlciAtPiBpbm5lcgordHJ5IHsgc2NyaXB0ZXJPdXRlcigpOyB9IGNhdGNoIChlKSB7IHBy
aW50U3RhY2soZS5zdGFjaykgfSAgICAgICAgICAgICAgICAgICAvLyBwcm9ncmFtIC0+IHNjcmlw
dGVyIC0+IG91dGVyIC0+IGlubmVyCisKK2Z1bmN0aW9uIHNlbGZSZWN1cnNpdmUxKCkgeyBzZWxm
UmVjdXJzaXZlMSgpOworfQorCisKK3RyeSB7IHNlbGZSZWN1cnNpdmUxKCk7IH0gY2F0Y2ggKGUp
IHsgcHJpbnRTdGFjayhlLnN0YWNrKSB9ICAgICAgICAgICAgICAgICAgIC8vIHNlbGZSZWN1cnNp
dmUxIC0+IHNlbGZSZWN1cnNpdmUxIC0+IHNlbGZSZWN1cnNpdmUxIC0+IHNlbGZSZWN1cnNpdmUx
IC4uLgorCitmdW5jdGlvbiBzZWxmUmVjdXJzaXZlMigpIHsKKyAgICAvLyBBIGxpdHRsZSB3b3Jr
IHRvIG1ha2UgdGhlIERGRyBraWNrIGluCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgaSsr
KSB7CisgICAgICAgIGlmIChpID09IDkpCisgICAgICAgICAgICBzZWxmUmVjdXJzaXZlMigpOyAK
KyAgICB9Cit9CisKK3RyeSB7IHNlbGZSZWN1cnNpdmUyKCk7IH0gY2F0Y2ggKGUpIHsgcHJpbnRT
dGFjayhlLnN0YWNrKSB9ICAgICAgICAgICAgICAgICAgIC8vIHNlbGZSZWN1cnNpdmUyIC0+IHNl
bGZSZWN1cnNpdmUyIC0+IHNlbGZSZWN1cnNpdmUyIC0+IHNlbGZSZWN1cnNpdmUyIC4uLgorCitm
dW5jdGlvbiBzZWxmUmVjdXJzaXZlMygpIHsKKyAgICBldmFsKCJzZWxmUmVjdXJzaXZlMygpIik7
Cit9CisKK3RyeSB7CisgICAgc2VsZlJlY3Vyc2l2ZTMoKTsKK30gY2F0Y2ggKGUpIHsKKyAgICB2
YXIgcGF0dGVybiA9IFsKKyAgICAgICAgIiBhdCBldmFsIGNvZGUiLAorICAgICAgICAiZXZhbCBh
dCBbbmF0aXZlIGNvZGVdIiwKKyAgICAgICAgInNlbGZSZWN1cnNpdmUzIGF0IHN0YWNrLXRyYWNl
LmpzIgorICAgIF07CisgICAgY2hlY2tTdGFja0ZvclBhdHRlcm4oZS5zdGFjaywgcGF0dGVybik7
Cit9CisKK3ZhciBjYWxsQ291bnQgPSAwOworCitmdW5jdGlvbiB0aHJvd0Vycm9yKCkgeworICAg
IHRocm93IG5ldyBFcnJvcigpOworfQorCit2YXIgb2JqZWN0ID0geworICAgIGdldCBnZXR0ZXIx
KCkgeworICAgICAgICB2YXIgbyA9IHsKKyAgICAgICAgICAgIHZhbHVlT2Y6IGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgIHRocm93RXJyb3IoKQorICAgICAgICAgICAgfQorICAgICAgICB9
OworICAgICAgICArbzsKKyAgICB9LAorICAgIGdldCBnZXR0ZXIyKCkgeworICAgICAgICB2YXIg
byA9IHsKKyAgICAgICAgICAgIHZhbHVlT2Y6IHRocm93RXJyb3IKKyAgICAgICAgfTsKKyAgICAg
ICAgK287CisgICAgfSwKKyAgICBnZXQgZ2V0dGVyMygpIHsKKyAgICAgICAgdmFyIG8xID0gewor
ICAgICAgICAgICAgdmFsdWVPZjogdGhyb3dFcnJvcgorICAgICAgICB9OworICAgICAgICB2YXIg
bzIgPSB7CisgICAgICAgICAgICB2YWx1ZU9mOiBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAg
ICAgdGhyb3dFcnJvcigpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgICAgICBpZiAo
Y2FsbENvdW50ID09IDk5OTgpCisgICAgICAgICAgICArbzE7CisgICAgICAgIGlmIChjYWxsQ291
bnQgPT0gOTk5OSkKKyAgICAgICAgICAgICtvMjsKKyAgICB9LAorICAgIG5vbklubGluZWFibGUg
OiBmdW5jdGlvbiAoKSB7CisgICAgICAgIGlmICgwKSByZXR1cm4gW2FyZ3VtZW50cywgZnVuY3Rp
b24oKXt9XTsKKyAgICAgICAgKytjYWxsQ291bnQ7CisgICAgICAgIGlmIChjYWxsQ291bnQgPT0g
MSkgeworICAgICAgICAgICAgdGhpcy5nZXR0ZXIxOworICAgICAgICB9IGVsc2UgaWYgKGNhbGxD
b3VudCA9PSAyKSB7CisgICAgICAgICAgICB0aGlzLmdldHRlcjI7CisgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICB0aGlzLmdldHRlcjM7CisgICAgICAgIH0KKyAgICB9LAorICAgIGlubGlu
ZWFibGUgOiBmdW5jdGlvbiAoKSB7CisgICAgICAgIHRoaXMubm9uSW5saW5lYWJsZSgpOworICAg
IH0KK30KKworZnVuY3Rpb24geWV0QW5vdGhlcklubGluZWRDYWxsKG8pIHsKKyAgICBvLmlubGlu
ZWFibGUoKTsKK30KKworZnVuY3Rpb24gbWFrZUlubGluYWJsZUNhbGwobykgeworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgMTAwMDA7IGkrKykgeworICAgICAgICBuZXcgeWV0QW5vdGhlcklubGlu
ZWRDYWxsKG8pOworICAgIH0KK30KK2ZvciAodmFyIGsgPSAwOyBrIDwgNDsgaysrKSB7CisgICAg
dHJ5IHsKKyAgICAgICAgZnVuY3Rpb24gZygpIHsKKyAgICAgICAgICAgIHZhciBqID0gMDsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSsrKSB7CisgICAgICAgICAgICAg
ICAgaisrOworICAgICAgICAgICAgICAgIG1ha2VJbmxpbmFibGVDYWxsKG9iamVjdCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgWzFdLm1hcChnKTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIHByaW50U3RhY2soZS5zdGFjayk7CisgICAgfQorfQorCitmdW5jdGlvbiBo
KCkgeworICAgIGlmIChjYWxsQ291bnQrKyA9PSAxMDAwKQorICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoKTsKKyAgICBpZiAoY2FsbENvdW50ID4gMTAwMCkgeworICAgICAgICBbXS5tYXAuYXBwbHko
dW5kZWZpbmVkLCB0aHJvd0Vycm9yKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIG1hcFRlc3QoYSkg
eworICAgIGEubWFwKGgpOworfQorCitmdW5jdGlvbiBtYXBUZXN0RHJpdmVyKCkgeworICAgIHZh
ciBhID0gWzEsMiwzXTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDIwMDA7IGkrKykKKyAgICAg
ICAgbWFwVGVzdChhKTsKK30KKwordHJ5IHsKKyAgICBjYWxsQ291bnQgPSAwOworICAgIG1hcFRl
c3REcml2ZXIoKQorfSBjYXRjaChlKSB7CisgICAgcHJpbnRTdGFjayhlLnN0YWNrKTsKK30KKwor
dHJ5IHsKKyAgICBtYXBUZXN0RHJpdmVyKCkKK30gY2F0Y2goZSkgeworICAgIHByaW50U3RhY2so
ZS5zdGFjayk7Cit9CisKK3ZhciBkZmdGdW5jdGlvblNob3VsZFRocm93ID0gZmFsc2U7CitmdW5j
dGlvbiBkZmdGdW5jdGlvbigpIHsgCisgICAgaWYgKGRmZ0Z1bmN0aW9uU2hvdWxkVGhyb3cpIHsg
CisgICAgICAgIGRmZ0Z1bmN0aW9uU2hvdWxkVGhyb3cgPSBmYWxzZTsgCisgICAgICAgIHRocm93
RXJyb3IoKTsKKyAgICB9Cit9CisKK2ZvciAodmFyIGsgPSAwOyBrIDwgMTAwMDsgaysrKQorICAg
IGRmZ0Z1bmN0aW9uKCk7CisKK3RyeSB7CisgICAgZGZnRnVuY3Rpb25TaG91bGRUaHJvdyA9IHRy
dWU7CisgICAgWzEsMiwzLDRdLm1hcChkZmdGdW5jdGlvbik7Cit9IGNhdGNoIChlKSB7CisgICAg
cHJpbnRTdGFjayhlLnN0YWNrKTsKK30KKwordHJ5IHsgCisgICAgdmFyIG8gPSB7IH07CisgICAg
by5fX2RlZmluZUdldHRlcl9fKCJnIiwgZGZnRnVuY3Rpb24pOworICAgIGZ1bmN0aW9uIGYobykg
eworICAgICAgICBvLmc7CisgICAgfQorICAgIGZvciAodmFyIGsgPSAwOyBrIDwgMTAwMDsgaysr
KQorICAgICAgICBmKG8pOworICAgIAorICAgIGRmZ0Z1bmN0aW9uU2hvdWxkVGhyb3cgPSB0cnVl
OworICAgIGYobyk7CisKK30gY2F0Y2ggKGUpIHsKKyAgICBwcmludFN0YWNrKGUuc3RhY2spOwor
fQorCit2YXIgc29tZVZhbHVlID0gbnVsbDsKKworZnVuY3Rpb24gY2FsbE5vbkNhbGxhYmxlKCkg
eworICAgIHNvbWVWYWx1ZSgpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKSB7
CisgICAgdHJ5IHsKKyAgICAgICAgY2FsbE5vbkNhbGxhYmxlKCk7CisgICAgfSBjYXRjaCAoZSkg
eworICAgIH0KK30KKworZnVuY3Rpb24gZGZnVGVzdChmKSB7CisgICAgZGZnQ291bnQgPSAwOwor
ICAgIHdoaWxlIChkZmdDb3VudCsrIDwgMTAwMCkgeworICAgICAgICB0cnkgeworICAgICAgICAg
ICAgZigpOworICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICBwcmludFN0YWNrKGUu
c3RhY2spCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK2Z1bmN0
aW9uIGlubGluZWFibGVUaHJvdygpIHsKKyAgICBpZiAoZGZnQ291bnQgPiA1MDApIHRocm93IG5l
dyBFcnJvcigpOworfQorCit2YXIgZGZnVGhpbmcgPSB7CisgICAgZ2V0IHdpbGxUaHJvdygpIHsK
KyAgICAgICAgaWYgKGRmZ0NvdW50ID4gNTAwKQorICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCk7CisgICAgfSwKKyAgICBnZXQgd2lsbFRocm93RXZlbnR1YWxseSgpIHsKKyAgICAgICAgaW5s
aW5lYWJsZVRocm93KCk7CisgICAgfSwKKyAgICB3aWxsVGhyb3dGdW5jOiBmdW5jdGlvbiAoKSB7
IGlmIChkZmdDb3VudCA+IDUwMCkgdGhyb3cgbmV3IEVycm9yKCk7IH0sCisgICAgd2lsbFRocm93
RXZlbnR1YWxseUZ1bmM6IGZ1bmN0aW9uICgpIHsgaW5saW5lYWJsZVRocm93KCk7IH0KK30KK2Rm
Z1RoaW5nLl9fZGVmaW5lR2V0dGVyX18oImhvc3RXaWxsVGhyb3ciLCBob3N0VGhyb3dlcik7CisK
K2Z1bmN0aW9uIGRmZzEoKSB7CisgICAgZGZnVGhpbmcud2lsbFRocm93Cit9CisKK2Z1bmN0aW9u
IGRmZzIoKSB7CisgICAgZGZnMSgpOworfQorCitmdW5jdGlvbiBkZmczKCkgeworICAgIGRmZzIo
KTsKK30KKworZnVuY3Rpb24gZGZnNCgpIHsKKyAgICBkZmdUaGluZy53aWxsVGhyb3dGdW5jKCk7
Cit9CisKK2Z1bmN0aW9uIGRmZzUoKSB7CisgICAgZGZnNCgpOworfQorCitmdW5jdGlvbiBkZmc2
KCkgeworICAgIGRmZzUoKTsKK30KKworZnVuY3Rpb24gZGZnNygpIHsKKyAgICBkZmdUaGluZy53
aWxsVGhyb3dFdmVudHVhbGx5Cit9CisKK2Z1bmN0aW9uIGRmZzgoKSB7CisgICAgZGZnNygpOwor
fQorCitmdW5jdGlvbiBkZmc5KCkgeworICAgIGRmZzgoKTsKK30KKworZnVuY3Rpb24gZGZnYSgp
IHsKKyAgICBkZmdUaGluZy53aWxsVGhyb3dFdmVudHVhbGx5RnVuYygpOworfQorCitmdW5jdGlv
biBkZmdiKCkgeworICAgIGRmZ2EoKTsKK30KKworZnVuY3Rpb24gZGZnYygpIHsKKyAgICBkZmdi
KCk7Cit9CisKK2RmZ1Rlc3QoZGZnMykKK2RmZ1Rlc3QoZGZnNikKK2RmZ1Rlc3QoZGZnOSkKK2Rm
Z1Rlc3QoZGZnYykKKworc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253018</attachid>
            <date>2015-05-12 21:36:58 -0700</date>
            <delta_ts>2015-05-12 22:03:08 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>51181</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0MjUzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcyIEBA
CisyMDE1LTA1LTEyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
anMvZG9tL3N0YWNrLXRyYWNlLmh0bWwgZmFpbHMgd2l0aCBlYWdlciBjb21waWxhdGlvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ0ODUzCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBbGwg
b2Ygb3VyIGVzY2FwZSBhbmFseXNlcyB3ZXJlIG1pc2hhbmRsaW5nIENoZWNrKCkuIFRoZXkgd2Vy
ZSBhc3N1bWluZyB0aGF0IHRoaXMgaXMgYQorICAgICAgICBub24tZXNjYXBpbmcgb3BlcmF0aW9u
LiBCdXQsIGlmIHdlIGRvIGZvciBleGFtcGxlIGEgQ2hlY2soSW50MzI6QHgpIGFuZCBAeCBpcyBh
biBlc2NhcGUKKyAgICAgICAgY2FuZGlkYXRlLCB0aGVuIHdlIG5lZWQgdG8gZG8gc29tZXRoaW5n
OiBpZiB3ZSBlbGltaW5hdGUgb3Igc2luayBAeCwgdGhlbiB0aGUgY2hlY2sgbm8KKyAgICAgICAg
bG9uZ2VyIG1ha2VzIGFueSBzZW5zZSBzaW5jZSBhIHBoYW50b20gYWxsb2NhdGlvbiBoYXMgbm8g
dHlwZS4gVGhpcyB3aWxsIG1ha2UgdXMgZm9yZ2V0CisgICAgICAgIHRoYXQgdGhpcyBvcGVyYXRp
b24gd291bGQgaGF2ZSBleGl0ZWQuIFRoaXMgd2FzIGNhdXNpbmcgdXMgdG8gbm90IGNhbGwgYSB2
YWx1ZU9mIG1ldGhvZCBpbgorICAgICAgICBqcy9kb20vc3RhY2stdHJhY2UuaHRtbCB3aXRoIGVh
Z2VyIGNvbXBpbGF0aW9uIGVuYWJsZWQsIGJlY2F1c2UgaXQgd2FzIGRvaW5nIHNvbWV0aGluZyBs
aWtlCisgICAgICAgICtvIHdoZXJlIG8gaGFkIGEgdmFsdWVPZiBtZXRob2QsIGFuZCBvIHdhcyBv
dGhlcndpc2Ugc2lua2FibGUuCisgICAgICAgIAorICAgICAgICBUaGlzIGNoYW5nZXMgb3VyIGVz
Y2FwZSBhbmFseXNlcyB0byBiYXNpY2FsbHkgcHJldGVuZCB0aGF0IGFueSBDaGVjaygpIHRoYXQg
aXNuJ3Qgb2J2aW91c2x5CisgICAgICAgIHVubmVjZXNzYXJ5IGlzIGFuIGVzY2FwZS4gV2UgZG9u
J3QgaGF2ZSB0byBiZSBzdXBlciBjYXJlZnVsIGhlcmUuIE1vc3QgY2hlY2tzIHdpbGwgYmUKKyAg
ICAgICAgY29tcGxldGVseSBlbGltaW5hdGVkIGJ5IGNvbnN0YW50LWZvbGRpbmcuIElmIHRoYXQg
ZG9lc24ndCBydW4gaW4gdGltZSwgdGhlbiB0aGUgbW9zdAorICAgICAgICBjb21tb24gY2hlY2sg
d2Ugd2lsbCBzZWUgaXMgQ2VsbFVzZS4gU28sIHdlIGp1c3QgcmVjb2duaXplIHNvbWUgdmVyeSBv
YnZpb3VzIGNoZWNrIGtpbmRzCisgICAgICAgIHRoYXQgd2Uga25vdyB3b3VsZCBoYXZlIHBhc3Nl
ZCwgYW5kIGZvciBhbGwgb2YgdGhlIHJlc3Qgd2UganVzdCBhc3N1bWUgdGhhdCBpdCdzIGFuIGVz
Y2FwZS4KKyAgICAgICAgCisgICAgICAgIFRoaXMgd2FzIHN1cGVyIHRyaWNreSB0byB0ZXN0LiBU
aGUgb2J2aW91cyB3YXkgdG8gdGVzdCBpdCBpcyB0byB1c2UgK28gbGlrZQorICAgICAgICBzdGFj
ay10cmFjZS5odG1sLCBleGNlcHQgdGhhdCBkb2luZyBzbyByZWxpZXMgb24gdGhlIGZhY3QgdGhh
dCB3ZSBzdGlsbCBoYXZlbid0IGltcGxlbWVudGVkCisgICAgICAgIHRoZSBvcHRpbWFsIGJlaGF2
aW9yIGZvciBvcF90b19udW1iZXIuIFNvLCBJIHRha2UgZm91ciBhcHByb2FjaGVzIGluIHRlc3Rp
bmcgdGhpcyBwYXRjaDoKKyAgICAgICAgCisgICAgICAgIDEpIFVzZSArby4gVGhlc2Ugd2lsbCB0
ZXN0IHdoYXQgd2Ugd2FudCBpdCB0byB0ZXN0IGZvciBub3csIGJ1dCBhdCBzb21lIHBvaW50IGlu
IHRoZSBmdXR1cmUKKyAgICAgICAgICAgdGhlc2UgdGVzdHMgd2lsbCBqdXN0IGJlIGEgZ29vZCBz
YW5pdHktY2hlY2sgdGhhdCBvdXIgb3BfdG9fbnVtYmVyIGltcGxlbWVudGF0aW9uIGlzCisgICAg
ICAgICAgIHJpZ2h0LgorICAgICAgICAKKyAgICAgICAgMikgRG8gZmFuY3kgY29udHJvbCBmbG93
IHRyaWNrcyB0byBmb29sIHRoZSBwcm9maWxpbmcgaW50byB0aGlua2luZyB0aGF0IHNvbWUgYXJp
dGhtZXRpYworICAgICAgICAgICBvcGVyYXRpb24gYWx3YXlzIHNlZXMgaW50ZWdlcnMgZXZlbiB0
aG91Z2ggd2UgZXZlbnR1YWxseSBmZWVkIGl0IGFuIG9iamVjdCBhbmQgdGhhdAorICAgICAgICAg
ICBvYmplY3QgaXMgYSBzaW5rIGNhbmRpZGF0ZS4KKyAgICAgICAgCisgICAgICAgIDMpIEludHJv
ZHVjZSBhIG5ldyBqc2MuY3BwIGludHJpbnNpYyBjYWxsZWQgaXNJbnQzMigpIHdoaWNoIHJldHVy
bnMgdHJ1ZSBpZiB0aGUgaW5jb21pbmcKKyAgICAgICAgICAgdmFsdWUgaXMgYW4gaW50MzIuIFRo
aXMgaW50cmluc2ljIGlzIHJlcXVpcmVkIHRvIGJlIGltcGxlbWVudGVkIGJ5IERGRyBieQorICAg
ICAgICAgICB1bmNvbmRpdGlvbmFsbHkgc3BlY3VsYXRpbmcgdGhhdCB0aGUgaW5wdXQgaXMgaW50
MzIuIFRoaXMgYWxsb3dzIHVzIHRvIHdyaXRlIG11Y2ggbW9yZQorICAgICAgICAgICB0YXJnZXR0
ZWQgdGVzdHMgb2YgdGhlIHVuZGVybHlpbmcgaXNzdWUuCisgICAgICAgIAorICAgICAgICA0KSBJ
IG1hZGUgYSB2ZXJzaW9uIG9mIHN0YWNrLXRyYWNlLmh0bWwgdGhhdCBydW5zIGluIHJ1bi1qc2Mt
c3RyZXNzLXRlc3RzLCBzbyB0aGF0IHdlIGNhbgorICAgICAgICAgICBnZXQgcmVncmVzc2lvbiB0
ZXN0IGNvdmVyYWdlIG9mIHRoaXMgdGVzdCBpbiBlYWdlciBtb2RlLgorCisgICAgICAgICogZGZn
L0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwOgorICAgICAgICAqIGRmZy9ERkdCeXRl
Q29kZVBhcnNlci5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNvZGVQYXJzZXI6OmhhbmRs
ZUludHJpbnNpYyk6CisgICAgICAgICogZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhh
c2UuY3BwOgorICAgICAgICAoSlNDOjpERkc6Ok9iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2U6
OmhhbmRsZU5vZGUpOgorICAgICAgICAqIGRmZy9ERkdWYXJhcmdzRm9yd2FyZGluZ1BoYXNlLmNw
cDoKKyAgICAgICAgKiBmdGwvRlRMRXhpdFZhbHVlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpF
eGl0VmFsdWU6OmR1bXBJbkNvbnRleHQpOgorICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvTExW
TS5jcHA6CisgICAgICAgIChKU0M6OkZUTDo6TG93ZXJERkdUb0xMVk06OmJ1aWxkRXhpdEFyZ3Vt
ZW50cyk6CisgICAgICAgICogZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgIChK
U0M6OkZUTDo6Y29tcGlsZUZUTE9TUkV4aXQpOgorICAgICAgICAqIGpzYy5jcHA6CisgICAgICAg
IChHbG9iYWxPYmplY3Q6OmZpbmlzaENyZWF0aW9uKToKKyAgICAgICAgKGZ1bmN0aW9uSXNJbnQz
Mik6CisgICAgICAgICogcnVudGltZS9JbnRyaW5zaWMuaDoKKyAgICAgICAgKiB0ZXN0cy9zdHJl
c3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWRmZy5qczogQWRkZWQuCisgICAg
ICAgICogdGVzdHMvc3RyZXNzL3NpbmstYXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1pbnQz
Mi1kZmcuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1w
YXN0LWludmFsaWQtY2hlY2staW50MzIuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVz
cy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFsaWQtY2hlY2stc25lYWtpZXIuanM6IEFkZGVkLgor
ICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFsaWQtY2hlY2su
anM6IEFkZGVkLgorICAgICAgICAqIHRlc3RzL3N0cmVzcy9zaW5rLWZ1bmN0aW9uLXBhc3QtaW52
YWxpZC1jaGVjay1zbmVha2llci5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Np
bmstZnVuY3Rpb24tcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFreS5qczogQWRkZWQuCisgICAgICAg
ICogdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay1pbnQzMi5qczog
QWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1j
aGVjay1zbmVha2llci5qczogQWRkZWQuCisgICAgICAgICogdGVzdHMvc3RyZXNzL3Npbmstb2Jq
ZWN0LXBhc3QtaW52YWxpZC1jaGVjay1zbmVha3kuanM6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L3N0cmVzcy9zaW5rLW9iamVjdC1wYXN0LWludmFsaWQtY2hlY2suanM6IEFkZGVkLgorCiAyMDE1
LTA1LTEyICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBGaXggdGhlIGl0ZXJhdGlvbiBjb3VudCBvZiBhcml0aC1tb2R1bG8tbm9kZS1iZWhhdmlvcnMu
anMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAxODQyMDUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDcwLDYgKzQ3MCw3IEBA
IHN0YXRpYyBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmMKIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRmFsc2UyKEV4ZWNTdGF0ZSopOwogc3RhdGlj
IEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmluZWQxKEV4ZWNTdGF0
ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25VbmRlZmlu
ZWQyKEV4ZWNTdGF0ZSopOworc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVu
Y3Rpb25Jc0ludDMyKEV4ZWNTdGF0ZSopOwogc3RhdGljIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwgZnVuY3Rpb25FZmZlY3RmdWw0MihFeGVjU3RhdGUqKTsKIHN0YXRpYyBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRlbnRpdHkoRXhlY1N0YXRlKik7CiBzdGF0aWMg
RW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlvbk1ha2VNYXNxdWVyYWRlcihFeGVj
U3RhdGUqKTsKQEAgLTYyMCw2ICs2MjEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHB1dERpcmVj
dE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgIk9T
UkV4aXQiKSwgMCwgZnVuY3Rpb25VbmRlZmluZWQxLCBPU1JFeGl0SW50cmluc2ljLCBEb250RW51
bSB8IEpTQzo6RnVuY3Rpb24pOwogICAgICAgICBwdXREaXJlY3ROYXRpdmVGdW5jdGlvbih2bSwg
dGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJpc0ZpbmFsVGllciIpLCAwLCBmdW5j
dGlvbkZhbHNlMiwgSXNGaW5hbFRpZXJJbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlv
bik7CiAgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgInByZWRpY3RJbnQzMiIpLCAwLCBmdW5jdGlvblVuZGVmaW5lZDIs
IFNldEludDMySGVhcFByZWRpY3Rpb25JbnRyaW5zaWMsIERvbnRFbnVtIHwgSlNDOjpGdW5jdGlv
bik7CisgICAgICAgIHB1dERpcmVjdE5hdGl2ZUZ1bmN0aW9uKHZtLCB0aGlzLCBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgImlzSW50MzIiKSwgMCwgZnVuY3Rpb25Jc0ludDMyLCBDaGVja0lu
dDMyLCBEb250RW51bSB8IEpTQzo6RnVuY3Rpb24pOwogICAgICAgICBwdXREaXJlY3ROYXRpdmVG
dW5jdGlvbih2bSwgdGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sICJmaWF0SW50NTIi
KSwgMCwgZnVuY3Rpb25JZGVudGl0eSwgRmlhdEludDUySW50cmluc2ljLCBEb250RW51bSB8IEpT
Qzo6RnVuY3Rpb24pOwogICAgICAgICAKICAgICAgICAgYWRkRnVuY3Rpb24odm0sICJlZmZlY3Rm
dWw0MiIsIGZ1bmN0aW9uRWZmZWN0ZnVsNDIsIDApOwpAQCAtMTA1Niw2ICsxMDU4LDE0IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rpb25GYWwKIAogRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBmdW5jdGlvblVuZGVmaW5lZDEoRXhlY1N0YXRlKikgeyByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOyB9CiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGZ1bmN0aW9uVW5kZWZpbmVkMihFeGVjU3RhdGUqKSB7IHJldHVybiBKU1ZhbHVlOjplbmNv
ZGUoanNVbmRlZmluZWQoKSk7IH0KK0VuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZnVuY3Rp
b25Jc0ludDMyKEV4ZWNTdGF0ZSogZXhlYykKK3sKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTsgKytpKSB7CisgICAgICAgIGlmICghZXhlYy0+YXJndW1l
bnQoaSkuaXNJbnQzMigpKQorICAgICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jv
b2xlYW4oZmFsc2UpKTsKKyAgICB9CisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xl
YW4odHJ1ZSkpOworfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uSWRl
bnRpdHkoRXhlY1N0YXRlKiBleGVjKSB7IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZXhlYy0+YXJn
dW1lbnQoMCkpOyB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzRWxpbWluYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMTg0MjA1
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBo
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsMTEgKzQyLDE0IEBACiAjaW5jbHVkZSAiSlND
SW5saW5lcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hT
ZXQuaD4KKyNpbmNsdWRlIDx3dGYvTGlzdER1bXAuaD4KIAogbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewogCiBuYW1lc3BhY2UgewogCitib29sIHZlcmJvc2UgPSBmYWxzZTsKKwogY2xh
c3MgQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZSA6IHB1YmxpYyBQaGFzZSB7CiBwdWJsaWM6CiAg
ICAgQXJndW1lbnRzRWxpbWluYXRpb25QaGFzZShHcmFwaCYgZ3JhcGgpCkBAIC0xMDEsNiArMTA0
LDkgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KKyAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxvZygi
Q2FuZGlkYXRlczogIiwgbGlzdER1bXAobV9jYW5kaWRhdGVzKSwgIlxuIik7CiAgICAgfQogICAg
IAogICAgIC8vIExvb2sgZm9yIGVzY2FwaW5nIHNpdGVzLCBhbmQgcmVtb3ZlIGZyb20gdGhlIGNh
bmRpZGF0ZXMgc2V0IGlmIHdlIHNlZSBhbiBlc2NhcGUuCkBAIC0xNjAsNiArMTY2LDIxIEBAIHBy
aXZhdGU6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgICAgICAgICAgY2Fz
ZSBDaGVjazoKKyAgICAgICAgICAgICAgICAgICAgbV9ncmFwaC5kb1RvQ2hpbGRyZW4oCisgICAg
ICAgICAgICAgICAgICAgICAgICBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgWyZdIChF
ZGdlIGVkZ2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVkZ2UudXNl
S2luZCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBDZWxsVXNlOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgT2JqZWN0VXNlOgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZXNjYXBlKGVkZ2UpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgTW92SGludDoKICAgICAgICAgICAgICAgICBj
YXNlIFB1dEhpbnQ6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMTg5LDYgKzIxMCw5
IEBAIHByaXZhdGU6CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
CisKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBkYXRhTG9nKCJBZnRlciBlc2Nh
cGUgYW5hbHlzaXM6ICIsIGxpc3REdW1wKG1fY2FuZGlkYXRlcyksICJcbiIpOwogICAgIH0KIAog
ICAgIC8vIEFueXdoZXJlIHRoYXQgYSBjYW5kaWRhdGUgaXMgbGl2ZSAoaW4gYnl0ZWNvZGUgb3Ig
aW4gREZHKSwgY2hlY2sgaWYgdGhlcmUgaXMgYSBjaGFuY2Ugb2YKQEAgLTMzMSw2ICszNTUsOSBA
QCBwcml2YXRlOgogICAgICAgICAvLyBhdmFpbGFiaWxpdGllcyBtYXkgYmVjb21lIHdoYXRldmVy
LiBPU1IgZXhpdCBzaG91bGQgYmUgYWJsZSB0byBoYW5kbGUgdGhpcyBxdWl0ZSBuYXR1cmFsbHks
CiAgICAgICAgIC8vIHNpbmNlIHRob3NlIGF2YWlsYWJpbGl0aWVzIHNwZWFrIG9mIHRoZSBzdGFj
ayBiZWZvcmUgdGhlIG9wdGltaXppbmcgY29tcGlsZXIgc3RhY2sgZnJhbWUgaXMKICAgICAgICAg
Ly8gdG9ybiBkb3duLgorCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgZGF0YUxv
ZygiQWZ0ZXIgaW50ZXJmZXJlbmNlIGFuYWx5c2lzOiAiLCBsaXN0RHVtcChtX2NhbmRpZGF0ZXMp
LCAiXG4iKTsKICAgICB9CiAgICAgCiAgICAgdm9pZCB0cmFuc2Zvcm0oKQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9u
IDE4NDIwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTExLDYgKzIxMTEsMTYgQEAgYm9vbCBCeXRlQ29kZVBh
cnNlcjo6aGFuZGxlSW50cmluc2ljKGludAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgICAgIAorICAgIGNhc2UgQ2hlY2tJbnQzMjogeworICAgICAgICBpbnNlcnRDaGVja3MoKTsK
KyAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpczsg
KytpKSB7CisgICAgICAgICAgICBOb2RlKiBub2RlID0gZ2V0KHZpcnR1YWxSZWdpc3RlckZvckFy
Z3VtZW50KGksIHJlZ2lzdGVyT2Zmc2V0KSk7CisgICAgICAgICAgICBhZGRUb0dyYXBoKFBoYW50
b20sIEVkZ2Uobm9kZSwgSW50MzJVc2UpKTsKKyAgICAgICAgfQorICAgICAgICBzZXQoVmlydHVh
bFJlZ2lzdGVyKHJlc3VsdE9wZXJhbmQpLCBqc0NvbnN0YW50KGpzQm9vbGVhbih0cnVlKSkpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgICAgIAogICAgIGNhc2UgRmlhdEludDUy
SW50cmluc2ljOiB7CiAgICAgICAgIGlmIChhcmd1bWVudENvdW50SW5jbHVkaW5nVGhpcyAhPSAy
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdPYmplY3RBbGxvY2F0aW9uU2lua2luZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09iamVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2Uu
Y3BwCShyZXZpc2lvbiAxODQyMDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR09i
amVjdEFsbG9jYXRpb25TaW5raW5nUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjgsMjUg
KzgyOCw0NSBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIE5ld0Z1bmN0aW9uOgogICAgICAgICAg
ICAgaWYgKCFub2RlLT5jYXN0T3BlcmFuZDxGdW5jdGlvbkV4ZWN1dGFibGUqPigpLT5zaW5nbGV0
b25GdW5jdGlvbigpLT5pc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgICAgICBzaW5rQ2FuZGlk
YXRlKCk7Ci0gICAgICAgICAgICBtX2dyYXBoLmRvVG9DaGlsZHJlbigKLSAgICAgICAgICAgICAg
ICBub2RlLAotICAgICAgICAgICAgICAgIFsmXSAoRWRnZSBlZGdlKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGVzY2FwZShlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAgICAgICAgfSk7CisgICAgICAg
ICAgICBlc2NhcGUobm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKICAgICAgICAgICAgIGlmICghbV9ncmFw
aC5zeW1ib2xUYWJsZUZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpLT5zaW5nbGV0b25TY29wZSgp
LT5pc1N0aWxsVmFsaWQoKSkKICAgICAgICAgICAgICAgICBzaW5rQ2FuZGlkYXRlKCk7CisgICAg
ICAgICAgICBlc2NhcGUobm9kZS0+Y2hpbGQxKCkubm9kZSgpKTsKKyAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgIGNhc2UgQ2hlY2s6CiAgICAgICAgICAgICBtX2dyYXBoLmRvVG9DaGlsZHJl
bigKICAgICAgICAgICAgICAgICBub2RlLAogICAgICAgICAgICAgICAgIFsmXSAoRWRnZSBlZGdl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGVzY2FwZShlZGdlLm5vZGUoKSk7CisgICAgICAgICAg
ICAgICAgICAgIGJvb2wgb2sgPSB0cnVlOworCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
ZWRnZS51c2VLaW5kKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBLbm93bkNlbGxVc2U6
CisgICAgICAgICAgICAgICAgICAgIGNhc2UgQ2VsbFVzZToKKyAgICAgICAgICAgICAgICAgICAg
Y2FzZSBPYmplY3RVc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBBbGwgb2Ygb3VyIGFs
bG9jYXRpb25zIHdpbGwgcGFzcyB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2FzZSBGdW5j
dGlvblVzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIEZ1bmN0aW9uIGFsbG9jYXRpb25z
IHdpbGwgcGFzcyB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVkZ2UtPm9wKCkg
IT0gTmV3RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2sgPSBmYWxzZTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICBv
ayA9IGZhbHNlOworICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmICgh
b2spCisgICAgICAgICAgICAgICAgICAgICAgICBlc2NhcGUoZWRnZS5ub2RlKCkpOwogICAgICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBNb3ZIaW50
OgotICAgICAgICBjYXNlIENoZWNrOgogICAgICAgICBjYXNlIFB1dEhpbnQ6CiAgICAgICAgIGNh
c2UgU3RvcmVCYXJyaWVyOgogICAgICAgICBjYXNlIFN0b3JlQmFycmllcldpdGhOdWxsQ2hlY2s6
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ZhcmFyZ3NGb3J3YXJkaW5nUGhh
c2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVmFyYXJn
c0ZvcndhcmRpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDE4NDIwNSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHVmFyYXJnc0ZvcndhcmRpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEwNCw3ICsxMDQsMzAgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICAgICAgcmVsZXZh
bnRMb2NhbHMuYXBwZW5kKG5vZGUtPnVubGlua2VkTG9jYWwoKSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICBjYXNlIENoZWNrOgorICAgICAg
ICAgICAgY2FzZSBDaGVjazogeworICAgICAgICAgICAgICAgIGJvb2wgc2F3RXNjYXBlID0gZmFs
c2U7CisgICAgICAgICAgICAgICAgbV9ncmFwaC5kb1RvQ2hpbGRyZW4oCisgICAgICAgICAgICAg
ICAgICAgIG5vZGUsCisgICAgICAgICAgICAgICAgICAgIFsmXSAoRWRnZSBlZGdlKSB7CisgICAg
ICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGVkZ2UudXNlS2luZCgpKSB7CisgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIENlbGxVc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBjYXNl
IE9iamVjdFVzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWRnZSA9PSBjYW5k
aWRhdGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RVc2VySW5kZXggPSBu
b2RlSW5kZXg7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhd0Vz
Y2FwZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICAgICAgICAgICAgICB9ICAKKyAgICAgICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAg
ICAgICAgaWYgKHNhd0VzY2FwZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIiAgICBFc2NhcGUgYXQgIiwgbm9kZSwg
IlxuIik7CisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICBjYXNlIExvYWRWYXJhcmdzOgogICAgICAgICAgICAgICAgIGlmIChtX2dyYXBo
LnVzZXMobm9kZSwgY2FuZGlkYXRlKSkKICAgICAgICAgICAgICAgICAgICAgbGFzdFVzZXJJbmRl
eCA9IG5vZGVJbmRleDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMRXhpdFZh
bHVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEV4aXRW
YWx1ZS5jcHAJKHJldmlzaW9uIDE4NDIwNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMRXhpdFZhbHVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQg
RXhpdFZhbHVlOjpkdW1wSW5Db250ZXh0KFByaW50U3RyZWEKICAgICAgICAgb3V0LnByaW50KCJS
ZWNvdmVyeSgiLCByZWNvdmVyeU9wY29kZSgpLCAiLCBhcmciLCBsZWZ0UmVjb3ZlcnlBcmd1bWVu
dCgpLCAiLCBhcmciLCByaWdodFJlY292ZXJ5QXJndW1lbnQoKSwgIiwgIiwgcmVjb3ZlcnlGb3Jt
YXQoKSwgIikiKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgRXhpdFZhbHVlTWF0ZXJpYWxp
emVOZXdPYmplY3Q6Ci0gICAgICAgIG91dC5wcmludCgiTWF0ZXJpYWxpemUoIiwgV1RGOjpSYXdQ
b2ludGVyKG9iamVjdE1hdGVyaWFsaXphdGlvbigpKSwgIjouLikiKTsKKyAgICAgICAgb3V0LnBy
aW50KCJNYXRlcmlhbGl6ZSgiLCBXVEY6OlJhd1BvaW50ZXIob2JqZWN0TWF0ZXJpYWxpemF0aW9u
KCkpLCAiKSIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvTExWTS5jcHAJKHJldmlzaW9uIDE4
NDIwNikKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MDUyLDcgKzgwNTIsNyBAQCBwcml2YXRlOgogICAgICAgICAg
ICAgaWYgKCFleGl0Lm1fbWF0ZXJpYWxpemF0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBkYXRhTG9nKCIgICAgICAgIE1hdGVyaWFsaXphdGlvbnM6IFxuIik7CiAgICAgICAgICAg
ICAgICAgZm9yIChFeGl0VGltZU9iamVjdE1hdGVyaWFsaXphdGlvbiogbWF0ZXJpYWxpemF0aW9u
IDogZXhpdC5tX21hdGVyaWFsaXphdGlvbnMpCi0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2co
IiAgICAgICAgICAgIE1hdGVyaWFsaXplKCIsIHBvaW50ZXJEdW1wKG1hdGVyaWFsaXphdGlvbiks
ICIpXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZygiICAgICAgICAgICAgIiwgcG9p
bnRlckR1bXAobWF0ZXJpYWxpemF0aW9uKSwgIlxuIik7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExPU1JF
eGl0Q29tcGlsZXIuY3BwCShyZXZpc2lvbiAxODQyMDUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZnRsL0ZUTE9TUkV4aXRDb21waWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ3Nyw2ICs0
NzcsMTkgQEAgZXh0ZXJuICJDIiB2b2lkKiBjb21waWxlRlRMT1NSRXhpdChFeGVjUwogICAgIEpJ
VENvZGUqIGppdENvZGUgPSBjb2RlQmxvY2stPmppdENvZGUoKS0+ZnRsKCk7CiAgICAgT1NSRXhp
dCYgZXhpdCA9IGppdENvZGUtPm9zckV4aXRbZXhpdElEXTsKICAgICAKKyAgICBpZiAoc2hvdWxk
U2hvd0Rpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6OnZl
cmJvc2VGVExPU1JFeGl0KCkpIHsKKyAgICAgICAgZGF0YUxvZygiICAgIE93bmluZyBibG9jazog
IiwgcG9pbnRlckR1bXAoY29kZUJsb2NrKSwgIlxuIik7CisgICAgICAgIGRhdGFMb2coIiAgICBP
cmlnaW46ICIsIGV4aXQubV9jb2RlT3JpZ2luLCAiXG4iKTsKKyAgICAgICAgaWYgKGV4aXQubV9j
b2RlT3JpZ2luRm9yRXhpdFByb2ZpbGUgIT0gZXhpdC5tX2NvZGVPcmlnaW4pCisgICAgICAgICAg
ICBkYXRhTG9nKCIgICAgT3JpZ2luIGZvciBleGl0IHByb2ZpbGU6ICIsIGV4aXQubV9jb2RlT3Jp
Z2luRm9yRXhpdFByb2ZpbGUsICJcbiIpOworICAgICAgICBkYXRhTG9nKCIgICAgRXhpdCB2YWx1
ZXM6ICIsIGV4aXQubV92YWx1ZXMsICJcbiIpOworICAgICAgICBpZiAoIWV4aXQubV9tYXRlcmlh
bGl6YXRpb25zLmlzRW1wdHkoKSkgeworICAgICAgICAgICAgZGF0YUxvZygiICAgIE1hdGVyaWFs
aXphdGlvbnM6XG4iKTsKKyAgICAgICAgICAgIGZvciAoRXhpdFRpbWVPYmplY3RNYXRlcmlhbGl6
YXRpb24qIG1hdGVyaWFsaXphdGlvbiA6IGV4aXQubV9tYXRlcmlhbGl6YXRpb25zKQorICAgICAg
ICAgICAgICAgIGRhdGFMb2coIiAgICAgICAgIiwgcG9pbnRlckR1bXAobWF0ZXJpYWxpemF0aW9u
KSwgIlxuIik7CisgICAgICAgIH0KKyAgICB9CisKICAgICBwcmVwYXJlQ29kZU9yaWdpbkZvck9T
UkV4aXQoZXhlYywgZXhpdC5tX2NvZGVPcmlnaW4pOwogICAgIAogICAgIGNvbXBpbGVTdHViKGV4
aXRJRCwgaml0Q29kZSwgZXhpdCwgdm0sIGNvZGVCbG9jayk7CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRyaW5zaWMuaAkocmV2aXNpb24gMTg0MjA1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50cmluc2ljLmgJKHdvcmtpbmcgY29weSkKQEAgLTYw
LDYgKzYwLDcgQEAgZW51bSBJbnRyaW5zaWMgewogICAgIE9TUkV4aXRJbnRyaW5zaWMsCiAgICAg
SXNGaW5hbFRpZXJJbnRyaW5zaWMsCiAgICAgU2V0SW50MzJIZWFwUHJlZGljdGlvbkludHJpbnNp
YywKKyAgICBDaGVja0ludDMyLAogICAgIEZpYXRJbnQ1MkludHJpbnNpYywKIH07CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1p
bnZhbGlkLWNoZWNrLWRmZy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvc3RyZXNzL3NpbmstYXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1kZmcuanMJKHJl
dmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstYXJn
dW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1kZmcuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxNyBAQAordmFyIGdsb2JhbFJlc3VsdDsKK09iamVjdC5wcm90b3R5cGUudmFsdWVPZiA9IGZ1
bmN0aW9uKCkgeyBnbG9iYWxSZXN1bHQgPSAxOyB9CisKK2Z1bmN0aW9uIGZvbygpIHsKKyAgICBn
bG9iYWxSZXN1bHQgPSAwOworICAgICthcmd1bWVudHM7CisgICAgcmV0dXJuIGdsb2JhbFJlc3Vs
dDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytp
KSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQgIT09IDEpCisgICAg
ICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFs
aWQtY2hlY2staW50MzItZGZnLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLWRm
Zy5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLWRmZy5qcwkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDEyIEBACitmdW5jdGlvbiBmb28oKSB7CisgICAgcmV0dXJuIGlzSW50
MzIoYXJndW1lbnRzKTsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbygpOworICAgIGlmIChyZXN1bHQg
IT09IGZhbHNlKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7
Cit9CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1
bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNo
ZWNrLWludDMyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3Rz
L3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFsaWQtY2hlY2staW50MzIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9vKHApIHsKKyAgICB2YXIgcmVz
dWx0ID0gNDI7CisgICAgdmFyIG8gPSBhcmd1bWVudHM7CisgICAgaWYgKHApCisgICAgICAgIHJl
c3VsdCA9IGlzSW50MzIobyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9v
KTsKKwordmFyIHJlc3VsdCA9IGZvbyh0cnVlKTsKK2lmIChyZXN1bHQgIT09IGZhbHNlKQorICAg
IHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBiZWdpbm5pbmc6ICIgKyByZXN1bHQ7CisKK2Zv
ciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oZmFs
c2UpOworICAgIGlmIChyZXN1bHQgIT09IDQyKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCBy
ZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28odHJ1ZSk7CitpZiAocmVz
dWx0ICE9PSBmYWxzZSkKKyAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsg
cmVzdWx0OworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmst
YXJndW1lbnRzLXBhc3QtaW52YWxpZC1jaGVjay1zbmVha2llci5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstYXJndW1lbnRzLXBhc3QtaW52
YWxpZC1jaGVjay1zbmVha2llci5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFr
aWVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzcgQEAKK2Z1bmN0aW9uIGJhcihvLCBw
KSB7CisgICAgdmFyIG8yID0ge2Y6IDB9OworICAgIGlmIChwKQorICAgICAgICBvMi5mID0gbzsK
KyAgICByZXR1cm4gK28yLmY7Cit9CisKK3ZhciBnbG9iYWxSZXN1bHQ7CitPYmplY3QucHJvdG90
eXBlLnZhbHVlT2YgPSBmdW5jdGlvbigpIHsgZ2xvYmFsUmVzdWx0ID0gMTsgfTsKKworZnVuY3Rp
b24gZm9vKHAsIHEpIHsKKyAgICBnbG9iYWxSZXN1bHQgPSAwOworICAgIHZhciBvID0gYXJndW1l
bnRzOworICAgIGlmIChwKQorICAgICAgICBiYXIobywgcSk7CisgICAgcmV0dXJuIGdsb2JhbFJl
c3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9vKHRydWUsIGZhbHNlKTsKKworZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgYmFyKDEsIHRydWUpOworICAgIGJhcih7
fSwgZmFsc2UpOworfQorCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2
YXIgcmVzdWx0ID0gZm9vKGZhbHNlLCB0cnVlKTsKKyAgICBpZiAocmVzdWx0ICE9PSAwKQorICAg
ICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1
bHQgPSBmb28odHJ1ZSwgdHJ1ZSk7CitpZiAocmVzdWx0ICE9PSAxKQorICAgIHRocm93ICJFcnJv
cjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1hcmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1h
cmd1bWVudHMtcGFzdC1pbnZhbGlkLWNoZWNrLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWFyZ3VtZW50cy1wYXN0LWludmFsaWQtY2hl
Y2suanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMyBAQAordmFyIGdsb2JhbFJlc3VsdDsK
K09iamVjdC5wcm90b3R5cGUudmFsdWVPZiA9IGZ1bmN0aW9uKCkgeyBnbG9iYWxSZXN1bHQgPSAx
OyB9CisKK2Z1bmN0aW9uIGZvbyhwKSB7CisgICAgZ2xvYmFsUmVzdWx0ID0gMDsKKyAgICB2YXIg
byA9IGFyZ3VtZW50czsKKyAgICBpZiAocCkKKyAgICAgICAgK287CisgICAgcmV0dXJuIGdsb2Jh
bFJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAw
MDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhmYWxzZSk7CisgICAgaWYgKHJlc3VsdCAh
PT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0OworfQor
Cit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3VsdCAhPT0gMSkKKyAgICB0aHJvdyAi
RXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsgcmVzdWx0OworCkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstZnVuY3Rpb24tcGFzdC1pbnZhbGlkLWNoZWNr
LXNuZWFraWVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9z
dHJlc3Mvc2luay1mdW5jdGlvbi1wYXN0LWludmFsaWQtY2hlY2stc25lYWtpZXIuanMJKHJldmlz
aW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3NpbmstZnVuY3Rp
b24tcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFraWVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMzUgQEAKK2Z1bmN0aW9uIGJhcihvLCBwKSB7CisgICAgaWYgKHApCisgICAgICAgIHJldHVy
biArby5mOworICAgIHJldHVybiA0MjsKK30KKwordmFyIGdsb2JhbFJlc3VsdDsKK0Z1bmN0aW9u
LnByb3RvdHlwZS52YWx1ZU9mID0gZnVuY3Rpb24oKSB7IGdsb2JhbFJlc3VsdCA9IDE7IH07CisK
K2Z1bmN0aW9uIGZvbyhwLCBxKSB7CisgICAgZ2xvYmFsUmVzdWx0ID0gMDsKKyAgICB2YXIgbyA9
IGZ1bmN0aW9uKCkgeyB9OworICAgIHZhciBvMiA9IHtmOiBvfTsKKyAgICBpZiAocCkKKyAgICAg
ICAgYmFyKG8yLCBxKTsKKyAgICByZXR1cm4gZ2xvYmFsUmVzdWx0OworfQorCitub0lubGluZShm
b28pOworCitmb28odHJ1ZSwgZmFsc2UpOworCitmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyAr
K2kpCisgICAgYmFyKHtmOjQyfSwgdHJ1ZSk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7
ICsraSkgeworICAgIHZhciByZXN1bHQgPSBmb28oZmFsc2UsIHRydWUpOworICAgIGlmIChyZXN1
bHQgIT09IDApCisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsK
K30KKwordmFyIHJlc3VsdCA9IGZvbyh0cnVlLCB0cnVlKTsKK2lmIChyZXN1bHQgIT09IDEpCisg
ICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsKKwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLWZ1bmN0aW9uLXBhc3QtaW52
YWxpZC1jaGVjay1zbmVha3kuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3Rlc3RzL3N0cmVzcy9zaW5rLWZ1bmN0aW9uLXBhc3QtaW52YWxpZC1jaGVjay1zbmVha3kuanMJ
KHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmst
ZnVuY3Rpb24tcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFreS5qcwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDEzIEBACitmdW5jdGlvbiBmb28ocCkgeworICAgIHZhciBvID0gZnVuY3Rpb24oKSB7
IH07CisgICAgdmFyIHEgPSB7ZjogcCA/IG8gOiA0Mn07CisgICAgdmFyIHRtcCA9IHEuZiArIDE7
Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkK
KyAgICBmb28oZmFsc2UpOworCitmb28odHJ1ZSk7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLmpz
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1v
YmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLWludDMyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9zaW5rLW9iamVjdC1wYXN0LWludmFsaWQtY2hl
Y2staW50MzIuanMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNCBAQAorZnVuY3Rpb24gZm9v
KHApIHsKKyAgICB2YXIgcmVzdWx0ID0gNDI7CisgICAgdmFyIG8gPSB7fTsKKyAgICBpZiAocCkK
KyAgICAgICAgcmVzdWx0ID0gaXNJbnQzMihvKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitu
b0lubGluZShmb28pOworCit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3VsdCAhPT0g
ZmFsc2UpCisgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsK
KworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZv
byhmYWxzZSk7CisgICAgaWYgKHJlc3VsdCAhPT0gNDIpCisgICAgICAgIHRocm93ICJFcnJvcjog
YmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFyIHJlc3VsdCA9IGZvbyh0cnVlKTsKK2lm
IChyZXN1bHQgIT09IGZhbHNlKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6
ICIgKyByZXN1bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
c2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFraWVyLmpzCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZh
bGlkLWNoZWNrLXNuZWFraWVyLmpzCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9zaW5rLW9iamVjdC1wYXN0LWludmFsaWQtY2hlY2stc25lYWtpZXIu
anMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorZnVuY3Rpb24gYmFyKG8sIHApIHsK
KyAgICBpZiAocCkKKyAgICAgICAgcmV0dXJuICtvLmY7CisgICAgcmV0dXJuIDQyOworfQorCitm
dW5jdGlvbiBmb28ocCwgcSkgeworICAgIHZhciByZXN1bHQgPSAwOworICAgIHZhciBvID0ge3Zh
bHVlT2Y6IGZ1bmN0aW9uKCkgeyByZXN1bHQgPSAxOyB9fTsKKyAgICB2YXIgbzIgPSB7Zjogb307
CisgICAgaWYgKHApCisgICAgICAgIGJhcihvMiwgcSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kworbm9JbmxpbmUoZm9vKTsKKworZm9vKHRydWUsIGZhbHNlKTsKKworZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDAwMDsgKytpKQorICAgIGJhcih7Zjo0Mn0sIHRydWUpOworCitmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpIHsKKyAgICB2YXIgcmVzdWx0ID0gZm9vKGZhbHNlLCB0cnVlKTsK
KyAgICBpZiAocmVzdWx0ICE9PSAwKQorICAgICAgICB0aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQ6
ICIgKyByZXN1bHQ7Cit9CisKK3ZhciByZXN1bHQgPSBmb28odHJ1ZSwgdHJ1ZSk7CitpZiAocmVz
dWx0ICE9PSAxKQorICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdCBhdCBlbmQ6ICIgKyByZXN1
bHQ7CisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmpl
Y3QtcGFzdC1pbnZhbGlkLWNoZWNrLXNuZWFreS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay1z
bmVha3kuanMJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay1zbmVha3kuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwyMCBAQAorZnVuY3Rpb24gZm9vKHApIHsKKyAgICB2YXIgcmVzdWx0ID0g
MDsKKyAgICB2YXIgbyA9IHt2YWx1ZU9mOiBmdW5jdGlvbigpIHsgcmVzdWx0ID0gMTsgfX07Cisg
ICAgdmFyIHEgPSB7ZjogcCA/IG8gOiA0Mn07CisgICAgdmFyIHRtcCA9IHEuZiArIDE7CisgICAg
cmV0dXJuIHJlc3VsdDsKK30KKworbm9JbmxpbmUoZm9vKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDAwMDsgKytpKSB7CisgICAgdmFyIHJlc3VsdCA9IGZvbyhmYWxzZSk7CisgICAgaWYgKHJl
c3VsdCAhPT0gMCkKKyAgICAgICAgdGhyb3cgIkVycm9yOiBiYWQgcmVzdWx0OiAiICsgcmVzdWx0
OworfQorCit2YXIgcmVzdWx0ID0gZm9vKHRydWUpOworaWYgKHJlc3VsdCAhPT0gMSkKKyAgICB0
aHJvdyAiRXJyb3I6IGJhZCByZXN1bHQgYXQgZW5kOiAiICsgcmVzdWx0OworCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1j
aGVjay5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L3Npbmstb2JqZWN0LXBhc3QtaW52YWxpZC1jaGVjay5qcwkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mvc2luay1vYmplY3QtcGFzdC1pbnZhbGlkLWNo
ZWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjAgQEAKK2Z1bmN0aW9uIGZvbyhwKSB7
CisgICAgdmFyIHJlc3VsdCA9IDA7CisgICAgdmFyIG8gPSB7dmFsdWVPZjpmdW5jdGlvbigpIHsg
cmVzdWx0ID0gMTsgfX07CisgICAgaWYgKHApCisgICAgICAgICtvOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK25vSW5saW5lKGZvbyk7CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsr
aSkgeworICAgIHZhciByZXN1bHQgPSBmb28oZmFsc2UpOworICAgIGlmIChyZXN1bHQgIT09IDAp
CisgICAgICAgIHRocm93ICJFcnJvcjogYmFkIHJlc3VsdDogIiArIHJlc3VsdDsKK30KKwordmFy
IHJlc3VsdCA9IGZvbyh0cnVlKTsKK2lmIChyZXN1bHQgIT09IDEpCisgICAgdGhyb3cgIkVycm9y
OiBiYWQgcmVzdWx0IGF0IGVuZDogIiArIHJlc3VsdDsKKwpJbmRleDogTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTg0
MjUzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMTUtMDUtMTIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAg
ICAgICBqcy9kb20vc3RhY2stdHJhY2UuaHRtbCBmYWlscyB3aXRoIGVhZ2VyIGNvbXBpbGF0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDQ4NTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IE1ha2UgYSBjb3B5IG9mIHRoZSBzdGFjay10cmFjZSB0ZXN0IHRoYXQgb25seSBydW5zIGluIHJ1
bi1qc2Mtc3RyZXNzLXRlc3RzLiBTYWRseSwgd2UgZG9uJ3QKKyAgICAgICAgaGF2ZSBhIGdvb2Qg
d2F5IG9mIGhhdmluZyBkaWZmZXJlbnQgZXhwZWN0YXRpb24gZmlsZXMgZm9yIHdoZW4gYSB0ZXN0
IHJ1bnMgaW4gUkpTVCB2ZXJzdXMKKyAgICAgICAgUldULiBTbywgdGhlIGFwcHJvYWNoIEkgdGFr
ZSBpcyB0aGF0IEkgbWFrZSBhIGNvcHkgb2YgdGhlIHRlc3QganVzdCBmb3IgUkpTVCBhbmQgSSBl
eGNsdWRlCisgICAgICAgIHRoZSAuaHRtbCBmaWxlLCB3aGljaCBtYWtlcyBSV1Qgb3Zlcmxvb2sg
aXQuIFRoZSB0ZXN0IGhhcyBkaWZmZXJlbnQgZXhwZWN0YXRpb25zIGluIHRoZQorICAgICAgICB0
d28gaGFybmVzc2VzIGJlY2F1c2UgaXQgZG9lcyBzb21lIHNtYWxsIERPTSB0aGluZ3MuCisKKyAg
ICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvc3RhY2stdHJhY2UuanM6IEFkZGVkLgorICAgICAgICAq
IGpzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTUtMDUtMTIgIEpvYW5t
YXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFYOiBbV2luXSBSRUdS
RVNTSU9OKHIxODQyMTMpIGJyZWFrcyBhcmlhLW1lbnViYXItbWVudWl0ZW1zLmh0bWwKSW5kZXg6
IExheW91dFRlc3RzL2pzL3N0YWNrLXRyYWNlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9zdGFjay10cmFjZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9qcy9zdGFjay10cmFjZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNjIgQEAKK1RoaXMgdGVzdCBjaGVja3Mgc3RhY2sgdHJhY2UgY29yZWN0bmVzcyBp
biBzcGVjaWFsIGNhc2VzLgorLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICBub3JtYWxJbm5lciBh
dCBzdGFjay10cmFjZS5qczo4NDo0NworICAgIDEgICBub3JtYWxPdXRlciBhdCBzdGFjay10cmFj
ZS5qczo4MzozNworICAgIDIgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczo4OToxOAor
CistLT4gU3RhY2sgVHJhY2U6CisgICAgMCAgIGlubmVyIGF0IHN0YWNrLXRyYWNlLmpzOjgxOjQ0
CisgICAgMSAgICBhdCBldmFsIGNvZGUKKyAgICAyICAgZXZhbCBhdCBbbmF0aXZlIGNvZGVdCisg
ICAgMyAgIGV2YWxlciBhdCBzdGFjay10cmFjZS5qczo4MjoyOQorICAgIDQgICBnbG9iYWwgY29k
ZSBhdCBzdGFjay10cmFjZS5qczo5MjoxMworCistLT4gU3RhY2sgVHJhY2U6CisgICAgMCAgIGlu
bmVyIGF0IHN0YWNrLXRyYWNlLmpzOjgxOjQ0CisgICAgMSAgIG91dGVyIGF0IHN0YWNrLXRyYWNl
LmpzOjgwOjM0CisgICAgMiAgICBhdCBldmFsIGNvZGUKKyAgICAzICAgZXZhbCBhdCBbbmF0aXZl
IGNvZGVdCisgICAgNCAgIGV2YWxlciBhdCBzdGFjay10cmFjZS5qczo4MjoyOQorICAgIDUgICBn
bG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczo5MzoxMworCistLT4gU3RhY2sgVHJhY2U6Cisg
ICAgMCAgIGlubmVyIGF0IHN0YWNrLXRyYWNlLmpzOjgxOjQ0CisgICAgMSAgIGdsb2JhbCBjb2Rl
IGF0IHN0YWNrLXRyYWNlLmpzOjk2OjIzCisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgaW5u
ZXIgYXQgc3RhY2stdHJhY2UuanM6ODE6NDQKKyAgICAxICAgb3V0ZXIgYXQgc3RhY2stdHJhY2Uu
anM6ODA6MzQKKyAgICAyICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6OTc6MjMKKwor
LS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICBob3N0VGhyb3dlciBhdCBzdGFjay10cmFjZS5qczo3
ODo0MworICAgIDEgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoxMDA6MTgKKworLS0+
IFN0YWNrIFRyYWNlOgorICAgIDAgICBzY3JpcHRlcklubmVyIGF0IHN0YWNrLXRyYWNlLmpzOjg1
OjM3CisgICAgMSAgIGdsb2JhbCBjb2RlIGF0IHN0YWNrLXRyYWNlLmpzOjEwMjoyMAorCistLT4g
U3RhY2sgVHJhY2U6CisgICAgMCAgIHNjcmlwdGVyT3V0ZXIgYXQgc3RhY2stdHJhY2UuanM6ODY6
MzcKKyAgICAxICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MTAzOjIwCisKKy0tPiBT
dGFjayBUcmFjZToKKyAgICAwICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1
OjQzCisgICAgMSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAg
IDIgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAzICAgc2Vs
ZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNCAgIHNlbGZSZWN1cnNp
dmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDUgICBzZWxmUmVjdXJzaXZlMSBhdCBz
dGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA2ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJh
Y2UuanM6MTA1OjQzCisgICAgNyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEw
NTo0MworICAgIDggICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAg
ICA5ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMTAgICBz
ZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAxMSAgIHNlbGZSZWN1
cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDEyICAgc2VsZlJlY3Vyc2l2ZTEg
YXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMTMgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFj
ay10cmFjZS5qczoxMDU6NDMKKyAgICAxNCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNl
LmpzOjEwNTo0MworICAgIDE1ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1
OjQzCisgICAgMTYgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAg
ICAxNyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDE4ICAg
c2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMTkgICBzZWxmUmVj
dXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAyMCAgIHNlbGZSZWN1cnNpdmUx
IGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDIxICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3Rh
Y2stdHJhY2UuanM6MTA1OjQzCisgICAgMjIgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFj
ZS5qczoxMDU6NDMKKyAgICAyMyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEw
NTo0MworICAgIDI0ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisg
ICAgMjUgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAyNiAg
IHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDI3ICAgc2VsZlJl
Y3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMjggICBzZWxmUmVjdXJzaXZl
MSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAyOSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0
YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDMwICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJh
Y2UuanM6MTA1OjQzCisgICAgMzEgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczox
MDU6NDMKKyAgICAzMiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0Mwor
ICAgIDMzICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMzQg
ICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAzNSAgIHNlbGZS
ZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDM2ICAgc2VsZlJlY3Vyc2l2
ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgMzcgICBzZWxmUmVjdXJzaXZlMSBhdCBz
dGFjay10cmFjZS5qczoxMDU6NDMKKyAgICAzOCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRy
YWNlLmpzOjEwNTo0MworICAgIDM5ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6
MTA1OjQzCisgICAgNDAgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMK
KyAgICA0MSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDQy
ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNDMgICBzZWxm
UmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA0NCAgIHNlbGZSZWN1cnNp
dmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDQ1ICAgc2VsZlJlY3Vyc2l2ZTEgYXQg
c3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNDYgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10
cmFjZS5qczoxMDU6NDMKKyAgICA0NyAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpz
OjEwNTo0MworICAgIDQ4ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQz
CisgICAgNDkgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA1
MCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDUxICAgc2Vs
ZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNTIgICBzZWxmUmVjdXJz
aXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA1MyAgIHNlbGZSZWN1cnNpdmUxIGF0
IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDU0ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2st
dHJhY2UuanM6MTA1OjQzCisgICAgNTUgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5q
czoxMDU6NDMKKyAgICA1NiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0
MworICAgIDU3ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAg
NTggICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA1OSAgIHNl
bGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDYwICAgc2VsZlJlY3Vy
c2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNjEgICBzZWxmUmVjdXJzaXZlMSBh
dCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA2MiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNr
LXRyYWNlLmpzOjEwNTo0MworICAgIDYzICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2Uu
anM6MTA1OjQzCisgICAgNjQgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6
NDMKKyAgICA2NSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAg
IDY2ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNjcgICBz
ZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA2OCAgIHNlbGZSZWN1
cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDY5ICAgc2VsZlJlY3Vyc2l2ZTEg
YXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNzAgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFj
ay10cmFjZS5qczoxMDU6NDMKKyAgICA3MSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNl
LmpzOjEwNTo0MworICAgIDcyICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1
OjQzCisgICAgNzMgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAg
ICA3NCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDc1ICAg
c2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgNzYgICBzZWxmUmVj
dXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA3NyAgIHNlbGZSZWN1cnNpdmUx
IGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDc4ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3Rh
Y2stdHJhY2UuanM6MTA1OjQzCisgICAgNzkgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFj
ZS5qczoxMDU6NDMKKyAgICA4MCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEw
NTo0MworICAgIDgxICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisg
ICAgODIgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA4MyAg
IHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDg0ICAgc2VsZlJl
Y3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgODUgICBzZWxmUmVjdXJzaXZl
MSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA4NiAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0
YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDg3ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJh
Y2UuanM6MTA1OjQzCisgICAgODggICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczox
MDU6NDMKKyAgICA4OSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0Mwor
ICAgIDkwICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgOTEg
ICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA5MiAgIHNlbGZS
ZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDkzICAgc2VsZlJlY3Vyc2l2
ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisgICAgOTQgICBzZWxmUmVjdXJzaXZlMSBhdCBz
dGFjay10cmFjZS5qczoxMDU6NDMKKyAgICA5NSAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRy
YWNlLmpzOjEwNTo0MworICAgIDk2ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6
MTA1OjQzCisgICAgOTcgICBzZWxmUmVjdXJzaXZlMSBhdCBzdGFjay10cmFjZS5qczoxMDU6NDMK
KyAgICA5OCAgIHNlbGZSZWN1cnNpdmUxIGF0IHN0YWNrLXRyYWNlLmpzOjEwNTo0MworICAgIDk5
ICAgc2VsZlJlY3Vyc2l2ZTEgYXQgc3RhY2stdHJhY2UuanM6MTA1OjQzCisKKy0tPiBTdGFjayBU
cmFjZToKKyAgICAwICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3Cisg
ICAgMSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDIgICBz
ZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAzICAgc2VsZlJlY3Vy
c2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNCAgIHNlbGZSZWN1cnNpdmUyIGF0
IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDUgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10
cmFjZS5qczoxMTU6MjcKKyAgICA2ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6
MTE1OjI3CisgICAgNyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNwor
ICAgIDggICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA5ICAg
c2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMTAgICBzZWxmUmVj
dXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxMSAgIHNlbGZSZWN1cnNpdmUy
IGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDEyICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3Rh
Y2stdHJhY2UuanM6MTE1OjI3CisgICAgMTMgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFj
ZS5qczoxMTU6MjcKKyAgICAxNCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjEx
NToyNworICAgIDE1ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3Cisg
ICAgMTYgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAxNyAg
IHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDE4ICAgc2VsZlJl
Y3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMTkgICBzZWxmUmVjdXJzaXZl
MiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAyMCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0
YWNrLXRyYWNlLmpzOjExNToyNworICAgIDIxICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJh
Y2UuanM6MTE1OjI3CisgICAgMjIgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczox
MTU6MjcKKyAgICAyMyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNwor
ICAgIDI0ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMjUg
ICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAyNiAgIHNlbGZS
ZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDI3ICAgc2VsZlJlY3Vyc2l2
ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMjggICBzZWxmUmVjdXJzaXZlMiBhdCBz
dGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAyOSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRy
YWNlLmpzOjExNToyNworICAgIDMwICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6
MTE1OjI3CisgICAgMzEgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcK
KyAgICAzMiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDMz
ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMzQgICBzZWxm
UmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICAzNSAgIHNlbGZSZWN1cnNp
dmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDM2ICAgc2VsZlJlY3Vyc2l2ZTIgYXQg
c3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgMzcgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10
cmFjZS5qczoxMTU6MjcKKyAgICAzOCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpz
OjExNToyNworICAgIDM5ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3
CisgICAgNDAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0
MSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDQyICAgc2Vs
ZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNDMgICBzZWxmUmVjdXJz
aXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA0NCAgIHNlbGZSZWN1cnNpdmUyIGF0
IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDQ1ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2st
dHJhY2UuanM6MTE1OjI3CisgICAgNDYgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5q
czoxMTU6MjcKKyAgICA0NyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToy
NworICAgIDQ4ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAg
NDkgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA1MCAgIHNl
bGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDUxICAgc2VsZlJlY3Vy
c2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNTIgICBzZWxmUmVjdXJzaXZlMiBh
dCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA1MyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNr
LXRyYWNlLmpzOjExNToyNworICAgIDU0ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2Uu
anM6MTE1OjI3CisgICAgNTUgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6
MjcKKyAgICA1NiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAg
IDU3ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNTggICBz
ZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA1OSAgIHNlbGZSZWN1
cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDYwICAgc2VsZlJlY3Vyc2l2ZTIg
YXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNjEgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFj
ay10cmFjZS5qczoxMTU6MjcKKyAgICA2MiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNl
LmpzOjExNToyNworICAgIDYzICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1
OjI3CisgICAgNjQgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAg
ICA2NSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDY2ICAg
c2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNjcgICBzZWxmUmVj
dXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA2OCAgIHNlbGZSZWN1cnNpdmUy
IGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDY5ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3Rh
Y2stdHJhY2UuanM6MTE1OjI3CisgICAgNzAgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFj
ZS5qczoxMTU6MjcKKyAgICA3MSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjEx
NToyNworICAgIDcyICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3Cisg
ICAgNzMgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA3NCAg
IHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDc1ICAgc2VsZlJl
Y3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgNzYgICBzZWxmUmVjdXJzaXZl
MiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA3NyAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0
YWNrLXRyYWNlLmpzOjExNToyNworICAgIDc4ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJh
Y2UuanM6MTE1OjI3CisgICAgNzkgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczox
MTU6MjcKKyAgICA4MCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNwor
ICAgIDgxICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgODIg
ICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA4MyAgIHNlbGZS
ZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDg0ICAgc2VsZlJlY3Vyc2l2
ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgODUgICBzZWxmUmVjdXJzaXZlMiBhdCBz
dGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA4NiAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRy
YWNlLmpzOjExNToyNworICAgIDg3ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6
MTE1OjI3CisgICAgODggICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcK
KyAgICA4OSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDkw
ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgOTEgICBzZWxm
UmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA5MiAgIHNlbGZSZWN1cnNp
dmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDkzICAgc2VsZlJlY3Vyc2l2ZTIgYXQg
c3RhY2stdHJhY2UuanM6MTE1OjI3CisgICAgOTQgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10
cmFjZS5qczoxMTU6MjcKKyAgICA5NSAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpz
OjExNToyNworICAgIDk2ICAgc2VsZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3
CisgICAgOTcgICBzZWxmUmVjdXJzaXZlMiBhdCBzdGFjay10cmFjZS5qczoxMTU6MjcKKyAgICA5
OCAgIHNlbGZSZWN1cnNpdmUyIGF0IHN0YWNrLXRyYWNlLmpzOjExNToyNworICAgIDk5ICAgc2Vs
ZlJlY3Vyc2l2ZTIgYXQgc3RhY2stdHJhY2UuanM6MTE1OjI3CisKKy0tPiBTdGFjayBUcmFjZSBt
YXRjaGVzIHBhdHRlcm46CisgICAgMCAgICBhdCBldmFsIGNvZGUKKyAgICAxICAgZXZhbCBhdCBb
bmF0aXZlIGNvZGVdCisgICAgMiAgIHNlbGZSZWN1cnNpdmUzIGF0IHN0YWNrLXRyYWNlLmpzCisK
Ky0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgdGhyb3dFcnJvciBhdCBzdGFjay10cmFjZS5qczox
Mzk6MjAKKyAgICAxICAgdmFsdWVPZiBhdCBzdGFjay10cmFjZS5qczoxNDY6MjcKKyAgICAyICAg
Z2V0dGVyMSBhdCBzdGFjay10cmFjZS5qczoxNDk6MTEKKyAgICAzICAgbm9uSW5saW5lYWJsZSBh
dCBzdGFjay10cmFjZS5qczoxNzU6MTcKKyAgICA0ICAgaW5saW5lYWJsZSBhdCBzdGFjay10cmFj
ZS5qczoxODM6MjcKKyAgICA1ICAgeWV0QW5vdGhlcklubGluZWRDYWxsIGF0IHN0YWNrLXRyYWNl
LmpzOjE4ODoxNworICAgIDYgICBtYWtlSW5saW5hYmxlQ2FsbCBhdCBzdGFjay10cmFjZS5qczox
OTM6MzQKKyAgICA3ICAgZyBhdCBzdGFjay10cmFjZS5qczoyMDI6MzQKKyAgICA4ICAgbWFwIGF0
IFtuYXRpdmUgY29kZV0KKyAgICA5ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MjA1
OjE2CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgdGhyb3dFcnJvciBhdCBzdGFjay10cmFj
ZS5qczoxMzk6MjAKKyAgICAxICAgZ2V0dGVyMiBhdCBzdGFjay10cmFjZS5qczoxNTU6MTEKKyAg
ICAyICAgbm9uSW5saW5lYWJsZSBhdCBzdGFjay10cmFjZS5qczoxNzc6MTcKKyAgICAzICAgaW5s
aW5lYWJsZSBhdCBzdGFjay10cmFjZS5qczoxODM6MjcKKyAgICA0ICAgeWV0QW5vdGhlcklubGlu
ZWRDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE4ODoxNworICAgIDUgICBtYWtlSW5saW5hYmxlQ2Fs
bCBhdCBzdGFjay10cmFjZS5qczoxOTM6MzQKKyAgICA2ICAgZyBhdCBzdGFjay10cmFjZS5qczoy
MDI6MzQKKyAgICA3ICAgbWFwIGF0IFtuYXRpdmUgY29kZV0KKyAgICA4ICAgZ2xvYmFsIGNvZGUg
YXQgc3RhY2stdHJhY2UuanM6MjA1OjE2CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgdGhy
b3dFcnJvciBhdCBzdGFjay10cmFjZS5qczoxMzk6MjAKKyAgICAxICAgZ2V0dGVyMyBhdCBzdGFj
ay10cmFjZS5qczoxNjc6MTYKKyAgICAyICAgbm9uSW5saW5lYWJsZSBhdCBzdGFjay10cmFjZS5q
czoxNzk6MTcKKyAgICAzICAgaW5saW5lYWJsZSBhdCBzdGFjay10cmFjZS5qczoxODM6MjcKKyAg
ICA0ICAgeWV0QW5vdGhlcklubGluZWRDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE4ODoxNworICAg
IDUgICBtYWtlSW5saW5hYmxlQ2FsbCBhdCBzdGFjay10cmFjZS5qczoxOTM6MzQKKyAgICA2ICAg
ZyBhdCBzdGFjay10cmFjZS5qczoyMDI6MzQKKyAgICA3ICAgbWFwIGF0IFtuYXRpdmUgY29kZV0K
KyAgICA4ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MjA1OjE2CisKKy0tPiBTdGFj
ayBUcmFjZToKKyAgICAwICAgdGhyb3dFcnJvciBhdCBzdGFjay10cmFjZS5qczoxMzk6MjAKKyAg
ICAxICAgdmFsdWVPZiBhdCBzdGFjay10cmFjZS5qczoxNjM6MjcKKyAgICAyICAgZ2V0dGVyMyBh
dCBzdGFjay10cmFjZS5qczoxNjk6MTYKKyAgICAzICAgbm9uSW5saW5lYWJsZSBhdCBzdGFjay10
cmFjZS5qczoxNzk6MTcKKyAgICA0ICAgaW5saW5lYWJsZSBhdCBzdGFjay10cmFjZS5qczoxODM6
MjcKKyAgICA1ICAgeWV0QW5vdGhlcklubGluZWRDYWxsIGF0IHN0YWNrLXRyYWNlLmpzOjE4ODox
NworICAgIDYgICBtYWtlSW5saW5hYmxlQ2FsbCBhdCBzdGFjay10cmFjZS5qczoxOTM6MzQKKyAg
ICA3ICAgZyBhdCBzdGFjay10cmFjZS5qczoyMDI6MzQKKyAgICA4ICAgbWFwIGF0IFtuYXRpdmUg
Y29kZV0KKyAgICA5ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MjA1OjE2CisKKy0t
PiBTdGFjayBUcmFjZToKKyAgICAwICAgaCBhdCBzdGFjay10cmFjZS5qczoyMTM6MjQKKyAgICAx
ICAgbWFwIGF0IFtuYXRpdmUgY29kZV0KKyAgICAyICAgbWFwVGVzdCBhdCBzdGFjay10cmFjZS5q
czoyMjA6MTAKKyAgICAzICAgbWFwVGVzdERyaXZlciBhdCBzdGFjay10cmFjZS5qczoyMjY6MTYK
KyAgICA0ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MjMxOjE4CisKKy0tPiBTdGFj
ayBUcmFjZToKKyAgICAwICAgbWFwIGF0IFtuYXRpdmUgY29kZV0KKyAgICAxICAgaCBhdCBzdGFj
ay10cmFjZS5qczoyMTU6MjEKKyAgICAyICAgbWFwIGF0IFtuYXRpdmUgY29kZV0KKyAgICAzICAg
bWFwVGVzdCBhdCBzdGFjay10cmFjZS5qczoyMjA6MTAKKyAgICA0ICAgbWFwVGVzdERyaXZlciBh
dCBzdGFjay10cmFjZS5qczoyMjY6MTYKKyAgICA1ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJh
Y2UuanM6MjM3OjE4CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgdGhyb3dFcnJvciBhdCBz
dGFjay10cmFjZS5qczoxMzk6MjAKKyAgICAxICAgZGZnRnVuY3Rpb24gYXQgc3RhY2stdHJhY2Uu
anM6MjQ2OjE5CisgICAgMiAgIG1hcCBhdCBbbmF0aXZlIGNvZGVdCisgICAgMyAgIGdsb2JhbCBj
b2RlIGF0IHN0YWNrLXRyYWNlLmpzOjI1NToxOAorCistLT4gU3RhY2sgVHJhY2U6CisgICAgMCAg
IHRocm93RXJyb3IgYXQgc3RhY2stdHJhY2UuanM6MTM5OjIwCisgICAgMSAgIGRmZ0Z1bmN0aW9u
IGF0IHN0YWNrLXRyYWNlLmpzOjI0NjoxOQorICAgIDIgICBmIGF0IHN0YWNrLXRyYWNlLmpzOjI2
NDoxMAorICAgIDMgICBnbG9iYWwgY29kZSBhdCBzdGFjay10cmFjZS5qczoyNzA6NgorCistLT4g
U3RhY2sgVHJhY2U6CisgICAgMCAgIHdpbGxUaHJvdyBhdCBzdGFjay10cmFjZS5qczozMDg6MjgK
KyAgICAxICAgZGZnMSBhdCBzdGFjay10cmFjZS5qczozMTk6MTMKKyAgICAyICAgZGZnMiBhdCBz
dGFjay10cmFjZS5qczozMjM6OQorICAgIDMgICBkZmczIGF0IHN0YWNrLXRyYWNlLmpzOjMyNzo5
CisgICAgNCAgIGRmZ1Rlc3QgYXQgc3RhY2stdHJhY2UuanM6MjkzOjE0CisgICAgNSAgIGdsb2Jh
bCBjb2RlIGF0IHN0YWNrLXRyYWNlLmpzOjM2Njo4CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAw
ICAgd2lsbFRocm93RnVuYyBhdCBzdGFjay10cmFjZS5qczozMTM6NjkKKyAgICAxICAgZGZnNCBh
dCBzdGFjay10cmFjZS5qczozMzE6MjcKKyAgICAyICAgZGZnNSBhdCBzdGFjay10cmFjZS5qczoz
MzU6OQorICAgIDMgICBkZmc2IGF0IHN0YWNrLXRyYWNlLmpzOjMzOTo5CisgICAgNCAgIGRmZ1Rl
c3QgYXQgc3RhY2stdHJhY2UuanM6MjkzOjE0CisgICAgNSAgIGdsb2JhbCBjb2RlIGF0IHN0YWNr
LXRyYWNlLmpzOjM2Nzo4CisKKy0tPiBTdGFjayBUcmFjZToKKyAgICAwICAgaW5saW5lYWJsZVRo
cm93IGF0IHN0YWNrLXRyYWNlLmpzOjMwMjo0MAorICAgIDEgICB3aWxsVGhyb3dFdmVudHVhbGx5
IGF0IHN0YWNrLXRyYWNlLmpzOjMxMToyNAorICAgIDIgICBkZmc3IGF0IHN0YWNrLXRyYWNlLmpz
OjM0MzoxMworICAgIDMgICBkZmc4IGF0IHN0YWNrLXRyYWNlLmpzOjM0Nzo5CisgICAgNCAgIGRm
ZzkgYXQgc3RhY2stdHJhY2UuanM6MzUxOjkKKyAgICA1ICAgZGZnVGVzdCBhdCBzdGFjay10cmFj
ZS5qczoyOTM6MTQKKyAgICA2ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MzY4OjgK
KworLS0+IFN0YWNrIFRyYWNlOgorICAgIDAgICBpbmxpbmVhYmxlVGhyb3cgYXQgc3RhY2stdHJh
Y2UuanM6MzAyOjQwCisgICAgMSAgIHdpbGxUaHJvd0V2ZW50dWFsbHlGdW5jIGF0IHN0YWNrLXRy
YWNlLmpzOjMxNDo1OQorICAgIDIgICBkZmdhIGF0IHN0YWNrLXRyYWNlLmpzOjM1NTozNworICAg
IDMgICBkZmdiIGF0IHN0YWNrLXRyYWNlLmpzOjM1OTo5CisgICAgNCAgIGRmZ2MgYXQgc3RhY2st
dHJhY2UuanM6MzYzOjkKKyAgICA1ICAgZGZnVGVzdCBhdCBzdGFjay10cmFjZS5qczoyOTM6MTQK
KyAgICA2ICAgZ2xvYmFsIGNvZGUgYXQgc3RhY2stdHJhY2UuanM6MzY5OjgKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRl
c3RzL2pzL3NjcmlwdC10ZXN0cy9zdGFjay10cmFjZS5qcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhY2stdHJhY2UuanMJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvc3RhY2stdHJhY2UuanMJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzNzEgQEAKK2lmICghdGhpcy5hbGVydCkgeworICAgIGRlYnVnID0gcHJpbnQ7Cisg
ICAgZGVzY3JpcHRpb24gPSBwcmludDsKK30KKworZGVzY3JpcHRpb24oCisnVGhpcyB0ZXN0IGNo
ZWNrcyBzdGFjayB0cmFjZSBjb3JlY3RuZXNzIGluIHNwZWNpYWwgY2FzZXMuJworKTsKKworZnVu
Y3Rpb24gc3RhY2tUcmFjZUxpbmVGb3Ioc3RhY2tUcmFjZSwgZnJhbWVJbmRleCkgeworICAgIHZh
ciBpID0gZnJhbWVJbmRleDsKKyAgICB2YXIgaW5kZXhPZkF0ID0gc3RhY2tUcmFjZVtpXS5pbmRl
eE9mKCdAJykKKyAgICB2YXIgaW5kZXhPZkxhc3RTbGFzaCA9IHN0YWNrVHJhY2VbaV0ubGFzdElu
ZGV4T2YoJy8nKTsKKyAgICBpZiAoaW5kZXhPZkxhc3RTbGFzaCA9PSAtMSkKKyAgICAgICAgaW5k
ZXhPZkxhc3RTbGFzaCA9IGluZGV4T2ZBdAorICAgIHZhciBmdW5jdGlvbk5hbWUgPSBzdGFja1Ry
YWNlW2ldLnN1YnN0cmluZygwLCBpbmRleE9mQXQpOworICAgIHZhciBmaWxlTmFtZSA9IHN0YWNr
VHJhY2VbaV0uc3Vic3RyaW5nKGluZGV4T2ZMYXN0U2xhc2ggKyAxKTsKKyAgICByZXR1cm4gZnVu
Y3Rpb25OYW1lICsgIiBhdCAiICsgZmlsZU5hbWU7Cit9CisKK2Z1bmN0aW9uIHByaW50U3RhY2so
c3RhY2tUcmFjZSkgeworICAgIGRlYnVnKCItLT4gU3RhY2sgVHJhY2U6IikKKyAgICBzdGFja1Ry
YWNlID0gc3RhY2tUcmFjZS5zcGxpdCgiXG4iKTsKKyAgICB2YXIgbGVuZ3RoID0gTWF0aC5taW4o
c3RhY2tUcmFjZS5sZW5ndGgsIDEwMCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7
IGkrKykKKyAgICAgICAgZGVidWcoIiAgICAiICsgaSArICIgICAiICsgc3RhY2tUcmFjZUxpbmVG
b3Ioc3RhY2tUcmFjZSwgaSkpOworICAgIGRlYnVnKCcnKTsKK30KKworZnVuY3Rpb24gZHVtcFBh
dHRlcm4ocGF0dGVybikgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7
IGkrKykKKyAgICAgICAgZGVidWcoIiAgICAiICsgaSArICIgICAiICsgcGF0dGVybltpXSk7Cit9
CisKK2Z1bmN0aW9uIG1hdGNoZXNQYXR0ZXJuQXRMaW5lKHBhdHRlcm4sIHBhdHRlcm5JbmRleCwg
dHJhY2VMaW5lKSB7CisgICAgdmFyIHBhdHRlcm5MaW5lID0gcGF0dGVybltwYXR0ZXJuSW5kZXhd
OworICAgIHJldHVybiB0cmFjZUxpbmUuc2xpY2UoMCwgcGF0dGVybkxpbmUubGVuZ3RoKSA9PSBw
YXR0ZXJuTGluZTsKK30KKworZnVuY3Rpb24gbWF0Y2hQYXR0ZXJuKHBhdHRlcm4sIHRyYWNlTGlu
ZSkgeworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcGF0dGVybi5sZW5ndGg7IGkrKykgeworICAg
ICAgICBpZiAobWF0Y2hlc1BhdHRlcm5BdExpbmUocGF0dGVybiwgaSwgdHJhY2VMaW5lKSkKKyAg
ICAgICAgICAgIHJldHVybiBpOworICAgIH0KKyAgICByZXR1cm4gLTE7Cit9CisKK2Z1bmN0aW9u
IGNoZWNrU3RhY2tGb3JQYXR0ZXJuKHN0YWNrVHJhY2UsIHBhdHRlcm4pIHsKKyAgICBzdGFja1Ry
YWNlID0gc3RhY2tUcmFjZS5zcGxpdCgiXG4iKTsKKyAgICB2YXIgbGVuZ3RoID0gTWF0aC5taW4o
c3RhY2tUcmFjZS5sZW5ndGgsIDEwMCk7CisKKyAgICAvLyBHZXQgdGhlIG1hdGNoIGluIHRoZSBw
YXR0ZXJuIGZvciB0aGUgZmlyc3QgbGluZToKKyAgICB2YXIgZmlyc3RTdGFja1RyYWNlTGluZSA9
IHN0YWNrVHJhY2VMaW5lRm9yKHN0YWNrVHJhY2UsIDApOworICAgIHZhciBwYXR0ZXJuSW5kZXgg
PSBtYXRjaFBhdHRlcm4ocGF0dGVybiwgZmlyc3RTdGFja1RyYWNlTGluZSk7CisgICAgaWYgKHBh
dHRlcm5JbmRleCA8IDApIHsKKyAgICAgICAgZGVidWcoIi0tPiBTdGFjayBUcmFjZSBGQUlMRUQg
dG8gbWF0Y2ggcGF0dGVybjoiKQorICAgICAgICBkdW1wUGF0dGVybihwYXR0ZXJuKTsKKyAgICAg
ICAgZGVidWcoJycpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgZm9yICh2YXIgaSA9
IDE7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBwYXR0ZXJuSW5kZXggPSArK3BhdHRlcm5J
bmRleCAlIHBhdHRlcm4ubGVuZ3RoOworICAgICAgICB2YXIgdHJhY2VMaW5lID0gc3RhY2tUcmFj
ZUxpbmVGb3Ioc3RhY2tUcmFjZSwgaSk7CisgICAgICAgIGlmICghbWF0Y2hlc1BhdHRlcm5BdExp
bmUocGF0dGVybiwgcGF0dGVybkluZGV4LCB0cmFjZUxpbmUpKSB7CisgICAgICAgICAgICBkZWJ1
ZygiLS0+IFN0YWNrIFRyYWNlIEZBSUxFRCB0byBtYXRjaCBwYXR0ZXJuOiIpCisgICAgICAgICAg
ICBkdW1wUGF0dGVybihwYXR0ZXJuKTsKKyAgICAgICAgICAgIGRlYnVnKCcnKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIGRlYnVnKCItLT4gU3RhY2sgVHJh
Y2UgbWF0Y2hlcyBwYXR0ZXJuOiIpCisgICAgZHVtcFBhdHRlcm4ocGF0dGVybik7CisgICAgZGVi
dWcoJycpOworfQorCitmdW5jdGlvbiBob3N0VGhyb3dlcigpIHsgRWxlbWVudC5wcm90b3R5cGUu
YXBwZW5kQ2hpbGQuY2FsbCh7IH0sIFt7IH1dKTsgIH0KK2Z1bmN0aW9uIGNhbGxiYWNrZXIoZikg
eyBbMF0ubWFwKGYpOyB9CitmdW5jdGlvbiBvdXRlcihlcnJvck5hbWUpIHsgaW5uZXIoZXJyb3JO
YW1lKTsgfQorZnVuY3Rpb24gaW5uZXIoZXJyb3JOYW1lKSB7IHRocm93IG5ldyBFcnJvcigiRXJy
b3IgaW4gIiArIGVycm9yTmFtZSk7IH0KK2Z1bmN0aW9uIGV2YWxlcihjb2RlKSB7IGV2YWwoY29k
ZSk7IH0KK2Z1bmN0aW9uIG5vcm1hbE91dGVyKCkgeyBub3JtYWxJbm5lcigpOyB9CitmdW5jdGlv
biBub3JtYWxJbm5lcigpIHsgaWYodGhpc1ZhckRvZXNudEV4aXN0KSBmYWlsSWZUcnVlKCJzaG91
bGRGYWlsQmVmb3JlVGhpcyIpIH07CitmdW5jdGlvbiBzY3JpcHRlcklubmVyKCkgeyBodG1sSW5u
ZXIoKTsgfQorZnVuY3Rpb24gc2NyaXB0ZXJPdXRlcigpIHsgaHRtbE91dGVyKCk7IH0KKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gRXhwZWN0ZWQgZnVuY3Rpb25zIGluIHN0YWNrIHRyYWNlCisvLyBOb3JtYWwg
Q2FzZQordHJ5IHsgbm9ybWFsT3V0ZXIoKSB9IGNhdGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFj
aykgfSAgICAgICAgICAgICAgICAgICAgIC8vIG5vcm1hbE91dGVyIC0+IG5vcm1hbElubmVyCisK
Ky8vIEV2YWwgQ2FzZQordHJ5IHsgZXZhbGVyKCJpbm5lcignaW5uZXIgZXZhbCcpOyIpOyB9IGNh
dGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFjaykgfSAgIC8vIGV2YWxlciAtPiBldmFsIC0+IGlu
bmVyCit0cnkgeyBldmFsZXIoIm91dGVyKCdvdXRlciBldmFsJyk7Iik7IH0gY2F0Y2ggKGUpIHsg
cHJpbnRTdGFjayhlLnN0YWNrKSB9ICAgLy8gZXZhbGVyIC0+IGV2YWwgLT4gb3V0ZXIgLT4gaW5u
ZXIKKworLy8gRnVuY3Rpb24gQ2FsbGJhY2sgQ2FzZQordHJ5IHsgY2FsbGJhY2tlcihpbm5lcign
aW5uZXIgbWFwJykpOyB9IGNhdGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFjayk7IH0gICAvLyBj
YWxsYmFja2VyIC0+IG1hcCAtPiBpbm5lcgordHJ5IHsgY2FsbGJhY2tlcihvdXRlcignb3V0ZXIg
bWFwJykpOyB9IGNhdGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFjayk7IH0gICAvLyBjYWxsYmFj
a2VyIC0+IG1hcCAtPiBvdXRlciAtPiBpbm5lcgorCisvLyBIb3N0IENvZGUgQ2FzZQordHJ5IHsg
aG9zdFRocm93ZXIoKTsgfSBjYXRjaCAoZSkgeyBwcmludFN0YWNrKGUuc3RhY2spOyB9ICAgICAg
ICAgICAgICAgICAgICAvLyBob3N0VGhyb3dlcgorCit0cnkgeyBzY3JpcHRlcklubmVyKCk7IH0g
Y2F0Y2ggKGUpIHsgcHJpbnRTdGFjayhlLnN0YWNrKSB9ICAgICAgICAgICAgICAgICAgIC8vIHBy
b2dyYW0gLT4gc2NyaXB0ZXIgLT4gaW5uZXIKK3RyeSB7IHNjcmlwdGVyT3V0ZXIoKTsgfSBjYXRj
aCAoZSkgeyBwcmludFN0YWNrKGUuc3RhY2spIH0gICAgICAgICAgICAgICAgICAgLy8gcHJvZ3Jh
bSAtPiBzY3JpcHRlciAtPiBvdXRlciAtPiBpbm5lcgorCitmdW5jdGlvbiBzZWxmUmVjdXJzaXZl
MSgpIHsgc2VsZlJlY3Vyc2l2ZTEoKTsKK30KKworCit0cnkgeyBzZWxmUmVjdXJzaXZlMSgpOyB9
IGNhdGNoIChlKSB7IHByaW50U3RhY2soZS5zdGFjaykgfSAgICAgICAgICAgICAgICAgICAvLyBz
ZWxmUmVjdXJzaXZlMSAtPiBzZWxmUmVjdXJzaXZlMSAtPiBzZWxmUmVjdXJzaXZlMSAtPiBzZWxm
UmVjdXJzaXZlMSAuLi4KKworZnVuY3Rpb24gc2VsZlJlY3Vyc2l2ZTIoKSB7CisgICAgLy8gQSBs
aXR0bGUgd29yayB0byBtYWtlIHRoZSBERkcga2ljayBpbgorICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgMTA7IGkrKykgeworICAgICAgICBpZiAoaSA9PSA5KQorICAgICAgICAgICAgc2VsZlJlY3Vy
c2l2ZTIoKTsgCisgICAgfQorfQorCit0cnkgeyBzZWxmUmVjdXJzaXZlMigpOyB9IGNhdGNoIChl
KSB7IHByaW50U3RhY2soZS5zdGFjaykgfSAgICAgICAgICAgICAgICAgICAvLyBzZWxmUmVjdXJz
aXZlMiAtPiBzZWxmUmVjdXJzaXZlMiAtPiBzZWxmUmVjdXJzaXZlMiAtPiBzZWxmUmVjdXJzaXZl
MiAuLi4KKworZnVuY3Rpb24gc2VsZlJlY3Vyc2l2ZTMoKSB7CisgICAgZXZhbCgic2VsZlJlY3Vy
c2l2ZTMoKSIpOworfQorCit0cnkgeworICAgIHNlbGZSZWN1cnNpdmUzKCk7Cit9IGNhdGNoIChl
KSB7CisgICAgdmFyIHBhdHRlcm4gPSBbCisgICAgICAgICIgYXQgZXZhbCBjb2RlIiwKKyAgICAg
ICAgImV2YWwgYXQgW25hdGl2ZSBjb2RlXSIsCisgICAgICAgICJzZWxmUmVjdXJzaXZlMyBhdCBz
dGFjay10cmFjZS5qcyIKKyAgICBdOworICAgIGNoZWNrU3RhY2tGb3JQYXR0ZXJuKGUuc3RhY2ss
IHBhdHRlcm4pOworfQorCit2YXIgY2FsbENvdW50ID0gMDsKKworZnVuY3Rpb24gdGhyb3dFcnJv
cigpIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoKTsKK30KKwordmFyIG9iamVjdCA9IHsKKyAgICBn
ZXQgZ2V0dGVyMSgpIHsKKyAgICAgICAgdmFyIG8gPSB7CisgICAgICAgICAgICB2YWx1ZU9mOiBm
dW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB0aHJvd0Vycm9yKCkKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfTsKKyAgICAgICAgK287CisgICAgfSwKKyAgICBnZXQgZ2V0dGVyMigpIHsKKyAg
ICAgICAgdmFyIG8gPSB7CisgICAgICAgICAgICB2YWx1ZU9mOiB0aHJvd0Vycm9yCisgICAgICAg
IH07CisgICAgICAgICtvOworICAgIH0sCisgICAgZ2V0IGdldHRlcjMoKSB7CisgICAgICAgIHZh
ciBvMSA9IHsKKyAgICAgICAgICAgIHZhbHVlT2Y6IHRocm93RXJyb3IKKyAgICAgICAgfTsKKyAg
ICAgICAgdmFyIG8yID0geworICAgICAgICAgICAgdmFsdWVPZjogZnVuY3Rpb24gKCkgeworICAg
ICAgICAgICAgICAgIHRocm93RXJyb3IoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKyAg
ICAgICAgaWYgKGNhbGxDb3VudCA9PSA5OTk4KQorICAgICAgICAgICAgK28xOworICAgICAgICBp
ZiAoY2FsbENvdW50ID09IDk5OTkpCisgICAgICAgICAgICArbzI7CisgICAgfSwKKyAgICBub25J
bmxpbmVhYmxlIDogZnVuY3Rpb24gKCkgeworICAgICAgICBpZiAoMCkgcmV0dXJuIFthcmd1bWVu
dHMsIGZ1bmN0aW9uKCl7fV07CisgICAgICAgICsrY2FsbENvdW50OworICAgICAgICBpZiAoY2Fs
bENvdW50ID09IDEpIHsKKyAgICAgICAgICAgIHRoaXMuZ2V0dGVyMTsKKyAgICAgICAgfSBlbHNl
IGlmIChjYWxsQ291bnQgPT0gMikgeworICAgICAgICAgICAgdGhpcy5nZXR0ZXIyOworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgdGhpcy5nZXR0ZXIzOworICAgICAgICB9CisgICAgfSwK
KyAgICBpbmxpbmVhYmxlIDogZnVuY3Rpb24gKCkgeworICAgICAgICB0aGlzLm5vbklubGluZWFi
bGUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHlldEFub3RoZXJJbmxpbmVkQ2FsbChvKSB7Cisg
ICAgby5pbmxpbmVhYmxlKCk7Cit9CisKK2Z1bmN0aW9uIG1ha2VJbmxpbmFibGVDYWxsKG8pIHsK
KyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDAwOyBpKyspIHsKKyAgICAgICAgbmV3IHlldEFu
b3RoZXJJbmxpbmVkQ2FsbChvKTsKKyAgICB9Cit9Citmb3IgKHZhciBrID0gMDsgayA8IDQ7IGsr
KykgeworICAgIHRyeSB7CisgICAgICAgIGZ1bmN0aW9uIGcoKSB7CisgICAgICAgICAgICB2YXIg
aiA9IDA7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkrKykgeworICAg
ICAgICAgICAgICAgIGorKzsKKyAgICAgICAgICAgICAgICBtYWtlSW5saW5hYmxlQ2FsbChvYmpl
Y3QpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIFsxXS5tYXAoZyk7CisgICAg
fSBjYXRjaCAoZSkgeworICAgICAgICBwcmludFN0YWNrKGUuc3RhY2spOworICAgIH0KK30KKwor
ZnVuY3Rpb24gaCgpIHsKKyAgICBpZiAoY2FsbENvdW50KysgPT0gMTAwMCkKKyAgICAgICAgdGhy
b3cgbmV3IEVycm9yKCk7CisgICAgaWYgKGNhbGxDb3VudCA+IDEwMDApIHsKKyAgICAgICAgW10u
bWFwLmFwcGx5KHVuZGVmaW5lZCwgdGhyb3dFcnJvcik7CisgICAgfQorfQorCitmdW5jdGlvbiBt
YXBUZXN0KGEpIHsKKyAgICBhLm1hcChoKTsKK30KKworZnVuY3Rpb24gbWFwVGVzdERyaXZlcigp
IHsKKyAgICB2YXIgYSA9IFsxLDIsM107CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCAyMDAwOyBp
KyspCisgICAgICAgIG1hcFRlc3QoYSk7Cit9CisKK3RyeSB7CisgICAgY2FsbENvdW50ID0gMDsK
KyAgICBtYXBUZXN0RHJpdmVyKCkKK30gY2F0Y2goZSkgeworICAgIHByaW50U3RhY2soZS5zdGFj
ayk7Cit9CisKK3RyeSB7CisgICAgbWFwVGVzdERyaXZlcigpCit9IGNhdGNoKGUpIHsKKyAgICBw
cmludFN0YWNrKGUuc3RhY2spOworfQorCit2YXIgZGZnRnVuY3Rpb25TaG91bGRUaHJvdyA9IGZh
bHNlOworZnVuY3Rpb24gZGZnRnVuY3Rpb24oKSB7IAorICAgIGlmIChkZmdGdW5jdGlvblNob3Vs
ZFRocm93KSB7IAorICAgICAgICBkZmdGdW5jdGlvblNob3VsZFRocm93ID0gZmFsc2U7IAorICAg
ICAgICB0aHJvd0Vycm9yKCk7CisgICAgfQorfQorCitmb3IgKHZhciBrID0gMDsgayA8IDEwMDA7
IGsrKykKKyAgICBkZmdGdW5jdGlvbigpOworCit0cnkgeworICAgIGRmZ0Z1bmN0aW9uU2hvdWxk
VGhyb3cgPSB0cnVlOworICAgIFsxLDIsMyw0XS5tYXAoZGZnRnVuY3Rpb24pOworfSBjYXRjaCAo
ZSkgeworICAgIHByaW50U3RhY2soZS5zdGFjayk7Cit9CisKK3RyeSB7IAorICAgIHZhciBvID0g
eyB9OworICAgIG8uX19kZWZpbmVHZXR0ZXJfXygiZyIsIGRmZ0Z1bmN0aW9uKTsKKyAgICBmdW5j
dGlvbiBmKG8pIHsKKyAgICAgICAgby5nOworICAgIH0KKyAgICBmb3IgKHZhciBrID0gMDsgayA8
IDEwMDA7IGsrKykKKyAgICAgICAgZihvKTsKKyAgICAKKyAgICBkZmdGdW5jdGlvblNob3VsZFRo
cm93ID0gdHJ1ZTsKKyAgICBmKG8pOworCit9IGNhdGNoIChlKSB7CisgICAgcHJpbnRTdGFjayhl
LnN0YWNrKTsKK30KKwordmFyIHNvbWVWYWx1ZSA9IG51bGw7CisKK2Z1bmN0aW9uIGNhbGxOb25D
YWxsYWJsZSgpIHsKKyAgICBzb21lVmFsdWUoKTsKK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCAx
MDA7IGkrKykgeworICAgIHRyeSB7CisgICAgICAgIGNhbGxOb25DYWxsYWJsZSgpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGRmZ1Rlc3QoZikgeworICAgIGRmZ0Nv
dW50ID0gMDsKKyAgICB3aGlsZSAoZGZnQ291bnQrKyA8IDEwMDApIHsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgIGYoKTsKKyAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgcHJp
bnRTdGFjayhlLnN0YWNrKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQor
fQorCitmdW5jdGlvbiBpbmxpbmVhYmxlVGhyb3coKSB7CisgICAgaWYgKGRmZ0NvdW50ID4gNTAw
KSB0aHJvdyBuZXcgRXJyb3IoKTsKK30KKwordmFyIGRmZ1RoaW5nID0geworICAgIGdldCB3aWxs
VGhyb3coKSB7CisgICAgICAgIGlmIChkZmdDb3VudCA+IDUwMCkKKyAgICAgICAgICAgIHRocm93
IG5ldyBFcnJvcigpOworICAgIH0sCisgICAgZ2V0IHdpbGxUaHJvd0V2ZW50dWFsbHkoKSB7Cisg
ICAgICAgIGlubGluZWFibGVUaHJvdygpOworICAgIH0sCisgICAgd2lsbFRocm93RnVuYzogZnVu
Y3Rpb24gKCkgeyBpZiAoZGZnQ291bnQgPiA1MDApIHRocm93IG5ldyBFcnJvcigpOyB9LAorICAg
IHdpbGxUaHJvd0V2ZW50dWFsbHlGdW5jOiBmdW5jdGlvbiAoKSB7IGlubGluZWFibGVUaHJvdygp
OyB9Cit9CitkZmdUaGluZy5fX2RlZmluZUdldHRlcl9fKCJob3N0V2lsbFRocm93IiwgaG9zdFRo
cm93ZXIpOworCitmdW5jdGlvbiBkZmcxKCkgeworICAgIGRmZ1RoaW5nLndpbGxUaHJvdworfQor
CitmdW5jdGlvbiBkZmcyKCkgeworICAgIGRmZzEoKTsKK30KKworZnVuY3Rpb24gZGZnMygpIHsK
KyAgICBkZmcyKCk7Cit9CisKK2Z1bmN0aW9uIGRmZzQoKSB7CisgICAgZGZnVGhpbmcud2lsbFRo
cm93RnVuYygpOworfQorCitmdW5jdGlvbiBkZmc1KCkgeworICAgIGRmZzQoKTsKK30KKworZnVu
Y3Rpb24gZGZnNigpIHsKKyAgICBkZmc1KCk7Cit9CisKK2Z1bmN0aW9uIGRmZzcoKSB7CisgICAg
ZGZnVGhpbmcud2lsbFRocm93RXZlbnR1YWxseQorfQorCitmdW5jdGlvbiBkZmc4KCkgeworICAg
IGRmZzcoKTsKK30KKworZnVuY3Rpb24gZGZnOSgpIHsKKyAgICBkZmc4KCk7Cit9CisKK2Z1bmN0
aW9uIGRmZ2EoKSB7CisgICAgZGZnVGhpbmcud2lsbFRocm93RXZlbnR1YWxseUZ1bmMoKTsKK30K
KworZnVuY3Rpb24gZGZnYigpIHsKKyAgICBkZmdhKCk7Cit9CisKK2Z1bmN0aW9uIGRmZ2MoKSB7
CisgICAgZGZnYigpOworfQorCitkZmdUZXN0KGRmZzMpCitkZmdUZXN0KGRmZzYpCitkZmdUZXN0
KGRmZzkpCitkZmdUZXN0KGRmZ2MpCisKK3N1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cg==
</data>
<flag name="review"
          id="277873"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>