<?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>12036</bug_id>
          
          <creation_ts>2006-12-30 07:49:07 -0800</creation_ts>
          <short_desc>Update embedded JavaScriptCore/pcre library from 6.2 to 6.4</short_desc>
          <delta_ts>2006-12-31 21:24:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.pcre.org/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38913</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-30 07:49:07 -0800</bug_when>
    <thetext>Update embedded JavaScriptCore/pcre library from version 6.2 to 6.4.

Note that version 6.3 had no changes that affected the embedded WebKit pcre library.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38914</commentid>
    <comment_count>1</comment_count>
      <attachid>12119</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-30 07:50:16 -0800</bug_when>
    <thetext>Created attachment 12119
Full pcre 6.2 to 6.3 diff

Full diff between pcre 6.2 and 6.3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38915</commentid>
    <comment_count>2</comment_count>
      <attachid>12120</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-30 07:51:34 -0800</bug_when>
    <thetext>Created attachment 12120
Full pcre 6.3 to 6.4 dif

Full diff between pcre 6.3 and 6.4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38919</commentid>
    <comment_count>3</comment_count>
      <attachid>12122</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-30 08:45:05 -0800</bug_when>
    <thetext>Created attachment 12122
Patch v1

Patch to bring embedded JavaScriptCore/pcre from 6.2 to 6.4.

No real code changes.  All layout tests and javascriptcore tests pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38924</commentid>
    <comment_count>4</comment_count>
      <attachid>12122</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-30 11:27:18 -0800</bug_when>
    <thetext>Comment on attachment 12122
Patch v1

We&apos;re inching along!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38627</commentid>
    <comment_count>5</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-31 21:24:47 -0800</bug_when>
    <thetext>Committed revision 18498.

Mitz:  I&apos;ve got changes from pcre-6.5 applied locally, but I&apos;ll wait until your stuff lands to post a patch.  Have you considered contributing the fix for Bug 11849 back to pcre?

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12119</attachid>
            <date>2006-12-30 07:50:16 -0800</date>
            <delta_ts>2006-12-30 07:50:16 -0800</delta_ts>
            <desc>Full pcre 6.2 to 6.3 diff</desc>
            <filename>pcre-6.2-6.3.diff</filename>
            <type>text/plain</type>
            <size>194539</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IE1ha2VmaWxlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIE1ha2VmaWxlLmluCShyZXZpc2lvbiAy
KQorKysgTWFrZWZpbGUuaW4JKHJldmlzaW9uIDMpCkBAIC02NSw2ICs2NSwxMiBAQAogQlVJTERf
RVhFRVhUID0gQEJVSUxEX0VYRUVYVEAKIEJVSUxEX09CSkVYVCA9IEBCVUlMRF9PQkpFWFRACiAK
KyMgUE9TSVhfT0JKIGFuZCBQT1NJWF9MT0JKIGFyZSBlaXRoZXIgc2V0IGVtcHR5LCBvciB0byB0
aGUgbmFtZXMgb2YgdGhlCisjIFBPU0lYIG9iamVjdCBmaWxlcy4KKworUE9TSVhfT0JKID0gQFBP
U0lYX09CSkAKK1BPU0lYX0xPQkogPSBAUE9TSVhfTE9CSkAKKwogIyBUaGUgY29tcGlsZXIsIEMg
ZmxhZ3MsIHByZXByb2Nlc3NvciBmbGFncywgZXRjCiAKIENDID0gQENDQApAQCAtOTgsOSArMTA0
LDkgQEAKIExUQ09NUElMRSA9ICQoTElCVE9PTCkgLS1tb2RlPWNvbXBpbGUgJChDQykgLWMgJChD
RkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikgJChORVdMSU5FKSAkKExJTktfU0laRSkgJChNQVRD
SF9MSU1JVCkgJChOT19SRUNVUlNFKSAkKEVCQ0RJQykKIExUQ1hYQ09NUElMRSA9ICQoTElCVE9P
TCkgLS1tb2RlPWNvbXBpbGUgJChDWFgpIC1jICQoQ1hYRkxBR1MpIC1JLiAtSSQodG9wX3NyY2Rp
cikgJChORVdMSU5FKSAkKExJTktfU0laRSkgJChNQVRDSF9MSU1JVCkgJChOT19SRUNVUlNFKSAk
KEVCQ0RJQykKIEBPTl9XSU5ET1dTQExJTksgPSAkKENDKSAkKExERkxBR1MpIC1JLiAtSSQodG9w
X3NyY2RpcikgLUwubGlicwotQE5PVF9PTl9XSU5ET1dTQExJTksgPSAkKExJQlRPT0wpIC0tbW9k
ZT1saW5rICQoQ0MpICQoTERGTEFHUykgLUkuIC1JJCh0b3Bfc3JjZGlyKQotTElOS0xJQiA9ICQo
TElCVE9PTCkgLS1tb2RlPWxpbmsgJChDQykgJChMREZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIp
Ci1MSU5LX0ZPUl9CVUlMRCA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChDQ19GT1JfQlVJTEQp
ICQoTERGTEFHU19GT1JfQlVJTEQpIC1JLiAtSSQodG9wX3NyY2RpcikKK0BOT1RfT05fV0lORE9X
U0BMSU5LID0gJChMSUJUT09MKSAtLW1vZGU9bGluayAkKENDKSAkKENGTEFHUykgJChMREZMQUdT
KSAtSS4gLUkkKHRvcF9zcmNkaXIpCitMSU5LTElCID0gJChMSUJUT09MKSAtLW1vZGU9bGluayAk
KENDKSAtZXhwb3J0LXN5bWJvbHMtcmVnZXggJ15bXl9dfF9fP3BjcmVfLip1dGY4fF9fP3BjcmVf
cHJpbnRpbnQnICQoTERGTEFHUykgLUkuIC1JJCh0b3Bfc3JjZGlyKQorTElOS19GT1JfQlVJTEQg
PSAkKExJQlRPT0wpIC0tbW9kZT1saW5rICQoQ0NfRk9SX0JVSUxEKSAkKENGTEFHU19GT1JfQlVJ
TEQpICQoTERGTEFHU19GT1JfQlVJTEQpIC1JLiAtSSQodG9wX3NyY2RpcikKIEBPTl9XSU5ET1dT
QENYWExJTksgPSAkKENYWCkgJChMREZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIpIC1MLmxpYnMK
IEBOT1RfT05fV0lORE9XU0BDWFhMSU5LID0gJChMSUJUT09MKSAtLW1vZGU9bGluayAkKENYWCkg
JChMREZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIpCiBDWFhMSU5LTElCID0gJChMSUJUT09MKSAt
LW1vZGU9bGluayAkKENYWCkgJChMREZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIpCkBAIC0xMzQs
NyArMTQwLDcgQEAKICAgcGNyZV92YWxpZF91dGY4LkBPQkpFWFRAIFwKICAgcGNyZV92ZXJzaW9u
LkBPQkpFWFRAIFwKICAgcGNyZV94Y2xhc3MuQE9CSkVYVEAgXAotICBAUE9TSVhfT0JKQAorICAk
KFBPU0lYX09CSikKIAogTE9CSiA9IHBjcmVfY2hhcnRhYmxlcy5sbyBcCiAgIHBjcmVfY29tcGls
ZS5sbyBcCkBAIC0xNTYsNyArMTYyLDcgQEAKICAgcGNyZV92YWxpZF91dGY4LmxvIFwKICAgcGNy
ZV92ZXJzaW9uLmxvIFwKICAgcGNyZV94Y2xhc3MubG8gXAotICBAUE9TSVhfTE9CSkAKKyAgJChQ
T1NJWF9MT0JKKQogCiBDUFBPQkogPSBwY3JlY3BwLkBPQkpFWFRAIFwKICAgcGNyZV9zY2FubmVy
LkBPQkpFWFRAIFwKQEAgLTQwOSwxMSArNDE1LDExIEBACiAJJChJTlNUQUxMKSAubGlicy9AV0lO
X1BSRUZJWEBwY3JlcG9zaXguZGxsICQoREVTVERJUikkKEJJTkRJUikvQFdJTl9QUkVGSVhAcGNy
ZXBvc2l4LmRsbAogCSQoSU5TVEFMTCkgLmxpYnMvQFdJTl9QUkVGSVhAbGlicGNyZXBvc2l4LmRs
bC5hICQoREVTVERJUikkKExJQkRJUikvQFdJTl9QUkVGSVhAbGlicGNyZXBvc2l4LmRsbC5hCiAJ
JChJTlNUQUxMKSAubGlicy9AV0lOX1BSRUZJWEBsaWJwY3JlLmRsbC5hICQoREVTVERJUikkKExJ
QkRJUikvQFdJTl9QUkVGSVhAbGlicGNyZS5kbGwuYQotCSQoSU5TVEFMTCkgLmxpYnMvQFdJTl9Q
UkVGSVhAcGNyZWNwcC5kbGwgJChERVNURElSKSQoQklORElSKS9AV0lOX1BSRUZJWEBwY3JlY3Bw
LmRsbAotCSQoSU5TVEFMTCkgLmxpYnMvQFdJTl9QUkVGSVhAbGlicGNyZWNwcC5kbGwuYSAkKERF
U1RESVIpJChMSUJESVIpL0BXSU5fUFJFRklYQGxpYnBjcmVjcHAuZGxsLmEKK0BIQVZFX0NQUEAJ
ICQoSU5TVEFMTCkgLmxpYnMvQFdJTl9QUkVGSVhAcGNyZWNwcC5kbGwgJChERVNURElSKSQoQklO
RElSKS9AV0lOX1BSRUZJWEBwY3JlY3BwLmRsbAorQEhBVkVfQ1BQQAkgJChJTlNUQUxMKSAubGli
cy9AV0lOX1BSRUZJWEBsaWJwY3JlY3BwLmRsbC5hICQoREVTVERJUikkKExJQkRJUikvQFdJTl9Q
UkVGSVhAbGlicGNyZWNwcC5kbGwuYQogCS1zdHJpcCAtZyAkKERFU1RESVIpJChCSU5ESVIpL0BX
SU5fUFJFRklYQHBjcmUuZGxsCiAJLXN0cmlwIC1nICQoREVTVERJUikkKEJJTkRJUikvQFdJTl9Q
UkVGSVhAcGNyZXBvc2l4LmRsbAotCS1zdHJpcCAtZyAkKERFU1RESVIpJChCSU5ESVIpL0BXSU5f
UFJFRklYQHBjcmVjcHAuZGxsCitASEFWRV9DUFBACSAtc3RyaXAgLWcgJChERVNURElSKSQoQklO
RElSKS9AV0lOX1BSRUZJWEBwY3JlY3BwLmRsbAogCS1zdHJpcCAkKERFU1RESVIpJChCSU5ESVIp
L3BjcmVncmVwQEVYRUVYVEAKIAktc3RyaXAgJChERVNURElSKSQoQklORElSKS9wY3JldGVzdEBF
WEVFWFRACiAKQEAgLTQzNywyMiArNDQzLDIyIEBACiBATk9UX09OX1dJTkRPV1NACSAgICAgICAk
KExJQlRPT0wpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgbGlicGNyZS5sYSAkKERFU1RESVIp
JChMSUJESVIpL2xpYnBjcmUubGEKIEBOT1RfT05fV0lORE9XU0AJICAgICAgIGVjaG8gIiQoTElC
VE9PTCkgLS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSBsaWJwY3JlcG9zaXgubGEgJChERVNURElS
KSQoTElCRElSKS9saWJwY3JlcG9zaXgubGEiCiBATk9UX09OX1dJTkRPV1NACSAgICAgICAkKExJ
QlRPT0wpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgbGlicGNyZXBvc2l4LmxhICQoREVTVERJ
UikkKExJQkRJUikvbGlicGNyZXBvc2l4LmxhCi1ATk9UX09OX1dJTkRPV1NACSAgICAgICBlY2hv
ICIkKExJQlRPT0wpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgbGlicGNyZWNwcC5sYSAkKERF
U1RESVIpJChMSUJESVIpL2xpYnBjcmVjcHAubGEiCi1ATk9UX09OX1dJTkRPV1NACSAgICAgICAk
KExJQlRPT0wpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgbGlicGNyZWNwcC5sYSAkKERFU1RE
SVIpJChMSUJESVIpL2xpYnBjcmVjcHAubGEKK0BOT1RfT05fV0lORE9XU0BASEFWRV9DUFBACQll
Y2hvICIkKExJQlRPT0wpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgbGlicGNyZWNwcC5sYSAk
KERFU1RESVIpJChMSUJESVIpL2xpYnBjcmVjcHAubGEiCitATk9UX09OX1dJTkRPV1NAQEhBVkVf
Q1BQQAkJJChMSUJUT09MKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpIGxpYnBjcmVjcHAubGEg
JChERVNURElSKSQoTElCRElSKS9saWJwY3JlY3BwLmxhCiBATk9UX09OX1dJTkRPV1NACSAgICAg
ICAkKExJQlRPT0wpIC0tZmluaXNoICQoREVTVERJUikkKExJQkRJUikKIAkJJChta2luc3RhbGxk
aXJzKSAkKERFU1RESVIpJChJTkNESVIpCiAJCSQoSU5TVEFMTF9EQVRBKSBwY3JlLmggJChERVNU
RElSKSQoSU5DRElSKS9wY3JlLmgKIAkJJChJTlNUQUxMX0RBVEEpICQodG9wX3NyY2RpcikvcGNy
ZXBvc2l4LmggJChERVNURElSKSQoSU5DRElSKS9wY3JlcG9zaXguaAotCQkkKElOU1RBTExfREFU
QSkgcGNyZWNwcC5oICQoREVTVERJUikkKElOQ0RJUikvcGNyZWNwcC5oCi0JCSQoSU5TVEFMTF9E
QVRBKSBwY3JlX3N0cmluZ3BpZWNlLmggJChERVNURElSKSQoSU5DRElSKS9wY3JlX3N0cmluZ3Bp
ZWNlLmgKLQkJJChJTlNUQUxMX0RBVEEpICQodG9wX3NyY2RpcikvcGNyZV9zY2FubmVyLmggJChE
RVNURElSKSQoSU5DRElSKS9wY3JlX3NjYW5uZXIuaAorQEhBVkVfQ1BQQAkJICQoSU5TVEFMTF9E
QVRBKSBwY3JlY3BwLmggJChERVNURElSKSQoSU5DRElSKS9wY3JlY3BwLmgKK0BIQVZFX0NQUEAJ
CSAkKElOU1RBTExfREFUQSkgcGNyZV9zdHJpbmdwaWVjZS5oICQoREVTVERJUikkKElOQ0RJUikv
cGNyZV9zdHJpbmdwaWVjZS5oCitASEFWRV9DUFBACQkgJChJTlNUQUxMX0RBVEEpICQodG9wX3Ny
Y2RpcikvcGNyZV9zY2FubmVyLmggJChERVNURElSKSQoSU5DRElSKS9wY3JlX3NjYW5uZXIuaAog
CQkkKG1raW5zdGFsbGRpcnMpICQoREVTVERJUikkKE1BTkRJUikvbWFuMwogCQkkKElOU1RBTExf
REFUQSkgJCh0b3Bfc3JjZGlyKS9kb2MvcGNyZS4zICQoREVTVERJUikkKE1BTkRJUikvbWFuMy9w
Y3JlLjMKIAkJJChJTlNUQUxMX0RBVEEpICQodG9wX3NyY2RpcikvZG9jL3BjcmVhcGkuMyAkKERF
U1RESVIpJChNQU5ESVIpL21hbjMvcGNyZWFwaS4zCiAJCSQoSU5TVEFMTF9EQVRBKSAkKHRvcF9z
cmNkaXIpL2RvYy9wY3JlYnVpbGQuMyAkKERFU1RESVIpJChNQU5ESVIpL21hbjMvcGNyZWJ1aWxk
LjMKIAkJJChJTlNUQUxMX0RBVEEpICQodG9wX3NyY2RpcikvZG9jL3BjcmVjYWxsb3V0LjMgJChE
RVNURElSKSQoTUFORElSKS9tYW4zL3BjcmVjYWxsb3V0LjMKIAkJJChJTlNUQUxMX0RBVEEpICQo
dG9wX3NyY2RpcikvZG9jL3BjcmVjb21wYXQuMyAkKERFU1RESVIpJChNQU5ESVIpL21hbjMvcGNy
ZWNvbXBhdC4zCi0JCSQoSU5TVEFMTF9EQVRBKSAkKHRvcF9zcmNkaXIpL2RvYy9wY3JlY3BwLjMg
JChERVNURElSKSQoTUFORElSKS9tYW4zL3BjcmVjcHAuMworQEhBVkVfQ1BQQAkJICQoSU5TVEFM
TF9EQVRBKSAkKHRvcF9zcmNkaXIpL2RvYy9wY3JlY3BwLjMgJChERVNURElSKSQoTUFORElSKS9t
YW4zL3BjcmVjcHAuMwogCQkkKElOU1RBTExfREFUQSkgJCh0b3Bfc3JjZGlyKS9kb2MvcGNyZW1h
dGNoaW5nLjMgJChERVNURElSKSQoTUFORElSKS9tYW4zL3BjcmVtYXRjaGluZy4zCiAJCSQoSU5T
VEFMTF9EQVRBKSAkKHRvcF9zcmNkaXIpL2RvYy9wY3JlcGF0dGVybi4zICQoREVTVERJUikkKE1B
TkRJUikvbWFuMy9wY3JlcGF0dGVybi4zCiAJCSQoSU5TVEFMTF9EQVRBKSAkKHRvcF9zcmNkaXIp
L2RvYy9wY3JlcGVyZm9ybS4zICQoREVTVERJUikkKE1BTkRJUikvbWFuMy9wY3JlcGVyZm9ybS4z
CkBAIC01NTcsMTMgKzU2MywxMyBAQAogcnVudGVzdDogICAgICAgIGFsbCBAT05fV0lORE9XU0Ag
QFdJTl9QUkVGSVhAcGNyZS5kbGwKIAkJQC4vUnVuVGVzdAogCQlALi9SdW5HcmVwVGVzdAotCQlA
ZWNobyAiIgotCQlAZWNobyAiVGVzdGluZyBDKysgd3JhcHBlciIKLQkJQGVjaG8gIiI7IGVjaG8g
IlRlc3QgMSsrOiBzdHJpbmdwaWVjZSIKLQkJQC4vcGNyZV9zdHJpbmdwaWVjZV91bml0dGVzdEBF
WEVFWFRACi0JCUBlY2hvICIiOyBlY2hvICJUZXN0IDIrKzogUkUgY2xhc3MiCi0JCUAuL3BjcmVj
cHBfdW5pdHRlc3RARVhFRVhUQAotCQlAZWNobyAiIjsgZWNobyAiVGVzdCAzKys6IFNjYW5uZXIg
Y2xhc3MiCi0JCUAuL3BjcmVfc2Nhbm5lcl91bml0dGVzdEBFWEVFWFRACitASEFWRV9DUFBACQkg
QGVjaG8gIiIKK0BIQVZFX0NQUEAJCSBAZWNobyAiVGVzdGluZyBDKysgd3JhcHBlciIKK0BIQVZF
X0NQUEAJCSBAZWNobyAiIjsgZWNobyAiVGVzdCAxKys6IHN0cmluZ3BpZWNlIgorQEhBVkVfQ1BQ
QAkJIEAuL3BjcmVfc3RyaW5ncGllY2VfdW5pdHRlc3RARVhFRVhUQAorQEhBVkVfQ1BQQAkJIEBl
Y2hvICIiOyBlY2hvICJUZXN0IDIrKzogUkUgY2xhc3MiCitASEFWRV9DUFBACQkgQC4vcGNyZWNw
cF91bml0dGVzdEBFWEVFWFRACitASEFWRV9DUFBACQkgQGVjaG8gIiI7IGVjaG8gIlRlc3QgMysr
OiBTY2FubmVyIGNsYXNzIgorQEhBVkVfQ1BQQAkJIEAuL3BjcmVfc2Nhbm5lcl91bml0dGVzdEBF
WEVFWFRACiAKICMgRW5kCkluZGV4OiBsdG1haW4uc2gKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gbHRtYWluLnNo
CShyZXZpc2lvbiAyKQorKysgbHRtYWluLnNoCShyZXZpc2lvbiAzKQpAQCAtMSw3ICsxLDcgQEAK
ICMgbHRtYWluLnNoIC0gUHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBv
cnQgc2VydmljZXMuCiAjIE5PVEU6IENoYW5naW5nIHRoaXMgZmlsZSB3aWxsIG5vdCBhZmZlY3Qg
YW55dGhpbmcgdW50aWwgeW91IHJlcnVuIGNvbmZpZ3VyZS4KICMKLSMgQ29weXJpZ2h0IChDKSAx
OTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0CisjIENvcHlyaWdo
dCAoQykgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMywgMjAwNCwgMjAw
NQogIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KICMgT3JpZ2luYWxseSBieSBHb3Jk
b24gTWF0emlna2VpdCA8Z29yZEBnbnUuYWkubWl0LmVkdT4sIDE5OTYKICMKQEAgLTE3LDcgKzE3
LDcgQEAKICMKICMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwg
d3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSMgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVtcGxl
IFBsYWNlIC0gU3VpdGUgMzMwLCBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyMgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAjCiAjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKICMgZGlzdHJpYnV0ZSB0aGlzIGZpbGUgYXMg
cGFydCBvZiBhIHByb2dyYW0gdGhhdCBjb250YWlucyBhCkBAIC0zMywxMyArMzMsOSBAQAogIyBm
dW5jdGlvbi4KIHByb2dwYXRoPSIkMCIKIAotIyBNb2RpZmljYXRpb24gYnkgUEggKDI2LUF1Zy0y
MDA0LCBvcmlnaW5hbGx5IDE4LUZlYi0yMDAzKSB0byBlbnN1cmUgdGhhdAotIyAke1NFRH0gaXMg
YWx3YXlzIHNldCAoaXQgaXMgbm90IHNldCBvbiBteSBzeXN0ZW0pLgorIyBkZWZpbmUgU0VEIGZv
ciBoaXN0b3JpYyBsdGNvbmZpZydzIGdlbmVyYXRlZCBieSBMaWJ0b29sIDEuMwordGVzdCAteiAi
JFNFRCIgJiYgU0VEPXNlZAogCi1jYXNlICJYJHtTRUR9IiBpbgotICBYKSBTRUQ9c2VkIDs7Ci1l
c2FjICAgCi0KICMgVGhlIG5hbWUgb2YgdGhpcyBwcm9ncmFtOgogcHJvZ25hbWU9YGVjaG8gIiRw
cm9ncGF0aCIgfCAkU0VEICRiYXNlbmFtZWAKIG1vZGVuYW1lPSIkcHJvZ25hbWUiCkBAIC01MCwx
NCArNDYsMjEgQEAKIAogUFJPR1JBTT1sdG1haW4uc2gKIFBBQ0tBR0U9bGlidG9vbAotVkVSU0lP
Tj0xLjUuOAotVElNRVNUQU1QPSIgKDEuMTIyMC4yLjExNyAyMDA0LzA4LzA0IDE0OjEyOjA1KSIK
K1ZFUlNJT049MS41LjE4CitUSU1FU1RBTVA9IiAoMS4xMjIwLjIuMjQ2IDIwMDUvMDUvMTYgMTA6
MDA6MTgpIgogCiAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBzZXQgdGhlIG9w
dGlvbnMgd2hpY2ggYWxsb3cgb3VyCiAjIGNvbW1hbmRzIHRocm91Z2ggd2l0aG91dCByZW1vdmFs
IG9mIFwgZXNjYXBlcy4KIGlmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCiAg
IHNldG9wdCBOT19HTE9CX1NVQlNUCiBmaQorIyBTYW1lIGZvciBFR1JFUCwgYW5kIGp1c3QgdG8g
YmUgc3VyZSwgZG8gTFRDQyBhcyB3ZWxsCitpZiB0ZXN0ICJYJEVHUkVQIiA9IFggOyB0aGVuCisg
ICAgRUdSRVA9ZWdyZXAKK2ZpCitpZiB0ZXN0ICJYJExUQ0MiID0gWCA7IHRoZW4KKyAgICBMVEND
PSR7Q0MtZ2NjfQorZmkKIAogIyBDaGVjayB0aGF0IHdlIGhhdmUgYSB3b3JraW5nICRlY2hvLgog
aWYgdGVzdCAiWCQxIiA9IFgtLW5vLXJlZXhlYzsgdGhlbgpAQCAtMTE5LDggKzEyMiw5IEBACiBm
aQogCiAjIE1ha2Ugc3VyZSBJRlMgaGFzIGEgc2Vuc2libGUgZGVmYXVsdAotOiAke0lGUz0iCQot
In0KK2x0X25sPScKKycKK0lGUz0iIAkkbHRfbmwiCiAKIGlmIHRlc3QgIiRidWlsZF9saWJ0b29s
X2xpYnMiICE9IHllcyAmJiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiICE9IHllczsgdGhlbgogICAk
ZWNobyAiJG1vZGVuYW1lOiBub3QgY29uZmlndXJlZCB0byBidWlsZCBhbnkga2luZCBvZiBsaWJy
YXJ5IiAxPiYyCkBAIC0xMzksNyArMTQzLDMyIEBACiBleGVjdXRlX2RsZmlsZXM9CiBsbzJvPSJz
L1xcLmxvXCQvLiR7b2JqZXh0fS8iCiBvMmxvPSJzL1xcLiR7b2JqZXh0fVwkLy5sby8iCitxdW90
ZV9zY2Fuc2V0PSdbW34jXip7fTs8Pj8nIiciJyAJXScKIAoraWYgdGVzdCAteiAiJG1heF9jbWRf
bGVuIjsgdGhlbgorICBpPTAKKyAgdGVzdHJpbmc9IkFCQ0QiCisgIG5ld19yZXN1bHQ9CisgIAor
ICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5IGVuZCB1
cCBjb21wdXRpbmcgYQorICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRo
ZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAorICAjIHdlIGNhbid0IHRlbGwuCisgIHdoaWxl
ICh0ZXN0ICJYImAkU0hFTEwgJDAgLS1mYWxsYmFjay1lY2hvICJYJHRlc3RyaW5nIiAyPi9kZXYv
bnVsbGAgXAorICAgICAgICAgICAgID0gIlhYJHRlc3RyaW5nIikgPi9kZXYvbnVsbCAyPiYxICYm
CisgICAgICAgICAgbmV3X3Jlc3VsdD1gZXhwciAiWCR0ZXN0cmluZyIgOiAiLioiIDI+JjFgICYm
CisgICAgICAgICAgbWF4X2NtZF9sZW49IiRuZXdfcmVzdWx0IiAmJgorICAgICAgICAgIHRlc3Qg
IiRpIiAhPSAxNyAjIDEvMiBNQiBzaG91bGQgYmUgZW5vdWdoCisgIGRvCisgICAgaT1gZXhwciAk
aSArIDFgCisgICAgdGVzdHJpbmc9IiR0ZXN0cmluZyR0ZXN0cmluZyIKKyAgZG9uZQorICB0ZXN0
cmluZz0KKyAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNv
bXBpbGVycyBjYW4gdGFjayBvbiBtYXNzaXZlCisgICMgYW1vdW50cyBvZiBhZGRpdGlvbmFsIGFy
Z3VtZW50cyBiZWZvcmUgcGFzc2luZyB0aGVtIHRvIHRoZSBsaW5rZXIuCisgICMgSXQgYXBwZWFy
cyBhcyB0aG91Z2ggMS8yIGlzIGEgdXNhYmxlIHZhbHVlLgorICBtYXhfY21kX2xlbj1gZXhwciAk
bWF4X2NtZF9sZW4gXC8gMmAKK2ZpCisKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMKICMgU2hlbGwgZnVuY3Rpb24gZGVmaW5pdGlvbnM6CiAjIFRoaXMgc2VlbXMgdG8gYmUg
dGhlIGJlc3QgcGxhY2UgZm9yIHRoZW0KQEAgLTE1MCw3ICsxNzksOCBAQAogIyBOZWVkIGEgbG90
IG9mIGdvbyB0byBoYW5kbGUgKmJvdGgqIERMTHMgYW5kIGltcG9ydCBsaWJzCiAjIEhhcyB0byBi
ZSBhIHNoZWxsIGZ1bmN0aW9uIGluIG9yZGVyIHRvICdlYXQnIHRoZSBhcmd1bWVudAogIyB0aGF0
IGlzIHN1cHBsaWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCi1mdW5jX3dp
bjMyX2xpYmlkICgpIHsKK2Z1bmNfd2luMzJfbGliaWQgKCkKK3sKICAgd2luMzJfbGliaWRfdHlw
ZT0idW5rbm93biIKICAgd2luMzJfZmlsZXJlcz1gZmlsZSAtTCAkMSAyPi9kZXYvbnVsbGAKICAg
Y2FzZSAkd2luMzJfZmlsZXJlcyBpbgpAQCAtMTkwLDEyICsyMjAsMTMgQEAKICMgT25seSBhdHRl
bXB0IHRoaXMgaWYgdGhlIGNvbXBpbGVyIGluIHRoZSBiYXNlIGNvbXBpbGUKICMgY29tbWFuZCBk
b2Vzbid0IG1hdGNoIHRoZSBkZWZhdWx0IGNvbXBpbGVyLgogIyBhcmcgaXMgdXN1YWxseSBvZiB0
aGUgZm9ybSAnZ2NjIC4uLicKLWZ1bmNfaW5mZXJfdGFnICgpIHsKK2Z1bmNfaW5mZXJfdGFnICgp
Cit7CiAgICAgaWYgdGVzdCAtbiAiJGF2YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFt
ZSI7IHRoZW4KICAgICAgIENDX3F1b3RlZD0KICAgICAgIGZvciBhcmcgaW4gJENDOyBkbwogCWNh
c2UgJGFyZyBpbgotCSAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXCBdKnwq
XSp8IiIpCisJICAqJHF1b3RlX3NjYW5zZXQqIHwgKl0qIHwgKlx8KiB8ICpcJiogfCAqXCgqIHwg
KlwpKiB8ICIiKQogCSAgYXJnPSJcIiRhcmdcIiIKIAkgIDs7CiAJZXNhYwpAQCAtMjE2LDEzICsy
NDcsMjMgQEAKIAkgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCiAJICAgICMgRG91YmxlLXF1b3RlIGFy
Z3MgY29udGFpbmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVycy4KIAkgICAgY2FzZSAkYXJn
IGluCi0JICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8
IiIpCisJICAgICAgKiRxdW90ZV9zY2Fuc2V0KiB8ICpdKiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8
ICpcKSogfCAiIikKIAkgICAgICBhcmc9IlwiJGFyZ1wiIgogCSAgICAgIDs7CiAJICAgIGVzYWMK
IAkgICAgQ0NfcXVvdGVkPSIkQ0NfcXVvdGVkICRhcmciCiAJICBkb25lCisJICAgICMgdXNlciBz
b21ldGltZXMgZG9lcyBDQz08SE9TVD4tZ2NjIHNvIHdlIG5lZWQgdG8gbWF0Y2ggdGhhdCB0byAn
Z2NjJworCSAgICB0cmltZWRjYz1gZWNobyAke0NDfSB8ICRTRUQgLWUgInMvJHtob3N0fS0vL2ci
YAorCSAgICAjIGFuZCBzb21ldGltZXMgbGlidG9vbCBoYXMgQ0M9PEhPU1Q+LWdjYyBidXQgdXNl
ciBkb2VzIENDPWdjYworCSAgICBleHRlbmRjYz0ke2hvc3R9LSR7Q0N9CiAJICAgIGNhc2UgIiRA
ICIgaW4KKwkgICAgICAiY2MgIiogfCAiIGNjICIqIHwgIiR7aG9zdH0tY2MgIiogfCAiICR7aG9z
dH0tY2MgIip8XAorCSAgICAgICJnY2MgIiogfCAiIGdjYyAiKiB8ICIke2hvc3R9LWdjYyAiKiB8
ICIgJHtob3N0fS1nY2MgIiopCisJICAgICAgdGFnbmFtZT1DQworCSAgICAgIGJyZWFrIDs7CisJ
ICAgICAgIiR0cmltZWRjYyAiKiB8ICIgJHRyaW1lZGNjICIqIHwgImAkZWNobyAkdHJpbWVkY2Ng
ICIqIHwgIiBgJGVjaG8gJHRyaW1lZGNjYCAiKnxcCisJICAgICAgIiRleHRlbmRjYyAiKiB8ICIg
JGV4dGVuZGNjICIqIHwgImAkZWNobyAkZXh0ZW5kY2NgICIqIHwgIiBgJGVjaG8gJGV4dGVuZGNj
YCAiKnxcCiAJICAgICAgIiAkQ0MgIiogfCAiJENDICIqIHwgIiBgJGVjaG8gJENDYCAiKiB8ICJg
JGVjaG8gJENDYCAiKiB8ICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90ZWQgIiogfCAiIGAkZWNo
byAkQ0NfcXVvdGVkYCAiKiB8ICJgJGVjaG8gJENDX3F1b3RlZGAgIiopCiAJICAgICAgIyBUaGUg
Y29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1hdGNoZXMKIAkgICAgICAjIHRo
ZSBvbmUgaW4gdGhlIHRhZ2dlZCBjb25maWd1cmF0aW9uLgpAQCAtMjQ5LDggKzI5MCwyNSBAQAog
fQogCiAKKyMgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgZGlyIG9sZGxpYgorZnVuY19leHRyYWN0
X2FuX2FyY2hpdmUgKCkKK3sKKyAgICBmX2V4X2FuX2FyX2Rpcj0iJDEiOyBzaGlmdAorICAgIGZf
ZXhfYW5fYXJfb2xkbGliPSIkMSIKKworICAgICRzaG93ICIoY2QgJGZfZXhfYW5fYXJfZGlyICYm
ICRBUiB4ICRmX2V4X2FuX2FyX29sZGxpYikiCisgICAgJHJ1biBldmFsICIoY2QgXCRmX2V4X2Fu
X2FyX2RpciAmJiAkQVIgeCBcJGZfZXhfYW5fYXJfb2xkbGliKSIgfHwgZXhpdCAkPworICAgIGlm
ICgkQVIgdCAiJGZfZXhfYW5fYXJfb2xkbGliIiB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxs
IDI+JjEpOyB0aGVuCisgICAgIDoKKyAgICBlbHNlCisgICAgICAkZWNobyAiJG1vZGVuYW1lOiBF
UlJPUjogb2JqZWN0IG5hbWUgY29uZmxpY3RzOiAkZl9leF9hbl9hcl9kaXIvJGZfZXhfYW5fYXJf
b2xkbGliIiAxPiYyCisgICAgICBleGl0ICRFWElUX0ZBSUxVUkUKKyAgICBmaQorfQorCiAjIGZ1
bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgotZnVuY19leHRyYWN0X2FyY2hp
dmVzICgpIHsKK2Z1bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQorewogICAgIG15X2dlbnRvcD0iJDEi
OyBzaGlmdAogICAgIG15X29sZGxpYnM9JHsxKyIkQCJ9CiAgICAgbXlfb2xkb2Jqcz0iIgpAQCAt
Mjk0LDczICszNTIsNDIgQEAKIAkgIGNkICRteV94ZGlyIHx8IGV4aXQgJD8KIAkgIGRhcndpbl9h
cmNoaXZlPSRteV94YWJzCiAJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0JICBkYXJ3aW5fYmFzZV9h
cmNoaXZlPWBiYXNlbmFtZSAkZGFyd2luX2FyY2hpdmVgCisJICBkYXJ3aW5fYmFzZV9hcmNoaXZl
PWAkZWNobyAiWCRkYXJ3aW5fYXJjaGl2ZSIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAogCSAgZGFy
d2luX2FyY2hlcz1gbGlwbyAtaW5mbyAiJGRhcndpbl9hcmNoaXZlIiAyPi9kZXYvbnVsbCB8ICRF
R1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9udWxsYAogCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9h
cmNoZXMiOyB0aGVuIAogCSAgICBkYXJ3aW5fYXJjaGVzPWBlY2hvICIkZGFyd2luX2FyY2hlcyIg
fCAkU0VEIC1lICdzLy4qYXJlOi8vJ2AKIAkgICAgZGFyd2luX2FyY2g9CiAJICAgICRzaG93ICIk
ZGFyd2luX2Jhc2VfYXJjaGl2ZSBoYXMgbXVsdGlwbGUgYXJjaGl0ZWN0dXJlcyAkZGFyd2luX2Fy
Y2hlcyIKLQkgICAgZm9yIGRhcndpbl9hcmNoIGluCSRkYXJ3aW5fYXJjaGVzIDsgZG8KKwkgICAg
Zm9yIGRhcndpbl9hcmNoIGluICAkZGFyd2luX2FyY2hlcyA7IGRvCiAJICAgICAgbWtkaXIgLXAg
InVuZmF0LSQkLyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0tJHtkYXJ3aW5fYXJjaH0iCiAJICAgICAg
bGlwbyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9h
cmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IiAiJHtkYXJ3aW5f
YXJjaGl2ZX0iCi0JICAgICAgIyBSZW1vdmUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIGZyb20gdGhl
IHRoaW4gZmlsZXMuCi0JICAgICAgJEFSIC1kICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hp
dmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iIF9fLlNZTURFRiAyPi9k
ZXYvbnVsbCB8fCB0cnVlCi0JICAgICAgJEFSIC1kICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2Fy
Y2hpdmV9LSR7ZGFyd2luX2FyY2h9LyR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0iIF9fLlNZTURFRlwg
U09SVEVEIDI+L2Rldi9udWxsIHx8IHRydWUKIAkgICAgICBjZCAidW5mYXQtJCQvJHtkYXJ3aW5f
YmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofSIKLQkgICAgICAkQVIgLXhvICIke2Rhcndpbl9i
YXNlX2FyY2hpdmV9IgotCSAgICAgIHJtICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgorCSAgICAg
IGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICJgcHdkYCIgIiR7ZGFyd2luX2Jhc2VfYXJjaGl2ZX0i
CiAJICAgICAgY2QgIiRkYXJ3aW5fY3VyZGlyIgorCSAgICAgICRybSAidW5mYXQtJCQvJHtkYXJ3
aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9Igog
CSAgICBkb25lICMgJGRhcndpbl9hcmNoZXMKICAgICAgICMjIE9rYXkgbm93IHdlIGhhdmUgYSBi
dW5jaCBvZiB0aGluIG9iamVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVwIDopCi0JICAgIGRhcndp
bl9maWxlbGlzdD1gZmluZCB1bmZhdC0kJCAtdHlwZSBmIHwgeGFyZ3MgYmFzZW5hbWUgfCBzb3J0
IC11IHwgJE5MMlNQYAorCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZpbmQgdW5mYXQtJCQgLXR5cGUg
ZiAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJpbnR8IHhhcmdzIGJhc2VuYW1l
IHwgc29ydCAtdSB8ICROTDJTUGAKIAkgICAgZGFyd2luX2ZpbGU9CiAJICAgIGRhcndpbl9maWxl
cz0KIAkgICAgZm9yIGRhcndpbl9maWxlIGluICRkYXJ3aW5fZmlsZWxpc3Q7IGRvCiAJICAgICAg
ZGFyd2luX2ZpbGVzPWBmaW5kIHVuZmF0LSQkIC1uYW1lICRkYXJ3aW5fZmlsZSAtcHJpbnQgfCAk
TkwyU1BgCiAJICAgICAgbGlwbyAtY3JlYXRlIC1vdXRwdXQgIiRkYXJ3aW5fZmlsZSIgJGRhcndp
bl9maWxlcwogCSAgICBkb25lICMgJGRhcndpbl9maWxlbGlzdAotCSAgICBybSAtcmYgdW5mYXQt
JCQKKwkgICAgJHtybX1yIHVuZmF0LSQkCiAJICAgIGNkICIkZGFyd2luX29yaWdfZGlyIgogCSAg
ZWxzZQotCSAgICBjZCAkZGFyd2luX29yaWdfZGlyCi0JICAgIChjZCAkbXlfeGRpciAmJiAkQVIg
eCAkbXlfeGFicykgfHwgZXhpdCAkPworCSAgICBjZCAiJGRhcndpbl9vcmlnX2RpciIKKyAJICAg
IGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgogCSAgZmkgIyAk
ZGFyd2luX2FyY2hlcwogCWZpICMgJHJ1bgogICAgICAgOzsKICAgICAgICopCi0JIyBXZSB3aWxs
IGV4dHJhY3Qgc2VwYXJhdGVseSBqdXN0IHRoZSBjb25mbGljdGluZyBuYW1lcyBhbmQgd2Ugd2ls
bAotCSMgbm8gbG9uZ2VyIHRvdWNoIGFueSB1bmlxdWUgbmFtZXMuIEl0IGlzIGZhc3RlciB0byBs
ZWF2ZSB0aGVzZQotCSMgZXh0cmFjdCBhdXRvbWF0aWNhbGx5IGJ5ICRBUiBpbiBvbmUgcnVuLgot
CSRzaG93ICIoY2QgJG15X3hkaXIgJiYgJEFSIHggJG15X3hhYnMpIgotCSRydW4gZXZhbCAiKGNk
IFwkbXlfeGRpciAmJiAkQVIgeCBcJG15X3hhYnMpIiB8fCBleGl0ICQ/Ci0JaWYgKCRBUiB0ICIk
bXlfeGFicyIgfCBzb3J0IHwgc29ydCAtdWMgPi9kZXYvbnVsbCAyPiYxKTsgdGhlbgotCSAgOgot
CWVsc2UKLQkgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IG9iamVjdCBuYW1lIGNvbmZsaWN0
czsgcmVuYW1pbmcgb2JqZWN0IGZpbGVzIiAxPiYyCi0JICAkZWNobyAiJG1vZGVuYW1lOiB3YXJu
aW5nOiB0byBlbnN1cmUgdGhhdCB0aGV5IHdpbGwgbm90IG92ZXJ3cml0ZSIgMT4mMgotCSAgJEFS
IHQgIiRteV94YWJzIiB8IHNvcnQgfCB1bmlxIC1jZCB8IHdoaWxlIHJlYWQgLXIgY291bnQgbmFt
ZQotCSAgZG8KLQkgICAgaT0xCi0JICAgIHdoaWxlIHRlc3QgIiRpIiAtbGUgIiRjb3VudCIKLQkg
ICAgZG8KLQkgICAgICAjIFB1dCBvdXIgJGkgYmVmb3JlIGFueSBmaXJzdCBkb3QgKGV4dGVuc2lv
bikKLQkgICAgICAjIE5ldmVyIG92ZXJ3cml0ZSBhbnkgZmlsZQotCSAgICAgIG5hbWVfdG89IiRu
YW1lIgotCSAgICAgIHdoaWxlIHRlc3QgIlgkbmFtZV90byIgPSAiWCRuYW1lIiB8fCB0ZXN0IC1m
ICIkbXlfeGRpci8kbmFtZV90byIKLQkgICAgICBkbwotCQluYW1lX3RvPWAkZWNobyAiWCRuYW1l
X3RvIiB8ICRYc2VkIC1lICJzL1woW14uXSpcKS9cMS0kaS8iYAotCSAgICAgIGRvbmUKLQkgICAg
ICAkc2hvdyAiKGNkICRteV94ZGlyICYmICRBUiB4TiAkaSAkbXlfeGFicyAnJG5hbWUnICYmICRt
diAnJG5hbWUnICckbmFtZV90bycpIgotCSAgICAgICRydW4gZXZhbCAiKGNkIFwkbXlfeGRpciAm
JiAkQVIgeE4gJGkgXCRteV94YWJzICckbmFtZScgJiYgJG12ICckbmFtZScgJyRuYW1lX3RvJyki
IHx8IGV4aXQgJD8KLQkgICAgICBpPWBleHByICRpICsgMWAKLQkgICAgZG9uZQotCSAgZG9uZQot
CWZpCi0JOzsKKyAgICAgICAgZnVuY19leHRyYWN0X2FuX2FyY2hpdmUgIiRteV94ZGlyIiAiJG15
X3hhYnMiCisgICAgICAgIDs7CiAgICAgICBlc2FjCiAgICAgICBteV9vbGRvYmpzPSIkbXlfb2xk
b2JqcyAiYGZpbmQgJG15X3hkaXIgLW5hbWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCou
bG8gLXByaW50IHwgJE5MMlNQYAogICAgIGRvbmUKLQogICAgIGZ1bmNfZXh0cmFjdF9hcmNoaXZl
c19yZXN1bHQ9IiRteV9vbGRvYmpzIgogfQogIyBFbmQgb2YgU2hlbGwgZnVuY3Rpb24gZGVmaW5p
dGlvbnMKQEAgLTQzMywxMCArNDYwLDEwIEBACiAgIC0tdmVyc2lvbikKICAgICAkZWNobyAiJFBS
T0dSQU0gKEdOVSAkUEFDS0FHRSkgJFZFUlNJT04kVElNRVNUQU1QIgogICAgICRlY2hvCi0gICAg
JGVjaG8gIkNvcHlyaWdodCAoQykgMjAwMyAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
IgorICAgICRlY2hvICJDb3B5cmlnaHQgKEMpIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
biwgSW5jLiIKICAgICAkZWNobyAiVGhpcyBpcyBmcmVlIHNvZnR3YXJlOyBzZWUgdGhlIHNvdXJj
ZSBmb3IgY29weWluZyBjb25kaXRpb25zLiAgVGhlcmUgaXMgTk8iCiAgICAgJGVjaG8gIndhcnJh
bnR5OyBub3QgZXZlbiBmb3IgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiIKLSAgICBleGl0ICRFWElUX1NVQ0NFU1MKKyAgICBleGl0ICQ/CiAgICAg
OzsKIAogICAtLWNvbmZpZykKQEAgLTQ0NSw3ICs0NzIsNyBAQAogICAgIGZvciB0YWduYW1lIGlu
ICR0YWdsaXN0OyBkbwogICAgICAgJHtTRUR9IC1uIC1lICIvXiMgIyMjIEJFR0lOIExJQlRPT0wg
VEFHIENPTkZJRzogJHRhZ25hbWUkLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICR0
YWduYW1lJC9wIiA8ICIkcHJvZ3BhdGgiCiAgICAgZG9uZQotICAgIGV4aXQgJEVYSVRfU1VDQ0VT
UworICAgIGV4aXQgJD8KICAgICA7OwogCiAgIC0tZGVidWcpCkBAIC00NzAsNyArNDk3LDcgQEAK
ICAgICBlbHNlCiAgICAgICAkZWNobyAiZGlzYWJsZSBzdGF0aWMgbGlicmFyaWVzIgogICAgIGZp
Ci0gICAgZXhpdCAkRVhJVF9TVUNDRVNTCisgICAgZXhpdCAkPwogICAgIDs7CiAKICAgLS1maW5p
c2gpIG1vZGU9ImZpbmlzaCIgOzsKQEAgLTUyNyw3ICs1NTQsNyBAQAogICAjIEluZmVyIHRoZSBv
cGVyYXRpb24gbW9kZS4KICAgaWYgdGVzdCAteiAiJG1vZGUiOyB0aGVuCiAgICAgJGVjaG8gIioq
KiBXYXJuaW5nOiBpbmZlcnJpbmcgdGhlIG1vZGUgb2Ygb3BlcmF0aW9uIGlzIGRlcHJlY2F0ZWQu
IiAxPiYyCi0gICAgJGVjaG8gIioqKiBGdXR1cmUgdmVyc2lvbnMgb2YgTGlidG9vbCB3aWxsIHJl
cXVpcmUgLW1vZGU9TU9ERSBiZSBzcGVjaWZpZWQuIiAxPiYyCisgICAgJGVjaG8gIioqKiBGdXR1
cmUgdmVyc2lvbnMgb2YgTGlidG9vbCB3aWxsIHJlcXVpcmUgLS1tb2RlPU1PREUgYmUgc3BlY2lm
aWVkLiIgMT4mMgogICAgIGNhc2UgJG5vbm9wdCBpbgogICAgICpjYyB8IGNjKiB8ICorKyB8IGdj
YyogfCAqLWdjYyogfCBnKysqIHwgeGxjKikKICAgICAgIG1vZGU9bGluawpAQCAtNjI5LDIyICs2
NTYsMjIgQEAKIAkgIDs7CiAKIAktWGNvbXBpbGVyKQotCSAgYXJnX21vZGU9YXJnCSMgIHRoZSBu
ZXh0IG9uZSBnb2VzIGludG8gdGhlICJiYXNlX2NvbXBpbGUiIGFyZyBsaXN0Ci0JICBjb250aW51
ZQkjICBUaGUgY3VycmVudCAic3JjZmlsZSIgd2lsbCBlaXRoZXIgYmUgcmV0YWluZWQgb3IKLQkg
IDs7CQkjICByZXBsYWNlZCBsYXRlci4gIEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1
Zy4KKwkgIGFyZ19tb2RlPWFyZyAgIyAgdGhlIG5leHQgb25lIGdvZXMgaW50byB0aGUgImJhc2Vf
Y29tcGlsZSIgYXJnIGxpc3QKKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQgInNyY2Zp
bGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVkIG9yCisJICA7OyAgICAgICAgICAgICMgIHJlcGxh
Y2VkIGxhdGVyLiAgSSB3b3VsZCBndWVzcyB0aGF0IHdvdWxkIGJlIGEgYnVnLgogCiAJLVdjLCop
CiAJICBhcmdzPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgInMvXi1XYywvLyJgCiAJICBsYXN0
YXJnPQogCSAgc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0JICBmb3IgYXJnIGluICRhcmdzOyBk
bworIAkgIGZvciBhcmcgaW4gJGFyZ3M7IGRvCiAJICAgIElGUz0iJHNhdmVfaWZzIgogCiAJICAg
ICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBvdGhlciBzaGVsbCBtZXRhY2hhcmFjdGVy
cy4KIAkgICAgIyBNYW55IEJvdXJuZSBzaGVsbHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0
cyBjb3JyZWN0bHkKIAkgICAgIyBpbiBzY2FuIHNldHMsIHNvIHdlIHNwZWNpZnkgaXQgc2VwYXJh
dGVseS4KIAkgICAgY2FzZSAkYXJnIGluCi0JICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8
XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisJICAgICAgKiRxdW90ZV9zY2Fuc2V0KiB8ICpdKiB8
ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKIAkgICAgICBhcmc9IlwiJGFyZ1wiIgog
CSAgICAgIDs7CiAJICAgIGVzYWMKQEAgLTY3NSw4ICs3MDIsMTEgQEAKICAgICAgIGNhc2UgJGxh
c3RhcmcgaW4KICAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29udGFpbmluZyBvdGhlciBzaGVs
bCBtZXRhY2hhcmFjdGVycy4KICAgICAgICMgTWFueSBCb3VybmUgc2hlbGxzIGNhbm5vdCBoYW5k
bGUgY2xvc2UgYnJhY2tldHMgY29ycmVjdGx5Ci0gICAgICAjIGluIHNjYW4gc2V0cywgc28gd2Ug
c3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgotICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtc
PFw+XD9cJ1wgXAldKnwqXSp8IiIpCisgICAgICAjIGluIHNjYW4gc2V0cywgYW5kIHNvbWUgU3Vu
T1Mga3NoIG1pc3RyZWF0IGJhY2tzbGFzaC1lc2NhcGluZworICAgICAgIyBpbiBzY2FuIHNldHMg
KHdvcmtlZCBhcm91bmQgd2l0aCB2YXJpYWJsZSBleHBhbnNpb24pLAorICAgICAgIyBhbmQgZnVy
dGhlcm1vcmUgY2Fubm90IGhhbmRsZSAnfCcgJyYnICcoJyAnKScgaW4gc2NhbiBzZXRzIAorICAg
ICAgIyBhdCBhbGwsIHNvIHdlIHNwZWNpZnkgdGhlbSBzZXBhcmF0ZWx5LgorICAgICAgKiRxdW90
ZV9zY2Fuc2V0KiB8ICpdKiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKIAlsYXN0
YXJnPSJcIiRsYXN0YXJnXCIiCiAJOzsKICAgICAgIGVzYWMKQEAgLTc0OSw2ICs3NzksMTUgQEAK
ICAgICAgIGVzYWMKICAgICBkb25lCiAKKyAgICBxbGlib2JqPWAkZWNobyAiWCRsaWJvYmoiIHwg
JFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAorICAgIGNhc2UgJHFsaWJvYmogaW4KKyAgICAg
ICokcXVvdGVfc2NhbnNldCogfCAqXSogfCAqXHwqIHwgKlwmKiB8ICpcKCogfCAqXCkqIHwgIiIp
CisJcWxpYm9iaj0iXCIkcWxpYm9ialwiIiA7OworICAgIGVzYWMKKyAgICBpZiB0ZXN0ICJYJGxp
Ym9iaiIgIT0gIlgkcWxpYm9iaiI7IHRoZW4KKwkkZWNobyAiJG1vZGVuYW1lOiBsaWJvYmogbmFt
ZSBcYCRsaWJvYmonIG1heSBub3QgY29udGFpbiBzaGVsbCBzcGVjaWFsIGNoYXJhY3RlcnMuIgor
CWV4aXQgJEVYSVRfRkFJTFVSRQorICAgIGZpCiAgICAgb2JqbmFtZT1gJGVjaG8gIlgkb2JqIiB8
ICRYc2VkIC1lICdzJV4uKi8lJSdgCiAgICAgeGRpcj1gJGVjaG8gIlgkb2JqIiB8ICRYc2VkIC1l
ICdzJS9bXi9dKiQlJSdgCiAgICAgaWYgdGVzdCAiWCR4ZGlyIiA9ICJYJG9iaiI7IHRoZW4KQEAg
LTgwMSw3ICs4NDAsNyBAQAogICAgICMgTG9jayB0aGlzIGNyaXRpY2FsIHNlY3Rpb24gaWYgaXQg
aXMgbmVlZGVkCiAgICAgIyBXZSB1c2UgdGhpcyBzY3JpcHQgZmlsZSB0byBtYWtlIHRoZSBsaW5r
LCBpdCBhdm9pZHMgY3JlYXRpbmcgYSBuZXcgZmlsZQogICAgIGlmIHRlc3QgIiRuZWVkX2xvY2tz
IiA9IHllczsgdGhlbgotICAgICAgdW50aWwgJHJ1biBsbiAiJHByb2dwYXRoIiAiJGxvY2tmaWxl
IiAyPi9kZXYvbnVsbDsgZG8KKyAgICAgIHVudGlsICRydW4gbG4gIiRzcmNmaWxlIiAiJGxvY2tm
aWxlIiAyPi9kZXYvbnVsbDsgZG8KIAkkc2hvdyAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJl
IHJlbW92ZWQiCiAJc2xlZXAgMgogICAgICAgZG9uZQpAQCAtODIxLDEyICs4NjAsMTcgQEAKIAkk
cnVuICRybSAkcmVtb3ZlbGlzdAogCWV4aXQgJEVYSVRfRkFJTFVSRQogICAgICAgZmkKLSAgICAg
ICRlY2hvICRzcmNmaWxlID4gIiRsb2NrZmlsZSIKKyAgICAgICRlY2hvICIkc3JjZmlsZSIgPiAi
JGxvY2tmaWxlIgogICAgIGZpCiAKICAgICBpZiB0ZXN0IC1uICIkZml4X3NyY2ZpbGVfcGF0aCI7
IHRoZW4KICAgICAgIGV2YWwgc3JjZmlsZT1cIiRmaXhfc3JjZmlsZV9wYXRoXCIKICAgICBmaQor
ICAgIHFzcmNmaWxlPWAkZWNobyAiWCRzcmNmaWxlIiB8ICRYc2VkIC1lICIkc2VkX3F1b3RlX3N1
YnN0ImAKKyAgICBjYXNlICRxc3JjZmlsZSBpbgorICAgICAgKiRxdW90ZV9zY2Fuc2V0KiB8ICpd
KiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKKyAgICAgIHFzcmNmaWxlPSJcIiRx
c3JjZmlsZVwiIiA7OworICAgIGVzYWMKIAogICAgICRydW4gJHJtICIkbGlib2JqIiAiJHtsaWJv
Ymp9VCIKIApAQCAtODQ4LDEwICs4OTIsMTAgQEAKICAgICAgIGZic2RfaGlkZW91c19zaF9idWc9
JGJhc2VfY29tcGlsZQogCiAgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVuCi0J
Y29tbWFuZD0iJGJhc2VfY29tcGlsZSAkc3JjZmlsZSAkcGljX2ZsYWciCisJY29tbWFuZD0iJGJh
c2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgogICAgICAgZWxzZQogCSMgRG9uJ3QgYnVp
bGQgUElDIGNvZGUKLQljb21tYW5kPSIkYmFzZV9jb21waWxlICRzcmNmaWxlIgorCWNvbW1hbmQ9
IiRiYXNlX2NvbXBpbGUgJHFzcmNmaWxlIgogICAgICAgZmkKIAogICAgICAgaWYgdGVzdCAhIC1k
ICIke3hkaXJ9JG9iamRpciI7IHRoZW4KQEAgLTkzMSw5ICs5NzUsOSBAQAogICAgIGlmIHRlc3Qg
IiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KICAgICAgIGlmIHRlc3QgIiRwaWNfbW9kZSIg
IT0geWVzOyB0aGVuCiAJIyBEb24ndCBidWlsZCBQSUMgY29kZQotCWNvbW1hbmQ9IiRiYXNlX2Nv
bXBpbGUgJHNyY2ZpbGUiCisJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUiCiAgICAg
ICBlbHNlCi0JY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkc3JjZmlsZSAkcGljX2ZsYWciCisJY29t
bWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUgJHBpY19mbGFnIgogICAgICAgZmkKICAgICAg
IGlmIHRlc3QgIiRjb21waWxlcl9jX28iID0geWVzOyB0aGVuCiAJY29tbWFuZD0iJGNvbW1hbmQg
LW8gJG9iaiIKQEAgLTExMTEsNyArMTE1NSw3IEBACiAgICAgICBhcmc9IiQxIgogICAgICAgc2hp
ZnQKICAgICAgIGNhc2UgJGFyZyBpbgotICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtc
PFw+XD9cJ1wgXAldKnwqXSp8IiIpCisgICAgICAqJHF1b3RlX3NjYW5zZXQqIHwgKl0qIHwgKlx8
KiB8ICpcJiogfCAqXCgqIHwgKlwpKiB8ICIiKQogCXFhcmc9XCJgJGVjaG8gIlgkYXJnIiB8ICRY
c2VkIC1lICIkc2VkX3F1b3RlX3N1YnN0ImBcIiAjIyMgdGVzdHN1aXRlOiBza2lwIG5lc3RlZCBx
dW90aW5nIHRlc3QKIAk7OwogICAgICAgKikgcWFyZz0kYXJnIDs7CkBAIC0xMzUxLDEwICsxMzk1
LDE3IEBACiAJICBjb250aW51ZQogCSAgOzsKIAlzaHJleHQpCi0JICBzaHJleHRfY21kcz0iJGFy
ZyIKKyAgCSAgc2hyZXh0X2NtZHM9IiRhcmciCiAJICBwcmV2PQogCSAgY29udGludWUKIAkgIDs7
CisgICAgICAgIGRhcndpbl9mcmFtZXdvcmspCisJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVy
X2ZsYWdzICRhcmciCisJICBjb21waWxlX2NvbW1hbmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIK
KwkgIGZpbmFsaXplX2NvbW1hbmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCisJICBwcmV2PQor
CSAgY29udGludWUKKwkgIDs7CiAJKikKIAkgIGV2YWwgIiRwcmV2PVwiXCRhcmdcIiIKIAkgIHBy
ZXY9CkBAIC0xNDEzLDYgKzE0NjQsMTQgQEAKIAljb250aW51ZQogCTs7CiAKKyAgICAgIC1mcmFt
ZXdvcmspCisgICAgICAgIHByZXY9ZGFyd2luX2ZyYW1ld29yaworICAgICAgICBjb21waWxlcl9m
bGFncz0iJGNvbXBpbGVyX2ZsYWdzICRhcmciCisJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9j
b21tYW5kICRhcmciCisJZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIK
KyAgICAgICAgY29udGludWUKKyAgICAgICAgOzsKKwogICAgICAgLWluc3QtcHJlZml4LWRpcikK
IAlwcmV2PWluc3RfcHJlZml4CiAJY29udGludWUKQEAgLTE0NzMsNyArMTUzMiw3IEBACiAJICAg
ICMgVGhlc2Ugc3lzdGVtcyBkb24ndCBhY3R1YWxseSBoYXZlIGEgQyBsaWJyYXJ5IChhcyBzdWNo
KQogCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKIAkgICAgOzsKLQkgICot
Ki1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKikKKwkgICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNk
KiB8ICotKi1kcmFnb25mbHkqKQogCSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVz
IGhhdmluZyBsaWJjL2xpYmNfci4KIAkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRp
bnVlCiAJICAgIDs7CkBAIC0xNDg0LDcgKzE1NDMsNyBAQAogCSAgZXNhYwogCWVsaWYgdGVzdCAi
WCRhcmciID0gIlgtbGNfciI7IHRoZW4KIAkgY2FzZSAkaG9zdCBpbgotCSAqLSotb3BlbmJzZCog
fCAqLSotZnJlZWJzZCopCisJICotKi1vcGVuYnNkKiB8ICotKi1mcmVlYnNkKiB8ICotKi1kcmFn
b25mbHkqKQogCSAgICMgRG8gbm90IGluY2x1ZGUgbGliY19yIGRpcmVjdGx5LCB1c2UgLXB0aHJl
YWQgZmxhZy4KIAkgICBjb250aW51ZQogCSAgIDs7CkBAIC0xNDk0LDggKzE1NTMsMjAgQEAKIAlj
b250aW51ZQogCTs7CiAKKyAgICAgICMgVHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBk
ZXRlcm1pbmUgdGhlIGxheW91dCBvZiBDKysKKyAgICAgICMgY2xhc3NlcywgbmFtZSBtYW5nbGlu
ZywgYW5kIGV4Y2VwdGlvbiBoYW5kbGluZy4KKyAgICAgIC1tb2RlbCkKKwljb21waWxlX2NvbW1h
bmQ9IiRjb21waWxlX2NvbW1hbmQgJGFyZyIKKwljb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2Zs
YWdzICRhcmciCisJZmluYWxpemVfY29tbWFuZD0iJGZpbmFsaXplX2NvbW1hbmQgJGFyZyIKKwlw
cmV2PXhjb21waWxlcgorCWNvbnRpbnVlCisJOzsKKwogICAgICAtbXR8LW10aHJlYWRzfC1rdGhy
ZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1zYWZlKQotCWRlcGxpYnM9
IiRkZXBsaWJzICRhcmciCisJY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgor
CWNvbXBpbGVfY29tbWFuZD0iJGNvbXBpbGVfY29tbWFuZCAkYXJnIgorCWZpbmFsaXplX2NvbW1h
bmQ9IiRmaW5hbGl6ZV9jb21tYW5kICRhcmciCiAJY29udGludWUKIAk7OwogCkBAIC0xNTA0LDE4
ICsxNTc1LDE5IEBACiAJY29udGludWUKIAk7OwogCi0gICAgICAjIGdjYyAtbSogYXJndW1lbnRz
IHNob3VsZCBiZSBwYXNzZWQgdG8gdGhlIGxpbmtlciB2aWEgJGNvbXBpbGVyX2ZsYWdzCi0gICAg
ICAjIGluIG9yZGVyIHRvIHBhc3MgYXJjaGl0ZWN0dXJlIGluZm9ybWF0aW9uIHRvIHRoZSBsaW5r
ZXIKLSAgICAgICMgKGUuZy4gMzIgdnMgNjQtYml0KS4gIFRoaXMgbWF5IGFsc28gYmUgYWNjb21w
bGlzaGVkIHZpYSAtV2wsLW1mb28KLSAgICAgICMgYnV0IHRoaXMgaXMgbm90IHJlbGlhYmxlIHdp
dGggZ2NjIGJlY2F1c2UgZ2NjIG1heSB1c2UgLW1mb28gdG8KLSAgICAgICMgc2VsZWN0IGEgZGlm
ZmVyZW50IGxpbmtlciwgZGlmZmVyZW50IGxpYnJhcmllcywgZXRjLCB3aGlsZQotICAgICAgIyAt
V2wsLW1mb28gc2ltcGx5IHBhc3NlcyAtbWZvbyB0byB0aGUgbGlua2VyLgotICAgICAgLW0qKQor
ICAgICAgIyAtNjQsIC1taXBzWzAtOV0gZW5hYmxlIDY0LWJpdCBtb2RlIG9uIHRoZSBTR0kgY29t
cGlsZXIKKyAgICAgICMgLXJbMC05XVswLTldKiBzcGVjaWZpZXMgdGhlIHByb2Nlc3NvciBvbiB0
aGUgU0dJIGNvbXBpbGVyCisgICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJsZSA2NC1i
aXQgbW9kZSBvbiB0aGUgU3VuIGNvbXBpbGVyCisgICAgICAjICtEQSosICtERCogZW5hYmxlIDY0
LWJpdCBtb2RlIG9uIHRoZSBIUCBjb21waWxlcgorICAgICAgIyAtcSogcGFzcyB0aHJvdWdoIGNv
bXBpbGVyIGFyZ3MgZm9yIHRoZSBJQk0gY29tcGlsZXIKKyAgICAgICMgLW0qIHBhc3MgdGhyb3Vn
aCBhcmNoaXRlY3R1cmUtc3BlY2lmaWMgY29tcGlsZXIgYXJncyBmb3IgR0NDCisgICAgICAtNjR8
LW1pcHNbMC05XXwtclswLTldWzAtOV0qfC14YXJjaD0qfC14dGFyZ2V0PSp8K0RBKnwrREQqfC1x
KnwtbSopCisKIAkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxpemVfY29tbWFuZCBh
bmQgY29tcGlsZV9jb21tYW5kIG5lZWQKIAkjIHRvIGJlIGFlc3RoZXRpY2FsbHkgcXVvdGVkIGJl
Y2F1c2UgdGhleSBhcmUgZXZhbGVkIGxhdGVyLgogCWFyZz1gJGVjaG8gIlgkYXJnIiB8ICRYc2Vk
IC1lICIkc2VkX3F1b3RlX3N1YnN0ImAKIAljYXNlICRhcmcgaW4KLQkqW1xbXH5cI1xeXCZcKlwo
XClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKwkqJHF1b3RlX3NjYW5zZXQqIHwgKl0q
IHwgKlx8KiB8ICpcJiogfCAqXCgqIHwgKlwpKiB8ICIiKQogCSAgYXJnPSJcIiRhcmdcIiIKIAkg
IDs7CiAJZXNhYwpAQCAtMTYzMSw3ICsxNzAzLDcgQEAKIAlmb3IgZmxhZyBpbiAkYXJnczsgZG8K
IAkgIElGUz0iJHNhdmVfaWZzIgogCSAgY2FzZSAkZmxhZyBpbgotCSAgICAqW1xbXH5cI1xeXCZc
KlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKwkgICAgKiRxdW90ZV9zY2Fuc2V0
KiB8ICpdKiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKIAkgICAgZmxhZz0iXCIk
ZmxhZ1wiIgogCSAgICA7OwogCSAgZXNhYwpAQCAtMTY0OSw3ICsxNzIxLDcgQEAKIAlmb3IgZmxh
ZyBpbiAkYXJnczsgZG8KIAkgIElGUz0iJHNhdmVfaWZzIgogCSAgY2FzZSAkZmxhZyBpbgotCSAg
ICAqW1xbXH5cI1xeXCZcKlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKnwiIikKKwkgICAg
KiRxdW90ZV9zY2Fuc2V0KiB8ICpdKiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikK
IAkgICAgZmxhZz0iXCIkZmxhZ1wiIgogCSAgICA7OwogCSAgZXNhYwpAQCAtMTY3NiwxMyArMTc0
OCwxOCBAQAogCWNvbnRpbnVlCiAJOzsKIAorICAgICAgLUt0aHJlYWQgfCAtbXRocmVhZHMgfCAt
bXQgfCAtcHRocmVhZCB8IC1wdGhyZWFkcyB8IC10aHJlYWRzIHwgLXF0aHJlYWRlZCB8IC1rdGhy
ZWFkICkKKyAgICAgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9mbGFncyAkYXJnIgorICAg
ICAgICBjb250aW51ZQorICAgICAgICA7OworCiAgICAgICAjIFNvbWUgb3RoZXIgY29tcGlsZXIg
ZmxhZy4KICAgICAgIC0qIHwgKyopCiAJIyBVbmtub3duIGFyZ3VtZW50cyBpbiBib3RoIGZpbmFs
aXplX2NvbW1hbmQgYW5kIGNvbXBpbGVfY29tbWFuZCBuZWVkCiAJIyB0byBiZSBhZXN0aGV0aWNh
bGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KIAlhcmc9YCRlY2hvICJY
JGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCiAJY2FzZSAkYXJnIGluCi0JKltc
W1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9cJ1wgXAldKnwqXSp8IiIpCisJKiRxdW90ZV9z
Y2Fuc2V0KiB8ICpdKiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKIAkgIGFyZz0i
XCIkYXJnXCIiCiAJICA7OwogCWVzYWMKQEAgLTE3MjAsNyArMTc5Nyw3IEBACiAJICB4ZGlyPWAk
ZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgJ3MlL1teL10qJCUlJ2AKIAkgIGlmIHRlc3QgIlgkeGRp
ciIgPSAiWCRhcmciOyB0aGVuCiAJICAgIHhkaXI9Ci0JICBlbHNlCisgCSAgZWxzZQogCSAgICB4
ZGlyPSIkeGRpci8iCiAJICBmaQogCkBAIC0xODE2LDcgKzE4OTMsNyBAQAogCSMgdG8gYmUgYWVz
dGhldGljYWxseSBxdW90ZWQgYmVjYXVzZSB0aGV5IGFyZSBldmFsZWQgbGF0ZXIuCiAJYXJnPWAk
ZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAogCWNhc2UgJGFyZyBp
bgotCSpbXFtcflwjXF5cJlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQorCSok
cXVvdGVfc2NhbnNldCogfCAqXSogfCAqXHwqIHwgKlwmKiB8ICpcKCogfCAqXCkqIHwgIiIpCiAJ
ICBhcmc9IlwiJGFyZ1wiIgogCSAgOzsKIAllc2FjCkBAIC0xOTgzLDcgKzIwNjAsNyBAQAogCSAg
ICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKIAkgICAgZmluYWxp
emVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKIAkgIGVsc2UKLQkgICAgZGVw
bGlicz0iJGRlcGxpYiAkZGVwbGlicyIKKwkgICAgY29tcGlsZXJfZmxhZ3M9IiRjb21waWxlcl9m
bGFncyAkZGVwbGliIgogCSAgZmkKIAkgIGNvbnRpbnVlCiAJICA7OwpAQCAtMTk5MiwxMCArMjA2
OSw2IEBACiAJICAgICRlY2hvICIkbW9kZW5hbWU6IHdhcm5pbmc6IFxgLWwnIGlzIGlnbm9yZWQg
Zm9yIGFyY2hpdmVzL29iamVjdHMiIDE+JjIKIAkgICAgY29udGludWUKIAkgIGZpCi0JICBpZiB0
ZXN0ICIkcGFzcyIgPSBjb252OyB0aGVuCi0JICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMi
Ci0JICAgIGNvbnRpbnVlCi0JICBmaQogCSAgbmFtZT1gJGVjaG8gIlgkZGVwbGliIiB8ICRYc2Vk
IC1lICdzL14tbC8vJ2AKIAkgIGZvciBzZWFyY2hkaXIgaW4gJG5ld2xpYl9zZWFyY2hfcGF0aCAk
bGliX3NlYXJjaF9wYXRoICRzeXNfbGliX3NlYXJjaF9wYXRoICRzaGxpYl9zZWFyY2hfcGF0aDsg
ZG8KIAkgICAgZm9yIHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KQEAg
LTIwNTMsNyArMjEyNiw3IEBACiAJCSAgICBjb250aW51ZQogCQkgIGZpCiAJCWZpCi0JCTs7CisJ
ICAgICAgICA7OwogCSAgICAgICopIDs7CiAJICAgICAgZXNhYwogCSAgICBmaQpAQCAtMjExMCw3
ICsyMTgzLDcgQEAKIAkgICAgY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KIAkgICAgICBt
YXRjaF9wYXR0ZXJuKikKIAkJc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZAotCQltYXRj
aF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19tZXRob2QiIDogIiQyIFwoLipc
KSJgCisJICAgICAgICBtYXRjaF9wYXR0ZXJuX3JlZ2V4PWBleHByICIkZGVwbGlic19jaGVja19t
ZXRob2QiIDogIiQyIFwoLipcKSJgCiAJCWlmIGV2YWwgJGVjaG8gXCIkZGVwbGliXCIgMj4vZGV2
L251bGwgXAogCQkgICAgfCAkU0VEIDEwcSBcCiAJCSAgICB8ICRFR1JFUCAiJG1hdGNoX3BhdHRl
cm5fcmVnZXgiID4gL2Rldi9udWxsOyB0aGVuCkBAIC0yMTk1LDcgKzIyNjgsOSBAQAogCSMgaXQg
d2lsbCBub3QgcmVkZWZpbmUgdmFyaWFibGVzIGluc3RhbGxlZCwgb3Igc2hvdWxkbm90bGluawog
CWluc3RhbGxlZD15ZXMKIAlzaG91bGRub3RsaW5rPW5vCisJYXZvaWR0ZW1wcnBhdGg9CiAKKwog
CSMgUmVhZCB0aGUgLmxhIGZpbGUKIAljYXNlICRsaWIgaW4KIAkqLyogfCAqXFwqKSAuICRsaWIg
OzsKQEAgLTIyMjQsOSArMjI5OSw5IEBACiAJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lf
bGliczsgZG8KIAkgICAgICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgogICAgICAgICAgICAg
ICBpZiB0ZXN0ICJYJGR1cGxpY2F0ZV9kZXBzIiA9ICJYeWVzIiA7IHRoZW4KLQkJY2FzZSAiJHRt
cF9saWJzICIgaW4KLQkJKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVw
bGlicyAkZGVwbGliIiA7OwotCQllc2FjCisJICAgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgor
CSAgICAgICAgKiIgJGRlcGxpYiAiKikgc3BlY2lhbGRlcGxpYnM9IiRzcGVjaWFsZGVwbGlicyAk
ZGVwbGliIiA7OworCSAgICAgICAgZXNhYwogICAgICAgICAgICAgICBmaQogCSAgICAgIHRtcF9s
aWJzPSIkdG1wX2xpYnMgJGRlcGxpYiIKIAkgICAgZG9uZQpAQCAtMjI5Myw2ICsyMzY4LDcgQEAK
IAkgICAgZGlyPSIkbGliZGlyIgogCSAgICBhYnNkaXI9IiRsaWJkaXIiCiAJICBmaQorCSAgdGVz
dCAiWCRoYXJkY29kZV9hdXRvbWF0aWMiID0gWHllcyAmJiBhdm9pZHRlbXBycGF0aD15ZXMKIAll
bHNlCiAJICBpZiB0ZXN0ICEgLWYgIiRsYWRpci8kb2JqZGlyLyRsaW5rbGliIiAmJiB0ZXN0IC1m
ICIkYWJzX2xhZGlyLyRsaW5rbGliIjsgdGhlbgogCSAgICBkaXI9IiRsYWRpciIKQEAgLTIzNzcs
NyArMjQ1Myw3IEBACiAJICBpZiB0ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKIAkgICAgIHsg
dGVzdCAiJHByZWZlcl9zdGF0aWNfbGlicyIgPSBubyB8fCB0ZXN0IC16ICIkb2xkX2xpYnJhcnki
OyB9OyB0aGVuCiAJICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoCi0J
ICAgIGlmIHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIjsgdGhlbgorCSAgICBpZiB0ZXN0IC1uICIk
c2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lkdGVtcHJwYXRoIiA7IHRoZW4KIAkgICAg
ICAjIE1ha2Ugc3VyZSB0aGUgcnBhdGggY29udGFpbnMgb25seSB1bmlxdWUgZGlyZWN0b3JpZXMu
CiAJICAgICAgY2FzZSAiJHRlbXBfcnBhdGggIiBpbgogCSAgICAgICoiICRkaXIgIiopIDs7CkBA
IC0yNTQwLDExICsyNjE2LDExIEBACiAJCSAgICBpZiAvdXNyL2Jpbi9maWxlIC1MICRhZGQgMj4g
L2Rldi9udWxsIHwgJEVHUkVQICJidW5kbGUiID4vZGV2L251bGwgOyB0aGVuCiAJCSAgICAgICRl
Y2hvICIqKiBXYXJuaW5nLCBsaWIgJGxpbmtsaWIgaXMgYSBtb2R1bGUsIG5vdCBhIHNoYXJlZCBs
aWJyYXJ5IgogCQkgICAgICBpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgotCQkJJGVj
aG8KLQkJCSRlY2hvICIqKiBBbmQgdGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGEgc3RhdGljIGFy
Y2hpdmUgYXZhaWxhYmxlIgotCQkJJGVjaG8gIioqIFRoZSBsaW5rIHdpbGwgcHJvYmFibHkgZmFp
bCwgc29ycnkiCisJCSAgICAgICAgJGVjaG8KKwkJICAgICAgICAkZWNobyAiKiogQW5kIHRoZXJl
IGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHN0YXRpYyBhcmNoaXZlIGF2YWlsYWJsZSIKKwkJICAgICAg
ICAkZWNobyAiKiogVGhlIGxpbmsgd2lsbCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKIAkJICAgICAg
ZWxzZQotCQkJYWRkPSIkZGlyLyRvbGRfbGlicmFyeSIKKwkJICAgICAgICBhZGQ9IiRkaXIvJG9s
ZF9saWJyYXJ5IgogCQkgICAgICBmaQogCQkgICAgZmkKIAkJZXNhYwpAQCAtMjYzMiw5ICsyNzA4
LDkgQEAKIAkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllczsgdGhlbgog
CSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCiAJCSB0ZXN0IC1mICIkaW5z
dF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIgOyB0aGVuCi0JCWFkZD0iJGluc3RfcHJlZml4
X2RpciRsaWJkaXIvJGxpbmtsaWIiCisJICAgICAgICBhZGQ9IiRpbnN0X3ByZWZpeF9kaXIkbGli
ZGlyLyRsaW5rbGliIgogCSAgICAgIGVsc2UKLQkJYWRkPSIkbGliZGlyLyRsaW5rbGliIgorCSAg
ICAgICAgYWRkPSIkbGliZGlyLyRsaW5rbGliIgogCSAgICAgIGZpCiAJICAgIGVsc2UKIAkgICAg
ICAjIFdlIGNhbm5vdCBzZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgpA
QCAtMjgyMSwxMyArMjg5NywxMyBAQAogCSAgICAgICopIGNvbnRpbnVlIDs7CiAJICAgICAgZXNh
YwogCSAgICAgIGNhc2UgIiAkZGVwbGlicyAiIGluCisJICAgICAgKiIgJHBhdGggIiopIDs7CisJ
ICAgICAgKikgZGVwbGlicz0iJHBhdGggJGRlcGxpYnMiIDs7CisJICAgICAgZXNhYworCSAgICAg
IGNhc2UgIiAkZGVwbGlicyAiIGluCiAJICAgICAgKiIgJGRlcGRlcGwgIiopIDs7CiAJICAgICAg
KikgZGVwbGlicz0iJGRlcGRlcGwgJGRlcGxpYnMiIDs7CiAJICAgICAgZXNhYwotCSAgICAgIGNh
c2UgIiAkZGVwbGlicyAiIGluCi0JICAgICAgKiIgJHBhdGggIiopIDs7Ci0JICAgICAgKikgZGVw
bGlicz0iJGRlcGxpYnMgJHBhdGgiIDs7Ci0JICAgICAgZXNhYwogCSAgICBkb25lCiAJICBmaSAj
IGxpbmtfYWxsX2RlcGxpYnMgIT0gbm8KIAlmaSAjIGxpbmttb2RlID0gbGliCkBAIC0yODYzLDgg
KzI5MzksOCBAQAogCSAgbmV3X2xpYnM9CiAJICBmb3IgZGVwbGliIGluICR0bXBfbGliczsgZG8K
IAkgICAgIyBGSVhNRTogUGVkYW50aWNhbGx5LCB0aGlzIGlzIHRoZSByaWdodCB0aGluZyB0byBk
bywgc28KLQkgICAgIwkgICAgIHRoYXQgc29tZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNuJ3Qg
YWNjaWRlbnRhbGx5Ci0JICAgICMJICAgICBicm9rZW46CisJICAgICMgICAgICAgIHRoYXQgc29t
ZSBuYXN0eSBkZXBlbmRlbmN5IGxvb3AgaXNuJ3QgYWNjaWRlbnRhbGx5CisJICAgICMgICAgICAg
IGJyb2tlbjoKIAkgICAgI25ld19saWJzPSIkZGVwbGliICRuZXdfbGlicyIKIAkgICAgIyBQcmFn
bWF0aWNhbGx5LCB0aGlzIHNlZW1zIHRvIGNhdXNlIHZlcnkgZmV3IHByb2JsZW1zIGluCiAJICAg
ICMgcHJhY3RpY2U6CkBAIC0zMDkxLDI3ICszMTY3LDI3IEBACiAKIAkjIENoZWNrIHRoYXQgZWFj
aCBvZiB0aGUgdGhpbmdzIGFyZSB2YWxpZCBudW1iZXJzLgogCWNhc2UgJGN1cnJlbnQgaW4KLQkw
IHwgWzEtOV0gfCBbMS05XVswLTldIHwgWzEtOV1bMC05XVswLTldKSA7OworCTB8WzEtOV18WzEt
OV1bMC05XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVsw
LTldWzAtOV1bMC05XSkgOzsKIAkqKQotCSAgJGVjaG8gIiRtb2RlbmFtZTogQ1VSUkVOVCBcYCRj
dXJyZW50JyBpcyBub3QgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCisJICAkZWNobyAiJG1v
ZGVuYW1lOiBDVVJSRU5UIFxgJGN1cnJlbnQnIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2Vy
IiAxPiYyCiAJICAkZWNobyAiJG1vZGVuYW1lOiBcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNp
b24gaW5mb3JtYXRpb24iIDE+JjIKIAkgIGV4aXQgJEVYSVRfRkFJTFVSRQogCSAgOzsKIAllc2Fj
CiAKIAljYXNlICRyZXZpc2lvbiBpbgotCTAgfCBbMS05XSB8IFsxLTldWzAtOV0gfCBbMS05XVsw
LTldWzAtOV0pIDs7CisJMHxbMS05XXxbMS05XVswLTldfFsxLTldWzAtOV1bMC05XXxbMS05XVsw
LTldWzAtOV1bMC05XXxbMS05XVswLTldWzAtOV1bMC05XVswLTldKSA7OwogCSopCi0JICAkZWNo
byAiJG1vZGVuYW1lOiBSRVZJU0lPTiBcYCRyZXZpc2lvbicgaXMgbm90IGEgbm9ubmVnYXRpdmUg
aW50ZWdlciIgMT4mMgorCSAgJGVjaG8gIiRtb2RlbmFtZTogUkVWSVNJT04gXGAkcmV2aXNpb24n
IG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRlZ2VyIiAxPiYyCiAJICAkZWNobyAiJG1vZGVuYW1l
OiBcYCR2aW5mbycgaXMgbm90IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iIDE+JjIKIAkgIGV4
aXQgJEVYSVRfRkFJTFVSRQogCSAgOzsKIAllc2FjCiAKIAljYXNlICRhZ2UgaW4KLQkwIHwgWzEt
OV0gfCBbMS05XVswLTldIHwgWzEtOV1bMC05XVswLTldKSA7OworCTB8WzEtOV18WzEtOV1bMC05
XXxbMS05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAtOV18WzEtOV1bMC05XVswLTldWzAt
OV1bMC05XSkgOzsKIAkqKQotCSAgJGVjaG8gIiRtb2RlbmFtZTogQUdFIFxgJGFnZScgaXMgbm90
IGEgbm9ubmVnYXRpdmUgaW50ZWdlciIgMT4mMgorCSAgJGVjaG8gIiRtb2RlbmFtZTogQUdFIFxg
JGFnZScgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiIDE+JjIKIAkgICRlY2hvICIkbW9k
ZW5hbWU6IFxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lvbiBpbmZvcm1hdGlvbiIgMT4mMgog
CSAgZXhpdCAkRVhJVF9GQUlMVVJFCiAJICA7OwpAQCAtMzE1NSw3ICszMjMxLDcgQEAKIAogCSAg
Y2FzZSAkdmVyc2lvbl90eXBlIGluCiAJICAgIG5vbnN0b3B1eCkgdmVyc3RyaW5nX3ByZWZpeD1u
b25zdG9wdXggOzsKLQkgICAgKikJICAgICAgIHZlcnN0cmluZ19wcmVmaXg9c2dpIDs7CisJICAg
ICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZpeD1zZ2kgOzsKIAkgIGVzYWMKIAkgIHZlcnN0cmlu
Zz0iJHZlcnN0cmluZ19wcmVmaXgkbWFqb3IuJHJldmlzaW9uIgogCkBAIC0zMjY0LDggKzMzNDAs
OCBAQAogCSAgICAgICA7OwogCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRw
dXRfb2JqZGlyLyRsaWJuYW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNl
fS4qKQogCSAgICAgICBpZiB0ZXN0ICJYJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiAhPSAiWCI7IHRo
ZW4KLQkJIGlmIGVjaG8gJHAgfCAkRUdSRVAgLWUgIiRwcmVjaW91c19maWxlc19yZWdleCIgPi9k
ZXYvbnVsbCAyPiYxCi0JCSB0aGVuCisJICAgICAgICAgaWYgZWNobyAkcCB8ICRFR1JFUCAtZSAi
JHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+JjEKKwkgICAgICAgICB0aGVuCiAJ
CSAgIGNvbnRpbnVlCiAJCSBmaQogCSAgICAgICBmaQpAQCAtMzM0MywxMSArMzQxOSwxMSBAQAog
CSAgKi0qLW5ldGJzZCopCiAJICAgICMgRG9uJ3QgbGluayB3aXRoIGxpYmMgdW50aWwgdGhlIGEu
b3V0IGxkLnNvIGlzIGZpeGVkLgogCSAgICA7OwotCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVi
c2QqKQorCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCiAJ
ICAgICMgRG8gbm90IGluY2x1ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgog
CSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKIAkgICAgOzsKLQkgICopCisg
CSAgKikKIAkgICAgIyBBZGQgbGliYyB0byBkZXBsaWJzIG9uIGFsbCBvdGhlciBzeXN0ZW1zIGlm
IG5lY2Vzc2FyeS4KIAkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbmVlZF9sYyIgPSAieWVz
IjsgdGhlbgogCSAgICAgIGRlcGxpYnM9IiRkZXBsaWJzIC1sYyIKQEAgLTMzNzQsNyArMzQ1MCw3
IEBACiAJcGFzc19hbGwpCiAJICAjIERvbid0IGNoZWNrIGZvciBzaGFyZWQvc3RhdGljLiAgRXZl
cnl0aGluZyB3b3Jrcy4KIAkgICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdlIG1p
Z2h0IHdhbnQgdG8gY2hlY2sKLQkgICMgd2hldGhlciB0aGUgbGlicmFyeSBleGlzdHMgb3Igbm90
LglCdXQgdGhpcyBpcyBvbgorCSAgIyB3aGV0aGVyIHRoZSBsaWJyYXJ5IGV4aXN0cyBvciBub3Qu
ICBCdXQgdGhpcyBpcyBvbgogCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFsbHkgc3Vy
ZS4uLiBKdXN0CiAJICAjIGltcGxlbWVudGluZyB3aGF0IHdhcyBhbHJlYWR5IHRoZSBiZWhhdmlv
ci4KIAkgIG5ld2RlcGxpYnM9JGRlcGxpYnMKQEAgLTM0MDMsNyArMzQ3OSw3IEBACiAJCSAgICBp
PSIiCiAJCSAgICA7OwogCQkgIGVzYWMKLQkJZmkKKwkgICAgICAgIGZpCiAJCWlmIHRlc3QgLW4g
IiRpIiA7IHRoZW4KIAkJICBsaWJuYW1lPWBldmFsIFxcJGVjaG8gXCIkbGlibmFtZV9zcGVjXCJg
CiAJCSAgZGVwbGliX21hdGNoZXM9YGV2YWwgXFwkZWNobyBcIiRsaWJyYXJ5X25hbWVzX3NwZWNc
ImAKQEAgLTM0NjgsNyArMzU0NCw3IEBACiAJCSAgZHJvcHBlZGRlcHM9eWVzCiAJCSAgJGVjaG8K
IAkJICAkZWNobyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlzIG5lZWRlZCBieSB0aGlzIGxp
YnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotCQkgICRlY2hvICIqKiogIG1ha2UgaXQgbGlu
ayBpbiEJWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxsIGl0IG9yIHNvbWUiCisJCSAg
JGVjaG8gIioqKiAgbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBp
bnN0YWxsIGl0IG9yIHNvbWUiCiAJCSAgJGVjaG8gIioqKiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5k
cyBvbiBiZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCiAJCSAgJGVjaG8gIioqKiBm
dW5jdGlvbmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVu
IGJldHRlci4iCiAJCWZpCkBAIC0zNTE2LDYgKzM1OTIsMTMgQEAKIAkJCSopIHBvdGxpYj1gJGVj
aG8gIlgkcG90bGliIiB8ICRYc2VkIC1lICdzLFteL10qJCwsJ2AiJHBvdGxpYmxpbmsiOzsKIAkJ
CWVzYWMKIAkJICAgICAgZG9uZQorCQkgICAgICAjIEl0IGlzIG9rIHRvIGxpbmsgYWdhaW5zdCBh
biBhcmNoaXZlIHdoZW4KKwkJICAgICAgIyBidWlsZGluZyBhIHNoYXJlZCBsaWJyYXJ5LgorCQkg
ICAgICBpZiAkQVIgLXQgJHBvdGxpYiA+IC9kZXYvbnVsbCAyPiYxOyB0aGVuCisJCSAgICAgICAg
bmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgorCQkgICAgICAgIGFfZGVwbGliPSIi
CisJCSAgICAgICAgYnJlYWsgMgorCQkgICAgICBmaQogCQkgICAgICBpZiBldmFsICRmaWxlX21h
Z2ljX2NtZCBcIlwkcG90bGliXCIgMj4vZGV2L251bGwgXAogCQkJIHwgJHtTRUR9IDEwcSBcCiAJ
CQkgfCAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgpAQCAtMzU2
OSw4ICszNjUyLDggQEAKIAkJICBmb3IgcG90ZW50X2xpYiBpbiAkcG90ZW50aWFsX2xpYnM7IGRv
CiAJCSAgICBwb3RsaWI9IiRwb3RlbnRfbGliIiAjIHNlZSBzeW1saW5rLWNoZWNrIGFib3ZlIGlu
IGZpbGVfbWFnaWMgdGVzdAogCQkgICAgaWYgZXZhbCAkZWNobyBcIiRwb3RlbnRfbGliXCIgMj4v
ZGV2L251bGwgXAotCQkJfCAke1NFRH0gMTBxIFwKLQkJCXwgJEVHUkVQICIkbWF0Y2hfcGF0dGVy
bl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KKwkJICAgICAgICB8ICR7U0VEfSAxMHEgXAorCQkg
ICAgICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9yZWdleCIgPiAvZGV2L251bGw7IHRoZW4K
IAkJICAgICAgbmV3ZGVwbGlicz0iJG5ld2RlcGxpYnMgJGFfZGVwbGliIgogCQkgICAgICBhX2Rl
cGxpYj0iIgogCQkgICAgICBicmVhayAyCkBAIC0zNjA5LDcgKzM2OTIsNyBAQAogCSAgICAgIHRt
cF9kZXBsaWJzPWAkZWNobyAiWCAkdG1wX2RlcGxpYnMiIHwgJHtTRUR9IC1lICIxcyxeWCwsIiAt
ZSAicywkaSwsImAKIAkgICAgZG9uZQogCSAgZmkKLQkgIGlmICRlY2hvICJYICR0bXBfZGVwbGli
cyIgfCAkWHNlZCAtZSAncy9bCV0vL2cnIFwKKwkgIGlmICRlY2hvICJYICR0bXBfZGVwbGlicyIg
fCAkWHNlZCAtZSAncy9bIAldLy9nJyBcCiAJICAgIHwgZ3JlcCAuID4vZGV2L251bGw7IHRoZW4K
IAkgICAgJGVjaG8KIAkgICAgaWYgdGVzdCAiWCRkZXBsaWJzX2NoZWNrX21ldGhvZCIgPSAiWG5v
bmUiOyB0aGVuCkBAIC0zNzg1LDEzICszODY4LDEzIEBACiAJICAgICAgZXZhbCBjbWQ9XCIkY21k
XCIKIAkgICAgICBpZiBsZW49YGV4cHIgIlgkY21kIiA6ICIuKiJgICYmCiAJICAgICAgIHRlc3Qg
IiRsZW4iIC1sZSAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsg
dGhlbgotCQkkc2hvdyAiJGNtZCIKLQkJJHJ1biBldmFsICIkY21kIiB8fCBleGl0ICQ/Ci0JCXNr
aXBwZWRfZXhwb3J0PWZhbHNlCisJICAgICAgICAkc2hvdyAiJGNtZCIKKwkgICAgICAgICRydW4g
ZXZhbCAiJGNtZCIgfHwgZXhpdCAkPworCSAgICAgICAgc2tpcHBlZF9leHBvcnQ9ZmFsc2UKIAkg
ICAgICBlbHNlCi0JCSMgVGhlIGNvbW1hbmQgbGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGlu
IG9uZSBzdGVwLgotCQkkc2hvdyAidXNpbmcgcmVsb2FkYWJsZSBvYmplY3QgZmlsZSBmb3IgZXhw
b3J0IGxpc3QuLi4iCi0JCXNraXBwZWRfZXhwb3J0PToKKwkgICAgICAgICMgVGhlIGNvbW1hbmQg
bGluZSBpcyB0b28gbG9uZyB0byBleGVjdXRlIGluIG9uZSBzdGVwLgorCSAgICAgICAgJHNob3cg
InVzaW5nIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUgZm9yIGV4cG9ydCBsaXN0Li4uIgorCSAgICAg
ICAgc2tpcHBlZF9leHBvcnQ9OgogCSAgICAgIGZpCiAJICAgIGRvbmUKIAkgICAgSUZTPSIkc2F2
ZV9pZnMiCkBAIC0zODgwLDYgKzM5NjMsNyBAQAogCSAgICBzYXZlX2xpYm9ianM9JGxpYm9ianMK
IAkgIGZpCiAJICBzYXZlX291dHB1dD0kb3V0cHV0CisJICBvdXRwdXRfbGE9YCRlY2hvICJYJG91
dHB1dCIgfCAkWHNlZCAtZSAiJGJhc2VuYW1lImAKIAogCSAgIyBDbGVhciB0aGUgcmVsb2FkYWJs
ZSBvYmplY3QgY3JlYXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKIAkgICMgaW5pdGlhbGl6ZSBrIHRv
IG9uZS4KQEAgLTM4ODksNyArMzk3Myw3IEBACiAJICBkZWxmaWxlcz0KIAkgIGxhc3Rfcm9iaj0K
IAkgIGs9MQotCSAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRzYXZlX291dHB1dC0ke2t9LiRvYmpl
eHQKKwkgIG91dHB1dD0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAogCSAg
IyBMb29wIG92ZXIgdGhlIGxpc3Qgb2Ygb2JqZWN0cyB0byBiZSBsaW5rZWQuCiAJICBmb3Igb2Jq
IGluICRzYXZlX2xpYm9ianMKIAkgIGRvCkBAIC0zOTA5LDkgKzM5OTMsOSBAQAogCQkjIHRoZSBs
YXN0IG9uZSBjcmVhdGVkLgogCQlldmFsIGNvbmNhdF9jbWRzPVwiXCRjb25jYXRfY21kc34kcmVs
b2FkX2NtZHMgJG9iamxpc3QgJGxhc3Rfcm9ialwiCiAJICAgICAgZmkKLQkgICAgICBsYXN0X3Jv
Ymo9JG91dHB1dF9vYmpkaXIvJHNhdmVfb3V0cHV0LSR7a30uJG9iamV4dAorCSAgICAgIGxhc3Rf
cm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAogCSAgICAgIGs9YGV4
cHIgJGsgKyAxYAotCSAgICAgIG91dHB1dD0kb3V0cHV0X29iamRpci8kc2F2ZV9vdXRwdXQtJHtr
fS4kb2JqZXh0CisJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4k
b2JqZXh0CiAJICAgICAgb2JqbGlzdD0kb2JqCiAJICAgICAgbGVuPTEKIAkgICAgZmkKQEAgLTM5
MzEsMTMgKzQwMTUsMTMgQEAKIAkgICAgZXZhbCBjb25jYXRfY21kcz1cIlwkY29uY2F0X2NtZHN+
JGV4cG9ydF9zeW1ib2xzX2NtZHNcIgogICAgICAgICAgIGZpCiAKLQkgICMgU2V0IHVwIGEgY29t
bWFuZCB0byByZW1vdmUgdGhlIHJlbG9hZGFsZSBvYmplY3QgZmlsZXMKKwkgICMgU2V0IHVwIGEg
Y29tbWFuZCB0byByZW1vdmUgdGhlIHJlbG9hZGFibGUgb2JqZWN0IGZpbGVzCiAJICAjIGFmdGVy
IHRoZXkgYXJlIHVzZWQuCiAJICBpPTAKIAkgIHdoaWxlIHRlc3QgIiRpIiAtbHQgIiRrIgogCSAg
ZG8KIAkgICAgaT1gZXhwciAkaSArIDFgCi0JICAgIGRlbGZpbGVzPSIkZGVsZmlsZXMgJG91dHB1
dF9vYmpkaXIvJHNhdmVfb3V0cHV0LSR7aX0uJG9iamV4dCIKKwkgICAgZGVsZmlsZXM9IiRkZWxm
aWxlcyAkb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7aX0uJG9iamV4dCIKIAkgIGRvbmUKIAog
CSAgJGVjaG8gImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRv
dXRwdXQiCkBAIC00MzM0LDEyICs0NDE4LDEyIEBACiAKIAkgICAgIyBQcmVwYXJlIHRoZSBsaXN0
IG9mIGV4cG9ydGVkIHN5bWJvbHMKIAkgICAgaWYgdGVzdCAteiAiJGV4cG9ydF9zeW1ib2xzIjsg
dGhlbgotCSAgICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0LmV4cCIK
KwkgICAgICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUuZXhwIgog
CSAgICAgICRydW4gJHJtICRleHBvcnRfc3ltYm9scwogCSAgICAgICRydW4gZXZhbCAiJHtTRUR9
IC1uIC1lICcvXjogQFBST0dSQU1AJC9kJyAtZSAncy9eLiogXCguKlwpJC9cMS9wJyAiJzwgIiRu
bGlzdCIgPiAiJGV4cG9ydF9zeW1ib2xzIicKIAkgICAgZWxzZQotCSAgICAgICRydW4gZXZhbCAi
JHtTRUR9IC1lICdzL1woW11bLipeJF1cKS9cXFwxL2cnIC1lICdzL14vIC8nIC1lICdzLyQvJC8n
IicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0LmV4cCInCi0J
ICAgICAgJHJ1biBldmFsICdncmVwIC1mICIkb3V0cHV0X29iamRpci8kb3V0cHV0LmV4cCIgPCAi
JG5saXN0IiA+ICIkbmxpc3QiVCcKKwkgICAgICAkcnVuIGV2YWwgIiR7U0VEfSAtZSAncy9cKFsg
XVsuKl4kXVwpL1xcXDEvZycgLWUgJ3MvXi8gLycgLWUgJ3MvJC8kLyciJyA8ICIkZXhwb3J0X3N5
bWJvbHMiID4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmV4cCInCisJICAgICAgJHJ1biBl
dmFsICdncmVwIC1mICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAiIDwgIiRubGlzdCIg
PiAiJG5saXN0IlQnCiAJICAgICAgJHJ1biBldmFsICdtdiAiJG5saXN0IlQgIiRubGlzdCInCiAJ
ICAgIGZpCiAJICBmaQpAQCAtNDM5MSw3ICs0NDc1LDI2IEBACiAjZW5kaWYKIAogLyogVGhlIG1h
cHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICovCisiCisKKwkgICAgY2Fz
ZSAkaG9zdCBpbgorCSAgICAqY3lnd2luKiB8ICptaW5ndyogKQorCSAgJGVjaG8gPj4gIiRvdXRw
dXRfb2JqZGlyLyRkbHN5bXMiICJcCisvKiBEQVRBIGltcG9ydHMgZnJvbSBETExzIG9uIFdJTjMy
IGNhbid0IGJlIGNvbnN0LCBiZWNhdXNlCisgICBydW50aW1lIHJlbG9jYXRpb25zIGFyZSBwZXJm
b3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbgorICAgb24gcHNldWRvLXJlbG9jcyAqLwor
c3RydWN0IHsKKyIKKwkgICAgICA7OworCSAgICAqICkKKwkgICRlY2hvID4+ICIkb3V0cHV0X29i
amRpci8kZGxzeW1zIiAiXAogY29uc3Qgc3RydWN0IHsKKyIKKwkgICAgICA7OworCSAgICBlc2Fj
CisKKworCSAgJGVjaG8gPj4gIiRvdXRwdXRfb2JqZGlyLyRkbHN5bXMiICJcCiAgIGNvbnN0IGNo
YXIgKm5hbWU7CiAgIGx0X3B0ciBhZGRyZXNzOwogfQpAQCAtNDYyMCw3ICs0NzIzLDcgQEAKIAll
c2FjCiAJY2FzZSAkaG9zdCBpbgogCSAgKmN5Z3dpbiogfCAqbWluZ3cqICkKLQkgICAgY3dyYXBw
ZXJzb3VyY2U9YCRlY2hvICR7b2JqZGlyfS9sdC0ke291dHB1dH0uY2AKKwkgICAgY3dyYXBwZXJz
b3VyY2U9YCRlY2hvICR7b2JqZGlyfS9sdC0ke291dHB1dG5hbWV9LmNgCiAJICAgIGN3cmFwcGVy
PWAkZWNobyAke291dHB1dH0uZXhlYAogCSAgICAkcm0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBl
cgogCSAgICB0cmFwICIkcm0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcjsgZXhpdCAkRVhJVF9G
QUlMVVJFIiAxIDIgMTUKQEAgLTUwNDAsNiArNTE0Myw2MyBAQAogICAgICAgaWYgdGVzdCAtbiAi
JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi
ID0geWVzOyB0aGVuCiAgICAgICAgY21kcz0kb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcwogICAg
ICAgZWxzZQorCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVkIGluIGFyY2hp
dmVzLiAgV2UgaGF2ZQorCSMgdG8gYXZvaWQgY3JlYXRpbmcgYXJjaGl2ZXMgd2l0aCBkdXBsaWNh
dGUgYmFzZW5hbWVzIGlmIHdlCisJIyBtaWdodCBoYXZlIHRvIGV4dHJhY3QgdGhlbSBhZnRlcndh
cmRzLCBlLmcuLCB3aGVuIGNyZWF0aW5nIGEKKwkjIHN0YXRpYyBhcmNoaXZlIG91dCBvZiBhIGNv
bnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZworCSMgdGhlIGVudGlyZXR5IG9mIGEg
bGlidG9vbCBhcmNoaXZlIGludG8gYW5vdGhlciAoY3VycmVudGx5CisJIyBub3Qgc3VwcG9ydGVk
IGJ5IGxpYnRvb2wpLgorCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCisJICAgIGRvCisJICAgICAg
JGVjaG8gIlgkb2JqIiB8ICRYc2VkIC1lICdzJV4uKi8lJScKKwkgICAgZG9uZSB8IHNvcnQgfCBz
b3J0IC11YyA+L2Rldi9udWxsIDI+JjEpOyB0aGVuCisJICA6CisJZWxzZQorCSAgJGVjaG8gImNv
cHlpbmcgc2VsZWN0ZWQgb2JqZWN0IGZpbGVzIHRvIGF2b2lkIGJhc2VuYW1lIGNvbmZsaWN0cy4u
LiIKKworCSAgaWYgdGVzdCAteiAiJGdlbnRvcCI7IHRoZW4KKwkgICAgZ2VudG9wPSIkb3V0cHV0
X29iamRpci8ke291dHB1dG5hbWV9eCIKKwkgICAgZ2VuZXJhdGVkPSIkZ2VuZXJhdGVkICRnZW50
b3AiCisKKwkgICAgJHNob3cgIiR7cm19ciAkZ2VudG9wIgorCSAgICAkcnVuICR7cm19ciAiJGdl
bnRvcCIKKwkgICAgJHNob3cgIiRta2RpciAkZ2VudG9wIgorCSAgICAkcnVuICRta2RpciAiJGdl
bnRvcCIKKwkgICAgc3RhdHVzPSQ/CisJICAgIGlmIHRlc3QgIiRzdGF0dXMiIC1uZSAwICYmIHRl
c3QgISAtZCAiJGdlbnRvcCI7IHRoZW4KKwkgICAgICBleGl0ICRzdGF0dXMKKwkgICAgZmkKKwkg
IGZpCisKKwkgIHNhdmVfb2xkb2Jqcz0kb2xkb2JqcworCSAgb2xkb2Jqcz0KKwkgIGNvdW50ZXI9
MQorCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCisJICBkbworCSAgICBvYmpiYXNlPWAkZWNo
byAiWCRvYmoiIHwgJFhzZWQgLWUgJ3MlXi4qLyUlJ2AKKwkgICAgY2FzZSAiICRvbGRvYmpzICIg
aW4KKwkgICAgIiAiKSBvbGRvYmpzPSRvYmogOzsKKwkgICAgKltcIC9dIiRvYmpiYXNlICIqKQor
CSAgICAgIHdoaWxlIDo7IGRvCisJCSMgTWFrZSBzdXJlIHdlIGRvbid0IHBpY2sgYW4gYWx0ZXJu
YXRlIG5hbWUgdGhhdCBhbHNvCisJCSMgb3ZlcmxhcHMuCisJCW5ld29iaj1sdCRjb3VudGVyLSRv
YmpiYXNlCisJCWNvdW50ZXI9YGV4cHIgJGNvdW50ZXIgKyAxYAorCQljYXNlICIgJG9sZG9ianMg
IiBpbgorCQkqW1wgL10iJG5ld29iaiAiKikgOzsKKwkJKikgaWYgdGVzdCAhIC1mICIkZ2VudG9w
LyRuZXdvYmoiOyB0aGVuIGJyZWFrOyBmaSA7OworCQllc2FjCisJICAgICAgZG9uZQorCSAgICAg
ICRzaG93ICJsbiAkb2JqICRnZW50b3AvJG5ld29iaiB8fCBjcCAkb2JqICRnZW50b3AvJG5ld29i
aiIKKwkgICAgICAkcnVuIGxuICIkb2JqIiAiJGdlbnRvcC8kbmV3b2JqIiB8fAorCSAgICAgICRy
dW4gY3AgIiRvYmoiICIkZ2VudG9wLyRuZXdvYmoiCisJICAgICAgb2xkb2Jqcz0iJG9sZG9ianMg
JGdlbnRvcC8kbmV3b2JqIgorCSAgICAgIDs7CisJICAgICopIG9sZG9ianM9IiRvbGRvYmpzICRv
YmoiIDs7CisJICAgIGVzYWMKKwkgIGRvbmUKKwlmaQorCiAJZXZhbCBjbWRzPVwiJG9sZF9hcmNo
aXZlX2NtZHNcIgogCiAJaWYgbGVuPWBleHByICJYJGNtZHMiIDogIi4qImAgJiYKQEAgLTUwNTMs
MjAgKzUyMTMsNyBAQAogCSAgb2JqbGlzdD0KIAkgIGNvbmNhdF9jbWRzPQogCSAgc2F2ZV9vbGRv
YmpzPSRvbGRvYmpzCi0JICAjIEdOVSBhciAyLjEwKyB3YXMgY2hhbmdlZCB0byBtYXRjaCBQT1NJ
WDsgdGh1cyBubyBwYXRocyBhcmUKLQkgICMgZW5jb2RlZCBpbnRvIGFyY2hpdmVzLiAgVGhpcyBt
YWtlcyAnYXIgcicgbWFsZnVuY3Rpb24gaW4KLQkgICMgdGhpcyBwaWVjZXdpc2UgbGlua2luZyBj
YXNlIHdoZW5ldmVyIGNvbmZsaWN0aW5nIG9iamVjdAotCSAgIyBuYW1lcyBhcHBlYXIgaW4gZGlz
dGluY3QgYXIgY2FsbHM7IGNoZWNrLCB3YXJuIGFuZCBjb21wZW5zYXRlLgotCSAgICBpZiAoZm9y
IG9iaiBpbiAkc2F2ZV9vbGRvYmpzCi0JICAgIGRvCi0JICAgICAgJGVjaG8gIlgkb2JqIiB8ICRY
c2VkIC1lICdzJV4uKi8lJScKLQkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9udWxs
IDI+JjEpOyB0aGVuCi0JICAgIDoKLQkgIGVsc2UKLQkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2Fy
bmluZzogb2JqZWN0IG5hbWUgY29uZmxpY3RzOyBvdmVycmlkaW5nIEFSX0ZMQUdTIHRvICdjcSci
IDE+JjIKLQkgICAgJGVjaG8gIiRtb2RlbmFtZTogd2FybmluZzogdG8gZW5zdXJlIHRoYXQgUE9T
SVgtY29tcGF0aWJsZSBhciB3aWxsIHdvcmsiIDE+JjIKLQkgICAgQVJfRkxBR1M9Y3EKLQkgIGZp
CisKIAkgICMgSXMgdGhlcmUgYSBiZXR0ZXIgd2F5IG9mIGZpbmRpbmcgdGhlIGxhc3Qgb2JqZWN0
IGluIHRoZSBsaXN0PwogCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCiAJICBkbwpAQCAtNTA4
NCw3ICs1MjMxLDcgQEAKIAkgICAgICAjIHRoZSBhYm92ZSBjb21tYW5kIHNob3VsZCBiZSB1c2Vk
IGJlZm9yZSBpdCBnZXRzIHRvbyBsb25nCiAJICAgICAgb2xkb2Jqcz0kb2JqbGlzdAogCSAgICAg
IGlmIHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIgOyB0aGVuCi0JCVJBTkxJQj0kc2F2ZV9S
QU5MSUIKKwkgICAgICAgIFJBTkxJQj0kc2F2ZV9SQU5MSUIKIAkgICAgICBmaQogCSAgICAgIHRl
c3QgLXogIiRjb25jYXRfY21kcyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgogCSAgICAg
IGV2YWwgY29uY2F0X2NtZHM9XCJcJHtjb25jYXRfY21kc30kb2xkX2FyY2hpdmVfY21kc1wiCkBA
IC01MTYwLDkgKzUzMDcsNTMgQEAKIAkJICAkZWNobyAiJG1vZGVuYW1lOiBcYCRkZXBsaWInIGlz
IG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIgMT4mMgogCQkgIGV4aXQgJEVYSVRfRkFJTFVS
RQogCQlmaQotCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMgJGxpYmRp
ci8kbmFtZSIKKwkJaWYgdGVzdCAiWCRFR1JFUCIgPSBYIDsgdGhlbgorCQkJRUdSRVA9ZWdyZXAK
KwkJZmkKKwkJIyBXZSBkbyBub3Qgd2FudCBwb3J0YWdlJ3MgaW5zdGFsbCByb290ICgkRCkgcHJl
c2VudC4gIENoZWNrIG9ubHkgZm9yCisJCSMgdGhpcyBpZiB0aGUgLmxhIGlzIGJlaW5nIGluc3Rh
bGxlZC4KKwkJaWYgdGVzdCAiJGluc3RhbGxlZCIgPSB5ZXMgJiYgdGVzdCAiJEQiOyB0aGVuCisJ
CSAgZXZhbCBteW5ld2RlcGVuZGVuY3lfbGliPWBlY2hvICIkbGliZGlyLyRuYW1lIiB8c2VkIC1l
ICJzOiREOi86ZyIgLWUgJ3M6L1wrOi86ZydgCisJCWVsc2UKKwkJICBteW5ld2RlcGVuZGVuY3lf
bGliPSIkbGliZGlyLyRuYW1lIgorCQlmaQorCQkjIERvIG5vdCBhZGQgZHVwbGljYXRlcworCQlp
ZiB0ZXN0ICIkbXluZXdkZXBlbmRlbmN5X2xpYiI7IHRoZW4KKwkJICBteV9saXR0bGVfbmluamFf
Zm9vXzE9YGVjaG8gJG5ld2RlcGVuZGVuY3lfbGlicyB8JEVHUkVQIC1lICIkbXluZXdkZXBlbmRl
bmN5X2xpYiJgCisJCSAgaWYgdGVzdCAteiAiJG15X2xpdHRsZV9uaW5qYV9mb29fMSI7IHRoZW4K
KwkJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkbXluZXdkZXBl
bmRlbmN5X2xpYiIKKwkJICBmaQorCQlmaQogCQk7OwotCSAgICAgICopIG5ld2RlcGVuZGVuY3lf
bGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyAkZGVwbGliIiA7OworCQkgICopCisJCWlmIHRlc3Qg
IiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCisJCSAgIyBSYXRoZXIgdXNlIFM9V09SS0RJUiBpZiBv
dXIgdmVyc2lvbiBvZiBwb3J0YWdlIHN1cHBvcnRzIGl0LgorCQkgICMgVGhpcyBpcyBiZWNhdXNl
IHNvbWUgZWJ1aWxkIChnY2MpIGRvIG5vdCB1c2UgJFMgYXMgYnVpbGRyb290LgorCQkgIGlmIHRl
c3QgIiRQV09SS0RJUiI7IHRoZW4KKwkJICAgIFM9IiRQV09SS0RJUiIKKwkJICBmaQorCQkgICMg
V2UgZG8gbm90IHdhbnQgcG9ydGFnZSdzIGJ1aWxkIHJvb3QgKCRTKSBwcmVzZW50LgorCQkgIG15
X2xpdHRsZV9uaW5qYV9mb29fMj1gZWNobyAkZGVwbGliIHwkRUdSRVAgLWUgIiRTImAKKwkJICBp
ZiB0ZXN0IC1uICIkbXlfbGl0dGxlX25pbmphX2Zvb18yIiAmJiB0ZXN0ICIkUyI7IHRoZW4KKwkJ
ICAgIG15bmV3ZGVwZW5kZW5jeV9saWI9IiIKKwkJICAjIFdlIGRvIG5vdCB3YW50IHBvcnRhZ2Un
cyBpbnN0YWxsIHJvb3QgKCREKSBwcmVzZW50LgorCQkgIG15X2xpdHRsZV9uaW5qYV9mb29fMz1g
ZWNobyAkZGVwbGliIHwkRUdSRVAgLWUgIiREImAKKwkJICBlbGlmIHRlc3QgLW4gIiRteV9saXR0
bGVfbmluamFfZm9vXzMiICYmIHRlc3QgIiREIjsgdGhlbgorCQkgICAgZXZhbCBteW5ld2RlcGVu
ZGVuY3lfbGliPWBlY2hvICIkZGVwbGliIiB8c2VkIC1lICJzOiREOi86ZyIgLWUgJ3M6L1wrOi86
ZydgCisJCSAgZWxzZQorCQkgICAgbXluZXdkZXBlbmRlbmN5X2xpYj0iJGRlcGxpYiIKKwkJICBm
aQorCQllbHNlCisJCSAgbXluZXdkZXBlbmRlbmN5X2xpYj0iJGRlcGxpYiIKKwkJZmkKKwkJIyBE
byBub3QgYWRkIGR1cGxpY2F0ZXMKKwkJaWYgdGVzdCAiJG15bmV3ZGVwZW5kZW5jeV9saWIiOyB0
aGVuCisJCSAgbXlfbGl0dGxlX25pbmphX2Zvb180PWBlY2hvICRuZXdkZXBlbmRlbmN5X2xpYnMg
fCRFR1JFUCAtZSAiJG15bmV3ZGVwZW5kZW5jeV9saWIiYAorCQkgIGlmIHRlc3QgLXogIiRteV9s
aXR0bGVfbmluamFfZm9vXzQiOyB0aGVuCisJCQluZXdkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBl
bmRlbmN5X2xpYnMgJG15bmV3ZGVwZW5kZW5jeV9saWIiCisJCSAgZmkKKwkJZmkKKwkJOzsKIAkg
ICAgICBlc2FjCiAJICAgIGRvbmUKIAkgICAgZGVwZW5kZW5jeV9saWJzPSIkbmV3ZGVwZW5kZW5j
eV9saWJzIgpAQCAtNTIxNCw2ICs1NDA1LDEwIEBACiAJICBjYXNlICRob3N0LCRvdXRwdXQsJGlu
c3RhbGxlZCwkbW9kdWxlLCRkbG5hbWUgaW4KIAkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5k
bGwgfCAqbWluZ3cqLCpsYWkseWVzLG5vLCouZGxsKSB0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lIDs7
CiAJICBlc2FjCisJICAjIERvIG5vdCBhZGQgZHVwbGljYXRlcworCSAgaWYgdGVzdCAiJGluc3Rh
bGxlZCIgPSB5ZXMgJiYgdGVzdCAiJEQiOyB0aGVuCisJICAgIGluc3RhbGxfbGliZGlyPWBlY2hv
ICIkaW5zdGFsbF9saWJkaXIiIHxzZWQgLWUgInM6JEQ6LzpnIiAtZSAnczovXCs6LzpnJ2AKKwkg
IGZpCiAJICAkZWNobyA+ICRvdXRwdXQgIlwKICMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGli
cmFyeSBmaWxlCiAjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAtIEdOVSAkUEFDS0FHRSAkVkVSU0lP
TiRUSU1FU1RBTVAKQEAgLTUyNzgsNyArNTQ3Myw3IEBACiAgICAgICAjIEFlc3RoZXRpY2FsbHkg
cXVvdGUgaXQuCiAgICAgICBhcmc9YCRlY2hvICJYJG5vbm9wdCIgfCAkWHNlZCAtZSAiJHNlZF9x
dW90ZV9zdWJzdCJgCiAgICAgICBjYXNlICRhcmcgaW4KLSAgICAgICpbXFtcflwjXF5cJlwqXChc
KVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qKQorICAgICAgKiRxdW90ZV9zY2Fuc2V0KiB8ICpd
KiB8ICpcfCogfCAqXCYqIHwgKlwoKiB8ICpcKSogfCAiIikKIAlhcmc9IlwiJGFyZ1wiIgogCTs7
CiAgICAgICBlc2FjCkBAIC01Mjk0LDcgKzU0ODksNyBAQAogICAgICMgQWVzdGhldGljYWxseSBx
dW90ZSBpdC4KICAgICBhcmc9YCRlY2hvICJYJGFyZyIgfCAkWHNlZCAtZSAiJHNlZF9xdW90ZV9z
dWJzdCJgCiAgICAgY2FzZSAkYXJnIGluCi0gICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtc
PFw+XD9cJ1wgXAldKnwqXSopCisgICAgKiRxdW90ZV9zY2Fuc2V0KiB8ICpdKiB8ICpcfCogfCAq
XCYqIHwgKlwoKiB8ICpcKSogfCAiIikKICAgICAgIGFyZz0iXCIkYXJnXCIiCiAgICAgICA7Owog
ICAgIGVzYWMKQEAgLTUzNDIsNyArNTUzNyw3IEBACiAgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVv
dGUgdGhlIGFyZ3VtZW50LgogICAgICAgYXJnPWAkZWNobyAiWCRhcmciIHwgJFhzZWQgLWUgIiRz
ZWRfcXVvdGVfc3Vic3QiYAogICAgICAgY2FzZSAkYXJnIGluCi0gICAgICAqW1xbXH5cI1xeXCZc
KlwoXClce1x9XHxcO1w8XD5cP1wnXCBcCV0qfCpdKikKKyAgICAgICokcXVvdGVfc2NhbnNldCog
fCAqXSogfCAqXHwqIHwgKlwmKiB8ICpcKCogfCAqXCkqIHwgIiIpCiAJYXJnPSJcIiRhcmdcIiIK
IAk7OwogICAgICAgZXNhYwpAQCAtNTY4Miw5ICs1ODc3LDkgQEAKIAkgICAgICBzYXZlX3VtYXNr
PWB1bWFza2AKIAkgICAgICB1bWFzayAwMDc3CiAJICAgICAgaWYgJG1rZGlyICIkdG1wZGlyIjsg
dGhlbgotCQl1bWFzayAkc2F2ZV91bWFzaworCSAgICAgICAgdW1hc2sgJHNhdmVfdW1hc2sKIAkg
ICAgICBlbHNlCi0JCXVtYXNrICRzYXZlX3VtYXNrCisJICAgICAgICB1bWFzayAkc2F2ZV91bWFz
awogCQkkZWNobyAiJG1vZGVuYW1lOiBlcnJvcjogY2Fubm90IGNyZWF0ZSB0ZW1wb3JhcnkgZGly
ZWN0b3J5IFxgJHRtcGRpciciIDE+JjIKIAkJY29udGludWUKIAkgICAgICBmaQpAQCAtNjM4MSw3
ICs2NTc2LDcgQEAKICRlY2hvCiAkZWNobyAiVHJ5IFxgJG1vZGVuYW1lIC0taGVscCcgZm9yIG1v
cmUgaW5mb3JtYXRpb24gYWJvdXQgb3RoZXIgbW9kZXMuIgogCi1leGl0ICRFWElUX1NVQ0NFU1MK
K2V4aXQgJD8KIAogIyBUaGUgVEFHcyBiZWxvdyBhcmUgZGVmaW5lZCBzdWNoIHRoYXQgd2UgbmV2
ZXIgZ2V0IGludG8gYSBzaXR1YXRpb24KICMgaW4gd2hpY2ggd2UgZGlzYWJsZSBib3RoIGtpbmRz
IG9mIGxpYnJhcmllcy4gIEdpdmVuIGNvbmZsaWN0aW5nCkluZGV4OiBkb2MvcGNyZS4zCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGRvYy9wY3JlLjMJKHJldmlzaW9uIDIpCisrKyBkb2MvcGNyZS4zCShyZXZpc2lv
biAzKQpAQCAtNjEsNyArNjEsMTAgQEAKIFRoZSBsaWJyYXJ5IGNvbnRhaW5zIGEgbnVtYmVyIG9m
IHVuZG9jdW1lbnRlZCBpbnRlcm5hbCBmdW5jdGlvbnMgYW5kIGRhdGEKIHRhYmxlcyB0aGF0IGFy
ZSB1c2VkIGJ5IG1vcmUgdGhhbiBvbmUgb2YgdGhlIGV4cG9ydGVkIGV4dGVybmFsIGZ1bmN0aW9u
cywgYnV0CiB3aGljaCBhcmUgbm90IGludGVuZGVkIGZvciB1c2UgYnkgZXh0ZXJuYWwgY2FsbGVy
cy4gVGhlaXIgbmFtZXMgYWxsIGJlZ2luIHdpdGgKLSJfcGNyZV8iLCB3aGljaCBob3BlZnVsbHkg
d2lsbCBub3QgcHJvdm9rZSBhbnkgbmFtZSBjbGFzaGVzLgorIl9wY3JlXyIsIHdoaWNoIGhvcGVm
dWxseSB3aWxsIG5vdCBwcm92b2tlIGFueSBuYW1lIGNsYXNoZXMuIEluIHNvbWUKK2Vudmlyb25t
ZW50cywgaXQgaXMgcG9zc2libGUgdG8gY29udHJvbCB3aGljaCBleHRlcm5hbCBzeW1ib2xzIGFy
ZSBleHBvcnRlZAord2hlbiBhIHNoYXJlZCBsaWJyYXJ5IGlzIGJ1aWx0LCBhbmQgaW4gdGhlc2Ug
Y2FzZXMgdGhlIHVuZG9jdW1lbnRlZCBzeW1ib2xzIGFyZQorbm90IGV4cG9ydGVkLgogLgogLgog
LlNIICJVU0VSIERPQ1VNRU5UQVRJT04iCkluZGV4OiBkb2MvaHRtbC9wY3JlYnVpbGQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBkb2MvaHRtbC9wY3JlYnVpbGQuaHRtbAkocmV2aXNpb24gMikKKysrIGRv
Yy9odG1sL3BjcmVidWlsZC5odG1sCShyZXZpc2lvbiAzKQpAQCAtMTQsMTUgKzE0LDE2IEBACiA8
YnI+CiA8dWw+CiA8bGk+PGEgbmFtZT0iVE9DMSIgaHJlZj0iI1NFQzEiPlBDUkUgQlVJTEQtVElN
RSBPUFRJT05TPC9hPgotPGxpPjxhIG5hbWU9IlRPQzIiIGhyZWY9IiNTRUMyIj5VVEYtOCBTVVBQ
T1JUPC9hPgotPGxpPjxhIG5hbWU9IlRPQzMiIGhyZWY9IiNTRUMzIj5VTklDT0RFIENIQVJBQ1RF
UiBQUk9QRVJUWSBTVVBQT1JUPC9hPgotPGxpPjxhIG5hbWU9IlRPQzQiIGhyZWY9IiNTRUM0Ij5D
T0RFIFZBTFVFIE9GIE5FV0xJTkU8L2E+Ci08bGk+PGEgbmFtZT0iVE9DNSIgaHJlZj0iI1NFQzUi
PkJVSUxESU5HIFNIQVJFRCBBTkQgU1RBVElDIExJQlJBUklFUzwvYT4KLTxsaT48YSBuYW1lPSJU
T0M2IiBocmVmPSIjU0VDNiI+UE9TSVggTUFMTE9DIFVTQUdFPC9hPgotPGxpPjxhIG5hbWU9IlRP
QzciIGhyZWY9IiNTRUM3Ij5MSU1JVElORyBQQ1JFIFJFU09VUkNFIFVTQUdFPC9hPgotPGxpPjxh
IG5hbWU9IlRPQzgiIGhyZWY9IiNTRUM4Ij5IQU5ETElORyBWRVJZIExBUkdFIFBBVFRFUk5TPC9h
PgotPGxpPjxhIG5hbWU9IlRPQzkiIGhyZWY9IiNTRUM5Ij5BVk9JRElORyBFWENFU1NJVkUgU1RB
Q0sgVVNBR0U8L2E+Ci08bGk+PGEgbmFtZT0iVE9DMTAiIGhyZWY9IiNTRUMxMCI+VVNJTkcgRUJD
RElDIENPREU8L2E+Cis8bGk+PGEgbmFtZT0iVE9DMiIgaHJlZj0iI1NFQzIiPkMrKyBTVVBQT1JU
PC9hPgorPGxpPjxhIG5hbWU9IlRPQzMiIGhyZWY9IiNTRUMzIj5VVEYtOCBTVVBQT1JUPC9hPgor
PGxpPjxhIG5hbWU9IlRPQzQiIGhyZWY9IiNTRUM0Ij5VTklDT0RFIENIQVJBQ1RFUiBQUk9QRVJU
WSBTVVBQT1JUPC9hPgorPGxpPjxhIG5hbWU9IlRPQzUiIGhyZWY9IiNTRUM1Ij5DT0RFIFZBTFVF
IE9GIE5FV0xJTkU8L2E+Cis8bGk+PGEgbmFtZT0iVE9DNiIgaHJlZj0iI1NFQzYiPkJVSUxESU5H
IFNIQVJFRCBBTkQgU1RBVElDIExJQlJBUklFUzwvYT4KKzxsaT48YSBuYW1lPSJUT0M3IiBocmVm
PSIjU0VDNyI+UE9TSVggTUFMTE9DIFVTQUdFPC9hPgorPGxpPjxhIG5hbWU9IlRPQzgiIGhyZWY9
IiNTRUM4Ij5MSU1JVElORyBQQ1JFIFJFU09VUkNFIFVTQUdFPC9hPgorPGxpPjxhIG5hbWU9IlRP
QzkiIGhyZWY9IiNTRUM5Ij5IQU5ETElORyBWRVJZIExBUkdFIFBBVFRFUk5TPC9hPgorPGxpPjxh
IG5hbWU9IlRPQzEwIiBocmVmPSIjU0VDMTAiPkFWT0lESU5HIEVYQ0VTU0lWRSBTVEFDSyBVU0FH
RTwvYT4KKzxsaT48YSBuYW1lPSJUT0MxMSIgaHJlZj0iI1NFQzExIj5VU0lORyBFQkNESUMgQ09E
RTwvYT4KIDwvdWw+CiA8YnI+PGEgbmFtZT0iU0VDMSIgaHJlZj0iI1RPQzEiPlBDUkUgQlVJTEQt
VElNRSBPUFRJT05TPC9hPjxicj4KIDxQPgpAQCAtNDEsOCArNDIsMTggQEAKIC0tZW5hYmxlIGFu
ZCAtLWRpc2FibGUgYWx3YXlzIGNvbWUgaW4gcGFpcnMsIHNvIHRoZSBjb21wbGVtZW50YXJ5IG9w
dGlvbiBhbHdheXMKIGV4aXN0cyBhcyB3ZWxsLCBidXQgYXMgaXQgc3BlY2lmaWVzIHRoZSBkZWZh
dWx0LCBpdCBpcyBub3QgZGVzY3JpYmVkLgogPC9QPgotPGJyPjxhIG5hbWU9IlNFQzIiIGhyZWY9
IiNUT0MxIj5VVEYtOCBTVVBQT1JUPC9hPjxicj4KKzxicj48YSBuYW1lPSJTRUMyIiBocmVmPSIj
VE9DMSI+QysrIFNVUFBPUlQ8L2E+PGJyPgogPFA+CitCeSBkZWZhdWx0LCB0aGUgPGI+Y29uZmln
dXJlPC9iPiBzY3JpcHQgd2lsbCBzZWFyY2ggZm9yIGEgQysrIGNvbXBpbGVyIGFuZCBDKysKK2hl
YWRlciBmaWxlcy4gSWYgaXQgZmluZHMgdGhlbSwgaXQgYXV0b21hdGljYWxseSBidWlsZHMgdGhl
IEMrKyB3cmFwcGVyIGxpYnJhcnkKK2ZvciBQQ1JFLiBZb3UgY2FuIGRpc2FibGUgdGhpcyBieSBh
ZGRpbmcKKzxwcmU+CisgIC0tZGlzYWJsZS1jcHAKKzwvcHJlPgordG8gdGhlIDxiPmNvbmZpZ3Vy
ZTwvYj4gY29tbWFuZC4KKzwvUD4KKzxicj48YSBuYW1lPSJTRUMzIiBocmVmPSIjVE9DMSI+VVRG
LTggU1VQUE9SVDwvYT48YnI+Cis8UD4KIFRvIGJ1aWxkIFBDUkUgd2l0aCBzdXBwb3J0IGZvciBV
VEYtOCBjaGFyYWN0ZXIgc3RyaW5ncywgYWRkCiA8cHJlPgogICAtLWVuYWJsZS11dGY4CkBAIC01
Miw3ICs2Myw3IEBACiBoYXZlIHRvIHNldCB0aGUgUENSRV9VVEY4IG9wdGlvbiB3aGVuIHlvdSBj
YWxsIHRoZSA8Yj5wY3JlX2NvbXBpbGUoKTwvYj4KIGZ1bmN0aW9uLgogPC9QPgotPGJyPjxhIG5h
bWU9IlNFQzMiIGhyZWY9IiNUT0MxIj5VTklDT0RFIENIQVJBQ1RFUiBQUk9QRVJUWSBTVVBQT1JU
PC9hPjxicj4KKzxicj48YSBuYW1lPSJTRUM0IiBocmVmPSIjVE9DMSI+VU5JQ09ERSBDSEFSQUNU
RVIgUFJPUEVSVFkgU1VQUE9SVDwvYT48YnI+CiA8UD4KIFVURi04IHN1cHBvcnQgYWxsb3dzIFBD
UkUgdG8gcHJvY2VzcyBjaGFyYWN0ZXIgdmFsdWVzIGdyZWF0ZXIgdGhhbiAyNTUgaW4gdGhlCiBz
dHJpbmdzIHRoYXQgaXQgaGFuZGxlcy4gT24gaXRzIG93biwgaG93ZXZlciwgaXQgZG9lcyBub3Qg
cHJvdmlkZSBhbnkKQEAgLTcyLDcgKzgzLDcgQEAKIDxhIGhyZWY9InBjcmVwYXR0ZXJuLmh0bWwi
PjxiPnBjcmVwYXR0ZXJuPC9iPjwvYT4KIGRvY3VtZW50YXRpb24uCiA8L1A+Ci08YnI+PGEgbmFt
ZT0iU0VDNCIgaHJlZj0iI1RPQzEiPkNPREUgVkFMVUUgT0YgTkVXTElORTwvYT48YnI+Cis8YnI+
PGEgbmFtZT0iU0VDNSIgaHJlZj0iI1RPQzEiPkNPREUgVkFMVUUgT0YgTkVXTElORTwvYT48YnI+
CiA8UD4KIEJ5IGRlZmF1bHQsIFBDUkUgdHJlYXRzIGNoYXJhY3RlciAxMCAobGluZWZlZWQpIGFz
IHRoZSBuZXdsaW5lIGNoYXJhY3Rlci4gVGhpcwogaXMgdGhlIG5vcm1hbCBuZXdsaW5lIGNoYXJh
Y3RlciBvbiBVbml4LWxpa2Ugc3lzdGVtcy4gWW91IGNhbiBjb21waWxlIFBDUkUgdG8KQEAgLTg0
LDcgKzk1LDcgQEAKIC0tZW5hYmxlLW5ld2xpbmUtaXMtbGYgb3B0aW9uLCB3aGljaCBleHBsaWNp
dGx5IHNwZWNpZmllcyBsaW5lZmVlZCBhcyB0aGUKIG5ld2xpbmUgY2hhcmFjdGVyLgogPC9QPgot
PGJyPjxhIG5hbWU9IlNFQzUiIGhyZWY9IiNUT0MxIj5CVUlMRElORyBTSEFSRUQgQU5EIFNUQVRJ
QyBMSUJSQVJJRVM8L2E+PGJyPgorPGJyPjxhIG5hbWU9IlNFQzYiIGhyZWY9IiNUT0MxIj5CVUlM
RElORyBTSEFSRUQgQU5EIFNUQVRJQyBMSUJSQVJJRVM8L2E+PGJyPgogPFA+CiBUaGUgUENSRSBi
dWlsZGluZyBwcm9jZXNzIHVzZXMgPGI+bGlidG9vbDwvYj4gdG8gYnVpbGQgYm90aCBzaGFyZWQg
YW5kIHN0YXRpYwogVW5peCBsaWJyYXJpZXMgYnkgZGVmYXVsdC4gWW91IGNhbiBzdXBwcmVzcyBv
bmUgb2YgdGhlc2UgYnkgYWRkaW5nIG9uZSBvZgpAQCAtOTQsNyArMTA1LDcgQEAKIDwvcHJlPgog
dG8gdGhlIDxiPmNvbmZpZ3VyZTwvYj4gY29tbWFuZCwgYXMgcmVxdWlyZWQuCiA8L1A+Ci08YnI+
PGEgbmFtZT0iU0VDNiIgaHJlZj0iI1RPQzEiPlBPU0lYIE1BTExPQyBVU0FHRTwvYT48YnI+Cis8
YnI+PGEgbmFtZT0iU0VDNyIgaHJlZj0iI1RPQzEiPlBPU0lYIE1BTExPQyBVU0FHRTwvYT48YnI+
CiA8UD4KIFdoZW4gUENSRSBpcyBjYWxsZWQgdGhyb3VnaCB0aGUgUE9TSVggaW50ZXJmYWNlIChz
ZWUgdGhlCiA8YSBocmVmPSJwY3JlcG9zaXguaHRtbCI+PGI+cGNyZXBvc2l4PC9iPjwvYT4KQEAg
LTExMCw3ICsxMjEsNyBAQAogPC9wcmU+CiB0byB0aGUgPGI+Y29uZmlndXJlPC9iPiBjb21tYW5k
LgogPC9QPgotPGJyPjxhIG5hbWU9IlNFQzciIGhyZWY9IiNUT0MxIj5MSU1JVElORyBQQ1JFIFJF
U09VUkNFIFVTQUdFPC9hPjxicj4KKzxicj48YSBuYW1lPSJTRUM4IiBocmVmPSIjVE9DMSI+TElN
SVRJTkcgUENSRSBSRVNPVVJDRSBVU0FHRTwvYT48YnI+CiA8UD4KIEludGVybmFsbHksIFBDUkUg
aGFzIGEgZnVuY3Rpb24gY2FsbGVkIDxiPm1hdGNoKCk8L2I+LCB3aGljaCBpdCBjYWxscyByZXBl
YXRlZGx5CiAocG9zc2libHkgcmVjdXJzaXZlbHkpIHdoZW4gbWF0Y2hpbmcgYSBwYXR0ZXJuIHdp
dGggdGhlIDxiPnBjcmVfZXhlYygpPC9iPgpAQCAtMTI3LDcgKzEzOCw3IEBACiB0byB0aGUgPGI+
Y29uZmlndXJlPC9iPiBjb21tYW5kLiBUaGlzIHNldHRpbmcgaGFzIG5vIGVmZmVjdCBvbiB0aGUK
IDxiPnBjcmVfZGZhX2V4ZWMoKTwvYj4gbWF0Y2hpbmcgZnVuY3Rpb24uCiA8L1A+Ci08YnI+PGEg
bmFtZT0iU0VDOCIgaHJlZj0iI1RPQzEiPkhBTkRMSU5HIFZFUlkgTEFSR0UgUEFUVEVSTlM8L2E+
PGJyPgorPGJyPjxhIG5hbWU9IlNFQzkiIGhyZWY9IiNUT0MxIj5IQU5ETElORyBWRVJZIExBUkdF
IFBBVFRFUk5TPC9hPjxicj4KIDxQPgogV2l0aGluIGEgY29tcGlsZWQgcGF0dGVybiwgb2Zmc2V0
IHZhbHVlcyBhcmUgdXNlZCB0byBwb2ludCBmcm9tIG9uZSBwYXJ0IHRvCiBhbm90aGVyIChmb3Ig
ZXhhbXBsZSwgZnJvbSBhbiBvcGVuaW5nIHBhcmVudGhlc2lzIHRvIGFuIGFsdGVybmF0aW9uCkBA
IC0xNDgsNyArMTU5LDcgQEAKIHVzaW5nIFVURi04KSB3aWxsIGZhaWwuIFBhcnQgb2YgdGhlIG91
dHB1dCBvZiB0aGVzZSB0ZXN0cyBpcyBhIHJlcHJlc2VudGF0aW9uCiBvZiB0aGUgY29tcGlsZWQg
cGF0dGVybiwgYW5kIHRoaXMgY2hhbmdlcyB3aXRoIHRoZSBsaW5rIHNpemUuCiA8L1A+Ci08YnI+
PGEgbmFtZT0iU0VDOSIgaHJlZj0iI1RPQzEiPkFWT0lESU5HIEVYQ0VTU0lWRSBTVEFDSyBVU0FH
RTwvYT48YnI+Cis8YnI+PGEgbmFtZT0iU0VDMTAiIGhyZWY9IiNUT0MxIj5BVk9JRElORyBFWENF
U1NJVkUgU1RBQ0sgVVNBR0U8L2E+PGJyPgogPFA+CiBXaGVuIG1hdGNoaW5nIHdpdGggdGhlIDxi
PnBjcmVfZXhlYygpPC9iPiBmdW5jdGlvbiwgUENSRSBpbXBsZW1lbnRzIGJhY2t0cmFja2luZwog
YnkgbWFraW5nIHJlY3Vyc2l2ZSBjYWxscyB0byBhbiBpbnRlcm5hbCBmdW5jdGlvbiBjYWxsZWQg
PGI+bWF0Y2goKTwvYj4uIEluCkBAIC0xNzEsNyArMTgyLDcgQEAKIHdheS4gVGhpcyBvcHRpb24g
YWZmZWN0cyBvbmx5IHRoZSA8Yj5wY3JlX2V4ZWMoKTwvYj4gZnVuY3Rpb247IGl0IGlzIG5vdAog
cmVsZXZhbnQgZm9yIHRoZSB0aGUgPGI+cGNyZV9kZmFfZXhlYygpPC9iPiBmdW5jdGlvbi4KIDwv
UD4KLTxicj48YSBuYW1lPSJTRUMxMCIgaHJlZj0iI1RPQzEiPlVTSU5HIEVCQ0RJQyBDT0RFPC9h
Pjxicj4KKzxicj48YSBuYW1lPSJTRUMxMSIgaHJlZj0iI1RPQzEiPlVTSU5HIEVCQ0RJQyBDT0RF
PC9hPjxicj4KIDxQPgogUENSRSBhc3N1bWVzIGJ5IGRlZmF1bHQgdGhhdCBpdCB3aWxsIHJ1biBp
biBhbiBlbnZpcm9ubWVudCB3aGVyZSB0aGUgY2hhcmFjdGVyCiBjb2RlIGlzIEFTQ0lJIChvciBV
bmljb2RlLCB3aGljaCBpcyBhIHN1cGVyc2V0IG9mIEFTQ0lJKS4gUENSRSBjYW4sIGhvd2V2ZXIs
IGJlCkBAIC0xODIsNyArMTkzLDcgQEAKIHRvIHRoZSA8Yj5jb25maWd1cmU8L2I+IGNvbW1hbmQu
CiA8L1A+CiA8UD4KLUxhc3QgdXBkYXRlZDogMjggRmVicnVhcnkgMjAwNQorTGFzdCB1cGRhdGVk
OiAxNSBBdWd1c3QgMjAwNQogPGJyPgogQ29weXJpZ2h0ICZjb3B5OyAxOTk3LTIwMDUgVW5pdmVy
c2l0eSBvZiBDYW1icmlkZ2UuCiA8cD4KSW5kZXg6IGRvYy9odG1sL3BjcmUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBkb2MvaHRtbC9wY3JlLmh0bWwJKHJldmlzaW9uIDIpCisrKyBkb2MvaHRtbC9wY3Jl
Lmh0bWwJKHJldmlzaW9uIDMpCkBAIC02OCw3ICs2OCwxMCBAQAogVGhlIGxpYnJhcnkgY29udGFp
bnMgYSBudW1iZXIgb2YgdW5kb2N1bWVudGVkIGludGVybmFsIGZ1bmN0aW9ucyBhbmQgZGF0YQog
dGFibGVzIHRoYXQgYXJlIHVzZWQgYnkgbW9yZSB0aGFuIG9uZSBvZiB0aGUgZXhwb3J0ZWQgZXh0
ZXJuYWwgZnVuY3Rpb25zLCBidXQKIHdoaWNoIGFyZSBub3QgaW50ZW5kZWQgZm9yIHVzZSBieSBl
eHRlcm5hbCBjYWxsZXJzLiBUaGVpciBuYW1lcyBhbGwgYmVnaW4gd2l0aAotIl9wY3JlXyIsIHdo
aWNoIGhvcGVmdWxseSB3aWxsIG5vdCBwcm92b2tlIGFueSBuYW1lIGNsYXNoZXMuCisiX3BjcmVf
Iiwgd2hpY2ggaG9wZWZ1bGx5IHdpbGwgbm90IHByb3Zva2UgYW55IG5hbWUgY2xhc2hlcy4gSW4g
c29tZQorZW52aXJvbm1lbnRzLCBpdCBpcyBwb3NzaWJsZSB0byBjb250cm9sIHdoaWNoIGV4dGVy
bmFsIHN5bWJvbHMgYXJlIGV4cG9ydGVkCit3aGVuIGEgc2hhcmVkIGxpYnJhcnkgaXMgYnVpbHQs
IGFuZCBpbiB0aGVzZSBjYXNlcyB0aGUgdW5kb2N1bWVudGVkIHN5bWJvbHMgYXJlCitub3QgZXhw
b3J0ZWQuCiA8L1A+CiA8YnI+PGEgbmFtZT0iU0VDMiIgaHJlZj0iI1RPQzEiPlVTRVIgRE9DVU1F
TlRBVElPTjwvYT48YnI+CiA8UD4KSW5kZXg6IGRvYy9wY3JlLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBk
b2MvcGNyZS50eHQJKHJldmlzaW9uIDIpCisrKyBkb2MvcGNyZS50eHQJKHJldmlzaW9uIDMpCkBA
IC01Myw3ICs1Myw5IEBACiAgICAgICAgZGF0YSAgdGFibGVzICB0aGF0ICBhcmUgIHVzZWQgYnkg
bW9yZSB0aGFuIG9uZSBvZiB0aGUgZXhwb3J0ZWQgZXh0ZXJuYWwKICAgICAgICBmdW5jdGlvbnMs
IGJ1dCB3aGljaCBhcmUgbm90IGludGVuZGVkICBmb3IgIHVzZSAgYnkgIGV4dGVybmFsICBjYWxs
ZXJzLgogICAgICAgIFRoZWlyICBuYW1lcyAgYWxsIGJlZ2luIHdpdGggIl9wY3JlXyIsIHdoaWNo
IGhvcGVmdWxseSB3aWxsIG5vdCBwcm92b2tlCi0gICAgICAgYW55IG5hbWUgY2xhc2hlcy4KKyAg
ICAgICBhbnkgbmFtZSBjbGFzaGVzLiBJbiBzb21lIGVudmlyb25tZW50cywgaXQgaXMgcG9zc2li
bGUgdG8gY29udHJvbCB3aGljaAorICAgICAgIGV4dGVybmFsICBzeW1ib2xzICBhcmUgIGV4cG9y
dGVkIHdoZW4gYSBzaGFyZWQgbGlicmFyeSBpcyBidWlsdCwgYW5kIGluCisgICAgICAgdGhlc2Ug
Y2FzZXMgdGhlIHVuZG9jdW1lbnRlZCBzeW1ib2xzIGFyZSBub3QgZXhwb3J0ZWQuCiAKIAogVVNF
UiBET0NVTUVOVEFUSU9OCkBAIC0yMzQsNiArMjM2LDE3IEBACiAgICAgICAgbm90IGRlc2NyaWJl
ZC4KIAogCitDKysgU1VQUE9SVAorCisgICAgICAgQnkgZGVmYXVsdCwgdGhlIGNvbmZpZ3VyZSBz
Y3JpcHQgd2lsbCBzZWFyY2ggZm9yIGEgQysrIGNvbXBpbGVyIGFuZCBDKysKKyAgICAgICBoZWFk
ZXIgZmlsZXMuIElmIGl0IGZpbmRzIHRoZW0sIGl0IGF1dG9tYXRpY2FsbHkgYnVpbGRzIHRoZSBD
Kysgd3JhcHBlcgorICAgICAgIGxpYnJhcnkgZm9yIFBDUkUuIFlvdSBjYW4gZGlzYWJsZSB0aGlz
IGJ5IGFkZGluZworCisgICAgICAgICAtLWRpc2FibGUtY3BwCisKKyAgICAgICB0byB0aGUgY29u
ZmlndXJlIGNvbW1hbmQuCisKKwogVVRGLTggU1VQUE9SVAogCiAgICAgICAgVG8gYnVpbGQgUENS
RSB3aXRoIHN1cHBvcnQgZm9yIFVURi04IGNoYXJhY3RlciBzdHJpbmdzLCBhZGQKQEAgLTM4MSw3
ICszOTQsNyBAQAogCiAgICAgICAgdG8gdGhlIGNvbmZpZ3VyZSBjb21tYW5kLgogCi1MYXN0IHVw
ZGF0ZWQ6IDI4IEZlYnJ1YXJ5IDIwMDUKK0xhc3QgdXBkYXRlZDogMTUgQXVndXN0IDIwMDUKIENv
cHlyaWdodCAoYykgMTk5Ny0yMDA1IFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlLgogLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKSW5kZXg6IGRvYy9wY3JlYnVpbGQuMwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb2Mv
cGNyZWJ1aWxkLjMJKHJldmlzaW9uIDIpCisrKyBkb2MvcGNyZWJ1aWxkLjMJKHJldmlzaW9uIDMp
CkBAIC0xOSw2ICsxOSwxNyBAQAogLS1lbmFibGUgYW5kIC0tZGlzYWJsZSBhbHdheXMgY29tZSBp
biBwYWlycywgc28gdGhlIGNvbXBsZW1lbnRhcnkgb3B0aW9uIGFsd2F5cwogZXhpc3RzIGFzIHdl
bGwsIGJ1dCBhcyBpdCBzcGVjaWZpZXMgdGhlIGRlZmF1bHQsIGl0IGlzIG5vdCBkZXNjcmliZWQu
CiAuCisuU0ggIkMrKyBTVVBQT1JUIgorLnJzCisuc3AKK0J5IGRlZmF1bHQsIHRoZSBcZkJjb25m
aWd1cmVcZlAgc2NyaXB0IHdpbGwgc2VhcmNoIGZvciBhIEMrKyBjb21waWxlciBhbmQgQysrCito
ZWFkZXIgZmlsZXMuIElmIGl0IGZpbmRzIHRoZW0sIGl0IGF1dG9tYXRpY2FsbHkgYnVpbGRzIHRo
ZSBDKysgd3JhcHBlciBsaWJyYXJ5Citmb3IgUENSRS4gWW91IGNhbiBkaXNhYmxlIHRoaXMgYnkg
YWRkaW5nCisuc3AKKyAgLS1kaXNhYmxlLWNwcAorLnNwCit0byB0aGUgXGZCY29uZmlndXJlXGZQ
IGNvbW1hbmQuCisuCiAuU0ggIlVURi04IFNVUFBPUlQiCiAucnMKIC5zcApAQCAtMTczLDYgKzE4
NCw2IEBACiB0byB0aGUgXGZCY29uZmlndXJlXGZQIGNvbW1hbmQuCiAuUAogLmluIDAKLUxhc3Qg
dXBkYXRlZDogMjggRmVicnVhcnkgMjAwNQorTGFzdCB1cGRhdGVkOiAxNSBBdWd1c3QgMjAwNQog
LmJyCiBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZS4KSW5k
ZXg6IGNvbmZpZ3VyZS5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9uIDIp
CisrKyBjb25maWd1cmUuaW4JKHJldmlzaW9uIDMpCkBAIC0xLDUgKzEsMTEgQEAKIGRubCBQcm9j
ZXNzIHRoaXMgZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0
LgogCitkbmwgVGhpcyBjb25maWd1cmUuaW4gZmlsZSBoYXMgYmVlbiBoYWNrZWQgYXJvdW5kIHF1
aXRlIGEgbG90IGFzIGEgcmVzdWx0IG9mCitkbmwgcGF0Y2hlcyB0aGF0IHZhcmlvdXMgcGVvcGxl
IGhhdmUgc2VudCB0byBtZSAoUEgpLiBTb21ldGltZXMgdGhlIGluZm9ybWF0aW9uCitkbmwgSSBn
ZXQgaXMgY29udHJhZGljdG9yeS4gSSd2ZSB0cmllZCB0byBwdXQgaW4gY29tbWVudHMgdGhhdCBl
eHBsYWluIHRoaW5ncywKK2RubCBidXQgaW4gc29tZSBjYXNlcyB0aGUgaW5mb3JtYXRpb24gaXMg
c2Vjb25kLWhhbmQgYW5kIEkgaGF2ZSBubyB3YXkgb2YKK2RubCB2ZXJpZnlpbmcgaXQuIEkgYW0g
bm90IGFuIGF1dG9jb25mIG9yIGxpYnRvb2wgZXhwZXJ0IQorCiBkbmwgVGhpcyBpcyByZXF1aXJl
ZCBhdCB0aGUgc3RhcnQ7IHRoZSBuYW1lIGlzIHRoZSBuYW1lIG9mIGEgZmlsZQogZG5sIGl0IHNo
b3VsZCBiZSBzZWVpbmcsIHRvIHZlcmlmeSBpdCBpcyBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCiAK
QEAgLTIxLDggKzI3LDggQEAKIGRubCB0aGF0IG1hbnkgcmVsZWFzZXMgYW55d2F5LgogCiBQQ1JF
X01BSk9SPTYKLVBDUkVfTUlOT1I9MgotUENSRV9EQVRFPTAxLUF1Zy0yMDA1CitQQ1JFX01JTk9S
PTMKK1BDUkVfREFURT0xNS1BdWctMjAwNQogUENSRV9WRVJTSU9OPSR7UENSRV9NQUpPUn0uJHtQ
Q1JFX01JTk9SfQogCiBkbmwgRGVmYXVsdCB2YWx1ZXMgZm9yIG1pc2NlbGxhbmVvdXMgbWFjcm9z
CkBAIC0zNiwxMSArNDIsMjIgQEAKIFBDUkVfUE9TSVhMSUJfVkVSU0lPTj0wOjA6MAogUENSRV9D
UFBMSUJfVkVSU0lPTj0wOjA6MAogCitkbmwgSGFuZGxlIC0tZGlzYWJsZS1jcHAKKworQUNfQVJH
X0VOQUJMRShjcHAsCitbICAtLWRpc2FibGUtY3BwICAgICAgICAgICBkaXNhYmxlIEMrKyBzdXBw
b3J0XSwKK3dhbnRfY3BwPSIkZW5hYmxldmFsIiwgd2FudF9jcHA9eWVzKQorCiBkbmwgQ2hlY2tz
IGZvciBwcm9ncmFtcy4KIAogQUNfUFJPR19DQwogCi1kbmwgRm9yIHRoZSBDKysgd3JhcHBlciBs
aWJwY3JlY3BwLgorZG5sIFRlc3QgZm9yIEMrKyBmb3IgdGhlIEMrKyB3cmFwcGVyIGxpYnBjcmVj
cHAuIEl0IHNlZW1zLCBob3dldmVyLCB0aGF0CitkbmwgQUNfUFJPQ19DWFggd2lsbCBzZXQgJENY
WCB0byAiZysrIiB3aGVuIG5vIEMrKyBjb21waWxlciBpcyBpbnN0YWxsZWQsIGV2ZW4KK2RubCB0
aG91Z2ggdGhhdCBpcyBjb21wbGV0ZWx5IGJvZ3VzLiAoVGhpcyBtYXkgaGFwcGVuIG9ubHkgb24g
Y2VydGFpbiBzeXN0ZW1zCitkbmwgd2l0aCBjZXJ0YWluIHZlcnNpb25zIG9mIGF1dG9jb25mLCBv
ZiBjb3Vyc2UuKSBBbiBhdHRlbXB0IHRvIGluY2x1ZGUgdGhpcworZG5sIHRlc3QgaW5zaWRlIGEg
Y2hlY2sgZm9yIHdhbnRfY3BwIHdhcyBjcml0aWNpemVkIGJ5IGEgbGlidG9vbCBleHBlcnQsIHdo
bworZG5sIHRlbGxzIG1lIHRoYXQgaXQgaXNuJ3QgYWxsb3dlZC4KIAogQUNfUFJPR19DWFgKIApA
QCAtNjAsNyArNzcsNyBAQAogZG5sIFRoZXJlIGlzIGEgbWFjcm8gY2FsbGVkIEFDX1BST0dfQ0Nf
Rk9SX0JVSUxEIGluIHRoZSBHTlUgYXJjaGl2ZSBmb3IKIGRubCBmaWd1cmluZyB0aGlzIG91dCBh
dXRvbWF0aWNhbGx5LiBVbmZvcnR1bmF0ZWx5LCBpdCBkb2VzIG5vdCB3b3JrIHdpdGggdGhlCiBk
bmwgbGF0ZXN0IHZlcnNpb25zIG9mIGF1dG9jb25mLiBTbyBmb3IgdGhlIG1vbWVudCwgd2UganVz
dCBkZWZhdWx0IHRvIHRoZQotZG5sIHNhbWUgdmFsdWVzIGFzIHRoZSAibWFpbiIgY29tcGlsZXIu
IFBlb3BsZSB3aG8gYXJlIGNvcnNzLWNvbXBpbGluZyB3aWxsCitkbmwgc2FtZSB2YWx1ZXMgYXMg
dGhlICJtYWluIiBjb21waWxlci4gUGVvcGxlIHdobyBhcmUgY3Jvc3MtY29tcGlsaW5nIHdpbGwK
IGRubCBqdXN0IGhhdmUgdG8gYWRqdXN0IHRoZSBNYWtlZmlsZSBieSBoYW5kIG9yIHNldCB0aGVz
ZSB2YWx1ZXMgd2hlbiB0aGV5CiBkbmwgcnVuICJjb25maWd1cmUiLgogCkBAIC03Nyw0MCArOTQs
NTAgQEAKIEFDX0hFQURFUl9TVERDCiBBQ19DSEVDS19IRUFERVJTKGxpbWl0cy5oKQogCi1kbmwg
VGhlc2UgYXJlIEMrKyBoZWFkZXIgZmlsZXMKK2RubCBUaGUgZmlsZXMgYmVsb3cgYXJlIEMrKyBo
ZWFkZXIgZmlsZXMuIE9uZSBwZXJzb24gdG9sZCBtZSAoUEgpIHRoYXQKK2RubCBBQ19MQU5HX0NQ
TFVTUExVUyB1bnNldHMgQ1hYIGlmIGl0IHdhcyBleHBsaWNpdGx5IHNldCB0byBzb21ldGhpbmcg
d2hpY2gKK2RubCBkb2Vzbid0IHdvcmsuIEhvd2V2ZXIsIHRoaXMgZG9lc24ndCBhbHdheXMgc2Vl
bSB0byBiZSB0aGUgY2FzZS4KIAoraWYgdGVzdCAieCR3YW50X2NwcCIgPSAieHllcyIgLWEgLW4g
IiRDWFgiCit0aGVuCiBBQ19MQU5HX1NBVkUKIEFDX0xBTkdfQ1BMVVNQTFVTCi1kbmwgSSBjb3Vs
ZCBiZSBtb3JlIGNsZXZlciBoZXJlLCBnaXZlbiBJJ20gZG9pbmcgQUNfU1VCU1Qgd2l0aCB0aGlz
Ci1kbmwgKGVnIHNldCBhIHZhciB0byBiZSB0aGUgbmFtZSBvZiB0aGUgaW5jbHVkZSBmaWxlIEkg
d2FudCkuICBCdXQgSSdtIG5vdAorCitkbmwgV2UgY291bGQgYmUgbW9yZSBjbGV2ZXIgaGVyZSwg
Z2l2ZW4gd2UncmUgZG9pbmcgQUNfU1VCU1Qgd2l0aCB0aGlzCitkbmwgKGVnIHNldCBhIHZhciB0
byBiZSB0aGUgbmFtZSBvZiB0aGUgaW5jbHVkZSBmaWxlIHdlIHdhbnQpLiAgQnV0IHdlJ3JlIG5v
dAogZG5sIHNvIGl0J3MgZWFzeSB0byBjaGFuZ2UgYmFjayB0byAncmVndWxhcicgYXV0b2NvbmYg
dmFycyBpZiB3ZSBuZWVkZWQgdG8uCi1BQ19DSEVDS19IRUFERVJTKHN0cmluZywgW3BjcmVfaGFz
X2NwcF9oZWFkZXJzPSIxIl0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgW3BjcmVfaGFzX2Nw
cF9oZWFkZXJzPSIwIl0pCi1BQ19DSEVDS19IRUFERVJTKGJpdHMvdHlwZV90cmFpdHMuaCwgW3Bj
cmVfaGFzX2JpdHNfdHlwZV90cmFpdHM9IjEiXSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbcGNyZV9oYXNfYml0c190eXBlX3RyYWl0cz0iMCJdKQotQUNfQ0hFQ0tfSEVB
REVSUyh0eXBlX3RyYWl0cy5oLCBbcGNyZV9oYXNfdHlwZV90cmFpdHM9IjEiXSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgW3BjcmVfaGFzX3R5cGVfdHJhaXRzPSIwIl0pCitBQ19D
SEVDS19IRUFERVJTKHN0cmluZywgW3BjcmVfaGF2ZV9jcHBfaGVhZGVycz0iMSJdLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIFtwY3JlX2hhdmVfY3BwX2hlYWRlcnM9IjAiXSkKK0FDX0NIRUNL
X0hFQURFUlMoYml0cy90eXBlX3RyYWl0cy5oLCBbcGNyZV9oYXZlX2JpdHNfdHlwZV90cmFpdHM9
IjEiXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcGNyZV9oYXZlX2Jp
dHNfdHlwZV90cmFpdHM9IjAiXSkKK0FDX0NIRUNLX0hFQURFUlModHlwZV90cmFpdHMuaCwgW3Bj
cmVfaGF2ZV90eXBlX3RyYWl0cz0iMSJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBbcGNyZV9oYXZlX3R5cGVfdHJhaXRzPSIwIl0pCiBkbmwgVXNpbmcgQUNfU1VCU1QgZWxpbWlu
YXRlcyB0aGUgbmVlZCB0byBpbmNsdWRlIGNvbmZpZy5oIGluIGEgcHVibGljIC5oIGZpbGUKLUFD
X1NVQlNUKHBjcmVfaGFzX2JpdHNfdHlwZV90cmFpdHMpCi1BQ19TVUJTVChwY3JlX2hhc190eXBl
X3RyYWl0cykKK0FDX1NVQlNUKHBjcmVfaGF2ZV9iaXRzX3R5cGVfdHJhaXRzKQorQUNfU1VCU1Qo
cGNyZV9oYXZlX3R5cGVfdHJhaXRzKQogQUNfTEFOR19SRVNUT1JFCitmaQogCiBkbmwgRnJvbSB0
aGUgYWJvdmUsIHdlIG5vdyBoYXZlIGVub3VnaCBpbmZvIHRvIGtub3cgaWYgQysrIGlzIGZ1bGx5
IGluc3RhbGxlZAotaWYgdGVzdCAtbiAiJGFjX2N2X3Byb2dfYWNfY3RfQ1hYIiAtYSAiJHBjcmVf
aGFzX2NwcF9oZWFkZXJzIiA9IDE7IHRoZW4KK2lmIHRlc3QgIngkd2FudF9jcHAiID0gInh5ZXMi
IC1hIC1uICIkQ1hYIiAtYSAiJHBjcmVfaGF2ZV9jcHBfaGVhZGVycyIgPSAxOyB0aGVuCiAgIE1B
WUJFX0NQUF9UQVJHRVRTPSckKENQUF9UQVJHRVRTKScKKyAgSEFWRV9DUFA9CitlbHNlCisgIE1B
WUJFX0NQUF9UQVJHRVRTPQorICBIQVZFX0NQUD0iIyIKIGZpCiBBQ19TVUJTVChNQVlCRV9DUFBf
VEFSR0VUUykKK0FDX1NVQlNUKEhBVkVfQ1BQKQogCi0KIGRubCBDaGVja3MgZm9yIHR5cGVkZWZz
LCBzdHJ1Y3R1cmVzLCBhbmQgY29tcGlsZXIgY2hhcmFjdGVyaXN0aWNzLgogCiBBQ19DX0NPTlNU
CiBBQ19UWVBFX1NJWkVfVAogCi1BQ19DSEVDS19UWVBFUyhbbG9uZyBsb25nXSwgW3BjcmVfaGFz
X2xvbmdfbG9uZz0iMSJdLCBbcGNyZV9oYXNfbG9uZ19sb25nPSIwIl0pCi1BQ19DSEVDS19UWVBF
UyhbdW5zaWduZWQgbG9uZyBsb25nXSwgW3BjcmVfaGFzX3Vsb25nX2xvbmc9IjEiXSwgW3BjcmVf
aGFzX3Vsb25nX2xvbmc9IjAiXSkKLUFDX1NVQlNUKHBjcmVfaGFzX2xvbmdfbG9uZykKLUFDX1NV
QlNUKHBjcmVfaGFzX3Vsb25nX2xvbmcpCitBQ19DSEVDS19UWVBFUyhbbG9uZyBsb25nXSwgW3Bj
cmVfaGF2ZV9sb25nX2xvbmc9IjEiXSwgW3BjcmVfaGF2ZV9sb25nX2xvbmc9IjAiXSkKK0FDX0NI
RUNLX1RZUEVTKFt1bnNpZ25lZCBsb25nIGxvbmddLCBbcGNyZV9oYXZlX3Vsb25nX2xvbmc9IjEi
XSwgW3BjcmVfaGF2ZV91bG9uZ19sb25nPSIwIl0pCitBQ19TVUJTVChwY3JlX2hhdmVfbG9uZ19s
b25nKQorQUNfU1VCU1QocGNyZV9oYXZlX3Vsb25nX2xvbmcpCiAKIGRubCBDaGVja3MgZm9yIGxp
YnJhcnkgZnVuY3Rpb25zLgogCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gQ2hhbmdl
TG9nCShyZXZpc2lvbiAyKQorKysgQ2hhbmdlTG9nCShyZXZpc2lvbiAzKQpAQCAtMSw2ICsxLDM5
IEBACiBDaGFuZ2VMb2cgZm9yIFBDUkUKIC0tLS0tLS0tLS0tLS0tLS0tLQogCitWZXJzaW9uIDYu
MyAxNS1BdWctMDUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgMS4gVGhlIGZpbGUgbGlicGNy
ZS5wYy5pbiBkaWQgbm90IGhhdmUgZ2VuZXJhbCByZWFkIHBlcm1pc3Npb24gaW4gdGhlIHRhcmJh
bGwuCisKKyAyLiBUaGVyZSB3ZXJlIHNvbWUgcHJvYmxlbXMgd2hlbiBidWlsZGluZyB3aXRob3V0
IEMrKyBzdXBwb3J0OgorCisgICAgKGEpIElmIEMrKyBzdXBwb3J0IHdhcyBub3QgYnVpbHQsICJt
YWtlIGluc3RhbGwiIGFuZCAibWFrZSB0ZXN0IiBzdGlsbAorICAgICAgICB0cmllZCB0byB0ZXN0
IGl0LgorCisgICAgKGIpIFRoZXJlIHdlcmUgcHJvYmxlbXMgd2hlbiB0aGUgdmFsdWUgb2YgQ1hY
IHdhcyBleHBsaWNpdGx5IHNldC4gU29tZQorICAgICAgICBjaGFuZ2VzIGhhdmUgYmVlbiBtYWRl
IHRvIHRyeSB0byBmaXggdGhlc2UsIGFuZCAuLi4KKworICAgIChjKSAtLWRpc2FibGUtY3BwIGNh
biBub3cgYmUgdXNlZCB0byBleHBsaWNpdGx5IGRpc2FibGUgQysrIHN1cHBvcnQuCisKKyAgICAo
ZCkgVGhlIHVzZSBvZiBAQ1BQX09CSkAgZGlyZWN0bHkgY2F1c2VkIGEgYmxhbmsgbGluZSBwcmVj
ZWRlZCBieSBhCisgICAgICAgIGJhY2tzbGFzaCBpbiBhIHRhcmdldCB3aGVuIEMrKyB3YXMgZGlz
YWJsZWQuIFRoaXMgY29uZnVzZXMgc29tZQorICAgICAgICB2ZXJzaW9ucyBvZiAibWFrZSIsIGFw
cGFyZW50bHkuIFVzaW5nIGFuIGludGVybWVkaWF0ZSB2YXJpYWJsZSBzb2x2ZXMKKyAgICAgICAg
dGhpcy4gKFNhbWUgZm9yIENQUF9MT0JKLikKKworIDMuICQoTElOS19GT1JfQlVJTEQpIG5vdyBp
bmNsdWRlcyAkKENGTEFHU19GT1JfQlVJTEQpIGFuZCAkKExJTkspCisgICAgKG5vbi1XaW5kb3dz
KSBub3cgaW5jbHVkZXMgJChDRkxBR1MpIGJlY2F1c2UgdGhlc2UgZmxhZ3MgYXJlIHNvbWV0aW1l
cworICAgIG5lY2Vzc2FyeSBvbiBjZXJ0YWluIGFyY2hpdGVjdHVyZXMuCisKKyA0LiBBZGRlZCBh
IHNldHRpbmcgb2YgLWV4cG9ydC1zeW1ib2xzLXJlZ2V4IHRvIHRoZSBsaW5rIGNvbW1hbmQgdG8g
cmVtb3ZlCisgICAgdGhvc2Ugc3ltYm9scyB0aGF0IGFyZSBleHBvcnRlZCBpbiB0aGUgQyBzZW5z
ZSwgYnV0IGFjdHVhbGx5IGFyZSBsb2NhbAorICAgIHdpdGhpbiB0aGUgbGlicmFyeSwgYW5kIG5v
dCBkb2N1bWVudGVkLiBUaGVpciBuYW1lcyBhbGwgYmVnaW4gd2l0aAorICAgICJfcGNyZV8iLiBU
aGlzIGlzIG5vdCBhIHBlcmZlY3Qgam9iLCBiZWNhdXNlIChhKSB3ZSBoYXZlIHRvIGV4Y2VwdCBz
b21lCisgICAgc3ltYm9scyB0aGF0IHBjcmV0ZXN0ICgiaWxsZWdhbGx5IikgdXNlcywgYW5kIChi
KSB0aGUgZmFjaWxpdHkgaXNuJ3QgYWx3YXlzCisgICAgYXZhaWxhYmxlIChhbmQgbmV2ZXIgZm9y
IHN0YXRpYyBsaWJyYXJpZXMpLiBJIGhhdmUgbWFkZSBhIG5vdGUgdG8gdHJ5IHRvCisgICAgZmlu
ZCBhIHdheSByb3VuZCAoYSkgaW4gdGhlIGZ1dHVyZS4KKworCiBWZXJzaW9uIDYuMiAwMS1BdWct
MDUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0MQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0MQkocmV2aXNpb24gMikKKysrIHRlc3Rk
YXRhL3Rlc3RvdXRwdXQxCShyZXZpc2lvbiAzKQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lv
biA2LjIgMDEtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjMgMTUtQXVnLTIwMDUKIAogL3RoZSBx
dWljayBicm93biBmb3gvCiAgICAgdGhlIHF1aWNrIGJyb3duIGZveApJbmRleDogdGVzdGRhdGEv
dGVzdG91dHB1dDIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDIJKHJldmlzaW9u
IDIpCisrKyB0ZXN0ZGF0YS90ZXN0b3V0cHV0MgkocmV2aXNpb24gMykKQEAgLTEsNCArMSw0IEBA
Ci1QQ1JFIHZlcnNpb24gNi4yIDAxLUF1Zy0yMDA1CitQQ1JFIHZlcnNpb24gNi4zIDE1LUF1Zy0y
MDA1CiAKIC8oYSlifC8KIENhcHR1cmluZyBzdWJwYXR0ZXJuIGNvdW50ID0gMQpJbmRleDogdGVz
dGRhdGEvdGVzdG91dHB1dDMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDMJKHJl
dmlzaW9uIDIpCisrKyB0ZXN0ZGF0YS90ZXN0b3V0cHV0MwkocmV2aXNpb24gMykKQEAgLTEsNCAr
MSw0IEBACi1QQ1JFIHZlcnNpb24gNi4yIDAxLUF1Zy0yMDA1CitQQ1JFIHZlcnNpb24gNi4zIDE1
LUF1Zy0yMDA1CiAKIC9eW1x3XSsvCiAgICAgKioqIEZhaWxlcnMKSW5kZXg6IHRlc3RkYXRhL3Rl
c3RvdXRwdXQ0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RkYXRhL3Rlc3RvdXRwdXQ0CShyZXZpc2lvbiAy
KQorKysgdGVzdGRhdGEvdGVzdG91dHB1dDQJKHJldmlzaW9uIDMpCkBAIC0xLDQgKzEsNCBAQAot
UENSRSB2ZXJzaW9uIDYuMiAwMS1BdWctMjAwNQorUENSRSB2ZXJzaW9uIDYuMyAxNS1BdWctMjAw
NQogCiAvLS0gRG8gbm90IHVzZSB0aGUgXHh7fSBjb25zdHJ1Y3QgZXhjZXB0IHdpdGggcGF0dGVy
bnMgdGhhdCBoYXZlIHRoZSAtLS8KIC8tLSAvOCBvcHRpb24gc2V0LCBiZWNhdXNlIFBDUkUgZG9l
c24ndCByZWNvZ25pemUgdGhlbSBhcyBVVEYtOCB1bmxlc3MgLS0vCkluZGV4OiB0ZXN0ZGF0YS90
ZXN0b3V0cHV0NQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0NQkocmV2aXNpb24g
MikKKysrIHRlc3RkYXRhL3Rlc3RvdXRwdXQ1CShyZXZpc2lvbiAzKQpAQCAtMSw0ICsxLDQgQEAK
LVBDUkUgdmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjMgMTUtQXVnLTIw
MDUKIAogL1x4ezEwMH0vOERNCiBNZW1vcnkgYWxsb2NhdGlvbiAoY29kZSBzcGFjZSk6IDEwCklu
ZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0Ngo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0
cHV0NgkocmV2aXNpb24gMikKKysrIHRlc3RkYXRhL3Rlc3RvdXRwdXQ2CShyZXZpc2lvbiAzKQpA
QCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKK1BDUkUgdmVyc2lv
biA2LjMgMTUtQXVnLTIwMDUKIAogL15ccENccExccE1ccE5ccFBccFNccFo8LzgKICAgICBceDdm
XHh7YzB9XHh7MzBmfVx4ezY2MH1ceHs2NmN9XHh7ZjAxfVx4ezE2ODB9PApJbmRleDogdGVzdGRh
dGEvdGVzdG91dHB1dDcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDcJKHJldmlz
aW9uIDIpCisrKyB0ZXN0ZGF0YS90ZXN0b3V0cHV0NwkocmV2aXNpb24gMykKQEAgLTEsNCArMSw0
IEBACi1QQ1JFIHZlcnNpb24gNi4yIDAxLUF1Zy0yMDA1CitQQ1JFIHZlcnNpb24gNi4zIDE1LUF1
Zy0yMDA1CiAKIC9hYmMvCiAgICAgYWJjCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0OAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0OAkocmV2aXNpb24gMikKKysrIHRlc3RkYXRh
L3Rlc3RvdXRwdXQ4CShyZXZpc2lvbiAzKQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lvbiA2
LjIgMDEtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjMgMTUtQXVnLTIwMDUKIAogLy0tIERvIG5v
dCB1c2UgdGhlIFx4e30gY29uc3RydWN0IGV4Y2VwdCB3aXRoIHBhdHRlcm5zIHRoYXQgaGF2ZSB0
aGUgLS0vCiAvLS0gLzggb3B0aW9uIHNldCwgYmVjYXVzZSBQQ1JFIGRvZXNuJ3QgcmVjb2duaXpl
IHRoZW0gYXMgVVRGLTggdW5sZXNzIC0tLwpJbmRleDogdGVzdGRhdGEvdGVzdG91dHB1dDkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDkJKHJldmlzaW9uIDIpCisrKyB0ZXN0ZGF0
YS90ZXN0b3V0cHV0OQkocmV2aXNpb24gMykKQEAgLTEsNCArMSw0IEBACi1QQ1JFIHZlcnNpb24g
Ni4yIDAxLUF1Zy0yMDA1CitQQ1JFIHZlcnNpb24gNi4zIDE1LUF1Zy0yMDA1CiAKIC9ccExcUHtO
ZH0vOAogICAgIEFCCkluZGV4OiB0ZXN0ZGF0YS9ncmVwb3V0cHV0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRl
c3RkYXRhL2dyZXBvdXRwdXQJKHJldmlzaW9uIDIpCisrKyB0ZXN0ZGF0YS9ncmVwb3V0cHV0CShy
ZXZpc2lvbiAzKQpAQCAtMSw0ICsxLDQgQEAKLXBjcmVncmVwIHZlcnNpb24gNC4wIDA3LUp1bi0y
MDA1IHVzaW5nIFBDUkUgdmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKK3BjcmVncmVwIHZlcnNpb24g
NC4wIDA3LUp1bi0yMDA1IHVzaW5nIFBDUkUgdmVyc2lvbiA2LjMgMTUtQXVnLTIwMDUKIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVzdCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogUEFUVEVSTiBhdCB0aGUgc3RhcnQgb2YgYSBsaW5lLgogSW4gdGhlIG1pZGRsZSBvZiBh
IGxpbmUsIFBBVFRFUk4gYXBwZWFycy4KSW5kZXg6IHBjcmVfc3RyaW5ncGllY2UuaC5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwY3JlX3N0cmluZ3BpZWNlLmguaW4JKHJldmlzaW9uIDIpCisrKyBwY3JlX3N0
cmluZ3BpZWNlLmguaW4JKHJldmlzaW9uIDMpCkBAIC00MiwxMCArNDIsMTAgQEAKICNpbmNsdWRl
IDxzdHJpbmc+CiAjaW5jbHVkZSA8aW9zZndkPiAgICAvLyBmb3Igb3N0cmVhbSBmb3J3YXJkLWRl
Y2xhcmF0aW9uCiAKLSNpZiBAcGNyZV9oYXNfdHlwZV90cmFpdHNACisjaWYgQHBjcmVfaGF2ZV90
eXBlX3RyYWl0c0AKICNkZWZpbmUgSEFWRV9UWVBFX1RSQUlUUwogI2luY2x1ZGUgPHR5cGVfdHJh
aXRzLmg+Ci0jZWxpZiBAcGNyZV9oYXNfYml0c190eXBlX3RyYWl0c0AKKyNlbGlmIEBwY3JlX2hh
dmVfYml0c190eXBlX3RyYWl0c0AKICNkZWZpbmUgSEFWRV9UWVBFX1RSQUlUUwogI2luY2x1ZGUg
PGJpdHMvdHlwZV90cmFpdHMuaD4KICNlbmRpZgpJbmRleDogY29uZmlndXJlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGNvbmZpZ3VyZQkocmV2aXNpb24gMikKKysrIGNvbmZpZ3VyZQkocmV2aXNpb24gMykKQEAg
LTQ2Myw3ICs0NjMsNyBAQAogIyBpbmNsdWRlIDx1bmlzdGQuaD4KICNlbmRpZiIKIAotYWNfc3Vi
c3RfdmFycz0nU0hFTEwgUEFUSF9TRVBBUkFUT1IgUEFDS0FHRV9OQU1FIFBBQ0tBR0VfVEFSTkFN
RSBQQUNLQUdFX1ZFUlNJT04gUEFDS0FHRV9TVFJJTkcgUEFDS0FHRV9CVUdSRVBPUlQgZXhlY19w
cmVmaXggcHJlZml4IHByb2dyYW1fdHJhbnNmb3JtX25hbWUgYmluZGlyIHNiaW5kaXIgbGliZXhl
Y2RpciBkYXRhZGlyIHN5c2NvbmZkaXIgc2hhcmVkc3RhdGVkaXIgbG9jYWxzdGF0ZWRpciBsaWJk
aXIgaW5jbHVkZWRpciBvbGRpbmNsdWRlZGlyIGluZm9kaXIgbWFuZGlyIGJ1aWxkX2FsaWFzIGhv
c3RfYWxpYXMgdGFyZ2V0X2FsaWFzIERFRlMgRUNIT19DIEVDSE9fTiBFQ0hPX1QgTElCUyBDQyBD
RkxBR1MgTERGTEFHUyBDUFBGTEFHUyBhY19jdF9DQyBFWEVFWFQgT0JKRVhUIENYWCBDWFhGTEFH
UyBhY19jdF9DWFggSU5TVEFMTF9QUk9HUkFNIElOU1RBTExfU0NSSVBUIElOU1RBTExfREFUQSBi
dWlsZCBidWlsZF9jcHUgYnVpbGRfdmVuZG9yIGJ1aWxkX29zIGhvc3QgaG9zdF9jcHUgaG9zdF92
ZW5kb3IgaG9zdF9vcyBFR1JFUCBMTl9TIEVDSE8gQVIgYWNfY3RfQVIgUkFOTElCIGFjX2N0X1JB
TkxJQiBTVFJJUCBhY19jdF9TVFJJUCBETExUT09MIGFjX2N0X0RMTFRPT0wgQVMgYWNfY3RfQVMg
T0JKRFVNUCBhY19jdF9PQkpEVU1QIENQUCBDWFhDUFAgRjc3IEZGTEFHUyBhY19jdF9GNzcgTElC
VE9PTCBwY3JlX2hhc19iaXRzX3R5cGVfdHJhaXRzIHBjcmVfaGFzX3R5cGVfdHJhaXRzIE1BWUJF
X0NQUF9UQVJHRVRTIHBjcmVfaGFzX2xvbmdfbG9uZyBwY3JlX2hhc191bG9uZ19sb25nIEJVSUxE
X0VYRUVYVCBCVUlMRF9PQkpFWFQgQ0NfRk9SX0JVSUxEIENYWF9GT1JfQlVJTEQgQ0ZMQUdTX0ZP
Ul9CVUlMRCBDWFhGTEFHU19GT1JfQlVJTEQgRUJDRElDIEhBVkVfTUVNTU9WRSBIQVZFX1NUUkVS
Uk9SIExJTktfU0laRSBNQVRDSF9MSU1JVCBORVdMSU5FIE5PX1JFQ1VSU0UgUENSRV9NQUpPUiBQ
Q1JFX01JTk9SIFBDUkVfREFURSBQQ1JFX1ZFUlNJT04gUENSRV9MSUJfVkVSU0lPTiBQQ1JFX1BP
U0lYTElCX1ZFUlNJT04gUENSRV9DUFBMSUJfVkVSU0lPTiBQT1NJWF9NQUxMT0NfVEhSRVNIT0xE
IFVDUCBVVEY4IFdJTl9QUkVGSVggT05fV0lORE9XUyBOT1RfT05fV0lORE9XUyBQT1NJWF9PQkog
UE9TSVhfTE9CSiBQT1NJWF9MSUIgTElCT0JKUyBMVExJQk9CSlMnCithY19zdWJzdF92YXJzPSdT
SEVMTCBQQVRIX1NFUEFSQVRPUiBQQUNLQUdFX05BTUUgUEFDS0FHRV9UQVJOQU1FIFBBQ0tBR0Vf
VkVSU0lPTiBQQUNLQUdFX1NUUklORyBQQUNLQUdFX0JVR1JFUE9SVCBleGVjX3ByZWZpeCBwcmVm
aXggcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSBiaW5kaXIgc2JpbmRpciBsaWJleGVjZGlyIGRhdGFk
aXIgc3lzY29uZmRpciBzaGFyZWRzdGF0ZWRpciBsb2NhbHN0YXRlZGlyIGxpYmRpciBpbmNsdWRl
ZGlyIG9sZGluY2x1ZGVkaXIgaW5mb2RpciBtYW5kaXIgYnVpbGRfYWxpYXMgaG9zdF9hbGlhcyB0
YXJnZXRfYWxpYXMgREVGUyBFQ0hPX0MgRUNIT19OIEVDSE9fVCBMSUJTIENDIENGTEFHUyBMREZM
QUdTIENQUEZMQUdTIGFjX2N0X0NDIEVYRUVYVCBPQkpFWFQgQ1hYIENYWEZMQUdTIGFjX2N0X0NY
WCBJTlNUQUxMX1BST0dSQU0gSU5TVEFMTF9TQ1JJUFQgSU5TVEFMTF9EQVRBIGJ1aWxkIGJ1aWxk
X2NwdSBidWlsZF92ZW5kb3IgYnVpbGRfb3MgaG9zdCBob3N0X2NwdSBob3N0X3ZlbmRvciBob3N0
X29zIEVHUkVQIExOX1MgRUNITyBBUiBhY19jdF9BUiBSQU5MSUIgYWNfY3RfUkFOTElCIFNUUklQ
IGFjX2N0X1NUUklQIERMTFRPT0wgYWNfY3RfRExMVE9PTCBBUyBhY19jdF9BUyBPQkpEVU1QIGFj
X2N0X09CSkRVTVAgQ1BQIENYWENQUCBGNzcgRkZMQUdTIGFjX2N0X0Y3NyBMSUJUT09MIHBjcmVf
aGF2ZV9iaXRzX3R5cGVfdHJhaXRzIHBjcmVfaGF2ZV90eXBlX3RyYWl0cyBNQVlCRV9DUFBfVEFS
R0VUUyBIQVZFX0NQUCBwY3JlX2hhdmVfbG9uZ19sb25nIHBjcmVfaGF2ZV91bG9uZ19sb25nIEJV
SUxEX0VYRUVYVCBCVUlMRF9PQkpFWFQgQ0NfRk9SX0JVSUxEIENYWF9GT1JfQlVJTEQgQ0ZMQUdT
X0ZPUl9CVUlMRCBDWFhGTEFHU19GT1JfQlVJTEQgRUJDRElDIEhBVkVfTUVNTU9WRSBIQVZFX1NU
UkVSUk9SIExJTktfU0laRSBNQVRDSF9MSU1JVCBORVdMSU5FIE5PX1JFQ1VSU0UgUENSRV9NQUpP
UiBQQ1JFX01JTk9SIFBDUkVfREFURSBQQ1JFX1ZFUlNJT04gUENSRV9MSUJfVkVSU0lPTiBQQ1JF
X1BPU0lYTElCX1ZFUlNJT04gUENSRV9DUFBMSUJfVkVSU0lPTiBQT1NJWF9NQUxMT0NfVEhSRVNI
T0xEIFVDUCBVVEY4IFdJTl9QUkVGSVggT05fV0lORE9XUyBOT1RfT05fV0lORE9XUyBQT1NJWF9P
QkogUE9TSVhfTE9CSiBQT1NJWF9MSUIgTElCT0JKUyBMVExJQk9CSlMnCiBhY19zdWJzdF9maWxl
cz0nJwogCiAjIEluaXRpYWxpemUgc29tZSB2YXJpYWJsZXMgc2V0IGJ5IG9wdGlvbnMuCkBAIC0x
MDE4LDYgKzEwMTgsNyBAQAogT3B0aW9uYWwgRmVhdHVyZXM6CiAgIC0tZGlzYWJsZS1GRUFUVVJF
ICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1u
bykKICAgLS1lbmFibGUtRkVBVFVSRVs9QVJHXSAgaW5jbHVkZSBGRUFUVVJFIFtBUkc9eWVzXQor
ICAtLWRpc2FibGUtY3BwICAgICAgICAgICBkaXNhYmxlIEMrKyBzdXBwb3J0CiAgIC0tZW5hYmxl
LXNoYXJlZFs9UEtHU10KICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGQgc2hhcmVkIGxp
YnJhcmllcyBbZGVmYXVsdD15ZXNdCiAgIC0tZW5hYmxlLXN0YXRpY1s9UEtHU10KQEAgLTE1MDUs
OCArMTUwNiw4IEBACiAKIAogUENSRV9NQUpPUj02Ci1QQ1JFX01JTk9SPTIKLVBDUkVfREFURT0w
MS1BdWctMjAwNQorUENSRV9NSU5PUj0zCitQQ1JFX0RBVEU9MTUtQXVnLTIwMDUKIFBDUkVfVkVS
U0lPTj0ke1BDUkVfTUFKT1J9LiR7UENSRV9NSU5PUn0KIAogCkBAIC0xNTE4LDYgKzE1MTksMTUg
QEAKIFBDUkVfQ1BQTElCX1ZFUlNJT049MDowOjAKIAogCisjIENoZWNrIHdoZXRoZXIgLS1lbmFi
bGUtY3BwIG9yIC0tZGlzYWJsZS1jcHAgd2FzIGdpdmVuLgoraWYgdGVzdCAiJHtlbmFibGVfY3Bw
K3NldH0iID0gc2V0OyB0aGVuCisgIGVuYWJsZXZhbD0iJGVuYWJsZV9jcHAiCisgIHdhbnRfY3Bw
PSIkZW5hYmxldmFsIgorZWxzZQorICB3YW50X2NwcD15ZXMKK2ZpOworCisKIGFjX2V4dD1jCiBh
Y19jcHA9JyRDUFAgJENQUEZMQUdTJwogYWNfY29tcGlsZT0nJENDIC1jICRDRkxBR1MgJENQUEZM
QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwpAQCAtMzA2NCw3ICszMDc0LDcgQEAKICMgQWRkIC91
c3IveHBnNC9iaW4vc2VkIGFzIGl0IGlzIHR5cGljYWxseSBmb3VuZCBvbiBTb2xhcmlzCiAjIGFs
b25nIHdpdGggL2Jpbi9zZWQgdGhhdCB0cnVuY2F0ZXMgb3V0cHV0LgogZm9yIGx0X2FjX3NlZCBp
biAkbHRfYWNfc2VkX2xpc3QgL3Vzci94cGc0L2Jpbi9zZWQ7IGRvCi0gIHRlc3QgISAtZiAkbHRf
YWNfc2VkICYmIGJyZWFrCisgIHRlc3QgISAtZiAkbHRfYWNfc2VkICYmIGNvbnRpbnVlCiAgIGNh
dCAvZGV2L251bGwgPiBjb25mdGVzdC5pbgogICBsdF9hY19jb3VudD0wCiAgIGVjaG8gJEVDSE9f
TiAiMDEyMzQ1Njc4OSRFQ0hPX0MiID5jb25mdGVzdC5pbgpAQCAtMzM1MSwxMyArMzM2MSwxMyBA
QAogICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAogICA7OwogCi1mcmVlYnNk
KiB8IGtmcmVlYnNkKi1nbnUpCitmcmVlYnNkKiB8IGtmcmVlYnNkKi1nbnUgfCBkcmFnb25mbHkq
KQogICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+IC9kZXYvbnVs
bDsgdGhlbgogICAgIGNhc2UgJGhvc3RfY3B1IGluCiAgICAgaSo4NiApCiAgICAgICAjIE5vdCBz
dXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgog
ICAgICAgIyBMZXQncyBhY2NlcHQgYm90aCBvZiB0aGVtIHVudGlsIHRoaXMgaXMgY2xlYXJlZCB1
cC4KLSAgICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIChGcmVlQlNE
fE9wZW5CU0QpL2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJlZCBsaWJyYXJ5
JworICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8
T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBhZ2VkIHNoYXJl
ZCBsaWJyYXJ5JwogICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQogICAg
ICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL3Vzci9saWIvbGliYy5zby4qYAog
ICAgICAgOzsKQEAgLTM0MDEsMTUgKzM0MTEsNiBAQAogCiAjIFRoaXMgbXVzdCBiZSBMaW51eCBF
TEYuCiBsaW51eCopCi0gIGNhc2UgJGhvc3RfY3B1IGluCi0gIGFscGhhKnxocHBhKnxpKjg2fGlh
NjQqfG02OCp8bWlwcyp8cG93ZXJwYyp8c3BhcmMqfHMzOTAqfHNoKikKLSAgICBsdF9jdl9kZXBs
aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbCA7OwotICAqKQotICAgICMgZ2xpYmMgdXAgdG8gMi4x
LjEgZG9lcyBub3QgcGVyZm9ybSBzb21lIHJlbG9jYXRpb25zIG9uIEFSTQotICAgICMgdGhpcyB3
aWxsIGJlIG92ZXJyaWRkZW4gd2l0aCBwYXNzX2FsbCwgYnV0IGxldCB1cyBrZWVwIGl0IGp1c3Qg
aW4gY2FzZQotICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBb
MC05XVswLTldKi1iaXQgW0xNXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliICknIDs7Ci0g
IGVzYWMKLSAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9YGVjaG8gL2xpYi9saWJjLnNvKiAv
bGliL2xpYmMtKi5zb2AKICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKICAg
OzsKIApAQCAtMzUyOCw3ICszNTI5LDcgQEAKICAgOzsKICotKi1pcml4NiopCiAgICMgRmluZCBv
dXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSAgZWNobyAnI2xpbmUgMzUzMSAiY29uZmlndXJl
IicgPiBjb25mdGVzdC4kYWNfZXh0CisgIGVjaG8gJyNsaW5lIDM1MzIgImNvbmZpZ3VyZSInID4g
Y29uZnRlc3QuJGFjX2V4dAogICBpZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRh
Y19jb21waWxlXCIiKSA+JjUKICAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKICAgYWNfc3RhdHVz
PSQ/CkBAIC0zNjA5LDYgKzM2MTAsMjQgQEAKICAgcm0gLXJmIGNvbmZ0ZXN0KgogICA7OwogCisq
LSotbGludXgqKQorICAjIFRlc3QgaWYgdGhlIGNvbXBpbGVyIGlzIDY0Yml0CisgIGVjaG8gJ2lu
dCBpOycgPiBjb25mdGVzdC4kYWNfZXh0CisgIGx0X2N2X2NjXzY0Yml0X291dHB1dD1ubworICBp
ZiB7IChldmFsIGVjaG8gIiRhc19tZTokTElORU5POiBcIiRhY19jb21waWxlXCIiKSA+JjUKKyAg
KGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKKyAgYWNfc3RhdHVzPSQ/CisgIGVjaG8gIiRhc19tZTok
TElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgKGV4aXQgJGFjX3N0YXR1cyk7IH07IHRo
ZW4KKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisgICAg
KiJFTEYgNjQiKikKKyAgICAgIGx0X2N2X2NjXzY0Yml0X291dHB1dD15ZXMKKyAgICAgIDs7Cisg
ICAgZXNhYworICBmaQorICBybSAtcmYgY29uZnRlc3QqCisgIDs7CisKICotKi1zY28zLjJ2NSop
CiAgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVsZiB0byBnZXQgZnVsbC1mZWF0
dXJlZCBiaW5hcmllcy4KICAgU0FWRV9DRkxBR1M9IiRDRkxBR1MiCkBAIC00NTU1LDcgKzQ1NzQs
MTIgQEAKIAogZG9uZQogCi1hY19leHQ9Y2MKKworCitpZiB0ZXN0IC1uICIkQ1hYIiAmJiAoIHRl
c3QgIlgkQ1hYIiAhPSAiWG5vIiAmJgorICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBg
ZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAorICAgICh0ZXN0ICJYJENYWCIgIT0gIlhnKysi
KSkpIDsgdGhlbgorICBhY19leHQ9Y2MKIGFjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCiBhY19j
b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn
CiBhY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT
ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwpAQCAtNDc4NSw3ICs0ODA5LDkg
QEAKIGFjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB
R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCiBhY19jb21waWxlcl9nbnU9
JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKIAorZmkKIAorCiBhY19leHQ9ZgogYWNfY29tcGlsZT0n
JEY3NyAtYyAkRkZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwogYWNfbGluaz0nJEY3NyAtbyBj
b25mdGVzdCRhY19leGVleHQgJEZGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJT
ID4mNScKQEAgLTQ4NzgsNyArNDkwNCw3IEBACiAKIAogIyBQcm92aWRlIHNvbWUgaW5mb3JtYXRp
b24gYWJvdXQgdGhlIGNvbXBpbGVyLgotZWNobyAiJGFzX21lOjQ4ODE6IiBcCitlY2hvICIkYXNf
bWU6NDkwNzoiIFwKICAgICAgImNoZWNraW5nIGZvciBGb3J0cmFuIDc3IGNvbXBpbGVyIHZlcnNp
b24iID4mNQogYWNfY29tcGlsZXI9YHNldCBYICRhY19jb21waWxlOyBlY2hvICQyYAogeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZXIgLS12ZXJzaW9uIDwvZGV2L251
bGwgPiY1XCIiKSA+JjUKQEAgLTUwNjgsNyArNTA5NCw3IEBACiAgICAgbHRfY3Zfc3lzX21heF9j
bWRfbGVuPTgxOTI7CiAgICAgOzsKIAotICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8
IGRhcndpbiogKQorICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBk
cmFnb25mbHkqKQogICAgICMgVGhpcyBoYXMgYmVlbiBhcm91bmQgc2luY2UgMzg2QlNELCBhdCBs
ZWFzdC4gIExpa2VseSBmdXJ0aGVyLgogICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVu
CiAgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21h
eGAKQEAgLTUwNzksOSArNTEwNSwyMiBAQAogICAgIGZpCiAgICAgIyBBbmQgYWRkIGEgc2FmZXR5
IHpvbmUKICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21k
X2xlbiBcLyA0YAorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21h
eF9jbWRfbGVuIFwqIDNgCiAgICAgOzsKLQotICopCisgIG9zZiopCisgICAgIyBEci4gSGFucyBF
a2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmljIHJ1bm5pbmcgY29u
ZmlndXJlCisgICAgIyBkdWUgdG8gdGhpcyB0ZXN0IHdoZW4gZXhlY19kaXNhYmxlX2FyZ19saW1p
dCBpcyAxIG9uIFRydTY0LiBJdCBpcyBub3QKKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBh
bmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgorICAgICMgRmlyc3Qgc2V0IGEgcmVh
c29uYWJsZSBkZWZhdWx0LgorICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xNjM4NAorICAgICMK
KyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgorICAgICAgY2FzZSBgL3NiaW4v
c3lzY29uZmlnIC1xIHByb2MgZXhlY19kaXNhYmxlX2FyZ19saW1pdGAgaW4KKyAgICAgICAgKjEq
KSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKKyAgICAgIGVzYWMKKyAgICBmaQorICAgIDs7
CisgICopCiAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWluLCB3ZSdsbCBwcm9i
YWJseSBlbmQgdXAgY29tcHV0aW5nIGEKICAgICAjIG1heGltdW0gbGVuZ3RoIHRoYXQgaXMgb25s
eSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAogICAgICMgd2UgY2FuJ3Qg
dGVsbC4KQEAgLTUxMzIsOSArNTE3MSw2IEBACiAjIFJlZ2V4cCB0byBtYXRjaCBzeW1ib2xzIHRo
YXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4KIHN5bXBhdD0nXChbX0EtWmEtel1b
X0EtWmEtejAtOV0qXCknCiAKLSMgVHJhbnNmb3JtIHRoZSBhYm92ZSBpbnRvIGEgcmF3IHN5bWJv
bCBhbmQgYSBDIHN5bWJvbC4KLXN5bXhmcm09J1wxIFwyXDMgXDMnCi0KICMgVHJhbnNmb3JtIGFu
IGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIGEgcHJvcGVyIEMgZGVjbGFyYXRpb24KIGx0X2N2
X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXi4gLiogXCguKlwpJC9l
eHRlcm4gaW50IFwxOy9wJyIKIApAQCAtNTE1Niw2ICs1MTkyLDEzIEBACiAgIGx0X2N2X3N5c19n
bG9iYWxfc3ltYm9sX3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4g
aW50IFwxKCk7L3AnIC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsv
cCciCiAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSJzZWQgLW4g
LWUgJ3MvXjogXChbXiBdKlwpICQvICB7XFxcIlwxXFxcIiwgKGx0X3B0cikgMH0sL3AnIC1lICdz
L14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwiLCAobHRfcHRyKSBcJlwy
fSwvcCciCiAgIDs7CitsaW51eCopCisgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu
CisgICAgc3ltY29kZT0nW0FCQ0RHSVJTVFddJworICAgIGx0X2N2X3N5c19nbG9iYWxfc3ltYm9s
X3RvX2NkZWNsPSJzZWQgLW4gLWUgJ3MvXlQgLiogXCguKlwpJC9leHRlcm4gaW50IFwxKCk7L3An
IC1lICdzL14kc3ltY29kZSogLiogXCguKlwpJC9leHRlcm4gY2hhciBcMTsvcCciCisgICAgbHRf
Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9InNlZCAtbiAtZSAncy9eOiBc
KFteIF0qXCkgJC8gIHtcXFwiXDFcXFwiLCAobHRfcHRyKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2Rl
KiBcKFteIF0qXCkgXChbXiBdKlwpJC8gIHtcIlwyXCIsIChsdF9wdHIpIFwmXDJ9LC9wJyIKKyAg
ZmkKKyAgOzsKIGlyaXgqIHwgbm9uc3RvcHV4KikKICAgc3ltY29kZT0nW0JDREVHUlNUXScKICAg
OzsKQEAgLTUxODcsOCArNTIzMCwxMSBAQAogIyBUcnkgd2l0aG91dCBhIHByZWZpeCB1bmRlcmNv
cmUsIHRoZW4gd2l0aCBpdC4KIGZvciBhY19zeW1wcmZ4IGluICIiICJfIjsgZG8KIAorICAjIFRy
YW5zZm9ybSBzeW1jb2RlLCBzeW1wYXQsIGFuZCBzeW1wcmZ4IGludG8gYSByYXcgc3ltYm9sIGFu
ZCBhIEMgc3ltYm9sLgorICBzeW14ZnJtPSJcXDEgJGFjX3N5bXByZnhcXDIgXFwyIgorCiAgICMg
V3JpdGUgdGhlIHJhdyBhbmQgQyBpZGVudGlmaWVycy4KLSAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i
b2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKlsgCV1cKCRzeW1jb2RlJHN5bWNvZGUqXClbIAldWyAJ
XSpcKCRhY19zeW1wcmZ4XCkkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCisgIGx0X2N2X3N5
c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbIAldXCgkc3ltY29kZSRzeW1j
b2RlKlwpWyAJXVsgCV0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCiAK
ICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCiAgIHBpcGVf
d29ya3M9bm8KQEAgLTUzNTAsNyArNTM5Niw3IEBACiAKICMgU2VkIHN1YnN0aXR1dGlvbiB0aGF0
IGhlbHBzIHVzIGRvIHJvYnVzdCBxdW90aW5nLiAgSXQgYmFja3NsYXNoaWZpZXMKICMgbWV0YWNo
YXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUtcXVvdGVkIHN0cmlu
Z3MuCi1Yc2VkPSdzZWQgLWUgcy9eWC8vJworWHNlZD0nc2VkIC1lIDFzL15YLy8nCiBzZWRfcXVv
dGVfc3Vic3Q9J3MvXChbXFwiXFxgJFxcXFxdXCkvXFxcMS9nJwogCiAjIFNhbWUgYXMgYWJvdmUs
IGJ1dCBkbyBub3QgcXVvdGUgdmFyaWFibGUgcmVmZXJlbmNlcy4KQEAgLTU2NTUsOCArNTcwMSwx
NyBAQAogICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9s
ZGxpYiIKIGZpCiAKLWNjX2Jhc2VuYW1lPWAkZWNobyBYIiRjb21waWxlciIgfCAkWHNlZCAtZSAn
cyVeLiovJSUnYAorZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisgIGNhc2UgJGNjX3Rl
bXAgaW4KKyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNo
ZSApIDs7CisgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5
ICkgOzsKKyAgICBcLSopIDs7CisgICAgKikgYnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNl
bmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0
X2FsaWFzLSUlImAKIAorCiAjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRo
ZSBjaGVjayBtZXRob2QgcmVxdWlyZXMgaXQKIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGlu
CiBmaWxlX21hZ2ljKikKQEAgLTU4MTIsNiArNTg2Nyw0NyBAQAogZmk7CiB0ZXN0IC16ICIkcGlj
X21vZGUiICYmIHBpY19tb2RlPWRlZmF1bHQKIAorIyBDaGVjayBpZiB3ZSBoYXZlIGEgdmVyc2lv
biBtaXNtYXRjaCBiZXR3ZWVuIGxpYnRvb2wubTQgYW5kIGx0bWFpbi5zaC4KKyMKKyMgTm90ZTog
IFRoaXMgc2hvdWxkIGJlIGluIEFDX0xJQlRPT0xfU0VUVVAsIF9hZnRlcl8gJGx0bWFpbiBoYXZl
IGJlZW4gZGVmaW5lZC4KKyMgICAgICAgIFdlIGFsc28gc2hvdWxkIGRvIGl0IF9iZWZvcmVfIEFD
X0xJQlRPT0xfTEFOR19DX0NPTkZJRyB0aGF0IGFjdHVhbGx5CisjICAgICAgICBjYWxscyBBQ19M
SUJUT09MX0NPTkZJRyBhbmQgY3JlYXRlcyBsaWJ0b29sLgorIworZWNobyAiJGFzX21lOiRMSU5F
Tk86IGNoZWNraW5nIGZvciBjb3JyZWN0IGx0bWFpbi5zaCB2ZXJzaW9uIiA+JjUKK2VjaG8gJEVD
SE9fTiAiY2hlY2tpbmcgZm9yIGNvcnJlY3QgbHRtYWluLnNoIHZlcnNpb24uLi4gJEVDSE9fQyIg
PiY2CitpZiB0ZXN0IC16ICIkbHRtYWluIjsgdGhlbgorICBlY2hvICIkYXNfbWU6JExJTkVOTzog
cmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CisgIGVjaG8KKyAgZWNobyAi
KioqIEdlbnRvbyBzYW5pdHkgY2hlY2sgZmFpbGVkISAqKioiCisgIGVjaG8gIioqKiBcJGx0bWFp
biBpcyBub3QgZGVmaW5lZCwgcGxlYXNlIGNoZWNrIHRoZSBwYXRjaCBmb3IgY29uc2lzdGVuY3kh
ICoqKiIKKyAgZWNobworICBleGl0IDEKK2ZpCitnZW50b29fbHRfdmVyc2lvbj0iMS41LjE4Igor
Z2VudG9vX2x0bWFpbl92ZXJzaW9uPWBncmVwICdeWzpzcGFjZTpdKlZFUlNJT049JyAkbHRtYWlu
IHwgc2VkIC1lICdzfF5bOnNwYWNlOl0qVkVSU0lPTj18fCdgCitpZiB0ZXN0ICIkZ2VudG9vX2x0
X3ZlcnNpb24iICE9ICIkZ2VudG9vX2x0bWFpbl92ZXJzaW9uIjsgdGhlbgorICBlY2hvICIkYXNf
bWU6JExJTkVOTzogcmVzdWx0OiBubyIgPiY1CitlY2hvICIke0VDSE9fVH1ubyIgPiY2CisgIGVj
aG8KKyAgZWNobyAiKioqIEdlbnRvbyBzYW5pdHkgY2hlY2sgZmFpbGVkISAqKioiCisgIGVjaG8g
IioqKiBsaWJ0b29sLm00IGFuZCBsdG1haW4uc2ggaGF2ZSBhIHZlcnNpb24gbWlzbWF0Y2ghICoq
KiIKKyAgZWNobyAiKioqIChsaWJ0b29sLm00ID0gJGdlbnRvb19sdF92ZXJzaW9uLCBsdG1haW4u
c2ggPSAkZ2VudG9vX2x0bWFpbl92ZXJzaW9uKSAqKioiCisgIGVjaG8KKyAgZWNobyAiUGxlYXNl
IHJ1bjoiCisgIGVjaG8KKyAgZWNobyAiICBsaWJ0b29saXplIC0tY29weSAtLWZvcmNlIgorICBl
Y2hvCisgIGVjaG8gImlmIGFwcHJvcHJpYXRlLCBwbGVhc2UgY29udGFjdCB0aGUgbWFpbnRhaW5l
ciBvZiB0aGlzIgorICBlY2hvICJwYWNrYWdlIChvciB5b3VyIGRpc3RyaWJ1dGlvbikgZm9yIGhl
bHAuIgorICBlY2hvCisgIGV4aXQgMQorZWxzZQorICBlY2hvICIkYXNfbWU6JExJTkVOTzogcmVz
dWx0OiB5ZXMiID4mNQorZWNobyAiJHtFQ0hPX1R9eWVzIiA+JjYKK2ZpCisKKwogIyBVc2UgQyBm
b3IgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKIHRhZ25h
bWU9CiBsdF9zYXZlX0NDPSIkQ0MiCkBAIC01ODQzLDYgKzU5MzksMjAgQEAKIGNvbXBpbGVyPSRD
QwogCiAKKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCith
Y19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKK3ByaW50ZiAiJGx0X3NpbXBsZV9jb21waWxl
X3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKK2V2YWwgIiRhY19jb21waWxlIiAyPiYxID4v
ZGV2L251bGwgfCAkU0VEICcvXiQvZCcgPmNvbmZ0ZXN0LmVycgorX2x0X2NvbXBpbGVyX2JvaWxl
cnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorJHJtIGNvbmZ0ZXN0KgorCithY19vdXRmaWxlPWNv
bmZ0ZXN0LiRhY19vYmpleHQKK3ByaW50ZiAiJGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNv
bmZ0ZXN0LiRhY19leHQKK2V2YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcv
XiQvZCcgPmNvbmZ0ZXN0LmVycgorX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0
LmVycmAKKyRybSBjb25mdGVzdCoKKworCiAjCiAjIENoZWNrIGZvciBhbnkgc3BlY2lhbCBzaGFy
ZWQgbGlicmFyeSBjb21waWxhdGlvbiBmbGFncy4KICMKQEAgLTU4ODQsNiArNTk5NCwxMSBAQAog
ICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgogICAgICAgICMgQXBwZW5kIGFueSBl
cnJvcnMgdG8gdGhlIGNvbmZpZy5sb2cuCiAgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAxPiY1Cisg
ICAgICAgJGVjaG8gIlgkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCA+IGNvbmZ0ZXN0
LmV4cAorICAgICAgICRTRUQgJy9eJC9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgorICAg
ICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCisg
ICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrcz15ZXMKKyAgICAgICBmaQogICAg
ICBlbHNlCiAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3M9eWVzCiAgICAgIGZp
CkBAIC01OTAzLDEwICs2MDE4LDYgQEAKIAogCiAKLSMjIENBVkVBVCBFTVBUT1I6Ci0jIyBUaGVy
ZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3JvcywgZG8gbm90
IGNoYW5nZQotIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91
bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgogCiBs
dF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0KIApAQCAtNTkzMiwxNSArNjA0MywxNyBA
QAogICAgLWUgJ3M6LipGTEFHU30/IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUg
J3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6
JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo1OTM1OiAk
bHRfY29tcGlsZVwiIiA+JjUpCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NjA0NjogJGx0X2Nv
bXBpbGVcIiIgPiY1KQogICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKICAg
IGFjX3N0YXR1cz0kPwogICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSAgIGVjaG8gIiRhc19tZTo1
OTM5OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgIGVjaG8gIiRhc19tZTo2MDUwOiBcJD8gPSAk
YWNfc3RhdHVzIiA+JjUKICAgIGlmIChleGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19v
dXRmaWxlIjsgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v
cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotICAgICAjIFNvIHNheSBubyBpZiB0aGVy
ZSBhcmUgd2FybmluZ3MKLSAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAg
ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwg
b3V0cHV0LgorICAgICAkZWNobyAiWCRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQg
PmNvbmZ0ZXN0LmV4cAorICAgICAkU0VEICcvXiQvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5l
cjIKKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyciB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBj
b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf
cnR0aV9leGNlcHRpb25zPXllcwogICAgICBmaQogICAgZmkKQEAgLTYwNDYsNyArNjE1OSw3IEBA
CiAgICAgICBkYXJ3aW4qKQogICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBs
YXRmb3JtCiAgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIg
ZmlsZXMKLSAgICAgICBjYXNlICIkY2NfYmFzZW5hbWUiIGluCisgICAgICAgY2FzZSAkY2NfYmFz
ZW5hbWUgaW4KICAgICAgICAgIHhsYyopCiAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0n
LXFub2NvbW1vbicKICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCkBAIC02MDg4
LDEyICs2MjAxLDE5IEBACiAgICAgICA7OwogCiAgICAgbGludXgqKQotICAgICAgY2FzZSAkQ0Mg
aW4KKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCiAgICAgICBpY2MqIHwgZWNjKikKIAlsdF9w
cm9nX2NvbXBpbGVyX3dsPSctV2wsJwogCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKIAls
dF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKICAgICAgICAgOzsKKyAgICAgIHBnY2Mq
IHwgcGdmNzcqIHwgcGdmOTAqKQorICAgICAgICAjIFBvcnRsYW5kIEdyb3VwIGNvbXBpbGVycyAo
Km5vdCogdGhlIFBlbnRpdW0gZ2NjIGNvbXBpbGVyLAorCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBk
ZWFkIHByb2plY3QpCisJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKKwlsdF9wcm9nX2NvbXBp
bGVyX3BpYz0nLWZwaWMnCisJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCisgICAg
ICAgIDs7CiAgICAgICBjY2MqKQogICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwog
ICAgICAgICAjIEFsbCBBbHBoYSBjb2RlIGlzIFBJQy4KQEAgLTYxMTQsOSArNjIzNCwxNCBAQAog
ICAgICAgOzsKIAogICAgIHNvbGFyaXMqKQotICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVds
LCcKICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKICAgICAgIGx0X3Byb2dfY29t
cGlsZXJfc3RhdGljPSctQnN0YXRpYycKKyAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCisgICAg
ICBmNzcqIHwgZjkwKiB8IGY5NSopCisJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQg
Jzs7CisgICAgICAqKQorCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnOzsKKyAgICAgIGVzYWMK
ICAgICAgIDs7CiAKICAgICBzdW5vczQqKQpAQCAtNjEzOCw2ICs2MjYzLDExIEBACiAgICAgICBm
aQogICAgICAgOzsKIAorICAgIHVuaWNvcyopCisgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct
V2wsJworICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCisgICAgICA7
OworCiAgICAgdXRzNCopCiAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLXBpYycKICAgICAg
IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKQEAgLTYxNzUsMTUgKzYzMDUsMTcg
QEAKICAgIC1lICdzOi4qRkxBR1N9PyA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKICAgIC1l
ICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKICAgIC1lICdz
OiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0gICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6NjE3ODog
JGx0X2NvbXBpbGVcIiIgPiY1KQorICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjYzMDg6ICRsdF9j
b21waWxlXCIiID4mNSkKICAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCiAg
ICBhY19zdGF0dXM9JD8KICAgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0gICBlY2hvICIkYXNfbWU6
NjE4MjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgICBlY2hvICIkYXNfbWU6NjMxMjogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNf
b3V0ZmlsZSI7IHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu
b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSAgICAgIyBTbyBzYXkgbm8gaWYgdGhl
cmUgYXJlIHdhcm5pbmdzCi0gICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAg
ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFs
IG91dHB1dC4KKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2Vk
ID5jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14kL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3Qu
ZXIyCisgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgfHwgZGlmZiBjb25mdGVzdC5leHAg
Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp
Y193b3Jrcz15ZXMKICAgICAgZmkKICAgIGZpCkBAIC02MjM1LDE2ICs2MzY3LDE4IEBACiAgICAt
ZSAnczouKkZMQUdTfT8gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14g
XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRf
Y29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjYyMzg6ICRsdF9jb21w
aWxlXCIiID4mNSkKKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTo2MzcwOiAkbHRfY29tcGlsZVwi
IiA+JjUpCiAgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVycikKICAgIGFj
X3N0YXR1cz0kPwogICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0gICBlY2hvICIkYXNfbWU6
NjI0MjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgICBlY2hvICIkYXNfbWU6NjM3NDogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9j
b25mdGVzdDIuJGFjX29iamV4dAogICAgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25s
eSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAogICAgICAjIFNv
IHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25m
dGVzdC5lcnI7IHRoZW4KKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8
ICRYc2VkID4gb3V0L2NvbmZ0ZXN0LmV4cAorICAgICAkU0VEICcvXiQvZCcgb3V0L2NvbmZ0ZXN0
LmVyciA+b3V0L2NvbmZ0ZXN0LmVyMgorICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVy
ciB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0
aGVuCiAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX289eWVzCiAgICAgIGZpCiAgICBmaQpA
QCAtNjMyNCw2ICs2NDU4LDE2IEBACiAgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdz
IHByb2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgogICAjIHByZWxvYWRlZCBzeW1i
b2wgdGFibGVzLgogICBleHRyYWN0X2V4cHN5bXNfY21kcz0KKyAgIyBKdXN0IGJlaW5nIHBhcmFu
b2lkIGFib3V0IGVuc3VyaW5nIHRoYXQgY2NfYmFzZW5hbWUgaXMgc2V0LgorICBmb3IgY2NfdGVt
cCBpbiAkY29tcGlsZXIiIjsgZG8KKyAgY2FzZSAkY2NfdGVtcCBpbgorICAgIGNvbXBpbGUgfCAq
W1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKyAgICBkaXN0Y2MgfCAq
W1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworICAgIFwtKikgOzsKKyAg
ICAqKSBicmVhazs7CisgIGVzYWMKK2RvbmUKK2NjX2Jhc2VuYW1lPWAkZWNobyAiWCRjY190ZW1w
IiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUiYAogCiAgIGNhc2Ug
JGhvc3Rfb3MgaW4KICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqKQpAQCAtNjM0NCw2ICs2NDg4
LDI3IEBACiAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91
bGQgYmUgZW1wdHkKICAgICB3bGFyYz0nJHt3bH0nCiAKKyAgICAjIFNldCBzb21lIGRlZmF1bHRz
IGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorICAgICMgYXJl
IHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRp
bmcgdGhlbQorICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vz
c2FyeS4KKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorICAgIGhhcmRjb2RlX2xpYmRpcl9m
bGFnX3NwZWM9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisgICAgZXhwb3J0X2R5bmFtaWNf
ZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCisgICAgIyBhbmNpZW50IEdOVSBsZCBk
aWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgorICAgIGlmICRMRCAtLWhlbHAg
Mj4mMSB8IGdyZXAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCisJd2hvbGVf
YXJjaGl2ZV9mbGFnX3NwZWM9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICci
JHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisgICAgICBlbHNlCisgIAl3aG9sZV9hcmNoaXZl
X2ZsYWdfc3BlYz0KKyAgICBmaQorICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworICAg
IGNhc2UgYCRMRCAtdiAyPi9kZXYvbnVsbGAgaW4KKyAgICAgICpcIFswMV0uKiB8ICpcIDIuWzAt
OV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKKyAgICAgICpcIDIu
MTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4u
CisgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMg
OzsgIyBNYW5kcmFrZSA4LjIgLi4uCisgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2
ZXJzaW9ucworICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworICAgIGVz
YWMKKwogICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgogICAg
IGNhc2UgJGhvc3Rfb3MgaW4KICAgICBhaXgzKiB8IGFpeDQqIHwgYWl4NSopCkBAIC02Mzk0LDcg
KzY1NTksNyBAQAogICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKICAgICAg
IGFsd2F5c19leHBvcnRfc3ltYm9scz1ubwogICAgICAgZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp
Y19ydW50aW1lcz15ZXMKLSAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAk
Y29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1Nd
IC9zLy4qIFwoW14gXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltBSVRXXSAvcy8u
KiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAgICAgIGV4cG9ydF9z
eW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9w
aXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXSAvcy8uKiBcKFteIF0qXCkvXDEgREFUQS8nXCcn
IHwgJFNFRCAtZSAnXCcnL15bQUlUV10gL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhw
b3J0X3N5bWJvbHMnCiAKICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJ2F1dG8taW1w
b3J0JyA+IC9kZXYvbnVsbDsgdGhlbgogICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVk
ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29u
YW1lICR7d2x9LS1pbWFnZS1iYXNlPTB4MTAwMDAwMDAgJHt3bH0tLW91dC1pbXBsaWIsJGxpYicK
QEAgLTY0MTIsNiArNjU3NywzNyBAQAogICAgICAgZmkKICAgICAgIDs7CiAKKyAgICBsaW51eCop
CisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4q
IGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwl0bXBfYWRkZmxhZz0KKwljYXNlICRjY19iYXNlbmFt
ZSwkaG9zdF9jcHUgaW4KKwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCisJ
ICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdob2xlLWFyY2hpdmUsYGZvciBjb252
IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVu
aWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252
ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKwkgIHRtcF9hZGRmbGFnPScgJHBp
Y19mbGFnJworCSAgOzsKKwlwZ2Y3NyogfCBwZ2Y5MCogKQkJCSMgUG9ydGxhbmQgR3JvdXAgZjc3
IGFuZCBmOTAgY29tcGlsZXJzCisJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0tLXdo
b2xlLWFyY2hpdmUsYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwi
JGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRv
bmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScK
KwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWluJyA7OworCWVjYyosaWE2NCogfCBp
Y2MqLGlhNjQqKQkJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlhNjQKKwkgIHRtcF9hZGRmbGFnPScg
LWlfZHluYW1pYycgOzsKKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIEludGVsIEZvcnRy
YW4gY29tcGlsZXIgb24gaWE2NAorCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljIC1ub2Zvcl9t
YWluJyA7OworCWlmYyogfCBpZm9ydCopCQkJIyBJbnRlbCBGb3J0cmFuIGNvbXBpbGVyCisJICB0
bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OworCWVzYWMKKwlhcmNoaXZlX2NtZHM9JyRDQyAt
c2hhcmVkJyIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg
JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKworCWlmIHRlc3QgJHN1cHBvcnRzX2Fu
b25fdmVyc2lvbmluZyA9IHllczsgdGhlbgorCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJGVjaG8g
InsgZ2xvYmFsOiIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisgIGNhdCAkZXhwb3J0
X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJu
YW1lLnZlcn4KKyAgJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5h
bWUudmVyfgorCSAgJENDIC1zaGFyZWQnIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJz
ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS12ZXJzaW9uLXNj
cmlwdCAke3dsfSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJworCWZpCisgICAg
ICBlbHNlCisJbGRfc2hsaWJzPW5vCisgICAgICBmaQorICAgICAgOzsKKwogICAgIG5ldGJzZCop
CiAgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfXyA+L2Rldi9u
dWxsOyB0aGVuCiAJYXJjaGl2ZV9jbWRzPSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxp
YnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwpAQCAtNjQ1MCwzMSArNjY0Niw2IEBACiAgICAgICBo
YXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCiAgICAgICA7OwogCi0gIGxpbnV4KikKLSAgICBpZiAk
TEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2
L251bGw7IHRoZW4KLSAgICAgICAgdG1wX2FyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9i
anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRs
aWInCi0JYXJjaGl2ZV9jbWRzPSIkdG1wX2FyY2hpdmVfY21kcyIKLSAgICAgIHN1cHBvcnRzX2Fu
b25fdmVyc2lvbmluZz1ubwotICAgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgotICAg
ICAgICAqXCAwMS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNp
b25zIDwgMi4xMQotICAgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJz
aW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgotICAgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1
cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCi0gICAgICAg
ICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCi0gICAgICAgICopIHN1cHBvcnRz
X2Fub25fdmVyc2lvbmluZz15ZXMgOzsKLSAgICAgIGVzYWMKLSAgICAgIGlmIHRlc3QgJHN1cHBv
cnRzX2Fub25fdmVyc2lvbmluZyA9IHllczsgdGhlbgotICAgICAgICBhcmNoaXZlX2V4cHN5bV9j
bWRzPSckZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLWNh
dCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2Jq
ZGlyLyRsaWJuYW1lLnZlcn4KLSRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGly
LyRsaWJuYW1lLnZlcn4KLSAgICAgICAgJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv
bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0
ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCi0gICAgICBlbHNlCi0g
ICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9IiR0bXBfYXJjaGl2ZV9jbWRzIgotICAgICAgZmkK
LSAgICBlbHNlCi0gICAgICBsZF9zaGxpYnM9bm8KLSAgICBmaQotICAgIDs7Ci0KICAgICAqKQog
ICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBl
bGYnID4gL2Rldi9udWxsOyB0aGVuCiAJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2Jq
cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxp
YicKQEAgLTY0ODUsMTYgKzY2NTYsMTEgQEAKICAgICAgIDs7CiAgICAgZXNhYwogCi0gICAgaWYg
dGVzdCAiJGxkX3NobGlicyIgPSB5ZXM7IHRoZW4KLSAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9Q
QVRICi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS0tcnBhdGggJHt3bH0k
bGliZGlyJwotICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWR5
bmFtaWMnCi0gICAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJj
aGl2ZSBldC4gYWwuCi0gICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICduby13aG9sZS1h
cmNoaXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0iJHds
YXJjIictLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJyIkd2xhcmMiJy0tbm8td2hvbGUtYXJj
aGl2ZScKLSAgICAgIGVsc2UKLSAgCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotICAgICAgZmkK
KyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzIiA9IG5vOyB0aGVuCisgICAgICBydW5wYXRoX3Zhcj0K
KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9CisgICAgICBleHBvcnRfZHluYW1pY19m
bGFnX3NwZWM9CisgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KICAgICBmaQogICBlbHNl
CiAgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgbGlu
a2VyIChub3QgR05VIGxkKQpAQCAtNjU1OCw3ICs2NzI0LDcgQEAKICAgICAgIGxpbmtfYWxsX2Rl
cGxpYnM9eWVzCiAKICAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0JY2FzZSAkaG9z
dF9vcyBpbiBhaXg0LjAxMnxhaXg0LjAxMi4qKQorCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC5bMDEy
XXxhaXg0LlswMTJdLiopCiAJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFu
ZCBsb3dlciwgdGhlIGNoZWNrCiAJIyBiZWxvdyBmb3IgYnJva2VuIGNvbGxlY3QyIGRvZXNuJ3Qg
d29yayB1bmRlciA0LjMrCiAJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5hbWU9
Y29sbGVjdDJgCkBAIC02NTc5LDYgKzY3NDUsOSBAQAogCSAgZmkKIAllc2FjCiAJc2hhcmVkX2Zs
YWc9Jy1zaGFyZWQnCisJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0
aGVuCisJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKwlmaQogICAgICAg
ZWxzZQogCSMgbm90IHVzaW5nIGdjYwogCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVu
CkBAIC02Nzk4LDcgKzY5NjcsNyBAQAogICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nc2VkIC1l
ICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwiIDwgJGV4cG9y
dF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX4kQ0Mg
LWR5bmFtaWNsaWIgJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp
YnMgJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgJHJwYXRoLyRzb25hbWUgJHZlcnN0cmlu
Z35ubWVkaXQgLXMgJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xp
Yn0nCiAgICAgICBtb2R1bGVfZXhwc3ltX2NtZHM9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsg
ICAgXSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRf
b2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRfZmxh
ZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5tZWRp
dCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAg
ICBlbHNlCi0gICAgICBjYXNlICIkY2NfYmFzZW5hbWUiIGluCisgICAgICBjYXNlICRjY19iYXNl
bmFtZSBpbgogICAgICAgICB4bGMqKQogICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9
J2VjaG8nCiAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtcW1rc2hyb2JqICRhbGxvd191bmRl
ZmluZWRfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds
fS1pbnN0YWxsX25hbWUgJHt3bH1gZWNobyAkcnBhdGgvJHNvbmFtZWAgJHZlcnN0cmluZycKQEAg
LTY4NDQsNyArNzAxMyw3IEBACiAgICAgICA7OwogCiAgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0
ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotICAgIGZyZWVic2Qq
IHwga2ZyZWVic2QqLWdudSkKKyAgICBmcmVlYnNkKiB8IGtmcmVlYnNkKi1nbnUgfCBkcmFnb25m
bHkqKQogICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAtbyAkbGliICRsaWJvYmpzICRk
ZXBsaWJzICRjb21waWxlcl9mbGFncycKICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9
Jy1SJGxpYmRpcicKICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKQEAgLTcwMDEsNyArNzE3MCw3
IEBACiAJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCiAJYXJj
aGl2ZV9jbWRzPSckTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRsaWJvYmpzICRk
ZXBsaWJzICRsaW5rZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVy
c3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5
ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCiAJYXJjaGl2ZV9leHBzeW1f
Y21kcz0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxu
IiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBlY2hvICItaGlkZGVu
Ij4+ICRsaWIuZXhwfgotCSRMRCAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWlucHV0
ICRsaWIuZXhwICRsaW5rZXJfZmxhZ3MgJGxpYm9ianMgJGRlcGxpYnMgLXNvbmFtZSAkc29uYW1l
IGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAt
dXBkYXRlX3JlZ2lzdHJ5ICR7b2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5l
eHAnCisJJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAg
JGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4g
IiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVn
aXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYn4kcm0gJGxpYi5leHAn
CiAKIAkjIEJvdGggYyBhbmQgY3h4IGNvbXBpbGVyIHN1cHBvcnQgLXJwYXRoIGRpcmVjdGx5CiAJ
aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLXJwYXRoICRsaWJkaXInCkBAIC03MDIwLDEwICs3
MTg5LDEyIEBACiAgICAgc29sYXJpcyopCiAgICAgICBub191bmRlZmluZWRfZmxhZz0nIC16IHRl
eHQnCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgorCXdsYXJjPScke3dsfScKIAlh
cmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxp
Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwogCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRl
Y2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUg
InMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu
ZXhwfgogCSAgJENDIC1zaGFyZWQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0k
c29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRybSAkbGli
LmV4cCcKICAgICAgIGVsc2UKKwl3bGFyYz0nJwogCWFyY2hpdmVfY21kcz0nJExEIC1HJHthbGxv
d191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRs
aW5rZXJfZmxhZ3MnCiAJYXJjaGl2ZV9leHBzeW1fY21kcz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAk
bGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4g
JGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CiAgIAkkTEQgLUcke2Fs
bG93X3VuZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9i
anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc34kcm0gJGxpYi5leHAnCkBAIC03MDMyLDggKzcyMDMs
MTggQEAKICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KICAgICAgIGNhc2UgJGhvc3Rf
b3MgaW4KICAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSAgICAg
ICopICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8pCi0Jd2hvbGVf
YXJjaGl2ZV9mbGFnX3NwZWM9Jy16IGFsbGV4dHJhY3QkY29udmVuaWVuY2UgLXogZGVmYXVsdGV4
dHJhY3QnIDs7CisgICAgICAqKQorIAkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5l
IGxpbmtlciBvcHRpb25zIHNvIHdlCisgCSMgY2Fubm90IGp1c3QgcGFzcyB0aGUgY29udmllbmNl
IGxpYnJhcnkgbmFtZXMgdGhyb3VnaAorIAkjIHdpdGhvdXQgJHdsLCBpZmYgd2UgZG8gbm90IGxp
bmsgd2l0aCAkTEQuCisgCSMgTHVja2lseSwgZ2NjIHN1cHBvcnRzIHRoZSBzYW1lIHN5bnRheCB3
ZSBuZWVkIGZvciBTdW4gU3R1ZGlvLgorIAkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAo
bWF5YmUgMi41LjE/KQorIAljYXNlICR3bGFyYyBpbgorIAknJykKKyAJICB3aG9sZV9hcmNoaXZl
X2ZsYWdfc3BlYz0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcg
OzsKKyAJKikKKyAJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nJHt3bH0teiAke3dsfWFsbGV4
dHJhY3RgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAtbiBcIiRjb252XCIg
JiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNo
byBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JyA7Owor
IAllc2FjIDs7CiAgICAgICBlc2FjCiAgICAgICBsaW5rX2FsbF9kZXBsaWJzPXllcwogICAgICAg
OzsKQEAgLTczNjUsMTEgKzc1NDYsMzUgQEAKICAgICAgIDs7CiAgICAgcHczMiopCiAgICAgICAj
IHB3MzIgRExMcyB1c2UgJ3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSAgICAgIGxpYnJh
cnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVj
aG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvLi8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4
dH0nCisgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUg
J3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy
c3VmZml4fSR7c2hhcmVkX2V4dH0nCiAgICAgICA7OwogICAgIGVzYWMKICAgICA7OwogCisgIGxp
bnV4KikKKyAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBlZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0
czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCisgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hh
cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv
bmFtZSAtbyAkbGliJworICAgICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCisgICAgICBj
YXNlIGAkTEQgLXYgMj4vZGV2L251bGxgIGluCisgICAgICAgICpcIDAxLiogfCAqXCAyLlswLTld
LiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCisgICAgICAgICpcIDIu
MTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4u
CisgICAgICAgICpcIDIuMTEuOTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXll
cyA7OyAjIE1hbmRyYWtlIDguMiAuLi4KKyAgICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIu
MTEgdmVyc2lvbnMKKyAgICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7Owor
ICAgICAgZXNhYworICAgICAgaWYgdGVzdCAkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nID0geWVz
OyB0aGVuCisgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGdsb2JhbDoiID4g
JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAt
ZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorJGVjaG8g
ImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorICAgICAgICAk
Q0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l
ICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGli
bmFtZS52ZXIgLW8gJGxpYicKKyAgICAgIGVsc2UKKyAgICAgICAgJGFyY2hpdmVfZXhwc3ltX2Nt
ZHM9IiRhcmNoaXZlX2NtZHMiCisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIGxkX3NobGlicz1u
bworICAgIGZpCisgICAgOzsKKwogICAqKQogICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu
YW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7
c2hhcmVkX2V4dH0gJGxpYm5hbWUubGliJwogICAgIDs7CkBAIC03NDIzLDcgKzc2MjgsOSBAQAog
ICBkeW5hbWljX2xpbmtlcj0nR05VIGxkLnNvJwogICA7OwogCi1mcmVlYnNkKikKK2ZyZWVic2Qq
IHwgZHJhZ29uZmx5KikKKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9p
ZiB0aGV5IGltcGxlbWVudCBhIG5ldworICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1c3Qg
dGhpcy4KICAgb2JqZm9ybWF0PWB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdCAmJiAvdXNyL2Jp
bi9vYmpmb3JtYXQgfHwgZWNobyBhb3V0YAogICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9y
bWF0CiAgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgpAQCAtNzQ0Miw3ICs3NjQ5LDcgQEAKICAgZnJl
ZWJzZDIqKQogICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKICAgICA7OwotICBm
cmVlYnNkMy4wMSogfCBmcmVlYnNkZWxmMy4wMSopCisgIGZyZWVic2QzLlswMV0qIHwgZnJlZWJz
ZGVsZjMuWzAxXSopCiAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwogICAgIGhh
cmRjb2RlX2ludG9fbGlicz15ZXMKICAgICA7OwpAQCAtNzU2OCwxMCArNzc3NSwxNyBAQAogCiAg
ICMgQXBwZW5kIGxkLnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCiAgIGlmIHRl
c3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0gICAgbHRfbGRfZXh0cmE9YCRTRUQgLWUgJ3Mv
OixcdC8gL2c7cy89Xj0qJC8vO3MvPV49ICogLyAvZycgL2V0Yy9sZC5zby5jb25mIHwgdHIgJ1xu
JyAnICdgCisgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50
ZigiY2QgL2V0YzsgY2F0ICVzIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmlu
dCBcJDA7IHNraXAgPSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87
cy9bOiwJXS8gL2c7cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAn
ICdgCiAgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgJGx0X2xk
X2V4dHJhIgogICBmaQogCisgIGNhc2UgJGhvc3RfY3B1OiRsdF9jdl9jY182NGJpdF9vdXRwdXQg
aW4KKyAgcG93ZXJwYzY0OnllcyB8IHMzOTB4OnllcyB8IHNwYXJjNjQ6eWVzIHwgeDg2XzY0Onll
cykKKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGliNjQgL3Vz
ci9YMTFSNi9saWI2NCIKKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNy
L2xpYjY0IC91c3IvbG9jYWwvbGliNjQgL3Vzci9YMTFSNi9saWI2NCIKKyAgICA7OworICBlc2Fj
CisKICAgIyBXZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFy
ZWQgbGlicmFyaWVzIG9uCiAgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9y
dGVkIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB0aGUKICAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBT
aW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCkBAIC03NTc5LDYgKzc3
OTMsMzAgQEAKICAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVz
dCB3YXMgcmVtb3ZlZCwgYW5kIHdlCiAgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBs
aW5rZXIgaXMgaW4gdXNlLgogICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworCisg
ICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZyAobXVsdGlsaWIgTGludXggeDg2XzY0
IGhhY2spLgorICBsaWJzdWZmPQorICBjYXNlICIkaG9zdF9jcHUiIGluCisgIHg4Nl82NCopCisg
ICAgZWNobyAnI2xpbmUgNzgwMSAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CisgICAg
aWYgeyAoZXZhbCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1Cisg
IChldmFsICRhY19jb21waWxlKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6
JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0
aGVuCisgICAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisg
ICAgICAqNjQtYml0KikKKyAgICAgICAgbGlic3VmZj02NAorICAgICAgICA7OworICAgICAgZXNh
YworICAgIGZpCisgICAgcm0gLXJmIGNvbmZ0ZXN0KgorICAgIDs7CisgICopCisgICAgOzsKKyAg
ZXNhYworICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiR7bGlic3VmZn0gL3Vzci9s
aWIke2xpYnN1ZmZ9IgorICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIke2xpYnN1ZmZ9
IC91c3IvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCiAgIDs7CiAKIGtu
ZXRic2QqLWdudSkKQEAgLTc2MzEsNyArNzg2OSwxMSBAQAogb3BlbmJzZCopCiAgIHZlcnNpb25f
dHlwZT1zdW5vcwogICBuZWVkX2xpYl9wcmVmaXg9bm8KLSAgbmVlZF92ZXJzaW9uPW5vCisgICMg
U29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2
ZXJzaW9uZWQgbGlicy4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG9wZW5ic2QzLjMgfCBvcGVu
YnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMgOzsKKyAgICAqKSAgICAgICAgICAgICAgICAgICAg
ICAgICBuZWVkX3ZlcnNpb249bm8gIDs7CisgIGVzYWMKICAgbGlicmFyeV9uYW1lc19zcGVjPSck
e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3No
YXJlZF9leHR9JHZlcnN1ZmZpeCcKICAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIg
bGRjb25maWcgLW0gJGxpYmRpcicKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKQEAg
LTg0MjAsNyArODY2Miw3IEBACiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBs
dF9kbG5lZWRfdXNjb3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4gY29u
ZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgODQyMyAiY29uZmlndXJlIgorI2xpbmUgODY2NSAi
Y29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAg
LTg1MTgsNyArODc2MCw3IEBACiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBs
dF9kbG5lZWRfdXNjb3JlPTIKICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4gY29u
ZnRlc3QuJGFjX2V4dCA8PEVPRgotI2xpbmUgODUyMSAiY29uZmlndXJlIgorI2xpbmUgODc2MyAi
Y29uZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAg
LTg3NzYsNyArOTAxOCw3IEBACiAjCiAjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiAjIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0jIEZvdW5kYXRpb24sIElu
Yy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMzMCwgQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBV
U0EuCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
IEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogIwogIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9u
IHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91CiAjIGRpc3RyaWJ1dGUg
dGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQpAQCAtODc4Nyw3
ICs5MDI5LDcgQEAKIFNFRD0kbHRfU0VECiAKICMgU2VkIHRoYXQgaGVscHMgdXMgYXZvaWQgYWNj
aWRlbnRhbGx5IHRyaWdnZXJpbmcgZWNobygxKSBvcHRpb25zIGxpa2UgLW4uCi1Yc2VkPSIkU0VE
IC1lIHMvXlgvLyIKK1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyIKIAogIyBUaGUgSFAtVVgga3NoIGFu
ZCBQT1NJWCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKICMgaWYg
Q0RQQVRIIGlzIHNldC4KQEAgLTg4MjEsNyArOTA2MywxMyBAQAogIyBUaGUgaG9zdCBzeXN0ZW0u
CiBob3N0X2FsaWFzPSRob3N0X2FsaWFzCiBob3N0PSRob3N0Citob3N0X29zPSRob3N0X29zCiAK
KyMgVGhlIGJ1aWxkIHN5c3RlbS4KK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworYnVpbGQ9JGJ1
aWxkCitidWlsZF9vcz0kYnVpbGRfb3MKKwogIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5v
dCBpbnRlcnByZXQgYmFja3NsYXNoZXMuCiBlY2hvPSRsdF9lY2hvCiAKQEAgLTg4OTcsNyArOTE0
NSw3IEBACiAjIERvZXMgY29tcGlsZXIgc2ltdWx0YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8g
b3B0aW9ucz8KIGNvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX28KIAotIyBN
dXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbiA/CisjIE11c3Qgd2UgbG9j
ayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwogbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2Nr
cwogCiAjIERvIHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CkBAIC05MTkyLDcg
Kzk0NDAsOSBAQAogCiAgICAgICBjYXNlICR0YWduYW1lIGluCiAgICAgICBDWFgpCi0JaWYgdGVz
dCAtbiAiJENYWCIgJiYgdGVzdCAiWCRDWFgiICE9ICJYbm8iOyB0aGVuCisJaWYgdGVzdCAtbiAi
JENYWCIgJiYgKCB0ZXN0ICJYJENYWCIgIT0gIlhubyIgJiYKKwkgICAgKCAodGVzdCAiWCRDWFgi
ID0gIlhnKysiICYmIGBnKysgLXYgPi9kZXYvbnVsbCAyPiYxYCApIHx8CisJICAgICh0ZXN0ICJY
JENYWCIgIT0gIlhnKysiKSkpIDsgdGhlbgogCSAgYWNfZXh0PWNjCiBhY19jcHA9JyRDWFhDUFAg
JENQUEZMQUdTJwogYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0
ZXN0LiRhY19leHQgPiY1JwpAQCAtOTI1MCw2ICs5NTAwLDIwIEBACiBjb21waWxlcj0kQ0MKIAog
CisjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQorYWNfb3V0
ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CitwcmludGYgIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0
X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CitldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+L2Rldi9u
dWxsIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5lcnIKK19sdF9jb21waWxlcl9ib2lsZXJwbGF0
ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyRybSBjb25mdGVzdCoKKworYWNfb3V0ZmlsZT1jb25mdGVz
dC4kYWNfb2JqZXh0CitwcmludGYgIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5jb25mdGVz
dC4kYWNfZXh0CitldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Qn
ID5jb25mdGVzdC5lcnIKK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJg
Ciskcm0gY29uZnRlc3QqCisKKwogIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRo
IGFyZ3VtZW50cy4KIGx0X3NhdmVfQ0M9JENDCiBsdF9zYXZlX0xEPSRMRApAQCAtOTI3MSw4ICs5
NTM1LDE3IEBACiBDQz0ke0NYWC0iYysrIn0KIGNvbXBpbGVyPSRDQwogY29tcGlsZXJfQ1hYPSRD
QwotY2NfYmFzZW5hbWU9YCRlY2hvIFgiJGNvbXBpbGVyIiB8ICRYc2VkIC1lICdzJV4uKi8lJSdg
Citmb3IgY2NfdGVtcCBpbiAkY29tcGlsZXIiIjsgZG8KKyAgY2FzZSAkY2NfdGVtcCBpbgorICAg
IGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkgOzsKKyAg
ICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7OworICAg
IFwtKikgOzsKKyAgICAqKSBicmVhazs7CisgIGVzYWMKK2RvbmUKK2NjX2Jhc2VuYW1lPWAkZWNo
byAiWCRjY190ZW1wIiB8ICRYc2VkIC1lICdzJS4qLyUlJyAtZSAicyVeJGhvc3RfYWxpYXMtJSUi
YAogCisKICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3ZW4gY29tcGlsaW5nIEMrKyBj
b2RlLCBzbyBzZXQgdGhlCiAjIG5vX2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5CiBpZiB0ZXN0ICIk
R1hYIiA9IHllczsgdGhlbgpAQCAtOTQ4NSw3ICs5NzU4LDcgQEAKICAgICBsaW5rX2FsbF9kZXBs
aWJzX0NYWD15ZXMKIAogICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0gICAgICBjYXNl
ICRob3N0X29zIGluIGFpeDQuMDEyfGFpeDQuMDEyLiopCisgICAgICBjYXNlICRob3N0X29zIGlu
IGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQogICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhp
cyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhlIGNoZWNrCiAgICAgICAjIGJlbG93IGZvciBicm9r
ZW4gY29sbGVjdDIgZG9lc24ndCB3b3JrIHVuZGVyIDQuMysKIAljb2xsZWN0Mm5hbWU9YCR7Q0N9
IC1wcmludC1wcm9nLW5hbWU9Y29sbGVjdDJgCkBAIC05NTA2LDYgKzk3NzksOSBAQAogCWZpCiAg
ICAgICBlc2FjCiAgICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKKyAgICAgIGlmIHRlc3QgIiRh
aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgorCXNoYXJlZF9mbGFnPSIkc2hhcmVk
X2ZsYWcgIicke3dsfS1HJworICAgICAgZmkKICAgICBlbHNlCiAgICAgICAjIG5vdCB1c2luZyBn
Y2MKICAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCkBAIC05NzM4LDcgKzEw
MDE0LDcgQEAKICAgICAgICAgICBmaQogICAgICAgICAgICAgbW9kdWxlX2V4cHN5bV9jbWRzX0NY
WD0nc2VkIC1lICJzLCMuKiwsIiAtZSAicyxeWyAgICBdKiwsIiAtZSAicyxeXCguLipcKSxfJiwi
IDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4
cHN5bX4kQ0MgJGFsbG93X3VuZGVmaW5lZF9mbGFnICAtbyAkbGliIC1idW5kbGUgJGxpYm9ianMg
JGRlcGxpYnMkY29tcGlsZXJfZmxhZ3N+bm1lZGl0IC1zICRvdXRwdXRfb2JqZGlyLyR7bGlibmFt
ZX0tc3ltYm9scy5leHBzeW0gJHtsaWJ9JwogICAgICAgZWxzZQotICAgICAgY2FzZSAiJGNjX2Jh
c2VuYW1lIiBpbgorICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KICAgICAgICAgeGxjKikKICAg
ICAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSdlY2hvJwogICAgICAgICAgIGFyY2hpdmVf
Y21kc19DWFg9JyRDQyAtcW1rc2hyb2JqICR7d2x9LXNpbmdsZV9tb2R1bGUgJGFsbG93X3VuZGVm
aW5lZF9mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9
LWluc3RhbGxfbmFtZSAke3dsfWBlY2hvICRycGF0aC8kc29uYW1lYCAkdmVyc3RyaW5nJwpAQCAt
OTc1NiwxMSArMTAwMzIsMTEgQEAKIAogICBkZ3V4KikKICAgICBjYXNlICRjY19iYXNlbmFtZSBp
bgotICAgICAgZWMrKykKKyAgICAgIGVjKysqKQogCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr
IGxpYnJhcnkgc3VwcG9ydAogCWxkX3NobGlic19DWFg9bm8KIAk7OwotICAgICAgZ2hjeCkKKyAg
ICAgIGdoY3gqKQogCSMgR3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCiAJIyBGSVhNRTogaW5zZXJ0
IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CiAJbGRfc2hsaWJzX0NYWD1ubwpAQCAtOTc3MSwx
NCArMTAwNDcsMTQgQEAKIAk7OwogICAgIGVzYWMKICAgICA7OwotICBmcmVlYnNkMTIqKQorICBm
cmVlYnNkWzEyXSopCiAgICAgIyBDKysgc2hhcmVkIGxpYnJhcmllcyByZXBvcnRlZCB0byBiZSBm
YWlybHkgYnJva2VuIGJlZm9yZSBzd2l0Y2ggdG8gRUxGCiAgICAgbGRfc2hsaWJzX0NYWD1ubwog
ICAgIDs7CiAgIGZyZWVic2QtZWxmKikKICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8K
ICAgICA7OwotICBmcmVlYnNkKiB8IGtmcmVlYnNkKi1nbnUpCisgIGZyZWVic2QqIHwga2ZyZWVi
c2QqLWdudSB8IGRyYWdvbmZseSopCiAgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVyIHVzZSBHTlUg
QysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKICAgICAjIGNvbnZlbnRpb25zCiAgICAg
bGRfc2hsaWJzX0NYWD15ZXMKQEAgLTk3OTUsMTEgKzEwMDcxLDExIEBACiAJCQkJIyBsb2NhdGlv
biBvZiB0aGUgbGlicmFyeS4KIAogICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0gICAgQ0MpCisg
ICAgQ0MqKQogICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0
CiAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCiAgICAgICA7OwotICAgIGFDQykKKyAgICBhQ0MqKQog
ICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJHJtICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1i
ICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAk
cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls
ZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0
X29iamRpci8kc29uYW1lICRsaWInCiAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIg
cHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCiAgICAgICAjIHdoYXQgImhpZGRlbiIg
bGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KQEAgLTk4MDks
NyArMTAwODUsNyBAQAogICAgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBm
aWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNv
IHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKICAgICAgICMgZGVw
ZW5kZW5jaWVzLgotICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAoJEND
IC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIi1MImA7IGxpc3Q9
IiI7IGZvciB6IGluICR0ZW1wbGlzdDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBs
aXN0PSIkbGlzdCAkeiI7OyAqLiRvYmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBk
b25lOyBlY2hvICRsaXN0JworICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0
PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxKSB8IGdyZXAgIlstXUwi
YDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRv
YmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7
O2VzYWM7IGRvbmU7IGVjaG8gJGxpc3QnCiAgICAgICA7OwogICAgICopCiAgICAgICBpZiB0ZXN0
ICIkR1hYIiA9IHllczsgdGhlbgpAQCAtOTg2MCwxMSArMTAxMzYsMTEgQEAKICAgICBlc2FjCiAK
ICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotICAgICAgQ0MpCisgICAgICBDQyopCiAJIyBGSVhN
RTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CiAJbGRfc2hsaWJzX0NYWD1ubwog
CTs7Ci0gICAgICBhQ0MpCisgICAgICBhQ0MqKQogCWNhc2UgIiRob3N0X2NwdSIgaW4KIAlocHBh
KjY0KnxpYTY0KikKIAkgIGFyY2hpdmVfY21kc19DWFg9JyRMRCAtYiAraCAkc29uYW1lIC1vICRs
aWIgJGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicycKQEAgLTk5MDQsOSArMTAxODAsOSBA
QAogICAgIDs7CiAgIGlyaXg1KiB8IGlyaXg2KikKICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot
ICAgICAgQ0MpCisgICAgICBDQyopCiAJIyBTR0kgQysrCi0JYXJjaGl2ZV9jbWRzX0NYWD0nJEND
IC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz
ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAt
biAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9y
ZWdpc3RyeSAke29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzX0NY
WD0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk
ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBg
dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVw
ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCiAJ
IyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVz
aW5nCiAJIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBDKysgY29tcGlsZXIuICBU
aGlzIGlzCkBAIC05OTE3LDcgKzEwMTkzLDcgQEAKICAgICAgICopCiAJaWYgdGVzdCAiJEdYWCIg
PSB5ZXM7IHRoZW4KIAkgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotCSAgICBh
cmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRs
aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv
bmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0
X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke29i
amRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCisJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt
c2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3Rk
ZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVz
dCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJp
bmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp
b25zIC1vICRsaWInCiAJICBlbHNlCiAJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk
IC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq
ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAi
JHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgIC1v
ICRsaWInCiAJICBmaQpAQCAtOTkzMCw3ICsxMDIwNiw3IEBACiAgICAgOzsKICAgbGludXgqKQog
ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0gICAgICBLQ0MpCisgICAgICBLQ0MqKQogCSMgS3Vj
ayBhbmQgQXNzb2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKIAogCSMgS0NDIHdpbGwg
b25seSBjcmVhdGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKQEAgLTk5NTUs
NyArMTAyMzEsNyBAQAogCSMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMr
KyBjb21waWxlci4KIAlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRs
aWIgJG9sZG9ianMnCiAJOzsKLSAgICAgIGljcGMpCisgICAgICBpY3BjKikKIAkjIEludGVsIEMr
KwogCXdpdGhfZ251X2xkPXllcwogCSMgdmVyc2lvbiA4LjAgYW5kIGFib3ZlIG9mIGljcGMgY2hv
a2Ugb24gbXVsdGlwbHkgZGVmaW5lZCBzeW1ib2xzCkBAIC05OTY3LDggKzEwMjQzLDEyIEBACiAg
IAkgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcHJlZGVwX29iamVjdHMg
JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t
c29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5
bWJvbHMgLW8gJGxpYicKIAkgIDs7CiAJKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKLSAgCSAg
YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy
X2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0gIAlhcmNoaXZlX2V4cHN5
bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz
ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4
cG9ydF9zeW1ib2xzIC1vICRsaWInCisJICB0bXBfaWR5bj0KKwkgIGNhc2UgJGhvc3RfY3B1IGlu
CisJICAgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKKwkgIGVzYWMKKyAgCSAgYXJj
aGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJz
ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworCSAgYXJj
aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAk
ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0
YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKIAkgIDs7CiAJZXNh
YwogCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwpAQCAtOTk3Niw3ICsxMDI1NiwxNiBAQAog
CWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKIAl3
aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmll
bmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwogCTs7Ci0gICAgICBjeHgpCisgICAgICBwZ0ND
KikKKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKKwlhcmNoaXZlX2NtZHNf
Q1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs
aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRz
b25hbWUgLW8gJGxpYicKKyAgCWFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAk
cGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVj
dHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgJHt3bH0tcmV0YWlu
LXN5bWJvbHMtZmlsZSAke3dsfSRleHBvcnRfc3ltYm9scyAtbyAkbGliJworCisJaGFyZGNvZGVf
bGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1ycGF0aCAke3dsfSRsaWJkaXInCisJZXhwb3J0
X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJworCXdob2xlX2Fy
Y2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUsYGZvciBjb252IGluICRj
b252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9
XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7ICRlY2hvIFwiJG5ld19jb252ZW5pZW5j
ZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKKyAgICAgICAgOzsKKyAgICAgIGN4eCopCiAJ
IyBDb21wYXEgQysrCiAJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmpl
Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7
d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCiAJYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9
JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v
YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAk
e3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKQEAgLTEwMDA3LDcg
KzEwMjk2LDcgQEAKICAgICA7OwogICBtdnMqKQogICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0g
ICAgICBjeHgpCisgICAgICBjeHgqKQogCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh
cnkgc3VwcG9ydAogCWxkX3NobGlic19DWFg9bm8KIAk7OwpAQCAtMTAwMzMsNiArMTAzMjIsOCBA
QAogICAgIGxkX3NobGlic19DWFg9bm8KICAgICA7OwogICBvcGVuYnNkKikKKyAgICBoYXJkY29k
ZV9kaXJlY3RfQ1hYPXllcworICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCiAgICAg
YXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAk
bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGli
JwogICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGly
JwogICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZf
X2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsg
dGhlbgpAQCAtMTAwNDQsNyArMTAzMzUsNyBAQAogICAgIDs7CiAgIG9zZjMqKQogICAgIGNhc2Ug
JGNjX2Jhc2VuYW1lIGluCi0gICAgICBLQ0MpCisgICAgICBLQ0MqKQogCSMgS3VjayBhbmQgQXNz
b2NpYXRlcywgSW5jLiAoS0FJKSBDKysgQ29tcGlsZXIKIAogCSMgS0NDIHdpbGwgb25seSBjcmVh
dGUgYSBzaGFyZWQgbGlicmFyeSBpZiB0aGUgb3V0cHV0IGZpbGUKQEAgLTEwMDYwLDE0ICsxMDM1
MSwxNCBAQAogCW9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLUJzdGF0aWMgLW8gJG9sZGxpYiAk
b2xkb2JqcycKIAogCTs7Ci0gICAgICBSQ0MpCisgICAgICBSQ0MqKQogCSMgUmF0aW9uYWwgQysr
IDIuNC4xCiAJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CiAJbGRf
c2hsaWJzX0NYWD1ubwogCTs7Ci0gICAgICBjeHgpCisgICAgICBjeHgqKQogCWFsbG93X3VuZGVm
aW5lZF9mbGFnX0NYWD0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0JYXJjaGl2
ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29i
amVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3Mg
JHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0t
c2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke29iamRpcn0vc29fbG9j
YXRpb25zIC1vICRsaWInCisJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3Vu
ZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf
b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2
ZXJzdHJpbmciICYmIGVjaG8gJHt3bH0tc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9y
ZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCiAJaGFyZGNv
ZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKIAloYXJk
Y29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CkBAIC0xMDA4NSw3ICsxMDM3Niw3IEBACiAgICAg
ICAqKQogCWlmIHRlc3QgIiRHWFgiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsg
dGhlbgogCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPScgJHt3bH0tZXhwZWN0X3VucmVzb2x2
ZWQgJHt3bH1cKicKLQkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk
e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg
JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt
ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2
ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b2JqZGlyfS9zb19sb2NhdGlv
bnMgLW8gJGxpYicKKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAk
e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg
JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFt
ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2
ZXJzdHJpbmdgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29f
bG9jYXRpb25zIC1vICRsaWInCiAKIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPSck
e3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCiAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY
WD06CkBAIC0xMDEwNCw3ICsxMDM5NSw3IEBACiAgICAgOzsKICAgb3NmNCogfCBvc2Y1KikKICAg
ICBjYXNlICRjY19iYXNlbmFtZSBpbgotICAgICAgS0NDKQorICAgICAgS0NDKikKIAkjIEt1Y2sg
YW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCiAKIAkjIEtDQyB3aWxsIG9u
bHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCkBAIC0xMDExOSwx
NyArMTA0MTAsMTcgQEAKIAkjIHRoZSBLQUkgQysrIGNvbXBpbGVyLgogCW9sZF9hcmNoaXZlX2Nt
ZHNfQ1hYPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2JqcycKIAk7OwotICAgICAgUkNDKQorICAgICAg
UkNDKikKIAkjIFJhdGlvbmFsIEMrKyAyLjQuMQogCSMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr
IGxpYnJhcnkgc3VwcG9ydAogCWxkX3NobGlic19DWFg9bm8KIAk7OwotICAgICAgY3h4KQorICAg
ICAgY3h4KikKIAlhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JyAtZXhwZWN0X3VucmVzb2x2ZWQg
XConCi0JYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFn
fSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29t
cGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAm
JiBlY2hvIC1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b2JqZGly
fS9zb19sb2NhdGlvbnMgLW8gJGxpYicKKwlhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCR7
YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAk
cG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgYHRl
c3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRh
dGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKIAlhcmNo
aXZlX2V4cHN5bV9jbWRzX0NYWD0nZm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBw
cmludGYgIiVzICVzXFxuIiAtZXhwb3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25l
fgogCSAgZWNobyAiLWhpZGRlbiI+PiAkbGliLmV4cH4KLQkgICRDQyAtc2hhcmVkJGFsbG93X3Vu
ZGVmaW5lZF9mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v
YmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1lICRzb25hbWUgLVdsLC1pbnB1dCAt
V2wsJGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBlY2hvIC1zZXRfdmVyc2lvbgkk
dmVyc3RyaW5nYCAtdXBkYXRlX3JlZ2lzdHJ5ICRvYmpkaXIvc29fbG9jYXRpb25zIC1vICRsaWJ+
CisJICAkQ0MgLXNoYXJlZCRhbGxvd191bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxp
Ym9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNv
bmFtZSAkc29uYW1lIC1XbCwtaW5wdXQgLVdsLCRsaWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmlu
ZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24JJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291
dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifgogCSAgJHJtICRsaWIuZXhwJwogCiAJ
aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9Jy1ycGF0aCAkbGliZGlyJwpAQCAtMTAxNDgs
NyArMTA0MzksNyBAQAogICAgICAgKikKIAlpZiB0ZXN0ICIkR1hYIiA9IHllcyAmJiB0ZXN0ICIk
d2l0aF9nbnVfbGQiID0gbm87IHRoZW4KIAkgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NYWD0nICR7
d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0JIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt
c2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMg
JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0t
bXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBl
Y2hvICR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZ2AgJHt3bH0tdXBkYXRlX3JlZ2lz
dHJ5ICR7d2x9JHtvYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJworCSBhcmNoaXZlX2NtZHNf
Q1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRl
cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs
YWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0
cmluZyIgJiYgZWNobyAke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmdgICR7d2x9LXVw
ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn
CiAKIAkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRs
aWJkaXInCiAJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06CkBAIC0xMDE3Miw3ICsx
MDQ2Myw3IEBACiAgIHNjbyopCiAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCiAgICAg
Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSAgICAgIENDKQorICAgICAgQ0MqKQogCSMgRklYTUU6IGlu
c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAogCWxkX3NobGlic19DWFg9bm8KIAk7OwpA
QCAtMTAxODQsMTIgKzEwNDc1LDEyIEBACiAgICAgOzsKICAgc3Vub3M0KikKICAgICBjYXNlICRj
Y19iYXNlbmFtZSBpbgotICAgICAgQ0MpCisgICAgICBDQyopCiAJIyBTdW4gQysrIDQueAogCSMg
RklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAogCWxkX3NobGlic19DWFg9
bm8KIAk7OwotICAgICAgbGNjKQorICAgICAgbGNjKikKIAkjIEx1Y2lkCiAJIyBGSVhNRTogaW5z
ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0CiAJbGRfc2hsaWJzX0NYWD1ubwpAQCAtMTAy
MDIsNyArMTA0OTMsNyBAQAogICAgIDs7CiAgIHNvbGFyaXMqKQogICAgIGNhc2UgJGNjX2Jhc2Vu
YW1lIGluCi0gICAgICBDQykKKyAgICAgIENDKikKIAkjIFN1biBDKysgNC4yLCA1LnggYW5kIENl
bnRlcmxpbmUgQysrCiAJbm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScgLXpkZWZzJwogCWFyY2hpdmVf
Y21kc19DWFg9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1ub2xpYiAtaCRzb25hbWUg
LW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0
cyAkY29tcGlsZXJfZmxhZ3MnCkBAIC0xMDIxMiwxMyArMTA1MDMsMTcgQEAKIAloYXJkY29kZV9s
aWJkaXJfZmxhZ19zcGVjX0NYWD0nLVIkbGliZGlyJwogCWhhcmRjb2RlX3NobGlicGF0aF92YXJf
Q1hYPW5vCiAJY2FzZSAkaG9zdF9vcyBpbgotCSAgc29sYXJpczIuMC01IHwgc29sYXJpczIuMC01
LiopIDs7CisJICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7CiAJICAqKQog
CSAgICAjIFRoZSBDKysgY29tcGlsZXIgaXMgdXNlZCBhcyBsaW5rZXIgc28gd2UgbXVzdCB1c2Ug
JHdsCiAJICAgICMgZmxhZyB0byBwYXNzIHRoZSBjb21tYW5kcyB0byB0aGUgdW5kZXJseWluZyBz
eXN0ZW0KLQkgICAgIyBsaW5rZXIuCisJICAgICMgbGlua2VyLiBXZSBtdXN0IGFsc28gcGFzcyBl
YWNoIGNvbnZpZW5jZSBsaWJyYXJ5IHRocm91Z2gKKwkgICAgIyB0byB0aGUgc3lzdGVtIGxpbmtl
ciBiZXR3ZWVuIGFsbGV4dHJhY3QvZGVmYXVsdGV4dHJhY3QuCisJICAgICMgVGhlIEMrKyBjb21w
aWxlciB3aWxsIGNvbWJpbmUgbGlua2VyIG9wdGlvbnMgc28gd2UKKwkgICAgIyBjYW5ub3QganVz
dCBwYXNzIHRoZSBjb252aWVuY2UgbGlicmFyeSBuYW1lcyB0aHJvdWdoCisJICAgICMgd2l0aG91
dCAkd2wuCiAJICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8p
Ci0JICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3bH0teiAke3dsfWFsbGV4dHJh
Y3QkY29udmVuaWVuY2UgJHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JworCSAgICB3aG9sZV9h
cmNoaXZlX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0YGZvciBjb252IGlu
ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5j
ZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmll
bmNlXCJgICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcKIAkgICAgOzsKIAllc2FjCiAJbGlu
a19hbGxfZGVwbGlic19DWFg9eWVzCkBAIC0xMDIzOSw3ICsxMDUzNCw3IEBACiAJIyBpbiB0aGUg
YXJjaGl2ZS4KIAlvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xk
b2JqcycKIAk7OwotICAgICAgZ2N4KQorICAgICAgZ2N4KikKIAkjIEdyZWVuIEhpbGxzIEMrKyBD
b21waWxlcgogCWFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAk
bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1o
ICR3bCRzb25hbWUgLW8gJGxpYicKIApAQCAtMTAyODIsNyArMTA1NzcsNyBAQAogICAgIDs7CiAg
IHRhbmRlbSopCiAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSAgICAgIE5DQykKKyAgICAgIE5D
QyopCiAJIyBOb25TdG9wLVVYIE5DQyAzLjIwCiAJIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysg
bGlicmFyeSBzdXBwb3J0CiAJbGRfc2hsaWJzX0NYWD1ubwpAQCAtMTAzMDksMTAgKzEwNjA0LDYg
QEAKIEdDQ19DWFg9IiRHWFgiCiBMRF9DWFg9IiRMRCIKIAotIyMgQ0FWRUFUIEVNUFRPUjoKLSMj
IFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBk
byBub3QgY2hhbmdlCi0jIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVt
IGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4u
CiAKIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxFT0YKIGNsYXNzIEZvbwpAQCAtMTA0OTUsNyAr
MTA3ODYsNyBAQAogCTs7CiAgICAgICBjaG9ydXMqKQogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0J
Y3hjaDY4KQorCWN4Y2g2OCopCiAJICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgogCSAgIyBf
TFRfQUNfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCBDWFgpPSItLW5vX2F1dG9faW5z
dGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9hYm9ydCAtciAkQ09PTF9ESVIv
bGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRNVk1FX0RJUi9saWIvY2xhc3Np
eC9saWJjeC5zLmEiCiAJICA7OwpAQCAtMTA1MDQsNyArMTA3OTUsNyBAQAogICAgICAgIGRhcndp
biopCiAgICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCiAgICAg
ICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0gICAg
ICAgICBjYXNlICIkY2NfYmFzZW5hbWUiIGluCisgICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBp
bgogICAgICAgICAgICB4bGMqKQogICAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9
Jy1xbm9jb21tb24nCiAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwpA
QCAtMTA1MTMsMTAgKzEwODA0LDEwIEBACiAgICAgICAgOzsKICAgICAgIGRndXgqKQogCWNhc2Ug
JGNjX2Jhc2VuYW1lIGluCi0JICBlYysrKQorCSAgZWMrKyopCiAJICAgIGx0X3Byb2dfY29tcGls
ZXJfcGljX0NYWD0nLUtQSUMnCiAJICAgIDs7Ci0JICBnaGN4KQorCSAgZ2hjeCopCiAJICAgICMg
R3JlZW4gSGlsbHMgQysrIENvbXBpbGVyCiAJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0n
LXBpYycKIAkgICAgOzsKQEAgLTEwNTI0LDE5ICsxMDgxNSwxOSBAQAogCSAgICA7OwogCWVzYWMK
IAk7OwotICAgICAgZnJlZWJzZCogfCBrZnJlZWJzZCotZ251KQorICAgICAgZnJlZWJzZCogfCBr
ZnJlZWJzZCotZ251IHwgZHJhZ29uZmx5KikKIAkjIEZyZWVCU0QgdXNlcyBHTlUgQysrCiAJOzsK
ICAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQogCWNhc2UgJGNjX2Jhc2VuYW1lIGlu
Ci0JICBDQykKKwkgIENDKikKIAkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCiAJ
ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0iJHthY19jdl9wcm9nX2NjX3dsfS1hICR7
YWNfY3ZfcHJvZ19jY193bH1hcmNoaXZlIgogCSAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlh
NjQ7IHRoZW4KIAkgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9JytaJwogCSAgICBmaQog
CSAgICA7OwotCSAgYUNDKQorCSAgYUNDKikKIAkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9
Jy1XbCwnCiAJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0iJHthY19jdl9wcm9nX2Nj
X3dsfS1hICR7YWNfY3ZfcHJvZ19jY193bH1hcmNoaXZlIgogCSAgICBjYXNlICIkaG9zdF9jcHUi
IGluCkBAIC0xMDU1NCw3ICsxMDg0NSw3IEBACiAJOzsKICAgICAgIGlyaXg1KiB8IGlyaXg2KiB8
IG5vbnN0b3B1eCopCiAJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLQkgIENDKQorCSAgQ0MqKQogCSAg
ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKIAkgICAgbHRfcHJvZ19jb21waWxlcl9z
dGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKIAkgICAgIyBDQyBwaWMgZmxhZyAtS1BJQyBpcyB0aGUg
ZGVmYXVsdC4KQEAgLTEwNTY1LDE4ICsxMDg1NiwyNCBAQAogCTs7CiAgICAgICBsaW51eCopCiAJ
Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLQkgIEtDQykKKwkgIEtDQyopCiAJICAgICMgS0FJIEMrKyBD
b21waWxlcgogCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1XbCwnCiAJ
ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCiAJICAgIDs7Ci0JICBpY3BjKQor
CSAgaWNwYyogfCBlY3BjKikKIAkgICAgIyBJbnRlbCBDKysKIAkgICAgbHRfcHJvZ19jb21waWxl
cl93bF9DWFg9Jy1XbCwnCiAJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCiAJ
ICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycKIAkgICAgOzsKLQkgIGN4
eCkKKwkgIHBnQ0MqKQorCSAgICAjIFBvcnRsYW5kIEdyb3VwIEMrKyBjb21waWxlci4KKwkgICAg
bHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwnCisJICAgIGx0X3Byb2dfY29tcGlsZXJfcGlj
X0NYWD0nLWZwaWMnCisJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLXN0YXRpYycK
KwkgICAgOzsKKwkgIGN4eCopCiAJICAgICMgQ29tcGFxIEMrKwogCSAgICAjIE1ha2Ugc3VyZSB0
aGUgUElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCiAJICAgICMg
TGludXggYW5kIENvbXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KQEAgLTEwNTkzLDcg
KzEwODkwLDcgQEAKIAk7OwogICAgICAgbXZzKikKIAljYXNlICRjY19iYXNlbmFtZSBpbgotCSAg
Y3h4KQorCSAgY3h4KikKIAkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctVyBjLGV4cG9y
dGFsbCcKIAkgICAgOzsKIAkgICopCkBAIC0xMDYwNCwxNCArMTA5MDEsMTQgQEAKIAk7OwogICAg
ICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0JICBLQ0Mp
CisJICBLQ0MqKQogCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1XbCwn
CiAJICAgIDs7Ci0JICBSQ0MpCisJICBSQ0MqKQogCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQuMQog
CSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1waWMnCiAJICAgIDs7Ci0JICBjeHgpCisJ
ICBjeHgqKQogCSAgICAjIERpZ2l0YWwvQ29tcGFxIEMrKwogCSAgICBsdF9wcm9nX2NvbXBpbGVy
X3dsX0NYWD0nLVdsLCcKIAkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAg
SXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQpAQCAtMTA2MjcsNyArMTA5MjQsNyBAQAogCTs7CiAg
ICAgICBzY28qKQogCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0JICBDQykKKwkgIENDKikKIAkgICAg
bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZlBJQycKIAkgICAgOzsKIAkgICopCkBAIC0xMDYz
NiwxMyArMTA5MzMsMTMgQEAKIAk7OwogICAgICAgc29sYXJpcyopCiAJY2FzZSAkY2NfYmFzZW5h
bWUgaW4KLQkgIENDKQorCSAgQ0MqKQogCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRl
cmxpbmUgQysrCiAJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLUtQSUMnCiAJICAgIGx0
X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCiAJICAgIGx0X3Byb2dfY29tcGls
ZXJfd2xfQ1hYPSctUW9wdGlvbiBsZCAnCiAJICAgIDs7Ci0JICBnY3gpCisJICBnY3gqKQogCSAg
ICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgogCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19D
WFg9Jy1QSUMnCiAJICAgIDs7CkBAIC0xMDY1MiwxMiArMTA5NDksMTIgQEAKIAk7OwogICAgICAg
c3Vub3M0KikKIAljYXNlICRjY19iYXNlbmFtZSBpbgotCSAgQ0MpCisJICBDQyopCiAJICAgICMg
U3VuIEMrKyA0LngKIAkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJwogCSAgICBs
dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwogCSAgICA7OwotCSAgbGNjKQor
CSAgbGNjKikKIAkgICAgIyBMdWNpZAogCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1w
aWMnCiAJICAgIDs7CkBAIC0xMDY2Nyw3ICsxMDk2NCw3IEBACiAJOzsKICAgICAgIHRhbmRlbSop
CiAJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLQkgIE5DQykKKwkgIE5DQyopCiAJICAgICMgTm9uU3Rv
cC1VWCBOQ0MgMy4yMAogCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwogCSAg
ICA7OwpAQCAtMTA3MTEsMTUgKzExMDA4LDE3IEBACiAgICAtZSAnczouKkZMQUdTfT8gOiYkbHRf
Y29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29t
cGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAg
KGV2YWwgZWNobyAiXCJcJGFzX21lOjEwNzE0OiAkbHRfY29tcGlsZVwiIiA+JjUpCisgICAoZXZh
bCBlY2hvICJcIlwkYXNfbWU6MTEwMTE6ICRsdF9jb21waWxlXCIiID4mNSkKICAgIChldmFsICIk
bHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCiAgICBhY19zdGF0dXM9JD8KICAgIGNhdCBjb25m
dGVzdC5lcnIgPiY1Ci0gICBlY2hvICIkYXNfbWU6MTA3MTg6IFwkPyA9ICRhY19zdGF0dXMiID4m
NQorICAgZWNobyAiJGFzX21lOjExMDE1OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKICAgIGlmIChl
eGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgIiRhY19vdXRmaWxlIjsgdGhlbgogICAgICAjIFRo
ZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVj
b2duaXplZAotICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSAgICAgaWYg
dGVzdCAhIC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgorICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBh
cmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgorICAgICAkZWNobyAiWCRf
bHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFhzZWQgPmNvbmZ0ZXN0LmV4cAorICAgICAkU0VE
ICcvXiQvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKKyAgICAgaWYgdGVzdCAhIC1zIGNv
bmZ0ZXN0LmVyciB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsg
dGhlbgogICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzX0NYWD15ZXMKICAgICAgZmkK
ICAgIGZpCkBAIC0xMDc3MSwxNiArMTEwNzAsMTggQEAKICAgIC1lICdzOi4qRkxBR1N9PyA6JiRs
dF9jb21waWxlcl9mbGFnIDo7IHQnIFwKICAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9j
b21waWxlcl9mbGFnJjo7IHQnIFwKICAgIC1lICdzOiQ6ICRsdF9jb21waWxlcl9mbGFnOidgCi0g
ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTA3NzQ6ICRsdF9jb21waWxlXCIiID4mNSkKKyAgIChl
dmFsIGVjaG8gIlwiXCRhc19tZToxMTA3MzogJGx0X2NvbXBpbGVcIiIgPiY1KQogICAgKGV2YWwg
IiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVzdC5lcnIpCiAgICBhY19zdGF0dXM9JD8KICAgIGNh
dCBvdXQvY29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjEwNzc4OiBcJD8gPSAkYWNf
c3RhdHVzIiA+JjUKKyAgIGVjaG8gIiRhc19tZToxMTA3NzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1
CiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29i
amV4dAogICAgdGhlbgogICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25v
cmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAogICAgICAjIFNvIHNheSBubyBpZiB0aGVy
ZSBhcmUgd2FybmluZ3MKLSAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcnI7IHRoZW4K
KyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkID4gb3V0L2Nv
bmZ0ZXN0LmV4cAorICAgICAkU0VEICcvXiQvZCcgb3V0L2NvbmZ0ZXN0LmVyciA+b3V0L2NvbmZ0
ZXN0LmVyMgorICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyciB8fCBkaWZmIG91dC9j
b25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCiAgICAgICAgbHRf
Y3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPXllcwogICAgICBmaQogICAgZmkKQEAgLTEwODM5LDcg
KzExMTQwLDcgQEAKICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0iJGx0ZGxsX2NtZHMiCiAg
IDs7CiAgIGN5Z3dpbiogfCBtaW5ndyopCi0gICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyRO
TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAn
XCcnL15bQkNER1NdIC9zLy4qIFwoW14gXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycv
XltBSVRXXSAvcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKKyAg
ICBleHBvcnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRn
bG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdIC9zLy4qIFwoW14gXSpc
KS9cMSBEQVRBLzsvXi4qIF9fbm1fXy9zL14uKiBfX25tX19cKFteIF0qXCkgW14gXSovXDEgREFU
QS87L15JIC9kOy9eW0FJVFddIC9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9z
eW1ib2xzJwogICA7OwogICAqKQogICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxp
Ym9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiog
Ly8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCkBAIC0xMTA3NywxMSArMTEz
NzgsMzUgQEAKICAgICAgIDs7CiAgICAgcHczMiopCiAgICAgICAjIHB3MzIgRExMcyB1c2UgJ3B3
JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVj
aG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRT
RUQgLWUgJ3MvLi8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCisgICAgICBsaWJyYXJ5
X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hv
ICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4
dH0nCiAgICAgICA7OwogICAgIGVzYWMKICAgICA7OwogCisgIGxpbnV4KikKKyAgICBpZiAkTEQg
LS1oZWxwIDI+JjEgfCBlZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9u
dWxsOyB0aGVuCisgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBs
aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJworICAg
ICAgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPW5vCisgICAgICBjYXNlIGAkTEQgLXYgMj4vZGV2
L251bGxgIGluCisgICAgICAgICpcIDAxLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7
ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjExCisgICAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBw
b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCisgICAgICAgICpcIDIuMTEu
OTIuMC4xMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIE1hbmRyYWtlIDgu
MiAuLi4KKyAgICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKKyAgICAg
ICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OworICAgICAgZXNhYworICAgICAg
aWYgdGVzdCAkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nID0geWVzOyB0aGVuCisgICAgICAgIGFy
Y2hpdmVfZXhwc3ltX2NtZHM9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxp
Ym5hbWUudmVyfgorY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIg
Pj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4g
JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorICAgICAgICAkQ0MgLXNoYXJlZCAkbGlib2Jq
cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0t
dmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicK
KyAgICAgIGVsc2UKKyAgICAgICAgJGFyY2hpdmVfZXhwc3ltX2NtZHM9IiRhcmNoaXZlX2NtZHMi
CisgICAgICBmaQorICAgIGVsc2UKKyAgICAgIGxkX3NobGlicz1ubworICAgIGZpCisgICAgOzsK
KwogICAqKQogICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFz
ZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0gJGxpYm5h
bWUubGliJwogICAgIDs7CkBAIC0xMTEzNSw3ICsxMTQ2MCw5IEBACiAgIGR5bmFtaWNfbGlua2Vy
PSdHTlUgbGQuc28nCiAgIDs7CiAKLWZyZWVic2QqKQorZnJlZWJzZCogfCBkcmFnb25mbHkqKQor
ICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQuICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50
IGEgbmV3CisgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgogICBvYmpmb3Jt
YXQ9YHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0ICYmIC91c3IvYmluL29iamZvcm1hdCB8fCBl
Y2hvIGFvdXRgCiAgIHZlcnNpb25fdHlwZT1mcmVlYnNkLSRvYmpmb3JtYXQKICAgY2FzZSAkdmVy
c2lvbl90eXBlIGluCkBAIC0xMTE1NCw3ICsxMTQ4MSw3IEBACiAgIGZyZWVic2QyKikKICAgICBz
aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCiAgICAgOzsKLSAgZnJlZWJzZDMuMDEqIHwg
ZnJlZWJzZGVsZjMuMDEqKQorICBmcmVlYnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQog
ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKICAgICBoYXJkY29kZV9pbnRvX2xp
YnM9eWVzCiAgICAgOzsKQEAgLTExMjgwLDEwICsxMTYwNywxNyBAQAogCiAgICMgQXBwZW5kIGxk
LnNvLmNvbmYgY29udGVudHMgdG8gdGhlIHNlYXJjaCBwYXRoCiAgIGlmIHRlc3QgLWYgL2V0Yy9s
ZC5zby5jb25mOyB0aGVuCi0gICAgbHRfbGRfZXh0cmE9YCRTRUQgLWUgJ3MvOixcdC8gL2c7cy89
Xj0qJC8vO3MvPV49ICogLyAvZycgL2V0Yy9sZC5zby5jb25mIHwgdHIgJ1xuJyAnICdgCisgICAg
bHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0Yzsg
Y2F0ICVzIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAg
PSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87cy9bOiwJXS8gL2c7
cy89W149XSokLy87cy89W149IF0qIC8gL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCiAgICAgc3lz
X2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIgJGx0X2xkX2V4dHJhIgogICBm
aQogCisgIGNhc2UgJGhvc3RfY3B1OiRsdF9jdl9jY182NGJpdF9vdXRwdXQgaW4KKyAgcG93ZXJw
YzY0OnllcyB8IHMzOTB4OnllcyB8IHNwYXJjNjQ6eWVzIHwgeDg2XzY0OnllcykKKyAgICBzeXNf
bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYjY0IC91c3IvbGliNjQgL3Vzci9YMTFSNi9saWI2
NCIKKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC91c3Iv
bG9jYWwvbGliNjQgL3Vzci9YMTFSNi9saWI2NCIKKyAgICA7OworICBlc2FjCisKICAgIyBXZSB1
c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFyaWVz
IG9uCiAgICMgcG93ZXJwYywgYmVjYXVzZSBNa0xpbnV4IG9ubHkgc3VwcG9ydGVkIHNoYXJlZCBs
aWJyYXJpZXMgd2l0aCB0aGUKICAgIyBHTlUgZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdh
cyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCkBAIC0xMTI5MSw2ICsxMTYyNSwzMCBAQAog
ICAjIHBlb3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1v
dmVkLCBhbmQgd2UKICAgIyBhc3N1bWUgdGhlIEdOVS9MaW51eCBkeW5hbWljIGxpbmtlciBpcyBp
biB1c2UuCiAgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCisKKyAgIyBGaW5kIG91
dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nIChtdWx0aWxpYiBMaW51eCB4ODZfNjQgaGFjaykuCisg
IGxpYnN1ZmY9CisgIGNhc2UgIiRob3N0X2NwdSIgaW4KKyAgeDg2XzY0KikKKyAgICBlY2hvICcj
bGluZSAxMTYzMyAiY29uZmlndXJlIicgPiBjb25mdGVzdC4kYWNfZXh0CisgICAgaWYgeyAoZXZh
bCBlY2hvICIkYXNfbWU6JExJTkVOTzogXCIkYWNfY29tcGlsZVwiIikgPiY1CisgIChldmFsICRh
Y19jb21waWxlKSAyPiY1CisgIGFjX3N0YXR1cz0kPworICBlY2hvICIkYXNfbWU6JExJTkVOTzog
XCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgIChleGl0ICRhY19zdGF0dXMpOyB9OyB0aGVuCisgICAg
ICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0LiRhY19vYmpleHRgIGluCisgICAgICAqNjQt
Yml0KikKKyAgICAgICAgbGlic3VmZj02NAorICAgICAgICA7OworICAgICAgZXNhYworICAgIGZp
CisgICAgcm0gLXJmIGNvbmZ0ZXN0KgorICAgIDs7CisgICopCisgICAgOzsKKyAgZXNhYworICBz
eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiR7bGlic3VmZn0gL3Vzci9saWIke2xpYnN1
ZmZ9IgorICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii9saWIke2xpYnN1ZmZ9IC91c3IvbGli
JHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCiAgIDs7CiAKIGtuZXRic2QqLWdu
dSkKQEAgLTExMzQzLDcgKzExNzAxLDExIEBACiBvcGVuYnNkKikKICAgdmVyc2lvbl90eXBlPXN1
bm9zCiAgIG5lZWRfbGliX3ByZWZpeD1ubwotICBuZWVkX3ZlcnNpb249bm8KKyAgIyBTb21lIG9s
ZGVyIHZlcnNpb25zIG9mIE9wZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25l
ZCBsaWJzLgorICBjYXNlICRob3N0X29zIGluCisgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMu
KikgbmVlZF92ZXJzaW9uPXllcyA7OworICAgICopICAgICAgICAgICAgICAgICAgICAgICAgIG5l
ZWRfdmVyc2lvbj1ubyAgOzsKKyAgZXNhYwogICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt
ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4
dH0kdmVyc3VmZml4JwogICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZp
ZyAtbSAkbGliZGlyJwogICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSApAQCAtMTIxMzIs
NyArMTI0OTQsNyBAQAogICBsdF9kbHVua25vd249MDsgbHRfZGxub191c2NvcmU9MTsgbHRfZGxu
ZWVkX3VzY29yZT0yCiAgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCiAgIGNhdCA+IGNvbmZ0ZXN0
LiRhY19leHQgPDxFT0YKLSNsaW5lIDEyMTM1ICJjb25maWd1cmUiCisjbGluZSAxMjQ5NyAiY29u
ZmlndXJlIgogI2luY2x1ZGUgImNvbmZkZWZzLmgiCiAKICNpZiBIQVZFX0RMRkNOX0gKQEAgLTEy
MjMwLDcgKzEyNTkyLDcgQEAKICAgbHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0
X2RsbmVlZF91c2NvcmU9MgogICBsdF9zdGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25m
dGVzdC4kYWNfZXh0IDw8RU9GCi0jbGluZSAxMjIzMyAiY29uZmlndXJlIgorI2xpbmUgMTI1OTUg
ImNvbmZpZ3VyZSIKICNpbmNsdWRlICJjb25mZGVmcy5oIgogCiAjaWYgSEFWRV9ETEZDTl9ICkBA
IC0xMjQ0OCw3ICsxMjgxMCwxMyBAQAogIyBUaGUgaG9zdCBzeXN0ZW0uCiBob3N0X2FsaWFzPSRo
b3N0X2FsaWFzCiBob3N0PSRob3N0Citob3N0X29zPSRob3N0X29zCiAKKyMgVGhlIGJ1aWxkIHN5
c3RlbS4KK2J1aWxkX2FsaWFzPSRidWlsZF9hbGlhcworYnVpbGQ9JGJ1aWxkCitidWlsZF9vcz0k
YnVpbGRfb3MKKwogIyBBbiBlY2hvIHByb2dyYW0gdGhhdCBkb2VzIG5vdCBpbnRlcnByZXQgYmFj
a3NsYXNoZXMuCiBlY2hvPSRsdF9lY2hvCiAKQEAgLTEyNTI0LDcgKzEyODkyLDcgQEAKICMgRG9l
cyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFuZCAtbyBvcHRpb25zPwogY29t
cGlsZXJfY19vPSRsdF9sdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgKIAotIyBNdXN0IHdlIGxv
Y2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbiA/CisjIE11c3Qgd2UgbG9jayBmaWxlcyB3
aGVuIGRvaW5nIGNvbXBpbGF0aW9uPwogbmVlZF9sb2Nrcz0kbHRfbmVlZF9sb2NrcwogCiAjIERv
IHdlIG5lZWQgdGhlIGxpYiBwcmVmaXggZm9yIG1vZHVsZXM/CkBAIC0xMjgwNSwxMyArMTMxNzMs
MzYgQEAKIGNvbXBpbGVyPSRDQwogCiAKKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBz
aW1wbGUgdGVzdCBjb2RlCithY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKK3ByaW50ZiAi
JGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKK2V2YWwgIiRh
Y19jb21waWxlIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZCcgPmNvbmZ0ZXN0LmVycgor
X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAorJHJtIGNvbmZ0ZXN0
KgorCithY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKK3ByaW50ZiAiJGx0X3NpbXBsZV9s
aW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKK2V2YWwgIiRhY19saW5rIiAyPiYxID4v
ZGV2L251bGwgfCAkU0VEICcvXiQvZCcgPmNvbmZ0ZXN0LmVycgorX2x0X2xpbmtlcl9ib2lsZXJw
bGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyRybSBjb25mdGVzdCoKKworCiAjIEFsbG93IENDIHRv
IGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1lbnRzLgogbHRfc2F2ZV9DQz0iJENDIgogQ0M9
JHtGNzctImY3NyJ9CiBjb21waWxlcj0kQ0MKIGNvbXBpbGVyX0Y3Nz0kQ0MKLWNjX2Jhc2VuYW1l
PWAkZWNobyBYIiRjb21waWxlciIgfCAkWHNlZCAtZSAncyVeLiovJSUnYAorZm9yIGNjX3RlbXAg
aW4gJGNvbXBpbGVyIiI7IGRvCisgIGNhc2UgJGNjX3RlbXAgaW4KKyAgICBjb21waWxlIHwgKltc
XC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisgICAgZGlzdGNjIHwgKltc
XC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKyAgICBcLSopIDs7CisgICAg
KikgYnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIg
fCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKIAorCiBlY2hvICIk
YXNfbWU6JExJTkVOTzogY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFy
aWVzIiA+JjUKIGVjaG8gJEVDSE9fTiAiY2hlY2tpbmcgaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFy
ZWQgbGlicmFyaWVzLi4uICRFQ0hPX0MiID4mNgogZWNobyAiJGFzX21lOiRMSU5FTk86IHJlc3Vs
dDogJGNhbl9idWlsZF9zaGFyZWQiID4mNQpAQCAtMTI4MzIsNyArMTMyMjMsOSBAQAogICBmaQog
ICA7OwogYWl4NCogfCBhaXg1KikKLSAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzICYmIGVu
YWJsZV9zdGF0aWM9bm8KKyAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRh
aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgorICAgIHRlc3QgIiRlbmFibGVfc2hh
cmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCisgIGZpCiAgIDs7CiBlc2FjCiBlY2hvICIk
YXNfbWU6JExJTkVOTzogcmVzdWx0OiAkZW5hYmxlX3NoYXJlZCIgPiY1CkBAIC0xMjkzOCw3ICsx
MzMzMSw3IEBACiAgICAgICBkYXJ3aW4qKQogICAgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBv
biB0aGlzIHBsYXRmb3JtCiAgICAgICAgICMgQ29tbW9uIHN5bWJvbHMgbm90IGFsbG93ZWQgaW4g
TUhfRFlMSUIgZmlsZXMKLSAgICAgICBjYXNlICIkY2NfYmFzZW5hbWUiIGluCisgICAgICAgY2Fz
ZSAkY2NfYmFzZW5hbWUgaW4KICAgICAgICAgIHhsYyopCiAgICAgICAgICBsdF9wcm9nX2NvbXBp
bGVyX3BpY19GNzc9Jy1xbm9jb21tb24nCiAgICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0Y3
Nz0nLVdsLCcKQEAgLTEyOTgwLDEyICsxMzM3MywxOSBAQAogICAgICAgOzsKIAogICAgIGxpbnV4
KikKLSAgICAgIGNhc2UgJENDIGluCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgogICAgICAg
aWNjKiB8IGVjYyopCiAJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCiAJbHRfcHJvZ19j
b21waWxlcl9waWNfRjc3PSctS1BJQycKIAlsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19GNzc9Jy1z
dGF0aWMnCiAgICAgICAgIDs7CisgICAgICBwZ2NjKiB8IHBnZjc3KiB8IHBnZjkwKikKKyAgICAg
ICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3QqIHRoZSBQZW50aXVtIGdjYyBjb21w
aWxlciwKKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBwcm9qZWN0KQorCWx0X3Byb2dfY29t
cGlsZXJfd2xfRjc3PSctV2wsJworCWx0X3Byb2dfY29tcGlsZXJfcGljX0Y3Nz0nLWZwaWMnCisJ
bHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSctc3RhdGljJworICAgICAgICA7OwogICAgICAg
Y2NjKikKICAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnCiAgICAgICAgICMg
QWxsIEFscGhhIGNvZGUgaXMgUElDLgpAQCAtMTMwMDYsOSArMTM0MDYsMTQgQEAKICAgICAgIDs7
CiAKICAgICBzb2xhcmlzKikKLSAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctV2wsJwog
ICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfRjc3PSctS1BJQycKICAgICAgIGx0X3Byb2dfY29t
cGlsZXJfc3RhdGljX0Y3Nz0nLUJzdGF0aWMnCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgor
ICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorCWx0X3Byb2dfY29tcGlsZXJfd2xfRjc3PSctUW9w
dGlvbiBsZCAnOzsKKyAgICAgICopCisJbHRfcHJvZ19jb21waWxlcl93bF9GNzc9Jy1XbCwnOzsK
KyAgICAgIGVzYWMKICAgICAgIDs7CiAKICAgICBzdW5vczQqKQpAQCAtMTMwMzAsNiArMTM0MzUs
MTEgQEAKICAgICAgIGZpCiAgICAgICA7OwogCisgICAgdW5pY29zKikKKyAgICAgIGx0X3Byb2df
Y29tcGlsZXJfd2xfRjc3PSctV2wsJworICAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRf
c2hhcmVkX0Y3Nz1ubworICAgICAgOzsKKwogICAgIHV0czQqKQogICAgICAgbHRfcHJvZ19jb21w
aWxlcl9waWNfRjc3PSctcGljJwogICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfRjc3PSct
QnN0YXRpYycKQEAgLTEzMDY3LDE1ICsxMzQ3NywxNyBAQAogICAgLWUgJ3M6LipGTEFHU30/IDom
JGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0
X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AK
LSAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxMzA3MDogJGx0X2NvbXBpbGVcIiIgPiY1KQorICAg
KGV2YWwgZWNobyAiXCJcJGFzX21lOjEzNDgwOiAkbHRfY29tcGlsZVwiIiA+JjUpCiAgICAoZXZh
bCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQg
Y29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjEzMDc0OiBcJD8gPSAkYWNfc3RhdHVz
IiA+JjUKKyAgIGVjaG8gIiRhc19tZToxMzQ4NDogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgICBp
ZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KICAgICAg
IyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90
IHJlY29nbml6ZWQKLSAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0gICAg
IGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhl
cmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKyAgICAgJGVjaG8g
IlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkID5jb25mdGVzdC5leHAKKyAgICAg
JFNFRCAnL14kL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisgICAgIGlmIHRlc3QgISAt
cyBjb25mdGVzdC5lcnIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251
bGw7IHRoZW4KICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY193b3Jrc19GNzc9eWVzCiAgICAg
IGZpCiAgICBmaQpAQCAtMTMxMjcsMTYgKzEzNTM5LDE4IEBACiAgICAtZSAnczouKkZMQUdTfT8g
OiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAk
bHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzon
YAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjEzMTMwOiAkbHRfY29tcGlsZVwiIiA+JjUpCisg
ICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTM1NDI6ICRsdF9jb21waWxlXCIiID4mNSkKICAgIChl
dmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAg
ICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKLSAgIGVjaG8gIiRhc19tZToxMzEzNDogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CisgICBlY2hvICIkYXNfbWU6MTM1NDY6IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyBvdXQvY29uZnRlc3QyLiRh
Y19vYmpleHQKICAgIHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQg
aWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKICAgICAgIyBTbyBzYXkgbm8gaWYg
dGhlcmUgYXJlIHdhcm5pbmdzCi0gICAgIGlmIHRlc3QgISAtcyBvdXQvY29uZnRlc3QuZXJyOyB0
aGVuCisgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2lsZXJwbGF0ZSIgfCAkWHNlZCA+IG91
dC9jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14kL2QnIG91dC9jb25mdGVzdC5lcnIgPm91dC9j
b25mdGVzdC5lcjIKKyAgICAgaWYgdGVzdCAhIC1zIG91dC9jb25mdGVzdC5lcnIgfHwgZGlmZiBv
dXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgogICAgICAg
IGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3Nz15ZXMKICAgICAgZmkKICAgIGZpCkBAIC0xMzIx
Niw2ICsxMzYzMCwxNiBAQAogICAjIHJlbHkgb24gdGhpcyBzeW1ib2wgbmFtZSwgaXQncyBwcm9i
YWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KICAgIyBwcmVsb2FkZWQgc3ltYm9sIHRh
Ymxlcy4KICAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisgICMgSnVzdCBiZWluZyBwYXJhbm9pZCBh
Ym91dCBlbnN1cmluZyB0aGF0IGNjX2Jhc2VuYW1lIGlzIHNldC4KKyAgZm9yIGNjX3RlbXAgaW4g
JGNvbXBpbGVyIiI7IGRvCisgIGNhc2UgJGNjX3RlbXAgaW4KKyAgICBjb21waWxlIHwgKltcXC9d
Y29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisgICAgZGlzdGNjIHwgKltcXC9d
ZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKyAgICBcLSopIDs7CisgICAgKikg
YnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIgfCAk
WHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKIAogICBjYXNlICRob3N0
X29zIGluCiAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikKQEAgLTEzMjM2LDYgKzEzNjYwLDI3
IEBACiAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90IENDLCB3bGFyYyBzaG91bGQg
YmUgZW1wdHkKICAgICB3bGFyYz0nJHt3bH0nCiAKKyAgICAjIFNldCBzb21lIGRlZmF1bHRzIGZv
ciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVzZQorICAgICMgYXJlIHJl
c2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcg
dGhlbQorICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBvdmVycmlkZGVuIGlmIG5lY2Vzc2Fy
eS4KKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn
X3NwZWNfRjc3PScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJworICAgIGV4cG9ydF9keW5hbWlj
X2ZsYWdfc3BlY19GNzc9JyR7d2x9LS1leHBvcnQtZHluYW1pYycKKyAgICAjIGFuY2llbnQgR05V
IGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBldC4gYWwuCisgICAgaWYgJExEIC0t
aGVscCAyPiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KKwl3
aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl
bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCisgICAgICBlbHNlCisgIAl3aG9s
ZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9CisgICAgZmkKKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNp
b25pbmc9bm8KKyAgICBjYXNlIGAkTEQgLXYgMj4vZGV2L251bGxgIGluCisgICAgICAqXCBbMDFd
LiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMgY2F0Y2ggdmVyc2lvbnMgPCAyLjEx
CisgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7
OyAjIFJINy4zIC4uLgorICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3Zl
cnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgorICAgICAgKlwgMi4xMS4qKSA7OyAj
IG90aGVyIDIuMTEgdmVyc2lvbnMKKyAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15
ZXMgOzsKKyAgICBlc2FjCisKICAgICAjIFNlZSBpZiBHTlUgbGQgc3VwcG9ydHMgc2hhcmVkIGxp
YnJhcmllcy4KICAgICBjYXNlICRob3N0X29zIGluCiAgICAgYWl4MyogfCBhaXg0KiB8IGFpeDUq
KQpAQCAtMTMyODYsNyArMTM3MzEsNyBAQAogICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfRjc3
PXVuc3VwcG9ydGVkCiAgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHNfRjc3PW5vCiAgICAgICBl
bmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0Y3Nz15ZXMKLSAgICAgIGV4cG9ydF9z
eW1ib2xzX2NtZHNfRjc3PSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1i
b2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdTXSAvcy8uKiBcKFteIF0qXCkvXDEgREFUQS8n
XCcnIHwgJFNFRCAtZSAnXCcnL15bQUlUV10gL3MvLiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAk
ZXhwb3J0X3N5bWJvbHMnCisgICAgICBleHBvcnRfc3ltYm9sc19jbWRzX0Y3Nz0nJE5NICRsaWJv
YmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1lICdcJycvXltC
Q0RHUlNdIC9zLy4qIFwoW14gXSpcKS9cMSBEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltBSVRX
XSAvcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKIAogICAgICAg
aWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVu
CiAgICAgICAgIGFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJz
ICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1pbWFnZS1i
YXNlPTB4MTAwMDAwMDAgJHt3bH0tLW91dC1pbXBsaWIsJGxpYicKQEAgLTEzMzAwLDEwICsxMzc0
NSw0MSBAQAogCWZpfgogCSRDQyAtc2hhcmVkICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmICRs
aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l
ICR7d2x9LS1pbWFnZS1iYXNlPTB4MTAwMDAwMDAgICR7d2x9LS1vdXQtaW1wbGliLCRsaWInCiAg
ICAgICBlbHNlCi0JbGRfc2hsaWJzPW5vCisJbGRfc2hsaWJzX0Y3Nz1ubwogICAgICAgZmkKICAg
ICAgIDs7CiAKKyAgICBsaW51eCopCisgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6
IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KKwl0bXBfYWRkZmxh
Zz0KKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4KKwlwZ2NjKikJCQkJIyBQb3J0bGFu
ZCBHcm91cCBDIGNvbXBpbGVyCisJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JyR7d2x9
LS13aG9sZS1hcmNoaXZlLGBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAt
biBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwi
OyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAgJHt3bH0tLW5vLXdob2xlLWFyY2hp
dmUnCisJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKwkgIDs7CisJcGdmNzcqIHwgcGdmOTAq
ICkJCQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNvbXBpbGVycworCSAgd2hvbGVfYXJj
aGl2ZV9mbGFnX3NwZWNfRjc3PScke3dsfS0td2hvbGUtYXJjaGl2ZSxgZm9yIGNvbnYgaW4gJGNv
bnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1c
IiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNl
XCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgdG1wX2FkZGZsYWc9JyAkcGljX2ZsYWcg
LU1ub21haW4nIDs7CisJZWNjKixpYTY0KiB8IGljYyosaWE2NCopCQkjIEludGVsIEMgY29tcGls
ZXIgb24gaWE2NAorCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5hbWljJyA7OworCWVmYyosaWE2NCog
fCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0CisJICB0bXBf
YWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7CisJaWZjKiB8IGlmb3J0KikJCQkj
IEludGVsIEZvcnRyYW4gY29tcGlsZXIKKwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7
CisJZXNhYworCWFyY2hpdmVfY21kc19GNzc9JyRDQyAtc2hhcmVkJyIkdG1wX2FkZGZsYWciJyAk
bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUg
LW8gJGxpYicKKworCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyA9IHllczsgdGhl
bgorCSAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1
dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwgc2VkIC1lICJz
L1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+CisgICRlY2hvICJs
b2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKwkgICRDQyAtc2hh
cmVkJyIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3
bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29i
amRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKwlmaQorICAgICAgZWxzZQorCWxkX3NobGlic19G
Nzc9bm8KKyAgICAgIGZpCisgICAgICA7OworCiAgICAgbmV0YnNkKikKICAgICAgIGlmIGVjaG8g
X19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KIAlhcmNo
aXZlX2NtZHNfRjc3PSckTEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m
bGFncyAtbyAkbGliJwpAQCAtMTMzNDIsMzEgKzEzODE4LDYgQEAKICAgICAgIGhhcmRjb2RlX3No
bGlicGF0aF92YXJfRjc3PW5vCiAgICAgICA7OwogCi0gIGxpbnV4KikKLSAgICBpZiAkTEQgLS1o
ZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7
IHRoZW4KLSAgICAgICAgdG1wX2FyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl
cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0J
YXJjaGl2ZV9jbWRzX0Y3Nz0iJHRtcF9hcmNoaXZlX2NtZHMiCi0gICAgICBzdXBwb3J0c19hbm9u
X3ZlcnNpb25pbmc9bm8KLSAgICAgIGNhc2UgYCRMRCAtdiAyPi9kZXYvbnVsbGAgaW4KLSAgICAg
ICAgKlwgMDEuKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAuKikgOzsgIyBjYXRjaCB2ZXJzaW9u
cyA8IDIuMTEKLSAgICAgICAgKlwgMi4xMS45My4wLjJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lv
bmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSAgICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBw
b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgotICAgICAgICAq
XCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwotICAgICAgICAqKSBzdXBwb3J0c19h
bm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0gICAgICBlc2FjCi0gICAgICBpZiB0ZXN0ICRzdXBwb3J0
c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KLSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21k
c19GNzc9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot
Y2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9v
YmpkaXIvJGxpYm5hbWUudmVyfgotJGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpk
aXIvJGxpYm5hbWUudmVyfgotICAgICAgICAkQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk
Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3Jp
cHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSAgICAgIGVsc2UK
LSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19GNzc9IiR0bXBfYXJjaGl2ZV9jbWRzIgotICAg
ICAgZmkKLSAgICBlbHNlCi0gICAgICBsZF9zaGxpYnNfRjc3PW5vCi0gICAgZmkKLSAgICA7Owot
CiAgICAgKikKICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRh
cmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgogCWFyY2hpdmVfY21kc19GNzc9JyRDQyAt
c2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHds
JHNvbmFtZSAtbyAkbGliJwpAQCAtMTMzNzcsMTYgKzEzODI4LDExIEBACiAgICAgICA7OwogICAg
IGVzYWMKIAotICAgIGlmIHRlc3QgIiRsZF9zaGxpYnNfRjc3IiA9IHllczsgdGhlbgotICAgICAg
cnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf
Rjc3PScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotICAgICAgZXhwb3J0X2R5bmFtaWNfZmxh
Z19zcGVjX0Y3Nz0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotICAgICAgIyBhbmNpZW50IEdOVSBs
ZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotICAgICAgaWYgJExEIC0t
aGVscCAyPiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7IHRoZW4KLSAJ
d2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252
ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotICAgICAgZWxzZQotICAJd2hv
bGVfYXJjaGl2ZV9mbGFnX3NwZWNfRjc3PQotICAgICAgZmkKKyAgICBpZiB0ZXN0ICIkbGRfc2hs
aWJzX0Y3NyIgPSBubzsgdGhlbgorICAgICAgcnVucGF0aF92YXI9CisgICAgICBoYXJkY29kZV9s
aWJkaXJfZmxhZ19zcGVjX0Y3Nz0KKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19GNzc9
CisgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9CiAgICAgZmkKICAgZWxzZQogICAg
ICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5b3VyIHN5c3RlbSdzIGxpbmtlciAo
bm90IEdOVSBsZCkKQEAgLTEzNDUwLDcgKzEzODk2LDcgQEAKICAgICAgIGxpbmtfYWxsX2RlcGxp
YnNfRjc3PXllcwogCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotCWNhc2UgJGhv
c3Rfb3MgaW4gYWl4NC4wMTJ8YWl4NC4wMTIuKikKKwljYXNlICRob3N0X29zIGluIGFpeDQuWzAx
Ml18YWl4NC5bMDEyXS4qKQogCSMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBh
bmQgbG93ZXIsIHRoZSBjaGVjawogCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0
IHdvcmsgdW5kZXIgNC4zKwogCSAgY29sbGVjdDJuYW1lPWAke0NDfSAtcHJpbnQtcHJvZy1uYW1l
PWNvbGxlY3QyYApAQCAtMTM0NzEsNiArMTM5MTcsOSBAQAogCSAgZmkKIAllc2FjCiAJc2hhcmVk
X2ZsYWc9Jy1zaGFyZWQnCisJaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVz
OyB0aGVuCisJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFnICInJHt3bH0tRycKKwlmaQogICAg
ICAgZWxzZQogCSMgbm90IHVzaW5nIGdjYwogCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0
aGVuCkBAIC0xMzYzMiw3ICsxNDA4MSw3IEBACiAgICAgICBvbGRfYXJjaGl2ZV9Gcm9tX25ld19j
bWRzX0Y3Nz0ndHJ1ZScKICAgICAgICMgRklYTUU6IFNob3VsZCBsZXQgdGhlIHVzZXIgc3BlY2lm
eSB0aGUgbGliIHByb2dyYW0uCiAgICAgICBvbGRfYXJjaGl2ZV9jbWRzX0Y3Nz0nbGliIC9PVVQ6
JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotICAgICAgZml4X3NyY2ZpbGVfcGF0aD0nYGN5
Z3BhdGggLXcgIiRzcmNmaWxlImAnCisgICAgICBmaXhfc3JjZmlsZV9wYXRoX0Y3Nz0nYGN5Z3Bh
dGggLXcgIiRzcmNmaWxlImAnCiAgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRp
bWVzX0Y3Nz15ZXMKICAgICAgIDs7CiAKQEAgLTEzNjcwLDcgKzE0MTE5LDcgQEAKICAgICAgIGFy
Y2hpdmVfZXhwc3ltX2NtZHNfRjc3PSdzZWQgLWUgInMsIy4qLCwiIC1lICJzLF5bICAgIF0qLCwi
IC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8k
e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtZHluYW1pY2xpYiAkYWxsb3dfdW5kZWZpbmVk
X2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxf
bmFtZSAkcnBhdGgvJHNvbmFtZSAkdmVyc3RyaW5nfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8k
e2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAgICAgIG1vZHVsZV9leHBzeW1fY21k
c19GNzc9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAgXSosLCIgLWUgInMsXlwoLi4qXCks
XyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9s
cy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRfZmxhZyAgLW8gJGxpYiAtYnVuZGxlICRsaWJv
YmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5tZWRpdCAtcyAkb3V0cHV0X29iamRpci8ke2xp
Ym5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAgICBlbHNlCi0gICAgICBjYXNlICIkY2Nf
YmFzZW5hbWUiIGluCisgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgogICAgICAgICB4bGMqKQog
ICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2VjaG8nCiAgICAgICAgICBhcmNoaXZl
X2NtZHNfRjc3PSckQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAk
bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taW5zdGFsbF9uYW1lICR7d2x9
YGVjaG8gJHJwYXRoLyRzb25hbWVgICR2ZXJzdHJpbmcnCkBAIC0xMzcxNiw3ICsxNDE2NSw3IEBA
CiAgICAgICA7OwogCiAgICAgIyBGcmVlQlNEIDMgYW5kIGdyZWF0ZXIgdXNlcyBnY2MgLXNoYXJl
ZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotICAgIGZyZWVic2QqIHwga2ZyZWVic2QqLWdudSkK
KyAgICBmcmVlYnNkKiB8IGtmcmVlYnNkKi1nbnUgfCBkcmFnb25mbHkqKQogICAgICAgYXJjaGl2
ZV9jbWRzX0Y3Nz0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls
ZXJfZmxhZ3MnCiAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLVIkbGliZGly
JwogICAgICAgaGFyZGNvZGVfZGlyZWN0X0Y3Nz15ZXMKQEAgLTEzODczLDcgKzE0MzIyLDcgQEAK
IAlhbGxvd191bmRlZmluZWRfZmxhZ19GNzc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCiAJYXJj
aGl2ZV9jbWRzX0Y3Nz0nJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2Jq
cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAi
JHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdp
c3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwogCWFyY2hpdmVfZXhw
c3ltX2NtZHNfRjc3PSdmb3IgaSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAi
JXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IGVjaG8g
Ii1oaWRkZW4iPj4gJGxpYi5leHB+Ci0JJExEIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFn
fSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9mbGFncyAkbGlib2JqcyAkZGVwbGlicyAtc29uYW1l
ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVjaG8gLXNldF92ZXJzaW9uICR2ZXJz
dHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRy
bSAkbGliLmV4cCcKKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1pbnB1dCAk
bGliLmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNvbmFtZSBg
dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZlcnN0cmluZ2AgLXVw
ZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGlifiRybSAk
bGliLmV4cCcKIAogCSMgQm90aCBjIGFuZCBjeHggY29tcGlsZXIgc3VwcG9ydCAtcnBhdGggZGly
ZWN0bHkKIAloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0Y3Nz0nLXJwYXRoICRsaWJkaXInCkBA
IC0xMzg5MiwxMCArMTQzNDEsMTIgQEAKICAgICBzb2xhcmlzKikKICAgICAgIG5vX3VuZGVmaW5l
ZF9mbGFnX0Y3Nz0nIC16IHRleHQnCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgor
CXdsYXJjPScke3dsfScKIAlhcmNoaXZlX2NtZHNfRjc3PSckQ0MgLXNoYXJlZCAke3dsfS1oICR7
d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKIAlh
cmNoaXZlX2V4cHN5bV9jbWRzX0Y3Nz0nJGVjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQg
JGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+JGVj
aG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CiAJICAkQ0MgLXNoYXJlZCAke3dsfS1NICR7
d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli
cyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwogICAgICAgZWxzZQorCXdsYXJjPScnCiAJ
YXJjaGl2ZV9jbWRzX0Y3Nz0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFt
ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCiAJYXJjaGl2ZV9leHBz
eW1fY21kc19GNzc9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRleHBvcnRfc3lt
Ym9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfiRlY2hvICJsb2NhbDog
KjsgfTsiID4+ICRsaWIuZXhwfgogICAJJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLU0g
JGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh
Z3N+JHJtICRsaWIuZXhwJwpAQCAtMTM5MDQsOCArMTQzNTUsMTggQEAKICAgICAgIGhhcmRjb2Rl
X3NobGlicGF0aF92YXJfRjc3PW5vCiAgICAgICBjYXNlICRob3N0X29zIGluCiAgICAgICBzb2xh
cmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0gICAgICAqKSAjIFN1cHBvcnRlZCBz
aW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQotCXdob2xlX2FyY2hpdmVfZmxhZ19zcGVj
X0Y3Nz0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcgOzsKKyAg
ICAgICopCisgCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUgbGlua2VyIG9wdGlv
bnMgc28gd2UKKyAJIyBjYW5ub3QganVzdCBwYXNzIHRoZSBjb252aWVuY2UgbGlicmFyeSBuYW1l
cyB0aHJvdWdoCisgCSMgd2l0aG91dCAkd2wsIGlmZiB3ZSBkbyBub3QgbGluayB3aXRoICRMRC4K
KyAJIyBMdWNraWx5LCBnY2Mgc3VwcG9ydHMgdGhlIHNhbWUgc3ludGF4IHdlIG5lZWQgZm9yIFN1
biBTdHVkaW8uCisgCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXliZSAyLjUuMT8p
CisgCWNhc2UgJHdsYXJjIGluCisgCScnKQorIAkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0Y3
Nz0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcgOzsKKyAJKikK
KyAJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19GNzc9JyR7d2x9LXogJHt3bH1hbGxleHRyYWN0
YGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgLW4gXCIkY29udlwiICYmIG5l
d19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVjaG8gXCIk
bmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LXogJHt3bH1kZWZhdWx0ZXh0cmFjdCcgOzsKKyAJZXNh
YyA7OwogICAgICAgZXNhYwogICAgICAgbGlua19hbGxfZGVwbGlic19GNzc9eWVzCiAgICAgICA7
OwpAQCAtMTQyMzcsMTEgKzE0Njk4LDM1IEBACiAgICAgICA7OwogICAgIHB3MzIqKQogICAgICAg
IyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0gICAgICBsaWJy
YXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBl
Y2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzLy4vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9l
eHR9JworICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwgc2VkIC1l
ICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3Zl
cnN1ZmZpeH0ke3NoYXJlZF9leHR9JwogICAgICAgOzsKICAgICBlc2FjCiAgICAgOzsKIAorICBs
aW51eCopCisgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZWdyZXAgJzogc3VwcG9ydGVkIHRhcmdl
dHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNo
YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz
b25hbWUgLW8gJGxpYicKKyAgICAgIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz1ubworICAgICAg
Y2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgorICAgICAgICAqXCAwMS4qIHwgKlwgMi5bMC05
XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQorICAgICAgICAqXCAy
LjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4u
LgorICAgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15
ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCisgICAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAy
LjExIHZlcnNpb25zCisgICAgICAgICopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsK
KyAgICAgIGVzYWMKKyAgICAgIGlmIHRlc3QgJHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZyA9IHll
czsgdGhlbgorICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckZWNobyAieyBnbG9iYWw6IiA+
ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KK2NhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQg
LWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKyRlY2hv
ICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KKyAgICAgICAg
JENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt
ZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7d2x9JG91dHB1dF9vYmpkaXIvJGxp
Ym5hbWUudmVyIC1vICRsaWInCisgICAgICBlbHNlCisgICAgICAgICRhcmNoaXZlX2V4cHN5bV9j
bWRzPSIkYXJjaGl2ZV9jbWRzIgorICAgICAgZmkKKyAgICBlbHNlCisgICAgICBsZF9zaGxpYnM9
bm8KKyAgICBmaQorICAgIDs7CisKICAgKikKICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGli
bmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0k
e3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKICAgICA7OwpAQCAtMTQyOTUsNyArMTQ3ODAsOSBA
QAogICBkeW5hbWljX2xpbmtlcj0nR05VIGxkLnNvJwogICA7OwogCi1mcmVlYnNkKikKK2ZyZWVi
c2QqIHwgZHJhZ29uZmx5KikKKyAgIyBEcmFnb25GbHkgZG9lcyBub3QgaGF2ZSBhb3V0LiAgV2hl
bi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldworICAjIHZlcnNpb25pbmcgbWVjaGFuaXNtLCBhZGp1
c3QgdGhpcy4KICAgb2JqZm9ybWF0PWB0ZXN0IC14IC91c3IvYmluL29iamZvcm1hdCAmJiAvdXNy
L2Jpbi9vYmpmb3JtYXQgfHwgZWNobyBhb3V0YAogICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2Jq
Zm9ybWF0CiAgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgpAQCAtMTQzMTQsNyArMTQ4MDEsNyBAQAog
ICBmcmVlYnNkMiopCiAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwogICAgIDs7
Ci0gIGZyZWVic2QzLjAxKiB8IGZyZWVic2RlbGYzLjAxKikKKyAgZnJlZWJzZDMuWzAxXSogfCBm
cmVlYnNkZWxmMy5bMDFdKikKICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCiAg
ICAgaGFyZGNvZGVfaW50b19saWJzPXllcwogICAgIDs7CkBAIC0xNDQ0MCwxMCArMTQ5MjcsMTcg
QEAKIAogICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0aAog
ICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgotICAgIGx0X2xkX2V4dHJhPWAkU0VE
IC1lICdzLzosXHQvIC9nO3MvPV49KiQvLztzLz1ePSAqIC8gL2cnIC9ldGMvbGQuc28uY29uZiB8
IHRyICdcbicgJyAnYAorICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVt
KHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tp
cCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdz
LyMuKi8vO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nOy9eJC9kJyB8IHRy
ICdcbicgJyAnYAogICAgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliIC91c3IvbGli
ICRsdF9sZF9leHRyYSIKICAgZmkKIAorICBjYXNlICRob3N0X2NwdTokbHRfY3ZfY2NfNjRiaXRf
b3V0cHV0IGluCisgIHBvd2VycGM2NDp5ZXMgfCBzMzkweDp5ZXMgfCBzcGFyYzY0OnllcyB8IHg4
Nl82NDp5ZXMpCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xp
YjY0IC91c3IvWDExUjYvbGliNjQiCisgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGli
NjQgL3Vzci9saWI2NCAvdXNyL2xvY2FsL2xpYjY0IC91c3IvWDExUjYvbGliNjQiCisgICAgOzsK
KyAgZXNhYworCiAgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2Fi
bGUgc2hhcmVkIGxpYnJhcmllcyBvbgogICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5
IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhlCiAgICMgR05VIGR5bmFtaWMgbGlu
a2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jvc3MgY29tcGlsZXJzLApAQCAtMTQ0
NTEsNiArMTQ5NDUsMzAgQEAKICAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVk
LCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCiAgICMgYXNzdW1lIHRoZSBHTlUvTGludXgg
ZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgogICBkeW5hbWljX2xpbmtlcj0nR05VL0xpbnV4IGxk
LnNvJworCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZyAobXVsdGlsaWIgTGlu
dXggeDg2XzY0IGhhY2spLgorICBsaWJzdWZmPQorICBjYXNlICIkaG9zdF9jcHUiIGluCisgIHg4
Nl82NCopCisgICAgZWNobyAnI2xpbmUgMTQ5NTMgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFj
X2V4dAorICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRMSU5FTk86IFwiJGFjX2NvbXBpbGVc
IiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQorICBhY19zdGF0dXM9JD8KKyAgZWNo
byAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQorICAoZXhpdCAkYWNfc3Rh
dHVzKTsgfTsgdGhlbgorICAgICAgY2FzZSBgL3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2Jq
ZXh0YCBpbgorICAgICAgKjY0LWJpdCopCisgICAgICAgIGxpYnN1ZmY9NjQKKyAgICAgICAgOzsK
KyAgICAgIGVzYWMKKyAgICBmaQorICAgIHJtIC1yZiBjb25mdGVzdCoKKyAgICA7OworICAqKQor
ICAgIDs7CisgIGVzYWMKKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIke2xpYnN1
ZmZ9IC91c3IvbGliJHtsaWJzdWZmfSIKKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvbGli
JHtsaWJzdWZmfSAvdXNyL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9Igog
ICA7OwogCiBrbmV0YnNkKi1nbnUpCkBAIC0xNDUwMyw3ICsxNTAyMSwxMSBAQAogb3BlbmJzZCop
CiAgIHZlcnNpb25fdHlwZT1zdW5vcwogICBuZWVkX2xpYl9wcmVmaXg9bm8KLSAgbmVlZF92ZXJz
aW9uPW5vCisgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3Qp
ICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKyAgY2FzZSAkaG9zdF9vcyBpbgorICAgIG9wZW5i
c2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15ZXMgOzsKKyAgICAqKSAgICAgICAg
ICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7CisgIGVzYWMKICAgbGlicmFyeV9u
YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7
bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKICAgZmluaXNoX2NtZHM9J1BBVEg9Ilwk
UEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS
QVJZX1BBVEgKQEAgLTE0ODAzLDcgKzE1MzI1LDEzIEBACiAjIFRoZSBob3N0IHN5c3RlbS4KIGhv
c3RfYWxpYXM9JGhvc3RfYWxpYXMKIGhvc3Q9JGhvc3QKK2hvc3Rfb3M9JGhvc3Rfb3MKIAorIyBU
aGUgYnVpbGQgc3lzdGVtLgorYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCitidWlsZD0kYnVpbGQK
K2J1aWxkX29zPSRidWlsZF9vcworCiAjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90IGlu
dGVycHJldCBiYWNrc2xhc2hlcy4KIGVjaG89JGx0X2VjaG8KIApAQCAtMTQ4NzksNyArMTU0MDcs
NyBAQAogIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9w
dGlvbnM/CiBjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0Y3NwogCi0j
IE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNvbXBpbGF0aW9uID8KKyMgTXVzdCB3ZSBs
b2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24/CiBuZWVkX2xvY2tzPSRsdF9uZWVkX2xv
Y2tzCiAKICMgRG8gd2UgbmVlZCB0aGUgbGliIHByZWZpeCBmb3IgbW9kdWxlcz8KQEAgLTE1MTE3
LDcgKzE1NjQ1LDcgQEAKIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9
XG4iCiAKICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBsaW5rIHRlc3RzCi1sdF9zaW1wbGVf
bGlua190ZXN0X2NvZGU9J3B1YmxpYyBjbGFzcyBjb25mdGVzdCB7IHB1YmxpYyBzdGF0aWMgdm9p
ZCBtYWluKFN0cmluZyBhcmd2KSB7fTsgfVxuJworbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdw
dWJsaWMgY2xhc3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBh
cmd2KSB7fTsgfVxuJwogCiAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZvciB0YWdnZWQgY29uZmln
dXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCiAKQEAgLTE1MTI4LDIwICsxNTY1Niw0
MiBAQAogY29tcGlsZXI9JENDCiAKIAorIyBzYXZlIHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNp
bXBsZSB0ZXN0IGNvZGUKK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorcHJpbnRmICIk
bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorZXZhbCAiJGFj
X2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXJyCitf
bHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCiskcm0gY29uZnRlc3Qq
CisKK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAorcHJpbnRmICIkbHRfc2ltcGxlX2xp
bmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAorZXZhbCAiJGFjX2xpbmsiIDI+JjEgPi9k
ZXYvbnVsbCB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXJyCitfbHRfbGlua2VyX2JvaWxlcnBs
YXRlPWBjYXQgY29uZnRlc3QuZXJyYAorJHJtIGNvbmZ0ZXN0KgorCisKICMgQWxsb3cgQ0MgdG8g
YmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCiBsdF9zYXZlX0NDPSIkQ0MiCiBDQz0k
e0dDSi0iZ2NqIn0KIGNvbXBpbGVyPSRDQwogY29tcGlsZXJfR0NKPSRDQworZm9yIGNjX3RlbXAg
aW4gJGNvbXBpbGVyIiI7IGRvCisgIGNhc2UgJGNjX3RlbXAgaW4KKyAgICBjb21waWxlIHwgKltc
XC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7CisgICAgZGlzdGNjIHwgKltc
XC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsKKyAgICBcLSopIDs7CisgICAg
KikgYnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNlbmFtZT1gJGVjaG8gIlgkY2NfdGVtcCIg
fCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFzLSUlImAKIAorCiAjIEdDSiBk
aWQgbm90IGV4aXN0IGF0IHRoZSB0aW1lIEdDQyBkaWRuJ3QgaW1wbGljaXRseSBsaW5rIGxpYmMg
aW4uCiBhcmNoaXZlX2NtZHNfbmVlZF9sY19HQ0o9bm8KIAotIyMgQ0FWRUFUIEVNUFRPUjoKLSMj
IFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBk
byBub3QgY2hhbmdlCi0jIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVt
IGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4u
CitvbGRfYXJjaGl2ZV9jbWRzX0dDSj0kb2xkX2FyY2hpdmVfY21kcwogCisKIGx0X3Byb2dfY29t
cGlsZXJfbm9fYnVpbHRpbl9mbGFnX0dDSj0KIAogaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K
QEAgLTE1MTY2LDE1ICsxNTcxNiwxNyBAQAogICAgLWUgJ3M6LipGTEFHU30/IDomJGx0X2NvbXBp
bGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVy
X2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFs
IGVjaG8gIlwiXCRhc19tZToxNTE2OTogJGx0X2NvbXBpbGVcIiIgPiY1KQorICAgKGV2YWwgZWNo
byAiXCJcJGFzX21lOjE1NzE5OiAkbHRfY29tcGlsZVwiIiA+JjUpCiAgICAoZXZhbCAiJGx0X2Nv
bXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQgY29uZnRlc3Qu
ZXJyID4mNQotICAgZWNobyAiJGFzX21lOjE1MTczOiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAg
IGVjaG8gIiRhc19tZToxNTcyMzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CiAgICBpZiAoZXhpdCAk
YWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0ZmlsZSI7IHRoZW4KICAgICAgIyBUaGUgY29t
cGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6
ZWQKLSAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0gICAgIGlmIHRlc3Qg
ISAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdh
cm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KKyAgICAgJGVjaG8gIlgkX2x0X2Nv
bXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2VkID5jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14k
L2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIyCisgICAgIGlmIHRlc3QgISAtcyBjb25mdGVz
dC5lcnIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4K
ICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz15ZXMKICAgICAgZmkK
ICAgIGZpCkBAIC0xNTI4MCw3ICsxNTgzMiw3IEBACiAgICAgICBkYXJ3aW4qKQogICAgICAgICAj
IFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCiAgICAgICAgICMgQ29tbW9uIHN5
bWJvbHMgbm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSAgICAgICBjYXNlICIkY2NfYmFz
ZW5hbWUiIGluCisgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KICAgICAgICAgIHhsYyopCiAg
ICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19HQ0o9Jy1xbm9jb21tb24nCiAgICAgICAgICBs
dF9wcm9nX2NvbXBpbGVyX3dsX0dDSj0nLVdsLCcKQEAgLTE1MzIyLDEyICsxNTg3NCwxOSBAQAog
ICAgICAgOzsKIAogICAgIGxpbnV4KikKLSAgICAgIGNhc2UgJENDIGluCisgICAgICBjYXNlICRj
Y19iYXNlbmFtZSBpbgogICAgICAgaWNjKiB8IGVjYyopCiAJbHRfcHJvZ19jb21waWxlcl93bF9H
Q0o9Jy1XbCwnCiAJbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJQycKIAlsdF9wcm9nX2Nv
bXBpbGVyX3N0YXRpY19HQ0o9Jy1zdGF0aWMnCiAgICAgICAgIDs7CisgICAgICBwZ2NjKiB8IHBn
Zjc3KiB8IHBnZjkwKikKKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3Qq
IHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKKwkjIHdoaWNoIGxvb2tzIHRvIGJlIGEgZGVhZCBw
cm9qZWN0KQorCWx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJworCWx0X3Byb2dfY29tcGls
ZXJfcGljX0dDSj0nLWZwaWMnCisJbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfR0NKPSctc3RhdGlj
JworICAgICAgICA7OwogICAgICAgY2NjKikKICAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9H
Q0o9Jy1XbCwnCiAgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgpAQCAtMTUzNDgsOSAr
MTU5MDcsMTQgQEAKICAgICAgIDs7CiAKICAgICBzb2xhcmlzKikKLSAgICAgIGx0X3Byb2dfY29t
cGlsZXJfd2xfR0NKPSctV2wsJwogICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctS1BJ
QycKICAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0dDSj0nLUJzdGF0aWMnCisgICAgICBj
YXNlICRjY19iYXNlbmFtZSBpbgorICAgICAgZjc3KiB8IGY5MCogfCBmOTUqKQorCWx0X3Byb2df
Y29tcGlsZXJfd2xfR0NKPSctUW9wdGlvbiBsZCAnOzsKKyAgICAgICopCisJbHRfcHJvZ19jb21w
aWxlcl93bF9HQ0o9Jy1XbCwnOzsKKyAgICAgIGVzYWMKICAgICAgIDs7CiAKICAgICBzdW5vczQq
KQpAQCAtMTUzNzIsNiArMTU5MzYsMTEgQEAKICAgICAgIGZpCiAgICAgICA7OwogCisgICAgdW5p
Y29zKikKKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfR0NKPSctV2wsJworICAgICAgbHRfcHJv
Z19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkX0dDSj1ubworICAgICAgOzsKKwogICAgIHV0czQq
KQogICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfR0NKPSctcGljJwogICAgICAgbHRfcHJvZ19j
b21waWxlcl9zdGF0aWNfR0NKPSctQnN0YXRpYycKQEAgLTE1NDA5LDE1ICsxNTk3OCwxNyBAQAog
ICAgLWUgJ3M6LipGTEFHU30/IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAogICAgLWUgJ3M6
IFteIF0qY29uZnRlc3RcLjogJGx0X2NvbXBpbGVyX2ZsYWcmOjsgdCcgXAogICAgLWUgJ3M6JDog
JGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSAgIChldmFsIGVjaG8gIlwiXCRhc19tZToxNTQxMjogJGx0
X2NvbXBpbGVcIiIgPiY1KQorICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE1OTgxOiAkbHRfY29t
cGlsZVwiIiA+JjUpCiAgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQogICAg
YWNfc3RhdHVzPSQ/CiAgICBjYXQgY29uZnRlc3QuZXJyID4mNQotICAgZWNobyAiJGFzX21lOjE1
NDE2OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKKyAgIGVjaG8gIiRhc19tZToxNTk4NTogXCQ/ID0g
JGFjX3N0YXR1cyIgPiY1CiAgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNf
b3V0ZmlsZSI7IHRoZW4KICAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdu
b3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSAgICAgIyBTbyBzYXkgbm8gaWYgdGhl
cmUgYXJlIHdhcm5pbmdzCi0gICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcnI7IHRoZW4KKyAg
ICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFs
IG91dHB1dC4KKyAgICAgJGVjaG8gIlgkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRYc2Vk
ID5jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14kL2QnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3Qu
ZXIyCisgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgfHwgZGlmZiBjb25mdGVzdC5leHAg
Y29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KICAgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp
Y193b3Jrc19HQ0o9eWVzCiAgICAgIGZpCiAgICBmaQpAQCAtMTU0NjksMTYgKzE2MDQwLDE4IEBA
CiAgICAtZSAnczouKkZMQUdTfT8gOiYkbHRfY29tcGlsZXJfZmxhZyA6OyB0JyBcCiAgICAtZSAn
czogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCiAgICAtZSAnczok
OiAkbHRfY29tcGlsZXJfZmxhZzonYAotICAgKGV2YWwgZWNobyAiXCJcJGFzX21lOjE1NDcyOiAk
bHRfY29tcGlsZVwiIiA+JjUpCisgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6MTYwNDM6ICRsdF9j
b21waWxlXCIiID4mNSkKICAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJy
KQogICAgYWNfc3RhdHVzPSQ/CiAgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JjUKLSAgIGVjaG8g
IiRhc19tZToxNTQ3NjogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1CisgICBlY2hvICIkYXNfbWU6MTYw
NDc6IFwkPyA9ICRhY19zdGF0dXMiID4mNQogICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVz
dCAtcyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQKICAgIHRoZW4KICAgICAgIyBUaGUgY29tcGls
ZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24gaWYgbm90IHJlY29nbml6ZWQK
ICAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0gICAgIGlmIHRlc3QgISAt
cyBvdXQvY29uZnRlc3QuZXJyOyB0aGVuCisgICAgICRlY2hvICJYJF9sdF9jb21waWxlcl9ib2ls
ZXJwbGF0ZSIgfCAkWHNlZCA+IG91dC9jb25mdGVzdC5leHAKKyAgICAgJFNFRCAnL14kL2QnIG91
dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKKyAgICAgaWYgdGVzdCAhIC1zIG91dC9j
b25mdGVzdC5lcnIgfHwgZGlmZiBvdXQvY29uZnRlc3QuZXhwIG91dC9jb25mdGVzdC5lcjIgPi9k
ZXYvbnVsbDsgdGhlbgogICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0dDSj15ZXMKICAg
ICAgZmkKICAgIGZpCkBAIC0xNTU1OCw2ICsxNjEzMSwxNiBAQAogICAjIHJlbHkgb24gdGhpcyBz
eW1ib2wgbmFtZSwgaXQncyBwcm9iYWJseSBmaW5lIHRvIG5ldmVyIGluY2x1ZGUgaXQgaW4KICAg
IyBwcmVsb2FkZWQgc3ltYm9sIHRhYmxlcy4KICAgZXh0cmFjdF9leHBzeW1zX2NtZHM9CisgICMg
SnVzdCBiZWluZyBwYXJhbm9pZCBhYm91dCBlbnN1cmluZyB0aGF0IGNjX2Jhc2VuYW1lIGlzIHNl
dC4KKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCisgIGNhc2UgJGNjX3RlbXAgaW4K
KyAgICBjb21waWxlIHwgKltcXC9dY29tcGlsZSB8IGNjYWNoZSB8ICpbXFwvXWNjYWNoZSApIDs7
CisgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkgOzsK
KyAgICBcLSopIDs7CisgICAgKikgYnJlYWs7OworICBlc2FjCitkb25lCitjY19iYXNlbmFtZT1g
JGVjaG8gIlgkY2NfdGVtcCIgfCAkWHNlZCAtZSAncyUuKi8lJScgLWUgInMlXiRob3N0X2FsaWFz
LSUlImAKIAogICBjYXNlICRob3N0X29zIGluCiAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKikK
QEAgLTE1NTc4LDYgKzE2MTYxLDI3IEBACiAgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwg
bm90IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKICAgICB3bGFyYz0nJHt3bH0nCiAKKyAgICAj
IFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0
LiBUaGVzZQorICAgICMgYXJlIHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5v
dCBzdXBwb3J0ZWQuIFB1dHRpbmcgdGhlbQorICAgICMgaGVyZSBhbGxvd3MgdGhlbSB0byBiZSBv
dmVycmlkZGVuIGlmIG5lY2Vzc2FyeS4KKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAorICAg
IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGly
JworICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS1leHBvcnQtZHluYW1p
YycKKyAgICAjIGFuY2llbnQgR05VIGxkIGRpZG4ndCBzdXBwb3J0IC0td2hvbGUtYXJjaGl2ZSBl
dC4gYWwuCisgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScg
PiAvZGV2L251bGw7IHRoZW4KKwl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9IiR3bGFyYyIn
LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUn
CisgICAgICBlbHNlCisgIAl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9CisgICAgZmkKKyAg
ICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KKyAgICBjYXNlIGAkTEQgLXYgMj4vZGV2L251
bGxgIGluCisgICAgICAqXCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjEwLiopIDs7ICMg
Y2F0Y2ggdmVyc2lvbnMgPCAyLjExCisgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNf
YW5vbl92ZXJzaW9uaW5nPXllcyA7OyAjIFJINy4zIC4uLgorICAgICAgKlwgMi4xMS45Mi4wLjEy
XCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgor
ICAgICAgKlwgMi4xMS4qKSA7OyAjIG90aGVyIDIuMTEgdmVyc2lvbnMKKyAgICAgICopIHN1cHBv
cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsKKyAgICBlc2FjCisKICAgICAjIFNlZSBpZiBHTlUg
bGQgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4KICAgICBjYXNlICRob3N0X29zIGluCiAgICAg
YWl4MyogfCBhaXg0KiB8IGFpeDUqKQpAQCAtMTU2MjgsNyArMTYyMzIsNyBAQAogICAgICAgYWxs
b3dfdW5kZWZpbmVkX2ZsYWdfR0NKPXVuc3VwcG9ydGVkCiAgICAgICBhbHdheXNfZXhwb3J0X3N5
bWJvbHNfR0NKPW5vCiAgICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0dD
Sj15ZXMKLSAgICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfR0NKPSckTk0gJGxpYm9ianMgJGNvbnZl
bmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgLWUgJ1wnJy9eW0JDREdTXSAvcy8u
KiBcKFteIF0qXCkvXDEgREFUQS8nXCcnIHwgJFNFRCAtZSAnXCcnL15bQUlUV10gL3MvLiogLy8n
XCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCisgICAgICBleHBvcnRfc3ltYm9s
c19jbWRzX0dDSj0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp
cGUgfCAkU0VEIC1lICdcJycvXltCQ0RHUlNdIC9zLy4qIFwoW14gXSpcKS9cMSBEQVRBLydcJycg
fCAkU0VEIC1lICdcJycvXltBSVRXXSAvcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv
cnRfc3ltYm9scycKIAogICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBv
cnQnID4gL2Rldi9udWxsOyB0aGVuCiAgICAgICAgIGFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hh
cmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8k
c29uYW1lICR7d2x9LS1pbWFnZS1iYXNlPTB4MTAwMDAwMDAgJHt3bH0tLW91dC1pbXBsaWIsJGxp
YicKQEAgLTE1NjQyLDEwICsxNjI0Niw0MSBAQAogCWZpfgogCSRDQyAtc2hhcmVkICRvdXRwdXRf
b2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAk
b3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1pbWFnZS1iYXNlPTB4MTAwMDAwMDAgICR7d2x9
LS1vdXQtaW1wbGliLCRsaWInCiAgICAgICBlbHNlCi0JbGRfc2hsaWJzPW5vCisJbGRfc2hsaWJz
X0dDSj1ubwogICAgICAgZmkKICAgICAgIDs7CiAKKyAgICBsaW51eCopCisgICAgICBpZiAkTEQg
LS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251
bGw7IHRoZW4KKwl0bXBfYWRkZmxhZz0KKwljYXNlICRjY19iYXNlbmFtZSwkaG9zdF9jcHUgaW4K
KwlwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCisJICB3aG9sZV9hcmNoaXZl
X2ZsYWdfc3BlY19HQ0o9JyR7d2x9LS13aG9sZS1hcmNoaXZlLGBmb3IgY29udiBpbiAkY29udmVu
aWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5l
d19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyAkZWNobyBcIiRuZXdfY29udmVuaWVuY2VcImAg
JHt3bH0tLW5vLXdob2xlLWFyY2hpdmUnCisJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKKwkg
IDs7CisJcGdmNzcqIHwgcGdmOTAqICkJCQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBhbmQgZjkwIGNv
bXBpbGVycworCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPScke3dsfS0td2hvbGUtYXJj
aGl2ZSxgZm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwi
ICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNvbnZcIjsgZG9uZTsgJGVj
aG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJworCSAgdG1w
X2FkZGZsYWc9JyAkcGljX2ZsYWcgLU1ub21haW4nIDs7CisJZWNjKixpYTY0KiB8IGljYyosaWE2
NCopCQkjIEludGVsIEMgY29tcGlsZXIgb24gaWE2NAorCSAgdG1wX2FkZGZsYWc9JyAtaV9keW5h
bWljJyA7OworCWVmYyosaWE2NCogfCBpZm9ydCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21w
aWxlciBvbiBpYTY0CisJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMgLW5vZm9yX21haW4nIDs7
CisJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29tcGlsZXIKKwkgIHRtcF9hZGRm
bGFnPScgLW5vZm9yX21haW4nIDs7CisJZXNhYworCWFyY2hpdmVfY21kc19HQ0o9JyRDQyAtc2hh
cmVkJyIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3
bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKworCWlmIHRlc3QgJHN1cHBvcnRzX2Fub25f
dmVyc2lvbmluZyA9IHllczsgdGhlbgorCSAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hv
ICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgorICBjYXQgJGV4cG9y
dF9zeW1ib2xzIHwgc2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGli
bmFtZS52ZXJ+CisgICRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJu
YW1lLnZlcn4KKwkgICRDQyAtc2hhcmVkJyIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGli
cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1z
Y3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKKwlmaQorICAg
ICAgZWxzZQorCWxkX3NobGlic19HQ0o9bm8KKyAgICAgIGZpCisgICAgICA7OworCiAgICAgbmV0
YnNkKikKICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgZ3JlcCBfX0VMRl9fID4v
ZGV2L251bGw7IHRoZW4KIAlhcmNoaXZlX2NtZHNfR0NKPSckTEQgLUJzaGFyZWFibGUgJGxpYm9i
anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwpAQCAtMTU2ODQsMzEgKzE2MzE5LDYg
QEAKICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCiAgICAgICA7OwogCi0gIGxp
bnV4KikKLSAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBvcnRlZCB0YXJnZXRz
Oi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgdG1wX2FyY2hpdmVfY21kcz0nJEND
IC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAk
d2wkc29uYW1lIC1vICRsaWInCi0JYXJjaGl2ZV9jbWRzX0dDSj0iJHRtcF9hcmNoaXZlX2NtZHMi
Ci0gICAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KLSAgICAgIGNhc2UgYCRMRCAtdiAy
Pi9kZXYvbnVsbGAgaW4KLSAgICAgICAgKlwgMDEuKiB8ICpcIDIuWzAtOV0uKiB8ICpcIDIuMTAu
KikgOzsgIyBjYXRjaCB2ZXJzaW9ucyA8IDIuMTEKLSAgICAgICAgKlwgMi4xMS45My4wLjJcICop
IHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBSSDcuMyAuLi4KLSAgICAgICAgKlwg
Mi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJh
a2UgOC4yIC4uLgotICAgICAgICAqXCAyLjExLiopIDs7ICMgb3RoZXIgMi4xMSB2ZXJzaW9ucwot
ICAgICAgICAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0gICAgICBlc2FjCi0g
ICAgICBpZiB0ZXN0ICRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmcgPSB5ZXM7IHRoZW4KLSAgICAg
ICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9v
YmpkaXIvJGxpYm5hbWUudmVyfgotY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4q
XCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotJGVjaG8gImxvY2FsOiAq
OyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotICAgICAgICAkQ0MgLXNoYXJl
ZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25h
bWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIg
LW8gJGxpYicKLSAgICAgIGVsc2UKLSAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9IiR0
bXBfYXJjaGl2ZV9jbWRzIgotICAgICAgZmkKLSAgICBlbHNlCi0gICAgICBsZF9zaGxpYnNfR0NK
PW5vCi0gICAgZmkKLSAgICA7OwotCiAgICAgKikKICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8
IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgogCWFy
Y2hpdmVfY21kc19HQ0o9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m
bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwpAQCAtMTU3MTksMTYgKzE2MzI5
LDExIEBACiAgICAgICA7OwogICAgIGVzYWMKIAotICAgIGlmIHRlc3QgIiRsZF9zaGxpYnNfR0NK
IiA9IHllczsgdGhlbgotICAgICAgcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSAgICAgIGhhcmRj
b2RlX2xpYmRpcl9mbGFnX3NwZWNfR0NKPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwotICAg
ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0dDSj0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwot
ICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUgZXQu
IGFsLgotICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnbm8td2hvbGUtYXJjaGl2ZScg
PiAvZGV2L251bGw7IHRoZW4KLSAJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPSIkd2xhcmMi
Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZl
JwotICAgICAgZWxzZQotICAJd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfR0NKPQotICAgICAgZmkK
KyAgICBpZiB0ZXN0ICIkbGRfc2hsaWJzX0dDSiIgPSBubzsgdGhlbgorICAgICAgcnVucGF0aF92
YXI9CisgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dDSj0KKyAgICAgIGV4cG9ydF9k
eW5hbWljX2ZsYWdfc3BlY19HQ0o9CisgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9
CiAgICAgZmkKICAgZWxzZQogICAgICMgUE9SVE1FIGZpbGwgaW4gYSBkZXNjcmlwdGlvbiBvZiB5
b3VyIHN5c3RlbSdzIGxpbmtlciAobm90IEdOVSBsZCkKQEAgLTE1NzkyLDcgKzE2Mzk3LDcgQEAK
ICAgICAgIGxpbmtfYWxsX2RlcGxpYnNfR0NKPXllcwogCiAgICAgICBpZiB0ZXN0ICIkR0NDIiA9
IHllczsgdGhlbgotCWNhc2UgJGhvc3Rfb3MgaW4gYWl4NC4wMTJ8YWl4NC4wMTIuKikKKwljYXNl
ICRob3N0X29zIGluIGFpeDQuWzAxMl18YWl4NC5bMDEyXS4qKQogCSMgV2Ugb25seSB3YW50IHRv
IGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93ZXIsIHRoZSBjaGVjawogCSMgYmVsb3cgZm9yIGJy
b2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwogCSAgY29sbGVjdDJuYW1lPWAk
e0NDfSAtcHJpbnQtcHJvZy1uYW1lPWNvbGxlY3QyYApAQCAtMTU4MTMsNiArMTY0MTgsOSBAQAog
CSAgZmkKIAllc2FjCiAJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCisJaWYgdGVzdCAiJGFpeF91c2Vf
cnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCisJICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFn
ICInJHt3bH0tRycKKwlmaQogICAgICAgZWxzZQogCSMgbm90IHVzaW5nIGdjYwogCWlmIHRlc3Qg
IiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCkBAIC0xNTk5NCw3ICsxNjYwMiw3IEBACiAgICAgICBv
bGRfYXJjaGl2ZV9Gcm9tX25ld19jbWRzX0dDSj0ndHJ1ZScKICAgICAgICMgRklYTUU6IFNob3Vs
ZCBsZXQgdGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCiAgICAgICBvbGRfYXJjaGl2
ZV9jbWRzX0dDSj0nbGliIC9PVVQ6JG9sZGxpYiRvbGRvYmpzJG9sZF9kZXBsaWJzJwotICAgICAg
Zml4X3NyY2ZpbGVfcGF0aD0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCisgICAgICBmaXhfc3Jj
ZmlsZV9wYXRoX0dDSj0nYGN5Z3BhdGggLXcgIiRzcmNmaWxlImAnCiAgICAgICBlbmFibGVfc2hh
cmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0dDSj15ZXMKICAgICAgIDs7CiAKQEAgLTE2MDMyLDcg
KzE2NjQwLDcgQEAKICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdzZWQgLWUgInMsIy4q
LCwiIC1lICJzLF5bICAgIF0qLCwiIC1lICJzLF5cKC4uKlwpLF8mLCIgPCAkZXhwb3J0X3N5bWJv
bHMgPiAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltfiRDQyAtZHluYW1p
Y2xpYiAkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t
cGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSAkcnBhdGgvJHNvbmFtZSAkdmVyc3RyaW5nfm5tZWRp
dCAtcyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAg
ICAgIG1vZHVsZV9leHBzeW1fY21kc19HQ0o9J3NlZCAtZSAicywjLiosLCIgLWUgInMsXlsgICAg
XSosLCIgLWUgInMsXlwoLi4qXCksXyYsIiA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2Jq
ZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+JENDICRhbGxvd191bmRlZmluZWRfZmxhZyAg
LW8gJGxpYiAtYnVuZGxlICRsaWJvYmpzICRkZXBsaWJzJGNvbXBpbGVyX2ZsYWdzfm5tZWRpdCAt
cyAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKICAgICBl
bHNlCi0gICAgICBjYXNlICIkY2NfYmFzZW5hbWUiIGluCisgICAgICBjYXNlICRjY19iYXNlbmFt
ZSBpbgogICAgICAgICB4bGMqKQogICAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J2Vj
aG8nCiAgICAgICAgICBhcmNoaXZlX2NtZHNfR0NKPSckQ0MgLXFta3Nocm9iaiAkYWxsb3dfdW5k
ZWZpbmVkX2ZsYWcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3
bH0taW5zdGFsbF9uYW1lICR7d2x9YGVjaG8gJHJwYXRoLyRzb25hbWVgICR2ZXJzdHJpbmcnCkBA
IC0xNjA3OCw3ICsxNjY4Niw3IEBACiAgICAgICA7OwogCiAgICAgIyBGcmVlQlNEIDMgYW5kIGdy
ZWF0ZXIgdXNlcyBnY2MgLXNoYXJlZCB0byBkbyBzaGFyZWQgbGlicmFyaWVzLgotICAgIGZyZWVi
c2QqIHwga2ZyZWVic2QqLWdudSkKKyAgICBmcmVlYnNkKiB8IGtmcmVlYnNkKi1nbnUgfCBkcmFn
b25mbHkqKQogICAgICAgYXJjaGl2ZV9jbWRzX0dDSj0nJENDIC1zaGFyZWQgLW8gJGxpYiAkbGli
b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCiAgICAgICBoYXJkY29kZV9saWJkaXJfZmxh
Z19zcGVjX0dDSj0nLVIkbGliZGlyJwogICAgICAgaGFyZGNvZGVfZGlyZWN0X0dDSj15ZXMKQEAg
LTE2MjM1LDcgKzE2ODQzLDcgQEAKIAlhbGxvd191bmRlZmluZWRfZmxhZ19HQ0o9JyAtZXhwZWN0
X3VucmVzb2x2ZWQgXConCiAJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1zaGFyZWQke2FsbG93X3Vu
ZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1tc3ltIC1zb25h
bWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3ZlcnNpb24gJHZl
cnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt
byAkbGliJwogCWFyY2hpdmVfZXhwc3ltX2NtZHNfR0NKPSdmb3IgaSBpbiBgY2F0ICRleHBvcnRf
c3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wgIlwkaSIgPj4g
JGxpYi5leHA7IGRvbmU7IGVjaG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0JJExEIC1zaGFyZWQk
e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAtaW5wdXQgJGxpYi5leHAgJGxpbmtlcl9mbGFncyAkbGli
b2JqcyAkZGVwbGlicyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGVj
aG8gLXNldF92ZXJzaW9uICR2ZXJzdHJpbmdgIC11cGRhdGVfcmVnaXN0cnkgJHtvYmpkaXJ9L3Nv
X2xvY2F0aW9ucyAtbyAkbGlifiRybSAkbGliLmV4cCcKKwkkTEQgLXNoYXJlZCR7YWxsb3dfdW5k
ZWZpbmVkX2ZsYWd9IC1pbnB1dCAkbGliLmV4cCAkbGlua2VyX2ZsYWdzICRsaWJvYmpzICRkZXBs
aWJzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZWNobyAtc2V0X3Zl
cnNpb24gJHZlcnN0cmluZ2AgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xv
Y2F0aW9ucyAtbyAkbGlifiRybSAkbGliLmV4cCcKIAogCSMgQm90aCBjIGFuZCBjeHggY29tcGls
ZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKIAloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0dD
Sj0nLXJwYXRoICRsaWJkaXInCkBAIC0xNjI1NCwxMCArMTY4NjIsMTIgQEAKICAgICBzb2xhcmlz
KikKICAgICAgIG5vX3VuZGVmaW5lZF9mbGFnX0dDSj0nIC16IHRleHQnCiAgICAgICBpZiB0ZXN0
ICIkR0NDIiA9IHllczsgdGhlbgorCXdsYXJjPScke3dsfScKIAlhcmNoaXZlX2NtZHNfR0NKPSck
Q0MgLXNoYXJlZCAke3dsfS1oICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz
ICRjb21waWxlcl9mbGFncycKIAlhcmNoaXZlX2V4cHN5bV9jbWRzX0dDSj0nJGVjaG8gInsgZ2xv
YmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkv
XDE7LyIgPj4gJGxpYi5leHB+JGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+CiAJICAk
Q0MgLXNoYXJlZCAke3dsfS1NICR7d2x9JGxpYi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8g
JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwogICAg
ICAgZWxzZQorCXdsYXJjPScnCiAJYXJjaGl2ZV9jbWRzX0dDSj0nJExEIC1HJHthbGxvd191bmRl
ZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf
ZmxhZ3MnCiAJYXJjaGl2ZV9leHBzeW1fY21kc19HQ0o9JyRlY2hvICJ7IGdsb2JhbDoiID4gJGxp
Yi5leHB+Y2F0ICRleHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRs
aWIuZXhwfiRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgogICAJJExEIC1HJHthbGxv
d191bmRlZmluZWRfZmxhZ30gLU0gJGxpYi5leHAgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz
ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+JHJtICRsaWIuZXhwJwpAQCAtMTYyNjYsOCArMTY4NzYs
MTggQEAKICAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfR0NKPW5vCiAgICAgICBjYXNlICRo
b3N0X29zIGluCiAgICAgICBzb2xhcmlzMi5bMC01XSB8IHNvbGFyaXMyLlswLTVdLiopIDs7Ci0g
ICAgICAqKSAjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQotCXdo
b2xlX2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBk
ZWZhdWx0ZXh0cmFjdCcgOzsKKyAgICAgICopCisgCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxs
IGNvbWJpbmUgbGlua2VyIG9wdGlvbnMgc28gd2UKKyAJIyBjYW5ub3QganVzdCBwYXNzIHRoZSBj
b252aWVuY2UgbGlicmFyeSBuYW1lcyB0aHJvdWdoCisgCSMgd2l0aG91dCAkd2wsIGlmZiB3ZSBk
byBub3QgbGluayB3aXRoICRMRC4KKyAJIyBMdWNraWx5LCBnY2Mgc3VwcG9ydHMgdGhlIHNhbWUg
c3ludGF4IHdlIG5lZWQgZm9yIFN1biBTdHVkaW8uCisgCSMgU3VwcG9ydGVkIHNpbmNlIFNvbGFy
aXMgMi42IChtYXliZSAyLjUuMT8pCisgCWNhc2UgJHdsYXJjIGluCisgCScnKQorIAkgIHdob2xl
X2FyY2hpdmVfZmxhZ19zcGVjX0dDSj0nLXogYWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZh
dWx0ZXh0cmFjdCcgOzsKKyAJKikKKyAJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19HQ0o9JyR7
d2x9LXogJHt3bH1hbGxleHRyYWN0YGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRl
c3QgLW4gXCIkY29udlwiICYmIG5ld19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UsJGNv
bnZcIjsgZG9uZTsgJGVjaG8gXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LXogJHt3bH1kZWZh
dWx0ZXh0cmFjdCcgOzsKKyAJZXNhYyA7OwogICAgICAgZXNhYwogICAgICAgbGlua19hbGxfZGVw
bGlic19HQ0o9eWVzCiAgICAgICA7OwpAQCAtMTY1OTksMTEgKzE3MjE5LDM1IEBACiAgICAgICA7
OwogICAgIHB3MzIqKQogICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0
aGFuICdsaWInCi0gICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBz
ZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzLy4vLS9nJ2Ak
e3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JworICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNo
byAke2xpYm5hbWV9IHwgc2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNF
RCAtZSAncy9bLl0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwogICAgICAgOzsKICAg
ICBlc2FjCiAgICAgOzsKIAorICBsaW51eCopCisgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZWdy
ZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgorICAgICAg
YXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh
Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKKyAgICAgIHN1cHBvcnRzX2Fub25f
dmVyc2lvbmluZz1ubworICAgICAgY2FzZSBgJExEIC12IDI+L2Rldi9udWxsYCBpbgorICAgICAg
ICAqXCAwMS4qIHwgKlwgMi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25z
IDwgMi4xMQorICAgICAgICAqXCAyLjExLjkzLjAuMlwgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9u
aW5nPXllcyA7OyAjIFJINy4zIC4uLgorICAgICAgICAqXCAyLjExLjkyLjAuMTJcICopIHN1cHBv
cnRzX2Fub25fdmVyc2lvbmluZz15ZXMgOzsgIyBNYW5kcmFrZSA4LjIgLi4uCisgICAgICAgICpc
IDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCisgICAgICAgICopIHN1cHBvcnRzX2Fu
b25fdmVyc2lvbmluZz15ZXMgOzsKKyAgICAgIGVzYWMKKyAgICAgIGlmIHRlc3QgJHN1cHBvcnRz
X2Fub25fdmVyc2lvbmluZyA9IHllczsgdGhlbgorICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRz
PSckZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KK2NhdCAk
ZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGly
LyRsaWJuYW1lLnZlcn4KKyRlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2JqZGlyLyRs
aWJuYW1lLnZlcn4KKyAgICAgICAgJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp
bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXZlcnNpb24tc2NyaXB0ICR7
d2x9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyIC1vICRsaWInCisgICAgICBlbHNlCisgICAg
ICAgICRhcmNoaXZlX2V4cHN5bV9jbWRzPSIkYXJjaGl2ZV9jbWRzIgorICAgICAgZmkKKyAgICBl
bHNlCisgICAgICBsZF9zaGxpYnM9bm8KKyAgICBmaQorICAgIDs7CisKICAgKikKICAgICBsaWJy
YXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b
Ll0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9ICRsaWJuYW1lLmxpYicKICAgICA7OwpA
QCAtMTY2NTcsNyArMTczMDEsOSBAQAogICBkeW5hbWljX2xpbmtlcj0nR05VIGxkLnNvJwogICA7
OwogCi1mcmVlYnNkKikKK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKKyAgIyBEcmFnb25GbHkgZG9l
cyBub3QgaGF2ZSBhb3V0LiAgV2hlbi9pZiB0aGV5IGltcGxlbWVudCBhIG5ldworICAjIHZlcnNp
b25pbmcgbWVjaGFuaXNtLCBhZGp1c3QgdGhpcy4KICAgb2JqZm9ybWF0PWB0ZXN0IC14IC91c3Iv
YmluL29iamZvcm1hdCAmJiAvdXNyL2Jpbi9vYmpmb3JtYXQgfHwgZWNobyBhb3V0YAogICB2ZXJz
aW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0CiAgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgpAQCAt
MTY2NzYsNyArMTczMjIsNyBAQAogICBmcmVlYnNkMiopCiAgICAgc2hsaWJwYXRoX292ZXJyaWRl
c19ydW5wYXRoPXllcwogICAgIDs7Ci0gIGZyZWVic2QzLjAxKiB8IGZyZWVic2RlbGYzLjAxKikK
KyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5bMDFdKikKICAgICBzaGxpYnBhdGhfb3Zl
cnJpZGVzX3J1bnBhdGg9eWVzCiAgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwogICAgIDs7CkBA
IC0xNjgwMiwxMCArMTc0NDgsMTcgQEAKIAogICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRz
IHRvIHRoZSBzZWFyY2ggcGF0aAogICBpZiB0ZXN0IC1mIC9ldGMvbGQuc28uY29uZjsgdGhlbgot
ICAgIGx0X2xkX2V4dHJhPWAkU0VEIC1lICdzLzosXHQvIC9nO3MvPV49KiQvLztzLz1ePSAqIC8g
L2cnIC9ldGMvbGQuc28uY29uZiB8IHRyICdcbicgJyAnYAorICAgIGx0X2xkX2V4dHJhPWBhd2sg
Jy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9ldGM7IGNhdCAlcyIsIFwkMikpOyBz
a2lwID0gMTsgfSB7IGlmICghc2tpcCkgcHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xk
LnNvLmNvbmYgfCAkU0VEIC1lICdzLyMuKi8vO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVte
PSBdKiAvIC9nOy9eJC9kJyB8IHRyICdcbicgJyAnYAogICAgIHN5c19saWJfZGxzZWFyY2hfcGF0
aF9zcGVjPSIvbGliIC91c3IvbGliICRsdF9sZF9leHRyYSIKICAgZmkKIAorICBjYXNlICRob3N0
X2NwdTokbHRfY3ZfY2NfNjRiaXRfb3V0cHV0IGluCisgIHBvd2VycGM2NDp5ZXMgfCBzMzkweDp5
ZXMgfCBzcGFyYzY0OnllcyB8IHg4Nl82NDp5ZXMpCisgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRo
X3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC91c3IvWDExUjYvbGliNjQiCisgICAgc3lzX2xpYl9z
ZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9saWI2NCAvdXNyL2xvY2FsL2xpYjY0IC91c3Iv
WDExUjYvbGliNjQiCisgICAgOzsKKyAgZXNhYworCiAgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAv
bGliL2xkLnNvLjEgYW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgogICAjIHBvd2VycGMs
IGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFyZWQgbGlicmFyaWVzIHdpdGggdGhl
CiAgICMgR05VIGR5bmFtaWMgbGlua2VyLiAgU2luY2UgdGhpcyB3YXMgYnJva2VuIHdpdGggY3Jv
c3MgY29tcGlsZXJzLApAQCAtMTY4MTMsNiArMTc0NjYsMzAgQEAKICAgIyBwZW9wbGUgY2FuIGFs
d2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCiAgICMg
YXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNlLgogICBkeW5hbWlj
X2xpbmtlcj0nR05VL0xpbnV4IGxkLnNvJworCisgICMgRmluZCBvdXQgd2hpY2ggQUJJIHdlIGFy
ZSB1c2luZyAobXVsdGlsaWIgTGludXggeDg2XzY0IGhhY2spLgorICBsaWJzdWZmPQorICBjYXNl
ICIkaG9zdF9jcHUiIGluCisgIHg4Nl82NCopCisgICAgZWNobyAnI2xpbmUgMTc0NzQgImNvbmZp
Z3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAorICAgIGlmIHsgKGV2YWwgZWNobyAiJGFzX21lOiRM
SU5FTk86IFwiJGFjX2NvbXBpbGVcIiIpID4mNQorICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQor
ICBhY19zdGF0dXM9JD8KKyAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMi
ID4mNQorICAoZXhpdCAkYWNfc3RhdHVzKTsgfTsgdGhlbgorICAgICAgY2FzZSBgL3Vzci9iaW4v
ZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgorICAgICAgKjY0LWJpdCopCisgICAgICAgIGxp
YnN1ZmY9NjQKKyAgICAgICAgOzsKKyAgICAgIGVzYWMKKyAgICBmaQorICAgIHJtIC1yZiBjb25m
dGVzdCoKKyAgICA7OworICAqKQorICAgIDs7CisgIGVzYWMKKyAgc3lzX2xpYl9kbHNlYXJjaF9w
YXRoX3NwZWM9Ii9saWIke2xpYnN1ZmZ9IC91c3IvbGliJHtsaWJzdWZmfSIKKyAgc3lzX2xpYl9z
ZWFyY2hfcGF0aF9zcGVjPSIvbGliJHtsaWJzdWZmfSAvdXNyL2xpYiR7bGlic3VmZn0gL3Vzci9s
b2NhbC9saWIke2xpYnN1ZmZ9IgogICA7OwogCiBrbmV0YnNkKi1nbnUpCkBAIC0xNjg2NSw3ICsx
NzU0MiwxMSBAQAogb3BlbmJzZCopCiAgIHZlcnNpb25fdHlwZT1zdW5vcwogICBuZWVkX2xpYl9w
cmVmaXg9bm8KLSAgbmVlZF92ZXJzaW9uPW5vCisgICMgU29tZSBvbGRlciB2ZXJzaW9ucyBvZiBP
cGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQgbGlicy4KKyAgY2FzZSAk
aG9zdF9vcyBpbgorICAgIG9wZW5ic2QzLjMgfCBvcGVuYnNkMy4zLiopIG5lZWRfdmVyc2lvbj15
ZXMgOzsKKyAgICAqKSAgICAgICAgICAgICAgICAgICAgICAgICBuZWVkX3ZlcnNpb249bm8gIDs7
CisgIGVzYWMKICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh
cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKICAg
ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKICAg
c2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKQEAgLTE3NjU0LDcgKzE4MzM1LDcgQEAKICAg
bHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgogICBs
dF9zdGF0dXM9JGx0X2RsdW5rbm93bgogICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0IDw8RU9GCi0j
bGluZSAxNzY1NyAiY29uZmlndXJlIgorI2xpbmUgMTgzMzggImNvbmZpZ3VyZSIKICNpbmNsdWRl
ICJjb25mZGVmcy5oIgogCiAjaWYgSEFWRV9ETEZDTl9ICkBAIC0xNzc1Miw3ICsxODQzMyw3IEBA
CiAgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3JlPTIK
ICAgbHRfc3RhdHVzPSRsdF9kbHVua25vd24KICAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PEVP
RgotI2xpbmUgMTc3NTUgImNvbmZpZ3VyZSIKKyNsaW5lIDE4NDM2ICJjb25maWd1cmUiCiAjaW5j
bHVkZSAiY29uZmRlZnMuaCIKIAogI2lmIEhBVkVfRExGQ05fSApAQCAtMTc5NzAsNyArMTg2NTEs
MTMgQEAKICMgVGhlIGhvc3Qgc3lzdGVtLgogaG9zdF9hbGlhcz0kaG9zdF9hbGlhcwogaG9zdD0k
aG9zdAoraG9zdF9vcz0kaG9zdF9vcwogCisjIFRoZSBidWlsZCBzeXN0ZW0uCitidWlsZF9hbGlh
cz0kYnVpbGRfYWxpYXMKK2J1aWxkPSRidWlsZAorYnVpbGRfb3M9JGJ1aWxkX29zCisKICMgQW4g
ZWNobyBwcm9ncmFtIHRoYXQgZG9lcyBub3QgaW50ZXJwcmV0IGJhY2tzbGFzaGVzLgogZWNobz0k
bHRfZWNobwogCkBAIC0xODA0Niw3ICsxODczMyw3IEBACiAjIERvZXMgY29tcGlsZXIgc2ltdWx0
YW5lb3VzbHkgc3VwcG9ydCAtYyBhbmQgLW8gb3B0aW9ucz8KIGNvbXBpbGVyX2Nfbz0kbHRfbHRf
Y3ZfcHJvZ19jb21waWxlcl9jX29fR0NKCiAKLSMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9p
bmcgY29tcGlsYXRpb24gPworIyBNdXN0IHdlIGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxh
dGlvbj8KIG5lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKIAogIyBEbyB3ZSBuZWVkIHRoZSBsaWIg
cHJlZml4IGZvciBtb2R1bGVzPwpAQCAtMTgyOTQsMTEgKzE4OTgxLDM1IEBACiBjb21waWxlcj0k
Q0MKIAogCisjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQor
YWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0CitwcmludGYgIiRsdF9zaW1wbGVfY29tcGls
ZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0CitldmFsICIkYWNfY29tcGlsZSIgMj4mMSA+
L2Rldi9udWxsIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5lcnIKK19sdF9jb21waWxlcl9ib2ls
ZXJwbGF0ZT1gY2F0IGNvbmZ0ZXN0LmVycmAKKyRybSBjb25mdGVzdCoKKworYWNfb3V0ZmlsZT1j
b25mdGVzdC4kYWNfb2JqZXh0CitwcmludGYgIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID5j
b25mdGVzdC4kYWNfZXh0CitldmFsICIkYWNfbGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAn
L14kL2QnID5jb25mdGVzdC5lcnIKK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVz
dC5lcnJgCiskcm0gY29uZnRlc3QqCisKKwogIyBBbGxvdyBDQyB0byBiZSBhIHByb2dyYW0gbmFt
ZSB3aXRoIGFyZ3VtZW50cy4KIGx0X3NhdmVfQ0M9IiRDQyIKIENDPSR7UkMtIndpbmRyZXMifQog
Y29tcGlsZXI9JENDCiBjb21waWxlcl9SQz0kQ0MKK2ZvciBjY190ZW1wIGluICRjb21waWxlciIi
OyBkbworICBjYXNlICRjY190ZW1wIGluCisgICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBj
Y2FjaGUgfCAqW1xcL11jY2FjaGUgKSA7OworICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1
cmlmeSB8ICpbXFwvXXB1cmlmeSApIDs7CisgICAgXC0qKSA7OworICAgICopIGJyZWFrOzsKKyAg
ZXNhYworZG9uZQorY2NfYmFzZW5hbWU9YCRlY2hvICJYJGNjX3RlbXAiIHwgJFhzZWQgLWUgJ3Ml
LiovJSUnIC1lICJzJV4kaG9zdF9hbGlhcy0lJSJgCisKIGx0X2N2X3Byb2dfY29tcGlsZXJfY19v
X1JDPXllcwogCiAjIFRoZSBlbHNlIGNsYXVzZSBzaG91bGQgb25seSBmaXJlIHdoZW4gYm9vdHN0
cmFwcGluZyB0aGUKQEAgLTE4NDE1LDcgKzE5MTI2LDEzIEBACiAjIFRoZSBob3N0IHN5c3RlbS4K
IGhvc3RfYWxpYXM9JGhvc3RfYWxpYXMKIGhvc3Q9JGhvc3QKK2hvc3Rfb3M9JGhvc3Rfb3MKIAor
IyBUaGUgYnVpbGQgc3lzdGVtLgorYnVpbGRfYWxpYXM9JGJ1aWxkX2FsaWFzCitidWlsZD0kYnVp
bGQKK2J1aWxkX29zPSRidWlsZF9vcworCiAjIEFuIGVjaG8gcHJvZ3JhbSB0aGF0IGRvZXMgbm90
IGludGVycHJldCBiYWNrc2xhc2hlcy4KIGVjaG89JGx0X2VjaG8KIApAQCAtMTg0OTEsNyArMTky
MDgsNyBAQAogIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1v
IG9wdGlvbnM/CiBjb21waWxlcl9jX289JGx0X2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX1JDCiAK
LSMgTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4gZG9pbmcgY29tcGlsYXRpb24gPworIyBNdXN0IHdl
IGxvY2sgZmlsZXMgd2hlbiBkb2luZyBjb21waWxhdGlvbj8KIG5lZWRfbG9ja3M9JGx0X25lZWRf
bG9ja3MKIAogIyBEbyB3ZSBuZWVkIHRoZSBsaWIgcHJlZml4IGZvciBtb2R1bGVzPwpAQCAtMTkw
OTUsNiArMTk4MTIsOCBAQAogCiAKIAoraWYgdGVzdCAieCR3YW50X2NwcCIgPSAieHllcyIgLWEg
LW4gIiRDWFgiCit0aGVuCiAKIAogYWNfZXh0PWNjCkBAIC0xOTEwNSw2ICsxOTgyNCw3IEBACiAK
IAogCisKIGZvciBhY19oZWFkZXIgaW4gc3RyaW5nCiBkbwogYXNfYWNfSGVhZGVyPWBlY2hvICJh
Y19jdl9oZWFkZXJfJGFjX2hlYWRlciIgfCAkYXNfdHJfc2hgCkBAIC0xOTI0OSw5ICsxOTk2OSw5
IEBACiAgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICNkZWZpbmUgYGVjaG8gIkhBVkVfJGFj
X2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCiBfQUNFT0YKLSBwY3JlX2hhc19jcHBfaGVhZGVycz0i
MSIKKyBwY3JlX2hhdmVfY3BwX2hlYWRlcnM9IjEiCiBlbHNlCi0gIHBjcmVfaGFzX2NwcF9oZWFk
ZXJzPSIwIgorICBwY3JlX2hhdmVfY3BwX2hlYWRlcnM9IjAiCiBmaQogCiBkb25lCkBAIC0xOTQw
MSw5ICsyMDEyMSw5IEBACiAgIGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKICNkZWZpbmUgYGVj
aG8gIkhBVkVfJGFjX2hlYWRlciIgfCAkYXNfdHJfY3BwYCAxCiBfQUNFT0YKLSBwY3JlX2hhc19i
aXRzX3R5cGVfdHJhaXRzPSIxIgorIHBjcmVfaGF2ZV9iaXRzX3R5cGVfdHJhaXRzPSIxIgogZWxz
ZQotICBwY3JlX2hhc19iaXRzX3R5cGVfdHJhaXRzPSIwIgorICBwY3JlX2hhdmVfYml0c190eXBl
X3RyYWl0cz0iMCIKIGZpCiAKIGRvbmUKQEAgLTE5NTUzLDkgKzIwMjczLDkgQEAKICAgY2F0ID4+
Y29uZmRlZnMuaCA8PF9BQ0VPRgogI2RlZmluZSBgZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRh
c190cl9jcHBgIDEKIF9BQ0VPRgotIHBjcmVfaGFzX3R5cGVfdHJhaXRzPSIxIgorIHBjcmVfaGF2
ZV90eXBlX3RyYWl0cz0iMSIKIGVsc2UKLSAgcGNyZV9oYXNfdHlwZV90cmFpdHM9IjAiCisgIHBj
cmVfaGF2ZV90eXBlX3RyYWl0cz0iMCIKIGZpCiAKIGRvbmUKQEAgLTE5NTY4LDkgKzIwMjg4LDE0
IEBACiBhY19saW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdT
ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwogYWNfY29tcGlsZXJfZ251PSRh
Y19jdl9jX2NvbXBpbGVyX2dudQogCitmaQogCi1pZiB0ZXN0IC1uICIkYWNfY3ZfcHJvZ19hY19j
dF9DWFgiIC1hICIkcGNyZV9oYXNfY3BwX2hlYWRlcnMiID0gMTsgdGhlbgoraWYgdGVzdCAieCR3
YW50X2NwcCIgPSAieHllcyIgLWEgLW4gIiRDWFgiIC1hICIkcGNyZV9oYXZlX2NwcF9oZWFkZXJz
IiA9IDE7IHRoZW4KICAgTUFZQkVfQ1BQX1RBUkdFVFM9JyQoQ1BQX1RBUkdFVFMpJworICBIQVZF
X0NQUD0KK2Vsc2UKKyAgTUFZQkVfQ1BQX1RBUkdFVFM9CisgIEhBVkVfQ1BQPSIjIgogZmkKIAog
CkBAIC0xOTgxMiw5ICsyMDUzNyw5IEBACiAjZGVmaW5lIEhBVkVfTE9OR19MT05HIDEKIF9BQ0VP
RgogCi1wY3JlX2hhc19sb25nX2xvbmc9IjEiCitwY3JlX2hhdmVfbG9uZ19sb25nPSIxIgogZWxz
ZQotICBwY3JlX2hhc19sb25nX2xvbmc9IjAiCisgIHBjcmVfaGF2ZV9sb25nX2xvbmc9IjAiCiBm
aQogCiBlY2hvICIkYXNfbWU6JExJTkVOTzogY2hlY2tpbmcgZm9yIHVuc2lnbmVkIGxvbmcgbG9u
ZyIgPiY1CkBAIC0xOTg3OSw5ICsyMDYwNCw5IEBACiAjZGVmaW5lIEhBVkVfVU5TSUdORURfTE9O
R19MT05HIDEKIF9BQ0VPRgogCi1wY3JlX2hhc191bG9uZ19sb25nPSIxIgorcGNyZV9oYXZlX3Vs
b25nX2xvbmc9IjEiCiBlbHNlCi0gIHBjcmVfaGFzX3Vsb25nX2xvbmc9IjAiCisgIHBjcmVfaGF2
ZV91bG9uZ19sb25nPSIwIgogZmkKIAogCkBAIC0yMDgxNCwxMSArMjE1MzksMTIgQEAKIHMsQEZG
TEFHU0AsJEZGTEFHUyw7dCB0CiBzLEBhY19jdF9GNzdALCRhY19jdF9GNzcsO3QgdAogcyxATElC
VE9PTEAsJExJQlRPT0wsO3QgdAotcyxAcGNyZV9oYXNfYml0c190eXBlX3RyYWl0c0AsJHBjcmVf
aGFzX2JpdHNfdHlwZV90cmFpdHMsO3QgdAotcyxAcGNyZV9oYXNfdHlwZV90cmFpdHNALCRwY3Jl
X2hhc190eXBlX3RyYWl0cyw7dCB0CitzLEBwY3JlX2hhdmVfYml0c190eXBlX3RyYWl0c0AsJHBj
cmVfaGF2ZV9iaXRzX3R5cGVfdHJhaXRzLDt0IHQKK3MsQHBjcmVfaGF2ZV90eXBlX3RyYWl0c0As
JHBjcmVfaGF2ZV90eXBlX3RyYWl0cyw7dCB0CiBzLEBNQVlCRV9DUFBfVEFSR0VUU0AsJE1BWUJF
X0NQUF9UQVJHRVRTLDt0IHQKLXMsQHBjcmVfaGFzX2xvbmdfbG9uZ0AsJHBjcmVfaGFzX2xvbmdf
bG9uZyw7dCB0Ci1zLEBwY3JlX2hhc191bG9uZ19sb25nQCwkcGNyZV9oYXNfdWxvbmdfbG9uZyw7
dCB0CitzLEBIQVZFX0NQUEAsJEhBVkVfQ1BQLDt0IHQKK3MsQHBjcmVfaGF2ZV9sb25nX2xvbmdA
LCRwY3JlX2hhdmVfbG9uZ19sb25nLDt0IHQKK3MsQHBjcmVfaGF2ZV91bG9uZ19sb25nQCwkcGNy
ZV9oYXZlX3Vsb25nX2xvbmcsO3QgdAogcyxAQlVJTERfRVhFRVhUQCwkQlVJTERfRVhFRVhULDt0
IHQKIHMsQEJVSUxEX09CSkVYVEAsJEJVSUxEX09CSkVYVCw7dCB0CiBzLEBDQ19GT1JfQlVJTERA
LCRDQ19GT1JfQlVJTEQsO3QgdApJbmRleDogcGNyZWNwcC5oLmluCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBj
cmVjcHAuaC5pbgkocmV2aXNpb24gMikKKysrIHBjcmVjcHAuaC5pbgkocmV2aXNpb24gMykKQEAg
LTY5MCwxMCArNjkwLDEwIEBACiAgIFBDUkVfTUFLRV9QQVJTRVIodW5zaWduZWQgaW50LCAgICAg
ICBwYXJzZV91aW50KTsKICAgUENSRV9NQUtFX1BBUlNFUihsb25nLCAgICAgICAgICAgICAgIHBh
cnNlX2xvbmcpOwogICBQQ1JFX01BS0VfUEFSU0VSKHVuc2lnbmVkIGxvbmcsICAgICAgcGFyc2Vf
dWxvbmcpOwotI2lmIEBwY3JlX2hhc19sb25nX2xvbmdACisjaWYgQHBjcmVfaGF2ZV9sb25nX2xv
bmdACiAgIFBDUkVfTUFLRV9QQVJTRVIobG9uZyBsb25nLCAgICAgICAgICBwYXJzZV9sb25nbG9u
Zyk7CiAjZW5kaWYKLSNpZiBAcGNyZV9oYXNfdWxvbmdfbG9uZ0AKKyNpZiBAcGNyZV9oYXZlX3Vs
b25nX2xvbmdACiAgIFBDUkVfTUFLRV9QQVJTRVIodW5zaWduZWQgbG9uZyBsb25nLCBwYXJzZV91
bG9uZ2xvbmcpOwogI2VuZGlmCiAgIFBDUkVfTUFLRV9QQVJTRVIoZmxvYXQsICAgICAgICAgICAg
ICBwYXJzZV9mbG9hdCk7CkBAIC03NjksMTAgKzc2OSwxMCBAQAogTUFLRV9JTlRFR0VSX1BBUlNF
Uih1bnNpZ25lZCBpbnQsICAgICAgIHVpbnQpOwogTUFLRV9JTlRFR0VSX1BBUlNFUihsb25nLCAg
ICAgICAgICAgICAgIGxvbmcpOwogTUFLRV9JTlRFR0VSX1BBUlNFUih1bnNpZ25lZCBsb25nLCAg
ICAgIHVsb25nKTsKLSNpZiBAcGNyZV9oYXNfbG9uZ19sb25nQAorI2lmIEBwY3JlX2hhdmVfbG9u
Z19sb25nQAogTUFLRV9JTlRFR0VSX1BBUlNFUihsb25nIGxvbmcsICAgICAgICAgIGxvbmdsb25n
KTsKICNlbmRpZgotI2lmIEBwY3JlX2hhc191bG9uZ19sb25nQAorI2lmIEBwY3JlX2hhdmVfdWxv
bmdfbG9uZ0AKIE1BS0VfSU5URUdFUl9QQVJTRVIodW5zaWduZWQgbG9uZyBsb25nLCB1bG9uZ2xv
bmcpOwogI2VuZGlmCiAKSW5kZXg6IGNvbmZpZy5ndWVzcwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWcu
Z3Vlc3MJKHJldmlzaW9uIDIpCisrKyBjb25maWcuZ3Vlc3MJKHJldmlzaW9uIDMpCkBAIC0xLDkg
KzEsOSBAQAogIyEgL2Jpbi9zaAogIyBBdHRlbXB0IHRvIGd1ZXNzIGEgY2Fub25pY2FsIHN5c3Rl
bSBuYW1lLgogIyAgIENvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5Niwg
MTk5NywgMTk5OCwgMTk5OSwKLSMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0IEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIw
MDQsIDIwMDUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiAKLXRpbWVzdGFtcD0nMjAw
NC0wNy0xOScKK3RpbWVzdGFtcD0nMjAwNS0wMy0yNCcKIAogIyBUaGlzIGZpbGUgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAogIyB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieQpAQCAtNTMsNyArNTMsNyBAQAogR05VIGNvbmZpZy5ndWVzcyAoJHRpbWVzdGFtcCkKIAog
T3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLgotQ29weXJpZ2h0IChDKSAxOTkyLCAx
OTkzLCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAy
LCAyMDAzLCAyMDA0CitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYs
IDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNl
ZSB0aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwpAQCAtMTM2
LDYgKzEzNiwyMyBAQAogVU5BTUVfU1lTVEVNPWAodW5hbWUgLXMpIDI+L2Rldi9udWxsYCAgfHwg
VU5BTUVfU1lTVEVNPXVua25vd24KIFVOQU1FX1ZFUlNJT049YCh1bmFtZSAtdikgMj4vZGV2L251
bGxgIHx8IFVOQU1FX1ZFUlNJT049dW5rbm93bgogCitpZiBbICIke1VOQU1FX1NZU1RFTX0iID0g
IkxpbnV4IiBdIDsgdGhlbgorCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKKwljYXQgPDwgRU9GID4g
JGR1bW15LmMKKwkjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKwkjaWZkZWYgX19VQ0xJQkNfXworCSMg
aWZkZWYgX19VQ0xJQkNfQ09ORklHX1ZFUlNJT05fXworCUxJQkM9dWNsaWJjIF9fVUNMSUJDX0NP
TkZJR19WRVJTSU9OX18KKwkjIGVsc2UKKwlMSUJDPXVjbGliYworCSMgZW5kaWYKKwkjZWxzZQor
CUxJQkM9Z251CisJI2VuZGlmCitFT0YKKwlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRkdW1teS5j
IDI+L2Rldi9udWxsIHwgZ3JlcCBMSUJDPSB8IHNlZCAtZSAnczogOjpnJ2AKK2ZpCisKICMgTm90
ZTogb3JkZXIgaXMgc2lnbmlmaWNhbnQgLSB0aGUgY2FzZSBicmFuY2hlcyBhcmUgbm90IGV4Y2x1
c2l2ZS4KIAogY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFNRV9S
RUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgpAQCAtMjAzLDkgKzIyMCw2IEBACiAgICAgYW1p
Z2E6T3BlbkJTRDoqOiopCiAJZWNobyBtNjhrLXVua25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFT
RX0KIAlleGl0IDAgOzsKLSAgICBhcmM6T3BlbkJTRDoqOiopCi0JZWNobyBtaXBzZWwtdW5rbm93
bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQotCWV4aXQgMCA7OwogICAgIGNhdHM6T3BlbkJTRDoq
OiopCiAJZWNobyBhcm0tdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgMCA7
OwpAQCAtMjMwLDE4ICsyNDQsMTIgQEAKICAgICBtdm1lcHBjOk9wZW5CU0Q6KjoqKQogCWVjaG8g
cG93ZXJwYy11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JFTEVBU0V9CiAJZXhpdCAwIDs7Ci0gICAg
cG1heDpPcGVuQlNEOio6KikKLQllY2hvIG1pcHNlbC11bmtub3duLW9wZW5ic2Qke1VOQU1FX1JF
TEVBU0V9Ci0JZXhpdCAwIDs7CiAgICAgc2dpOk9wZW5CU0Q6KjoqKQotCWVjaG8gbWlwc2ViLXVu
a25vd24tb3BlbmJzZCR7VU5BTUVfUkVMRUFTRX0KKwllY2hvIG1pcHM2NC11bmtub3duLW9wZW5i
c2Qke1VOQU1FX1JFTEVBU0V9CiAJZXhpdCAwIDs7CiAgICAgc3VuMzpPcGVuQlNEOio6KikKIAll
Y2hvIG02OGstdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgMCA7OwotICAg
IHdncmlzYzpPcGVuQlNEOio6KikKLQllY2hvIG1pcHNlbC11bmtub3duLW9wZW5ic2Qke1VOQU1F
X1JFTEVBU0V9Ci0JZXhpdCAwIDs7CiAgICAgKjpPcGVuQlNEOio6KikKIAllY2hvICR7VU5BTUVf
TUFDSElORX0tdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxFQVNFfQogCWV4aXQgMCA7OwpAQCAt
MzI4LDYgKzMzNiw5IEBACiAgICAgKjpPUy8zOTA6KjoqKQogCWVjaG8gaTM3MC1pYm0tb3BlbmVk
aXRpb24KIAlleGl0IDAgOzsKKyAgICAqOnovVk06KjoqKQorCWVjaG8gczM5MC1pYm0tenZtb2UK
KwlleGl0IDAgOzsKICAgICAqOk9TNDAwOio6KikKICAgICAgICAgZWNobyBwb3dlcnBjLWlibS1v
czQwMAogCWV4aXQgMCA7OwpAQCAtMzUxLDcgKzM2Miw3IEBACiAgICAgRFJTPzYwMDA6dW5peDo0
LjA6NiopCiAJZWNobyBzcGFyYy1pY2wtbng2CiAJZXhpdCAwIDs7Ci0gICAgRFJTPzYwMDA6VU5J
WF9TVjo0LjIqOjcqKQorICAgIERSUz82MDAwOlVOSVhfU1Y6NC4yKjo3KiB8IERSUz82MDAwOmlz
aXM6NC4yKjo3KikKIAljYXNlIGAvdXNyL2Jpbi91bmFtZSAtcGAgaW4KIAkgICAgc3BhcmMpIGVj
aG8gc3BhcmMtaWNsLW54NyAmJiBleGl0IDAgOzsKIAllc2FjIDs7CkBAIC04MTAsNiArODIxLDkg
QEAKICAgICBpKjpVV0lOKjoqKQogCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy11d2luCiAJZXhp
dCAwIDs7CisgICAgYW1kNjQ6Q1lHV0lOKjoqOiopCisJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3
aW4KKwlleGl0IDAgOzsKICAgICBwKjpDWUdXSU4qOiopCiAJZWNobyBwb3dlcnBjbGUtdW5rbm93
bi1jeWd3aW4KIAlleGl0IDAgOzsKQEAgLTgyOCwxOSArODQyLDI1IEBACiAJZWNobyAke1VOQU1F
X01BQ0hJTkV9LXBjLW1pbml4CiAJZXhpdCAwIDs7CiAgICAgYXJtKjpMaW51eDoqOiopCi0JZWNo
byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZWNobyAke1VOQU1FX01BQ0hJ
TkV9LXVua25vd24tbGludXgtJHtMSUJDfQogCWV4aXQgMCA7OwogICAgIGNyaXM6TGludXg6Kjoq
KQotCWVjaG8gY3Jpcy1heGlzLWxpbnV4LWdudQorCWVjaG8gY3Jpcy1heGlzLWxpbnV4LSR7TElC
Q30KIAlleGl0IDAgOzsKKyAgICBjcmlzdjMyOkxpbnV4Oio6KikKKwllY2hvIGNyaXN2MzItYXhp
cy1saW51eC0ke0xJQkN9CisJZXhpdCAwIDs7CisgICAgZnJ2OkxpbnV4Oio6KikKKyAgICAJZWNo
byBmcnYtdW5rbm93bi1saW51eC0ke0xJQkN9CisJZXhpdCAwIDs7CiAgICAgaWE2NDpMaW51eDoq
OiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisJZWNobyAke1VO
QU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtJHtMSUJDfQogCWV4aXQgMCA7OwogICAgIG0zMnIq
OkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwll
Y2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC0ke0xJQkN9CiAJZXhpdCAwIDs7CiAg
ICAgbTY4KjpMaW51eDoqOiopCi0JZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgt
Z251CisJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtJHtMSUJDfQogCWV4aXQg
MCA7OwogICAgIG1pcHM6TGludXg6KjoqKQogCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKQEAgLTg1
OSw3ICs4NzksNyBAQAogCSNlbmRpZgogRU9GCiAJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAkZHVt
bXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgXkNQVT1gCi0JdGVzdCB4IiR7Q1BVfSIgIT0geCAmJiBl
Y2hvICIke0NQVX0tdW5rbm93bi1saW51eC1nbnUiICYmIGV4aXQgMAorCXRlc3QgeCIke0NQVX0i
ICE9IHggJiYgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtJHtMSUJDfSIgJiYgZXhpdCAwCiAJ
OzsKICAgICBtaXBzNjQ6TGludXg6KjoqKQogCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKQEAgLTg3
OCwxMyArODk4LDEzIEBACiAJI2VuZGlmCiBFT0YKIAlldmFsIGAkQ0NfRk9SX0JVSUxEIC1FICRk
dW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCBeQ1BVPWAKLQl0ZXN0IHgiJHtDUFV9IiAhPSB4ICYm
IGVjaG8gIiR7Q1BVfS11bmtub3duLWxpbnV4LWdudSIgJiYgZXhpdCAwCisJdGVzdCB4IiR7Q1BV
fSIgIT0geCAmJiBlY2hvICIke0NQVX0tdW5rbm93bi1saW51eC0ke0xJQkN9IiAmJiBleGl0IDAK
IAk7OwogICAgIHBwYzpMaW51eDoqOiopCi0JZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtZ251
CisJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgtJHtMSUJDfQogCWV4aXQgMCA7OwogICAgIHBw
YzY0OkxpbnV4Oio6KikKLQllY2hvIHBvd2VycGM2NC11bmtub3duLWxpbnV4LWdudQorCWVjaG8g
cG93ZXJwYzY0LXVua25vd24tbGludXgtJHtMSUJDfQogCWV4aXQgMCA7OwogICAgIGFscGhhOkxp
bnV4Oio6KikKIAljYXNlIGBzZWQgLW4gJy9eY3B1IG1vZGVsL3MvXi4qOiBcKC4qXCkvXDEvcCcg
PCAvcHJvYy9jcHVpbmZvYCBpbgpAQCAtODk3LDM0ICs5MTcsMzQgQEAKIAkgIEVWNjgqKSBVTkFN
RV9NQUNISU5FPWFscGhhZXY2OCA7OwogICAgICAgICBlc2FjCiAJb2JqZHVtcCAtLXByaXZhdGUt
aGVhZGVycyAvYmluL3NoIHwgZ3JlcCBsZC5zby4xID4vZGV2L251bGwKLQlpZiB0ZXN0ICIkPyIg
PSAwIDsgdGhlbiBMSUJDPSJsaWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotCWVjaG8gJHtVTkFN
RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudSR7TElCQ30KKwlpZiB0ZXN0ICIkPyIgPSAwIDsg
dGhlbiBMSUJDPSJnbnVsaWJjMSIgOyBmaQorCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du
LWxpbnV4LSR7TElCQ30KIAlleGl0IDAgOzsKICAgICBwYXJpc2M6TGludXg6KjoqIHwgaHBwYTpM
aW51eDoqOiopCiAJIyBMb29rIGZvciBDUFUgbGV2ZWwKIAljYXNlIGBncmVwICdeY3B1W15hLXpd
KjonIC9wcm9jL2NwdWluZm8gMj4vZGV2L251bGwgfCBjdXQgLWQnICcgLWYyYCBpbgotCSAgUEE3
KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7Ci0JICBQQTgqKSBlY2hvIGhwcGEy
LjAtdW5rbm93bi1saW51eC1nbnUgOzsKLQkgICopICAgIGVjaG8gaHBwYS11bmtub3duLWxpbnV4
LWdudSA7OworCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtJHtMSUJDfSA7Owor
CSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgtJHtMSUJDfSA7OworCSAgKikgICAg
ZWNobyBocHBhLXVua25vd24tbGludXgtJHtMSUJDfSA7OwogCWVzYWMKIAlleGl0IDAgOzsKICAg
ICBwYXJpc2M2NDpMaW51eDoqOiogfCBocHBhNjQ6TGludXg6KjoqKQotCWVjaG8gaHBwYTY0LXVu
a25vd24tbGludXgtZ251CisJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC0ke0xJQkN9CiAJZXhp
dCAwIDs7CiAgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCiAJZWNobyAke1VO
QU1FX01BQ0hJTkV9LWlibS1saW51eAogCWV4aXQgMCA7OwogICAgIHNoNjQqOkxpbnV4Oio6KikK
LSAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251CisgICAgCWVjaG8g
JHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LSR7TElCQ30KIAlleGl0IDAgOzsKICAgICBz
aCo6TGludXg6KjoqKQotCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQor
CWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LSR7TElCQ30KIAlleGl0IDAgOzsK
ICAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFyYzY0OkxpbnV4Oio6KikKLQllY2hvICR7VU5BTUVf
TUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93
bi1saW51eC0ke0xJQkN9CiAJZXhpdCAwIDs7CiAgICAgeDg2XzY0OkxpbnV4Oio6KikKLQllY2hv
IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQorCWVjaG8geDg2XzY0LXVua25vd24tbGludXgtJHtM
SUJDfQogCWV4aXQgMCA7OwogICAgIGkqODY6TGludXg6KjoqKQogCSMgVGhlIEJGRCBsaW5rZXIg
a25vd3Mgd2hhdCB0aGUgZGVmYXVsdCBvYmplY3QgZmlsZSBmb3JtYXQgaXMsIHNvCkBAIC05Mzks
MjAgKzk1OSwyMSBAQAogCQkJCSAgICBwJ2AKICAgICAgICAgY2FzZSAiJGxkX3N1cHBvcnRlZF90
YXJnZXRzIiBpbgogCSAgZWxmMzItaTM4NikKLQkJVEVOVEFUSVZFPSIke1VOQU1FX01BQ0hJTkV9
LXBjLWxpbnV4LWdudSIKKwkJVEVOVEFUSVZFPSIke1VOQU1FX01BQ0hJTkV9LXBjLWxpbnV4LSR7
TElCQ30iCiAJCTs7CiAJICBhLm91dC1pMzg2LWxpbnV4KQotCQllY2hvICIke1VOQU1FX01BQ0hJ
TkV9LXBjLWxpbnV4LWdudWFvdXQiCisJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMtbGludXgt
JHtMSUJDfWFvdXQiCiAJCWV4aXQgMCA7OwogCSAgY29mZi1pMzg2KQotCQllY2hvICIke1VOQU1F
X01BQ0hJTkV9LXBjLWxpbnV4LWdudWNvZmYiCisJCWVjaG8gIiR7VU5BTUVfTUFDSElORX0tcGMt
bGludXgtJHtMSUJDfWNvZmYiCiAJCWV4aXQgMCA7OwogCSAgIiIpCiAJCSMgRWl0aGVyIGEgcHJl
LUJGRCBhLm91dCBsaW5rZXIgKGxpbnV4LWdudW9sZGxkKSBvcgogCQkjIG9uZSB0aGF0IGRvZXMg
bm90IGdpdmUgdXMgdXNlZnVsIC0taGVscC4KLQkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1s
aW51eC1nbnVvbGRsZCIKKwkJZWNobyAiJHtVTkFNRV9NQUNISU5FfS1wYy1saW51eC0ke0xJQkN9
b2xkbGQiCiAJCWV4aXQgMCA7OwogCWVzYWMKKwlpZiBbICJgZWNobyAkTElCQyB8IHNlZCAtZSAn
czp1Y2xpYmM6OidgIiAhPSAiJExJQkMiIF0gOyB0aGVuIGVjaG8gIiRURU5UQVRJVkUiICYmIGV4
aXQgMCA7IGZpCiAJIyBEZXRlcm1pbmUgd2hldGhlciB0aGUgZGVmYXVsdCBjb21waWxlciBpcyBh
Lm91dCBvciBlbGYKIAlldmFsICRzZXRfY2NfZm9yX2J1aWxkCiAJc2VkICdzL14JLy8nIDw8IEVP
RiA+JGR1bW15LmMKQEAgLTExNzksOSArMTIwMCwxMCBAQAogCWVjaG8gJHtVTkFNRV9NQUNISU5F
fS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVMRUFTRX0KIAlleGl0IDAgOzsKICAgICAqOkRhcndp
bjoqOiopCi0JY2FzZSBgdW5hbWUgLXBgIGluCisJVU5BTUVfUFJPQ0VTU09SPWB1bmFtZSAtcGAg
fHwgVU5BTUVfUFJPQ0VTU09SPXVua25vd24KKwljYXNlICRVTkFNRV9QUk9DRVNTT1IgaW4KIAkg
ICAgKjg2KSBVTkFNRV9QUk9DRVNTT1I9aTY4NiA7OwotCSAgICBwb3dlcnBjKSBVTkFNRV9QUk9D
RVNTT1I9cG93ZXJwYyA7OworCSAgICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7
OwogCWVzYWMKIAllY2hvICR7VU5BTUVfUFJPQ0VTU09SfS1hcHBsZS1kYXJ3aW4ke1VOQU1FX1JF
TEVBU0V9CiAJZXhpdCAwIDs7CkBAIC0xMTk2LDYgKzEyMTgsOSBAQAogICAgICo6UU5YOio6NCop
CiAJZWNobyBpMzg2LXBjLXFueAogCWV4aXQgMCA7OworICAgIE5TRS0/Ok5PTlNUT1BfS0VSTkVM
Oio6KikKKwllY2hvIG5zZS10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQorCWV4aXQgMCA7Owog
ICAgIE5TUi0/Ok5PTlNUT1BfS0VSTkVMOio6KikKIAllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFN
RV9SRUxFQVNFfQogCWV4aXQgMCA7OwpAQCAtMTI0OSw3ICsxMjc0LDEwIEBACiAJICAgIEEqKSBl
Y2hvIGFscGhhLWRlYy12bXMgJiYgZXhpdCAwIDs7CiAJICAgIEkqKSBlY2hvIGlhNjQtZGVjLXZt
cyAmJiBleGl0IDAgOzsKIAkgICAgViopIGVjaG8gdmF4LWRlYy12bXMgJiYgZXhpdCAwIDs7Ci0J
ZXNhYworCWVzYWMgOzsKKyAgICAqOlhFTklYOio6U3lzVikKKwllY2hvIGkzODYtcGMteGVuaXgK
KwlleGl0IDAgOzsKIGVzYWMKIAogI2VjaG8gJyhObyB1bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91
dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCkBAIC0xNDA5LDcgKzE0MzcsOSBAQAogdGhlIG9w
ZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2aXNlZCB0aGF0IHlvdQogZG93
bmxvYWQgdGhlIG1vc3QgdXAgdG8gZGF0ZSB2ZXJzaW9uIG9mIHRoZSBjb25maWcgc2NyaXB0cyBm
cm9tCiAKLSAgICBmdHA6Ly9mdHAuZ251Lm9yZy9wdWIvZ251L2NvbmZpZy8KKyAgaHR0cDovL3Nh
dmFubmFoLmdudS5vcmcvY2dpLWJpbi92aWV3Y3ZzLypjaGVja291dCovY29uZmlnL2NvbmZpZy9j
b25maWcuZ3Vlc3MKK2FuZAorICBodHRwOi8vc2F2YW5uYWguZ251Lm9yZy9jZ2ktYmluL3ZpZXdj
dnMvKmNoZWNrb3V0Ki9jb25maWcvY29uZmlnL2NvbmZpZy5zdWIKIAogSWYgdGhlIHZlcnNpb24g
eW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCiBzZW5kIHRoZSBmb2xs
b3dpbmcgZGF0YSBhbmQgYW55IGluZm9ybWF0aW9uIHlvdSB0aGluayBtaWdodCBiZQpJbmRleDog
Y29uZmlnLnN1Ygo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWcuc3ViCShyZXZpc2lvbiAyKQorKysgY29u
ZmlnLnN1YgkocmV2aXNpb24gMykKQEAgLTEsOSArMSw5IEBACiAjISAvYmluL3NoCiAjIENvbmZp
Z3VyYXRpb24gdmFsaWRhdGlvbiBzdWJyb3V0aW5lIHNjcmlwdC4KICMgICBDb3B5cmlnaHQgKEMp
IDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0jICAgMjAw
MCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4K
KyMgICAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1IEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbiwgSW5jLgogCi10aW1lc3RhbXA9JzIwMDQtMDYtMjQnCit0aW1lc3RhbXA9JzIwMDUt
MDItMTAnCiAKICMgVGhpcyBmaWxlIGlzIChpbiBwcmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05V
IHNvZnR3YXJlLgogIyBUaGUgcHJlc2VuY2Ugb2YgYSBtYWNoaW5lIGluIHRoaXMgZmlsZSBzdWdn
ZXN0cyB0aGF0IFNPTUUgR05VIHNvZnR3YXJlCkBAIC03MCw3ICs3MCw3IEBACiB2ZXJzaW9uPSJc
CiBHTlUgY29uZmlnLnN1YiAoJHRpbWVzdGFtcCkKIAotQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkz
LCAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAy
MDAzLCAyMDA0CitDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5
OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUKIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgogCiBUaGlzIGlzIGZyZWUgc29mdHdhcmU7IHNlZSB0
aGUgc291cmNlIGZvciBjb3B5aW5nIGNvbmRpdGlvbnMuICBUaGVyZSBpcyBOTwpAQCAtMjM3LDcg
KzIzNyw3IEBACiAJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0gfCBocHBhMi4w
IHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAogCXwgaTM3MCB8IGk4NjAgfCBpOTYwIHwgaWE2NCBc
CiAJfCBpcDJrIHwgaXEyMDAwIFwKLQl8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwg
bTg4ayB8IG1jb3JlIFwKKwl8IG0zMnIgfCBtMzJybGUgfCBtNjgwMDAgfCBtNjhrIHwgbTg4ayB8
IG1heHEgfCBtY29yZSBcCiAJfCBtaXBzIHwgbWlwc2JlIHwgbWlwc2ViIHwgbWlwc2VsIHwgbWlw
c2xlIFwKIAl8IG1pcHMxNiBcCiAJfCBtaXBzNjQgfCBtaXBzNjRlbCBcCkBAIC0yNTMsNiArMjUz
LDcgQEAKIAl8IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVsIFwKIAl8IG1pcHNpc2E2NHNy
NzFrIHwgbWlwc2lzYTY0c3I3MWtlbCBcCiAJfCBtaXBzdHgzOSB8IG1pcHN0eDM5ZWwgXAorCXwg
bWlwczY0cjU5MDAgfCBtaXBzNjRyNTkwMGVsIFwKIAl8IG1uMTAyMDAgfCBtbjEwMzAwIFwKIAl8
IG1zcDQzMCBcCiAJfCBuczE2ayB8IG5zMzJrIFwKQEAgLTI2NCwxMCArMjY1LDEwIEBACiAJfCBz
aDY0IHwgc2g2NGxlIFwKIAl8IHNwYXJjIHwgc3BhcmM2NCB8IHNwYXJjODZ4IHwgc3BhcmNsZXQg
fCBzcGFyY2xpdGUgfCBzcGFyY3Y4IHwgc3BhcmN2OSB8IHNwYXJjdjliIFwKIAl8IHN0cm9uZ2Fy
bSBcCi0JfCB0YWhvZSB8IHRodW1iIHwgdGljNHggfCB0aWM4MCB8IHRyb24gXAorCXwgdGFob2Ug
fCBkdnAgfCB0aHVtYiB8IHRpYzR4IHwgdGljODAgfCB0cm9uIFwKIAl8IHY4NTAgfCB2ODUwZSBc
CiAJfCB3ZTMyayBcCi0JfCB4ODYgfCB4c2NhbGUgfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAorCXwg
eDg2IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYgfCB4dGVuc2EgXAogCXwgejhr
KQogCQliYXNpY19tYWNoaW5lPSRiYXNpY19tYWNoaW5lLXVua25vd24KIAkJOzsKQEAgLTMxMCw3
ICszMTEsNyBAQAogCXwgaXAyay0qIHwgaXEyMDAwLSogXAogCXwgbTMyci0qIHwgbTMycmxlLSog
XAogCXwgbTY4MDAwLSogfCBtNjgwWzAxMjM0Nl0wLSogfCBtNjgzNjAtKiB8IG02ODM/Mi0qIHwg
bTY4ay0qIFwKLQl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWNvcmUtKiBcCisJfCBtODgxMTAtKiB8
IG04OGstKiB8IG1heHEtKiB8IG1jb3JlLSogXAogCXwgbWlwcy0qIHwgbWlwc2JlLSogfCBtaXBz
ZWItKiB8IG1pcHNlbC0qIHwgbWlwc2xlLSogXAogCXwgbWlwczE2LSogXAogCXwgbWlwczY0LSog
fCBtaXBzNjRlbC0qIFwKQEAgLTMyNiw2ICszMjcsNyBAQAogCXwgbWlwc2lzYTY0c2IxLSogfCBt
aXBzaXNhNjRzYjFlbC0qIFwKIAl8IG1pcHNpc2E2NHNyNzFrLSogfCBtaXBzaXNhNjRzcjcxa2Vs
LSogXAogCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCisJfCBtaXBzNjRyNTkwMC0qIHwg
bWlwczY0cjU5MDBlbC0qIFwKIAl8IG1taXgtKiBcCiAJfCBtc3A0MzAtKiBcCiAJfCBub25lLSog
fCBucDEtKiB8IG5zMTZrLSogfCBuczMyay0qIFwKQEAgLTM0Myw4ICszNDUsOCBAQAogCXwgdHJv
bi0qIFwKIAl8IHY4NTAtKiB8IHY4NTBlLSogfCB2YXgtKiBcCiAJfCB3ZTMyay0qIFwKLQl8IHg4
Ni0qIHwgeDg2XzY0LSogfCB4cHMxMDAtKiB8IHhzY2FsZS0qIHwgeHN0b3JteTE2LSogXAotCXwg
eHRlbnNhLSogXAorCXwgeDg2LSogfCB4ODZfNjQtKiB8IHhwczEwMC0qIHwgeHNjYWxlLSogfCB4
c2NhbGVlW2JsXS0qIFwKKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhLSogXAogCXwgeW1wLSogXAog
CXwgejhrLSopCiAJCTs7CkBAIC00NTcsNiArNDU5LDkgQEAKIAljcmRzIHwgdW5vcykKIAkJYmFz
aWNfbWFjaGluZT1tNjhrLWNyZHMKIAkJOzsKKwljcmlzdjMyIHwgY3Jpc3YzMi0qIHwgZXRyYXhm
cyopCisJCWJhc2ljX21hY2hpbmU9Y3Jpc3YzMi1heGlzCisJCTs7CiAJY3JpcyB8IGNyaXMtKiB8
IGV0cmF4KikKIAkJYmFzaWNfbWFjaGluZT1jcmlzLWF4aXMKIAkJOzsKQEAgLTQ4Niw2ICs0OTEs
MTAgQEAKIAkJYmFzaWNfbWFjaGluZT1tODhrLW1vdG9yb2xhCiAJCW9zPS1zeXN2MwogCQk7Owor
CWRqZ3BwKQorCQliYXNpY19tYWNoaW5lPWk1ODYtcGMKKwkJb3M9LW1zZG9zZGpncHAKKwkJOzsK
IAlkcHgyMCB8IGRweDIwLSopCiAJCWJhc2ljX21hY2hpbmU9cnM2MDAwLWJ1bGwKIAkJb3M9LWJv
c3gKQEAgLTY1OCw2ICs2NjcsMjQgQEAKIAkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCiAJCW9z
PS1taW50CiAJCTs7CisJbWlwc0VFKiB8IGVlIHwgcHMyKQorCQliYXNpY19tYWNoaW5lPW1pcHM2
NHI1OTAwZWwtc2NlaQorCQljYXNlICRvcyBpbgorCQkgICAgLWxpbnV4KikKKwkJCTs7CisJCSAg
ICAqKQorCQkJb3M9LWVsZgorCQkJOzsKKwkJZXNhYworCQk7OworCWlvcCkKKwkJYmFzaWNfbWFj
aGluZT1taXBzZWwtc2NlaQorCQlvcz0taXJ4CisJCTs7CisJZHZwKQorCQliYXNpY19tYWNoaW5l
PWR2cC1zY2VpCisJCW9zPS1lbGYKKwkJOzsKIAltaXBzMyotKikKIAkJYmFzaWNfbWFjaGluZT1g
ZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2AKIAkJOzsKQEAg
LTEwMjYsNiArMTA1MywxMCBAQAogCQliYXNpY19tYWNoaW5lPWhwcGExLjEtd2luYm9uZAogCQlv
cz0tcHJvZWxmCiAJCTs7CisJeGJveCkKKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCisJCW9zPS1t
aW5ndzMyCisJCTs7CiAJeHBzIHwgeHBzMTAwKQogCQliYXNpY19tYWNoaW5lPXhwczEwMC1ob25l
eXdlbGwKIAkJOzsKQEAgLTExNjcsNyArMTE5OCw3IEBACiAJICAgICAgfCAtc3Rvcm0tY2hhb3Mq
IHwgLXRvcHMxMCogfCAtdGVuZXgqIHwgLXRvcHMyMCogfCAtaXRzKiBcCiAJICAgICAgfCAtb3My
KiB8IC12b3MqIHwgLXBhbG1vcyogfCAtdWNsaW51eCogfCAtbnVjbGV1cyogXAogCSAgICAgIHwg
LW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAtd2luZGlzcyog
XAotCSAgICAgIHwgLXBvd2VybWF4KiB8IC1kbml4KiB8IC1ueDYgfCAtbng3IHwgLXNlaSogfCAt
ZHJhZ29uZmx5KikKKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8
IC1zZWkqIHwgLWRyYWdvbmZseSogfCAtaXJ4KikKIAkjIFJlbWVtYmVyLCBlYWNoIGFsdGVybmF0
aXZlIE1VU1QgRU5EIElOICosIHRvIG1hdGNoIGEgdmVyc2lvbiBudW1iZXIuCiAJCTs7CiAJLXFu
eCopCkBAIC0xMjk0LDYgKzEzMjUsOSBAQAogCS1rYW9zKikKIAkJb3M9LWthb3MKIAkJOzsKKwkt
enZtb2UpCisJCW9zPS16dm1vZQorCQk7OwogCS1ub25lKQogCQk7OwogCSopCkluZGV4OiBSRUFE
TUUKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gUkVBRE1FCShyZXZpc2lvbiAyKQorKysgUkVBRE1FCShyZXZpc2lv
biAzKQpAQCAtOTQsNiArOTQsMTEgQEAKIFRoZXJlIGFyZSBzb21lIG9wdGlvbmFsIGZlYXR1cmVz
IHRoYXQgY2FuIGJlIGluY2x1ZGVkIG9yIG9taXR0ZWQgZnJvbSB0aGUgUENSRQogbGlicmFyeS4g
WW91IGNhbiByZWFkIG1vcmUgYWJvdXQgdGhlbSBpbiB0aGUgcGNyZWJ1aWxkIG1hbiBwYWdlLgog
CisuIElmIHlvdSB3YW50IHRvIHN1cHByZXNzIHRoZSBidWlsZGluZyBvZiB0aGUgQysrIHdyYXBw
ZXIgbGlicmFyeSwgeW91IGNhbiBhZGQKKyAgLS1kaXNhYmxlLWNwcCB0byB0aGUgImNvbmZpZ3Vy
ZSIgY29tbWFuZC4gT3RoZXJ3aXNlLCB3aGVuICJjb25maWd1cmUiIGlzIHJ1biwKKyAgd2lsbCB0
cnkgdG8gZmluZCBhIEMrKyBjb21waWxlciBhbmQgQysrIGhlYWRlciBmaWxlcywgYW5kIGlmIGl0
IHN1Y2NlZWRzLCBpdAorICB3aWxsIHRyeSB0byBidWlsZCB0aGUgQysrIHdyYXBwZXIuCisKIC4g
SWYgeW91IHdhbnQgdG8gbWFrZSB1c2Ugb2YgdGhlIHN1cHBvcnQgZm9yIFVURi04IGNoYXJhY3Rl
ciBzdHJpbmdzIGluIFBDUkUsCiAgIHlvdSBtdXN0IGFkZCAtLWVuYWJsZS11dGY4IHRvIHRoZSAi
Y29uZmlndXJlIiBjb21tYW5kLiBXaXRob3V0IGl0LCB0aGUgY29kZQogICBmb3IgaGFuZGxpbmcg
VVRGLTggaXMgbm90IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5LiAoRXZlbiB3aGVuIGluY2x1ZGVk
LCBpdApAQCAtNDg2LDQgKzQ5MSw0IEBACiBQaGlsaXAgSGF6ZWwKIEVtYWlsIGxvY2FsIHBhcnQ6
IHBoMTAKIEVtYWlsIGRvbWFpbjogY2FtLmFjLnVrCi1KdW5lIDIwMDUKK0F1Z3VzdCAyMDA1Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12120</attachid>
            <date>2006-12-30 07:51:34 -0800</date>
            <delta_ts>2006-12-30 07:51:34 -0800</delta_ts>
            <desc>Full pcre 6.3 to 6.4 dif</desc>
            <filename>pcre-6.3-6.4.diff</filename>
            <type>text/plain</type>
            <size>104007</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IHBjcmUuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZS5pbgkocmV2aXNpb24gMykKKysrIHBj
cmUuaW4JKHJldmlzaW9uIDQpCkBAIC0xLDI1OCArMCwwIEBACi0vKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICBQZXJsLUNvbXBhdGlibGUg
UmVndWxhciBFeHByZXNzaW9ucyAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKiovCi0KLS8qIEluIGl0cyBvcmlnaW5hbCBmb3JtLCB0aGlzIGlz
IHRoZSAuaW4gZmlsZSB0aGF0IGlzIHRyYW5zZm9ybWVkIGJ5Ci0iY29uZmlndXJlIiBpbnRvIHBj
cmUuaC4KLQotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9m
IENhbWJyaWRnZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci1tb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQotICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0g
ICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAiQVMgSVMiCi1BTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFCi1MSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi1D
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi0qLwotCi0jaWZuZGVmIF9QQ1JFX0gKLSNkZWZpbmUgX1BDUkVfSAot
Ci0vKiBUaGUgZmlsZSBwY3JlLmggaXMgYnVpbGQgYnkgImNvbmZpZ3VyZSIuIERvIG5vdCBlZGl0
IGl0OyBpbnN0ZWFkCi1tYWtlIGNoYW5nZXMgdG8gcGNyZS5pbi4gKi8KLQotI2RlZmluZSBQQ1JF
X01BSk9SICAgICAgICAgIEBQQ1JFX01BSk9SQAotI2RlZmluZSBQQ1JFX01JTk9SICAgICAgICAg
IEBQQ1JFX01JTk9SQAotI2RlZmluZSBQQ1JFX0RBVEUgICAgICAgICAgIEBQQ1JFX0RBVEVACi0K
LS8qIFdpbjMyIHVzZXMgRExMIGJ5IGRlZmF1bHQ7IGl0IG5lZWRzIHNwZWNpYWwgc3R1ZmYgZm9y
IGV4cG9ydGVkIGZ1bmN0aW9ucy4gKi8KLQotI2lmZGVmIF9XSU4zMgotIyAgaWZkZWYgUENSRV9E
RUZJTklUSU9OCi0jICAgIGlmZGVmIERMTF9FWFBPUlQKLSMgICAgICBkZWZpbmUgUENSRV9EQVRB
X1NDT1BFIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQotIyAgICBlbmRpZgotIyAgZWxzZQotIyAgICBp
Zm5kZWYgUENSRV9TVEFUSUMKLSMgICAgICBkZWZpbmUgUENSRV9EQVRBX1NDT1BFIGV4dGVybiBf
X2RlY2xzcGVjKGRsbGltcG9ydCkKLSMgICAgZW5kaWYKLSMgIGVuZGlmCi0jZW5kaWYKLQotLyog
Rm9yIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCB3ZSB1c2UgdGhlIHN0YW5kYXJkICJleHRlcm4i
LiAqLwotCi0jaWZuZGVmIFBDUkVfREFUQV9TQ09QRQotIyAgaWZkZWYgX19jcGx1c3BsdXMKLSMg
ICAgZGVmaW5lIFBDUkVfREFUQV9TQ09QRSAgICAgZXh0ZXJuICJDIgotIyAgZWxzZQotIyAgICBk
ZWZpbmUgUENSRV9EQVRBX1NDT1BFICAgICBleHRlcm4KLSMgIGVuZGlmCi0jZW5kaWYKLQotLyog
SGF2ZSB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHNpemVfdCBp
cyBkZWZpbmVkOwotaXQgaXMgbmVlZGVkIGhlcmUgZm9yIG1hbGxvYy4gKi8KLQotI2luY2x1ZGUg
PHN0ZGxpYi5oPgotCi0vKiBBbGxvdyBmb3IgQysrIHVzZXJzICovCi0KLSNpZmRlZiBfX2NwbHVz
cGx1cwotZXh0ZXJuICJDIiB7Ci0jZW5kaWYKLQotLyogT3B0aW9ucyAqLwotCi0jZGVmaW5lIFBD
UkVfQ0FTRUxFU1MgICAgICAgICAgIDB4MDAwMDAwMDEKLSNkZWZpbmUgUENSRV9NVUxUSUxJTkUg
ICAgICAgICAgMHgwMDAwMDAwMgotI2RlZmluZSBQQ1JFX0RPVEFMTCAgICAgICAgICAgICAweDAw
MDAwMDA0Ci0jZGVmaW5lIFBDUkVfRVhURU5ERUQgICAgICAgICAgIDB4MDAwMDAwMDgKLSNkZWZp
bmUgUENSRV9BTkNIT1JFRCAgICAgICAgICAgMHgwMDAwMDAxMAotI2RlZmluZSBQQ1JFX0RPTExB
Ul9FTkRPTkxZICAgICAweDAwMDAwMDIwCi0jZGVmaW5lIFBDUkVfRVhUUkEgICAgICAgICAgICAg
IDB4MDAwMDAwNDAKLSNkZWZpbmUgUENSRV9OT1RCT0wgICAgICAgICAgICAgMHgwMDAwMDA4MAot
I2RlZmluZSBQQ1JFX05PVEVPTCAgICAgICAgICAgICAweDAwMDAwMTAwCi0jZGVmaW5lIFBDUkVf
VU5HUkVFRFkgICAgICAgICAgIDB4MDAwMDAyMDAKLSNkZWZpbmUgUENSRV9OT1RFTVBUWSAgICAg
ICAgICAgMHgwMDAwMDQwMAotI2RlZmluZSBQQ1JFX1VURjggICAgICAgICAgICAgICAweDAwMDAw
ODAwCi0jZGVmaW5lIFBDUkVfTk9fQVVUT19DQVBUVVJFICAgIDB4MDAwMDEwMDAKLSNkZWZpbmUg
UENSRV9OT19VVEY4X0NIRUNLICAgICAgMHgwMDAwMjAwMAotI2RlZmluZSBQQ1JFX0FVVE9fQ0FM
TE9VVCAgICAgICAweDAwMDA0MDAwCi0jZGVmaW5lIFBDUkVfUEFSVElBTCAgICAgICAgICAgIDB4
MDAwMDgwMDAKLSNkZWZpbmUgUENSRV9ERkFfU0hPUlRFU1QgICAgICAgMHgwMDAxMDAwMAotI2Rl
ZmluZSBQQ1JFX0RGQV9SRVNUQVJUICAgICAgICAweDAwMDIwMDAwCi0jZGVmaW5lIFBDUkVfRklS
U1RMSU5FICAgICAgICAgIDB4MDAwNDAwMDAKLQotLyogRXhlYy10aW1lIGFuZCBnZXQvc2V0LXRp
bWUgZXJyb3IgY29kZXMgKi8KLQotI2RlZmluZSBQQ1JFX0VSUk9SX05PTUFUQ0ggICAgICAgICAo
LTEpCi0jZGVmaW5lIFBDUkVfRVJST1JfTlVMTCAgICAgICAgICAgICgtMikKLSNkZWZpbmUgUENS
RV9FUlJPUl9CQURPUFRJT04gICAgICAgKC0zKQotI2RlZmluZSBQQ1JFX0VSUk9SX0JBRE1BR0lD
ICAgICAgICAoLTQpCi0jZGVmaW5lIFBDUkVfRVJST1JfVU5LTk9XTl9OT0RFICAgICgtNSkKLSNk
ZWZpbmUgUENSRV9FUlJPUl9OT01FTU9SWSAgICAgICAgKC02KQotI2RlZmluZSBQQ1JFX0VSUk9S
X05PU1VCU1RSSU5HICAgICAoLTcpCi0jZGVmaW5lIFBDUkVfRVJST1JfTUFUQ0hMSU1JVCAgICAg
ICgtOCkKLSNkZWZpbmUgUENSRV9FUlJPUl9DQUxMT1VUICAgICAgICAgKC05KSAgLyogTmV2ZXIg
dXNlZCBieSBQQ1JFIGl0c2VsZiAqLwotI2RlZmluZSBQQ1JFX0VSUk9SX0JBRFVURjggICAgICAg
ICgtMTApCi0jZGVmaW5lIFBDUkVfRVJST1JfQkFEVVRGOF9PRkZTRVQgKC0xMSkKLSNkZWZpbmUg
UENSRV9FUlJPUl9QQVJUSUFMICAgICAgICAoLTEyKQotI2RlZmluZSBQQ1JFX0VSUk9SX0JBRFBB
UlRJQUwgICAgICgtMTMpCi0jZGVmaW5lIFBDUkVfRVJST1JfSU5URVJOQUwgICAgICAgKC0xNCkK
LSNkZWZpbmUgUENSRV9FUlJPUl9CQURDT1VOVCAgICAgICAoLTE1KQotI2RlZmluZSBQQ1JFX0VS
Uk9SX0RGQV9VSVRFTSAgICAgICgtMTYpCi0jZGVmaW5lIFBDUkVfRVJST1JfREZBX1VDT05EICAg
ICAgKC0xNykKLSNkZWZpbmUgUENSRV9FUlJPUl9ERkFfVU1MSU1JVCAgICAoLTE4KQotI2RlZmlu
ZSBQQ1JFX0VSUk9SX0RGQV9XU1NJWkUgICAgICgtMTkpCi0jZGVmaW5lIFBDUkVfRVJST1JfREZB
X1JFQ1VSU0UgICAgKC0yMCkKLQotLyogUmVxdWVzdCB0eXBlcyBmb3IgcGNyZV9mdWxsaW5mbygp
ICovCi0KLSNkZWZpbmUgUENSRV9JTkZPX09QVElPTlMgICAgICAgICAgICAwCi0jZGVmaW5lIFBD
UkVfSU5GT19TSVpFICAgICAgICAgICAgICAgMQotI2RlZmluZSBQQ1JFX0lORk9fQ0FQVFVSRUNP
VU5UICAgICAgIDIKLSNkZWZpbmUgUENSRV9JTkZPX0JBQ0tSRUZNQVggICAgICAgICAzCi0jZGVm
aW5lIFBDUkVfSU5GT19GSVJTVEJZVEUgICAgICAgICAgNAotI2RlZmluZSBQQ1JFX0lORk9fRklS
U1RDSEFSICAgICAgICAgIDQgIC8qIEZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eSAqLwotI2Rl
ZmluZSBQQ1JFX0lORk9fRklSU1RUQUJMRSAgICAgICAgIDUKLSNkZWZpbmUgUENSRV9JTkZPX0xB
U1RMSVRFUkFMICAgICAgICA2Ci0jZGVmaW5lIFBDUkVfSU5GT19OQU1FRU5UUllTSVpFICAgICAg
NwotI2RlZmluZSBQQ1JFX0lORk9fTkFNRUNPVU5UICAgICAgICAgIDgKLSNkZWZpbmUgUENSRV9J
TkZPX05BTUVUQUJMRSAgICAgICAgICA5Ci0jZGVmaW5lIFBDUkVfSU5GT19TVFVEWVNJWkUgICAg
ICAgICAxMAotI2RlZmluZSBQQ1JFX0lORk9fREVGQVVMVF9UQUJMRVMgICAgMTEKLQotLyogUmVx
dWVzdCB0eXBlcyBmb3IgcGNyZV9jb25maWcoKSAqLwotCi0jZGVmaW5lIFBDUkVfQ09ORklHX1VU
RjggICAgICAgICAgICAgICAgICAgIDAKLSNkZWZpbmUgUENSRV9DT05GSUdfTkVXTElORSAgICAg
ICAgICAgICAgICAgMQotI2RlZmluZSBQQ1JFX0NPTkZJR19MSU5LX1NJWkUgICAgICAgICAgICAg
ICAyCi0jZGVmaW5lIFBDUkVfQ09ORklHX1BPU0lYX01BTExPQ19USFJFU0hPTEQgIDMKLSNkZWZp
bmUgUENSRV9DT05GSUdfTUFUQ0hfTElNSVQgICAgICAgICAgICAgNAotI2RlZmluZSBQQ1JFX0NP
TkZJR19TVEFDS1JFQ1VSU0UgICAgICAgICAgICA1Ci0jZGVmaW5lIFBDUkVfQ09ORklHX1VOSUNP
REVfUFJPUEVSVElFUyAgICAgIDYKLQotLyogQml0IGZsYWdzIGZvciB0aGUgcGNyZV9leHRyYSBz
dHJ1Y3R1cmUgKi8KLQotI2RlZmluZSBQQ1JFX0VYVFJBX1NUVURZX0RBVEEgICAgICAgICAgMHgw
MDAxCi0jZGVmaW5lIFBDUkVfRVhUUkFfTUFUQ0hfTElNSVQgICAgICAgICAweDAwMDIKLSNkZWZp
bmUgUENSRV9FWFRSQV9DQUxMT1VUX0RBVEEgICAgICAgIDB4MDAwNAotI2RlZmluZSBQQ1JFX0VY
VFJBX1RBQkxFUyAgICAgICAgICAgICAgMHgwMDA4Ci0KLS8qIFR5cGVzICovCi0KLXN0cnVjdCBy
ZWFsX3BjcmU7ICAgICAgICAgICAgICAgICAvKiBkZWNsYXJhdGlvbjsgdGhlIGRlZmluaXRpb24g
aXMgcHJpdmF0ZSAgKi8KLXR5cGVkZWYgc3RydWN0IHJlYWxfcGNyZSBwY3JlOwotCi0vKiBUaGUg
c3RydWN0dXJlIGZvciBwYXNzaW5nIGFkZGl0aW9uYWwgZGF0YSB0byBwY3JlX2V4ZWMoKS4gVGhp
cyBpcyBkZWZpbmVkIGluCi1zdWNoIGFzIHdheSBhcyB0byBiZSBleHRlbnNpYmxlLiBBbHdheXMg
YWRkIG5ldyBmaWVsZHMgYXQgdGhlIGVuZCwgaW4gb3JkZXIgdG8KLXJlbWFpbiBjb21wYXRpYmxl
LiAqLwotCi10eXBlZGVmIHN0cnVjdCBwY3JlX2V4dHJhIHsKLSAgdW5zaWduZWQgbG9uZyBpbnQg
ZmxhZ3M7ICAgICAgICAvKiBCaXRzIGZvciB3aGljaCBmaWVsZHMgYXJlIHNldCAqLwotICB2b2lk
ICpzdHVkeV9kYXRhOyAgICAgICAgICAgICAgIC8qIE9wYXF1ZSBkYXRhIGZyb20gcGNyZV9zdHVk
eSgpICovCi0gIHVuc2lnbmVkIGxvbmcgaW50IG1hdGNoX2xpbWl0OyAgLyogTWF4aW11bSBudW1i
ZXIgb2YgY2FsbHMgdG8gbWF0Y2goKSAqLwotICB2b2lkICpjYWxsb3V0X2RhdGE7ICAgICAgICAg
ICAgIC8qIERhdGEgcGFzc2VkIGJhY2sgaW4gY2FsbG91dHMgKi8KLSAgY29uc3QgdW5zaWduZWQg
Y2hhciAqdGFibGVzOyAgICAvKiBQb2ludGVyIHRvIGNoYXJhY3RlciB0YWJsZXMgKi8KLX0gcGNy
ZV9leHRyYTsKLQotLyogVGhlIHN0cnVjdHVyZSBmb3IgcGFzc2luZyBvdXQgZGF0YSB2aWEgdGhl
IHBjcmVfY2FsbG91dF9mdW5jdGlvbi4gV2UgdXNlIGEKLXN0cnVjdHVyZSBzbyB0aGF0IG5ldyBm
aWVsZHMgY2FuIGJlIGFkZGVkIG9uIHRoZSBlbmQgaW4gZnV0dXJlIHZlcnNpb25zLAotd2l0aG91
dCBjaGFuZ2luZyB0aGUgQVBJIG9mIHRoZSBmdW5jdGlvbiwgdGhlcmVieSBhbGxvd2luZyBvbGQg
Y2xpZW50cyB0byB3b3JrCi13aXRob3V0IG1vZGlmaWNhdGlvbi4gKi8KLQotdHlwZWRlZiBzdHJ1
Y3QgcGNyZV9jYWxsb3V0X2Jsb2NrIHsKLSAgaW50ICAgICAgICAgIHZlcnNpb247ICAgICAgICAg
ICAvKiBJZGVudGlmaWVzIHZlcnNpb24gb2YgYmxvY2sgKi8KLSAgLyogLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIFZlcnNpb24gMCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCi0g
IGludCAgICAgICAgICBjYWxsb3V0X251bWJlcjsgICAgLyogTnVtYmVyIGNvbXBpbGVkIGludG8g
cGF0dGVybiAqLwotICBpbnQgICAgICAgICAqb2Zmc2V0X3ZlY3RvcjsgICAgIC8qIFRoZSBvZmZz
ZXQgdmVjdG9yICovCi0gIGNvbnN0IGNoYXIgICpzdWJqZWN0OyAgICAgICAgICAgLyogVGhlIHN1
YmplY3QgYmVpbmcgbWF0Y2hlZCAqLwotICBpbnQgICAgICAgICAgc3ViamVjdF9sZW5ndGg7ICAg
IC8qIFRoZSBsZW5ndGggb2YgdGhlIHN1YmplY3QgKi8KLSAgaW50ICAgICAgICAgIHN0YXJ0X21h
dGNoOyAgICAgICAvKiBPZmZzZXQgdG8gc3RhcnQgb2YgdGhpcyBtYXRjaCBhdHRlbXB0ICovCi0g
IGludCAgICAgICAgICBjdXJyZW50X3Bvc2l0aW9uOyAgLyogV2hlcmUgd2UgY3VycmVudGx5IGFy
ZSBpbiB0aGUgc3ViamVjdCAqLwotICBpbnQgICAgICAgICAgY2FwdHVyZV90b3A7ICAgICAgIC8q
IE1heCBjdXJyZW50IGNhcHR1cmUgKi8KLSAgaW50ICAgICAgICAgIGNhcHR1cmVfbGFzdDsgICAg
ICAvKiBNb3N0IHJlY2VudGx5IGNsb3NlZCBjYXB0dXJlICovCi0gIHZvaWQgICAgICAgICpjYWxs
b3V0X2RhdGE7ICAgICAgLyogRGF0YSBwYXNzZWQgaW4gd2l0aCB0aGUgY2FsbCAqLwotICAvKiAt
LS0tLS0tLS0tLS0tLS0tLS0tIEFkZGVkIGZvciBWZXJzaW9uIDEgLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKi8KLSAgaW50ICAgICAgICAgIHBhdHRlcm5fcG9zaXRpb247ICAvKiBPZmZzZXQg
dG8gbmV4dCBpdGVtIGluIHRoZSBwYXR0ZXJuICovCi0gIGludCAgICAgICAgICBuZXh0X2l0ZW1f
bGVuZ3RoOyAgLyogTGVuZ3RoIG9mIG5leHQgaXRlbSBpbiB0aGUgcGF0dGVybiAqLwotICAvKiAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0gKi8KLX0gcGNyZV9jYWxsb3V0X2Jsb2NrOwotCi0vKiBJbmRpcmVjdGlvbiBmb3Ig
c3RvcmUgZ2V0IGFuZCBmcmVlIGZ1bmN0aW9ucy4gVGhlc2UgY2FuIGJlIHNldCB0bwotYWx0ZXJu
YXRpdmUgbWFsbG9jL2ZyZWUgZnVuY3Rpb25zIGlmIHJlcXVpcmVkLiBTcGVjaWFsIG9uZXMgYXJl
IHVzZWQgaW4gdGhlCi1ub24tcmVjdXJzaXZlIGNhc2UgZm9yICJmcmFtZXMiLiBUaGVyZSBpcyBh
bHNvIGFuIG9wdGlvbmFsIGNhbGxvdXQgZnVuY3Rpb24KLXRoYXQgaXMgdHJpZ2dlcmVkIGJ5IHRo
ZSAoPykgcmVnZXggaXRlbS4gRm9yIFZpcnR1YWwgUGFzY2FsLCB0aGVzZSBkZWZpbml0aW9ucwot
aGF2ZSB0byB0YWtlIGFub3RoZXIgZm9ybS4gKi8KLQotI2lmbmRlZiBWUENPTVBBVAotUENSRV9E
QVRBX1NDT1BFIHZvaWQgKigqcGNyZV9tYWxsb2MpKHNpemVfdCk7Ci1QQ1JFX0RBVEFfU0NPUEUg
dm9pZCAgKCpwY3JlX2ZyZWUpKHZvaWQgKik7Ci1QQ1JFX0RBVEFfU0NPUEUgdm9pZCAqKCpwY3Jl
X3N0YWNrX21hbGxvYykoc2l6ZV90KTsKLVBDUkVfREFUQV9TQ09QRSB2b2lkICAoKnBjcmVfc3Rh
Y2tfZnJlZSkodm9pZCAqKTsKLVBDUkVfREFUQV9TQ09QRSBpbnQgICAoKnBjcmVfY2FsbG91dCko
cGNyZV9jYWxsb3V0X2Jsb2NrICopOwotI2Vsc2UgICAvKiBWUENPTVBBVCAqLwotUENSRV9EQVRB
X1NDT1BFIHZvaWQgKnBjcmVfbWFsbG9jKHNpemVfdCk7Ci1QQ1JFX0RBVEFfU0NPUEUgdm9pZCAg
cGNyZV9mcmVlKHZvaWQgKik7Ci1QQ1JFX0RBVEFfU0NPUEUgdm9pZCAqcGNyZV9zdGFja19tYWxs
b2Moc2l6ZV90KTsKLVBDUkVfREFUQV9TQ09QRSB2b2lkICBwY3JlX3N0YWNrX2ZyZWUodm9pZCAq
KTsKLVBDUkVfREFUQV9TQ09QRSBpbnQgICBwY3JlX2NhbGxvdXQocGNyZV9jYWxsb3V0X2Jsb2Nr
ICopOwotI2VuZGlmICAvKiBWUENPTVBBVCAqLwotCi0vKiBFeHBvcnRlZCBQQ1JFIGZ1bmN0aW9u
cyAqLwotCi1QQ1JFX0RBVEFfU0NPUEUgcGNyZSAqcGNyZV9jb21waWxlKGNvbnN0IGNoYXIgKiwg
aW50LCBjb25zdCBjaGFyICoqLCBpbnQgKiwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IHVuc2ln
bmVkIGNoYXIgKik7Ci1QQ1JFX0RBVEFfU0NPUEUgcGNyZSAqcGNyZV9jb21waWxlMihjb25zdCBj
aGFyICosIGludCwgaW50ICosIGNvbnN0IGNoYXIgKiosCi0gICAgICAgICAgICAgICAgICBpbnQg
KiwgY29uc3QgdW5zaWduZWQgY2hhciAqKTsKLVBDUkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfY29u
ZmlnKGludCwgdm9pZCAqKTsKLVBDUkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfY29weV9uYW1lZF9z
dWJzdHJpbmcoY29uc3QgcGNyZSAqLCBjb25zdCBjaGFyICosCi0gICAgICAgICAgICAgICAgICBp
bnQgKiwgaW50LCBjb25zdCBjaGFyICosIGNoYXIgKiwgaW50KTsKLVBDUkVfREFUQV9TQ09QRSBp
bnQgIHBjcmVfY29weV9zdWJzdHJpbmcoY29uc3QgY2hhciAqLCBpbnQgKiwgaW50LCBpbnQsIGNo
YXIgKiwKLSAgICAgICAgICAgICAgICAgIGludCk7Ci1QQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3Jl
X2RmYV9leGVjKGNvbnN0IHBjcmUgKiwgY29uc3QgcGNyZV9leHRyYSAqLAotICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqLCBpbnQsIGludCwgaW50LCBpbnQgKiwgaW50ICwgaW50ICosIGlu
dCk7Ci1QQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3JlX2V4ZWMoY29uc3QgcGNyZSAqLCBjb25zdCBw
Y3JlX2V4dHJhICosIGNvbnN0IGNoYXIgKiwKLSAgICAgICAgICAgICAgICAgICBpbnQsIGludCwg
aW50LCBpbnQgKiwgaW50KTsKLVBDUkVfREFUQV9TQ09QRSB2b2lkIHBjcmVfZnJlZV9zdWJzdHJp
bmcoY29uc3QgY2hhciAqKTsKLVBDUkVfREFUQV9TQ09QRSB2b2lkIHBjcmVfZnJlZV9zdWJzdHJp
bmdfbGlzdChjb25zdCBjaGFyICoqKTsKLVBDUkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfZnVsbGlu
Zm8oY29uc3QgcGNyZSAqLCBjb25zdCBwY3JlX2V4dHJhICosIGludCwKLSAgICAgICAgICAgICAg
ICAgIHZvaWQgKik7Ci1QQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3JlX2dldF9uYW1lZF9zdWJzdHJp
bmcoY29uc3QgcGNyZSAqLCBjb25zdCBjaGFyICosCi0gICAgICAgICAgICAgICAgICBpbnQgKiwg
aW50LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiopOwotUENSRV9EQVRBX1NDT1BFIGludCAg
cGNyZV9nZXRfc3RyaW5nbnVtYmVyKGNvbnN0IHBjcmUgKiwgY29uc3QgY2hhciAqKTsKLVBDUkVf
REFUQV9TQ09QRSBpbnQgIHBjcmVfZ2V0X3N1YnN0cmluZyhjb25zdCBjaGFyICosIGludCAqLCBp
bnQsIGludCwKLSAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKiopOwotUENSRV9EQVRBX1ND
T1BFIGludCAgcGNyZV9nZXRfc3Vic3RyaW5nX2xpc3QoY29uc3QgY2hhciAqLCBpbnQgKiwgaW50
LAotICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqKiopOwotUENSRV9EQVRBX1NDT1BFIGlu
dCAgcGNyZV9pbmZvKGNvbnN0IHBjcmUgKiwgaW50ICosIGludCAqKTsKLVBDUkVfREFUQV9TQ09Q
RSBjb25zdCB1bnNpZ25lZCBjaGFyICpwY3JlX21ha2V0YWJsZXModm9pZCk7Ci1QQ1JFX0RBVEFf
U0NPUEUgaW50ICBwY3JlX3JlZmNvdW50KHBjcmUgKiwgaW50KTsKLVBDUkVfREFUQV9TQ09QRSBw
Y3JlX2V4dHJhICpwY3JlX3N0dWR5KGNvbnN0IHBjcmUgKiwgaW50LCBjb25zdCBjaGFyICoqKTsK
LVBDUkVfREFUQV9TQ09QRSBjb25zdCBjaGFyICpwY3JlX3ZlcnNpb24odm9pZCk7Ci0KLSNpZmRl
ZiBfX2NwbHVzcGx1cwotfSAgLyogZXh0ZXJuICJDIiAqLwotI2VuZGlmCi0KLSNlbmRpZiAvKiBF
bmQgb2YgcGNyZS5oICovCkluZGV4OiBjb25maWcuaW4KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gY29uZmlnLmlu
CShyZXZpc2lvbiAzKQorKysgY29uZmlnLmluCShyZXZpc2lvbiA0KQpAQCAtMSwxMDcgKzAsMCBA
QAotCi0vKiBPbiBVbml4IHN5c3RlbXMgY29uZmlnLmluIGlzIGNvbnZlcnRlZCBieSBjb25maWd1
cmUgaW50byBjb25maWcuaC4gUENSRSBpcwotd3JpdHRlbiBpbiBTdGFuZGFyZCBDLCBidXQgdGhl
cmUgYXJlIGEgZmV3IG5vbi1zdGFuZGFyZCB0aGluZ3MgaXQgY2FuIGNvcGUKLXdpdGgsIGFsbG93
aW5nIGl0IHRvIHJ1biBvbiBTdW5PUzQgYW5kIG90aGVyICJjbG9zZSB0byBzdGFuZGFyZCIgc3lz
dGVtcy4KLQotT24gYSBub24tVW5peCBzeXN0ZW0geW91IHNob3VsZCBqdXN0IGNvcHkgdGhpcyBm
aWxlIGludG8gY29uZmlnLmgsIGFuZCBzZXQgdXAKLXRoZSBtYWNyb3MgdGhlIHdheSB5b3UgbmVl
ZCB0aGVtLiBZb3Ugc2hvdWxkIG5vcm1hbGx5IGNoYW5nZSB0aGUgZGVmaW5pdGlvbnMgb2YKLUhB
VkVfU1RSRVJST1IgYW5kIEhBVkVfTUVNTU9WRSB0byAxLiBVbmZvcnR1bmF0ZWx5LCBiZWNhdXNl
IG9mIHRoZSB3YXkgYXV0b2NvbmYKLXdvcmtzLCB0aGVzZSBjYW5ub3QgYmUgbWFkZSB0aGUgZGVm
YXVsdHMuIElmIHlvdXIgc3lzdGVtIGhhcyBiY29weSgpIGFuZCBub3QKLW1lbW1vdmUoKSwgY2hh
bmdlIHRoZSBkZWZpbml0aW9uIG9mIEhBVkVfQkNPUFkgaW5zdGVhZCBvZiBIQVZFX01FTU1PVkUu
IElmIHlvdXIKLXN5c3RlbSBoYXMgbmVpdGhlciBiY29weSgpIG5vciBtZW1tb3ZlKCksIGxlYXZl
IHRoZW0gYm90aCBhcyAwOyBhbiBlbXVsYXRpb24KLWZ1bmN0aW9uIHdpbGwgYmUgdXNlZC4gKi8K
LQotLyogSWYgeW91IGFyZSBjb21waWxpbmcgZm9yIGEgc3lzdGVtIHRoYXQgdXNlcyBFQkNESUMg
aW5zdGVhZCBvZiBBU0NJSQotY2hhcmFjdGVyIGNvZGVzLCBkZWZpbmUgdGhpcyBtYWNybyBhcyAx
LiBPbiBzeXN0ZW1zIHRoYXQgY2FuIHVzZSAiY29uZmlndXJlIiwKLXRoaXMgY2FuIGJlIGRvbmUg
dmlhIC0tZW5hYmxlLWViY2RpYy4gKi8KLQotI2lmbmRlZiBFQkNESUMKLSNkZWZpbmUgRUJDRElD
IDAKLSNlbmRpZgotCi0vKiBJZiB5b3UgYXJlIGNvbXBpbGluZyBmb3IgYSBzeXN0ZW0gdGhhdCBu
ZWVkcyBzb21lIG1hZ2ljIHRvIGJlIGluc2VydGVkCi1iZWZvcmUgdGhlIGRlZmluaXRpb24gb2Yg
YW4gZXhwb3J0ZWQgZnVuY3Rpb24sIGRlZmluZSB0aGlzIG1hY3JvIHRvIGNvbnRhaW4gdGhlCi1y
ZWxldmFudCBtYWdpYy4gSXQgYXBlYXJzIGF0IHRoZSBzdGFydCBvZiBldmVyeSBleHBvcnRlZCBm
dW5jdGlvbi4gKi8KLQotI2RlZmluZSBFWFBPUlQKLQotLyogRGVmaW5lIHRvIGVtcHR5IGlmIHRo
ZSAiY29uc3QiIGtleXdvcmQgZG9lcyBub3Qgd29yay4gKi8KLQotI3VuZGVmIGNvbnN0Ci0KLS8q
IERlZmluZSB0byAidW5zaWduZWQiIGlmIDxzdGRkZWYuaD4gZG9lc24ndCBkZWZpbmUgc2l6ZV90
LiAqLwotCi0jdW5kZWYgc2l6ZV90Ci0KLS8qIFRoZSBmb2xsb3dpbmcgdHdvIGRlZmluaXRpb25z
IGFyZSBtYWlubHkgZm9yIHRoZSBiZW5lZml0IG9mIFN1bk9TNCwgd2hpY2gKLWRvZXNuJ3QgaGF2
ZSB0aGUgc3RyZXJyb3IoKSBvciBtZW1tb3ZlKCkgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHBy
ZXNlbnQgaW4KLWFsbCBTdGFuZGFyZCBDIGxpYnJhcmllcy4gVGhlIG1hY3JvcyBIQVZFX1NUUkVS
Uk9SIGFuZCBIQVZFX01FTU1PVkUgc2hvdWxkCi1ub3JtYWxseSBiZSBkZWZpbmVkIHdpdGggdGhl
IHZhbHVlIDEgZm9yIG90aGVyIHN5c3RlbXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IHdlCi1jYW4ndCBt
YWtlIHRoaXMgdGhlIGRlZmF1bHQgYmVjYXVzZSAiY29uZmlndXJlIiBmaWxlcyBnZW5lcmF0ZWQg
YnkgYXV0b2NvbmYKLXdpbGwgb25seSBjaGFuZ2UgMCB0byAxOyB0aGV5IHdvbid0IGNoYW5nZSAx
IHRvIDAgaWYgdGhlIGZ1bmN0aW9ucyBhcmUgbm90Ci1mb3VuZC4gKi8KLQotI2RlZmluZSBIQVZF
X1NUUkVSUk9SIDAKLSNkZWZpbmUgSEFWRV9NRU1NT1ZFICAwCi0KLS8qIFRoZXJlIGFyZSBzb21l
IG5vbi1Vbml4IHN5c3RlbXMgdGhhdCBkb24ndCBldmVuIGhhdmUgYmNvcHkoKS4gSWYgdGhpcyBt
YWNybwotaXMgZmFsc2UsIGFuIGVtdWxhdGlvbiBpcyB1c2VkLiBJZiBIQVZFX01FTU1PVkUgaXMg
c2V0IHRvIDEsIHRoZSB2YWx1ZSBvZgotSEFWRV9CQ09QWSBpcyBub3QgcmVsZXZhbnQuICovCi0K
LSNkZWZpbmUgSEFWRV9CQ09QWSAgICAwCi0KLS8qIFRoZSB2YWx1ZSBvZiBORVdMSU5FIGRldGVy
bWluZXMgdGhlIG5ld2xpbmUgY2hhcmFjdGVyLiBUaGUgZGVmYXVsdCBpcyB0bwotbGVhdmUgaXQg
dXAgdG8gdGhlIGNvbXBpbGVyLCBidXQgc29tZSBzaXRlcyB3YW50IHRvIGZvcmNlIGEgcGFydGlj
dWxhciB2YWx1ZS4KLU9uIFVuaXggc3lzdGVtcywgImNvbmZpZ3VyZSIgY2FuIGJlIHVzZWQgdG8g
b3ZlcnJpZGUgdGhpcyBkZWZhdWx0LiAqLwotCi0jaWZuZGVmIE5FV0xJTkUKLSNkZWZpbmUgTkVX
TElORSAnXG4nCi0jZW5kaWYKLQotLyogVGhlIHZhbHVlIG9mIExJTktfU0laRSBkZXRlcm1pbmVz
IHRoZSBudW1iZXIgb2YgYnl0ZXMgdXNlZCB0byBzdG9yZQotbGlua3MgYXMgb2Zmc2V0cyB3aXRo
aW4gdGhlIGNvbXBpbGVkIHJlZ2V4LiBUaGUgZGVmYXVsdCBpcyAyLCB3aGljaCBhbGxvd3MgZm9y
Ci1jb21waWxlZCBwYXR0ZXJucyB1cCB0byA2NEsgbG9uZy4gVGhpcyBjb3ZlcnMgdGhlIHZhc3Qg
bWFqb3JpdHkgb2YgY2FzZXMuCi1Ib3dldmVyLCBQQ1JFIGNhbiBhbHNvIGJlIGNvbXBpbGVkIHRv
IHVzZSAzIG9yIDQgYnl0ZXMgaW5zdGVhZC4gVGhpcyBhbGxvd3MgZm9yCi1sb25nZXIgcGF0dGVy
bnMgaW4gZXh0cmVtZSBjYXNlcy4gT24gVW5peCBzeXN0ZW1zLCAiY29uZmlndXJlIiBjYW4gYmUg
dXNlZCB0bwotb3ZlcnJpZGUgdGhpcyBkZWZhdWx0LiAqLwotCi0jaWZuZGVmIExJTktfU0laRQot
I2RlZmluZSBMSU5LX1NJWkUgICAyCi0jZW5kaWYKLQotLyogVGhlIHZhbHVlIG9mIE1BVENIX0xJ
TUlUIGRldGVybWluZXMgdGhlIGRlZmF1bHQgbnVtYmVyIG9mIHRpbWVzIHRoZSBtYXRjaCgpCi1m
dW5jdGlvbiBjYW4gYmUgY2FsbGVkIGR1cmluZyBhIHNpbmdsZSBleGVjdXRpb24gb2YgcGNyZV9l
eGVjKCkuIChUaGVyZSBpcyBhCi1ydW50aW1lIG1ldGhvZCBvZiBzZXR0aW5nIGEgZGlmZmVyZW50
IGxpbWl0LikgVGhlIGxpbWl0IGV4aXN0cyBpbiBvcmRlciB0bwotY2F0Y2ggcnVuYXdheSByZWd1
bGFyIGV4cHJlc3Npb25zIHRoYXQgdGFrZSBmb3IgZXZlciB0byBkZXRlcm1pbmUgdGhhdCB0aGV5
IGRvCi1ub3QgbWF0Y2guIFRoZSBkZWZhdWx0IGlzIHNldCB2ZXJ5IGxhcmdlIHNvIHRoYXQgaXQg
ZG9lcyBub3QgYWNjaWRlbnRhbGx5IGNhdGNoCi1sZWdpdGltYXRlIGNhc2VzLiBPbiBVbml4IHN5
c3RlbXMsICJjb25maWd1cmUiIGNhbiBiZSB1c2VkIHRvIG92ZXJyaWRlIHRoaXMKLWRlZmF1bHQg
ZGVmYXVsdC4gKi8KLQotI2lmbmRlZiBNQVRDSF9MSU1JVAotI2RlZmluZSBNQVRDSF9MSU1JVCAx
MDAwMDAwMAotI2VuZGlmCi0KLS8qIFdoZW4gY2FsbGluZyBQQ1JFIHZpYSB0aGUgUE9TSVggaW50
ZXJmYWNlLCBhZGRpdGlvbmFsIHdvcmtpbmcgc3RvcmFnZSBpcwotcmVxdWlyZWQgZm9yIGhvbGRp
bmcgdGhlIHBvaW50ZXJzIHRvIGNhcHR1cmluZyBzdWJzdHJpbmdzIGJlY2F1c2UgUENSRSByZXF1
aXJlcwotdGhyZWUgaW50ZWdlcnMgcGVyIHN1YnN0cmluZywgd2hlcmVhcyB0aGUgUE9TSVggaW50
ZXJmYWNlIHByb3ZpZGVzIG9ubHkgdHdvLiBJZgotdGhlIG51bWJlciBvZiBleHBlY3RlZCBzdWJz
dHJpbmdzIGlzIHNtYWxsLCB0aGUgd3JhcHBlciBmdW5jdGlvbiB1c2VzIHNwYWNlIG9uCi10aGUg
c3RhY2ssIGJlY2F1c2UgdGhpcyBpcyBmYXN0ZXIgdGhhbiB1c2luZyBtYWxsb2MoKSBmb3IgZWFj
aCBjYWxsLiBUaGUKLXRocmVzaG9sZCBhYm92ZSB3aGljaCB0aGUgc3RhY2sgaXMgbm8gbG9uZ2Vy
IHVzZSBpcyBkZWZpbmVkIGJ5IFBPU0lYX01BTExPQ18KLVRIUkVTSE9MRC4gT24gVW5peCBzeXN0
ZW1zLCAiY29uZmlndXJlIiBjYW4gYmUgdXNlZCB0byBvdmVycmlkZSB0aGlzIGRlZmF1bHQuCi0q
LwotCi0jaWZuZGVmIFBPU0lYX01BTExPQ19USFJFU0hPTEQKLSNkZWZpbmUgUE9TSVhfTUFMTE9D
X1RIUkVTSE9MRCAxMAotI2VuZGlmCi0KLS8qIFBDUkUgdXNlcyByZWN1cnNpdmUgZnVuY3Rpb24g
Y2FsbHMgdG8gaGFuZGxlIGJhY2t0cmFja2luZyB3aGlsZSBtYXRjaGluZy4KLVRoaXMgY2FuIHNv
bWV0aW1lcyBiZSBhIHByb2JsZW0gb24gc3lzdGVtcyB0aGF0IGhhdmUgc3RhY2tzIG9mIGxpbWl0
ZWQgc2l6ZS4KLURlZmluZSBOT19SRUNVUlNFIHRvIGdldCBhIHZlcnNpb24gdGhhdCBkb2Vzbid0
IHVzZSByZWN1cnNpb24gaW4gdGhlIG1hdGNoKCkKLWZ1bmN0aW9uOyBpbnN0ZWFkIGl0IGNyZWF0
ZXMgaXRzIG93biBzdGFjayBieSBzdGVhbSB1c2luZyBwY3JlX3JlY3Vyc2VfbWFsbG9jCi10byBn
ZXQgbWVtb3J5LiBGb3IgbW9yZSBkZXRhaWwsIHNlZSBjb21tZW50cyBhbmQgb3RoZXIgc3R1ZmYg
anVzdCBhYm92ZSB0aGUKLW1hdGNoKCkgZnVuY3Rpb24uIE9uIFVuaXggc3lzdGVtcywgImNvbmZp
Z3VyZSIgY2FuIGJlIHVzZWQgdG8gc2V0IHRoaXMgaW4gdGhlCi1NYWtlZmlsZSAodXNlIC0tZGlz
YWJsZS1zdGFjay1mb3ItcmVjdXJzaW9uKS4gKi8KLQotLyogI2RlZmluZSBOT19SRUNVUlNFICov
Ci0KLS8qIEVuZCAqLwpJbmRleDogdWNwX2ZpbmRjaGFyLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdWNwX2Zp
bmRjaGFyLmMJKHJldmlzaW9uIDMpCisrKyB1Y3BfZmluZGNoYXIuYwkocmV2aXNpb24gNCkKQEAg
LTEsMTYwICswLDAgQEAKLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0qICAgICBsaWJ1Y3AgLSBVbmljb2RlIFByb3BlcnR5IFRhYmxlIGhhbmRsZXIg
ICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
LQotLyogQ29weXJpZ2h0IChjKSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSAyMDA0ICovCi0KLS8q
IFRoaXMgbGl0dGxlIGxpYnJhcnkgcHJvdmlkZXMgYSBmYXN0IHdheSBvZiBvYnRhaW5pbmcgdGhl
IGJhc2ljIFVuaWNvZGUKLXByb3BlcnRpZXMgb2YgYSBjaGFyYWN0ZXIsIHVzaW5nIGEgY29tcGFj
dCBiaW5hcnkgdHJlZSB0aGF0IG9jY3VwaWVzIGxlc3MgdGhhbgotMTAwSyBieXRlcy4KLQotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6Ci0KLSAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJz
aXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwotICAgICAgY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
LSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1p
c3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
IFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLVNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi1BUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
Ki8KLQotCi0jaW5jbHVkZSAidWNwLmgiICAgICAgICAgICAgICAgLyogRXhwb3J0ZWQgaW50ZXJm
YWNlICovCi0jaW5jbHVkZSAidWNwaW50ZXJuYWwuaCIgICAgICAgLyogSW50ZXJuYWwgdGFibGUg
ZGV0YWlscyAqLwotI2luY2x1ZGUgInVjcHRhYmxlLmMiICAgICAgICAgIC8qIFRoZSB0YWJsZSBp
dHNlbGYgKi8KLQotCi0vKiBJbiBzb21lIGVudmlyb25tZW50cywgZXh0ZXJuYWwgZnVuY3Rpb25z
IGhhdmUgdG8gYmUgcHJlY2VkZWQgYnkgc29tZSBtYWdpYy4KLUluIG15IHdvcmxkIChVbml4KSwg
dGhleSBkbyBub3QuIFVzZSBhIG1hY3JvIHRvIGRlYWwgd2l0aCB0aGlzLiAqLwotCi0jaWZuZGVm
IEVYUE9SVAotI2RlZmluZSBFWFBPUlQKLSNlbmRpZgotCi0KLQotLyoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAgICAgICBTZWFyY2ggdGFibGUg
YW5kIHJldHVybiBkYXRhICAgICAgICAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBUd28gdmFsdWVzIGFyZSByZXR1cm5lZDogdGhl
IGNhdGVnb3J5IGlzIHVjcF9DLCB1Y3BfTCwgZXRjLiBUaGUgZGV0YWlsZWQKLWNoYXJhY3RlciB0
eXBlIGlzIHVjcF9MdSwgdWNwX05kLCBldGMuCi0KLUFyZ3VtZW50czoKLSAgYyAgICAgICAgICAg
dGhlIGNoYXJhY3RlciB2YWx1ZQotICB0eXBlX3B0ciAgICB0aGUgZGV0YWlsZWQgY2hhcmFjdGVy
IHR5cGUgaXMgcmV0dXJuZWQgaGVyZQotICBjYXNlX3B0ciAgICBmb3IgbGV0dGVycywgdGhlIG9w
cG9zaXRlIGNhc2UgaXMgcmV0dXJuZWQgaGVyZSwgaWYgdGhlcmUKLSAgICAgICAgICAgICAgICBp
cyBvbmUsIGVsc2UgemVybwotCi1SZXR1cm5zOiAgICAgIHRoZSBjaGFyYWN0ZXIgdHlwZSBjYXRl
Z29yeSBvciAtMSBpZiBub3QgZm91bmQKLSovCi0KLUVYUE9SVCBpbnQKLXVjcF9maW5kY2hhcihj
b25zdCBpbnQgYywgaW50ICp0eXBlX3B0ciwgaW50ICpjYXNlX3B0cikKLXsKLWNub2RlICpub2Rl
ID0gdWNwX3RhYmxlOwotcmVnaXN0ZXIgaW50IGNjID0gYzsKLWludCBjYXNlX29mZnNldDsKLQot
Zm9yICg7OykKLSAgewotICByZWdpc3RlciBpbnQgZCA9IG5vZGUtPmYxIHwgKChub2RlLT5mMCAm
IGYwX2NoaG1hc2spIDw8IDE2KTsKLSAgaWYgKGNjID09IGQpIGJyZWFrOwotICBpZiAoY2MgPCBk
KQotICAgIHsKLSAgICBpZiAoKG5vZGUtPmYwICYgZjBfbGVmdGV4aXN0cykgPT0gMCkgcmV0dXJu
IC0xOwotICAgIG5vZGUgKys7Ci0gICAgfQotICBlbHNlCi0gICAgewotICAgIHJlZ2lzdGVyIGlu
dCByb2Zmc2V0ID0gKG5vZGUtPmYyICYgZjJfcmlnaHRtYXNrKSA+PiBmMl9yaWdodHNoaWZ0Owot
ICAgIGlmIChyb2Zmc2V0ID09IDApIHJldHVybiAtMTsKLSAgICBub2RlICs9IDEgPDwgKHJvZmZz
ZXQgLSAxKTsKLSAgICB9Ci0gIH0KLQotc3dpdGNoICgoKnR5cGVfcHRyID0gKChub2RlLT5mMCAm
IGYwX3R5cGVtYXNrKSA+PiBmMF90eXBlc2hpZnQpKSkKLSAgewotICBjYXNlIHVjcF9DYzoKLSAg
Y2FzZSB1Y3BfQ2Y6Ci0gIGNhc2UgdWNwX0NuOgotICBjYXNlIHVjcF9DbzoKLSAgY2FzZSB1Y3Bf
Q3M6Ci0gIHJldHVybiB1Y3BfQzsKLSAgYnJlYWs7Ci0KLSAgY2FzZSB1Y3BfTGw6Ci0gIGNhc2Ug
dWNwX0x1OgotICBjYXNlX29mZnNldCA9IG5vZGUtPmYyICYgZjJfY2FzZW1hc2s7Ci0gIGlmICgo
Y2FzZV9vZmZzZXQgJiAweDAxMDApICE9IDApIGNhc2Vfb2Zmc2V0IHw9IDB4ZmZmZmYwMDA7Ci0g
ICpjYXNlX3B0ciA9IChjYXNlX29mZnNldCA9PSAwKT8gMCA6IGNjICsgY2FzZV9vZmZzZXQ7Ci0g
IHJldHVybiB1Y3BfTDsKLQotICBjYXNlIHVjcF9MbToKLSAgY2FzZSB1Y3BfTG86Ci0gIGNhc2Ug
dWNwX0x0OgotICAqY2FzZV9wdHIgPSAwOwotICByZXR1cm4gdWNwX0w7Ci0gIGJyZWFrOwotCi0g
IGNhc2UgdWNwX01jOgotICBjYXNlIHVjcF9NZToKLSAgY2FzZSB1Y3BfTW46Ci0gIHJldHVybiB1
Y3BfTTsKLSAgYnJlYWs7Ci0KLSAgY2FzZSB1Y3BfTmQ6Ci0gIGNhc2UgdWNwX05sOgotICBjYXNl
IHVjcF9ObzoKLSAgcmV0dXJuIHVjcF9OOwotICBicmVhazsKLQotICBjYXNlIHVjcF9QYzoKLSAg
Y2FzZSB1Y3BfUGQ6Ci0gIGNhc2UgdWNwX1BlOgotICBjYXNlIHVjcF9QZjoKLSAgY2FzZSB1Y3Bf
UGk6Ci0gIGNhc2UgdWNwX1BzOgotICBjYXNlIHVjcF9QbzoKLSAgcmV0dXJuIHVjcF9QOwotICBi
cmVhazsKLQotICBjYXNlIHVjcF9TYzoKLSAgY2FzZSB1Y3BfU2s6Ci0gIGNhc2UgdWNwX1NtOgot
ICBjYXNlIHVjcF9TbzoKLSAgcmV0dXJuIHVjcF9TOwotICBicmVhazsKLQotICBjYXNlIHVjcF9a
bDoKLSAgY2FzZSB1Y3BfWnA6Ci0gIGNhc2UgdWNwX1pzOgotICByZXR1cm4gdWNwX1o7Ci0gIGJy
ZWFrOwotCi0gIGRlZmF1bHQ6ICAgICAgICAgLyogIlNob3VsZCBuZXZlciBoYXBwZW4iICovCi0g
IHJldHVybiAtMTsKLSAgYnJlYWs7Ci0gIH0KLX0KLQotLyogRW5kIG9mIHVjcF9maW5kY2hhci5j
ICovCkluZGV4OiBwY3JlX3ByaW50aW50LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZV9wcmludGludC5j
CShyZXZpc2lvbiAzKQorKysgcGNyZV9wcmludGludC5jCShyZXZpc2lvbiA0KQpAQCAtMSw0NTEg
KzAsMCBAQAotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioKLSogICAgICBQZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICAqCi0q
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi0vKiBQ
Q1JFIGlzIGEgbGlicmFyeSBvZiBmdW5jdGlvbnMgdG8gc3VwcG9ydCByZWd1bGFyIGV4cHJlc3Np
b25zIHdob3NlIHN5bnRheAotYW5kIHNlbWFudGljcyBhcmUgYXMgY2xvc2UgYXMgcG9zc2libGUg
dG8gdGhvc2Ugb2YgdGhlIFBlcmwgNSBsYW5ndWFnZS4KLQotICAgICAgICAgICAgICAgICAgICAg
ICBXcml0dGVuIGJ5IFBoaWxpcCBIYXplbAotICAgICAgICAgICBDb3B5cmlnaHQgKGMpIDE5OTct
MjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQotCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci1tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKLQotICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAotICAgICAg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLQot
ICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0KLSAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJpZGdlIG5vciB0
aGUgbmFtZXMgb2YgaXRzCi0gICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICAgICAgdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLQotVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyAi
QVMgSVMiCi1BTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi1JTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQotQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFCi1MSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi1DT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi1JTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLUFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCi1QT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0qLwotCi0KLS8qIFRoaXMgbW9kdWxl
IGNvbnRhaW5zIGFuIFBDUkUgcHJpdmF0ZSBkZWJ1Z2dpbmcgZnVuY3Rpb24gZm9yIHByaW50aW5n
IG91dCB0aGUKLWludGVybmFsIGZvcm0gb2YgYSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Npb24s
IGFsb25nIHdpdGggc29tZSBzdXBwb3J0aW5nCi1sb2NhbCBmdW5jdGlvbnMuICovCi0KLQotI2lu
Y2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKLQotCi1zdGF0aWMgY29uc3QgY2hhciAqT1BfbmFtZXNb
XSA9IHsgT1BfTkFNRV9MSVNUIH07Ci0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioKLSogICAgICAgUHJpbnQgc2luZ2xlLSBvciBtdWx0aS1ieXRl
IGNoYXJhY3RlciAgICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqLwotCi1zdGF0aWMgaW50Ci1wcmludF9jaGFyKEZJTEUgKmYsIHVzY2hhciAqcHRy
LCBCT09MIHV0ZjgpCi17Ci1pbnQgYyA9ICpwdHI7Ci0KLWlmICghdXRmOCB8fCAoYyAmIDB4YzAp
ICE9IDB4YzApCi0gIHsKLSAgaWYgKGlzcHJpbnQoYykpIGZwcmludGYoZiwgIiVjIiwgYyk7IGVs
c2UgZnByaW50ZihmLCAiXFx4JTAyeCIsIGMpOwotICByZXR1cm4gMDsKLSAgfQotZWxzZQotICB7
Ci0gIGludCBpOwotICBpbnQgYSA9IF9wY3JlX3V0ZjhfdGFibGU0W2MgJiAweDNmXTsgIC8qIE51
bWJlciBvZiBhZGRpdGlvbmFsIGJ5dGVzICovCi0gIGludCBzID0gNiphOwotICBjID0gKGMgJiBf
cGNyZV91dGY4X3RhYmxlM1thXSkgPDwgczsKLSAgZm9yIChpID0gMTsgaSA8PSBhOyBpKyspCi0g
ICAgewotICAgIC8qIFRoaXMgaXMgYSBjaGVjayBmb3IgbWFsZm9ybWVkIFVURi04OyBpdCBzaG91
bGQgb25seSBvY2N1ciBpZiB0aGUgc2FuaXR5Ci0gICAgY2hlY2sgaGFzIGJlZW4gdHVybmVkIG9m
Zi4gUmF0aGVyIHRoYW4gc3dhbGxvdyByYW5kb20gYnl0ZXMsIGp1c3Qgc3RvcCBpZgotICAgIHdl
IGhpdCBhIGJhZCBvbmUuIFByaW50IGl0IHdpdGggXFggaW5zdGVhZCBvZiBceCBhcyBhbiBpbmRp
Y2F0aW9uLiAqLwotCi0gICAgaWYgKChwdHJbaV0gJiAweGMwKSAhPSAweDgwKQotICAgICAgewot
ICAgICAgZnByaW50ZihmLCAiXFxYeyV4fSIsIGMpOwotICAgICAgcmV0dXJuIGkgLSAxOwotICAg
ICAgfQotCi0gICAgLyogVGhlIGJ5dGUgaXMgT0sgKi8KLQotICAgIHMgLT0gNjsKLSAgICBjIHw9
IChwdHJbaV0gJiAweDNmKSA8PCBzOwotICAgIH0KLSAgaWYgKGMgPCAxMjgpIGZwcmludGYoZiwg
IlxceCUwMngiLCBjKTsgZWxzZSBmcHJpbnRmKGYsICJcXHh7JXh9IiwgYyk7Ci0gIHJldHVybiBh
OwotICB9Ci19Ci0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKgotKiAgICAgICAgICBGaW5kIFVuaWNvZGUgcHJvcGVydHkgbmFtZSAgICAgICAg
ICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov
Ci0KLXN0YXRpYyBjb25zdCBjaGFyICoKLWdldF91Y3BuYW1lKGludCBwcm9wZXJ0eSkKLXsKLSNp
ZmRlZiBTVVBQT1JUX1VDUAotaW50IGk7Ci1mb3IgKGkgPSBfcGNyZV91dHRfc2l6ZTsgaSA+PSAw
OyBpLS0pCi0gIHsKLSAgaWYgKHByb3BlcnR5ID09IF9wY3JlX3V0dFtpXS52YWx1ZSkgYnJlYWs7
Ci0gIH0KLXJldHVybiAoaSA+PSAwKT8gX3BjcmVfdXR0W2ldLm5hbWUgOiAiPz8iOwotI2Vsc2UK
LXJldHVybiAiPz8iOwotI2VuZGlmCi19Ci0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgICAgIFByaW50IGNvbXBpbGVkIHJlZ2V4
ICAgICAgICAgICAgICAgICAgICoKLSoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCi0KLS8qIE1ha2UgdGhpcyBmdW5jdGlvbiB3b3JrIGZvciBhIHJlZ2V4
IHdpdGggaW50ZWdlcnMgZWl0aGVyIGJ5dGUgb3JkZXIuCi1Ib3dldmVyLCB3ZSBhc3N1bWUgdGhh
dCB3aGF0IHdlIGFyZSBwYXNzZWQgaXMgYSBjb21waWxlZCByZWdleC4gKi8KLQotRVhQT1JUIHZv
aWQKLV9wY3JlX3ByaW50aW50KHBjcmUgKmV4dGVybmFsX3JlLCBGSUxFICpmKQotewotcmVhbF9w
Y3JlICpyZSA9IChyZWFsX3BjcmUgKilleHRlcm5hbF9yZTsKLXVzY2hhciAqY29kZXN0YXJ0LCAq
Y29kZTsKLUJPT0wgdXRmODsKLQotdW5zaWduZWQgaW50IG9wdGlvbnMgPSByZS0+b3B0aW9uczsK
LWludCBvZmZzZXQgPSByZS0+bmFtZV90YWJsZV9vZmZzZXQ7Ci1pbnQgY291bnQgPSByZS0+bmFt
ZV9jb3VudDsKLWludCBzaXplID0gcmUtPm5hbWVfZW50cnlfc2l6ZTsKLQotaWYgKHJlLT5tYWdp
Y19udW1iZXIgIT0gTUFHSUNfTlVNQkVSKQotICB7Ci0gIG9mZnNldCA9ICgob2Zmc2V0IDw8IDgp
ICYgMHhmZjAwKSB8ICgob2Zmc2V0ID4+IDgpICYgMHhmZik7Ci0gIGNvdW50ID0gKChjb3VudCA8
PCA4KSAmIDB4ZmYwMCkgfCAoKGNvdW50ID4+IDgpICYgMHhmZik7Ci0gIHNpemUgPSAoKHNpemUg
PDwgOCkgJiAweGZmMDApIHwgKChzaXplID4+IDgpICYgMHhmZik7Ci0gIG9wdGlvbnMgPSAoKG9w
dGlvbnMgPDwgMjQpICYgMHhmZjAwMDAwMCkgfAotICAgICAgICAgICAgKChvcHRpb25zIDw8ICA4
KSAmIDB4MDBmZjAwMDApIHwKLSAgICAgICAgICAgICgob3B0aW9ucyA+PiAgOCkgJiAweDAwMDBm
ZjAwKSB8Ci0gICAgICAgICAgICAoKG9wdGlvbnMgPj4gMjQpICYgMHgwMDAwMDBmZik7Ci0gIH0K
LQotY29kZSA9IGNvZGVzdGFydCA9ICh1c2NoYXIgKilyZSArIG9mZnNldCArIGNvdW50ICogc2l6
ZTsKLXV0ZjggPSAob3B0aW9ucyAmIFBDUkVfVVRGOCkgIT0gMDsKLQotZm9yKDs7KQotICB7Ci0g
IHVzY2hhciAqY2NvZGU7Ci0gIGludCBjOwotICBpbnQgZXh0cmEgPSAwOwotCi0gIGZwcmludGYo
ZiwgIiUzZCAiLCAoaW50KShjb2RlIC0gY29kZXN0YXJ0KSk7Ci0KLSAgaWYgKCpjb2RlID49IE9Q
X0JSQSkKLSAgICB7Ci0gICAgaWYgKCpjb2RlIC0gT1BfQlJBID4gRVhUUkFDVF9CQVNJQ19NQVgp
Ci0gICAgICBmcHJpbnRmKGYsICIlM2QgQnJhIGV4dHJhXG4iLCBHRVQoY29kZSwgMSkpOwotICAg
IGVsc2UKLSAgICAgIGZwcmludGYoZiwgIiUzZCBCcmEgJWRcbiIsIEdFVChjb2RlLCAxKSwgKmNv
ZGUgLSBPUF9CUkEpOwotICAgIGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1tPUF9CUkFdOwotICAg
IGNvbnRpbnVlOwotICAgIH0KLQotICBzd2l0Y2goKmNvZGUpCi0gICAgewotICAgIGNhc2UgT1Bf
RU5EOgotICAgIGZwcmludGYoZiwgIiAgICAlc1xuIiwgT1BfbmFtZXNbKmNvZGVdKTsKLSAgICBm
cHJpbnRmKGYsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOwotICAgIHJldHVybjsKLQotICAgIGNhc2UgT1BfT1BU
OgotICAgIGZwcmludGYoZiwgIiAlLjJ4ICVzIiwgY29kZVsxXSwgT1BfbmFtZXNbKmNvZGVdKTsK
LSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfQ0hBUjoKLSAgICAgIHsKLSAgICAgIGZwcmludGYo
ZiwgIiAgICAiKTsKLSAgICAgIGRvCi0gICAgICAgIHsKLSAgICAgICAgY29kZSsrOwotICAgICAg
ICBjb2RlICs9IDEgKyBwcmludF9jaGFyKGYsIGNvZGUsIHV0ZjgpOwotICAgICAgICB9Ci0gICAg
ICB3aGlsZSAoKmNvZGUgPT0gT1BfQ0hBUik7Ci0gICAgICBmcHJpbnRmKGYsICJcbiIpOwotICAg
ICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9QX0NIQVJOQzoK
LSAgICAgIHsKLSAgICAgIGZwcmludGYoZiwgIiBOQyAiKTsKLSAgICAgIGRvCi0gICAgICAgIHsK
LSAgICAgICAgY29kZSsrOwotICAgICAgICBjb2RlICs9IDEgKyBwcmludF9jaGFyKGYsIGNvZGUs
IHV0ZjgpOwotICAgICAgICB9Ci0gICAgICB3aGlsZSAoKmNvZGUgPT0gT1BfQ0hBUk5DKTsKLSAg
ICAgIGZwcmludGYoZiwgIlxuIik7Ci0gICAgICBjb250aW51ZTsKLSAgICAgIH0KLSAgICBicmVh
azsKLQotICAgIGNhc2UgT1BfS0VUUk1BWDoKLSAgICBjYXNlIE9QX0tFVFJNSU46Ci0gICAgY2Fz
ZSBPUF9BTFQ6Ci0gICAgY2FzZSBPUF9LRVQ6Ci0gICAgY2FzZSBPUF9BU1NFUlQ6Ci0gICAgY2Fz
ZSBPUF9BU1NFUlRfTk9UOgotICAgIGNhc2UgT1BfQVNTRVJUQkFDSzoKLSAgICBjYXNlIE9QX0FT
U0VSVEJBQ0tfTk9UOgotICAgIGNhc2UgT1BfT05DRToKLSAgICBjYXNlIE9QX0NPTkQ6Ci0gICAg
Y2FzZSBPUF9SRVZFUlNFOgotICAgIGZwcmludGYoZiwgIiUzZCAlcyIsIEdFVChjb2RlLCAxKSwg
T1BfbmFtZXNbKmNvZGVdKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfQlJBTlVNQkVSOgot
ICAgIHByaW50ZigiJTNkICVzIiwgR0VUMihjb2RlLCAxKSwgT1BfbmFtZXNbKmNvZGVdKTsKLSAg
ICBicmVhazsKLQotICAgIGNhc2UgT1BfQ1JFRjoKLSAgICBpZiAoR0VUMihjb2RlLCAxKSA9PSBD
UkVGX1JFQ1VSU0UpCi0gICAgICBmcHJpbnRmKGYsICIgICAgQ29uZCByZWN1cnNlIik7Ci0gICAg
ZWxzZQotICAgICAgZnByaW50ZihmLCAiJTNkICVzIiwgR0VUMihjb2RlLDEpLCBPUF9uYW1lc1sq
Y29kZV0pOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUF9TVEFSOgotICAgIGNhc2UgT1BfTUlO
U1RBUjoKLSAgICBjYXNlIE9QX1BMVVM6Ci0gICAgY2FzZSBPUF9NSU5QTFVTOgotICAgIGNhc2Ug
T1BfUVVFUlk6Ci0gICAgY2FzZSBPUF9NSU5RVUVSWToKLSAgICBjYXNlIE9QX1RZUEVTVEFSOgot
ICAgIGNhc2UgT1BfVFlQRU1JTlNUQVI6Ci0gICAgY2FzZSBPUF9UWVBFUExVUzoKLSAgICBjYXNl
IE9QX1RZUEVNSU5QTFVTOgotICAgIGNhc2UgT1BfVFlQRVFVRVJZOgotICAgIGNhc2UgT1BfVFlQ
RU1JTlFVRVJZOgotICAgIGZwcmludGYoZiwgIiAgICAiKTsKLSAgICBpZiAoKmNvZGUgPj0gT1Bf
VFlQRVNUQVIpCi0gICAgICB7Ci0gICAgICBmcHJpbnRmKGYsICIlcyIsIE9QX25hbWVzW2NvZGVb
MV1dKTsKLSAgICAgIGlmIChjb2RlWzFdID09IE9QX1BST1AgfHwgY29kZVsxXSA9PSBPUF9OT1RQ
Uk9QKQotICAgICAgICB7Ci0gICAgICAgIGZwcmludGYoZiwgIiAlcyAiLCBnZXRfdWNwbmFtZShj
b2RlWzJdKSk7Ci0gICAgICAgIGV4dHJhID0gMTsKLSAgICAgICAgfQotICAgICAgfQotICAgIGVs
c2UgZXh0cmEgPSBwcmludF9jaGFyKGYsIGNvZGUrMSwgdXRmOCk7Ci0gICAgZnByaW50ZihmLCAi
JXMiLCBPUF9uYW1lc1sqY29kZV0pOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUF9FWEFDVDoK
LSAgICBjYXNlIE9QX1VQVE86Ci0gICAgY2FzZSBPUF9NSU5VUFRPOgotICAgIGZwcmludGYoZiwg
IiAgICAiKTsKLSAgICBleHRyYSA9IHByaW50X2NoYXIoZiwgY29kZSszLCB1dGY4KTsKLSAgICBm
cHJpbnRmKGYsICJ7Iik7Ci0gICAgaWYgKCpjb2RlICE9IE9QX0VYQUNUKSBmcHJpbnRmKGYsICIs
Iik7Ci0gICAgZnByaW50ZihmLCAiJWR9IiwgR0VUMihjb2RlLDEpKTsKLSAgICBpZiAoKmNvZGUg
PT0gT1BfTUlOVVBUTykgZnByaW50ZihmLCAiPyIpOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBP
UF9UWVBFRVhBQ1Q6Ci0gICAgY2FzZSBPUF9UWVBFVVBUTzoKLSAgICBjYXNlIE9QX1RZUEVNSU5V
UFRPOgotICAgIGZwcmludGYoZiwgIiAgICAlcyIsIE9QX25hbWVzW2NvZGVbM11dKTsKLSAgICBp
ZiAoY29kZVszXSA9PSBPUF9QUk9QIHx8IGNvZGVbM10gPT0gT1BfTk9UUFJPUCkKLSAgICAgIHsK
LSAgICAgIGZwcmludGYoZiwgIiAlcyAiLCBnZXRfdWNwbmFtZShjb2RlWzRdKSk7Ci0gICAgICBl
eHRyYSA9IDE7Ci0gICAgICB9Ci0gICAgZnByaW50ZihmLCAieyIpOwotICAgIGlmICgqY29kZSAh
PSBPUF9UWVBFRVhBQ1QpIGZwcmludGYoZiwgIjAsIik7Ci0gICAgZnByaW50ZihmLCAiJWR9Iiwg
R0VUMihjb2RlLDEpKTsKLSAgICBpZiAoKmNvZGUgPT0gT1BfVFlQRU1JTlVQVE8pIGZwcmludGYo
ZiwgIj8iKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfTk9UOgotICAgIGlmIChpc3ByaW50
KGMgPSBjb2RlWzFdKSkgZnByaW50ZihmLCAiICAgIFteJWNdIiwgYyk7Ci0gICAgICBlbHNlIGZw
cmludGYoZiwgIiAgICBbXlxceCUwMnhdIiwgYyk7Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9Q
X05PVFNUQVI6Ci0gICAgY2FzZSBPUF9OT1RNSU5TVEFSOgotICAgIGNhc2UgT1BfTk9UUExVUzoK
LSAgICBjYXNlIE9QX05PVE1JTlBMVVM6Ci0gICAgY2FzZSBPUF9OT1RRVUVSWToKLSAgICBjYXNl
IE9QX05PVE1JTlFVRVJZOgotICAgIGlmIChpc3ByaW50KGMgPSBjb2RlWzFdKSkgZnByaW50Zihm
LCAiICAgIFteJWNdIiwgYyk7Ci0gICAgICBlbHNlIGZwcmludGYoZiwgIiAgICBbXlxceCUwMnhd
IiwgYyk7Ci0gICAgZnByaW50ZihmLCAiJXMiLCBPUF9uYW1lc1sqY29kZV0pOwotICAgIGJyZWFr
OwotCi0gICAgY2FzZSBPUF9OT1RFWEFDVDoKLSAgICBjYXNlIE9QX05PVFVQVE86Ci0gICAgY2Fz
ZSBPUF9OT1RNSU5VUFRPOgotICAgIGlmIChpc3ByaW50KGMgPSBjb2RlWzNdKSkgZnByaW50Zihm
LCAiICAgIFteJWNdeyIsIGMpOwotICAgICAgZWxzZSBmcHJpbnRmKGYsICIgICAgW15cXHglMDJ4
XXsiLCBjKTsKLSAgICBpZiAoKmNvZGUgIT0gT1BfTk9URVhBQ1QpIGZwcmludGYoZiwgIjAsIik7
Ci0gICAgZnByaW50ZihmLCAiJWR9IiwgR0VUMihjb2RlLDEpKTsKLSAgICBpZiAoKmNvZGUgPT0g
T1BfTk9UTUlOVVBUTykgZnByaW50ZihmLCAiPyIpOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBP
UF9SRUNVUlNFOgotICAgIGZwcmludGYoZiwgIiUzZCAlcyIsIEdFVChjb2RlLCAxKSwgT1BfbmFt
ZXNbKmNvZGVdKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfUkVGOgotICAgIGZwcmludGYo
ZiwgIiAgICBcXCVkIiwgR0VUMihjb2RlLDEpKTsKLSAgICBjY29kZSA9IGNvZGUgKyBfcGNyZV9P
UF9sZW5ndGhzWypjb2RlXTsKLSAgICBnb3RvIENMQVNTX1JFRl9SRVBFQVQ7Ci0KLSAgICBjYXNl
IE9QX0NBTExPVVQ6Ci0gICAgZnByaW50ZihmLCAiICAgICVzICVkICVkICVkIiwgT1BfbmFtZXNb
KmNvZGVdLCBjb2RlWzFdLCBHRVQoY29kZSwyKSwKLSAgICAgIEdFVChjb2RlLCAyICsgTElOS19T
SVpFKSk7Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9QX1BST1A6Ci0gICAgY2FzZSBPUF9OT1RQ
Uk9QOgotICAgIGZwcmludGYoZiwgIiAgICAlcyAlcyIsIE9QX25hbWVzWypjb2RlXSwgZ2V0X3Vj
cG5hbWUoY29kZVsxXSkpOwotICAgIGJyZWFrOwotCi0gICAgLyogT1BfWENMQVNTIGNhbiBvbmx5
IG9jY3VyIGluIFVURi04IG1vZGUuIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8gaGFybSBpbgotICAgIGhh
dmluZyB0aGlzIGNvZGUgYWx3YXlzIGhlcmUsIGFuZCBpdCBtYWtlcyBpdCBsZXNzIG1lc3N5IHdp
dGhvdXQgYWxsIHRob3NlCi0gICAgI2lmZGVmcy4gKi8KLQotICAgIGNhc2UgT1BfQ0xBU1M6Ci0g
ICAgY2FzZSBPUF9OQ0xBU1M6Ci0gICAgY2FzZSBPUF9YQ0xBU1M6Ci0gICAgICB7Ci0gICAgICBp
bnQgaSwgbWluLCBtYXg7Ci0gICAgICBCT09MIHByaW50bWFwOwotCi0gICAgICBmcHJpbnRmKGYs
ICIgICAgWyIpOwotCi0gICAgICBpZiAoKmNvZGUgPT0gT1BfWENMQVNTKQotICAgICAgICB7Ci0g
ICAgICAgIGV4dHJhID0gR0VUKGNvZGUsIDEpOwotICAgICAgICBjY29kZSA9IGNvZGUgKyBMSU5L
X1NJWkUgKyAxOwotICAgICAgICBwcmludG1hcCA9ICgqY2NvZGUgJiBYQ0xfTUFQKSAhPSAwOwot
ICAgICAgICBpZiAoKCpjY29kZSsrICYgWENMX05PVCkgIT0gMCkgZnByaW50ZihmLCAiXiIpOwot
ICAgICAgICB9Ci0gICAgICBlbHNlCi0gICAgICAgIHsKLSAgICAgICAgcHJpbnRtYXAgPSBUUlVF
OwotICAgICAgICBjY29kZSA9IGNvZGUgKyAxOwotICAgICAgICB9Ci0KLSAgICAgIC8qIFByaW50
IGEgYml0IG1hcCAqLwotCi0gICAgICBpZiAocHJpbnRtYXApCi0gICAgICAgIHsKLSAgICAgICAg
Zm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotICAgICAgICAgIHsKLSAgICAgICAgICBpZiAoKGNj
b2RlW2kvOF0gJiAoMSA8PCAoaSY3KSkpICE9IDApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICBpbnQgajsKLSAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IDI1NjsgaisrKQotICAgICAg
ICAgICAgICBpZiAoKGNjb2RlW2ovOF0gJiAoMSA8PCAoaiY3KSkpID09IDApIGJyZWFrOwotICAg
ICAgICAgICAgaWYgKGkgPT0gJy0nIHx8IGkgPT0gJ10nKSBmcHJpbnRmKGYsICJcXCIpOwotICAg
ICAgICAgICAgaWYgKGlzcHJpbnQoaSkpIGZwcmludGYoZiwgIiVjIiwgaSk7IGVsc2UgZnByaW50
ZihmLCAiXFx4JTAyeCIsIGkpOwotICAgICAgICAgICAgaWYgKC0taiA+IGkpCi0gICAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgaWYgKGogIT0gaSArIDEpIGZwcmludGYoZiwgIi0iKTsKLSAg
ICAgICAgICAgICAgaWYgKGogPT0gJy0nIHx8IGogPT0gJ10nKSBmcHJpbnRmKGYsICJcXCIpOwot
ICAgICAgICAgICAgICBpZiAoaXNwcmludChqKSkgZnByaW50ZihmLCAiJWMiLCBqKTsgZWxzZSBm
cHJpbnRmKGYsICJcXHglMDJ4Iiwgaik7Ci0gICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGkg
PSBqOwotICAgICAgICAgICAgfQotICAgICAgICAgIH0KLSAgICAgICAgY2NvZGUgKz0gMzI7Ci0g
ICAgICAgIH0KLQotICAgICAgLyogRm9yIGFuIFhDTEFTUyB0aGVyZSBpcyBhbHdheXMgc29tZSBh
ZGRpdGlvbmFsIGRhdGEgKi8KLQotICAgICAgaWYgKCpjb2RlID09IE9QX1hDTEFTUykKLSAgICAg
ICAgewotICAgICAgICBpbnQgY2g7Ci0gICAgICAgIHdoaWxlICgoY2ggPSAqY2NvZGUrKykgIT0g
WENMX0VORCkKLSAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKGNoID09IFhDTF9QUk9QKQotICAg
ICAgICAgICAgewotICAgICAgICAgICAgZnByaW50ZihmLCAiXFxweyVzfSIsIGdldF91Y3BuYW1l
KCpjY29kZSsrKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZSBpZiAoY2ggPT0gWENM
X05PVFBST1ApCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBmcHJpbnRmKGYsICJcXFB7JXN9
IiwgZ2V0X3VjcG5hbWUoKmNjb2RlKyspKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICBlbHNl
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICBjY29kZSArPSAxICsgcHJpbnRfY2hhcihmLCBj
Y29kZSwgVFJVRSk7Ci0gICAgICAgICAgICBpZiAoY2ggPT0gWENMX1JBTkdFKQotICAgICAgICAg
ICAgICB7Ci0gICAgICAgICAgICAgIGZwcmludGYoZiwgIi0iKTsKLSAgICAgICAgICAgICAgY2Nv
ZGUgKz0gMSArIHByaW50X2NoYXIoZiwgY2NvZGUsIFRSVUUpOwotICAgICAgICAgICAgICB9Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgIC8qIEluZGljYXRl
IGEgbm9uLVVURjggY2xhc3Mgd2hpY2ggd2FzIGNyZWF0ZWQgYnkgbmVnYXRpb24gKi8KLQotICAg
ICAgZnByaW50ZihmLCAiXSVzIiwgKCpjb2RlID09IE9QX05DTEFTUyk/ICIgKG5lZykiIDogIiIp
OwotCi0gICAgICAvKiBIYW5kbGUgcmVwZWF0cyBhZnRlciBhIGNsYXNzIG9yIGEgYmFjayByZWZl
cmVuY2UgKi8KLQotICAgICAgQ0xBU1NfUkVGX1JFUEVBVDoKLSAgICAgIHN3aXRjaCgqY2NvZGUp
Ci0gICAgICAgIHsKLSAgICAgICAgY2FzZSBPUF9DUlNUQVI6Ci0gICAgICAgIGNhc2UgT1BfQ1JN
SU5TVEFSOgotICAgICAgICBjYXNlIE9QX0NSUExVUzoKLSAgICAgICAgY2FzZSBPUF9DUk1JTlBM
VVM6Ci0gICAgICAgIGNhc2UgT1BfQ1JRVUVSWToKLSAgICAgICAgY2FzZSBPUF9DUk1JTlFVRVJZ
OgotICAgICAgICBmcHJpbnRmKGYsICIlcyIsIE9QX25hbWVzWypjY29kZV0pOwotICAgICAgICBl
eHRyYSArPSBfcGNyZV9PUF9sZW5ndGhzWypjY29kZV07Ci0gICAgICAgIGJyZWFrOwotCi0gICAg
ICAgIGNhc2UgT1BfQ1JSQU5HRToKLSAgICAgICAgY2FzZSBPUF9DUk1JTlJBTkdFOgotICAgICAg
ICBtaW4gPSBHRVQyKGNjb2RlLDEpOwotICAgICAgICBtYXggPSBHRVQyKGNjb2RlLDMpOwotICAg
ICAgICBpZiAobWF4ID09IDApIGZwcmludGYoZiwgInslZCx9IiwgbWluKTsKLSAgICAgICAgZWxz
ZSBmcHJpbnRmKGYsICJ7JWQsJWR9IiwgbWluLCBtYXgpOwotICAgICAgICBpZiAoKmNjb2RlID09
IE9QX0NSTUlOUkFOR0UpIGZwcmludGYoZiwgIj8iKTsKLSAgICAgICAgZXh0cmEgKz0gX3BjcmVf
T1BfbGVuZ3Roc1sqY2NvZGVdOwotICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgICAgfQot
ICAgIGJyZWFrOwotCi0gICAgLyogQW55dGhpbmcgZWxzZSBpcyBqdXN0IGFuIGl0ZW0gd2l0aCBu
byBkYXRhKi8KLQotICAgIGRlZmF1bHQ6Ci0gICAgZnByaW50ZihmLCAiICAgICVzIiwgT1BfbmFt
ZXNbKmNvZGVdKTsKLSAgICBicmVhazsKLSAgICB9Ci0KLSAgY29kZSArPSBfcGNyZV9PUF9sZW5n
dGhzWypjb2RlXSArIGV4dHJhOwotICBmcHJpbnRmKGYsICJcbiIpOwotICB9Ci19Ci0KLS8qIEVu
ZCBvZiBwY3JlX3ByaW50aW50LmMgKi8KSW5kZXg6IE1ha2VmaWxlLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IE1ha2VmaWxlLmluCShyZXZpc2lvbiAzKQorKysgTWFrZWZpbGUuaW4JKHJldmlzaW9uIDQpCkBA
IC0xMDUsNyArMTA1LDcgQEAKIExUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS1tb2RlPWNvbXBp
bGUgJChDWFgpIC1jICQoQ1hYRkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikgJChORVdMSU5FKSAk
KExJTktfU0laRSkgJChNQVRDSF9MSU1JVCkgJChOT19SRUNVUlNFKSAkKEVCQ0RJQykKIEBPTl9X
SU5ET1dTQExJTksgPSAkKENDKSAkKExERkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikgLUwubGli
cwogQE5PVF9PTl9XSU5ET1dTQExJTksgPSAkKExJQlRPT0wpIC0tbW9kZT1saW5rICQoQ0MpICQo
Q0ZMQUdTKSAkKExERkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikKLUxJTktMSUIgPSAkKExJQlRP
T0wpIC0tbW9kZT1saW5rICQoQ0MpIC1leHBvcnQtc3ltYm9scy1yZWdleCAnXlteX118X18/cGNy
ZV8uKnV0Zjh8X18/cGNyZV9wcmludGludCcgJChMREZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIp
CitMSU5LTElCID0gJChMSUJUT09MKSAtLW1vZGU9bGluayAkKENDKSAtZXhwb3J0LXN5bWJvbHMt
cmVnZXggJ15bXl9dJyAkKExERkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikKIExJTktfRk9SX0JV
SUxEID0gJChMSUJUT09MKSAtLW1vZGU9bGluayAkKENDX0ZPUl9CVUlMRCkgJChDRkxBR1NfRk9S
X0JVSUxEKSAkKExERkxBR1NfRk9SX0JVSUxEKSAtSS4gLUkkKHRvcF9zcmNkaXIpCiBAT05fV0lO
RE9XU0BDWFhMSU5LID0gJChDWFgpICQoTERGTEFHUykgLUkuIC1JJCh0b3Bfc3JjZGlyKSAtTC5s
aWJzCiBATk9UX09OX1dJTkRPV1NAQ1hYTElOSyA9ICQoTElCVE9PTCkgLS1tb2RlPWxpbmsgJChD
WFgpICQoTERGTEFHUykgLUkuIC1JJCh0b3Bfc3JjZGlyKQpAQCAtMTMxLDcgKzEzMSw2IEBACiAg
IHBjcmVfaW5mby5AT0JKRVhUQCBcCiAgIHBjcmVfbWFrZXRhYmxlcy5AT0JKRVhUQCBcCiAgIHBj
cmVfb3JkMnV0ZjguQE9CSkVYVEAgXAotICBwY3JlX3ByaW50aW50LkBPQkpFWFRAIFwKICAgcGNy
ZV9yZWZjb3VudC5AT0JKRVhUQCBcCiAgIHBjcmVfc3R1ZHkuQE9CSkVYVEAgXAogICBwY3JlX3Rh
Ymxlcy5AT0JKRVhUQCBcCkBAIC0xNTMsNyArMTUyLDYgQEAKICAgcGNyZV9pbmZvLmxvIFwKICAg
cGNyZV9tYWtldGFibGVzLmxvIFwKICAgcGNyZV9vcmQydXRmOC5sbyBcCi0gIHBjcmVfcHJpbnRp
bnQubG8gXAogICBwY3JlX3JlZmNvdW50LmxvIFwKICAgcGNyZV9zdHVkeS5sbyBcCiAgIHBjcmVf
dGFibGVzLmxvIFwKQEAgLTI2OSwxMSArMjY3LDYgQEAKIAkJQCQoTFRDT01QSUxFKSAkKFVURjgp
ICQoVUNQKSAkKFBPU0lYX01BTExPQ19USFJFU0hPTEQpIFwKIAkJJCh0b3Bfc3JjZGlyKS9wY3Jl
X29yZDJ1dGY4LmMKIAotcGNyZV9wcmludGludC5AT0JKRVhUQDogTWFrZWZpbGUgY29uZmlnLmgg
cGNyZS5oIFwKLQkJJCh0b3Bfc3JjZGlyKS9wY3JlX2ludGVybmFsLmggJCh0b3Bfc3JjZGlyKS9w
Y3JlX3ByaW50aW50LmMKLQkJQCQoTFRDT01QSUxFKSAkKFVURjgpICQoVUNQKSAkKFBPU0lYX01B
TExPQ19USFJFU0hPTEQpIFwKLQkJJCh0b3Bfc3JjZGlyKS9wY3JlX3ByaW50aW50LmMKLQogcGNy
ZV9yZWZjb3VudC5AT0JKRVhUQDogICBNYWtlZmlsZSBjb25maWcuaCBwY3JlLmggXAogCQkkKHRv
cF9zcmNkaXIpL3BjcmVfaW50ZXJuYWwuaCAkKHRvcF9zcmNkaXIpL3BjcmVfcmVmY291bnQuYwog
CQlAJChMVENPTVBJTEUpICQoVVRGOCkgJChVQ1ApICQoUE9TSVhfTUFMTE9DX1RIUkVTSE9MRCkg
XApJbmRleDogcGNyZV9wcmludGludC5zcmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZV9wcmludGludC5z
cmMJKHJldmlzaW9uIDApCisrKyBwY3JlX3ByaW50aW50LnNyYwkocmV2aXNpb24gNCkKQEAgLTAs
MCArMSw0NTQgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqCisqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAg
KgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor
LyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHBy
ZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3Np
YmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisKKyAgICAgICAgICAgICAgICAg
ICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgQ29weXJpZ2h0IChjKSAx
OTk3LTIwMDUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKworLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
K1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKKyAg
ICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
CisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVu
ZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAgIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisKK1RISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRP
UlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKK0FSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQorUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKworCisvKiBUaGlzIG1v
ZHVsZSBjb250YWlucyBhIFBDUkUgcHJpdmF0ZSBkZWJ1Z2dpbmcgZnVuY3Rpb24gZm9yIHByaW50
aW5nIG91dCB0aGUKK2ludGVybmFsIGZvcm0gb2YgYSBjb21waWxlZCByZWd1bGFyIGV4cHJlc3Np
b24sIGFsb25nIHdpdGggc29tZSBzdXBwb3J0aW5nCitsb2NhbCBmdW5jdGlvbnMuIFRoaXMgc291
cmNlIGZpbGUgaXMgdXNlZCBpbiB0d28gcGxhY2VzOgorCisoMSkgSXQgaXMgI2luY2x1ZGVkIGJ5
IHBjcmVfY29tcGlsZS5jIHdoZW4gaXQgaXMgY29tcGlsZWQgaW4gZGVidWdnaW5nIG1vZGUKKyhE
RUJVRyBkZWZpbmVkIGluIHBjcmVfaW50ZXJuYWwuaCkuIEl0IGlzIG5vdCBpbmNsdWRlZCBpbiBw
cm9kdWN0aW9uIGNvbXBpbGVzLgorCisoMikgSXQgaXMgYWx3YXlzICNpbmNsdWRlZCBieSBwY3Jl
dGVzdC5jLCB3aGljaCBjYW4gYmUgYXNrZWQgdG8gcHJpbnQgb3V0IGEKK2NvbXBpbGVkIHJlZ2V4
IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuICovCisKKworc3RhdGljIGNvbnN0IGNoYXIgKk9QX25h
bWVzW10gPSB7IE9QX05BTUVfTElTVCB9OworCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgIFByaW50IHNpbmdsZS0gb3IgbXVsdGkt
Ynl0ZSBjaGFyYWN0ZXIgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKi8KKworc3RhdGljIGludAorcHJpbnRfY2hhcihGSUxFICpmLCB1c2NoYXIg
KnB0ciwgQk9PTCB1dGY4KQoreworaW50IGMgPSAqcHRyOworCitpZiAoIXV0ZjggfHwgKGMgJiAw
eGMwKSAhPSAweGMwKQorICB7CisgIGlmIChpc3ByaW50KGMpKSBmcHJpbnRmKGYsICIlYyIsIGMp
OyBlbHNlIGZwcmludGYoZiwgIlxceCUwMngiLCBjKTsKKyAgcmV0dXJuIDA7CisgIH0KK2Vsc2UK
KyAgeworICBpbnQgaTsKKyAgaW50IGEgPSBfcGNyZV91dGY4X3RhYmxlNFtjICYgMHgzZl07ICAv
KiBOdW1iZXIgb2YgYWRkaXRpb25hbCBieXRlcyAqLworICBpbnQgcyA9IDYqYTsKKyAgYyA9IChj
ICYgX3BjcmVfdXRmOF90YWJsZTNbYV0pIDw8IHM7CisgIGZvciAoaSA9IDE7IGkgPD0gYTsgaSsr
KQorICAgIHsKKyAgICAvKiBUaGlzIGlzIGEgY2hlY2sgZm9yIG1hbGZvcm1lZCBVVEYtODsgaXQg
c2hvdWxkIG9ubHkgb2NjdXIgaWYgdGhlIHNhbml0eQorICAgIGNoZWNrIGhhcyBiZWVuIHR1cm5l
ZCBvZmYuIFJhdGhlciB0aGFuIHN3YWxsb3cgcmFuZG9tIGJ5dGVzLCBqdXN0IHN0b3AgaWYKKyAg
ICB3ZSBoaXQgYSBiYWQgb25lLiBQcmludCBpdCB3aXRoIFxYIGluc3RlYWQgb2YgXHggYXMgYW4g
aW5kaWNhdGlvbi4gKi8KKworICAgIGlmICgocHRyW2ldICYgMHhjMCkgIT0gMHg4MCkKKyAgICAg
IHsKKyAgICAgIGZwcmludGYoZiwgIlxcWHsleH0iLCBjKTsKKyAgICAgIHJldHVybiBpIC0gMTsK
KyAgICAgIH0KKworICAgIC8qIFRoZSBieXRlIGlzIE9LICovCisKKyAgICBzIC09IDY7CisgICAg
YyB8PSAocHRyW2ldICYgMHgzZikgPDwgczsKKyAgICB9CisgIGlmIChjIDwgMTI4KSBmcHJpbnRm
KGYsICJcXHglMDJ4IiwgYyk7IGVsc2UgZnByaW50ZihmLCAiXFx4eyV4fSIsIGMpOworICByZXR1
cm4gYTsKKyAgfQorfQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioKKyogICAgICAgICAgRmluZCBVbmljb2RlIHByb3BlcnR5IG5hbWUgICAg
ICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqLworCitzdGF0aWMgY29uc3QgY2hhciAqCitnZXRfdWNwbmFtZShpbnQgcHJvcGVydHkpCit7
CisjaWZkZWYgU1VQUE9SVF9VQ1AKK2ludCBpOworZm9yIChpID0gX3BjcmVfdXR0X3NpemU7IGkg
Pj0gMDsgaS0tKQorICB7CisgIGlmIChwcm9wZXJ0eSA9PSBfcGNyZV91dHRbaV0udmFsdWUpIGJy
ZWFrOworICB9CityZXR1cm4gKGkgPj0gMCk/IF9wY3JlX3V0dFtpXS5uYW1lIDogIj8/IjsKKyNl
bHNlCityZXR1cm4gIj8/IjsKKyNlbmRpZgorfQorCisKKworLyoqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICBQcmludCBjb21waWxlZCBy
ZWdleCAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLworCisvKiBNYWtlIHRoaXMgZnVuY3Rpb24gd29yayBmb3IgYSBy
ZWdleCB3aXRoIGludGVnZXJzIGVpdGhlciBieXRlIG9yZGVyLgorSG93ZXZlciwgd2UgYXNzdW1l
IHRoYXQgd2hhdCB3ZSBhcmUgcGFzc2VkIGlzIGEgY29tcGlsZWQgcmVnZXguICovCisKK3N0YXRp
YyB2b2lkCitwY3JlX3ByaW50aW50KHBjcmUgKmV4dGVybmFsX3JlLCBGSUxFICpmKQoreworcmVh
bF9wY3JlICpyZSA9IChyZWFsX3BjcmUgKilleHRlcm5hbF9yZTsKK3VzY2hhciAqY29kZXN0YXJ0
LCAqY29kZTsKK0JPT0wgdXRmODsKKwordW5zaWduZWQgaW50IG9wdGlvbnMgPSByZS0+b3B0aW9u
czsKK2ludCBvZmZzZXQgPSByZS0+bmFtZV90YWJsZV9vZmZzZXQ7CitpbnQgY291bnQgPSByZS0+
bmFtZV9jb3VudDsKK2ludCBzaXplID0gcmUtPm5hbWVfZW50cnlfc2l6ZTsKKworaWYgKHJlLT5t
YWdpY19udW1iZXIgIT0gTUFHSUNfTlVNQkVSKQorICB7CisgIG9mZnNldCA9ICgob2Zmc2V0IDw8
IDgpICYgMHhmZjAwKSB8ICgob2Zmc2V0ID4+IDgpICYgMHhmZik7CisgIGNvdW50ID0gKChjb3Vu
dCA8PCA4KSAmIDB4ZmYwMCkgfCAoKGNvdW50ID4+IDgpICYgMHhmZik7CisgIHNpemUgPSAoKHNp
emUgPDwgOCkgJiAweGZmMDApIHwgKChzaXplID4+IDgpICYgMHhmZik7CisgIG9wdGlvbnMgPSAo
KG9wdGlvbnMgPDwgMjQpICYgMHhmZjAwMDAwMCkgfAorICAgICAgICAgICAgKChvcHRpb25zIDw8
ICA4KSAmIDB4MDBmZjAwMDApIHwKKyAgICAgICAgICAgICgob3B0aW9ucyA+PiAgOCkgJiAweDAw
MDBmZjAwKSB8CisgICAgICAgICAgICAoKG9wdGlvbnMgPj4gMjQpICYgMHgwMDAwMDBmZik7Cisg
IH0KKworY29kZSA9IGNvZGVzdGFydCA9ICh1c2NoYXIgKilyZSArIG9mZnNldCArIGNvdW50ICog
c2l6ZTsKK3V0ZjggPSAob3B0aW9ucyAmIFBDUkVfVVRGOCkgIT0gMDsKKworZm9yKDs7KQorICB7
CisgIHVzY2hhciAqY2NvZGU7CisgIGludCBjOworICBpbnQgZXh0cmEgPSAwOworCisgIGZwcmlu
dGYoZiwgIiUzZCAiLCAoaW50KShjb2RlIC0gY29kZXN0YXJ0KSk7CisKKyAgaWYgKCpjb2RlID49
IE9QX0JSQSkKKyAgICB7CisgICAgaWYgKCpjb2RlIC0gT1BfQlJBID4gRVhUUkFDVF9CQVNJQ19N
QVgpCisgICAgICBmcHJpbnRmKGYsICIlM2QgQnJhIGV4dHJhXG4iLCBHRVQoY29kZSwgMSkpOwor
ICAgIGVsc2UKKyAgICAgIGZwcmludGYoZiwgIiUzZCBCcmEgJWRcbiIsIEdFVChjb2RlLCAxKSwg
KmNvZGUgLSBPUF9CUkEpOworICAgIGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1tPUF9CUkFdOwor
ICAgIGNvbnRpbnVlOworICAgIH0KKworICBzd2l0Y2goKmNvZGUpCisgICAgeworICAgIGNhc2Ug
T1BfRU5EOgorICAgIGZwcmludGYoZiwgIiAgICAlc1xuIiwgT1BfbmFtZXNbKmNvZGVdKTsKKyAg
ICBmcHJpbnRmKGYsICItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpOworICAgIHJldHVybjsKKworICAgIGNhc2UgT1Bf
T1BUOgorICAgIGZwcmludGYoZiwgIiAlLjJ4ICVzIiwgY29kZVsxXSwgT1BfbmFtZXNbKmNvZGVd
KTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfQ0hBUjoKKyAgICAgIHsKKyAgICAgIGZwcmlu
dGYoZiwgIiAgICAiKTsKKyAgICAgIGRvCisgICAgICAgIHsKKyAgICAgICAgY29kZSsrOworICAg
ICAgICBjb2RlICs9IDEgKyBwcmludF9jaGFyKGYsIGNvZGUsIHV0ZjgpOworICAgICAgICB9Cisg
ICAgICB3aGlsZSAoKmNvZGUgPT0gT1BfQ0hBUik7CisgICAgICBmcHJpbnRmKGYsICJcbiIpOwor
ICAgICAgY29udGludWU7CisgICAgICB9CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0NIQVJO
QzoKKyAgICAgIHsKKyAgICAgIGZwcmludGYoZiwgIiBOQyAiKTsKKyAgICAgIGRvCisgICAgICAg
IHsKKyAgICAgICAgY29kZSsrOworICAgICAgICBjb2RlICs9IDEgKyBwcmludF9jaGFyKGYsIGNv
ZGUsIHV0ZjgpOworICAgICAgICB9CisgICAgICB3aGlsZSAoKmNvZGUgPT0gT1BfQ0hBUk5DKTsK
KyAgICAgIGZwcmludGYoZiwgIlxuIik7CisgICAgICBjb250aW51ZTsKKyAgICAgIH0KKyAgICBi
cmVhazsKKworICAgIGNhc2UgT1BfS0VUUk1BWDoKKyAgICBjYXNlIE9QX0tFVFJNSU46CisgICAg
Y2FzZSBPUF9BTFQ6CisgICAgY2FzZSBPUF9LRVQ6CisgICAgY2FzZSBPUF9BU1NFUlQ6CisgICAg
Y2FzZSBPUF9BU1NFUlRfTk9UOgorICAgIGNhc2UgT1BfQVNTRVJUQkFDSzoKKyAgICBjYXNlIE9Q
X0FTU0VSVEJBQ0tfTk9UOgorICAgIGNhc2UgT1BfT05DRToKKyAgICBjYXNlIE9QX0NPTkQ6Cisg
ICAgY2FzZSBPUF9SRVZFUlNFOgorICAgIGZwcmludGYoZiwgIiUzZCAlcyIsIEdFVChjb2RlLCAx
KSwgT1BfbmFtZXNbKmNvZGVdKTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfQlJBTlVNQkVS
OgorICAgIHByaW50ZigiJTNkICVzIiwgR0VUMihjb2RlLCAxKSwgT1BfbmFtZXNbKmNvZGVdKTsK
KyAgICBicmVhazsKKworICAgIGNhc2UgT1BfQ1JFRjoKKyAgICBpZiAoR0VUMihjb2RlLCAxKSA9
PSBDUkVGX1JFQ1VSU0UpCisgICAgICBmcHJpbnRmKGYsICIgICAgQ29uZCByZWN1cnNlIik7Cisg
ICAgZWxzZQorICAgICAgZnByaW50ZihmLCAiJTNkICVzIiwgR0VUMihjb2RlLDEpLCBPUF9uYW1l
c1sqY29kZV0pOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9TVEFSOgorICAgIGNhc2UgT1Bf
TUlOU1RBUjoKKyAgICBjYXNlIE9QX1BMVVM6CisgICAgY2FzZSBPUF9NSU5QTFVTOgorICAgIGNh
c2UgT1BfUVVFUlk6CisgICAgY2FzZSBPUF9NSU5RVUVSWToKKyAgICBjYXNlIE9QX1RZUEVTVEFS
OgorICAgIGNhc2UgT1BfVFlQRU1JTlNUQVI6CisgICAgY2FzZSBPUF9UWVBFUExVUzoKKyAgICBj
YXNlIE9QX1RZUEVNSU5QTFVTOgorICAgIGNhc2UgT1BfVFlQRVFVRVJZOgorICAgIGNhc2UgT1Bf
VFlQRU1JTlFVRVJZOgorICAgIGZwcmludGYoZiwgIiAgICAiKTsKKyAgICBpZiAoKmNvZGUgPj0g
T1BfVFlQRVNUQVIpCisgICAgICB7CisgICAgICBmcHJpbnRmKGYsICIlcyIsIE9QX25hbWVzW2Nv
ZGVbMV1dKTsKKyAgICAgIGlmIChjb2RlWzFdID09IE9QX1BST1AgfHwgY29kZVsxXSA9PSBPUF9O
T1RQUk9QKQorICAgICAgICB7CisgICAgICAgIGZwcmludGYoZiwgIiAlcyAiLCBnZXRfdWNwbmFt
ZShjb2RlWzJdKSk7CisgICAgICAgIGV4dHJhID0gMTsKKyAgICAgICAgfQorICAgICAgfQorICAg
IGVsc2UgZXh0cmEgPSBwcmludF9jaGFyKGYsIGNvZGUrMSwgdXRmOCk7CisgICAgZnByaW50Zihm
LCAiJXMiLCBPUF9uYW1lc1sqY29kZV0pOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9FWEFD
VDoKKyAgICBjYXNlIE9QX1VQVE86CisgICAgY2FzZSBPUF9NSU5VUFRPOgorICAgIGZwcmludGYo
ZiwgIiAgICAiKTsKKyAgICBleHRyYSA9IHByaW50X2NoYXIoZiwgY29kZSszLCB1dGY4KTsKKyAg
ICBmcHJpbnRmKGYsICJ7Iik7CisgICAgaWYgKCpjb2RlICE9IE9QX0VYQUNUKSBmcHJpbnRmKGYs
ICIsIik7CisgICAgZnByaW50ZihmLCAiJWR9IiwgR0VUMihjb2RlLDEpKTsKKyAgICBpZiAoKmNv
ZGUgPT0gT1BfTUlOVVBUTykgZnByaW50ZihmLCAiPyIpOworICAgIGJyZWFrOworCisgICAgY2Fz
ZSBPUF9UWVBFRVhBQ1Q6CisgICAgY2FzZSBPUF9UWVBFVVBUTzoKKyAgICBjYXNlIE9QX1RZUEVN
SU5VUFRPOgorICAgIGZwcmludGYoZiwgIiAgICAlcyIsIE9QX25hbWVzW2NvZGVbM11dKTsKKyAg
ICBpZiAoY29kZVszXSA9PSBPUF9QUk9QIHx8IGNvZGVbM10gPT0gT1BfTk9UUFJPUCkKKyAgICAg
IHsKKyAgICAgIGZwcmludGYoZiwgIiAlcyAiLCBnZXRfdWNwbmFtZShjb2RlWzRdKSk7CisgICAg
ICBleHRyYSA9IDE7CisgICAgICB9CisgICAgZnByaW50ZihmLCAieyIpOworICAgIGlmICgqY29k
ZSAhPSBPUF9UWVBFRVhBQ1QpIGZwcmludGYoZiwgIjAsIik7CisgICAgZnByaW50ZihmLCAiJWR9
IiwgR0VUMihjb2RlLDEpKTsKKyAgICBpZiAoKmNvZGUgPT0gT1BfVFlQRU1JTlVQVE8pIGZwcmlu
dGYoZiwgIj8iKTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfTk9UOgorICAgIGlmIChpc3By
aW50KGMgPSBjb2RlWzFdKSkgZnByaW50ZihmLCAiICAgIFteJWNdIiwgYyk7CisgICAgICBlbHNl
IGZwcmludGYoZiwgIiAgICBbXlxceCUwMnhdIiwgYyk7CisgICAgYnJlYWs7CisKKyAgICBjYXNl
IE9QX05PVFNUQVI6CisgICAgY2FzZSBPUF9OT1RNSU5TVEFSOgorICAgIGNhc2UgT1BfTk9UUExV
UzoKKyAgICBjYXNlIE9QX05PVE1JTlBMVVM6CisgICAgY2FzZSBPUF9OT1RRVUVSWToKKyAgICBj
YXNlIE9QX05PVE1JTlFVRVJZOgorICAgIGlmIChpc3ByaW50KGMgPSBjb2RlWzFdKSkgZnByaW50
ZihmLCAiICAgIFteJWNdIiwgYyk7CisgICAgICBlbHNlIGZwcmludGYoZiwgIiAgICBbXlxceCUw
MnhdIiwgYyk7CisgICAgZnByaW50ZihmLCAiJXMiLCBPUF9uYW1lc1sqY29kZV0pOworICAgIGJy
ZWFrOworCisgICAgY2FzZSBPUF9OT1RFWEFDVDoKKyAgICBjYXNlIE9QX05PVFVQVE86CisgICAg
Y2FzZSBPUF9OT1RNSU5VUFRPOgorICAgIGlmIChpc3ByaW50KGMgPSBjb2RlWzNdKSkgZnByaW50
ZihmLCAiICAgIFteJWNdeyIsIGMpOworICAgICAgZWxzZSBmcHJpbnRmKGYsICIgICAgW15cXHgl
MDJ4XXsiLCBjKTsKKyAgICBpZiAoKmNvZGUgIT0gT1BfTk9URVhBQ1QpIGZwcmludGYoZiwgIjAs
Iik7CisgICAgZnByaW50ZihmLCAiJWR9IiwgR0VUMihjb2RlLDEpKTsKKyAgICBpZiAoKmNvZGUg
PT0gT1BfTk9UTUlOVVBUTykgZnByaW50ZihmLCAiPyIpOworICAgIGJyZWFrOworCisgICAgY2Fz
ZSBPUF9SRUNVUlNFOgorICAgIGZwcmludGYoZiwgIiUzZCAlcyIsIEdFVChjb2RlLCAxKSwgT1Bf
bmFtZXNbKmNvZGVdKTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfUkVGOgorICAgIGZwcmlu
dGYoZiwgIiAgICBcXCVkIiwgR0VUMihjb2RlLDEpKTsKKyAgICBjY29kZSA9IGNvZGUgKyBfcGNy
ZV9PUF9sZW5ndGhzWypjb2RlXTsKKyAgICBnb3RvIENMQVNTX1JFRl9SRVBFQVQ7CisKKyAgICBj
YXNlIE9QX0NBTExPVVQ6CisgICAgZnByaW50ZihmLCAiICAgICVzICVkICVkICVkIiwgT1BfbmFt
ZXNbKmNvZGVdLCBjb2RlWzFdLCBHRVQoY29kZSwyKSwKKyAgICAgIEdFVChjb2RlLCAyICsgTElO
S19TSVpFKSk7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX1BST1A6CisgICAgY2FzZSBPUF9O
T1RQUk9QOgorICAgIGZwcmludGYoZiwgIiAgICAlcyAlcyIsIE9QX25hbWVzWypjb2RlXSwgZ2V0
X3VjcG5hbWUoY29kZVsxXSkpOworICAgIGJyZWFrOworCisgICAgLyogT1BfWENMQVNTIGNhbiBv
bmx5IG9jY3VyIGluIFVURi04IG1vZGUuIEhvd2V2ZXIsIHRoZXJlJ3Mgbm8gaGFybSBpbgorICAg
IGhhdmluZyB0aGlzIGNvZGUgYWx3YXlzIGhlcmUsIGFuZCBpdCBtYWtlcyBpdCBsZXNzIG1lc3N5
IHdpdGhvdXQgYWxsIHRob3NlCisgICAgI2lmZGVmcy4gKi8KKworICAgIGNhc2UgT1BfQ0xBU1M6
CisgICAgY2FzZSBPUF9OQ0xBU1M6CisgICAgY2FzZSBPUF9YQ0xBU1M6CisgICAgICB7CisgICAg
ICBpbnQgaSwgbWluLCBtYXg7CisgICAgICBCT09MIHByaW50bWFwOworCisgICAgICBmcHJpbnRm
KGYsICIgICAgWyIpOworCisgICAgICBpZiAoKmNvZGUgPT0gT1BfWENMQVNTKQorICAgICAgICB7
CisgICAgICAgIGV4dHJhID0gR0VUKGNvZGUsIDEpOworICAgICAgICBjY29kZSA9IGNvZGUgKyBM
SU5LX1NJWkUgKyAxOworICAgICAgICBwcmludG1hcCA9ICgqY2NvZGUgJiBYQ0xfTUFQKSAhPSAw
OworICAgICAgICBpZiAoKCpjY29kZSsrICYgWENMX05PVCkgIT0gMCkgZnByaW50ZihmLCAiXiIp
OworICAgICAgICB9CisgICAgICBlbHNlCisgICAgICAgIHsKKyAgICAgICAgcHJpbnRtYXAgPSBU
UlVFOworICAgICAgICBjY29kZSA9IGNvZGUgKyAxOworICAgICAgICB9CisKKyAgICAgIC8qIFBy
aW50IGEgYml0IG1hcCAqLworCisgICAgICBpZiAocHJpbnRtYXApCisgICAgICAgIHsKKyAgICAg
ICAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQorICAgICAgICAgIHsKKyAgICAgICAgICBpZiAo
KGNjb2RlW2kvOF0gJiAoMSA8PCAoaSY3KSkpICE9IDApCisgICAgICAgICAgICB7CisgICAgICAg
ICAgICBpbnQgajsKKyAgICAgICAgICAgIGZvciAoaiA9IGkrMTsgaiA8IDI1NjsgaisrKQorICAg
ICAgICAgICAgICBpZiAoKGNjb2RlW2ovOF0gJiAoMSA8PCAoaiY3KSkpID09IDApIGJyZWFrOwor
ICAgICAgICAgICAgaWYgKGkgPT0gJy0nIHx8IGkgPT0gJ10nKSBmcHJpbnRmKGYsICJcXCIpOwor
ICAgICAgICAgICAgaWYgKGlzcHJpbnQoaSkpIGZwcmludGYoZiwgIiVjIiwgaSk7IGVsc2UgZnBy
aW50ZihmLCAiXFx4JTAyeCIsIGkpOworICAgICAgICAgICAgaWYgKC0taiA+IGkpCisgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgaWYgKGogIT0gaSArIDEpIGZwcmludGYoZiwgIi0iKTsK
KyAgICAgICAgICAgICAgaWYgKGogPT0gJy0nIHx8IGogPT0gJ10nKSBmcHJpbnRmKGYsICJcXCIp
OworICAgICAgICAgICAgICBpZiAoaXNwcmludChqKSkgZnByaW50ZihmLCAiJWMiLCBqKTsgZWxz
ZSBmcHJpbnRmKGYsICJcXHglMDJ4Iiwgaik7CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGkgPSBqOworICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgY2NvZGUgKz0gMzI7
CisgICAgICAgIH0KKworICAgICAgLyogRm9yIGFuIFhDTEFTUyB0aGVyZSBpcyBhbHdheXMgc29t
ZSBhZGRpdGlvbmFsIGRhdGEgKi8KKworICAgICAgaWYgKCpjb2RlID09IE9QX1hDTEFTUykKKyAg
ICAgICAgeworICAgICAgICBpbnQgY2g7CisgICAgICAgIHdoaWxlICgoY2ggPSAqY2NvZGUrKykg
IT0gWENMX0VORCkKKyAgICAgICAgICB7CisgICAgICAgICAgaWYgKGNoID09IFhDTF9QUk9QKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgZnByaW50ZihmLCAiXFxweyVzfSIsIGdldF91Y3Bu
YW1lKCpjY29kZSsrKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgZWxzZSBpZiAoY2ggPT0g
WENMX05PVFBST1ApCisgICAgICAgICAgICB7CisgICAgICAgICAgICBmcHJpbnRmKGYsICJcXFB7
JXN9IiwgZ2V0X3VjcG5hbWUoKmNjb2RlKyspKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICBl
bHNlCisgICAgICAgICAgICB7CisgICAgICAgICAgICBjY29kZSArPSAxICsgcHJpbnRfY2hhcihm
LCBjY29kZSwgVFJVRSk7CisgICAgICAgICAgICBpZiAoY2ggPT0gWENMX1JBTkdFKQorICAgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgIGZwcmludGYoZiwgIi0iKTsKKyAgICAgICAgICAgICAg
Y2NvZGUgKz0gMSArIHByaW50X2NoYXIoZiwgY2NvZGUsIFRSVUUpOworICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKKyAgICAgIC8qIEluZGlj
YXRlIGEgbm9uLVVURjggY2xhc3Mgd2hpY2ggd2FzIGNyZWF0ZWQgYnkgbmVnYXRpb24gKi8KKwor
ICAgICAgZnByaW50ZihmLCAiXSVzIiwgKCpjb2RlID09IE9QX05DTEFTUyk/ICIgKG5lZykiIDog
IiIpOworCisgICAgICAvKiBIYW5kbGUgcmVwZWF0cyBhZnRlciBhIGNsYXNzIG9yIGEgYmFjayBy
ZWZlcmVuY2UgKi8KKworICAgICAgQ0xBU1NfUkVGX1JFUEVBVDoKKyAgICAgIHN3aXRjaCgqY2Nv
ZGUpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBPUF9DUlNUQVI6CisgICAgICAgIGNhc2UgT1Bf
Q1JNSU5TVEFSOgorICAgICAgICBjYXNlIE9QX0NSUExVUzoKKyAgICAgICAgY2FzZSBPUF9DUk1J
TlBMVVM6CisgICAgICAgIGNhc2UgT1BfQ1JRVUVSWToKKyAgICAgICAgY2FzZSBPUF9DUk1JTlFV
RVJZOgorICAgICAgICBmcHJpbnRmKGYsICIlcyIsIE9QX25hbWVzWypjY29kZV0pOworICAgICAg
ICBleHRyYSArPSBfcGNyZV9PUF9sZW5ndGhzWypjY29kZV07CisgICAgICAgIGJyZWFrOworCisg
ICAgICAgIGNhc2UgT1BfQ1JSQU5HRToKKyAgICAgICAgY2FzZSBPUF9DUk1JTlJBTkdFOgorICAg
ICAgICBtaW4gPSBHRVQyKGNjb2RlLDEpOworICAgICAgICBtYXggPSBHRVQyKGNjb2RlLDMpOwor
ICAgICAgICBpZiAobWF4ID09IDApIGZwcmludGYoZiwgInslZCx9IiwgbWluKTsKKyAgICAgICAg
ZWxzZSBmcHJpbnRmKGYsICJ7JWQsJWR9IiwgbWluLCBtYXgpOworICAgICAgICBpZiAoKmNjb2Rl
ID09IE9QX0NSTUlOUkFOR0UpIGZwcmludGYoZiwgIj8iKTsKKyAgICAgICAgZXh0cmEgKz0gX3Bj
cmVfT1BfbGVuZ3Roc1sqY2NvZGVdOworICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAg
fQorICAgIGJyZWFrOworCisgICAgLyogQW55dGhpbmcgZWxzZSBpcyBqdXN0IGFuIGl0ZW0gd2l0
aCBubyBkYXRhKi8KKworICAgIGRlZmF1bHQ6CisgICAgZnByaW50ZihmLCAiICAgICVzIiwgT1Bf
bmFtZXNbKmNvZGVdKTsKKyAgICBicmVhazsKKyAgICB9CisKKyAgY29kZSArPSBfcGNyZV9PUF9s
ZW5ndGhzWypjb2RlXSArIGV4dHJhOworICBmcHJpbnRmKGYsICJcbiIpOworICB9Cit9CisKKy8q
IEVuZCBvZiBwY3JlX3ByaW50aW50LnNyYyAqLwpJbmRleDogcGNyZV9vcmQydXRmOC5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIHBjcmVfb3JkMnV0ZjguYwkocmV2aXNpb24gMykKKysrIHBjcmVfb3JkMnV0Zjgu
YwkocmV2aXNpb24gNCkKQEAgLTU5LDcgKzU5LDcgQEAKIFJldHVybnM6ICAgICBudW1iZXIgb2Yg
Y2hhcmFjdGVycyBwbGFjZWQgaW4gdGhlIGJ1ZmZlcgogKi8KIAotRVhQT1JUIGludAorUENSRV9F
WFBPUlQgaW50CiBfcGNyZV9vcmQydXRmOChpbnQgY3ZhbHVlLCB1c2NoYXIgKmJ1ZmZlcikKIHsK
IHJlZ2lzdGVyIGludCBpLCBqOwpJbmRleDogcGNyZV9mdWxsaW5mby5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHBjcmVfZnVsbGluZm8uYwkocmV2aXNpb24gMykKKysrIHBjcmVfZnVsbGluZm8uYwkocmV2aXNp
b24gNCkKQEAgLTYxLDcgKzYxLDcgQEAKIFJldHVybnM6ICAgICAgICAgICAwIGlmIGRhdGEgcmV0
dXJuZWQsIG5lZ2F0aXZlIG9uIGVycm9yCiAqLwogCi1FWFBPUlQgaW50CitQQ1JFX0VYUE9SVCBp
bnQKIHBjcmVfZnVsbGluZm8oY29uc3QgcGNyZSAqYXJndW1lbnRfcmUsIGNvbnN0IHBjcmVfZXh0
cmEgKmV4dHJhX2RhdGEsIGludCB3aGF0LAogICB2b2lkICp3aGVyZSkKIHsKSW5kZXg6IHBjcmVf
dmVyc2lvbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBjcmVfdmVyc2lvbi5jCShyZXZpc2lvbiAzKQorKysg
cGNyZV92ZXJzaW9uLmMJKHJldmlzaW9uIDQpCkBAIC01Miw3ICs1Miw3IEBACiAjZGVmaW5lIFNU
UklORyhhKSAgIyBhCiAjZGVmaW5lIFhTVFJJTkcocykgU1RSSU5HKHMpCiAKLUVYUE9SVCBjb25z
dCBjaGFyICoKK1BDUkVfRVhQT1JUIGNvbnN0IGNoYXIgKgogcGNyZV92ZXJzaW9uKHZvaWQpCiB7
CiByZXR1cm4gWFNUUklORyhQQ1JFX01BSk9SKSAiLiIgWFNUUklORyhQQ1JFX01JTk9SKSAiICIg
WFNUUklORyhQQ1JFX0RBVEUpOwpJbmRleDogcGNyZV9yZWZjb3VudC5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHBjcmVfcmVmY291bnQuYwkocmV2aXNpb24gMykKKysrIHBjcmVfcmVmY291bnQuYwkocmV2aXNp
b24gNCkKQEAgLTYzLDcgKzYzLDcgQEAKICAgICAgICAgICAgICAgICBhIG5lZ2F0aXZlIGVycm9y
IG51bWJlcgogKi8KIAotRVhQT1JUIGludAorUENSRV9FWFBPUlQgaW50CiBwY3JlX3JlZmNvdW50
KHBjcmUgKmFyZ3VtZW50X3JlLCBpbnQgYWRqdXN0KQogewogcmVhbF9wY3JlICpyZSA9IChyZWFs
X3BjcmUgKilhcmd1bWVudF9yZTsKSW5kZXg6IHBjcmUuaC5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwY3Jl
LmguaW4JKHJldmlzaW9uIDApCisrKyBwY3JlLmguaW4JKHJldmlzaW9uIDQpCkBAIC0wLDAgKzEs
MjU4IEBACisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgorKiAgICAgICBQZXJsLUNvbXBhdGlibGUgUmVndWxhciBFeHByZXNzaW9ucyAgICAgICoKKyoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKKy8qIElu
IGl0cyBvcmlnaW5hbCBmb3JtLCB0aGlzIGlzIHRoZSAuaW4gZmlsZSB0aGF0IGlzIHRyYW5zZm9y
bWVkIGJ5CisiY29uZmlndXJlIiBpbnRvIHBjcmUuaC4KKworICAgICAgICAgICBDb3B5cmlnaHQg
KGMpIDE5OTctMjAwNSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZQorCistLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQorUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Cittb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKKworICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl
LAorICAgICAgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKworICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAgICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisKKyAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FtYnJp
ZGdlIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgICAgICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICAgICAgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKworVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUyAiQVMgSVMiCitBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCitJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRQorQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFCitMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCitDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCitJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKK0FSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFCitQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisqLworCisjaWZuZGVm
IF9QQ1JFX0gKKyNkZWZpbmUgX1BDUkVfSAorCisvKiBUaGUgZmlsZSBwY3JlLmggaXMgYnVpbGQg
YnkgImNvbmZpZ3VyZSIuIERvIG5vdCBlZGl0IGl0OyBpbnN0ZWFkCittYWtlIGNoYW5nZXMgdG8g
cGNyZS5pbi4gKi8KKworI2RlZmluZSBQQ1JFX01BSk9SICAgICAgICAgIEBQQ1JFX01BSk9SQAor
I2RlZmluZSBQQ1JFX01JTk9SICAgICAgICAgIEBQQ1JFX01JTk9SQAorI2RlZmluZSBQQ1JFX0RB
VEUgICAgICAgICAgIEBQQ1JFX0RBVEVACisKKy8qIFdpbjMyIHVzZXMgRExMIGJ5IGRlZmF1bHQ7
IGl0IG5lZWRzIHNwZWNpYWwgc3R1ZmYgZm9yIGV4cG9ydGVkIGZ1bmN0aW9ucy4gKi8KKworI2lm
ZGVmIF9XSU4zMgorIyAgaWZkZWYgUENSRV9ERUZJTklUSU9OCisjICAgIGlmZGVmIERMTF9FWFBP
UlQKKyMgICAgICBkZWZpbmUgUENSRV9EQVRBX1NDT1BFIF9fZGVjbHNwZWMoZGxsZXhwb3J0KQor
IyAgICBlbmRpZgorIyAgZWxzZQorIyAgICBpZm5kZWYgUENSRV9TVEFUSUMKKyMgICAgICBkZWZp
bmUgUENSRV9EQVRBX1NDT1BFIGV4dGVybiBfX2RlY2xzcGVjKGRsbGltcG9ydCkKKyMgICAgZW5k
aWYKKyMgIGVuZGlmCisjZW5kaWYKKworLyogRm9yIG90aGVyIG9wZXJhdGluZyBzeXN0ZW1zLCB3
ZSB1c2UgdGhlIHN0YW5kYXJkICJleHRlcm4iLiAqLworCisjaWZuZGVmIFBDUkVfREFUQV9TQ09Q
RQorIyAgaWZkZWYgX19jcGx1c3BsdXMKKyMgICAgZGVmaW5lIFBDUkVfREFUQV9TQ09QRSAgICAg
ZXh0ZXJuICJDIgorIyAgZWxzZQorIyAgICBkZWZpbmUgUENSRV9EQVRBX1NDT1BFICAgICBleHRl
cm4KKyMgIGVuZGlmCisjZW5kaWYKKworLyogSGF2ZSB0byBpbmNsdWRlIHN0ZGxpYi5oIGluIG9y
ZGVyIHRvIGVuc3VyZSB0aGF0IHNpemVfdCBpcyBkZWZpbmVkOworaXQgaXMgbmVlZGVkIGhlcmUg
Zm9yIG1hbGxvYy4gKi8KKworI2luY2x1ZGUgPHN0ZGxpYi5oPgorCisvKiBBbGxvdyBmb3IgQysr
IHVzZXJzICovCisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5kaWYKKwor
LyogT3B0aW9ucyAqLworCisjZGVmaW5lIFBDUkVfQ0FTRUxFU1MgICAgICAgICAgIDB4MDAwMDAw
MDEKKyNkZWZpbmUgUENSRV9NVUxUSUxJTkUgICAgICAgICAgMHgwMDAwMDAwMgorI2RlZmluZSBQ
Q1JFX0RPVEFMTCAgICAgICAgICAgICAweDAwMDAwMDA0CisjZGVmaW5lIFBDUkVfRVhURU5ERUQg
ICAgICAgICAgIDB4MDAwMDAwMDgKKyNkZWZpbmUgUENSRV9BTkNIT1JFRCAgICAgICAgICAgMHgw
MDAwMDAxMAorI2RlZmluZSBQQ1JFX0RPTExBUl9FTkRPTkxZICAgICAweDAwMDAwMDIwCisjZGVm
aW5lIFBDUkVfRVhUUkEgICAgICAgICAgICAgIDB4MDAwMDAwNDAKKyNkZWZpbmUgUENSRV9OT1RC
T0wgICAgICAgICAgICAgMHgwMDAwMDA4MAorI2RlZmluZSBQQ1JFX05PVEVPTCAgICAgICAgICAg
ICAweDAwMDAwMTAwCisjZGVmaW5lIFBDUkVfVU5HUkVFRFkgICAgICAgICAgIDB4MDAwMDAyMDAK
KyNkZWZpbmUgUENSRV9OT1RFTVBUWSAgICAgICAgICAgMHgwMDAwMDQwMAorI2RlZmluZSBQQ1JF
X1VURjggICAgICAgICAgICAgICAweDAwMDAwODAwCisjZGVmaW5lIFBDUkVfTk9fQVVUT19DQVBU
VVJFICAgIDB4MDAwMDEwMDAKKyNkZWZpbmUgUENSRV9OT19VVEY4X0NIRUNLICAgICAgMHgwMDAw
MjAwMAorI2RlZmluZSBQQ1JFX0FVVE9fQ0FMTE9VVCAgICAgICAweDAwMDA0MDAwCisjZGVmaW5l
IFBDUkVfUEFSVElBTCAgICAgICAgICAgIDB4MDAwMDgwMDAKKyNkZWZpbmUgUENSRV9ERkFfU0hP
UlRFU1QgICAgICAgMHgwMDAxMDAwMAorI2RlZmluZSBQQ1JFX0RGQV9SRVNUQVJUICAgICAgICAw
eDAwMDIwMDAwCisjZGVmaW5lIFBDUkVfRklSU1RMSU5FICAgICAgICAgIDB4MDAwNDAwMDAKKwor
LyogRXhlYy10aW1lIGFuZCBnZXQvc2V0LXRpbWUgZXJyb3IgY29kZXMgKi8KKworI2RlZmluZSBQ
Q1JFX0VSUk9SX05PTUFUQ0ggICAgICAgICAoLTEpCisjZGVmaW5lIFBDUkVfRVJST1JfTlVMTCAg
ICAgICAgICAgICgtMikKKyNkZWZpbmUgUENSRV9FUlJPUl9CQURPUFRJT04gICAgICAgKC0zKQor
I2RlZmluZSBQQ1JFX0VSUk9SX0JBRE1BR0lDICAgICAgICAoLTQpCisjZGVmaW5lIFBDUkVfRVJS
T1JfVU5LTk9XTl9OT0RFICAgICgtNSkKKyNkZWZpbmUgUENSRV9FUlJPUl9OT01FTU9SWSAgICAg
ICAgKC02KQorI2RlZmluZSBQQ1JFX0VSUk9SX05PU1VCU1RSSU5HICAgICAoLTcpCisjZGVmaW5l
IFBDUkVfRVJST1JfTUFUQ0hMSU1JVCAgICAgICgtOCkKKyNkZWZpbmUgUENSRV9FUlJPUl9DQUxM
T1VUICAgICAgICAgKC05KSAgLyogTmV2ZXIgdXNlZCBieSBQQ1JFIGl0c2VsZiAqLworI2RlZmlu
ZSBQQ1JFX0VSUk9SX0JBRFVURjggICAgICAgICgtMTApCisjZGVmaW5lIFBDUkVfRVJST1JfQkFE
VVRGOF9PRkZTRVQgKC0xMSkKKyNkZWZpbmUgUENSRV9FUlJPUl9QQVJUSUFMICAgICAgICAoLTEy
KQorI2RlZmluZSBQQ1JFX0VSUk9SX0JBRFBBUlRJQUwgICAgICgtMTMpCisjZGVmaW5lIFBDUkVf
RVJST1JfSU5URVJOQUwgICAgICAgKC0xNCkKKyNkZWZpbmUgUENSRV9FUlJPUl9CQURDT1VOVCAg
ICAgICAoLTE1KQorI2RlZmluZSBQQ1JFX0VSUk9SX0RGQV9VSVRFTSAgICAgICgtMTYpCisjZGVm
aW5lIFBDUkVfRVJST1JfREZBX1VDT05EICAgICAgKC0xNykKKyNkZWZpbmUgUENSRV9FUlJPUl9E
RkFfVU1MSU1JVCAgICAoLTE4KQorI2RlZmluZSBQQ1JFX0VSUk9SX0RGQV9XU1NJWkUgICAgICgt
MTkpCisjZGVmaW5lIFBDUkVfRVJST1JfREZBX1JFQ1VSU0UgICAgKC0yMCkKKworLyogUmVxdWVz
dCB0eXBlcyBmb3IgcGNyZV9mdWxsaW5mbygpICovCisKKyNkZWZpbmUgUENSRV9JTkZPX09QVElP
TlMgICAgICAgICAgICAwCisjZGVmaW5lIFBDUkVfSU5GT19TSVpFICAgICAgICAgICAgICAgMQor
I2RlZmluZSBQQ1JFX0lORk9fQ0FQVFVSRUNPVU5UICAgICAgIDIKKyNkZWZpbmUgUENSRV9JTkZP
X0JBQ0tSRUZNQVggICAgICAgICAzCisjZGVmaW5lIFBDUkVfSU5GT19GSVJTVEJZVEUgICAgICAg
ICAgNAorI2RlZmluZSBQQ1JFX0lORk9fRklSU1RDSEFSICAgICAgICAgIDQgIC8qIEZvciBiYWNr
d2FyZHMgY29tcGF0aWJpbGl0eSAqLworI2RlZmluZSBQQ1JFX0lORk9fRklSU1RUQUJMRSAgICAg
ICAgIDUKKyNkZWZpbmUgUENSRV9JTkZPX0xBU1RMSVRFUkFMICAgICAgICA2CisjZGVmaW5lIFBD
UkVfSU5GT19OQU1FRU5UUllTSVpFICAgICAgNworI2RlZmluZSBQQ1JFX0lORk9fTkFNRUNPVU5U
ICAgICAgICAgIDgKKyNkZWZpbmUgUENSRV9JTkZPX05BTUVUQUJMRSAgICAgICAgICA5CisjZGVm
aW5lIFBDUkVfSU5GT19TVFVEWVNJWkUgICAgICAgICAxMAorI2RlZmluZSBQQ1JFX0lORk9fREVG
QVVMVF9UQUJMRVMgICAgMTEKKworLyogUmVxdWVzdCB0eXBlcyBmb3IgcGNyZV9jb25maWcoKSAq
LworCisjZGVmaW5lIFBDUkVfQ09ORklHX1VURjggICAgICAgICAgICAgICAgICAgIDAKKyNkZWZp
bmUgUENSRV9DT05GSUdfTkVXTElORSAgICAgICAgICAgICAgICAgMQorI2RlZmluZSBQQ1JFX0NP
TkZJR19MSU5LX1NJWkUgICAgICAgICAgICAgICAyCisjZGVmaW5lIFBDUkVfQ09ORklHX1BPU0lY
X01BTExPQ19USFJFU0hPTEQgIDMKKyNkZWZpbmUgUENSRV9DT05GSUdfTUFUQ0hfTElNSVQgICAg
ICAgICAgICAgNAorI2RlZmluZSBQQ1JFX0NPTkZJR19TVEFDS1JFQ1VSU0UgICAgICAgICAgICA1
CisjZGVmaW5lIFBDUkVfQ09ORklHX1VOSUNPREVfUFJPUEVSVElFUyAgICAgIDYKKworLyogQml0
IGZsYWdzIGZvciB0aGUgcGNyZV9leHRyYSBzdHJ1Y3R1cmUgKi8KKworI2RlZmluZSBQQ1JFX0VY
VFJBX1NUVURZX0RBVEEgICAgICAgICAgMHgwMDAxCisjZGVmaW5lIFBDUkVfRVhUUkFfTUFUQ0hf
TElNSVQgICAgICAgICAweDAwMDIKKyNkZWZpbmUgUENSRV9FWFRSQV9DQUxMT1VUX0RBVEEgICAg
ICAgIDB4MDAwNAorI2RlZmluZSBQQ1JFX0VYVFJBX1RBQkxFUyAgICAgICAgICAgICAgMHgwMDA4
CisKKy8qIFR5cGVzICovCisKK3N0cnVjdCByZWFsX3BjcmU7ICAgICAgICAgICAgICAgICAvKiBk
ZWNsYXJhdGlvbjsgdGhlIGRlZmluaXRpb24gaXMgcHJpdmF0ZSAgKi8KK3R5cGVkZWYgc3RydWN0
IHJlYWxfcGNyZSBwY3JlOworCisvKiBUaGUgc3RydWN0dXJlIGZvciBwYXNzaW5nIGFkZGl0aW9u
YWwgZGF0YSB0byBwY3JlX2V4ZWMoKS4gVGhpcyBpcyBkZWZpbmVkIGluCitzdWNoIGFzIHdheSBh
cyB0byBiZSBleHRlbnNpYmxlLiBBbHdheXMgYWRkIG5ldyBmaWVsZHMgYXQgdGhlIGVuZCwgaW4g
b3JkZXIgdG8KK3JlbWFpbiBjb21wYXRpYmxlLiAqLworCit0eXBlZGVmIHN0cnVjdCBwY3JlX2V4
dHJhIHsKKyAgdW5zaWduZWQgbG9uZyBpbnQgZmxhZ3M7ICAgICAgICAvKiBCaXRzIGZvciB3aGlj
aCBmaWVsZHMgYXJlIHNldCAqLworICB2b2lkICpzdHVkeV9kYXRhOyAgICAgICAgICAgICAgIC8q
IE9wYXF1ZSBkYXRhIGZyb20gcGNyZV9zdHVkeSgpICovCisgIHVuc2lnbmVkIGxvbmcgaW50IG1h
dGNoX2xpbWl0OyAgLyogTWF4aW11bSBudW1iZXIgb2YgY2FsbHMgdG8gbWF0Y2goKSAqLworICB2
b2lkICpjYWxsb3V0X2RhdGE7ICAgICAgICAgICAgIC8qIERhdGEgcGFzc2VkIGJhY2sgaW4gY2Fs
bG91dHMgKi8KKyAgY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGVzOyAgICAvKiBQb2ludGVyIHRv
IGNoYXJhY3RlciB0YWJsZXMgKi8KK30gcGNyZV9leHRyYTsKKworLyogVGhlIHN0cnVjdHVyZSBm
b3IgcGFzc2luZyBvdXQgZGF0YSB2aWEgdGhlIHBjcmVfY2FsbG91dF9mdW5jdGlvbi4gV2UgdXNl
IGEKK3N0cnVjdHVyZSBzbyB0aGF0IG5ldyBmaWVsZHMgY2FuIGJlIGFkZGVkIG9uIHRoZSBlbmQg
aW4gZnV0dXJlIHZlcnNpb25zLAord2l0aG91dCBjaGFuZ2luZyB0aGUgQVBJIG9mIHRoZSBmdW5j
dGlvbiwgdGhlcmVieSBhbGxvd2luZyBvbGQgY2xpZW50cyB0byB3b3JrCit3aXRob3V0IG1vZGlm
aWNhdGlvbi4gKi8KKwordHlwZWRlZiBzdHJ1Y3QgcGNyZV9jYWxsb3V0X2Jsb2NrIHsKKyAgaW50
ICAgICAgICAgIHZlcnNpb247ICAgICAgICAgICAvKiBJZGVudGlmaWVzIHZlcnNpb24gb2YgYmxv
Y2sgKi8KKyAgLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFZlcnNpb24gMCAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tICovCisgIGludCAgICAgICAgICBjYWxsb3V0X251bWJlcjsg
ICAgLyogTnVtYmVyIGNvbXBpbGVkIGludG8gcGF0dGVybiAqLworICBpbnQgICAgICAgICAqb2Zm
c2V0X3ZlY3RvcjsgICAgIC8qIFRoZSBvZmZzZXQgdmVjdG9yICovCisgIGNvbnN0IGNoYXIgICpz
dWJqZWN0OyAgICAgICAgICAgLyogVGhlIHN1YmplY3QgYmVpbmcgbWF0Y2hlZCAqLworICBpbnQg
ICAgICAgICAgc3ViamVjdF9sZW5ndGg7ICAgIC8qIFRoZSBsZW5ndGggb2YgdGhlIHN1YmplY3Qg
Ki8KKyAgaW50ICAgICAgICAgIHN0YXJ0X21hdGNoOyAgICAgICAvKiBPZmZzZXQgdG8gc3RhcnQg
b2YgdGhpcyBtYXRjaCBhdHRlbXB0ICovCisgIGludCAgICAgICAgICBjdXJyZW50X3Bvc2l0aW9u
OyAgLyogV2hlcmUgd2UgY3VycmVudGx5IGFyZSBpbiB0aGUgc3ViamVjdCAqLworICBpbnQgICAg
ICAgICAgY2FwdHVyZV90b3A7ICAgICAgIC8qIE1heCBjdXJyZW50IGNhcHR1cmUgKi8KKyAgaW50
ICAgICAgICAgIGNhcHR1cmVfbGFzdDsgICAgICAvKiBNb3N0IHJlY2VudGx5IGNsb3NlZCBjYXB0
dXJlICovCisgIHZvaWQgICAgICAgICpjYWxsb3V0X2RhdGE7ICAgICAgLyogRGF0YSBwYXNzZWQg
aW4gd2l0aCB0aGUgY2FsbCAqLworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tIEFkZGVkIGZvciBW
ZXJzaW9uIDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KKyAgaW50ICAgICAgICAgIHBh
dHRlcm5fcG9zaXRpb247ICAvKiBPZmZzZXQgdG8gbmV4dCBpdGVtIGluIHRoZSBwYXR0ZXJuICov
CisgIGludCAgICAgICAgICBuZXh0X2l0ZW1fbGVuZ3RoOyAgLyogTGVuZ3RoIG9mIG5leHQgaXRl
bSBpbiB0aGUgcGF0dGVybiAqLworICAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8KK30gcGNyZV9jYWxsb3V0X2Js
b2NrOworCisvKiBJbmRpcmVjdGlvbiBmb3Igc3RvcmUgZ2V0IGFuZCBmcmVlIGZ1bmN0aW9ucy4g
VGhlc2UgY2FuIGJlIHNldCB0bworYWx0ZXJuYXRpdmUgbWFsbG9jL2ZyZWUgZnVuY3Rpb25zIGlm
IHJlcXVpcmVkLiBTcGVjaWFsIG9uZXMgYXJlIHVzZWQgaW4gdGhlCitub24tcmVjdXJzaXZlIGNh
c2UgZm9yICJmcmFtZXMiLiBUaGVyZSBpcyBhbHNvIGFuIG9wdGlvbmFsIGNhbGxvdXQgZnVuY3Rp
b24KK3RoYXQgaXMgdHJpZ2dlcmVkIGJ5IHRoZSAoPykgcmVnZXggaXRlbS4gRm9yIFZpcnR1YWwg
UGFzY2FsLCB0aGVzZSBkZWZpbml0aW9ucworaGF2ZSB0byB0YWtlIGFub3RoZXIgZm9ybS4gKi8K
KworI2lmbmRlZiBWUENPTVBBVAorUENSRV9EQVRBX1NDT1BFIHZvaWQgKigqcGNyZV9tYWxsb2Mp
KHNpemVfdCk7CitQQ1JFX0RBVEFfU0NPUEUgdm9pZCAgKCpwY3JlX2ZyZWUpKHZvaWQgKik7CitQ
Q1JFX0RBVEFfU0NPUEUgdm9pZCAqKCpwY3JlX3N0YWNrX21hbGxvYykoc2l6ZV90KTsKK1BDUkVf
REFUQV9TQ09QRSB2b2lkICAoKnBjcmVfc3RhY2tfZnJlZSkodm9pZCAqKTsKK1BDUkVfREFUQV9T
Q09QRSBpbnQgICAoKnBjcmVfY2FsbG91dCkocGNyZV9jYWxsb3V0X2Jsb2NrICopOworI2Vsc2Ug
ICAvKiBWUENPTVBBVCAqLworUENSRV9EQVRBX1NDT1BFIHZvaWQgKnBjcmVfbWFsbG9jKHNpemVf
dCk7CitQQ1JFX0RBVEFfU0NPUEUgdm9pZCAgcGNyZV9mcmVlKHZvaWQgKik7CitQQ1JFX0RBVEFf
U0NPUEUgdm9pZCAqcGNyZV9zdGFja19tYWxsb2Moc2l6ZV90KTsKK1BDUkVfREFUQV9TQ09QRSB2
b2lkICBwY3JlX3N0YWNrX2ZyZWUodm9pZCAqKTsKK1BDUkVfREFUQV9TQ09QRSBpbnQgICBwY3Jl
X2NhbGxvdXQocGNyZV9jYWxsb3V0X2Jsb2NrICopOworI2VuZGlmICAvKiBWUENPTVBBVCAqLwor
CisvKiBFeHBvcnRlZCBQQ1JFIGZ1bmN0aW9ucyAqLworCitQQ1JFX0RBVEFfU0NPUEUgcGNyZSAq
cGNyZV9jb21waWxlKGNvbnN0IGNoYXIgKiwgaW50LCBjb25zdCBjaGFyICoqLCBpbnQgKiwKKyAg
ICAgICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGNoYXIgKik7CitQQ1JFX0RBVEFfU0NPUEUg
cGNyZSAqcGNyZV9jb21waWxlMihjb25zdCBjaGFyICosIGludCwgaW50ICosIGNvbnN0IGNoYXIg
KiosCisgICAgICAgICAgICAgICAgICBpbnQgKiwgY29uc3QgdW5zaWduZWQgY2hhciAqKTsKK1BD
UkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfY29uZmlnKGludCwgdm9pZCAqKTsKK1BDUkVfREFUQV9T
Q09QRSBpbnQgIHBjcmVfY29weV9uYW1lZF9zdWJzdHJpbmcoY29uc3QgcGNyZSAqLCBjb25zdCBj
aGFyICosCisgICAgICAgICAgICAgICAgICBpbnQgKiwgaW50LCBjb25zdCBjaGFyICosIGNoYXIg
KiwgaW50KTsKK1BDUkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfY29weV9zdWJzdHJpbmcoY29uc3Qg
Y2hhciAqLCBpbnQgKiwgaW50LCBpbnQsIGNoYXIgKiwKKyAgICAgICAgICAgICAgICAgIGludCk7
CitQQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3JlX2RmYV9leGVjKGNvbnN0IHBjcmUgKiwgY29uc3Qg
cGNyZV9leHRyYSAqLAorICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBpbnQsIGludCwg
aW50LCBpbnQgKiwgaW50ICwgaW50ICosIGludCk7CitQQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3Jl
X2V4ZWMoY29uc3QgcGNyZSAqLCBjb25zdCBwY3JlX2V4dHJhICosIGNvbnN0IGNoYXIgKiwKKyAg
ICAgICAgICAgICAgICAgICBpbnQsIGludCwgaW50LCBpbnQgKiwgaW50KTsKK1BDUkVfREFUQV9T
Q09QRSB2b2lkIHBjcmVfZnJlZV9zdWJzdHJpbmcoY29uc3QgY2hhciAqKTsKK1BDUkVfREFUQV9T
Q09QRSB2b2lkIHBjcmVfZnJlZV9zdWJzdHJpbmdfbGlzdChjb25zdCBjaGFyICoqKTsKK1BDUkVf
REFUQV9TQ09QRSBpbnQgIHBjcmVfZnVsbGluZm8oY29uc3QgcGNyZSAqLCBjb25zdCBwY3JlX2V4
dHJhICosIGludCwKKyAgICAgICAgICAgICAgICAgIHZvaWQgKik7CitQQ1JFX0RBVEFfU0NPUEUg
aW50ICBwY3JlX2dldF9uYW1lZF9zdWJzdHJpbmcoY29uc3QgcGNyZSAqLCBjb25zdCBjaGFyICos
CisgICAgICAgICAgICAgICAgICBpbnQgKiwgaW50LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIg
KiopOworUENSRV9EQVRBX1NDT1BFIGludCAgcGNyZV9nZXRfc3RyaW5nbnVtYmVyKGNvbnN0IHBj
cmUgKiwgY29uc3QgY2hhciAqKTsKK1BDUkVfREFUQV9TQ09QRSBpbnQgIHBjcmVfZ2V0X3N1YnN0
cmluZyhjb25zdCBjaGFyICosIGludCAqLCBpbnQsIGludCwKKyAgICAgICAgICAgICAgICAgIGNv
bnN0IGNoYXIgKiopOworUENSRV9EQVRBX1NDT1BFIGludCAgcGNyZV9nZXRfc3Vic3RyaW5nX2xp
c3QoY29uc3QgY2hhciAqLCBpbnQgKiwgaW50LAorICAgICAgICAgICAgICAgICAgY29uc3QgY2hh
ciAqKiopOworUENSRV9EQVRBX1NDT1BFIGludCAgcGNyZV9pbmZvKGNvbnN0IHBjcmUgKiwgaW50
ICosIGludCAqKTsKK1BDUkVfREFUQV9TQ09QRSBjb25zdCB1bnNpZ25lZCBjaGFyICpwY3JlX21h
a2V0YWJsZXModm9pZCk7CitQQ1JFX0RBVEFfU0NPUEUgaW50ICBwY3JlX3JlZmNvdW50KHBjcmUg
KiwgaW50KTsKK1BDUkVfREFUQV9TQ09QRSBwY3JlX2V4dHJhICpwY3JlX3N0dWR5KGNvbnN0IHBj
cmUgKiwgaW50LCBjb25zdCBjaGFyICoqKTsKK1BDUkVfREFUQV9TQ09QRSBjb25zdCBjaGFyICpw
Y3JlX3ZlcnNpb24odm9pZCk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfSAgLyogZXh0ZXJuICJD
IiAqLworI2VuZGlmCisKKyNlbmRpZiAvKiBFbmQgb2YgcGNyZS5oICovCkluZGV4OiBwY3JlX2lu
Zm8uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBwY3JlX2luZm8uYwkocmV2aXNpb24gMykKKysrIHBjcmVfaW5m
by5jCShyZXZpc2lvbiA0KQpAQCAtNjgsNyArNjgsNyBAQAogICAgICAgICAgICAgICAgIG9yIG5l
Z2F0aXZlIHZhbHVlcyBvbiBlcnJvcgogKi8KIAotRVhQT1JUIGludAorUENSRV9FWFBPUlQgaW50
CiBwY3JlX2luZm8oY29uc3QgcGNyZSAqYXJndW1lbnRfcmUsIGludCAqb3B0cHRyLCBpbnQgKmZp
cnN0X2J5dGUpCiB7CiByZWFsX3BjcmUgaW50ZXJuYWxfcmU7CkluZGV4OiBjb25maWd1cmUuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gY29uZmlndXJlLmluCShyZXZpc2lvbiAzKQorKysgY29uZmlndXJlLmlu
CShyZXZpc2lvbiA0KQpAQCAtMTUsMTAgKzE1LDEwIEBACiAKIEFDX1BSRVJFUSgyLjU3KQogCi1k
bmwgQXJyYW5nZSB0byBidWlsZCBjb25maWcuaCBmcm9tIGNvbmZpZy5pbi4gTm90ZSB0aGF0IHBj
cmUuaCBpcworZG5sIEFycmFuZ2UgdG8gYnVpbGQgY29uZmlnLmggZnJvbSBjb25maWcuaC5pbi4g
Tm90ZSB0aGF0IHBjcmUuaCBpcwogZG5sIGJ1aWx0IGRpZmZlcmVudGx5LCBhcyBpdCBpcyBqdXN0
IGEgInN1YnN0aXR1dGlvbiIgZmlsZS4KIGRubCBNYW51YWwgc2F5cyB0aGlzIG1hY3JvIHNob3Vs
ZCBjb21lIHJpZ2h0IGFmdGVyIEFDX0lOSVQuCi1BQ19DT05GSUdfSEVBREVSKGNvbmZpZy5oOmNv
bmZpZy5pbikKK0FDX0NPTkZJR19IRUFERVIoY29uZmlnLmgpCiAKIGRubCBQcm92aWRlIHRoZSBj
dXJyZW50IFBDUkUgdmVyc2lvbiBpbmZvcm1hdGlvbi4gRG8gbm90IHVzZSBudW1iZXJzCiBkbmwg
d2l0aCBsZWFkaW5nIHplcm9zIGZvciB0aGUgbWlub3IgdmVyc2lvbiwgYXMgdGhleSBlbmQgdXAg
aW4gYSBDCkBAIC0yNyw4ICsyNyw4IEBACiBkbmwgdGhhdCBtYW55IHJlbGVhc2VzIGFueXdheS4K
IAogUENSRV9NQUpPUj02Ci1QQ1JFX01JTk9SPTMKLVBDUkVfREFURT0xNS1BdWctMjAwNQorUENS
RV9NSU5PUj00CitQQ1JFX0RBVEU9MDUtU2VwLTIwMDUKIFBDUkVfVkVSU0lPTj0ke1BDUkVfTUFK
T1J9LiR7UENSRV9NSU5PUn0KIAogZG5sIERlZmF1bHQgdmFsdWVzIGZvciBtaXNjZWxsYW5lb3Vz
IG1hY3JvcwpAQCAtMjg3LDQgKzI4Nyw0IEBACiBmaQogCiBkbmwgVGhpcyBtdXN0IGJlIGxhc3Q7
IGl0IGRldGVybWluZXMgd2hhdCBmaWxlcyBhcmUgd3JpdHRlbiBhcyB3ZWxsIGFzIGNvbmZpZy5o
Ci1BQ19PVVRQVVQoTWFrZWZpbGUgcGNyZS5oOnBjcmUuaW4gcGNyZS1jb25maWc6cGNyZS1jb25m
aWcuaW4gbGlicGNyZS5wYzpsaWJwY3JlLnBjLmluIHBjcmVjcHAuaDpwY3JlY3BwLmguaW4gcGNy
ZV9zdHJpbmdwaWVjZS5oOnBjcmVfc3RyaW5ncGllY2UuaC5pbiBSdW5HcmVwVGVzdDpSdW5HcmVw
VGVzdC5pbiBSdW5UZXN0OlJ1blRlc3QuaW4sW2NobW9kIGEreCBSdW5UZXN0IFJ1bkdyZXBUZXN0
IHBjcmUtY29uZmlnXSkKK0FDX09VVFBVVChNYWtlZmlsZSBwY3JlLmg6cGNyZS5oLmluIHBjcmUt
Y29uZmlnOnBjcmUtY29uZmlnLmluIGxpYnBjcmUucGM6bGlicGNyZS5wYy5pbiBwY3JlY3BwLmg6
cGNyZWNwcC5oLmluIHBjcmVfc3RyaW5ncGllY2UuaDpwY3JlX3N0cmluZ3BpZWNlLmguaW4gUnVu
R3JlcFRlc3Q6UnVuR3JlcFRlc3QuaW4gUnVuVGVzdDpSdW5UZXN0LmluLFtjaG1vZCBhK3ggUnVu
VGVzdCBSdW5HcmVwVGVzdCBwY3JlLWNvbmZpZ10pCkluZGV4OiBDaGFuZ2VMb2cKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiAzKQorKysgQ2hhbmdlTG9nCShyZXZpc2lvbiA0KQpA
QCAtMSw2ICsxLDI4IEBACiBDaGFuZ2VMb2cgZm9yIFBDUkUKIC0tLS0tLS0tLS0tLS0tLS0tLQog
CitWZXJzaW9uIDYuNCAwNS1TZXAtMDUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgMS4gQ2hh
bmdlIDYuMC8xMC8obCkgdG8gcGNyZWdyZXAgaW50cm9kdWNlZCBhIGJ1ZyB0aGF0IGNhdXNlZCBz
ZXBhcmF0b3IgbGluZXMKKyAgICAiLS0iIHRvIGJlIHByaW50ZWQgd2hlbiBtdWx0aXBsZSBmaWxl
cyB3ZXJlIHNjYW5uZWQsIGV2ZW4gd2hlbiBub25lIG9mIHRoZQorICAgIC1BLCAtQiwgb3IgLUMg
b3B0aW9ucyB3ZXJlIHVzZWQuIFRoaXMgaXMgbm90IGNvbXBhdGlibGUgd2l0aCBHbnUgZ3JlcCwg
c28gSQorICAgIGNvbnNpZGVyIGl0IHRvIGJlIGEgYnVnLCBhbmQgaGF2ZSByZXN0b3JlZCB0aGUg
cHJldmlvdXMgYmVoYXZpb3VyLgorCisgMi4gQSBjb3VwbGUgb2YgY29kZSB0aWRpZXMgdG8gZ2V0
IHJpZCBvZiBjb21waWxlciB3YXJuaW5ncy4KKworIDMuIFRoZSBwY3JldGVzdCBwcm9ncmFtIHVz
ZWQgdG8gY2hlYXQgYnkgcmVmZXJyaW5nIHRvIHN5bWJvbHMgaW4gdGhlIGxpYnJhcnkKKyAgICB3
aG9zZSBuYW1lcyBiZWdpbiB3aXRoIF9wY3JlXy4gVGhlc2UgYXJlIGludGVybmFsIHN5bWJvbHMg
dGhhdCBhcmUgbm90CisgICAgcmVhbGx5IHN1cHBvc2VkIHRvIGJlIHZpc2libGUgZXh0ZXJuYWxs
eSwgYW5kIGluIHNvbWUgZW52aXJvbm1lbnRzIGl0IGlzCisgICAgcG9zc2libGUgdG8gc3VwcHJl
c3MgdGhlbS4gVGhlIGNoZWF0aW5nIGlzIG5vdyBjb25maW5lZCB0byBpbmNsdWRpbmcKKyAgICBj
ZXJ0YWluIGZpbGVzIGZyb20gdGhlIGxpYnJhcnkncyBzb3VyY2UsIHdoaWNoIGlzIGEgYml0IGNs
ZWFuZXIuCisKKyA0LiBSZW5hbWVkIHBjcmUuaW4gYXMgcGNyZS5oLmluIHRvIGdvIHdpdGggcGNy
ZWNwcC5oLmluOyBpdCBhbHNvIG1ha2VzIHRoZQorICAgIGZpbGUncyBwdXJwb3NlIGNsZWFyZXIu
CisKKyA1LiBSZW9yZ2FuaXplZCBwY3JlX3VjcF9maW5kY2hhcigpLgorCisKIFZlcnNpb24gNi4z
IDE1LUF1Zy0wNQogLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKSW5kZXg6IHBjcmVwb3NpeC5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHBjcmVwb3NpeC5jCShyZXZpc2lvbiAzKQorKysgcGNyZXBvc2l4LmMJKHJl
dmlzaW9uIDQpCkBAIC0xMzEsNyArMTMxLDcgQEAKICogICAgICAgICAgVHJhbnNsYXRlIGVycm9y
IGNvZGUgdG8gc3RyaW5nICAgICAgICAqCiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqLwogCi1FWFBPUlQgc2l6ZV90CitQQ1JFX0VYUE9SVCBzaXplX3QK
IHJlZ2Vycm9yKGludCBlcnJjb2RlLCBjb25zdCByZWdleF90ICpwcmVnLCBjaGFyICplcnJidWYs
IHNpemVfdCBlcnJidWZfc2l6ZSkKIHsKIGNvbnN0IGNoYXIgKm1lc3NhZ2UsICphZGRtZXNzYWdl
OwpAQCAtMTY2LDcgKzE2Niw3IEBACiAqICAgICAgICAgICBGcmVlIHN0b3JlIGhlbGQgYnkgYSBy
ZWdleCAgICAgICAgICAgKgogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKi8KIAotRVhQT1JUIHZvaWQKK1BDUkVfRVhQT1JUIHZvaWQKIHJlZ2ZyZWUocmVn
ZXhfdCAqcHJlZykKIHsKIChwY3JlX2ZyZWUpKHByZWctPnJlX3BjcmUpOwpAQCAtMTg5LDcgKzE4
OSw3IEBACiAgICAgICAgICAgICAgIHZhcmlvdXMgbm9uLXplcm8gY29kZXMgb24gZmFpbHVyZQog
Ki8KIAotRVhQT1JUIGludAorUENSRV9FWFBPUlQgaW50CiByZWdjb21wKHJlZ2V4X3QgKnByZWcs
IGNvbnN0IGNoYXIgKnBhdHRlcm4sIGludCBjZmxhZ3MpCiB7CiBjb25zdCBjaGFyICplcnJvcnB0
cjsKQEAgLTIyNSw3ICsyMjUsNyBAQAogYmxvY2sgb2Ygc3RvcmUgb24gdGhlIHN0YWNrLCB0byBy
ZWR1Y2UgdGhlIHVzZSBvZiBtYWxsb2MvZnJlZS4gVGhlIHRocmVzaG9sZCBpcwogaW4gYSBtYWNy
byB0aGF0IGNhbiBiZSBjaGFuZ2VkIGF0IGNvbmZpZ3VyZSB0aW1lLiAqLwogCi1FWFBPUlQgaW50
CitQQ1JFX0VYUE9SVCBpbnQKIHJlZ2V4ZWMoY29uc3QgcmVnZXhfdCAqcHJlZywgY29uc3QgY2hh
ciAqc3RyaW5nLCBzaXplX3Qgbm1hdGNoLAogICByZWdtYXRjaF90IHBtYXRjaFtdLCBpbnQgZWZs
YWdzKQogewpJbmRleDogcGNyZV92YWxpZF91dGY4LmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZV92YWxp
ZF91dGY4LmMJKHJldmlzaW9uIDMpCisrKyBwY3JlX3ZhbGlkX3V0ZjguYwkocmV2aXNpb24gNCkK
QEAgLTYzLDcgKzYzLDcgQEAKICAgICAgICAgICAgICAgID49IDAgICBvdGhlcndpc2U7IHRoZSB2
YWx1ZSBpcyB0aGUgb2Zmc2V0IG9mIHRoZSBiYWQgYnl0ZQogKi8KIAotRVhQT1JUIGludAorUENS
RV9FWFBPUlQgaW50CiBfcGNyZV92YWxpZF91dGY4KGNvbnN0IHVzY2hhciAqc3RyaW5nLCBpbnQg
bGVuZ3RoKQogewogcmVnaXN0ZXIgY29uc3QgdXNjaGFyICpwOwpJbmRleDogY29uZmlnLmguaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gY29uZmlnLmguaW4JKHJldmlzaW9uIDApCisrKyBjb25maWcuaC5pbgko
cmV2aXNpb24gNCkKQEAgLTAsMCArMSwxMDcgQEAKKworLyogT24gVW5peCBzeXN0ZW1zIGNvbmZp
Zy5pbiBpcyBjb252ZXJ0ZWQgYnkgY29uZmlndXJlIGludG8gY29uZmlnLmguIFBDUkUgaXMKK3dy
aXR0ZW4gaW4gU3RhbmRhcmQgQywgYnV0IHRoZXJlIGFyZSBhIGZldyBub24tc3RhbmRhcmQgdGhp
bmdzIGl0IGNhbiBjb3BlCit3aXRoLCBhbGxvd2luZyBpdCB0byBydW4gb24gU3VuT1M0IGFuZCBv
dGhlciAiY2xvc2UgdG8gc3RhbmRhcmQiIHN5c3RlbXMuCisKK09uIGEgbm9uLVVuaXggc3lzdGVt
IHlvdSBzaG91bGQganVzdCBjb3B5IHRoaXMgZmlsZSBpbnRvIGNvbmZpZy5oLCBhbmQgc2V0IHVw
Cit0aGUgbWFjcm9zIHRoZSB3YXkgeW91IG5lZWQgdGhlbS4gWW91IHNob3VsZCBub3JtYWxseSBj
aGFuZ2UgdGhlIGRlZmluaXRpb25zIG9mCitIQVZFX1NUUkVSUk9SIGFuZCBIQVZFX01FTU1PVkUg
dG8gMS4gVW5mb3J0dW5hdGVseSwgYmVjYXVzZSBvZiB0aGUgd2F5IGF1dG9jb25mCit3b3Jrcywg
dGhlc2UgY2Fubm90IGJlIG1hZGUgdGhlIGRlZmF1bHRzLiBJZiB5b3VyIHN5c3RlbSBoYXMgYmNv
cHkoKSBhbmQgbm90CittZW1tb3ZlKCksIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBIQVZFX0JD
T1BZIGluc3RlYWQgb2YgSEFWRV9NRU1NT1ZFLiBJZiB5b3VyCitzeXN0ZW0gaGFzIG5laXRoZXIg
YmNvcHkoKSBub3IgbWVtbW92ZSgpLCBsZWF2ZSB0aGVtIGJvdGggYXMgMDsgYW4gZW11bGF0aW9u
CitmdW5jdGlvbiB3aWxsIGJlIHVzZWQuICovCisKKy8qIElmIHlvdSBhcmUgY29tcGlsaW5nIGZv
ciBhIHN5c3RlbSB0aGF0IHVzZXMgRUJDRElDIGluc3RlYWQgb2YgQVNDSUkKK2NoYXJhY3RlciBj
b2RlcywgZGVmaW5lIHRoaXMgbWFjcm8gYXMgMS4gT24gc3lzdGVtcyB0aGF0IGNhbiB1c2UgImNv
bmZpZ3VyZSIsCit0aGlzIGNhbiBiZSBkb25lIHZpYSAtLWVuYWJsZS1lYmNkaWMuICovCisKKyNp
Zm5kZWYgRUJDRElDCisjZGVmaW5lIEVCQ0RJQyAwCisjZW5kaWYKKworLyogSWYgeW91IGFyZSBj
b21waWxpbmcgZm9yIGEgc3lzdGVtIHRoYXQgbmVlZHMgc29tZSBtYWdpYyB0byBiZSBpbnNlcnRl
ZAorYmVmb3JlIHRoZSBkZWZpbml0aW9uIG9mIGFuIGV4cG9ydGVkIGZ1bmN0aW9uLCBkZWZpbmUg
dGhpcyBtYWNybyB0byBjb250YWluIHRoZQorcmVsZXZhbnQgbWFnaWMuIEl0IGFwZWFycyBhdCB0
aGUgc3RhcnQgb2YgZXZlcnkgZXhwb3J0ZWQgZnVuY3Rpb24uICovCisKKyNkZWZpbmUgUENSRV9F
WFBPUlQKKworLyogRGVmaW5lIHRvIGVtcHR5IGlmIHRoZSAiY29uc3QiIGtleXdvcmQgZG9lcyBu
b3Qgd29yay4gKi8KKworI3VuZGVmIGNvbnN0CisKKy8qIERlZmluZSB0byAidW5zaWduZWQiIGlm
IDxzdGRkZWYuaD4gZG9lc24ndCBkZWZpbmUgc2l6ZV90LiAqLworCisjdW5kZWYgc2l6ZV90CisK
Ky8qIFRoZSBmb2xsb3dpbmcgdHdvIGRlZmluaXRpb25zIGFyZSBtYWlubHkgZm9yIHRoZSBiZW5l
Zml0IG9mIFN1bk9TNCwgd2hpY2gKK2RvZXNuJ3QgaGF2ZSB0aGUgc3RyZXJyb3IoKSBvciBtZW1t
b3ZlKCkgZnVuY3Rpb25zIHRoYXQgc2hvdWxkIGJlIHByZXNlbnQgaW4KK2FsbCBTdGFuZGFyZCBD
IGxpYnJhcmllcy4gVGhlIG1hY3JvcyBIQVZFX1NUUkVSUk9SIGFuZCBIQVZFX01FTU1PVkUgc2hv
dWxkCitub3JtYWxseSBiZSBkZWZpbmVkIHdpdGggdGhlIHZhbHVlIDEgZm9yIG90aGVyIHN5c3Rl
bXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IHdlCitjYW4ndCBtYWtlIHRoaXMgdGhlIGRlZmF1bHQgYmVj
YXVzZSAiY29uZmlndXJlIiBmaWxlcyBnZW5lcmF0ZWQgYnkgYXV0b2NvbmYKK3dpbGwgb25seSBj
aGFuZ2UgMCB0byAxOyB0aGV5IHdvbid0IGNoYW5nZSAxIHRvIDAgaWYgdGhlIGZ1bmN0aW9ucyBh
cmUgbm90Citmb3VuZC4gKi8KKworI2RlZmluZSBIQVZFX1NUUkVSUk9SIDAKKyNkZWZpbmUgSEFW
RV9NRU1NT1ZFICAwCisKKy8qIFRoZXJlIGFyZSBzb21lIG5vbi1Vbml4IHN5c3RlbXMgdGhhdCBk
b24ndCBldmVuIGhhdmUgYmNvcHkoKS4gSWYgdGhpcyBtYWNybworaXMgZmFsc2UsIGFuIGVtdWxh
dGlvbiBpcyB1c2VkLiBJZiBIQVZFX01FTU1PVkUgaXMgc2V0IHRvIDEsIHRoZSB2YWx1ZSBvZgor
SEFWRV9CQ09QWSBpcyBub3QgcmVsZXZhbnQuICovCisKKyNkZWZpbmUgSEFWRV9CQ09QWSAgICAw
CisKKy8qIFRoZSB2YWx1ZSBvZiBORVdMSU5FIGRldGVybWluZXMgdGhlIG5ld2xpbmUgY2hhcmFj
dGVyLiBUaGUgZGVmYXVsdCBpcyB0bworbGVhdmUgaXQgdXAgdG8gdGhlIGNvbXBpbGVyLCBidXQg
c29tZSBzaXRlcyB3YW50IHRvIGZvcmNlIGEgcGFydGljdWxhciB2YWx1ZS4KK09uIFVuaXggc3lz
dGVtcywgImNvbmZpZ3VyZSIgY2FuIGJlIHVzZWQgdG8gb3ZlcnJpZGUgdGhpcyBkZWZhdWx0LiAq
LworCisjaWZuZGVmIE5FV0xJTkUKKyNkZWZpbmUgTkVXTElORSAnXG4nCisjZW5kaWYKKworLyog
VGhlIHZhbHVlIG9mIExJTktfU0laRSBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgYnl0ZXMgdXNl
ZCB0byBzdG9yZQorbGlua3MgYXMgb2Zmc2V0cyB3aXRoaW4gdGhlIGNvbXBpbGVkIHJlZ2V4LiBU
aGUgZGVmYXVsdCBpcyAyLCB3aGljaCBhbGxvd3MgZm9yCitjb21waWxlZCBwYXR0ZXJucyB1cCB0
byA2NEsgbG9uZy4gVGhpcyBjb3ZlcnMgdGhlIHZhc3QgbWFqb3JpdHkgb2YgY2FzZXMuCitIb3dl
dmVyLCBQQ1JFIGNhbiBhbHNvIGJlIGNvbXBpbGVkIHRvIHVzZSAzIG9yIDQgYnl0ZXMgaW5zdGVh
ZC4gVGhpcyBhbGxvd3MgZm9yCitsb25nZXIgcGF0dGVybnMgaW4gZXh0cmVtZSBjYXNlcy4gT24g
VW5peCBzeXN0ZW1zLCAiY29uZmlndXJlIiBjYW4gYmUgdXNlZCB0bworb3ZlcnJpZGUgdGhpcyBk
ZWZhdWx0LiAqLworCisjaWZuZGVmIExJTktfU0laRQorI2RlZmluZSBMSU5LX1NJWkUgICAyCisj
ZW5kaWYKKworLyogVGhlIHZhbHVlIG9mIE1BVENIX0xJTUlUIGRldGVybWluZXMgdGhlIGRlZmF1
bHQgbnVtYmVyIG9mIHRpbWVzIHRoZSBtYXRjaCgpCitmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIGR1
cmluZyBhIHNpbmdsZSBleGVjdXRpb24gb2YgcGNyZV9leGVjKCkuIChUaGVyZSBpcyBhCitydW50
aW1lIG1ldGhvZCBvZiBzZXR0aW5nIGEgZGlmZmVyZW50IGxpbWl0LikgVGhlIGxpbWl0IGV4aXN0
cyBpbiBvcmRlciB0bworY2F0Y2ggcnVuYXdheSByZWd1bGFyIGV4cHJlc3Npb25zIHRoYXQgdGFr
ZSBmb3IgZXZlciB0byBkZXRlcm1pbmUgdGhhdCB0aGV5IGRvCitub3QgbWF0Y2guIFRoZSBkZWZh
dWx0IGlzIHNldCB2ZXJ5IGxhcmdlIHNvIHRoYXQgaXQgZG9lcyBub3QgYWNjaWRlbnRhbGx5IGNh
dGNoCitsZWdpdGltYXRlIGNhc2VzLiBPbiBVbml4IHN5c3RlbXMsICJjb25maWd1cmUiIGNhbiBi
ZSB1c2VkIHRvIG92ZXJyaWRlIHRoaXMKK2RlZmF1bHQgZGVmYXVsdC4gKi8KKworI2lmbmRlZiBN
QVRDSF9MSU1JVAorI2RlZmluZSBNQVRDSF9MSU1JVCAxMDAwMDAwMAorI2VuZGlmCisKKy8qIFdo
ZW4gY2FsbGluZyBQQ1JFIHZpYSB0aGUgUE9TSVggaW50ZXJmYWNlLCBhZGRpdGlvbmFsIHdvcmtp
bmcgc3RvcmFnZSBpcworcmVxdWlyZWQgZm9yIGhvbGRpbmcgdGhlIHBvaW50ZXJzIHRvIGNhcHR1
cmluZyBzdWJzdHJpbmdzIGJlY2F1c2UgUENSRSByZXF1aXJlcwordGhyZWUgaW50ZWdlcnMgcGVy
IHN1YnN0cmluZywgd2hlcmVhcyB0aGUgUE9TSVggaW50ZXJmYWNlIHByb3ZpZGVzIG9ubHkgdHdv
LiBJZgordGhlIG51bWJlciBvZiBleHBlY3RlZCBzdWJzdHJpbmdzIGlzIHNtYWxsLCB0aGUgd3Jh
cHBlciBmdW5jdGlvbiB1c2VzIHNwYWNlIG9uCit0aGUgc3RhY2ssIGJlY2F1c2UgdGhpcyBpcyBm
YXN0ZXIgdGhhbiB1c2luZyBtYWxsb2MoKSBmb3IgZWFjaCBjYWxsLiBUaGUKK3RocmVzaG9sZCBh
Ym92ZSB3aGljaCB0aGUgc3RhY2sgaXMgbm8gbG9uZ2VyIHVzZSBpcyBkZWZpbmVkIGJ5IFBPU0lY
X01BTExPQ18KK1RIUkVTSE9MRC4gT24gVW5peCBzeXN0ZW1zLCAiY29uZmlndXJlIiBjYW4gYmUg
dXNlZCB0byBvdmVycmlkZSB0aGlzIGRlZmF1bHQuCisqLworCisjaWZuZGVmIFBPU0lYX01BTExP
Q19USFJFU0hPTEQKKyNkZWZpbmUgUE9TSVhfTUFMTE9DX1RIUkVTSE9MRCAxMAorI2VuZGlmCisK
Ky8qIFBDUkUgdXNlcyByZWN1cnNpdmUgZnVuY3Rpb24gY2FsbHMgdG8gaGFuZGxlIGJhY2t0cmFj
a2luZyB3aGlsZSBtYXRjaGluZy4KK1RoaXMgY2FuIHNvbWV0aW1lcyBiZSBhIHByb2JsZW0gb24g
c3lzdGVtcyB0aGF0IGhhdmUgc3RhY2tzIG9mIGxpbWl0ZWQgc2l6ZS4KK0RlZmluZSBOT19SRUNV
UlNFIHRvIGdldCBhIHZlcnNpb24gdGhhdCBkb2Vzbid0IHVzZSByZWN1cnNpb24gaW4gdGhlIG1h
dGNoKCkKK2Z1bmN0aW9uOyBpbnN0ZWFkIGl0IGNyZWF0ZXMgaXRzIG93biBzdGFjayBieSBzdGVh
bSB1c2luZyBwY3JlX3JlY3Vyc2VfbWFsbG9jCit0byBnZXQgbWVtb3J5LiBGb3IgbW9yZSBkZXRh
aWwsIHNlZSBjb21tZW50cyBhbmQgb3RoZXIgc3R1ZmYganVzdCBhYm92ZSB0aGUKK21hdGNoKCkg
ZnVuY3Rpb24uIE9uIFVuaXggc3lzdGVtcywgImNvbmZpZ3VyZSIgY2FuIGJlIHVzZWQgdG8gc2V0
IHRoaXMgaW4gdGhlCitNYWtlZmlsZSAodXNlIC0tZGlzYWJsZS1zdGFjay1mb3ItcmVjdXJzaW9u
KS4gKi8KKworLyogI2RlZmluZSBOT19SRUNVUlNFICovCisKKy8qIEVuZCAqLwpJbmRleDogcGNy
ZV9zdHVkeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIHBjcmVfc3R1ZHkuYwkocmV2aXNpb24gMykKKysrIHBj
cmVfc3R1ZHkuYwkocmV2aXNpb24gNCkKQEAgLTQwMSw3ICs0MDEsNyBAQAogICAgICAgICAgICAg
TlVMTCBvbiBlcnJvciBvciBpZiBubyBvcHRpbWl6YXRpb24gcG9zc2libGUKICovCiAKLUVYUE9S
VCBwY3JlX2V4dHJhICoKK1BDUkVfRVhQT1JUIHBjcmVfZXh0cmEgKgogcGNyZV9zdHVkeShjb25z
dCBwY3JlICpleHRlcm5hbF9yZSwgaW50IG9wdGlvbnMsIGNvbnN0IGNoYXIgKiplcnJvcnB0cikK
IHsKIHVzY2hhciBzdGFydF9iaXRzWzMyXTsKSW5kZXg6IHBjcmVfdGFibGVzLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gcGNyZV90YWJsZXMuYwkocmV2aXNpb24gMykKKysrIHBjcmVfdGFibGVzLmMJKHJldmlz
aW9uIDQpCkBAIC0zOSw3ICszOSw5IEBACiAKIAogLyogVGhpcyBtb2R1bGUgY29udGFpbnMgc29t
ZSBmaXhlZCB0YWJsZXMgdGhhdCBhcmUgdXNlZCBieSBtb3JlIHRoYW4gb25lIG9mIHRoZQotUENS
RSBjb2RlIG1vZHVsZXMuICovCitQQ1JFIGNvZGUgbW9kdWxlcy4gVGhlIHRhYmxlcyBhcmUgYWxz
byAjaW5jbHVkZWQgYnkgdGhlIHBjcmV0ZXN0IHByb2dyYW0sIHdoaWNoCit1c2VzIG1hY3JvcyB0
byBjaGFuZ2UgdGhlaXIgbmFtZXMgZnJvbSBfcGNyZV94eHggdG8geHh4eCwgdGhlcmVieSBhdm9p
ZGluZyBuYW1lCitjbGFzaGVzIHdpdGggdGhlIGxpYnJhcnkuICovCiAKIAogI2luY2x1ZGUgInBj
cmVfaW50ZXJuYWwuaCIKQEAgLTgxLDggKzgzLDcgQEAKICAgMywzLDMsMywzLDMsMywzLDQsNCw0
LDQsNSw1LDUsNSB9OwogCiAvKiBUaGlzIHRhYmxlIHRyYW5zbGF0ZXMgVW5pY29kZSBwcm9wZXJ0
eSBuYW1lcyBpbnRvIGNvZGUgdmFsdWVzIGZvciB0aGUKLXVjcF9maW5kY2hhcigpIGZ1bmN0aW9u
LiBJdCBpcyB1c2VkIGJ5IHBjcmV0ZXN0IGFzIHdlbGwgYXMgYnkgdGhlIGxpYnJhcnkKLWZ1bmN0
aW9ucy4gKi8KK3VjcF9maW5kY2hhcigpIGZ1bmN0aW9uLiAqLwogCiBjb25zdCB1Y3BfdHlwZV90
YWJsZSBfcGNyZV91dHRbXSA9IHsKICAgeyAiQyIsICAxMjggKyB1Y3BfQyB9LApJbmRleDogTk9O
LVVOSVgtVVNFCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIE5PTi1VTklYLVVTRQkocmV2aXNpb24gMykKKysrIE5P
Ti1VTklYLVVTRQkocmV2aXNpb24gNCkKQEAgLTQ2LDcgKzQ2LDcgQEAKICAgd3JpdGUgcGNyZS5o
CiAKICgzKSBDb21waWxlIGRmdGFibGVzLmMgYXMgYSBzdGFuZC1hbG9uZSBwcm9ncmFtLCBhbmQg
dGhlbiBydW4gaXQgd2l0aAotdGhlIHNpbmdsZSBhcmd1bWVudCAiY2hhcnRhYmxlcy5jIi4gVGhp
cyBnZW5lcmF0ZXMgYSBzZXQgb2Ygc3RhbmRhcmQKK3RoZSBzaW5nbGUgYXJndW1lbnQgInBjcmVf
Y2hhcnRhYmxlcy5jIi4gVGhpcyBnZW5lcmF0ZXMgYSBzZXQgb2Ygc3RhbmRhcmQKIGNoYXJhY3Rl
ciB0YWJsZXMgYW5kIHdyaXRlcyB0aGVtIHRvIHRoYXQgZmlsZS4KIAogICByZW0gTWFyayBUZXRy
b2RlJ3MgY29tbWFuZHMKSW5kZXg6IHRlc3RkYXRhL3Rlc3RvdXRwdXQxCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHRlc3RkYXRhL3Rlc3RvdXRwdXQxCShyZXZpc2lvbiAzKQorKysgdGVzdGRhdGEvdGVzdG91dHB1
dDEJKHJldmlzaW9uIDQpCkBAIC0xLDQgKzEsNCBAQAotUENSRSB2ZXJzaW9uIDYuMyAxNS1BdWct
MjAwNQorUENSRSB2ZXJzaW9uIDYuNCAwNS1TZXAtMjAwNQogCiAvdGhlIHF1aWNrIGJyb3duIGZv
eC8KICAgICB0aGUgcXVpY2sgYnJvd24gZm94CkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0Mgo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0MgkocmV2aXNpb24gMykKKysrIHRlc3Rk
YXRhL3Rlc3RvdXRwdXQyCShyZXZpc2lvbiA0KQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lv
biA2LjMgMTUtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjQgMDUtU2VwLTIwMDUKIAogLyhhKWJ8
LwogQ2FwdHVyaW5nIHN1YnBhdHRlcm4gY291bnQgPSAxCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0
cHV0Mwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0MwkocmV2aXNpb24gMykKKysr
IHRlc3RkYXRhL3Rlc3RvdXRwdXQzCShyZXZpc2lvbiA0KQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUg
dmVyc2lvbiA2LjMgMTUtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjQgMDUtU2VwLTIwMDUKIAog
L15bXHddKy8KICAgICAqKiogRmFpbGVycwpJbmRleDogdGVzdGRhdGEvdGVzdG91dHB1dDQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDQJKHJldmlzaW9uIDMpCisrKyB0ZXN0ZGF0
YS90ZXN0b3V0cHV0NAkocmV2aXNpb24gNCkKQEAgLTEsNCArMSw0IEBACi1QQ1JFIHZlcnNpb24g
Ni4zIDE1LUF1Zy0yMDA1CitQQ1JFIHZlcnNpb24gNi40IDA1LVNlcC0yMDA1CiAKIC8tLSBEbyBu
b3QgdXNlIHRoZSBceHt9IGNvbnN0cnVjdCBleGNlcHQgd2l0aCBwYXR0ZXJucyB0aGF0IGhhdmUg
dGhlIC0tLwogLy0tIC84IG9wdGlvbiBzZXQsIGJlY2F1c2UgUENSRSBkb2Vzbid0IHJlY29nbml6
ZSB0aGVtIGFzIFVURi04IHVubGVzcyAtLS8KSW5kZXg6IHRlc3RkYXRhL3Rlc3RvdXRwdXQ1Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHRlc3RkYXRhL3Rlc3RvdXRwdXQ1CShyZXZpc2lvbiAzKQorKysgdGVzdGRh
dGEvdGVzdG91dHB1dDUJKHJldmlzaW9uIDQpCkBAIC0xLDQgKzEsNCBAQAotUENSRSB2ZXJzaW9u
IDYuMyAxNS1BdWctMjAwNQorUENSRSB2ZXJzaW9uIDYuNCAwNS1TZXAtMjAwNQogCiAvXHh7MTAw
fS84RE0KIE1lbW9yeSBhbGxvY2F0aW9uIChjb2RlIHNwYWNlKTogMTAKSW5kZXg6IHRlc3RkYXRh
L3Rlc3RvdXRwdXQ2Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RkYXRhL3Rlc3RvdXRwdXQ2CShyZXZpc2lv
biAzKQorKysgdGVzdGRhdGEvdGVzdG91dHB1dDYJKHJldmlzaW9uIDQpCkBAIC0xLDQgKzEsNCBA
QAotUENSRSB2ZXJzaW9uIDYuMyAxNS1BdWctMjAwNQorUENSRSB2ZXJzaW9uIDYuNCAwNS1TZXAt
MjAwNQogCiAvXlxwQ1xwTFxwTVxwTlxwUFxwU1xwWjwvOAogICAgIFx4N2ZceHtjMH1ceHszMGZ9
XHh7NjYwfVx4ezY2Y31ceHtmMDF9XHh7MTY4MH08CkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0
Nwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0NwkocmV2aXNpb24gMykKKysrIHRl
c3RkYXRhL3Rlc3RvdXRwdXQ3CShyZXZpc2lvbiA0KQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVy
c2lvbiA2LjMgMTUtQXVnLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjQgMDUtU2VwLTIwMDUKIAogL2Fi
Yy8KICAgICBhYmMKSW5kZXg6IHRlc3RkYXRhL3Rlc3RvdXRwdXQ4Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRl
c3RkYXRhL3Rlc3RvdXRwdXQ4CShyZXZpc2lvbiAzKQorKysgdGVzdGRhdGEvdGVzdG91dHB1dDgJ
KHJldmlzaW9uIDQpCkBAIC0xLDQgKzEsNCBAQAotUENSRSB2ZXJzaW9uIDYuMyAxNS1BdWctMjAw
NQorUENSRSB2ZXJzaW9uIDYuNCAwNS1TZXAtMjAwNQogCiAvLS0gRG8gbm90IHVzZSB0aGUgXHh7
fSBjb25zdHJ1Y3QgZXhjZXB0IHdpdGggcGF0dGVybnMgdGhhdCBoYXZlIHRoZSAtLS8KIC8tLSAv
OCBvcHRpb24gc2V0LCBiZWNhdXNlIFBDUkUgZG9lc24ndCByZWNvZ25pemUgdGhlbSBhcyBVVEYt
OCB1bmxlc3MgLS0vCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0OQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0
ZXN0ZGF0YS90ZXN0b3V0cHV0OQkocmV2aXNpb24gMykKKysrIHRlc3RkYXRhL3Rlc3RvdXRwdXQ5
CShyZXZpc2lvbiA0KQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lvbiA2LjMgMTUtQXVnLTIw
MDUKK1BDUkUgdmVyc2lvbiA2LjQgMDUtU2VwLTIwMDUKIAogL1xwTFxQe05kfS84CiAgICAgQUIK
SW5kZXg6IHRlc3RkYXRhL2dyZXBvdXRwdXQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdGRhdGEvZ3JlcG91
dHB1dAkocmV2aXNpb24gMykKKysrIHRlc3RkYXRhL2dyZXBvdXRwdXQJKHJldmlzaW9uIDQpCkBA
IC0xLDQgKzEsNCBAQAotcGNyZWdyZXAgdmVyc2lvbiA0LjAgMDctSnVuLTIwMDUgdXNpbmcgUENS
RSB2ZXJzaW9uIDYuMyAxNS1BdWctMjAwNQorcGNyZWdyZXAgdmVyc2lvbiA0LjEgMDUtU2VwLTIw
MDUgdXNpbmcgUENSRSB2ZXJzaW9uIDYuNCAwNS1TZXAtMjAwNQogLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSBUZXN0IDEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBQQVRURVJO
IGF0IHRoZSBzdGFydCBvZiBhIGxpbmUuCiBJbiB0aGUgbWlkZGxlIG9mIGEgbGluZSwgUEFUVEVS
TiBhcHBlYXJzLgpAQCAtMTcsNyArMTcsNiBAQAogLi90ZXN0ZGF0YS9ncmVwaW5wdXQ6ODpJbiB0
aGUgbWlkZGxlIG9mIGEgbGluZSwgUEFUVEVSTiBhcHBlYXJzLgogLi90ZXN0ZGF0YS9ncmVwaW5w
dXQ6MTA6VGhpcyBwYXR0ZXJuIGlzIGluIGxvd2VyIGNhc2UuCiAuL3Rlc3RkYXRhL2dyZXBpbnB1
dDo1ODY6Q2hlY2sgdXAgb24gUEFUVEVSTiBuZWFyIHRoZSBlbmQuCi0tLQogLi90ZXN0ZGF0YS9n
cmVwaW5wdXR4OjM6SGVyZSBpcyB0aGUgcGF0dGVybiBhZ2Fpbi4KIC4vdGVzdGRhdGEvZ3JlcGlu
cHV0eDo1OlBhdHRlcm4KIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVzdCA2IC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMjUsNyArMjQsNiBAQAogODpJbiB0aGUgbWlk
ZGxlIG9mIGEgbGluZSwgUEFUVEVSTiBhcHBlYXJzLgogMTA6VGhpcyBwYXR0ZXJuIGlzIGluIGxv
d2VyIGNhc2UuCiA1ODY6Q2hlY2sgdXAgb24gUEFUVEVSTiBuZWFyIHRoZSBlbmQuCi0tLQogMzpI
ZXJlIGlzIHRoZSBwYXR0ZXJuIGFnYWluLgogNTpQYXR0ZXJuCiAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIFRlc3QgNyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IHBj
cmVfaW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwY3JlX2ludGVybmFsLmgJKHJldmlzaW9uIDMp
CisrKyBwY3JlX2ludGVybmFsLmgJKHJldmlzaW9uIDQpCkBAIC00MiwxMiArNDIsMTQgQEAKIG1v
ZHVsZXMsIGJ1dCB3aGljaCBhcmUgbm90IHJlbGV2YW50IHRvIHRoZSBleHBvcnRlZCBBUEkuIFRo
aXMgaW5jbHVkZXMgc29tZQogZnVuY3Rpb25zIHdob3NlIG5hbWVzIGFsbCBiZWdpbiB3aXRoICJf
cGNyZV8iLiAqLwogCisjaWZuZGVmIFBDUkVfSU5URVJOQUxfSAorI2RlZmluZSBQQ1JFX0lOVEVS
TkFMX0gKIAogLyogRGVmaW5lIERFQlVHIHRvIGdldCBkZWJ1Z2dpbmcgb3V0cHV0IG9uIHN0ZG91
dC4gKi8KIAotLyoqKioKKyNpZiAwCiAjZGVmaW5lIERFQlVHCi0qKioqLworI2VuZGlmCiAKIC8q
IFVzZSBhIG1hY3JvIGZvciBkZWJ1Z2dpbmcgcHJpbnRpbmcsICdjYXVzZSB0aGF0IGVsaW1pbmF0
ZXMgdGhlIHVzZSBvZiAjaWZkZWYKIGlubGluZSwgYW5kIHRoZXJlIGFyZSAqc3RpbGwqIHN0dXBp
ZCBjb21waWxlcnMgYWJvdXQgdGhhdCBkb24ndCBsaWtlIGluZGVudGVkCkBAIC0xMTIsMTQgKzEx
NCwxMCBAQAogCiB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdXNjaGFyOwogCi0vKiBJbmNsdWRlIHRo
ZSBwdWJsaWMgUENSRSBoZWFkZXIgKi8KKy8qIEluY2x1ZGUgdGhlIHB1YmxpYyBQQ1JFIGhlYWRl
ciBhbmQgdGhlIGRlZmluaXRpb25zIG9mIFVDUCBjaGFyYWN0ZXIgcHJvcGVydHkKK3ZhbHVlcy4g
Ki8KIAogI2luY2x1ZGUgInBjcmUuaCIKLQotLyogSW5jbHVkZSB0aGUgKGNvcHkgb2YpIHRoZSBw
dWJsaWMgdWNwIGhlYWRlciwgY2hhbmdpbmcgdGhlIGV4dGVybmFsIG5hbWUgaW50bwotYSBwcml2
YXRlIG9uZS4gVGhpcyBkb2VzIG5vIGhhcm0sIGV2ZW4gaWYgd2UgYXJlbid0IGNvbXBpbGluZyBV
Q1Agc3VwcG9ydC4gKi8KLQotI2RlZmluZSB1Y3BfZmluZGNoYXIgX3BjcmVfdWNwX2ZpbmRjaGFy
CiAjaW5jbHVkZSAidWNwLmgiCiAKIC8qIFdoZW4gY29tcGlsaW5nIGZvciB1c2Ugd2l0aCB0aGUg
VmlydHVhbCBQYXNjYWwgY29tcGlsZXIsIHRoZXNlIGZ1bmN0aW9ucwpAQCAtODYyLDcgKzg2MCw3
IEBACiAjZGVmaW5lIHRhYmxlc19sZW5ndGggKGN0eXBlc19vZmZzZXQgKyAyNTYpCiAKIC8qIExh
eW91dCBvZiB0aGUgVUNQIHR5cGUgdGFibGUgdGhhdCB0cmFuc2xhdGVzIHByb3BlcnR5IG5hbWVz
IGludG8gY29kZXMgZm9yCi11Y3BfZmluZGNoYXIoKS4gKi8KK3BjcmVfdWNwX2ZpbmRjaGFyKCku
ICovCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgY29uc3QgY2hhciAqbmFtZTsKQEAgLTg5NSwxMSAr
ODkzLDEyIEBACiBzZW5zZSwgYnV0IGFyZSBub3QgcGFydCBvZiB0aGUgUENSRSBwdWJsaWMgQVBJ
LiAqLwogCiBleHRlcm4gaW50ICAgICAgICAgX3BjcmVfb3JkMnV0ZjgoaW50LCB1c2NoYXIgKik7
Ci1leHRlcm4gdm9pZCAgICAgICAgX3BjcmVfcHJpbnRpbnQocGNyZSAqLCBGSUxFICopOwogZXh0
ZXJuIHJlYWxfcGNyZSAqIF9wY3JlX3RyeV9mbGlwcGVkKGNvbnN0IHJlYWxfcGNyZSAqLCByZWFs
X3BjcmUgKiwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBjcmVfc3R1ZHlfZGF0YSAqLCBw
Y3JlX3N0dWR5X2RhdGEgKik7CiBleHRlcm4gaW50ICAgICAgICAgX3BjcmVfdWNwX2ZpbmRjaGFy
KGNvbnN0IGludCwgaW50ICosIGludCAqKTsKIGV4dGVybiBpbnQgICAgICAgICBfcGNyZV92YWxp
ZF91dGY4KGNvbnN0IHVzY2hhciAqLCBpbnQpOwogZXh0ZXJuIEJPT0wgICAgICAgIF9wY3JlX3hj
bGFzcyhpbnQsIGNvbnN0IHVzY2hhciAqKTsKIAorI2VuZGlmCisKIC8qIEVuZCBvZiBwY3JlX2lu
dGVybmFsLmggKi8KSW5kZXg6IHVjcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHVjcC5oCShyZXZpc2lvbiAz
KQorKysgdWNwLmgJKHJldmlzaW9uIDQpCkBAIC01Myw4ICs1Myw2IEBACiAgIHVjcF9acyAgICAg
LyogU3BhY2Ugc2VwYXJhdG9yICovCiB9OwogCi1leHRlcm4gaW50IHVjcF9maW5kY2hhcihjb25z
dCBpbnQsIGludCAqLCBpbnQgKik7Ci0KICNlbmRpZgogCiAvKiBFbmQgb2YgdWNwLmggKi8KSW5k
ZXg6IHBjcmVfZXhlYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBjcmVfZXhlYy5jCShyZXZpc2lvbiAzKQor
KysgcGNyZV9leGVjLmMJKHJldmlzaW9uIDQpCkBAIC0xMzU0LDcgKzEzNTQsNyBAQAogICAgICAg
ewogICAgICAgaW50IGNoYXJ0eXBlLCBycWR0eXBlOwogICAgICAgaW50IG90aGVyY2FzZTsKLSAg
ICAgIGludCBjYXRlZ29yeSA9IHVjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2Up
OworICAgICAgaW50IGNhdGVnb3J5ID0gX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwg
Jm90aGVyY2FzZSk7CiAKICAgICAgIHJxZHR5cGUgPSAqKCsrZWNvZGUpOwogICAgICAgZWNvZGUr
KzsKQEAgLTEzODEsNyArMTM4MSw3IEBACiAgICAgICB7CiAgICAgICBpbnQgY2hhcnR5cGU7CiAg
ICAgICBpbnQgb3RoZXJjYXNlOwotICAgICAgaW50IGNhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMs
ICZjaGFydHlwZSwgJm90aGVyY2FzZSk7CisgICAgICBpbnQgY2F0ZWdvcnkgPSBfcGNyZV91Y3Bf
ZmluZGNoYXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKTsKICAgICAgIGlmIChjYXRlZ29yeSA9
PSB1Y3BfTSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKICAgICAgIHdoaWxlIChlcHRyIDwgbWQt
PmVuZF9zdWJqZWN0KQogICAgICAgICB7CkBAIC0xMzkwLDcgKzEzOTAsNyBAQAogICAgICAgICAg
IHsKICAgICAgICAgICBHRVRDSEFSTEVOKGMsIGVwdHIsIGxlbik7CiAgICAgICAgICAgfQotICAg
ICAgICBjYXRlZ29yeSA9IHVjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpOwor
ICAgICAgICBjYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhl
cmNhc2UpOwogICAgICAgICBpZiAoY2F0ZWdvcnkgIT0gdWNwX00pIGJyZWFrOwogICAgICAgICBl
cHRyICs9IGxlbjsKICAgICAgICAgfQpAQCAtMTg0MSw3ICsxODQxLDcgQEAKICAgICAgICAgZWNv
ZGUgKz0gbGVuZ3RoOwogCiAgICAgICAgIC8qIElmIHdlIGhhdmUgVW5pY29kZSBwcm9wZXJ0eSBz
dXBwb3J0LCB3ZSBjYW4gdXNlIGl0IHRvIHRlc3QgdGhlIG90aGVyCi0gICAgICAgIGNhc2Ugb2Yg
dGhlIGNoYXJhY3RlciwgaWYgdGhlcmUgaXMgb25lLiBUaGUgcmVzdWx0IG9mIHVjcF9maW5kY2hh
cigpIGlzCisgICAgICAgIGNhc2Ugb2YgdGhlIGNoYXJhY3RlciwgaWYgdGhlcmUgaXMgb25lLiBU
aGUgcmVzdWx0IG9mIF9wY3JlX3VjcF9maW5kY2hhcigpIGlzCiAgICAgICAgIDwgMCBpZiB0aGUg
Y2hhciBpc24ndCBmb3VuZCwgYW5kIG90aGVyY2FzZSBpcyByZXR1cm5lZCBhcyB6ZXJvIGlmIHRo
ZXJlCiAgICAgICAgIGlzbid0IG9uZS4gKi8KIApAQCAtMTg1MCw3ICsxODUwLDcgQEAKICNpZmRl
ZiBTVVBQT1JUX1VDUAogICAgICAgICAgIGludCBjaGFydHlwZTsKICAgICAgICAgICBpbnQgb3Ro
ZXJjYXNlOwotICAgICAgICAgIGlmICh1Y3BfZmluZGNoYXIoZmMsICZjaGFydHlwZSwgJm90aGVy
Y2FzZSkgPCAwIHx8IGRjICE9IG90aGVyY2FzZSkKKyAgICAgICAgICBpZiAoX3BjcmVfdWNwX2Zp
bmRjaGFyKGZjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpIDwgMCB8fCBkYyAhPSBvdGhlcmNhc2Up
CiAjZW5kaWYKICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CiAgICAgICAgICAg
fQpAQCAtMTkyMCw3ICsxOTIwLDcgQEAKICAgICAgICAgaW50IG90aGVyY2FzZTsKICAgICAgICAg
aW50IGNoYXJ0eXBlOwogICAgICAgICBpZiAoKGltcyAmIFBDUkVfQ0FTRUxFU1MpICE9IDAgJiYK
LSAgICAgICAgICAgICB1Y3BfZmluZGNoYXIoZmMsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgPj0g
MCAmJgorICAgICAgICAgICAgIF9wY3JlX3VjcF9maW5kY2hhcihmYywgJmNoYXJ0eXBlLCAmb3Ro
ZXJjYXNlKSA+PSAwICYmCiAgICAgICAgICAgICAgb3RoZXJjYXNlID4gMCkKICAgICAgICAgICBv
Y2xlbmd0aCA9IF9wY3JlX29yZDJ1dGY4KG90aGVyY2FzZSwgb2NjaGFycyk7CiAjZW5kaWYgIC8q
IFNVUFBPUlRfVUNQICovCkBAIC0yNDM5LDcgKzI0MzksNyBAQAogICAgICAgICBmb3IgKGkgPSAx
OyBpIDw9IG1pbjsgaSsrKQogICAgICAgICAgIHsKICAgICAgICAgICBHRVRDSEFSSU5DKGMsIGVw
dHIpOwotICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSB1Y3BfZmluZGNoYXIoYywgJnByb3BfY2hh
cnR5cGUsICZwcm9wX290aGVyY2FzZSk7CisgICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IF9wY3Jl
X3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKICAgICAg
ICAgICBpZiAoKCpwcm9wX3Rlc3RfdmFyaWFibGUgPT0gcHJvcF90ZXN0X2FnYWluc3QpID09IHBy
b3BfZmFpbF9yZXN1bHQpCiAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwogICAg
ICAgICAgIH0KQEAgLTI0NTMsNyArMjQ1Myw3IEBACiAgICAgICAgIGZvciAoaSA9IDE7IGkgPD0g
bWluOyBpKyspCiAgICAgICAgICAgewogICAgICAgICAgIEdFVENIQVJJTkNURVNUKGMsIGVwdHIp
OwotICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSB1Y3BfZmluZGNoYXIoYywgJnByb3BfY2hhcnR5
cGUsICZwcm9wX290aGVyY2FzZSk7CisgICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IF9wY3JlX3Vj
cF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKICAgICAgICAg
ICBpZiAocHJvcF9jYXRlZ29yeSA9PSB1Y3BfTSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKICAg
ICAgICAgICB3aGlsZSAoZXB0ciA8IG1kLT5lbmRfc3ViamVjdCkKICAgICAgICAgICAgIHsKQEAg
LTI0NjIsNyArMjQ2Miw3IEBACiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgR0VUQ0hB
UkxFTihjLCBlcHRyLCBsZW4pOwogICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9wX2Nh
dGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2Up
OworICAgICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJv
cF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKICAgICAgICAgICAgIGlmIChwcm9wX2NhdGVn
b3J5ICE9IHVjcF9NKSBicmVhazsKICAgICAgICAgICAgIGVwdHIgKz0gbGVuOwogICAgICAgICAg
ICAgfQpAQCAtMjYzMiw3ICsyNjMyLDcgQEAKICAgICAgICAgICBpZiAocnJjICE9IE1BVENIX05P
TUFUQ0gpIFJSRVRVUk4ocnJjKTsKICAgICAgICAgICBpZiAoZmkgPj0gbWF4IHx8IGVwdHIgPj0g
bWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwogICAgICAgICAgIEdFVENI
QVJJTkMoYywgZXB0cik7Ci0gICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IHVjcF9maW5kY2hhcihj
LCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKKyAgICAgICAgICBwcm9wX2NhdGVn
b3J5ID0gX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNh
c2UpOwogICAgICAgICAgIGlmICgoKnByb3BfdGVzdF92YXJpYWJsZSA9PSBwcm9wX3Rlc3RfYWdh
aW5zdCkgPT0gcHJvcF9mYWlsX3Jlc3VsdCkKICAgICAgICAgICAgIFJSRVRVUk4oTUFUQ0hfTk9N
QVRDSCk7CiAgICAgICAgICAgfQpAQCAtMjY0OSw3ICsyNjQ5LDcgQEAKICAgICAgICAgICBpZiAo
cnJjICE9IE1BVENIX05PTUFUQ0gpIFJSRVRVUk4ocnJjKTsKICAgICAgICAgICBpZiAoZmkgPj0g
bWF4IHx8IGVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwog
ICAgICAgICAgIEdFVENIQVJJTkNURVNUKGMsIGVwdHIpOwotICAgICAgICAgIHByb3BfY2F0ZWdv
cnkgPSB1Y3BfZmluZGNoYXIoYywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7Cisg
ICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFy
dHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKICAgICAgICAgICBpZiAocHJvcF9jYXRlZ29yeSA9PSB1
Y3BfTSkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKICAgICAgICAgICB3aGlsZSAoZXB0ciA8IG1k
LT5lbmRfc3ViamVjdCkKICAgICAgICAgICAgIHsKQEAgLTI2NTgsNyArMjY1OCw3IEBACiAgICAg
ICAgICAgICAgIHsKICAgICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBlcHRyLCBsZW4pOwogICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9wX2NhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMs
ICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2UpOworICAgICAgICAgICAgcHJvcF9jYXRl
Z29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJj
YXNlKTsKICAgICAgICAgICAgIGlmIChwcm9wX2NhdGVnb3J5ICE9IHVjcF9NKSBicmVhazsKICAg
ICAgICAgICAgIGVwdHIgKz0gbGVuOwogICAgICAgICAgICAgfQpAQCAtMjc5MCw3ICsyNzkwLDcg
QEAKICAgICAgICAgICBpbnQgbGVuID0gMTsKICAgICAgICAgICBpZiAoZXB0ciA+PSBtZC0+ZW5k
X3N1YmplY3QpIGJyZWFrOwogICAgICAgICAgIEdFVENIQVJMRU4oYywgZXB0ciwgbGVuKTsKLSAg
ICAgICAgICBwcm9wX2NhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAm
cHJvcF9vdGhlcmNhc2UpOworICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmlu
ZGNoYXIoYywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgaWYg
KCgqcHJvcF90ZXN0X3ZhcmlhYmxlID09IHByb3BfdGVzdF9hZ2FpbnN0KSA9PSBwcm9wX2ZhaWxf
cmVzdWx0KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgZXB0cis9IGxlbjsKQEAgLTI4
MTYsNyArMjgxNiw3IEBACiAgICAgICAgICAgewogICAgICAgICAgIGlmIChlcHRyID49IG1kLT5l
bmRfc3ViamVjdCkgYnJlYWs7CiAgICAgICAgICAgR0VUQ0hBUklOQ1RFU1QoYywgZXB0cik7Ci0g
ICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IHVjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwg
JnByb3Bfb3RoZXJjYXNlKTsKKyAgICAgICAgICBwcm9wX2NhdGVnb3J5ID0gX3BjcmVfdWNwX2Zp
bmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2UpOwogICAgICAgICAgIGlm
IChwcm9wX2NhdGVnb3J5ID09IHVjcF9NKSBicmVhazsKICAgICAgICAgICB3aGlsZSAoZXB0ciA8
IG1kLT5lbmRfc3ViamVjdCkKICAgICAgICAgICAgIHsKQEAgLTI4MjUsNyArMjgyNSw3IEBACiAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBlcHRyLCBsZW4pOwog
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9wX2NhdGVnb3J5ID0gdWNwX2ZpbmRjaGFy
KGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2UpOworICAgICAgICAgICAgcHJvcF9j
YXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3Ro
ZXJjYXNlKTsKICAgICAgICAgICAgIGlmIChwcm9wX2NhdGVnb3J5ICE9IHVjcF9NKSBicmVhazsK
ICAgICAgICAgICAgIGVwdHIgKz0gbGVuOwogICAgICAgICAgICAgfQpAQCAtMjg0Niw3ICsyODQ2
LDcgQEAKICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICBHRVRDSEFSTEVOKGMsIGVwdHIs
IGxlbik7CiAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSB1Y3Bf
ZmluZGNoYXIoYywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CisgICAgICAgICAg
ICBwcm9wX2NhdGVnb3J5ID0gX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAm
cHJvcF9vdGhlcmNhc2UpOwogICAgICAgICAgICAgaWYgKHByb3BfY2F0ZWdvcnkgIT0gdWNwX00p
IGJyZWFrOwogICAgICAgICAgICAgZXB0ci0tOwogICAgICAgICAgICAgfQpAQCAtMzIwMCw3ICsz
MjAwLDcgQEAKICAgICAgICAgICAgICAgICAgPCAtMSA9PiBzb21lIGtpbmQgb2YgdW5leHBlY3Rl
ZCBwcm9ibGVtCiAqLwogCi1FWFBPUlQgaW50CitQQ1JFX0VYUE9SVCBpbnQKIHBjcmVfZXhlYyhj
b25zdCBwY3JlICphcmd1bWVudF9yZSwgY29uc3QgcGNyZV9leHRyYSAqZXh0cmFfZGF0YSwKICAg
Y29uc3QgY2hhciAqc3ViamVjdCwgaW50IGxlbmd0aCwgaW50IHN0YXJ0X29mZnNldCwgaW50IG9w
dGlvbnMsIGludCAqb2Zmc2V0cywKICAgaW50IG9mZnNldGNvdW50KQpJbmRleDogY29uZmlndXJl
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGNvbmZpZ3VyZQkocmV2aXNpb24gMykKKysrIGNvbmZpZ3VyZQkocmV2
aXNpb24gNCkKQEAgLTE1MDEsMTMgKzE1MDEsMTMgQEAKIAogCiAKLSAgICAgICAgICBhY19jb25m
aWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5oOmNvbmZpZy5pbiIKKyAgICAg
ICAgICBhY19jb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIGNvbmZpZy5oIgogCiAK
IAogUENSRV9NQUpPUj02Ci1QQ1JFX01JTk9SPTMKLVBDUkVfREFURT0xNS1BdWctMjAwNQorUENS
RV9NSU5PUj00CitQQ1JFX0RBVEU9MDUtU2VwLTIwMDUKIFBDUkVfVkVSU0lPTj0ke1BDUkVfTUFK
T1J9LiR7UENSRV9NSU5PUn0KIAogCkBAIC0yMDg3Miw3ICsyMDg3Miw3IEBACiAKIGZpCiAKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYWNfY29uZmlnX2ZpbGVzPSIkYWNfY29uZmlnX2ZpbGVzIE1h
a2VmaWxlIHBjcmUuaDpwY3JlLmluIHBjcmUtY29uZmlnOnBjcmUtY29uZmlnLmluIGxpYnBjcmUu
cGM6bGlicGNyZS5wYy5pbiBwY3JlY3BwLmg6cGNyZWNwcC5oLmluIHBjcmVfc3RyaW5ncGllY2Uu
aDpwY3JlX3N0cmluZ3BpZWNlLmguaW4gUnVuR3JlcFRlc3Q6UnVuR3JlcFRlc3QuaW4gUnVuVGVz
dDpSdW5UZXN0LmluIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19jb25maWdfZmlsZXM9IiRh
Y19jb25maWdfZmlsZXMgTWFrZWZpbGUgcGNyZS5oOnBjcmUuaC5pbiBwY3JlLWNvbmZpZzpwY3Jl
LWNvbmZpZy5pbiBsaWJwY3JlLnBjOmxpYnBjcmUucGMuaW4gcGNyZWNwcC5oOnBjcmVjcHAuaC5p
biBwY3JlX3N0cmluZ3BpZWNlLmg6cGNyZV9zdHJpbmdwaWVjZS5oLmluIFJ1bkdyZXBUZXN0OlJ1
bkdyZXBUZXN0LmluIFJ1blRlc3Q6UnVuVGVzdC5pbiIKICAgICAgICAgICBhY19jb25maWdfY29t
bWFuZHM9IiRhY19jb25maWdfY29tbWFuZHMgZGVmYXVsdCIKIGNhdCA+Y29uZmNhY2hlIDw8XF9B
Q0VPRgogIyBUaGlzIGZpbGUgaXMgYSBzaGVsbCBzY3JpcHQgdGhhdCBjYWNoZXMgdGhlIHJlc3Vs
dHMgb2YgY29uZmlndXJlCkBAIC0yMTQwMyw3ICsyMTQwMyw3IEBACiAgIGNhc2UgIiRhY19jb25m
aWdfdGFyZ2V0IiBpbgogICAjIEhhbmRsaW5nIG9mIGFyZ3VtZW50cy4KICAgIk1ha2VmaWxlIiAp
IENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIgOzsKLSAgInBjcmUuaCIgKSBD
T05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgcGNyZS5oOnBjcmUuaW4iIDs7CisgICJwY3JlLmgi
ICkgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHBjcmUuaDpwY3JlLmguaW4iIDs7CiAgICJw
Y3JlLWNvbmZpZyIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgcGNyZS1jb25maWc6cGNy
ZS1jb25maWcuaW4iIDs7CiAgICJsaWJwY3JlLnBjIiApIENPTkZJR19GSUxFUz0iJENPTkZJR19G
SUxFUyBsaWJwY3JlLnBjOmxpYnBjcmUucGMuaW4iIDs7CiAgICJwY3JlY3BwLmgiICkgQ09ORklH
X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHBjcmVjcHAuaDpwY3JlY3BwLmguaW4iIDs7CkBAIC0yMTQx
MSw3ICsyMTQxMSw3IEBACiAgICJSdW5HcmVwVGVzdCIgKSBDT05GSUdfRklMRVM9IiRDT05GSUdf
RklMRVMgUnVuR3JlcFRlc3Q6UnVuR3JlcFRlc3QuaW4iIDs7CiAgICJSdW5UZXN0IiApIENPTkZJ
R19GSUxFUz0iJENPTkZJR19GSUxFUyBSdW5UZXN0OlJ1blRlc3QuaW4iIDs7CiAgICJkZWZhdWx0
IiApIENPTkZJR19DT01NQU5EUz0iJENPTkZJR19DT01NQU5EUyBkZWZhdWx0IiA7OwotICAiY29u
ZmlnLmgiICkgQ09ORklHX0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBjb25maWcuaDpjb25maWcu
aW4iIDs7CisgICJjb25maWcuaCIgKSBDT05GSUdfSEVBREVSUz0iJENPTkZJR19IRUFERVJTIGNv
bmZpZy5oIiA7OwogICAqKSB7IHsgZWNobyAiJGFzX21lOiRMSU5FTk86IGVycm9yOiBpbnZhbGlk
IGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiY1CiBlY2hvICIkYXNfbWU6IGVycm9yOiBp
bnZhbGlkIGFyZ3VtZW50OiAkYWNfY29uZmlnX3RhcmdldCIgPiYyO30KICAgIHsgKGV4aXQgMSk7
IGV4aXQgMTsgfTsgfTs7CkluZGV4OiBwY3JlX2NvbXBpbGUuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwY3Jl
X2NvbXBpbGUuYwkocmV2aXNpb24gMykKKysrIHBjcmVfY29tcGlsZS5jCShyZXZpc2lvbiA0KQpA
QCAtNDUsNiArNDUsMTUgQEAKICNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCiAKIAorLyogV2hl
biBERUJVRyBpcyBkZWZpbmVkLCB3ZSBuZWVkIHRoZSBwY3JlX3ByaW50aW50KCkgZnVuY3Rpb24s
IHdoaWNoIGlzIGFsc28KK3VzZWQgYnkgcGNyZXRlc3QuIERFQlVHIGlzIG5vdCBkZWZpbmVkIHdo
ZW4gYnVpbGRpbmcgYSBwcm9kdWN0aW9uIGxpYnJhcnkuICovCisKKyNpZmRlZiBERUJVRworI2lu
Y2x1ZGUgInBjcmVfcHJpbnRpbnQuc3JjIgorI2VuZGlmCisKKworCiAvKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKiAgICAgIENvZGUgcGFyYW1ldGVy
cyBhbmQgc3RhdGljIHRhYmxlcyAgICAgICAgICoKICoqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0zODM5LDcgKzM4NDgsNyBAQAogICAgICAgICAg
ICAgICAgIHdpdGggZXJyb3JwdHIgYW5kIGVycm9yb2Zmc2V0IHNldAogKi8KIAotRVhQT1JUIHBj
cmUgKgorUENSRV9FWFBPUlQgcGNyZSAqCiBwY3JlX2NvbXBpbGUoY29uc3QgY2hhciAqcGF0dGVy
biwgaW50IG9wdGlvbnMsIGNvbnN0IGNoYXIgKiplcnJvcnB0ciwKICAgaW50ICplcnJvcm9mZnNl
dCwgY29uc3QgdW5zaWduZWQgY2hhciAqdGFibGVzKQogewpAQCAtMzg0Nyw3ICszODU2LDcgQEAK
IH0KIAogCi1FWFBPUlQgcGNyZSAqCitQQ1JFX0VYUE9SVCBwY3JlICoKIHBjcmVfY29tcGlsZTIo
Y29uc3QgY2hhciAqcGF0dGVybiwgaW50IG9wdGlvbnMsIGludCAqZXJyb3Jjb2RlcHRyLAogICBj
b25zdCBjaGFyICoqZXJyb3JwdHIsIGludCAqZXJyb3JvZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNo
YXIgKnRhYmxlcykKIHsKQEAgLTUwMDAsNyArNTAwOSw4IEBACiAgIHJlLT5vcHRpb25zIHw9IFBD
UkVfUkVRQ0hTRVQ7CiAgIH0KIAotLyogUHJpbnQgb3V0IHRoZSBjb21waWxlZCBkYXRhIGZvciBk
ZWJ1Z2dpbmcgKi8KKy8qIFByaW50IG91dCB0aGUgY29tcGlsZWQgZGF0YSBpZiBkZWJ1Z2dpbmcg
aXMgZW5hYmxlZC4gVGhpcyBpcyBuZXZlciB0aGUKK2Nhc2Ugd2hlbiBidWlsZGluZyBhIHByb2R1
Y3Rpb24gbGlicmFyeS4gKi8KIAogI2lmZGVmIERFQlVHCiAKQEAgLTUwMzgsNyArNTA0OCw3IEBA
CiAgICAgZWxzZSBwcmludGYoIlJlcSBjaGFyID0gXFx4JTAyeCVzXG4iLCBjaCwgY2FzZWxlc3Mp
OwogICB9CiAKLV9wY3JlX3ByaW50aW50KHJlLCBzdGRvdXQpOworcGNyZV9wcmludGludChyZSwg
c3Rkb3V0KTsKIAogLyogVGhpcyBjaGVjayBpcyBkb25lIGhlcmUgaW4gdGhlIGRlYnVnZ2luZyBj
YXNlIHNvIHRoYXQgdGhlIGNvZGUgdGhhdAogd2FzIGNvbXBpbGVkIGNhbiBiZSBzZWVuLiAqLwpJ
bmRleDogcGNyZV94Y2xhc3MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwY3JlX3hjbGFzcy5jCShyZXZpc2lv
biAzKQorKysgcGNyZV94Y2xhc3MuYwkocmV2aXNpb24gNCkKQEAgLTYwLDcgKzYwLDcgQEAKIFJl
dHVybnM6ICAgICAgVFJVRSBpZiBjaGFyYWN0ZXIgbWF0Y2hlcywgZWxzZSBGQUxTRQogKi8KIAot
RVhQT1JUIEJPT0wKK1BDUkVfRVhQT1JUIEJPT0wKIF9wY3JlX3hjbGFzcyhpbnQgYywgY29uc3Qg
dXNjaGFyICpkYXRhKQogewogaW50IHQ7CkBAIC0xMDIsNyArMTAyLDcgQEAKICAgICB7CiAgICAg
aW50IGNoYXJ0eXBlLCBvdGhlcmNhc2U7CiAgICAgaW50IHJxZHR5cGUgPSAqZGF0YSsrOwotICAg
IGludCBjYXRlZ29yeSA9IHVjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpOwor
ICAgIGludCBjYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhl
cmNhc2UpOwogICAgIGlmIChycWR0eXBlID49IDEyOCkKICAgICAgIHsKICAgICAgIGlmICgocnFk
dHlwZSAtIDEyOCA9PSBjYXRlZ29yeSkgPT0gKHQgPT0gWENMX1BST1ApKSByZXR1cm4gIW5lZ2F0
ZWQ7CkluZGV4OiBwY3JlX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHBjcmVfY29uZmlnLmMJKHJl
dmlzaW9uIDMpCisrKyBwY3JlX2NvbmZpZy5jCShyZXZpc2lvbiA0KQpAQCAtNTgsNyArNTgsNyBA
QAogUmV0dXJuczogICAgICAgICAgIDAgaWYgZGF0YSByZXR1cm5lZCwgbmVnYXRpdmUgb24gZXJy
b3IKICovCiAKLUVYUE9SVCBpbnQKK1BDUkVfRVhQT1JUIGludAogcGNyZV9jb25maWcoaW50IHdo
YXQsIHZvaWQgKndoZXJlKQogewogc3dpdGNoICh3aGF0KQpJbmRleDogcGNyZXRlc3QuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBwY3JldGVzdC5jCShyZXZpc2lvbiAzKQorKysgcGNyZXRlc3QuYwkocmV2aXNp
b24gNCkKQEAgLTQ2LDE0ICs0NiwzNSBAQAogCiAjZGVmaW5lIFBDUkVfU1BZICAgICAgICAvKiBG
b3IgV2luMzIgYnVpbGQsIGltcG9ydCBkYXRhLCBub3QgZXhwb3J0ICovCiAKLS8qIFdlIG5lZWQg
dGhlIGludGVybmFsIGluZm8gZm9yIGRpc3BsYXlpbmcgdGhlIHJlc3VsdHMgb2YgcGNyZV9zdHVk
eSgpIGFuZAotb3RoZXIgaW50ZXJuYWwgZGF0YTsgcGNyZXRlc3QgYWxzbyB1c2VzIHNvbWUgb2Yg
dGhlIGZpeGVkIHRhYmxlcywgYW5kIGdlbmVyYWxseQotaGFzICJpbnNpZGUgaW5mb3JtYXRpb24i
IGNvbXBhcmVkIHRvIGEgcHJvZ3JhbSB0aGF0IHN0cmljdGx5IGZvbGxvd3MgdGhlIFBDUkUKLUFQ
SS4gKi8KKy8qIFdlIGluY2x1ZGUgcGNyZV9pbnRlcm5hbC5oIGJlY2F1c2Ugd2UgbmVlZCB0aGUg
aW50ZXJuYWwgaW5mbyBmb3IgZGlzcGxheWluZwordGhlIHJlc3VsdHMgb2YgcGNyZV9zdHVkeSgp
IGFuZCB3ZSBhbHNvIG5lZWQgdG8ga25vdyBhYm91dCB0aGUgaW50ZXJuYWwKK21hY3Jvcywgc3Ry
dWN0dXJlcywgYW5kIG90aGVyIGludGVybmFsIGRhdGEgdmFsdWVzOyBwY3JldGVzdCBoYXMgImlu
c2lkZQoraW5mb3JtYXRpb24iIGNvbXBhcmVkIHRvIGEgcHJvZ3JhbSB0aGF0IHN0cmljdGx5IGZv
bGxvd3MgdGhlIFBDUkUgQVBJLiAqLwogCiAjaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgogCisv
KiBXZSBuZWVkIGFjY2VzcyB0byB0aGUgZGF0YSB0YWJsZXMgdGhhdCBQQ1JFIHVzZXMuIFNvIGFz
IG5vdCB0byBoYXZlIHRvIGtlZXAKK3R3byBjb3BpZXMsIHdlIGluY2x1ZGUgdGhlIHNvdXJjZSBm
aWxlIGhlcmUsIGNoYW5naW5nIHRoZSBuYW1lcyBvZiB0aGUgZXh0ZXJuYWwKK3N5bWJvbHMgdG8g
cHJldmVudCBjbGFzaGVzLiAqLwogCisjZGVmaW5lIF9wY3JlX3V0ZjhfdGFibGUxICAgICAgdXRm
OF90YWJsZTEKKyNkZWZpbmUgX3BjcmVfdXRmOF90YWJsZTFfc2l6ZSB1dGY4X3RhYmxlMV9zaXpl
CisjZGVmaW5lIF9wY3JlX3V0ZjhfdGFibGUyICAgICAgdXRmOF90YWJsZTIKKyNkZWZpbmUgX3Bj
cmVfdXRmOF90YWJsZTMgICAgICB1dGY4X3RhYmxlMworI2RlZmluZSBfcGNyZV91dGY4X3RhYmxl
NCAgICAgIHV0ZjhfdGFibGU0CisjZGVmaW5lIF9wY3JlX3V0dCAgICAgICAgICAgICAgdXR0Cisj
ZGVmaW5lIF9wY3JlX3V0dF9zaXplICAgICAgICAgdXR0X3NpemUKKyNkZWZpbmUgX3BjcmVfT1Bf
bGVuZ3RocyAgICAgICBPUF9sZW5ndGhzCisKKyNpbmNsdWRlICJwY3JlX3RhYmxlcy5jIgorCisv
KiBXZSBhbHNvIG5lZWQgdGhlIHBjcmVfcHJpbnRpbnQoKSBmdW5jdGlvbiBmb3IgcHJpbnRpbmcg
b3V0IGNvbXBpbGVkCitwYXR0ZXJucy4gVGhpcyBmdW5jdGlvbiBpcyBpbiBhIHNlcGFyYXRlIGZp
bGUgc28gdGhhdCBpdCBjYW4gYmUgaW5jbHVkZWQgaW4KK3BjcmVfY29tcGlsZS5jIHdoZW4gdGhh
dCBtb2R1bGUgaXMgY29tcGlsZWQgd2l0aCBkZWJ1Z2dpbmcgZW5hYmxlZC4gKi8KKworI2luY2x1
ZGUgInBjcmVfcHJpbnRpbnQuc3JjIgorCisKIC8qIEl0IGlzIHBvc3NpYmxlIHRvIGNvbXBpbGUg
dGhpcyB0ZXN0IHByb2dyYW0gd2l0aG91dCBpbmNsdWRpbmcgc3VwcG9ydCBmb3IKIHRlc3Rpbmcg
dGhlIFBPU0lYIGludGVyZmFjZSwgdGhvdWdoIHRoaXMgaXMgbm90IGF2YWlsYWJsZSB2aWEgdGhl
IHN0YW5kYXJkCiBNYWtlZmlsZS4gKi8KQEAgLTY4LDYgKzg5LDggQEAKIGZ1bmN0aW9uIChkZWZp
bmUgTk9JTkZPQ0hFQ0spLiAqLwogCiAKKy8qIE90aGVyIHBhcmFtZXRlcnMgKi8KKwogI2lmbmRl
ZiBDTE9DS1NfUEVSX1NFQwogI2lmZGVmIENMS19UQ0sKICNkZWZpbmUgQ0xPQ0tTX1BFUl9TRUMg
Q0xLX1RDSwpAQCAtODMsNiArMTA2LDggQEAKICNkZWZpbmUgREJVRkZFUl9TSVpFIEJVRkZFUl9T
SVpFCiAKIAorLyogU3RhdGljIHZhcmlhYmxlcyAqLworCiBzdGF0aWMgRklMRSAqb3V0ZmlsZTsK
IHN0YXRpYyBpbnQgbG9nX3N0b3JlID0gMDsKIHN0YXRpYyBpbnQgY2FsbG91dF9jb3VudDsKQEAg
LTE2Miw3ICsxODcsNyBAQAogLyogaSBub3cgaGFzIGEgdmFsdWUgaW4gdGhlIHJhbmdlIDEtNSAq
LwogCiBzID0gNippOwotZCA9IChjICYgX3BjcmVfdXRmOF90YWJsZTNbaV0pIDw8IHM7CitkID0g
KGMgJiB1dGY4X3RhYmxlM1tpXSkgPDwgczsKIAogZm9yIChqID0gMDsgaiA8IGk7IGorKykKICAg
ewpAQCAtMTc0LDggKzE5OSw4IEBACiAKIC8qIENoZWNrIHRoYXQgZW5jb2Rpbmcgd2FzIHRoZSBj
b3JyZWN0IHVuaXF1ZSBvbmUgKi8KIAotZm9yIChqID0gMDsgaiA8IF9wY3JlX3V0ZjhfdGFibGUx
X3NpemU7IGorKykKLSAgaWYgKGQgPD0gX3BjcmVfdXRmOF90YWJsZTFbal0pIGJyZWFrOworZm9y
IChqID0gMDsgaiA8IHV0ZjhfdGFibGUxX3NpemU7IGorKykKKyAgaWYgKGQgPD0gdXRmOF90YWJs
ZTFbal0pIGJyZWFrOwogaWYgKGogIT0gaSkgcmV0dXJuIC0oaSsxKTsKIAogLyogVmFsaWQgdmFs
dWUgKi8KQEAgLTE4OSw2ICsyMTQsMzggQEAKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICBDb252ZXJ0IGNoYXJhY3RlciB2YWx1
ZSB0byBVVEYtOCAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKiovCisKKy8qIFRoaXMgZnVuY3Rpb24gdGFrZXMgYW4gaW50ZWdlciB2YWx1
ZSBpbiB0aGUgcmFuZ2UgMCAtIDB4N2ZmZmZmZmYKK2FuZCBlbmNvZGVzIGl0IGFzIGEgVVRGLTgg
Y2hhcmFjdGVyIGluIDAgdG8gNiBieXRlcy4KKworQXJndW1lbnRzOgorICBjdmFsdWUgICAgIHRo
ZSBjaGFyYWN0ZXIgdmFsdWUKKyAgYnVmZmVyICAgICBwb2ludGVyIHRvIGJ1ZmZlciBmb3IgcmVz
dWx0IC0gYXQgbGVhc3QgNiBieXRlcyBsb25nCisKK1JldHVybnM6ICAgICBudW1iZXIgb2YgY2hh
cmFjdGVycyBwbGFjZWQgaW4gdGhlIGJ1ZmZlcgorKi8KKworc3RhdGljIGludAorb3JkMnV0Zjgo
aW50IGN2YWx1ZSwgdXNjaGFyICpidWZmZXIpCit7CityZWdpc3RlciBpbnQgaSwgajsKK2ZvciAo
aSA9IDA7IGkgPCB1dGY4X3RhYmxlMV9zaXplOyBpKyspCisgIGlmIChjdmFsdWUgPD0gdXRmOF90
YWJsZTFbaV0pIGJyZWFrOworYnVmZmVyICs9IGk7Citmb3IgKGogPSBpOyBqID4gMDsgai0tKQor
IHsKKyAqYnVmZmVyLS0gPSAweDgwIHwgKGN2YWx1ZSAmIDB4M2YpOworIGN2YWx1ZSA+Pj0gNjsK
KyB9CisqYnVmZmVyID0gdXRmOF90YWJsZTJbaV0gfCBjdmFsdWU7CityZXR1cm4gaSArIDE7Cit9
CisKKworCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KgogKiAgICAgICAgICAgICBQcmludCBjaGFyYWN0ZXIgc3RyaW5nICAgICAgICAgICAgICoKICoq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKQEAgLTE5
OCw3ICsyNTUsNyBAQAogCiBzdGF0aWMgaW50IHBjaGFycyh1bnNpZ25lZCBjaGFyICpwLCBpbnQg
bGVuZ3RoLCBGSUxFICpmKQogewotaW50IGM7CitpbnQgYyA9IDA7CiBpbnQgeWllbGQgPSAwOwog
CiB3aGlsZSAobGVuZ3RoLS0gPiAwKQpAQCAtOTg4LDcgKzEwNDUsNyBAQAogICAgICAgaWYgKGRv
X2RlYnVnKQogICAgICAgICB7CiAgICAgICAgIGZwcmludGYob3V0ZmlsZSwgIi0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxu
Iik7Ci0gICAgICAgIF9wY3JlX3ByaW50aW50KHJlLCBvdXRmaWxlKTsKKyAgICAgICAgcGNyZV9w
cmludGludChyZSwgb3V0ZmlsZSk7CiAgICAgICAgIH0KIAogICAgICAgbmV3X2luZm8ocmUsIE5V
TEwsIFBDUkVfSU5GT19PUFRJT05TLCAmZ2V0X29wdGlvbnMpOwpAQCAtMTI5MCw3ICsxMzQ3LDcg
QEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgYnVmZjhbOF07CiAg
ICAgICAgICAgICBpbnQgaWksIHV0bjsKLSAgICAgICAgICAgIHV0biA9IF9wY3JlX29yZDJ1dGY4
KGMsIGJ1ZmY4KTsKKyAgICAgICAgICAgIHV0biA9IG9yZDJ1dGY4KGMsIGJ1ZmY4KTsKICAgICAg
ICAgICAgIGZvciAoaWkgPSAwOyBpaSA8IHV0biAtIDE7IGlpKyspICpxKysgPSBidWZmOFtpaV07
CiAgICAgICAgICAgICBjID0gYnVmZjhbaWldOyAgIC8qIExhc3QgYnl0ZSAqLwogICAgICAgICAg
ICAgcCA9IHB0ICsgMTsKSW5kZXg6IHBjcmVfdHJ5X2ZsaXBwZWQuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBw
Y3JlX3RyeV9mbGlwcGVkLmMJKHJldmlzaW9uIDMpCisrKyBwY3JlX3RyeV9mbGlwcGVkLmMJKHJl
dmlzaW9uIDQpCkBAIC05NCw3ICs5NCw3IEBACiAgICAgICAgICAgICAgICAgICAgTlVMTCBpZiBp
dCBpcyBub3QKICovCiAKLUVYUE9SVCByZWFsX3BjcmUgKgorUENSRV9FWFBPUlQgcmVhbF9wY3Jl
ICoKIF9wY3JlX3RyeV9mbGlwcGVkKGNvbnN0IHJlYWxfcGNyZSAqcmUsIHJlYWxfcGNyZSAqaW50
ZXJuYWxfcmUsCiAgIGNvbnN0IHBjcmVfc3R1ZHlfZGF0YSAqc3R1ZHksIHBjcmVfc3R1ZHlfZGF0
YSAqaW50ZXJuYWxfc3R1ZHkpCiB7CkluZGV4OiBwY3JlX3VjcF9maW5kY2hhci5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIHBjcmVfdWNwX2ZpbmRjaGFyLmMJKHJldmlzaW9uIDMpCisrKyBwY3JlX3VjcF9maW5k
Y2hhci5jCShyZXZpc2lvbiA0KQpAQCAtNDEsMTMgKzQxLDEyMSBAQAogLyogVGhpcyBtb2R1bGUg
Y29tcGlsZXMgY29kZSBmb3Igc3VwcG9ydGluZyB0aGUgdXNlIG9mIFVuaWNvZGUgY2hhcmFjdGVy
CiBwcm9wZXJ0aWVzLiBXZSB1c2UgdGhlIChlbWJyeW9uaWMgYXQgdGhlIHRpbWUgb2Ygd3JpdGlu
ZykgVUNQIGxpYnJhcnksIGJ5CiBpbmNsdWRpbmcgc29tZSBvZiBpdHMgZmlsZXMsIGNvcGllcyBv
ZiB3aGljaCBoYXZlIGJlZW4gcHV0IGluIHRoZSBQQ1JFCi1kaXN0cmlidXRpb24uIFRoZXJlIGlz
IGEgbWFjcm8gaW4gcGNyZV9pbnRlcm5hbC5oIHRoYXQgY2hhbmdlcyB0aGUgbmFtZQotdWNwX2Zp
bmRjaGFyIGludG8gX3BjcmVfdWNwX2ZpbmRjaGFyLiAqLworZGlzdHJpYnV0aW9uLiBUaGUgYWN0
dWFsIHNlYXJjaCBmdW5jdGlvbiBpcyByZXByb2R1Y2VkIGhlcmUsIHdpdGggaXRzIG5hbWUKK2No
YW5nZWQuICovCiAKIAogI2luY2x1ZGUgInBjcmVfaW50ZXJuYWwuaCIKIAotI2luY2x1ZGUgInVj
cF9maW5kY2hhci5jIgorI2luY2x1ZGUgInVjcC5oIiAgICAgICAgICAgICAgIC8qIENhdGVnb3J5
IGRlZmluaXRpb25zICovCisjaW5jbHVkZSAidWNwaW50ZXJuYWwuaCIgICAgICAgLyogSW50ZXJu
YWwgdGFibGUgZGV0YWlscyAqLworI2luY2x1ZGUgInVjcHRhYmxlLmMiICAgICAgICAgIC8qIFRo
ZSB0YWJsZSBpdHNlbGYgKi8KIAogCisKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgICAgICAgU2VhcmNoIHRhYmxlIGFuZCByZXR1cm4gZGF0
YSAgICAgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8KKworLyogVHdvIHZhbHVlcyBhcmUgcmV0dXJuZWQ6IHRoZSBjYXRlZ29yeSBpcyB1
Y3BfQywgdWNwX0wsIGV0Yy4gVGhlIGRldGFpbGVkCitjaGFyYWN0ZXIgdHlwZSBpcyB1Y3BfTHUs
IHVjcF9OZCwgZXRjLgorCitBcmd1bWVudHM6CisgIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIg
dmFsdWUKKyAgdHlwZV9wdHIgICAgdGhlIGRldGFpbGVkIGNoYXJhY3RlciB0eXBlIGlzIHJldHVy
bmVkIGhlcmUKKyAgY2FzZV9wdHIgICAgZm9yIGxldHRlcnMsIHRoZSBvcHBvc2l0ZSBjYXNlIGlz
IHJldHVybmVkIGhlcmUsIGlmIHRoZXJlCisgICAgICAgICAgICAgICAgaXMgb25lLCBlbHNlIHpl
cm8KKworUmV0dXJuczogICAgICB0aGUgY2hhcmFjdGVyIHR5cGUgY2F0ZWdvcnkgb3IgLTEgaWYg
bm90IGZvdW5kCisqLworCitQQ1JFX0VYUE9SVCBpbnQKK19wY3JlX3VjcF9maW5kY2hhcihjb25z
dCBpbnQgYywgaW50ICp0eXBlX3B0ciwgaW50ICpjYXNlX3B0cikKK3sKK2Nub2RlICpub2RlID0g
dWNwX3RhYmxlOworcmVnaXN0ZXIgaW50IGNjID0gYzsKK2ludCBjYXNlX29mZnNldDsKKworZm9y
ICg7OykKKyAgeworICByZWdpc3RlciBpbnQgZCA9IG5vZGUtPmYxIHwgKChub2RlLT5mMCAmIGYw
X2NoaG1hc2spIDw8IDE2KTsKKyAgaWYgKGNjID09IGQpIGJyZWFrOworICBpZiAoY2MgPCBkKQor
ICAgIHsKKyAgICBpZiAoKG5vZGUtPmYwICYgZjBfbGVmdGV4aXN0cykgPT0gMCkgcmV0dXJuIC0x
OworICAgIG5vZGUgKys7CisgICAgfQorICBlbHNlCisgICAgeworICAgIHJlZ2lzdGVyIGludCBy
b2Zmc2V0ID0gKG5vZGUtPmYyICYgZjJfcmlnaHRtYXNrKSA+PiBmMl9yaWdodHNoaWZ0OworICAg
IGlmIChyb2Zmc2V0ID09IDApIHJldHVybiAtMTsKKyAgICBub2RlICs9IDEgPDwgKHJvZmZzZXQg
LSAxKTsKKyAgICB9CisgIH0KKworc3dpdGNoICgoKnR5cGVfcHRyID0gKChub2RlLT5mMCAmIGYw
X3R5cGVtYXNrKSA+PiBmMF90eXBlc2hpZnQpKSkKKyAgeworICBjYXNlIHVjcF9DYzoKKyAgY2Fz
ZSB1Y3BfQ2Y6CisgIGNhc2UgdWNwX0NuOgorICBjYXNlIHVjcF9DbzoKKyAgY2FzZSB1Y3BfQ3M6
CisgIHJldHVybiB1Y3BfQzsKKyAgYnJlYWs7CisKKyAgY2FzZSB1Y3BfTGw6CisgIGNhc2UgdWNw
X0x1OgorICBjYXNlX29mZnNldCA9IG5vZGUtPmYyICYgZjJfY2FzZW1hc2s7CisgIGlmICgoY2Fz
ZV9vZmZzZXQgJiAweDAxMDApICE9IDApIGNhc2Vfb2Zmc2V0IHw9IDB4ZmZmZmYwMDA7CisgICpj
YXNlX3B0ciA9IChjYXNlX29mZnNldCA9PSAwKT8gMCA6IGNjICsgY2FzZV9vZmZzZXQ7CisgIHJl
dHVybiB1Y3BfTDsKKworICBjYXNlIHVjcF9MbToKKyAgY2FzZSB1Y3BfTG86CisgIGNhc2UgdWNw
X0x0OgorICAqY2FzZV9wdHIgPSAwOworICByZXR1cm4gdWNwX0w7CisgIGJyZWFrOworCisgIGNh
c2UgdWNwX01jOgorICBjYXNlIHVjcF9NZToKKyAgY2FzZSB1Y3BfTW46CisgIHJldHVybiB1Y3Bf
TTsKKyAgYnJlYWs7CisKKyAgY2FzZSB1Y3BfTmQ6CisgIGNhc2UgdWNwX05sOgorICBjYXNlIHVj
cF9ObzoKKyAgcmV0dXJuIHVjcF9OOworICBicmVhazsKKworICBjYXNlIHVjcF9QYzoKKyAgY2Fz
ZSB1Y3BfUGQ6CisgIGNhc2UgdWNwX1BlOgorICBjYXNlIHVjcF9QZjoKKyAgY2FzZSB1Y3BfUGk6
CisgIGNhc2UgdWNwX1BzOgorICBjYXNlIHVjcF9QbzoKKyAgcmV0dXJuIHVjcF9QOworICBicmVh
azsKKworICBjYXNlIHVjcF9TYzoKKyAgY2FzZSB1Y3BfU2s6CisgIGNhc2UgdWNwX1NtOgorICBj
YXNlIHVjcF9TbzoKKyAgcmV0dXJuIHVjcF9TOworICBicmVhazsKKworICBjYXNlIHVjcF9abDoK
KyAgY2FzZSB1Y3BfWnA6CisgIGNhc2UgdWNwX1pzOgorICByZXR1cm4gdWNwX1o7CisgIGJyZWFr
OworCisgIGRlZmF1bHQ6ICAgICAgICAgLyogIlNob3VsZCBuZXZlciBoYXBwZW4iICovCisgIHJl
dHVybiAtMTsKKyAgYnJlYWs7CisgIH0KK30KKwogLyogRW5kIG9mIHBjcmVfdWNwX2ZpbmRjaGFy
LmMgKi8KSW5kZXg6IHBjcmVncmVwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZWdyZXAuYwkocmV2aXNp
b24gMykKKysrIHBjcmVncmVwLmMJKHJldmlzaW9uIDQpCkBAIC01NSw3ICs1NSw3IEBACiAKIHR5
cGVkZWYgaW50IEJPT0w7CiAKLSNkZWZpbmUgVkVSU0lPTiAiNC4wIDA3LUp1bi0yMDA1IgorI2Rl
ZmluZSBWRVJTSU9OICI0LjEgMDUtU2VwLTIwMDUiCiAjZGVmaW5lIE1BWF9QQVRURVJOX0NPVU5U
IDEwMAogCiAjaWYgQlVGU0laID4gODE5MgpAQCAtNTMxLDkgKzUzMSwxMSBAQAogICAgICAgICB9
CiAKICAgICAgIC8qIE5vdyBwcmludCB0aGUgbWF0Y2hpbmcgbGluZShzKTsgZW5zdXJlIHdlIHNl
dCBoeXBoZW5wZW5kaW5nIGF0IHRoZSBlbmQKLSAgICAgIG9mIHRoZSBmaWxlLiAqLworICAgICAg
b2YgdGhlIGZpbGUgaWYgYW55IGNvbnRleHQgbGluZXMgYXJlIGJlaW5nIG91dHB1dC4gKi8KIAot
ICAgICAgZW5kaHlwaGVucGVuZGluZyA9IFRSVUU7CisgICAgICBpZiAoYWZ0ZXJfY29udGV4dCA+
IDAgfHwgYmVmb3JlX2NvbnRleHQgPiAwKQorICAgICAgICBlbmRoeXBoZW5wZW5kaW5nID0gVFJV
RTsKKwogICAgICAgaWYgKHByaW50bmFtZSAhPSBOVUxMKSBmcHJpbnRmKHN0ZG91dCwgIiVzOiIs
IHByaW50bmFtZSk7CiAgICAgICBpZiAobnVtYmVyKSBmcHJpbnRmKHN0ZG91dCwgIiVkOiIsIGxp
bmVudW1iZXIpOwogCkluZGV4OiBwY3JlX2RmYV9leGVjLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZV9k
ZmFfZXhlYy5jCShyZXZpc2lvbiAzKQorKysgcGNyZV9kZmFfZXhlYy5jCShyZXZpc2lvbiA0KQpA
QCAtNzU4LDcgKzc1OCw3IEBACiAgICAgICBpZiAoY2xlbiA+IDApCiAgICAgICAgIHsKICAgICAg
ICAgaW50IHJxZHR5cGUsIGNhdGVnb3J5OwotICAgICAgICBjYXRlZ29yeSA9IHVjcF9maW5kY2hh
cihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpOworICAgICAgICBjYXRlZ29yeSA9IF9wY3JlX3Vj
cF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpOwogICAgICAgICBycWR0eXBlID0g
Y29kZVsxXTsKICAgICAgICAgaWYgKHJxZHR5cGUgPj0gMTI4KQogICAgICAgICAgIHsKQEAgLTg2
NSw3ICs4NjUsNyBAQAogICAgICAgaWYgKGNvdW50ID4gMCkgeyBBRERfQUNUSVZFKHN0YXRlX29m
ZnNldCArIDMsIDApOyB9CiAgICAgICBpZiAoY2xlbiA+IDApCiAgICAgICAgIHsKLSAgICAgICAg
aW50IGNhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSk7Cisg
ICAgICAgIGludCBjYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZv
dGhlcmNhc2UpOwogICAgICAgICBpbnQgcnFkdHlwZSA9IGNvZGVbMl07CiAgICAgICAgIGlmICgo
ZCA9PSBPUF9QUk9QKSA9PQogICAgICAgICAgICAgKHJxZHR5cGUgPT0gKChycWR0eXBlID49IDEy
OCk/IChjYXRlZ29yeSArIDEyOCkgOiBjaGFydHlwZSkpKQpAQCAtODc4LDcgKzg3OCw3IEBACiAg
ICAgICBjYXNlIE9QX0VYVFVOSV9FWFRSQSArIE9QX1RZUEVNSU5QTFVTOgogICAgICAgY291bnQg
PSBjdXJyZW50X3N0YXRlLT5jb3VudDsgIC8qIEFscmVhZHkgbWF0Y2hlZCAqLwogICAgICAgaWYg
KGNvdW50ID4gMCkgeyBBRERfQUNUSVZFKHN0YXRlX29mZnNldCArIDIsIDApOyB9Ci0gICAgICBp
ZiAoY2xlbiA+IDAgJiYgdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgIT0g
dWNwX00pCisgICAgICBpZiAoY2xlbiA+IDAgJiYgX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZjaGFy
dHlwZSwgJm90aGVyY2FzZSkgIT0gdWNwX00pCiAgICAgICAgIHsKICAgICAgICAgY29uc3QgdXNj
aGFyICpucHRyID0gcHRyICsgY2xlbjsKICAgICAgICAgaW50IG5jb3VudCA9IDA7CkBAIC04ODcs
NyArODg3LDcgQEAKICAgICAgICAgICBpbnQgbmQ7CiAgICAgICAgICAgaW50IG5kbGVuID0gMTsK
ICAgICAgICAgICBHRVRDSEFSTEVOKG5kLCBucHRyLCBuZGxlbik7Ci0gICAgICAgICAgaWYgKHVj
cF9maW5kY2hhcihuZCwgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSAhPSB1Y3BfTSkgYnJlYWs7Cisg
ICAgICAgICAgaWYgKF9wY3JlX3VjcF9maW5kY2hhcihuZCwgJmNoYXJ0eXBlLCAmb3RoZXJjYXNl
KSAhPSB1Y3BfTSkgYnJlYWs7CiAgICAgICAgICAgbmNvdW50Kys7CiAgICAgICAgICAgbnB0ciAr
PSBuZGxlbjsKICAgICAgICAgICB9CkBAIC05MTEsNyArOTExLDcgQEAKICAgICAgIEFERF9BQ1RJ
VkUoc3RhdGVfb2Zmc2V0ICsgMywgMCk7CiAgICAgICBpZiAoY2xlbiA+IDApCiAgICAgICAgIHsK
LSAgICAgICAgaW50IGNhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVy
Y2FzZSk7CisgICAgICAgIGludCBjYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hh
cnR5cGUsICZvdGhlcmNhc2UpOwogICAgICAgICBpbnQgcnFkdHlwZSA9IGNvZGVbMl07CiAgICAg
ICAgIGlmICgoZCA9PSBPUF9QUk9QKSA9PQogICAgICAgICAgICAgKHJxZHR5cGUgPT0gKChycWR0
eXBlID49IDEyOCk/IChjYXRlZ29yeSArIDEyOCkgOiBjaGFydHlwZSkpKQpAQCAtOTMyLDcgKzkz
Miw3IEBACiAgICAgICBRUzI6CiAKICAgICAgIEFERF9BQ1RJVkUoc3RhdGVfb2Zmc2V0ICsgMiwg
MCk7Ci0gICAgICBpZiAoY2xlbiA+IDAgJiYgdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90
aGVyY2FzZSkgIT0gdWNwX00pCisgICAgICBpZiAoY2xlbiA+IDAgJiYgX3BjcmVfdWNwX2ZpbmRj
aGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgIT0gdWNwX00pCiAgICAgICAgIHsKICAgICAg
ICAgY29uc3QgdXNjaGFyICpucHRyID0gcHRyICsgY2xlbjsKICAgICAgICAgaW50IG5jb3VudCA9
IDA7CkBAIC05NDEsNyArOTQxLDcgQEAKICAgICAgICAgICBpbnQgbmQ7CiAgICAgICAgICAgaW50
IG5kbGVuID0gMTsKICAgICAgICAgICBHRVRDSEFSTEVOKG5kLCBucHRyLCBuZGxlbik7Ci0gICAg
ICAgICAgaWYgKHVjcF9maW5kY2hhcihuZCwgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSAhPSB1Y3Bf
TSkgYnJlYWs7CisgICAgICAgICAgaWYgKF9wY3JlX3VjcF9maW5kY2hhcihuZCwgJmNoYXJ0eXBl
LCAmb3RoZXJjYXNlKSAhPSB1Y3BfTSkgYnJlYWs7CiAgICAgICAgICAgbmNvdW50Kys7CiAgICAg
ICAgICAgbnB0ciArPSBuZGxlbjsKICAgICAgICAgICB9CkBAIC05NTgsNyArOTU4LDcgQEAKICAg
ICAgIGNvdW50ID0gY3VycmVudF9zdGF0ZS0+Y291bnQ7ICAvKiBOdW1iZXIgYWxyZWFkeSBtYXRj
aGVkICovCiAgICAgICBpZiAoY2xlbiA+IDApCiAgICAgICAgIHsKLSAgICAgICAgaW50IGNhdGVn
b3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSk7CisgICAgICAgIGlu
dCBjYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2Up
OwogICAgICAgICBpbnQgcnFkdHlwZSA9IGNvZGVbNF07CiAgICAgICAgIGlmICgoZCA9PSBPUF9Q
Uk9QKSA9PQogICAgICAgICAgICAgKHJxZHR5cGUgPT0gKChycWR0eXBlID49IDEyOCk/IChjYXRl
Z29yeSArIDEyOCkgOiBjaGFydHlwZSkpKQpAQCAtOTc4LDcgKzk3OCw3IEBACiAgICAgICBpZiAo
Y29kZXZhbHVlICE9IE9QX0VYVFVOSV9FWFRSQSArIE9QX1RZUEVFWEFDVCkKICAgICAgICAgeyBB
RERfQUNUSVZFKHN0YXRlX29mZnNldCArIDQsIDApOyB9CiAgICAgICBjb3VudCA9IGN1cnJlbnRf
c3RhdGUtPmNvdW50OyAgLyogTnVtYmVyIGFscmVhZHkgbWF0Y2hlZCAqLwotICAgICAgaWYgKGNs
ZW4gPiAwICYmIHVjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpICE9IHVjcF9N
KQorICAgICAgaWYgKGNsZW4gPiAwICYmIF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUs
ICZvdGhlcmNhc2UpICE9IHVjcF9NKQogICAgICAgICB7CiAgICAgICAgIGNvbnN0IHVzY2hhciAq
bnB0ciA9IHB0ciArIGNsZW47CiAgICAgICAgIGludCBuY291bnQgPSAwOwpAQCAtOTg3LDcgKzk4
Nyw3IEBACiAgICAgICAgICAgaW50IG5kOwogICAgICAgICAgIGludCBuZGxlbiA9IDE7CiAgICAg
ICAgICAgR0VUQ0hBUkxFTihuZCwgbnB0ciwgbmRsZW4pOwotICAgICAgICAgIGlmICh1Y3BfZmlu
ZGNoYXIobmQsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgIT0gdWNwX00pIGJyZWFrOworICAgICAg
ICAgIGlmIChfcGNyZV91Y3BfZmluZGNoYXIobmQsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgIT0g
dWNwX00pIGJyZWFrOwogICAgICAgICAgIG5jb3VudCsrOwogICAgICAgICAgIG5wdHIgKz0gbmRs
ZW47CiAgICAgICAgICAgfQpAQCAtMTAyMiwxMSArMTAyMiwxMSBAQAogCiAgICAgICAgICAgLyog
SWYgd2UgaGF2ZSBVbmljb2RlIHByb3BlcnR5IHN1cHBvcnQsIHdlIGNhbiB1c2UgaXQgdG8gdGVz
dCB0aGUKICAgICAgICAgICBvdGhlciBjYXNlIG9mIHRoZSBjaGFyYWN0ZXIsIGlmIHRoZXJlIGlz
IG9uZS4gVGhlIHJlc3VsdCBvZgotICAgICAgICAgIHVjcF9maW5kY2hhcigpIGlzIDwgMCBpZiB0
aGUgY2hhciBpc24ndCBmb3VuZCwgYW5kIG90aGVyY2FzZSBpcworICAgICAgICAgIF9wY3JlX3Vj
cF9maW5kY2hhcigpIGlzIDwgMCBpZiB0aGUgY2hhciBpc24ndCBmb3VuZCwgYW5kIG90aGVyY2Fz
ZSBpcwogICAgICAgICAgIHJldHVybmVkIGFzIHplcm8gaWYgdGhlcmUgaXNuJ3QgYW5vdGhlciBj
YXNlLiAqLwogCiAjaWZkZWYgU1VQUE9SVF9VQ1AKLSAgICAgICAgICBpZiAodWNwX2ZpbmRjaGFy
KGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgPCAwKQorICAgICAgICAgIGlmIChfcGNyZV91Y3Bf
ZmluZGNoYXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSA8IDApCiAjZW5kaWYKICAgICAgICAg
ICAgIG90aGVyY2FzZSA9IC0xOwogCkBAIC0xMDUwLDcgKzEwNTAsNyBAQAogICAgICAgdG8gd2Fp
dCBmb3IgdGhlbSB0byBwYXNzIGJlZm9yZSBjb250aW51aW5nLiAqLwogCiAgICAgICBjYXNlIE9Q
X0VYVFVOSToKLSAgICAgIGlmIChjbGVuID4gMCAmJiB1Y3BfZmluZGNoYXIoYywgJmNoYXJ0eXBl
LCAmb3RoZXJjYXNlKSAhPSB1Y3BfTSkKKyAgICAgIGlmIChjbGVuID4gMCAmJiBfcGNyZV91Y3Bf
ZmluZGNoYXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSAhPSB1Y3BfTSkKICAgICAgICAgewog
ICAgICAgICBjb25zdCB1c2NoYXIgKm5wdHIgPSBwdHIgKyBjbGVuOwogICAgICAgICBpbnQgbmNv
dW50ID0gMDsKQEAgLTEwNTgsNyArMTA1OCw3IEBACiAgICAgICAgICAgewogICAgICAgICAgIGlu
dCBuY2xlbiA9IDE7CiAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBucHRyLCBuY2xlbik7Ci0gICAg
ICAgICAgaWYgKHVjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpICE9IHVjcF9N
KSBicmVhazsKKyAgICAgICAgICBpZiAoX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwg
Jm90aGVyY2FzZSkgIT0gdWNwX00pIGJyZWFrOwogICAgICAgICAgIG5jb3VudCsrOwogICAgICAg
ICAgIG5wdHIgKz0gbmNsZW47CiAgICAgICAgICAgfQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAKICAg
ICAgICAgICBpZiAodXRmOCAmJiBjID49IDEyOCkKICAgICAgICAgICAgIHsKICNpZmRlZiBTVVBQ
T1JUX1VDUAotICAgICAgICAgICAgaWYgKHVjcF9maW5kY2hhcihkLCAmY2hhcnR5cGUsICZvdGhl
cmQpIDwgMCkgb3RoZXJkID0gLTE7CisgICAgICAgICAgICBpZiAoX3BjcmVfdWNwX2ZpbmRjaGFy
KGQsICZjaGFydHlwZSwgJm90aGVyZCkgPCAwKSBvdGhlcmQgPSAtMTsKICNlbmRpZiAgLyogU1VQ
UE9SVF9VQ1AgKi8KICAgICAgICAgICAgIH0KICAgICAgICAgICBlbHNlCkBAIC0xMTIzLDcgKzEx
MjMsNyBAQAogICAgICAgICAgIGlmICh1dGY4ICYmIGMgPj0gMTI4KQogICAgICAgICAgICAgewog
I2lmZGVmIFNVUFBPUlRfVUNQCi0gICAgICAgICAgICBpZiAodWNwX2ZpbmRjaGFyKGMsICZjaGFy
dHlwZSwgJm90aGVyZCkgPCAwKSBvdGhlcmQgPSAtMTsKKyAgICAgICAgICAgIGlmIChfcGNyZV91
Y3BfZmluZGNoYXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJkKSA8IDApIG90aGVyZCA9IC0xOwogI2Vu
ZGlmICAvKiBTVVBQT1JUX1VDUCAqLwogICAgICAgICAgICAgfQogICAgICAgICAgIGVsc2UKQEAg
LTExNTAsNyArMTE1MCw3IEBACiAgICAgICAgICAgaWYgKHV0ZjggJiYgYyA+PSAxMjgpCiAgICAg
ICAgICAgICB7CiAjaWZkZWYgU1VQUE9SVF9VQ1AKLSAgICAgICAgICAgIGlmICh1Y3BfZmluZGNo
YXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJkKSA8IDApIG90aGVyZCA9IC0xOworICAgICAgICAgICAg
aWYgKF9wY3JlX3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmQpIDwgMCkgb3RoZXJk
ID0gLTE7CiAjZW5kaWYgIC8qIFNVUFBPUlRfVUNQICovCiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgZWxzZQpAQCAtMTE4MSw3ICsxMTgxLDcgQEAKICAgICAgICAgICBpZiAodXRmOCAmJiBjID49
IDEyOCkKICAgICAgICAgICAgIHsKICNpZmRlZiBTVVBQT1JUX1VDUAotICAgICAgICAgICAgaWYg
KHVjcF9maW5kY2hhcihkLCAmY2hhcnR5cGUsICZvdGhlcmQpIDwgMCkgb3RoZXJkID0gLTE7Cisg
ICAgICAgICAgICBpZiAoX3BjcmVfdWNwX2ZpbmRjaGFyKGQsICZjaGFydHlwZSwgJm90aGVyZCkg
PCAwKSBvdGhlcmQgPSAtMTsKICNlbmRpZiAgLyogU1VQUE9SVF9VQ1AgKi8KICAgICAgICAgICAg
IH0KICAgICAgICAgICBlbHNlCkBAIC0xNDI0LDcgKzE0MjQsNiBAQAogICAgICAgLyotLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LSovCiAgICAgICBjYXNlIE9QX09OQ0U6CiAgICAgICAgIHsKLSAgICAgICAgY29uc3QgdXNjaGFy
ICplbmRjb2RlOwogICAgICAgICBpbnQgbG9jYWxfb2Zmc2V0c1syXTsKICAgICAgICAgaW50IGxv
Y2FsX3dvcmtzcGFjZVsxMDAwXTsKIApAQCAtMTQ0Niw3ICsxNDQ1LDYgQEAKICAgICAgICAgICBj
b25zdCB1c2NoYXIgKmVuZF9zdWJwYXR0ZXJuID0gY29kZTsKICAgICAgICAgICBpbnQgY2hhcmNv
dW50ID0gbG9jYWxfb2Zmc2V0c1sxXSAtIGxvY2FsX29mZnNldHNbMF07CiAgICAgICAgICAgaW50
IG5leHRfc3RhdGVfb2Zmc2V0LCByZXBlYXRfc3RhdGVfb2Zmc2V0OwotICAgICAgICAgIEJPT0wg
aXNfcmVwZWF0ZWQ7CiAKICAgICAgICAgICBkbyB7IGVuZF9zdWJwYXR0ZXJuICs9IEdFVChlbmRf
c3VicGF0dGVybiwgMSk7IH0KICAgICAgICAgICAgIHdoaWxlICgqZW5kX3N1YnBhdHRlcm4gPT0g
T1BfQUxUKTsKQEAgLTE2MTMsNyArMTYxMSw3IEBACiAgICAgICAgICAgICAgICAgIDwgLTEgPT4g
c29tZSBraW5kIG9mIHVuZXhwZWN0ZWQgcHJvYmxlbQogKi8KIAotRVhQT1JUIGludAorUENSRV9F
WFBPUlQgaW50CiBwY3JlX2RmYV9leGVjKGNvbnN0IHBjcmUgKmFyZ3VtZW50X3JlLCBjb25zdCBw
Y3JlX2V4dHJhICpleHRyYV9kYXRhLAogICBjb25zdCBjaGFyICpzdWJqZWN0LCBpbnQgbGVuZ3Ro
LCBpbnQgc3RhcnRfb2Zmc2V0LCBpbnQgb3B0aW9ucywgaW50ICpvZmZzZXRzLAogICBpbnQgb2Zm
c2V0Y291bnQsIGludCAqd29ya3NwYWNlLCBpbnQgd3Njb3VudCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12122</attachid>
            <date>2006-12-30 08:45:05 -0800</date>
            <delta_ts>2006-12-30 11:27:18 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-12036-v1.diff</filename>
            <type>text/plain</type>
            <size>63251</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDg2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDMgQEAKKzIwMDYtMTItMjkgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGVtYmVkZGVkIHBjcmUgbGlicmFyeSBmcm9tIHZl
cnNpb24gNi4yIHRvIDYuNC4gIENoYW5nZXMgZnJvbSBwY3JlIDYuMiB0byA2LjMKKyAgICAgICAg
ZGlkIG5vdCBpbmNsdWRlIGFueSBmaWxlcyBpbiBKYXZhU2NyaXB0Q29yZS9wY3JlLgorCisgICAg
ICAgIEFsbCBjaGFuZ2VzIGluY2x1ZGUgcmVuYW1pbmcgRVhQT1JUIHRvIFBDUkVfRVhQT1JULCBy
ZW5hbWluZyBvZiB1Y3BfZmluZGNoYXIoKSB0bworICAgICAgICBfcGNyZV91Y3BfZmluZGNoYXIo
KSwgb3IgY29tbWVudCBjaGFuZ2VzLiAgQWRkaXRpb25hbCBjaGFuZ2VzIG5vdGVkIGJlbG93Lgor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvajogVXBkYXRlZCBzb3VyY2UgZmlsZSBsaXN0LgorICAgICAgICAqIEphdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IFJlbmFtZWQgcGNyZV9wcmludGlu
dC5jIHRvIHBjcmVfcHJpbnRpbnQuc3JjCisgICAgICAgIGFuZCBjaGFuZ2VkIGl0IGZyb20gYSBz
b3VyY2UgZmlsZSB0byBhIGhlYWRlciBmaWxlLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlU291
cmNlcy5ia2w6IFVwZGF0ZWQgc291cmNlIGZpbGUgbGlzdC4KKyAgICAgICAgKiBwY3JlL0NNYWtl
TGlzdHMudHh0OiBVcGRhdGVkIHNvdXJjZSBmaWxlIGxpc3QuCisgICAgICAgICogcGNyZS9wY3Jl
LWNvbmZpZy5oOgorICAgICAgICAqIHBjcmUvcGNyZS5oOiBVcGRhdGVkIHZlcnNpb24uCisgICAg
ICAgICogcGNyZS9wY3JlLnByaTogVXBkYXRlZCBzb3VyY2UgZmlsZSBsaXN0LgorICAgICAgICAq
IHBjcmUvcGNyZV9jb21waWxlLmM6IEluY2x1ZGUgcGNyZV9wcmludGludC5zcmMgI2lmIERFQlVH
LgorICAgICAgICAocGNyZV9jb21waWxlMik6CisgICAgICAgICogcGNyZS9wY3JlX2NvbmZpZy5j
OgorICAgICAgICAqIHBjcmUvcGNyZV9leGVjLmM6CisgICAgICAgIChtYXRjaCk6CisgICAgICAg
ICogcGNyZS9wY3JlX2Z1bGxpbmZvLmM6CisgICAgICAgICogcGNyZS9wY3JlX2luZm8uYzoKKyAg
ICAgICAgKiBwY3JlL3BjcmVfaW50ZXJuYWwuaDogQWRkZWQgaGVhZGVyIGd1YXJkLiAgUmVtb3Zl
ZCBleHBvcnQgb2YgX3BjcmVfcHJpbnRpbnQoKS4KKyAgICAgICAgKiBwY3JlL3BjcmVfb3JkMnV0
ZjguYzoKKyAgICAgICAgKiBwY3JlL3BjcmVfcHJpbnRpbnQuYzogUmVuYW1lZCB0byBwY3JlX3By
aW50aW50LnNyYy4KKyAgICAgICAgKiBwY3JlL3BjcmVfcHJpbnRpbnQuc3JjOiBBZGRlZC4gIFJl
bmFtZWQgX3BjcmVfcHJpbnRpbnQoKSB0byBwY3JlX3ByaW50aW50KCkuCisgICAgICAgICogcGNy
ZS9wY3JlX3JlZmNvdW50LmM6CisgICAgICAgICogcGNyZS9wY3JlX3N0dWR5LmM6CisgICAgICAg
ICogcGNyZS9wY3JlX3RhYmxlcy5jOgorICAgICAgICAqIHBjcmUvcGNyZV90cnlfZmxpcHBlZC5j
OgorICAgICAgICAqIHBjcmUvcGNyZV91Y3BfZmluZGNoYXIuYzogQWRkZWQgY29udGVudHMgb2Yg
dWNwX2ZpbmRjaGFyLmMuCisgICAgICAgICogcGNyZS9wY3JlX3ZlcnNpb24uYzoKKyAgICAgICAg
KiBwY3JlL3BjcmVfeGNsYXNzLmM6CisgICAgICAgIChfcGNyZV94Y2xhc3MpOgorICAgICAgICAq
IHBjcmUvdWNwLmg6IFJlbW92ZWQgZXhwb3J0IG9mIHVjcF9maW5kY2hhcigpLgorICAgICAgICAq
IHBjcmUvdWNwX2ZpbmRjaGFyLmM6IFJlbW92ZWQuICBDb250ZW50cyBtb3ZlZCB0byBwY3JlX3Vj
cF9maW5kY2hhci5jLgorCiAyMDA2LTEyLTI5ICBEYXZpZCBLaWx6ZXIgIDxkZGtpbHplckB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmLgpJbmRleDogSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMuYmtsCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcg
KzYwLDYgQEAKICAgICAgICAgcGNyZS9wY3JlX2luZm8uYwogICAgICAgICBwY3JlL3BjcmVfbWFr
ZXRhYmxlcy5jCiAgICAgICAgIHBjcmUvcGNyZV9vcmQydXRmOC5jCi0gICAgICAgIHBjcmUvcGNy
ZV9wcmludGludC5jCiAgICAgICAgIHBjcmUvcGNyZV9yZWZjb3VudC5jCiAgICAgICAgIHBjcmUv
cGNyZV9zdHVkeS5jCiAgICAgICAgIHBjcmUvcGNyZV90YWJsZXMuYwpAQCAtNjgsNyArNjcsNiBA
QAogICAgICAgICBwY3JlL3BjcmVfdWNwX2ZpbmRjaGFyLmMKICAgICAgICAgcGNyZS9wY3JlX3Zl
cnNpb24uYwogICAgICAgICBwY3JlL3BjcmVfeGNsYXNzLmMKLSAgICAgICAgcGNyZS91Y3BfZmlu
ZGNoYXIuYwogICAgIDwvc2V0PgogCiAgICAgPHNldCBhcHBlbmQ9IjEiIHZhcj0iSlNDT1JFX1NP
VVJDRVNfQklORElOR1MiPgpJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2oJKHdv
cmtpbmcgY29weSkKQEAgLTU2NSw3ICs1NjUsNyBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxG
aWxlCi0JCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlxwY3JlXHBjcmVfcHJpbnRpbnQuYyIKKwkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXC4uXHBjcmVccGNyZV9wcmludGludC5zcmMiCiAJCQkJPgogCQkJPC9G
aWxlPgogCQkJPEZpbGUKQEAgLTYwMSwxMCArNjAxLDYgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJ
CQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVx1Y3BfZmluZGNoYXIuYyIKLQkJ
CQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cLi5ccGNyZVx1
Y3BpbnRlcm5hbC5oIgogCQkJCT4KIAkJCTwvRmlsZT4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yNTYsNyArMjU2LDcgQEAKIAkJOTNF
MjZCRkUwOEIxNTFENDAwRjg1MjI2IC8qIHVjcGludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0UyNkJGQzA4QjE1MUQ0MDBGODUyMjYgLyog
dWNwaW50ZXJuYWwuaCAqLzsgfTsKIAkJOTNFMjZDMTMwOEIxNTIzRDAwRjg1MjI2IC8qIHVjcHRh
YmxlLmMgaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0Uy
NkMwRDA4QjE1MjA5MDBGODUyMjYgLyogdWNwdGFibGUuYyAqLzsgfTsKIAkJOTNFMjZDRjcwOEIy
OUExQzAwRjg1MjI2IC8qIHBjcmVfZ2V0LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5M0UyNkNGNjA4QjI5QTFDMDBGODUyMjYgLyogcGNyZV9nZXQuYyAq
LzsgfTsKLQkJOTNFMjZEREMwOEIyQTRGNDAwRjg1MjI2IC8qIHBjcmVfcHJpbnRpbnQuYyBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2RERCMDhCMkE0
RjQwMEY4NTIyNiAvKiBwY3JlX3ByaW50aW50LmMgKi87IH07CisJCTkzRTI2RERDMDhCMkE0RjQw
MEY4NTIyNiAvKiBwY3JlX3ByaW50aW50LnNyYyBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkzRTI2RERCMDhCMkE0RjQwMEY4NTIyNiAvKiBwY3JlX3ByaW50
aW50LnNyYyAqLzsgfTsKIAkJOTNGMEIzQUIwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YwQjNBOTA5
QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmNwcCAqLzsgfTsKIAkJOTNGMEIzQUMwOUJCNERDMDAw
NjhGQ0UzIC8qIFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNGMEIzQUEwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5oICovOyB9OwogCQlC
Q0Y2NTU1OTBBMjA0OTcxMDAzOEExOTQgLyogTWF0aEV4dHJhcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNGNjU1M0IwQTIwNDhERTAwMzhBMTk0IC8q
IE1hdGhFeHRyYXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtNTk1LDcgKzU5NSw3IEBACiAJCTkzRTI2QkZDMDhCMTUxRDQwMEY4NTIyNiAvKiB1
Y3BpbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSB1Y3BpbnRlcm5hbC5oOyBwYXRoID0gcGNyZS91Y3BpbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IH07CiAJCTkzRTI2QzBEMDhCMTUyMDkwMEY4
NTIyNiAvKiB1Y3B0YWJsZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4cGxpY2l0
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRo
ID0gNDsgbmFtZSA9IHVjcHRhYmxlLmM7IHBhdGggPSBwY3JlL3VjcHRhYmxlLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKIAkJOTNFMjZDRjYwOEIyOUExQzAwRjg1
MjI2IC8qIHBjcmVfZ2V0LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuYzsgbmFtZSA9IHBjcmVfZ2V0LmM7IHBhdGggPSBwY3JlL3BjcmVfZ2V0LmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKLQkJOTNFMjZEREIwOEIyQTRGNDAwRjg1
MjI2IC8qIHBjcmVfcHJpbnRpbnQuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gcGNyZV9wcmludGludC5jOyBwYXRoID0gcGNyZS9wY3JlX3ByaW50
aW50LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgfTsKKwkJOTNFMjZE
REIwOEIyQTRGNDAwRjg1MjI2IC8qIHBjcmVfcHJpbnRpbnQuc3JjICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwY3JlX3ByaW50aW50LnNyYzsgcGF0
aCA9IHBjcmUvcGNyZV9wcmludGludC5zcmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldp
ZHRoID0gODsgfTsKIAkJOTNGMEIzQTkwOUJCNERDMDAwNjhGQ0UzIC8qIFBhcnNlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQYXJzZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5M0YwQjNBQTA5QkI0REMwMDA2OEZDRTMgLyogUGFyc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5M0YxOTgxQTA4MjQ1QUFFMDAxRTlBQkMgLyoga2V5d29yZHMudGFi
bGUgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50
V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBrZXl3b3Jkcy50YWJs
ZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB9OwpAQCAtMTAyNCw3ICsx
MDI0LDcgQEAKIAkJCQk5MzA3NTREMTA4QjBGNzYyMDBBQjMwNTYgLyogcGNyZV9nbG9iYWxzLmMg
Ki8sCiAJCQkJOTNFMjZCRTUwOEIxNTE3MTAwRjg1MjI2IC8qIHBjcmVfaW50ZXJuYWwuaCAqLywK
IAkJCQk5M0UyNkJDOTA4QjE1MTE5MDBGODUyMjYgLyogcGNyZV9vcmQydXRmOC5jICovLAotCQkJ
CTkzRTI2RERCMDhCMkE0RjQwMEY4NTIyNiAvKiBwY3JlX3ByaW50aW50LmMgKi8sCisJCQkJOTNF
MjZEREIwOEIyQTRGNDAwRjg1MjI2IC8qIHBjcmVfcHJpbnRpbnQuc3JjICovLAogCQkJCTkzMDc1
NENFMDhCMEY3NDUwMEFCMzA1NiAvKiBwY3JlX3RhYmxlcy5jICovLAogCQkJCTkzRTI2QkQwMDhC
MTUxMzgwMEY4NTIyNiAvKiBwY3JlX3RyeV9mbGlwcGVkLmMgKi8sCiAJCQkJOTNFMjZCQ0QwOEIx
NTEyNjAwRjg1MjI2IC8qIHBjcmVfdWNwX2ZpbmRjaGFyLmMgKi8sCkBAIC0xMTQ5LDYgKzExNDks
NyBAQAogCQkJCTkzMkZDMTFEMDgyNEE2QTMwMDVCM0M3NSAvKiBjcmVhdGVfaGFzaF90YWJsZSBp
biBIZWFkZXJzICovLAogCQkJCTY1NjIxRTZFMDg5RTg1OTcwMDc2MEYzNSAvKiBwcm9wZXJ0eV9z
bG90LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0UyNkJFNjA4QjE1MTcxMDBGODUyMjYgLyogcGNy
ZV9pbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTNFMjZEREMwOEIyQTRGNDAwRjg1MjI2
IC8qIHBjcmVfcHJpbnRpbnQuc3JjIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFMjZCRkQwOEIxNTFE
NDAwRjg1MjI2IC8qIHVjcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFMjZCRkUwOEIxNTFENDAw
Rjg1MjI2IC8qIHVjcGludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0UyNkMxMzA4QjE1
MjNEMDBGODUyMjYgLyogdWNwdGFibGUuYyBpbiBIZWFkZXJzICovLApAQCAtMTQ4Nyw3ICsxNDg4
LDYgQEAKIAkJCQk5M0UyNkJEMTA4QjE1MTM4MDBGODUyMjYgLyogcGNyZV90cnlfZmxpcHBlZC5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJOTNFMjZCRDQwOEIxNTE0MTAwRjg1MjI2IC8qIHBjcmVfeGNs
YXNzLmMgaW4gU291cmNlcyAqLywKIAkJCQk5M0UyNkNGNzA4QjI5QTFDMDBGODUyMjYgLyogcGNy
ZV9nZXQuYyBpbiBTb3VyY2VzICovLAotCQkJCTkzRTI2RERDMDhCMkE0RjQwMEY4NTIyNiAvKiBw
Y3JlX3ByaW50aW50LmMgaW4gU291cmNlcyAqLywKIAkJCQk2NUUyMTdCRTA4RTdFRUNDMDAyM0U1
RjYgLyogQXNzZXJ0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NUUyMTdCRjA4RTdFRUND
MDAyM0U1RjYgLyogRmFzdE1hbGxvYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk2NTQxQkQ3NDA4
RTgwQTE3MDAyQ0JFRTcgLyogVENTeXN0ZW1BbGxvYy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IEphdmFTY3JpcHRDb3JlL3BjcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNj
cmlwdENvcmUvcGNyZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2Ny
aXB0Q29yZS9wY3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0yMSw3ICsyMSw2
IEBAIHNldChwY3JlLXVuaXR5X0xJQl9TUkNTCiAgICAke3BjcmUtdW5pdHlfTElCX1NSQ1N9CiAg
ICAke0NNQUtFX0NVUlJFTlRfQklOQVJZX0RJUn0vY2hhcnRhYmxlcy5jCiAgICBwY3JlX2dldC5j
Ci0gICBwY3JlX3ByaW50aW50LmMKICAgIHBjcmVfcmVmY291bnQuYwogICAgcGNyZV91Y3BfZmlu
ZGNoYXIuYwogICAgcGNyZV9jb21waWxlLmMKQEAgLTMyLDcgKzMxLDYgQEAgc2V0KHBjcmUtdW5p
dHlfTElCX1NSQ1MKICAgIHBjcmVfc3R1ZHkuYwogICAgcGNyZV9leGVjLmMKICAgIHBjcmVfeGNs
YXNzLmMKLSAgIHVjcF9maW5kY2hhci5jCiAgICBwY3JlX3RhYmxlcy5jCiAgICBwY3JlX21ha2V0
YWJsZXMuYwogICAgcGNyZV90cnlfZmxpcHBlZC5jCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3Jl
L3BjcmUtY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLWNv
bmZpZy5oCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZS1jb25m
aWcuaAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNyBAQCB0aGlzIGNhbiBiZSBkb25lIHZp
YSAtLWVuYWJsZS1lYmNkaWMuICovCiBiZWZvcmUgdGhlIGRlZmluaXRpb24gb2YgYW4gZXhwb3J0
ZWQgZnVuY3Rpb24sIGRlZmluZSB0aGlzIG1hY3JvIHRvIGNvbnRhaW4gdGhlCiByZWxldmFudCBt
YWdpYy4gSXQgYXBlYXJzIGF0IHRoZSBzdGFydCBvZiBldmVyeSBleHBvcnRlZCBmdW5jdGlvbi4g
Ki8KIAotI2RlZmluZSBFWFBPUlQKKyNkZWZpbmUgUENSRV9FWFBPUlQKIAogLyogRGVmaW5lIHRv
IGVtcHR5IGlmIHRoZSAiY29uc3QiIGtleXdvcmQgZG9lcyBub3Qgd29yay4gKi8KIApJbmRleDog
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlLmgJKHJldmlzaW9uIDE4NDg2KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3Jl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDggKzY1LDggQEAgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAjZGVmaW5lIHBjcmVfdmVyc2lvbiBranNfcGNyZV92ZXJzaW9uCiAKICNkZWZpbmUg
UENSRV9NQUpPUiAgICAgICAgICA2Ci0jZGVmaW5lIFBDUkVfTUlOT1IgICAgICAgICAgMgotI2Rl
ZmluZSBQQ1JFX0RBVEUgICAgICAgICAgIDAxLUF1Zy0yMDA1CisjZGVmaW5lIFBDUkVfTUlOT1Ig
ICAgICAgICAgNAorI2RlZmluZSBQQ1JFX0RBVEUgICAgICAgICAgIDA1LVNlcC0yMDA1CiAKICNk
ZWZpbmUgUENSRV9VVEYxNiAgICAgICAgICAxCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUv
cGNyZS5wcmkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLnByaQkocmV2
aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmUucHJpCSh3b3JraW5nIGNv
cHkpCkBAIC00LDcgKzQsNiBAQCBJTkNMVURFUEFUSCArPSAkJFBXRAogCiBTT1VSQ0VTICs9IFwK
ICAgICBwY3JlX2dldC5jIFwKLSAgICBwY3JlX3ByaW50aW50LmMgXAogICAgIHBjcmVfcmVmY291
bnQuYyBcCiAgICAgcGNyZV91Y3BfZmluZGNoYXIuYyBcCiAgICAgcGNyZV9jb21waWxlLmMgXApA
QCAtMTUsNyArMTQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBwY3JlX3N0dWR5LmMgXAogICAgIHBj
cmVfZXhlYy5jIFwKICAgICBwY3JlX3hjbGFzcy5jIFwKLSAgICB1Y3BfZmluZGNoYXIuYyBcCiAg
ICAgcGNyZV90YWJsZXMuYyBcCiAgICAgcGNyZV9tYWtldGFibGVzLmMgXAogICAgIHBjcmVfdHJ5
X2ZsaXBwZWQuYyBcCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmMJKHJldmlzaW9u
IDE4NDg2KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuYwkod29ya2luZyBj
b3B5KQpAQCAtNTYsNiArNTYsMTUgQEAgc3VwcG9ydGluZyBpbnRlcm5hbCBmdW5jdGlvbnMgdGhh
dCBhcmUgbgogI2VuZGlmCiAKIAorLyogV2hlbiBERUJVRyBpcyBkZWZpbmVkLCB3ZSBuZWVkIHRo
ZSBwY3JlX3ByaW50aW50KCkgZnVuY3Rpb24sIHdoaWNoIGlzIGFsc28KK3VzZWQgYnkgcGNyZXRl
c3QuIERFQlVHIGlzIG5vdCBkZWZpbmVkIHdoZW4gYnVpbGRpbmcgYSBwcm9kdWN0aW9uIGxpYnJh
cnkuICovCisKKyNpZmRlZiBERUJVRworI2luY2x1ZGUgInBjcmVfcHJpbnRpbnQuc3JjIgorI2Vu
ZGlmCisKKworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKgogKiAgICAgIENvZGUgcGFyYW1ldGVycyBhbmQgc3RhdGljIHRhYmxlcyAgICAgICAgICoK
ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCkBAIC0z
ODkzLDcgKzM5MDIsNyBAQCBSZXR1cm5zOiAgICAgICAgcG9pbnRlciB0byBjb21waWxlZCBkYXRh
CiAgICAgICAgICAgICAgICAgd2l0aCBlcnJvcnB0ciBhbmQgZXJyb3JvZmZzZXQgc2V0CiAqLwog
Ci1FWFBPUlQgcGNyZSAqCitQQ1JFX0VYUE9SVCBwY3JlICoKIHBjcmVfY29tcGlsZShjb25zdCBw
Y3JlX2NoYXIgKnBhdHRlcm4sIGludCBvcHRpb25zLCBjb25zdCBjaGFyICoqZXJyb3JwdHIsCiAg
IGludCAqZXJyb3JvZmZzZXQsIGNvbnN0IHVuc2lnbmVkIGNoYXIgKnRhYmxlcykKIHsKQEAgLTM5
MDEsNyArMzkxMCw3IEBAIHJldHVybiBwY3JlX2NvbXBpbGUyKHBhdHRlcm4sIG9wdGlvbnMsIE4K
IH0KIAogCi1FWFBPUlQgcGNyZSAqCitQQ1JFX0VYUE9SVCBwY3JlICoKIHBjcmVfY29tcGlsZTIo
Y29uc3QgcGNyZV9jaGFyICpwYXR0ZXJuLCBpbnQgb3B0aW9ucywgaW50ICplcnJvcmNvZGVwdHIs
CiAgIGNvbnN0IGNoYXIgKiplcnJvcnB0ciwgaW50ICplcnJvcm9mZnNldCwgY29uc3QgdW5zaWdu
ZWQgY2hhciAqdGFibGVzKQogewpAQCAtNTEwMCw3ICs1MTA5LDggQEAgaWYgKHJlcWJ5dGUgPj0g
MCAmJgogICAgIH0KICAgfQogCi0vKiBQcmludCBvdXQgdGhlIGNvbXBpbGVkIGRhdGEgZm9yIGRl
YnVnZ2luZyAqLworLyogUHJpbnQgb3V0IHRoZSBjb21waWxlZCBkYXRhIGlmIGRlYnVnZ2luZyBp
cyBlbmFibGVkLiBUaGlzIGlzIG5ldmVyIHRoZQorY2FzZSB3aGVuIGJ1aWxkaW5nIGEgcHJvZHVj
dGlvbiBsaWJyYXJ5LiAqLwogCiAjaWZkZWYgREVCVUcKIApAQCAtNTEzOCw3ICs1MTQ4LDcgQEAg
aWYgKChyZS0+b3B0aW9ucyAmIFBDUkVfUkVRQ0hTRVQpICE9IDApCiAgICAgZWxzZSBwcmludGYo
IlJlcSBjaGFyID0gXFx4JTAyeCVzXG4iLCBjaCwgY2FzZWxlc3MpOwogICB9CiAKLV9wY3JlX3By
aW50aW50KHJlLCBzdGRvdXQpOworcGNyZV9wcmludGludChyZSwgc3Rkb3V0KTsKIAogLyogVGhp
cyBjaGVjayBpcyBkb25lIGhlcmUgaW4gdGhlIGRlYnVnZ2luZyBjYXNlIHNvIHRoYXQgdGhlIGNv
ZGUgdGhhdAogd2FzIGNvbXBpbGVkIGNhbiBiZSBzZWVuLiAqLwpJbmRleDogSmF2YVNjcmlwdENv
cmUvcGNyZS9wY3JlX2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUv
cGNyZV9jb25maWcuYwkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3Bj
cmVfY29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgQXJndW1lbnRzOgog
UmV0dXJuczogICAgICAgICAgIDAgaWYgZGF0YSByZXR1cm5lZCwgbmVnYXRpdmUgb24gZXJyb3IK
ICovCiAKLUVYUE9SVCBpbnQKK1BDUkVfRVhQT1JUIGludAogcGNyZV9jb25maWcoaW50IHdoYXQs
IHZvaWQgKndoZXJlKQogewogc3dpdGNoICh3aGF0KQpJbmRleDogSmF2YVNjcmlwdENvcmUvcGNy
ZS9wY3JlX2V4ZWMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZXhl
Yy5jCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9leGVjLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTEzNjQsNyArMTM2NCw3IEBAIGZvciAoOzspCiAgICAgICB7CiAg
ICAgICBpbnQgY2hhcnR5cGUsIHJxZHR5cGU7CiAgICAgICBpbnQgb3RoZXJjYXNlOwotICAgICAg
aW50IGNhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSk7Cisg
ICAgICBpbnQgY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywgJmNoYXJ0eXBlLCAmb3Ro
ZXJjYXNlKTsKIAogICAgICAgcnFkdHlwZSA9ICooKytlY29kZSk7CiAgICAgICBlY29kZSsrOwpA
QCAtMTM5MSw3ICsxMzkxLDcgQEAgZm9yICg7OykKICAgICAgIHsKICAgICAgIGludCBjaGFydHlw
ZTsKICAgICAgIGludCBvdGhlcmNhc2U7Ci0gICAgICBpbnQgY2F0ZWdvcnkgPSB1Y3BfZmluZGNo
YXIoYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKTsKKyAgICAgIGludCBjYXRlZ29yeSA9IF9wY3Jl
X3VjcF9maW5kY2hhcihjLCAmY2hhcnR5cGUsICZvdGhlcmNhc2UpOwogICAgICAgaWYgKGNhdGVn
b3J5ID09IHVjcF9NKSBSUkVUVVJOKE1BVENIX05PTUFUQ0gpOwogICAgICAgd2hpbGUgKGVwdHIg
PCBtZC0+ZW5kX3N1YmplY3QpCiAgICAgICAgIHsKQEAgLTE0MDAsNyArMTQwMCw3IEBAIGZvciAo
OzspCiAgICAgICAgICAgewogICAgICAgICAgIEdFVENIQVJMRU4oYywgZXB0ciwgbGVuKTsKICAg
ICAgICAgICB9Ci0gICAgICAgIGNhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwg
Jm90aGVyY2FzZSk7CisgICAgICAgIGNhdGVnb3J5ID0gX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZj
aGFydHlwZSwgJm90aGVyY2FzZSk7CiAgICAgICAgIGlmIChjYXRlZ29yeSAhPSB1Y3BfTSkgYnJl
YWs7CiAgICAgICAgIGVwdHIgKz0gbGVuOwogICAgICAgICB9CkBAIC0xODkxLDcgKzE4OTEsNyBA
QCBmb3IgKDs7KQogICAgICAgICBlY29kZSArPSBsZW5ndGg7CiAKICAgICAgICAgLyogSWYgd2Ug
aGF2ZSBVbmljb2RlIHByb3BlcnR5IHN1cHBvcnQsIHdlIGNhbiB1c2UgaXQgdG8gdGVzdCB0aGUg
b3RoZXIKLSAgICAgICAgY2FzZSBvZiB0aGUgY2hhcmFjdGVyLCBpZiB0aGVyZSBpcyBvbmUuIFRo
ZSByZXN1bHQgb2YgdWNwX2ZpbmRjaGFyKCkgaXMKKyAgICAgICAgY2FzZSBvZiB0aGUgY2hhcmFj
dGVyLCBpZiB0aGVyZSBpcyBvbmUuIFRoZSByZXN1bHQgb2YgX3BjcmVfdWNwX2ZpbmRjaGFyKCkg
aXMKICAgICAgICAgPCAwIGlmIHRoZSBjaGFyIGlzbid0IGZvdW5kLCBhbmQgb3RoZXJjYXNlIGlz
IHJldHVybmVkIGFzIHplcm8gaWYgdGhlcmUKICAgICAgICAgaXNuJ3Qgb25lLiAqLwogCkBAIC0x
OTAwLDcgKzE5MDAsNyBAQCBmb3IgKDs7KQogI2lmZGVmIFNVUFBPUlRfVUNQCiAgICAgICAgICAg
aW50IGNoYXJ0eXBlOwogICAgICAgICAgIGludCBvdGhlcmNhc2U7Ci0gICAgICAgICAgaWYgKHVj
cF9maW5kY2hhcihmYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSA8IDAgfHwgZGMgIT0gb3RoZXJj
YXNlKQorICAgICAgICAgIGlmIChfcGNyZV91Y3BfZmluZGNoYXIoZmMsICZjaGFydHlwZSwgJm90
aGVyY2FzZSkgPCAwIHx8IGRjICE9IG90aGVyY2FzZSkKICNlbmRpZgogICAgICAgICAgICAgUlJF
VFVSTihNQVRDSF9OT01BVENIKTsKICAgICAgICAgICB9CkBAIC0xOTYzLDcgKzE5NjMsNyBAQCBm
b3IgKDs7KQogI2lmZGVmIFNVUFBPUlRfVUNQCiAgICAgICAgIGludCBvdGhlcmNhc2U7CiAgICAg
ICAgIGludCBjaGFydHlwZTsKLSAgICAgICAgaWYgKChpbXMgJiBQQ1JFX0NBU0VMRVNTKSA9PSAw
IHx8IHVjcF9maW5kY2hhcihmYywgJmNoYXJ0eXBlLCAmb3RoZXJjYXNlKSA8IDApCisgICAgICAg
IGlmICgoaW1zICYgUENSRV9DQVNFTEVTUykgPT0gMCB8fCBfcGNyZV91Y3BfZmluZGNoYXIoZmMs
ICZjaGFydHlwZSwgJm90aGVyY2FzZSkgPCAwKQogICAgICAgICAgIG90aGVyY2FzZSA9IC0xOyAv
KiBHdWFyYW50ZWVkIHRvIG5vdCBtYXRjaCBhbnkgY2hhcmFjdGVyICovCiAjZW5kaWYgIC8qIFNV
UFBPUlRfVUNQICovCiAKQEAgLTIwNzgsNyArMjA3OCw3IEBAIGZvciAoOzspCiAgICAgICAgIGlu
dCBvdGhlcmNhc2U7CiAgICAgICAgIGludCBjaGFydHlwZTsKICAgICAgICAgaWYgKChpbXMgJiBQ
Q1JFX0NBU0VMRVNTKSAhPSAwICYmCi0gICAgICAgICAgICAgdWNwX2ZpbmRjaGFyKGZjLCAmY2hh
cnR5cGUsICZvdGhlcmNhc2UpID49IDAgJiYKKyAgICAgICAgICAgICBfcGNyZV91Y3BfZmluZGNo
YXIoZmMsICZjaGFydHlwZSwgJm90aGVyY2FzZSkgPj0gMCAmJgogICAgICAgICAgICAgIG90aGVy
Y2FzZSA+IDApCiAgICAgICAgICAgb2NsZW5ndGggPSBfcGNyZV9vcmQydXRmOChvdGhlcmNhc2Us
IG9jY2hhcnMpOwogI2VuZGlmICAvKiBTVVBQT1JUX1VDUCAqLwpAQCAtMjYwNCw3ICsyNjA0LDcg
QEAgZm9yICg7OykKICAgICAgICAgZm9yIChpID0gMTsgaSA8PSBtaW47IGkrKykKICAgICAgICAg
ICB7CiAgICAgICAgICAgR0VUQ0hBUklOQyhjLCBlcHRyKTsKLSAgICAgICAgICBwcm9wX2NhdGVn
b3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2UpOwor
ICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywgJnByb3BfY2hh
cnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgaWYgKCgqcHJvcF90ZXN0X3Zhcmlh
YmxlID09IHByb3BfdGVzdF9hZ2FpbnN0KSA9PSBwcm9wX2ZhaWxfcmVzdWx0KQogICAgICAgICAg
ICAgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKICAgICAgICAgICB9CkBAIC0yNjE4LDcgKzI2MTgs
NyBAQCBmb3IgKDs7KQogICAgICAgICBmb3IgKGkgPSAxOyBpIDw9IG1pbjsgaSsrKQogICAgICAg
ICAgIHsKICAgICAgICAgICBHRVRDSEFSSU5DVEVTVChjLCBlcHRyKTsKLSAgICAgICAgICBwcm9w
X2NhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNh
c2UpOworICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywgJnBy
b3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgaWYgKHByb3BfY2F0ZWdv
cnkgPT0gdWNwX00pIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CiAgICAgICAgICAgd2hpbGUgKGVw
dHIgPCBtZC0+ZW5kX3N1YmplY3QpCiAgICAgICAgICAgICB7CkBAIC0yNjI3LDcgKzI2MjcsNyBA
QCBmb3IgKDs7KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEdFVENIQVJMRU4oYywg
ZXB0ciwgbGVuKTsKICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvcF9jYXRlZ29yeSA9
IHVjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKKyAgICAg
ICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywgJnByb3BfY2hhcnR5
cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgICBpZiAocHJvcF9jYXRlZ29yeSAhPSB1
Y3BfTSkgYnJlYWs7CiAgICAgICAgICAgICBlcHRyICs9IGxlbjsKICAgICAgICAgICAgIH0KQEAg
LTI3OTcsNyArMjc5Nyw3IEBAIGZvciAoOzspCiAgICAgICAgICAgaWYgKHJyYyAhPSBNQVRDSF9O
T01BVENIKSBSUkVUVVJOKHJyYyk7CiAgICAgICAgICAgaWYgKGZpID49IG1heCB8fCBlcHRyID49
IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9OT01BVENIKTsKICAgICAgICAgICBHRVRD
SEFSSU5DKGMsIGVwdHIpOwotICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSB1Y3BfZmluZGNoYXIo
YywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CisgICAgICAgICAgcHJvcF9jYXRl
Z29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJj
YXNlKTsKICAgICAgICAgICBpZiAoKCpwcm9wX3Rlc3RfdmFyaWFibGUgPT0gcHJvcF90ZXN0X2Fn
YWluc3QpID09IHByb3BfZmFpbF9yZXN1bHQpCiAgICAgICAgICAgICBSUkVUVVJOKE1BVENIX05P
TUFUQ0gpOwogICAgICAgICAgIH0KQEAgLTI4MTQsNyArMjgxNCw3IEBAIGZvciAoOzspCiAgICAg
ICAgICAgaWYgKHJyYyAhPSBNQVRDSF9OT01BVENIKSBSUkVUVVJOKHJyYyk7CiAgICAgICAgICAg
aWYgKGZpID49IG1heCB8fCBlcHRyID49IG1kLT5lbmRfc3ViamVjdCkgUlJFVFVSTihNQVRDSF9O
T01BVENIKTsKICAgICAgICAgICBHRVRDSEFSSU5DVEVTVChjLCBlcHRyKTsKLSAgICAgICAgICBw
cm9wX2NhdGVnb3J5ID0gdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhl
cmNhc2UpOworICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywg
JnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgaWYgKHByb3BfY2F0
ZWdvcnkgPT0gdWNwX00pIFJSRVRVUk4oTUFUQ0hfTk9NQVRDSCk7CiAgICAgICAgICAgd2hpbGUg
KGVwdHIgPCBtZC0+ZW5kX3N1YmplY3QpCiAgICAgICAgICAgICB7CkBAIC0yODIzLDcgKzI4MjMs
NyBAQCBmb3IgKDs7KQogICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgIEdFVENIQVJMRU4o
YywgZXB0ciwgbGVuKTsKICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgcHJvcF9jYXRlZ29y
eSA9IHVjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKKyAg
ICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBfcGNyZV91Y3BfZmluZGNoYXIoYywgJnByb3BfY2hh
cnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAgICAgICAgICAgICBpZiAocHJvcF9jYXRlZ29yeSAh
PSB1Y3BfTSkgYnJlYWs7CiAgICAgICAgICAgICBlcHRyICs9IGxlbjsKICAgICAgICAgICAgIH0K
QEAgLTI5NTUsNyArMjk1NSw3IEBAIGZvciAoOzspCiAgICAgICAgICAgaW50IGxlbiA9IDE7CiAg
ICAgICAgICAgaWYgKGVwdHIgPj0gbWQtPmVuZF9zdWJqZWN0KSBicmVhazsKICAgICAgICAgICBH
RVRDSEFSTEVOKGMsIGVwdHIsIGxlbik7Ci0gICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IHVjcF9m
aW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKKyAgICAgICAgICBw
cm9wX2NhdGVnb3J5ID0gX3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJv
cF9vdGhlcmNhc2UpOwogICAgICAgICAgIGlmICgoKnByb3BfdGVzdF92YXJpYWJsZSA9PSBwcm9w
X3Rlc3RfYWdhaW5zdCkgPT0gcHJvcF9mYWlsX3Jlc3VsdCkKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgIGVwdHIrPSBsZW47CkBAIC0yOTgxLDcgKzI5ODEsNyBAQCBmb3IgKDs7KQogICAg
ICAgICAgIHsKICAgICAgICAgICBpZiAoZXB0ciA+PSBtZC0+ZW5kX3N1YmplY3QpIGJyZWFrOwog
ICAgICAgICAgIEdFVENIQVJJTkNURVNUKGMsIGVwdHIpOwotICAgICAgICAgIHByb3BfY2F0ZWdv
cnkgPSB1Y3BfZmluZGNoYXIoYywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7Cisg
ICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFy
dHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKICAgICAgICAgICBpZiAocHJvcF9jYXRlZ29yeSA9PSB1
Y3BfTSkgYnJlYWs7CiAgICAgICAgICAgd2hpbGUgKGVwdHIgPCBtZC0+ZW5kX3N1YmplY3QpCiAg
ICAgICAgICAgICB7CkBAIC0yOTkwLDcgKzI5OTAsNyBAQCBmb3IgKDs7KQogICAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgIEdFVENIQVJMRU4oYywgZXB0ciwgbGVuKTsKICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgcHJvcF9jYXRlZ29yeSA9IHVjcF9maW5kY2hhcihjLCAmcHJvcF9j
aGFydHlwZSwgJnByb3Bfb3RoZXJjYXNlKTsKKyAgICAgICAgICAgIHByb3BfY2F0ZWdvcnkgPSBf
cGNyZV91Y3BfZmluZGNoYXIoYywgJnByb3BfY2hhcnR5cGUsICZwcm9wX290aGVyY2FzZSk7CiAg
ICAgICAgICAgICBpZiAocHJvcF9jYXRlZ29yeSAhPSB1Y3BfTSkgYnJlYWs7CiAgICAgICAgICAg
ICBlcHRyICs9IGxlbjsKICAgICAgICAgICAgIH0KQEAgLTMwMTEsNyArMzAxMSw3IEBAIGZvciAo
OzspCiAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgR0VUQ0hBUkxFTihjLCBlcHRyLCBs
ZW4pOwogICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBwcm9wX2NhdGVnb3J5ID0gdWNwX2Zp
bmRjaGFyKGMsICZwcm9wX2NoYXJ0eXBlLCAmcHJvcF9vdGhlcmNhc2UpOworICAgICAgICAgICAg
cHJvcF9jYXRlZ29yeSA9IF9wY3JlX3VjcF9maW5kY2hhcihjLCAmcHJvcF9jaGFydHlwZSwgJnBy
b3Bfb3RoZXJjYXNlKTsKICAgICAgICAgICAgIGlmIChwcm9wX2NhdGVnb3J5ICE9IHVjcF9NKSBi
cmVhazsKICAgICAgICAgICAgIGVwdHItLTsKICAgICAgICAgICAgIH0KQEAgLTMzNjUsNyArMzM2
NSw3IEBAIFJldHVybnM6ICAgICAgICAgID4gMCA9PiBzdWNjZXNzOyB2YWx1ZSAKICAgICAgICAg
ICAgICAgICAgPCAtMSA9PiBzb21lIGtpbmQgb2YgdW5leHBlY3RlZCBwcm9ibGVtCiAqLwogCi1F
WFBPUlQgaW50CitQQ1JFX0VYUE9SVCBpbnQKIHBjcmVfZXhlYyhjb25zdCBwY3JlICphcmd1bWVu
dF9yZSwgY29uc3QgcGNyZV9leHRyYSAqZXh0cmFfZGF0YSwKICAgY29uc3QgcGNyZV9jaGFyICpz
dWJqZWN0LCBpbnQgbGVuZ3RoLCBpbnQgc3RhcnRfb2Zmc2V0LCBpbnQgb3B0aW9ucywgaW50ICpv
ZmZzZXRzLAogICBpbnQgb2Zmc2V0Y291bnQpCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3Bj
cmVfZnVsbGluZm8uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZnVs
bGluZm8uYwkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfZnVs
bGluZm8uYwkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBBcmd1bWVudHM6CiBSZXR1
cm5zOiAgICAgICAgICAgMCBpZiBkYXRhIHJldHVybmVkLCBuZWdhdGl2ZSBvbiBlcnJvcgogKi8K
IAotRVhQT1JUIGludAorUENSRV9FWFBPUlQgaW50CiBwY3JlX2Z1bGxpbmZvKGNvbnN0IHBjcmUg
KmFyZ3VtZW50X3JlLCBjb25zdCBwY3JlX2V4dHJhICpleHRyYV9kYXRhLCBpbnQgd2hhdCwKICAg
dm9pZCAqd2hlcmUpCiB7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfaW5mby5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbmZvLmMJKHJldmlzaW9uIDE4
NDg2KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2luZm8uYwkod29ya2luZyBjb3B5KQpA
QCAtNjgsNyArNjgsNyBAQCBSZXR1cm5zOiAgICAgICAgbnVtYmVyIG9mIGNhcHR1cmluZyBzdWJw
CiAgICAgICAgICAgICAgICAgb3IgbmVnYXRpdmUgdmFsdWVzIG9uIGVycm9yCiAqLwogCi1FWFBP
UlQgaW50CitQQ1JFX0VYUE9SVCBpbnQKIHBjcmVfaW5mbyhjb25zdCBwY3JlICphcmd1bWVudF9y
ZSwgaW50ICpvcHRwdHIsIGludCAqZmlyc3RfYnl0ZSkKIHsKIHJlYWxfcGNyZSBpbnRlcm5hbF9y
ZTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCShyZXZpc2lvbiAxODQ4NikK
KysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9pbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw2ICszOSwxMyBAQCBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAqLwogCisvKiBUaGlzIGhlYWRlciBjb250YWlucyBkZWZpbml0aW9ucyB0aGF0
IGFyZSBzaGFyZWQgYmV0d2VlbiB0aGUgZGlmZmVyZW50Cittb2R1bGVzLCBidXQgd2hpY2ggYXJl
IG5vdCByZWxldmFudCB0byB0aGUgZXhwb3J0ZWQgQVBJLiBUaGlzIGluY2x1ZGVzIHNvbWUKK2Z1
bmN0aW9ucyB3aG9zZSBuYW1lcyBhbGwgYmVnaW4gd2l0aCAiX3BjcmVfIi4gKi8KKworI2lmbmRl
ZiBQQ1JFX0lOVEVSTkFMX0gKKyNkZWZpbmUgUENSRV9JTlRFUk5BTF9ICisKICNpbmNsdWRlICJB
c3NlcnRpb25zLmgiCiAKIC8qIEFkZGVkIHRvIHByZXZlbnQgNjQtdG8tMzIgc2hvcnRlbmluZyB3
YXJuaW5ncyB3aGVuIGNvbXBpbGluZyBmb3IgNjQtYml0CkBAIC01NCwxMCArNjEsNiBAQCBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0MjQ0KQog
I2VuZGlmCiAKLS8qIFRoaXMgaGVhZGVyIGNvbnRhaW5zIGRlZmluaXRpb25zIHRoYXQgYXJlIHNo
YXJlZCBiZXR3ZWVuIHRoZSBkaWZmZXJlbnQKLW1vZHVsZXMsIGJ1dCB3aGljaCBhcmUgbm90IHJl
bGV2YW50IHRvIHRoZSBleHBvcnRlZCBBUEkuIFRoaXMgaW5jbHVkZXMgc29tZQotZnVuY3Rpb25z
IHdob3NlIG5hbWVzIGFsbCBiZWdpbiB3aXRoICJfcGNyZV8iLiAqLwotCiAjZGVmaW5lIF9wY3Jl
X09QX2xlbmd0aHMga2pzX3BjcmVfT1BfbGVuZ3RocwogI2RlZmluZSBfcGNyZV9kZWZhdWx0X3Rh
YmxlcyBranNfcGNyZV9kZWZhdWx0X3RhYmxlcwogI2RlZmluZSBfcGNyZV9vcmQydXRmOCBranNf
cGNyZV9vcmQydXRmOApAQCAtNzYsOSArNzksOSBAQCBmdW5jdGlvbnMgd2hvc2UgbmFtZXMgYWxs
IGJlZ2luIHdpdGggIl9wCiAKIC8qIERlZmluZSBERUJVRyB0byBnZXQgZGVidWdnaW5nIG91dHB1
dCBvbiBzdGRvdXQuICovCiAKLS8qKioqCisjaWYgMAogI2RlZmluZSBERUJVRwotKioqKi8KKyNl
bmRpZgogCiAvKiBVc2UgYSBtYWNybyBmb3IgZGVidWdnaW5nIHByaW50aW5nLCAnY2F1c2UgdGhh
dCBlbGltaW5hdGVzIHRoZSB1c2Ugb2YgI2lmZGVmCiBpbmxpbmUsIGFuZCB0aGVyZSBhcmUgKnN0
aWxsKiBzdHVwaWQgY29tcGlsZXJzIGFib3V0IHRoYXQgZG9uJ3QgbGlrZSBpbmRlbnRlZApAQCAt
MTM0LDkgKzEzNywxMSBAQCBwcmVwcm9jZXNzb3IgdGltZSBpbiBzdGFuZGFyZCBDIGVudmlyb25t
CiAgICNlcnJvciBDYW5ub3QgZGV0ZXJtaW5lIGEgdHlwZSBmb3IgMzItYml0IHVuc2lnbmVkIGlu
dGVnZXJzCiAjZW5kaWYKIAotLyogSW5jbHVkZSB0aGUgcHVibGljIFBDUkUgaGVhZGVyICovCisv
KiBJbmNsdWRlIHRoZSBwdWJsaWMgUENSRSBoZWFkZXIgYW5kIHRoZSBkZWZpbml0aW9ucyBvZiBV
Q1AgY2hhcmFjdGVyIHByb3BlcnR5Cit2YWx1ZXMuICovCiAKICNpbmNsdWRlICJwY3JlLmgiCisj
aW5jbHVkZSAidWNwLmgiCiAKIC8qIEFsbCBjaGFyYWN0ZXIgaGFuZGxpbmcgbXVzdCBiZSBkb25l
IGFzIHVuc2lnbmVkIGNoYXJhY3RlcnMuIE90aGVyd2lzZSB0aGVyZQogYXJlIHByb2JsZW1zIHdp
dGggdG9wLWJpdC1zZXQgY2hhcmFjdGVycyBhbmQgZnVuY3Rpb25zIHN1Y2ggYXMgaXNzcGFjZSgp
LgpAQCAtMTU0LDEyICsxNTksNiBAQCB0eXBlZGVmIHBjcmVfY2hhciBwY3JlX3VjaGFyOwogdHlw
ZWRlZiB1bnNpZ25lZCBjaGFyIHBjcmVfdWNoYXI7CiAjZW5kaWYKIAotLyogSW5jbHVkZSB0aGUg
KGNvcHkgb2YpIHRoZSBwdWJsaWMgdWNwIGhlYWRlciwgY2hhbmdpbmcgdGhlIGV4dGVybmFsIG5h
bWUgaW50bwotYSBwcml2YXRlIG9uZS4gVGhpcyBkb2VzIG5vIGhhcm0sIGV2ZW4gaWYgd2UgYXJl
bid0IGNvbXBpbGluZyBVQ1Agc3VwcG9ydC4gKi8KLQotI2RlZmluZSB1Y3BfZmluZGNoYXIgX3Bj
cmVfdWNwX2ZpbmRjaGFyCi0jaW5jbHVkZSAidWNwLmgiCi0KIC8qIFdoZW4gY29tcGlsaW5nIGZv
ciB1c2Ugd2l0aCB0aGUgVmlydHVhbCBQYXNjYWwgY29tcGlsZXIsIHRoZXNlIGZ1bmN0aW9ucwog
bmVlZCB0byBoYXZlIHRoZWlyIG5hbWVzIGNoYW5nZWQuIFBDUkUgbXVzdCBiZSBjb21waWxlZCB3
aXRoIHRoZSAtRFZQQ09NUEFUCiBvcHRpb24gb24gdGhlIGNvbW1hbmQgbGluZS4gKi8KQEAgLTk1
MSw3ICs5NTAsNyBAQCB0b3RhbCBsZW5ndGguICovCiAjZGVmaW5lIHRhYmxlc19sZW5ndGggKGN0
eXBlc19vZmZzZXQgKyAyNTYpCiAKIC8qIExheW91dCBvZiB0aGUgVUNQIHR5cGUgdGFibGUgdGhh
dCB0cmFuc2xhdGVzIHByb3BlcnR5IG5hbWVzIGludG8gY29kZXMgZm9yCi11Y3BfZmluZGNoYXIo
KS4gKi8KK19wY3JlX3VjcF9maW5kY2hhcigpLiAqLwogCiB0eXBlZGVmIHN0cnVjdCB7CiAgIGNv
bnN0IGNoYXIgKm5hbWU7CkBAIC05ODMsMTEgKzk4MiwxMiBAQCBvbmUgb2YgdGhlIGV4cG9ydGVk
IHB1YmxpYyBmdW5jdGlvbnMuIFRoCiBzZW5zZSwgYnV0IGFyZSBub3QgcGFydCBvZiB0aGUgUENS
RSBwdWJsaWMgQVBJLiAqLwogCiBleHRlcm4gaW50ICAgICAgICAgX3BjcmVfb3JkMnV0ZjgoaW50
LCB1c2NoYXIgKik7Ci1leHRlcm4gdm9pZCAgICAgICAgX3BjcmVfcHJpbnRpbnQocGNyZSAqLCBG
SUxFICopOwogZXh0ZXJuIHJlYWxfcGNyZSAqIF9wY3JlX3RyeV9mbGlwcGVkKGNvbnN0IHJlYWxf
cGNyZSAqLCByZWFsX3BjcmUgKiwKICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBjcmVfc3R1
ZHlfZGF0YSAqLCBwY3JlX3N0dWR5X2RhdGEgKik7CiBleHRlcm4gaW50ICAgICAgICAgX3BjcmVf
dWNwX2ZpbmRjaGFyKGNvbnN0IGludCwgaW50ICosIGludCAqKTsKIGV4dGVybiBpbnQgICAgICAg
ICBfcGNyZV92YWxpZF91dGY4KGNvbnN0IHVzY2hhciAqLCBpbnQpOwogZXh0ZXJuIEJPT0wgICAg
ICAgIF9wY3JlX3hjbGFzcyhpbnQsIGNvbnN0IHVzY2hhciAqKTsKIAorI2VuZGlmCisKIC8qIEVu
ZCBvZiBwY3JlX2ludGVybmFsLmggKi8KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9v
cmQydXRmOC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9vcmQydXRm
OC5jCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9vcmQydXRm
OC5jCSh3b3JraW5nIGNvcHkpCkBAIC01OSw3ICs1OSw3IEBAIEFyZ3VtZW50czoKIFJldHVybnM6
ICAgICBudW1iZXIgb2YgY2hhcmFjdGVycyBwbGFjZWQgaW4gdGhlIGJ1ZmZlcgogKi8KIAotRVhQ
T1JUIGludAorUENSRV9FWFBPUlQgaW50CiBfcGNyZV9vcmQydXRmOChpbnQgY3ZhbHVlLCB1c2No
YXIgKmJ1ZmZlcikKIHsKIHJlZ2lzdGVyIGludCBpLCBqOwpJbmRleDogSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlX3ByaW50aW50LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX3ByaW50aW50LmMJKHJldmlzaW9uIDE4NDg2KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9w
Y3JlX3ByaW50aW50LmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNDUxICswLDAgQEAKLS8qKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCi0qICAgICAgUGVybC1D
b21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVzc2lvbnMgICAgICAgKgotKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotLyogUENSRSBpcyBhIGxpYnJhcnkg
b2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQgcmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgK
LWFuZCBzZW1hbnRpY3MgYXJlIGFzIGNsb3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQ
ZXJsIDUgbGFuZ3VhZ2UuCi0KLSAgICAgICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGls
aXAgSGF6ZWwKLSAgICAgICAgICAgQ29weXJpZ2h0IChjKSAxOTk3LTIwMDUgVW5pdmVyc2l0eSBv
ZiBDYW1icmlkZ2UKLQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZSBtZXQ6Ci0KLSAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKLSAgICAgIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0KLSAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotCi0gICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cwot
ICAgICAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KLSAgICAgIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0KLVRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIgotQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UKLUFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRQotTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLVNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLUNPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi1BUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRQotUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQotKi8KLQotCi0vKiBUaGlzIG1vZHVsZSBjb250YWlucyBhbiBQQ1JF
IHByaXZhdGUgZGVidWdnaW5nIGZ1bmN0aW9uIGZvciBwcmludGluZyBvdXQgdGhlCi1pbnRlcm5h
bCBmb3JtIG9mIGEgY29tcGlsZWQgcmVndWxhciBleHByZXNzaW9uLCBhbG9uZyB3aXRoIHNvbWUg
c3VwcG9ydGluZwotbG9jYWwgZnVuY3Rpb25zLiAqLwotCi0KLSNpbmNsdWRlICJwY3JlX2ludGVy
bmFsLmgiCi0KLQotc3RhdGljIGNvbnN0IGNoYXIgKk9QX25hbWVzW10gPSB7IE9QX05BTUVfTElT
VCB9OwotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqCi0qICAgICAgIFByaW50IHNpbmdsZS0gb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgICAgKgot
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KLQotc3Rh
dGljIGludAotcHJpbnRfY2hhcihGSUxFICpmLCB1c2NoYXIgKnB0ciwgQk9PTCB1dGY4KQotewot
aW50IGMgPSAqcHRyOwotCi1pZiAoIXV0ZjggfHwgKGMgJiAweGMwKSAhPSAweGMwKQotICB7Ci0g
IGlmIChpc3ByaW50KGMpKSBmcHJpbnRmKGYsICIlYyIsIGMpOyBlbHNlIGZwcmludGYoZiwgIlxc
eCUwMngiLCBjKTsKLSAgcmV0dXJuIDA7Ci0gIH0KLWVsc2UKLSAgewotICBpbnQgaTsKLSAgaW50
IGEgPSBfcGNyZV91dGY4X3RhYmxlNFtjICYgMHgzZl07ICAvKiBOdW1iZXIgb2YgYWRkaXRpb25h
bCBieXRlcyAqLwotICBpbnQgcyA9IDYqYTsKLSAgYyA9IChjICYgX3BjcmVfdXRmOF90YWJsZTNb
YV0pIDw8IHM7Ci0gIGZvciAoaSA9IDE7IGkgPD0gYTsgaSsrKQotICAgIHsKLSAgICAvKiBUaGlz
IGlzIGEgY2hlY2sgZm9yIG1hbGZvcm1lZCBVVEYtODsgaXQgc2hvdWxkIG9ubHkgb2NjdXIgaWYg
dGhlIHNhbml0eQotICAgIGNoZWNrIGhhcyBiZWVuIHR1cm5lZCBvZmYuIFJhdGhlciB0aGFuIHN3
YWxsb3cgcmFuZG9tIGJ5dGVzLCBqdXN0IHN0b3AgaWYKLSAgICB3ZSBoaXQgYSBiYWQgb25lLiBQ
cmludCBpdCB3aXRoIFxYIGluc3RlYWQgb2YgXHggYXMgYW4gaW5kaWNhdGlvbi4gKi8KLQotICAg
IGlmICgocHRyW2ldICYgMHhjMCkgIT0gMHg4MCkKLSAgICAgIHsKLSAgICAgIGZwcmludGYoZiwg
IlxcWHsleH0iLCBjKTsKLSAgICAgIHJldHVybiBpIC0gMTsKLSAgICAgIH0KLQotICAgIC8qIFRo
ZSBieXRlIGlzIE9LICovCi0KLSAgICBzIC09IDY7Ci0gICAgYyB8PSAocHRyW2ldICYgMHgzZikg
PDwgczsKLSAgICB9Ci0gIGlmIChjIDwgMTI4KSBmcHJpbnRmKGYsICJcXHglMDJ4IiwgYyk7IGVs
c2UgZnByaW50ZihmLCAiXFx4eyV4fSIsIGMpOwotICByZXR1cm4gYTsKLSAgfQotfQotCi0KLQot
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKLSogICAg
ICAgICAgRmluZCBVbmljb2RlIHByb3BlcnR5IG5hbWUgICAgICAgICAgICAqCi0qKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwotCi1zdGF0aWMgY29uc3Qg
Y2hhciAqCi1nZXRfdWNwbmFtZShpbnQgcHJvcGVydHkpCi17Ci0jaWZkZWYgU1VQUE9SVF9VQ1AK
LWludCBpOwotZm9yIChpID0gX3BjcmVfdXR0X3NpemU7IGkgPj0gMDsgaS0tKQotICB7Ci0gIGlm
IChwcm9wZXJ0eSA9PSBfcGNyZV91dHRbaV0udmFsdWUpIGJyZWFrOwotICB9Ci1yZXR1cm4gKGkg
Pj0gMCk/IF9wY3JlX3V0dFtpXS5uYW1lIDogIj8/IjsKLSNlbHNlCi1yZXR1cm4gIj8/IjsKLSNl
bmRpZgotfQotCi0KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioKLSogICAgICAgICBQcmludCBjb21waWxlZCByZWdleCAgICAgICAgICAgICAgICAg
ICAqCi0qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwot
Ci0vKiBNYWtlIHRoaXMgZnVuY3Rpb24gd29yayBmb3IgYSByZWdleCB3aXRoIGludGVnZXJzIGVp
dGhlciBieXRlIG9yZGVyLgotSG93ZXZlciwgd2UgYXNzdW1lIHRoYXQgd2hhdCB3ZSBhcmUgcGFz
c2VkIGlzIGEgY29tcGlsZWQgcmVnZXguICovCi0KLUVYUE9SVCB2b2lkCi1fcGNyZV9wcmludGlu
dChwY3JlICpleHRlcm5hbF9yZSwgRklMRSAqZikKLXsKLXJlYWxfcGNyZSAqcmUgPSAocmVhbF9w
Y3JlICopZXh0ZXJuYWxfcmU7Ci11c2NoYXIgKmNvZGVzdGFydCwgKmNvZGU7Ci1CT09MIHV0Zjg7
Ci0KLXVuc2lnbmVkIGludCBvcHRpb25zID0gcmUtPm9wdGlvbnM7Ci1pbnQgb2Zmc2V0ID0gcmUt
Pm5hbWVfdGFibGVfb2Zmc2V0OwotaW50IGNvdW50ID0gcmUtPm5hbWVfY291bnQ7Ci1pbnQgc2l6
ZSA9IHJlLT5uYW1lX2VudHJ5X3NpemU7Ci0KLWlmIChyZS0+bWFnaWNfbnVtYmVyICE9IE1BR0lD
X05VTUJFUikKLSAgewotICBvZmZzZXQgPSAoKG9mZnNldCA8PCA4KSAmIDB4ZmYwMCkgfCAoKG9m
ZnNldCA+PiA4KSAmIDB4ZmYpOwotICBjb3VudCA9ICgoY291bnQgPDwgOCkgJiAweGZmMDApIHwg
KChjb3VudCA+PiA4KSAmIDB4ZmYpOwotICBzaXplID0gKChzaXplIDw8IDgpICYgMHhmZjAwKSB8
ICgoc2l6ZSA+PiA4KSAmIDB4ZmYpOwotICBvcHRpb25zID0gKChvcHRpb25zIDw8IDI0KSAmIDB4
ZmYwMDAwMDApIHwKLSAgICAgICAgICAgICgob3B0aW9ucyA8PCAgOCkgJiAweDAwZmYwMDAwKSB8
Ci0gICAgICAgICAgICAoKG9wdGlvbnMgPj4gIDgpICYgMHgwMDAwZmYwMCkgfAotICAgICAgICAg
ICAgKChvcHRpb25zID4+IDI0KSAmIDB4MDAwMDAwZmYpOwotICB9Ci0KLWNvZGUgPSBjb2Rlc3Rh
cnQgPSAodXNjaGFyICopcmUgKyBvZmZzZXQgKyBjb3VudCAqIHNpemU7Ci11dGY4ID0gKG9wdGlv
bnMgJiBQQ1JFX1VURjgpICE9IDA7Ci0KLWZvcig7OykKLSAgewotICB1c2NoYXIgKmNjb2RlOwot
ICBpbnQgYzsKLSAgaW50IGV4dHJhID0gMDsKLQotICBmcHJpbnRmKGYsICIlM2QgIiwgKGludCko
Y29kZSAtIGNvZGVzdGFydCkpOwotCi0gIGlmICgqY29kZSA+PSBPUF9CUkEpCi0gICAgewotICAg
IGlmICgqY29kZSAtIE9QX0JSQSA+IEVYVFJBQ1RfQkFTSUNfTUFYKQotICAgICAgZnByaW50Zihm
LCAiJTNkIEJyYSBleHRyYVxuIiwgR0VUKGNvZGUsIDEpKTsKLSAgICBlbHNlCi0gICAgICBmcHJp
bnRmKGYsICIlM2QgQnJhICVkXG4iLCBHRVQoY29kZSwgMSksICpjb2RlIC0gT1BfQlJBKTsKLSAg
ICBjb2RlICs9IF9wY3JlX09QX2xlbmd0aHNbT1BfQlJBXTsKLSAgICBjb250aW51ZTsKLSAgICB9
Ci0KLSAgc3dpdGNoKCpjb2RlKQotICAgIHsKLSAgICBjYXNlIE9QX0VORDoKLSAgICBmcHJpbnRm
KGYsICIgICAgJXNcbiIsIE9QX25hbWVzWypjb2RlXSk7Ci0gICAgZnByaW50ZihmLCAiLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tXG4iKTsKLSAgICByZXR1cm47Ci0KLSAgICBjYXNlIE9QX09QVDoKLSAgICBmcHJpbnRmKGYs
ICIgJS4yeCAlcyIsIGNvZGVbMV0sIE9QX25hbWVzWypjb2RlXSk7Ci0gICAgYnJlYWs7Ci0KLSAg
ICBjYXNlIE9QX0NIQVI6Ci0gICAgICB7Ci0gICAgICBmcHJpbnRmKGYsICIgICAgIik7Ci0gICAg
ICBkbwotICAgICAgICB7Ci0gICAgICAgIGNvZGUrKzsKLSAgICAgICAgY29kZSArPSAxICsgcHJp
bnRfY2hhcihmLCBjb2RlLCB1dGY4KTsKLSAgICAgICAgfQotICAgICAgd2hpbGUgKCpjb2RlID09
IE9QX0NIQVIpOwotICAgICAgZnByaW50ZihmLCAiXG4iKTsKLSAgICAgIGNvbnRpbnVlOwotICAg
ICAgfQotICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUF9DSEFSTkM6Ci0gICAgICB7Ci0gICAgICBm
cHJpbnRmKGYsICIgTkMgIik7Ci0gICAgICBkbwotICAgICAgICB7Ci0gICAgICAgIGNvZGUrKzsK
LSAgICAgICAgY29kZSArPSAxICsgcHJpbnRfY2hhcihmLCBjb2RlLCB1dGY4KTsKLSAgICAgICAg
fQotICAgICAgd2hpbGUgKCpjb2RlID09IE9QX0NIQVJOQyk7Ci0gICAgICBmcHJpbnRmKGYsICJc
biIpOwotICAgICAgY29udGludWU7Ci0gICAgICB9Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9Q
X0tFVFJNQVg6Ci0gICAgY2FzZSBPUF9LRVRSTUlOOgotICAgIGNhc2UgT1BfQUxUOgotICAgIGNh
c2UgT1BfS0VUOgotICAgIGNhc2UgT1BfQVNTRVJUOgotICAgIGNhc2UgT1BfQVNTRVJUX05PVDoK
LSAgICBjYXNlIE9QX0FTU0VSVEJBQ0s6Ci0gICAgY2FzZSBPUF9BU1NFUlRCQUNLX05PVDoKLSAg
ICBjYXNlIE9QX09OQ0U6Ci0gICAgY2FzZSBPUF9DT05EOgotICAgIGNhc2UgT1BfUkVWRVJTRToK
LSAgICBmcHJpbnRmKGYsICIlM2QgJXMiLCBHRVQoY29kZSwgMSksIE9QX25hbWVzWypjb2RlXSk7
Ci0gICAgYnJlYWs7Ci0KLSAgICBjYXNlIE9QX0JSQU5VTUJFUjoKLSAgICBwcmludGYoIiUzZCAl
cyIsIEdFVDIoY29kZSwgMSksIE9QX25hbWVzWypjb2RlXSk7Ci0gICAgYnJlYWs7Ci0KLSAgICBj
YXNlIE9QX0NSRUY6Ci0gICAgaWYgKEdFVDIoY29kZSwgMSkgPT0gQ1JFRl9SRUNVUlNFKQotICAg
ICAgZnByaW50ZihmLCAiICAgIENvbmQgcmVjdXJzZSIpOwotICAgIGVsc2UKLSAgICAgIGZwcmlu
dGYoZiwgIiUzZCAlcyIsIEdFVDIoY29kZSwxKSwgT1BfbmFtZXNbKmNvZGVdKTsKLSAgICBicmVh
azsKLQotICAgIGNhc2UgT1BfU1RBUjoKLSAgICBjYXNlIE9QX01JTlNUQVI6Ci0gICAgY2FzZSBP
UF9QTFVTOgotICAgIGNhc2UgT1BfTUlOUExVUzoKLSAgICBjYXNlIE9QX1FVRVJZOgotICAgIGNh
c2UgT1BfTUlOUVVFUlk6Ci0gICAgY2FzZSBPUF9UWVBFU1RBUjoKLSAgICBjYXNlIE9QX1RZUEVN
SU5TVEFSOgotICAgIGNhc2UgT1BfVFlQRVBMVVM6Ci0gICAgY2FzZSBPUF9UWVBFTUlOUExVUzoK
LSAgICBjYXNlIE9QX1RZUEVRVUVSWToKLSAgICBjYXNlIE9QX1RZUEVNSU5RVUVSWToKLSAgICBm
cHJpbnRmKGYsICIgICAgIik7Ci0gICAgaWYgKCpjb2RlID49IE9QX1RZUEVTVEFSKQotICAgICAg
ewotICAgICAgZnByaW50ZihmLCAiJXMiLCBPUF9uYW1lc1tjb2RlWzFdXSk7Ci0gICAgICBpZiAo
Y29kZVsxXSA9PSBPUF9QUk9QIHx8IGNvZGVbMV0gPT0gT1BfTk9UUFJPUCkKLSAgICAgICAgewot
ICAgICAgICBmcHJpbnRmKGYsICIgJXMgIiwgZ2V0X3VjcG5hbWUoY29kZVsyXSkpOwotICAgICAg
ICBleHRyYSA9IDE7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBlbHNlIGV4dHJhID0gcHJpbnRf
Y2hhcihmLCBjb2RlKzEsIHV0ZjgpOwotICAgIGZwcmludGYoZiwgIiVzIiwgT1BfbmFtZXNbKmNv
ZGVdKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfRVhBQ1Q6Ci0gICAgY2FzZSBPUF9VUFRP
OgotICAgIGNhc2UgT1BfTUlOVVBUTzoKLSAgICBmcHJpbnRmKGYsICIgICAgIik7Ci0gICAgZXh0
cmEgPSBwcmludF9jaGFyKGYsIGNvZGUrMywgdXRmOCk7Ci0gICAgZnByaW50ZihmLCAieyIpOwot
ICAgIGlmICgqY29kZSAhPSBPUF9FWEFDVCkgZnByaW50ZihmLCAiLCIpOwotICAgIGZwcmludGYo
ZiwgIiVkfSIsIEdFVDIoY29kZSwxKSk7Ci0gICAgaWYgKCpjb2RlID09IE9QX01JTlVQVE8pIGZw
cmludGYoZiwgIj8iKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfVFlQRUVYQUNUOgotICAg
IGNhc2UgT1BfVFlQRVVQVE86Ci0gICAgY2FzZSBPUF9UWVBFTUlOVVBUTzoKLSAgICBmcHJpbnRm
KGYsICIgICAgJXMiLCBPUF9uYW1lc1tjb2RlWzNdXSk7Ci0gICAgaWYgKGNvZGVbM10gPT0gT1Bf
UFJPUCB8fCBjb2RlWzNdID09IE9QX05PVFBST1ApCi0gICAgICB7Ci0gICAgICBmcHJpbnRmKGYs
ICIgJXMgIiwgZ2V0X3VjcG5hbWUoY29kZVs0XSkpOwotICAgICAgZXh0cmEgPSAxOwotICAgICAg
fQotICAgIGZwcmludGYoZiwgInsiKTsKLSAgICBpZiAoKmNvZGUgIT0gT1BfVFlQRUVYQUNUKSBm
cHJpbnRmKGYsICIwLCIpOwotICAgIGZwcmludGYoZiwgIiVkfSIsIEdFVDIoY29kZSwxKSk7Ci0g
ICAgaWYgKCpjb2RlID09IE9QX1RZUEVNSU5VUFRPKSBmcHJpbnRmKGYsICI/Iik7Ci0gICAgYnJl
YWs7Ci0KLSAgICBjYXNlIE9QX05PVDoKLSAgICBpZiAoaXNwcmludChjID0gY29kZVsxXSkpIGZw
cmludGYoZiwgIiAgICBbXiVjXSIsIGMpOwotICAgICAgZWxzZSBmcHJpbnRmKGYsICIgICAgW15c
XHglMDJ4XSIsIGMpOwotICAgIGJyZWFrOwotCi0gICAgY2FzZSBPUF9OT1RTVEFSOgotICAgIGNh
c2UgT1BfTk9UTUlOU1RBUjoKLSAgICBjYXNlIE9QX05PVFBMVVM6Ci0gICAgY2FzZSBPUF9OT1RN
SU5QTFVTOgotICAgIGNhc2UgT1BfTk9UUVVFUlk6Ci0gICAgY2FzZSBPUF9OT1RNSU5RVUVSWToK
LSAgICBpZiAoaXNwcmludChjID0gY29kZVsxXSkpIGZwcmludGYoZiwgIiAgICBbXiVjXSIsIGMp
OwotICAgICAgZWxzZSBmcHJpbnRmKGYsICIgICAgW15cXHglMDJ4XSIsIGMpOwotICAgIGZwcmlu
dGYoZiwgIiVzIiwgT1BfbmFtZXNbKmNvZGVdKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1Bf
Tk9URVhBQ1Q6Ci0gICAgY2FzZSBPUF9OT1RVUFRPOgotICAgIGNhc2UgT1BfTk9UTUlOVVBUTzoK
LSAgICBpZiAoaXNwcmludChjID0gY29kZVszXSkpIGZwcmludGYoZiwgIiAgICBbXiVjXXsiLCBj
KTsKLSAgICAgIGVsc2UgZnByaW50ZihmLCAiICAgIFteXFx4JTAyeF17IiwgYyk7Ci0gICAgaWYg
KCpjb2RlICE9IE9QX05PVEVYQUNUKSBmcHJpbnRmKGYsICIwLCIpOwotICAgIGZwcmludGYoZiwg
IiVkfSIsIEdFVDIoY29kZSwxKSk7Ci0gICAgaWYgKCpjb2RlID09IE9QX05PVE1JTlVQVE8pIGZw
cmludGYoZiwgIj8iKTsKLSAgICBicmVhazsKLQotICAgIGNhc2UgT1BfUkVDVVJTRToKLSAgICBm
cHJpbnRmKGYsICIlM2QgJXMiLCBHRVQoY29kZSwgMSksIE9QX25hbWVzWypjb2RlXSk7Ci0gICAg
YnJlYWs7Ci0KLSAgICBjYXNlIE9QX1JFRjoKLSAgICBmcHJpbnRmKGYsICIgICAgXFwlZCIsIEdF
VDIoY29kZSwxKSk7Ci0gICAgY2NvZGUgPSBjb2RlICsgX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV07
Ci0gICAgZ290byBDTEFTU19SRUZfUkVQRUFUOwotCi0gICAgY2FzZSBPUF9DQUxMT1VUOgotICAg
IGZwcmludGYoZiwgIiAgICAlcyAlZCAlZCAlZCIsIE9QX25hbWVzWypjb2RlXSwgY29kZVsxXSwg
R0VUKGNvZGUsMiksCi0gICAgICBHRVQoY29kZSwgMiArIExJTktfU0laRSkpOwotICAgIGJyZWFr
OwotCi0gICAgY2FzZSBPUF9QUk9QOgotICAgIGNhc2UgT1BfTk9UUFJPUDoKLSAgICBmcHJpbnRm
KGYsICIgICAgJXMgJXMiLCBPUF9uYW1lc1sqY29kZV0sIGdldF91Y3BuYW1lKGNvZGVbMV0pKTsK
LSAgICBicmVhazsKLQotICAgIC8qIE9QX1hDTEFTUyBjYW4gb25seSBvY2N1ciBpbiBVVEYtOCBt
b2RlLiBIb3dldmVyLCB0aGVyZSdzIG5vIGhhcm0gaW4KLSAgICBoYXZpbmcgdGhpcyBjb2RlIGFs
d2F5cyBoZXJlLCBhbmQgaXQgbWFrZXMgaXQgbGVzcyBtZXNzeSB3aXRob3V0IGFsbCB0aG9zZQot
ICAgICNpZmRlZnMuICovCi0KLSAgICBjYXNlIE9QX0NMQVNTOgotICAgIGNhc2UgT1BfTkNMQVNT
OgotICAgIGNhc2UgT1BfWENMQVNTOgotICAgICAgewotICAgICAgaW50IGksIG1pbiwgbWF4Owot
ICAgICAgQk9PTCBwcmludG1hcDsKLQotICAgICAgZnByaW50ZihmLCAiICAgIFsiKTsKLQotICAg
ICAgaWYgKCpjb2RlID09IE9QX1hDTEFTUykKLSAgICAgICAgewotICAgICAgICBleHRyYSA9IEdF
VChjb2RlLCAxKTsKLSAgICAgICAgY2NvZGUgPSBjb2RlICsgTElOS19TSVpFICsgMTsKLSAgICAg
ICAgcHJpbnRtYXAgPSAoKmNjb2RlICYgWENMX01BUCkgIT0gMDsKLSAgICAgICAgaWYgKCgqY2Nv
ZGUrKyAmIFhDTF9OT1QpICE9IDApIGZwcmludGYoZiwgIl4iKTsKLSAgICAgICAgfQotICAgICAg
ZWxzZQotICAgICAgICB7Ci0gICAgICAgIHByaW50bWFwID0gVFJVRTsKLSAgICAgICAgY2NvZGUg
PSBjb2RlICsgMTsKLSAgICAgICAgfQotCi0gICAgICAvKiBQcmludCBhIGJpdCBtYXAgKi8KLQot
ICAgICAgaWYgKHByaW50bWFwKQotICAgICAgICB7Ci0gICAgICAgIGZvciAoaSA9IDA7IGkgPCAy
NTY7IGkrKykKLSAgICAgICAgICB7Ci0gICAgICAgICAgaWYgKChjY29kZVtpLzhdICYgKDEgPDwg
KGkmNykpKSAhPSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAgaW50IGo7Ci0gICAgICAg
ICAgICBmb3IgKGogPSBpKzE7IGogPCAyNTY7IGorKykKLSAgICAgICAgICAgICAgaWYgKChjY29k
ZVtqLzhdICYgKDEgPDwgKGomNykpKSA9PSAwKSBicmVhazsKLSAgICAgICAgICAgIGlmIChpID09
ICctJyB8fCBpID09ICddJykgZnByaW50ZihmLCAiXFwiKTsKLSAgICAgICAgICAgIGlmIChpc3By
aW50KGkpKSBmcHJpbnRmKGYsICIlYyIsIGkpOyBlbHNlIGZwcmludGYoZiwgIlxceCUwMngiLCBp
KTsKLSAgICAgICAgICAgIGlmICgtLWogPiBpKQotICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgIGlmIChqICE9IGkgKyAxKSBmcHJpbnRmKGYsICItIik7Ci0gICAgICAgICAgICAgIGlmIChq
ID09ICctJyB8fCBqID09ICddJykgZnByaW50ZihmLCAiXFwiKTsKLSAgICAgICAgICAgICAgaWYg
KGlzcHJpbnQoaikpIGZwcmludGYoZiwgIiVjIiwgaik7IGVsc2UgZnByaW50ZihmLCAiXFx4JTAy
eCIsIGopOwotICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBpID0gajsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgICB9Ci0gICAgICAgIGNjb2RlICs9IDMyOwotICAgICAgICB9Ci0KLSAgICAg
IC8qIEZvciBhbiBYQ0xBU1MgdGhlcmUgaXMgYWx3YXlzIHNvbWUgYWRkaXRpb25hbCBkYXRhICov
Ci0KLSAgICAgIGlmICgqY29kZSA9PSBPUF9YQ0xBU1MpCi0gICAgICAgIHsKLSAgICAgICAgaW50
IGNoOwotICAgICAgICB3aGlsZSAoKGNoID0gKmNjb2RlKyspICE9IFhDTF9FTkQpCi0gICAgICAg
ICAgewotICAgICAgICAgIGlmIChjaCA9PSBYQ0xfUFJPUCkKLSAgICAgICAgICAgIHsKLSAgICAg
ICAgICAgIGZwcmludGYoZiwgIlxccHslc30iLCBnZXRfdWNwbmFtZSgqY2NvZGUrKykpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgIGVsc2UgaWYgKGNoID09IFhDTF9OT1RQUk9QKQotICAgICAg
ICAgICAgewotICAgICAgICAgICAgZnByaW50ZihmLCAiXFxQeyVzfSIsIGdldF91Y3BuYW1lKCpj
Y29kZSsrKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgZWxzZQotICAgICAgICAgICAgewot
ICAgICAgICAgICAgY2NvZGUgKz0gMSArIHByaW50X2NoYXIoZiwgY2NvZGUsIFRSVUUpOwotICAg
ICAgICAgICAgaWYgKGNoID09IFhDTF9SQU5HRSkKLSAgICAgICAgICAgICAgewotICAgICAgICAg
ICAgICBmcHJpbnRmKGYsICItIik7Ci0gICAgICAgICAgICAgIGNjb2RlICs9IDEgKyBwcmludF9j
aGFyKGYsIGNjb2RlLCBUUlVFKTsKLSAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAvKiBJbmRpY2F0ZSBhIG5vbi1VVEY4IGNsYXNz
IHdoaWNoIHdhcyBjcmVhdGVkIGJ5IG5lZ2F0aW9uICovCi0KLSAgICAgIGZwcmludGYoZiwgIl0l
cyIsICgqY29kZSA9PSBPUF9OQ0xBU1MpPyAiIChuZWcpIiA6ICIiKTsKLQotICAgICAgLyogSGFu
ZGxlIHJlcGVhdHMgYWZ0ZXIgYSBjbGFzcyBvciBhIGJhY2sgcmVmZXJlbmNlICovCi0KLSAgICAg
IENMQVNTX1JFRl9SRVBFQVQ6Ci0gICAgICBzd2l0Y2goKmNjb2RlKQotICAgICAgICB7Ci0gICAg
ICAgIGNhc2UgT1BfQ1JTVEFSOgotICAgICAgICBjYXNlIE9QX0NSTUlOU1RBUjoKLSAgICAgICAg
Y2FzZSBPUF9DUlBMVVM6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5QTFVTOgotICAgICAgICBjYXNl
IE9QX0NSUVVFUlk6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5RVUVSWToKLSAgICAgICAgZnByaW50
ZihmLCAiJXMiLCBPUF9uYW1lc1sqY2NvZGVdKTsKLSAgICAgICAgZXh0cmEgKz0gX3BjcmVfT1Bf
bGVuZ3Roc1sqY2NvZGVdOwotICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIE9QX0NSUkFO
R0U6Ci0gICAgICAgIGNhc2UgT1BfQ1JNSU5SQU5HRToKLSAgICAgICAgbWluID0gR0VUMihjY29k
ZSwxKTsKLSAgICAgICAgbWF4ID0gR0VUMihjY29kZSwzKTsKLSAgICAgICAgaWYgKG1heCA9PSAw
KSBmcHJpbnRmKGYsICJ7JWQsfSIsIG1pbik7Ci0gICAgICAgIGVsc2UgZnByaW50ZihmLCAieyVk
LCVkfSIsIG1pbiwgbWF4KTsKLSAgICAgICAgaWYgKCpjY29kZSA9PSBPUF9DUk1JTlJBTkdFKSBm
cHJpbnRmKGYsICI/Iik7Ci0gICAgICAgIGV4dHJhICs9IF9wY3JlX09QX2xlbmd0aHNbKmNjb2Rl
XTsKLSAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICBicmVhazsKLQotICAg
IC8qIEFueXRoaW5nIGVsc2UgaXMganVzdCBhbiBpdGVtIHdpdGggbm8gZGF0YSovCi0KLSAgICBk
ZWZhdWx0OgotICAgIGZwcmludGYoZiwgIiAgICAlcyIsIE9QX25hbWVzWypjb2RlXSk7Ci0gICAg
YnJlYWs7Ci0gICAgfQotCi0gIGNvZGUgKz0gX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV0gKyBleHRy
YTsKLSAgZnByaW50ZihmLCAiXG4iKTsKLSAgfQotfQotCi0vKiBFbmQgb2YgcGNyZV9wcmludGlu
dC5jICovCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfcHJpbnRpbnQuc3JjCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9wcmludGludC5jCShyZXZpc2lvbiAx
ODQ4MikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9wcmludGludC5zcmMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0NTEgQEAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqCisqICAgICAgUGVybC1Db21wYXRpYmxlIFJlZ3VsYXIgRXhwcmVz
c2lvbnMgICAgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKi8KKworLyogUENSRSBpcyBhIGxpYnJhcnkgb2YgZnVuY3Rpb25zIHRvIHN1cHBvcnQg
cmVndWxhciBleHByZXNzaW9ucyB3aG9zZSBzeW50YXgKK2FuZCBzZW1hbnRpY3MgYXJlIGFzIGNs
b3NlIGFzIHBvc3NpYmxlIHRvIHRob3NlIG9mIHRoZSBQZXJsIDUgbGFuZ3VhZ2UuCisKKyAgICAg
ICAgICAgICAgICAgICAgICAgV3JpdHRlbiBieSBQaGlsaXAgSGF6ZWwKKyAgICAgICAgICAgQ29w
eXJpZ2h0IChjKSAxOTk3LTIwMDUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2UKKworLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KK1JlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisKKyAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
IG5vdGljZSwKKyAgICAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisKKyAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorCisgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBVbml2ZXJzaXR5IG9m
IENhbWJyaWRnZSBub3IgdGhlIG5hbWVzIG9mIGl0cworICAgICAgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAgICAg
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisKK1RISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMgIkFTIElTIgorQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UKK0FSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRQorTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKK1NVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KK0NPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCitBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRQor
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorKi8KKwor
CisvKiBUaGlzIG1vZHVsZSBjb250YWlucyBhbiBQQ1JFIHByaXZhdGUgZGVidWdnaW5nIGZ1bmN0
aW9uIGZvciBwcmludGluZyBvdXQgdGhlCitpbnRlcm5hbCBmb3JtIG9mIGEgY29tcGlsZWQgcmVn
dWxhciBleHByZXNzaW9uLCBhbG9uZyB3aXRoIHNvbWUgc3VwcG9ydGluZworbG9jYWwgZnVuY3Rp
b25zLiAqLworCisKKyNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCisKKworc3RhdGljIGNvbnN0
IGNoYXIgKk9QX25hbWVzW10gPSB7IE9QX05BTUVfTElTVCB9OworCisKKy8qKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisqICAgICAgIFByaW50IHNpbmds
ZS0gb3IgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgICAgKgorKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKi8KKworc3RhdGljIGludAorcHJpbnRfY2hhcihGSUxF
ICpmLCB1c2NoYXIgKnB0ciwgQk9PTCB1dGY4KQoreworaW50IGMgPSAqcHRyOworCitpZiAoIXV0
ZjggfHwgKGMgJiAweGMwKSAhPSAweGMwKQorICB7CisgIGlmIChpc3ByaW50KGMpKSBmcHJpbnRm
KGYsICIlYyIsIGMpOyBlbHNlIGZwcmludGYoZiwgIlxceCUwMngiLCBjKTsKKyAgcmV0dXJuIDA7
CisgIH0KK2Vsc2UKKyAgeworICBpbnQgaTsKKyAgaW50IGEgPSBfcGNyZV91dGY4X3RhYmxlNFtj
ICYgMHgzZl07ICAvKiBOdW1iZXIgb2YgYWRkaXRpb25hbCBieXRlcyAqLworICBpbnQgcyA9IDYq
YTsKKyAgYyA9IChjICYgX3BjcmVfdXRmOF90YWJsZTNbYV0pIDw8IHM7CisgIGZvciAoaSA9IDE7
IGkgPD0gYTsgaSsrKQorICAgIHsKKyAgICAvKiBUaGlzIGlzIGEgY2hlY2sgZm9yIG1hbGZvcm1l
ZCBVVEYtODsgaXQgc2hvdWxkIG9ubHkgb2NjdXIgaWYgdGhlIHNhbml0eQorICAgIGNoZWNrIGhh
cyBiZWVuIHR1cm5lZCBvZmYuIFJhdGhlciB0aGFuIHN3YWxsb3cgcmFuZG9tIGJ5dGVzLCBqdXN0
IHN0b3AgaWYKKyAgICB3ZSBoaXQgYSBiYWQgb25lLiBQcmludCBpdCB3aXRoIFxYIGluc3RlYWQg
b2YgXHggYXMgYW4gaW5kaWNhdGlvbi4gKi8KKworICAgIGlmICgocHRyW2ldICYgMHhjMCkgIT0g
MHg4MCkKKyAgICAgIHsKKyAgICAgIGZwcmludGYoZiwgIlxcWHsleH0iLCBjKTsKKyAgICAgIHJl
dHVybiBpIC0gMTsKKyAgICAgIH0KKworICAgIC8qIFRoZSBieXRlIGlzIE9LICovCisKKyAgICBz
IC09IDY7CisgICAgYyB8PSAocHRyW2ldICYgMHgzZikgPDwgczsKKyAgICB9CisgIGlmIChjIDwg
MTI4KSBmcHJpbnRmKGYsICJcXHglMDJ4IiwgYyk7IGVsc2UgZnByaW50ZihmLCAiXFx4eyV4fSIs
IGMpOworICByZXR1cm4gYTsKKyAgfQorfQorCisKKworLyoqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICAgRmluZCBVbmljb2RlIHByb3Bl
cnR5IG5hbWUgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqLworCitzdGF0aWMgY29uc3QgY2hhciAqCitnZXRfdWNwbmFtZShpbnQg
cHJvcGVydHkpCit7CisjaWZkZWYgU1VQUE9SVF9VQ1AKK2ludCBpOworZm9yIChpID0gX3BjcmVf
dXR0X3NpemU7IGkgPj0gMDsgaS0tKQorICB7CisgIGlmIChwcm9wZXJ0eSA9PSBfcGNyZV91dHRb
aV0udmFsdWUpIGJyZWFrOworICB9CityZXR1cm4gKGkgPj0gMCk/IF9wY3JlX3V0dFtpXS5uYW1l
IDogIj8/IjsKKyNlbHNlCityZXR1cm4gIj8/IjsKKyNlbmRpZgorfQorCisKKworLyoqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyogICAgICAgICBQcmlu
dCBjb21waWxlZCByZWdleCAgICAgICAgICAgICAgICAgICAqCisqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworCisvKiBNYWtlIHRoaXMgZnVuY3Rpb24g
d29yayBmb3IgYSByZWdleCB3aXRoIGludGVnZXJzIGVpdGhlciBieXRlIG9yZGVyLgorSG93ZXZl
ciwgd2UgYXNzdW1lIHRoYXQgd2hhdCB3ZSBhcmUgcGFzc2VkIGlzIGEgY29tcGlsZWQgcmVnZXgu
ICovCisKK0VYUE9SVCB2b2lkCitfcGNyZV9wcmludGludChwY3JlICpleHRlcm5hbF9yZSwgRklM
RSAqZikKK3sKK3JlYWxfcGNyZSAqcmUgPSAocmVhbF9wY3JlICopZXh0ZXJuYWxfcmU7Cit1c2No
YXIgKmNvZGVzdGFydCwgKmNvZGU7CitCT09MIHV0Zjg7CisKK3Vuc2lnbmVkIGludCBvcHRpb25z
ID0gcmUtPm9wdGlvbnM7CitpbnQgb2Zmc2V0ID0gcmUtPm5hbWVfdGFibGVfb2Zmc2V0OworaW50
IGNvdW50ID0gcmUtPm5hbWVfY291bnQ7CitpbnQgc2l6ZSA9IHJlLT5uYW1lX2VudHJ5X3NpemU7
CisKK2lmIChyZS0+bWFnaWNfbnVtYmVyICE9IE1BR0lDX05VTUJFUikKKyAgeworICBvZmZzZXQg
PSAoKG9mZnNldCA8PCA4KSAmIDB4ZmYwMCkgfCAoKG9mZnNldCA+PiA4KSAmIDB4ZmYpOworICBj
b3VudCA9ICgoY291bnQgPDwgOCkgJiAweGZmMDApIHwgKChjb3VudCA+PiA4KSAmIDB4ZmYpOwor
ICBzaXplID0gKChzaXplIDw8IDgpICYgMHhmZjAwKSB8ICgoc2l6ZSA+PiA4KSAmIDB4ZmYpOwor
ICBvcHRpb25zID0gKChvcHRpb25zIDw8IDI0KSAmIDB4ZmYwMDAwMDApIHwKKyAgICAgICAgICAg
ICgob3B0aW9ucyA8PCAgOCkgJiAweDAwZmYwMDAwKSB8CisgICAgICAgICAgICAoKG9wdGlvbnMg
Pj4gIDgpICYgMHgwMDAwZmYwMCkgfAorICAgICAgICAgICAgKChvcHRpb25zID4+IDI0KSAmIDB4
MDAwMDAwZmYpOworICB9CisKK2NvZGUgPSBjb2Rlc3RhcnQgPSAodXNjaGFyICopcmUgKyBvZmZz
ZXQgKyBjb3VudCAqIHNpemU7Cit1dGY4ID0gKG9wdGlvbnMgJiBQQ1JFX1VURjgpICE9IDA7CisK
K2Zvcig7OykKKyAgeworICB1c2NoYXIgKmNjb2RlOworICBpbnQgYzsKKyAgaW50IGV4dHJhID0g
MDsKKworICBmcHJpbnRmKGYsICIlM2QgIiwgKGludCkoY29kZSAtIGNvZGVzdGFydCkpOworCisg
IGlmICgqY29kZSA+PSBPUF9CUkEpCisgICAgeworICAgIGlmICgqY29kZSAtIE9QX0JSQSA+IEVY
VFJBQ1RfQkFTSUNfTUFYKQorICAgICAgZnByaW50ZihmLCAiJTNkIEJyYSBleHRyYVxuIiwgR0VU
KGNvZGUsIDEpKTsKKyAgICBlbHNlCisgICAgICBmcHJpbnRmKGYsICIlM2QgQnJhICVkXG4iLCBH
RVQoY29kZSwgMSksICpjb2RlIC0gT1BfQlJBKTsKKyAgICBjb2RlICs9IF9wY3JlX09QX2xlbmd0
aHNbT1BfQlJBXTsKKyAgICBjb250aW51ZTsKKyAgICB9CisKKyAgc3dpdGNoKCpjb2RlKQorICAg
IHsKKyAgICBjYXNlIE9QX0VORDoKKyAgICBmcHJpbnRmKGYsICIgICAgJXNcbiIsIE9QX25hbWVz
Wypjb2RlXSk7CisgICAgZnByaW50ZihmLCAiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4iKTsKKyAgICByZXR1cm47CisK
KyAgICBjYXNlIE9QX09QVDoKKyAgICBmcHJpbnRmKGYsICIgJS4yeCAlcyIsIGNvZGVbMV0sIE9Q
X25hbWVzWypjb2RlXSk7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0NIQVI6CisgICAgICB7
CisgICAgICBmcHJpbnRmKGYsICIgICAgIik7CisgICAgICBkbworICAgICAgICB7CisgICAgICAg
IGNvZGUrKzsKKyAgICAgICAgY29kZSArPSAxICsgcHJpbnRfY2hhcihmLCBjb2RlLCB1dGY4KTsK
KyAgICAgICAgfQorICAgICAgd2hpbGUgKCpjb2RlID09IE9QX0NIQVIpOworICAgICAgZnByaW50
ZihmLCAiXG4iKTsKKyAgICAgIGNvbnRpbnVlOworICAgICAgfQorICAgIGJyZWFrOworCisgICAg
Y2FzZSBPUF9DSEFSTkM6CisgICAgICB7CisgICAgICBmcHJpbnRmKGYsICIgTkMgIik7CisgICAg
ICBkbworICAgICAgICB7CisgICAgICAgIGNvZGUrKzsKKyAgICAgICAgY29kZSArPSAxICsgcHJp
bnRfY2hhcihmLCBjb2RlLCB1dGY4KTsKKyAgICAgICAgfQorICAgICAgd2hpbGUgKCpjb2RlID09
IE9QX0NIQVJOQyk7CisgICAgICBmcHJpbnRmKGYsICJcbiIpOworICAgICAgY29udGludWU7Cisg
ICAgICB9CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0tFVFJNQVg6CisgICAgY2FzZSBPUF9L
RVRSTUlOOgorICAgIGNhc2UgT1BfQUxUOgorICAgIGNhc2UgT1BfS0VUOgorICAgIGNhc2UgT1Bf
QVNTRVJUOgorICAgIGNhc2UgT1BfQVNTRVJUX05PVDoKKyAgICBjYXNlIE9QX0FTU0VSVEJBQ0s6
CisgICAgY2FzZSBPUF9BU1NFUlRCQUNLX05PVDoKKyAgICBjYXNlIE9QX09OQ0U6CisgICAgY2Fz
ZSBPUF9DT05EOgorICAgIGNhc2UgT1BfUkVWRVJTRToKKyAgICBmcHJpbnRmKGYsICIlM2QgJXMi
LCBHRVQoY29kZSwgMSksIE9QX25hbWVzWypjb2RlXSk7CisgICAgYnJlYWs7CisKKyAgICBjYXNl
IE9QX0JSQU5VTUJFUjoKKyAgICBwcmludGYoIiUzZCAlcyIsIEdFVDIoY29kZSwgMSksIE9QX25h
bWVzWypjb2RlXSk7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX0NSRUY6CisgICAgaWYgKEdF
VDIoY29kZSwgMSkgPT0gQ1JFRl9SRUNVUlNFKQorICAgICAgZnByaW50ZihmLCAiICAgIENvbmQg
cmVjdXJzZSIpOworICAgIGVsc2UKKyAgICAgIGZwcmludGYoZiwgIiUzZCAlcyIsIEdFVDIoY29k
ZSwxKSwgT1BfbmFtZXNbKmNvZGVdKTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfU1RBUjoK
KyAgICBjYXNlIE9QX01JTlNUQVI6CisgICAgY2FzZSBPUF9QTFVTOgorICAgIGNhc2UgT1BfTUlO
UExVUzoKKyAgICBjYXNlIE9QX1FVRVJZOgorICAgIGNhc2UgT1BfTUlOUVVFUlk6CisgICAgY2Fz
ZSBPUF9UWVBFU1RBUjoKKyAgICBjYXNlIE9QX1RZUEVNSU5TVEFSOgorICAgIGNhc2UgT1BfVFlQ
RVBMVVM6CisgICAgY2FzZSBPUF9UWVBFTUlOUExVUzoKKyAgICBjYXNlIE9QX1RZUEVRVUVSWToK
KyAgICBjYXNlIE9QX1RZUEVNSU5RVUVSWToKKyAgICBmcHJpbnRmKGYsICIgICAgIik7CisgICAg
aWYgKCpjb2RlID49IE9QX1RZUEVTVEFSKQorICAgICAgeworICAgICAgZnByaW50ZihmLCAiJXMi
LCBPUF9uYW1lc1tjb2RlWzFdXSk7CisgICAgICBpZiAoY29kZVsxXSA9PSBPUF9QUk9QIHx8IGNv
ZGVbMV0gPT0gT1BfTk9UUFJPUCkKKyAgICAgICAgeworICAgICAgICBmcHJpbnRmKGYsICIgJXMg
IiwgZ2V0X3VjcG5hbWUoY29kZVsyXSkpOworICAgICAgICBleHRyYSA9IDE7CisgICAgICAgIH0K
KyAgICAgIH0KKyAgICBlbHNlIGV4dHJhID0gcHJpbnRfY2hhcihmLCBjb2RlKzEsIHV0ZjgpOwor
ICAgIGZwcmludGYoZiwgIiVzIiwgT1BfbmFtZXNbKmNvZGVdKTsKKyAgICBicmVhazsKKworICAg
IGNhc2UgT1BfRVhBQ1Q6CisgICAgY2FzZSBPUF9VUFRPOgorICAgIGNhc2UgT1BfTUlOVVBUTzoK
KyAgICBmcHJpbnRmKGYsICIgICAgIik7CisgICAgZXh0cmEgPSBwcmludF9jaGFyKGYsIGNvZGUr
MywgdXRmOCk7CisgICAgZnByaW50ZihmLCAieyIpOworICAgIGlmICgqY29kZSAhPSBPUF9FWEFD
VCkgZnByaW50ZihmLCAiLCIpOworICAgIGZwcmludGYoZiwgIiVkfSIsIEdFVDIoY29kZSwxKSk7
CisgICAgaWYgKCpjb2RlID09IE9QX01JTlVQVE8pIGZwcmludGYoZiwgIj8iKTsKKyAgICBicmVh
azsKKworICAgIGNhc2UgT1BfVFlQRUVYQUNUOgorICAgIGNhc2UgT1BfVFlQRVVQVE86CisgICAg
Y2FzZSBPUF9UWVBFTUlOVVBUTzoKKyAgICBmcHJpbnRmKGYsICIgICAgJXMiLCBPUF9uYW1lc1tj
b2RlWzNdXSk7CisgICAgaWYgKGNvZGVbM10gPT0gT1BfUFJPUCB8fCBjb2RlWzNdID09IE9QX05P
VFBST1ApCisgICAgICB7CisgICAgICBmcHJpbnRmKGYsICIgJXMgIiwgZ2V0X3VjcG5hbWUoY29k
ZVs0XSkpOworICAgICAgZXh0cmEgPSAxOworICAgICAgfQorICAgIGZwcmludGYoZiwgInsiKTsK
KyAgICBpZiAoKmNvZGUgIT0gT1BfVFlQRUVYQUNUKSBmcHJpbnRmKGYsICIwLCIpOworICAgIGZw
cmludGYoZiwgIiVkfSIsIEdFVDIoY29kZSwxKSk7CisgICAgaWYgKCpjb2RlID09IE9QX1RZUEVN
SU5VUFRPKSBmcHJpbnRmKGYsICI/Iik7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX05PVDoK
KyAgICBpZiAoaXNwcmludChjID0gY29kZVsxXSkpIGZwcmludGYoZiwgIiAgICBbXiVjXSIsIGMp
OworICAgICAgZWxzZSBmcHJpbnRmKGYsICIgICAgW15cXHglMDJ4XSIsIGMpOworICAgIGJyZWFr
OworCisgICAgY2FzZSBPUF9OT1RTVEFSOgorICAgIGNhc2UgT1BfTk9UTUlOU1RBUjoKKyAgICBj
YXNlIE9QX05PVFBMVVM6CisgICAgY2FzZSBPUF9OT1RNSU5QTFVTOgorICAgIGNhc2UgT1BfTk9U
UVVFUlk6CisgICAgY2FzZSBPUF9OT1RNSU5RVUVSWToKKyAgICBpZiAoaXNwcmludChjID0gY29k
ZVsxXSkpIGZwcmludGYoZiwgIiAgICBbXiVjXSIsIGMpOworICAgICAgZWxzZSBmcHJpbnRmKGYs
ICIgICAgW15cXHglMDJ4XSIsIGMpOworICAgIGZwcmludGYoZiwgIiVzIiwgT1BfbmFtZXNbKmNv
ZGVdKTsKKyAgICBicmVhazsKKworICAgIGNhc2UgT1BfTk9URVhBQ1Q6CisgICAgY2FzZSBPUF9O
T1RVUFRPOgorICAgIGNhc2UgT1BfTk9UTUlOVVBUTzoKKyAgICBpZiAoaXNwcmludChjID0gY29k
ZVszXSkpIGZwcmludGYoZiwgIiAgICBbXiVjXXsiLCBjKTsKKyAgICAgIGVsc2UgZnByaW50Zihm
LCAiICAgIFteXFx4JTAyeF17IiwgYyk7CisgICAgaWYgKCpjb2RlICE9IE9QX05PVEVYQUNUKSBm
cHJpbnRmKGYsICIwLCIpOworICAgIGZwcmludGYoZiwgIiVkfSIsIEdFVDIoY29kZSwxKSk7Cisg
ICAgaWYgKCpjb2RlID09IE9QX05PVE1JTlVQVE8pIGZwcmludGYoZiwgIj8iKTsKKyAgICBicmVh
azsKKworICAgIGNhc2UgT1BfUkVDVVJTRToKKyAgICBmcHJpbnRmKGYsICIlM2QgJXMiLCBHRVQo
Y29kZSwgMSksIE9QX25hbWVzWypjb2RlXSk7CisgICAgYnJlYWs7CisKKyAgICBjYXNlIE9QX1JF
RjoKKyAgICBmcHJpbnRmKGYsICIgICAgXFwlZCIsIEdFVDIoY29kZSwxKSk7CisgICAgY2NvZGUg
PSBjb2RlICsgX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV07CisgICAgZ290byBDTEFTU19SRUZfUkVQ
RUFUOworCisgICAgY2FzZSBPUF9DQUxMT1VUOgorICAgIGZwcmludGYoZiwgIiAgICAlcyAlZCAl
ZCAlZCIsIE9QX25hbWVzWypjb2RlXSwgY29kZVsxXSwgR0VUKGNvZGUsMiksCisgICAgICBHRVQo
Y29kZSwgMiArIExJTktfU0laRSkpOworICAgIGJyZWFrOworCisgICAgY2FzZSBPUF9QUk9QOgor
ICAgIGNhc2UgT1BfTk9UUFJPUDoKKyAgICBmcHJpbnRmKGYsICIgICAgJXMgJXMiLCBPUF9uYW1l
c1sqY29kZV0sIGdldF91Y3BuYW1lKGNvZGVbMV0pKTsKKyAgICBicmVhazsKKworICAgIC8qIE9Q
X1hDTEFTUyBjYW4gb25seSBvY2N1ciBpbiBVVEYtOCBtb2RlLiBIb3dldmVyLCB0aGVyZSdzIG5v
IGhhcm0gaW4KKyAgICBoYXZpbmcgdGhpcyBjb2RlIGFsd2F5cyBoZXJlLCBhbmQgaXQgbWFrZXMg
aXQgbGVzcyBtZXNzeSB3aXRob3V0IGFsbCB0aG9zZQorICAgICNpZmRlZnMuICovCisKKyAgICBj
YXNlIE9QX0NMQVNTOgorICAgIGNhc2UgT1BfTkNMQVNTOgorICAgIGNhc2UgT1BfWENMQVNTOgor
ICAgICAgeworICAgICAgaW50IGksIG1pbiwgbWF4OworICAgICAgQk9PTCBwcmludG1hcDsKKwor
ICAgICAgZnByaW50ZihmLCAiICAgIFsiKTsKKworICAgICAgaWYgKCpjb2RlID09IE9QX1hDTEFT
UykKKyAgICAgICAgeworICAgICAgICBleHRyYSA9IEdFVChjb2RlLCAxKTsKKyAgICAgICAgY2Nv
ZGUgPSBjb2RlICsgTElOS19TSVpFICsgMTsKKyAgICAgICAgcHJpbnRtYXAgPSAoKmNjb2RlICYg
WENMX01BUCkgIT0gMDsKKyAgICAgICAgaWYgKCgqY2NvZGUrKyAmIFhDTF9OT1QpICE9IDApIGZw
cmludGYoZiwgIl4iKTsKKyAgICAgICAgfQorICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAg
IHByaW50bWFwID0gVFJVRTsKKyAgICAgICAgY2NvZGUgPSBjb2RlICsgMTsKKyAgICAgICAgfQor
CisgICAgICAvKiBQcmludCBhIGJpdCBtYXAgKi8KKworICAgICAgaWYgKHByaW50bWFwKQorICAg
ICAgICB7CisgICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNTY7IGkrKykKKyAgICAgICAgICB7Cisg
ICAgICAgICAgaWYgKChjY29kZVtpLzhdICYgKDEgPDwgKGkmNykpKSAhPSAwKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgaW50IGo7CisgICAgICAgICAgICBmb3IgKGogPSBpKzE7IGogPCAy
NTY7IGorKykKKyAgICAgICAgICAgICAgaWYgKChjY29kZVtqLzhdICYgKDEgPDwgKGomNykpKSA9
PSAwKSBicmVhazsKKyAgICAgICAgICAgIGlmIChpID09ICctJyB8fCBpID09ICddJykgZnByaW50
ZihmLCAiXFwiKTsKKyAgICAgICAgICAgIGlmIChpc3ByaW50KGkpKSBmcHJpbnRmKGYsICIlYyIs
IGkpOyBlbHNlIGZwcmludGYoZiwgIlxceCUwMngiLCBpKTsKKyAgICAgICAgICAgIGlmICgtLWog
PiBpKQorICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgIGlmIChqICE9IGkgKyAxKSBmcHJp
bnRmKGYsICItIik7CisgICAgICAgICAgICAgIGlmIChqID09ICctJyB8fCBqID09ICddJykgZnBy
aW50ZihmLCAiXFwiKTsKKyAgICAgICAgICAgICAgaWYgKGlzcHJpbnQoaikpIGZwcmludGYoZiwg
IiVjIiwgaik7IGVsc2UgZnByaW50ZihmLCAiXFx4JTAyeCIsIGopOworICAgICAgICAgICAgICB9
CisgICAgICAgICAgICBpID0gajsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9CisgICAgICAg
IGNjb2RlICs9IDMyOworICAgICAgICB9CisKKyAgICAgIC8qIEZvciBhbiBYQ0xBU1MgdGhlcmUg
aXMgYWx3YXlzIHNvbWUgYWRkaXRpb25hbCBkYXRhICovCisKKyAgICAgIGlmICgqY29kZSA9PSBP
UF9YQ0xBU1MpCisgICAgICAgIHsKKyAgICAgICAgaW50IGNoOworICAgICAgICB3aGlsZSAoKGNo
ID0gKmNjb2RlKyspICE9IFhDTF9FTkQpCisgICAgICAgICAgeworICAgICAgICAgIGlmIChjaCA9
PSBYQ0xfUFJPUCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgIGZwcmludGYoZiwgIlxccHsl
c30iLCBnZXRfdWNwbmFtZSgqY2NvZGUrKykpOworICAgICAgICAgICAgfQorICAgICAgICAgIGVs
c2UgaWYgKGNoID09IFhDTF9OT1RQUk9QKQorICAgICAgICAgICAgeworICAgICAgICAgICAgZnBy
aW50ZihmLCAiXFxQeyVzfSIsIGdldF91Y3BuYW1lKCpjY29kZSsrKSk7CisgICAgICAgICAgICB9
CisgICAgICAgICAgZWxzZQorICAgICAgICAgICAgeworICAgICAgICAgICAgY2NvZGUgKz0gMSAr
IHByaW50X2NoYXIoZiwgY2NvZGUsIFRSVUUpOworICAgICAgICAgICAgaWYgKGNoID09IFhDTF9S
QU5HRSkKKyAgICAgICAgICAgICAgeworICAgICAgICAgICAgICBmcHJpbnRmKGYsICItIik7Cisg
ICAgICAgICAgICAgIGNjb2RlICs9IDEgKyBwcmludF9jaGFyKGYsIGNjb2RlLCBUUlVFKTsKKyAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgfQorCisg
ICAgICAvKiBJbmRpY2F0ZSBhIG5vbi1VVEY4IGNsYXNzIHdoaWNoIHdhcyBjcmVhdGVkIGJ5IG5l
Z2F0aW9uICovCisKKyAgICAgIGZwcmludGYoZiwgIl0lcyIsICgqY29kZSA9PSBPUF9OQ0xBU1Mp
PyAiIChuZWcpIiA6ICIiKTsKKworICAgICAgLyogSGFuZGxlIHJlcGVhdHMgYWZ0ZXIgYSBjbGFz
cyBvciBhIGJhY2sgcmVmZXJlbmNlICovCisKKyAgICAgIENMQVNTX1JFRl9SRVBFQVQ6CisgICAg
ICBzd2l0Y2goKmNjb2RlKQorICAgICAgICB7CisgICAgICAgIGNhc2UgT1BfQ1JTVEFSOgorICAg
ICAgICBjYXNlIE9QX0NSTUlOU1RBUjoKKyAgICAgICAgY2FzZSBPUF9DUlBMVVM6CisgICAgICAg
IGNhc2UgT1BfQ1JNSU5QTFVTOgorICAgICAgICBjYXNlIE9QX0NSUVVFUlk6CisgICAgICAgIGNh
c2UgT1BfQ1JNSU5RVUVSWToKKyAgICAgICAgZnByaW50ZihmLCAiJXMiLCBPUF9uYW1lc1sqY2Nv
ZGVdKTsKKyAgICAgICAgZXh0cmEgKz0gX3BjcmVfT1BfbGVuZ3Roc1sqY2NvZGVdOworICAgICAg
ICBicmVhazsKKworICAgICAgICBjYXNlIE9QX0NSUkFOR0U6CisgICAgICAgIGNhc2UgT1BfQ1JN
SU5SQU5HRToKKyAgICAgICAgbWluID0gR0VUMihjY29kZSwxKTsKKyAgICAgICAgbWF4ID0gR0VU
MihjY29kZSwzKTsKKyAgICAgICAgaWYgKG1heCA9PSAwKSBmcHJpbnRmKGYsICJ7JWQsfSIsIG1p
bik7CisgICAgICAgIGVsc2UgZnByaW50ZihmLCAieyVkLCVkfSIsIG1pbiwgbWF4KTsKKyAgICAg
ICAgaWYgKCpjY29kZSA9PSBPUF9DUk1JTlJBTkdFKSBmcHJpbnRmKGYsICI/Iik7CisgICAgICAg
IGV4dHJhICs9IF9wY3JlX09QX2xlbmd0aHNbKmNjb2RlXTsKKyAgICAgICAgYnJlYWs7CisgICAg
ICAgIH0KKyAgICAgIH0KKyAgICBicmVhazsKKworICAgIC8qIEFueXRoaW5nIGVsc2UgaXMganVz
dCBhbiBpdGVtIHdpdGggbm8gZGF0YSovCisKKyAgICBkZWZhdWx0OgorICAgIGZwcmludGYoZiwg
IiAgICAlcyIsIE9QX25hbWVzWypjb2RlXSk7CisgICAgYnJlYWs7CisgICAgfQorCisgIGNvZGUg
Kz0gX3BjcmVfT1BfbGVuZ3Roc1sqY29kZV0gKyBleHRyYTsKKyAgZnByaW50ZihmLCAiXG4iKTsK
KyAgfQorfQorCisvKiBFbmQgb2YgcGNyZV9wcmludGludC5jICovCkluZGV4OiBKYXZhU2NyaXB0
Q29yZS9wY3JlL3BjcmVfcHJpbnRpbnQuc3JjCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9wcmludGludC5zcmMJKHJldmlzaW9uIDE4NDgyKQorKysgSmF2YVNjcmlwdENv
cmUvcGNyZS9wY3JlX3ByaW50aW50LnNyYwkod29ya2luZyBjb3B5KQpAQCAtMzgsMTIgKzM4LDE1
IEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogKi8KIAogCi0vKiBUaGlzIG1vZHVsZSBj
b250YWlucyBhbiBQQ1JFIHByaXZhdGUgZGVidWdnaW5nIGZ1bmN0aW9uIGZvciBwcmludGluZyBv
dXQgdGhlCisvKiBUaGlzIG1vZHVsZSBjb250YWlucyBhIFBDUkUgcHJpdmF0ZSBkZWJ1Z2dpbmcg
ZnVuY3Rpb24gZm9yIHByaW50aW5nIG91dCB0aGUKIGludGVybmFsIGZvcm0gb2YgYSBjb21waWxl
ZCByZWd1bGFyIGV4cHJlc3Npb24sIGFsb25nIHdpdGggc29tZSBzdXBwb3J0aW5nCi1sb2NhbCBm
dW5jdGlvbnMuICovCitsb2NhbCBmdW5jdGlvbnMuIFRoaXMgc291cmNlIGZpbGUgaXMgdXNlZCBp
biB0d28gcGxhY2VzOgogCisoMSkgSXQgaXMgI2luY2x1ZGVkIGJ5IHBjcmVfY29tcGlsZS5jIHdo
ZW4gaXQgaXMgY29tcGlsZWQgaW4gZGVidWdnaW5nIG1vZGUKKyhERUJVRyBkZWZpbmVkIGluIHBj
cmVfaW50ZXJuYWwuaCkuIEl0IGlzIG5vdCBpbmNsdWRlZCBpbiBwcm9kdWN0aW9uIGNvbXBpbGVz
LgogCi0jaW5jbHVkZSAicGNyZV9pbnRlcm5hbC5oIgorKDIpIEl0IGlzIGFsd2F5cyAjaW5jbHVk
ZWQgYnkgcGNyZXRlc3QuYywgd2hpY2ggY2FuIGJlIGFza2VkIHRvIHByaW50IG91dCBhCitjb21w
aWxlZCByZWdleCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLiAqLwogCiAKIHN0YXRpYyBjb25zdCBj
aGFyICpPUF9uYW1lc1tdID0geyBPUF9OQU1FX0xJU1QgfTsKQEAgLTEyMSw4ICsxMjQsOCBAQCBy
ZXR1cm4gIj8/IjsKIC8qIE1ha2UgdGhpcyBmdW5jdGlvbiB3b3JrIGZvciBhIHJlZ2V4IHdpdGgg
aW50ZWdlcnMgZWl0aGVyIGJ5dGUgb3JkZXIuCiBIb3dldmVyLCB3ZSBhc3N1bWUgdGhhdCB3aGF0
IHdlIGFyZSBwYXNzZWQgaXMgYSBjb21waWxlZCByZWdleC4gKi8KIAotRVhQT1JUIHZvaWQKLV9w
Y3JlX3ByaW50aW50KHBjcmUgKmV4dGVybmFsX3JlLCBGSUxFICpmKQorc3RhdGljIHZvaWQKK3Bj
cmVfcHJpbnRpbnQocGNyZSAqZXh0ZXJuYWxfcmUsIEZJTEUgKmYpCiB7CiByZWFsX3BjcmUgKnJl
ID0gKHJlYWxfcGNyZSAqKWV4dGVybmFsX3JlOwogdXNjaGFyICpjb2Rlc3RhcnQsICpjb2RlOwpA
QCAtNDQ4LDQgKzQ1MSw0IEBAIGZvcig7OykKICAgfQogfQogCi0vKiBFbmQgb2YgcGNyZV9wcmlu
dGludC5jICovCisvKiBFbmQgb2YgcGNyZV9wcmludGludC5zcmMgKi8KSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3BjcmUvcGNyZV9yZWZjb3VudC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9yZWZjb3VudC5jCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9yZWZjb3VudC5jCSh3b3JraW5nIGNvcHkpCkBAIC02Myw3ICs2Myw3IEBAIFJl
dHVybnM6ICAgICAgICB0aGUgKHBvc3NpYmx5IHVwZGF0ZWQpIGMKICAgICAgICAgICAgICAgICBh
IG5lZ2F0aXZlIGVycm9yIG51bWJlcgogKi8KIAotRVhQT1JUIGludAorUENSRV9FWFBPUlQgaW50
CiBwY3JlX3JlZmNvdW50KHBjcmUgKmFyZ3VtZW50X3JlLCBpbnQgYWRqdXN0KQogewogcmVhbF9w
Y3JlICpyZSA9IChyZWFsX3BjcmUgKilhcmd1bWVudF9yZTsKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L3BjcmUvcGNyZV9zdHVkeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNy
ZV9zdHVkeS5jCShyZXZpc2lvbiAxODQ4NikKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9z
dHVkeS5jCSh3b3JraW5nIGNvcHkpCkBAIC00MDEsNyArNDAxLDcgQEAgUmV0dXJuczogICAgcG9p
bnRlciB0byBhIHBjcmVfZXh0cmEgYmxvYwogICAgICAgICAgICAgTlVMTCBvbiBlcnJvciBvciBp
ZiBubyBvcHRpbWl6YXRpb24gcG9zc2libGUKICovCiAKLUVYUE9SVCBwY3JlX2V4dHJhICoKK1BD
UkVfRVhQT1JUIHBjcmVfZXh0cmEgKgogcGNyZV9zdHVkeShjb25zdCBwY3JlICpleHRlcm5hbF9y
ZSwgaW50IG9wdGlvbnMsIGNvbnN0IGNoYXIgKiplcnJvcnB0cikKIHsKIHVzY2hhciBzdGFydF9i
aXRzWzMyXTsKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV90YWJsZXMuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdGFibGVzLmMJKHJldmlzaW9uIDE4NDg2
KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3RhYmxlcy5jCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw5IEBAIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiAKIC8qIFRoaXMg
bW9kdWxlIGNvbnRhaW5zIHNvbWUgZml4ZWQgdGFibGVzIHRoYXQgYXJlIHVzZWQgYnkgbW9yZSB0
aGFuIG9uZSBvZiB0aGUKLVBDUkUgY29kZSBtb2R1bGVzLiAqLworUENSRSBjb2RlIG1vZHVsZXMu
IFRoZSB0YWJsZXMgYXJlIGFsc28gI2luY2x1ZGVkIGJ5IHRoZSBwY3JldGVzdCBwcm9ncmFtLCB3
aGljaAordXNlcyBtYWNyb3MgdG8gY2hhbmdlIHRoZWlyIG5hbWVzIGZyb20gX3BjcmVfeHh4IHRv
IHh4eHgsIHRoZXJlYnkgYXZvaWRpbmcgbmFtZQorY2xhc2hlcyB3aXRoIHRoZSBsaWJyYXJ5LiAq
LwogCiAKICNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCkBAIC04MSw4ICs4Myw3IEBAIGNvbnN0
IHVzY2hhciBfcGNyZV91dGY4X3RhYmxlNFtdID0gewogICAzLDMsMywzLDMsMywzLDMsNCw0LDQs
NCw1LDUsNSw1IH07CiAKIC8qIFRoaXMgdGFibGUgdHJhbnNsYXRlcyBVbmljb2RlIHByb3BlcnR5
IG5hbWVzIGludG8gY29kZSB2YWx1ZXMgZm9yIHRoZQotdWNwX2ZpbmRjaGFyKCkgZnVuY3Rpb24u
IEl0IGlzIHVzZWQgYnkgcGNyZXRlc3QgYXMgd2VsbCBhcyBieSB0aGUgbGlicmFyeQotZnVuY3Rp
b25zLiAqLworX3BjcmVfdWNwX2ZpbmRjaGFyKCkgZnVuY3Rpb24uICovCiAKIGNvbnN0IHVjcF90
eXBlX3RhYmxlIF9wY3JlX3V0dFtdID0gewogICB7ICJDIiwgIDEyOCArIHVjcF9DIH0sCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdHJ5X2ZsaXBwZWQuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBK
YXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdHJ5X2ZsaXBwZWQuYwkocmV2aXNpb24gMTg0ODYpCisr
KyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdHJ5X2ZsaXBwZWQuYwkod29ya2luZyBjb3B5KQpA
QCAtOTQsNyArOTQsNyBAQCBSZXR1cm5zOiAgICAgICAgICAgdGhlIG5ldyBibG9jayBpZiBpcyBp
CiAgICAgICAgICAgICAgICAgICAgTlVMTCBpZiBpdCBpcyBub3QKICovCiAKLUVYUE9SVCByZWFs
X3BjcmUgKgorUENSRV9FWFBPUlQgcmVhbF9wY3JlICoKIF9wY3JlX3RyeV9mbGlwcGVkKGNvbnN0
IHJlYWxfcGNyZSAqcmUsIHJlYWxfcGNyZSAqaW50ZXJuYWxfcmUsCiAgIGNvbnN0IHBjcmVfc3R1
ZHlfZGF0YSAqc3R1ZHksIHBjcmVfc3R1ZHlfZGF0YSAqaW50ZXJuYWxfc3R1ZHkpCiB7CkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdWNwX2ZpbmRjaGFyLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
SmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3VjcF9maW5kY2hhci5jCShyZXZpc2lvbiAxODQ4NikK
KysrIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV91Y3BfZmluZGNoYXIuYwkod29ya2luZyBjb3B5
KQpAQCAtNDEsMTMgKzQxLDEyMSBAQCBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIC8qIFRo
aXMgbW9kdWxlIGNvbXBpbGVzIGNvZGUgZm9yIHN1cHBvcnRpbmcgdGhlIHVzZSBvZiBVbmljb2Rl
IGNoYXJhY3RlcgogcHJvcGVydGllcy4gV2UgdXNlIHRoZSAoZW1icnlvbmljIGF0IHRoZSB0aW1l
IG9mIHdyaXRpbmcpIFVDUCBsaWJyYXJ5LCBieQogaW5jbHVkaW5nIHNvbWUgb2YgaXRzIGZpbGVz
LCBjb3BpZXMgb2Ygd2hpY2ggaGF2ZSBiZWVuIHB1dCBpbiB0aGUgUENSRQotZGlzdHJpYnV0aW9u
LiBUaGVyZSBpcyBhIG1hY3JvIGluIHBjcmVfaW50ZXJuYWwuaCB0aGF0IGNoYW5nZXMgdGhlIG5h
bWUKLXVjcF9maW5kY2hhciBpbnRvIF9wY3JlX3VjcF9maW5kY2hhci4gKi8KK2Rpc3RyaWJ1dGlv
bi4gVGhlIGFjdHVhbCBzZWFyY2ggZnVuY3Rpb24gaXMgcmVwcm9kdWNlZCBoZXJlLCB3aXRoIGl0
cyBuYW1lCitjaGFuZ2VkLiAqLwogCiAKICNpbmNsdWRlICJwY3JlX2ludGVybmFsLmgiCiAKLSNp
bmNsdWRlICJ1Y3BfZmluZGNoYXIuYyIKKyNpbmNsdWRlICJ1Y3AuaCIgICAgICAgICAgICAgICAv
KiBDYXRlZ29yeSBkZWZpbml0aW9ucyAqLworI2luY2x1ZGUgInVjcGludGVybmFsLmgiICAgICAg
IC8qIEludGVybmFsIHRhYmxlIGRldGFpbHMgKi8KKyNpbmNsdWRlICJ1Y3B0YWJsZS5jIiAgICAg
ICAgICAvKiBUaGUgdGFibGUgaXRzZWxmICovCiAKIAorCisvKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKgorKiAgICAgICAgIFNlYXJjaCB0YWJsZSBhbmQg
cmV0dXJuIGRhdGEgICAgICAgICAgICoKKyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKiovCisKKy8qIFR3byB2YWx1ZXMgYXJlIHJldHVybmVkOiB0aGUgY2F0
ZWdvcnkgaXMgdWNwX0MsIHVjcF9MLCBldGMuIFRoZSBkZXRhaWxlZAorY2hhcmFjdGVyIHR5cGUg
aXMgdWNwX0x1LCB1Y3BfTmQsIGV0Yy4KKworQXJndW1lbnRzOgorICBjICAgICAgICAgICB0aGUg
Y2hhcmFjdGVyIHZhbHVlCisgIHR5cGVfcHRyICAgIHRoZSBkZXRhaWxlZCBjaGFyYWN0ZXIgdHlw
ZSBpcyByZXR1cm5lZCBoZXJlCisgIGNhc2VfcHRyICAgIGZvciBsZXR0ZXJzLCB0aGUgb3Bwb3Np
dGUgY2FzZSBpcyByZXR1cm5lZCBoZXJlLCBpZiB0aGVyZQorICAgICAgICAgICAgICAgIGlzIG9u
ZSwgZWxzZSB6ZXJvCisKK1JldHVybnM6ICAgICAgdGhlIGNoYXJhY3RlciB0eXBlIGNhdGVnb3J5
IG9yIC0xIGlmIG5vdCBmb3VuZAorKi8KKworUENSRV9FWFBPUlQgaW50CitfcGNyZV91Y3BfZmlu
ZGNoYXIoY29uc3QgaW50IGMsIGludCAqdHlwZV9wdHIsIGludCAqY2FzZV9wdHIpCit7Citjbm9k
ZSAqbm9kZSA9IHVjcF90YWJsZTsKK3JlZ2lzdGVyIGludCBjYyA9IGM7CitpbnQgY2FzZV9vZmZz
ZXQ7CisKK2ZvciAoOzspCisgIHsKKyAgcmVnaXN0ZXIgaW50IGQgPSBub2RlLT5mMSB8ICgobm9k
ZS0+ZjAgJiBmMF9jaGhtYXNrKSA8PCAxNik7CisgIGlmIChjYyA9PSBkKSBicmVhazsKKyAgaWYg
KGNjIDwgZCkKKyAgICB7CisgICAgaWYgKChub2RlLT5mMCAmIGYwX2xlZnRleGlzdHMpID09IDAp
IHJldHVybiAtMTsKKyAgICBub2RlICsrOworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICByZWdp
c3RlciBpbnQgcm9mZnNldCA9IChub2RlLT5mMiAmIGYyX3JpZ2h0bWFzaykgPj4gZjJfcmlnaHRz
aGlmdDsKKyAgICBpZiAocm9mZnNldCA9PSAwKSByZXR1cm4gLTE7CisgICAgbm9kZSArPSAxIDw8
IChyb2Zmc2V0IC0gMSk7CisgICAgfQorICB9CisKK3N3aXRjaCAoKCp0eXBlX3B0ciA9ICgobm9k
ZS0+ZjAgJiBmMF90eXBlbWFzaykgPj4gZjBfdHlwZXNoaWZ0KSkpCisgIHsKKyAgY2FzZSB1Y3Bf
Q2M6CisgIGNhc2UgdWNwX0NmOgorICBjYXNlIHVjcF9DbjoKKyAgY2FzZSB1Y3BfQ286CisgIGNh
c2UgdWNwX0NzOgorICByZXR1cm4gdWNwX0M7CisgIGJyZWFrOworCisgIGNhc2UgdWNwX0xsOgor
ICBjYXNlIHVjcF9MdToKKyAgY2FzZV9vZmZzZXQgPSBub2RlLT5mMiAmIGYyX2Nhc2VtYXNrOwor
ICBpZiAoKGNhc2Vfb2Zmc2V0ICYgMHgwMTAwKSAhPSAwKSBjYXNlX29mZnNldCB8PSAweGZmZmZm
MDAwOworICAqY2FzZV9wdHIgPSAoY2FzZV9vZmZzZXQgPT0gMCk/IDAgOiBjYyArIGNhc2Vfb2Zm
c2V0OworICByZXR1cm4gdWNwX0w7CisKKyAgY2FzZSB1Y3BfTG06CisgIGNhc2UgdWNwX0xvOgor
ICBjYXNlIHVjcF9MdDoKKyAgKmNhc2VfcHRyID0gMDsKKyAgcmV0dXJuIHVjcF9MOworICBicmVh
azsKKworICBjYXNlIHVjcF9NYzoKKyAgY2FzZSB1Y3BfTWU6CisgIGNhc2UgdWNwX01uOgorICBy
ZXR1cm4gdWNwX007CisgIGJyZWFrOworCisgIGNhc2UgdWNwX05kOgorICBjYXNlIHVjcF9ObDoK
KyAgY2FzZSB1Y3BfTm86CisgIHJldHVybiB1Y3BfTjsKKyAgYnJlYWs7CisKKyAgY2FzZSB1Y3Bf
UGM6CisgIGNhc2UgdWNwX1BkOgorICBjYXNlIHVjcF9QZToKKyAgY2FzZSB1Y3BfUGY6CisgIGNh
c2UgdWNwX1BpOgorICBjYXNlIHVjcF9QczoKKyAgY2FzZSB1Y3BfUG86CisgIHJldHVybiB1Y3Bf
UDsKKyAgYnJlYWs7CisKKyAgY2FzZSB1Y3BfU2M6CisgIGNhc2UgdWNwX1NrOgorICBjYXNlIHVj
cF9TbToKKyAgY2FzZSB1Y3BfU286CisgIHJldHVybiB1Y3BfUzsKKyAgYnJlYWs7CisKKyAgY2Fz
ZSB1Y3BfWmw6CisgIGNhc2UgdWNwX1pwOgorICBjYXNlIHVjcF9aczoKKyAgcmV0dXJuIHVjcF9a
OworICBicmVhazsKKworICBkZWZhdWx0OiAgICAgICAgIC8qICJTaG91bGQgbmV2ZXIgaGFwcGVu
IiAqLworICByZXR1cm4gLTE7CisgIGJyZWFrOworICB9Cit9CisKIC8qIEVuZCBvZiBwY3JlX3Vj
cF9maW5kY2hhci5jICovCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfdmVyc2lvbi5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV92ZXJzaW9uLmMJKHJldmlz
aW9uIDE4NDg2KQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX3ZlcnNpb24uYwkod29ya2lu
ZyBjb3B5KQpAQCAtNTIsNyArNTIsNyBAQCBzdHJpbmcgdGhhdCBpZGVudGlmaWVzIHRoZSBQQ1JF
IHZlcnNpb24gCiAjZGVmaW5lIFNUUklORyhhKSAgIyBhCiAjZGVmaW5lIFhTVFJJTkcocykgU1RS
SU5HKHMpCiAKLUVYUE9SVCBjb25zdCBjaGFyICoKK1BDUkVfRVhQT1JUIGNvbnN0IGNoYXIgKgog
cGNyZV92ZXJzaW9uKHZvaWQpCiB7CiByZXR1cm4gWFNUUklORyhQQ1JFX01BSk9SKSAiLiIgWFNU
UklORyhQQ1JFX01JTk9SKSAiICIgWFNUUklORyhQQ1JFX0RBVEUpOwpJbmRleDogSmF2YVNjcmlw
dENvcmUvcGNyZS9wY3JlX3hjbGFzcy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3Bj
cmUvcGNyZV94Y2xhc3MuYwkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3Jl
L3BjcmVfeGNsYXNzLmMJKHdvcmtpbmcgY29weSkKQEAgLTYwLDcgKzYwLDcgQEAgQXJndW1lbnRz
OgogUmV0dXJuczogICAgICBUUlVFIGlmIGNoYXJhY3RlciBtYXRjaGVzLCBlbHNlIEZBTFNFCiAq
LwogCi1FWFBPUlQgQk9PTAorUENSRV9FWFBPUlQgQk9PTAogX3BjcmVfeGNsYXNzKGludCBjLCBj
b25zdCB1c2NoYXIgKmRhdGEpCiB7CiBpbnQgdDsKQEAgLTEwMiw3ICsxMDIsNyBAQCB3aGlsZSAo
KHQgPSAqZGF0YSsrKSAhPSBYQ0xfRU5EKQogICAgIHsKICAgICBpbnQgY2hhcnR5cGUsIG90aGVy
Y2FzZTsKICAgICBpbnQgcnFkdHlwZSA9ICpkYXRhKys7Ci0gICAgaW50IGNhdGVnb3J5ID0gdWNw
X2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSk7CisgICAgaW50IGNhdGVnb3J5ID0g
X3BjcmVfdWNwX2ZpbmRjaGFyKGMsICZjaGFydHlwZSwgJm90aGVyY2FzZSk7CiAgICAgaWYgKHJx
ZHR5cGUgPj0gMTI4KQogICAgICAgewogICAgICAgaWYgKChycWR0eXBlIC0gMTI4ID09IGNhdGVn
b3J5KSA9PSAodCA9PSBYQ0xfUFJPUCkpIHJldHVybiAhbmVnYXRlZDsKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3BjcmUvdWNwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS91Y3Au
aAkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3VjcC5oCSh3b3JraW5n
IGNvcHkpCkBAIC02LDcgKzYsNyBAQAogI2lmbmRlZiBfVUNQX0gKICNkZWZpbmUgX1VDUF9ICiAK
LS8qIFRoZXNlIGFyZSB0aGUgY2hhcmFjdGVyIGNhdGVnb3JpZXMgdGhhdCBhcmUgcmV0dXJuZWQg
YnkgdWNwX2ZpbmRjaGFyICovCisvKiBUaGVzZSBhcmUgdGhlIGNoYXJhY3RlciBjYXRlZ29yaWVz
IHRoYXQgYXJlIHJldHVybmVkIGJ5IF9wY3JlX3VjcF9maW5kY2hhciAqLwogCiBlbnVtIHsKICAg
dWNwX0MsICAgICAvKiBPdGhlciAqLwpAQCAtMTgsNyArMTgsNyBAQCBlbnVtIHsKICAgdWNwX1og
ICAgICAvKiBTZXBhcmF0b3IgKi8KIH07CiAKLS8qIFRoZXNlIGFyZSB0aGUgZGV0YWlsZWQgY2hh
cmFjdGVyIHR5cGVzIHRoYXQgYXJlIHJldHVybmVkIGJ5IHVjcF9maW5kY2hhciAqLworLyogVGhl
c2UgYXJlIHRoZSBkZXRhaWxlZCBjaGFyYWN0ZXIgdHlwZXMgdGhhdCBhcmUgcmV0dXJuZWQgYnkg
X3BjcmVfdWNwX2ZpbmRjaGFyICovCiAKIGVudW0gewogICB1Y3BfQ2MsICAgIC8qIENvbnRyb2wg
Ki8KQEAgLTUzLDggKzUzLDYgQEAgZW51bSB7CiAgIHVjcF9acyAgICAgLyogU3BhY2Ugc2VwYXJh
dG9yICovCiB9OwogCi1leHRlcm4gaW50IHVjcF9maW5kY2hhcihjb25zdCBpbnQsIGludCAqLCBp
bnQgKik7Ci0KICNlbmRpZgogCiAvKiBFbmQgb2YgdWNwLmggKi8KSW5kZXg6IEphdmFTY3JpcHRD
b3JlL3BjcmUvdWNwX2ZpbmRjaGFyLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNy
ZS91Y3BfZmluZGNoYXIuYwkocmV2aXNpb24gMTg0ODYpCisrKyBKYXZhU2NyaXB0Q29yZS9wY3Jl
L3VjcF9maW5kY2hhci5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2MCArMCwwIEBACi0vKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgotKiAgICAgbGlidWNw
IC0gVW5pY29kZSBQcm9wZXJ0eSBUYWJsZSBoYW5kbGVyICAgICoKLSoqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCi0KLS8qIENvcHlyaWdodCAoYykgVW5p
dmVyc2l0eSBvZiBDYW1icmlkZ2UgMjAwNCAqLwotCi0vKiBUaGlzIGxpdHRsZSBsaWJyYXJ5IHBy
b3ZpZGVzIGEgZmFzdCB3YXkgb2Ygb2J0YWluaW5nIHRoZSBiYXNpYyBVbmljb2RlCi1wcm9wZXJ0
aWVzIG9mIGEgY2hhcmFjdGVyLCB1c2luZyBhIGNvbXBhY3QgYmluYXJ5IHRyZWUgdGhhdCBvY2N1
cGllcyBsZXNzIHRoYW4KLTEwMEsgYnl0ZXMuCi0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLW1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUgbWV0OgotCi0gICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsCi0gICAgICB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotCi0g
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAotICAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLQotICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYW1icmlkZ2Ugbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKLSAgICAgIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCi0gICAgICB0aGlzIHNvZnR3YXJlIHdp
dGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotCi1USElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJB
UyBJUyIKLUFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLUlNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFCi1BUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUKLUxJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLUNPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi1TVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLUlOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi1DT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUKLVBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSovCi0KLQotI2luY2x1ZGUgInVjcC5o
IiAgICAgICAgICAgICAgIC8qIEV4cG9ydGVkIGludGVyZmFjZSAqLwotI2luY2x1ZGUgInVjcGlu
dGVybmFsLmgiICAgICAgIC8qIEludGVybmFsIHRhYmxlIGRldGFpbHMgKi8KLSNpbmNsdWRlICJ1
Y3B0YWJsZS5jIiAgICAgICAgICAvKiBUaGUgdGFibGUgaXRzZWxmICovCi0KLQotLyogSW4gc29t
ZSBlbnZpcm9ubWVudHMsIGV4dGVybmFsIGZ1bmN0aW9ucyBoYXZlIHRvIGJlIHByZWNlZGVkIGJ5
IHNvbWUgbWFnaWMuCi1JbiBteSB3b3JsZCAoVW5peCksIHRoZXkgZG8gbm90LiBVc2UgYSBtYWNy
byB0byBkZWFsIHdpdGggdGhpcy4gKi8KLQotI2lmbmRlZiBFWFBPUlQKLSNkZWZpbmUgRVhQT1JU
Ci0jZW5kaWYKLQotCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqCi0qICAgICAgICAgU2VhcmNoIHRhYmxlIGFuZCByZXR1cm4gZGF0YSAgICAgICAg
ICAgKgotKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K
LQotLyogVHdvIHZhbHVlcyBhcmUgcmV0dXJuZWQ6IHRoZSBjYXRlZ29yeSBpcyB1Y3BfQywgdWNw
X0wsIGV0Yy4gVGhlIGRldGFpbGVkCi1jaGFyYWN0ZXIgdHlwZSBpcyB1Y3BfTHUsIHVjcF9OZCwg
ZXRjLgotCi1Bcmd1bWVudHM6Ci0gIGMgICAgICAgICAgIHRoZSBjaGFyYWN0ZXIgdmFsdWUKLSAg
dHlwZV9wdHIgICAgdGhlIGRldGFpbGVkIGNoYXJhY3RlciB0eXBlIGlzIHJldHVybmVkIGhlcmUK
LSAgY2FzZV9wdHIgICAgZm9yIGxldHRlcnMsIHRoZSBvcHBvc2l0ZSBjYXNlIGlzIHJldHVybmVk
IGhlcmUsIGlmIHRoZXJlCi0gICAgICAgICAgICAgICAgaXMgb25lLCBlbHNlIHplcm8KLQotUmV0
dXJuczogICAgICB0aGUgY2hhcmFjdGVyIHR5cGUgY2F0ZWdvcnkgb3IgLTEgaWYgbm90IGZvdW5k
Ci0qLwotCi1FWFBPUlQgaW50Ci11Y3BfZmluZGNoYXIoY29uc3QgaW50IGMsIGludCAqdHlwZV9w
dHIsIGludCAqY2FzZV9wdHIpCi17Ci1jbm9kZSAqbm9kZSA9IHVjcF90YWJsZTsKLXJlZ2lzdGVy
IGludCBjYyA9IGM7Ci1pbnQgY2FzZV9vZmZzZXQ7Ci0KLWZvciAoOzspCi0gIHsKLSAgcmVnaXN0
ZXIgaW50IGQgPSBub2RlLT5mMSB8ICgobm9kZS0+ZjAgJiBmMF9jaGhtYXNrKSA8PCAxNik7Ci0g
IGlmIChjYyA9PSBkKSBicmVhazsKLSAgaWYgKGNjIDwgZCkKLSAgICB7Ci0gICAgaWYgKChub2Rl
LT5mMCAmIGYwX2xlZnRleGlzdHMpID09IDApIHJldHVybiAtMTsKLSAgICBub2RlICsrOwotICAg
IH0KLSAgZWxzZQotICAgIHsKLSAgICByZWdpc3RlciBpbnQgcm9mZnNldCA9IChub2RlLT5mMiAm
IGYyX3JpZ2h0bWFzaykgPj4gZjJfcmlnaHRzaGlmdDsKLSAgICBpZiAocm9mZnNldCA9PSAwKSBy
ZXR1cm4gLTE7Ci0gICAgbm9kZSArPSAxIDw8IChyb2Zmc2V0IC0gMSk7Ci0gICAgfQotICB9Ci0K
LXN3aXRjaCAoKCp0eXBlX3B0ciA9ICgobm9kZS0+ZjAgJiBmMF90eXBlbWFzaykgPj4gZjBfdHlw
ZXNoaWZ0KSkpCi0gIHsKLSAgY2FzZSB1Y3BfQ2M6Ci0gIGNhc2UgdWNwX0NmOgotICBjYXNlIHVj
cF9DbjoKLSAgY2FzZSB1Y3BfQ286Ci0gIGNhc2UgdWNwX0NzOgotICByZXR1cm4gdWNwX0M7Ci0g
IGJyZWFrOwotCi0gIGNhc2UgdWNwX0xsOgotICBjYXNlIHVjcF9MdToKLSAgY2FzZV9vZmZzZXQg
PSBub2RlLT5mMiAmIGYyX2Nhc2VtYXNrOwotICBpZiAoKGNhc2Vfb2Zmc2V0ICYgMHgwMTAwKSAh
PSAwKSBjYXNlX29mZnNldCB8PSAweGZmZmZmMDAwOwotICAqY2FzZV9wdHIgPSAoY2FzZV9vZmZz
ZXQgPT0gMCk/IDAgOiBjYyArIGNhc2Vfb2Zmc2V0OwotICByZXR1cm4gdWNwX0w7Ci0KLSAgY2Fz
ZSB1Y3BfTG06Ci0gIGNhc2UgdWNwX0xvOgotICBjYXNlIHVjcF9MdDoKLSAgKmNhc2VfcHRyID0g
MDsKLSAgcmV0dXJuIHVjcF9MOwotICBicmVhazsKLQotICBjYXNlIHVjcF9NYzoKLSAgY2FzZSB1
Y3BfTWU6Ci0gIGNhc2UgdWNwX01uOgotICByZXR1cm4gdWNwX007Ci0gIGJyZWFrOwotCi0gIGNh
c2UgdWNwX05kOgotICBjYXNlIHVjcF9ObDoKLSAgY2FzZSB1Y3BfTm86Ci0gIHJldHVybiB1Y3Bf
TjsKLSAgYnJlYWs7Ci0KLSAgY2FzZSB1Y3BfUGM6Ci0gIGNhc2UgdWNwX1BkOgotICBjYXNlIHVj
cF9QZToKLSAgY2FzZSB1Y3BfUGY6Ci0gIGNhc2UgdWNwX1BpOgotICBjYXNlIHVjcF9QczoKLSAg
Y2FzZSB1Y3BfUG86Ci0gIHJldHVybiB1Y3BfUDsKLSAgYnJlYWs7Ci0KLSAgY2FzZSB1Y3BfU2M6
Ci0gIGNhc2UgdWNwX1NrOgotICBjYXNlIHVjcF9TbToKLSAgY2FzZSB1Y3BfU286Ci0gIHJldHVy
biB1Y3BfUzsKLSAgYnJlYWs7Ci0KLSAgY2FzZSB1Y3BfWmw6Ci0gIGNhc2UgdWNwX1pwOgotICBj
YXNlIHVjcF9aczoKLSAgcmV0dXJuIHVjcF9aOwotICBicmVhazsKLQotICBkZWZhdWx0OiAgICAg
ICAgIC8qICJTaG91bGQgbmV2ZXIgaGFwcGVuIiAqLwotICByZXR1cm4gLTE7Ci0gIGJyZWFrOwot
ICB9Ci19Ci0KLS8qIEVuZCBvZiB1Y3BfZmluZGNoYXIuYyAqLwo=
</data>
<flag name="review"
          id="4477"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>