<?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>166345</bug_id>
          
          <creation_ts>2016-12-21 10:00:23 -0800</creation_ts>
          <short_desc>[WebIDL] Remove custom binding for ErrorEvent</short_desc>
          <delta_ts>2016-12-21 15:34:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1261997</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 10:00:23 -0800</bug_when>
    <thetext>[WebIDL] Remove custom binding for ErrorEvent</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262003</commentid>
    <comment_count>1</comment_count>
      <attachid>297597</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 10:20:27 -0800</bug_when>
    <thetext>Created attachment 297597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262004</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-21 10:22:07 -0800</bug_when>
    <thetext>Attachment 297597 did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/HandleTypes.h:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262016</commentid>
    <comment_count>3</comment_count>
      <attachid>297601</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 10:34:06 -0800</bug_when>
    <thetext>Created attachment 297601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262017</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-21 10:35:09 -0800</bug_when>
    <thetext>Attachment 297601 did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/HandleTypes.h:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262057</commentid>
    <comment_count>5</comment_count>
      <attachid>297614</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 11:55:02 -0800</bug_when>
    <thetext>Created attachment 297614
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262100</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-21 12:49:52 -0800</bug_when>
    <thetext>Attachment 297614 did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/HandleTypes.h:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262169</commentid>
    <comment_count>7</comment_count>
      <attachid>297623</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 14:49:59 -0800</bug_when>
    <thetext>Created attachment 297623
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262171</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-21 14:53:42 -0800</bug_when>
    <thetext>Attachment 297623 did not pass style-queue:


ERROR: Source/WebCore/ForwardingHeaders/heap/HandleTypes.h:0:  No copyright message found.  You should have a line: &quot;Copyright [year] &lt;Copyright Owner&gt;&quot;  [legal/copyright] [5]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1262180</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2016-12-21 15:34:19 -0800</bug_when>
    <thetext>Committed r210081: &lt;http://trac.webkit.org/changeset/210081&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297597</attachid>
            <date>2016-12-21 10:20:27 -0800</date>
            <delta_ts>2016-12-21 10:34:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166345-20161221101924.patch</filename>
            <type>text/plain</type>
            <size>23863</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMDA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTEyLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5nIGZvciBFcnJvckV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjYzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBKU0Vycm9yRXZlbnRDdXN0b20uY3BwCisKKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL0hhbmRsZVR5cGVzLmg6IEFkZGVkLgorICAgICAg
ICBBZGQgZm9yd2FyZGluZyBoZWFkZXIgZm9yIEhhbmRsZVR5cGVzLmgKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JI
YW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBKU0RPTUNvbnZl
cnQgYW5kIGNhbGwgdGhlIHVwZGF0ZWQgbmFtZSBmb3IgdGhlIGVycm9yIGdldHRlci4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0VmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpzYW5pdGl6ZVNjcmlwdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QpOgorICAgICAgICBVcGRhdGUgdHlwZSB0aGF0IHNhbml0aXplU2NyaXB0
RXJyb3IgdGFrZXMgZnJvbSBhIFNjcmlwdFZhbHVlIHRvIGEgU3Ryb25nPFVua25vd24+LgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICBBZGQgYSBuZXcgZXh0ZW5kZWQgYXR0cmlidXRlcyBvcHRpb24gZm9y
IHRoZSBDYWxsV2l0aCwgR2xvYmFsT2JqZWN0LCB0aGF0IHBhc3NlcyB0aGUgZ2xvYmFsIG9iamVj
dC4KKworICAgICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVy
cm9yRXZlbnQ6OkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6ZXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgU3RvcmUgYSBTdHJvbmc8
VW5rbm93bj4gZGlyZWN0bHksIHJhdGhlciB0aGFuIGEgU2NyaXB0VmFsdWUuIFJlbmFtZSBzYW5p
dGl6ZWRFcnJvclZhbHVlIHRvIAorICAgICAgICBqdXN0IGVycm9yIHRvIG1hdGNoIHRoZSBJREwu
CisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgIFJlbW92ZSBDdXN0b21H
ZXR0ZXIuCisKIDIwMTYtMTItMjEgIE5hZWwgT3VlZHJhb2dvICA8bmFlbC5vdWVkcmFvZ29AY3Jm
LmNhbm9uLmZyPgogCiAgICAgICAgIFtSZWFkYWJsZSBTdHJlYW1zIEFQSV0gRml4IHRlc3QgaW4g
cmVhZGFibGVCeXRlU3RyZWFtQ2FsbFB1bGxJZk5lZWRlZApJbmRleDogU291cmNlL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQJKHJldmlzaW9uIDIxMDA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xMTIwLDcgKzExMjAsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAg
ICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0Rv
Y3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5n
cy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNw
cAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAvSGFuZGxlVHlwZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVhZGVycy9oZWFwL0hhbmRsZVR5cGVzLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9IYW5kbGVU
eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMiBAQAorI3ByYWdtYSBvbmNlCisjaW5j
bHVkZSA8SmF2YVNjcmlwdENvcmUvSGFuZGxlVHlwZXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxMDA2
MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNDAwOCw3ICs0MDA4LDYgQEAKIAkJQTU1NjM5RDIxQzZGMDlFNzAw
ODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1NjM5Q0YxQzZFRkQ1OTAwODA2RDhFIC8qIFdvcmtl
ckNvbnNvbGVDbGllbnQuY3BwICovOyB9OwogCQlBNTZDNUI5QTE4OUYzNDU3MDA4MkQxM0MgLyog
V2ViQ29uc29sZUFnZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEE1NkM1Qjk4MTg5RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuY3Bw
ICovOyB9OwogCQlBNTZDNUI5QjE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTZDNUI5OTE4
OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggKi87IH07Ci0JCUE1NkQwMkEzMUQw
QkFENjgwMDk1RTVEMyAvKiBKU0Vycm9yRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8q
IEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi87IH07CiAJCUE1NzMyQjBBMTM2QTE2MUQwMDVDOEQ3
QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBNTczMkIwODEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMu
Y3BwICovOyB9OwogCQlBNTczMkIwQjEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NzMyQjA5
MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE1N0ZENzFCMURCOTQyM0UwMDZBRTI0QiAv
KiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTU3RkQ3MTkxREI5NDIzNjAwNkFFMjRCIC8qIFdvcmtlclJ1bnRpbWVB
Z2VudC5jcHAgKi87IH07CkBAIC0xMTY4Niw3ICsxMTY4NSw2IEBACiAJCUE1NTYzOUQwMUM2RUZE
NTkwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdvcmtlckNvbnNvbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQTU2QzVCOTgxODlGMzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJDb25zb2xlQWdlbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0Mg
LyogV2ViQ29uc29sZUFnZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTZEMDJBMjFE
MEI5QUYzMDA5NUU1RDMgLyogSlNFcnJvckV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJyb3JFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1NzMyQjA4MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9u
ZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29tcG9u
ZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NzMyQjA5MTM2QTE2MUQw
MDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEYXRlQ29tcG9uZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTdG
RDcxOTFEQjk0MjM2MDA2QUUyNEIgLyogV29ya2VyUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdvcmtlclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNjA1NSwxMCArMTYwNTMsOCBAQAogCQkxQUY2MkVF
MjE0REEyMkE3MDA0MTU1NkMgLyogbWFjICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQlj
aGlsZHJlbiA9ICgKLQkJCQk1MTdERUVFMzFERTk0QURDMDBCOTE2NDQgLyogU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yTWFjLm1tICovLAogCQkJCTkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAv
KiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5oICovLAogCQkJCTFBRjYyRUUzMTREQTIyQTcwMDQx
NTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSAqLywKLQkJCQk1MTdERUVFNzFERTk0
QjA4MDBCOTE2NDQgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLmggKi8sCiAJCQkJ
MEZBODhFQkMxNkE4RDFCRDAwRjk5OTg0IC8qIFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjLm1tICovLAogCQkJCTFBRjYyRjIzMTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdU
aHJlYWRNYWMubW0gKi8sCiAJCQkJOTNDMzhDMDExNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGlu
Z1RyZWVGaXhlZE5vZGUuaCAqLywKQEAgLTIyMTA2LDcgKzIyMTAyLDYgQEAKIAkJCQlCQzY0NjQ5
QjExRDgyMzhDMDA2NDU1QjAgLyogSlNET01TdHJpbmdNYXBDdXN0b20uY3BwICovLAogCQkJCUJD
RDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJ
NjUyRkJCQkIwREUyN0NCNjAwMDFEMzg2IC8qIEpTRE9NV2luZG93Q3VzdG9tLmggKi8sCi0JCQkJ
QTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi8sCiAJ
CQkJMkU3NTgyRUQxMjc2NEYyNjAwNjI2MjhCIC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgKi8s
CiAJCQkJQzI4MDgzNDExQzZEQzk2QTAwMTQ1MUI2IC8qIEpTRm9udEZhY2VDdXN0b20uY3BwICov
LAogCQkJCTFDMjRFRUFBMUM3MkFBMEEwMDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0Q3VzdG9tLmNw
cCAqLywKQEAgLTI5OTI1LDcgKzI5OTIwLDYgQEAKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMw
MDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdB
REMxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJyb3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlBNTZEMDJBMzFEMEJBRDY4MDA5NUU1RDMgLyogSlNFcnJvckV2ZW50Q3VzdG9tLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUYzRDQ2MTQ4MTE2MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNEU4Mzc4NDA5Rjg1RDFDMDBCODVBRTQgLyogSlNF
dmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0VGQUY0RTBDMzE3RTY5MDBGQTgxRjYgLyog
SlNFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gMjEwMDYw
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnRDdXN0
b20uY3BwIgogI2luY2x1ZGUgIkpTRG9jdW1lbnRGcmFnbWVudEN1c3RvbS5jcHAiCiAjaW5jbHVk
ZSAiSlNFbGVtZW50Q3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU0Vycm9yRXZlbnRDdXN0b20uY3Bw
IgogI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVyLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9t
LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlzdGVuZXIuY3BwIgpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFcnJvckV2ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9yRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAy
MTAwNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9yRXZlbnRDdXN0b20u
Y3BwCShub25leGlzdGVudCkKQEAgLTEsNDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJK
U0Vycm9yRXZlbnQuaCIKLQotI2luY2x1ZGUgIkVycm9yRXZlbnQuaCIKLSNpbmNsdWRlIDxoZWFw
L0hlYXBJbmxpbmVzLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJD
b3JlIHsKLQotSlNWYWx1ZSBKU0Vycm9yRXZlbnQ6OmVycm9yKEV4ZWNTdGF0ZSYgc3RhdGUpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIHdyYXBwZWQoKS5zYW5pdGl6ZWRFcnJvclZhbHVlKHN0YXRlLCAq
Z2xvYmFsT2JqZWN0KCkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCShyZXZpc2lvbiAy
MTAwNjApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJFcnJvckV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCiAjaW5jbHVkZSAiSlNFdmVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRo
cmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1l
bnRhdGlvbi5oIgpAQCAtOTAsMTEgKzkxLDExIEBAIHZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRs
ZUV2ZW50KFNjcmlwdEUKICAgICAgICAgZ2xvYmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZl
bnQpOwogCiAgICAgICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7Ci0gICAgICAgIGFyZ3Mu
YXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGVycm9yRXZlbnQubWVzc2FnZSgpKSk7Ci0g
ICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4ZWMsIGVycm9yRXZlbnQuZmls
ZW5hbWUoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50LmxpbmVu
bygpKSk7Ci0gICAgICAgIGFyZ3MuYXBwZW5kKGpzTnVtYmVyKGVycm9yRXZlbnQuY29sbm8oKSkp
OwotICAgICAgICBhcmdzLmFwcGVuZChlcnJvckV2ZW50LnNhbml0aXplZEVycm9yVmFsdWUoKmV4
ZWMsICpnbG9iYWxPYmplY3QpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9KUzxJRExET01TdHJp
bmc+KCpleGVjLCBlcnJvckV2ZW50Lm1lc3NhZ2UoKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh0
b0pTPElETFVTVlN0cmluZz4oKmV4ZWMsIGVycm9yRXZlbnQuZmlsZW5hbWUoKSkpOworICAgICAg
ICBhcmdzLmFwcGVuZCh0b0pTPElETFVuc2lnbmVkTG9uZz4oZXJyb3JFdmVudC5saW5lbm8oKSkp
OworICAgICAgICBhcmdzLmFwcGVuZCh0b0pTPElETFVuc2lnbmVkTG9uZz4oZXJyb3JFdmVudC5j
b2xubygpKSk7CisgICAgICAgIGFyZ3MuYXBwZW5kKGVycm9yRXZlbnQuZXJyb3IoKmV4ZWMsICpn
bG9iYWxPYmplY3QpKTsKIAogICAgICAgICBWTSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAg
ICAgICAgIFZNRW50cnlTY29wZSBlbnRyeVNjb3BlKHZtLCB2bS5lbnRyeVNjb3BlID8gdm0uZW50
cnlTY29wZS0+Z2xvYmFsT2JqZWN0KCkgOiBnbG9iYWxPYmplY3QpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjEwMDYw
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNywxMCArMzcsNiBAQCBPQkpDX0NMQVNTIFdlYlNjcmlwdE9iamVjdDsK
IAogc3RydWN0IE5QT2JqZWN0OwogCi1uYW1lc3BhY2UgRGVwcmVjYXRlZCB7Ci1jbGFzcyBTY3Jp
cHRWYWx1ZTsKLX0KLQogbmFtZXNwYWNlIEpTQyB7CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBK
U0dsb2JhbE9iamVjdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCShyZXZpc2lvbiAyMTAwNjApCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpA
QCAtMjcsNyArMjcsNiBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5o
IgotI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJv
bmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0FycmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8cnVudGlt
ZS9KU0NKU1ZhbHVlLmg+CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJT
Y3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gMjEwMDYwKQorKysgU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6
OmV2YWx1YXRlKGNvCiAgICAgICAgIGludCBsaW5lTnVtYmVyID0gMDsKICAgICAgICAgaW50IGNv
bHVtbk51bWJlciA9IDA7CiAgICAgICAgIFN0cmluZyBzb3VyY2VVUkwgPSBzb3VyY2VDb2RlLnVy
bCgpLnN0cmluZygpOwotICAgICAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBlcnJvcjsKKyAg
ICAgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcjsKICAgICAgICAgaWYgKG1fd29y
a2VyR2xvYmFsU2NvcGUtPnNhbml0aXplU2NyaXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZVVSTCwgZXJyb3IsIHNvdXJjZUNvZGUuY2FjaGVkU2Ny
aXB0KCkpKQogICAgICAgICAgICAgcmV0dXJuZWRFeGNlcHRpb24gPSBKU0M6OkV4Y2VwdGlvbjo6
Y3JlYXRlKHZtLCBjcmVhdGVFcnJvcihleGVjLCBlcnJvck1lc3NhZ2UuaW1wbCgpKSk7CiAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxMDA2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5nIGNvcHkpCkBAIC00MjU0LDE3ICs0
MjU0LDEzIEBAIHN1YiBHZW5lcmF0ZUNhbGxXaXRoVXNpbmdQb2ludGVycwogCiBzdWIgR2VuZXJh
dGVDYWxsV2l0aAogewotICAgIG15ICRjYWxsV2l0aCA9IHNoaWZ0OworICAgIG15ICgkY2FsbFdp
dGgsICRvdXRwdXRBcnJheSwgJHJldHVyblZhbHVlLCAkZnVuY3Rpb24sICRzdGF0ZVBvaW50ZXIs
ICRzdGF0ZVJlZmVyZW5jZSwgJGdsb2JhbE9iamVjdCkgPSBAXzsKKwogICAgIHJldHVybiAoKSB1
bmxlc3MgJGNhbGxXaXRoOwotICAgIG15ICRvdXRwdXRBcnJheSA9IHNoaWZ0OwotICAgIG15ICRy
ZXR1cm5WYWx1ZSA9IHNoaWZ0OwotICAgIG15ICRmdW5jdGlvbiA9IHNoaWZ0OwotICAgIG15ICRz
dGF0ZVBvaW50ZXIgPSBzaGlmdDsKLSAgICBteSAkc3RhdGVSZWZlcmVuY2UgPSBzaGlmdDsKLSAg
ICBteSAkZ2xvYmFsT2JqZWN0ID0gc2hpZnQ7CiAKICAgICBteSBAY2FsbFdpdGhBcmdzOwogICAg
IHB1c2goQGNhbGxXaXRoQXJncywgJHN0YXRlUmVmZXJlbmNlKSBpZiAkY29kZUdlbmVyYXRvci0+
RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJTY3JpcHRTdGF0ZSIpOworICAg
IHB1c2goQGNhbGxXaXRoQXJncywgIioke2dsb2JhbE9iamVjdH0iKSBpZiAkY29kZUdlbmVyYXRv
ci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygkY2FsbFdpdGgsICJHbG9iYWxPYmplY3QiKTsK
ICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxX
aXRoLCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dCIpKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBhdXRvKiBjb250ZXh0ID0gJGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIWNv
bnRleHQpXG4iKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAkocmV2aXNpb24gMjEwMDYwKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjQs
NyArMjQsNyBAQCBBdG9taWNTdHJpbmcKIENFUmVhY3Rpb25zCiBDYWNoZWRBdHRyaWJ1dGUKIENh
bGxiYWNrTmVlZHNPcGVyYXRvckVxdWFsCi1DYWxsV2l0aD1Eb2N1bWVudHxTY3JpcHRFeGVjdXRp
b25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2t8QWN0aXZlV2lu
ZG93fEZpcnN0V2luZG93fENhbGxlckRvY3VtZW50fENhbGxlcldpbmRvdworQ2FsbFdpdGg9RG9j
dW1lbnR8U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZXxTY3JpcHRBcmd1bWVudHN8
Q2FsbFN0YWNrfEdsb2JhbE9iamVjdHxBY3RpdmVXaW5kb3d8Rmlyc3RXaW5kb3d8Q2FsbGVyRG9j
dW1lbnR8Q2FsbGVyV2luZG93CiBDaGVja1NlY3VyaXR5CiBDaGVja1NlY3VyaXR5Rm9yTm9kZQog
Q2xhbXAKQEAgLTExMCw3ICsxMTAsNyBAQCBSZXBsYWNlYWJsZQogUmVwb3J0RXh0cmFNZW1vcnlD
b3N0CiBSZXBvcnRFeHRlcm5hbE1lbW9yeUNvc3QKIFJlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJp
bmcKLVNldHRlckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8U2Ny
aXB0QXJndW1lbnRzfENhbGxTdGFja3xBY3RpdmVXaW5kb3d8Rmlyc3RXaW5kb3cKK1NldHRlckNh
bGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRz
fENhbGxTdGFja3xHbG9iYWxPYmplY3R8QWN0aXZlV2luZG93fEZpcnN0V2luZG93CiBTZXR0ZXJN
YXlUaHJvd0V4Y2VwdGlvbgogU2tpcFZUYWJsZVZhbGlkYXRpb24KIFN1cHByZXNzVG9KU09iamVj
dApJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmNwcAkocmV2aXNpb24gMjEwMDYwKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3
ICs1MCw3IEBAIEVycm9yRXZlbnQ6OkVycm9yRXZlbnQoRXhlY1N0YXRlJiBzdGF0ZSwKIHsKIH0K
IAotRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yKQorRXJyb3JFdmVudDo6RXJy
b3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlND
OjpVbmtub3duPiBlcnJvcikKICAgICA6IEV2ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBm
YWxzZSwgdHJ1ZSkKICAgICAsIG1fbWVzc2FnZShtZXNzYWdlKQogICAgICwgbV9maWxlTmFtZShm
aWxlTmFtZSkKQEAgLTY5LDkgKzY5LDkgQEAgRXZlbnRJbnRlcmZhY2UgRXJyb3JFdmVudDo6ZXZl
bnRJbnRlcmZhYwogICAgIHJldHVybiBFcnJvckV2ZW50SW50ZXJmYWNlVHlwZTsKIH0KIAotSlNW
YWx1ZSBFcnJvckV2ZW50OjpzYW5pdGl6ZWRFcnJvclZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgSlNH
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKK0pTVmFsdWUgRXJyb3JFdmVudDo6ZXJyb3IoRXhl
Y1N0YXRlJiBleGVjLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQogeyAgICAKLSAgICBh
dXRvIGVycm9yID0gbV9lcnJvci5qc1ZhbHVlKCk7CisgICAgYXV0byBlcnJvciA9IG1fZXJyb3Iu
Z2V0KCk7CiAgICAgaWYgKCFlcnJvcikKICAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCkBAIC05
MCw3ICs5MCw3IEBAIEpTVmFsdWUgRXJyb3JFdmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSgKIFJl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IEVycm9yRXZlbnQ6OnRyeVNlcmlhbGl6ZUVycm9y
KEV4ZWNTdGF0ZSYgZXhlYykKIHsKICAgICBpZiAoIW1fdHJpZWRUb1NlcmlhbGl6ZSkgewotICAg
ICAgICBtX3NlcmlhbGl6ZWREZXRhaWwgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShl
eGVjLCBtX2Vycm9yLCBOb25UaHJvd2luZyk7CisgICAgICAgIG1fc2VyaWFsaXplZERldGFpbCA9
IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIG1fZXJyb3IuZ2V0KCksIE5vblRo
cm93aW5nKTsKICAgICAgICAgbV90cmllZFRvU2VyaWFsaXplID0gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIG1fc2VyaWFsaXplZERldGFpbDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJv
ckV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAko
cmV2aXNpb24gMjEwMDYwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDE0IEBACiAKICNpbmNsdWRlICJFdmVudC5oIgogI2lu
Y2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgotI2luY2x1ZGUgPGJpbmRpbmdzL1Njcmlw
dFZhbHVlLmg+CisjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBFcnJvckV2ZW50IGZp
bmFsIDogcHVibGljIEV2ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPEVycm9yRXZlbnQ+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVu
c2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIGVycm9yKQorICAgIHN0YXRpYyBSZWY8RXJyb3JFdmVudD4gY3JlYXRl
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25v
d24+IGVycm9yKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVu
dChtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikpOwog
ICAgIH0KQEAgLTY0LDEzICs2NCwxMiBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBmaWxl
bmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZU5hbWU7IH0KICAgICB1bnNpZ25lZCBsaW5lbm8o
KSBjb25zdCB7IHJldHVybiBtX2xpbmVOdW1iZXI7IH0KICAgICB1bnNpZ25lZCBjb2xubygpIGNv
bnN0IHsgcmV0dXJuIG1fY29sdW1uTnVtYmVyOyB9Ci0gICAgY29uc3QgRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUmIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQotICAgIEpTQzo6SlNW
YWx1ZSBzYW5pdGl6ZWRFcnJvclZhbHVlKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU0dsb2JhbE9i
amVjdCYpOworICAgIEpTQzo6SlNWYWx1ZSBlcnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNH
bG9iYWxPYmplY3QmKTsKIAogICAgIEV2ZW50SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAgRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2ln
bmVkIGNvbHVtbk51bWJlciwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yKTsK
KyAgICBFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxl
TmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0
cm9uZzxKU0M6OlVua25vd24+IGVycm9yKTsKICAgICBFcnJvckV2ZW50KEpTQzo6RXhlY1N0YXRl
JiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKICAgICBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB0cnlTZXJpYWxpemVFcnJvcihKU0M6OkV4ZWNT
dGF0ZSYpOwpAQCAtODEsNyArODAsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ZpbGVOYW1l
OwogICAgIHVuc2lnbmVkIG1fbGluZU51bWJlcjsKICAgICB1bnNpZ25lZCBtX2NvbHVtbk51bWJl
cjsKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBtX2Vycm9yOworICAgIEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4gbV9lcnJvcjsKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBtX3NlcmlhbGl6ZWREZXRhaWw7CiAgICAgYm9vbCBtX3RyaWVkVG9TZXJpYWxpemUgeyBmYWxz
ZSB9OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmlkbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5pZGwJKHJldmlzaW9uIDIxMDA2
MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZmlsZW5h
bWU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcgbGluZW5vOwogICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGNvbG5vOwotICAgIFtDdXN0b21HZXR0ZXJd
IHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZXJyb3I7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRl
Jkdsb2JhbE9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBlcnJvcjsKIH07CiAKIGRpY3Rp
b25hcnkgRXJyb3JFdmVudEluaXQgOiBFdmVudEluaXQgewpJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMjEwMDYwKQorKysg
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNTcsNyArMzU3LDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp3aWxs
RGVzdHJveQogICAgIG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiB9
CiAKLWJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3Ry
aW5nJiBzb3VyY2VVUkwsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvciwgQ2FjaGVkU2Ny
aXB0KiBjYWNoZWRTY3JpcHQpCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNhbml0aXpl
U2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgaW50JiBj
b2x1bW5OdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+
JiBlcnJvciwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgQVNTRVJUKHNlY3Vy
aXR5T3JpZ2luKCkpOwogICAgIGlmIChjYWNoZWRTY3JpcHQpIHsKQEAgLTM2OSwxMCArMzY5LDEw
IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3IKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgZXJyb3JNZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iOwotICAgIHNv
dXJjZVVSTCA9IFN0cmluZygpOworICAgIHNvdXJjZVVSTCA9IHsgfTsKICAgICBsaW5lTnVtYmVy
ID0gMDsKICAgICBjb2x1bW5OdW1iZXIgPSAwOwotICAgIGVycm9yID0gRGVwcmVjYXRlZDo6U2Ny
aXB0VmFsdWUoKTsKKyAgICBlcnJvciA9IHsgfTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAt
NDIwLDcgKzQyMCw3IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnIK
ICAgICBpbnQgbGluZSA9IGxpbmVOdW1iZXI7CiAgICAgaW50IGNvbHVtbiA9IGNvbHVtbk51bWJl
cjsKICAgICBTdHJpbmcgc291cmNlTmFtZSA9IHNvdXJjZVVSTDsKLSAgICBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBlcnJvciA9IGV4Y2VwdGlvbiAmJiBleGNlcHRpb24tPnZhbHVlKCkgPyBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSh2bSgpLCBleGNlcHRpb24tPnZhbHVlKCkpIDogRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUoKTsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yID0g
ZXhjZXB0aW9uICYmIGV4Y2VwdGlvbi0+dmFsdWUoKSA/IEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93
bj4odm0oKSwgZXhjZXB0aW9uLT52YWx1ZSgpKSA6IEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4o
KTsKICAgICBzYW5pdGl6ZVNjcmlwdEVycm9yKG1lc3NhZ2UsIGxpbmUsIGNvbHVtbiwgc291cmNl
TmFtZSwgZXJyb3IsIGNhY2hlZFNjcmlwdCk7CiAKICAgICBBU1NFUlQoIW1faW5EaXNwYXRjaEVy
cm9yRXZlbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5oCShyZXZpc2lvbiAyMTAwNjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOSArMzEsMTcgQEAKICNpbmNs
dWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogI2luY2x1ZGUg
IlN1cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8aGVhcC9IYW5kbGVUeXBlcy5oPgogI2luY2x1
ZGUgPHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFz
ay5oPgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAKLW5hbWVzcGFjZSBEZXByZWNhdGVkIHsKLWNsYXNzIFNjcmlwdFZhbHVlOwotfQotCiBuYW1l
c3BhY2UgSlNDIHsKIGNsYXNzIEV4Y2VwdGlvbjsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIFZN
OwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cm9uZzsKIH0KIAogbmFtZXNwYWNlIElu
c3BlY3RvciB7CkBAIC05NCw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5n
IHJlc291cmNlUmVxdWVzdElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfTsK
IAotICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50
JiBsaW5lTnVtYmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwsIERlcHJl
Y2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvciwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIpOworICAg
IGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5l
TnVtYmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6U3Ryb25n
PEpTQzo6VW5rbm93bj4mIGVycm9yLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CiAgICAgdm9p
ZCByZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVt
YmVyLCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNl
cHRpb24qLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIENhY2hlZFNjcmlw
dCogPSBudWxscHRyKTsKIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291
cmNlVVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6
RXhlY1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAw
KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJv
eHkuY3BwCShyZXZpc2lvbiAyMTAwNjApCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHZv
aWQgV29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb24KICAgICAgICAgLy8gV2UgZG9u
J3QgYm90aGVyIGNoZWNraW5nIHRoZSBhc2tlZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNh
dXNlIGV4Y2VwdGlvbnMgc2hvdWxkICphbHdheXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRo
cmVhZCBpcyB0ZXJtaW5hdGVkLgogICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlm
ZmVyZW50IHRoYW4gdGhlIGJlaGF2aW9yIGluIE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRl
cm1pbmF0ZWQgd29ya2VycyBubyBsb25nZXIgZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYg
b2YgdGhlIFdlYldvcmtlciBzcGVjKSwgYnV0IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCiAK
LSAgICAgICAgYm9vbCBlcnJvckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50
KEVycm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpKSk7CisgICAgICAgIGJvb2wg
ZXJyb3JIYW5kbGVkID0gIXdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50Ojpj
cmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwg
eyB9KSk7CiAgICAgICAgIGlmICghZXJyb3JIYW5kbGVkKQogICAgICAgICAgICAgY29udGV4dC5y
ZXBvcnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNv
dXJjZVVSTCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297601</attachid>
            <date>2016-12-21 10:34:06 -0800</date>
            <delta_ts>2016-12-21 11:54:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166345-20161221103303.patch</filename>
            <type>text/plain</type>
            <size>24543</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTEyLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5nIGZvciBFcnJvckV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjYzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBKU0Vycm9yRXZlbnRDdXN0b20uY3BwCisKKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL0hhbmRsZVR5cGVzLmg6IEFkZGVkLgorICAgICAg
ICBBZGQgZm9yd2FyZGluZyBoZWFkZXIgZm9yIEhhbmRsZVR5cGVzLmgKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JI
YW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBKU0RPTUNvbnZl
cnQgYW5kIGNhbGwgdGhlIHVwZGF0ZWQgbmFtZSBmb3IgdGhlIGVycm9yIGdldHRlci4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0VmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpzYW5pdGl6ZVNjcmlwdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QpOgorICAgICAgICBVcGRhdGUgdHlwZSB0aGF0IHNhbml0aXplU2NyaXB0
RXJyb3IgdGFrZXMgZnJvbSBhIFNjcmlwdFZhbHVlIHRvIGEgU3Ryb25nPFVua25vd24+LgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICBBZGQgYSBuZXcgZXh0ZW5kZWQgYXR0cmlidXRlcyBvcHRpb24gZm9y
IHRoZSBDYWxsV2l0aCwgR2xvYmFsT2JqZWN0LCB0aGF0IHBhc3NlcyB0aGUgZ2xvYmFsIG9iamVj
dC4KKworICAgICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVy
cm9yRXZlbnQ6OkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6ZXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgU3RvcmUgYSBTdHJvbmc8
VW5rbm93bj4gZGlyZWN0bHksIHJhdGhlciB0aGFuIGEgU2NyaXB0VmFsdWUuIFJlbmFtZSBzYW5p
dGl6ZWRFcnJvclZhbHVlIHRvIAorICAgICAgICBqdXN0IGVycm9yIHRvIG1hdGNoIHRoZSBJREwu
CisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgIFJlbW92ZSBDdXN0b21H
ZXR0ZXIuCisKIDIwMTYtMTItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmVuc3VyZUxheWVyIGNhbiBiZSBjYWxsZWQgYmVmb3JlIGl0IGhhcyBhIG1lZGlh
IHN0cmVhbQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTIwLDcgKzEx
MjAsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTRXJy
b3JFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRM
aXN0ZW5lci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAv
SGFuZGxlVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9oZWFwL0hhbmRsZVR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9IYW5kbGVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMiBAQAorI3ByYWdtYSBvbmNlCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGFuZGxl
VHlwZXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwOCw3ICs0
MDA4LDYgQEAKIAkJQTU1NjM5RDIxQzZGMDlFNzAwODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1
NjM5Q0YxQzZFRkQ1OTAwODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGllbnQuY3BwICovOyB9Owog
CQlBNTZDNUI5QTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NkM1Qjk4MTg5RjM0NTcw
MDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuY3BwICovOyB9OwogCQlBNTZDNUI5QjE4OUYzNDU3
MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29s
ZUFnZW50LmggKi87IH07Ci0JCUE1NkQwMkEzMUQwQkFENjgwMDk1RTVEMyAvKiBKU0Vycm9yRXZl
bnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi87
IH07CiAJCUE1NzMyQjBBMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTczMkIwODEzNkEx
NjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovOyB9OwogCQlBNTczMkIwQjEzNkEx
NjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29t
cG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1N0ZENzFCMURCOTQyM0UwMDZBRTI0QiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3RkQ3MTkxREI5
NDIzNjAwNkFFMjRCIC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CkBAIC0xMTY4Niw3
ICsxMTY4NSw2IEBACiAJCUE1NTYzOUQwMUM2RUZENTkwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xl
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckNvbnNvbGVD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU2QzVCOTgxODlGMzQ1NzAw
ODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb25zb2xlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNTZEMDJBMjFEMEI5QUYzMDA5NUU1RDMgLyogSlNFcnJvckV2
ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJy
b3JFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NzMyQjA4
MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTdGRDcxOTFEQjk0MjM2MDA2QUUyNEIgLyogV29y
a2VyUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtlclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NjA1NSwxMCArMTYwNTMsOCBAQAogCQkxQUY2MkVFMjE0REEyMkE3MDA0MTU1NkMgLyogbWFjICov
ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKLQkJCQk1MTdERUVFMzFE
RTk0QURDMDBCOTE2NDQgLyogU2Nyb2xsaW5nTW9tZW50dW1DYWxjdWxhdG9yTWFjLm1tICovLAog
CQkJCTkzOTFBOTkwMTYyNzQ2Q0IwMDI5NzMzMCAvKiBTY3JvbGxpbmdDb29yZGluYXRvck1hYy5o
ICovLAogCQkJCTFBRjYyRUUzMTREQTIyQTcwMDQxNTU2QyAvKiBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYy5tbSAqLywKLQkJCQk1MTdERUVFNzFERTk0QjA4MDBCOTE2NDQgLyogU2Nyb2xsaW5nTW9t
ZW50dW1DYWxjdWxhdG9yTWFjLmggKi8sCiAJCQkJMEZBODhFQkMxNkE4RDFCRDAwRjk5OTg0IC8q
IFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlTWFjLm1tICovLAogCQkJCTFBRjYyRjIz
MTREQUZFOTEwMDQxNTU2QyAvKiBTY3JvbGxpbmdUaHJlYWRNYWMubW0gKi8sCiAJCQkJOTNDMzhD
MDExNjQ0NzNERDAwMDkxRUIyIC8qIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUuaCAqLywKQEAgLTIy
MTA2LDcgKzIyMTAyLDYgQEAKIAkJCQlCQzY0NjQ5QjExRDgyMzhDMDA2NDU1QjAgLyogSlNET01T
dHJpbmdNYXBDdXN0b20uY3BwICovLAogCQkJCUJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBK
U0RPTVdpbmRvd0N1c3RvbS5jcHAgKi8sCiAJCQkJNjUyRkJCQkIwREUyN0NCNjAwMDFEMzg2IC8q
IEpTRE9NV2luZG93Q3VzdG9tLmggKi8sCi0JCQkJQTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8q
IEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi8sCiAJCQkJMkU3NTgyRUQxMjc2NEYyNjAwNjI2MjhC
IC8qIEpTRmlsZVJlYWRlckN1c3RvbS5jcHAgKi8sCiAJCQkJQzI4MDgzNDExQzZEQzk2QTAwMTQ1
MUI2IC8qIEpTRm9udEZhY2VDdXN0b20uY3BwICovLAogCQkJCTFDMjRFRUFBMUM3MkFBMEEwMDgw
RjhGQyAvKiBKU0ZvbnRGYWNlU2V0Q3VzdG9tLmNwcCAqLywKQEAgLTI5OTI1LDcgKzI5OTIwLDYg
QEAKIAkJCQk2NURGMzFGOTA5RDFDQzYwMDAwQkUzMjUgLyogSlNFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUJDMkVENTU1MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkVDRjdBREMxMDE2MkIzODAwNDI3REU3IC8qIEpTRXJy
b3JFdmVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBNTZEMDJBMzFEMEJBRDY4MDA5NUU1RDMg
LyogSlNFcnJvckV2ZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUYzRDQ2MTQ4MTE2
MUQ1MzIwMENBMEQwOSAvKiBKU0Vycm9ySGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkx
NEU4Mzc4NDA5Rjg1RDFDMDBCODVBRTQgLyogSlNFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0VGQUY0RTBDMzE3RTY5MDBGQTgxRjYgLyogSlNFdmVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5n
c0FsbEluT25lLmNwcAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQs
NiBAQAogI2luY2x1ZGUgIkpTRG9jdW1lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRG9jdW1l
bnRGcmFnbWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFbGVtZW50Q3VzdG9tLmNwcCIKLSNp
bmNsdWRlICJKU0Vycm9yRXZlbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRXJyb3JIYW5kbGVy
LmNwcCIKICNpbmNsdWRlICJKU0V2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0V2ZW50TGlz
dGVuZXIuY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckV2ZW50
Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vy
cm9yRXZlbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMTAwNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9yRXZlbnRDdXN0b20uY3BwCShub25leGlzdGVudCkKQEAgLTEsNDEg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0Vycm9yRXZlbnQuaCIKLQotI2luY2x1ZGUg
IkVycm9yRXZlbnQuaCIKLSNpbmNsdWRlIDxoZWFwL0hlYXBJbmxpbmVzLmg+Ci0KLXVzaW5nIG5h
bWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSlNWYWx1ZSBKU0Vycm9yRXZl
bnQ6OmVycm9yKEV4ZWNTdGF0ZSYgc3RhdGUpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHdyYXBwZWQo
KS5zYW5pdGl6ZWRFcnJvclZhbHVlKHN0YXRlLCAqZ2xvYmFsT2JqZWN0KCkpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Vy
cm9ySGFuZGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFcnJvckhhbmRsZXIuY3BwCShyZXZpc2lvbiAyMTAwNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJFcnJvckV2ZW50LmgiCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNs
dWRlICJFdmVudE5hbWVzLmgiCisjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCiAjaW5jbHVkZSAi
SlNFdmVudC5oIgogI2luY2x1ZGUgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgogI2luY2x1ZGUg
IkpTTWFpblRocmVhZEV4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIgpAQCAtOTAsMTEgKzkxLDEx
IEBAIHZvaWQgSlNFcnJvckhhbmRsZXI6OmhhbmRsZUV2ZW50KFNjcmlwdEUKICAgICAgICAgZ2xv
YmFsT2JqZWN0LT5zZXRDdXJyZW50RXZlbnQoZXZlbnQpOwogCiAgICAgICAgIE1hcmtlZEFyZ3Vt
ZW50QnVmZmVyIGFyZ3M7Ci0gICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5nV2l0aENhY2hlKGV4
ZWMsIGVycm9yRXZlbnQubWVzc2FnZSgpKSk7Ci0gICAgICAgIGFyZ3MuYXBwZW5kKGpzU3RyaW5n
V2l0aENhY2hlKGV4ZWMsIGVycm9yRXZlbnQuZmlsZW5hbWUoKSkpOwotICAgICAgICBhcmdzLmFw
cGVuZChqc051bWJlcihlcnJvckV2ZW50LmxpbmVubygpKSk7Ci0gICAgICAgIGFyZ3MuYXBwZW5k
KGpzTnVtYmVyKGVycm9yRXZlbnQuY29sbm8oKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChlcnJv
ckV2ZW50LnNhbml0aXplZEVycm9yVmFsdWUoKmV4ZWMsICpnbG9iYWxPYmplY3QpKTsKKyAgICAg
ICAgYXJncy5hcHBlbmQodG9KUzxJRExET01TdHJpbmc+KCpleGVjLCBlcnJvckV2ZW50Lm1lc3Nh
Z2UoKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh0b0pTPElETFVTVlN0cmluZz4oKmV4ZWMsIGVy
cm9yRXZlbnQuZmlsZW5hbWUoKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh0b0pTPElETFVuc2ln
bmVkTG9uZz4oZXJyb3JFdmVudC5saW5lbm8oKSkpOworICAgICAgICBhcmdzLmFwcGVuZCh0b0pT
PElETFVuc2lnbmVkTG9uZz4oZXJyb3JFdmVudC5jb2xubygpKSk7CisgICAgICAgIGFyZ3MuYXBw
ZW5kKGVycm9yRXZlbnQuZXJyb3IoKmV4ZWMsICpnbG9iYWxPYmplY3QpKTsKIAogICAgICAgICBW
TSYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgICAgIFZNRW50cnlTY29wZSBlbnRyeVNj
b3BlKHZtLCB2bS5lbnRyeVNjb3BlID8gdm0uZW50cnlTY29wZS0+Z2xvYmFsT2JqZWN0KCkgOiBn
bG9iYWxPYmplY3QpOwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29u
dHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMCArMzcsNiBA
QCBPQkpDX0NMQVNTIFdlYlNjcmlwdE9iamVjdDsKIAogc3RydWN0IE5QT2JqZWN0OwogCi1uYW1l
c3BhY2UgRGVwcmVjYXRlZCB7Ci1jbGFzcyBTY3JpcHRWYWx1ZTsKLX0KLQogbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBKU0dsb2JhbE9iamVjdDsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oCShy
ZXZpc2lvbiAyMTAwNjEpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVk
U2NyaXB0VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNiBAQAogI3ByYWdtYSBv
bmNlCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgotI2luY2x1ZGUgPGJpbmRpbmdzL1Njcmlw
dFZhbHVlLmg+CiAjaW5jbHVkZSA8aGVhcC9TdHJvbmcuaD4KICNpbmNsdWRlIDxydW50aW1lL0Fy
cmF5QnVmZmVyLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU0NKU1ZhbHVlLmg+CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29y
a2VyU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiw3ICsxMzYsNyBA
QCB2b2lkIFdvcmtlclNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvCiAgICAgICAgIGludCBs
aW5lTnVtYmVyID0gMDsKICAgICAgICAgaW50IGNvbHVtbk51bWJlciA9IDA7CiAgICAgICAgIFN0
cmluZyBzb3VyY2VVUkwgPSBzb3VyY2VDb2RlLnVybCgpLnN0cmluZygpOwotICAgICAgICBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSBlcnJvcjsKKyAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtu
b3duPiBlcnJvcjsKICAgICAgICAgaWYgKG1fd29ya2VyR2xvYmFsU2NvcGUtPnNhbml0aXplU2Ny
aXB0RXJyb3IoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJjZVVS
TCwgZXJyb3IsIHNvdXJjZUNvZGUuY2FjaGVkU2NyaXB0KCkpKQogICAgICAgICAgICAgcmV0dXJu
ZWRFeGNlcHRpb24gPSBKU0M6OkV4Y2VwdGlvbjo6Y3JlYXRlKHZtLCBjcmVhdGVFcnJvcihleGVj
LCBlcnJvck1lc3NhZ2UuaW1wbCgpKSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxMDA2
MSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CSh3b3JraW5nIGNvcHkpCkBAIC00MjU0LDE3ICs0MjU0LDEzIEBAIHN1YiBHZW5lcmF0ZUNhbGxX
aXRoVXNpbmdQb2ludGVycwogCiBzdWIgR2VuZXJhdGVDYWxsV2l0aAogewotICAgIG15ICRjYWxs
V2l0aCA9IHNoaWZ0OworICAgIG15ICgkY2FsbFdpdGgsICRvdXRwdXRBcnJheSwgJHJldHVyblZh
bHVlLCAkZnVuY3Rpb24sICRzdGF0ZVBvaW50ZXIsICRzdGF0ZVJlZmVyZW5jZSwgJGdsb2JhbE9i
amVjdCkgPSBAXzsKKwogICAgIHJldHVybiAoKSB1bmxlc3MgJGNhbGxXaXRoOwotICAgIG15ICRv
dXRwdXRBcnJheSA9IHNoaWZ0OwotICAgIG15ICRyZXR1cm5WYWx1ZSA9IHNoaWZ0OwotICAgIG15
ICRmdW5jdGlvbiA9IHNoaWZ0OwotICAgIG15ICRzdGF0ZVBvaW50ZXIgPSBzaGlmdDsKLSAgICBt
eSAkc3RhdGVSZWZlcmVuY2UgPSBzaGlmdDsKLSAgICBteSAkZ2xvYmFsT2JqZWN0ID0gc2hpZnQ7
CiAKICAgICBteSBAY2FsbFdpdGhBcmdzOwogICAgIHB1c2goQGNhbGxXaXRoQXJncywgJHN0YXRl
UmVmZXJlbmNlKSBpZiAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlucygk
Y2FsbFdpdGgsICJTY3JpcHRTdGF0ZSIpOworICAgIHB1c2goQGNhbGxXaXRoQXJncywgIioke2ds
b2JhbE9iamVjdH0iKSBpZiAkY29kZUdlbmVyYXRvci0+RXh0ZW5kZWRBdHRyaWJ1dGVDb250YWlu
cygkY2FsbFdpdGgsICJHbG9iYWxPYmplY3QiKTsKICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPkV4
dGVuZGVkQXR0cmlidXRlQ29udGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCIpKSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiBjb250ZXh0ID0g
JGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpO1xuIik7CiAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIWNvbnRleHQpXG4iKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAkocmV2aXNp
b24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQCBBdG9taWNTdHJpbmcKIENF
UmVhY3Rpb25zCiBDYWNoZWRBdHRyaWJ1dGUKIENhbGxiYWNrTmVlZHNPcGVyYXRvckVxdWFsCi1D
YWxsV2l0aD1Eb2N1bWVudHxTY3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlw
dEFyZ3VtZW50c3xDYWxsU3RhY2t8QWN0aXZlV2luZG93fEZpcnN0V2luZG93fENhbGxlckRvY3Vt
ZW50fENhbGxlcldpbmRvdworQ2FsbFdpdGg9RG9jdW1lbnR8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dHxTY3JpcHRTdGF0ZXxTY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrfEdsb2JhbE9iamVjdHxBY3Rp
dmVXaW5kb3d8Rmlyc3RXaW5kb3d8Q2FsbGVyRG9jdW1lbnR8Q2FsbGVyV2luZG93CiBDaGVja1Nl
Y3VyaXR5CiBDaGVja1NlY3VyaXR5Rm9yTm9kZQogQ2xhbXAKQEAgLTExMCw3ICsxMTAsNyBAQCBS
ZXBsYWNlYWJsZQogUmVwb3J0RXh0cmFNZW1vcnlDb3N0CiBSZXBvcnRFeHRlcm5hbE1lbW9yeUNv
c3QKIFJlcXVpcmVzRXhpc3RpbmdBdG9taWNTdHJpbmcKLVNldHRlckNhbGxXaXRoPVNjcmlwdEV4
ZWN1dGlvbkNvbnRleHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja3xBY3Rp
dmVXaW5kb3d8Rmlyc3RXaW5kb3cKK1NldHRlckNhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja3xHbG9iYWxPYmplY3R8QWN0
aXZlV2luZG93fEZpcnN0V2luZG93CiBTZXR0ZXJNYXlUaHJvd0V4Y2VwdGlvbgogU2tpcFZUYWJs
ZVZhbGlkYXRpb24KIFN1cHByZXNzVG9KU09iamVjdApJbmRleDogU291cmNlL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2
ZW50LmNwcAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZl
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIEVycm9yRXZlbnQ6OkVycm9y
RXZlbnQoRXhlY1N0YXRlJiBzdGF0ZSwKIHsKIH0KIAotRXJyb3JFdmVudDo6RXJyb3JFdmVudChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIGVycm9yKQorRXJyb3JFdmVudDo6RXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVk
IGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKICAgICA6IEV2
ZW50KGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50LCBmYWxzZSwgdHJ1ZSkKICAgICAsIG1fbWVzc2Fn
ZShtZXNzYWdlKQogICAgICwgbV9maWxlTmFtZShmaWxlTmFtZSkKQEAgLTY5LDkgKzY5LDkgQEAg
RXZlbnRJbnRlcmZhY2UgRXJyb3JFdmVudDo6ZXZlbnRJbnRlcmZhYwogICAgIHJldHVybiBFcnJv
ckV2ZW50SW50ZXJmYWNlVHlwZTsKIH0KIAotSlNWYWx1ZSBFcnJvckV2ZW50OjpzYW5pdGl6ZWRF
cnJvclZhbHVlKEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkK
K0pTVmFsdWUgRXJyb3JFdmVudDo6ZXJyb3IoRXhlY1N0YXRlJiBleGVjLCBKU0dsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQogeyAgICAKLSAgICBhdXRvIGVycm9yID0gbV9lcnJvci5qc1ZhbHVl
KCk7CisgICAgYXV0byBlcnJvciA9IG1fZXJyb3IuZ2V0KCk7CiAgICAgaWYgKCFlcnJvcikKICAg
ICAgICAgcmV0dXJuIGpzTnVsbCgpOwogCkBAIC05MCw3ICs5MCw3IEBAIEpTVmFsdWUgRXJyb3JF
dmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSgKIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IEVycm9yRXZlbnQ6OnRyeVNlcmlhbGl6ZUVycm9yKEV4ZWNTdGF0ZSYgZXhlYykKIHsKICAgICBp
ZiAoIW1fdHJpZWRUb1NlcmlhbGl6ZSkgewotICAgICAgICBtX3NlcmlhbGl6ZWREZXRhaWwgPSBT
ZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNyZWF0ZShleGVjLCBtX2Vycm9yLCBOb25UaHJvd2luZyk7
CisgICAgICAgIG1fc2VyaWFsaXplZERldGFpbCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3Jl
YXRlKGV4ZWMsIG1fZXJyb3IuZ2V0KCksIE5vblRocm93aW5nKTsKICAgICAgICAgbV90cmllZFRv
U2VyaWFsaXplID0gdHJ1ZTsKICAgICB9CiAgICAgcmV0dXJuIG1fc2VyaWFsaXplZERldGFpbDsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNl
L1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTQgKzMzLDE0
IEBACiAKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oIgotI2luY2x1ZGUgPGJpbmRpbmdzL1NjcmlwdFZhbHVlLmg+CisjaW5jbHVkZSA8aGVhcC9T
dHJvbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBFcnJvckV2ZW50IGZpbmFsIDogcHVibGljIEV2ZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPEVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVk
IGNvbHVtbk51bWJlciwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yKQorICAg
IHN0YXRpYyBSZWY8RXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRXJyb3JFdmVudChtZXNzYWdlLCBmaWxlTmFtZSwgbGluZU51
bWJlciwgY29sdW1uTnVtYmVyLCBlcnJvcikpOwogICAgIH0KQEAgLTY0LDEzICs2NCwxMiBAQCBw
dWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBmaWxlbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZmls
ZU5hbWU7IH0KICAgICB1bnNpZ25lZCBsaW5lbm8oKSBjb25zdCB7IHJldHVybiBtX2xpbmVOdW1i
ZXI7IH0KICAgICB1bnNpZ25lZCBjb2xubygpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uTnVtYmVy
OyB9Ci0gICAgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yKCkgY29uc3QgeyBy
ZXR1cm4gbV9lcnJvcjsgfQotICAgIEpTQzo6SlNWYWx1ZSBzYW5pdGl6ZWRFcnJvclZhbHVlKEpT
Qzo6RXhlY1N0YXRlJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYpOworICAgIEpTQzo6SlNWYWx1ZSBl
cnJvcihKU0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKIAogICAgIEV2ZW50
SW50ZXJmYWNlIGV2ZW50SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0g
ICAgRXJyb3JFdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yKTsKKyAgICBFcnJvckV2ZW50KGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwg
dW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKTsK
ICAgICBFcnJvckV2ZW50KEpTQzo6RXhlY1N0YXRlJiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29u
c3QgSW5pdCYsIElzVHJ1c3RlZCk7CiAKICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiB0cnlTZXJpYWxpemVFcnJvcihKU0M6OkV4ZWNTdGF0ZSYpOwpAQCAtODEsNyArODAsNyBAQCBw
cml2YXRlOgogICAgIFN0cmluZyBtX2ZpbGVOYW1lOwogICAgIHVuc2lnbmVkIG1fbGluZU51bWJl
cjsKICAgICB1bnNpZ25lZCBtX2NvbHVtbk51bWJlcjsKLSAgICBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSBtX2Vycm9yOworICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gbV9lcnJvcjsKICAg
ICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX3NlcmlhbGl6ZWREZXRhaWw7CiAgICAg
Ym9vbCBtX3RyaWVkVG9TZXJpYWxpemUgeyBmYWxzZSB9OwogfTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXJyb3JFdmVudC5pZGwJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
cnJvckV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQAogICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgZmlsZW5hbWU7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IHVuc2lnbmVkIGxvbmcgbGluZW5vOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBs
b25nIGNvbG5vOwotICAgIFtDdXN0b21HZXR0ZXJdIHJlYWRvbmx5IGF0dHJpYnV0ZSBhbnkgZXJy
b3I7CisgICAgW0NhbGxXaXRoPVNjcmlwdFN0YXRlJkdsb2JhbE9iamVjdF0gcmVhZG9ubHkgYXR0
cmlidXRlIGFueSBlcnJvcjsKIH07CiAKIGRpY3Rpb25hcnkgRXJyb3JFdmVudEluaXQgOiBFdmVu
dEluaXQgewpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250
ZXh0LmNwcAkocmV2aXNpb24gMjEwMDYxKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5j
bHVkZSAiRGF0YWJhc2VDb250ZXh0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFcnJvckV2ZW50LmgiCisjaW5jbHVkZSAiSlNET01XaW5kb3cuaCIKICNpbmNsdWRlICJNZXNz
YWdlUG9ydC5oIgogI2luY2x1ZGUgIk5vRXZlbnREaXNwYXRjaEFzc2VydGlvbi5oIgogI2luY2x1
ZGUgIlB1YmxpY1VSTE1hbmFnZXIuaCIKQEAgLTQyLDE4ICs0MywxMiBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNsdWRlICJXb3Jr
ZXJUaHJlYWQuaCIKKyNpbmNsdWRlIDxoZWFwL1N0cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxp
bnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9FeGNlcHRpb24u
aD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KIAot
Ly8gRklYTUU6IFRoaXMgaXMgYSBsYXllcmluZyB2aW9sYXRpb24uCi0jaW5jbHVkZSAiSlNET01X
aW5kb3cuaCIKLQotI2lmIFBMQVRGT1JNKElPUykKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2Vu
ZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTM1Nyw3ICszNTIsNyBAQCB2b2lkIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OndpbGxEZXN0
cm95CiAgICAgbV9kZXN0cnVjdGlvbk9ic2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsKIH0KIAot
Ym9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYg
ZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIGludCYgY29sdW1uTnVtYmVyLCBTdHJpbmcm
IHNvdXJjZVVSTCwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIGVycm9yLCBDYWNoZWRTY3JpcHQq
IGNhY2hlZFNjcmlwdCkKK2Jvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3Jp
cHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBpbnQmIGNvbHVt
bk51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4mIGVy
cm9yLCBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCkKIHsKICAgICBBU1NFUlQoc2VjdXJpdHlP
cmlnaW4oKSk7CiAgICAgaWYgKGNhY2hlZFNjcmlwdCkgewpAQCAtMzY5LDEwICszNjQsMTAgQEAg
Ym9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBlcnJvck1lc3NhZ2UgPSAiU2NyaXB0IGVycm9yLiI7Ci0gICAgc291cmNl
VVJMID0gU3RyaW5nKCk7CisgICAgc291cmNlVVJMID0geyB9OwogICAgIGxpbmVOdW1iZXIgPSAw
OwogICAgIGNvbHVtbk51bWJlciA9IDA7Ci0gICAgZXJyb3IgPSBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSgpOworICAgIGVycm9yID0geyB9OwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC00MjAs
NyArNDE1LDcgQEAgYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpkaXNwYXRjaEVycgogICAg
IGludCBsaW5lID0gbGluZU51bWJlcjsKICAgICBpbnQgY29sdW1uID0gY29sdW1uTnVtYmVyOwog
ICAgIFN0cmluZyBzb3VyY2VOYW1lID0gc291cmNlVVJMOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlIGVycm9yID0gZXhjZXB0aW9uICYmIGV4Y2VwdGlvbi0+dmFsdWUoKSA/IERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlKHZtKCksIGV4Y2VwdGlvbi0+dmFsdWUoKSkgOiBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSgpOworICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IgPSBleGNl
cHRpb24gJiYgZXhjZXB0aW9uLT52YWx1ZSgpID8gSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPih2
bSgpLCBleGNlcHRpb24tPnZhbHVlKCkpIDogSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPigpOwog
ICAgIHNhbml0aXplU2NyaXB0RXJyb3IobWVzc2FnZSwgbGluZSwgY29sdW1uLCBzb3VyY2VOYW1l
LCBlcnJvciwgY2FjaGVkU2NyaXB0KTsKIAogICAgIEFTU0VSVCghbV9pbkRpc3BhdGNoRXJyb3JF
dmVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRp
b25Db250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE5ICszMSwxNyBAQAogI2luY2x1ZGUg
IkRPTVRpbWVyLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlDb250ZXh0LmgiCiAjaW5jbHVkZSAiU3Vw
cGxlbWVudGFibGUuaCIKKyNpbmNsdWRlIDxoZWFwL0hhbmRsZVR5cGVzLmg+CiAjaW5jbHVkZSA8
cnVudGltZS9Db25zb2xlVHlwZXMuaD4KICNpbmNsdWRlIDx3dGYvQ3Jvc3NUaHJlYWRUYXNrLmg+
CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIAot
bmFtZXNwYWNlIERlcHJlY2F0ZWQgewotY2xhc3MgU2NyaXB0VmFsdWU7Ci19Ci0KIG5hbWVzcGFj
ZSBKU0MgewogY2xhc3MgRXhjZXB0aW9uOwogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgVk07Cit0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4gY2xhc3MgU3Ryb25nOwogfQogCiBuYW1lc3BhY2UgSW5zcGVj
dG9yIHsKQEAgLTk0LDcgKzkyLDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBTdHJpbmcgcmVz
b3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIFN0cmluZygpOyB9OwogCi0g
ICAgYm9vbCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxp
bmVOdW1iZXIsIGludCYgY29sdW1uTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUmIGVycm9yLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CisgICAgYm9v
bCBzYW5pdGl6ZVNjcmlwdEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1i
ZXIsIGludCYgY29sdW1uTnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpTdHJvbmc8SlND
OjpVbmtub3duPiYgZXJyb3IsIENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKICAgICB2b2lkIHJl
cG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGludCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMLCBKU0M6OkV4Y2VwdGlv
biosIFJlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4mJiwgQ2FjaGVkU2NyaXB0KiA9
IG51bGxwdHIpOwogCiAgICAgdm9pZCBhZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlLCBN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VV
UkwsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpFeGVj
U3RhdGUqID0gbnVsbHB0ciwgdW5zaWduZWQgbG9uZyByZXF1ZXN0SWRlbnRpZmllciA9IDApOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAJKHJldmlzaW9uIDIxMDA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVz
c2FnaW5nUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjEsNyArMTYxLDcgQEAgdm9pZCBX
b3JrZXJNZXNzYWdpbmdQcm94eTo6cG9zdEV4Y2VwdGlvbgogICAgICAgICAvLyBXZSBkb24ndCBi
b3RoZXIgY2hlY2tpbmcgdGhlIGFza2VkVG9UZXJtaW5hdGUoKSBmbGFnIGhlcmUsIGJlY2F1c2Ug
ZXhjZXB0aW9ucyBzaG91bGQgKmFsd2F5cyogYmUgcmVwb3J0ZWQgZXZlbiBpZiB0aGUgdGhyZWFk
IGlzIHRlcm1pbmF0ZWQuCiAgICAgICAgIC8vIFRoaXMgaXMgaW50ZW50aW9uYWxseSBkaWZmZXJl
bnQgdGhhbiB0aGUgYmVoYXZpb3IgaW4gTWVzc2FnZVdvcmtlclRhc2ssIGJlY2F1c2UgdGVybWlu
YXRlZCB3b3JrZXJzIG5vIGxvbmdlciBkZWxpdmVyIG1lc3NhZ2VzIChzZWN0aW9uIDQuNiBvZiB0
aGUgV2ViV29ya2VyIHNwZWMpLCBidXQgdGhleSBkbyByZXBvcnQgZXhjZXB0aW9ucy4KIAotICAg
ICAgICBib29sIGVycm9ySGFuZGxlZCA9ICF3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoRXJy
b3JFdmVudDo6Y3JlYXRlKGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlKCkpKTsKKyAgICAgICAgYm9vbCBlcnJv
ckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVycm9yRXZlbnQ6OmNyZWF0
ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCB7IH0p
KTsKICAgICAgICAgaWYgKCFlcnJvckhhbmRsZWQpCiAgICAgICAgICAgICBjb250ZXh0LnJlcG9y
dEV4Y2VwdGlvbihlcnJvck1lc3NhZ2UsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgc291cmNl
VVJMLCBudWxscHRyLCBudWxscHRyKTsKICAgICB9KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297614</attachid>
            <date>2016-12-21 11:55:02 -0800</date>
            <delta_ts>2016-12-21 14:49:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166345-20161221115359.patch</filename>
            <type>text/plain</type>
            <size>23974</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTEyLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5nIGZvciBFcnJvckV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjYzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBKU0Vycm9yRXZlbnRDdXN0b20uY3BwCisKKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL0hhbmRsZVR5cGVzLmg6IEFkZGVkLgorICAgICAg
ICBBZGQgZm9yd2FyZGluZyBoZWFkZXIgZm9yIEhhbmRsZVR5cGVzLmgKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JI
YW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBKU0RPTUNvbnZl
cnQgYW5kIGNhbGwgdGhlIHVwZGF0ZWQgbmFtZSBmb3IgdGhlIGVycm9yIGdldHRlci4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0VmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpzYW5pdGl6ZVNjcmlwdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QpOgorICAgICAgICBVcGRhdGUgdHlwZSB0aGF0IHNhbml0aXplU2NyaXB0
RXJyb3IgdGFrZXMgZnJvbSBhIFNjcmlwdFZhbHVlIHRvIGEgU3Ryb25nPFVua25vd24+LgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICBBZGQgYSBuZXcgZXh0ZW5kZWQgYXR0cmlidXRlcyBvcHRpb24gZm9y
IHRoZSBDYWxsV2l0aCwgR2xvYmFsT2JqZWN0LCB0aGF0IHBhc3NlcyB0aGUgZ2xvYmFsIG9iamVj
dC4KKworICAgICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVy
cm9yRXZlbnQ6OkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6ZXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgU3RvcmUgYSBTdHJvbmc8
VW5rbm93bj4gZGlyZWN0bHksIHJhdGhlciB0aGFuIGEgU2NyaXB0VmFsdWUuIFJlbmFtZSBzYW5p
dGl6ZWRFcnJvclZhbHVlIHRvIAorICAgICAgICBqdXN0IGVycm9yIHRvIG1hdGNoIHRoZSBJREwu
CisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgIFJlbW92ZSBDdXN0b21H
ZXR0ZXIuCisKIDIwMTYtMTItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmVuc3VyZUxheWVyIGNhbiBiZSBjYWxsZWQgYmVmb3JlIGl0IGhhcyBhIG1lZGlh
IHN0cmVhbQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTIwLDcgKzEx
MjAsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTRXJy
b3JFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRM
aXN0ZW5lci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAv
SGFuZGxlVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9oZWFwL0hhbmRsZVR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9IYW5kbGVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMiBAQAorI3ByYWdtYSBvbmNlCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGFuZGxl
VHlwZXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAwOCw3ICs0
MDA4LDYgQEAKIAkJQTU1NjM5RDIxQzZGMDlFNzAwODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGll
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU1
NjM5Q0YxQzZFRkQ1OTAwODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGllbnQuY3BwICovOyB9Owog
CQlBNTZDNUI5QTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NkM1Qjk4MTg5RjM0NTcw
MDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuY3BwICovOyB9OwogCQlBNTZDNUI5QjE4OUYzNDU3
MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29s
ZUFnZW50LmggKi87IH07Ci0JCUE1NkQwMkEzMUQwQkFENjgwMDk1RTVEMyAvKiBKU0Vycm9yRXZl
bnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgKi87
IH07CiAJCUE1NzMyQjBBMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTczMkIwODEzNkEx
NjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovOyB9OwogCQlBNTczMkIwQjEzNkEx
NjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29t
cG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE1N0ZENzFCMURCOTQyM0UwMDZBRTI0QiAvKiBXb3JrZXJSdW50aW1lQWdlbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3RkQ3MTkxREI5
NDIzNjAwNkFFMjRCIC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CkBAIC0xMTY4Niw3
ICsxMTY4NSw2IEBACiAJCUE1NTYzOUQwMUM2RUZENTkwMDgwNkQ4RSAvKiBXb3JrZXJDb25zb2xl
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckNvbnNvbGVD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU2QzVCOTgxODlGMzQ1NzAw
ODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBXZWJDb25zb2xlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnNvbGVBZ2VudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlBNTZEMDJBMjFEMEI5QUYzMDA5NUU1RDMgLyogSlNFcnJvckV2
ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRXJy
b3JFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1NzMyQjA4
MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTdGRDcxOTFEQjk0MjM2MDA2QUUyNEIgLyogV29y
a2VyUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdvcmtlclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MjEwNiw3ICsyMjEwNCw2IEBACiAJCQkJQkM2NDY0OUIxMUQ4MjM4QzAwNjQ1NUIwIC8qIEpTRE9N
U3RyaW5nTWFwQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI1RTBDMTdBQTY3MDA1QzkwQTIgLyog
SlNET01XaW5kb3dDdXN0b20uY3BwICovLAogCQkJCTY1MkZCQkJCMERFMjdDQjYwMDAxRDM4NiAv
KiBKU0RPTVdpbmRvd0N1c3RvbS5oICovLAotCQkJCUE1NkQwMkEyMUQwQjlBRjMwMDk1RTVEMyAv
KiBKU0Vycm9yRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTJFNzU4MkVEMTI3NjRGMjYwMDYyNjI4
QiAvKiBKU0ZpbGVSZWFkZXJDdXN0b20uY3BwICovLAogCQkJCUMyODA4MzQxMUM2REM5NkEwMDE0
NTFCNiAvKiBKU0ZvbnRGYWNlQ3VzdG9tLmNwcCAqLywKIAkJCQkxQzI0RUVBQTFDNzJBQTBBMDA4
MEY4RkMgLyogSlNGb250RmFjZVNldEN1c3RvbS5jcHAgKi8sCkBAIC0yOTkyNSw3ICsyOTkyMiw2
IEBACiAJCQkJNjVERjMxRjkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzJFRDU1NTBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50Q3VzdG9t
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAvKiBKU0Vy
cm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTU2RDAyQTMxRDBCQUQ2ODAwOTVFNUQz
IC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGM0Q0NjE0ODEx
NjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNFRkFGNEUwQzMxN0U2OTAwRkE4MUY2IC8qIEpTRXZlbnRDdXN0b20uY3BwIGluIFNvdXJj
ZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGlu
Z3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0
LDYgQEAKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0RvY3Vt
ZW50RnJhZ21lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudEN1c3RvbS5jcHAiCi0j
aW5jbHVkZSAiSlNFcnJvckV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0Vycm9ySGFuZGxl
ci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudExp
c3RlbmVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJyb3JFdmVu
dEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
cnJvckV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFcnJvckV2ZW50Q3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBAIC0xLDQx
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNFcnJvckV2ZW50LmgiCi0KLSNpbmNsdWRl
ICJFcnJvckV2ZW50LmgiCi0jaW5jbHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgotCi11c2luZyBu
YW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUpTVmFsdWUgSlNFcnJvckV2
ZW50OjplcnJvcihFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAotewotICAgIHJldHVybiB3cmFwcGVk
KCkuc2FuaXRpemVkRXJyb3JWYWx1ZShzdGF0ZSwgKmdsb2JhbE9iamVjdCgpKTsKLX0KLQotfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
cnJvckhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXJyb3JIYW5kbGVyLmNwcAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5j
bHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogI2luY2x1ZGUg
IkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNpbmNsdWRl
ICJKU01haW5UaHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCIKQEAgLTkwLDExICs5MSwx
MSBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFCiAgICAgICAgIGds
b2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsKIAogICAgICAgICBNYXJrZWRBcmd1
bWVudEJ1ZmZlciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZ1dpdGhDYWNoZShl
eGVjLCBlcnJvckV2ZW50Lm1lc3NhZ2UoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmlu
Z1dpdGhDYWNoZShleGVjLCBlcnJvckV2ZW50LmZpbGVuYW1lKCkpKTsKLSAgICAgICAgYXJncy5h
cHBlbmQoanNOdW1iZXIoZXJyb3JFdmVudC5saW5lbm8oKSkpOwotICAgICAgICBhcmdzLmFwcGVu
ZChqc051bWJlcihlcnJvckV2ZW50LmNvbG5vKCkpKTsKLSAgICAgICAgYXJncy5hcHBlbmQoZXJy
b3JFdmVudC5zYW5pdGl6ZWRFcnJvclZhbHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0KSk7CisgICAg
ICAgIGFyZ3MuYXBwZW5kKHRvSlM8SURMRE9NU3RyaW5nPigqZXhlYywgZXJyb3JFdmVudC5tZXNz
YWdlKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9KUzxJRExVU1ZTdHJpbmc+KCpleGVjLCBl
cnJvckV2ZW50LmZpbGVuYW1lKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9KUzxJRExVbnNp
Z25lZExvbmc+KGVycm9yRXZlbnQubGluZW5vKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9K
UzxJRExVbnNpZ25lZExvbmc+KGVycm9yRXZlbnQuY29sbm8oKSkpOworICAgICAgICBhcmdzLmFw
cGVuZChlcnJvckV2ZW50LmVycm9yKCpleGVjLCAqZ2xvYmFsT2JqZWN0KSk7CiAKICAgICAgICAg
Vk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBWTUVudHJ5U2NvcGUgZW50cnlT
Y29wZSh2bSwgdm0uZW50cnlTY29wZSA/IHZtLmVudHJ5U2NvcGUtPmdsb2JhbE9iamVjdCgpIDog
Z2xvYmFsT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTAgKzM3LDYg
QEAgT0JKQ19DTEFTUyBXZWJTY3JpcHRPYmplY3Q7CiAKIHN0cnVjdCBOUE9iamVjdDsKIAotbmFt
ZXNwYWNlIERlcHJlY2F0ZWQgewotY2xhc3MgU2NyaXB0VmFsdWU7Ci19Ci0KIG5hbWVzcGFjZSBK
U0MgewogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAko
cmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNwcmFnbWEg
b25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlIDxiaW5kaW5ncy9TY3Jp
cHRWYWx1ZS5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8cnVudGltZS9B
cnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dv
cmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyArMTM2LDcg
QEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjbwogICAgICAgICBpbnQg
bGluZU51bWJlciA9IDA7CiAgICAgICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwogICAgICAgICBT
dHJpbmcgc291cmNlVVJMID0gc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKTsKLSAgICAgICAgRGVw
cmVjYXRlZDo6U2NyaXB0VmFsdWUgZXJyb3I7CisgICAgICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5r
bm93bj4gZXJyb3I7CiAgICAgICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlLT5zYW5pdGl6ZVNj
cmlwdEVycm9yKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VV
UkwsIGVycm9yLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKSkKICAgICAgICAgICAgIHJldHVy
bmVkRXhjZXB0aW9uID0gSlNDOjpFeGNlcHRpb246OmNyZWF0ZSh2bSwgY3JlYXRlRXJyb3IoZXhl
YywgZXJyb3JNZXNzYWdlLmltcGwoKSkpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMTAw
NzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQkod29ya2luZyBjb3B5KQpAQCAtNDI1NCwxNyArNDI1NCwxMyBAQCBzdWIgR2VuZXJhdGVDYWxs
V2l0aFVzaW5nUG9pbnRlcnMKIAogc3ViIEdlbmVyYXRlQ2FsbFdpdGgKIHsKLSAgICBteSAkY2Fs
bFdpdGggPSBzaGlmdDsKKyAgICBteSAoJGNhbGxXaXRoLCAkb3V0cHV0QXJyYXksICRyZXR1cm5W
YWx1ZSwgJGZ1bmN0aW9uLCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICRnbG9iYWxP
YmplY3QpID0gQF87CisKICAgICByZXR1cm4gKCkgdW5sZXNzICRjYWxsV2l0aDsKLSAgICBteSAk
b3V0cHV0QXJyYXkgPSBzaGlmdDsKLSAgICBteSAkcmV0dXJuVmFsdWUgPSBzaGlmdDsKLSAgICBt
eSAkZnVuY3Rpb24gPSBzaGlmdDsKLSAgICBteSAkc3RhdGVQb2ludGVyID0gc2hpZnQ7Ci0gICAg
bXkgJHN0YXRlUmVmZXJlbmNlID0gc2hpZnQ7Ci0gICAgbXkgJGdsb2JhbE9iamVjdCA9IHNoaWZ0
OwogCiAgICAgbXkgQGNhbGxXaXRoQXJnczsKICAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICRzdGF0
ZVJlZmVyZW5jZSkgaWYgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFpbnMo
JGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUiKTsKKyAgICBwdXNoKEBjYWxsV2l0aEFyZ3MsICIqJHtn
bG9iYWxPYmplY3R9IikgaWYgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29udGFp
bnMoJGNhbGxXaXRoLCAiR2xvYmFsT2JqZWN0Iik7CiAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5F
eHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQiKSkgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byogY29udGV4dCA9
ICRnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOwogICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFjb250ZXh0KVxuIik7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQJKHJldmlz
aW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmli
dXRlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAgQXRvbWljU3RyaW5nCiBD
RVJlYWN0aW9ucwogQ2FjaGVkQXR0cmlidXRlCiBDYWxsYmFja05lZWRzT3BlcmF0b3JFcXVhbAot
Q2FsbFdpdGg9RG9jdW1lbnR8U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0ZXxTY3Jp
cHRBcmd1bWVudHN8Q2FsbFN0YWNrfEFjdGl2ZVdpbmRvd3xGaXJzdFdpbmRvd3xDYWxsZXJEb2N1
bWVudHxDYWxsZXJXaW5kb3cKK0NhbGxXaXRoPURvY3VtZW50fFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja3xHbG9iYWxPYmplY3R8QWN0
aXZlV2luZG93fEZpcnN0V2luZG93fENhbGxlckRvY3VtZW50fENhbGxlcldpbmRvdwogQ2hlY2tT
ZWN1cml0eQogQ2hlY2tTZWN1cml0eUZvck5vZGUKIENsYW1wCkBAIC0xMTAsNyArMTEwLDcgQEAg
UmVwbGFjZWFibGUKIFJlcG9ydEV4dHJhTWVtb3J5Q29zdAogUmVwb3J0RXh0ZXJuYWxNZW1vcnlD
b3N0CiBSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nCi1TZXR0ZXJDYWxsV2l0aD1TY3JpcHRF
eGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2t8QWN0
aXZlV2luZG93fEZpcnN0V2luZG93CitTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250
ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2t8R2xvYmFsT2JqZWN0fEFj
dGl2ZVdpbmRvd3xGaXJzdFdpbmRvdwogU2V0dGVyTWF5VGhyb3dFeGNlcHRpb24KIFNraXBWVGFi
bGVWYWxpZGF0aW9uCiBTdXBwcmVzc1RvSlNPYmplY3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Rv
bS9FcnJvckV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JF
dmVudC5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBFcnJvckV2ZW50OjpFcnJv
ckV2ZW50KEV4ZWNTdGF0ZSYgc3RhdGUsCiB7CiB9CiAKLUVycm9yRXZlbnQ6OkVycm9yRXZlbnQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBs
aW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlw
dFZhbHVlJiBlcnJvcikKK0Vycm9yRXZlbnQ6OkVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCiAgICAgOiBF
dmVudChldmVudE5hbWVzKCkuZXJyb3JFdmVudCwgZmFsc2UsIHRydWUpCiAgICAgLCBtX21lc3Nh
Z2UobWVzc2FnZSkKICAgICAsIG1fZmlsZU5hbWUoZmlsZU5hbWUpCkBAIC02OSw5ICs2OSw5IEBA
IEV2ZW50SW50ZXJmYWNlIEVycm9yRXZlbnQ6OmV2ZW50SW50ZXJmYWMKICAgICByZXR1cm4gRXJy
b3JFdmVudEludGVyZmFjZVR5cGU7CiB9CiAKLUpTVmFsdWUgRXJyb3JFdmVudDo6c2FuaXRpemVk
RXJyb3JWYWx1ZShFeGVjU3RhdGUmIGV4ZWMsIEpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qp
CitKU1ZhbHVlIEVycm9yRXZlbnQ6OmVycm9yKEV4ZWNTdGF0ZSYgZXhlYywgSlNHbG9iYWxPYmpl
Y3QmIGdsb2JhbE9iamVjdCkKIHsgICAgCi0gICAgYXV0byBlcnJvciA9IG1fZXJyb3IuanNWYWx1
ZSgpOworICAgIGF1dG8gZXJyb3IgPSBtX2Vycm9yLmdldCgpOwogICAgIGlmICghZXJyb3IpCiAg
ICAgICAgIHJldHVybiBqc051bGwoKTsKIApAQCAtOTAsNyArOTAsNyBAQCBKU1ZhbHVlIEVycm9y
RXZlbnQ6OnNhbml0aXplZEVycm9yVmFsdWUoCiBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVl
PiBFcnJvckV2ZW50Ojp0cnlTZXJpYWxpemVFcnJvcihFeGVjU3RhdGUmIGV4ZWMpCiB7CiAgICAg
aWYgKCFtX3RyaWVkVG9TZXJpYWxpemUpIHsKLSAgICAgICAgbV9zZXJpYWxpemVkRGV0YWlsID0g
U2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVhdGUoZXhlYywgbV9lcnJvciwgTm9uVGhyb3dpbmcp
OworICAgICAgICBtX3NlcmlhbGl6ZWREZXRhaWwgPSBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OmNy
ZWF0ZShleGVjLCBtX2Vycm9yLmdldCgpLCBOb25UaHJvd2luZyk7CiAgICAgICAgIG1fdHJpZWRU
b1NlcmlhbGl6ZSA9IHRydWU7CiAgICAgfQogICAgIHJldHVybiBtX3NlcmlhbGl6ZWREZXRhaWw7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2RvbS9FcnJvckV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTMzLDE0ICszMywx
NCBAQAogCiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKLSNpbmNsdWRlIDxiaW5kaW5ncy9TY3JpcHRWYWx1ZS5oPgorI2luY2x1ZGUgPGhlYXAv
U3Ryb25nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRXJyb3JFdmVudCBmaW5hbCA6IHB1YmxpYyBFdmVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvcikKKyAg
ICBzdGF0aWMgUmVmPEVycm9yRXZlbnQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVt
bk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcikKICAgICB7CiAgICAgICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVycm9yRXZlbnQobWVzc2FnZSwgZmlsZU5hbWUsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlciwgZXJyb3IpKTsKICAgICB9CkBAIC02NCwxMyArNjQsMTIgQEAg
cHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUoKSBjb25zdCB7IHJldHVybiBtX2Zp
bGVOYW1lOyB9CiAgICAgdW5zaWduZWQgbGluZW5vKCkgY29uc3QgeyByZXR1cm4gbV9saW5lTnVt
YmVyOyB9CiAgICAgdW5zaWduZWQgY29sbm8oKSBjb25zdCB7IHJldHVybiBtX2NvbHVtbk51bWJl
cjsgfQotICAgIGNvbnN0IERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvcigpIGNvbnN0IHsg
cmV0dXJuIG1fZXJyb3I7IH0KLSAgICBKU0M6OkpTVmFsdWUgc2FuaXRpemVkRXJyb3JWYWx1ZShK
U0M6OkV4ZWNTdGF0ZSYsIEpTQzo6SlNHbG9iYWxPYmplY3QmKTsKKyAgICBKU0M6OkpTVmFsdWUg
ZXJyb3IoSlNDOjpFeGVjU3RhdGUmLCBKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CiAKICAgICBFdmVu
dEludGVyZmFjZSBldmVudEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgot
ICAgIEVycm9yRXZlbnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVO
YW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IERl
cHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvcik7CisgICAgRXJyb3JFdmVudChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlciwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvcik7
CiAgICAgRXJyb3JFdmVudChKU0M6OkV4ZWNTdGF0ZSYsIGNvbnN0IEF0b21pY1N0cmluZyYsIGNv
bnN0IEluaXQmLCBJc1RydXN0ZWQpOwogCiAgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gdHJ5U2VyaWFsaXplRXJyb3IoSlNDOjpFeGVjU3RhdGUmKTsKQEAgLTgxLDcgKzgwLDcgQEAg
cHJpdmF0ZToKICAgICBTdHJpbmcgbV9maWxlTmFtZTsKICAgICB1bnNpZ25lZCBtX2xpbmVOdW1i
ZXI7CiAgICAgdW5zaWduZWQgbV9jb2x1bW5OdW1iZXI7Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgbV9lcnJvcjsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IG1fZXJyb3I7CiAg
ICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9zZXJpYWxpemVkRGV0YWlsOwogICAg
IGJvb2wgbV90cmllZFRvU2VyaWFsaXplIHsgZmFsc2UgfTsKIH07CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXJyb3JFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0Vycm9yRXZlbnQuaWRsCShyZXZpc2lvbiAyMTAwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20v
RXJyb3JFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgVVNWU3RyaW5nIGZpbGVuYW1lOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSB1bnNpZ25lZCBsb25nIGxpbmVubzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQg
bG9uZyBjb2xubzsKLSAgICBbQ3VzdG9tR2V0dGVyXSByZWFkb25seSBhdHRyaWJ1dGUgYW55IGVy
cm9yOworICAgIFtDYWxsV2l0aD1TY3JpcHRTdGF0ZSZHbG9iYWxPYmplY3RdIHJlYWRvbmx5IGF0
dHJpYnV0ZSBhbnkgZXJyb3I7CiB9OwogCiBkaWN0aW9uYXJ5IEVycm9yRXZlbnRJbml0IDogRXZl
bnRJbml0IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dC5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2lu
Y2x1ZGUgIkRhdGFiYXNlQ29udGV4dC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiRXJyb3JFdmVudC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVBvcnQuaCIKICNpbmNsdWRlICJOb0V2ZW50RGlzcGF0Y2hBc3NlcnRpb24uaCIKICNpbmNs
dWRlICJQdWJsaWNVUkxNYW5hZ2VyLmgiCkBAIC00MiwxOCArNDMsMTIgQEAKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIldvcmtlckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29y
a2VyVGhyZWFkLmgiCisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
aW5zcGVjdG9yL1NjcmlwdENhbGxTdGFjay5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvRXhjZXB0aW9u
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAK
LS8vIEZJWE1FOiBUaGlzIGlzIGEgbGF5ZXJpbmcgdmlvbGF0aW9uLgotI2luY2x1ZGUgIkpTRE9N
V2luZG93LmgiCi0KLSNpZiBQTEFURk9STShJT1MpCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNl
bmRpZgotCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9yOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zNTcsNyArMzUyLDcgQEAgdm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ojp3aWxsRGVz
dHJveQogICAgIG1fZGVzdHJ1Y3Rpb25PYnNlcnZlcnMucmVtb3ZlKCZvYnNlcnZlcik7CiB9CiAK
LWJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcm
IGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVtYmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3RyaW5n
JiBzb3VyY2VVUkwsIERlcHJlY2F0ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvciwgQ2FjaGVkU2NyaXB0
KiBjYWNoZWRTY3JpcHQpCitib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNhbml0aXplU2Ny
aXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgaW50JiBjb2x1
bW5OdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+JiBl
cnJvciwgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQpCiB7CiAgICAgQVNTRVJUKHNlY3VyaXR5
T3JpZ2luKCkpOwogICAgIGlmIChjYWNoZWRTY3JpcHQpIHsKQEAgLTM2OSwxMCArMzY0LDEwIEBA
IGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6c2FuaXRpemVTY3IKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgZXJyb3JNZXNzYWdlID0gIlNjcmlwdCBlcnJvci4iOwotICAgIHNvdXJj
ZVVSTCA9IFN0cmluZygpOworICAgIHNvdXJjZVVSTCA9IHsgfTsKICAgICBsaW5lTnVtYmVyID0g
MDsKICAgICBjb2x1bW5OdW1iZXIgPSAwOwotICAgIGVycm9yID0gRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUoKTsKKyAgICBlcnJvciA9IHsgfTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApAQCAtNDIw
LDcgKzQxNSw3IEBAIGJvb2wgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6ZGlzcGF0Y2hFcnIKICAg
ICBpbnQgbGluZSA9IGxpbmVOdW1iZXI7CiAgICAgaW50IGNvbHVtbiA9IGNvbHVtbk51bWJlcjsK
ICAgICBTdHJpbmcgc291cmNlTmFtZSA9IHNvdXJjZVVSTDsKLSAgICBEZXByZWNhdGVkOjpTY3Jp
cHRWYWx1ZSBlcnJvciA9IGV4Y2VwdGlvbiAmJiBleGNlcHRpb24tPnZhbHVlKCkgPyBEZXByZWNh
dGVkOjpTY3JpcHRWYWx1ZSh2bSgpLCBleGNlcHRpb24tPnZhbHVlKCkpIDogRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUoKTsKKyAgICBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yID0gZXhj
ZXB0aW9uICYmIGV4Y2VwdGlvbi0+dmFsdWUoKSA/IEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4o
dm0oKSwgZXhjZXB0aW9uLT52YWx1ZSgpKSA6IEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4oKTsK
ICAgICBzYW5pdGl6ZVNjcmlwdEVycm9yKG1lc3NhZ2UsIGxpbmUsIGNvbHVtbiwgc291cmNlTmFt
ZSwgZXJyb3IsIGNhY2hlZFNjcmlwdCk7CiAKICAgICBBU1NFUlQoIW1faW5EaXNwYXRjaEVycm9y
RXZlbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oCShyZXZpc2lvbiAyMTAwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSwxOSArMzEsMTcgQEAKICNpbmNsdWRl
ICJET01UaW1lci5oIgogI2luY2x1ZGUgIlNlY3VyaXR5Q29udGV4dC5oIgogI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCisjaW5jbHVkZSA8aGVhcC9IYW5kbGVUeXBlcy5oPgogI2luY2x1ZGUg
PHJ1bnRpbWUvQ29uc29sZVR5cGVzLmg+CiAjaW5jbHVkZSA8d3RmL0Nyb3NzVGhyZWFkVGFzay5o
PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAK
LW5hbWVzcGFjZSBEZXByZWNhdGVkIHsKLWNsYXNzIFNjcmlwdFZhbHVlOwotfQotCiBuYW1lc3Bh
Y2UgSlNDIHsKIGNsYXNzIEV4Y2VwdGlvbjsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIFZNOwor
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cm9uZzsKIH0KIAogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CkBAIC05NCw3ICs5Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIHJl
c291cmNlUmVxdWVzdElkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBTdHJpbmcoKTsgfTsKIAot
ICAgIGJvb2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBs
aW5lTnVtYmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwsIERlcHJlY2F0
ZWQ6OlNjcmlwdFZhbHVlJiBlcnJvciwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIpOworICAgIGJv
b2wgc2FuaXRpemVTY3JpcHRFcnJvcihTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50JiBsaW5lTnVt
YmVyLCBpbnQmIGNvbHVtbk51bWJlciwgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6U3Ryb25nPEpT
Qzo6VW5rbm93bj4mIGVycm9yLCBDYWNoZWRTY3JpcHQqID0gbnVsbHB0cik7CiAgICAgdm9pZCBy
ZXBvcnRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBpbnQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpFeGNlcHRp
b24qLCBSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+JiYsIENhY2hlZFNjcmlwdCog
PSBudWxscHRyKTsKIAogICAgIHZvaWQgYWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZSwg
TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNl
VVJMLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6RXhl
Y1N0YXRlKiA9IG51bGxwdHIsIHVuc2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIgPSAwKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHku
Y3BwCShyZXZpc2lvbiAyMTAwNzApCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1l
c3NhZ2luZ1Byb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYxLDcgKzE2MSw3IEBAIHZvaWQg
V29ya2VyTWVzc2FnaW5nUHJveHk6OnBvc3RFeGNlcHRpb24KICAgICAgICAgLy8gV2UgZG9uJ3Qg
Ym90aGVyIGNoZWNraW5nIHRoZSBhc2tlZFRvVGVybWluYXRlKCkgZmxhZyBoZXJlLCBiZWNhdXNl
IGV4Y2VwdGlvbnMgc2hvdWxkICphbHdheXMqIGJlIHJlcG9ydGVkIGV2ZW4gaWYgdGhlIHRocmVh
ZCBpcyB0ZXJtaW5hdGVkLgogICAgICAgICAvLyBUaGlzIGlzIGludGVudGlvbmFsbHkgZGlmZmVy
ZW50IHRoYW4gdGhlIGJlaGF2aW9yIGluIE1lc3NhZ2VXb3JrZXJUYXNrLCBiZWNhdXNlIHRlcm1p
bmF0ZWQgd29ya2VycyBubyBsb25nZXIgZGVsaXZlciBtZXNzYWdlcyAoc2VjdGlvbiA0LjYgb2Yg
dGhlIFdlYldvcmtlciBzcGVjKSwgYnV0IHRoZXkgZG8gcmVwb3J0IGV4Y2VwdGlvbnMuCiAKLSAg
ICAgICAgYm9vbCBlcnJvckhhbmRsZWQgPSAhd29ya2VyT2JqZWN0LT5kaXNwYXRjaEV2ZW50KEVy
cm9yRXZlbnQ6OmNyZWF0ZShlcnJvck1lc3NhZ2UsIHNvdXJjZVVSTCwgbGluZU51bWJlciwgY29s
dW1uTnVtYmVyLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSgpKSk7CisgICAgICAgIGJvb2wgZXJy
b3JIYW5kbGVkID0gIXdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJvckV2ZW50OjpjcmVh
dGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlciwgeyB9
KSk7CiAgICAgICAgIGlmICghZXJyb3JIYW5kbGVkKQogICAgICAgICAgICAgY29udGV4dC5yZXBv
cnRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHNvdXJj
ZVVSTCwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297623</attachid>
            <date>2016-12-21 14:49:59 -0800</date>
            <delta_ts>2016-12-21 14:49:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166345-20161221144857.patch</filename>
            <type>text/plain</type>
            <size>24713</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBACisyMDE2LTEyLTIxICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gUmVtb3ZlIGN1c3RvbSBi
aW5kaW5nIGZvciBFcnJvckV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjYzNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxs
SW5PbmUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRXJyb3JFdmVudEN1c3RvbS5jcHA6
IFJlbW92ZWQuCisgICAgICAgIFJlbW92ZSBKU0Vycm9yRXZlbnRDdXN0b20uY3BwCisKKyAgICAg
ICAgKiBGb3J3YXJkaW5nSGVhZGVycy9oZWFwL0hhbmRsZVR5cGVzLmg6IEFkZGVkLgorICAgICAg
ICBBZGQgZm9yd2FyZGluZyBoZWFkZXIgZm9yIEhhbmRsZVR5cGVzLmgKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXJyb3JI
YW5kbGVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIFN3aXRjaCB0byB1c2luZyBKU0RPTUNvbnZl
cnQgYW5kIGNhbGwgdGhlIHVwZGF0ZWQgbmFtZSBmb3IgdGhlIGVycm9yIGdldHRlci4KKworICAg
ICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaDoKKyAgICAgICAgUmVtb3ZlIHVubmVjZXNzYXJ5
IGZvcndhcmQgZGVjbGFyYXRpb24gb2YgU2NyaXB0VmFsdWUuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtl
clNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKToKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0
OjpzYW5pdGl6ZVNjcmlwdEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQ6OmRpc3BhdGNoRXJyb3JFdmVudCk6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQuaDoKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Oldvcmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QpOgorICAgICAgICBVcGRhdGUgdHlwZSB0aGF0IHNhbml0aXplU2NyaXB0
RXJyb3IgdGFrZXMgZnJvbSBhIFNjcmlwdFZhbHVlIHRvIGEgU3Ryb25nPFVua25vd24+LgorCisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChH
ZW5lcmF0ZUNhbGxXaXRoKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0OgorICAgICAgICBBZGQgYSBuZXcgZXh0ZW5kZWQgYXR0cmlidXRlcyBvcHRpb24gZm9y
IHRoZSBDYWxsV2l0aCwgR2xvYmFsT2JqZWN0LCB0aGF0IHBhc3NlcyB0aGUgZ2xvYmFsIG9iamVj
dC4KKworICAgICAgICAqIGRvbS9FcnJvckV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVy
cm9yRXZlbnQ6OkVycm9yRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6ZXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6RXJyb3JFdmVudDo6c2FuaXRpemVkRXJyb3JWYWx1ZSk6IERlbGV0
ZWQuCisgICAgICAgICogZG9tL0Vycm9yRXZlbnQuaDoKKyAgICAgICAgU3RvcmUgYSBTdHJvbmc8
VW5rbm93bj4gZGlyZWN0bHksIHJhdGhlciB0aGFuIGEgU2NyaXB0VmFsdWUuIFJlbmFtZSBzYW5p
dGl6ZWRFcnJvclZhbHVlIHRvIAorICAgICAgICBqdXN0IGVycm9yIHRvIG1hdGNoIHRoZSBJREwu
CisKKyAgICAgICAgKiBkb20vRXJyb3JFdmVudC5pZGw6CisgICAgICAgIFJlbW92ZSBDdXN0b21H
ZXR0ZXIuCisKIDIwMTYtMTItMjEgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW01lZGlhU3RyZWFtXSBNZWRpYVBsYXllclByaXZhdGVNZWRpYVN0cmVh
bUFWRk9iakM6OmVuc3VyZUxheWVyIGNhbiBiZSBjYWxsZWQgYmVmb3JlIGl0IGhhcyBhIG1lZGlh
IHN0cmVhbQpJbmRleDogU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTIwLDcgKzEx
MjAsNiBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNEb2N1bWVudEN1
c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwCiAg
ICAgYmluZGluZ3MvanMvSlNFbGVtZW50Q3VzdG9tLmNwcAotICAgIGJpbmRpbmdzL2pzL0pTRXJy
b3JFdmVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0Vycm9ySGFuZGxlci5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0V2ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTRXZlbnRM
aXN0ZW5lci5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL2hlYXAv
SGFuZGxlVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Gb3J3YXJkaW5nSGVh
ZGVycy9oZWFwL0hhbmRsZVR5cGVzLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvaGVhcC9IYW5kbGVUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMiBAQAorI3ByYWdtYSBvbmNlCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSGFuZGxl
VHlwZXMuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAkocmV2aXNpb24gMjEwMDcw
KQorKysgU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRh
dGFiYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgPGhlYXAvSGVhcElubGluZXMuaD4KKyNpbmNsdWRlIDxoZWFwL1N0
cm9uZ0lubGluZXMuaD4KICNpbmNsdWRlIDxydW50aW1lL0F1eGlsaWFyeUJhcnJpZXJJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8cnVudGltZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3Rm
L01haW5UaHJlYWQuaD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNDAw
OCw3ICs0MDA4LDYgQEAKIAkJQTU1NjM5RDIxQzZGMDlFNzAwODA2RDhFIC8qIFdvcmtlckNvbnNv
bGVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTU1NjM5Q0YxQzZFRkQ1OTAwODA2RDhFIC8qIFdvcmtlckNvbnNvbGVDbGllbnQuY3BwICov
OyB9OwogCQlBNTZDNUI5QTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NkM1Qjk4MTg5
RjM0NTcwMDgyRDEzQyAvKiBXZWJDb25zb2xlQWdlbnQuY3BwICovOyB9OwogCQlBNTZDNUI5QjE4
OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2Vi
Q29uc29sZUFnZW50LmggKi87IH07Ci0JCUE1NkQwMkEzMUQwQkFENjgwMDk1RTVEMyAvKiBKU0Vy
cm9yRXZlbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTU2RDAyQTIxRDBCOUFGMzAwOTVFNUQzIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5j
cHAgKi87IH07CiAJCUE1NzMyQjBBMTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNTczMkIw
ODEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovOyB9OwogCQlBNTczMkIw
QjEzNkExNjFEMDA1QzhEN0MgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBE
YXRlQ29tcG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUE1N0ZENzFCMURCOTQyM0UwMDZBRTI0QiAvKiBXb3JrZXJSdW50aW1lQWdlbnQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTU3RkQ3
MTkxREI5NDIzNjAwNkFFMjRCIC8qIFdvcmtlclJ1bnRpbWVBZ2VudC5jcHAgKi87IH07CkBAIC0x
MTY4Niw3ICsxMTY4NSw2IEBACiAJCUE1NTYzOUQwMUM2RUZENTkwMDgwNkQ4RSAvKiBXb3JrZXJD
b25zb2xlQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckNv
bnNvbGVDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTU2QzVCOTgxODlG
MzQ1NzAwODJEMTNDIC8qIFdlYkNvbnNvbGVBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBXZWJDb25zb2xlQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlBNTZDNUI5OTE4OUYzNDU3MDA4MkQxM0MgLyogV2ViQ29uc29sZUFnZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkNvbnNvbGVBZ2VudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlBNTZEMDJBMjFEMEI5QUYzMDA5NUU1RDMgLyogSlNF
cnJvckV2ZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTRXJyb3JFdmVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE1
NzMyQjA4MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE1NzMyQjA5MTM2QTE2MUQwMDVDOEQ3QyAvKiBEYXRlQ29tcG9u
ZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNTdGRDcxOTFEQjk0MjM2MDA2QUUyNEIg
LyogV29ya2VyUnVudGltZUFnZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdvcmtlclJ1bnRpbWVBZ2VudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMjEwNiw3ICsyMjEwNCw2IEBACiAJCQkJQkM2NDY0OUIxMUQ4MjM4QzAwNjQ1NUIwIC8q
IEpTRE9NU3RyaW5nTWFwQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0Q5QzI1RTBDMTdBQTY3MDA1Qzkw
QTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwICovLAogCQkJCTY1MkZCQkJCMERFMjdDQjYwMDAx
RDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oICovLAotCQkJCUE1NkQwMkEyMUQwQjlBRjMwMDk1
RTVEMyAvKiBKU0Vycm9yRXZlbnRDdXN0b20uY3BwICovLAogCQkJCTJFNzU4MkVEMTI3NjRGMjYw
MDYyNjI4QiAvKiBKU0ZpbGVSZWFkZXJDdXN0b20uY3BwICovLAogCQkJCUMyODA4MzQxMUM2REM5
NkEwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlQ3VzdG9tLmNwcCAqLywKIAkJCQkxQzI0RUVBQTFDNzJB
QTBBMDA4MEY4RkMgLyogSlNGb250RmFjZVNldEN1c3RvbS5jcHAgKi8sCkBAIC0yOTkyNSw3ICsy
OTkyMiw2IEBACiAJCQkJNjVERjMxRjkwOUQxQ0M2MDAwMEJFMzI1IC8qIEpTRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzJFRDU1NTBDNkI5QkQzMDA5MjBCRkYgLyogSlNFbGVtZW50
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJFQ0Y3QURDMTAxNjJCMzgwMDQyN0RFNyAv
KiBKU0Vycm9yRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTU2RDAyQTMxRDBCQUQ2ODAw
OTVFNUQzIC8qIEpTRXJyb3JFdmVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGM0Q0
NjE0ODExNjFENTMyMDBDQTBEMDkgLyogSlNFcnJvckhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMTRFODM3ODQwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNFRkFGNEUwQzMxN0U2OTAwRkE4MUY2IC8qIEpTRXZlbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdz
QWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
QmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0
LDcgKzY0LDYgQEAKICNpbmNsdWRlICJKU0RvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0RvY3VtZW50RnJhZ21lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTRWxlbWVudEN1c3RvbS5j
cHAiCi0jaW5jbHVkZSAiSlNFcnJvckV2ZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0Vycm9y
SGFuZGxlci5jcHAiCiAjaW5jbHVkZSAiSlNFdmVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNF
dmVudExpc3RlbmVyLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXJy
b3JFdmVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckV2ZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckV2ZW50Q3VzdG9tLmNwcAkobm9uZXhpc3RlbnQpCkBA
IC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNFcnJvckV2ZW50LmgiCi0KLSNp
bmNsdWRlICJFcnJvckV2ZW50LmgiCi0jaW5jbHVkZSA8aGVhcC9IZWFwSW5saW5lcy5oPgotCi11
c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUpTVmFsdWUgSlNF
cnJvckV2ZW50OjplcnJvcihFeGVjU3RhdGUmIHN0YXRlKSBjb25zdAotewotICAgIHJldHVybiB3
cmFwcGVkKCkuc2FuaXRpemVkRXJyb3JWYWx1ZShzdGF0ZSwgKmdsb2JhbE9iamVjdCgpKTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNFcnJvckhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXJyb3JIYW5kbGVyLmNwcAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNFcnJvckhhbmRsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSAiRXJyb3JFdmVudC5oIgogI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRXZlbnROYW1lcy5oIgorI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgogI2lu
Y2x1ZGUgIkpTRXZlbnQuaCIKICNpbmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKICNp
bmNsdWRlICJKU01haW5UaHJlYWRFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaCIKQEAgLTkwLDEx
ICs5MSwxMSBAQCB2b2lkIEpTRXJyb3JIYW5kbGVyOjpoYW5kbGVFdmVudChTY3JpcHRFCiAgICAg
ICAgIGdsb2JhbE9iamVjdC0+c2V0Q3VycmVudEV2ZW50KGV2ZW50KTsKIAogICAgICAgICBNYXJr
ZWRBcmd1bWVudEJ1ZmZlciBhcmdzOwotICAgICAgICBhcmdzLmFwcGVuZChqc1N0cmluZ1dpdGhD
YWNoZShleGVjLCBlcnJvckV2ZW50Lm1lc3NhZ2UoKSkpOwotICAgICAgICBhcmdzLmFwcGVuZChq
c1N0cmluZ1dpdGhDYWNoZShleGVjLCBlcnJvckV2ZW50LmZpbGVuYW1lKCkpKTsKLSAgICAgICAg
YXJncy5hcHBlbmQoanNOdW1iZXIoZXJyb3JFdmVudC5saW5lbm8oKSkpOwotICAgICAgICBhcmdz
LmFwcGVuZChqc051bWJlcihlcnJvckV2ZW50LmNvbG5vKCkpKTsKLSAgICAgICAgYXJncy5hcHBl
bmQoZXJyb3JFdmVudC5zYW5pdGl6ZWRFcnJvclZhbHVlKCpleGVjLCAqZ2xvYmFsT2JqZWN0KSk7
CisgICAgICAgIGFyZ3MuYXBwZW5kKHRvSlM8SURMRE9NU3RyaW5nPigqZXhlYywgZXJyb3JFdmVu
dC5tZXNzYWdlKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9KUzxJRExVU1ZTdHJpbmc+KCpl
eGVjLCBlcnJvckV2ZW50LmZpbGVuYW1lKCkpKTsKKyAgICAgICAgYXJncy5hcHBlbmQodG9KUzxJ
RExVbnNpZ25lZExvbmc+KGVycm9yRXZlbnQubGluZW5vKCkpKTsKKyAgICAgICAgYXJncy5hcHBl
bmQodG9KUzxJRExVbnNpZ25lZExvbmc+KGVycm9yRXZlbnQuY29sbm8oKSkpOworICAgICAgICBh
cmdzLmFwcGVuZChlcnJvckV2ZW50LmVycm9yKCpleGVjLCAqZ2xvYmFsT2JqZWN0KSk7CiAKICAg
ICAgICAgVk0mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOwogICAgICAgICBWTUVudHJ5U2NvcGUg
ZW50cnlTY29wZSh2bSwgdm0uZW50cnlTY29wZSA/IHZtLmVudHJ5U2NvcGUtPmdsb2JhbE9iamVj
dCgpIDogZ2xvYmFsT2JqZWN0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsMTAg
KzM3LDYgQEAgT0JKQ19DTEFTUyBXZWJTY3JpcHRPYmplY3Q7CiAKIHN0cnVjdCBOUE9iamVjdDsK
IAotbmFtZXNwYWNlIERlcHJlY2F0ZWQgewotY2xhc3MgU2NyaXB0VmFsdWU7Ci19Ci0KIG5hbWVz
cGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlNHbG9iYWxPYmplY3Q7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TZXJpYWxpemVkU2NyaXB0VmFs
dWUuaAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Vy
aWFsaXplZFNjcmlwdFZhbHVlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDcgKzI3LDYgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRXhjZXB0aW9uT3IuaCIKLSNpbmNsdWRlIDxiaW5kaW5n
cy9TY3JpcHRWYWx1ZS5oPgogI2luY2x1ZGUgPGhlYXAvU3Ryb25nLmg+CiAjaW5jbHVkZSA8cnVu
dGltZS9BcnJheUJ1ZmZlci5oPgogI2luY2x1ZGUgPHJ1bnRpbWUvSlNDSlNWYWx1ZS5oPgpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV29ya2VyU2NyaXB0Q29u
dHJvbGxlci5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dvcmtlclNjcmlwdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsNyAr
MTM2LDcgQEAgdm9pZCBXb3JrZXJTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjbwogICAgICAg
ICBpbnQgbGluZU51bWJlciA9IDA7CiAgICAgICAgIGludCBjb2x1bW5OdW1iZXIgPSAwOwogICAg
ICAgICBTdHJpbmcgc291cmNlVVJMID0gc291cmNlQ29kZS51cmwoKS5zdHJpbmcoKTsKLSAgICAg
ICAgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUgZXJyb3I7CisgICAgICAgIEpTQzo6U3Ryb25nPEpT
Qzo6VW5rbm93bj4gZXJyb3I7CiAgICAgICAgIGlmIChtX3dvcmtlckdsb2JhbFNjb3BlLT5zYW5p
dGl6ZVNjcmlwdEVycm9yKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBz
b3VyY2VVUkwsIGVycm9yLCBzb3VyY2VDb2RlLmNhY2hlZFNjcmlwdCgpKSkKICAgICAgICAgICAg
IHJldHVybmVkRXhjZXB0aW9uID0gSlNDOjpFeGNlcHRpb246OmNyZWF0ZSh2bSwgY3JlYXRlRXJy
b3IoZXhlYywgZXJyb3JNZXNzYWdlLmltcGwoKSkpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lv
biAyMTAwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtNDI1NCwxNyArNDI1NCwxMyBAQCBzdWIgR2VuZXJh
dGVDYWxsV2l0aFVzaW5nUG9pbnRlcnMKIAogc3ViIEdlbmVyYXRlQ2FsbFdpdGgKIHsKLSAgICBt
eSAkY2FsbFdpdGggPSBzaGlmdDsKKyAgICBteSAoJGNhbGxXaXRoLCAkb3V0cHV0QXJyYXksICRy
ZXR1cm5WYWx1ZSwgJGZ1bmN0aW9uLCAkc3RhdGVQb2ludGVyLCAkc3RhdGVSZWZlcmVuY2UsICRn
bG9iYWxPYmplY3QpID0gQF87CisKICAgICByZXR1cm4gKCkgdW5sZXNzICRjYWxsV2l0aDsKLSAg
ICBteSAkb3V0cHV0QXJyYXkgPSBzaGlmdDsKLSAgICBteSAkcmV0dXJuVmFsdWUgPSBzaGlmdDsK
LSAgICBteSAkZnVuY3Rpb24gPSBzaGlmdDsKLSAgICBteSAkc3RhdGVQb2ludGVyID0gc2hpZnQ7
Ci0gICAgbXkgJHN0YXRlUmVmZXJlbmNlID0gc2hpZnQ7Ci0gICAgbXkgJGdsb2JhbE9iamVjdCA9
IHNoaWZ0OwogCiAgICAgbXkgQGNhbGxXaXRoQXJnczsKICAgICBwdXNoKEBjYWxsV2l0aEFyZ3Ms
ICRzdGF0ZVJlZmVyZW5jZSkgaWYgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRlQ29u
dGFpbnMoJGNhbGxXaXRoLCAiU2NyaXB0U3RhdGUiKTsKKyAgICBwdXNoKEBjYWxsV2l0aEFyZ3Ms
ICIqJHtnbG9iYWxPYmplY3R9IikgaWYgJGNvZGVHZW5lcmF0b3ItPkV4dGVuZGVkQXR0cmlidXRl
Q29udGFpbnMoJGNhbGxXaXRoLCAiR2xvYmFsT2JqZWN0Iik7CiAgICAgaWYgKCRjb2RlR2VuZXJh
dG9yLT5FeHRlbmRlZEF0dHJpYnV0ZUNvbnRhaW5zKCRjYWxsV2l0aCwgIlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQiKSkgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byogY29u
dGV4dCA9ICRnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTtcbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFjb250ZXh0KVxuIik7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQJ
KHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAgQXRvbWljU3Ry
aW5nCiBDRVJlYWN0aW9ucwogQ2FjaGVkQXR0cmlidXRlCiBDYWxsYmFja05lZWRzT3BlcmF0b3JF
cXVhbAotQ2FsbFdpdGg9RG9jdW1lbnR8U2NyaXB0RXhlY3V0aW9uQ29udGV4dHxTY3JpcHRTdGF0
ZXxTY3JpcHRBcmd1bWVudHN8Q2FsbFN0YWNrfEFjdGl2ZVdpbmRvd3xGaXJzdFdpbmRvd3xDYWxs
ZXJEb2N1bWVudHxDYWxsZXJXaW5kb3cKK0NhbGxXaXRoPURvY3VtZW50fFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHR8U2NyaXB0U3RhdGV8U2NyaXB0QXJndW1lbnRzfENhbGxTdGFja3xHbG9iYWxPYmpl
Y3R8QWN0aXZlV2luZG93fEZpcnN0V2luZG93fENhbGxlckRvY3VtZW50fENhbGxlcldpbmRvdwog
Q2hlY2tTZWN1cml0eQogQ2hlY2tTZWN1cml0eUZvck5vZGUKIENsYW1wCkBAIC0xMTAsNyArMTEw
LDcgQEAgUmVwbGFjZWFibGUKIFJlcG9ydEV4dHJhTWVtb3J5Q29zdAogUmVwb3J0RXh0ZXJuYWxN
ZW1vcnlDb3N0CiBSZXF1aXJlc0V4aXN0aW5nQXRvbWljU3RyaW5nCi1TZXR0ZXJDYWxsV2l0aD1T
Y3JpcHRFeGVjdXRpb25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3Rh
Y2t8QWN0aXZlV2luZG93fEZpcnN0V2luZG93CitTZXR0ZXJDYWxsV2l0aD1TY3JpcHRFeGVjdXRp
b25Db250ZXh0fFNjcmlwdFN0YXRlfFNjcmlwdEFyZ3VtZW50c3xDYWxsU3RhY2t8R2xvYmFsT2Jq
ZWN0fEFjdGl2ZVdpbmRvd3xGaXJzdFdpbmRvdwogU2V0dGVyTWF5VGhyb3dFeGNlcHRpb24KIFNr
aXBWVGFibGVWYWxpZGF0aW9uCiBTdXBwcmVzc1RvSlNPYmplY3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2RvbS9FcnJvckV2ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXJyb3JFdmVudC5jcHAJKHJldmlzaW9uIDIxMDA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
cnJvckV2ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUg
IkRPTVdyYXBwZXJXb3JsZC5oIgogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlIDxo
ZWFwL0hlYXBJbmxpbmVzLmg+CisjaW5jbHVkZSA8aGVhcC9TdHJvbmdJbmxpbmVzLmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTUwLDcgKzUxLDcgQEAgRXJyb3JFdmVudDo6RXJyb3JF
dmVudChFeGVjU3RhdGUmIHN0YXRlLAogewogfQogCi1FcnJvckV2ZW50OjpFcnJvckV2ZW50KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRW
YWx1ZSYgZXJyb3IpCitFcnJvckV2ZW50OjpFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQg
Y29sdW1uTnVtYmVyLCBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IGVycm9yKQogICAgIDogRXZl
bnQoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKQogICAgICwgbV9tZXNzYWdl
KG1lc3NhZ2UpCiAgICAgLCBtX2ZpbGVOYW1lKGZpbGVOYW1lKQpAQCAtNjksOSArNzAsOSBAQCBF
dmVudEludGVyZmFjZSBFcnJvckV2ZW50OjpldmVudEludGVyZmFjCiAgICAgcmV0dXJuIEVycm9y
RXZlbnRJbnRlcmZhY2VUeXBlOwogfQogCi1KU1ZhbHVlIEVycm9yRXZlbnQ6OnNhbml0aXplZEVy
cm9yVmFsdWUoRXhlY1N0YXRlJiBleGVjLCBKU0dsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQor
SlNWYWx1ZSBFcnJvckV2ZW50OjplcnJvcihFeGVjU3RhdGUmIGV4ZWMsIEpTR2xvYmFsT2JqZWN0
JiBnbG9iYWxPYmplY3QpCiB7ICAgIAotICAgIGF1dG8gZXJyb3IgPSBtX2Vycm9yLmpzVmFsdWUo
KTsKKyAgICBhdXRvIGVycm9yID0gbV9lcnJvci5nZXQoKTsKICAgICBpZiAoIWVycm9yKQogICAg
ICAgICByZXR1cm4ganNOdWxsKCk7CiAKQEAgLTkwLDcgKzkxLDcgQEAgSlNWYWx1ZSBFcnJvckV2
ZW50OjpzYW5pdGl6ZWRFcnJvclZhbHVlKAogUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4g
RXJyb3JFdmVudDo6dHJ5U2VyaWFsaXplRXJyb3IoRXhlY1N0YXRlJiBleGVjKQogewogICAgIGlm
ICghbV90cmllZFRvU2VyaWFsaXplKSB7Ci0gICAgICAgIG1fc2VyaWFsaXplZERldGFpbCA9IFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlKGV4ZWMsIG1fZXJyb3IsIE5vblRocm93aW5nKTsK
KyAgICAgICAgbV9zZXJpYWxpemVkRGV0YWlsID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlOjpjcmVh
dGUoZXhlYywgbV9lcnJvci5nZXQoKSwgTm9uVGhyb3dpbmcpOwogICAgICAgICBtX3RyaWVkVG9T
ZXJpYWxpemUgPSB0cnVlOwogICAgIH0KICAgICByZXR1cm4gbV9zZXJpYWxpemVkRGV0YWlsOwpJ
bmRleDogU291cmNlL1dlYkNvcmUvZG9tL0Vycm9yRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCShyZXZpc2lvbiAyMTAwNzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9kb20vRXJyb3JFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMywxNCArMzMsMTQg
QEAKIAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCi0jaW5jbHVkZSA8YmluZGluZ3MvU2NyaXB0VmFsdWUuaD4KKyNpbmNsdWRlIDxoZWFwL1N0
cm9uZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIEVycm9yRXZlbnQgZmluYWwgOiBwdWJsaWMgRXZlbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8RXJyb3JFdmVudD4gY3JlYXRlKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQg
Y29sdW1uTnVtYmVyLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXJyb3IpCisgICAg
c3RhdGljIFJlZjxFcnJvckV2ZW50PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBFcnJvckV2ZW50KG1lc3NhZ2UsIGZpbGVOYW1lLCBsaW5lTnVt
YmVyLCBjb2x1bW5OdW1iZXIsIGVycm9yKSk7CiAgICAgfQpAQCAtNjQsMTMgKzY0LDEyIEBAIHB1
YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIGZpbGVuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9maWxl
TmFtZTsgfQogICAgIHVuc2lnbmVkIGxpbmVubygpIGNvbnN0IHsgcmV0dXJuIG1fbGluZU51bWJl
cjsgfQogICAgIHVuc2lnbmVkIGNvbG5vKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5OdW1iZXI7
IH0KLSAgICBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXJyb3IoKSBjb25zdCB7IHJl
dHVybiBtX2Vycm9yOyB9Ci0gICAgSlNDOjpKU1ZhbHVlIHNhbml0aXplZEVycm9yVmFsdWUoSlND
OjpFeGVjU3RhdGUmLCBKU0M6OkpTR2xvYmFsT2JqZWN0Jik7CisgICAgSlNDOjpKU1ZhbHVlIGVy
cm9yKEpTQzo6RXhlY1N0YXRlJiwgSlNDOjpKU0dsb2JhbE9iamVjdCYpOwogCiAgICAgRXZlbnRJ
bnRlcmZhY2UgZXZlbnRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAg
ICBFcnJvckV2ZW50KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBEZXBy
ZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXJyb3IpOworICAgIEVycm9yRXZlbnQoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gZXJyb3IpOwog
ICAgIEVycm9yRXZlbnQoSlNDOjpFeGVjU3RhdGUmLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25z
dCBJbml0JiwgSXNUcnVzdGVkKTsKIAogICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
IHRyeVNlcmlhbGl6ZUVycm9yKEpTQzo6RXhlY1N0YXRlJik7CkBAIC04MSw3ICs4MCw3IEBAIHBy
aXZhdGU6CiAgICAgU3RyaW5nIG1fZmlsZU5hbWU7CiAgICAgdW5zaWduZWQgbV9saW5lTnVtYmVy
OwogICAgIHVuc2lnbmVkIG1fY29sdW1uTnVtYmVyOwotICAgIERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlIG1fZXJyb3I7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBtX2Vycm9yOwogICAg
IFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fc2VyaWFsaXplZERldGFpbDsKICAgICBi
b29sIG1fdHJpZWRUb1NlcmlhbGl6ZSB7IGZhbHNlIH07CiB9OwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0Vycm9yRXZlbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9F
cnJvckV2ZW50LmlkbAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0Vy
cm9yRXZlbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBmaWxlbmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUg
dW5zaWduZWQgbG9uZyBsaW5lbm87CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxv
bmcgY29sbm87Ci0gICAgW0N1c3RvbUdldHRlcl0gcmVhZG9ubHkgYXR0cmlidXRlIGFueSBlcnJv
cjsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0U3RhdGUmR2xvYmFsT2JqZWN0XSByZWFkb25seSBhdHRy
aWJ1dGUgYW55IGVycm9yOwogfTsKIAogZGljdGlvbmFyeSBFcnJvckV2ZW50SW5pdCA6IEV2ZW50
SW5pdCB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuY3BwCShyZXZpc2lvbiAyMTAwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNs
dWRlICJEYXRhYmFzZUNvbnRleHQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkVycm9yRXZlbnQuaCIKKyNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VQb3J0LmgiCiAjaW5jbHVkZSAiTm9FdmVudERpc3BhdGNoQXNzZXJ0aW9uLmgiCiAjaW5jbHVk
ZSAiUHVibGljVVJMTWFuYWdlci5oIgpAQCAtNDIsMTggKzQzLDEyIEBACiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJXb3JrZXJHbG9iYWxTY29wZS5oIgogI2luY2x1ZGUgIldvcmtl
clRocmVhZC5oIgorI2luY2x1ZGUgPGhlYXAvU3Ryb25nSW5saW5lcy5oPgogI2luY2x1ZGUgPGlu
c3BlY3Rvci9TY3JpcHRDYWxsU3RhY2suaD4KICNpbmNsdWRlIDxydW50aW1lL0V4Y2VwdGlvbi5o
PgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCi0v
LyBGSVhNRTogVGhpcyBpcyBhIGxheWVyaW5nIHZpb2xhdGlvbi4KLSNpbmNsdWRlICJKU0RPTVdp
bmRvdy5oIgotCi0jaWYgUExBVEZPUk0oSU9TKQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jZW5k
aWYKLQogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtMzU3LDcgKzM1Miw3IEBAIHZvaWQgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6d2lsbERlc3Ry
b3kKICAgICBtX2Rlc3RydWN0aW9uT2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOwogfQogCi1i
b29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBl
cnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJlciwgaW50JiBjb2x1bW5OdW1iZXIsIFN0cmluZyYg
c291cmNlVVJMLCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYgZXJyb3IsIENhY2hlZFNjcmlwdCog
Y2FjaGVkU2NyaXB0KQorYm9vbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzYW5pdGl6ZVNjcmlw
dEVycm9yKFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQmIGxpbmVOdW1iZXIsIGludCYgY29sdW1u
TnVtYmVyLCBTdHJpbmcmIHNvdXJjZVVSTCwgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiYgZXJy
b3IsIENhY2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQogewogICAgIEFTU0VSVChzZWN1cml0eU9y
aWdpbigpKTsKICAgICBpZiAoY2FjaGVkU2NyaXB0KSB7CkBAIC0zNjksMTAgKzM2NCwxMCBAQCBi
b29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNhbml0aXplU2NyCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGVycm9yTWVzc2FnZSA9ICJTY3JpcHQgZXJyb3IuIjsKLSAgICBzb3VyY2VV
UkwgPSBTdHJpbmcoKTsKKyAgICBzb3VyY2VVUkwgPSB7IH07CiAgICAgbGluZU51bWJlciA9IDA7
CiAgICAgY29sdW1uTnVtYmVyID0gMDsKLSAgICBlcnJvciA9IERlcHJlY2F0ZWQ6OlNjcmlwdFZh
bHVlKCk7CisgICAgZXJyb3IgPSB7IH07CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTQyMCw3
ICs0MTUsNyBAQCBib29sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OmRpc3BhdGNoRXJyCiAgICAg
aW50IGxpbmUgPSBsaW5lTnVtYmVyOwogICAgIGludCBjb2x1bW4gPSBjb2x1bW5OdW1iZXI7CiAg
ICAgU3RyaW5nIHNvdXJjZU5hbWUgPSBzb3VyY2VVUkw7Ci0gICAgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUgZXJyb3IgPSBleGNlcHRpb24gJiYgZXhjZXB0aW9uLT52YWx1ZSgpID8gRGVwcmVjYXRl
ZDo6U2NyaXB0VmFsdWUodm0oKSwgZXhjZXB0aW9uLT52YWx1ZSgpKSA6IERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlKCk7CisgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiBlcnJvciA9IGV4Y2Vw
dGlvbiAmJiBleGNlcHRpb24tPnZhbHVlKCkgPyBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+KHZt
KCksIGV4Y2VwdGlvbi0+dmFsdWUoKSkgOiBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+KCk7CiAg
ICAgc2FuaXRpemVTY3JpcHRFcnJvcihtZXNzYWdlLCBsaW5lLCBjb2x1bW4sIHNvdXJjZU5hbWUs
IGVycm9yLCBjYWNoZWRTY3JpcHQpOwogCiAgICAgQVNTRVJUKCFtX2luRGlzcGF0Y2hFcnJvckV2
ZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQu
aAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsMTkgKzMxLDE3IEBACiAjaW5jbHVkZSAi
RE9NVGltZXIuaCIKICNpbmNsdWRlICJTZWN1cml0eUNvbnRleHQuaCIKICNpbmNsdWRlICJTdXBw
bGVtZW50YWJsZS5oIgorI2luY2x1ZGUgPGhlYXAvSGFuZGxlVHlwZXMuaD4KICNpbmNsdWRlIDxy
dW50aW1lL0NvbnNvbGVUeXBlcy5oPgogI2luY2x1ZGUgPHd0Zi9Dcm9zc1RocmVhZFRhc2suaD4K
ICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogCi1u
YW1lc3BhY2UgRGVwcmVjYXRlZCB7Ci1jbGFzcyBTY3JpcHRWYWx1ZTsKLX0KLQogbmFtZXNwYWNl
IEpTQyB7CiBjbGFzcyBFeGNlcHRpb247CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBWTTsKK3Rl
bXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBTdHJvbmc7CiB9CiAKIG5hbWVzcGFjZSBJbnNwZWN0
b3IgewpAQCAtOTQsNyArOTIsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyByZXNv
dXJjZVJlcXVlc3RJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gU3RyaW5nKCk7IH07CiAKLSAg
ICBib29sIHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGlu
ZU51bWJlciwgaW50JiBjb2x1bW5OdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBEZXByZWNhdGVk
OjpTY3JpcHRWYWx1ZSYgZXJyb3IsIENhY2hlZFNjcmlwdCogPSBudWxscHRyKTsKKyAgICBib29s
IHNhbml0aXplU2NyaXB0RXJyb3IoU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCYgbGluZU51bWJl
ciwgaW50JiBjb2x1bW5OdW1iZXIsIFN0cmluZyYgc291cmNlVVJMLCBKU0M6OlN0cm9uZzxKU0M6
OlVua25vd24+JiBlcnJvciwgQ2FjaGVkU2NyaXB0KiA9IG51bGxwdHIpOwogICAgIHZvaWQgcmVw
b3J0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
aW50IGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIEpTQzo6RXhjZXB0aW9u
KiwgUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPiYmLCBDYWNoZWRTY3JpcHQqID0g
bnVsbHB0cik7CiAKICAgICB2b2lkIGFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVS
TCwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBKU0M6OkV4ZWNT
dGF0ZSogPSBudWxscHRyLCB1bnNpZ25lZCBsb25nIHJlcXVlc3RJZGVudGlmaWVyID0gMCk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlck1lc3NhZ2luZ1Byb3h5LmNw
cAkocmV2aXNpb24gMjEwMDcwKQorKysgU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJNZXNz
YWdpbmdQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3ICsxNjEsNyBAQCB2b2lkIFdv
cmtlck1lc3NhZ2luZ1Byb3h5Ojpwb3N0RXhjZXB0aW9uCiAgICAgICAgIC8vIFdlIGRvbid0IGJv
dGhlciBjaGVja2luZyB0aGUgYXNrZWRUb1Rlcm1pbmF0ZSgpIGZsYWcgaGVyZSwgYmVjYXVzZSBl
eGNlcHRpb25zIHNob3VsZCAqYWx3YXlzKiBiZSByZXBvcnRlZCBldmVuIGlmIHRoZSB0aHJlYWQg
aXMgdGVybWluYXRlZC4KICAgICAgICAgLy8gVGhpcyBpcyBpbnRlbnRpb25hbGx5IGRpZmZlcmVu
dCB0aGFuIHRoZSBiZWhhdmlvciBpbiBNZXNzYWdlV29ya2VyVGFzaywgYmVjYXVzZSB0ZXJtaW5h
dGVkIHdvcmtlcnMgbm8gbG9uZ2VyIGRlbGl2ZXIgbWVzc2FnZXMgKHNlY3Rpb24gNC42IG9mIHRo
ZSBXZWJXb3JrZXIgc3BlYyksIGJ1dCB0aGV5IGRvIHJlcG9ydCBleGNlcHRpb25zLgogCi0gICAg
ICAgIGJvb2wgZXJyb3JIYW5kbGVkID0gIXdvcmtlck9iamVjdC0+ZGlzcGF0Y2hFdmVudChFcnJv
ckV2ZW50OjpjcmVhdGUoZXJyb3JNZXNzYWdlLCBzb3VyY2VVUkwsIGxpbmVOdW1iZXIsIGNvbHVt
bk51bWJlciwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUoKSkpOworICAgICAgICBib29sIGVycm9y
SGFuZGxlZCA9ICF3b3JrZXJPYmplY3QtPmRpc3BhdGNoRXZlbnQoRXJyb3JFdmVudDo6Y3JlYXRl
KGVycm9yTWVzc2FnZSwgc291cmNlVVJMLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIsIHsgfSkp
OwogICAgICAgICBpZiAoIWVycm9ySGFuZGxlZCkKICAgICAgICAgICAgIGNvbnRleHQucmVwb3J0
RXhjZXB0aW9uKGVycm9yTWVzc2FnZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyLCBzb3VyY2VV
UkwsIG51bGxwdHIsIG51bGxwdHIpOwogICAgIH0pOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>