<?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>79709</bug_id>
          
          <creation_ts>2012-02-27 15:36:46 -0800</creation_ts>
          <short_desc>[Mac] Add an experimental SPI for plug-ins to enter sandbox</short_desc>
          <delta_ts>2012-02-28 15:18:12 -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>Plug-ins</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>rafael.lobo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>566034</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-27 15:36:46 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566045</commentid>
    <comment_count>1</comment_count>
      <attachid>129116</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-27 15:42:25 -0800</bug_when>
    <thetext>Created attachment 129116
proposed patch

This has been previously discussed on plugin-futures, adding an experimental implementation to validate the approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566050</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 15:49:28 -0800</bug_when>
    <thetext>Attachment 129116 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 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>566156</commentid>
    <comment_count>3</comment_count>
      <attachid>129141</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-27 17:12:52 -0800</bug_when>
    <thetext>Created attachment 129141
style fix, and added a comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566162</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-27 17:17:19 -0800</bug_when>
    <thetext>Attachment 129141 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/WebProcess/Plugins/Netscape/NetscapeBrowserFuncs.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 7 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>566176</commentid>
    <comment_count>5</comment_count>
      <attachid>129141</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2012-02-27 17:29:09 -0800</bug_when>
    <thetext>Comment on attachment 129141
style fix, and added a comment

Attachment 129141 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11645287</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566200</commentid>
    <comment_count>6</comment_count>
      <attachid>129141</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-02-27 17:50:26 -0800</bug_when>
    <thetext>Comment on attachment 129141
style fix, and added a comment

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

This seems to have problems building.

&gt; Source/WebKit2/ChangeLog:10
&gt; +        * PluginProcess/mac/plugin.sb: Added.

The sandbox profile for the WebProcess is called, com.apple.WebProcess.sb. Should we match the naming convention?  Also, is it possible/a good idea to extract a set of both profiles that are common and share them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566213</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-27 18:01:11 -0800</bug_when>
    <thetext>&gt; This seems to have problems building.

Fixed a non-Mac issue locally, but mostly it depends on WKSI changes that are yet to be landed.

&gt; The sandbox profile for the WebProcess is called, com.apple.WebProcess.sb. Should we match the naming convention?

I don&apos;t really care, I liked plugin.sb.

&gt;  Also, is it possible/a good idea to extract a set of both profiles that are common and share them?

I think that at this stage, it&apos;s easier to maintain them separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566902</commentid>
    <comment_count>8</comment_count>
      <attachid>129141</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-02-28 11:22:41 -0800</bug_when>
    <thetext>Comment on attachment 129141
style fix, and added a comment

I think plugin.sb should be com.apple.PluginProcess.sb to match the WebProcess name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566989</commentid>
    <comment_count>9</comment_count>
      <attachid>129311</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 12:48:57 -0800</bug_when>
    <thetext>Created attachment 129311
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566991</commentid>
    <comment_count>10</comment_count>
      <attachid>129311</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 12:53:05 -0800</bug_when>
    <thetext>Comment on attachment 129311
patch for landing

Rejecting attachment 129311 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

Ander Carlsson found in /mnt/git/webkit-commit-queue/Source/WebKit2/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /mnt/git/webkit-commit-queue/Source/WebKit2/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/11714047</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566999</commentid>
    <comment_count>11</comment_count>
      <attachid>129313</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 12:58:23 -0800</bug_when>
    <thetext>Created attachment 129313
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567015</commentid>
    <comment_count>12</comment_count>
      <attachid>129313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 13:16:18 -0800</bug_when>
    <thetext>Comment on attachment 129313
patch for landing

Clearing flags on attachment: 129313

Committed r109143: &lt;http://trac.webkit.org/changeset/109143&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567017</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-28 13:16:25 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567087</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 14:21:25 -0800</bug_when>
    <thetext>Build fix in &lt;http://trac.webkit.org/changeset/109148&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567088</commentid>
    <comment_count>15</comment_count>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-02-28 14:21:41 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567089</commentid>
    <comment_count>16</comment_count>
      <attachid>129330</attachid>
    <who name="Rafael Brandao">rafael.lobo</who>
    <bug_when>2012-02-28 14:21:46 -0800</bug_when>
    <thetext>Created attachment 129330
Patch

It looks like this has broken qt buildbots. The following patch is a build fix, please double check it before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567097</commentid>
    <comment_count>17</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 14:26:23 -0800</bug_when>
    <thetext>Build fix has already been landed, please see above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567100</commentid>
    <comment_count>18</comment_count>
      <attachid>129330</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 14:27:41 -0800</bug_when>
    <thetext>Comment on attachment 129330
Patch

-#if PLATFORM(MAC) &amp;&amp; !defined(BUILDING_ON_LEOPARD) || !defined(BUILDING_ON_SNOW_LEOPARD)
+#if PLATFORM(MAC) &amp;&amp; (!defined(BUILDING_ON_LEOPARD) || !defined(BUILDING_ON_SNOW_LEOPARD))

Also, this is insufficient, there are two instances of this in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>567154</commentid>
    <comment_count>19</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-28 15:18:12 -0800</bug_when>
    <thetext>Mac build fix of same kind in &lt;http://trac.webkit.org/changeset/109159&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129116</attachid>
            <date>2012-02-27 15:42:25 -0800</date>
            <delta_ts>2012-02-27 17:12:52 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>NPAPISandboxOpenSource.txt</filename>
            <type>text/plain</type>
            <size>27976</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTAzMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEFkZCBhbiBleHBl
cmltZW50YWwgU1BJIGZvciBwbHVnLWlucyB0byBlbnRlciBzYW5kYm94CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmg6IChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsdWdpblBhdGgpOiBFeHBvc2VkIHBs
dWdpbiBwYXRoLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvcGx1Z2luLnNiOiBBZGRl
ZC4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQg
bmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlQnJvd3NlckZ1bmNzLmNwcDogKFdlYktpdDo6TlBOX0dldFZhbHVlKTogRXhwb3NlZAorICAg
ICAgICBhIGZ1bmN0aW9uIHRvIGFjY2VzcyBzYW5kYm94aW5nIGZ1bmN0aW9ucyB3aGVuIGF2YWls
YWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2Nh
cGVTYW5kYm94RnVuY3Rpb25zLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tOiBBZGRlZC4KKwogMjAx
Mi0wMi0yNyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdDI6IGltcGxlbWVudCBwbGF0Zm9ybSBzdHJhdGVneSB0byBhY2Nlc3MgUGFzdGVib2FyZCBp
biB0aGUgVUkgcHJvY2Vzcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiAxMDkwMTApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsOCBA
QCBwdWJsaWM6CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0c2NhcGVQbHVnaW5Nb2R1
bGUoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGx1Z2luUGF0aDsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaW5pdGlhbGl6ZVNo
aW0oKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvcGx1Z2luLnNi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL3BsdWdpbi5z
YgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL3BsdWdp
bi5zYgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOTEgQEAKKyh2ZXJzaW9uIDEpCisoZGVueSBk
ZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgaXBjLXBvc2l4LXNo
bSBzeXN0ZW0tYXVkaXQgc3lzdGVtLXNvY2tldCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBv
cnQgInN5c3RlbS5zYiIpCisKKzs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9y
eSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKKyhkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2
ZS1yZWdleCkKKyAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFt
ICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4KSkpCisKKyhkZWZpbmUgKGhvbWUtc3Vi
cGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCisgIChzdWJwYXRoIChzdHJpbmctYXBwZW5kIChw
YXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLXN1YnBhdGgpKSkKKworKGRlZmluZSAoaG9t
ZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkKKyAgKGxpdGVyYWwgKHN0cmluZy1hcHBl
bmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkpKQorCis7OyBSZWFk
LW9ubHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKKyhhbGxvdyBmaWxlLXJlYWQqCisgICAgICAgOzsg
QmFzaWMgc3lzdGVtIHBhdGhzCisgICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0ZyYW1ld29ya3Mi
KQorICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzIikKKworICAgICAgIDs7IFN5
c3RlbSBhbmQgdXNlciBwcmVmZXJlbmNlcworICAgICAgIChsaXRlcmFsICIvTGlicmFyeS9QcmVm
ZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMucGxpc3QiKQorICAgICAgIChsaXRlcmFsICIvTGli
cmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuQmx1ZXRvb3RoLnBsaXN0IikKKyAgICAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLlF1aWNrVGltZS5wbGlzdCIpCisg
ICAgICAgKHJlZ2V4ICMiXi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLnNlY3VyaXR5
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvLkNGVXNlclRleHRFbmNvZGluZyIpCisgICAgICAg
KGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8iKQorICAgICAgIChob21lLXN1YnBhdGggIi9M
aWJyYXJ5L0NvbG9yUGlja2VycyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQ29s
b3JTeW5jIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9Db21wb25lbnRzIikKKyAg
ICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9JbnB1dCBNZXRob2RzIikKKyAgICAgICAoaG9t
ZS1zdWJwYXRoICIvTGlicmFyeS9LZXlCaW5kaW5ncyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAi
L0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJh
cnkvRm9udHMiKQorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L1BERiBTZXJ2aWNlcyIp
CisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZl
cmVuY2VzLnBsaXN0IikKKyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJyYXJ5L1ByZWZlcmVuY2Vz
L0J5SG9zdC9cLkdsb2JhbFByZWZlcmVuY2VzXC4iKQorICAgICAgIChob21lLXJlZ2V4ICMiL0xp
YnJhcnkvUHJlZmVyZW5jZXMvQnlIb3N0L2NvbVwuYXBwbGVcLkJsdWV0b290aFwuIikKKyAgICAg
ICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuQVRTLnBsaXN0
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUu
ZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZS5wbGlzdCIpCisgICAgICAgKGhv
bWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmRyaXZlci5BcHBsZUJs
dWV0b290aE11bHRpdG91Y2gudHJhY2twYWQucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZS5wbGlz
dCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxl
LmlucHV0bWV0aG9ka2l0LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9Q
cmVmZXJlbmNlcy9jb20uYXBwbGUuaVdvcmsuUGFnZXMucGxpc3QiKQorICAgICAgIChob21lLWxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5wbGlz
dCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxl
Lk11bHRpdG91Y2hTdXBwb3J0LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFy
eS9QcmVmZXJlbmNlcy9jb20uYXBwbGUub3BlbmdsLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRl
cmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc2VjdXJpdHkucGxpc3QiKQorICAg
ICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0
eV9jb21tb24ucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVu
Y2VzL2NvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMucGxpc3QiKQorICAgICAgIChob21lLWxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmdl
bmVyYWwucHJlZnMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZl
cmVuY2VzL2NvbS5hcHBsZS5zeXN0ZW1zb3VuZC5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJh
bCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnVuaXZlcnNhbGFjY2Vzcy5wbGlzdCIp
CisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLldl
YkZvdW5kYXRpb24ucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZl
cmVuY2VzL2NvbS5udmlkaWEuT3BlbkdMLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIv
TGlicmFyeS9QcmVmZXJlbmNlcy9wYnMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMucGxpc3Qi
KQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL1F1aWNrVGltZSBQ
cmVmZXJlbmNlcyIpCisKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMvY29t
LmFwcGxlLmNvcmVhdWRpby5jb21wb25lbnRzLnBsaXN0IikKKworICAgICAgIChzdWJwYXRoICIv
TGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRzIikKKyAgICAgICAoaG9tZS1zdWJwYXRo
ICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRzIikKKyAgICAgICAoc3VicGF0aCAi
L0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvSEFMIikKKyAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkv
UXVpY2tUaW1lIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9RdWlja1RpbWUiKQor
ICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9WaWRlby9QbHVnLUlucyIpCisKKyAgICAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9DcmFzaFJlcG9ydGVyL1N1Ym1pdERp
YWdJbmZvLmRvbWFpbnMiKQorCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGlj
YXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMvTG9jYWwvQ2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5h
cHBsZS5LZXljaGFpbiIpCisKKyAgICAgICA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMDQ3OTY4NT4gaXMgZml4ZWQuCisgICAgICAgKHN1YnBh
dGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCispCisKKzs7IFJlYWQtd3JpdGUgcHJlZmVyZW5jZXMg
YW5kIGRhdGEKKyhhbGxvdyBmaWxlKgorICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJl
ZmVyZW5jZXMvY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnBsaXN0IikKKworICAgICAg
IChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0NhY2hlcy9RdWlja1RpbWUiKQorCisgICAgICAgOzsg
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vMTA0Nzk2
ODU+IGlzIGZpeGVkLgorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIp
KQorCis7OyBJT0tpdCB1c2VyIGNsaWVudHMKKyhhbGxvdyBpb2tpdC1vcGVuCisgICAgICAgKGlv
a2l0LWNvbm5lY3Rpb24gIklPQWNjZWxlcmF0b3IiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVu
dC1jbGFzcyAiQUdQTUNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJB
cHBsZUdyYXBoaWNzQ29udHJvbENsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNs
YXNzICJBcHBsZVNOQkZCVXNlckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNs
YXNzICJJT0FjY2VsZXJhdGlvblVzZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVu
dC1jbGFzcyAiSU9BdWRpb0NvbnRyb2xVc2VyQ2xpZW50IikKKyAgICAgICAoaW9raXQtdXNlci1j
bGllbnQtY2xhc3MgIklPQXVkaW9FbmdpbmVVc2VyQ2xpZW50IikKKyAgICAgICAoaW9raXQtdXNl
ci1jbGllbnQtY2xhc3MgIklPRnJhbWVidWZmZXJTaGFyZWRVc2VyQ2xpZW50IikKKyAgICAgICAo
aW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElEUGFyYW1Vc2VyQ2xpZW50IikKKyAgICAgICAo
aW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPU3VyZmFjZVJvb3RVc2VyQ2xpZW50IikKKyAgICAg
ICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPU3VyZmFjZVNlbmRSaWdodCIpCisgICAgICAg
KGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJSb290RG9tYWluVXNlckNsaWVudCIpKQorCis7OyBW
YXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IEFwcEtpdCBhbmQgb3RoZXIgZnJhbWV3b3Jrcwor
KGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZVNl
cnZpY2VzLmNvcmVzZXJ2aWNlc2QiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkRp
c2tBcmJpdHJhdGlvbi5kaXNrYXJiaXRyYXRpb25kIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5GaWxlQ29vcmRpbmF0aW9uIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5Gb250T2JqZWN0c1NlcnZlciIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRm9u
dFNlcnZlciIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuSW1hZ2VDYXB0dXJlRXh0
ZW5zaW9uMi5wcmVzZW5jZSIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU2VjdXJp
dHlTZXJ2ZXIiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlN5c3RlbUNvbmZpZ3Vy
YXRpb24uY29uZmlnZCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8uVkRD
QXNzaXN0YW50IikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hh
bGQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLmNvcmVhdWRpb2QiKQor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNtaW8uVkRDQXNzaXN0YW50IikKKyAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb29raWVkIikgOzsgRklYTUU6IDxyZGFyOi8vcHJv
YmxlbS8xMDc5MDc2OD4gTGltaXQgYWNjZXNzIHRvIGNvb2tpZXMuCisgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuY3Ztc1NlcnYiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
Lm9jc3BkIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXN0ZWJvYXJkLjEiKQor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndpbmRvd19wcm94aWVzIikKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS53aW5kb3dzZXJ2ZXIuYWN0aXZlIikKKyAgICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5jZm5ldHdvcmsuQXV0aEJyb2tlckFnZW50IikKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisgICAgICAg
KGdsb2JhbC1uYW1lLXJlZ2V4ICMiX09wZW5TdGVwJCIpCispCisKKzs7IE5ldHdvcmtpbmcKKyhh
bGxvdyBzeXN0ZW0tc29ja2V0IChzb2NrZXQtZG9tYWluIEFGX1JPVVRFKSkKKyhhbGxvdyBzeXN0
ZW0tc29ja2V0IChyZXF1aXJlLWFsbCAoc29ja2V0LWRvbWFpbiBBRl9TWVNURU0pIChzb2NrZXQt
cHJvdG9jb2wgMikpKSA7IFNZU1BST1RPX0NPTlRST0wKKyhhbGxvdyBuZXR3b3JrLW91dGJvdW5k
CisgICAgICAgOzsgS2VybmVsIGNvbnRyb2xzCisgICAgICAgKGNvbnRyb2wtbmFtZSAiY29tLmFw
cGxlLm5ldHdvcmsuc3RhdGlzdGljcyIpCisgICAgICAgKGNvbnRyb2wtbmFtZSAiY29tLmFwcGxl
Lm5ldHNyYyIpCisKKyAgICAgICA7OyBMb2NhbCBtRE5TUmVzcG9uZGVyIGZvciBETlMsIGFyYml0
cmFyeSBvdXRib3VuZCBUQ1AKKyAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3J1bi9tRE5T
UmVzcG9uZGVyIikKKyAgICAgICAocmVtb3RlIHRjcCkpCisKKyhhbGxvdyBtYWNoLWxvb2t1cAor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRzbS51aXNlcnZlciIpCisgICAgICAgKGxv
Y2FsLW5hbWUgImNvbS5hcHBsZS50c20ucG9ydG5hbWUiKQorKQorCis7OyBPcGVuIGFuZCBTYXZl
IHBhbmVscworKGRlZmluZSAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgt
ZmlsdGVyKQorICAgICAgIChvcCBmaWxlLXJlYWQqIHBhdGgtZmlsdGVyKQorICAgICAgIChvcCBm
aWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFw
cGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAoYXBwbHktd3Jp
dGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKKyAgICAgICAob3AgZmlsZS13
cml0ZSogcGF0aC1maWx0ZXIpCisgICAgICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1
aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0
ZSIpIHBhdGgtZmlsdGVyKSkpCisoZGVmaW5lIChyZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNp
b25zIHBhdGgtZmlsdGVyKQorICAgICAgIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24g
YWxsb3cgcGF0aC1maWx0ZXIpCisgICAgICAgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNp
b24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKGFsbG93IHF0bi11c2VyCisgICAgICAgKGV4dGVuc2lv
biAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKyhyZWFkLXdyaXRlLWFuZC1p
c3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdy
aXRlIikpCisKKzs7IFByaW50aW5nCisoYWxsb3cgbmV0d29yay1vdXRib3VuZCAobGl0ZXJhbCAi
L3ByaXZhdGUvdmFyL3J1bi9jdXBzZCIpKQorKGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUucHJpbnR1aXRvb2wuYWdlbnQiKQorICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnByaW50dG9vbC5hZ2VudCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUucHJpbnR0b29sLmRhZW1vbiIpKQorKGFsbG93IGZpbGUtcmVhZCoKKyAgICAgICAo
aG9tZS1saXRlcmFsICIvLmN1cHMvbHBvcHRpb25zIikKKyAgICAgICAoaG9tZS1saXRlcmFsICIv
LmN1cHMvY2xpZW50LmNvbmYiKQorICAgICAgIChsaXRlcmFsICIvcHJpdmF0ZS9ldGMvY3Vwcy9j
bGllbnQuY29uZiIpCisgICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9jdXBzL2xwb3B0aW9u
cyIpCisgICAgICAgKHN1YnBhdGggIi9wcml2YXRlL2V0Yy9jdXBzL3BwZCIpCisgICAgICAgKHN1
YnBhdGggIi9wcml2YXRlL3Zhci9ydW4vY3Vwc2QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL29yZy5jdXBzLlByaW50aW5nUHJlZnMucGxpc3QiKSkKKworOzsg
VGV4dCBTZXJ2aWNlcyBNYW5hZ2VyCisoYWxsb3cgaW9raXQtc2V0LXByb3BlcnRpZXMgKGlva2l0
LXByb3BlcnR5ICJDYXBzTG9ja0RlbGF5T3ZlcnJpZGUiKSkKKworOzsgSW1hZ2UgQ2FwdHVyZSAo
dXNlZCBieSBwcmludCBwcmV2aWV3IGRpYWxvZykKKyhhbGxvdyBhcHBsZWV2ZW50LXNlbmQgKGFw
cGxlZXZlbnQtZGVzdGluYXRpb24gImNvbS5hcHBsZS5pbWFnZWNhcHR1cmVleHRlbnNpb24yIikp
CisKKzs7IFNpbGVudGx5IGJsb2NrIGFjY2VzcyB0byBzb21lIGZpbGVzCisoZGVueSBmaWxlLXJl
YWQqIGZpbGUtd3JpdGUqICh3aXRoIG5vLWxvZykKKyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLmludGVybmV0Y29uZmlncHJpdlwucGxpc3QiKQor
ICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tXC5hcHBsZVwuaW50
ZXJuZXRjb25maWdcLnBsaXN0IikKKworICAgICAgIDs7IEZJWE1FOiBTaG91bGQgYmUgcmVtb3Zl
ZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vOTQyMjk1Nz4gaXMgZml4ZWQuCisgICAgICAgKGhvbWUt
bGl0ZXJhbCAiL0xpYnJhcnkvQ2FjaGVzL0NhY2hlLmRiIikKKworICAgICAgIDs7IEZJWE1FOiBT
aG91bGQgYmUgcmVtb3ZlZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vMTA0NjM4ODE+IGlzIGZpeGVk
LgorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5M
YXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5lRXZlbnRzVjIiKQorICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5l
RXZlbnRzVjItam91cm5hbCIpKQorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDkwMTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTg4Niw2ICs4ODYsOSBAQAogCQlFMTM0RjAxQTEyRUE1RDk5MDA0RUM1OEQgLyogV0tQcmlu
dGluZ1ZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTM0RjAxOTEyRUE1RDk5MDA0RUM1OEQgLyogV0tQcmludGluZ1ZpZXcubW0gKi87IH07CiAJ
CUUxNzlGRDlDMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3OUZEOUIxMzREMzgwNjAw
MTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi87IH07CiAJCUUxNzlGRDlGMTM0RDM4MjUw
MDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVu
dENvZGVyc01hYy5tbSAqLzsgfTsKKwkJRTE3QkY5OTYxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNj
YXBlU2FuZGJveEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1
bmN0aW9ucy5oICovOyB9OworCQlFMTdCRjk5ODE0RDBBQTgzMDBBNUEwNjkgLyogTmV0c2NhcGVT
YW5kYm94RnVuY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE3QkY5OTcxNEQwQUE4MzAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0
aW9ucy5tbSAqLzsgfTsKKwkJRTE3QkY5OUExNEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3QkY5OTkx
NEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiAqLzsgfTsKIAkJRTE4QzkyRjQxMkRCOUU3MTAw
Q0YyQUVCIC8qIFByaW50SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAq
LzsgfTsKIAkJRTE5OTg3NUUxNDJDMDQ1NDAwQkIyREU3IC8qIEJ1aWx0SW5QREZWaWV3LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTk4NzVDMTQy
QkZDOTcwMEJCMkRFNyAvKiBCdWlsdEluUERGVmlldy5jcHAgKi87IH07CiAJCUUxQTMxNzMyMTM0
Q0VBNkMwMDdDOUE0RiAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEzMTczMTEzNENFQTZDMDA3QzlBNEYgLyogQXR0
cmlidXRlZFN0cmluZy5oICovOyB9OwpAQCAtMTkzMiw2ICsxOTM1LDkgQEAKIAkJRTE0RTk5Rjkx
NEQ4NzlDOTAwMUQyMjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJh
ZGQtZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZE
OUIxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFyZ3VtZW50Q29kZXJzTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFyZ3VtZW50Q29k
ZXJzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTdCRjk5NTE0RDBBNzNF
MDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTdCRjk5NzE0RDBBQTgzMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTdCRjk5OTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IHBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4QzkyRjMx
MkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcmludEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTk5ODc1QTE0MkJGOUI4MDBCQjJERTcgLyogQnVpbHRJblBERlZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQnVpbHRJblBERlZpZXcuaDsgcGF0aCA9IFBERi9CdWls
dEluUERGVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk5ODc1QzE0MkJG
Qzk3MDBCQjJERTcgLyogQnVpbHRJblBERlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQnVpbHRJblBERlZpZXcuY3BwOyBwYXRoID0gUERGL0J1aWx0SW5QREZW
aWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjMsNiArMjEyOSw3IEBA
CiAJCQkJMUEwRUM4MDIxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1t
ICovLAogCQkJCTFBQzI1Rjg5MTJBNDhFMDMwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5o
ICovLAogCQkJCTFBQzI1RjhBMTJBNDhFMDMwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5t
bSAqLywKKwkJCQlFMTdCRjk5OTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiICovLAogCQkJ
CUUxNEU5OUY5MTREODc5QzkwMDFEMjIxRiAvKiBhZGQtZW50aXRsZW1lbnRzLnNoICovLAogCQkJ
KTsKIAkJCXBhdGggPSBtYWM7CkBAIC0yMjUwLDYgKzIyNTcsOCBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0
c2NhcGVQbHVnaW5NYWMubW0gKi8sCisJCQkJRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oICovLAorCQkJCUUxN0JGOTk3MTREMEFBODMwMEE1QTA2
OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gKi8sCiAJCQkJMUEyRDkyMjAxMjgxREMx
QjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7
CkBAIC0zNjk1LDYgKzM3MDQsNyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJRTE3QkY5
OUExNEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC00MTM3
LDYgKzQxNDcsNyBAQAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJFNkU4RTExNDE5NzE1MDBBNjNCMUUgLyogV29y
a1F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0MkU4NzE0QkJCQkIyMDA0MjcyRjcgLyog
S2V5Y2hhaW5TaGltUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxN0JGOTk2MTRE
MEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRTA5Mzc4MTRGQjEyOEMwMDExMzhEOSAvKiBSZW1vdGVMYXllckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CkBAIC00MzAwLDYgKzQzMTEsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJ
CQlFMTdCRjk5QTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiIGluIFJlc291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ4NzQsNiArNDg4Niw3IEBACiAJCQkJQkM4Njk5QjYxMTZBQURBQTAwMkE5MjVCIC8qIFdL
Vmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMkU2RThEMTE0MTk3MTUwMEE2M0IxRSAvKiBX
b3JrUXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJB
IC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTdCRjk5ODE0RDBBQTgz
MDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNFMDkzNzcxNEZCMTI4QzAwMTEzOEQ5IC8qIFJlbW90ZUxheWVyQ2xpZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAJKHJldmlzaW9u
IDEwOTAxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdp
bi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJOZXRzY2FwZVNh
bmRib3hGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CkBAIC00MTEsNiArNDEyLDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFdL
TlZFeHBlY3RzTm9ucmV0YQogLy8gV2hldGhlciBwbHVnLWluIGNvZGUgaXMgYWxsb3dlZCB0byBl
bnRlciAoYXJiaXRyYXJ5KSBzYW5kYm94IGZvciB0aGUgcHJvY2Vzcy4KIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBXS05WQWxsb3dlZFRvRW50ZXJTYW5kYm94ID0gNzQ2NTg7CiAKKy8vIFdLTlZTYW5k
Ym94RnVuY3Rpb25zID0gNzQ2NTkgaXMgZGVmaW5lZCBpbiBOZXRzY2FwZVNhbmRib3hGdW5jdGlv
bnMuaAorCiAvLyBUaGUgQ29yZSBBbmltYXRpb24gcmVuZGVyIHNlcnZlciBwb3J0Lgogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFdLTlZDQUxheWVyUmVuZGVyU2VydmVyUG9ydCA9IDcxODc5OwogCkBA
IC01MDIsNiArNTA1LDE0IEBAIHN0YXRpYyBOUEVycm9yIE5QTl9HZXRWYWx1ZShOUFAgbnBwLCBO
UE4KICAgICAgICAgICAgICooTlBCb29sKil2YWx1ZSA9IHRydWU7CiAgICAgICAgICAgICBicmVh
azsKIAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICAgICAgY2FzZSBXS05WU2FuZGJveEZ1bmN0aW9uczoK
KyAgICAgICAgeworICAgICAgICAgICAgKihXS05TYW5kYm94RnVuY3Rpb25zICoqKXZhbHVlID0g
bmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorI2VuZGlmCisKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCiAgICAgICAgIGNhc2UgTlBOVnN1
cHBvcnRzUXVpY2tEcmF3Qm9vbDoKICAgICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgdGhl
IFF1aWNrRHJhdyBkcmF3aW5nIG1vZGVsLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0
c2NhcGVTYW5kYm94RnVuY3Rpb25zX2gKKyNkZWZpbmUgTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25z
X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvbnBhcGkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorICAgIAorI2RlZmluZSBXS05WU2FuZGJveEZ1bmN0aW9ucyA3
NDY1OQorI2RlZmluZSBXS05WU2FuZGJveEZ1bmN0aW9uc1ZlcnNpb25DdXJyZW50IDEKKwordHlw
ZWRlZiBOUEVycm9yICgqV0tOX0VudGVyU2FuZGJveFByb2NQdHIpKGNvbnN0IGNoYXIgKnJlYWRP
bmx5UGF0aHNbXSwgY29uc3QgY2hhciAqcmVhZFdyaXRlUGF0aHNbXSk7Cit0eXBlZGVmIE5QRXJy
b3IgKCpXS05fRmlsZVN0b3BBY2Nlc3NpbmdQcm9jUHRyKShjb25zdCBjaGFyKiBwYXRoKTsKKwor
TlBFcnJvciBXS05fRW50ZXJTYW5kYm94KGNvbnN0IGNoYXIgKnJlYWRPbmx5UGF0aHNbXSwgY29u
c3QgY2hhciAqcmVhZFdyaXRlUGF0aHNbXSk7CitOUEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2lu
Zyhjb25zdCBjaGFyKiBwYXRoKTsKKwordHlwZWRlZiBzdHJ1Y3QgX1dLTlNhbmRib3hGdW5jdGlv
bnMgeworICAgIHVpbnQxNl90IHNpemU7CisgICAgdWludDE2X3QgdmVyc2lvbjsKKyAgICAKKyAg
ICBXS05fRW50ZXJTYW5kYm94UHJvY1B0ciBlbnRlclNhbmRib3g7CisgICAgV0tOX0ZpbGVTdG9w
QWNjZXNzaW5nUHJvY1B0ciBmaWxlU3RvcEFjY2Vzc2luZzsKK30gV0tOU2FuZGJveEZ1bmN0aW9u
czsKKworV0tOU2FuZGJveEZ1bmN0aW9ucyogbmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVNhbmRib3hGdW5jdGlvbnMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hG
dW5jdGlvbnMubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIk5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIgorCisjaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorCisj
aW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0
TGlua2luZy5oPgorI2ltcG9ydCA8c3lzL3N0YXQuaD4KKyNpbXBvcnQgPHN5c2V4aXRzLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29yZVNlcnZpY2Vz
KQorU09GVF9MSU5LX09QVElPTkFMKENvcmVTZXJ2aWNlcywgQ0ZVUkxTdG9wQWNjZXNzaW5nU2Vj
dXJpdHlTY29wZWRSZXNvdXJjZSwgdm9pZCwgdW51c2VkLCAoQ0ZVUkxSZWYpKQorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dLTlNhbmRib3hG
dW5jdGlvbnMqIG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpCit7CisgICAgc3RhdGljIFdLTlNh
bmRib3hGdW5jdGlvbnMgZnVuY3Rpb25zID0geworICAgICAgICBzaXplb2YoV0tOU2FuZGJveEZ1
bmN0aW9ucyksCisgICAgICAgIFdLTlZTYW5kYm94RnVuY3Rpb25zVmVyc2lvbkN1cnJlbnQsCisg
ICAgICAgIFdLTl9FbnRlclNhbmRib3gsCisgICAgICAgIFdLTl9GaWxlU3RvcEFjY2Vzc2luZwor
ICAgIH07CisgICAgcmV0dXJuICZmdW5jdGlvbnM7Cit9CisKK3N0YXRpYyBib29sIGVudGVyZWRT
YW5kYm94OworCitzdGF0aWMgQ1N0cmluZyByZWFkU2FuZGJveFByb2ZpbGUoKQoreworICAgIFJl
dGFpblB0cjxDRlVSTFJlZj4gcHJvZmlsZVVSTChBZG9wdENGLCBDRkJ1bmRsZUNvcHlSZXNvdXJj
ZVVSTChDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSwgQ0ZTVFIoInBsdWdpbiIpLCBDRlNUUigic2Ii
KSwgMCkpOworICAgIGNoYXIgcHJvZmlsZVBhdGhbUEFUSF9NQVhdOworICAgIGlmICghQ0ZVUkxH
ZXRGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZVVSTC5nZXQoKSwgZmFsc2UsIHJlaW50
ZXJwcmV0X2Nhc3Q8VUludDgqPihwcm9maWxlUGF0aCksIHNpemVvZihwcm9maWxlUGF0aCkpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdldCBmaWxlIHN5c3RlbSByZXBy
ZXNlbnRhdGlvbiBvZiBwbHVnLWluIHNhbmRib3ggVVJMXG4iKTsKKyAgICAgICAgcmV0dXJuIENT
dHJpbmcoKTsKKyAgICB9CisKKyAgICBGSUxFICpmaWxlID0gZm9wZW4ocHJvZmlsZVBhdGgsICJy
Iik7CisgICAgaWYgKCFmaWxlKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90
IG9wZW4gcGx1Zy1pbiBzYW5kYm94IGZpbGUgJyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAg
ICByZXR1cm4gQ1N0cmluZygpOworICAgIH0KKworICAgIHN0cnVjdCBzdGF0IGZpbGVJbmZvOwor
ICAgIGlmIChzdGF0KHByb2ZpbGVQYXRoLCAmZmlsZUluZm8pKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiQ291bGQgbm90IGdldCBwbHVnLWluIHNhbmRib3ggZmlsZSBzaXplICclcydcbiIs
IHByb2ZpbGVQYXRoKTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICB9CisKKyAgICBj
aGFyKiBjaGFyYWN0ZXJCdWZmZXI7CisgICAgQ1N0cmluZyByZXN1bHQgPSBDU3RyaW5nOjpuZXdV
bmluaXRpYWxpemVkKGZpbGVJbmZvLnN0X3NpemUsIGNoYXJhY3RlckJ1ZmZlcik7CisKKyAgICBp
ZiAoMSAhPSBmcmVhZChjaGFyYWN0ZXJCdWZmZXIsIGZpbGVJbmZvLnN0X3NpemUsIDEsIGZpbGUp
KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHJlYWQgcGx1Zy1pbiBzYW5k
Ym94IGZpbGUgJyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAgICByZXR1cm4gQ1N0cmluZygp
OworICAgIH0KKworICAgIGZjbG9zZShmaWxlKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K05QRXJyb3IgV0tOX0VudGVyU2FuZGJveChjb25zdCBjaGFyKiByZWFkT25seVBhdGhzW10sIGNv
bnN0IGNoYXIqIHJlYWRXcml0ZVBhdGhzW10pCit7CisgICAgaWYgKGVudGVyZWRTYW5kYm94KQor
ICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKworICAgIENTdHJpbmcgcHJvZmls
ZSA9IHJlYWRTYW5kYm94UHJvZmlsZSgpOworICAgIGlmIChwcm9maWxlLmlzTnVsbCgpKQorICAg
ICAgICBleGl0KEVYX05PUEVSTSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVuZGVk
UmVhZE9ubHlQYXRoczsKKyAgICBpZiAocmVhZE9ubHlQYXRocykgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyByZWFkT25seVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBleHRlbmRl
ZFJlYWRPbmx5UGF0aHMuYXBwZW5kKHJlYWRPbmx5UGF0aHNbaV0pOworICAgIH0KKworICAgIENT
dHJpbmcgcGx1Z2luTW9kdWxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihQbHVnaW5Q
cm9jZXNzOjpzaGFyZWQoKS5wbHVnaW5QYXRoKCkpOworICAgIGV4dGVuZGVkUmVhZE9ubHlQYXRo
cy5hcHBlbmQocGx1Z2luTW9kdWxlUGF0aC5kYXRhKCkpOworCisgICAgLy8gT24tZGlzayBXZWJL
aXQgZnJhbWV3b3JrIGxvY2F0aW9ucywgdG8gYWNjb3VudCBmb3IgZGVidWcgaW5zdGFsbGF0aW9u
cy4KKyAgICAvLyBBbGxvd2luZyB0aGUgd2hvbGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgV2ViS2l0
Mi5mcmFtZXdvcmsgZm9yIHRoZSBzYWtlIG9mIEFQSXMgdGhhdCBpbXBsaWNpdGx5IGxvYWQgb3Ro
ZXIgV2ViS2l0IGZyYW1ld29ya3MuCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBsb2FkIHRoZW0g
bm93LCBhbmQgdGh1cyBkb24ndCBoYXZlIGFueSBiZXR0ZXIgaWRlYSBvZiB3aGVyZSB0aGV5IGFy
ZSBsb2NhdGVkIG9uIGRpc2suCisgICAgZXh0ZW5kZWRSZWFkT25seVBhdGhzLmFwcGVuZChbW1tb
W05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYktpdDIiXSBidW5k
bGVVUkxdIFVSTEJ5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gcGF0aF0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRPbmx5UGF0aHMuYXBwZW5kKHN0YXRp
Y19jYXN0PGNvbnN0IGNoYXIqPigwKSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVu
ZGVkUmVhZFdyaXRlUGF0aHM7CisgICAgaWYgKHJlYWRXcml0ZVBhdGhzKSB7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IHJlYWRXcml0ZVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBl
eHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFwcGVuZChyZWFkV3JpdGVQYXRoc1tpXSk7CisgICAgfQor
CisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xMDc4NTQ1Nz4gVXNlIGEgY3VzdG9tIHRl
bXBvcmFyeSBkaXJlY3RvcnkuCisgICAgY2hhciBkYXJ3aW5Vc2VyVGVtcERpcmVjdG9yeVtQQVRI
X01BWF07CisgICAgaWYgKGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCBkYXJ3aW5V
c2VyVGVtcERpcmVjdG9yeSwgUEFUSF9NQVgpID4gMCkKKyAgICAgICAgZXh0ZW5kZWRSZWFkV3Jp
dGVQYXRocy5hcHBlbmQoZGFyd2luVXNlclRlbXBEaXJlY3RvcnkpOworCisgICAgLy8gRklYTUU6
IDxyZGFyOi8vcHJvYmxlbS8xMDc5MjA0Nz4gVXNlIGEgY3VzdG9tIGNhY2hlIGRpcmVjdG9yeS4K
KyAgICBjaGFyIGRhcndpblVzZXJDYWNoZURpcmVjdG9yeVtQQVRIX01BWF07CisgICAgc2l6ZV90
IGRhcndpblVzZXJDYWNoZVBhdGhTaXplID0gY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfQ0FDSEVf
RElSLCBkYXJ3aW5Vc2VyQ2FjaGVEaXJlY3RvcnksIFBBVEhfTUFYKTsKKyAgICBpZiAoZGFyd2lu
VXNlckNhY2hlUGF0aFNpemUgPiAwKQorICAgICAgICBleHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFw
cGVuZChkYXJ3aW5Vc2VyQ2FjaGVEaXJlY3RvcnkpOworCisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjYWNoZVBhdGgoQWRvcHRDRiwgV0tDb3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KCkp
OworICAgIGV4dGVuZGVkUmVhZFdyaXRlUGF0aHMuYXBwZW5kKFsoTlNTdHJpbmcgKiljYWNoZVBh
dGguZ2V0KCkgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRX
cml0ZVBhdGhzLmFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oMCkpOworCisgICAgY2hh
ciogaG9tZURpcmVjdG9yeSA9IHJlYWxwYXRoKFtOU0hvbWVEaXJlY3RvcnkoKSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb25dLCAwKTsKKyAgICBpZiAoIWhvbWVEaXJlY3RvcnkpCisgICAgICAgIGV4
aXQoRVhfTk9QRVJNKTsKKyAgICBjb25zdCBjaGFyKiBzYW5kYm94UGFyYW1ldGVyc1tdID0geyAi
SE9NRV9ESVIiLCBob21lRGlyZWN0b3J5LCAwLCAwIH07CisKKyAgICBpZiAoIVdLRW50ZXJQbHVn
aW5TYW5kYm94KHByb2ZpbGUuZGF0YSgpLCBzYW5kYm94UGFyYW1ldGVycywgZXh0ZW5kZWRSZWFk
T25seVBhdGhzLmRhdGEoKSwgZXh0ZW5kZWRSZWFkV3JpdGVQYXRocy5kYXRhKCkpKSB7CisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGRuJ3QgaW5pdGlhbGl6ZSBzYW5kYm94IHByb2ZpbGVc
biIpOworICAgICAgICBleGl0KEVYX05PUEVSTSk7CisgICAgfQorCisgICAgaWYgKG5vRXJyICE9
IFdLRW5hYmxlU2FuZGJveFN0eWxlRmlsZVF1YXJhbnRpbmUoKSkgeworICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIkNvdWxkbid0IGVuYWJsZSBmaWxlIHF1YXJhbnRpbmVcbiIpOworICAgICAgICBl
eGl0KEVYX05PUEVSTSk7CisgICAgfQorCisgICAgZnJlZShob21lRGlyZWN0b3J5KTsKKyAgICBl
bnRlcmVkU2FuZGJveCA9IHRydWU7CisgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworfQorCitO
UEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2luZyhjb25zdCBjaGFyKiBwYXRoKQoreworICAgIGlm
ICghZW50ZXJlZFNhbmRib3gpCisgICAgICAgIHJldHVybiBOUEVSUl9HRU5FUklDX0VSUk9SOwor
CisgICAgaWYgKCFDRlVSTFN0b3BBY2Nlc3NpbmdTZWN1cml0eVNjb3BlZFJlc291cmNlUHRyKCkp
CisgICAgICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKKworICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gdXJsU3RyaW5nKEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbigwLCBwYXRoKSk7CisgICAgaWYgKCF1cmxTdHJpbmcpCisgICAgICAgIHJldHVy
biBOUEVSUl9JTlZBTElEX1BBUkFNOworICAgIFJldGFpblB0cjxDRlVSTFJlZj4gdXJsKEFkb3B0
Q0YsIENGVVJMQ3JlYXRlV2l0aEZpbGVTeXN0ZW1QYXRoKDAsIHVybFN0cmluZy5nZXQoKSwga0NG
VVJMUE9TSVhQYXRoU3R5bGUsIGZhbHNlKSk7CisKKyAgICBDRlVSTFN0b3BBY2Nlc3NpbmdTZWN1
cml0eVNjb3BlZFJlc291cmNlUHRyKCkodXJsLmdldCgpKTsKKworICAgIHJldHVybiBOUEVSUl9O
T19FUlJPUjsKK30KKworI2VuZGlmCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9u
cy5tbQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129141</attachid>
            <date>2012-02-27 17:12:52 -0800</date>
            <delta_ts>2012-02-28 12:48:57 -0800</delta_ts>
            <desc>style fix, and added a comment</desc>
            <filename>NPAPISandboxOpenSource.txt</filename>
            <type>text/plain</type>
            <size>28094</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTAzMCkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEFkZCBhbiBleHBl
cmltZW50YWwgU1BJIGZvciBwbHVnLWlucyB0byBlbnRlciBzYW5kYm94CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmg6IChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsdWdpblBhdGgpOiBFeHBvc2VkIHBs
dWdpbiBwYXRoLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvcGx1Z2luLnNiOiBBZGRl
ZC4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkZWQg
bmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNj
YXBlQnJvd3NlckZ1bmNzLmNwcDogKFdlYktpdDo6TlBOX0dldFZhbHVlKTogRXhwb3NlZAorICAg
ICAgICBhIGZ1bmN0aW9uIHRvIGFjY2VzcyBzYW5kYm94aW5nIGZ1bmN0aW9ucyB3aGVuIGF2YWls
YWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2Nh
cGVTYW5kYm94RnVuY3Rpb25zLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tOiBBZGRlZC4KKwogMjAx
Mi0wMi0yNyAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFdl
YktpdDI6IGltcGxlbWVudCBwbGF0Zm9ybSBzdHJhdGVneSB0byBhY2Nlc3MgUGFzdGVib2FyZCBp
biB0aGUgVUkgcHJvY2Vzcy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3Mv
UGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiAxMDkwMTApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIsNiArNTIsOCBA
QCBwdWJsaWM6CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0c2NhcGVQbHVnaW5Nb2R1
bGUoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
cGx1Z2luUGF0aDsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaW5pdGlhbGl6ZVNo
aW0oKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvcGx1Z2luLnNi
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL3BsdWdpbi5z
YgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL3BsdWdp
bi5zYgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOTEgQEAKKyh2ZXJzaW9uIDEpCisoZGVueSBk
ZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlvbikpCisoYWxsb3cgaXBjLXBvc2l4LXNo
bSBzeXN0ZW0tYXVkaXQgc3lzdGVtLXNvY2tldCBmaWxlLXJlYWQtbWV0YWRhdGEpCisKKyhpbXBv
cnQgInN5c3RlbS5zYiIpCisKKzs7IFV0aWxpdHkgZnVuY3Rpb25zIGZvciBob21lIGRpcmVjdG9y
eSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKKyhkZWZpbmUgKGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2
ZS1yZWdleCkKKyAgKHJlZ2V4IChzdHJpbmctYXBwZW5kICJeIiAocmVnZXgtcXVvdGUgKHBhcmFt
ICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4KSkpCisKKyhkZWZpbmUgKGhvbWUtc3Vi
cGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCisgIChzdWJwYXRoIChzdHJpbmctYXBwZW5kIChw
YXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLXN1YnBhdGgpKSkKKworKGRlZmluZSAoaG9t
ZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkKKyAgKGxpdGVyYWwgKHN0cmluZy1hcHBl
bmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkpKQorCis7OyBSZWFk
LW9ubHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKKyhhbGxvdyBmaWxlLXJlYWQqCisgICAgICAgOzsg
QmFzaWMgc3lzdGVtIHBhdGhzCisgICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0ZyYW1ld29ya3Mi
KQorICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvZGIvbWRzIikKKworICAgICAgIDs7IFN5
c3RlbSBhbmQgdXNlciBwcmVmZXJlbmNlcworICAgICAgIChsaXRlcmFsICIvTGlicmFyeS9QcmVm
ZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMucGxpc3QiKQorICAgICAgIChsaXRlcmFsICIvTGli
cmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuQmx1ZXRvb3RoLnBsaXN0IikKKyAgICAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLlF1aWNrVGltZS5wbGlzdCIpCisg
ICAgICAgKHJlZ2V4ICMiXi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLnNlY3VyaXR5
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvLkNGVXNlclRleHRFbmNvZGluZyIpCisgICAgICAg
KGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8iKQorICAgICAgIChob21lLXN1YnBhdGggIi9M
aWJyYXJ5L0NvbG9yUGlja2VycyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQ29s
b3JTeW5jIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9Db21wb25lbnRzIikKKyAg
ICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9JbnB1dCBNZXRob2RzIikKKyAgICAgICAoaG9t
ZS1zdWJwYXRoICIvTGlicmFyeS9LZXlCaW5kaW5ncyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAi
L0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJh
cnkvRm9udHMiKQorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L1BERiBTZXJ2aWNlcyIp
CisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZl
cmVuY2VzLnBsaXN0IikKKyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJyYXJ5L1ByZWZlcmVuY2Vz
L0J5SG9zdC9cLkdsb2JhbFByZWZlcmVuY2VzXC4iKQorICAgICAgIChob21lLXJlZ2V4ICMiL0xp
YnJhcnkvUHJlZmVyZW5jZXMvQnlIb3N0L2NvbVwuYXBwbGVcLkJsdWV0b290aFwuIikKKyAgICAg
ICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuQVRTLnBsaXN0
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUu
ZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5tb3VzZS5wbGlzdCIpCisgICAgICAgKGhv
bWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmRyaXZlci5BcHBsZUJs
dWV0b290aE11bHRpdG91Y2gudHJhY2twYWQucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5kcml2ZXIuQXBwbGVISURNb3VzZS5wbGlz
dCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxl
LmlucHV0bWV0aG9ka2l0LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9Q
cmVmZXJlbmNlcy9jb20uYXBwbGUuaVdvcmsuUGFnZXMucGxpc3QiKQorICAgICAgIChob21lLWxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5wbGlz
dCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxl
Lk11bHRpdG91Y2hTdXBwb3J0LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFy
eS9QcmVmZXJlbmNlcy9jb20uYXBwbGUub3BlbmdsLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRl
cmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc2VjdXJpdHkucGxpc3QiKQorICAg
ICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0
eV9jb21tb24ucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVu
Y2VzL2NvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMucGxpc3QiKQorICAgICAgIChob21lLWxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zcGVlY2guc3ludGhlc2lzLmdl
bmVyYWwucHJlZnMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZl
cmVuY2VzL2NvbS5hcHBsZS5zeXN0ZW1zb3VuZC5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJh
bCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLnVuaXZlcnNhbGFjY2Vzcy5wbGlzdCIp
CisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLldl
YkZvdW5kYXRpb24ucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZl
cmVuY2VzL2NvbS5udmlkaWEuT3BlbkdMLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIv
TGlicmFyeS9QcmVmZXJlbmNlcy9wYnMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TZXJ2aWNlc01lbnUuU2VydmljZXMucGxpc3Qi
KQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL1F1aWNrVGltZSBQ
cmVmZXJlbmNlcyIpCisKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMvY29t
LmFwcGxlLmNvcmVhdWRpby5jb21wb25lbnRzLnBsaXN0IikKKworICAgICAgIChzdWJwYXRoICIv
TGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRzIikKKyAgICAgICAoaG9tZS1zdWJwYXRo
ICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRzIikKKyAgICAgICAoc3VicGF0aCAi
L0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvSEFMIikKKyAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkv
UXVpY2tUaW1lIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9RdWlja1RpbWUiKQor
ICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9WaWRlby9QbHVnLUlucyIpCisKKyAgICAgICAobGl0
ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9DcmFzaFJlcG9ydGVyL1N1Ym1pdERp
YWdJbmZvLmRvbWFpbnMiKQorCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGlj
YXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMvTG9jYWwvQ2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5h
cHBsZS5LZXljaGFpbiIpCisKKyAgICAgICA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMDQ3OTY4NT4gaXMgZml4ZWQuCisgICAgICAgKHN1YnBh
dGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCispCisKKzs7IFJlYWQtd3JpdGUgcHJlZmVyZW5jZXMg
YW5kIGRhdGEKKyhhbGxvdyBmaWxlKgorICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJl
ZmVyZW5jZXMvY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnBsaXN0IikKKworICAgICAg
IChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0NhY2hlcy9RdWlja1RpbWUiKQorCisgICAgICAgOzsg
RklYTUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vMTA0Nzk2
ODU+IGlzIGZpeGVkLgorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIp
KQorCis7OyBJT0tpdCB1c2VyIGNsaWVudHMKKyhhbGxvdyBpb2tpdC1vcGVuCisgICAgICAgKGlv
a2l0LWNvbm5lY3Rpb24gIklPQWNjZWxlcmF0b3IiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVu
dC1jbGFzcyAiQUdQTUNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJB
cHBsZUdyYXBoaWNzQ29udHJvbENsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNs
YXNzICJBcHBsZVNOQkZCVXNlckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNs
YXNzICJJT0FjY2VsZXJhdGlvblVzZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVu
dC1jbGFzcyAiSU9BdWRpb0NvbnRyb2xVc2VyQ2xpZW50IikKKyAgICAgICAoaW9raXQtdXNlci1j
bGllbnQtY2xhc3MgIklPQXVkaW9FbmdpbmVVc2VyQ2xpZW50IikKKyAgICAgICAoaW9raXQtdXNl
ci1jbGllbnQtY2xhc3MgIklPRnJhbWVidWZmZXJTaGFyZWRVc2VyQ2xpZW50IikKKyAgICAgICAo
aW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPSElEUGFyYW1Vc2VyQ2xpZW50IikKKyAgICAgICAo
aW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPU3VyZmFjZVJvb3RVc2VyQ2xpZW50IikKKyAgICAg
ICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPU3VyZmFjZVNlbmRSaWdodCIpCisgICAgICAg
KGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJSb290RG9tYWluVXNlckNsaWVudCIpKQorCis7OyBW
YXJpb3VzIHNlcnZpY2VzIHJlcXVpcmVkIGJ5IEFwcEtpdCBhbmQgb3RoZXIgZnJhbWV3b3Jrcwor
KGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuQ29yZVNl
cnZpY2VzLmNvcmVzZXJ2aWNlc2QiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkRp
c2tBcmJpdHJhdGlvbi5kaXNrYXJiaXRyYXRpb25kIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5GaWxlQ29vcmRpbmF0aW9uIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5Gb250T2JqZWN0c1NlcnZlciIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRm9u
dFNlcnZlciIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuSW1hZ2VDYXB0dXJlRXh0
ZW5zaW9uMi5wcmVzZW5jZSIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuU2VjdXJp
dHlTZXJ2ZXIiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlN5c3RlbUNvbmZpZ3Vy
YXRpb24uY29uZmlnZCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuYXVkaW8uVkRD
QXNzaXN0YW50IikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5hdWRpb2hh
bGQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLmNvcmVhdWRpb2QiKQor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNtaW8uVkRDQXNzaXN0YW50IikKKyAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jb29raWVkIikgOzsgRklYTUU6IDxyZGFyOi8vcHJv
YmxlbS8xMDc5MDc2OD4gTGltaXQgYWNjZXNzIHRvIGNvb2tpZXMuCisgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuY3Ztc1NlcnYiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxl
Lm9jc3BkIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wYXN0ZWJvYXJkLjEiKQor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndpbmRvd19wcm94aWVzIikKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS53aW5kb3dzZXJ2ZXIuYWN0aXZlIikKKyAgICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5jZm5ldHdvcmsuQXV0aEJyb2tlckFnZW50IikKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Qb3dlck1hbmFnZW1lbnQuY29udHJvbCIpCisgICAgICAg
KGdsb2JhbC1uYW1lLXJlZ2V4ICMiX09wZW5TdGVwJCIpCispCisKKzs7IE5ldHdvcmtpbmcKKyhh
bGxvdyBzeXN0ZW0tc29ja2V0IChzb2NrZXQtZG9tYWluIEFGX1JPVVRFKSkKKyhhbGxvdyBzeXN0
ZW0tc29ja2V0IChyZXF1aXJlLWFsbCAoc29ja2V0LWRvbWFpbiBBRl9TWVNURU0pIChzb2NrZXQt
cHJvdG9jb2wgMikpKSA7IFNZU1BST1RPX0NPTlRST0wKKyhhbGxvdyBuZXR3b3JrLW91dGJvdW5k
CisgICAgICAgOzsgS2VybmVsIGNvbnRyb2xzCisgICAgICAgKGNvbnRyb2wtbmFtZSAiY29tLmFw
cGxlLm5ldHdvcmsuc3RhdGlzdGljcyIpCisgICAgICAgKGNvbnRyb2wtbmFtZSAiY29tLmFwcGxl
Lm5ldHNyYyIpCisKKyAgICAgICA7OyBMb2NhbCBtRE5TUmVzcG9uZGVyIGZvciBETlMsIGFyYml0
cmFyeSBvdXRib3VuZCBUQ1AKKyAgICAgICAobGl0ZXJhbCAiL3ByaXZhdGUvdmFyL3J1bi9tRE5T
UmVzcG9uZGVyIikKKyAgICAgICAocmVtb3RlIHRjcCkpCisKKyhhbGxvdyBtYWNoLWxvb2t1cAor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnRzbS51aXNlcnZlciIpCisgICAgICAgKGxv
Y2FsLW5hbWUgImNvbS5hcHBsZS50c20ucG9ydG5hbWUiKQorKQorCis7OyBPcGVuIGFuZCBTYXZl
IHBhbmVscworKGRlZmluZSAoYXBwbHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBhdGgt
ZmlsdGVyKQorICAgICAgIChvcCBmaWxlLXJlYWQqIHBhdGgtZmlsdGVyKQorICAgICAgIChvcCBm
aWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29tLmFw
cGxlLmFwcC1zYW5kYm94LnJlYWQiKSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAoYXBwbHktd3Jp
dGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKKyAgICAgICAob3AgZmlsZS13
cml0ZSogcGF0aC1maWx0ZXIpCisgICAgICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1
aXJlLWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0
ZSIpIHBhdGgtZmlsdGVyKSkpCisoZGVmaW5lIChyZWFkLXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNp
b25zIHBhdGgtZmlsdGVyKQorICAgICAgIChhcHBseS1yZWFkLWFuZC1pc3N1ZS1leHRlbnNpb24g
YWxsb3cgcGF0aC1maWx0ZXIpCisgICAgICAgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNp
b24gYWxsb3cgcGF0aC1maWx0ZXIpKQorKGFsbG93IHF0bi11c2VyCisgICAgICAgKGV4dGVuc2lv
biAiY29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKyhyZWFkLXdyaXRlLWFuZC1p
c3N1ZS1leHRlbnNpb25zIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdy
aXRlIikpCisKKzs7IFByaW50aW5nCisoYWxsb3cgbmV0d29yay1vdXRib3VuZCAobGl0ZXJhbCAi
L3ByaXZhdGUvdmFyL3J1bi9jdXBzZCIpKQorKGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGds
b2JhbC1uYW1lICJjb20uYXBwbGUucHJpbnR1aXRvb2wuYWdlbnQiKQorICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLnByaW50dG9vbC5hZ2VudCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUucHJpbnR0b29sLmRhZW1vbiIpKQorKGFsbG93IGZpbGUtcmVhZCoKKyAgICAgICAo
aG9tZS1saXRlcmFsICIvLmN1cHMvbHBvcHRpb25zIikKKyAgICAgICAoaG9tZS1saXRlcmFsICIv
LmN1cHMvY2xpZW50LmNvbmYiKQorICAgICAgIChsaXRlcmFsICIvcHJpdmF0ZS9ldGMvY3Vwcy9j
bGllbnQuY29uZiIpCisgICAgICAgKGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9jdXBzL2xwb3B0aW9u
cyIpCisgICAgICAgKHN1YnBhdGggIi9wcml2YXRlL2V0Yy9jdXBzL3BwZCIpCisgICAgICAgKHN1
YnBhdGggIi9wcml2YXRlL3Zhci9ydW4vY3Vwc2QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9M
aWJyYXJ5L1ByZWZlcmVuY2VzL29yZy5jdXBzLlByaW50aW5nUHJlZnMucGxpc3QiKSkKKworOzsg
VGV4dCBTZXJ2aWNlcyBNYW5hZ2VyCisoYWxsb3cgaW9raXQtc2V0LXByb3BlcnRpZXMgKGlva2l0
LXByb3BlcnR5ICJDYXBzTG9ja0RlbGF5T3ZlcnJpZGUiKSkKKworOzsgSW1hZ2UgQ2FwdHVyZSAo
dXNlZCBieSBwcmludCBwcmV2aWV3IGRpYWxvZykKKyhhbGxvdyBhcHBsZWV2ZW50LXNlbmQgKGFw
cGxlZXZlbnQtZGVzdGluYXRpb24gImNvbS5hcHBsZS5pbWFnZWNhcHR1cmVleHRlbnNpb24yIikp
CisKKzs7IFNpbGVudGx5IGJsb2NrIGFjY2VzcyB0byBzb21lIGZpbGVzCisoZGVueSBmaWxlLXJl
YWQqIGZpbGUtd3JpdGUqICh3aXRoIG5vLWxvZykKKyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLmludGVybmV0Y29uZmlncHJpdlwucGxpc3QiKQor
ICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tXC5hcHBsZVwuaW50
ZXJuZXRjb25maWdcLnBsaXN0IikKKworICAgICAgIDs7IEZJWE1FOiBTaG91bGQgYmUgcmVtb3Zl
ZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vOTQyMjk1Nz4gaXMgZml4ZWQuCisgICAgICAgKGhvbWUt
bGl0ZXJhbCAiL0xpYnJhcnkvQ2FjaGVzL0NhY2hlLmRiIikKKworICAgICAgIDs7IEZJWE1FOiBT
aG91bGQgYmUgcmVtb3ZlZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vMTA0NjM4ODE+IGlzIGZpeGVk
LgorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5M
YXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5lRXZlbnRzVjIiKQorICAgICAgIChob21lLWxpdGVyYWwg
Ii9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5MYXVuY2hTZXJ2aWNlcy5RdWFyYW50aW5l
RXZlbnRzVjItam91cm5hbCIpKQorCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViS2l0
Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxMDkwMTApCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkK
QEAgLTg4Niw2ICs4ODYsOSBAQAogCQlFMTM0RjAxQTEyRUE1RDk5MDA0RUM1OEQgLyogV0tQcmlu
dGluZ1ZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTM0RjAxOTEyRUE1RDk5MDA0RUM1OEQgLyogV0tQcmludGluZ1ZpZXcubW0gKi87IH07CiAJ
CUUxNzlGRDlDMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3OUZEOUIxMzREMzgwNjAw
MTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi87IH07CiAJCUUxNzlGRDlGMTM0RDM4MjUw
MDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVu
dENvZGVyc01hYy5tbSAqLzsgfTsKKwkJRTE3QkY5OTYxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNj
YXBlU2FuZGJveEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1
bmN0aW9ucy5oICovOyB9OworCQlFMTdCRjk5ODE0RDBBQTgzMDBBNUEwNjkgLyogTmV0c2NhcGVT
YW5kYm94RnVuY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE3QkY5OTcxNEQwQUE4MzAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0
aW9ucy5tbSAqLzsgfTsKKwkJRTE3QkY5OUExNEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3QkY5OTkx
NEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiAqLzsgfTsKIAkJRTE4QzkyRjQxMkRCOUU3MTAw
Q0YyQUVCIC8qIFByaW50SW5mby5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAq
LzsgfTsKIAkJRTE5OTg3NUUxNDJDMDQ1NDAwQkIyREU3IC8qIEJ1aWx0SW5QREZWaWV3LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOTk4NzVDMTQy
QkZDOTcwMEJCMkRFNyAvKiBCdWlsdEluUERGVmlldy5jcHAgKi87IH07CiAJCUUxQTMxNzMyMTM0
Q0VBNkMwMDdDOUE0RiAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUEzMTczMTEzNENFQTZDMDA3QzlBNEYgLyogQXR0
cmlidXRlZFN0cmluZy5oICovOyB9OwpAQCAtMTkzMiw2ICsxOTM1LDkgQEAKIAkJRTE0RTk5Rjkx
NEQ4NzlDOTAwMUQyMjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2ggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnNjcmlwdC5zaDsgcGF0aCA9ICJh
ZGQtZW50aXRsZW1lbnRzLnNoIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZE
OUIxMzREMzgwNjAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEFyZ3VtZW50Q29kZXJzTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNzlGRDlFMTM0RDM4MjUwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEFyZ3VtZW50Q29k
ZXJzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTdCRjk5NTE0RDBBNzNF
MDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTdCRjk5NzE0RDBBQTgzMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
TmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTdCRjk5OTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IHBsdWdpbi5zYjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4QzkyRjMx
MkRCOUU3MTAwQ0YyQUVCIC8qIFByaW50SW5mby5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBQcmludEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMTk5ODc1QTE0MkJGOUI4MDBCQjJERTcgLyogQnVpbHRJblBERlZpZXcuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQnVpbHRJblBERlZpZXcuaDsgcGF0aCA9IFBERi9CdWls
dEluUERGVmlldy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk5ODc1QzE0MkJG
Qzk3MDBCQjJERTcgLyogQnVpbHRJblBERlZpZXcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gQnVpbHRJblBERlZpZXcuY3BwOyBwYXRoID0gUERGL0J1aWx0SW5QREZW
aWV3LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMjMsNiArMjEyOSw3IEBA
CiAJCQkJMUEwRUM4MDIxMjRCRDQxRTAwN0VGNEE1IC8qIFBsdWdpblByb2Nlc3NNYWluTWFjLm1t
ICovLAogCQkJCTFBQzI1Rjg5MTJBNDhFMDMwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5o
ICovLAogCQkJCTFBQzI1RjhBMTJBNDhFMDMwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5t
bSAqLywKKwkJCQlFMTdCRjk5OTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiICovLAogCQkJ
CUUxNEU5OUY5MTREODc5QzkwMDFEMjIxRiAvKiBhZGQtZW50aXRsZW1lbnRzLnNoICovLAogCQkJ
KTsKIAkJCXBhdGggPSBtYWM7CkBAIC0yMjUwLDYgKzIyNTcsOCBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQUU1QjdGOTExRTdBRUQyMDBCQTY3NjcgLyogTmV0
c2NhcGVQbHVnaW5NYWMubW0gKi8sCisJCQkJRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oICovLAorCQkJCUUxN0JGOTk3MTREMEFBODMwMEE1QTA2
OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gKi8sCiAJCQkJMUEyRDkyMjAxMjgxREMx
QjAwMUVCOTYyIC8qIFBsdWdpblByb3h5TWFjLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBtYWM7
CkBAIC0zNjk1LDYgKzM3MDQsNyBAQAogCQkJaXNhID0gUEJYSGVhZGVyc0J1aWxkUGhhc2U7CiAJ
CQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJCQkJRTE3QkY5
OUExNEQwQ0JGMTAwQTVBMDY5IC8qIHBsdWdpbi5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwog
CQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC00MTM3
LDYgKzQxNDcsNyBAQAogCQkJCUJGQTYxNzlGMTJGMEI5OUQwMDMzRTBDQSAvKiBXS1ZpZXdQcml2
YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzJFNkU4RTExNDE5NzE1MDBBNjNCMUUgLyogV29y
a1F1ZXVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUI0MkU4NzE0QkJCQkIyMDA0MjcyRjcgLyog
S2V5Y2hhaW5TaGltUmVzcG9uc2VNYXAuaCBpbiBIZWFkZXJzICovLAorCQkJCUUxN0JGOTk2MTRE
MEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDRTA5Mzc4MTRGQjEyOEMwMDExMzhEOSAvKiBSZW1vdGVMYXllckNsaWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CkBAIC00MzAwLDYgKzQzMTEsNyBAQAogCQkJaXNhID0gUEJYUmVzb3VyY2VzQnVpbGRQ
aGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJ
CQlFMTdCRjk5QTE0RDBDQkYxMDBBNUEwNjkgLyogcGx1Z2luLnNiIGluIFJlc291cmNlcyAqLywK
IAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsK
QEAgLTQ4NzQsNiArNDg4Niw3IEBACiAJCQkJQkM4Njk5QjYxMTZBQURBQTAwMkE5MjVCIC8qIFdL
Vmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMkU2RThEMTE0MTk3MTUwMEE2M0IxRSAvKiBX
b3JrUXVldWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwMDkyRjgxMTU4MzdBMzAwRTBBRTJB
IC8qIFdvcmtRdWV1ZU1hYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlFMTdCRjk5ODE0RDBBQTgz
MDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQkNFMDkzNzcxNEZCMTI4QzAwMTEzOEQ5IC8qIFJlbW90ZUxheWVyQ2xpZW50Lm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVCcm93c2VyRnVuY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAJKHJldmlzaW9u
IDEwOTAxMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJOUFJ1bnRpbWVVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJOZXRzY2FwZVBsdWdp
bi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJOZXRzY2FwZVNh
bmRib3hGdW5jdGlvbnMuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBIZWFkZXJNYXAuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0lkZW50aWZpZXJSZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CkBAIC00MTEsNiArNDEyLDggQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFdL
TlZFeHBlY3RzTm9ucmV0YQogLy8gV2hldGhlciBwbHVnLWluIGNvZGUgaXMgYWxsb3dlZCB0byBl
bnRlciAoYXJiaXRyYXJ5KSBzYW5kYm94IGZvciB0aGUgcHJvY2Vzcy4KIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBXS05WQWxsb3dlZFRvRW50ZXJTYW5kYm94ID0gNzQ2NTg7CiAKKy8vIFdLTlZTYW5k
Ym94RnVuY3Rpb25zID0gNzQ2NTkgaXMgZGVmaW5lZCBpbiBOZXRzY2FwZVNhbmRib3hGdW5jdGlv
bnMuaAorCiAvLyBUaGUgQ29yZSBBbmltYXRpb24gcmVuZGVyIHNlcnZlciBwb3J0Lgogc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFdLTlZDQUxheWVyUmVuZGVyU2VydmVyUG9ydCA9IDcxODc5OwogCkBA
IC01MDIsNiArNTA1LDE0IEBAIHN0YXRpYyBOUEVycm9yIE5QTl9HZXRWYWx1ZShOUFAgbnBwLCBO
UE4KICAgICAgICAgICAgICooTlBCb29sKil2YWx1ZSA9IHRydWU7CiAgICAgICAgICAgICBicmVh
azsKIAorI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZpbmVkKEJVSUxE
SU5HX09OX1NOT1dfTEVPUEFSRCkKKyAgICAgICAgY2FzZSBXS05WU2FuZGJveEZ1bmN0aW9uczoK
KyAgICAgICAgeworICAgICAgICAgICAgKihXS05TYW5kYm94RnVuY3Rpb25zICoqKXZhbHVlID0g
bmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorI2VuZGlmCisKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCiAgICAgICAgIGNhc2UgTlBOVnN1
cHBvcnRzUXVpY2tEcmF3Qm9vbDoKICAgICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgdGhl
IFF1aWNrRHJhdyBkcmF3aW5nIG1vZGVsLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0
c2NhcGVTYW5kYm94RnVuY3Rpb25zX2gKKyNkZWZpbmUgTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25z
X2gKKworI2luY2x1ZGUgPFdlYkNvcmUvbnBhcGkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitl
eHRlcm4gIkMiIHsKKyNlbmRpZgorICAgIAorI2RlZmluZSBXS05WU2FuZGJveEZ1bmN0aW9ucyA3
NDY1OQorI2RlZmluZSBXS05WU2FuZGJveEZ1bmN0aW9uc1ZlcnNpb25DdXJyZW50IDEKKwordHlw
ZWRlZiBOUEVycm9yICgqV0tOX0VudGVyU2FuZGJveFByb2NQdHIpKGNvbnN0IGNoYXIgKnJlYWRP
bmx5UGF0aHNbXSwgY29uc3QgY2hhciAqcmVhZFdyaXRlUGF0aHNbXSk7Cit0eXBlZGVmIE5QRXJy
b3IgKCpXS05fRmlsZVN0b3BBY2Nlc3NpbmdQcm9jUHRyKShjb25zdCBjaGFyKiBwYXRoKTsKKwor
TlBFcnJvciBXS05fRW50ZXJTYW5kYm94KGNvbnN0IGNoYXIgKnJlYWRPbmx5UGF0aHNbXSwgY29u
c3QgY2hhciAqcmVhZFdyaXRlUGF0aHNbXSk7CitOUEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2lu
Zyhjb25zdCBjaGFyKiBwYXRoKTsKKwordHlwZWRlZiBzdHJ1Y3QgX1dLTlNhbmRib3hGdW5jdGlv
bnMgeworICAgIHVpbnQxNl90IHNpemU7CisgICAgdWludDE2X3QgdmVyc2lvbjsKKyAgICAKKyAg
ICBXS05fRW50ZXJTYW5kYm94UHJvY1B0ciBlbnRlclNhbmRib3g7CisgICAgV0tOX0ZpbGVTdG9w
QWNjZXNzaW5nUHJvY1B0ciBmaWxlU3RvcEFjY2Vzc2luZzsKK30gV0tOU2FuZGJveEZ1bmN0aW9u
czsKKworV0tOU2FuZGJveEZ1bmN0aW9ucyogbmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdl
cyBvbjogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRz
Y2FwZVNhbmRib3hGdW5jdGlvbnMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAg
ICsgbmF0aXZlCgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hG
dW5jdGlvbnMubW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIk5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIgorCisjaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorCisj
aW1wb3J0ICJQbHVnaW5Qcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2Uu
aCIKKyNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0
TGlua2luZy5oPgorI2ltcG9ydCA8c3lzL3N0YXQuaD4KKyNpbXBvcnQgPHN5c2V4aXRzLmg+Cisj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29yZVNlcnZpY2Vz
KQorU09GVF9MSU5LX09QVElPTkFMKENvcmVTZXJ2aWNlcywgQ0ZVUkxTdG9wQWNjZXNzaW5nU2Vj
dXJpdHlTY29wZWRSZXNvdXJjZSwgdm9pZCwgdW51c2VkLCAoQ0ZVUkxSZWYpKQorCit1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dLTlNhbmRib3hG
dW5jdGlvbnMqIG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpCit7CisgICAgc3RhdGljIFdLTlNh
bmRib3hGdW5jdGlvbnMgZnVuY3Rpb25zID0geworICAgICAgICBzaXplb2YoV0tOU2FuZGJveEZ1
bmN0aW9ucyksCisgICAgICAgIFdLTlZTYW5kYm94RnVuY3Rpb25zVmVyc2lvbkN1cnJlbnQsCisg
ICAgICAgIFdLTl9FbnRlclNhbmRib3gsCisgICAgICAgIFdLTl9GaWxlU3RvcEFjY2Vzc2luZwor
ICAgIH07CisgICAgcmV0dXJuICZmdW5jdGlvbnM7Cit9CisKK3N0YXRpYyBib29sIGVudGVyZWRT
YW5kYm94OworCitzdGF0aWMgQ1N0cmluZyByZWFkU2FuZGJveFByb2ZpbGUoKQoreworICAgIFJl
dGFpblB0cjxDRlVSTFJlZj4gcHJvZmlsZVVSTChBZG9wdENGLCBDRkJ1bmRsZUNvcHlSZXNvdXJj
ZVVSTChDRkJ1bmRsZUdldE1haW5CdW5kbGUoKSwgQ0ZTVFIoInBsdWdpbiIpLCBDRlNUUigic2Ii
KSwgMCkpOworICAgIGNoYXIgcHJvZmlsZVBhdGhbUEFUSF9NQVhdOworICAgIGlmICghQ0ZVUkxH
ZXRGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZVVSTC5nZXQoKSwgZmFsc2UsIHJlaW50
ZXJwcmV0X2Nhc3Q8VUludDgqPihwcm9maWxlUGF0aCksIHNpemVvZihwcm9maWxlUGF0aCkpKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdldCBmaWxlIHN5c3RlbSByZXBy
ZXNlbnRhdGlvbiBvZiBwbHVnLWluIHNhbmRib3ggVVJMXG4iKTsKKyAgICAgICAgcmV0dXJuIENT
dHJpbmcoKTsKKyAgICB9CisKKyAgICBGSUxFICpmaWxlID0gZm9wZW4ocHJvZmlsZVBhdGgsICJy
Iik7CisgICAgaWYgKCFmaWxlKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90
IG9wZW4gcGx1Zy1pbiBzYW5kYm94IGZpbGUgJyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAg
ICByZXR1cm4gQ1N0cmluZygpOworICAgIH0KKworICAgIHN0cnVjdCBzdGF0IGZpbGVJbmZvOwor
ICAgIGlmIChzdGF0KHByb2ZpbGVQYXRoLCAmZmlsZUluZm8pKSB7CisgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiQ291bGQgbm90IGdldCBwbHVnLWluIHNhbmRib3ggZmlsZSBzaXplICclcydcbiIs
IHByb2ZpbGVQYXRoKTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICB9CisKKyAgICBj
aGFyKiBjaGFyYWN0ZXJCdWZmZXI7CisgICAgQ1N0cmluZyByZXN1bHQgPSBDU3RyaW5nOjpuZXdV
bmluaXRpYWxpemVkKGZpbGVJbmZvLnN0X3NpemUsIGNoYXJhY3RlckJ1ZmZlcik7CisKKyAgICBp
ZiAoMSAhPSBmcmVhZChjaGFyYWN0ZXJCdWZmZXIsIGZpbGVJbmZvLnN0X3NpemUsIDEsIGZpbGUp
KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHJlYWQgcGx1Zy1pbiBzYW5k
Ym94IGZpbGUgJyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAgICByZXR1cm4gQ1N0cmluZygp
OworICAgIH0KKworICAgIGZjbG9zZShmaWxlKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
K05QRXJyb3IgV0tOX0VudGVyU2FuZGJveChjb25zdCBjaGFyKiByZWFkT25seVBhdGhzW10sIGNv
bnN0IGNoYXIqIHJlYWRXcml0ZVBhdGhzW10pCit7CisgICAgaWYgKGVudGVyZWRTYW5kYm94KQor
ICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKworICAgIENTdHJpbmcgcHJvZmls
ZSA9IHJlYWRTYW5kYm94UHJvZmlsZSgpOworICAgIGlmIChwcm9maWxlLmlzTnVsbCgpKQorICAg
ICAgICBleGl0KEVYX05PUEVSTSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVuZGVk
UmVhZE9ubHlQYXRoczsKKyAgICBpZiAocmVhZE9ubHlQYXRocykgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyByZWFkT25seVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBleHRlbmRl
ZFJlYWRPbmx5UGF0aHMuYXBwZW5kKHJlYWRPbmx5UGF0aHNbaV0pOworICAgIH0KKworICAgIENT
dHJpbmcgcGx1Z2luTW9kdWxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihQbHVnaW5Q
cm9jZXNzOjpzaGFyZWQoKS5wbHVnaW5QYXRoKCkpOworICAgIGV4dGVuZGVkUmVhZE9ubHlQYXRo
cy5hcHBlbmQocGx1Z2luTW9kdWxlUGF0aC5kYXRhKCkpOworCisgICAgLy8gT24tZGlzayBXZWJL
aXQgZnJhbWV3b3JrIGxvY2F0aW9ucywgdG8gYWNjb3VudCBmb3IgZGVidWcgaW5zdGFsbGF0aW9u
cy4KKyAgICAvLyBBbGxvd2luZyB0aGUgd2hvbGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgV2ViS2l0
Mi5mcmFtZXdvcmsgZm9yIHRoZSBzYWtlIG9mIEFQSXMgdGhhdCBpbXBsaWNpdGx5IGxvYWQgb3Ro
ZXIgV2ViS2l0IGZyYW1ld29ya3MuCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBsb2FkIHRoZW0g
bm93LCBhbmQgdGh1cyBkb24ndCBoYXZlIGFueSBiZXR0ZXIgaWRlYSBvZiB3aGVyZSB0aGV5IGFy
ZSBsb2NhdGVkIG9uIGRpc2suCisgICAgZXh0ZW5kZWRSZWFkT25seVBhdGhzLmFwcGVuZChbW1tb
W05TQnVuZGxlIGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYktpdDIiXSBidW5k
bGVVUkxdIFVSTEJ5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gcGF0aF0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRPbmx5UGF0aHMuYXBwZW5kKHN0YXRp
Y19jYXN0PGNvbnN0IGNoYXIqPigwKSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVu
ZGVkUmVhZFdyaXRlUGF0aHM7CisgICAgaWYgKHJlYWRXcml0ZVBhdGhzKSB7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IHJlYWRXcml0ZVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBl
eHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFwcGVuZChyZWFkV3JpdGVQYXRoc1tpXSk7CisgICAgfQor
CisgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xMDc4NTQ1Nz4gVXNlIGEgY3VzdG9tIHRl
bXBvcmFyeSBkaXJlY3RvcnkuCisgICAgY2hhciBkYXJ3aW5Vc2VyVGVtcERpcmVjdG9yeVtQQVRI
X01BWF07CisgICAgaWYgKGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCBkYXJ3aW5V
c2VyVGVtcERpcmVjdG9yeSwgUEFUSF9NQVgpID4gMCkKKyAgICAgICAgZXh0ZW5kZWRSZWFkV3Jp
dGVQYXRocy5hcHBlbmQoZGFyd2luVXNlclRlbXBEaXJlY3RvcnkpOworCisgICAgLy8gRklYTUU6
IDxyZGFyOi8vcHJvYmxlbS8xMDc5MjA0Nz4gVXNlIGEgY3VzdG9tIGNhY2hlIGRpcmVjdG9yeS4K
KyAgICBjaGFyIGRhcndpblVzZXJDYWNoZURpcmVjdG9yeVtQQVRIX01BWF07CisgICAgc2l6ZV90
IGRhcndpblVzZXJDYWNoZVBhdGhTaXplID0gY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfQ0FDSEVf
RElSLCBkYXJ3aW5Vc2VyQ2FjaGVEaXJlY3RvcnksIFBBVEhfTUFYKTsKKyAgICBpZiAoZGFyd2lu
VXNlckNhY2hlUGF0aFNpemUgPiAwKQorICAgICAgICBleHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFw
cGVuZChkYXJ3aW5Vc2VyQ2FjaGVEaXJlY3RvcnkpOworCisgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBjYWNoZVBhdGgoQWRvcHRDRiwgV0tDb3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KCkp
OworICAgIGV4dGVuZGVkUmVhZFdyaXRlUGF0aHMuYXBwZW5kKFsoTlNTdHJpbmcgKiljYWNoZVBh
dGguZ2V0KCkgZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRX
cml0ZVBhdGhzLmFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oMCkpOworCisgICAgLy8g
V0tFbnRlclBsdWdpblNhbmRib3ggY2Fub25pY2FsaXplcyBwYXRoIGFycmF5cywgYnV0IG5vdCBw
YXJhbWV0ZXJzIChiZWNhdXNlIGl0IGNhbm5vdCBrbm93IGlmIG9uZSBpcyBhIHBhdGgpLgorICAg
IGNoYXIqIGhvbWVEaXJlY3RvcnkgPSByZWFscGF0aChbTlNIb21lRGlyZWN0b3J5KCkgZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uXSwgMCk7CisgICAgaWYgKCFob21lRGlyZWN0b3J5KQorICAgICAg
ICBleGl0KEVYX05PUEVSTSk7CisgICAgY29uc3QgY2hhciogc2FuZGJveFBhcmFtZXRlcnNbXSA9
IHsgIkhPTUVfRElSIiwgaG9tZURpcmVjdG9yeSwgMCwgMCB9OworCisgICAgaWYgKCFXS0VudGVy
UGx1Z2luU2FuZGJveChwcm9maWxlLmRhdGEoKSwgc2FuZGJveFBhcmFtZXRlcnMsIGV4dGVuZGVk
UmVhZE9ubHlQYXRocy5kYXRhKCksIGV4dGVuZGVkUmVhZFdyaXRlUGF0aHMuZGF0YSgpKSkgewor
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkbid0IGluaXRpYWxpemUgc2FuZGJveCBwcm9m
aWxlXG4iKTsKKyAgICAgICAgZXhpdChFWF9OT1BFUk0pOworICAgIH0KKworICAgIGlmIChub0Vy
ciAhPSBXS0VuYWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkpIHsKKyAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJDb3VsZG4ndCBlbmFibGUgZmlsZSBxdWFyYW50aW5lXG4iKTsKKyAgICAg
ICAgZXhpdChFWF9OT1BFUk0pOworICAgIH0KKworICAgIGZyZWUoaG9tZURpcmVjdG9yeSk7Cisg
ICAgZW50ZXJlZFNhbmRib3ggPSB0cnVlOworICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKK30K
KworTlBFcnJvciBXS05fRmlsZVN0b3BBY2Nlc3NpbmcoY29uc3QgY2hhciogcGF0aCkKK3sKKyAg
ICBpZiAoIWVudGVyZWRTYW5kYm94KQorICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJP
UjsKKworICAgIGlmICghQ0ZVUkxTdG9wQWNjZXNzaW5nU2VjdXJpdHlTY29wZWRSZXNvdXJjZVB0
cigpKQorICAgICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisKKyAgICBSZXRhaW5QdHI8Q0ZT
dHJpbmdSZWY+IHVybFN0cmluZyhBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oMCwgcGF0aCkpOworICAgIGlmICghdXJsU3RyaW5nKQorICAgICAgICBy
ZXR1cm4gTlBFUlJfSU5WQUxJRF9QQVJBTTsKKyAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybChB
ZG9wdENGLCBDRlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aCgwLCB1cmxTdHJpbmcuZ2V0KCks
IGtDRlVSTFBPU0lYUGF0aFN0eWxlLCBmYWxzZSkpOworCisgICAgQ0ZVUkxTdG9wQWNjZXNzaW5n
U2VjdXJpdHlTY29wZWRSZXNvdXJjZVB0cigpKHVybC5nZXQoKSk7CisKKyAgICByZXR1cm4gTlBF
UlJfTk9fRVJST1I7Cit9CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5j
dGlvbnMubW0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>
<flag name="review"
          id="131735"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="131739"
          type_id="3"
          status="-"
          setter="gustavo.noronha"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129311</attachid>
            <date>2012-02-28 12:48:57 -0800</date>
            <delta_ts>2012-02-28 12:58:23 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>NPAPISandboxOpenSource.txt</filename>
            <type>text/plain</type>
            <size>28370</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTEzNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEFkZCBhbiBleHBl
cmltZW50YWwgU1BJIGZvciBwbHVnLWlucyB0byBlbnRlciBzYW5kYm94CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVyIENhcmxzc29uLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Q
cm9jZXNzLmg6IChXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnBsdWdpblBhdGgpOiBFeHBvc2VkIHBs
dWdpbiBwYXRoLgorCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9tYWMvY29tLmFwcGxlLldlYktp
dC5QbHVnaW5Qcm9jZXNzLnNiOiBBZGRlZC4KKworICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajogQWRkZWQgbmV3IGZpbGVzLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDogKFdlYktpdDo6TlBO
X0dldFZhbHVlKTogRXhwb3NlZAorICAgICAgICBhIGZ1bmN0aW9uIHRvIGFjY2VzcyBzYW5kYm94
aW5nIGZ1bmN0aW9ucyB3aGVuIGF2YWlsYWJsZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmg6IEFkZGVkLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVu
Y3Rpb25zLm1tOiBBZGRlZC4KKwogMjAxMi0wMi0yOCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2Vs
eW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gU2lnbmFsIGFuZCBwcm9wZXJ0
eSBjbGVhbnVwIGluIFFRdWlja1dlYlZpZXcKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblBy
b2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1BsdWdp
blByb2Nlc3MvUGx1Z2luUHJvY2Vzcy5oCShyZXZpc2lvbiAxMDkxMzUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIs
NiArNTIsOCBAQCBwdWJsaWM6CiAKICAgICBOZXRzY2FwZVBsdWdpbk1vZHVsZSogbmV0c2NhcGVQ
bHVnaW5Nb2R1bGUoKTsKIAorICAgIGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCgpIGNvbnN0IHsg
cmV0dXJuIG1fcGx1Z2luUGF0aDsgfQorCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgaW5p
dGlhbGl6ZVNoaW0oKTsKIApJbmRleDogU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMv
Y29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnNiCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzcy5z
YgkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL2NvbS5h
cHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzcy5zYgkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOTEg
QEAKKyh2ZXJzaW9uIDEpCisoZGVueSBkZWZhdWx0ICh3aXRoIHBhcnRpYWwtc3ltYm9saWNhdGlv
bikpCisoYWxsb3cgaXBjLXBvc2l4LXNobSBzeXN0ZW0tYXVkaXQgc3lzdGVtLXNvY2tldCBmaWxl
LXJlYWQtbWV0YWRhdGEpCisKKyhpbXBvcnQgInN5c3RlbS5zYiIpCisKKzs7IFV0aWxpdHkgZnVu
Y3Rpb25zIGZvciBob21lIGRpcmVjdG9yeSByZWxhdGl2ZSBwYXRoIGZpbHRlcnMKKyhkZWZpbmUg
KGhvbWUtcmVnZXggaG9tZS1yZWxhdGl2ZS1yZWdleCkKKyAgKHJlZ2V4IChzdHJpbmctYXBwZW5k
ICJeIiAocmVnZXgtcXVvdGUgKHBhcmFtICJIT01FX0RJUiIpKSBob21lLXJlbGF0aXZlLXJlZ2V4
KSkpCisKKyhkZWZpbmUgKGhvbWUtc3VicGF0aCBob21lLXJlbGF0aXZlLXN1YnBhdGgpCisgIChz
dWJwYXRoIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0aXZlLXN1
YnBhdGgpKSkKKworKGRlZmluZSAoaG9tZS1saXRlcmFsIGhvbWUtcmVsYXRpdmUtbGl0ZXJhbCkK
KyAgKGxpdGVyYWwgKHN0cmluZy1hcHBlbmQgKHBhcmFtICJIT01FX0RJUiIpIGhvbWUtcmVsYXRp
dmUtbGl0ZXJhbCkpKQorCis7OyBSZWFkLW9ubHkgcHJlZmVyZW5jZXMgYW5kIGRhdGEKKyhhbGxv
dyBmaWxlLXJlYWQqCisgICAgICAgOzsgQmFzaWMgc3lzdGVtIHBhdGhzCisgICAgICAgKHN1YnBh
dGggIi9MaWJyYXJ5L0ZyYW1ld29ya3MiKQorICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIv
ZGIvbWRzIikKKworICAgICAgIDs7IFN5c3RlbSBhbmQgdXNlciBwcmVmZXJlbmNlcworICAgICAg
IChsaXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy8uR2xvYmFsUHJlZmVyZW5jZXMucGxpc3Qi
KQorICAgICAgIChsaXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuQmx1ZXRv
b3RoLnBsaXN0IikKKyAgICAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFw
cGxlLlF1aWNrVGltZS5wbGlzdCIpCisgICAgICAgKHJlZ2V4ICMiXi9MaWJyYXJ5L1ByZWZlcmVu
Y2VzL2NvbVwuYXBwbGVcLnNlY3VyaXR5IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvLkNGVXNl
clRleHRFbmNvZGluZyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8iKQor
ICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0NvbG9yUGlja2VycyIpCisgICAgICAgKGhv
bWUtc3VicGF0aCAiL0xpYnJhcnkvQ29sb3JTeW5jIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIv
TGlicmFyeS9Db21wb25lbnRzIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9JbnB1
dCBNZXRob2RzIikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9LZXlCaW5kaW5ncyIp
CisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvS2V5Ym9hcmQgTGF5b3V0cyIpCisgICAg
ICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvRm9udHMiKQorICAgICAgIChob21lLXN1YnBhdGgg
Ii9MaWJyYXJ5L1BERiBTZXJ2aWNlcyIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkv
UHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0IikKKyAgICAgICAoaG9tZS1yZWdl
eCAjIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL0J5SG9zdC9cLkdsb2JhbFByZWZlcmVuY2VzXC4iKQor
ICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvQnlIb3N0L2NvbVwuYXBw
bGVcLkJsdWV0b290aFwuIikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJl
bmNlcy9jb20uYXBwbGUuQVRTLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFy
eS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuZHJpdmVyLkFwcGxlQmx1ZXRvb3RoTXVsdGl0b3VjaC5t
b3VzZS5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMv
Y29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gudHJhY2twYWQucGxpc3Qi
KQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5k
cml2ZXIuQXBwbGVISURNb3VzZS5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJh
cnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmlucHV0bWV0aG9ka2l0LnBsaXN0IikKKyAgICAgICAo
aG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuaVdvcmsuUGFnZXMu
cGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5h
cHBsZS5MYXVuY2hTZXJ2aWNlcy5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJh
cnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLk11bHRpdG91Y2hTdXBwb3J0LnBsaXN0IikKKyAgICAg
ICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUub3BlbmdsLnBs
aXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBw
bGUuc2VjdXJpdHkucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZl
cmVuY2VzL2NvbS5hcHBsZS5zZWN1cml0eV9jb21tb24ucGxpc3QiKQorICAgICAgIChob21lLWxp
dGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zcGVlY2gudm9pY2UucHJlZnMu
cGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5h
cHBsZS5zcGVlY2guc3ludGhlc2lzLmdlbmVyYWwucHJlZnMucGxpc3QiKQorICAgICAgIChob21l
LWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5zeXN0ZW1zb3VuZC5wbGlz
dCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxl
LnVuaXZlcnNhbGFjY2Vzcy5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkv
UHJlZmVyZW5jZXMvY29tLmFwcGxlLldlYkZvdW5kYXRpb24ucGxpc3QiKQorICAgICAgIChob21l
LWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5udmlkaWEuT3BlbkdMLnBsaXN0IikK
KyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9wYnMucGxpc3QiKQor
ICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5TZXJ2
aWNlc01lbnUuU2VydmljZXMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5
L1ByZWZlcmVuY2VzL1F1aWNrVGltZSBQcmVmZXJlbmNlcyIpCisKKyAgICAgICAoaG9tZS1saXRl
cmFsICIvTGlicmFyeS9DYWNoZXMvY29tLmFwcGxlLmNvcmVhdWRpby5jb21wb25lbnRzLnBsaXN0
IikKKworICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25lbnRz
IikKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9BdWRpby9QbHVnLUlucy9Db21wb25l
bnRzIikKKyAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvSEFMIikKKyAg
ICAgICAoc3VicGF0aCAiL0xpYnJhcnkvUXVpY2tUaW1lIikKKyAgICAgICAoaG9tZS1zdWJwYXRo
ICIvTGlicmFyeS9RdWlja1RpbWUiKQorICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9WaWRlby9Q
bHVnLUlucyIpCisKKyAgICAgICAobGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9y
dC9DcmFzaFJlcG9ydGVyL1N1Ym1pdERpYWdJbmZvLmRvbWFpbnMiKQorCisgICAgICAgKGhvbWUt
bGl0ZXJhbCAiL0xpYnJhcnkvQXBwbGljYXRpb24gU3VwcG9ydC9TeW5jU2VydmljZXMvTG9jYWwv
Q2xpZW50c1dpdGhDaGFuZ2VzL2NvbS5hcHBsZS5LZXljaGFpbiIpCisKKyAgICAgICA7OyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMDQ3OTY4NT4g
aXMgZml4ZWQuCisgICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0tleWNoYWlucyIpCispCisKKzs7
IFJlYWQtd3JpdGUgcHJlZmVyZW5jZXMgYW5kIGRhdGEKKyhhbGxvdyBmaWxlKgorICAgICAgICho
b21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tXC5hcHBsZVwuV2ViS2l0XC5QbHVn
aW5Qcm9jZXNzXC5wbGlzdCIpCisKKyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9DYWNo
ZXMvUXVpY2tUaW1lIikKKworICAgICAgIDs7IEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVk
IHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzEwNDc5Njg1PiBpcyBmaXhlZC4KKyAgICAgICAoaG9tZS1z
dWJwYXRoICIvTGlicmFyeS9LZXljaGFpbnMiKSkKKworOzsgSU9LaXQgdXNlciBjbGllbnRzCiso
YWxsb3cgaW9raXQtb3BlbgorICAgICAgIChpb2tpdC1jb25uZWN0aW9uICJJT0FjY2VsZXJhdG9y
IikKKyAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIkFHUE1DbGllbnQiKQorICAgICAg
IChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiQXBwbGVHcmFwaGljc0NvbnRyb2xDbGllbnQiKQor
ICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiQXBwbGVTTkJGQlVzZXJDbGllbnQiKQor
ICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9BY2NlbGVyYXRpb25Vc2VyQ2xpZW50
IikKKyAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPQXVkaW9Db250cm9sVXNlckNs
aWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT0F1ZGlvRW5naW5lVXNl
ckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT0ZyYW1lYnVmZmVy
U2hhcmVkVXNlckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT0hJ
RFBhcmFtVXNlckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT1N1
cmZhY2VSb290VXNlckNsaWVudCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJ
T1N1cmZhY2VTZW5kUmlnaHQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiUm9v
dERvbWFpblVzZXJDbGllbnQiKSkKKworOzsgVmFyaW91cyBzZXJ2aWNlcyByZXF1aXJlZCBieSBB
cHBLaXQgYW5kIG90aGVyIGZyYW1ld29ya3MKKyhhbGxvdyBtYWNoLWxvb2t1cAorICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLkNvcmVTZXJ2aWNlcy5jb3Jlc2VydmljZXNkIikKKyAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5EaXNrQXJiaXRyYXRpb24uZGlza2FyYml0cmF0aW9u
ZCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRmlsZUNvb3JkaW5hdGlvbiIpCisg
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRm9udE9iamVjdHNTZXJ2ZXIiKQorICAgICAg
IChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkZvbnRTZXJ2ZXIiKQorICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLkltYWdlQ2FwdHVyZUV4dGVuc2lvbjIucHJlc2VuY2UiKQorICAgICAgIChn
bG9iYWwtbmFtZSAiY29tLmFwcGxlLlNlY3VyaXR5U2VydmVyIikKKyAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5TeXN0ZW1Db25maWd1cmF0aW9uLmNvbmZpZ2QiKQorICAgICAgIChnbG9i
YWwtbmFtZSAiY29tLmFwcGxlLmF1ZGlvLlZEQ0Fzc2lzdGFudCIpCisgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuYXVkaW8uYXVkaW9oYWxkIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNv
bS5hcHBsZS5hdWRpby5jb3JlYXVkaW9kIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS5jbWlvLlZEQ0Fzc2lzdGFudCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY29v
a2llZCIpIDs7IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTA3OTA3Njg+IExpbWl0IGFjY2VzcyB0
byBjb29raWVzLgorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmN2bXNTZXJ2IikKKyAg
ICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5vY3NwZCIpCisgICAgICAgKGdsb2JhbC1uYW1l
ICJjb20uYXBwbGUucGFzdGVib2FyZC4xIikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS53aW5kb3dfcHJveGllcyIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUud2luZG93
c2VydmVyLmFjdGl2ZSIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuY2ZuZXR3b3Jr
LkF1dGhCcm9rZXJBZ2VudCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuUG93ZXJN
YW5hZ2VtZW50LmNvbnRyb2wiKQorICAgICAgIChnbG9iYWwtbmFtZS1yZWdleCAjIl9PcGVuU3Rl
cCQiKQorKQorCis7OyBOZXR3b3JraW5nCisoYWxsb3cgc3lzdGVtLXNvY2tldCAoc29ja2V0LWRv
bWFpbiBBRl9ST1VURSkpCisoYWxsb3cgc3lzdGVtLXNvY2tldCAocmVxdWlyZS1hbGwgKHNvY2tl
dC1kb21haW4gQUZfU1lTVEVNKSAoc29ja2V0LXByb3RvY29sIDIpKSkgOyBTWVNQUk9UT19DT05U
Uk9MCisoYWxsb3cgbmV0d29yay1vdXRib3VuZAorICAgICAgIDs7IEtlcm5lbCBjb250cm9scwor
ICAgICAgIChjb250cm9sLW5hbWUgImNvbS5hcHBsZS5uZXR3b3JrLnN0YXRpc3RpY3MiKQorICAg
ICAgIChjb250cm9sLW5hbWUgImNvbS5hcHBsZS5uZXRzcmMiKQorCisgICAgICAgOzsgTG9jYWwg
bUROU1Jlc3BvbmRlciBmb3IgRE5TLCBhcmJpdHJhcnkgb3V0Ym91bmQgVENQCisgICAgICAgKGxp
dGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vbUROU1Jlc3BvbmRlciIpCisgICAgICAgKHJlbW90ZSB0
Y3ApKQorCisoYWxsb3cgbWFjaC1sb29rdXAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBs
ZS50c20udWlzZXJ2ZXIiKQorICAgICAgIChsb2NhbC1uYW1lICJjb20uYXBwbGUudHNtLnBvcnRu
YW1lIikKKykKKworOzsgT3BlbiBhbmQgU2F2ZSBwYW5lbHMKKyhkZWZpbmUgKGFwcGx5LXJlYWQt
YW5kLWlzc3VlLWV4dGVuc2lvbiBvcCBwYXRoLWZpbHRlcikKKyAgICAgICAob3AgZmlsZS1yZWFk
KiBwYXRoLWZpbHRlcikKKyAgICAgICAob3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUt
YWxsIChleHRlbnNpb24tY2xhc3MgImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkIikgcGF0aC1m
aWx0ZXIpKSkKKyhkZWZpbmUgKGFwcGx5LXdyaXRlLWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0
aC1maWx0ZXIpCisgICAgICAgKG9wIGZpbGUtd3JpdGUqIHBhdGgtZmlsdGVyKQorICAgICAgIChv
cCBmaWxlLWlzc3VlLWV4dGVuc2lvbiAocmVxdWlyZS1hbGwgKGV4dGVuc2lvbi1jbGFzcyAiY29t
LmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSBwYXRoLWZpbHRlcikpKQorKGRlZmluZSAo
cmVhZC13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyBwYXRoLWZpbHRlcikKKyAgICAgICAoYXBw
bHktcmVhZC1hbmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKQorICAgICAgIChh
cHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9uIGFsbG93IHBhdGgtZmlsdGVyKSkKKyhhbGxv
dyBxdG4tdXNlcgorICAgICAgIChleHRlbnNpb24gImNvbS5hcHBsZS5hcHAtc2FuZGJveC5yZWFk
LXdyaXRlIikpCisocmVhZC13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9ucyAoZXh0ZW5zaW9uICJj
b20uYXBwbGUuYXBwLXNhbmRib3gucmVhZC13cml0ZSIpKQorCis7OyBQcmludGluZworKGFsbG93
IG5ldHdvcmstb3V0Ym91bmQgKGxpdGVyYWwgIi9wcml2YXRlL3Zhci9ydW4vY3Vwc2QiKSkKKyhh
bGxvdyBtYWNoLWxvb2t1cAorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnByaW50dWl0
b29sLmFnZW50IikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wcmludHRvb2wuYWdl
bnQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLnByaW50dG9vbC5kYWVtb24iKSkK
KyhhbGxvdyBmaWxlLXJlYWQqCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiLy5jdXBzL2xwb3B0aW9u
cyIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiLy5jdXBzL2NsaWVudC5jb25mIikKKyAgICAgICAo
bGl0ZXJhbCAiL3ByaXZhdGUvZXRjL2N1cHMvY2xpZW50LmNvbmYiKQorICAgICAgIChsaXRlcmFs
ICIvcHJpdmF0ZS9ldGMvY3Vwcy9scG9wdGlvbnMiKQorICAgICAgIChzdWJwYXRoICIvcHJpdmF0
ZS9ldGMvY3Vwcy9wcGQiKQorICAgICAgIChzdWJwYXRoICIvcHJpdmF0ZS92YXIvcnVuL2N1cHNk
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9vcmcuY3Vwcy5Q
cmludGluZ1ByZWZzLnBsaXN0IikpCisKKzs7IFRleHQgU2VydmljZXMgTWFuYWdlcgorKGFsbG93
IGlva2l0LXNldC1wcm9wZXJ0aWVzIChpb2tpdC1wcm9wZXJ0eSAiQ2Fwc0xvY2tEZWxheU92ZXJy
aWRlIikpCisKKzs7IEltYWdlIENhcHR1cmUgKHVzZWQgYnkgcHJpbnQgcHJldmlldyBkaWFsb2cp
CisoYWxsb3cgYXBwbGVldmVudC1zZW5kIChhcHBsZWV2ZW50LWRlc3RpbmF0aW9uICJjb20uYXBw
bGUuaW1hZ2VjYXB0dXJlZXh0ZW5zaW9uMiIpKQorCis7OyBTaWxlbnRseSBibG9jayBhY2Nlc3Mg
dG8gc29tZSBmaWxlcworKGRlbnkgZmlsZS1yZWFkKiBmaWxlLXdyaXRlKiAod2l0aCBuby1sb2cp
CisgICAgICAgKGhvbWUtcmVnZXggIyIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb21cLmFwcGxlXC5p
bnRlcm5ldGNvbmZpZ3ByaXZcLnBsaXN0IikKKyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJyYXJ5
L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLmludGVybmV0Y29uZmlnXC5wbGlzdCIpCisKKyAgICAg
ICA7OyBGSVhNRTogU2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgPHJkYXI6Ly9wcm9ibGVtLzk0MjI5
NTc+IGlzIGZpeGVkLgorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L0NhY2hlcy9DYWNo
ZS5kYiIpCisKKyAgICAgICA7OyBGSVhNRTogU2hvdWxkIGJlIHJlbW92ZWQgYWZ0ZXIgPHJkYXI6
Ly9wcm9ibGVtLzEwNDYzODgxPiBpcyBmaXhlZC4KKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGli
cmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuTGF1bmNoU2VydmljZXMuUXVhcmFudGluZUV2ZW50
c1YyIikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBw
bGUuTGF1bmNoU2VydmljZXMuUXVhcmFudGluZUV2ZW50c1YyLWpvdXJuYWwiKSkKKwpJbmRleDog
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMTA5MTM1KQorKysgU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04ODYsNiArODg2LDkgQEAKIAkJRTEzNEYw
MUExMkVBNUQ5OTAwNEVDNThEIC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTEzNEYwMTkxMkVBNUQ5OTAwNEVDNThEIC8q
IFdLUHJpbnRpbmdWaWV3Lm1tICovOyB9OwogCQlFMTc5RkQ5QzEzNEQzODA2MDAxNUI4ODMgLyog
QXJndW1lbnRDb2RlcnNNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxNzlGRDlCMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01hYy5o
ICovOyB9OwogCQlFMTc5RkQ5RjEzNEQzODI1MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTc5RkQ5
RTEzNEQzODI1MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMubW0gKi87IH07CisJCUUxN0JG
OTk2MTREMEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0JGOTk1MTREMEE3M0Uw
MEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCAqLzsgfTsKKwkJRTE3QkY5OTgx
NEQwQUE4MzAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0JGOTk3MTREMEFBODMwMEE1
QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gKi87IH07CisJCUUxN0JGOTlBMTRE
MENCRjEwMEE1QTA2OSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxN0JGOTk5MTREMENC
RjEwMEE1QTA2OSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IgKi87IH07CiAJ
CUUxOEM5MkY0MTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4QzkyRjMxMkRCOUU3MTAwQ0YyQUVC
IC8qIFByaW50SW5mby5jcHAgKi87IH07CiAJCUUxOTk4NzVFMTQyQzA0NTQwMEJCMkRFNyAvKiBC
dWlsdEluUERGVmlldy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTk5ODc1QzE0MkJGQzk3MDBCQjJERTcgLyogQnVpbHRJblBERlZpZXcuY3BwICov
OyB9OwogCQlFMUEzMTczMjEzNENFQTZDMDA3QzlBNEYgLyogQXR0cmlidXRlZFN0cmluZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFBMzE3MzExMzRD
RUE2QzAwN0M5QTRGIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCAqLzsgfTsKQEAgLTE5MzIsNiArMTkz
NSw5IEBACiAJCUUxNEU5OUY5MTREODc5QzkwMDFEMjIxRiAvKiBhZGQtZW50aXRsZW1lbnRzLnNo
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQuc2g7IHBhdGggPSAiYWRkLWVudGl0bGVtZW50cy5zaCI7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNzlGRDlCMTM0RDM4MDYwMDE1Qjg4MyAvKiBBcmd1bWVudENvZGVyc01h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBcmd1bWVudENvZGVyc01hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTc5RkQ5RTEzNEQzODI1MDAxNUI4ODMg
LyogQXJndW1lbnRDb2RlcnNNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBBcmd1bWVudENvZGVyc01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE3QkY5OTUxNEQwQTczRTAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXRzY2FwZVNhbmRib3hGdW5jdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3QkY5OTcxNEQwQUE4MzAwQTVB
MDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE3QkY5OTkxNEQwQ0JGMTAwQTVBMDY5IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuUGx1Z2luUHJvY2Vzcy5zYiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBjb20uYXBw
bGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2I7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUUxOEM5MkYzMTJEQjlFNzEwMENGMkFFQiAvKiBQcmludEluZm8uY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJpbnRJbmZvLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTE5OTg3NUExNDJCRjlCODAwQkIyREU3IC8qIEJ1aWx0SW5QREZWaWV3Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEJ1aWx0SW5QREZWaWV3Lmg7IHBhdGgg
PSBQREYvQnVpbHRJblBERlZpZXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5
OTg3NUMxNDJCRkM5NzAwQkIyREU3IC8qIEJ1aWx0SW5QREZWaWV3LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEJ1aWx0SW5QREZWaWV3LmNwcDsgcGF0aCA9IFBERi9C
dWlsdEluUERGVmlldy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMTIzLDYg
KzIxMjksNyBAQAogCQkJCTFBMEVDODAyMTI0QkQ0MUUwMDdFRjRBNSAvKiBQbHVnaW5Qcm9jZXNz
TWFpbk1hYy5tbSAqLywKIAkJCQkxQUMyNUY4OTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJv
Y2Vzc1NoaW0uaCAqLywKIAkJCQkxQUMyNUY4QTEyQTQ4RTAzMDBCRDI2NzEgLyogUGx1Z2luUHJv
Y2Vzc1NoaW0ubW0gKi8sCisJCQkJRTE3QkY5OTkxNEQwQ0JGMTAwQTVBMDY5IC8qIGNvbS5hcHBs
ZS5XZWJLaXQuUGx1Z2luUHJvY2Vzcy5zYiAqLywKIAkJCQlFMTRFOTlGOTE0RDg3OUM5MDAxRDIy
MUYgLyogYWRkLWVudGl0bGVtZW50cy5zaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwpAQCAt
MjI1MCw2ICsyMjU3LDggQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJMUFFNUI3RjkxMUU3QUVEMjAwQkE2NzY3IC8qIE5ldHNjYXBlUGx1Z2luTWFjLm1tICovLAor
CQkJCUUxN0JGOTk1MTREMEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
aCAqLywKKwkJCQlFMTdCRjk5NzE0RDBBQTgzMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVu
Y3Rpb25zLm1tICovLAogCQkJCTFBMkQ5MjIwMTI4MURDMUIwMDFFQjk2MiAvKiBQbHVnaW5Qcm94
eU1hYy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gbWFjOwpAQCAtMzY5NSw2ICszNzA0LDcgQEAK
IAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0
NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUUxN0JGOTlBMTREMENCRjEwMEE1QTA2OSAvKiBj
b20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDEz
Nyw2ICs0MTQ3LDcgQEAKIAkJCQlCRkE2MTc5RjEyRjBCOTlEMDAzM0UwQ0EgLyogV0tWaWV3UHJp
dmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyRTZFOEUxMTQxOTcxNTAwQTYzQjFFIC8qIFdv
cmtRdWV1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCNDJFODcxNEJCQkJCMjAwNDI3MkY3IC8q
IEtleWNoYWluU2hpbVJlc3BvbnNlTWFwLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMTdCRjk5NjE0
RDBBNzNFMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0UwOTM3ODE0RkIxMjhDMDAxMTM4RDkgLyogUmVtb3RlTGF5ZXJDbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwpAQCAtNDMwMCw2ICs0MzExLDcgQEAKIAkJCWlzYSA9IFBCWFJlc291cmNlc0J1aWxk
UGhhc2U7CiAJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OwogCQkJZmlsZXMgPSAoCisJ
CQkJRTE3QkY5OUExNEQwQ0JGMTAwQTVBMDY5IC8qIGNvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJv
Y2Vzcy5zYiBpbiBSZXNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQ
b3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC00ODc0LDYgKzQ4ODYsNyBAQAogCQkJCUJDODY5
OUI2MTE2QUFEQUEwMDJBOTI1QiAvKiBXS1ZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzJF
NkU4RDExNDE5NzE1MDBBNjNCMUUgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDMDA5MkY4MTE1ODM3QTMwMEUwQUUyQSAvKiBXb3JrUXVldWVNYWMuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRTE3QkY5OTgxNEQwQUE4MzAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0
aW9ucy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDRTA5Mzc3MTRGQjEyOEMwMDExMzhEOSAvKiBS
ZW1vdGVMYXllckNsaWVudC5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVC
cm93c2VyRnVuY3MuY3BwCShyZXZpc2lvbiAxMDkxMzUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw2ICszNiwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVy
Lmg+CiAjaW5jbHVkZSA8dXRpbGl0eT4KIAorI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQo
QlVJTERJTkdfT05fTEVPUEFSRCkgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJE
KQorI2luY2x1ZGUgIk5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIgorI2VuZGlmCisKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApAQCAtNDExLDYgKzQx
NSw4IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBXS05WRXhwZWN0c05vbnJldGEKIC8vIFdoZXRo
ZXIgcGx1Zy1pbiBjb2RlIGlzIGFsbG93ZWQgdG8gZW50ZXIgKGFyYml0cmFyeSkgc2FuZGJveCBm
b3IgdGhlIHByb2Nlc3MuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgV0tOVkFsbG93ZWRUb0VudGVy
U2FuZGJveCA9IDc0NjU4OwogCisvLyBXS05WU2FuZGJveEZ1bmN0aW9ucyA9IDc0NjU5IGlzIGRl
ZmluZWQgaW4gTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgKKwogLy8gVGhlIENvcmUgQW5pbWF0
aW9uIHJlbmRlciBzZXJ2ZXIgcG9ydC4KIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBXS05WQ0FMYXll
clJlbmRlclNlcnZlclBvcnQgPSA3MTg3OTsKIApAQCAtNTAyLDYgKzUwOCwxNCBAQCBzdGF0aWMg
TlBFcnJvciBOUE5fR2V0VmFsdWUoTlBQIG5wcCwgTlBOCiAgICAgICAgICAgICAqKE5QQm9vbCop
dmFsdWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAKKyNpZiBQTEFURk9STShNQUMpICYm
ICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1NO
T1dfTEVPUEFSRCkKKyAgICAgICAgY2FzZSBXS05WU2FuZGJveEZ1bmN0aW9uczoKKyAgICAgICAg
eworICAgICAgICAgICAgKihXS05TYW5kYm94RnVuY3Rpb25zICoqKXZhbHVlID0gbmV0c2NhcGVT
YW5kYm94RnVuY3Rpb25zKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorI2VuZGlm
CisKICNpZm5kZWYgTlBfTk9fUVVJQ0tEUkFXCiAgICAgICAgIGNhc2UgTlBOVnN1cHBvcnRzUXVp
Y2tEcmF3Qm9vbDoKICAgICAgICAgICAgIC8vIFdlIGRvbid0IHN1cHBvcnQgdGhlIFF1aWNrRHJh
dyBkcmF3aW5nIG1vZGVsLgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2Fu
ZGJveEZ1bmN0aW9ucy5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zX2gKKyNkZWZpbmUgTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zX2gKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvbnBhcGkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMi
IHsKKyNlbmRpZgorICAgIAorI2RlZmluZSBXS05WU2FuZGJveEZ1bmN0aW9ucyA3NDY1OQorI2Rl
ZmluZSBXS05WU2FuZGJveEZ1bmN0aW9uc1ZlcnNpb25DdXJyZW50IDEKKwordHlwZWRlZiBOUEVy
cm9yICgqV0tOX0VudGVyU2FuZGJveFByb2NQdHIpKGNvbnN0IGNoYXIgKnJlYWRPbmx5UGF0aHNb
XSwgY29uc3QgY2hhciAqcmVhZFdyaXRlUGF0aHNbXSk7Cit0eXBlZGVmIE5QRXJyb3IgKCpXS05f
RmlsZVN0b3BBY2Nlc3NpbmdQcm9jUHRyKShjb25zdCBjaGFyKiBwYXRoKTsKKworTlBFcnJvciBX
S05fRW50ZXJTYW5kYm94KGNvbnN0IGNoYXIgKnJlYWRPbmx5UGF0aHNbXSwgY29uc3QgY2hhciAq
cmVhZFdyaXRlUGF0aHNbXSk7CitOUEVycm9yIFdLTl9GaWxlU3RvcEFjY2Vzc2luZyhjb25zdCBj
aGFyKiBwYXRoKTsKKwordHlwZWRlZiBzdHJ1Y3QgX1dLTlNhbmRib3hGdW5jdGlvbnMgeworICAg
IHVpbnQxNl90IHNpemU7CisgICAgdWludDE2X3QgdmVyc2lvbjsKKyAgICAKKyAgICBXS05fRW50
ZXJTYW5kYm94UHJvY1B0ciBlbnRlclNhbmRib3g7CisgICAgV0tOX0ZpbGVTdG9wQWNjZXNzaW5n
UHJvY1B0ciBmaWxlU3RvcEFjY2Vzc2luZzsKK30gV0tOU2FuZGJveEZ1bmN0aW9uczsKKworV0tO
U2FuZGJveEZ1bmN0aW9ucyogbmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zKCk7CisKKyNpZmRlZiBf
X2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRi
b3hGdW5jdGlvbnMuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZl
CgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9O
ZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
bW0JKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5tbQkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIk5l
dHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIgorCisjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVP
UEFSRCkgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorCisjaW1wb3J0ICJQ
bHVnaW5Qcm9jZXNzLmgiCisjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbXBv
cnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5o
PgorI2ltcG9ydCA8c3lzL3N0YXQuaD4KKyNpbXBvcnQgPHN5c2V4aXRzLmg+CisjaW1wb3J0IDx3
dGYvUmV0YWluUHRyLmg+CisjaW1wb3J0IDx3dGYvVmVjdG9yLmg+CisjaW1wb3J0IDx3dGYvdGV4
dC9DU3RyaW5nLmg+CisKK1NPRlRfTElOS19GUkFNRVdPUksoQ29yZVNlcnZpY2VzKQorU09GVF9M
SU5LX09QVElPTkFMKENvcmVTZXJ2aWNlcywgQ0ZVUkxTdG9wQWNjZXNzaW5nU2VjdXJpdHlTY29w
ZWRSZXNvdXJjZSwgdm9pZCwgdW51c2VkLCAoQ0ZVUkxSZWYpKQorCit1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1dLTlNhbmRib3hGdW5jdGlvbnMq
IG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpCit7CisgICAgc3RhdGljIFdLTlNhbmRib3hGdW5j
dGlvbnMgZnVuY3Rpb25zID0geworICAgICAgICBzaXplb2YoV0tOU2FuZGJveEZ1bmN0aW9ucyks
CisgICAgICAgIFdLTlZTYW5kYm94RnVuY3Rpb25zVmVyc2lvbkN1cnJlbnQsCisgICAgICAgIFdL
Tl9FbnRlclNhbmRib3gsCisgICAgICAgIFdLTl9GaWxlU3RvcEFjY2Vzc2luZworICAgIH07Cisg
ICAgcmV0dXJuICZmdW5jdGlvbnM7Cit9CisKK3N0YXRpYyBib29sIGVudGVyZWRTYW5kYm94Owor
CitzdGF0aWMgQ1N0cmluZyByZWFkU2FuZGJveFByb2ZpbGUoKQoreworICAgIFJldGFpblB0cjxD
RlVSTFJlZj4gcHJvZmlsZVVSTChBZG9wdENGLCBDRkJ1bmRsZUNvcHlSZXNvdXJjZVVSTChDRkJ1
bmRsZUdldE1haW5CdW5kbGUoKSwgQ0ZTVFIoInBsdWdpbiIpLCBDRlNUUigic2IiKSwgMCkpOwor
ICAgIGNoYXIgcHJvZmlsZVBhdGhbUEFUSF9NQVhdOworICAgIGlmICghQ0ZVUkxHZXRGaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24ocHJvZmlsZVVSTC5nZXQoKSwgZmFsc2UsIHJlaW50ZXJwcmV0X2Nh
c3Q8VUludDgqPihwcm9maWxlUGF0aCksIHNpemVvZihwcm9maWxlUGF0aCkpKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IGdldCBmaWxlIHN5c3RlbSByZXByZXNlbnRhdGlv
biBvZiBwbHVnLWluIHNhbmRib3ggVVJMXG4iKTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsK
KyAgICB9CisKKyAgICBGSUxFICpmaWxlID0gZm9wZW4ocHJvZmlsZVBhdGgsICJyIik7CisgICAg
aWYgKCFmaWxlKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IG9wZW4gcGx1
Zy1pbiBzYW5kYm94IGZpbGUgJyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAgICByZXR1cm4g
Q1N0cmluZygpOworICAgIH0KKworICAgIHN0cnVjdCBzdGF0IGZpbGVJbmZvOworICAgIGlmIChz
dGF0KHByb2ZpbGVQYXRoLCAmZmlsZUluZm8pKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
Q291bGQgbm90IGdldCBwbHVnLWluIHNhbmRib3ggZmlsZSBzaXplICclcydcbiIsIHByb2ZpbGVQ
YXRoKTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICB9CisKKyAgICBjaGFyKiBjaGFy
YWN0ZXJCdWZmZXI7CisgICAgQ1N0cmluZyByZXN1bHQgPSBDU3RyaW5nOjpuZXdVbmluaXRpYWxp
emVkKGZpbGVJbmZvLnN0X3NpemUsIGNoYXJhY3RlckJ1ZmZlcik7CisKKyAgICBpZiAoMSAhPSBm
cmVhZChjaGFyYWN0ZXJCdWZmZXIsIGZpbGVJbmZvLnN0X3NpemUsIDEsIGZpbGUpKSB7CisgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiQ291bGQgbm90IHJlYWQgcGx1Zy1pbiBzYW5kYm94IGZpbGUg
JyVzJ1xuIiwgcHJvZmlsZVBhdGgpOworICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgIH0K
KworICAgIGZjbG9zZShmaWxlKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK05QRXJyb3Ig
V0tOX0VudGVyU2FuZGJveChjb25zdCBjaGFyKiByZWFkT25seVBhdGhzW10sIGNvbnN0IGNoYXIq
IHJlYWRXcml0ZVBhdGhzW10pCit7CisgICAgaWYgKGVudGVyZWRTYW5kYm94KQorICAgICAgICBy
ZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKworICAgIENTdHJpbmcgcHJvZmlsZSA9IHJlYWRT
YW5kYm94UHJvZmlsZSgpOworICAgIGlmIChwcm9maWxlLmlzTnVsbCgpKQorICAgICAgICBleGl0
KEVYX05PUEVSTSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVuZGVkUmVhZE9ubHlQ
YXRoczsKKyAgICBpZiAocmVhZE9ubHlQYXRocykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyByZWFkT25seVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBleHRlbmRlZFJlYWRPbmx5
UGF0aHMuYXBwZW5kKHJlYWRPbmx5UGF0aHNbaV0pOworICAgIH0KKworICAgIENTdHJpbmcgcGx1
Z2luTW9kdWxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihQbHVnaW5Qcm9jZXNzOjpz
aGFyZWQoKS5wbHVnaW5QYXRoKCkpOworICAgIGV4dGVuZGVkUmVhZE9ubHlQYXRocy5hcHBlbmQo
cGx1Z2luTW9kdWxlUGF0aC5kYXRhKCkpOworCisgICAgLy8gT24tZGlzayBXZWJLaXQgZnJhbWV3
b3JrIGxvY2F0aW9ucywgdG8gYWNjb3VudCBmb3IgZGVidWcgaW5zdGFsbGF0aW9ucy4KKyAgICAv
LyBBbGxvd2luZyB0aGUgd2hvbGUgZGlyZWN0b3J5IGNvbnRhaW5pbmcgV2ViS2l0Mi5mcmFtZXdv
cmsgZm9yIHRoZSBzYWtlIG9mIEFQSXMgdGhhdCBpbXBsaWNpdGx5IGxvYWQgb3RoZXIgV2ViS2l0
IGZyYW1ld29ya3MuCisgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBsb2FkIHRoZW0gbm93LCBhbmQg
dGh1cyBkb24ndCBoYXZlIGFueSBiZXR0ZXIgaWRlYSBvZiB3aGVyZSB0aGV5IGFyZSBsb2NhdGVk
IG9uIGRpc2suCisgICAgZXh0ZW5kZWRSZWFkT25seVBhdGhzLmFwcGVuZChbW1tbW05TQnVuZGxl
IGJ1bmRsZVdpdGhJZGVudGlmaWVyOkAiY29tLmFwcGxlLldlYktpdDIiXSBidW5kbGVVUkxdIFVS
TEJ5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gcGF0aF0gZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRPbmx5UGF0aHMuYXBwZW5kKHN0YXRpY19jYXN0PGNv
bnN0IGNoYXIqPigwKSk7CisKKyAgICBWZWN0b3I8Y29uc3QgY2hhcio+IGV4dGVuZGVkUmVhZFdy
aXRlUGF0aHM7CisgICAgaWYgKHJlYWRXcml0ZVBhdGhzKSB7CisgICAgICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IHJlYWRXcml0ZVBhdGhzW2ldOyArK2kpCisgICAgICAgICAgICBleHRlbmRlZFJl
YWRXcml0ZVBhdGhzLmFwcGVuZChyZWFkV3JpdGVQYXRoc1tpXSk7CisgICAgfQorCisgICAgLy8g
RklYTUU6IDxyZGFyOi8vcHJvYmxlbS8xMDc4NTQ1Nz4gVXNlIGEgY3VzdG9tIHRlbXBvcmFyeSBk
aXJlY3RvcnkuCisgICAgY2hhciBkYXJ3aW5Vc2VyVGVtcERpcmVjdG9yeVtQQVRIX01BWF07Cisg
ICAgaWYgKGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX1RFTVBfRElSLCBkYXJ3aW5Vc2VyVGVtcERp
cmVjdG9yeSwgUEFUSF9NQVgpID4gMCkKKyAgICAgICAgZXh0ZW5kZWRSZWFkV3JpdGVQYXRocy5h
cHBlbmQoZGFyd2luVXNlclRlbXBEaXJlY3RvcnkpOworCisgICAgLy8gRklYTUU6IDxyZGFyOi8v
cHJvYmxlbS8xMDc5MjA0Nz4gVXNlIGEgY3VzdG9tIGNhY2hlIGRpcmVjdG9yeS4KKyAgICBjaGFy
IGRhcndpblVzZXJDYWNoZURpcmVjdG9yeVtQQVRIX01BWF07CisgICAgc2l6ZV90IGRhcndpblVz
ZXJDYWNoZVBhdGhTaXplID0gY29uZnN0cihfQ1NfREFSV0lOX1VTRVJfQ0FDSEVfRElSLCBkYXJ3
aW5Vc2VyQ2FjaGVEaXJlY3RvcnksIFBBVEhfTUFYKTsKKyAgICBpZiAoZGFyd2luVXNlckNhY2hl
UGF0aFNpemUgPiAwKQorICAgICAgICBleHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFwcGVuZChkYXJ3
aW5Vc2VyQ2FjaGVEaXJlY3RvcnkpOworCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBjYWNo
ZVBhdGgoQWRvcHRDRiwgV0tDb3B5Rm91bmRhdGlvbkNhY2hlRGlyZWN0b3J5KCkpOworICAgIGV4
dGVuZGVkUmVhZFdyaXRlUGF0aHMuYXBwZW5kKFsoTlNTdHJpbmcgKiljYWNoZVBhdGguZ2V0KCkg
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uXSk7CisKKyAgICBleHRlbmRlZFJlYWRXcml0ZVBhdGhz
LmFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4oMCkpOworCisgICAgLy8gV0tFbnRlclBs
dWdpblNhbmRib3ggY2Fub25pY2FsaXplcyBwYXRoIGFycmF5cywgYnV0IG5vdCBwYXJhbWV0ZXJz
IChiZWNhdXNlIGl0IGNhbm5vdCBrbm93IGlmIG9uZSBpcyBhIHBhdGgpLgorICAgIGNoYXIqIGhv
bWVEaXJlY3RvcnkgPSByZWFscGF0aChbTlNIb21lRGlyZWN0b3J5KCkgZmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uXSwgMCk7CisgICAgaWYgKCFob21lRGlyZWN0b3J5KQorICAgICAgICBleGl0KEVY
X05PUEVSTSk7CisgICAgY29uc3QgY2hhciogc2FuZGJveFBhcmFtZXRlcnNbXSA9IHsgIkhPTUVf
RElSIiwgaG9tZURpcmVjdG9yeSwgMCwgMCB9OworCisgICAgaWYgKCFXS0VudGVyUGx1Z2luU2Fu
ZGJveChwcm9maWxlLmRhdGEoKSwgc2FuZGJveFBhcmFtZXRlcnMsIGV4dGVuZGVkUmVhZE9ubHlQ
YXRocy5kYXRhKCksIGV4dGVuZGVkUmVhZFdyaXRlUGF0aHMuZGF0YSgpKSkgeworICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIkNvdWxkbid0IGluaXRpYWxpemUgc2FuZGJveCBwcm9maWxlXG4iKTsK
KyAgICAgICAgZXhpdChFWF9OT1BFUk0pOworICAgIH0KKworICAgIGlmIChub0VyciAhPSBXS0Vu
YWJsZVNhbmRib3hTdHlsZUZpbGVRdWFyYW50aW5lKCkpIHsKKyAgICAgICAgZnByaW50ZihzdGRl
cnIsICJDb3VsZG4ndCBlbmFibGUgZmlsZSBxdWFyYW50aW5lXG4iKTsKKyAgICAgICAgZXhpdChF
WF9OT1BFUk0pOworICAgIH0KKworICAgIGZyZWUoaG9tZURpcmVjdG9yeSk7CisgICAgZW50ZXJl
ZFNhbmRib3ggPSB0cnVlOworICAgIHJldHVybiBOUEVSUl9OT19FUlJPUjsKK30KKworTlBFcnJv
ciBXS05fRmlsZVN0b3BBY2Nlc3NpbmcoY29uc3QgY2hhciogcGF0aCkKK3sKKyAgICBpZiAoIWVu
dGVyZWRTYW5kYm94KQorICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsKKworICAg
IGlmICghQ0ZVUkxTdG9wQWNjZXNzaW5nU2VjdXJpdHlTY29wZWRSZXNvdXJjZVB0cigpKQorICAg
ICAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7CisKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
IHVybFN0cmluZyhBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oMCwgcGF0aCkpOworICAgIGlmICghdXJsU3RyaW5nKQorICAgICAgICByZXR1cm4gTlBF
UlJfSU5WQUxJRF9QQVJBTTsKKyAgICBSZXRhaW5QdHI8Q0ZVUkxSZWY+IHVybChBZG9wdENGLCBD
RlVSTENyZWF0ZVdpdGhGaWxlU3lzdGVtUGF0aCgwLCB1cmxTdHJpbmcuZ2V0KCksIGtDRlVSTFBP
U0lYUGF0aFN0eWxlLCBmYWxzZSkpOworCisgICAgQ0ZVUkxTdG9wQWNjZXNzaW5nU2VjdXJpdHlT
Y29wZWRSZXNvdXJjZVB0cigpKHVybC5nZXQoKSk7CisKKyAgICByZXR1cm4gTlBFUlJfTk9fRVJS
T1I7Cit9CisKKyNlbmRpZgoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0K
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIExGCgo=
</data>
<flag name="commit-queue"
          id="131969"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129313</attachid>
            <date>2012-02-28 12:58:23 -0800</date>
            <delta_ts>2012-02-28 13:16:18 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>NPAPISandboxOpenSource.txt</filename>
            <type>text/plain</type>
            <size>28371</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwOTEzNSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTI3ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEFkZCBhbiBleHBl
cmltZW50YWwgU1BJIGZvciBwbHVnLWlucyB0byBlbnRlciBzYW5kYm94CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTcwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvUGx1Z2lu
UHJvY2Vzcy5oOiAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzOjpwbHVnaW5QYXRoKTogRXhwb3NlZCBw
bHVnaW4gcGF0aC4KKworICAgICAgICAqIFBsdWdpblByb2Nlc3MvbWFjL2NvbS5hcHBsZS5XZWJL
aXQuUGx1Z2luUHJvY2Vzcy5zYjogQWRkZWQuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6IEFkZGVkIG5ldyBmaWxlcy4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHA6IChXZWJLaXQ6Ok5Q
Tl9HZXRWYWx1ZSk6IEV4cG9zZWQKKyAgICAgICAgYSBmdW5jdGlvbiB0byBhY2Nlc3Mgc2FuZGJv
eGluZyBmdW5jdGlvbnMgd2hlbiBhdmFpbGFibGUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oOiBBZGRlZC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvbWFjL05ldHNjYXBlU2FuZGJveEZ1
bmN0aW9ucy5tbTogQWRkZWQuCisKIDIwMTItMDItMjggIEpvY2VseW4gVHVyY290dGUgIDxqb2Nl
bHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFNpZ25hbCBhbmQgcHJvcGVy
dHkgY2xlYW51cCBpbiBRUXVpY2tXZWJWaWV3CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Q
cm9jZXNzL1BsdWdpblByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAkocmV2aXNpb24gMTA5MTM1KQorKysgU291cmNlL1dl
YktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUy
LDYgKzUyLDggQEAgcHVibGljOgogCiAgICAgTmV0c2NhcGVQbHVnaW5Nb2R1bGUqIG5ldHNjYXBl
UGx1Z2luTW9kdWxlKCk7CiAKKyAgICBjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgoKSBjb25zdCB7
IHJldHVybiBtX3BsdWdpblBhdGg7IH0KKwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGlu
aXRpYWxpemVTaGltKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFj
L2NvbS5hcHBsZS5XZWJLaXQuUGx1Z2luUHJvY2Vzcy5zYgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9jb20uYXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3Mu
c2IJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9jb20u
YXBwbGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkx
IEBACisodmVyc2lvbiAxKQorKGRlbnkgZGVmYXVsdCAod2l0aCBwYXJ0aWFsLXN5bWJvbGljYXRp
b24pKQorKGFsbG93IGlwYy1wb3NpeC1zaG0gc3lzdGVtLWF1ZGl0IHN5c3RlbS1zb2NrZXQgZmls
ZS1yZWFkLW1ldGFkYXRhKQorCisoaW1wb3J0ICJzeXN0ZW0uc2IiKQorCis7OyBVdGlsaXR5IGZ1
bmN0aW9ucyBmb3IgaG9tZSBkaXJlY3RvcnkgcmVsYXRpdmUgcGF0aCBmaWx0ZXJzCisoZGVmaW5l
IChob21lLXJlZ2V4IGhvbWUtcmVsYXRpdmUtcmVnZXgpCisgIChyZWdleCAoc3RyaW5nLWFwcGVu
ZCAiXiIgKHJlZ2V4LXF1b3RlIChwYXJhbSAiSE9NRV9ESVIiKSkgaG9tZS1yZWxhdGl2ZS1yZWdl
eCkpKQorCisoZGVmaW5lIChob21lLXN1YnBhdGggaG9tZS1yZWxhdGl2ZS1zdWJwYXRoKQorICAo
c3VicGF0aCAoc3RyaW5nLWFwcGVuZCAocGFyYW0gIkhPTUVfRElSIikgaG9tZS1yZWxhdGl2ZS1z
dWJwYXRoKSkpCisKKyhkZWZpbmUgKGhvbWUtbGl0ZXJhbCBob21lLXJlbGF0aXZlLWxpdGVyYWwp
CisgIChsaXRlcmFsIChzdHJpbmctYXBwZW5kIChwYXJhbSAiSE9NRV9ESVIiKSBob21lLXJlbGF0
aXZlLWxpdGVyYWwpKSkKKworOzsgUmVhZC1vbmx5IHByZWZlcmVuY2VzIGFuZCBkYXRhCisoYWxs
b3cgZmlsZS1yZWFkKgorICAgICAgIDs7IEJhc2ljIHN5c3RlbSBwYXRocworICAgICAgIChzdWJw
YXRoICIvTGlicmFyeS9GcmFtZXdvcmtzIikKKyAgICAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFy
L2RiL21kcyIpCisKKyAgICAgICA7OyBTeXN0ZW0gYW5kIHVzZXIgcHJlZmVyZW5jZXMKKyAgICAg
ICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvLkdsb2JhbFByZWZlcmVuY2VzLnBsaXN0
IikKKyAgICAgICAobGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLkJsdWV0
b290aC5wbGlzdCIpCisgICAgICAgKGxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5h
cHBsZS5RdWlja1RpbWUucGxpc3QiKQorICAgICAgIChyZWdleCAjIl4vTGlicmFyeS9QcmVmZXJl
bmNlcy9jb21cLmFwcGxlXC5zZWN1cml0eSIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiLy5DRlVz
ZXJUZXh0RW5jb2RpbmciKQorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0F1ZGlvIikK
KyAgICAgICAoaG9tZS1zdWJwYXRoICIvTGlicmFyeS9Db2xvclBpY2tlcnMiKQorICAgICAgICho
b21lLXN1YnBhdGggIi9MaWJyYXJ5L0NvbG9yU3luYyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAi
L0xpYnJhcnkvQ29tcG9uZW50cyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvSW5w
dXQgTWV0aG9kcyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvS2V5QmluZGluZ3Mi
KQorICAgICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0tleWJvYXJkIExheW91dHMiKQorICAg
ICAgIChob21lLXN1YnBhdGggIi9MaWJyYXJ5L0ZvbnRzIikKKyAgICAgICAoaG9tZS1zdWJwYXRo
ICIvTGlicmFyeS9QREYgU2VydmljZXMiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5
L1ByZWZlcmVuY2VzLy5HbG9iYWxQcmVmZXJlbmNlcy5wbGlzdCIpCisgICAgICAgKGhvbWUtcmVn
ZXggIyIvTGlicmFyeS9QcmVmZXJlbmNlcy9CeUhvc3QvXC5HbG9iYWxQcmVmZXJlbmNlc1wuIikK
KyAgICAgICAoaG9tZS1yZWdleCAjIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL0J5SG9zdC9jb21cLmFw
cGxlXC5CbHVldG9vdGhcLiIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVy
ZW5jZXMvY29tLmFwcGxlLkFUUy5wbGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJh
cnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmRyaXZlci5BcHBsZUJsdWV0b290aE11bHRpdG91Y2gu
bW91c2UucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2Vz
L2NvbS5hcHBsZS5kcml2ZXIuQXBwbGVCbHVldG9vdGhNdWx0aXRvdWNoLnRyYWNrcGFkLnBsaXN0
IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUu
ZHJpdmVyLkFwcGxlSElETW91c2UucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5pbnB1dG1ldGhvZGtpdC5wbGlzdCIpCisgICAgICAg
KGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLmlXb3JrLlBhZ2Vz
LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20u
YXBwbGUuTGF1bmNoU2VydmljZXMucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJy
YXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5NdWx0aXRvdWNoU3VwcG9ydC5wbGlzdCIpCisgICAg
ICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLm9wZW5nbC5w
bGlzdCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFw
cGxlLnNlY3VyaXR5LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVm
ZXJlbmNlcy9jb20uYXBwbGUuc2VjdXJpdHlfY29tbW9uLnBsaXN0IikKKyAgICAgICAoaG9tZS1s
aXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc3BlZWNoLnZvaWNlLnByZWZz
LnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20u
YXBwbGUuc3BlZWNoLnN5bnRoZXNpcy5nZW5lcmFsLnByZWZzLnBsaXN0IikKKyAgICAgICAoaG9t
ZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuc3lzdGVtc291bmQucGxp
c3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbS5hcHBs
ZS51bml2ZXJzYWxhY2Nlc3MucGxpc3QiKQorICAgICAgIChob21lLWxpdGVyYWwgIi9MaWJyYXJ5
L1ByZWZlcmVuY2VzL2NvbS5hcHBsZS5XZWJGb3VuZGF0aW9uLnBsaXN0IikKKyAgICAgICAoaG9t
ZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20ubnZpZGlhLk9wZW5HTC5wbGlzdCIp
CisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvcGJzLnBsaXN0IikK
KyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9QcmVmZXJlbmNlcy9jb20uYXBwbGUuU2Vy
dmljZXNNZW51LlNlcnZpY2VzLnBsaXN0IikKKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFy
eS9QcmVmZXJlbmNlcy9RdWlja1RpbWUgUHJlZmVyZW5jZXMiKQorCisgICAgICAgKGhvbWUtbGl0
ZXJhbCAiL0xpYnJhcnkvQ2FjaGVzL2NvbS5hcHBsZS5jb3JlYXVkaW8uY29tcG9uZW50cy5wbGlz
dCIpCisKKyAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvQ29tcG9uZW50
cyIpCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQXVkaW8vUGx1Zy1JbnMvQ29tcG9u
ZW50cyIpCisgICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L0F1ZGlvL1BsdWctSW5zL0hBTCIpCisg
ICAgICAgKHN1YnBhdGggIi9MaWJyYXJ5L1F1aWNrVGltZSIpCisgICAgICAgKGhvbWUtc3VicGF0
aCAiL0xpYnJhcnkvUXVpY2tUaW1lIikKKyAgICAgICAoc3VicGF0aCAiL0xpYnJhcnkvVmlkZW8v
UGx1Zy1JbnMiKQorCisgICAgICAgKGxpdGVyYWwgIi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBv
cnQvQ3Jhc2hSZXBvcnRlci9TdWJtaXREaWFnSW5mby5kb21haW5zIikKKworICAgICAgIChob21l
LWxpdGVyYWwgIi9MaWJyYXJ5L0FwcGxpY2F0aW9uIFN1cHBvcnQvU3luY1NlcnZpY2VzL0xvY2Fs
L0NsaWVudHNXaXRoQ2hhbmdlcy9jb20uYXBwbGUuS2V5Y2hhaW4iKQorCisgICAgICAgOzsgRklY
TUU6IFRoaXMgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiA8cmRhcjovL3Byb2JsZW0vMTA0Nzk2ODU+
IGlzIGZpeGVkLgorICAgICAgIChzdWJwYXRoICIvTGlicmFyeS9LZXljaGFpbnMiKQorKQorCis7
OyBSZWFkLXdyaXRlIHByZWZlcmVuY2VzIGFuZCBkYXRhCisoYWxsb3cgZmlsZSoKKyAgICAgICAo
aG9tZS1yZWdleCAjIi9MaWJyYXJ5L1ByZWZlcmVuY2VzL2NvbVwuYXBwbGVcLldlYktpdFwuUGx1
Z2luUHJvY2Vzc1wucGxpc3QiKQorCisgICAgICAgKGhvbWUtc3VicGF0aCAiL0xpYnJhcnkvQ2Fj
aGVzL1F1aWNrVGltZSIpCisKKyAgICAgICA7OyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVtb3Zl
ZCB3aGVuIDxyZGFyOi8vcHJvYmxlbS8xMDQ3OTY4NT4gaXMgZml4ZWQuCisgICAgICAgKGhvbWUt
c3VicGF0aCAiL0xpYnJhcnkvS2V5Y2hhaW5zIikpCisKKzs7IElPS2l0IHVzZXIgY2xpZW50cwor
KGFsbG93IGlva2l0LW9wZW4KKyAgICAgICAoaW9raXQtY29ubmVjdGlvbiAiSU9BY2NlbGVyYXRv
ciIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJBR1BNQ2xpZW50IikKKyAgICAg
ICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIkFwcGxlR3JhcGhpY3NDb250cm9sQ2xpZW50IikK
KyAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIkFwcGxlU05CRkJVc2VyQ2xpZW50IikK
KyAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIklPQWNjZWxlcmF0aW9uVXNlckNsaWVu
dCIpCisgICAgICAgKGlva2l0LXVzZXItY2xpZW50LWNsYXNzICJJT0F1ZGlvQ29udHJvbFVzZXJD
bGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9BdWRpb0VuZ2luZVVz
ZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9GcmFtZWJ1ZmZl
clNoYXJlZFVzZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9I
SURQYXJhbVVzZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAiSU9T
dXJmYWNlUm9vdFVzZXJDbGllbnQiKQorICAgICAgIChpb2tpdC11c2VyLWNsaWVudC1jbGFzcyAi
SU9TdXJmYWNlU2VuZFJpZ2h0IikKKyAgICAgICAoaW9raXQtdXNlci1jbGllbnQtY2xhc3MgIlJv
b3REb21haW5Vc2VyQ2xpZW50IikpCisKKzs7IFZhcmlvdXMgc2VydmljZXMgcmVxdWlyZWQgYnkg
QXBwS2l0IGFuZCBvdGhlciBmcmFtZXdvcmtzCisoYWxsb3cgbWFjaC1sb29rdXAKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Db3JlU2VydmljZXMuY29yZXNlcnZpY2VzZCIpCisgICAg
ICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUuRGlza0FyYml0cmF0aW9uLmRpc2thcmJpdHJhdGlv
bmQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkZpbGVDb29yZGluYXRpb24iKQor
ICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLkZvbnRPYmplY3RzU2VydmVyIikKKyAgICAg
ICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5Gb250U2VydmVyIikKKyAgICAgICAoZ2xvYmFsLW5h
bWUgImNvbS5hcHBsZS5JbWFnZUNhcHR1cmVFeHRlbnNpb24yLnByZXNlbmNlIikKKyAgICAgICAo
Z2xvYmFsLW5hbWUgImNvbS5hcHBsZS5TZWN1cml0eVNlcnZlciIpCisgICAgICAgKGdsb2JhbC1u
YW1lICJjb20uYXBwbGUuU3lzdGVtQ29uZmlndXJhdGlvbi5jb25maWdkIikKKyAgICAgICAoZ2xv
YmFsLW5hbWUgImNvbS5hcHBsZS5hdWRpby5WRENBc3Npc3RhbnQiKQorICAgICAgIChnbG9iYWwt
bmFtZSAiY29tLmFwcGxlLmF1ZGlvLmF1ZGlvaGFsZCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJj
b20uYXBwbGUuYXVkaW8uY29yZWF1ZGlvZCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUuY21pby5WRENBc3Npc3RhbnQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNv
b2tpZWQiKSA7OyBGSVhNRTogPHJkYXI6Ly9wcm9ibGVtLzEwNzkwNzY4PiBMaW1pdCBhY2Nlc3Mg
dG8gY29va2llcy4KKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5jdm1zU2VydiIpCisg
ICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUub2NzcGQiKQorICAgICAgIChnbG9iYWwtbmFt
ZSAiY29tLmFwcGxlLnBhc3RlYm9hcmQuMSIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUud2luZG93X3Byb3hpZXMiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLndpbmRv
d3NlcnZlci5hY3RpdmUiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLmNmbmV0d29y
ay5BdXRoQnJva2VyQWdlbnQiKQorICAgICAgIChnbG9iYWwtbmFtZSAiY29tLmFwcGxlLlBvd2Vy
TWFuYWdlbWVudC5jb250cm9sIikKKyAgICAgICAoZ2xvYmFsLW5hbWUtcmVnZXggIyJfT3BlblN0
ZXAkIikKKykKKworOzsgTmV0d29ya2luZworKGFsbG93IHN5c3RlbS1zb2NrZXQgKHNvY2tldC1k
b21haW4gQUZfUk9VVEUpKQorKGFsbG93IHN5c3RlbS1zb2NrZXQgKHJlcXVpcmUtYWxsIChzb2Nr
ZXQtZG9tYWluIEFGX1NZU1RFTSkgKHNvY2tldC1wcm90b2NvbCAyKSkpIDsgU1lTUFJPVE9fQ09O
VFJPTAorKGFsbG93IG5ldHdvcmstb3V0Ym91bmQKKyAgICAgICA7OyBLZXJuZWwgY29udHJvbHMK
KyAgICAgICAoY29udHJvbC1uYW1lICJjb20uYXBwbGUubmV0d29yay5zdGF0aXN0aWNzIikKKyAg
ICAgICAoY29udHJvbC1uYW1lICJjb20uYXBwbGUubmV0c3JjIikKKworICAgICAgIDs7IExvY2Fs
IG1ETlNSZXNwb25kZXIgZm9yIEROUywgYXJiaXRyYXJ5IG91dGJvdW5kIFRDUAorICAgICAgIChs
aXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL21ETlNSZXNwb25kZXIiKQorICAgICAgIChyZW1vdGUg
dGNwKSkKKworKGFsbG93IG1hY2gtbG9va3VwCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBw
bGUudHNtLnVpc2VydmVyIikKKyAgICAgICAobG9jYWwtbmFtZSAiY29tLmFwcGxlLnRzbS5wb3J0
bmFtZSIpCispCisKKzs7IE9wZW4gYW5kIFNhdmUgcGFuZWxzCisoZGVmaW5lIChhcHBseS1yZWFk
LWFuZC1pc3N1ZS1leHRlbnNpb24gb3AgcGF0aC1maWx0ZXIpCisgICAgICAgKG9wIGZpbGUtcmVh
ZCogcGF0aC1maWx0ZXIpCisgICAgICAgKG9wIGZpbGUtaXNzdWUtZXh0ZW5zaW9uIChyZXF1aXJl
LWFsbCAoZXh0ZW5zaW9uLWNsYXNzICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVhZCIpIHBhdGgt
ZmlsdGVyKSkpCisoZGVmaW5lIChhcHBseS13cml0ZS1hbmQtaXNzdWUtZXh0ZW5zaW9uIG9wIHBh
dGgtZmlsdGVyKQorICAgICAgIChvcCBmaWxlLXdyaXRlKiBwYXRoLWZpbHRlcikKKyAgICAgICAo
b3AgZmlsZS1pc3N1ZS1leHRlbnNpb24gKHJlcXVpcmUtYWxsIChleHRlbnNpb24tY2xhc3MgImNv
bS5hcHBsZS5hcHAtc2FuZGJveC5yZWFkLXdyaXRlIikgcGF0aC1maWx0ZXIpKSkKKyhkZWZpbmUg
KHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgcGF0aC1maWx0ZXIpCisgICAgICAgKGFw
cGx5LXJlYWQtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikKKyAgICAgICAo
YXBwbHktd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbiBhbGxvdyBwYXRoLWZpbHRlcikpCisoYWxs
b3cgcXRuLXVzZXIKKyAgICAgICAoZXh0ZW5zaW9uICJjb20uYXBwbGUuYXBwLXNhbmRib3gucmVh
ZC13cml0ZSIpKQorKHJlYWQtd3JpdGUtYW5kLWlzc3VlLWV4dGVuc2lvbnMgKGV4dGVuc2lvbiAi
Y29tLmFwcGxlLmFwcC1zYW5kYm94LnJlYWQtd3JpdGUiKSkKKworOzsgUHJpbnRpbmcKKyhhbGxv
dyBuZXR3b3JrLW91dGJvdW5kIChsaXRlcmFsICIvcHJpdmF0ZS92YXIvcnVuL2N1cHNkIikpCiso
YWxsb3cgbWFjaC1sb29rdXAKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wcmludHVp
dG9vbC5hZ2VudCIpCisgICAgICAgKGdsb2JhbC1uYW1lICJjb20uYXBwbGUucHJpbnR0b29sLmFn
ZW50IikKKyAgICAgICAoZ2xvYmFsLW5hbWUgImNvbS5hcHBsZS5wcmludHRvb2wuZGFlbW9uIikp
CisoYWxsb3cgZmlsZS1yZWFkKgorICAgICAgIChob21lLWxpdGVyYWwgIi8uY3Vwcy9scG9wdGlv
bnMiKQorICAgICAgIChob21lLWxpdGVyYWwgIi8uY3Vwcy9jbGllbnQuY29uZiIpCisgICAgICAg
KGxpdGVyYWwgIi9wcml2YXRlL2V0Yy9jdXBzL2NsaWVudC5jb25mIikKKyAgICAgICAobGl0ZXJh
bCAiL3ByaXZhdGUvZXRjL2N1cHMvbHBvcHRpb25zIikKKyAgICAgICAoc3VicGF0aCAiL3ByaXZh
dGUvZXRjL2N1cHMvcHBkIikKKyAgICAgICAoc3VicGF0aCAiL3ByaXZhdGUvdmFyL3J1bi9jdXBz
ZCIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvb3JnLmN1cHMu
UHJpbnRpbmdQcmVmcy5wbGlzdCIpKQorCis7OyBUZXh0IFNlcnZpY2VzIE1hbmFnZXIKKyhhbGxv
dyBpb2tpdC1zZXQtcHJvcGVydGllcyAoaW9raXQtcHJvcGVydHkgIkNhcHNMb2NrRGVsYXlPdmVy
cmlkZSIpKQorCis7OyBJbWFnZSBDYXB0dXJlICh1c2VkIGJ5IHByaW50IHByZXZpZXcgZGlhbG9n
KQorKGFsbG93IGFwcGxlZXZlbnQtc2VuZCAoYXBwbGVldmVudC1kZXN0aW5hdGlvbiAiY29tLmFw
cGxlLmltYWdlY2FwdHVyZWV4dGVuc2lvbjIiKSkKKworOzsgU2lsZW50bHkgYmxvY2sgYWNjZXNz
IHRvIHNvbWUgZmlsZXMKKyhkZW55IGZpbGUtcmVhZCogZmlsZS13cml0ZSogKHdpdGggbm8tbG9n
KQorICAgICAgIChob21lLXJlZ2V4ICMiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tXC5hcHBsZVwu
aW50ZXJuZXRjb25maWdwcml2XC5wbGlzdCIpCisgICAgICAgKGhvbWUtcmVnZXggIyIvTGlicmFy
eS9QcmVmZXJlbmNlcy9jb21cLmFwcGxlXC5pbnRlcm5ldGNvbmZpZ1wucGxpc3QiKQorCisgICAg
ICAgOzsgRklYTUU6IFNob3VsZCBiZSByZW1vdmVkIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS85NDIy
OTU3PiBpcyBmaXhlZC4KKyAgICAgICAoaG9tZS1saXRlcmFsICIvTGlicmFyeS9DYWNoZXMvQ2Fj
aGUuZGIiKQorCisgICAgICAgOzsgRklYTUU6IFNob3VsZCBiZSByZW1vdmVkIGFmdGVyIDxyZGFy
Oi8vcHJvYmxlbS8xMDQ2Mzg4MT4gaXMgZml4ZWQuCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xp
YnJhcnkvUHJlZmVyZW5jZXMvY29tLmFwcGxlLkxhdW5jaFNlcnZpY2VzLlF1YXJhbnRpbmVFdmVu
dHNWMiIpCisgICAgICAgKGhvbWUtbGl0ZXJhbCAiL0xpYnJhcnkvUHJlZmVyZW5jZXMvY29tLmFw
cGxlLkxhdW5jaFNlcnZpY2VzLlF1YXJhbnRpbmVFdmVudHNWMi1qb3VybmFsIikpCisKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHJldmlzaW9uIDEwOTEzNSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtODg2LDYgKzg4Niw5IEBACiAJCUUxMzRG
MDFBMTJFQTVEOTkwMDRFQzU4RCAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzRGMDE5MTJFQTVEOTkwMDRFQzU4RCAv
KiBXS1ByaW50aW5nVmlldy5tbSAqLzsgfTsKIAkJRTE3OUZEOUMxMzREMzgwNjAwMTVCODgzIC8q
IEFyZ3VtZW50Q29kZXJzTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTc5RkQ5QjEzNEQzODA2MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNNYWMu
aCAqLzsgfTsKIAkJRTE3OUZEOUYxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFj
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE3OUZE
OUUxMzREMzgyNTAwMTVCODgzIC8qIEFyZ3VtZW50Q29kZXJzTWFjLm1tICovOyB9OworCQlFMTdC
Rjk5NjE0RDBBNzNFMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTdCRjk5NTE0RDBBNzNF
MDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmggKi87IH07CisJCUUxN0JGOTk4
MTREMEFBODMwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTdCRjk5NzE0RDBBQTgzMDBB
NUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tICovOyB9OworCQlFMTdCRjk5QTE0
RDBDQkYxMDBBNUEwNjkgLyogY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnNiIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTdCRjk5OTE0RDBD
QkYxMDBBNUEwNjkgLyogY29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnNiICovOyB9Owog
CQlFMThDOTJGNDEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOEM5MkYzMTJEQjlFNzEwMENGMkFF
QiAvKiBQcmludEluZm8uY3BwICovOyB9OwogCQlFMTk5ODc1RTE0MkMwNDU0MDBCQjJERTcgLyog
QnVpbHRJblBERlZpZXcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE5OTg3NUMxNDJCRkM5NzAwQkIyREU3IC8qIEJ1aWx0SW5QREZWaWV3LmNwcCAq
LzsgfTsKIAkJRTFBMzE3MzIxMzRDRUE2QzAwN0M5QTRGIC8qIEF0dHJpYnV0ZWRTdHJpbmcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQTMxNzMxMTM0
Q0VBNkMwMDdDOUE0RiAvKiBBdHRyaWJ1dGVkU3RyaW5nLmggKi87IH07CkBAIC0xOTMyLDYgKzE5
MzUsOSBAQAogCQlFMTRFOTlGOTE0RDg3OUM5MDAxRDIyMUYgLyogYWRkLWVudGl0bGVtZW50cy5z
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
c2NyaXB0LnNoOyBwYXRoID0gImFkZC1lbnRpdGxlbWVudHMuc2giOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMTc5RkQ5QjEzNEQzODA2MDAxNUI4ODMgLyogQXJndW1lbnRDb2RlcnNN
YWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE3OUZEOUUxMzREMzgyNTAwMTVCODgz
IC8qIEFyZ3VtZW50Q29kZXJzTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gQXJndW1lbnRDb2RlcnNNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxN0JGOTk1MTREMEE3M0UwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0c2NhcGVTYW5kYm94RnVuY3Rp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxN0JGOTk3MTREMEFBODMwMEE1
QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxN0JGOTk5MTREMENCRjEwMEE1QTA2OSAvKiBjb20uYXBw
bGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gY29tLmFw
cGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnNiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMThDOTJGMzEyREI5RTcxMDBDRjJBRUIgLyogUHJpbnRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFByaW50SW5mby5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxOTk4NzVBMTQyQkY5QjgwMEJCMkRFNyAvKiBCdWlsdEluUERGVmlldy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCdWlsdEluUERGVmlldy5oOyBwYXRo
ID0gUERGL0J1aWx0SW5QREZWaWV3Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUx
OTk4NzVDMTQyQkZDOTcwMEJCMkRFNyAvKiBCdWlsdEluUERGVmlldy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBCdWlsdEluUERGVmlldy5jcHA7IHBhdGggPSBQREYv
QnVpbHRJblBERlZpZXcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEyMyw2
ICsyMTI5LDcgQEAKIAkJCQkxQTBFQzgwMjEyNEJENDFFMDA3RUY0QTUgLyogUGx1Z2luUHJvY2Vz
c01haW5NYWMubW0gKi8sCiAJCQkJMUFDMjVGODkxMkE0OEUwMzAwQkQyNjcxIC8qIFBsdWdpblBy
b2Nlc3NTaGltLmggKi8sCiAJCQkJMUFDMjVGOEExMkE0OEUwMzAwQkQyNjcxIC8qIFBsdWdpblBy
b2Nlc3NTaGltLm1tICovLAorCQkJCUUxN0JGOTk5MTREMENCRjEwMEE1QTA2OSAvKiBjb20uYXBw
bGUuV2ViS2l0LlBsdWdpblByb2Nlc3Muc2IgKi8sCiAJCQkJRTE0RTk5RjkxNEQ4NzlDOTAwMUQy
MjFGIC8qIGFkZC1lbnRpdGxlbWVudHMuc2ggKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKQEAg
LTIyNTAsNiArMjI1Nyw4IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTFBRTVCN0Y5MTFFN0FFRDIwMEJBNjc2NyAvKiBOZXRzY2FwZVBsdWdpbk1hYy5tbSAqLywK
KwkJCQlFMTdCRjk5NTE0RDBBNzNFMDBBNUEwNjkgLyogTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25z
LmggKi8sCisJCQkJRTE3QkY5OTcxNEQwQUE4MzAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1
bmN0aW9ucy5tbSAqLywKIAkJCQkxQTJEOTIyMDEyODFEQzFCMDAxRUI5NjIgLyogUGx1Z2luUHJv
eHlNYWMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IG1hYzsKQEAgLTM2OTUsNiArMzcwNCw3IEBA
CiAJCQlpc2EgPSBQQlhIZWFkZXJzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0aW9uTWFzayA9IDIx
NDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKKwkJCQlFMTdCRjk5QTE0RDBDQkYxMDBBNUEwNjkgLyog
Y29tLmFwcGxlLldlYktpdC5QbHVnaW5Qcm9jZXNzLnNiIGluIFJlc291cmNlcyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTQx
MzcsNiArNDE0Nyw3IEBACiAJCQkJQkZBNjE3OUYxMkYwQjk5RDAwMzNFMENBIC8qIFdLVmlld1By
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMkU2RThFMTE0MTk3MTUwMEE2M0IxRSAvKiBX
b3JrUXVldWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjQyRTg3MTRCQkJCQjIwMDQyNzJGNyAv
KiBLZXljaGFpblNoaW1SZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTE3QkY5OTYx
NEQwQTczRTAwQTVBMDY5IC8qIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNFMDkzNzgxNEZCMTI4QzAwMTEzOEQ5IC8qIFJlbW90ZUxheWVyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKQEAgLTQzMDAsNiArNDMxMSw3IEBACiAJCQlpc2EgPSBQQlhSZXNvdXJjZXNCdWls
ZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAor
CQkJCUUxN0JGOTlBMTREMENCRjEwMEE1QTA2OSAvKiBjb20uYXBwbGUuV2ViS2l0LlBsdWdpblBy
b2Nlc3Muc2IgaW4gUmVzb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDg3NCw2ICs0ODg2LDcgQEAKIAkJCQlCQzg2
OTlCNjExNkFBREFBMDAyQTkyNUIgLyogV0tWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMy
RTZFOEQxMTQxOTcxNTAwQTYzQjFFIC8qIFdvcmtRdWV1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzAwOTJGODExNTgzN0EzMDBFMEFFMkEgLyogV29ya1F1ZXVlTWFjLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUUxN0JGOTk4MTREMEFBODMwMEE1QTA2OSAvKiBOZXRzY2FwZVNhbmRib3hGdW5j
dGlvbnMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0UwOTM3NzE0RkIxMjhDMDAxMTM4RDkgLyog
UmVtb3RlTGF5ZXJDbGllbnQubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBl
QnJvd3NlckZ1bmNzLmNwcAkocmV2aXNpb24gMTA5MTM1KQorKysgU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsNiArMzYsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZl
ci5oPgogI2luY2x1ZGUgPHV0aWxpdHk+CiAKKyNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFS
RCkKKyNpbmNsdWRlICJOZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKKyNlbmRpZgorCiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTQxMSw2ICs0
MTUsOCBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgV0tOVkV4cGVjdHNOb25yZXRhCiAvLyBXaGV0
aGVyIHBsdWctaW4gY29kZSBpcyBhbGxvd2VkIHRvIGVudGVyIChhcmJpdHJhcnkpIHNhbmRib3gg
Zm9yIHRoZSBwcm9jZXNzLgogc3RhdGljIGNvbnN0IHVuc2lnbmVkIFdLTlZBbGxvd2VkVG9FbnRl
clNhbmRib3ggPSA3NDY1ODsKIAorLy8gV0tOVlNhbmRib3hGdW5jdGlvbnMgPSA3NDY1OSBpcyBk
ZWZpbmVkIGluIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucy5oCisKIC8vIFRoZSBDb3JlIEFuaW1h
dGlvbiByZW5kZXIgc2VydmVyIHBvcnQuCiBzdGF0aWMgY29uc3QgdW5zaWduZWQgV0tOVkNBTGF5
ZXJSZW5kZXJTZXJ2ZXJQb3J0ID0gNzE4Nzk7CiAKQEAgLTUwMiw2ICs1MDgsMTQgQEAgc3RhdGlj
IE5QRXJyb3IgTlBOX0dldFZhbHVlKE5QUCBucHAsIE5QTgogICAgICAgICAgICAgKihOUEJvb2wq
KXZhbHVlID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogCisjaWYgUExBVEZPUk0oTUFDKSAm
JiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKSB8fCAhZGVmaW5lZChCVUlMRElOR19PTl9T
Tk9XX0xFT1BBUkQpCisgICAgICAgIGNhc2UgV0tOVlNhbmRib3hGdW5jdGlvbnM6CisgICAgICAg
IHsKKyAgICAgICAgICAgICooV0tOU2FuZGJveEZ1bmN0aW9ucyAqKil2YWx1ZSA9IG5ldHNjYXBl
U2FuZGJveEZ1bmN0aW9ucygpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNlbmRp
ZgorCiAjaWZuZGVmIE5QX05PX1FVSUNLRFJBVwogICAgICAgICBjYXNlIE5QTlZzdXBwb3J0c1F1
aWNrRHJhd0Jvb2w6CiAgICAgICAgICAgICAvLyBXZSBkb24ndCBzdXBwb3J0IHRoZSBRdWlja0Ry
YXcgZHJhd2luZyBtb2RlbC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL21hYy9OZXRzY2FwZVNh
bmRib3hGdW5jdGlvbnMuaAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLmgJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE5ldHNjYXBlU2Fu
ZGJveEZ1bmN0aW9uc19oCisjZGVmaW5lIE5ldHNjYXBlU2FuZGJveEZ1bmN0aW9uc19oCisKKyNp
bmNsdWRlIDxXZWJDb3JlL25wYXBpLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJD
IiB7CisjZW5kaWYKKyAgICAKKyNkZWZpbmUgV0tOVlNhbmRib3hGdW5jdGlvbnMgNzQ2NTkKKyNk
ZWZpbmUgV0tOVlNhbmRib3hGdW5jdGlvbnNWZXJzaW9uQ3VycmVudCAxCisKK3R5cGVkZWYgTlBF
cnJvciAoKldLTl9FbnRlclNhbmRib3hQcm9jUHRyKShjb25zdCBjaGFyICpyZWFkT25seVBhdGhz
W10sIGNvbnN0IGNoYXIgKnJlYWRXcml0ZVBhdGhzW10pOwordHlwZWRlZiBOUEVycm9yICgqV0tO
X0ZpbGVTdG9wQWNjZXNzaW5nUHJvY1B0cikoY29uc3QgY2hhciogcGF0aCk7CisKK05QRXJyb3Ig
V0tOX0VudGVyU2FuZGJveChjb25zdCBjaGFyICpyZWFkT25seVBhdGhzW10sIGNvbnN0IGNoYXIg
KnJlYWRXcml0ZVBhdGhzW10pOworTlBFcnJvciBXS05fRmlsZVN0b3BBY2Nlc3NpbmcoY29uc3Qg
Y2hhciogcGF0aCk7CisKK3R5cGVkZWYgc3RydWN0IF9XS05TYW5kYm94RnVuY3Rpb25zIHsKKyAg
ICB1aW50MTZfdCBzaXplOworICAgIHVpbnQxNl90IHZlcnNpb247CisgICAgCisgICAgV0tOX0Vu
dGVyU2FuZGJveFByb2NQdHIgZW50ZXJTYW5kYm94OworICAgIFdLTl9GaWxlU3RvcEFjY2Vzc2lu
Z1Byb2NQdHIgZmlsZVN0b3BBY2Nlc3Npbmc7Cit9IFdLTlNhbmRib3hGdW5jdGlvbnM7CisKK1dL
TlNhbmRib3hGdW5jdGlvbnMqIG5ldHNjYXBlU2FuZGJveEZ1bmN0aW9ucygpOworCisjaWZkZWYg
X19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5k
Ym94RnVuY3Rpb25zLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQogICArIG5hdGl2
ZQoKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMv
TmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25z
Lm1tCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL21hYy9OZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMubW0JKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJO
ZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMuaCIKKworI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX0xF
T1BBUkQpIHx8ICFkZWZpbmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkKKworI2ltcG9ydCAi
UGx1Z2luUHJvY2Vzcy5oIgorI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlLmgiCisjaW1w
b3J0IDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcu
aD4KKyNpbXBvcnQgPHN5cy9zdGF0Lmg+CisjaW1wb3J0IDxzeXNleGl0cy5oPgorI2ltcG9ydCA8
d3RmL1JldGFpblB0ci5oPgorI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgorI2ltcG9ydCA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgorCitTT0ZUX0xJTktfRlJBTUVXT1JLKENvcmVTZXJ2aWNlcykKK1NPRlRf
TElOS19PUFRJT05BTChDb3JlU2VydmljZXMsIENGVVJMU3RvcEFjY2Vzc2luZ1NlY3VyaXR5U2Nv
cGVkUmVzb3VyY2UsIHZvaWQsIHVudXNlZCwgKENGVVJMUmVmKSkKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitXS05TYW5kYm94RnVuY3Rpb25z
KiBuZXRzY2FwZVNhbmRib3hGdW5jdGlvbnMoKQoreworICAgIHN0YXRpYyBXS05TYW5kYm94RnVu
Y3Rpb25zIGZ1bmN0aW9ucyA9IHsKKyAgICAgICAgc2l6ZW9mKFdLTlNhbmRib3hGdW5jdGlvbnMp
LAorICAgICAgICBXS05WU2FuZGJveEZ1bmN0aW9uc1ZlcnNpb25DdXJyZW50LAorICAgICAgICBX
S05fRW50ZXJTYW5kYm94LAorICAgICAgICBXS05fRmlsZVN0b3BBY2Nlc3NpbmcKKyAgICB9Owor
ICAgIHJldHVybiAmZnVuY3Rpb25zOworfQorCitzdGF0aWMgYm9vbCBlbnRlcmVkU2FuZGJveDsK
Kworc3RhdGljIENTdHJpbmcgcmVhZFNhbmRib3hQcm9maWxlKCkKK3sKKyAgICBSZXRhaW5QdHI8
Q0ZVUkxSZWY+IHByb2ZpbGVVUkwoQWRvcHRDRiwgQ0ZCdW5kbGVDb3B5UmVzb3VyY2VVUkwoQ0ZC
dW5kbGVHZXRNYWluQnVuZGxlKCksIENGU1RSKCJwbHVnaW4iKSwgQ0ZTVFIoInNiIiksIDApKTsK
KyAgICBjaGFyIHByb2ZpbGVQYXRoW1BBVEhfTUFYXTsKKyAgICBpZiAoIUNGVVJMR2V0RmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHByb2ZpbGVVUkwuZ2V0KCksIGZhbHNlLCByZWludGVycHJldF9j
YXN0PFVJbnQ4Kj4ocHJvZmlsZVBhdGgpLCBzaXplb2YocHJvZmlsZVBhdGgpKSkgeworICAgICAg
ICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBnZXQgZmlsZSBzeXN0ZW0gcmVwcmVzZW50YXRp
b24gb2YgcGx1Zy1pbiBzYW5kYm94IFVSTFxuIik7CisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7
CisgICAgfQorCisgICAgRklMRSAqZmlsZSA9IGZvcGVuKHByb2ZpbGVQYXRoLCAiciIpOworICAg
IGlmICghZmlsZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCBvcGVuIHBs
dWctaW4gc2FuZGJveCBmaWxlICclcydcbiIsIHByb2ZpbGVQYXRoKTsKKyAgICAgICAgcmV0dXJu
IENTdHJpbmcoKTsKKyAgICB9CisKKyAgICBzdHJ1Y3Qgc3RhdCBmaWxlSW5mbzsKKyAgICBpZiAo
c3RhdChwcm9maWxlUGF0aCwgJmZpbGVJbmZvKSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IkNvdWxkIG5vdCBnZXQgcGx1Zy1pbiBzYW5kYm94IGZpbGUgc2l6ZSAnJXMnXG4iLCBwcm9maWxl
UGF0aCk7CisgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgfQorCisgICAgY2hhciogY2hh
cmFjdGVyQnVmZmVyOworICAgIENTdHJpbmcgcmVzdWx0ID0gQ1N0cmluZzo6bmV3VW5pbml0aWFs
aXplZChmaWxlSW5mby5zdF9zaXplLCBjaGFyYWN0ZXJCdWZmZXIpOworCisgICAgaWYgKDEgIT0g
ZnJlYWQoY2hhcmFjdGVyQnVmZmVyLCBmaWxlSW5mby5zdF9zaXplLCAxLCBmaWxlKSkgeworICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIkNvdWxkIG5vdCByZWFkIHBsdWctaW4gc2FuZGJveCBmaWxl
ICclcydcbiIsIHByb2ZpbGVQYXRoKTsKKyAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICB9
CisKKyAgICBmY2xvc2UoZmlsZSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitOUEVycm9y
IFdLTl9FbnRlclNhbmRib3goY29uc3QgY2hhciogcmVhZE9ubHlQYXRoc1tdLCBjb25zdCBjaGFy
KiByZWFkV3JpdGVQYXRoc1tdKQoreworICAgIGlmIChlbnRlcmVkU2FuZGJveCkKKyAgICAgICAg
cmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAgICBDU3RyaW5nIHByb2ZpbGUgPSByZWFk
U2FuZGJveFByb2ZpbGUoKTsKKyAgICBpZiAocHJvZmlsZS5pc051bGwoKSkKKyAgICAgICAgZXhp
dChFWF9OT1BFUk0pOworCisgICAgVmVjdG9yPGNvbnN0IGNoYXIqPiBleHRlbmRlZFJlYWRPbmx5
UGF0aHM7CisgICAgaWYgKHJlYWRPbmx5UGF0aHMpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgcmVhZE9ubHlQYXRoc1tpXTsgKytpKQorICAgICAgICAgICAgZXh0ZW5kZWRSZWFkT25s
eVBhdGhzLmFwcGVuZChyZWFkT25seVBhdGhzW2ldKTsKKyAgICB9CisKKyAgICBDU3RyaW5nIHBs
dWdpbk1vZHVsZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oUGx1Z2luUHJvY2Vzczo6
c2hhcmVkKCkucGx1Z2luUGF0aCgpKTsKKyAgICBleHRlbmRlZFJlYWRPbmx5UGF0aHMuYXBwZW5k
KHBsdWdpbk1vZHVsZVBhdGguZGF0YSgpKTsKKworICAgIC8vIE9uLWRpc2sgV2ViS2l0IGZyYW1l
d29yayBsb2NhdGlvbnMsIHRvIGFjY291bnQgZm9yIGRlYnVnIGluc3RhbGxhdGlvbnMuCisgICAg
Ly8gQWxsb3dpbmcgdGhlIHdob2xlIGRpcmVjdG9yeSBjb250YWluaW5nIFdlYktpdDIuZnJhbWV3
b3JrIGZvciB0aGUgc2FrZSBvZiBBUElzIHRoYXQgaW1wbGljaXRseSBsb2FkIG90aGVyIFdlYktp
dCBmcmFtZXdvcmtzLgorICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gbG9hZCB0aGVtIG5vdywgYW5k
IHRodXMgZG9uJ3QgaGF2ZSBhbnkgYmV0dGVyIGlkZWEgb2Ygd2hlcmUgdGhleSBhcmUgbG9jYXRl
ZCBvbiBkaXNrLgorICAgIGV4dGVuZGVkUmVhZE9ubHlQYXRocy5hcHBlbmQoW1tbW1tOU0J1bmRs
ZSBidW5kbGVXaXRoSWRlbnRpZmllcjpAImNvbS5hcHBsZS5XZWJLaXQyIl0gYnVuZGxlVVJMXSBV
UkxCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHBhdGhdIGZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbl0pOworCisgICAgZXh0ZW5kZWRSZWFkT25seVBhdGhzLmFwcGVuZChzdGF0aWNfY2FzdDxj
b25zdCBjaGFyKj4oMCkpOworCisgICAgVmVjdG9yPGNvbnN0IGNoYXIqPiBleHRlbmRlZFJlYWRX
cml0ZVBhdGhzOworICAgIGlmIChyZWFkV3JpdGVQYXRocykgeworICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyByZWFkV3JpdGVQYXRoc1tpXTsgKytpKQorICAgICAgICAgICAgZXh0ZW5kZWRS
ZWFkV3JpdGVQYXRocy5hcHBlbmQocmVhZFdyaXRlUGF0aHNbaV0pOworICAgIH0KKworICAgIC8v
IEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMTA3ODU0NTc+IFVzZSBhIGN1c3RvbSB0ZW1wb3Jhcnkg
ZGlyZWN0b3J5LgorICAgIGNoYXIgZGFyd2luVXNlclRlbXBEaXJlY3RvcnlbUEFUSF9NQVhdOwor
ICAgIGlmIChjb25mc3RyKF9DU19EQVJXSU5fVVNFUl9URU1QX0RJUiwgZGFyd2luVXNlclRlbXBE
aXJlY3RvcnksIFBBVEhfTUFYKSA+IDApCisgICAgICAgIGV4dGVuZGVkUmVhZFdyaXRlUGF0aHMu
YXBwZW5kKGRhcndpblVzZXJUZW1wRGlyZWN0b3J5KTsKKworICAgIC8vIEZJWE1FOiA8cmRhcjov
L3Byb2JsZW0vMTA3OTIwNDc+IFVzZSBhIGN1c3RvbSBjYWNoZSBkaXJlY3RvcnkuCisgICAgY2hh
ciBkYXJ3aW5Vc2VyQ2FjaGVEaXJlY3RvcnlbUEFUSF9NQVhdOworICAgIHNpemVfdCBkYXJ3aW5V
c2VyQ2FjaGVQYXRoU2l6ZSA9IGNvbmZzdHIoX0NTX0RBUldJTl9VU0VSX0NBQ0hFX0RJUiwgZGFy
d2luVXNlckNhY2hlRGlyZWN0b3J5LCBQQVRIX01BWCk7CisgICAgaWYgKGRhcndpblVzZXJDYWNo
ZVBhdGhTaXplID4gMCkKKyAgICAgICAgZXh0ZW5kZWRSZWFkV3JpdGVQYXRocy5hcHBlbmQoZGFy
d2luVXNlckNhY2hlRGlyZWN0b3J5KTsKKworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gY2Fj
aGVQYXRoKEFkb3B0Q0YsIFdLQ29weUZvdW5kYXRpb25DYWNoZURpcmVjdG9yeSgpKTsKKyAgICBl
eHRlbmRlZFJlYWRXcml0ZVBhdGhzLmFwcGVuZChbKE5TU3RyaW5nICopY2FjaGVQYXRoLmdldCgp
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0pOworCisgICAgZXh0ZW5kZWRSZWFkV3JpdGVQYXRo
cy5hcHBlbmQoc3RhdGljX2Nhc3Q8Y29uc3QgY2hhcio+KDApKTsKKworICAgIC8vIFdLRW50ZXJQ
bHVnaW5TYW5kYm94IGNhbm9uaWNhbGl6ZXMgcGF0aCBhcnJheXMsIGJ1dCBub3QgcGFyYW1ldGVy
cyAoYmVjYXVzZSBpdCBjYW5ub3Qga25vdyBpZiBvbmUgaXMgYSBwYXRoKS4KKyAgICBjaGFyKiBo
b21lRGlyZWN0b3J5ID0gcmVhbHBhdGgoW05TSG9tZURpcmVjdG9yeSgpIGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbl0sIDApOworICAgIGlmICghaG9tZURpcmVjdG9yeSkKKyAgICAgICAgZXhpdChF
WF9OT1BFUk0pOworICAgIGNvbnN0IGNoYXIqIHNhbmRib3hQYXJhbWV0ZXJzW10gPSB7ICJIT01F
X0RJUiIsIGhvbWVEaXJlY3RvcnksIDAsIDAgfTsKKworICAgIGlmICghV0tFbnRlclBsdWdpblNh
bmRib3gocHJvZmlsZS5kYXRhKCksIHNhbmRib3hQYXJhbWV0ZXJzLCBleHRlbmRlZFJlYWRPbmx5
UGF0aHMuZGF0YSgpLCBleHRlbmRlZFJlYWRXcml0ZVBhdGhzLmRhdGEoKSkpIHsKKyAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJDb3VsZG4ndCBpbml0aWFsaXplIHNhbmRib3ggcHJvZmlsZVxuIik7
CisgICAgICAgIGV4aXQoRVhfTk9QRVJNKTsKKyAgICB9CisKKyAgICBpZiAobm9FcnIgIT0gV0tF
bmFibGVTYW5kYm94U3R5bGVGaWxlUXVhcmFudGluZSgpKSB7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiQ291bGRuJ3QgZW5hYmxlIGZpbGUgcXVhcmFudGluZVxuIik7CisgICAgICAgIGV4aXQo
RVhfTk9QRVJNKTsKKyAgICB9CisKKyAgICBmcmVlKGhvbWVEaXJlY3RvcnkpOworICAgIGVudGVy
ZWRTYW5kYm94ID0gdHJ1ZTsKKyAgICByZXR1cm4gTlBFUlJfTk9fRVJST1I7Cit9CisKK05QRXJy
b3IgV0tOX0ZpbGVTdG9wQWNjZXNzaW5nKGNvbnN0IGNoYXIqIHBhdGgpCit7CisgICAgaWYgKCFl
bnRlcmVkU2FuZGJveCkKKyAgICAgICAgcmV0dXJuIE5QRVJSX0dFTkVSSUNfRVJST1I7CisKKyAg
ICBpZiAoIUNGVVJMU3RvcEFjY2Vzc2luZ1NlY3VyaXR5U2NvcGVkUmVzb3VyY2VQdHIoKSkKKyAg
ICAgICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOworCisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiB1cmxTdHJpbmcoQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKDAsIHBhdGgpKTsKKyAgICBpZiAoIXVybFN0cmluZykKKyAgICAgICAgcmV0dXJuIE5Q
RVJSX0lOVkFMSURfUEFSQU07CisgICAgUmV0YWluUHRyPENGVVJMUmVmPiB1cmwoQWRvcHRDRiwg
Q0ZVUkxDcmVhdGVXaXRoRmlsZVN5c3RlbVBhdGgoMCwgdXJsU3RyaW5nLmdldCgpLCBrQ0ZVUkxQ
T1NJWFBhdGhTdHlsZSwgZmFsc2UpKTsKKworICAgIENGVVJMU3RvcEFjY2Vzc2luZ1NlY3VyaXR5
U2NvcGVkUmVzb3VyY2VQdHIoKSh1cmwuZ2V0KCkpOworCisgICAgcmV0dXJuIE5QRVJSX05PX0VS
Uk9SOworfQorCisjZW5kaWYKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9tYWMvTmV0c2NhcGVTYW5kYm94RnVuY3Rpb25zLm1t
Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>129330</attachid>
            <date>2012-02-28 14:21:46 -0800</date>
            <delta_ts>2012-02-28 14:27:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79709-20120228192144.patch</filename>
            <type>text/plain</type>
            <size>2132</size>
            <attacher name="Rafael Brandao">rafael.lobo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA5MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNTBiNjgzNzljMTUzYWNm
MGM4NjViY2E2Y2FjOGIwMDY2NjNhZGIwOC4uOTQxNTMwOWNkMDM5OTg5ZTQwYTBkYzU4Yzg0ZGFk
ODQ1ZjVhMTkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTAyLTI4ICBSYWZh
ZWwgQnJhbmRhbyAgPHJhZmFlbC5sb2JvQG9wZW5ib3NzYS5vcmc+CisKKyAgICAgICAgW01hY10g
QWRkIGFuIGV4cGVyaW1lbnRhbCBTUEkgZm9yIHBsdWctaW5zIHRvIGVudGVyIHNhbmRib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc5NzA5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwlUaGlzIGlzIGEgYnVpbGQtZml4
IGZvciBxdCBhZnRlciByMTA5MTQzLgorCisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwOgor
CiAyMDEyLTAyLTI4ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtNYWNdIEFkZCBhbiBleHBlcmltZW50YWwgU1BJIGZvciBwbHVnLWlucyB0byBlbnRlciBz
YW5kYm94CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQppbmRleCAxNGQ3Yjk5NjRlMmI1NDM3ZTA2NjA0Njk1Yjc0YWI4NDkx
YjQ5ODJhLi5iZjFlODc3ZDJmNGJjNzEyYzQ1NGIxZDJiNWVjYjI0ZTE5MzU4MGExIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKQEAgLTMxOSw3ICszMTksNyBAQCBIRUFERVJTICs9IFwKICAgICBXZWJQcm9jZXNzL1Bs
dWdpbnMvTmV0c2NhcGUvTlBKU09iamVjdC5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0
c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OUFJ1bnRpbWVVdGlsaXRpZXMuaCBcCi0gICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNj
YXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcCBcCisgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL05l
dHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmggXAogICAgIFdlYlByb2Nlc3MvUGx1Z2lucy9O
ZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oIFwKICAgICBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2Nh
cGUvTmV0c2NhcGVQbHVnaW5TdHJlYW0uaCBcCiAgICAgV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bi5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRz
Y2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IGRmMGU5OTVl
MDRjYzAyMDg1N2Q1NDJjOTkxMzQyYmZiODY1MDAxYTMuLmJhMDE3YjczYzU0NDNiZmJlNGVjNmVk
ZjJkYTU0NGY3Y2QzOTlhZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNw
cApAQCAtMzYsNyArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CiAj
aW5jbHVkZSA8dXRpbGl0eT4KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJ
TkdfT05fTEVPUEFSRCkgfHwgIWRlZmluZWQoQlVJTERJTkdfT05fU05PV19MRU9QQVJEKQorI2lm
IFBMQVRGT1JNKE1BQykgJiYgKCFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpIHx8ICFkZWZp
bmVkKEJVSUxESU5HX09OX1NOT1dfTEVPUEFSRCkpCiAjaW5jbHVkZSAiTmV0c2NhcGVTYW5kYm94
RnVuY3Rpb25zLmgiCiAjZW5kaWYKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>