<?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>129450</bug_id>
          
          <creation_ts>2014-02-27 14:27:05 -0800</creation_ts>
          <short_desc>JSC ignores the extra memory cost of HTMLCollection after a major GC</short_desc>
          <delta_ts>2014-02-27 21:47:53 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>benjamin</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985344</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 14:27:05 -0800</bug_when>
    <thetext>Report the extra memory cost of HTMLCollection to JSC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985348</commentid>
    <comment_count>1</comment_count>
      <attachid>225410</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 14:30:00 -0800</bug_when>
    <thetext>Created attachment 225410
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985365</commentid>
    <comment_count>2</comment_count>
      <attachid>225417</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 15:04:31 -0800</bug_when>
    <thetext>Created attachment 225417
Fixed builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985380</commentid>
    <comment_count>3</comment_count>
      <attachid>225417</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-27 15:37:08 -0800</bug_when>
    <thetext>Comment on attachment 225417
Fixed builds

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985385</commentid>
    <comment_count>4</comment_count>
      <attachid>225420</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 15:52:36 -0800</bug_when>
    <thetext>Created attachment 225420
Fixed Windows build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985455</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 21:35:10 -0800</bug_when>
    <thetext>&lt;rdar://problem/16192764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985460</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-02-27 21:47:53 -0800</bug_when>
    <thetext>Committed r164853: &lt;http://trac.webkit.org/changeset/164853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225410</attachid>
            <date>2014-02-27 14:30:00 -0800</date>
            <delta_ts>2014-02-27 15:04:29 -0800</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-129450-20140227143104.patch</filename>
            <type>text/plain</type>
            <size>39313</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NDc3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDE0LTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEpTQyBpZ25vcmVzIHRoZSBleHRy
YSBtZW1vcnkgY29zdCBvZiBIVE1MQ29sbGVjdGlvbiBhZnRlciBhIG1ham9yIEdDCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBvcnQgdGhlIGV4dHJh
IG1lbW9yeSBjb3N0IG9mIEhUTUxDb2xsZWN0aW9uIHRvIEpTQy4KKworICAgICAgICBVbmZvcnR1
bmF0ZWx5LCB0aGUgZXhpc3RpbmcgbWVjaGFuaXNtIHRvIHJlcG9ydCB0aGUgZXh0cmEgbWVtb3J5
IGNvc3QgaW4gdG9KUyBpcyBpbnN1ZmZpY2llbnQgZm9yCisgICAgICAgIEhUTUxDb2xsZWN0aW9u
IHNpbmNlIGNvbGxlY3Rpb24gY2FjaGVzIGFyZSBwb3B1bGF0ZWQgbGF0ZXIgd2hlbiBIVE1MQ29s
bGVjdGlvbiBpcyBhY2Nlc3NlZC4gQWxzbywKKyAgICAgICAgdGhlIGV4dHJhIG1lbW9yeSBjb3N0
IHJlcG9ydGVkIGJ5IEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCB3aWxsIGJlIHRocm93biBh
d2F5IGFmdGVyIGEgbWFqb3IgR0MuCisKKyAgICAgICAgVG8gd29yayBhcm91bmQgdGhpcyBsaW1p
dGF0aW9uLCBhZGRlZCBhIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlVc2FnZSBjYWxsIGluc2lk
ZSB2aXNpdENoaWxkcmVuCisgICAgICAgIGZvciBpbnRlcmZhY2VzIHdpdGggYSBuZXdseSBhZGRl
ZCBSZXBvcnRFeHRyYU1lbW9yeUNvc3QgSURMIGV4dGVuc2lvbiBmbGFnIHRvIHJlcG9ydCB0aGUg
ZXh0cmEgY29zdC4KKworICAgICAgICBTaW5jZSB3ZSBtYXkgbmVlZCB0byBnZW5lcmF0ZSB2aXNp
dENoaWxkcmVuIHdoZW4gdGhpcyBmbGFnIGlzIHNldCwgd2UgY2FuJ3QgYXV0b21hdGljYWxseSBk
ZXRlY3QKKyAgICAgICAgYW5kIGdlbmVyYXRlIGNhbGxzIHVzaW5nIEMrKyB0ZW1wbGF0ZSBhcyBk
b25lIGluIHIxNDg2NDguCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXIuaWRsOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEluc3RhbmNlTmVlZHNWaXNpdENo
aWxkcmVuKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1w
bGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQ6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKiBkb20vQ2hpbGROb2RlTGlzdC5oOgorICAgICAg
ICAqIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6cmVwb3J0RXh0cmFNZW1vcnlDb3N0Rm9yQ29sbGVjdGlvbkluZGV4Q2FjaGUpOgorICAgICAg
ICAqIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sbGVj
dGlvbkluZGV4Q2FjaGU6Om1lbW9yeUNvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVR5cGU+
OjpDb2xsZWN0aW9uSW5kZXhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46Om5v
ZGVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46OmNvbXB1dGVOb2RlQ291bnRV
cGRhdGluZ0xpc3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46Om5vZGVBdCk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46OmludmFsaWRhdGUpOgorICAgICAgICAqIGRv
bS9MaXZlTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVMaXN0OjptZW1v
cnlDb3N0KToKKyAgICAgICAgKiBkb20vTGl2ZU5vZGVMaXN0Lmg6CisgICAgICAgICogZG9tL05v
ZGVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdDo6bWVtb3J5Q29zdCk6CisgICAg
ICAgICogZG9tL05vZGVMaXN0LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRD
YWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpkaWRQb3B1bGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU6Om1lbW9yeUNvc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpmaW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjptZW1vcnlDb3N0KToKKyAgICAgICAgKiBodG1sL0hU
TUxDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1
cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisKIDIwMTQtMDItMjYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXh0cmFjdCBuYW1lZCBpdGVtcyBjYWNoZXMgaW4g
SFRNTENvbGxlY3Rpb24gYXMgYSBjbGFzcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMTI1LDYgKzExMjUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0Ns
aWVudFJlY3RMaXN0LmNwcAogICAgIGRvbS9DbGlwYm9hcmQuY3BwCiAgICAgZG9tL0NsaXBib2Fy
ZEV2ZW50LmNwcAorICAgIGRvbS9Db2xsZWN0aW9uQ2FjaGVJbmRleC5jcHAKICAgICBkb20vQ29t
bWVudC5jcHAKICAgICBkb20vQ29tcG9zaXRpb25FdmVudC5jcHAKICAgICBkb20vQ29udGFpbmVy
Tm9kZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTY0
NzczKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5
KQpAQCAtMjc1NywxMyArMjc1NywxNCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9DbGlwYm9hcmRFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmRFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggXAorCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db21wb3NpdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0
aW9uRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlci5pZGwJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3
IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCisgICAgUmVwb3J0RXh0cmFNZW1vcnlDb3N0LAogXSBpbnRlcmZhY2UgQXVkaW9C
dWZmZXIgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsgLy8gaW4gc2FtcGxl
LWZyYW1lcwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsgLy8gaW4gc2Vj
b25kcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNTE5LDYgKzM1MTks
NyBAQAogCQk5QkM2QzIxQzEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OUJDNkMyMUExM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cCAqLzsgfTsKIAkJOUJEMEJGOTMxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDBCRjkx
MTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi87IH07CiAJCTlCRDBCRjk0
MTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDBCRjkyMTJBNDJCRjUwMDcyRkQ0MyAv
KiBTY29wZWRFdmVudFF1ZXVlLmNwcCAqLzsgfTsKKwkJOUJEOEE5NUExOEJFRkM3NjAwOTg3RTlB
IC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDhBOTU5MThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9u
SW5kZXhDYWNoZS5jcHAgKi87IH07CiAJCTlCRjlBODgwMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDlCRjlBODdFMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJOUJGOUE4ODExNjQ4REQyRjAwMUM2QjIz
IC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRjlBODdGMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi87IH07CiAJCTlGMEQ2QjJFMTIxQkZFQkEwMDZD
MDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGMEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNw
ZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKQEAgLTEwNDgxLDYgKzEwNDgyLDcgQEAKIAkJ
OUJDNkMyMUExM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEMEJGOTExMkE0
MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU2NvcGVkRXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5QkQwQkY5MjEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY29wZWRFdmVudFF1ZXVlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3RTlBIC8q
IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOUJGOUE4N0UxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRm9y
bUNvbnRyb2xzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlC
RjlBODdGMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkMxMjFCRkVCQTAw
NkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMTg4Niw2ICsyMTg4OCw3IEBACiAJCQkJODUwMzFCMkEwQTQ0
RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggKi8sCiAJCQkJMkQ5MDY2MEMwNjY1RDkz
NzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5tbSAqLywKIAkJCQlFNDI1QTQ5OTE4MjkyQjg0MDAy
MENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCAqLywKKwkJCQk5QkQ4QTk1OTE4QkVGQzc2
MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwICovLAogCQkJCTY1NTBCNjk3MDk5
REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmNwcCAqLywKIAkJCQk2NTUwQjY5ODA5OURGMDI3MDA5
MEQ3ODEgLyogQ29tbWVudC5oICovLAogCQkJCTg1MDg5Q0M3MEE5OEMyMjYwMEEyNzVBQSAvKiBD
b21tZW50LmlkbCAqLywKQEAgLTI3MDY1LDYgKzI3MDY4LDcgQEAKIAkJCQk5N0RDRTIwMTEwODA3
Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTE3NDFEMTIwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxNjBGNDk4MEIwQUE3NUYwMEMxRDJBRiAvKiBIaXN0b3J5SXRlbU1hYy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCTlCRDhBOTVBMThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0aW9uSW5k
ZXhDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTY5QjBGMjEzRDBCMzNGMDBERjM1MjEg
LyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODI4
N0Y2MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTMwN0YxRDcwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcu
aAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01C
aW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0MiwxOSArNjQyLDYgQEAgcHVibGljOgogICAg
IHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKHRlc3Q8VD4oMCkpID09IHNpemVvZihZ
ZXNUeXBlKTsKIH07CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBib29sIGhhc1JlcG9ydENvc3RG
dW5jdGlvbiA9IEhhc01lbW9yeUNvc3RNZW1iZXJGdW5jdGlvbjxUPjo6dmFsdWUgPiBzdHJ1Y3Qg
UmVwb3J0TWVtb3J5Q29zdDsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVwb3J0TWVt
b3J5Q29zdDxULCB0cnVlPiB7Ci0gICAgc3RhdGljIHZvaWQgcmVwb3J0TWVtb3J5Q29zdChKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCkKLSAgICB7Ci0gICAgICAgIGV4ZWMtPmhlYXAoKS0+
cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9yeUNvc3QoKSk7Ci0gICAgfQotfTsKLXRl
bXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVwb3J0TWVtb3J5Q29zdDxULCBmYWxzZT4gewot
ICAgIHN0YXRpYyB2b2lkIHJlcG9ydE1lbW9yeUNvc3QoSlNDOjpFeGVjU3RhdGUqLCBUKikKLSAg
ICB7Ci0gICAgfQotfTsKLQogZW51bSBTZWN1cml0eVJlcG9ydGluZ09wdGlvbiB7CiAgICAgRG9O
b3RSZXBvcnRTZWN1cml0eUVycm9yLAogICAgIFJlcG9ydFNlY3VyaXR5RXJyb3IsCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTc3MCw2ICs3NzAsMTUgQEAgc3Vi
IEluc3RhbmNlT3ZlcnJpZGVzUHV0RGVjbGFyYXRpb24KICAgICAgICAgfHwgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifTsKIH0KIAorc3ViIElu
c3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0Owor
ICAgIHJldHVybiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJr
RnVuY3Rpb24ifQorICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVu
dFRhcmdldCJ9CisgICAgfHwgJGludGVyZmFjZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiCisgICAg
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcG9ydEV4dHJhTWVtb3J5Q29z
dCJ9OworfQorCiBzdWIgR2VuZXJhdGVIZWFkZXIKIHsKICAgICBteSAkb2JqZWN0ID0gc2hpZnQ7
CkBAIC03ODMsNyArNzkyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhhc1JlYWxQ
YXJlbnQgPSAkaW50ZXJmYWNlLT5wYXJlbnQ7CiAgICAgbXkgJGhhc1BhcmVudCA9ICRoYXNMZWdh
Y3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CiAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdl
dFBhcmVudENsYXNzTmFtZSgkaW50ZXJmYWNlKTsKLSAgICBteSAkbmVlZHNNYXJrQ2hpbGRyZW4g
PSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24i
fSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifSB8fCAk
aW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRhcmdldCI7CisgICAgbXkgJG5lZWRzVmlzaXRDaGls
ZHJlbiA9IEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuKCRpbnRlcmZhY2UpOwogCiAgICAgIyAt
IEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24KICAgICBw
dXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFkZXIoJGlu
dGVyZmFjZSkpOwpAQCAtMTAwNSwxNCArMTAxNCwxNCBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAg
ICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICAgICAgcHVzaChAaGVh
ZGVyQ29udGVudCwgIiAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1fIiAuICRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICI7XG4iKTsKICAgICAgICAgICAgICAgICAkbnVt
Q2FjaGVkQXR0cmlidXRlcysrOwotICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGlsZHJlbiA9
IDE7CisgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IDE7CiAgICAgICAgICAg
ICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlvbmFsU3Ry
aW5nOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgIyB2aXNpdCBmdW5j
dGlvbgotICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4pIHsKKyAgICBpZiAoJG5lZWRzVmlzaXRD
aGlsZHJlbikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyB2b2lk
IHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpO1xuXG4iKTsKICAgICAg
ICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAg
ICAgfQpAQCAtMTE5Myw3ICsxMjAyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgICAgIHB1
c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpT
Qzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CiAgICAgfQotICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSBvciAkbmVlZHNNYXJr
Q2hpbGRyZW4pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpT
Q3VzdG9tTWFya0Z1bmN0aW9uIn0gb3IgJG5lZWRzVmlzaXRDaGlsZHJlbikgewogICAgICAgICAk
c3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiJ9ID0gMTsKICAgICB9
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwKQEAgLTE2OTAsNyArMTY5OSw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBhcmVudENs
YXNzTmFtZSgkaW50ZXJmYWNlKTsKICAgICBteSAkdmlzaWJsZUludGVyZmFjZU5hbWUgPSAkY29k
ZUdlbmVyYXRvci0+R2V0VmlzaWJsZUludGVyZmFjZU5hbWUoJGludGVyZmFjZSk7CiAgICAgbXkg
JGV2ZW50VGFyZ2V0ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV2ZW50VGFy
Z2V0In0gfHwgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJmYWNlLCAi
RXZlbnRUYXJnZXQiKSAmJiAkaW50ZXJmYWNlLT5uYW1lIG5lICJFdmVudFRhcmdldCIpOwotICAg
IG15ICRuZWVkc01hcmtDaGlsZHJlbiA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJFdmVudFRhcmdldCJ9IHx8ICRpbnRlcmZhY2UtPm5hbWUgZXEgIkV2ZW50VGFyZ2V0IjsK
KyAgICBteSAkbmVlZHNWaXNpdENoaWxkcmVuID0gSW5zdGFuY2VOZWVkc1Zpc2l0Q2hpbGRyZW4o
JGludGVyZmFjZSk7CiAKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbiA9IEdldE5hbWVkR2V0
dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbiA9
IEdldEluZGV4ZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKQEAgLTIxNjIsNyArMjE3MSw3
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9CiAKICAgICAgICAg
ICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWNo
ZWRBdHRyaWJ1dGUifSkgewotICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGlsZHJlbiA9IDE7
CisgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IDE7CiAgICAgICAgICAgICB9
CiAKICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hl
Y2tTZWN1cml0eSJ9ICYmCkBAIC0yNzQ2LDcgKzI3NTUsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1l
bnRhdGlvbgogCiAgICAgfQogCi0gICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbiAmJiAhJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0pIHsKKyAg
ICBpZiAoJG5lZWRzVmlzaXRDaGlsZHJlbiAmJiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0pIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGwsIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAie1xuIik7
CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhpc09iamVj
dCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwpAQCAtMjc1Nyw2ICsyNzY2LDkg
QEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9IHx8ICRpbnRlcmZhY2UtPm5hbWUgZXEg
IkV2ZW50VGFyZ2V0IikgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgdGhp
c09iamVjdC0+aW1wbCgpLnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9yKTtcbiIpOwogICAg
ICAgICB9CisgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVw
b3J0RXh0cmFNZW1vcnlDb3N0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlVc2FnZShjZWxsLCB0aGlzT2JqZWN0LT5pbXBs
KCkubWVtb3J5Q29zdCgpKTtcbiIpOworICAgICAgICB9CiAgICAgICAgIGlmICgkbnVtQ2FjaGVk
QXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFjZS0+YXR0
cmlidXRlc30pIHsKICAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlID0gJF87CkBAIC0zMDE5
LDggKzMwMzEsOCBAQCBFTkQKICAgICBDT01QSUxFX0FTU0VSVCghX19pc19wb2x5bW9ycGhpYygk
aW1wbFR5cGUpLCAke2ltcGxUeXBlfV9pc19wb2x5bW9ycGhpY19idXRfaWRsX2NsYWltc19ub3Rf
dG9fYmUpOwogI2VuZGlmCiBFTkQKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsK
LSAgICBSZXBvcnRNZW1vcnlDb3N0PCRpbXBsVHlwZT46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywg
aW1wbCk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCkgaWYgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcG9ydEV4dHJhTWVtb3J5Q29zdCJ9OworICAgIGV4ZWMt
PmhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9yeUNvc3QoKSk7CiBFTkQK
IAogICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CShyZXZpc2lvbiAxNjQ3
NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIFJhaXNlc0V4Y2VwdGlvbgogUmVmbGVj
dD0qCiBSZXBsYWNlYWJsZQogUmVwbGFjZWFibGVDb25zdHJ1Y3RvcgorUmVwb3J0RXh0cmFNZW1v
cnlDb3N0CiBSZXR1cm5OZXdPYmplY3QKIFNldHRlclJhaXNlc0V4Y2VwdGlvbgogU2tpcFZUYWJs
ZVZhbGlkYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCShyZXZp
c2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcgKzI1Myw2
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBh
ZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNl
IElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9
PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxU
ZXN0QWN0aXZlRE9NT2JqZWN0Pjo6cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICBy
ZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjI0LDcgKzIyNCw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVj
LCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0
byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFs
VlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVw
b3J0TWVtb3J5Q29zdDxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpyZXBvcnRNZW1vcnlDb3N0KGV4
ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTI2Nyw3ICsyNjcsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRh
dGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVB
U0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsK
ICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEV2ZW50Q29uc3RydWN0b3I+OjpyZXBv
cnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdEV2ZW50Q29uc3RydWN0b3I+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRh
cmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6
RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0
aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFT
RV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwog
I2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0RXZlbnRUYXJnZXQ+OjpyZXBvcnRNZW1v
cnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV2
ZW50VGFyZ2V0PihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIwOSw3ICsyMDksNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywg
CiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8g
dGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZU
YWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIFJlcG9y
dE1lbW9yeUNvc3Q8VGVzdEV4Y2VwdGlvbj46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXhjZXB0aW9uPihleGVjLCBnbG9i
YWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE4Nyw3ICsxODcsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRy
aWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJU
KGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgot
ICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpyZXBvcnRNZW1v
cnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODQ1LDcgKzg0NSw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCAKICAgICAvLyBhdHRyaWJ1dGUgdG8gVGVzdEludGVyZmFjZS4KICAgICBDT01QSUxF
X0FTU0VSVCghX19pc19wb2x5bW9ycGhpYyhUZXN0SW50ZXJmYWNlKSwgVGVzdEludGVyZmFjZV9p
c19wb2x5bW9ycGhpY19idXRfaWRsX2NsYWltc19ub3RfdG9fYmUpOwogI2VuZGlmCi0gICAgUmVw
b3J0TWVtb3J5Q29zdDxUZXN0SW50ZXJmYWNlPjo6cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBs
KTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RJbnRlcmZhY2U+KGV4ZWMsIGds
b2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpT
Qzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxp
ZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVM
RUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIp
OwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
cj46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dy
YXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZXhlYywgZ2xvYmFsT2JqZWN0LCBp
bXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAkocmV2
aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIsNyArMjMy
LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAgIC8vIGJ5
IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZh
Y2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVy
ID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0
PFRlc3ROYW1lZENvbnN0cnVjdG9yPjo6cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAg
ICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yPihleGVjLCBn
bG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMTY0Nzcz
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMTUsNyArNDIxNSw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVW
YWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAg
UkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50
ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0T2JqPjo6cmVwb3J0TWVtb3J5
Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RPYmo+
KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcgKzI1Myw2IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBW
VGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9u
CiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycz46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7CiAgICAgcmV0dXJuIGNy
ZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZXhlYywgZ2xvYmFs
T2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNyArMzM3LDYgQEAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAgIC8vIGJ5IGFkZGlu
ZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURM
IGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4
cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0PFRlc3RT
ZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGlt
cGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC02OTgsNyArNjk4LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMs
IAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRv
IHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxW
VGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBSZXBv
cnRNZW1vcnlDb3N0PFRlc3RUeXBlZGVmcz46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0VHlwZWRlZnM+KGV4ZWMsIGdsb2Jh
bE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAkocmV2aXNpb24gMTY0Nzcz
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVW
YWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAg
UkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50
ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxhdHRyaWJ1dGU+OjpyZXBvcnRNZW1v
cnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTYXR0cmli
dXRlPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCShy
ZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNyZWFkb25seS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNiBAQCBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYXR0cmlidXRlIHRv
IHJlYWRvbmx5LgogICAgIENPTVBJTEVfQVNTRVJUKCFfX2lzX3BvbHltb3JwaGljKHJlYWRvbmx5
KSwgcmVhZG9ubHlfaXNfcG9seW1vcnBoaWNfYnV0X2lkbF9jbGFpbXNfbm90X3RvX2JlKTsKICNl
bmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8cmVhZG9ubHk+OjpyZXBvcnRNZW1vcnlDb3N0KGV4
ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTcmVhZG9ubHk+KGV4ZWMs
IGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9DaGls
ZE5vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxp
c3QuaAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NoaWxkTm9kZUxp
c3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogICAgIHZp
cnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpIGNv
bnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1v
cnlDb3N0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVhbCBib29s
IGlzRW1wdHlOb2RlTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KIApAQCAt
ODEsNiArODIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25z
dCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJp
bmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbmRleENhY2hlLm1lbW9yeUNvc3QoKTsgfQogCiAgICAg
dmlydHVhbCBib29sIGlzQ2hpbGROb2RlTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRy
dWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENhY2hlLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29sbGVjdGlvbkluZGV4Q2FjaGUu
Y3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hlLmgiCisKKyNp
bmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IHJlcG9ydEV4dHJhTWVtb3J5Q29zdEZvckNvbGxlY3Rpb25JbmRleENhY2hlKHNpemVfdCBjb3N0
KQoreworICAgIEpTQzo6Vk0qIHZtID0gSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgpOworICAg
IEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOworICAgIHZtLT5oZWFwLnJlcG9ydEV4dHJhTWVt
b3J5Q29zdChjb3N0KTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rp
b25JbmRleENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rp
b25JbmRleENhY2hlLmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9D
b2xsZWN0aW9uSW5kZXhDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMiBAQAogI2lm
bmRlZiBDb2xsZWN0aW9uSW5kZXhDYWNoZV9oCiAjZGVmaW5lIENvbGxlY3Rpb25JbmRleENhY2hl
X2gKIAorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCit2
b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdEZvckNvbGxlY3Rpb25JbmRleENhY2hlKHNpemVfdCk7
CisKIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBOb2RlVHlwZT4KIGNsYXNzIENv
bGxlY3Rpb25JbmRleENhY2hlIHsKIHB1YmxpYzoKQEAgLTM3LDE1ICs0MSwxOSBAQCBwdWJsaWM6
CiAgICAgTm9kZVR5cGUqIG5vZGVBdChjb25zdCBDb2xsZWN0aW9uJiwgdW5zaWduZWQgaW5kZXgp
OwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSB7IHJl
dHVybiBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKSAqIHNpemVvZihOb2RlVHlwZSopOyB9CiAKIHBy
aXZhdGU6CisgICAgdW5zaWduZWQgY29tcHV0ZU5vZGVDb3VudFVwZGF0aW5nTGlzdENhY2hlKGNv
bnN0IENvbGxlY3Rpb24mKTsKICAgICBOb2RlVHlwZSogbm9kZUJlZm9yZUNhY2hlZChjb25zdCBD
b2xsZWN0aW9uJiwgdW5zaWduZWQpOwogICAgIE5vZGVUeXBlKiBub2RlQWZ0ZXJDYWNoZWQoY29u
c3QgQ29sbGVjdGlvbiYsIHVuc2lnbmVkKTsKIAogICAgIE5vZGVUeXBlKiBtX2N1cnJlbnROb2Rl
OwogICAgIHVuc2lnbmVkIG1fY3VycmVudEluZGV4OwogICAgIHVuc2lnbmVkIG1fbm9kZUNvdW50
OwotICAgIGJvb2wgbV9ub2RlQ291bnRWYWxpZDsKKyAgICBWZWN0b3I8Tm9kZVR5cGUqPiBtX2Nh
Y2hlZExpc3Q7CisgICAgYm9vbCBtX25vZGVDb3VudFZhbGlkIDogMTsKKyAgICBib29sIG1fbGlz
dFZhbGlkIDogMTsKIH07CiAKIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBOb2Rl
VHlwZT4KQEAgLTU0LDYgKzYyLDcgQEAgaW5saW5lIENvbGxlY3Rpb25JbmRleENhY2hlPENvbGxl
Y3Rpb24sIAogICAgICwgbV9jdXJyZW50SW5kZXgoMCkKICAgICAsIG1fbm9kZUNvdW50KDApCiAg
ICAgLCBtX25vZGVDb3VudFZhbGlkKGZhbHNlKQorICAgICwgbV9saXN0VmFsaWQoZmFsc2UpCiB7
CiB9CiAKQEAgLTYxLDEyICs3MCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFz
cyBOb2RlVHkKIGlubGluZSB1bnNpZ25lZCBDb2xsZWN0aW9uSW5kZXhDYWNoZTxDb2xsZWN0aW9u
LCBOb2RlVHlwZT46Om5vZGVDb3VudChjb25zdCBDb2xsZWN0aW9uJiBjb2xsZWN0aW9uKQogewog
ICAgIGlmICghbV9ub2RlQ291bnRWYWxpZCkgewotICAgICAgICBpZiAoYXV0byBmaXJzdCA9IGNv
bGxlY3Rpb24uY29sbGVjdGlvbkZpcnN0KCkpIHsKLSAgICAgICAgICAgIHVuc2lnbmVkIGNvdW50
OwotICAgICAgICAgICAgY29sbGVjdGlvbi5jb2xsZWN0aW9uVHJhdmVyc2VGb3J3YXJkKCpmaXJz
dCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBjb3VudCk7Ci0gICAgICAg
ICAgICBtX25vZGVDb3VudCA9IGNvdW50ICsgMTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAg
ICBtX25vZGVDb3VudCA9IDA7CisgICAgICAgIG1fbm9kZUNvdW50ID0gY29tcHV0ZU5vZGVDb3Vu
dFVwZGF0aW5nTGlzdENhY2hlKGNvbGxlY3Rpb24pOwogICAgICAgICBtX25vZGVDb3VudFZhbGlk
ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTc0LDYgKzc4LDI5IEBAIGlubGluZSB1bnNpZ25lZCBDb2xs
ZWN0aW9uSW5kZXhDYWNoZTxDb2wKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbGxlY3Rpb24sIGNs
YXNzIE5vZGVUeXBlPgordW5zaWduZWQgQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q29sbGVjdGlvbiwg
Tm9kZVR5cGU+Ojpjb21wdXRlTm9kZUNvdW50VXBkYXRpbmdMaXN0Q2FjaGUoY29uc3QgQ29sbGVj
dGlvbiYgY29sbGVjdGlvbikKK3sKKyAgICBOb2RlVHlwZSogZmlyc3QgPSBjb2xsZWN0aW9uLmNv
bGxlY3Rpb25GaXJzdCgpOworICAgIGlmICghZmlyc3QpCisgICAgICAgIHJldHVybiAwOworCisg
ICAgdW5zaWduZWQgb2xkQ2FwYWNpdHkgPSBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKTsKKyAgICBO
b2RlVHlwZSogY3VycmVudE5vZGUgPSBmaXJzdDsKKyAgICB3aGlsZSAoY3VycmVudE5vZGUpIHsK
KyAgICAgICAgbV9jYWNoZWRMaXN0LmFwcGVuZChjdXJyZW50Tm9kZSk7CisgICAgICAgIHVuc2ln
bmVkIHRyYXZlcnNlZDsKKyAgICAgICAgY3VycmVudE5vZGUgPSBjb2xsZWN0aW9uLmNvbGxlY3Rp
b25UcmF2ZXJzZUZvcndhcmQoKmN1cnJlbnROb2RlLCAxLCB0cmF2ZXJzZWQpOworICAgICAgICBB
U1NFUlQodHJhdmVyc2VkID09IChjdXJyZW50Tm9kZSA/IDEgOiAwKSk7CisgICAgfQorICAgIG1f
bGlzdFZhbGlkID0gdHJ1ZTsKKworICAgIGlmICh1bnNpZ25lZCBjYXBhY2l0eURpZmZlcmVuY2Ug
PSBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKSAtIG9sZENhcGFjaXR5KQorICAgICAgICByZXBvcnRF
eHRyYU1lbW9yeUNvc3RGb3JDb2xsZWN0aW9uSW5kZXhDYWNoZShjYXBhY2l0eURpZmZlcmVuY2Ug
KiBzaXplb2YoTm9kZVR5cGUqKSk7CisKKyAgICByZXR1cm4gbV9jYWNoZWRMaXN0LnNpemUoKTsK
K30KKwordGVtcGxhdGUgPGNsYXNzIENvbGxlY3Rpb24sIGNsYXNzIE5vZGVUeXBlPgogaW5saW5l
IE5vZGVUeXBlKiBDb2xsZWN0aW9uSW5kZXhDYWNoZTxDb2xsZWN0aW9uLCBOb2RlVHlwZT46Om5v
ZGVCZWZvcmVDYWNoZWQoY29uc3QgQ29sbGVjdGlvbiYgY29sbGVjdGlvbiwgdW5zaWduZWQgaW5k
ZXgpCiB7CiAgICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwpAQCAtMTMzLDYgKzE2MCw5IEBAIGlu
bGluZSBOb2RlVHlwZSogQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q28KICAgICBpZiAobV9ub2RlQ291
bnRWYWxpZCAmJiBpbmRleCA+PSBtX25vZGVDb3VudCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKKyAgICBpZiAobV9saXN0VmFsaWQpCisgICAgICAgIHJldHVybiBtX2NhY2hlZExpc3RbaW5k
ZXhdOworCiAgICAgaWYgKG1fY3VycmVudE5vZGUpIHsKICAgICAgICAgaWYgKGluZGV4ID4gbV9j
dXJyZW50SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4gbm9kZUFmdGVyQ2FjaGVkKGNvbGxlY3Rp
b24sIGluZGV4KTsKQEAgLTE2NSw4ICsxOTUsMTEgQEAgdm9pZCBDb2xsZWN0aW9uSW5kZXhDYWNo
ZTxDb2xsZWN0aW9uLCBObwogewogICAgIG1fY3VycmVudE5vZGUgPSBudWxscHRyOwogICAgIG1f
bm9kZUNvdW50VmFsaWQgPSBmYWxzZTsKKyAgICBtX2xpc3RWYWxpZCA9IGZhbHNlOworICAgIG1f
Y2FjaGVkTGlzdC5zaHJpbmsoMCk7CiB9CiAKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2RvbS9MaXZlTm9kZUxpc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2RvbS9MaXZlTm9kZUxpc3QuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDYgKzE0MywxMSBA
QCBOb2RlKiBMaXZlTm9kZUxpc3Q6Oml0ZW0odW5zaWduZWQgb2Zmc2V0CiAgICAgcmV0dXJuIG1f
aW5kZXhDYWNoZS5ub2RlQXQoKnRoaXMsIG9mZnNldCk7CiB9CiAKK3NpemVfdCBMaXZlTm9kZUxp
c3Q6Om1lbW9yeUNvc3QoKSBjb25zdAoreworICAgIHJldHVybiBtX2luZGV4Q2FjaGUubWVtb3J5
Q29zdCgpOworfQorCiB2b2lkIExpdmVOb2RlTGlzdDo6aW52YWxpZGF0ZUNhY2hlKCkgY29uc3QK
IHsKICAgICBtX2luZGV4Q2FjaGUuaW52YWxpZGF0ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0xpdmVOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9MaXZl
Tm9kZUxpc3QuaAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0xpdmVO
b2RlTGlzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3Nyw3IEBAIHB1YmxpYzoKICAgICAv
LyBET00gQVBJCiAgICAgdmlydHVhbCB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCBvdmVycmlkZSBm
aW5hbDsKICAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgb2Zmc2V0KSBjb25zdCBvdmVy
cmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBBTFdBWVNfSU5MSU5FIGJvb2wgaXNSb290ZWRBdERvY3VtZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9yb290VHlwZSA9PSBOb2RlTGlzdElzUm9vdGVkQXREb2N1bWVudDsgfQogICAg
IEFMV0FZU19JTkxJTkUgTm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUo
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxOb2RlTGlzdEludmFsaWRhdGlvblR5cGU+KG1f
aW52YWxpZGF0aW9uVHlwZSk7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5oCShyZXZpc2lvbiAx
NjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpA
QCAtNDUsNiArNDUsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTGl2ZU5vZGVMaXN0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDaGlsZE5vZGVM
aXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNFbXB0eU5v
ZGVMaXN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1v
cnlDb3N0KCkgY29uc3QgeyByZXR1cm4gMDsgfQorCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwJKHJldmlzaW9uIDE2NDc3MykKKysrIFNv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlTGlzdC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIyLDYgKzIy
LDcgQEAKICAgICBDdXN0b21Jc1JlYWNoYWJsZSwKICAgICBKU0N1c3RvbUdldE93blByb3BlcnR5
U2xvdEFuZERlc2NyaXB0b3IsCiAgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCisgICAgUmVwb3J0
RXh0cmFNZW1vcnlDb3N0LAogXSBpbnRlcmZhY2UgTm9kZUxpc3QgewogCiAgICAgZ2V0dGVyIE5v
ZGUgaXRlbSh1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTENvbGxlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TENvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQ0LDYgKzQ0NCwxMCBAQCB2
b2lkIEhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDCiAgICAgICAgIGlmICghbmFt
ZUF0dHJWYWwuaXNFbXB0eSgpICYmIGlkQXR0clZhbCAhPSBuYW1lQXR0clZhbCAmJiAodHlwZSgp
ICE9IERvY0FsbCB8fCBuYW1lU2hvdWxkQmVWaXNpYmxlSW5Eb2N1bWVudEFsbCh0b0hUTUxFbGVt
ZW50KCplbGVtZW50KSkpKQogICAgICAgICAgICAgY2FjaGUuYXBwZW5kTmFtZUNhY2hlKG5hbWVB
dHRyVmFsLCBlbGVtZW50KTsKICAgICB9CisKKyAgICBtX2luZGV4Q2FjaGUubm9kZUNvdW50KCp0
aGlzKTsKKworICAgIGNhY2hlLmRpZFBvcHVsYXRlKCk7CiB9CiAKIGJvb2wgSFRNTENvbGxlY3Rp
b246Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3
ICs0MCwzNCBAQCBjbGFzcyBFbGVtZW50OwogCiBjbGFzcyBDb2xsZWN0aW9uTmFtZWRFbGVtZW50
Q2FjaGUgewogcHVibGljOgorI2lmbmRlZiBBU1NFUlRfRElTQUJMRUQKKyAgICBDb2xsZWN0aW9u
TmFtZWRFbGVtZW50Q2FjaGUgOiBtX2RpZFBvcHVsYXRlQ2FsbGVkKGZhbHNlKSB7IH0KKyNlbmRp
ZgorCiAgICAgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiogZmluZEVsZW1lbnRzV2l0aElkKGNvbnN0
IEF0b21pY1N0cmluZyYgaWQpIGNvbnN0IHsgcmV0dXJuIGZpbmQobV9pZFRvRWxlbWVudHNNYXAs
IGlkKTsgfQogICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4qIGZpbmRFbGVtZW50c1dpdGhOYW1l
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QgeyByZXR1cm4gZmluZChtX25hbWVUb0Vs
ZW1lbnRzTWFwLCBuYW1lKTsgfQogCiAgICAgdm9pZCBhcHBlbmRJZENhY2hlKGNvbnN0IEF0b21p
Y1N0cmluZyYgaWQsIEVsZW1lbnQqIGVsZW1lbnQpIHsgcmV0dXJuIGFwcGVuZChtX2lkVG9FbGVt
ZW50c01hcCwgaWQsIGVsZW1lbnQpOyB9CiAgICAgdm9pZCBhcHBlbmROYW1lQ2FjaGUoY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lLCBFbGVtZW50KiBlbGVtZW50KSAgeyByZXR1cm4gYXBwZW5kKG1f
bmFtZVRvRWxlbWVudHNNYXAsIG5hbWUsIGVsZW1lbnQpOyB9CiAKKyAgICB2b2lkIGRpZFBvcHVs
YXRlKCkKKyAgICB7CisjaWZuZGVmIEFTU0VSVF9ESVNBQkxFRAorICAgICAgICBtX2RpZFBvcHVs
YXRlQ2FsbGVkID0gdHJ1ZTsKKyNlbmRpZgorICAgICAgICBpZiAoc2l6ZV90IGNvc3QgPSBtZW1v
cnlDb3N0KCkpCisgICAgICAgICAgICByZXBvcnRFeHRyYU1lbW9yeUNvc3RGb3JDb2xsZWN0aW9u
SW5kZXhDYWNoZShjb3N0KTsKKyAgICB9CisgICAgc2l6ZV90IG1lbW9yeUNvc3QoKSBjb25zdCB7
IHJldHVybiAobV9pZFRvRWxlbWVudHNNYXAuc2l6ZSgpICsgbV9uYW1lVG9FbGVtZW50c01hcC5z
aXplKCkpICogc2l6ZW9mKEVsZW1lbnQqKTsgfQorCiBwcml2YXRlOgogICAgIHR5cGVkZWYgSGFz
aE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgVmVjdG9yPEVsZW1lbnQqPj4gU3RyaW5nVG9FbGVtZW50
c01hcDsKIAotICAgIHN0YXRpYyBjb25zdCBWZWN0b3I8RWxlbWVudCo+KiBmaW5kKGNvbnN0IFN0
cmluZ1RvRWxlbWVudHNNYXAmIG1hcCwgY29uc3QgQXRvbWljU3RyaW5nJiBrZXkpCisgICAgY29u
c3QgVmVjdG9yPEVsZW1lbnQqPiogZmluZChjb25zdCBTdHJpbmdUb0VsZW1lbnRzTWFwJiBtYXAs
IGNvbnN0IEF0b21pY1N0cmluZyYga2V5KSBjb25zdAogICAgIHsKKyNpZm5kZWYgQVNTRVJUX0RJ
U0FCTEVECisgICAgICAgIEFTU0VSVChtX2RpZFBvcHVsYXRlQ2FsbGVkKTsKKyNlbmRpZgogICAg
ICAgICBhdXRvIGl0ID0gbWFwLmZpbmQoa2V5LmltcGwoKSk7CiAgICAgICAgIHJldHVybiBpdCAh
PSBtYXAuZW5kKCkgPyAmaXQtPnZhbHVlIDogbnVsbHB0cjsKICAgICB9CkBAIC02Miw2ICs3OSw5
IEBAIHByaXZhdGU6CiAKICAgICBTdHJpbmdUb0VsZW1lbnRzTWFwIG1faWRUb0VsZW1lbnRzTWFw
OwogICAgIFN0cmluZ1RvRWxlbWVudHNNYXAgbV9uYW1lVG9FbGVtZW50c01hcDsKKyNpZm5kZWYg
QVNTRVJUX0RJU0FCTEVECisgICAgYm9vbCBtX2RpZFBvcHVsYXRlQ2FsbGVkOworI2VuZGlmCiB9
OwogCiBjbGFzcyBIVE1MQ29sbGVjdGlvbiA6IHB1YmxpYyBTY3JpcHRXcmFwcGFibGUsIHB1Ymxp
YyBSZWZDb3VudGVkPEhUTUxDb2xsZWN0aW9uPiB7CkBAIC03OCw2ICs5OCw3IEBAIHB1YmxpYzoK
ICAgICAvLyBOb24tRE9NIEFQSQogICAgIGJvb2wgaGFzTmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0
cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgdm9pZCBuYW1lZEl0ZW1zKGNvbnN0IEF0b21pY1N0cmlu
ZyYgbmFtZSwgVmVjdG9yPFJlZjxFbGVtZW50Pj4mKSBjb25zdDsKKyAgICBzaXplX3QgbWVtb3J5
Q29zdCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhDYWNoZS5tZW1vcnlDb3N0KCkgKyAobV9uYW1l
ZEVsZW1lbnRDYWNoZSA/IG1fbmFtZWRFbGVtZW50Q2FjaGUtPm1lbW9yeUNvc3QoKSA6IDApOyB9
CiAKICAgICBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcm9vdFR5
cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0KICAgICBOb2RlTGlzdEludmFsaWRh
dGlvblR5cGUgaW52YWxpZGF0aW9uVHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PE5v
ZGVMaXN0SW52YWxpZGF0aW9uVHlwZT4obV9pbnZhbGlkYXRpb25UeXBlKTsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5pZGwJKHJldmlzaW9uIDE2NDc3MykKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0y
Miw2ICsyMiw3IEBACiAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBHZW5lcmF0ZUlzUmVhY2hh
YmxlPUltcGxPd25lck5vZGVSb290LAogICAgIE9iakNQb2x5bW9ycGhpYywKKyAgICBSZXBvcnRF
eHRyYU1lbW9yeUNvc3QsCiBdIGludGVyZmFjZSBIVE1MQ29sbGVjdGlvbiB7CiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGVuZ3RoOwogICAgIGdldHRlciBOb2RlIGl0ZW0o
W0RlZmF1bHQ9VW5kZWZpbmVkXSBvcHRpb25hbCB1bnNpZ25lZCBsb25nIGluZGV4KTsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24u
Y3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29u
dHJvbHNDb2xsZWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczLDYgKzE3Myw4IEBAIHZv
aWQgSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb246OnVwZGF0ZU4KICAgICAgICAgICAgICAgICBj
YWNoZS5hcHBlbmROYW1lQ2FjaGUobmFtZUF0dHJWYWwsICZlbGVtZW50KTsKICAgICAgICAgfQog
ICAgIH0KKworICAgIGNhY2hlLmRpZFBvcHVsYXRlKCk7CiB9CiAKIHZvaWQgSFRNTEZvcm1Db250
cm9sc0NvbGxlY3Rpb246OmludmFsaWRhdGVDYWNoZSgpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225417</attachid>
            <date>2014-02-27 15:04:31 -0800</date>
            <delta_ts>2014-02-27 15:52:34 -0800</delta_ts>
            <desc>Fixed builds</desc>
            <filename>bug-129450-20140227150535.patch</filename>
            <type>text/plain</type>
            <size>41540</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NDc3NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDc0IEBACisyMDE0LTAyLTI2ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEpTQyBpZ25vcmVzIHRoZSBleHRy
YSBtZW1vcnkgY29zdCBvZiBIVE1MQ29sbGVjdGlvbiBhZnRlciBhIG1ham9yIEdDCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBvcnQgdGhlIGV4dHJh
IG1lbW9yeSBjb3N0IG9mIEhUTUxDb2xsZWN0aW9uIHRvIEpTQy4KKworICAgICAgICBVbmZvcnR1
bmF0ZWx5LCB0aGUgZXhpc3RpbmcgbWVjaGFuaXNtIHRvIHJlcG9ydCB0aGUgZXh0cmEgbWVtb3J5
IGNvc3QgaW4gdG9KUyBpcyBpbnN1ZmZpY2llbnQgZm9yCisgICAgICAgIEhUTUxDb2xsZWN0aW9u
IHNpbmNlIGNvbGxlY3Rpb24gY2FjaGVzIGFyZSBwb3B1bGF0ZWQgbGF0ZXIgd2hlbiBIVE1MQ29s
bGVjdGlvbiBpcyBhY2Nlc3NlZC4gQWxzbywKKyAgICAgICAgdGhlIGV4dHJhIG1lbW9yeSBjb3N0
IHJlcG9ydGVkIGJ5IEhlYXA6OnJlcG9ydEV4dHJhTWVtb3J5Q29zdCB3aWxsIGJlIHRocm93biBh
d2F5IGFmdGVyIGEgbWFqb3IgR0MuCisKKyAgICAgICAgVG8gd29yayBhcm91bmQgdGhpcyBsaW1p
dGF0aW9uLCBhZGRlZCBhIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlVc2FnZSBjYWxsIGluc2lk
ZSB2aXNpdENoaWxkcmVuCisgICAgICAgIGZvciBpbnRlcmZhY2VzIHdpdGggYSBuZXdseSBhZGRl
ZCBSZXBvcnRFeHRyYU1lbW9yeUNvc3QgSURMIGV4dGVuc2lvbiBmbGFnIHRvIHJlcG9ydCB0aGUg
ZXh0cmEgY29zdC4KKworICAgICAgICBTaW5jZSB3ZSBtYXkgbmVlZCB0byBnZW5lcmF0ZSB2aXNp
dENoaWxkcmVuIHdoZW4gdGhpcyBmbGFnIGlzIHNldCwgd2UgY2FuJ3QgYXV0b21hdGljYWxseSBk
ZXRlY3QKKyAgICAgICAgYW5kIGdlbmVyYXRlIGNhbGxzIHVzaW5nIEMrKyB0ZW1wbGF0ZSBhcyBk
b25lIGluIHIxNDg2NDguCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXIuaWRsOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEluc3RhbmNlTmVlZHNWaXNpdENo
aWxkcmVuKToKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1w
bGVtZW50YXRpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQ6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9i
amVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9y
cy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNhdHRyaWJ1dGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU3JlYWRvbmx5LmNwcDoKKyAgICAgICAgKiBkb20vQ2hpbGROb2RlTGlzdC5oOgorICAgICAg
ICAqIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6cmVwb3J0RXh0cmFNZW1vcnlDb3N0Rm9yQ29sbGVjdGlvbkluZGV4Q2FjaGUpOgorICAgICAg
ICAqIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sbGVj
dGlvbkluZGV4Q2FjaGU6Om1lbW9yeUNvc3QpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVR5cGU+
OjpDb2xsZWN0aW9uSW5kZXhDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46Om5v
ZGVDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46OmNvbXB1dGVOb2RlQ291bnRV
cGRhdGluZ0xpc3RDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46Om5vZGVBdCk6
CisgICAgICAgIChXZWJDb3JlOjpOb2RlVHlwZT46OmludmFsaWRhdGUpOgorICAgICAgICAqIGRv
bS9MaXZlTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVMaXN0OjptZW1v
cnlDb3N0KToKKyAgICAgICAgKiBkb20vTGl2ZU5vZGVMaXN0Lmg6CisgICAgICAgICogZG9tL05v
ZGVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdDo6bWVtb3J5Q29zdCk6CisgICAg
ICAgICogZG9tL05vZGVMaXN0LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRD
YWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpkaWRQb3B1bGF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU6Om1lbW9yeUNvc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpmaW5kKToKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjptZW1vcnlDb3N0KToKKyAgICAgICAgKiBodG1sL0hU
TUxDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1
cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisKIDIwMTQtMDItMjYgIFJ5b3N1a2UgTml3YSAgPHJu
aXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRXh0cmFjdCBuYW1lZCBpdGVtcyBjYWNoZXMgaW4g
SFRNTENvbGxlY3Rpb24gYXMgYSBjbGFzcwpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlz
aW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xMTI1LDYgKzExMjUsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL0Ns
aWVudFJlY3RMaXN0LmNwcAogICAgIGRvbS9DbGlwYm9hcmQuY3BwCiAgICAgZG9tL0NsaXBib2Fy
ZEV2ZW50LmNwcAorICAgIGRvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAKICAgICBkb20vQ29t
bWVudC5jcHAKICAgICBkb20vQ29tcG9zaXRpb25FdmVudC5jcHAKICAgICBkb20vQ29udGFpbmVy
Tm9kZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTY0
NzczKQorKysgU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5
KQpAQCAtMjc1NywxMyArMjc1NywxNCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL2RvbS9DbGlwYm9hcmRFdmVudC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DbGlw
Ym9hcmRFdmVudC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ2xpcGJvYXJkLmggXAorCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tbWVu
dC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21tZW50LmggXAogCVNvdXJjZS9XZWJDb3Jl
L2RvbS9Db21wb3NpdGlvbkV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbXBvc2l0
aW9uRXZlbnQuaCBcCi0JU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1z
LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5jcHAgXAor
CVNvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250
YWluZXJOb2RlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db250ZXh0RGVzdHJ1Y3Rpb25PYnNl
cnZlci5jcHAgXApJbmRleDogU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0J1ZmZlci5pZGwJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3
IEBACiBbCiAgICAgQ29uZGl0aW9uYWw9V0VCX0FVRElPLAogICAgIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUsCisgICAgUmVwb3J0RXh0cmFNZW1vcnlDb3N0LAogXSBpbnRlcmZhY2UgQXVkaW9C
dWZmZXIgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nIGxlbmd0aDsgLy8gaW4gc2FtcGxl
LWZyYW1lcwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9hdCBkdXJhdGlvbjsgLy8gaW4gc2Vj
b25kcwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHBy
b2ovV2ViQ29yZS52Y3hwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjIwMCw2ICsxMjIwMCwyMCBA
QAogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnxXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8
JChQbGF0Zm9ybSknPT0nUHJvZHVjdGlvbnx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4K
ICAgICA8L0NsQ29tcGlsZT4KKyAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXGRvbVxDb2xsZWN0
aW9uSW5kZXhDYWNoZS5jcHAiPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0i
JyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnX1dpbkNhaXJvfHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8V2luMzInIj50cnVlPC9FeGNs
dWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENv
bmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnU3VmZml4fHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXxXaW4zMiciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmln
dXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZXx4NjQnIj50cnVlPC9FeGNsdWRlZEZyb21C
dWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRp
b24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98V2luMzInIj50cnVlPC9FeGNsdWRl
ZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZp
Z3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1JlbGVhc2VfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cZG9tXENvbW1lbnQuY3BwIj4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249
IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfFdpbjMyJyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3x4NjQnIj50cnVlPC9FeGNsdWRlZEZy
b21CdWlsZD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzUxOSw2ICsz
NTE5LDcgQEAKIAkJOUJDNkMyMUMxM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDlCQzZDMjFBMTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgKi87IH07CiAJCTlCRDBCRjkzMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1
ZXVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkQw
QkY5MTEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5oICovOyB9OwogCQk5QkQw
QkY5NDEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkQwQkY5MjEyQTQyQkY1MDA3MkZE
NDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5jcHAgKi87IH07CisJCTlCRDhBOTVBMThCRUZDNzYwMDk4
N0U5QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkQ4QTk1OTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVj
dGlvbkluZGV4Q2FjaGUuY3BwICovOyB9OwogCQk5QkY5QTg4MDE2NDhERDJGMDAxQzZCMjMgLyog
SlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3RTE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1M
Rm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAgKi87IH07CiAJCTlCRjlBODgxMTY0OEREMkYwMDFD
NkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyog
SlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5oICovOyB9OwogCQk5RjBENkIyRTEyMUJGRUJB
MDA2QzAyODggLyogSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5RjBENkIyQzEyMUJGRUJBMDA2QzAyODggLyog
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgKi87IH07CkBAIC0xMDQ4MSw2ICsxMDQ4Miw3IEBA
CiAJCTlCQzZDMjFBMTNDQ0M5N0IwMDhFMDMzNyAvKiBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVu
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MVGV4dEZvcm1D
b250cm9sRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlCRDBCRjkx
MTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFNjb3BlZEV2ZW50UXVldWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOUJEMEJGOTIxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2NvcGVkRXZlbnRRdWV1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTlCRDhBOTU5MThCRUZDNzYwMDk4N0U5
QSAvKiBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDb2xsZWN0aW9uSW5kZXhDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTlCRjlBODdFMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRN
TEZvcm1Db250cm9sc0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5QkY5QTg3RjE2NDhERDJGMDAxQzZCMjMgLyogSlNIVE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU0hUTUxGb3JtQ29udHJvbHND
b2xsZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTlGMEQ2QjJDMTIxQkZF
QkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4ODYsNiArMjE4ODgsNyBAQAogCQkJCTg1MDMxQjJB
MEE0NEVGQzcwMEY5OTJFMCAvKiBDbGlwYm9hcmRFdmVudC5oICovLAogCQkJCTJEOTA2NjBDMDY2
NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0gKi8sCiAJCQkJRTQyNUE0OTkxODI5MkI4
NDAwMjBDRkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmggKi8sCisJCQkJOUJEOEE5NTkxOEJF
RkM3NjAwOTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLywKIAkJCQk2NTUwQjY5
NzA5OURGMDI3MDA5MEQ3ODEgLyogQ29tbWVudC5jcHAgKi8sCiAJCQkJNjU1MEI2OTgwOTlERjAy
NzAwOTBENzgxIC8qIENvbW1lbnQuaCAqLywKIAkJCQk4NTA4OUNDNzBBOThDMjI2MDBBMjc1QUEg
LyogQ29tbWVudC5pZGwgKi8sCkBAIC0yNzA2NSw2ICsyNzA2OCw3IEBACiAJCQkJOTdEQ0UyMDEx
MDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTUxNzQxRDEyMEIwNzI1OUEwMEVENDQyQyAvKiBIaXN0b3J5SXRlbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1MTYwRjQ5ODBCMEFBNzVGMDBDMUQyQUYgLyogSGlzdG9yeUl0ZW1NYWMubW0g
aW4gU291cmNlcyAqLywKKwkJCQk5QkQ4QTk1QTE4QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlv
bkluZGV4Q2FjaGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk2OUIwRjIxM0QwQjMzRjAwREYz
NTIxIC8qIEhpdFRlc3RpbmdUcmFuc2Zvcm1TdGF0ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQky
RDgyODdGNjE2RTRBMDM4MDA4NkJEMDAgLyogSGl0VGVzdExvY2F0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTkzMDdGMUQ3MEFGMkQ1OTAwMERCQTMxQSAvKiBIaXRUZXN0UmVzdWx0LmNwcCBp
biBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5k
aW5nLmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQmluZGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC02NDIsMTkgKzY0Miw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2YWx1ZSA9IHNpemVvZih0ZXN0PFQ+KDApKSA9PSBzaXpl
b2YoWWVzVHlwZSk7CiB9OwogCi10ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgYm9vbCBoYXNSZXBvcnRD
b3N0RnVuY3Rpb24gPSBIYXNNZW1vcnlDb3N0TWVtYmVyRnVuY3Rpb248VD46OnZhbHVlID4gc3Ry
dWN0IFJlcG9ydE1lbW9yeUNvc3Q7Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlcG9y
dE1lbW9yeUNvc3Q8VCwgdHJ1ZT4gewotICAgIHN0YXRpYyB2b2lkIHJlcG9ydE1lbW9yeUNvc3Qo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIFQqIGltcGwpCi0gICAgewotICAgICAgICBleGVjLT5oZWFw
KCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbXBsLT5tZW1vcnlDb3N0KCkpOwotICAgIH0KLX07
Ci10ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gc3RydWN0IFJlcG9ydE1lbW9yeUNvc3Q8VCwgZmFsc2U+
IHsKLSAgICBzdGF0aWMgdm9pZCByZXBvcnRNZW1vcnlDb3N0KEpTQzo6RXhlY1N0YXRlKiwgVCop
Ci0gICAgewotICAgIH0KLX07Ci0KIGVudW0gU2VjdXJpdHlSZXBvcnRpbmdPcHRpb24gewogICAg
IERvTm90UmVwb3J0U2VjdXJpdHlFcnJvciwKICAgICBSZXBvcnRTZWN1cml0eUVycm9yLApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0JKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC03NzAsNiArNzcwLDE1IEBA
IHN1YiBJbnN0YW5jZU92ZXJyaWRlc1B1dERlY2xhcmF0aW9uCiAgICAgICAgIHx8ICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21JbmRleGVkU2V0dGVyIn07CiB9CiAKK3N1
YiBJbnN0YW5jZU5lZWRzVmlzaXRDaGlsZHJlbgoreworICAgIG15ICRpbnRlcmZhY2UgPSBzaGlm
dDsKKyAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9t
TWFya0Z1bmN0aW9uIn0KKyAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
RXZlbnRUYXJnZXQifQorICAgIHx8ICRpbnRlcmZhY2UtPm5hbWUgZXEgIkV2ZW50VGFyZ2V0Igor
ICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBvcnRFeHRyYU1lbW9y
eUNvc3QifTsKK30KKwogc3ViIEdlbmVyYXRlSGVhZGVyCiB7CiAgICAgbXkgJG9iamVjdCA9IHNo
aWZ0OwpAQCAtNzgzLDcgKzc5Miw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIG15ICRoYXNS
ZWFsUGFyZW50ID0gJGludGVyZmFjZS0+cGFyZW50OwogICAgIG15ICRoYXNQYXJlbnQgPSAkaGFz
TGVnYWN5UGFyZW50IHx8ICRoYXNSZWFsUGFyZW50OwogICAgIG15ICRwYXJlbnRDbGFzc05hbWUg
PSBHZXRQYXJlbnRDbGFzc05hbWUoJGludGVyZmFjZSk7Ci0gICAgbXkgJG5lZWRzTWFya0NoaWxk
cmVuID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0
aW9uIn0gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV2ZW50VGFyZ2V0In0g
fHwgJGludGVyZmFjZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQiOworICAgIG15ICRuZWVkc1Zpc2l0
Q2hpbGRyZW4gPSBJbnN0YW5jZU5lZWRzVmlzaXRDaGlsZHJlbigkaW50ZXJmYWNlKTsKIAogICAg
ICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUgYW5kIGhlYWRlciBwcm90ZWN0aW9uCiAg
ICAgcHVzaChAaGVhZGVyQ29udGVudEhlYWRlciwgR2VuZXJhdGVIZWFkZXJDb250ZW50SGVhZGVy
KCRpbnRlcmZhY2UpKTsKQEAgLTEwMDUsMTQgKzEwMTQsMTQgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNpZiAke2NvbmRpdGlvbmFs
U3RyaW5nfVxuIikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOwogICAgICAgICAgICAgICAgIHB1c2go
QGhlYWRlckNvbnRlbnQsICIgICAgSlNDOjpXcml0ZUJhcnJpZXI8SlNDOjpVbmtub3duPiBtXyIg
LiAkYXR0cmlidXRlLT5zaWduYXR1cmUtPm5hbWUgLiAiO1xuIik7CiAgICAgICAgICAgICAgICAg
JG51bUNhY2hlZEF0dHJpYnV0ZXMrKzsKLSAgICAgICAgICAgICAgICAkbmVlZHNNYXJrQ2hpbGRy
ZW4gPSAxOworICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0Q2hpbGRyZW4gPSAxOwogICAgICAg
ICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIjZW5kaWZcbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIAogICAgICMgdmlzaXQg
ZnVuY3Rpb24KLSAgICBpZiAoJG5lZWRzTWFya0NoaWxkcmVuKSB7CisgICAgaWYgKCRuZWVkc1Zp
c2l0Q2hpbGRyZW4pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMg
dm9pZCB2aXNpdENoaWxkcmVuKEpTQ2VsbCosIEpTQzo6U2xvdFZpc2l0b3ImKTtcblxuIik7CiAg
ICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNWaXNpdENoaWxkcmVuIn0gPSAx
OwogICAgIH0KQEAgLTExOTMsNyArMTIwMiw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xv
dChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlND
OjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3Zl
cnJpZGVzR2V0T3duUHJvcGVydHlTbG90In0gPSAxOwogICAgIH0KLSAgICBpZiAoJGludGVyZmFj
ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0gb3IgJG5lZWRz
TWFya0NoaWxkcmVuKSB7CisgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9IG9yICRuZWVkc1Zpc2l0Q2hpbGRyZW4pIHsKICAgICAg
ICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9IDE7CiAg
ICAgfQogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsCkBAIC0xNjkwLDcgKzE2OTksNyBAQCBzdWIg
R2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15ICRwYXJlbnRDbGFzc05hbWUgPSBHZXRQYXJl
bnRDbGFzc05hbWUoJGludGVyZmFjZSk7CiAgICAgbXkgJHZpc2libGVJbnRlcmZhY2VOYW1lID0g
JGNvZGVHZW5lcmF0b3ItPkdldFZpc2libGVJbnRlcmZhY2VOYW1lKCRpbnRlcmZhY2UpOwogICAg
IG15ICRldmVudFRhcmdldCA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVu
dFRhcmdldCJ9IHx8ICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNJbnRlcmZhY2UoJGludGVyZmFj
ZSwgIkV2ZW50VGFyZ2V0IikgJiYgJGludGVyZmFjZS0+bmFtZSBuZSAiRXZlbnRUYXJnZXQiKTsK
LSAgICBteSAkbmVlZHNNYXJrQ2hpbGRyZW4gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiRXZlbnRUYXJnZXQifSB8fCAkaW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRhcmdl
dCI7CisgICAgbXkgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IEluc3RhbmNlTmVlZHNWaXNpdENoaWxk
cmVuKCRpbnRlcmZhY2UpOwogCiAgICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb24gPSBHZXROYW1l
ZEdldHRlckZ1bmN0aW9uKCRpbnRlcmZhY2UpOwogICAgIG15ICRpbmRleGVkR2V0dGVyRnVuY3Rp
b24gPSBHZXRJbmRleGVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CkBAIC0yMTYyLDcgKzIx
NzEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgfQogCiAgICAg
ICAgICAgICBpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
Q2FjaGVkQXR0cmlidXRlIn0pIHsKLSAgICAgICAgICAgICAgICAkbmVlZHNNYXJrQ2hpbGRyZW4g
PSAxOworICAgICAgICAgICAgICAgICRuZWVkc1Zpc2l0Q2hpbGRyZW4gPSAxOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNoZWNrU2VjdXJpdHkifSAmJgpAQCAtMjc0Niw3ICsyNzU1LDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KIAogICAgIH0KIAotICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4gJiYgISRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7
CisgICAgaWYgKCRuZWVkc1Zpc2l0Q2hpbGRyZW4gJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAidm9pZCAke2NsYXNzTmFtZX06OnZpc2l0Q2hpbGRyZW4oSlNDZWxsKiBjZWxsLCBT
bG90VmlzaXRvciYgdmlzaXRvcilcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIntc
biIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAke2NsYXNzTmFtZX0qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4oY2VsbCk7XG4iKTsKQEAgLTI3NTcsNiArMjc2
Niw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIGlmICgkaW50ZXJmYWNl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQifSB8fCAkaW50ZXJmYWNlLT5uYW1l
IGVxICJFdmVudFRhcmdldCIpIHsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IHRoaXNPYmplY3QtPmltcGwoKS52aXNpdEpTRXZlbnRMaXN0ZW5lcnModmlzaXRvcik7XG4iKTsK
ICAgICAgICAgfQorICAgICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IlJlcG9ydEV4dHJhTWVtb3J5Q29zdCJ9KSB7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIiAgICB2aXNpdG9yLnJlcG9ydEV4dHJhTWVtb3J5VXNhZ2UoY2VsbCwgdGhpc09iamVjdC0+
aW1wbCgpLm1lbW9yeUNvc3QoKSk7XG4iKTsKKyAgICAgICAgfQogICAgICAgICBpZiAoJG51bUNh
Y2hlZEF0dHJpYnV0ZXMgPiAwKSB7CiAgICAgICAgICAgICBmb3JlYWNoIChAeyRpbnRlcmZhY2Ut
PmF0dHJpYnV0ZXN9KSB7CiAgICAgICAgICAgICAgICAgbXkgJGF0dHJpYnV0ZSA9ICRfOwpAQCAt
MzAxOSw4ICszMDMxLDggQEAgRU5ECiAgICAgQ09NUElMRV9BU1NFUlQoIV9faXNfcG9seW1vcnBo
aWMoJGltcGxUeXBlKSwgJHtpbXBsVHlwZX1faXNfcG9seW1vcnBoaWNfYnV0X2lkbF9jbGFpbXNf
bm90X3RvX2JlKTsKICNlbmRpZgogRU5ECi0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVO
RCk7Ci0gICAgUmVwb3J0TWVtb3J5Q29zdDwkaW1wbFR5cGU+OjpyZXBvcnRNZW1vcnlDb3N0KGV4
ZWMsIGltcGwpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpIGlmICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJSZXBvcnRFeHRyYU1lbW9yeUNvc3QifTsKKyAgICBl
eGVjLT5oZWFwKCktPnJlcG9ydEV4dHJhTWVtb3J5Q29zdChpbXBsLT5tZW1vcnlDb3N0KCkpOwog
RU5ECiAKICAgICAgICAgaWYgKCRzdmdQcm9wZXJ0eVR5cGUpIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkocmV2aXNpb24g
MTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQCBSYWlzZXNFeGNlcHRpb24KIFJl
ZmxlY3Q9KgogUmVwbGFjZWFibGUKIFJlcGxhY2VhYmxlQ29uc3RydWN0b3IKK1JlcG9ydEV4dHJh
TWVtb3J5Q29zdAogUmV0dXJuTmV3T2JqZWN0CiBTZXR0ZXJSYWlzZXNFeGNlcHRpb24KIFNraXBW
VGFibGVWYWxpZGF0aW9uCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAko
cmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw3ICsy
NTMsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8g
YnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVy
ZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50
ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNv
c3Q8VGVzdEFjdGl2ZURPTU9iamVjdD46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7CiAg
ICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0QWN0aXZlRE9NT2JqZWN0PihleGVjLCBn
bG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIyNCw3ICsyMjQsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1
dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFj
dHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAg
IFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPjo6cmVwb3J0TWVtb3J5Q29z
dChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RDdXN0b21O
YW1lZEdldHRlcj4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjcsNyArMjY3LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZh
bGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBS
RUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRl
cik7CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0PFRlc3RFdmVudENvbnN0cnVjdG9yPjo6
cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBl
cjxKU1Rlc3RFdmVudENvbnN0cnVjdG9yPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQog
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRUYXJnZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMyw3ICszMzMsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFs
aWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJF
TEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVy
KTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEV2ZW50VGFyZ2V0Pjo6cmVwb3J0
TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RFdmVudFRhcmdldD4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEV4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMDksNyArMjA5LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4
ZWMsIAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRl
IHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1
YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBS
ZXBvcnRNZW1vcnlDb3N0PFRlc3RFeGNlcHRpb24+OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGlt
cGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEV4Y2VwdGlvbj4oZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0
ZUlzUmVhY2hhYmxlLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODcsNyArMTg3LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVj
U3RhdGUqIGV4ZWMsIAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24g
YXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FT
U0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5k
aWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0PFRlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlPjo6cmVwb3J0
TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTg0NSw3ICs4NDUsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgCiAgICAgLy8gYXR0cmlidXRlIHRvIFRlc3RJbnRlcmZhY2UuCiAgICAgQ09N
UElMRV9BU1NFUlQoIV9faXNfcG9seW1vcnBoaWMoVGVzdEludGVyZmFjZSksIFRlc3RJbnRlcmZh
Y2VfaXNfcG9seW1vcnBoaWNfYnV0X2lkbF9jbGFpbXNfbm90X3RvX2JlKTsKICNlbmRpZgotICAg
IFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEludGVyZmFjZT46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywg
aW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0SW50ZXJmYWNlPihleGVj
LCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMCw3ICsyMDAsNiBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxl
VmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAg
IFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2lu
dGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXI+OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVO
ZXdXcmFwcGVyPEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI+KGV4ZWMsIGdsb2JhbE9iamVj
dCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAJ
KHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMyLDcg
KzIzMiw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAv
LyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50
ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9p
bnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5
Q29zdDxUZXN0TmFtZWRDb25zdHJ1Y3Rvcj46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7
CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcj4oZXhl
YywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDE2
NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
YmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MjE1LDcgKzQyMTUsNiBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRh
YmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgog
ICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQ
b2ludGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdE9iaj46OnJlcG9ydE1l
bW9yeUNvc3QoZXhlYywgaW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0
T2JqPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9ycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1Myw3ICsyNTMsNiBAQCBKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBT
a2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5p
dGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRW
VGFibGVQb2ludGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM+OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVy
biBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+KGV4ZWMsIGds
b2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzM3LDcgKzMzNyw2
IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBh
ZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNl
IElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9
PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlPjo6cmVwb3J0TWVtb3J5Q29zdChleGVj
LCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2U+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjk4LDcgKzY5OCw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBl
eGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0
ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0
dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAg
UmVwb3J0TWVtb3J5Q29zdDxUZXN0VHlwZWRlZnM+OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGlt
cGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFR5cGVkZWZzPihleGVjLCBn
bG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAJKHJldmlzaW9uIDE2
NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJp
YnV0ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMSw3ICsyMDEsNiBAQCBKU0M6OkpTVmFsdWUg
dG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRh
YmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgog
ICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQ
b2ludGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8YXR0cmlidXRlPjo6cmVwb3J0
TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU2F0
dHJpYnV0ZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU3JlYWRvbmx5LmNw
cAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTcmVhZG9ubHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNyArMTU4LDYgQEAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAgIC8vIGF0dHJpYnV0
ZSB0byByZWFkb25seS4KICAgICBDT01QSUxFX0FTU0VSVCghX19pc19wb2x5bW9ycGhpYyhyZWFk
b25seSksIHJlYWRvbmx5X2lzX3BvbHltb3JwaGljX2J1dF9pZGxfY2xhaW1zX25vdF90b19iZSk7
CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0PHJlYWRvbmx5Pjo6cmVwb3J0TWVtb3J5Q29z
dChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU3JlYWRvbmx5Pihl
eGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20v
Q2hpbGROb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5v
ZGVMaXN0LmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9DaGlsZE5v
ZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAg
ICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51
bGxwdHI7IH0KICAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcm
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBzaXplX3Qg
bWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAogICAgIHZpcnR1YWwg
Ym9vbCBpc0VtcHR5Tm9kZUxpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CiAK
QEAgLTgxLDYgKzgyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aCgp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCBpbmRleCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWlj
U3RyaW5nJikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBzaXplX3QgbWVtb3J5Q29zdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faW5kZXhDYWNoZS5tZW1vcnlDb3N0KCk7IH0KIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0NoaWxkTm9kZUxpc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biB0cnVlOyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNo
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Db2xsZWN0aW9uSW5k
ZXhDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb2xsZWN0aW9uSW5kZXhDYWNoZS5oIgor
CisjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
dm9pZCByZXBvcnRFeHRyYU1lbW9yeUNvc3RGb3JDb2xsZWN0aW9uSW5kZXhDYWNoZShzaXplX3Qg
Y29zdCkKK3sKKyAgICBKU0M6OlZNKiB2bSA9IEpTRE9NV2luZG93QmFzZTo6Y29tbW9uVk0oKTsK
KyAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAgICB2bS0+aGVhcC5yZXBvcnRFeHRy
YU1lbW9yeUNvc3QoY29zdCk7Cit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Db2xs
ZWN0aW9uSW5kZXhDYWNoZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Db2xs
ZWN0aW9uSW5kZXhDYWNoZS5oCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vQ29sbGVjdGlvbkluZGV4Q2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDEzLCAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsOCArMjYsMTIgQEAK
ICNpZm5kZWYgQ29sbGVjdGlvbkluZGV4Q2FjaGVfaAogI2RlZmluZSBDb2xsZWN0aW9uSW5kZXhD
YWNoZV9oCiAKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAordm9pZCByZXBvcnRFeHRyYU1lbW9yeUNvc3RGb3JDb2xsZWN0aW9uSW5kZXhDYWNoZShzaXpl
X3QpOworCiB0ZW1wbGF0ZSA8Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3MgTm9kZVR5cGU+CiBjbGFz
cyBDb2xsZWN0aW9uSW5kZXhDYWNoZSB7CiBwdWJsaWM6CkBAIC0zNywxNSArNDEsMTkgQEAgcHVi
bGljOgogICAgIE5vZGVUeXBlKiBub2RlQXQoY29uc3QgQ29sbGVjdGlvbiYsIHVuc2lnbmVkIGlu
ZGV4KTsKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOworICAgIHNpemVfdCBtZW1vcnlDb3N0KCkg
eyByZXR1cm4gbV9jYWNoZWRMaXN0LmNhcGFjaXR5KCkgKiBzaXplb2YoTm9kZVR5cGUqKTsgfQog
CiBwcml2YXRlOgorICAgIHVuc2lnbmVkIGNvbXB1dGVOb2RlQ291bnRVcGRhdGluZ0xpc3RDYWNo
ZShjb25zdCBDb2xsZWN0aW9uJik7CiAgICAgTm9kZVR5cGUqIG5vZGVCZWZvcmVDYWNoZWQoY29u
c3QgQ29sbGVjdGlvbiYsIHVuc2lnbmVkKTsKICAgICBOb2RlVHlwZSogbm9kZUFmdGVyQ2FjaGVk
KGNvbnN0IENvbGxlY3Rpb24mLCB1bnNpZ25lZCk7CiAKICAgICBOb2RlVHlwZSogbV9jdXJyZW50
Tm9kZTsKICAgICB1bnNpZ25lZCBtX2N1cnJlbnRJbmRleDsKICAgICB1bnNpZ25lZCBtX25vZGVD
b3VudDsKLSAgICBib29sIG1fbm9kZUNvdW50VmFsaWQ7CisgICAgVmVjdG9yPE5vZGVUeXBlKj4g
bV9jYWNoZWRMaXN0OworICAgIGJvb2wgbV9ub2RlQ291bnRWYWxpZCA6IDE7CisgICAgYm9vbCBt
X2xpc3RWYWxpZCA6IDE7CiB9OwogCiB0ZW1wbGF0ZSA8Y2xhc3MgQ29sbGVjdGlvbiwgY2xhc3Mg
Tm9kZVR5cGU+CkBAIC01NCw2ICs2Miw3IEBAIGlubGluZSBDb2xsZWN0aW9uSW5kZXhDYWNoZTxD
b2xsZWN0aW9uLCAKICAgICAsIG1fY3VycmVudEluZGV4KDApCiAgICAgLCBtX25vZGVDb3VudCgw
KQogICAgICwgbV9ub2RlQ291bnRWYWxpZChmYWxzZSkKKyAgICAsIG1fbGlzdFZhbGlkKGZhbHNl
KQogewogfQogCkBAIC02MSwxMiArNzAsNyBAQCB0ZW1wbGF0ZSA8Y2xhc3MgQ29sbGVjdGlvbiwg
Y2xhc3MgTm9kZVR5CiBpbmxpbmUgdW5zaWduZWQgQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q29sbGVj
dGlvbiwgTm9kZVR5cGU+Ojpub2RlQ291bnQoY29uc3QgQ29sbGVjdGlvbiYgY29sbGVjdGlvbikK
IHsKICAgICBpZiAoIW1fbm9kZUNvdW50VmFsaWQpIHsKLSAgICAgICAgaWYgKGF1dG8gZmlyc3Qg
PSBjb2xsZWN0aW9uLmNvbGxlY3Rpb25GaXJzdCgpKSB7Ci0gICAgICAgICAgICB1bnNpZ25lZCBj
b3VudDsKLSAgICAgICAgICAgIGNvbGxlY3Rpb24uY29sbGVjdGlvblRyYXZlcnNlRm9yd2FyZCgq
Zmlyc3QsIHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKSwgY291bnQpOwotICAg
ICAgICAgICAgbV9ub2RlQ291bnQgPSBjb3VudCArIDE7Ci0gICAgICAgIH0gZWxzZQotICAgICAg
ICAgICAgbV9ub2RlQ291bnQgPSAwOworICAgICAgICBtX25vZGVDb3VudCA9IGNvbXB1dGVOb2Rl
Q291bnRVcGRhdGluZ0xpc3RDYWNoZShjb2xsZWN0aW9uKTsKICAgICAgICAgbV9ub2RlQ291bnRW
YWxpZCA9IHRydWU7CiAgICAgfQogCkBAIC03NCw2ICs3OCwyOSBAQCBpbmxpbmUgdW5zaWduZWQg
Q29sbGVjdGlvbkluZGV4Q2FjaGU8Q29sCiB9CiAKIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9u
LCBjbGFzcyBOb2RlVHlwZT4KK3Vuc2lnbmVkIENvbGxlY3Rpb25JbmRleENhY2hlPENvbGxlY3Rp
b24sIE5vZGVUeXBlPjo6Y29tcHV0ZU5vZGVDb3VudFVwZGF0aW5nTGlzdENhY2hlKGNvbnN0IENv
bGxlY3Rpb24mIGNvbGxlY3Rpb24pCit7CisgICAgTm9kZVR5cGUqIGZpcnN0ID0gY29sbGVjdGlv
bi5jb2xsZWN0aW9uRmlyc3QoKTsKKyAgICBpZiAoIWZpcnN0KQorICAgICAgICByZXR1cm4gMDsK
KworICAgIHVuc2lnbmVkIG9sZENhcGFjaXR5ID0gbV9jYWNoZWRMaXN0LmNhcGFjaXR5KCk7Cisg
ICAgTm9kZVR5cGUqIGN1cnJlbnROb2RlID0gZmlyc3Q7CisgICAgd2hpbGUgKGN1cnJlbnROb2Rl
KSB7CisgICAgICAgIG1fY2FjaGVkTGlzdC5hcHBlbmQoY3VycmVudE5vZGUpOworICAgICAgICB1
bnNpZ25lZCB0cmF2ZXJzZWQ7CisgICAgICAgIGN1cnJlbnROb2RlID0gY29sbGVjdGlvbi5jb2xs
ZWN0aW9uVHJhdmVyc2VGb3J3YXJkKCpjdXJyZW50Tm9kZSwgMSwgdHJhdmVyc2VkKTsKKyAgICAg
ICAgQVNTRVJUKHRyYXZlcnNlZCA9PSAoY3VycmVudE5vZGUgPyAxIDogMCkpOworICAgIH0KKyAg
ICBtX2xpc3RWYWxpZCA9IHRydWU7CisKKyAgICBpZiAodW5zaWduZWQgY2FwYWNpdHlEaWZmZXJl
bmNlID0gbV9jYWNoZWRMaXN0LmNhcGFjaXR5KCkgLSBvbGRDYXBhY2l0eSkKKyAgICAgICAgcmVw
b3J0RXh0cmFNZW1vcnlDb3N0Rm9yQ29sbGVjdGlvbkluZGV4Q2FjaGUoY2FwYWNpdHlEaWZmZXJl
bmNlICogc2l6ZW9mKE5vZGVUeXBlKikpOworCisgICAgcmV0dXJuIG1fY2FjaGVkTGlzdC5zaXpl
KCk7Cit9CisKK3RlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBOb2RlVHlwZT4KIGlu
bGluZSBOb2RlVHlwZSogQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q29sbGVjdGlvbiwgTm9kZVR5cGU+
Ojpub2RlQmVmb3JlQ2FjaGVkKGNvbnN0IENvbGxlY3Rpb24mIGNvbGxlY3Rpb24sIHVuc2lnbmVk
IGluZGV4KQogewogICAgIEFTU0VSVChtX2N1cnJlbnROb2RlKTsKQEAgLTEzMyw2ICsxNjAsOSBA
QCBpbmxpbmUgTm9kZVR5cGUqIENvbGxlY3Rpb25JbmRleENhY2hlPENvCiAgICAgaWYgKG1fbm9k
ZUNvdW50VmFsaWQgJiYgaW5kZXggPj0gbV9ub2RlQ291bnQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCisgICAgaWYgKG1fbGlzdFZhbGlkKQorICAgICAgICByZXR1cm4gbV9jYWNoZWRMaXN0
W2luZGV4XTsKKwogICAgIGlmIChtX2N1cnJlbnROb2RlKSB7CiAgICAgICAgIGlmIChpbmRleCA+
IG1fY3VycmVudEluZGV4KQogICAgICAgICAgICAgcmV0dXJuIG5vZGVBZnRlckNhY2hlZChjb2xs
ZWN0aW9uLCBpbmRleCk7CkBAIC0xNjUsOCArMTk1LDExIEBAIHZvaWQgQ29sbGVjdGlvbkluZGV4
Q2FjaGU8Q29sbGVjdGlvbiwgTm8KIHsKICAgICBtX2N1cnJlbnROb2RlID0gbnVsbHB0cjsKICAg
ICBtX25vZGVDb3VudFZhbGlkID0gZmFsc2U7CisgICAgbV9saXN0VmFsaWQgPSBmYWxzZTsKKyAg
ICBtX2NhY2hlZExpc3Quc2hyaW5rKDApOwogfQogCisKIH0KIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMs
MTEgQEAgTm9kZSogTGl2ZU5vZGVMaXN0OjppdGVtKHVuc2lnbmVkIG9mZnNldAogICAgIHJldHVy
biBtX2luZGV4Q2FjaGUubm9kZUF0KCp0aGlzLCBvZmZzZXQpOwogfQogCitzaXplX3QgTGl2ZU5v
ZGVMaXN0OjptZW1vcnlDb3N0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmRleENhY2hlLm1l
bW9yeUNvc3QoKTsKK30KKwogdm9pZCBMaXZlTm9kZUxpc3Q6OmludmFsaWRhdGVDYWNoZSgpIGNv
bnN0CiB7CiAgICAgbV9pbmRleENhY2hlLmludmFsaWRhdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9MaXZlTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
TGl2ZU5vZGVMaXN0LmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9M
aXZlTm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gRE9NIEFQSQogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJp
ZGUgZmluYWw7CiAgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3Qg
b3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0IG92
ZXJyaWRlOwogCiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcm9vdFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0K
ICAgICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25U
eXBlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBl
PihtX2ludmFsaWRhdGlvblR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxp
c3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaAkocmV2aXNp
b24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVOb2Rl
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2hpbGRO
b2RlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1w
dHlOb2RlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBzaXplX3Qg
bWVtb3J5Q29zdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCShyZXZpc2lvbiAxNjQ3NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2
ICsyMiw3IEBACiAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgSlNDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3RBbmREZXNjcmlwdG9yLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAorICAgIFJl
cG9ydEV4dHJhTWVtb3J5Q29zdCwKIF0gaW50ZXJmYWNlIE5vZGVMaXN0IHsKIAogICAgIGdldHRl
ciBOb2RlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NCw2ICs0NDQsMTAg
QEAgdm9pZCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50QwogICAgICAgICBpZiAo
IW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJWYWwgJiYgKHR5
cGUoKSAhPSBEb2NBbGwgfHwgbmFtZVNob3VsZEJlVmlzaWJsZUluRG9jdW1lbnRBbGwodG9IVE1M
RWxlbWVudCgqZWxlbWVudCkpKSkKICAgICAgICAgICAgIGNhY2hlLmFwcGVuZE5hbWVDYWNoZShu
YW1lQXR0clZhbCwgZWxlbWVudCk7CiAgICAgfQorCisgICAgbV9pbmRleENhY2hlLm5vZGVDb3Vu
dCgqdGhpcyk7CisKKyAgICBjYWNoZS5kaWRQb3B1bGF0ZSgpOwogfQogCiBib29sIEhUTUxDb2xs
ZWN0aW9uOjpoYXNOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkocmV2aXNpb24gMTY0NzczKQorKysg
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00
MCwxNyArNDAsMzQgQEAgY2xhc3MgRWxlbWVudDsKIAogY2xhc3MgQ29sbGVjdGlvbk5hbWVkRWxl
bWVudENhY2hlIHsKIHB1YmxpYzoKKyNpZm5kZWYgQVNTRVJUX0RJU0FCTEVECisgICAgQ29sbGVj
dGlvbk5hbWVkRWxlbWVudENhY2hlIDogbV9kaWRQb3B1bGF0ZUNhbGxlZChmYWxzZSkgeyB9Cisj
ZW5kaWYKKwogICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4qIGZpbmRFbGVtZW50c1dpdGhJZChj
b25zdCBBdG9taWNTdHJpbmcmIGlkKSBjb25zdCB7IHJldHVybiBmaW5kKG1faWRUb0VsZW1lbnRz
TWFwLCBpZCk7IH0KICAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+KiBmaW5kRWxlbWVudHNXaXRo
TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0IHsgcmV0dXJuIGZpbmQobV9uYW1l
VG9FbGVtZW50c01hcCwgbmFtZSk7IH0KIAogICAgIHZvaWQgYXBwZW5kSWRDYWNoZShjb25zdCBB
dG9taWNTdHJpbmcmIGlkLCBFbGVtZW50KiBlbGVtZW50KSB7IHJldHVybiBhcHBlbmQobV9pZFRv
RWxlbWVudHNNYXAsIGlkLCBlbGVtZW50KTsgfQogICAgIHZvaWQgYXBwZW5kTmFtZUNhY2hlKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSwgRWxlbWVudCogZWxlbWVudCkgIHsgcmV0dXJuIGFwcGVu
ZChtX25hbWVUb0VsZW1lbnRzTWFwLCBuYW1lLCBlbGVtZW50KTsgfQogCisgICAgdm9pZCBkaWRQ
b3B1bGF0ZSgpCisgICAgeworI2lmbmRlZiBBU1NFUlRfRElTQUJMRUQKKyAgICAgICAgbV9kaWRQ
b3B1bGF0ZUNhbGxlZCA9IHRydWU7CisjZW5kaWYKKyAgICAgICAgaWYgKHNpemVfdCBjb3N0ID0g
bWVtb3J5Q29zdCgpKQorICAgICAgICAgICAgcmVwb3J0RXh0cmFNZW1vcnlDb3N0Rm9yQ29sbGVj
dGlvbkluZGV4Q2FjaGUoY29zdCk7CisgICAgfQorICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29u
c3QgeyByZXR1cm4gKG1faWRUb0VsZW1lbnRzTWFwLnNpemUoKSArIG1fbmFtZVRvRWxlbWVudHNN
YXAuc2l6ZSgpKSAqIHNpemVvZihFbGVtZW50Kik7IH0KKwogcHJpdmF0ZToKICAgICB0eXBlZGVm
IEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZlY3RvcjxFbGVtZW50Kj4+IFN0cmluZ1RvRWxl
bWVudHNNYXA7CiAKLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiogZmluZChjb25z
dCBTdHJpbmdUb0VsZW1lbnRzTWFwJiBtYXAsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQorICAg
IGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4qIGZpbmQoY29uc3QgU3RyaW5nVG9FbGVtZW50c01hcCYg
bWFwLCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkgY29uc3QKICAgICB7CisjaWZuZGVmIEFTU0VS
VF9ESVNBQkxFRAorICAgICAgICBBU1NFUlQobV9kaWRQb3B1bGF0ZUNhbGxlZCk7CisjZW5kaWYK
ICAgICAgICAgYXV0byBpdCA9IG1hcC5maW5kKGtleS5pbXBsKCkpOwogICAgICAgICByZXR1cm4g
aXQgIT0gbWFwLmVuZCgpID8gJml0LT52YWx1ZSA6IG51bGxwdHI7CiAgICAgfQpAQCAtNjIsNiAr
NzksOSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nVG9FbGVtZW50c01hcCBtX2lkVG9FbGVtZW50
c01hcDsKICAgICBTdHJpbmdUb0VsZW1lbnRzTWFwIG1fbmFtZVRvRWxlbWVudHNNYXA7CisjaWZu
ZGVmIEFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9kaWRQb3B1bGF0ZUNhbGxlZDsKKyNlbmRp
ZgogfTsKIAogY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBw
dWJsaWMgUmVmQ291bnRlZDxIVE1MQ29sbGVjdGlvbj4gewpAQCAtNzgsNiArOTgsNyBAQCBwdWJs
aWM6CiAgICAgLy8gTm9uLURPTSBBUEkKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIHZvaWQgbmFtZWRJdGVtcyhjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUsIFZlY3RvcjxSZWY8RWxlbWVudD4+JikgY29uc3Q7CisgICAgc2l6ZV90IG1l
bW9yeUNvc3QoKSBjb25zdCB7IHJldHVybiBtX2luZGV4Q2FjaGUubWVtb3J5Q29zdCgpICsgKG1f
bmFtZWRFbGVtZW50Q2FjaGUgPyBtX25hbWVkRWxlbWVudENhY2hlLT5tZW1vcnlDb3N0KCkgOiAw
KTsgfQogCiAgICAgYm9vbCBpc1Jvb3RlZEF0RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jv
b3RUeXBlID09IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50OyB9CiAgICAgTm9kZUxpc3RJbnZh
bGlkYXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxOb2RlTGlzdEludmFsaWRhdGlvblR5cGU+KG1faW52YWxpZGF0aW9uVHlwZSk7IH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxNjQ3NzMpCisr
KyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMjIsNiArMjIsNyBAQAogICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgR2VuZXJhdGVJc1Jl
YWNoYWJsZT1JbXBsT3duZXJOb2RlUm9vdCwKICAgICBPYmpDUG9seW1vcnBoaWMsCisgICAgUmVw
b3J0RXh0cmFNZW1vcnlDb3N0LAogXSBpbnRlcmZhY2UgSFRNTENvbGxlY3Rpb24gewogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICBnZXR0ZXIgTm9kZSBp
dGVtKFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbmRleCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOCBA
QCB2b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOCiAgICAgICAgICAgICAg
ICAgY2FjaGUuYXBwZW5kTmFtZUNhY2hlKG5hbWVBdHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAg
IH0KICAgICB9CisKKyAgICBjYWNoZS5kaWRQb3B1bGF0ZSgpOwogfQogCiB2b2lkIEhUTUxGb3Jt
Q29udHJvbHNDb2xsZWN0aW9uOjppbnZhbGlkYXRlQ2FjaGUoKSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225420</attachid>
            <date>2014-02-27 15:52:36 -0800</date>
            <delta_ts>2014-02-27 15:52:36 -0800</delta_ts>
            <desc>Fixed Windows build</desc>
            <filename>bug-129450-20140227155340.patch</filename>
            <type>text/plain</type>
            <size>42506</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2NDgzNykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDkxIEBACisyMDE0LTAyLTI3ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEpTQyBpZ25vcmVzIHRoZSBleHRy
YSBtZW1vcnkgY29zdCBvZiBIVE1MQ29sbGVjdGlvbiBhZnRlciBhIG1ham9yIEdDCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjk0NTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBBbmRyZWFzIEtsaW5nLgorCisgICAgICAgIFJlcG9ydCB0aGUgZXh0cmEg
bWVtb3J5IGNvc3Qgb2YgSFRNTENvbGxlY3Rpb24gdG8gSlNDLgorCisgICAgICAgIFVuZm9ydHVu
YXRlbHksIHRoZSBleGlzdGluZyBtZWNoYW5pc20gdG8gcmVwb3J0IHRoZSBleHRyYSBtZW1vcnkg
Y29zdCBpbiB0b0pTIGlzIGluc3VmZmljaWVudCBmb3IKKyAgICAgICAgSFRNTENvbGxlY3Rpb24g
c2luY2UgY29sbGVjdGlvbiBjYWNoZXMgYXJlIHBvcHVsYXRlZCBsYXRlciB3aGVuIEhUTUxDb2xs
ZWN0aW9uIGlzIGFjY2Vzc2VkLiBBbHNvLAorICAgICAgICB0aGUgZXh0cmEgbWVtb3J5IGNvc3Qg
cmVwb3J0ZWQgYnkgSGVhcDo6cmVwb3J0RXh0cmFNZW1vcnlDb3N0IHdpbGwgYmUgdGhyb3duIGF3
YXkgYWZ0ZXIgYSBtYWpvciBHQy4KKworICAgICAgICBUbyB3b3JrIGFyb3VuZCB0aGlzIGxpbWl0
YXRpb24sIGFkZGVkIGEgdmlzaXRvci5yZXBvcnRFeHRyYU1lbW9yeVVzYWdlIGNhbGwgaW5zaWRl
IHZpc2l0Q2hpbGRyZW4KKyAgICAgICAgZm9yIGludGVyZmFjZXMgd2l0aCBhIG5ld2x5IGFkZGVk
IFJlcG9ydEV4dHJhTWVtb3J5Q29zdCBJREwgZXh0ZW5zaW9uIGZsYWcgdG8gcmVwb3J0IHRoZSBl
eHRyYSBjb3N0LgorCisgICAgICAgIFNpbmNlIHdlIG1heSBuZWVkIHRvIGdlbmVyYXRlIHZpc2l0
Q2hpbGRyZW4gd2hlbiB0aGlzIGZsYWcgaXMgc2V0LCB3ZSBjYW4ndCBhdXRvbWF0aWNhbGx5IGRl
dGVjdAorICAgICAgICBhbmQgZ2VuZXJhdGUgY2FsbHMgdXNpbmcgQysrIHRlbXBsYXRlIGFzIGRv
bmUgaW4gcjE0ODY0OC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdO
VW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
ci5pZGw6CisgICAgICAgICogV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIChJbnN0YW5jZU5lZWRzVmlzaXRDaGlsZHJlbik6CisgICAg
ICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pT
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvSlMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZh
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0pTKToKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvSlMpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHA6CisgICAgICAgIChXZWJDb3Jl
Ojp0b0pTKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNhdHRyaWJ1dGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTcmVhZG9ubHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9KUyk6CisgICAg
ICAgICogZG9tL0NoaWxkTm9kZUxpc3QuaDoKKyAgICAgICAgKiBkb20vQ29sbGVjdGlvbkluZGV4
Q2FjaGUuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OnJlcG9ydEV4dHJhTWVtb3J5Q29z
dEZvckNvbGxlY3Rpb25JbmRleENhY2hlKToKKyAgICAgICAgKiBkb20vQ29sbGVjdGlvbkluZGV4
Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbGxlY3Rpb25JbmRleENhY2hlOjptZW1vcnlD
b3N0KToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVUeXBlPjo6Q29sbGVjdGlvbkluZGV4Q2FjaGUp
OgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVR5cGU+Ojpub2RlQ291bnQpOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVR5cGU+Ojpjb21wdXRlTm9kZUNvdW50VXBkYXRpbmdMaXN0Q2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVR5cGU+Ojpub2RlQXQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9k
ZVR5cGU+OjppbnZhbGlkYXRlKToKKyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOgorICAg
ICAgICAqIGRvbS9MaXZlTm9kZUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGl2ZU5vZGVM
aXN0OjptZW1vcnlDb3N0KToKKyAgICAgICAgKiBkb20vTGl2ZU5vZGVMaXN0Lmg6CisgICAgICAg
ICogZG9tL05vZGVMaXN0Lmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlTGlzdDo6bWVtb3J5Q29z
dCk6CisgICAgICAgICogZG9tL05vZGVMaXN0LmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxDb2xs
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjp1cGRhdGVOYW1l
ZEVsZW1lbnRDYWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MQ29sbGVjdGlvbi5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpkaWRQb3B1bGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb2xsZWN0aW9uTmFtZWRFbGVtZW50Q2FjaGU6Om1lbW9yeUNvc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6Q29sbGVjdGlvbk5hbWVkRWxlbWVudENhY2hlOjpmaW5kKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjptZW1vcnlDb3N0KToKKyAgICAgICAg
KiBodG1sL0hUTUxDb2xsZWN0aW9uLmlkbDoKKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29udHJv
bHNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29udHJvbHNDb2xs
ZWN0aW9uOjp1cGRhdGVOYW1lZEVsZW1lbnRDYWNoZSk6CisKIDIwMTQtMDItMjcgIFJhZHUgU3Rh
dmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgUmVnaW9uc10gTW92ZSBu
YW1lZC1mbG93IHNwZWNpZmljIG1ldGhvZCBkZWNvcmF0aW9uc0NsaXBSZWN0Rm9yQm94SW5SZWdp
b24gdG8gUmVuZGVyTmFtZWRGbG93VGhyZWFkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2
aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExMjUsNiArMTEyNSw3IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBkb20v
Q2xpZW50UmVjdExpc3QuY3BwCiAgICAgZG9tL0NsaXBib2FyZC5jcHAKICAgICBkb20vQ2xpcGJv
YXJkRXZlbnQuY3BwCisgICAgZG9tL0NvbGxlY3Rpb25JbmRleENhY2hlLmNwcAogICAgIGRvbS9D
b21tZW50LmNwcAogICAgIGRvbS9Db21wb3NpdGlvbkV2ZW50LmNwcAogICAgIGRvbS9Db250YWlu
ZXJOb2RlLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCShyZXZpc2lvbiAx
NjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzU3LDEzICsyNzU3LDE0IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNl
L1dlYkNvcmUvZG9tL0NsaXBib2FyZEV2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Ns
aXBib2FyZEV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9DbGlwYm9hcmQuaCBcCisJU291
cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL0NvbGxlY3Rpb25JbmRleENhY2hlLmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Db21t
ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbW1lbnQuaCBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL0NvbXBvc2l0aW9uRXZlbnQuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9kb20vQ29tcG9z
aXRpb25FdmVudC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFsZ29yaXRo
bXMuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmNwcCBc
CisJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0aG1zLmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL0NvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyLmNwcCBcCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyLmlkbAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5
LDcgQEAKIFsKICAgICBDb25kaXRpb25hbD1XRUJfQVVESU8sCiAgICAgSW1wbGVtZW50YXRpb25M
YWNrc1ZUYWJsZSwKKyAgICBSZXBvcnRFeHRyYU1lbW9yeUNvc3QsCiBdIGludGVyZmFjZSBBdWRp
b0J1ZmZlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgbGVuZ3RoOyAvLyBpbiBzYW1w
bGUtZnJhbWVzCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGZsb2F0IGR1cmF0aW9uOyAvLyBpbiBz
ZWNvbmRzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3Jl
LnZjeHByb2oJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4
cHJvai9XZWJDb3JlLnZjeHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyMjAwLDYgKzEyMjAwLDIw
IEBACiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufFdpbjMyJyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVp
bGQ+CiAgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9u
KXwkKFBsYXRmb3JtKSc9PSdQcm9kdWN0aW9ufHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxk
PgogICAgIDwvQ2xDb21waWxlPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cZG9tXENvbGxl
Y3Rpb25JbmRleENhY2hlLmNwcCI+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9u
PSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRG
cm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1
cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z19XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdfV2luQ2Fpcm98eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdEZWJ1Z1N1ZmZpeHxXaW4zMiciPnRydWU8L0V4
Y2x1ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQo
Q29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWdTdWZmaXh8eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChD
b25maWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfFdpbjMyJyI+dHJ1ZTwvRXhjbHVk
ZWRGcm9tQnVpbGQ+CisgICAgICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25m
aWd1cmF0aW9uKXwkKFBsYXRmb3JtKSc9PSdSZWxlYXNlfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJv
bUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJh
dGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3xXaW4zMiciPnRydWU8L0V4Y2x1
ZGVkRnJvbUJ1aWxkPgorICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29u
ZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nUmVsZWFzZV9XaW5DYWlyb3x4NjQnIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KKyAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J1Byb2R1Y3Rpb258eDY0JyI+dHJ1ZTwvRXhj
bHVkZWRGcm9tQnVpbGQ+CisgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlxkb21cQ29tbWVudC5jcHAiPgogICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlv
bj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9F
eGNsdWRlZEZyb21CdWlsZD4KICAgICAgIDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249Iick
KENvbmZpZ3VyYXRpb24pfCQoUGxhdGZvcm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVk
RnJvbUJ1aWxkPgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zNTE5LDYg
KzM1MTksNyBAQAogCQk5QkM2QzIxQzEzQ0NDOTdCMDA4RTAzMzcgLyogSFRNTFRleHRGb3JtQ29u
dHJvbEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOUJDNkMyMUExM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcCAqLzsgfTsKIAkJOUJEMEJGOTMxMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50
UXVldWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlC
RDBCRjkxMTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmggKi87IH07CiAJCTlC
RDBCRjk0MTJBNDJCRjUwMDcyRkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDBCRjkyMTJBNDJCRjUwMDcy
RkQ0MyAvKiBTY29wZWRFdmVudFF1ZXVlLmNwcCAqLzsgfTsKKwkJOUJEOEE5NUExOEJFRkM3NjAw
OTg3RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRDhBOTU5MThCRUZDNzYwMDk4N0U5QSAvKiBDb2xs
ZWN0aW9uSW5kZXhDYWNoZS5jcHAgKi87IH07CiAJCTlCRjlBODgwMTY0OEREMkYwMDFDNkIyMyAv
KiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRjlBODdFMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hU
TUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcCAqLzsgfTsKIAkJOUJGOUE4ODExNjQ4REQyRjAw
MUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlCRjlBODdGMTY0OEREMkYwMDFDNkIyMyAv
KiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmggKi87IH07CiAJCTlGMEQ2QjJFMTIxQkZF
QkEwMDZDMDI4OCAvKiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDlGMEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAv
KiBJbnNwZWN0b3JQcm9maWxlckFnZW50LmNwcCAqLzsgfTsKQEAgLTEwNDgxLDYgKzEwNDgyLDcg
QEAKIAkJOUJDNkMyMUExM0NDQzk3QjAwOEUwMzM3IC8qIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUZXh0Rm9y
bUNvbnRyb2xFbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUJEMEJG
OTExMkE0MkJGNTAwNzJGRDQzIC8qIFNjb3BlZEV2ZW50UXVldWUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gU2NvcGVkRXZlbnRRdWV1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5QkQwQkY5MjEyQTQyQkY1MDA3MkZENDMgLyogU2NvcGVkRXZlbnRRdWV1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTY29wZWRFdmVudFF1ZXVl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOUJEOEE5NTkxOEJFRkM3NjAwOTg3
RTlBIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbGxlY3Rpb25JbmRleENhY2hlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOUJGOUE4N0UxNjQ4REQyRjAwMUM2QjIzIC8qIEpTSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNI
VE1MRm9ybUNvbnRyb2xzQ29sbGVjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTlCRjlBODdGMTY0OEREMkYwMDFDNkIyMyAvKiBKU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTEZvcm1Db250cm9s
c0NvbGxlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOUYwRDZCMkMxMjFC
RkVCQTAwNkMwMjg4IC8qIEluc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTg4Niw2ICsyMTg4OCw3IEBACiAJCQkJODUwMzFC
MkEwQTQ0RUZDNzAwRjk5MkUwIC8qIENsaXBib2FyZEV2ZW50LmggKi8sCiAJCQkJMkQ5MDY2MEMw
NjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5tbSAqLywKIAkJCQlFNDI1QTQ5OTE4Mjky
Qjg0MDAyMENGQ0YgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuaCAqLywKKwkJCQk5QkQ4QTk1OTE4
QkVGQzc2MDA5ODdFOUEgLyogQ29sbGVjdGlvbkluZGV4Q2FjaGUuY3BwICovLAogCQkJCTY1NTBC
Njk3MDk5REYwMjcwMDkwRDc4MSAvKiBDb21tZW50LmNwcCAqLywKIAkJCQk2NTUwQjY5ODA5OURG
MDI3MDA5MEQ3ODEgLyogQ29tbWVudC5oICovLAogCQkJCTg1MDg5Q0M3MEE5OEMyMjYwMEEyNzVB
QSAvKiBDb21tZW50LmlkbCAqLywKQEAgLTI3MDY1LDYgKzI3MDY4LDcgQEAKIAkJCQk5N0RDRTIw
MTEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNTE3NDFEMTIwQjA3MjU5QTAwRUQ0NDJDIC8qIEhpc3RvcnlJdGVtLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxNjBGNDk4MEIwQUE3NUYwMEMxRDJBRiAvKiBIaXN0b3J5SXRlbU1hYy5t
bSBpbiBTb3VyY2VzICovLAorCQkJCTlCRDhBOTVBMThCRUZDNzYwMDk4N0U5QSAvKiBDb2xsZWN0
aW9uSW5kZXhDYWNoZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTY5QjBGMjEzRDBCMzNGMDBE
RjM1MjEgLyogSGl0VGVzdGluZ1RyYW5zZm9ybVN0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJEODI4N0Y2MTZFNEEwMzgwMDg2QkQwMCAvKiBIaXRUZXN0TG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTMwN0YxRDcwQUYyRDU5MDAwREJBMzFBIC8qIEhpdFRlc3RSZXN1bHQuY3Bw
IGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0MiwxOSArNjQyLDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBjb25zdCBib29sIHZhbHVlID0gc2l6ZW9mKHRlc3Q8VD4oMCkpID09IHNp
emVvZihZZXNUeXBlKTsKIH07CiAKLXRlbXBsYXRlIDx0eXBlbmFtZSBULCBib29sIGhhc1JlcG9y
dENvc3RGdW5jdGlvbiA9IEhhc01lbW9yeUNvc3RNZW1iZXJGdW5jdGlvbjxUPjo6dmFsdWUgPiBz
dHJ1Y3QgUmVwb3J0TWVtb3J5Q29zdDsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVw
b3J0TWVtb3J5Q29zdDxULCB0cnVlPiB7Ci0gICAgc3RhdGljIHZvaWQgcmVwb3J0TWVtb3J5Q29z
dChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgVCogaW1wbCkKLSAgICB7Ci0gICAgICAgIGV4ZWMtPmhl
YXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9yeUNvc3QoKSk7Ci0gICAgfQot
fTsKLXRlbXBsYXRlIDx0eXBlbmFtZSBUPiBzdHJ1Y3QgUmVwb3J0TWVtb3J5Q29zdDxULCBmYWxz
ZT4gewotICAgIHN0YXRpYyB2b2lkIHJlcG9ydE1lbW9yeUNvc3QoSlNDOjpFeGVjU3RhdGUqLCBU
KikKLSAgICB7Ci0gICAgfQotfTsKLQogZW51bSBTZWN1cml0eVJlcG9ydGluZ09wdGlvbiB7CiAg
ICAgRG9Ob3RSZXBvcnRTZWN1cml0eUVycm9yLAogICAgIFJlcG9ydFNlY3VyaXR5RXJyb3IsCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTc3MCw2ICs3NzAsMTUg
QEAgc3ViIEluc3RhbmNlT3ZlcnJpZGVzUHV0RGVjbGFyYXRpb24KICAgICAgICAgfHwgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbUluZGV4ZWRTZXR0ZXIifTsKIH0KIAor
c3ViIEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuCit7CisgICAgbXkgJGludGVyZmFjZSA9IHNo
aWZ0OworICAgIHJldHVybiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0
b21NYXJrRnVuY3Rpb24ifQorICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJFdmVudFRhcmdldCJ9CisgICAgfHwgJGludGVyZmFjZS0+bmFtZSBlcSAiRXZlbnRUYXJnZXQi
CisgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcG9ydEV4dHJhTWVt
b3J5Q29zdCJ9OworfQorCiBzdWIgR2VuZXJhdGVIZWFkZXIKIHsKICAgICBteSAkb2JqZWN0ID0g
c2hpZnQ7CkBAIC03ODMsNyArNzkyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJGhh
c1JlYWxQYXJlbnQgPSAkaW50ZXJmYWNlLT5wYXJlbnQ7CiAgICAgbXkgJGhhc1BhcmVudCA9ICRo
YXNMZWdhY3lQYXJlbnQgfHwgJGhhc1JlYWxQYXJlbnQ7CiAgICAgbXkgJHBhcmVudENsYXNzTmFt
ZSA9IEdldFBhcmVudENsYXNzTmFtZSgkaW50ZXJmYWNlKTsKLSAgICBteSAkbmVlZHNNYXJrQ2hp
bGRyZW4gPSAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVu
Y3Rpb24ifSB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiRXZlbnRUYXJnZXQi
fSB8fCAkaW50ZXJmYWNlLT5uYW1lIGVxICJFdmVudFRhcmdldCI7CisgICAgbXkgJG5lZWRzVmlz
aXRDaGlsZHJlbiA9IEluc3RhbmNlTmVlZHNWaXNpdENoaWxkcmVuKCRpbnRlcmZhY2UpOwogCiAg
ICAgIyAtIEFkZCBkZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZSBhbmQgaGVhZGVyIHByb3RlY3Rpb24K
ICAgICBwdXNoKEBoZWFkZXJDb250ZW50SGVhZGVyLCBHZW5lcmF0ZUhlYWRlckNvbnRlbnRIZWFk
ZXIoJGludGVyZmFjZSkpOwpAQCAtMTAwNSwxNCArMTAxNCwxNCBAQCBzdWIgR2VuZXJhdGVIZWFk
ZXIKICAgICAgICAgICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiI2lmICR7Y29uZGl0aW9u
YWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAgICAgICAgICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICBKU0M6OldyaXRlQmFycmllcjxKU0M6OlVua25vd24+IG1f
IiAuICRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+bmFtZSAuICI7XG4iKTsKICAgICAgICAgICAgICAg
ICAkbnVtQ2FjaGVkQXR0cmlidXRlcysrOwotICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGls
ZHJlbiA9IDE7CisgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IDE7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiNlbmRpZlxuIikgaWYgJGNvbmRpdGlv
bmFsU3RyaW5nOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCiAgICAgIyB2aXNp
dCBmdW5jdGlvbgotICAgIGlmICgkbmVlZHNNYXJrQ2hpbGRyZW4pIHsKKyAgICBpZiAoJG5lZWRz
VmlzaXRDaGlsZHJlbikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgSlNDOjpTbG90VmlzaXRvciYpO1xuXG4iKTsK
ICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4ifSA9
IDE7CiAgICAgfQpAQCAtMTE5Myw3ICsxMjAyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAg
ICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlT
bG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7CiAgICAgfQotICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiSlNDdXN0b21NYXJrRnVuY3Rpb24ifSBvciAkbmVl
ZHNNYXJrQ2hpbGRyZW4pIHsKKyAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0gb3IgJG5lZWRzVmlzaXRDaGlsZHJlbikgewogICAg
ICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiJ9ID0gMTsK
ICAgICB9CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwKQEAgLTE2OTAsNyArMTY5OSw3IEBAIHN1
YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgJHBhcmVudENsYXNzTmFtZSA9IEdldFBh
cmVudENsYXNzTmFtZSgkaW50ZXJmYWNlKTsKICAgICBteSAkdmlzaWJsZUludGVyZmFjZU5hbWUg
PSAkY29kZUdlbmVyYXRvci0+R2V0VmlzaWJsZUludGVyZmFjZU5hbWUoJGludGVyZmFjZSk7CiAg
ICAgbXkgJGV2ZW50VGFyZ2V0ID0gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkV2
ZW50VGFyZ2V0In0gfHwgKCRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0ludGVyZmFjZSgkaW50ZXJm
YWNlLCAiRXZlbnRUYXJnZXQiKSAmJiAkaW50ZXJmYWNlLT5uYW1lIG5lICJFdmVudFRhcmdldCIp
OwotICAgIG15ICRuZWVkc01hcmtDaGlsZHJlbiA9ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJKU0N1c3RvbU1hcmtGdW5jdGlvbiJ9IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9IHx8ICRpbnRlcmZhY2UtPm5hbWUgZXEgIkV2ZW50VGFy
Z2V0IjsKKyAgICBteSAkbmVlZHNWaXNpdENoaWxkcmVuID0gSW5zdGFuY2VOZWVkc1Zpc2l0Q2hp
bGRyZW4oJGludGVyZmFjZSk7CiAKICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbiA9IEdldE5h
bWVkR2V0dGVyRnVuY3Rpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJGdW5j
dGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJGdW5jdGlvbigkaW50ZXJmYWNlKTsKQEAgLTIxNjIsNyAr
MjE3MSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGlmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJDYWNoZWRBdHRyaWJ1dGUifSkgewotICAgICAgICAgICAgICAgICRuZWVkc01hcmtDaGlsZHJl
biA9IDE7CisgICAgICAgICAgICAgICAgJG5lZWRzVmlzaXRDaGlsZHJlbiA9IDE7CiAgICAgICAg
ICAgICB9CiAKICAgICAgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQ2hlY2tTZWN1cml0eSJ9ICYmCkBAIC0yNzQ2LDcgKzI3NTUsNyBAQCBzdWIgR2VuZXJhdGVJ
bXBsZW1lbnRhdGlvbgogCiAgICAgfQogCi0gICAgaWYgKCRuZWVkc01hcmtDaGlsZHJlbiAmJiAh
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0p
IHsKKyAgICBpZiAoJG5lZWRzVmlzaXRDaGlsZHJlbiAmJiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IkpTQ3VzdG9tTWFya0Z1bmN0aW9uIn0pIHsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICJ2b2lkICR7Y2xhc3NOYW1lfTo6dmlzaXRDaGlsZHJlbihKU0NlbGwqIGNlbGws
IFNsb3RWaXNpdG9yJiB2aXNpdG9yKVxuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
e1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogdGhp
c09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwpAQCAtMjc1Nyw2ICsy
NzY2LDkgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgaWYgKCRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJFdmVudFRhcmdldCJ9IHx8ICRpbnRlcmZhY2UtPm5h
bWUgZXEgIkV2ZW50VGFyZ2V0IikgewogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgdGhpc09iamVjdC0+aW1wbCgpLnZpc2l0SlNFdmVudExpc3RlbmVycyh2aXNpdG9yKTtcbiIp
OwogICAgICAgICB9CisgICAgICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiUmVwb3J0RXh0cmFNZW1vcnlDb3N0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIHZpc2l0b3IucmVwb3J0RXh0cmFNZW1vcnlVc2FnZShjZWxsLCB0aGlzT2JqZWN0
LT5pbXBsKCkubWVtb3J5Q29zdCgpKTtcbiIpOworICAgICAgICB9CiAgICAgICAgIGlmICgkbnVt
Q2FjaGVkQXR0cmlidXRlcyA+IDApIHsKICAgICAgICAgICAgIGZvcmVhY2ggKEB7JGludGVyZmFj
ZS0+YXR0cmlidXRlc30pIHsKICAgICAgICAgICAgICAgICBteSAkYXR0cmlidXRlID0gJF87CkBA
IC0zMDE5LDggKzMwMzEsOCBAQCBFTkQKICAgICBDT01QSUxFX0FTU0VSVCghX19pc19wb2x5bW9y
cGhpYygkaW1wbFR5cGUpLCAke2ltcGxUeXBlfV9pc19wb2x5bW9ycGhpY19idXRfaWRsX2NsYWlt
c19ub3RfdG9fYmUpOwogI2VuZGlmCiBFTkQKLSAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKLSAgICBSZXBvcnRNZW1vcnlDb3N0PCRpbXBsVHlwZT46OnJlcG9ydE1lbW9yeUNvc3Qo
ZXhlYywgaW1wbCk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCkgaWYgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcG9ydEV4dHJhTWVtb3J5Q29zdCJ9OworICAg
IGV4ZWMtPmhlYXAoKS0+cmVwb3J0RXh0cmFNZW1vcnlDb3N0KGltcGwtPm1lbW9yeUNvc3QoKSk7
CiBFTkQKIAogICAgICAgICBpZiAoJHN2Z1Byb3BlcnR5VHlwZSkgewpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CShyZXZpc2lv
biAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC05OCw2ICs5OCw3IEBAIFJhaXNlc0V4Y2VwdGlvbgog
UmVmbGVjdD0qCiBSZXBsYWNlYWJsZQogUmVwbGFjZWFibGVDb25zdHJ1Y3RvcgorUmVwb3J0RXh0
cmFNZW1vcnlDb3N0CiBSZXR1cm5OZXdPYmplY3QKIFNldHRlclJhaXNlc0V4Y2VwdGlvbgogU2tp
cFZUYWJsZVZhbGlkYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
CShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcg
KzI1Myw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAv
LyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50
ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9p
bnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5
Q29zdDxUZXN0QWN0aXZlRE9NT2JqZWN0Pjo6cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBsKTsK
ICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RBY3RpdmVET01PYmplY3Q+KGV4ZWMs
IGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjI0LDcgKzIyNCw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJp
YnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQo
YWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0g
ICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpyZXBvcnRNZW1vcnlD
b3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2Nyw3ICsyNjcsNiBAQCBKU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxl
VmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAg
IFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2lu
dGVyKTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEV2ZW50Q29uc3RydWN0b3I+
OjpyZXBvcnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFw
cGVyPEpTVGVzdEV2ZW50Q29uc3RydWN0b3I+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMTY0NzczKQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzMzLDcgKzMzMyw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVW
YWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAgICAg
UkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50
ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0RXZlbnRUYXJnZXQ+OjpyZXBv
cnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdEV2ZW50VGFyZ2V0PihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0RXhjZXB0aW9uLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIwOSw3ICsyMDksNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
ZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1
dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0VfQVNTRVJUKGFj
dHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNlbmRpZgotICAg
IFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEV4Y2VwdGlvbj46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywg
aW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0RXhjZXB0aW9uPihleGVj
LCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVy
YXRlSXNSZWFjaGFibGUuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4Nyw3ICsxODcsNiBAQCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYnkgYWRkaW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlv
biBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVmaW5pdGlvbgogICAgIFJFTEVBU0Vf
QVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKICNl
bmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+OjpyZXBv
cnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGU+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODQ1LDcgKzg0NSw2IEBAIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCAKICAgICAvLyBhdHRyaWJ1dGUgdG8gVGVzdEludGVyZmFjZS4KICAgICBD
T01QSUxFX0FTU0VSVCghX19pc19wb2x5bW9ycGhpYyhUZXN0SW50ZXJmYWNlKSwgVGVzdEludGVy
ZmFjZV9pc19wb2x5bW9ycGhpY19idXRfaWRsX2NsYWltc19ub3RfdG9fYmUpOwogI2VuZGlmCi0g
ICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0SW50ZXJmYWNlPjo6cmVwb3J0TWVtb3J5Q29zdChleGVj
LCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3RJbnRlcmZhY2U+KGV4
ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwLDcgKzIwMCw2IEBAIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFi
bGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCiAg
ICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBv
aW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lcj46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0
ZU5ld1dyYXBwZXI8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcj4oZXhlYywgZ2xvYmFsT2Jq
ZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNw
cAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzIs
NyArMjMyLDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAg
IC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBp
bnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQ
b2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1v
cnlDb3N0PFRlc3ROYW1lZENvbnN0cnVjdG9yPjo6cmVwb3J0TWVtb3J5Q29zdChleGVjLCBpbXBs
KTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rlc3ROYW1lZENvbnN0cnVjdG9yPihl
eGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24g
MTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQyMTUsNyArNDIxNSw2IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBW
VGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9u
CiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0T2JqPjo6cmVwb3J0
TWVtb3J5Q29zdChleGVjLCBpbXBsKTsKICAgICByZXR1cm4gY3JlYXRlTmV3V3JhcHBlcjxKU1Rl
c3RPYmo+KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAJKHJldmlzaW9uIDE2NDc3MykKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDcgKzI1Myw2IEBAIEpTQzo6
SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhl
IFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZp
bml0aW9uCiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3Rl
ZFZUYWJsZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxUZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycz46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywgaW1wbCk7CiAgICAgcmV0
dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycz4oZXhlYywg
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAJKHJldmlzaW9uIDE2NDc3MykK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxp
emVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzcsNyArMzM3
LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIAogICAgIC8vIGJ5
IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZh
Y2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVy
ID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAgICBSZXBvcnRNZW1vcnlDb3N0
PFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U+OjpyZXBvcnRNZW1vcnlDb3N0KGV4
ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZT4oZXhlYywgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZz
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC02OTgsNyArNjk4LDYgQEAgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUq
IGV4ZWMsIAogICAgIC8vIGJ5IGFkZGluZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmli
dXRlIHRvIHRoZSBpbnRlcmZhY2UgSURMIGRlZmluaXRpb24KICAgICBSRUxFQVNFX0FTU0VSVChh
Y3R1YWxWVGFibGVQb2ludGVyID09IGV4cGVjdGVkVlRhYmxlUG9pbnRlcik7CiAjZW5kaWYKLSAg
ICBSZXBvcnRNZW1vcnlDb3N0PFRlc3RUeXBlZGVmcz46OnJlcG9ydE1lbW9yeUNvc3QoZXhlYywg
aW1wbCk7CiAgICAgcmV0dXJuIGNyZWF0ZU5ld1dyYXBwZXI8SlNUZXN0VHlwZWRlZnM+KGV4ZWMs
IGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU2F0dHJpYnV0ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0cmlidXRlLmNwcAkocmV2aXNpb24g
MTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTYXR0
cmlidXRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAxLDcgKzIwMSw2IEBAIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCAKICAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBW
VGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9u
CiAgICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJs
ZVBvaW50ZXIpOwogI2VuZGlmCi0gICAgUmVwb3J0TWVtb3J5Q29zdDxhdHRyaWJ1dGU+OjpyZXBv
cnRNZW1vcnlDb3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpT
YXR0cmlidXRlPihleGVjLCBnbG9iYWxPYmplY3QsIGltcGwpOwogfQogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNyZWFkb25seS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTcmVhZG9ubHku
Y3BwCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNyZWFkb25seS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw3ICsxNTgsNiBA
QCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgCiAgICAgLy8gYXR0cmli
dXRlIHRvIHJlYWRvbmx5LgogICAgIENPTVBJTEVfQVNTRVJUKCFfX2lzX3BvbHltb3JwaGljKHJl
YWRvbmx5KSwgcmVhZG9ubHlfaXNfcG9seW1vcnBoaWNfYnV0X2lkbF9jbGFpbXNfbm90X3RvX2Jl
KTsKICNlbmRpZgotICAgIFJlcG9ydE1lbW9yeUNvc3Q8cmVhZG9ubHk+OjpyZXBvcnRNZW1vcnlD
b3N0KGV4ZWMsIGltcGwpOwogICAgIHJldHVybiBjcmVhdGVOZXdXcmFwcGVyPEpTcmVhZG9ubHk+
KGV4ZWMsIGdsb2JhbE9iamVjdCwgaW1wbCk7CiB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9DaGlsZE5vZGVMaXN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NoaWxk
Tm9kZUxpc3QuaAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NoaWxk
Tm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNDksNiArNDksNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQog
ICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25lZCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmlu
ZyYpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIHNpemVf
dCBtZW1vcnlDb3N0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQogCiAgICAgdmlydHVh
bCBib29sIGlzRW1wdHlOb2RlTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
IApAQCAtODEsNiArODIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3Ro
KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIE5vZGUqIG5hbWVkSXRlbShjb25zdCBBdG9t
aWNTdHJpbmcmKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHNpemVfdCBtZW1vcnlDb3N0
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pbmRleENhY2hlLm1lbW9yeUNvc3QoKTsgfQog
CiAgICAgdmlydHVhbCBib29sIGlzQ2hpbGROb2RlTGlzdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIHRydWU7IH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25JbmRleENh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29sbGVjdGlvbkluZGV4
Q2FjaGUuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0NvbGxlY3Rpb25J
bmRleENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbGxlY3Rpb25JbmRleENhY2hlLmgi
CisKKyNpbmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
Cit2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdEZvckNvbGxlY3Rpb25JbmRleENhY2hlKHNpemVf
dCBjb3N0KQoreworICAgIEpTQzo6Vk0qIHZtID0gSlNET01XaW5kb3dCYXNlOjpjb21tb25WTSgp
OworICAgIEpTQzo6SlNMb2NrSG9sZGVyIGxvY2sodm0pOworICAgIHZtLT5oZWFwLnJlcG9ydEV4
dHJhTWVtb3J5Q29zdChjb3N0KTsKK30KKworfQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Nv
bGxlY3Rpb25JbmRleENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Nv
bGxlY3Rpb25JbmRleENhY2hlLmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Db2xsZWN0aW9uSW5kZXhDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMiBA
QAogI2lmbmRlZiBDb2xsZWN0aW9uSW5kZXhDYWNoZV9oCiAjZGVmaW5lIENvbGxlY3Rpb25JbmRl
eENhY2hlX2gKIAorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCit2b2lkIHJlcG9ydEV4dHJhTWVtb3J5Q29zdEZvckNvbGxlY3Rpb25JbmRleENhY2hlKHNp
emVfdCk7CisKIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFzcyBOb2RlVHlwZT4KIGNs
YXNzIENvbGxlY3Rpb25JbmRleENhY2hlIHsKIHB1YmxpYzoKQEAgLTM3LDE1ICs0MSwxOSBAQCBw
dWJsaWM6CiAgICAgTm9kZVR5cGUqIG5vZGVBdChjb25zdCBDb2xsZWN0aW9uJiwgdW5zaWduZWQg
aW5kZXgpOwogCiAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CisgICAgc2l6ZV90IG1lbW9yeUNvc3Qo
KSB7IHJldHVybiBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKSAqIHNpemVvZihOb2RlVHlwZSopOyB9
CiAKIHByaXZhdGU6CisgICAgdW5zaWduZWQgY29tcHV0ZU5vZGVDb3VudFVwZGF0aW5nTGlzdENh
Y2hlKGNvbnN0IENvbGxlY3Rpb24mKTsKICAgICBOb2RlVHlwZSogbm9kZUJlZm9yZUNhY2hlZChj
b25zdCBDb2xsZWN0aW9uJiwgdW5zaWduZWQpOwogICAgIE5vZGVUeXBlKiBub2RlQWZ0ZXJDYWNo
ZWQoY29uc3QgQ29sbGVjdGlvbiYsIHVuc2lnbmVkKTsKIAogICAgIE5vZGVUeXBlKiBtX2N1cnJl
bnROb2RlOwogICAgIHVuc2lnbmVkIG1fY3VycmVudEluZGV4OwogICAgIHVuc2lnbmVkIG1fbm9k
ZUNvdW50OwotICAgIGJvb2wgbV9ub2RlQ291bnRWYWxpZDsKKyAgICBWZWN0b3I8Tm9kZVR5cGUq
PiBtX2NhY2hlZExpc3Q7CisgICAgYm9vbCBtX25vZGVDb3VudFZhbGlkIDogMTsKKyAgICBib29s
IG1fbGlzdFZhbGlkIDogMTsKIH07CiAKIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9uLCBjbGFz
cyBOb2RlVHlwZT4KQEAgLTU0LDYgKzYyLDcgQEAgaW5saW5lIENvbGxlY3Rpb25JbmRleENhY2hl
PENvbGxlY3Rpb24sIAogICAgICwgbV9jdXJyZW50SW5kZXgoMCkKICAgICAsIG1fbm9kZUNvdW50
KDApCiAgICAgLCBtX25vZGVDb3VudFZhbGlkKGZhbHNlKQorICAgICwgbV9saXN0VmFsaWQoZmFs
c2UpCiB7CiB9CiAKQEAgLTYxLDEyICs3MCw3IEBAIHRlbXBsYXRlIDxjbGFzcyBDb2xsZWN0aW9u
LCBjbGFzcyBOb2RlVHkKIGlubGluZSB1bnNpZ25lZCBDb2xsZWN0aW9uSW5kZXhDYWNoZTxDb2xs
ZWN0aW9uLCBOb2RlVHlwZT46Om5vZGVDb3VudChjb25zdCBDb2xsZWN0aW9uJiBjb2xsZWN0aW9u
KQogewogICAgIGlmICghbV9ub2RlQ291bnRWYWxpZCkgewotICAgICAgICBpZiAoYXV0byBmaXJz
dCA9IGNvbGxlY3Rpb24uY29sbGVjdGlvbkZpcnN0KCkpIHsKLSAgICAgICAgICAgIHVuc2lnbmVk
IGNvdW50OwotICAgICAgICAgICAgY29sbGVjdGlvbi5jb2xsZWN0aW9uVHJhdmVyc2VGb3J3YXJk
KCpmaXJzdCwgc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpLCBjb3VudCk7Ci0g
ICAgICAgICAgICBtX25vZGVDb3VudCA9IGNvdW50ICsgMTsKLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICBtX25vZGVDb3VudCA9IDA7CisgICAgICAgIG1fbm9kZUNvdW50ID0gY29tcHV0ZU5v
ZGVDb3VudFVwZGF0aW5nTGlzdENhY2hlKGNvbGxlY3Rpb24pOwogICAgICAgICBtX25vZGVDb3Vu
dFZhbGlkID0gdHJ1ZTsKICAgICB9CiAKQEAgLTc0LDYgKzc4LDI5IEBAIGlubGluZSB1bnNpZ25l
ZCBDb2xsZWN0aW9uSW5kZXhDYWNoZTxDb2wKIH0KIAogdGVtcGxhdGUgPGNsYXNzIENvbGxlY3Rp
b24sIGNsYXNzIE5vZGVUeXBlPgordW5zaWduZWQgQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q29sbGVj
dGlvbiwgTm9kZVR5cGU+Ojpjb21wdXRlTm9kZUNvdW50VXBkYXRpbmdMaXN0Q2FjaGUoY29uc3Qg
Q29sbGVjdGlvbiYgY29sbGVjdGlvbikKK3sKKyAgICBOb2RlVHlwZSogZmlyc3QgPSBjb2xsZWN0
aW9uLmNvbGxlY3Rpb25GaXJzdCgpOworICAgIGlmICghZmlyc3QpCisgICAgICAgIHJldHVybiAw
OworCisgICAgdW5zaWduZWQgb2xkQ2FwYWNpdHkgPSBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKTsK
KyAgICBOb2RlVHlwZSogY3VycmVudE5vZGUgPSBmaXJzdDsKKyAgICB3aGlsZSAoY3VycmVudE5v
ZGUpIHsKKyAgICAgICAgbV9jYWNoZWRMaXN0LmFwcGVuZChjdXJyZW50Tm9kZSk7CisgICAgICAg
IHVuc2lnbmVkIHRyYXZlcnNlZDsKKyAgICAgICAgY3VycmVudE5vZGUgPSBjb2xsZWN0aW9uLmNv
bGxlY3Rpb25UcmF2ZXJzZUZvcndhcmQoKmN1cnJlbnROb2RlLCAxLCB0cmF2ZXJzZWQpOworICAg
ICAgICBBU1NFUlQodHJhdmVyc2VkID09IChjdXJyZW50Tm9kZSA/IDEgOiAwKSk7CisgICAgfQor
ICAgIG1fbGlzdFZhbGlkID0gdHJ1ZTsKKworICAgIGlmICh1bnNpZ25lZCBjYXBhY2l0eURpZmZl
cmVuY2UgPSBtX2NhY2hlZExpc3QuY2FwYWNpdHkoKSAtIG9sZENhcGFjaXR5KQorICAgICAgICBy
ZXBvcnRFeHRyYU1lbW9yeUNvc3RGb3JDb2xsZWN0aW9uSW5kZXhDYWNoZShjYXBhY2l0eURpZmZl
cmVuY2UgKiBzaXplb2YoTm9kZVR5cGUqKSk7CisKKyAgICByZXR1cm4gbV9jYWNoZWRMaXN0LnNp
emUoKTsKK30KKwordGVtcGxhdGUgPGNsYXNzIENvbGxlY3Rpb24sIGNsYXNzIE5vZGVUeXBlPgog
aW5saW5lIE5vZGVUeXBlKiBDb2xsZWN0aW9uSW5kZXhDYWNoZTxDb2xsZWN0aW9uLCBOb2RlVHlw
ZT46Om5vZGVCZWZvcmVDYWNoZWQoY29uc3QgQ29sbGVjdGlvbiYgY29sbGVjdGlvbiwgdW5zaWdu
ZWQgaW5kZXgpCiB7CiAgICAgQVNTRVJUKG1fY3VycmVudE5vZGUpOwpAQCAtMTMzLDYgKzE2MCw5
IEBAIGlubGluZSBOb2RlVHlwZSogQ29sbGVjdGlvbkluZGV4Q2FjaGU8Q28KICAgICBpZiAobV9u
b2RlQ291bnRWYWxpZCAmJiBpbmRleCA+PSBtX25vZGVDb3VudCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKKyAgICBpZiAobV9saXN0VmFsaWQpCisgICAgICAgIHJldHVybiBtX2NhY2hlZExp
c3RbaW5kZXhdOworCiAgICAgaWYgKG1fY3VycmVudE5vZGUpIHsKICAgICAgICAgaWYgKGluZGV4
ID4gbV9jdXJyZW50SW5kZXgpCiAgICAgICAgICAgICByZXR1cm4gbm9kZUFmdGVyQ2FjaGVkKGNv
bGxlY3Rpb24sIGluZGV4KTsKQEAgLTE2NSw4ICsxOTUsMTEgQEAgdm9pZCBDb2xsZWN0aW9uSW5k
ZXhDYWNoZTxDb2xsZWN0aW9uLCBObwogewogICAgIG1fY3VycmVudE5vZGUgPSBudWxscHRyOwog
ICAgIG1fbm9kZUNvdW50VmFsaWQgPSBmYWxzZTsKKyAgICBtX2xpc3RWYWxpZCA9IGZhbHNlOwor
ICAgIG1fY2FjaGVkTGlzdC5zaHJpbmsoMCk7CiB9CiAKKwogfQogCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0LmNwcCIKICNpbmNsdWRlICJDbGlwYm9hcmQuY3Bw
IgogI2luY2x1ZGUgIkNsaXBib2FyZEV2ZW50LmNwcCIKKyNpbmNsdWRlICJDb2xsZWN0aW9uSW5k
ZXhDYWNoZS5jcHAiCiAjaW5jbHVkZSAiQ29tbWVudC5jcHAiCiAjaW5jbHVkZSAiQ29tcG9zaXRp
b25FdmVudC5jcHAiCiAjaW5jbHVkZSAiQ29udGFpbmVyTm9kZS5jcHAiCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9kb20vTGl2ZU5vZGVMaXN0LmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNv
cmUvZG9tL0xpdmVOb2RlTGlzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsMTEg
QEAgTm9kZSogTGl2ZU5vZGVMaXN0OjppdGVtKHVuc2lnbmVkIG9mZnNldAogICAgIHJldHVybiBt
X2luZGV4Q2FjaGUubm9kZUF0KCp0aGlzLCBvZmZzZXQpOwogfQogCitzaXplX3QgTGl2ZU5vZGVM
aXN0OjptZW1vcnlDb3N0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbmRleENhY2hlLm1lbW9y
eUNvc3QoKTsKK30KKwogdm9pZCBMaXZlTm9kZUxpc3Q6OmludmFsaWRhdGVDYWNoZSgpIGNvbnN0
CiB7CiAgICAgbV9pbmRleENhY2hlLmludmFsaWRhdGUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2RvbS9MaXZlTm9kZUxpc3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTGl2
ZU5vZGVMaXN0LmgJKHJldmlzaW9uIDE2NDc3MykKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9MaXZl
Tm9kZUxpc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNzcsNiArNzcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gRE9NIEFQSQogICAgIHZpcnR1YWwgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Qgb3ZlcnJpZGUg
ZmluYWw7CiAgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIG9mZnNldCkgY29uc3Qgb3Zl
cnJpZGUgZmluYWw7CisgICAgdmlydHVhbCBzaXplX3QgbWVtb3J5Q29zdCgpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgQUxXQVlTX0lOTElORSBib29sIGlzUm9vdGVkQXREb2N1bWVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcm9vdFR5cGUgPT0gTm9kZUxpc3RJc1Jvb3RlZEF0RG9jdW1lbnQ7IH0KICAg
ICBBTFdBWVNfSU5MSU5FIE5vZGVMaXN0SW52YWxpZGF0aW9uVHlwZSBpbnZhbGlkYXRpb25UeXBl
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8Tm9kZUxpc3RJbnZhbGlkYXRpb25UeXBlPiht
X2ludmFsaWRhdGlvblR5cGUpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaAkocmV2aXNpb24g
MTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkK
QEAgLTQ1LDYgKzQ1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xpdmVOb2RlTGlz
dCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2hpbGROb2Rl
TGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRW1wdHlO
b2RlTGlzdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBzaXplX3QgbWVt
b3J5Q29zdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL05vZGVMaXN0LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vTm9kZUxpc3QuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw2ICsy
Miw3IEBACiAgICAgQ3VzdG9tSXNSZWFjaGFibGUsCiAgICAgSlNDdXN0b21HZXRPd25Qcm9wZXJ0
eVNsb3RBbmREZXNjcmlwdG9yLAogICAgIFNraXBWVGFibGVWYWxpZGF0aW9uLAorICAgIFJlcG9y
dEV4dHJhTWVtb3J5Q29zdCwKIF0gaW50ZXJmYWNlIE5vZGVMaXN0IHsKIAogICAgIGdldHRlciBO
b2RlIGl0ZW0odW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxDb2xsZWN0aW9uLmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0NCw2ICs0NDQsMTAgQEAg
dm9pZCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZWRFbGVtZW50QwogICAgICAgICBpZiAoIW5h
bWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJWYWwgIT0gbmFtZUF0dHJWYWwgJiYgKHR5cGUo
KSAhPSBEb2NBbGwgfHwgbmFtZVNob3VsZEJlVmlzaWJsZUluRG9jdW1lbnRBbGwodG9IVE1MRWxl
bWVudCgqZWxlbWVudCkpKSkKICAgICAgICAgICAgIGNhY2hlLmFwcGVuZE5hbWVDYWNoZShuYW1l
QXR0clZhbCwgZWxlbWVudCk7CiAgICAgfQorCisgICAgbV9pbmRleENhY2hlLm5vZGVDb3VudCgq
dGhpcyk7CisKKyAgICBjYWNoZS5kaWRQb3B1bGF0ZSgpOwogfQogCiBib29sIEhUTUxDb2xsZWN0
aW9uOjpoYXNOYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdApJbmRleDog
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkocmV2aXNpb24gMTY0NzczKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCwx
NyArNDAsMzQgQEAgY2xhc3MgRWxlbWVudDsKIAogY2xhc3MgQ29sbGVjdGlvbk5hbWVkRWxlbWVu
dENhY2hlIHsKIHB1YmxpYzoKKyNpZm5kZWYgQVNTRVJUX0RJU0FCTEVECisgICAgQ29sbGVjdGlv
bk5hbWVkRWxlbWVudENhY2hlIDogbV9kaWRQb3B1bGF0ZUNhbGxlZChmYWxzZSkgeyB9CisjZW5k
aWYKKwogICAgIGNvbnN0IFZlY3RvcjxFbGVtZW50Kj4qIGZpbmRFbGVtZW50c1dpdGhJZChjb25z
dCBBdG9taWNTdHJpbmcmIGlkKSBjb25zdCB7IHJldHVybiBmaW5kKG1faWRUb0VsZW1lbnRzTWFw
LCBpZCk7IH0KICAgICBjb25zdCBWZWN0b3I8RWxlbWVudCo+KiBmaW5kRWxlbWVudHNXaXRoTmFt
ZShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0IHsgcmV0dXJuIGZpbmQobV9uYW1lVG9F
bGVtZW50c01hcCwgbmFtZSk7IH0KIAogICAgIHZvaWQgYXBwZW5kSWRDYWNoZShjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBFbGVtZW50KiBlbGVtZW50KSB7IHJldHVybiBhcHBlbmQobV9pZFRvRWxl
bWVudHNNYXAsIGlkLCBlbGVtZW50KTsgfQogICAgIHZvaWQgYXBwZW5kTmFtZUNhY2hlKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSwgRWxlbWVudCogZWxlbWVudCkgIHsgcmV0dXJuIGFwcGVuZCht
X25hbWVUb0VsZW1lbnRzTWFwLCBuYW1lLCBlbGVtZW50KTsgfQogCisgICAgdm9pZCBkaWRQb3B1
bGF0ZSgpCisgICAgeworI2lmbmRlZiBBU1NFUlRfRElTQUJMRUQKKyAgICAgICAgbV9kaWRQb3B1
bGF0ZUNhbGxlZCA9IHRydWU7CisjZW5kaWYKKyAgICAgICAgaWYgKHNpemVfdCBjb3N0ID0gbWVt
b3J5Q29zdCgpKQorICAgICAgICAgICAgcmVwb3J0RXh0cmFNZW1vcnlDb3N0Rm9yQ29sbGVjdGlv
bkluZGV4Q2FjaGUoY29zdCk7CisgICAgfQorICAgIHNpemVfdCBtZW1vcnlDb3N0KCkgY29uc3Qg
eyByZXR1cm4gKG1faWRUb0VsZW1lbnRzTWFwLnNpemUoKSArIG1fbmFtZVRvRWxlbWVudHNNYXAu
c2l6ZSgpKSAqIHNpemVvZihFbGVtZW50Kik7IH0KKwogcHJpdmF0ZToKICAgICB0eXBlZGVmIEhh
c2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZlY3RvcjxFbGVtZW50Kj4+IFN0cmluZ1RvRWxlbWVu
dHNNYXA7CiAKLSAgICBzdGF0aWMgY29uc3QgVmVjdG9yPEVsZW1lbnQqPiogZmluZChjb25zdCBT
dHJpbmdUb0VsZW1lbnRzTWFwJiBtYXAsIGNvbnN0IEF0b21pY1N0cmluZyYga2V5KQorICAgIGNv
bnN0IFZlY3RvcjxFbGVtZW50Kj4qIGZpbmQoY29uc3QgU3RyaW5nVG9FbGVtZW50c01hcCYgbWFw
LCBjb25zdCBBdG9taWNTdHJpbmcmIGtleSkgY29uc3QKICAgICB7CisjaWZuZGVmIEFTU0VSVF9E
SVNBQkxFRAorICAgICAgICBBU1NFUlQobV9kaWRQb3B1bGF0ZUNhbGxlZCk7CisjZW5kaWYKICAg
ICAgICAgYXV0byBpdCA9IG1hcC5maW5kKGtleS5pbXBsKCkpOwogICAgICAgICByZXR1cm4gaXQg
IT0gbWFwLmVuZCgpID8gJml0LT52YWx1ZSA6IG51bGxwdHI7CiAgICAgfQpAQCAtNjIsNiArNzks
OSBAQCBwcml2YXRlOgogCiAgICAgU3RyaW5nVG9FbGVtZW50c01hcCBtX2lkVG9FbGVtZW50c01h
cDsKICAgICBTdHJpbmdUb0VsZW1lbnRzTWFwIG1fbmFtZVRvRWxlbWVudHNNYXA7CisjaWZuZGVm
IEFTU0VSVF9ESVNBQkxFRAorICAgIGJvb2wgbV9kaWRQb3B1bGF0ZUNhbGxlZDsKKyNlbmRpZgog
fTsKIAogY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJsaWMgU2NyaXB0V3JhcHBhYmxlLCBwdWJs
aWMgUmVmQ291bnRlZDxIVE1MQ29sbGVjdGlvbj4gewpAQCAtNzgsNiArOTgsNyBAQCBwdWJsaWM6
CiAgICAgLy8gTm9uLURPTSBBUEkKICAgICBib29sIGhhc05hbWVkSXRlbShjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIHZvaWQgbmFtZWRJdGVtcyhjb25zdCBBdG9taWNTdHJp
bmcmIG5hbWUsIFZlY3RvcjxSZWY8RWxlbWVudD4+JikgY29uc3Q7CisgICAgc2l6ZV90IG1lbW9y
eUNvc3QoKSBjb25zdCB7IHJldHVybiBtX2luZGV4Q2FjaGUubWVtb3J5Q29zdCgpICsgKG1fbmFt
ZWRFbGVtZW50Q2FjaGUgPyBtX25hbWVkRWxlbWVudENhY2hlLT5tZW1vcnlDb3N0KCkgOiAwKTsg
fQogCiAgICAgYm9vbCBpc1Jvb3RlZEF0RG9jdW1lbnQoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RU
eXBlID09IE5vZGVMaXN0SXNSb290ZWRBdERvY3VtZW50OyB9CiAgICAgTm9kZUxpc3RJbnZhbGlk
YXRpb25UeXBlIGludmFsaWRhdGlvblR5cGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxO
b2RlTGlzdEludmFsaWRhdGlvblR5cGU+KG1faW52YWxpZGF0aW9uVHlwZSk7IH0KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaWRsCShyZXZpc2lvbiAxNjQ3NzMpCisrKyBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmlkbAkod29ya2luZyBjb3B5KQpAQCAt
MjIsNiArMjIsNyBAQAogICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgR2VuZXJhdGVJc1JlYWNo
YWJsZT1JbXBsT3duZXJOb2RlUm9vdCwKICAgICBPYmpDUG9seW1vcnBoaWMsCisgICAgUmVwb3J0
RXh0cmFNZW1vcnlDb3N0LAogXSBpbnRlcmZhY2UgSFRNTENvbGxlY3Rpb24gewogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxlbmd0aDsKICAgICBnZXR0ZXIgTm9kZSBpdGVt
KFtEZWZhdWx0PVVuZGVmaW5lZF0gb3B0aW9uYWwgdW5zaWduZWQgbG9uZyBpbmRleCk7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9u
LmNwcAkocmV2aXNpb24gMTY0NzczKQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNv
bnRyb2xzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsOCBAQCB2
b2lkIEhUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uOjp1cGRhdGVOCiAgICAgICAgICAgICAgICAg
Y2FjaGUuYXBwZW5kTmFtZUNhY2hlKG5hbWVBdHRyVmFsLCAmZWxlbWVudCk7CiAgICAgICAgIH0K
ICAgICB9CisKKyAgICBjYWNoZS5kaWRQb3B1bGF0ZSgpOwogfQogCiB2b2lkIEhUTUxGb3JtQ29u
dHJvbHNDb2xsZWN0aW9uOjppbnZhbGlkYXRlQ2FjaGUoKSBjb25zdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>