<?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>199651</bug_id>
          
          <creation_ts>2019-07-09 19:08:07 -0700</creation_ts>
          <short_desc>[WHLSL] Import more JS reference spec tests</short_desc>
          <delta_ts>2019-07-11 07:37:53 -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>WebGPU</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>199595</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jonlee</cc>
    
    <cc>justin_fan</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rmorisset</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1551569</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-09 19:08:07 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551570</commentid>
    <comment_count>1</comment_count>
      <attachid>373808</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-09 19:12:23 -0700</bug_when>
    <thetext>Created attachment 373808
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551575</commentid>
    <comment_count>2</comment_count>
      <attachid>373811</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-09 19:32:35 -0700</bug_when>
    <thetext>Created attachment 373811
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551759</commentid>
    <comment_count>3</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-10 11:49:29 -0700</bug_when>
    <thetext>Rubber stamped by Robin</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551760</commentid>
    <comment_count>4</comment_count>
      <attachid>373852</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-07-10 11:50:32 -0700</bug_when>
    <thetext>Created attachment 373852
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551788</commentid>
    <comment_count>5</comment_count>
      <attachid>373852</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 13:02:01 -0700</bug_when>
    <thetext>Comment on attachment 373852
patch for landing

Clearing flags on attachment: 373852

Committed r247319: &lt;https://trac.webkit.org/changeset/247319&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551789</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-07-10 13:02:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551791</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-10 13:03:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/52908330&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551864</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-07-10 15:52:21 -0700</bug_when>
    <thetext>It looks like the new test added in https://trac.webkit.org/changeset/247319/webkit

webgpu/whlsl-builtin-vectors-2.html

is timing out.

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=webgpu%2Fwhlsl-builtin-vectors-2.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1551890</commentid>
    <comment_count>9</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-07-10 17:07:04 -0700</bug_when>
    <thetext>Same asked offline for me to mark the test slow. Marked as slow for Mojave Debug WK2 in:
https://trac.webkit.org/changeset/247333/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1552053</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-07-11 07:37:53 -0700</bug_when>
    <thetext>Marking slow has allowed the test to start passing.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373808</attachid>
            <date>2019-07-09 19:12:23 -0700</date>
            <delta_ts>2019-07-09 19:32:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>40300</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTCBJbXBvcnQgbW9yZSBKUyByZWZlcmVu
Y2Ugc3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5NjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ3B1L3dobHNsLWdldHRlci1zZXR0ZXItdHlwZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWxvb3BzLXNwZWMtdGVzdHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0cy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbnVsbC1hcnJheS1yZWYuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3JpcHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC13cm9uZy1hcmd1bWVu
dC1sZW5ndGguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVz
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXSExTTF0gSW1wb3J0IGFub3RoZXIgcm91bmQgb2YgSlMgc3BlYyB0
ZXN0cwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy0yLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYnVpbHRp
bi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3RvckdldHRlcnMgCitQQVNTIGJ1aWx0
aW5WZWN0b3JTZXR0ZXJzIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYnVpbHRp
bi12ZWN0b3JzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
YnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9vcHMuPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citj
b25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7CisgICAgInVpbnQi
OiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rpb24sCisgICAgImZs
b2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMgPSBbICJ1aW50Iiwg
ImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Citjb25zdCBlbGVt
ZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFsaXplckxpc3QgPSBb
IDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9yR2V0dGVycyA9IGFzeW5j
ICgpID0+Cit7CisKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQgc3JjID0gIiI7CisgICAg
Zm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAgIGZvciAobGV0IHNpemUg
b2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5hbWV9JHtzaXpl
fSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCR7dHlwZU5hbWV9ICR7
ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1lfSR7c2l6ZX0o
JHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB4LiR7ZWxlbWVudHNbaV19OworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAgICAg
ICB0ZXN0cy5wdXNoKHsgdHlwZTogdHlwZU5hbWUsIG5hbWU6IGZ1bmN0aW9uTmFtZSwgZXhwZWN0
YXRpb246IGluaXRpYWxpemVyTGlzdFtpXSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCBwcm9ncmFtID0gc3JjOworICAgIGZvciAobGV0IHRlc3Qgb2YgdGVz
dHMpIHsKKyAgICAgICAgY29uc3QgY2hlY2tGdW5jID0gY2hlY2tGdW5jc1t0ZXN0LnR5cGVdOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNoZWNrRnVuYyhwcm9ncmFtLCB0ZXN0Lm5hbWUs
IFtdKSwgdGVzdC5leHBlY3RhdGlvbik7CisgICAgfQorfTsKKword2hsc2xUZXN0cy5idWlsdGlu
VmVjdG9yU2V0dGVycyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHRlc3RzID0gW107CisgICAg
bGV0IHNyYyA9ICIiOworICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVOYW1lcykgeworICAg
ICAgICBmb3IgKGxldCBzaXplIG9mIHNpemVzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9
IGAke3R5cGVOYW1lfSR7c2l6ZX0ke2VsZW1lbnRzW2ldfWA7CisgICAgICAgICAgICAgICAgc3Jj
ICs9IGAke3R5cGVOYW1lfSAke2Z1bmN0aW9uTmFtZX0oKQorICAgICAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHlwZU5hbWV9JHtzaXplfSB4ID0g
JHt0eXBlTmFtZX0ke3NpemV9KCR7aW5pdGlhbGl6ZXJMaXN0LnNsaWNlKDAsIHNpemUpLmpvaW4o
IiwgIil9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LiR7ZWxlbWVudHNbaV19ID0g
MzQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHguJHtlbGVtZW50c1tpXX07
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBgOwor
ICAgICAgICAgICAgICAgIHRlc3RzLnB1c2goeyB0eXBlOiB0eXBlTmFtZSwgbmFtZTogZnVuY3Rp
b25OYW1lLCBleHBlY3RhdGlvbjogMzQgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgcHJvZ3JhbSA9IHNyYzsKKyAgICBmb3IgKGxldCB0ZXN0IG9mIHRlc3Rz
KSB7CisgICAgICAgIGNvbnN0IGNoZWNrRnVuYyA9IGNoZWNrRnVuY3NbdGVzdC50eXBlXTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjaGVja0Z1bmMocHJvZ3JhbSwgdGVzdC5uYW1lLCBb
XSksIHRlc3QuZXhwZWN0YXRpb24pOworICAgIH0KK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1
aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3RvckluZGV4U2V0
dGVycyAKK1BBU1MgYnVpbHRpblZlY3RvcnMgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9v
cHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7CisgICAg
InVpbnQiOiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rpb24sCisg
ICAgImZsb2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMgPSBbICJ1
aW50IiwgImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Citjb25z
dCBlbGVtZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFsaXplckxp
c3QgPSBbIDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ySW5kZXhTZXR0
ZXJzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQgc3JjID0g
IiI7CisgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAgIGZvciAo
bGV0IHNpemUgb2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6
ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5h
bWV9JHtzaXplfSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCR7dHlw
ZU5hbWV9ICR7ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1l
fSR7c2l6ZX0oJHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhbJHtpfV0gPSAzNDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4geFske2l9XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAgICAgICAgICAgdGVzdHMucHVzaCh7
IHR5cGU6IHR5cGVOYW1lLCBuYW1lOiBmdW5jdGlvbk5hbWUsIGV4cGVjdGF0aW9uOiAzNCB9KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBwcm9ncmFtID0gc3Jj
OworICAgIGZvciAobGV0IHRlc3Qgb2YgdGVzdHMpIHsKKyAgICAgICAgY29uc3QgY2hlY2tGdW5j
ID0gY2hlY2tGdW5jc1t0ZXN0LnR5cGVdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNo
ZWNrRnVuYyhwcm9ncmFtLCB0ZXN0Lm5hbWUsIFtdKSwgdGVzdC5leHBlY3RhdGlvbik7CisgICAg
fQorfTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ycyA9IGFzeW5jICgpID0+Cit7CisgICAg
bGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAg
ICBpbnQyIGEgPSBpbnQyKDMsIDQpOworICAgICAgICAgICAgcmV0dXJuIGFbMF07CisgICAgICAg
IH0KKyAgICAgICAgaW50IGZvbzIoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQyIGEgPSBp
bnQyKDMsIDQpOworICAgICAgICAgICAgaW50MyBiID0gaW50MyhhLCA1KTsKKyAgICAgICAgICAg
IHJldHVybiBiWzFdOworICAgICAgICB9CisgICAgICAgIGludCBmb28zKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaW50MyBhID0gaW50MygzLCA0LCA1KTsKKyAgICAgICAgICAgIGludDQgYiA9
IGludDQoNiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDIgYSA9IGludDIoMywgNCk7
CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDUsIDYpOworICAgICAgICAgICAgaW50NCBjID0g
aW50NChhLCBiKTsKKyAgICAgICAgICAgIHJldHVybiBjWzJdOworICAgICAgICB9CisgICAgICAg
IGJvb2wgZm9vNSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDQgYSA9IGludDQoMywgNCwg
NSwgNik7CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDQsIDUpOworICAgICAgICAgICAgaW50
NCBjID0gaW50NCgzLCBiLCA2KTsKKyAgICAgICAgICAgIHJldHVybiBhID09IGM7CisgICAgICAg
IH0KKyAgICAgICAgYm9vbCBmb282KCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50MiBhID0g
aW50Mig0LCA1KTsKKyAgICAgICAgICAgIGludDMgYiA9IGludDMoMywgYSk7CisgICAgICAgICAg
ICBpbnQzIGMgPSBpbnQzKDMsIDQsIDYpOworICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvb3UoKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50
MiBhID0gdWludDIoMywgNCk7CisgICAgICAgICAgICByZXR1cm4gYVswXTsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvb3UyKCkKKyAgICAgICAgeworICAgICAgICAgICAgdWludDIgYSA9IHVp
bnQyKDMsIDQpOworICAgICAgICAgICAgdWludDMgYiA9IHVpbnQzKGEsIDUpOworICAgICAgICAg
ICAgcmV0dXJuIGJbMV07CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb291MygpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHVpbnQzIGEgPSB1aW50MygzLCA0LCA1KTsKKyAgICAgICAgICAgIHVp
bnQ0IGIgPSB1aW50NCg2LCBhKTsKKyAgICAgICAgICAgIHJldHVybiBiWzFdOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vdTQoKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50MiBhID0g
dWludDIoMywgNCk7CisgICAgICAgICAgICB1aW50MiBiID0gdWludDIoNSwgNik7CisgICAgICAg
ICAgICB1aW50NCBjID0gdWludDQoYSwgYik7CisgICAgICAgICAgICByZXR1cm4gY1syXTsKKyAg
ICAgICAgfQorICAgICAgICBib29sIGZvb3U1KCkKKyAgICAgICAgeworICAgICAgICAgICAgdWlu
dDQgYSA9IHVpbnQ0KDMsIDQsIDUsIDYpOworICAgICAgICAgICAgdWludDIgYiA9IHVpbnQyKDQs
IDUpOworICAgICAgICAgICAgdWludDQgYyA9IHVpbnQ0KDMsIGIsIDYpOworICAgICAgICAgICAg
cmV0dXJuIGEgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb3U2KCkKKyAgICAgICAg
eworICAgICAgICAgICAgdWludDIgYSA9IHVpbnQyKDQsIDUpOworICAgICAgICAgICAgdWludDMg
YiA9IHVpbnQzKDMsIGEpOworICAgICAgICAgICAgdWludDMgYyA9IHVpbnQzKDMsIDQsIDYpOwor
ICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb29m
KCkKKyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsKKyAg
ICAgICAgICAgIHJldHVybiBhWzBdOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvb2YyKCkK
KyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsKKyAgICAg
ICAgICAgIGZsb2F0MyBiID0gZmxvYXQzKGEsIDUuKTsKKyAgICAgICAgICAgIHJldHVybiBiWzFd
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvb2YzKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgZmxvYXQzIGEgPSBmbG9hdDMoMy4sIDQuLCA1Lik7CisgICAgICAgICAgICBmbG9hdDQgYiA9
IGZsb2F0NCg2LiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb29mNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZsb2F0MiBhID0gZmxv
YXQyKDMuLCA0Lik7CisgICAgICAgICAgICBmbG9hdDIgYiA9IGZsb2F0Mig1LiwgNi4pOworICAg
ICAgICAgICAgZmxvYXQ0IGMgPSBmbG9hdDQoYSwgYik7CisgICAgICAgICAgICByZXR1cm4gY1sy
XTsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb2Y1KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgZmxvYXQ0IGEgPSBmbG9hdDQoMy4sIDQuLCA1LiwgNi4pOworICAgICAgICAgICAgZmxvYXQy
IGIgPSBmbG9hdDIoNC4sIDUuKTsKKyAgICAgICAgICAgIGZsb2F0NCBjID0gZmxvYXQ0KDMuLCBi
LCA2Lik7CisgICAgICAgICAgICByZXR1cm4gYSA9PSBjOworICAgICAgICB9CisgICAgICAgIGJv
b2wgZm9vZjYoKQorICAgICAgICB7CisgICAgICAgICAgICBmbG9hdDIgYSA9IGZsb2F0Mig0Liwg
NS4pOworICAgICAgICAgICAgZmxvYXQzIGIgPSBmbG9hdDMoMy4sIGEpOworICAgICAgICAgICAg
ZmxvYXQzIGMgPSBmbG9hdDMoMy4sIDQuLCA2Lik7CisgICAgICAgICAgICByZXR1cm4gYiA9PSBj
OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbXSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbFVpbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwgNCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJmb291MyIs
IFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dy
YW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1
bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdKSwgdHJ1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NiIsIFtdKSwgZmFsc2UpOworICAg
IGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBb
XSksIDMpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3Jh
bSwgImZvb2YyIiwgW10pLCA0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxGbG9hdEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mMyIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsRmxvYXRGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBbXSksIHRy
dWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vZjYiLCBbXSksIGZhbHNlKTsKK307CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0
dGVyLXR5cGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIGdldHRlclR5cGUgCitQQVNTIHNl
dHRlclR5cGUgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVy
LXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZ2V0dGVy
LXNldHRlci10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWdldHRlci1zZXR0ZXItdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9vcHMuPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25z
dCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuZ2V0dGVyVHlwZSA9IGFzeW5jICgpID0+
IHsKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueCh0aHJlYWQg
aW50W10gZm9vKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOworICAgICAg
ICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGludCBvcGVyYXRv
ci54KGludFszXSBmb28pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29bMF07Cisg
ICAgICAgIH0KKyAgICBgKTsgCisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgaW50IG9w
ZXJhdG9yW10odGhyZWFkIGludFtdIGZvbywgaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gZm9vW2luZGV4XTsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueChpbnRbM10gZm9vKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3
YWl0IGNoZWNrRmFpbChgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7
CisgICAgICAgIH0KKyAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludDQgaW5kZXgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29baW5kZXgueF07CisgICAgICAgIH0K
KyAgICBgKTsgCit9OworCit3aGxzbFRlc3RzLnNldHRlclR5cGUgPSBhc3luYyAoKSA9PiB7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgdGhyZWFkIGludFtdIG9wZXJhdG9yLng9KHRo
cmVhZCBpbnRbXSBmb28sIHVpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZv
bzsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBp
bnRbM10gb3BlcmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFp
bChgCisgICAgICAgIHRocmVhZCBpbnRbXSBvcGVyYXRvcltdPSh0aHJlYWQgaW50W10gZm9vLCB1
aW50IHgsIHVpbnQgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZvbzsKKyAgICAg
ICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnRbM10gb3Bl
cmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAg
ICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgIH0KKyAgICAgICAg
Rm9vIG9wZXJhdG9yW109KEZvbyBmb28sIGZsb2F0NCB5LCB1aW50IHopCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgIGludCB4OworICAg
ICAgICB9CisgICAgICAgIGludCBvcGVyYXRvci55KEZvbyBmb28pCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgICAgICBGb28gb3BlcmF0b3IueT0o
Rm9vIGZvbywgaW50NCB4KQorICAgICAgICB7CisgICAgICAgICAgICBGb28gcmVzdWx0OworICAg
ICAgICAgICAgZm9vLnggPSB4Lng7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICB9CisgICAgYCk7IAorfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwv
aHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvb3BzLXNwZWMtdGVzdHMt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sb29w
cy1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0cy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0IEBACisKK1BBU1MgZG9XaGlsZSAKK1BBU1Mgc2ltcGxlV2hpbGUgCisKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sb29wcy1zcGVjLXRlc3RzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvb3BzLXNwZWMtdGVzdHMuaHRtbAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBsb29wcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3do
bHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1
bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKwor
d2hsc2xUZXN0cy5kb1doaWxlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAK
KyAgICAgICAgaW50IGZvbzEoaW50IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludCB5ID0g
NzsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICB5ID0gODsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIH0gd2hpbGUgKHggPCAxMCk7CisgICAgICAgICAgICBy
ZXR1cm4geTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMihpbnQgeCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaW50IHkgPSA3OworICAgICAgICAgICAgZG8geworICAgICAgICAgICAgICAg
IHkgPSA4OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfSB3aGlsZSAoeSA9
PSA3KTsKKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9CisgICAgICAgIGludCBmb28z
KGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc3VtID0gMDsKKyAgICAgICAgICAg
IGRvIHsKKyAgICAgICAgICAgICAgICBpZiAoeCA9PSAxMSkgeworICAgICAgICAgICAgICAgICAg
ICB4ID0gMTU7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAg
IH0KKyAgICAgICAgICAgICAgICBzdW0gPSBzdW0gKyB4OworICAgICAgICAgICAgICAgIHggPSB4
ICsgMTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHggPCAxMyk7CisgICAgICAgICAgICByZXR1cm4g
c3VtOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KDEpXSksIDgpOworICAgIGFzc2VydF9l
cXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW21ha2VJbnQoMTEp
XSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yIiwgW21ha2VJbnQoMSldKSwgOCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
SW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUludCg5KV0pLCAxOSk7Cit9CisKK3do
bHNsVGVzdHMuc2ltcGxlV2hpbGUgPSBhc3luYyAoKSA9PgoreworICAgIGxldCBwcm9ncmFtID0g
YAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAo
eCA8IDEzKQorICAgICAgICAgICAgICAgIHggPSB4ICogMjsKKyAgICAgICAgICAgIHJldHVybiB4
OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMSldKSwgMTYpOworfQorCitydW5UZXN0cyh3
aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IGxvb3Bz
LjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLmRlcmVmZXJlbmNlRGVmYXVs
dE51bGxBcnJheVJlZiA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAg
ICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICB0aHJlYWQgaW50W10gcDsKKyAg
ICAgICAgICAgIHJldHVybiBwWzBdOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1
YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKK30KKwor
d2hsc2xUZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJbnRMaXRlcmFsID0gYXN5
bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbygpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSBwID0gbnVsbDsKKyAgICAgICAgICAgIHJl
dHVybiBwWzBdOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKK30KKword2hsc2xUZXN0cy5w
YXNzTnVsbFRvUHRyTW9ub21vcnBoaWNBcnJheVJlZiA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0
IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28odGhyZWFkIGludFtdIHB0cikKKyAgICAgICAg
eworICAgICAgICAgICAgcmV0dXJuIHB0clswdV07CisgICAgICAgIH0KKyAgICAgICAgaW50IGJh
cigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb28obnVsbCk7CisgICAgICAgIH0K
KyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXIiLCBbXSksIDApOworfQorCit3aGxzbFRlc3RzLmxvYWROdWxsID0gYXN5bmMgKCkgPT4K
K3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHZvaWQgc2lu
ayh0aHJlYWQgaW50KiB4KSB7IH0KKyAgICAgICAgICAgIHZvaWQgZm9vKCkgeyBzaW5rKCpudWxs
KTsgfQorICAgICAgICBgKTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNj
cmlwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNs
LW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2IEBACisKK1BBU1Mgb3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3Qg
CitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMgCitQQVNTIG92ZXJyaWRl
U3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnMgCitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3Ry
dWN0QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3RseSAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3JpcHQuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtb3ZlcnJpZGUtc3Vic2NyaXB0Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBj
aGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0
bGU+VGVzdCBvdmVycmlkZSBzdWJzY3JpcHRzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hs
c2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVu
Y3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3
aGxzbFRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBs
ZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7CisgICAgICAgICAgICBpbnQgeDsK
KyAgICAgICAgICAgIGludCB5OworICAgICAgICB9CisgICAgICAgIHRocmVhZCBpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAg
ICAgaWYgKGluZGV4ID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAg
ICAgICAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eTsK
KyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIGludCBmb28oKQor
ICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAgICAgICAgICAgZm9vLnggPSA0OTg7
CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZv
b1sxXSAqIDM7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2Fs
bEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5ICogMyk7Cit9CisKK3do
bHNsVGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmREb1N0b3JlcyA9IGFzeW5jICgpID0+
Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAg
ICAgaW50IHg7CisgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgfQorICAgICAgICB0aHJlYWQg
aW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQgaW5kZXgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICAgICAgICAgIHJldHVybiAmZm9v
LT54OworICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgICAgICAgICAgcmV0dXJu
ICZmb28tPnk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfQorICAgICAgICBp
bnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAgIGZv
b1swXSA9IDQ5ODsKKyAgICAgICAgICAgIGZvb1sxXSA9IDE5OworICAgICAgICAgICAgcmV0dXJu
IGZvby54ICsgZm9vLnk7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdh
aXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5KTsKK30KKwor
d2hsc2xUZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBvaW50ZXJzID0gYXN5bmMg
KCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7CisgICAg
ICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIGludCB5OworICAgICAgICB9CisgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJu
ICZmb28tPng7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAg
ICAgIGludCBiYXIodGhyZWFkIEZvbyogZm9vKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gKCpmb28pWzBdICsgKCpmb28pWzFdOworICAgICAgICB9CisgICAgICAgIGludCBmb28oKQor
ICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAgICAgICAgICAgZm9vLnggPSA0OTg7
CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAgICAgcmV0dXJuIGJhcigmZm9vKTsK
KyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOworfQorCit3aGxzbFRlc3RzLm92ZXJy
aWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3RseSA9IGFzeW5jICgpID0+
Cit7CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsK
KyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZv
bywgdWludCBpbmRleCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZiAoaW5kZXgg
PT0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgICAgICAgICAg
ICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAmZm9vLT55Owor
ICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAgfQorICAgICAgICAgICAg
aW50IGJhcih0aHJlYWQgRm9vKiBmb28pCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
cmV0dXJuIGZvb1swXSArIGZvb1sxXTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGludCBm
b28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEZvbyBmb287CisgICAgICAgICAg
ICAgICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICAgICAgZm9vLnkgPSAxOTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gYmFyKCZmb28pOworICAgICAgICAgICAgfQorICAgICAgICBgKTsKK30K
KworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcGx1cy1lcXVhbHMtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1wbHVzLWVxdWFscy1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgcGx1c0VxdWFs
cyAKK1BBU1MgcGx1c0VxdWFsc1Jlc3VsdCAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXBsdXMtZXF1YWxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXBsdXMtZXF1YWxzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IG92ZXJyaWRlIHN1YnNjcmlw
dHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMucGx1c0VxdWFscyA9IGFz
eW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oaW50IHgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHggKz0gNDI7CisgICAgICAgICAgICByZXR1cm4geDsK
KyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDM4NSldKSwgMzg1ICsgNDIpOworfQorCit3aGxz
bFRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBhc3luYyAoKSA9PgoreworICAgIGxldCBwcm9ncmFt
ID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4geCArPSA0MjsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBj
YWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDM4NSldKSwgMzg1ICsgNDIp
OworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgorCkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVjdHMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0
cy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNs
LXJlY3Vyc2l2ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQgQEAKKworUEFTUyBtdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdCAKK1BBU1MgbXV0dWFsbHlSZWN1
cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdw
dS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+
VGVzdCBsb29wcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5tdXR1YWxs
eVJlY3Vyc2l2ZVN0cnVjdCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAor
ICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgICAgICBCYXIg
YmFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RydWN0IEJhciB7CisgICAgICAgICAg
ICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQor
Cit3aGxzbFRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBvaW50ZXJzQnJva2VuID0g
YXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7
CisgICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7CisgICAgICAgICAgICBpbnQgZm9vOworICAg
ICAgICB9CisgICAgICAgIHN0cnVjdCBCYXIgeworICAgICAgICAgICAgdGhyZWFkIEZvbyogZm9v
OworICAgICAgICAgICAgaW50IGJhcjsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vKCkKKyAg
ICAgICAgeworICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAgIEJhciBiYXI7CisgICAg
ICAgICAgICBmb28uZm9vID0gNTY0OworICAgICAgICAgICAgYmFyLmJhciA9IDUzOworICAgICAg
ICAgICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsKKyAgICAgICAgfQorICAg
IGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgMCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0
bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXJuYXJ5LXNwZWMtdGVzdC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXRlcm5h
cnktc3BlYy10ZXN0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93
ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHRlcm5hcnlFeHByZXNzaW9uIAorCkluZGV4OiBMYXlv
dXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9Imxv
bmciPgorPHRpdGxlPlRlc3QgaW50IGJpdCBtYXRoLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMv
d2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUt
ZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9Owor
Cit3aGxzbFRlc3RzLnRlcm5hcnlFeHByZXNzaW9uID0gYXN5bmMgKCkgPT4geworICAgIGxldCBw
cm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4geCA8IDMgPyA0IDogNTsKKyAgICAgICAgfQorICAgICAgICBpbnQgYmFyKGludCB4
KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4geCA8IDEwID8gMTEgOiB4IDwgMTIgPyAx
NCA6IDE1OworICAgICAgICB9CisgICAgICAgIGludCBiYXooaW50IHgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiAzIDwgNCA/IHggOiA1OworICAgICAgICB9CisgICAgYDsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQoNzY3KV0pLCA1KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMildKSwgNCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KDgpXSksIDExKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21h
a2VJbnQoOSldKSwgMTEpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMCldKSwgMTQpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMSldKSwgMTQp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbbWFrZUludCgxMildKSwgMTUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMyldKSwgMTUpOworICAgIGFzc2VydF9l
cXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUludCgxNCld
KSwgMTQpOworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50
IGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAg
ICAgICAgKDQgPCA1ID8geCA6IDcpID0gODsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQg
eTsKKyAgICAgICAgICAgICAgICAoMCA8IDEgPyB4IDogeSkgPSA0MjsKKyAgICAgICAgICAgICAg
ICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgYXdhaXQgY2hlY2tG
YWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAg
ICAgICB0aHJlYWQgaW50KiB6ID0gJigwIDwgMSA/IHggOiB5KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gKno7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworICAgIGF3YWl0IGNoZWNrRmFp
bCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICAgICAgaW50IHk7CisgICAgICAgICAgICAg
ICAgdGhyZWFkIGludFtdIHogPSBAKDAgPCAxID8geCA6IHkpOworICAgICAgICAgICAgICAgIHJl
dHVybiAqejsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBmbG9hdCB5OworICAgICAgICAgICAg
ICAgIHJldHVybiA0IDwgNSA/IHggOiB5OworICAgICAgICAgICAgfQorICAgICAgICBgKTsKKyAg
ICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBmb28oKQorICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA0IDwgNSA/IDYgOiA3LjA7CisgICAg
ICAgICAgICB9CisgICAgICAgIGApOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2Ny
aXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3Vt
ZW50LWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorCitQQVNTIGJpdEFuZFdyb25n
QXJndW1lbnRMZW5ndGggCitQQVNTIGJpdE5vdFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGJp
dE9yV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgYml0WG9yV3JvbmdBcmd1bWVudExlbmd0aCAK
K1BBU1MgZGVjV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgZGl2aWRlV3JvbmdBcmd1bWVudExl
bmd0aCAKK1BBU1MgZG90T3BlcmF0b3JTZXR0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoIAorUEFTUyBk
b3RPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGdyZWF0ZXJFcXVhbFdyb25nQXJn
dW1lbnRMZW5ndGggCitQQVNTIGdyZWF0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoIAorUEFTUyBpbmNX
cm9uZ0FyZ3VtZW50TGVuZ3RoIAorUEFTUyBpbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVu
dExlbmd0aCAKK1BBU1MgaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGxT
aGlmdFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIG1pbnVzV3JvbmdBcmd1bWVudExlbmd0aCAK
K1BBU1MgbW9kdWxvV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgcGx1c1dyb25nQXJndW1lbnRM
ZW5ndGggCitQQVNTIHJTaGlmdFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIHRpbWVzV3JvbmdB
cmd1bWVudExlbmd0aCAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFy
Z3VtZW50LWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxz
bC13cm9uZy1hcmd1bWVudC1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtd3JvbmctYXJndW1lbnQtbGVuZ3RoLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0
PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVz
dCBpbnQgYml0IG1hdGguPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5l
c3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwv
c2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuYml0
QW5kV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tG
YWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAg
aW50IG9wZXJhdG9yJihGb28pIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAK
KyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28g
eyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ImKEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAg
ICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAg
ICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ImKEZvbywgRm9v
LCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVz
dHMuYml0Tm90V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3J+KCkgeyByZXR1
cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAg
ICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVy
YXRvcn4oRm9vLCBGb28pIHsgcmV0dXJuIDUzNDsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9
Cit3aGxzbFRlc3RzLmJpdE9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsg
fQorICAgICAgICAgICAgaW50IG9wZXJhdG9yfCgpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGAp
OworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAg
IHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3J8KEZvbykgeyByZXR1cm4g
NTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAg
ICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0
b3J8KEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAgIGApOworICAgICAgICAK
K30KK3dobHNsVGVzdHMuYml0WG9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0
b3JeKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNo
ZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAg
ICAgIGludCBvcGVyYXRvcl4oRm9vKSB7IHJldHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAg
ICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0
IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcl4oRm9vLCBGb28sIEZvbykgeyByZXR1
cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0cy5kZWNXcm9uZ0Fy
Z3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAg
ICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvci0tKCkgeyByZXR1cm4gMzI7IH0KKyAgICAg
ICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAg
ICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvci0tKEZvbywgRm9v
KSB7IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmRp
dmlkZVdyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9PgoreworICAgIGF3YWl0IGNoZWNr
RmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9wZXJhdG9yLygpIHsgcmV0dXJuIDMy
OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3Iv
KEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3IvKEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAg
IGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuZG90T3BlcmF0b3JTZXR0ZXJXcm9uZ0FyZ3Vt
ZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0b3Iu
Zm9vPSgpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAg
ICAgICBGb28gb3BlcmF0b3IuZm9vPShGb28pIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOwor
ICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0
cnVjdCBGb28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0b3IuZm9vPShGb28sIGludCwgaW50
KSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmRv
dE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IuZm9vKCkgeyBy
ZXR1cm4gNDI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgK
KyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBv
cGVyYXRvci5mb28oRm9vLCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAg
ICAKK30KK3dobHNsVGVzdHMuZ3JlYXRlckVxdWFsV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5j
ICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBi
b29sIG9wZXJhdG9yPj0oKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAK
KyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28g
eyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oRm9vKSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oRm9v
LCBGb28sIEZvbykgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9Cit3
aGxzbFRlc3RzLmdyZWF0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAg
ICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGJvb2wgb3BlcmF0b3I+
KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQgY2hl
Y2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAg
ICAgYm9vbCBvcGVyYXRvcj4oRm9vKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAg
ICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVj
dCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPihGb28sIEZvbywgRm9vKSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuaW5jV3Jv
bmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAor
ICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKygpIHsgcmV0dXJuIDMyOyB9Cisg
ICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKyhGb28s
IEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0
cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXT0oKSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oaW50KSB7
IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oaW50LCBpbnQpIHsgcmV0
dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShpbnQsIGludCwgaW50LCBpbnQp
IHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuaW5k
ZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9PgoreworICAgIGF3YWl0
IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9wZXJhdG9yW10oKSB7IHJl
dHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWlsKAor
ICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShpbnQpIHsgcmV0dXJuIDQyOyB9
CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIGludCBvcGVyYXRvcltdKGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9
CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMubFNoaWZ0V3JvbmdBcmd1bWVu
dExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBg
CisgICAgICAgICAgICBpbnQgb3BlcmF0b3I8PCgpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGAp
OworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAg
IHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3I8PChGb28pIHsgcmV0dXJu
IDUzNDsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAg
ICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgaW50IG9wZXJh
dG9yPDwoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAg
IAorfQord2hsc2xUZXN0cy5taW51c1dyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9Pgor
eworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9wZXJh
dG9yLSgpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3ItKEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAg
IGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMubW9kdWxvV3JvbmdBcmd1bWVudExlbmd0aCA9
IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3IlKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAg
IAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZv
byB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciUoRm9vKSB7IHJldHVybiA1MzQ7IH0KKyAg
ICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAg
ICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciUoRm9vLCBG
b28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xU
ZXN0cy5wbHVzV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKCkgeyByZXR1
cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAg
ICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVy
YXRvcisoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAg
IAorfQord2hsc2xUZXN0cy5yU2hpZnRXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4K
K3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVy
YXRvcj4+KCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0
IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAg
ICAgICAgIGludCBvcGVyYXRvcj4+KEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOwor
ICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0
cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3I+PihGb28sIEZvbywgRm9vKSB7
IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLnRpbWVz
V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IqKCkgeyByZXR1cm4gMzI7IH0K
KyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAor
ICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciooRm9v
KSB7IHJldHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNr
RmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAg
IGludCBvcGVyYXRvciooRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7
CisgICAgICAgIAorfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtd3JvbmctdHlwZXMtZXhw
ZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC13cm9u
Zy10eXBlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4IEBACisKK1BB
U1MgZGVjV3JvbmdUeXBlcyAKK1BBU1MgaW5jV3JvbmdUeXBlcyAKK1BBU1MgZ3JlYXRlclRoYW5X
cm9uZ1JldHVyblR5cGUgCitQQVNTIGdyZWF0ZXJFcXVhbFdyb25nUmV0dXJuVHlwZSAKK1BBU1Mg
aW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGUgCitQQVNTIHNldHRlcldpdGhNaXNtYXRjaGVk
VHlwZSAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVzLmh0bWwJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJs
b25nIj4KKzx0aXRsZT5UZXN0IGludCBiaXQgbWF0aC48L3RpdGxlPgorPHNjcmlwdCBzcmM9Impz
L3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsK
Kword2hsc2xUZXN0cy5kZWNXcm9uZ1R5cGVzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvci0tKGZsb2F0KSB7
IHJldHVybiAzMjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9CisKK3dobHNsVGVzdHMuaW5j
V3JvbmdUeXBlcyA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAg
ICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKyhmbG9hdCkgeyByZXR1cm4gMzI7IH0KKyAg
ICAgICAgYCk7CisgICAgICAgIAorfQorCit3aGxzbFRlc3RzLmdyZWF0ZXJUaGFuV3JvbmdSZXR1
cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIGludCBvcGVyYXRvcj4oaW50IGEsIGludCBiKSB7IHJldHVybiBhICsgYjsg
fQorICAgICAgICBgKTsKKyAgICAgICAgCit9CisKK3dobHNsVGVzdHMuZ3JlYXRlckVxdWFsV3Jv
bmdSZXR1cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAg
ICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcj49KGludCBhLCBpbnQgYikgeyByZXR1cm4g
YSArIGI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCit3aGxzbFRlc3RzLmluZGV4U2V0
dGVyV2l0aE1pc21hdGNoZWRUeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgICAgIGZsb2F0IG9wZXJhdG9yW10oaW50LCB1aW50KQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1LjQzOworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaW50IG9wZXJhdG9yW109KGludCwgdWludCwgaW50KQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHJldHVybiA1NDM7CisgICAgICAgICAgICB9CisgICAgICAgIGApOwor
fQorCit3aGxzbFRlc3RzLnNldHRlcldpdGhNaXNtYXRjaGVkVHlwZSA9IGFzeW5jICgpID0+Cit7
CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBmbG9hdCBvcGVyYXRvci5m
b28oaW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1LjQzOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yLmZvbz0oaW50LCBpbnQpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDU0MzsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgYCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373811</attachid>
            <date>2019-07-09 19:32:35 -0700</date>
            <delta_ts>2019-07-10 11:50:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>44647</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTCBJbXBvcnQgbW9yZSBKUyByZWZlcmVu
Y2Ugc3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5NjUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViZ3B1L3dobHNsLWdldHRlci1zZXR0ZXItdHlwZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWxvb3BzLXNwZWMtdGVzdHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0cy5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbnVsbC1hcnJheS1yZWYuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3JpcHQuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC13cm9uZy1hcmd1bWVu
dC1sZW5ndGguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVz
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLXR5cGVz
Lmh0bWw6IEFkZGVkLgorCiAyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtXSExTTF0gSW1wb3J0IGFub3RoZXIgcm91bmQgb2YgSlMgc3BlYyB0
ZXN0cwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy0yLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYnVpbHRp
bi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3RvckdldHRlcnMgCitQQVNTIGJ1aWx0
aW5WZWN0b3JTZXR0ZXJzIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtYnVpbHRp
bi12ZWN0b3JzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
YnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxt
ZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9vcHMuPC90
aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citj
b25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7CisgICAgInVpbnQi
OiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rpb24sCisgICAgImZs
b2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMgPSBbICJ1aW50Iiwg
ImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Citjb25zdCBlbGVt
ZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFsaXplckxpc3QgPSBb
IDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9yR2V0dGVycyA9IGFzeW5j
ICgpID0+Cit7CisKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQgc3JjID0gIiI7CisgICAg
Zm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAgIGZvciAobGV0IHNpemUg
b2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsgaSsrKSB7
CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5hbWV9JHtzaXpl
fSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCR7dHlwZU5hbWV9ICR7
ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1lfSR7c2l6ZX0o
JHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB4LiR7ZWxlbWVudHNbaV19OworICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAgICAgICAg
ICB0ZXN0cy5wdXNoKHsgdHlwZTogdHlwZU5hbWUsIG5hbWU6IGZ1bmN0aW9uTmFtZSwgZXhwZWN0
YXRpb246IGluaXRpYWxpemVyTGlzdFtpXSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgIH0KKworICAgIGxldCBwcm9ncmFtID0gc3JjOworICAgIGZvciAobGV0IHRlc3Qgb2YgdGVz
dHMpIHsKKyAgICAgICAgY29uc3QgY2hlY2tGdW5jID0gY2hlY2tGdW5jc1t0ZXN0LnR5cGVdOwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNoZWNrRnVuYyhwcm9ncmFtLCB0ZXN0Lm5hbWUs
IFtdKSwgdGVzdC5leHBlY3RhdGlvbik7CisgICAgfQorfTsKKword2hsc2xUZXN0cy5idWlsdGlu
VmVjdG9yU2V0dGVycyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHRlc3RzID0gW107CisgICAg
bGV0IHNyYyA9ICIiOworICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVOYW1lcykgeworICAg
ICAgICBmb3IgKGxldCBzaXplIG9mIHNpemVzKSB7CisgICAgICAgICAgICBmb3IgKGxldCBpID0g
MDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9
IGAke3R5cGVOYW1lfSR7c2l6ZX0ke2VsZW1lbnRzW2ldfWA7CisgICAgICAgICAgICAgICAgc3Jj
ICs9IGAke3R5cGVOYW1lfSAke2Z1bmN0aW9uTmFtZX0oKQorICAgICAgICAgICAgICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHlwZU5hbWV9JHtzaXplfSB4ID0g
JHt0eXBlTmFtZX0ke3NpemV9KCR7aW5pdGlhbGl6ZXJMaXN0LnNsaWNlKDAsIHNpemUpLmpvaW4o
IiwgIil9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LiR7ZWxlbWVudHNbaV19ID0g
MzQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHguJHtlbGVtZW50c1tpXX07
CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBgOwor
ICAgICAgICAgICAgICAgIHRlc3RzLnB1c2goeyB0eXBlOiB0eXBlTmFtZSwgbmFtZTogZnVuY3Rp
b25OYW1lLCBleHBlY3RhdGlvbjogMzQgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICBsZXQgcHJvZ3JhbSA9IHNyYzsKKyAgICBmb3IgKGxldCB0ZXN0IG9mIHRlc3Rz
KSB7CisgICAgICAgIGNvbnN0IGNoZWNrRnVuYyA9IGNoZWNrRnVuY3NbdGVzdC50eXBlXTsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjaGVja0Z1bmMocHJvZ3JhbSwgdGVzdC5uYW1lLCBb
XSksIHRlc3QuZXhwZWN0YXRpb24pOworICAgIH0KK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7
Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1
aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3RvckluZGV4U2V0
dGVycyAKK1BBU1MgYnVpbHRpblZlY3RvcnMgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJn
cHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9v
cHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7CisgICAg
InVpbnQiOiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rpb24sCisg
ICAgImZsb2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMgPSBbICJ1
aW50IiwgImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Citjb25z
dCBlbGVtZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFsaXplckxp
c3QgPSBbIDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ySW5kZXhTZXR0
ZXJzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQgc3JjID0g
IiI7CisgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAgIGZvciAo
bGV0IHNpemUgb2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6
ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5h
bWV9JHtzaXplfSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCR7dHlw
ZU5hbWV9ICR7ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1l
fSR7c2l6ZX0oJHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhbJHtpfV0gPSAzNDsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm4geFske2l9XTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAgICAgICAgICAgdGVzdHMucHVzaCh7
IHR5cGU6IHR5cGVOYW1lLCBuYW1lOiBmdW5jdGlvbk5hbWUsIGV4cGVjdGF0aW9uOiAzNCB9KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBwcm9ncmFtID0gc3Jj
OworICAgIGZvciAobGV0IHRlc3Qgb2YgdGVzdHMpIHsKKyAgICAgICAgY29uc3QgY2hlY2tGdW5j
ID0gY2hlY2tGdW5jc1t0ZXN0LnR5cGVdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNo
ZWNrRnVuYyhwcm9ncmFtLCB0ZXN0Lm5hbWUsIFtdKSwgdGVzdC5leHBlY3RhdGlvbik7CisgICAg
fQorfTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ycyA9IGFzeW5jICgpID0+Cit7CisgICAg
bGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAg
ICBpbnQyIGEgPSBpbnQyKDMsIDQpOworICAgICAgICAgICAgcmV0dXJuIGFbMF07CisgICAgICAg
IH0KKyAgICAgICAgaW50IGZvbzIoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQyIGEgPSBp
bnQyKDMsIDQpOworICAgICAgICAgICAgaW50MyBiID0gaW50MyhhLCA1KTsKKyAgICAgICAgICAg
IHJldHVybiBiWzFdOworICAgICAgICB9CisgICAgICAgIGludCBmb28zKCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaW50MyBhID0gaW50MygzLCA0LCA1KTsKKyAgICAgICAgICAgIGludDQgYiA9
IGludDQoNiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDIgYSA9IGludDIoMywgNCk7
CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDUsIDYpOworICAgICAgICAgICAgaW50NCBjID0g
aW50NChhLCBiKTsKKyAgICAgICAgICAgIHJldHVybiBjWzJdOworICAgICAgICB9CisgICAgICAg
IGJvb2wgZm9vNSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDQgYSA9IGludDQoMywgNCwg
NSwgNik7CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDQsIDUpOworICAgICAgICAgICAgaW50
NCBjID0gaW50NCgzLCBiLCA2KTsKKyAgICAgICAgICAgIHJldHVybiBhID09IGM7CisgICAgICAg
IH0KKyAgICAgICAgYm9vbCBmb282KCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50MiBhID0g
aW50Mig0LCA1KTsKKyAgICAgICAgICAgIGludDMgYiA9IGludDMoMywgYSk7CisgICAgICAgICAg
ICBpbnQzIGMgPSBpbnQzKDMsIDQsIDYpOworICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKKyAg
ICAgICAgfQorICAgICAgICB1aW50IGZvb3UoKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50
MiBhID0gdWludDIoMywgNCk7CisgICAgICAgICAgICByZXR1cm4gYVswXTsKKyAgICAgICAgfQor
ICAgICAgICB1aW50IGZvb3UyKCkKKyAgICAgICAgeworICAgICAgICAgICAgdWludDIgYSA9IHVp
bnQyKDMsIDQpOworICAgICAgICAgICAgdWludDMgYiA9IHVpbnQzKGEsIDUpOworICAgICAgICAg
ICAgcmV0dXJuIGJbMV07CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb291MygpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHVpbnQzIGEgPSB1aW50MygzLCA0LCA1KTsKKyAgICAgICAgICAgIHVp
bnQ0IGIgPSB1aW50NCg2LCBhKTsKKyAgICAgICAgICAgIHJldHVybiBiWzFdOworICAgICAgICB9
CisgICAgICAgIHVpbnQgZm9vdTQoKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50MiBhID0g
dWludDIoMywgNCk7CisgICAgICAgICAgICB1aW50MiBiID0gdWludDIoNSwgNik7CisgICAgICAg
ICAgICB1aW50NCBjID0gdWludDQoYSwgYik7CisgICAgICAgICAgICByZXR1cm4gY1syXTsKKyAg
ICAgICAgfQorICAgICAgICBib29sIGZvb3U1KCkKKyAgICAgICAgeworICAgICAgICAgICAgdWlu
dDQgYSA9IHVpbnQ0KDMsIDQsIDUsIDYpOworICAgICAgICAgICAgdWludDIgYiA9IHVpbnQyKDQs
IDUpOworICAgICAgICAgICAgdWludDQgYyA9IHVpbnQ0KDMsIGIsIDYpOworICAgICAgICAgICAg
cmV0dXJuIGEgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb3U2KCkKKyAgICAgICAg
eworICAgICAgICAgICAgdWludDIgYSA9IHVpbnQyKDQsIDUpOworICAgICAgICAgICAgdWludDMg
YiA9IHVpbnQzKDMsIGEpOworICAgICAgICAgICAgdWludDMgYyA9IHVpbnQzKDMsIDQsIDYpOwor
ICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBmbG9hdCBmb29m
KCkKKyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsKKyAg
ICAgICAgICAgIHJldHVybiBhWzBdOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvb2YyKCkK
KyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsKKyAgICAg
ICAgICAgIGZsb2F0MyBiID0gZmxvYXQzKGEsIDUuKTsKKyAgICAgICAgICAgIHJldHVybiBiWzFd
OworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvb2YzKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgZmxvYXQzIGEgPSBmbG9hdDMoMy4sIDQuLCA1Lik7CisgICAgICAgICAgICBmbG9hdDQgYiA9
IGZsb2F0NCg2LiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAgfQorICAg
ICAgICBmbG9hdCBmb29mNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZsb2F0MiBhID0gZmxv
YXQyKDMuLCA0Lik7CisgICAgICAgICAgICBmbG9hdDIgYiA9IGZsb2F0Mig1LiwgNi4pOworICAg
ICAgICAgICAgZmxvYXQ0IGMgPSBmbG9hdDQoYSwgYik7CisgICAgICAgICAgICByZXR1cm4gY1sy
XTsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb2Y1KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgZmxvYXQ0IGEgPSBmbG9hdDQoMy4sIDQuLCA1LiwgNi4pOworICAgICAgICAgICAgZmxvYXQy
IGIgPSBmbG9hdDIoNC4sIDUuKTsKKyAgICAgICAgICAgIGZsb2F0NCBjID0gZmxvYXQ0KDMuLCBi
LCA2Lik7CisgICAgICAgICAgICByZXR1cm4gYSA9PSBjOworICAgICAgICB9CisgICAgICAgIGJv
b2wgZm9vZjYoKQorICAgICAgICB7CisgICAgICAgICAgICBmbG9hdDIgYSA9IGZsb2F0Mig0Liwg
NS4pOworICAgICAgICAgICAgZmxvYXQzIGIgPSBmbG9hdDMoMy4sIGEpOworICAgICAgICAgICAg
ZmxvYXQzIGMgPSBmbG9hdDMoMy4sIDQuLCA2Lik7CisgICAgICAgICAgICByZXR1cm4gYiA9PSBj
OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNCk7CisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCA1
KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzUiLCBbXSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbFVpbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwgNCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJmb291MyIs
IFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dy
YW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsQm9vbEZ1
bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdKSwgdHJ1ZSk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NiIsIFtdKSwgZmFsc2UpOworICAg
IGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZvb2YiLCBb
XSksIDMpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3Jh
bSwgImZvb2YyIiwgW10pLCA0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxGbG9hdEZ1
bmN0aW9uKHByb2dyYW0sICJmb29mMyIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsRmxvYXRGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAgIGFzc2Vy
dF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBbXSksIHRy
dWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vZjYiLCBbXSksIGZhbHNlKTsKK307CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9zY3Jp
cHQ+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0
dGVyLXR5cGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIGdldHRlclR5cGUgCitQQVNTIHNl
dHRlclR5cGUgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVy
LXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtZ2V0dGVy
LXNldHRlci10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWdldHRlci1zZXR0ZXItdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTAz
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRh
IG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9vcHMuPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25z
dCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuZ2V0dGVyVHlwZSA9IGFzeW5jICgpID0+
IHsKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueCh0aHJlYWQg
aW50W10gZm9vKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOworICAgICAg
ICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGludCBvcGVyYXRv
ci54KGludFszXSBmb28pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29bMF07Cisg
ICAgICAgIH0KKyAgICBgKTsgCisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgaW50IG9w
ZXJhdG9yW10odGhyZWFkIGludFtdIGZvbywgaW50IGluZGV4KQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gZm9vW2luZGV4XTsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueChpbnRbM10gZm9vKQorICAgICAgICB7
CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3
YWl0IGNoZWNrRmFpbChgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7
CisgICAgICAgIH0KKyAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludDQgaW5kZXgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29baW5kZXgueF07CisgICAgICAgIH0K
KyAgICBgKTsgCit9OworCit3aGxzbFRlc3RzLnNldHRlclR5cGUgPSBhc3luYyAoKSA9PiB7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgdGhyZWFkIGludFtdIG9wZXJhdG9yLng9KHRo
cmVhZCBpbnRbXSBmb28sIHVpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZv
bzsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBp
bnRbM10gb3BlcmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7CisgICAgICAg
ICAgICByZXR1cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFp
bChgCisgICAgICAgIHRocmVhZCBpbnRbXSBvcGVyYXRvcltdPSh0aHJlYWQgaW50W10gZm9vLCB1
aW50IHgsIHVpbnQgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZvbzsKKyAgICAg
ICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnRbM10gb3Bl
cmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1
cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAg
ICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgIH0KKyAgICAgICAg
Rm9vIG9wZXJhdG9yW109KEZvbyBmb28sIGZsb2F0NCB5LCB1aW50IHopCisgICAgICAgIHsKKyAg
ICAgICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgIGludCB4OworICAg
ICAgICB9CisgICAgICAgIGludCBvcGVyYXRvci55KEZvbyBmb28pCisgICAgICAgIHsKKyAgICAg
ICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgICAgICBGb28gb3BlcmF0b3IueT0o
Rm9vIGZvbywgaW50NCB4KQorICAgICAgICB7CisgICAgICAgICAgICBGb28gcmVzdWx0OworICAg
ICAgICAgICAgZm9vLnggPSB4Lng7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICB9CisgICAgYCk7IAorfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwv
aHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlmLXN0YXRlbWVudC1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlmLXN0YXRl
bWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWlmLXN0YXRlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2
IEBACisKK1BBU1MgaWZTdGF0ZW1lbnQgCitQQVNTIGlmRWxzZVN0YXRlbWVudCAKK1BBU1MgaWZF
bHNlSWZTdGF0ZW1lbnQgCitQQVNTIGlmRWxzZUlmRWxzZVN0YXRlbWVudCAKKwpJbmRleDogTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlmLXN0YXRlbWVudC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1pZi1zdGF0ZW1lbnQuaHRtbAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtaWYtc3RhdGVtZW50Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxMDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+
VGVzdCBpbnQgYml0IG1hdGguPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMu
aWZTdGF0ZW1lbnQgPSBhc3luYyAoKSA9PgoreworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAg
ICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgeSA9IDY7CisgICAg
ICAgICAgICBpZiAoeCA9PSA3KSB7CisgICAgICAgICAgICAgICAgeSA9IDg7CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDMp
XSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludCg0KV0pLCA2KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJ
bnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNSldKSwgNik7CisgICAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDYp
XSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludCg3KV0pLCA4KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJ
bnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOCldKSwgNik7CisgICAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDkp
XSksIDYpOworfQorCit3aGxzbFRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGFzeW5jICgpID0+Cit7
CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oaW50IHgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGludCB5ID0gNjsKKyAgICAgICAgICAgIGlmICh4ID09IDcpIHsKKyAgICAg
ICAgICAgICAgICB5ID0gODsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
eSA9IDk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAgICAgfQor
ICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KDMpXSksIDkpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbElu
dEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg0KV0pLCA5KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNSld
KSwgOSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KDYpXSksIDkpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbElu
dEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg3KV0pLCA4KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOCld
KSwgOSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KDkpXSksIDkpOworfQorCit3aGxzbFRlc3RzLmlmRWxzZUlmU3RhdGVt
ZW50ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZv
byhpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHkgPSA2OworICAgICAgICAgICAg
aWYgKHggPT0gNykgeworICAgICAgICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAgfSBlbHNl
IGlmICh4ID09IDgpIHsKKyAgICAgICAgICAgICAgICB5ID0gOTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxz
KGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMyldKSwgNik7
CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KDQpXSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg1KV0pLCA2KTsKKyAgICBhc3NlcnRfZXF1YWxz
KGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNildKSwgNik7
CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KDcpXSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg4KV0pLCA5KTsKKyAgICBhc3NlcnRfZXF1YWxz
KGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOSldKSwgNik7
Cit9CisKK3dobHNsVGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gYXN5bmMgKCkgPT4KK3sK
KyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbyhpbnQgeCkKKyAgICAgICAgewor
ICAgICAgICAgICAgaW50IHkgPSA2OworICAgICAgICAgICAgaWYgKHggPT0gNykgeworICAgICAg
ICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAgfSBlbHNlIGlmICh4ID09IDgpIHsKKyAgICAg
ICAgICAgICAgICB5ID0gOTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
eSA9IDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHk7CisgICAgICAgIH0K
KyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludCgzKV0pLCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
SW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDQpXSksIDEwKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
NSldKSwgMTApOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludCg2KV0pLCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBj
YWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDcpXSksIDgpOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dCg4KV0pLCA5KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQoOSldKSwgMTApOworfQorCitydW5UZXN0cyh3aGxzbFRlc3Rz
KTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxv
b3BzLXNwZWMtdGVzdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1sb29wcy1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0cy1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgZG9XaGlsZSAKK1BBU1Mgc2lt
cGxlV2hpbGUgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sb29wcy1zcGVjLXRl
c3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxvb3BzLXNw
ZWMtdGVzdHMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
bG9vcHMtc3BlYy10ZXN0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0i
dGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBsb29wcy48L3RpdGxlPgorPHNj
cmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNs
VGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5kb1doaWxlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBs
ZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbzEoaW50IHgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGludCB5ID0gNzsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICB5ID0g
ODsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gd2hpbGUgKHggPCAxMCk7
CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9vMihpbnQg
eCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHkgPSA3OworICAgICAgICAgICAgZG8gewor
ICAgICAgICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgfSB3aGlsZSAoeSA9PSA3KTsKKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9Cisg
ICAgICAgIGludCBmb28zKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgc3VtID0g
MDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZiAoeCA9PSAxMSkgeworICAg
ICAgICAgICAgICAgICAgICB4ID0gMTU7CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdW0gPSBzdW0gKyB4OworICAgICAg
ICAgICAgICAgIHggPSB4ICsgMTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHggPCAxMyk7CisgICAg
ICAgICAgICByZXR1cm4gc3VtOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxz
KGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KDEpXSksIDgp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
IiwgW21ha2VJbnQoMTEpXSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQoMSldKSwgOCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUludCg5KV0p
LCAxOSk7Cit9CisKK3dobHNsVGVzdHMuc2ltcGxlV2hpbGUgPSBhc3luYyAoKSA9PgoreworICAg
IGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAg
ICAgICAgICB3aGlsZSAoeCA8IDEzKQorICAgICAgICAgICAgICAgIHggPSB4ICogMjsKKyAgICAg
ICAgICAgIHJldHVybiB4OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMSldKSwgMTYpOwor
fQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRh
IGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0
aXRsZT5UZXN0IGxvb3BzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLmRl
cmVmZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHBy
b2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICB0aHJl
YWQgaW50W10gcDsKKyAgICAgICAgICAgIHJldHVybiBwWzBdOworICAgICAgICB9CisgICAgYDsK
KyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCAwKTsKK30KKword2hsc2xUZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJyYXlSZWZJ
bnRMaXRlcmFsID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAg
aW50IGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSBwID0gbnVsbDsK
KyAgICAgICAgICAgIHJldHVybiBwWzBdOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAwKTsKK30K
Kword2hsc2xUZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWNBcnJheVJlZiA9IGFzeW5jICgp
ID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28odGhyZWFkIGludFtd
IHB0cikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHB0clswdV07CisgICAgICAgIH0K
KyAgICAgICAgaW50IGJhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb28obnVs
bCk7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDApOworfQorCit3aGxzbFRlc3RzLmxvYWROdWxs
ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAg
ICAgICAgIHZvaWQgc2luayh0aHJlYWQgaW50KiB4KSB7IH0KKyAgICAgICAgICAgIHZvaWQgZm9v
KCkgeyBzaW5rKCpudWxsKTsgfQorICAgICAgICBgKTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0
cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNs
LW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQJKG5vbmV4aXN0
ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBl
Y3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2IEBACisKK1BBU1Mgb3ZlcnJpZGVT
dWJzY3JpcHRTdHJ1Y3QgCitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9TdG9yZXMg
CitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnMgCitQQVNTIG92ZXJy
aWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3RseSAKKwpJbmRleDogTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3JpcHQuaHRtbAkobm9u
ZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtb3ZlcnJpZGUtc3Vic2NyaXB0
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBvdmVycmlkZSBzdWJzY3JpcHRzLjwvdGl0bGU+Cis8c2Ny
aXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xU
ZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0gYXN5bmMg
KCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7CisgICAg
ICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIGludCB5OworICAgICAgICB9CisgICAgICAgIHRo
cmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgICAgICAgICAgcmV0dXJu
ICZmb28tPng7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gJmZvby0+eTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAg
ICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAgICAgICAg
ICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAgICAgcmV0
dXJuIGZvb1swXSArIGZvb1sxXSAqIDM7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9l
cXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5OCArIDE5
ICogMyk7Cit9CisKK3dobHNsVGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmREb1N0b3Jl
cyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0cnVjdCBG
b28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgfQor
ICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVpbnQgaW5k
ZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKQorICAgICAgICAgICAg
ICAgIHJldHVybiAmZm9vLT54OworICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAg
ICAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAg
ICAgfQorICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgRm9vIGZvbzsK
KyAgICAgICAgICAgIGZvb1swXSA9IDQ5ODsKKyAgICAgICAgICAgIGZvb1sxXSA9IDE5OworICAg
ICAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7CisgICAgICAgIH0KKyAgICBgOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5
OCArIDE5KTsKK30KKword2hsc2xUZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFuZFVzZVBv
aW50ZXJzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3Ry
dWN0IEZvbyB7CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIGludCB5OworICAgICAg
ICB9CisgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWlu
dCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCisgICAgICAg
ICAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOwor
ICAgICAgICB9CisgICAgICAgIGludCBiYXIodGhyZWFkIEZvbyogZm9vKQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gKCpmb28pWzBdICsgKCpmb28pWzFdOworICAgICAgICB9CisgICAg
ICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAgICAgICAg
ICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAgICAgcmV0
dXJuIGJhcigmZm9vKTsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOworfQorCit3
aGxzbFRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3Rs
eSA9IGFzeW5jICgpID0+Cit7CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAg
ICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBp
bnQgeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltd
KHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPng7
CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgICAgICAgICAgICAgIHJl
dHVybiAmZm9vLT55OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgaW50IGJhcih0aHJlYWQgRm9vKiBmb28pCisgICAgICAgICAgICB7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEZvbyBm
b287CisgICAgICAgICAgICAgICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICAgICAgZm9vLnkg
PSAxOTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFyKCZmb28pOworICAgICAgICAgICAgfQor
ICAgICAgICBgKTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRt
bD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcGx1cy1lcXVhbHMt
ZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1w
bHVzLWVxdWFscy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisK
K1BBU1MgcGx1c0VxdWFscyAKK1BBU1MgcGx1c0VxdWFsc1Jlc3VsdCAKKwpJbmRleDogTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRm
LTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IG92
ZXJyaWRlIHN1YnNjcmlwdHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhh
cm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMu
cGx1c0VxdWFscyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAg
IGludCBmb28oaW50IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHggKz0gNDI7CisgICAgICAg
ICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDM4NSldKSwgMzg1ICsg
NDIpOworfQorCit3aGxzbFRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBhc3luYyAoKSA9Pgorewor
ICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4geCArPSA0MjsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDM4
NSldKSwgMzg1ICsgNDIpOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0Pgor
PC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZlLXN0cnVj
dHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1y
ZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDQgQEAKKworUEFTUyBtdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdCAKK1BB
U1MgbXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gCisKSW5kZXg6IExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0i
bG9uZyI+Cis8dGl0bGU+VGVzdCBsb29wcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNs
LXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0
aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBv
cnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hs
c2xUZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdh
aXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAg
ICAgICAgICAgICBCYXIgYmFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3RydWN0IEJh
ciB7CisgICAgICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7
CisgICAgICAgIAorfQorCit3aGxzbFRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0V2l0aFBv
aW50ZXJzQnJva2VuID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAg
ICAgc3RydWN0IEZvbyB7CisgICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7CisgICAgICAgICAg
ICBpbnQgZm9vOworICAgICAgICB9CisgICAgICAgIHN0cnVjdCBCYXIgeworICAgICAgICAgICAg
dGhyZWFkIEZvbyogZm9vOworICAgICAgICAgICAgaW50IGJhcjsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAg
IEJhciBiYXI7CisgICAgICAgICAgICBmb28uZm9vID0gNTY0OworICAgICAgICAgICAgYmFyLmJh
ciA9IDUzOworICAgICAgICAgICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28tPmZvbzsK
KyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOwor
PC9zY3JpcHQ+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC10ZXJu
YXJ5LXNwZWMtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLXRlcm5hcnktc3BlYy10ZXN0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisr
KyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHRlcm5hcnlFeHByZXNzaW9u
IAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRl
c3QuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFy
eS1zcGVjLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgaW50IGJpdCBtYXRoLjwvdGl0bGU+Cis8
c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hs
c2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLnRlcm5hcnlFeHByZXNzaW9uID0gYXN5bmMgKCkg
PT4geworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4geCA8IDMgPyA0IDogNTsKKyAgICAgICAgfQorICAgICAg
ICBpbnQgYmFyKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4geCA8IDEwID8g
MTEgOiB4IDwgMTIgPyAxNCA6IDE1OworICAgICAgICB9CisgICAgICAgIGludCBiYXooaW50IHgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAzIDwgNCA/IHggOiA1OworICAgICAgICB9
CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQoNzY3KV0pLCA1KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNh
bGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMildKSwgNCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50
KDgpXSksIDExKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW21ha2VJbnQoOSldKSwgMTEpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMCldKSwgMTQpOworICAg
IGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFr
ZUludCgxMSldKSwgMTQpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMildKSwgMTUpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMyldKSwgMTUp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXoi
LCBbbWFrZUludCgxNCldKSwgMTQpOworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAor
ICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50
IHg7CisgICAgICAgICAgICAgICAgKDQgPCA1ID8geCA6IDcpID0gODsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgYCk7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAg
ICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAg
ICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgICAgICAoMCA8IDEgPyB4IDogeSkgPSA0MjsK
KyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBpbnQg
eTsKKyAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJigwIDwgMSA/IHggOiB5KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gKno7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworICAg
IGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IGZvbygpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICAgICAgaW50IHk7
CisgICAgICAgICAgICAgICAgdGhyZWFkIGludFtdIHogPSBAKDAgPCAxID8geCA6IHkpOworICAg
ICAgICAgICAgICAgIHJldHVybiAqejsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7CisgICAg
YXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBmbG9hdCB5
OworICAgICAgICAgICAgICAgIHJldHVybiA0IDwgNSA/IHggOiB5OworICAgICAgICAgICAgfQor
ICAgICAgICBgKTsKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAg
IGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA0IDwgNSA/
IDYgOiA3LjA7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworfQorCitydW5UZXN0cyh3aGxz
bFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50
LWxlbmd0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBAQAorCitQ
QVNTIGJpdEFuZFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGJpdE5vdFdyb25nQXJndW1lbnRM
ZW5ndGggCitQQVNTIGJpdE9yV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgYml0WG9yV3JvbmdB
cmd1bWVudExlbmd0aCAKK1BBU1MgZGVjV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgZGl2aWRl
V3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgZG90T3BlcmF0b3JTZXR0ZXJXcm9uZ0FyZ3VtZW50
TGVuZ3RoIAorUEFTUyBkb3RPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGdyZWF0
ZXJFcXVhbFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGdyZWF0ZXJXcm9uZ0FyZ3VtZW50TGVu
Z3RoIAorUEFTUyBpbmNXcm9uZ0FyZ3VtZW50TGVuZ3RoIAorUEFTUyBpbmRleE9wZXJhdG9yU2V0
dGVyV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRM
ZW5ndGggCitQQVNTIGxTaGlmdFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIG1pbnVzV3JvbmdB
cmd1bWVudExlbmd0aCAKK1BBU1MgbW9kdWxvV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgcGx1
c1dyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIHJTaGlmdFdyb25nQXJndW1lbnRMZW5ndGggCitQ
QVNTIHRpbWVzV3JvbmdBcmd1bWVudExlbmd0aCAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC13cm9uZy1hcmd1bWVudC1sZW5ndGguaHRtbAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtd3JvbmctYXJndW1lbnQtbGVuZ3RoLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9u
ZyI+Cis8dGl0bGU+VGVzdCBpbnQgYml0IG1hdGguPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93
aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1m
dW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisK
K3dobHNsVGVzdHMuYml0QW5kV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsg
fQorICAgICAgICAgICAgaW50IG9wZXJhdG9yJihGb28pIHsgcmV0dXJuIDMyOyB9CisgICAgICAg
IGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAg
ICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ImKEZvbykgeyByZXR1
cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3ImKEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAgIGApOworICAgICAg
ICAKK30KK3dobHNsVGVzdHMuYml0Tm90V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+
Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3J+KCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0
IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAg
ICAgICAgIGludCBvcGVyYXRvcn4oRm9vLCBGb28pIHsgcmV0dXJuIDUzNDsgfQorICAgICAgICBg
KTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmJpdE9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFz
eW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAg
ICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yfCgpIHsgcmV0dXJuIDMy
OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3J8
KEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3J8KEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAg
IGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuYml0WG9yV3JvbmdBcmd1bWVudExlbmd0aCA9
IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3JeKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAg
IAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZv
byB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcl4oRm9vKSB7IHJldHVybiA1MzQ7IH0KKyAg
ICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAg
ICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcl4oRm9vLCBG
b28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xU
ZXN0cy5kZWNXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvci0tKCkgeyByZXR1
cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAg
ICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVy
YXRvci0tKEZvbywgRm9vKSB7IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9
Cit3aGxzbFRlc3RzLmRpdmlkZVdyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9Pgorewor
ICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9wZXJhdG9y
LygpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVj
a0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAg
ICBpbnQgb3BlcmF0b3IvKEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAg
ICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBG
b28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3IvKEZvbywgRm9vLCBGb28pIHsgcmV0dXJu
IDc2OyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuZG90T3BlcmF0b3JT
ZXR0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVj
a0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAg
ICBGb28gb3BlcmF0b3IuZm9vPSgpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAg
ICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBG
b28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0b3IuZm9vPShGb28pIHsgcmV0dXJuIDQyOyB9
CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0b3IuZm9v
PShGb28sIGludCwgaW50KSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9
Cit3aGxzbFRlc3RzLmRvdE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+
Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3IuZm9vKCkgeyByZXR1cm4gNDI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3
YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAg
ICAgICAgICAgIGludCBvcGVyYXRvci5mb28oRm9vLCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAg
ICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuZ3JlYXRlckVxdWFsV3JvbmdBcmd1bWVu
dExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBg
CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAg
IGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAg
ICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oRm9vKSB7IHJl
dHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwo
CisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29s
IG9wZXJhdG9yPj0oRm9vLCBGb28sIEZvbykgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBgKTsK
KyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmdyZWF0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5
bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAg
IGJvb2wgb3BlcmF0b3I+KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBgKTsKKyAgICAgICAg
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9v
IHsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4oRm9vKSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPihGb28s
IEZvbywgRm9vKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3do
bHNsVGVzdHMuaW5jV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdh
aXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKygpIHsg
cmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwo
CisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQg
b3BlcmF0b3IrKyhGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAg
IAorfQord2hsc2xUZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aCA9
IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAg
ICAgICBpbnQgb3BlcmF0b3JbXT0oKSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAg
ICAgCisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3JbXT0oaW50KSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAg
YXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0o
aW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2Fp
dCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltdPShpbnQs
IGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKK30K
K3dobHNsVGVzdHMuaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9
PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9w
ZXJhdG9yW10oKSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdh
aXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3JbXShpbnQp
IHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0Zh
aWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltdKGludCwgaW50LCBpbnQp
IHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMubFNo
aWZ0V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tG
YWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3I8PCgpIHsgcmV0dXJuIDMy
OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3I8
PChGb28pIHsgcmV0dXJuIDUzNDsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAg
ICAgICAgaW50IG9wZXJhdG9yPDwoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAg
ICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0cy5taW51c1dyb25nQXJndW1lbnRMZW5ndGgg
PSBhc3luYyAoKSA9PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAg
ICAgICAgaW50IG9wZXJhdG9yLSgpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAg
ICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBG
b28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ItKEZvbywgRm9vLCBGb28pIHsgcmV0dXJu
IDc2OyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMubW9kdWxvV3JvbmdB
cmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAg
ICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IlKCkgeyByZXR1cm4gMzI7IH0KKyAgICAg
ICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAg
ICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciUoRm9vKSB7IHJl
dHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgK
KyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBv
cGVyYXRvciUoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAg
ICAgIAorfQord2hsc2xUZXN0cy5wbHVzV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+
Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3IrKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0
IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAg
ICAgICAgIGludCBvcGVyYXRvcisoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAg
ICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0cy5yU2hpZnRXcm9uZ0FyZ3VtZW50TGVuZ3Ro
ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAg
ICAgICAgIGludCBvcGVyYXRvcj4+KCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAg
ICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0
IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcj4+KEZvbykgeyByZXR1cm4gNTM0OyB9
CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3I+PihG
b28sIEZvbywgRm9vKSB7IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9Cit3
aGxzbFRlc3RzLnRpbWVzV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAg
YXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IqKCkg
eyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFp
bCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGlu
dCBvcGVyYXRvciooRm9vKSB7IHJldHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAor
ICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7
IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciooRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7
IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwv
c2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLXR5
cGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
d3JvbmctdHlwZXMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC13cm9uZy10eXBlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw4IEBACisKK1BBU1MgZGVjV3JvbmdUeXBlcyAKK1BBU1MgaW5jV3JvbmdUeXBlcyAKK1BB
U1MgZ3JlYXRlclRoYW5Xcm9uZ1JldHVyblR5cGUgCitQQVNTIGdyZWF0ZXJFcXVhbFdyb25nUmV0
dXJuVHlwZSAKK1BBU1MgaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGUgCitQQVNTIHNldHRl
cldpdGhNaXNtYXRjaGVkVHlwZSAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdy
b25nLXR5cGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdy
b25nLXR5cGVzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNs
LXdyb25nLXR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1l
b3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IGludCBiaXQgbWF0aC48L3RpdGxlPgor
PHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdo
bHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5kZWNXcm9uZ1R5cGVzID0gYXN5bmMgKCkgPT4K
K3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVy
YXRvci0tKGZsb2F0KSB7IHJldHVybiAzMjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9CisK
K3dobHNsVGVzdHMuaW5jV3JvbmdUeXBlcyA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hl
Y2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKyhmbG9hdCkgeyBy
ZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCit3aGxzbFRlc3RzLmdyZWF0
ZXJUaGFuV3JvbmdSZXR1cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0Zh
aWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcj4oaW50IGEsIGludCBiKSB7
IHJldHVybiBhICsgYjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9CisKK3dobHNsVGVzdHMu
Z3JlYXRlckVxdWFsV3JvbmdSZXR1cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcj49KGludCBhLCBp
bnQgYikgeyByZXR1cm4gYSArIGI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCit3aGxz
bFRlc3RzLmluZGV4U2V0dGVyV2l0aE1pc21hdGNoZWRUeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAg
ICBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGZsb2F0IG9wZXJhdG9yW10oaW50
LCB1aW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1LjQzOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KGludCwgdWludCwgaW50KQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1NDM7CisgICAgICAgICAgICB9
CisgICAgICAgIGApOworfQorCit3aGxzbFRlc3RzLnNldHRlcldpdGhNaXNtYXRjaGVkVHlwZSA9
IGFzeW5jICgpID0+Cit7CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBm
bG9hdCBvcGVyYXRvci5mb28oaW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJl
dHVybiA1LjQzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yLmZvbz0o
aW50LCBpbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDU0MzsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgYCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOworPC9z
Y3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373852</attachid>
            <date>2019-07-10 11:50:32 -0700</date>
            <delta_ts>2019-07-10 13:02:01 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>44653</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI0NzI5MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBACisyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNi
YXJhdGlAYXBwbGUuY29tPgorCisgICAgICAgIFtXSExTTCBJbXBvcnQgbW9yZSBKUyByZWZlcmVu
Y2Ugc3BlYyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk5NjUxCisKKyAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgUm9iaW4gTW9yaXNzZXQu
CisKKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbDog
QWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWdldHRlci1zZXR0ZXItdHlwZS1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUu
aHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLWxvb3BzLXNwZWMtdGVzdHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0
cy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtbnVsbC1hcnJheS1yZWYuaHRt
bDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3Jp
cHQuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRl
c3QuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxl
bmd0aC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYmdwdS93aGxzbC13cm9uZy1h
cmd1bWVudC1sZW5ndGguaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25n
LXR5cGVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViZ3B1L3dobHNsLXdyb25n
LXR5cGVzLmh0bWw6IEFkZGVkLgorCiAyMDE5LTA3LTA5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXSExTTF0gSW1wb3J0IGFub3RoZXIgcm91bmQgb2YgSlMg
c3BlYyB0ZXN0cwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9y
cy0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
YnVpbHRpbi12ZWN0b3JzLTItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMtMi1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3RvckdldHRlcnMgCitQQVNT
IGJ1aWx0aW5WZWN0b3JTZXR0ZXJzIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
YnVpbHRpbi12ZWN0b3JzLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDgwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9v
cHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7CisgICAg
InVpbnQiOiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rpb24sCisg
ICAgImZsb2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMgPSBbICJ1
aW50IiwgImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07Citjb25z
dCBlbGVtZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFsaXplckxp
c3QgPSBbIDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9yR2V0dGVycyA9
IGFzeW5jICgpID0+Cit7CisKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQgc3JjID0gIiI7
CisgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAgIGZvciAobGV0
IHNpemUgb2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc2l6ZTsg
aSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7dHlwZU5hbWV9
JHtzaXplfSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0gYCR7dHlwZU5h
bWV9ICR7ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5cGVOYW1lfSR7
c2l6ZX0oJHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAiKX0pOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB4LiR7ZWxlbWVudHNbaV19OworICAgICAg
ICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgYDsKKyAgICAgICAg
ICAgICAgICB0ZXN0cy5wdXNoKHsgdHlwZTogdHlwZU5hbWUsIG5hbWU6IGZ1bmN0aW9uTmFtZSwg
ZXhwZWN0YXRpb246IGluaXRpYWxpemVyTGlzdFtpXSB9KTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0KKworICAgIGxldCBwcm9ncmFtID0gc3JjOworICAgIGZvciAobGV0IHRlc3Qg
b2YgdGVzdHMpIHsKKyAgICAgICAgY29uc3QgY2hlY2tGdW5jID0gY2hlY2tGdW5jc1t0ZXN0LnR5
cGVdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNoZWNrRnVuYyhwcm9ncmFtLCB0ZXN0
Lm5hbWUsIFtdKSwgdGVzdC5leHBlY3RhdGlvbik7CisgICAgfQorfTsKKword2hsc2xUZXN0cy5i
dWlsdGluVmVjdG9yU2V0dGVycyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHRlc3RzID0gW107
CisgICAgbGV0IHNyYyA9ICIiOworICAgIGZvciAobGV0IHR5cGVOYW1lIG9mIHR5cGVOYW1lcykg
eworICAgICAgICBmb3IgKGxldCBzaXplIG9mIHNpemVzKSB7CisgICAgICAgICAgICBmb3IgKGxl
dCBpID0gMDsgaSA8IHNpemU7IGkrKykgeworICAgICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9u
TmFtZSA9IGAke3R5cGVOYW1lfSR7c2l6ZX0ke2VsZW1lbnRzW2ldfWA7CisgICAgICAgICAgICAg
ICAgc3JjICs9IGAke3R5cGVOYW1lfSAke2Z1bmN0aW9uTmFtZX0oKQorICAgICAgICAgICAgICAg
ICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICR7dHlwZU5hbWV9JHtzaXpl
fSB4ID0gJHt0eXBlTmFtZX0ke3NpemV9KCR7aW5pdGlhbGl6ZXJMaXN0LnNsaWNlKDAsIHNpemUp
LmpvaW4oIiwgIil9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB4LiR7ZWxlbWVudHNb
aV19ID0gMzQ7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHguJHtlbGVtZW50
c1tpXX07CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICBgOworICAgICAgICAgICAgICAgIHRlc3RzLnB1c2goeyB0eXBlOiB0eXBlTmFtZSwgbmFtZTog
ZnVuY3Rpb25OYW1lLCBleHBlY3RhdGlvbjogMzQgfSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisKKyAgICBsZXQgcHJvZ3JhbSA9IHNyYzsKKyAgICBmb3IgKGxldCB0ZXN0IG9m
IHRlc3RzKSB7CisgICAgICAgIGNvbnN0IGNoZWNrRnVuYyA9IGNoZWNrRnVuY3NbdGVzdC50eXBl
XTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjaGVja0Z1bmMocHJvZ3JhbSwgdGVzdC5u
YW1lLCBbXSksIHRlc3QuZXhwZWN0YXRpb24pOworICAgIH0KK30KKworcnVuVGVzdHMod2hsc2xU
ZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgYnVpbHRpblZlY3Rvcklu
ZGV4U2V0dGVycyAKK1BBU1MgYnVpbHRpblZlY3RvcnMgCisKSW5kZXg6IExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1idWlsdGluLXZlY3RvcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy93ZWJncHUvd2hsc2wtYnVpbHRpbi12ZWN0b3JzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWJ1aWx0aW4tdmVjdG9ycy5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMTkxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNl
dD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRl
c3QgbG9vcHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK2NvbnN0IGNoZWNrRnVuY3MgPSB7
CisgICAgInVpbnQiOiBjYWxsVWludEZ1bmN0aW9uLAorICAgICJpbnQiOiBjYWxsSW50RnVuY3Rp
b24sCisgICAgImZsb2F0IjogY2FsbEZsb2F0RnVuY3Rpb24KK307Citjb25zdCB0eXBlTmFtZXMg
PSBbICJ1aW50IiwgImludCIsICJmbG9hdCIgXTsKK2NvbnN0IHNpemVzID0gWyAyLCAzLCA0IF07
Citjb25zdCBlbGVtZW50cyA9IFsgIngiLCAieSIsICJ6IiwgInciIF07Citjb25zdCBpbml0aWFs
aXplckxpc3QgPSBbIDEsIDIsIDMsIDQgXTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ySW5k
ZXhTZXR0ZXJzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgdGVzdHMgPSBbXTsKKyAgICBsZXQg
c3JjID0gIiI7CisgICAgZm9yIChsZXQgdHlwZU5hbWUgb2YgdHlwZU5hbWVzKSB7CisgICAgICAg
IGZvciAobGV0IHNpemUgb2Ygc2l6ZXMpIHsKKyAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBp
IDwgc2l6ZTsgaSsrKSB7CisgICAgICAgICAgICAgICAgY29uc3QgZnVuY3Rpb25OYW1lID0gYCR7
dHlwZU5hbWV9JHtzaXplfSR7ZWxlbWVudHNbaV19YDsKKyAgICAgICAgICAgICAgICBzcmMgKz0g
YCR7dHlwZU5hbWV9ICR7ZnVuY3Rpb25OYW1lfSgpCisgICAgICAgICAgICAgICAgICAgICAgICB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHt0eXBlTmFtZX0ke3NpemV9IHggPSAke3R5
cGVOYW1lfSR7c2l6ZX0oJHtpbml0aWFsaXplckxpc3Quc2xpY2UoMCwgc2l6ZSkuam9pbigiLCAi
KX0pOworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhbJHtpfV0gPSAzNDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICByZXR1cm4geFske2l9XTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGA7CisgICAgICAgICAgICAgICAgdGVzdHMu
cHVzaCh7IHR5cGU6IHR5cGVOYW1lLCBuYW1lOiBmdW5jdGlvbk5hbWUsIGV4cGVjdGF0aW9uOiAz
NCB9KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKworICAgIGxldCBwcm9ncmFt
ID0gc3JjOworICAgIGZvciAobGV0IHRlc3Qgb2YgdGVzdHMpIHsKKyAgICAgICAgY29uc3QgY2hl
Y2tGdW5jID0gY2hlY2tGdW5jc1t0ZXN0LnR5cGVdOworICAgICAgICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGNoZWNrRnVuYyhwcm9ncmFtLCB0ZXN0Lm5hbWUsIFtdKSwgdGVzdC5leHBlY3RhdGlvbik7
CisgICAgfQorfTsKKword2hsc2xUZXN0cy5idWlsdGluVmVjdG9ycyA9IGFzeW5jICgpID0+Cit7
CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAg
ICAgICAgICBpbnQyIGEgPSBpbnQyKDMsIDQpOworICAgICAgICAgICAgcmV0dXJuIGFbMF07Cisg
ICAgICAgIH0KKyAgICAgICAgaW50IGZvbzIoKQorICAgICAgICB7CisgICAgICAgICAgICBpbnQy
IGEgPSBpbnQyKDMsIDQpOworICAgICAgICAgICAgaW50MyBiID0gaW50MyhhLCA1KTsKKyAgICAg
ICAgICAgIHJldHVybiBiWzFdOworICAgICAgICB9CisgICAgICAgIGludCBmb28zKCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaW50MyBhID0gaW50MygzLCA0LCA1KTsKKyAgICAgICAgICAgIGlu
dDQgYiA9IGludDQoNiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgZm9vNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDIgYSA9IGludDIo
MywgNCk7CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDUsIDYpOworICAgICAgICAgICAgaW50
NCBjID0gaW50NChhLCBiKTsKKyAgICAgICAgICAgIHJldHVybiBjWzJdOworICAgICAgICB9Cisg
ICAgICAgIGJvb2wgZm9vNSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGludDQgYSA9IGludDQo
MywgNCwgNSwgNik7CisgICAgICAgICAgICBpbnQyIGIgPSBpbnQyKDQsIDUpOworICAgICAgICAg
ICAgaW50NCBjID0gaW50NCgzLCBiLCA2KTsKKyAgICAgICAgICAgIHJldHVybiBhID09IGM7Cisg
ICAgICAgIH0KKyAgICAgICAgYm9vbCBmb282KCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50
MiBhID0gaW50Mig0LCA1KTsKKyAgICAgICAgICAgIGludDMgYiA9IGludDMoMywgYSk7CisgICAg
ICAgICAgICBpbnQzIGMgPSBpbnQzKDMsIDQsIDYpOworICAgICAgICAgICAgcmV0dXJuIGIgPT0g
YzsKKyAgICAgICAgfQorICAgICAgICB1aW50IGZvb3UoKQorICAgICAgICB7CisgICAgICAgICAg
ICB1aW50MiBhID0gdWludDIoMywgNCk7CisgICAgICAgICAgICByZXR1cm4gYVswXTsKKyAgICAg
ICAgfQorICAgICAgICB1aW50IGZvb3UyKCkKKyAgICAgICAgeworICAgICAgICAgICAgdWludDIg
YSA9IHVpbnQyKDMsIDQpOworICAgICAgICAgICAgdWludDMgYiA9IHVpbnQzKGEsIDUpOworICAg
ICAgICAgICAgcmV0dXJuIGJbMV07CisgICAgICAgIH0KKyAgICAgICAgdWludCBmb291MygpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIHVpbnQzIGEgPSB1aW50MygzLCA0LCA1KTsKKyAgICAgICAg
ICAgIHVpbnQ0IGIgPSB1aW50NCg2LCBhKTsKKyAgICAgICAgICAgIHJldHVybiBiWzFdOworICAg
ICAgICB9CisgICAgICAgIHVpbnQgZm9vdTQoKQorICAgICAgICB7CisgICAgICAgICAgICB1aW50
MiBhID0gdWludDIoMywgNCk7CisgICAgICAgICAgICB1aW50MiBiID0gdWludDIoNSwgNik7Cisg
ICAgICAgICAgICB1aW50NCBjID0gdWludDQoYSwgYik7CisgICAgICAgICAgICByZXR1cm4gY1sy
XTsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb3U1KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgdWludDQgYSA9IHVpbnQ0KDMsIDQsIDUsIDYpOworICAgICAgICAgICAgdWludDIgYiA9IHVp
bnQyKDQsIDUpOworICAgICAgICAgICAgdWludDQgYyA9IHVpbnQ0KDMsIGIsIDYpOworICAgICAg
ICAgICAgcmV0dXJuIGEgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb3U2KCkKKyAg
ICAgICAgeworICAgICAgICAgICAgdWludDIgYSA9IHVpbnQyKDQsIDUpOworICAgICAgICAgICAg
dWludDMgYiA9IHVpbnQzKDMsIGEpOworICAgICAgICAgICAgdWludDMgYyA9IHVpbnQzKDMsIDQs
IDYpOworICAgICAgICAgICAgcmV0dXJuIGIgPT0gYzsKKyAgICAgICAgfQorICAgICAgICBmbG9h
dCBmb29mKCkKKyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQu
KTsKKyAgICAgICAgICAgIHJldHVybiBhWzBdOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZv
b2YyKCkKKyAgICAgICAgeworICAgICAgICAgICAgZmxvYXQyIGEgPSBmbG9hdDIoMy4sIDQuKTsK
KyAgICAgICAgICAgIGZsb2F0MyBiID0gZmxvYXQzKGEsIDUuKTsKKyAgICAgICAgICAgIHJldHVy
biBiWzFdOworICAgICAgICB9CisgICAgICAgIGZsb2F0IGZvb2YzKCkKKyAgICAgICAgeworICAg
ICAgICAgICAgZmxvYXQzIGEgPSBmbG9hdDMoMy4sIDQuLCA1Lik7CisgICAgICAgICAgICBmbG9h
dDQgYiA9IGZsb2F0NCg2LiwgYSk7CisgICAgICAgICAgICByZXR1cm4gYlsxXTsKKyAgICAgICAg
fQorICAgICAgICBmbG9hdCBmb29mNCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZsb2F0MiBh
ID0gZmxvYXQyKDMuLCA0Lik7CisgICAgICAgICAgICBmbG9hdDIgYiA9IGZsb2F0Mig1LiwgNi4p
OworICAgICAgICAgICAgZmxvYXQ0IGMgPSBmbG9hdDQoYSwgYik7CisgICAgICAgICAgICByZXR1
cm4gY1syXTsKKyAgICAgICAgfQorICAgICAgICBib29sIGZvb2Y1KCkKKyAgICAgICAgeworICAg
ICAgICAgICAgZmxvYXQ0IGEgPSBmbG9hdDQoMy4sIDQuLCA1LiwgNi4pOworICAgICAgICAgICAg
ZmxvYXQyIGIgPSBmbG9hdDIoNC4sIDUuKTsKKyAgICAgICAgICAgIGZsb2F0NCBjID0gZmxvYXQ0
KDMuLCBiLCA2Lik7CisgICAgICAgICAgICByZXR1cm4gYSA9PSBjOworICAgICAgICB9CisgICAg
ICAgIGJvb2wgZm9vZjYoKQorICAgICAgICB7CisgICAgICAgICAgICBmbG9hdDIgYSA9IGZsb2F0
Mig0LiwgNS4pOworICAgICAgICAgICAgZmxvYXQzIGIgPSBmbG9hdDMoMy4sIGEpOworICAgICAg
ICAgICAgZmxvYXQzIGMgPSBmbG9hdDMoMy4sIDQuLCA2Lik7CisgICAgICAgICAgICByZXR1cm4g
YiA9PSBjOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJ
bnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAzKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgNCk7CisgICAgYXNzZXJ0
X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDMpOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb280Iiwg
W10pLCA1KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxCb29sRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzUiLCBbXSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFsc2UpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbFVpbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vdSIsIFtdKSwgMyk7CisgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJmb291MiIsIFtdKSwg
NCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9uKHByb2dyYW0sICJm
b291MyIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsVWludEZ1bmN0aW9u
KHByb2dyYW0sICJmb291NCIsIFtdKSwgNSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxs
Qm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NSIsIFtdKSwgdHJ1ZSk7CisgICAgYXNzZXJ0X2Vx
dWFscyhhd2FpdCBjYWxsQm9vbEZ1bmN0aW9uKHByb2dyYW0sICJmb291NiIsIFtdKSwgZmFsc2Up
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24ocHJvZ3JhbSwgImZv
b2YiLCBbXSksIDMpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEZsb2F0RnVuY3Rpb24o
cHJvZ3JhbSwgImZvb2YyIiwgW10pLCA0KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxG
bG9hdEZ1bmN0aW9uKHByb2dyYW0sICJmb29mMyIsIFtdKSwgMyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsRmxvYXRGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjQiLCBbXSksIDUpOworICAg
IGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9ncmFtLCAiZm9vZjUiLCBb
XSksIHRydWUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEJvb2xGdW5jdGlvbihwcm9n
cmFtLCAiZm9vZjYiLCBbXSksIGZhbHNlKTsKK307CisKK3J1blRlc3RzKHdobHNsVGVzdHMpOwor
PC9zY3JpcHQ+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0
ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXItc2V0dGVyLXR5cGUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIGdldHRlclR5cGUgCitQ
QVNTIHNldHRlclR5cGUgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1nZXR0ZXIt
c2V0dGVyLXR5cGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
Z2V0dGVyLXNldHRlci10eXBlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWdldHRlci1zZXR0ZXItdHlwZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsMTAzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
KzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgbG9vcHMu
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNsVGVzdHMuZ2V0dGVyVHlwZSA9IGFzeW5j
ICgpID0+IHsKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueCh0
aHJlYWQgaW50W10gZm9vKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOwor
ICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIGludCBv
cGVyYXRvci54KGludFszXSBmb28pCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29b
MF07CisgICAgICAgIH0KKyAgICBgKTsgCisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAg
aW50IG9wZXJhdG9yW10odGhyZWFkIGludFtdIGZvbywgaW50IGluZGV4KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gZm9vW2luZGV4XTsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBh
d2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnQgb3BlcmF0b3IueChpbnRbM10gZm9vKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gZm9vWzBdOworICAgICAgICB9CisgICAgYCk7IAor
ICAgIGF3YWl0IGNoZWNrRmFpbChgCisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAg
aW50IHg7CisgICAgICAgIH0KKyAgICAgICAgaW50IG9wZXJhdG9yW10oRm9vIGZvbywgdWludDQg
aW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBmb29baW5kZXgueF07CisgICAg
ICAgIH0KKyAgICBgKTsgCit9OworCit3aGxzbFRlc3RzLnNldHRlclR5cGUgPSBhc3luYyAoKSA9
PiB7CisgICAgYXdhaXQgY2hlY2tGYWlsKGAKKyAgICAgICAgdGhyZWFkIGludFtdIG9wZXJhdG9y
Lng9KHRocmVhZCBpbnRbXSBmb28sIHVpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0
dXJuIGZvbzsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAg
ICAgICBpbnRbM10gb3BlcmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7Cisg
ICAgICAgICAgICByZXR1cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNo
ZWNrRmFpbChgCisgICAgICAgIHRocmVhZCBpbnRbXSBvcGVyYXRvcltdPSh0aHJlYWQgaW50W10g
Zm9vLCB1aW50IHgsIHVpbnQgeSkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGZvbzsK
KyAgICAgICAgfQorICAgIGApOyAKKyAgICBhd2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBpbnRb
M10gb3BlcmF0b3IueD0oaW50WzNdIGZvbywgdWludCB4KQorICAgICAgICB7CisgICAgICAgICAg
ICByZXR1cm4gZm9vOworICAgICAgICB9CisgICAgYCk7IAorICAgIGF3YWl0IGNoZWNrRmFpbChg
CisgICAgICAgIHN0cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgIH0KKyAg
ICAgICAgRm9vIG9wZXJhdG9yW109KEZvbyBmb28sIGZsb2F0NCB5LCB1aW50IHopCisgICAgICAg
IHsKKyAgICAgICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgIGApOyAKKyAgICBh
d2FpdCBjaGVja0ZhaWwoYAorICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgIGludCB4
OworICAgICAgICB9CisgICAgICAgIGludCBvcGVyYXRvci55KEZvbyBmb28pCisgICAgICAgIHsK
KyAgICAgICAgICAgIHJldHVybiBmb28ueDsKKyAgICAgICAgfQorICAgICAgICBGb28gb3BlcmF0
b3IueT0oRm9vIGZvbywgaW50NCB4KQorICAgICAgICB7CisgICAgICAgICAgICBGb28gcmVzdWx0
OworICAgICAgICAgICAgZm9vLnggPSB4Lng7CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0Owor
ICAgICAgICB9CisgICAgYCk7IAorfTsKKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3Njcmlw
dD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlmLXN0YXRlbWVu
dC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlm
LXN0YXRlbWVudC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLWlmLXN0YXRlbWVudC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw2IEBACisKK1BBU1MgaWZTdGF0ZW1lbnQgCitQQVNTIGlmRWxzZVN0YXRlbWVudCAKK1BB
U1MgaWZFbHNlSWZTdGF0ZW1lbnQgCitQQVNTIGlmRWxzZUlmRWxzZVN0YXRlbWVudCAKKwpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWlmLXN0YXRlbWVudC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1pZi1zdGF0ZW1lbnQuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtaWYtc3RhdGVtZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMDcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8
dGl0bGU+VGVzdCBpbnQgYml0IG1hdGguPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10
ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlv
bnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNs
VGVzdHMuaWZTdGF0ZW1lbnQgPSBhc3luYyAoKSA9PgoreworICAgIGxldCBwcm9ncmFtID0gYAor
ICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQgeSA9IDY7
CisgICAgICAgICAgICBpZiAoeCA9PSA3KSB7CisgICAgICAgICAgICAgICAgeSA9IDg7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAgICAgfQorICAgIGA7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KDMpXSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludCg0KV0pLCA2KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0
IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNSldKSwgNik7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KDYpXSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludCg3KV0pLCA4KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0
IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOCldKSwgNik7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KDkpXSksIDYpOworfQorCit3aGxzbFRlc3RzLmlmRWxzZVN0YXRlbWVudCA9IGFzeW5jICgp
ID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oaW50IHgpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGludCB5ID0gNjsKKyAgICAgICAgICAgIGlmICh4ID09IDcpIHsK
KyAgICAgICAgICAgICAgICB5ID0gODsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgeSA9IDk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAg
ICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KDMpXSksIDkpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg0KV0pLCA5KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQoNSldKSwgOSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KDYpXSksIDkpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQg
Y2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg3KV0pLCA4KTsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQoOCldKSwgOSk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KDkpXSksIDkpOworfQorCit3aGxzbFRlc3RzLmlmRWxzZUlm
U3RhdGVtZW50ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAg
aW50IGZvbyhpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHkgPSA2OworICAgICAg
ICAgICAgaWYgKHggPT0gNykgeworICAgICAgICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAg
fSBlbHNlIGlmICh4ID09IDgpIHsKKyAgICAgICAgICAgICAgICB5ID0gOTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMyld
KSwgNik7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KDQpXSksIDYpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbElu
dEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg1KV0pLCA2KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNild
KSwgNik7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KDcpXSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbElu
dEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludCg4KV0pLCA5KTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOSld
KSwgNik7Cit9CisKK3dobHNsVGVzdHMuaWZFbHNlSWZFbHNlU3RhdGVtZW50ID0gYXN5bmMgKCkg
PT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbyhpbnQgeCkKKyAgICAg
ICAgeworICAgICAgICAgICAgaW50IHkgPSA2OworICAgICAgICAgICAgaWYgKHggPT0gNykgewor
ICAgICAgICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAgfSBlbHNlIGlmICh4ID09IDgpIHsK
KyAgICAgICAgICAgICAgICB5ID0gOTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICAgICAgeSA9IDEwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgcmV0dXJuIHk7CisgICAg
ICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludCgzKV0pLCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhhd2Fp
dCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDQpXSksIDEwKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQoNSldKSwgMTApOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludCg2KV0pLCAxMCk7CisgICAgYXNzZXJ0X2VxdWFscyhh
d2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDcpXSksIDgpOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludCg4KV0pLCA5KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoOSldKSwgMTApOworfQorCitydW5UZXN0cyh3aGxz
bFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLWxvb3BzLXNwZWMtdGVzdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC1sb29wcy1zcGVjLXRlc3RzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtbG9vcHMtc3BlYy10ZXN0cy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgZG9XaGlsZSAKK1BB
U1Mgc2ltcGxlV2hpbGUgCisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1sb29wcy1z
cGVjLXRlc3RzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLWxv
b3BzLXNwZWMtdGVzdHMuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtbG9vcHMtc3BlYy10ZXN0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEg
bmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBsb29wcy48L3RpdGxl
PgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0
IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5kb1doaWxlID0gYXN5bmMgKCkgPT4KK3sK
KyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgaW50IGZvbzEoaW50IHgpCisgICAgICAgIHsK
KyAgICAgICAgICAgIGludCB5ID0gNzsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAg
ICB5ID0gODsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0gd2hpbGUgKHgg
PCAxMCk7CisgICAgICAgICAgICByZXR1cm4geTsKKyAgICAgICAgfQorICAgICAgICBpbnQgZm9v
MihpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgaW50IHkgPSA3OworICAgICAgICAgICAg
ZG8geworICAgICAgICAgICAgICAgIHkgPSA4OworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgfSB3aGlsZSAoeSA9PSA3KTsKKyAgICAgICAgICAgIHJldHVybiB5OworICAgICAg
ICB9CisgICAgICAgIGludCBmb28zKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBpbnQg
c3VtID0gMDsKKyAgICAgICAgICAgIGRvIHsKKyAgICAgICAgICAgICAgICBpZiAoeCA9PSAxMSkg
eworICAgICAgICAgICAgICAgICAgICB4ID0gMTU7CisgICAgICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdW0gPSBzdW0gKyB4Owor
ICAgICAgICAgICAgICAgIHggPSB4ICsgMTsKKyAgICAgICAgICAgIH0gd2hpbGUgKHggPCAxMyk7
CisgICAgICAgICAgICByZXR1cm4gc3VtOworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KDEp
XSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xIiwgW21ha2VJbnQoMTEpXSksIDgpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2Fs
bEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQoMSldKSwgOCk7CisgICAgYXNz
ZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUlu
dCg5KV0pLCAxOSk7Cit9CisKK3dobHNsVGVzdHMuc2ltcGxlV2hpbGUgPSBhc3luYyAoKSA9Pgor
eworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAgICB7
CisgICAgICAgICAgICB3aGlsZSAoeCA8IDEzKQorICAgICAgICAgICAgICAgIHggPSB4ICogMjsK
KyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1
YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMSldKSwg
MTYpOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW51bGwtYXJyYXktcmVmLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KKzx0aXRsZT5UZXN0IGxvb3BzLjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVz
dC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25z
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRl
c3RzLmRlcmVmZXJlbmNlRGVmYXVsdE51bGxBcnJheVJlZiA9IGFzeW5jICgpID0+Cit7CisgICAg
bGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAg
ICB0aHJlYWQgaW50W10gcDsKKyAgICAgICAgICAgIHJldHVybiBwWzBdOworICAgICAgICB9Cisg
ICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW10pLCAwKTsKK30KKword2hsc2xUZXN0cy5kZWZhdWx0SW5pdGlhbGl6ZWROdWxsQXJy
YXlSZWZJbnRMaXRlcmFsID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAg
ICAgICAgaW50IGZvbygpCisgICAgICAgIHsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSBwID0g
bnVsbDsKKyAgICAgICAgICAgIHJldHVybiBwWzBdOworICAgICAgICB9CisgICAgYDsKKyAgICBh
c3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCAw
KTsKK30KKword2hsc2xUZXN0cy5wYXNzTnVsbFRvUHRyTW9ub21vcnBoaWNBcnJheVJlZiA9IGFz
eW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIGludCBmb28odGhyZWFk
IGludFtdIHB0cikKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIHB0clswdV07CisgICAg
ICAgIH0KKyAgICAgICAgaW50IGJhcigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiBm
b28obnVsbCk7CisgICAgICAgIH0KKyAgICBgOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2Fs
bEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbXSksIDApOworfQorCit3aGxzbFRlc3RzLmxv
YWROdWxsID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIHZvaWQgc2luayh0aHJlYWQgaW50KiB4KSB7IH0KKyAgICAgICAgICAgIHZv
aWQgZm9vKCkgeyBzaW5rKCpudWxsKTsgfQorICAgICAgICBgKTsKK30KKworcnVuVGVzdHMod2hs
c2xUZXN0cyk7Cis8L3NjcmlwdD4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlw
dC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2IEBACisKK1BBU1Mgb3Zl
cnJpZGVTdWJzY3JpcHRTdHJ1Y3QgCitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kRG9T
dG9yZXMgCitQQVNTIG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnMgCitQQVNT
IG92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNvcnJlY3RseSAKKwpJbmRl
eDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLW92ZXJyaWRlLXN1YnNjcmlwdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1vdmVycmlkZS1zdWJzY3JpcHQuaHRt
bAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtb3ZlcnJpZGUtc3Vi
c2NyaXB0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMjggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIg
Y29udGVudD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBvdmVycmlkZSBzdWJzY3JpcHRzLjwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29uc3Qg
d2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0ID0g
YXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAgICAgc3RydWN0IEZvbyB7
CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIGludCB5OworICAgICAgICB9CisgICAg
ICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkK
KyAgICAgICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCisgICAgICAgICAgICAgICAg
cmV0dXJuICZmb28tPng7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0gMSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gJmZvby0+eTsKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB9
CisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAg
ICAgICAgICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAg
ICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXSAqIDM7CisgICAgICAgIH0KKyAgICBgOworICAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDQ5
OCArIDE5ICogMyk7Cit9CisKK3dobHNsVGVzdHMub3ZlcnJpZGVTdWJzY3JpcHRTdHJ1Y3RBbmRE
b1N0b3JlcyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisgICAgICAgIHN0
cnVjdCBGb28geworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICBpbnQgeTsKKyAgICAg
ICAgfQorICAgICAgICB0aHJlYWQgaW50KiBvcGVyYXRvciZbXSh0aHJlYWQgRm9vKiBmb28sIHVp
bnQgaW5kZXgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChpbmRleCA9PSAwKQorICAgICAg
ICAgICAgICAgIHJldHVybiAmZm9vLT54OworICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCisg
ICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPnk7CisgICAgICAgICAgICByZXR1cm4gbnVsbDsK
KyAgICAgICAgfQorICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgRm9v
IGZvbzsKKyAgICAgICAgICAgIGZvb1swXSA9IDQ5ODsKKyAgICAgICAgICAgIGZvb1sxXSA9IDE5
OworICAgICAgICAgICAgcmV0dXJuIGZvby54ICsgZm9vLnk7CisgICAgICAgIH0KKyAgICBgOwor
ICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIDQ5OCArIDE5KTsKK30KKword2hsc2xUZXN0cy5vdmVycmlkZVN1YnNjcmlwdFN0cnVjdEFu
ZFVzZVBvaW50ZXJzID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAKKyAgICAg
ICAgc3RydWN0IEZvbyB7CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIGludCB5Owor
ICAgICAgICB9CisgICAgICAgIHRocmVhZCBpbnQqIG9wZXJhdG9yJltdKHRocmVhZCBGb28qIGZv
bywgdWludCBpbmRleCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKGluZGV4ID09IDApCisg
ICAgICAgICAgICAgICAgcmV0dXJuICZmb28tPng7CisgICAgICAgICAgICBpZiAoaW5kZXggPT0g
MSkKKyAgICAgICAgICAgICAgICByZXR1cm4gJmZvby0+eTsKKyAgICAgICAgICAgIHJldHVybiBu
dWxsOworICAgICAgICB9CisgICAgICAgIGludCBiYXIodGhyZWFkIEZvbyogZm9vKQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4gKCpmb28pWzBdICsgKCpmb28pWzFdOworICAgICAgICB9
CisgICAgICAgIGludCBmb28oKQorICAgICAgICB7CisgICAgICAgICAgICBGb28gZm9vOworICAg
ICAgICAgICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICBmb28ueSA9IDE5OworICAgICAgICAg
ICAgcmV0dXJuIGJhcigmZm9vKTsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgNDk4ICsgMTkpOwor
fQorCit3aGxzbFRlc3RzLm92ZXJyaWRlU3Vic2NyaXB0U3RydWN0QW5kVXNlUG9pbnRlcnNJbmNv
cnJlY3RseSA9IGFzeW5jICgpID0+Cit7CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAg
ICAgICAgICBzdHJ1Y3QgRm9vIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAg
ICAgICBpbnQgeTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRocmVhZCBpbnQqIG9wZXJh
dG9yJltdKHRocmVhZCBGb28qIGZvbywgdWludCBpbmRleCkKKyAgICAgICAgICAgIHsKKyAgICAg
ICAgICAgICAgICBpZiAoaW5kZXggPT0gMCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICZm
b28tPng7CisgICAgICAgICAgICAgICAgaWYgKGluZGV4ID09IDEpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAmZm9vLT55OworICAgICAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgaW50IGJhcih0aHJlYWQgRm9vKiBmb28pCisgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZvb1swXSArIGZvb1sxXTsKKyAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IEZvbyBmb287CisgICAgICAgICAgICAgICAgZm9vLnggPSA0OTg7CisgICAgICAgICAgICAgICAg
Zm9vLnkgPSAxOTsKKyAgICAgICAgICAgICAgICByZXR1cm4gYmFyKCZmb28pOworICAgICAgICAg
ICAgfQorICAgICAgICBgKTsKK30KKworcnVuVGVzdHMod2hsc2xUZXN0cyk7Cis8L3NjcmlwdD4K
KzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcGx1cy1l
cXVhbHMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1wbHVzLWVxdWFscy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACisKK1BBU1MgcGx1c0VxdWFscyAKK1BBU1MgcGx1c0VxdWFsc1Jlc3VsdCAKKwpJbmRleDog
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwJKG5vbmV4aXN0ZW50KQor
KysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXBsdXMtZXF1YWxzLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5U
ZXN0IG92ZXJyaWRlIHN1YnNjcmlwdHMuPC90aXRsZT4KKzxzY3JpcHQgc3JjPSJqcy93aGxzbC10
ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dlYmdwdS1mdW5jdGlv
bnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0ge307CisKK3dobHNs
VGVzdHMucGx1c0VxdWFscyA9IGFzeW5jICgpID0+Cit7CisgICAgbGV0IHByb2dyYW0gPSBgCisg
ICAgICAgIGludCBmb28oaW50IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHggKz0gNDI7Cisg
ICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFs
cyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KDM4NSldKSwg
Mzg1ICsgNDIpOworfQorCit3aGxzbFRlc3RzLnBsdXNFcXVhbHNSZXN1bHQgPSBhc3luYyAoKSA9
PgoreworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQorICAgICAg
ICB7CisgICAgICAgICAgICByZXR1cm4geCArPSA0MjsKKyAgICAgICAgfQorICAgIGA7CisgICAg
YXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KDM4NSldKSwgMzg1ICsgNDIpOworfQorCitydW5UZXN0cyh3aGxzbFRlc3RzKTsKKzwvc2Ny
aXB0PgorPC9odG1sPgorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtcmVjdXJzaXZl
LXN0cnVjdHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93
aGxzbC1yZWN1cnNpdmUtc3RydWN0cy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5
b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXJlY3Vyc2l2ZS1zdHJ1Y3RzLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKworUEFTUyBtdXR1YWxseVJlY3Vyc2l2ZVN0cnVj
dCAKK1BBU1MgbXV0dWFsbHlSZWN1cnNpdmVTdHJ1Y3RXaXRoUG9pbnRlcnNCcm9rZW4gCisKSW5k
ZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3RydWN0cy5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL3dlYmdwdS93aGxzbC1yZWN1cnNpdmUtc3Ry
dWN0cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBsb29wcy48L3RpdGxlPgorPHNjcmlwdCBzcmM9Impz
L3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0ianMvd2ViZ3B1
LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2NvbnN0IHdobHNsVGVzdHMgPSB7fTsK
Kword2hsc2xUZXN0cy5tdXR1YWxseVJlY3Vyc2l2ZVN0cnVjdCA9IGFzeW5jICgpID0+Cit7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsK
KyAgICAgICAgICAgICAgICBCYXIgYmFyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgc3Ry
dWN0IEJhciB7CisgICAgICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgYCk7CisgICAgICAgIAorfQorCit3aGxzbFRlc3RzLm11dHVhbGx5UmVjdXJzaXZlU3RydWN0
V2l0aFBvaW50ZXJzQnJva2VuID0gYXN5bmMgKCkgPT4KK3sKKyAgICBsZXQgcHJvZ3JhbSA9IGAK
KyAgICAgICAgc3RydWN0IEZvbyB7CisgICAgICAgICAgICB0aHJlYWQgQmFyKiBiYXI7CisgICAg
ICAgICAgICBpbnQgZm9vOworICAgICAgICB9CisgICAgICAgIHN0cnVjdCBCYXIgeworICAgICAg
ICAgICAgdGhyZWFkIEZvbyogZm9vOworICAgICAgICAgICAgaW50IGJhcjsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgeworICAgICAgICAgICAgRm9vIGZvbzsKKyAgICAg
ICAgICAgIEJhciBiYXI7CisgICAgICAgICAgICBmb28uZm9vID0gNTY0OworICAgICAgICAgICAg
YmFyLmJhciA9IDUzOworICAgICAgICAgICAgcmV0dXJuIGZvby5iYXItPmJhciAtIGJhci5mb28t
PmZvbzsKKyAgICAgICAgfQorICAgIGA7CisgICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgMCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVz
dHMpOworPC9zY3JpcHQ+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRlc3RzL3dlYmdwdS93aGxz
bC10ZXJuYXJ5LXNwZWMtdGVzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvd2ViZ3B1L3dobHNsLXRlcm5hcnktc3BlYy10ZXN0LWV4cGVjdGVkLnR4dAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRlc3QtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIHRlcm5hcnlFeHBy
ZXNzaW9uIAorCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1zcGVjLXRl
c3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtdGVybmFyeS1z
cGVjLXRlc3QuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wt
dGVybmFyeS1zcGVjLXRlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDk1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9
InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPlRlc3QgaW50IGJpdCBtYXRoLjwvdGl0
bGU+Cis8c2NyaXB0IHNyYz0ianMvd2hsc2wtdGVzdC1oYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSJqcy93ZWJncHUtZnVuY3Rpb25zLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorY29u
c3Qgd2hsc2xUZXN0cyA9IHt9OworCit3aGxzbFRlc3RzLnRlcm5hcnlFeHByZXNzaW9uID0gYXN5
bmMgKCkgPT4geworICAgIGxldCBwcm9ncmFtID0gYAorICAgICAgICBpbnQgZm9vKGludCB4KQor
ICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4geCA8IDMgPyA0IDogNTsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgYmFyKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4geCA8
IDEwID8gMTEgOiB4IDwgMTIgPyAxNCA6IDE1OworICAgICAgICB9CisgICAgICAgIGludCBiYXoo
aW50IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJldHVybiAzIDwgNCA/IHggOiA1OworICAg
ICAgICB9CisgICAgYDsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoNzY3KV0pLCA1KTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3
YWl0IGNhbGxJbnRGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQoMildKSwgNCk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhhd2FpdCBjYWxsSW50RnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFtt
YWtlSW50KDgpXSksIDExKTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IGNhbGxJbnRGdW5jdGlv
bihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQoOSldKSwgMTEpOworICAgIGFzc2VydF9lcXVhbHMo
YXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMCldKSwgMTQp
OworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIi
LCBbbWFrZUludCgxMSldKSwgMTQpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1
bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMildKSwgMTUpOworICAgIGFzc2VydF9l
cXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFrZUludCgxMyld
KSwgMTUpOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgY2FsbEludEZ1bmN0aW9uKHByb2dyYW0s
ICJiYXoiLCBbbWFrZUludCgxNCldKSwgMTQpOworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAg
ICAgYAorICAgICAgICAgICAgaW50IGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgaW50IHg7CisgICAgICAgICAgICAgICAgKDQgPCA1ID8geCA6IDcpID0gODsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgYCk7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAg
ICAgICAgICBpbnQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsK
KyAgICAgICAgICAgICAgICBpbnQgeTsKKyAgICAgICAgICAgICAgICAoMCA8IDEgPyB4IDogeSkg
PSA0MjsKKyAgICAgICAgICAgICAgICByZXR1cm4geDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
YCk7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9v
KCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAg
ICBpbnQgeTsKKyAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJigwIDwgMSA/IHggOiB5
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gKno7CisgICAgICAgICAgICB9CisgICAgICAgIGAp
OworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IGZvbygp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICAgICAg
aW50IHk7CisgICAgICAgICAgICAgICAgdGhyZWFkIGludFtdIHogPSBAKDAgPCAxID8geCA6IHkp
OworICAgICAgICAgICAgICAgIHJldHVybiAqejsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgZm9vKCkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgICAgICBm
bG9hdCB5OworICAgICAgICAgICAgICAgIHJldHVybiA0IDwgNSA/IHggOiB5OworICAgICAgICAg
ICAgfQorICAgICAgICBgKTsKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAg
ICAgICAgIGludCBmb28oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA0
IDwgNSA/IDYgOiA3LjA7CisgICAgICAgICAgICB9CisgICAgICAgIGApOworfQorCitydW5UZXN0
cyh3aGxzbFRlc3RzKTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2Vi
Z3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdyb25nLWFy
Z3VtZW50LWxlbmd0aC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMSBA
QAorCitQQVNTIGJpdEFuZFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGJpdE5vdFdyb25nQXJn
dW1lbnRMZW5ndGggCitQQVNTIGJpdE9yV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgYml0WG9y
V3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgZGVjV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1Mg
ZGl2aWRlV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgZG90T3BlcmF0b3JTZXR0ZXJXcm9uZ0Fy
Z3VtZW50TGVuZ3RoIAorUEFTUyBkb3RPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggCitQQVNT
IGdyZWF0ZXJFcXVhbFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIGdyZWF0ZXJXcm9uZ0FyZ3Vt
ZW50TGVuZ3RoIAorUEFTUyBpbmNXcm9uZ0FyZ3VtZW50TGVuZ3RoIAorUEFTUyBpbmRleE9wZXJh
dG9yU2V0dGVyV3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgaW5kZXhPcGVyYXRvcldyb25nQXJn
dW1lbnRMZW5ndGggCitQQVNTIGxTaGlmdFdyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIG1pbnVz
V3JvbmdBcmd1bWVudExlbmd0aCAKK1BBU1MgbW9kdWxvV3JvbmdBcmd1bWVudExlbmd0aCAKK1BB
U1MgcGx1c1dyb25nQXJndW1lbnRMZW5ndGggCitQQVNTIHJTaGlmdFdyb25nQXJndW1lbnRMZW5n
dGggCitQQVNTIHRpbWVzV3JvbmdBcmd1bWVudExlbmd0aCAKKwpJbmRleDogTGF5b3V0VGVzdHMv
d2ViZ3B1L3dobHNsLXdyb25nLWFyZ3VtZW50LWxlbmd0aC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmdwdS93aGxzbC13cm9uZy1hcmd1bWVudC1sZW5ndGguaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy93ZWJncHUvd2hsc2wtd3JvbmctYXJndW1lbnQtbGVuZ3Ro
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNjQgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29udGVu
dD0ibG9uZyI+Cis8dGl0bGU+VGVzdCBpbnQgYml0IG1hdGguPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSJqcy93aGxzbC10ZXN0LWhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImpzL3dl
YmdwdS1mdW5jdGlvbnMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citjb25zdCB3aGxzbFRlc3RzID0g
e307CisKK3dobHNsVGVzdHMuYml0QW5kV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+
Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3Qg
Rm9vIHsgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yJihGb28pIHsgcmV0dXJuIDMyOyB9Cisg
ICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ImKEZvbykg
eyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0Zh
aWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBp
bnQgb3BlcmF0b3ImKEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9CisgICAgICAgIGApOwor
ICAgICAgICAKK30KK3dobHNsVGVzdHMuYml0Tm90V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5j
ICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBp
bnQgb3BlcmF0b3J+KCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAg
IGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0K
KyAgICAgICAgICAgIGludCBvcGVyYXRvcn4oRm9vLCBGb28pIHsgcmV0dXJuIDUzNDsgfQorICAg
ICAgICBgKTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmJpdE9yV3JvbmdBcmd1bWVudExlbmd0
aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAg
ICAgICAgICBzdHJ1Y3QgRm9vIHsgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yfCgpIHsgcmV0
dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3J8KEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBh
d2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9Cisg
ICAgICAgICAgICBpbnQgb3BlcmF0b3J8KEZvbywgRm9vLCBGb28pIHsgcmV0dXJuIDc2OyB9Cisg
ICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuYml0WG9yV3JvbmdBcmd1bWVudExl
bmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JeKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7Cisg
ICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3Ry
dWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcl4oRm9vKSB7IHJldHVybiA1MzQ7
IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAg
YAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcl4o
Rm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQor
d2hsc2xUZXN0cy5kZWNXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBh
d2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvci0tKCkg
eyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFp
bCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGlu
dCBvcGVyYXRvci0tKEZvbywgRm9vKSB7IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAg
ICAgCit9Cit3aGxzbFRlc3RzLmRpdmlkZVdyb25nQXJndW1lbnRMZW5ndGggPSBhc3luYyAoKSA9
PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgaW50IG9w
ZXJhdG9yLygpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2Fp
dCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAg
ICAgICAgICBpbnQgb3BlcmF0b3IvKEZvbykgeyByZXR1cm4gNTM0OyB9CisgICAgICAgIGApOwor
ICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0
cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3IvKEZvbywgRm9vLCBGb28pIHsg
cmV0dXJuIDc2OyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuZG90T3Bl
cmF0b3JTZXR0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2Fp
dCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAg
ICAgICAgICBGb28gb3BlcmF0b3IuZm9vPSgpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOwor
ICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0
cnVjdCBGb28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0b3IuZm9vPShGb28pIHsgcmV0dXJu
IDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAg
ICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBGb28gb3BlcmF0
b3IuZm9vPShGb28sIGludCwgaW50KSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAg
ICAgCit9Cit3aGxzbFRlc3RzLmRvdE9wZXJhdG9yV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5j
ICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBp
bnQgb3BlcmF0b3IuZm9vKCkgeyByZXR1cm4gNDI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAor
ICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7
IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvci5mb28oRm9vLCBpbnQpIHsgcmV0dXJuIDQyOyB9
CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMuZ3JlYXRlckVxdWFsV3JvbmdB
cmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAg
ICAgICBgCisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oKSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAg
ICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9yPj0oRm9v
KSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVj
a0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAg
ICBib29sIG9wZXJhdG9yPj0oRm9vLCBGb28sIEZvbykgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAg
ICBgKTsKKyAgICAgICAgCit9Cit3aGxzbFRlc3RzLmdyZWF0ZXJXcm9uZ0FyZ3VtZW50TGVuZ3Ro
ID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAg
ICAgICAgIGJvb2wgb3BlcmF0b3I+KCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICBgKTsKKyAg
ICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1
Y3QgRm9vIHsgfQorICAgICAgICAgICAgYm9vbCBvcGVyYXRvcj4oRm9vKSB7IHJldHVybiB0cnVl
OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAg
IGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBib29sIG9wZXJhdG9y
PihGb28sIEZvbywgRm9vKSB7IHJldHVybiB0cnVlOyB9CisgICAgICAgIGApOworICAgICAgICAK
K30KK3dobHNsVGVzdHMuaW5jV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7Cisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3Ir
KygpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVj
a0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAg
ICBpbnQgb3BlcmF0b3IrKyhGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7Cisg
ICAgICAgIAorfQord2hsc2xUZXN0cy5pbmRleE9wZXJhdG9yU2V0dGVyV3JvbmdBcmd1bWVudExl
bmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisg
ICAgICAgICAgICBpbnQgb3BlcmF0b3JbXT0oKSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsK
KyAgICAgICAgCisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBp
bnQgb3BlcmF0b3JbXT0oaW50KSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAg
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0
b3JbXT0oaW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAg
ICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltd
PShpbnQsIGludCwgaW50LCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAg
ICAKK30KK3dobHNsVGVzdHMuaW5kZXhPcGVyYXRvcldyb25nQXJndW1lbnRMZW5ndGggPSBhc3lu
YyAoKSA9PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAg
aW50IG9wZXJhdG9yW10oKSB7IHJldHVybiA0MjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisg
ICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3Jb
XShpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcltdKGludCwgaW50
LCBpbnQpIHsgcmV0dXJuIDQyOyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVz
dHMubFNoaWZ0V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQg
Y2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3I8PCgpIHsgcmV0
dXJuIDMyOyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisg
ICAgICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3Bl
cmF0b3I8PChGb28pIHsgcmV0dXJuIDUzNDsgfQorICAgICAgICBgKTsKKyAgICAgICAgCisgICAg
YXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBzdHJ1Y3QgRm9vIHsgfQor
ICAgICAgICAgICAgaW50IG9wZXJhdG9yPDwoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0K
KyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0cy5taW51c1dyb25nQXJndW1lbnRM
ZW5ndGggPSBhc3luYyAoKSA9PgoreworICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAor
ICAgICAgICAgICAgaW50IG9wZXJhdG9yLSgpIHsgcmV0dXJuIDMyOyB9CisgICAgICAgIGApOwor
ICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIHN0
cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0b3ItKEZvbywgRm9vLCBGb28pIHsg
cmV0dXJuIDc2OyB9CisgICAgICAgIGApOworICAgICAgICAKK30KK3dobHNsVGVzdHMubW9kdWxv
V3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWls
KAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IlKCkgeyByZXR1cm4gMzI7IH0K
KyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAor
ICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciUoRm9v
KSB7IHJldHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNr
RmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAg
IGludCBvcGVyYXRvciUoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0KKyAgICAgICAgYCk7
CisgICAgICAgIAorfQord2hsc2xUZXN0cy5wbHVzV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5j
ICgpID0+Cit7CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBp
bnQgb3BlcmF0b3IrKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAg
IGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0K
KyAgICAgICAgICAgIGludCBvcGVyYXRvcisoRm9vLCBGb28sIEZvbykgeyByZXR1cm4gNzY7IH0K
KyAgICAgICAgYCk7CisgICAgICAgIAorfQord2hsc2xUZXN0cy5yU2hpZnRXcm9uZ0FyZ3VtZW50
TGVuZ3RoID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAK
KyAgICAgICAgICAgIGludCBvcGVyYXRvcj4+KCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7
CisgICAgICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAg
c3RydWN0IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvcj4+KEZvbykgeyByZXR1cm4g
NTM0OyB9CisgICAgICAgIGApOworICAgICAgICAKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAg
ICAgIGAKKyAgICAgICAgICAgIHN0cnVjdCBGb28geyB9CisgICAgICAgICAgICBpbnQgb3BlcmF0
b3I+PihGb28sIEZvbywgRm9vKSB7IHJldHVybiA3NjsgfQorICAgICAgICBgKTsKKyAgICAgICAg
Cit9Cit3aGxzbFRlc3RzLnRpbWVzV3JvbmdBcmd1bWVudExlbmd0aCA9IGFzeW5jICgpID0+Cit7
CisgICAgYXdhaXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0
b3IqKCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorICAgIGF3YWl0IGNo
ZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0IEZvbyB7IH0KKyAgICAgICAg
ICAgIGludCBvcGVyYXRvciooRm9vKSB7IHJldHVybiA1MzQ7IH0KKyAgICAgICAgYCk7CisgICAg
ICAgIAorICAgIGF3YWl0IGNoZWNrRmFpbCgKKyAgICAgICAgYAorICAgICAgICAgICAgc3RydWN0
IEZvbyB7IH0KKyAgICAgICAgICAgIGludCBvcGVyYXRvciooRm9vLCBGb28sIEZvbykgeyByZXR1
cm4gNzY7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCitydW5UZXN0cyh3aGxzbFRlc3Rz
KTsKKzwvc2NyaXB0PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3dobHNsLXdy
b25nLXR5cGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJncHUv
d2hsc2wtd3JvbmctdHlwZXMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL3dlYmdwdS93aGxzbC13cm9uZy10eXBlcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw4IEBACisKK1BBU1MgZGVjV3JvbmdUeXBlcyAKK1BBU1MgaW5jV3JvbmdUeXBl
cyAKK1BBU1MgZ3JlYXRlclRoYW5Xcm9uZ1JldHVyblR5cGUgCitQQVNTIGdyZWF0ZXJFcXVhbFdy
b25nUmV0dXJuVHlwZSAKK1BBU1MgaW5kZXhTZXR0ZXJXaXRoTWlzbWF0Y2hlZFR5cGUgCitQQVNT
IHNldHRlcldpdGhNaXNtYXRjaGVkVHlwZSAKKwpJbmRleDogTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXdyb25nLXR5cGVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViZ3B1L3do
bHNsLXdyb25nLXR5cGVzLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvd2ViZ3B1
L3dobHNsLXdyb25nLXR5cGVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4MSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT5UZXN0IGludCBiaXQgbWF0aC48L3Rp
dGxlPgorPHNjcmlwdCBzcmM9ImpzL3dobHNsLXRlc3QtaGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0ianMvd2ViZ3B1LWZ1bmN0aW9ucy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Nv
bnN0IHdobHNsVGVzdHMgPSB7fTsKKword2hsc2xUZXN0cy5kZWNXcm9uZ1R5cGVzID0gYXN5bmMg
KCkgPT4KK3sKKyAgICBhd2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGlu
dCBvcGVyYXRvci0tKGZsb2F0KSB7IHJldHVybiAzMjsgfQorICAgICAgICBgKTsKKyAgICAgICAg
Cit9CisKK3dobHNsVGVzdHMuaW5jV3JvbmdUeXBlcyA9IGFzeW5jICgpID0+Cit7CisgICAgYXdh
aXQgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAgICAgICBpbnQgb3BlcmF0b3IrKyhmbG9h
dCkgeyByZXR1cm4gMzI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQorCit3aGxzbFRlc3Rz
LmdyZWF0ZXJUaGFuV3JvbmdSZXR1cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBhd2FpdCBj
aGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcj4oaW50IGEsIGlu
dCBiKSB7IHJldHVybiBhICsgYjsgfQorICAgICAgICBgKTsKKyAgICAgICAgCit9CisKK3dobHNs
VGVzdHMuZ3JlYXRlckVxdWFsV3JvbmdSZXR1cm5UeXBlID0gYXN5bmMgKCkgPT4KK3sKKyAgICBh
d2FpdCBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGludCBvcGVyYXRvcj49KGlu
dCBhLCBpbnQgYikgeyByZXR1cm4gYSArIGI7IH0KKyAgICAgICAgYCk7CisgICAgICAgIAorfQor
Cit3aGxzbFRlc3RzLmluZGV4U2V0dGVyV2l0aE1pc21hdGNoZWRUeXBlID0gYXN5bmMgKCkgPT4K
K3sKKyAgICBjaGVja0ZhaWwoCisgICAgICAgIGAKKyAgICAgICAgICAgIGZsb2F0IG9wZXJhdG9y
W10oaW50LCB1aW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1LjQz
OworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9yW109KGludCwgdWludCwg
aW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHJldHVybiA1NDM7CisgICAgICAg
ICAgICB9CisgICAgICAgIGApOworfQorCit3aGxzbFRlc3RzLnNldHRlcldpdGhNaXNtYXRjaGVk
VHlwZSA9IGFzeW5jICgpID0+Cit7CisgICAgY2hlY2tGYWlsKAorICAgICAgICBgCisgICAgICAg
ICAgICBmbG9hdCBvcGVyYXRvci5mb28oaW50KQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHJldHVybiA1LjQzOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW50IG9wZXJhdG9y
LmZvbz0oaW50LCBpbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDU0
MzsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCk7Cit9CisKK3J1blRlc3RzKHdobHNsVGVzdHMp
OworPC9zY3JpcHQ+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>