<?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>86555</bug_id>
          
          <creation_ts>2012-05-15 18:21:22 -0700</creation_ts>
          <short_desc>[V8] Shadow DOM should be per-window-configurable.</short_desc>
          <delta_ts>2012-05-21 23:29:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</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>
          
          <blocked>86984</blocked>
    
    <blocked>87063</blocked>
    
    <blocked>87086</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>624810</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-15 18:21:22 -0700</bug_when>
    <thetext>Currently constructors can be turned on/off based on RuntimeEnabledFeatures. 
But sometimes it is desirable if the such switch can be pulled from Settings instead of RuntimeEnabledFeatures.

A rough idea is that we could interrupt the constructor creation to see the flag.
I&apos;m taking a closer look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>624822</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-15 18:31:19 -0700</bug_when>
    <thetext>I think you&apos;re going to need to do it on a v8::Context by v8::Context basis, when the context is created.  The tricky part is going to be the boilerplate templates, which you&apos;re going to have to figure out a way to have more than on static copy of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625272</commentid>
    <comment_count>2</comment_count>
      <attachid>142224</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-16 04:41:55 -0700</bug_when>
    <thetext>Created attachment 142224
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625276</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-16 04:47:24 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; I think you&apos;re going to need to do it on a v8::Context by v8::Context basis, when the context is created.  The tricky part is going to be the boilerplate templates, which you&apos;re going to have to figure out a way to have more than on static copy of.

Yeah exactly.
I&apos;m trying to factor per-context properties out to a function which injects such properties _after_ 
object creation.  This will work only with DOMWindow. But it should be sufficient for our purpose.

Is it possible for chrome extensions to host child frames of wild domains in  their chrome:// frame?
In that case, we cannot rely on this assumption which uses per-Settings based configuration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625608</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-16 10:32:21 -0700</bug_when>
    <thetext>They can and many do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628686</commentid>
    <comment_count>5</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-20 18:02:26 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; They can and many do.
Hmm. I need to change the direction...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628770</commentid>
    <comment_count>6</comment_count>
      <attachid>142944</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-20 22:13:23 -0700</bug_when>
    <thetext>Created attachment 142944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628772</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-20 22:15:18 -0700</bug_when>
    <thetext>Hi Adam and Dimitri, could you take a look?
I&apos;m going to extend WebPermissionClient to disclose shadow stuff only for chrome:// pages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628780</commentid>
    <comment_count>8</comment_count>
      <attachid>142944</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-20 22:24:44 -0700</bug_when>
    <thetext>Comment on attachment 142944
Patch

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

So, this only works for DOMWindow objects?  For other types of objects we&apos;ll get in trouble with object templates.

&gt; Source/WebCore/bindings/scripts/IDLAttributes.txt:114
&gt; +V8EnabledAtContext=*

Can you add a run-bindings-test for this attribute?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628781</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-20 22:25:35 -0700</bug_when>
    <thetext>This approach seems plausible.  @haraken: Would you be willing to take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628787</commentid>
    <comment_count>10</comment_count>
      <attachid>142944</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-05-20 22:44:37 -0700</bug_when>
    <thetext>Comment on attachment 142944
Patch

Attachment 142944 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/12746009</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628788</commentid>
    <comment_count>11</comment_count>
      <attachid>142944</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-20 22:45:04 -0700</bug_when>
    <thetext>Comment on attachment 142944
Patch

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

The approach looks good to me.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2876
&gt; +    foreach my $runtime_attr (@enabledAtContext) {

Nit: $runtimeAttr

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2877
&gt; +        my $enable_function = GetContextEnableFunction($runtime_attr-&gt;signature);

Nit: $enableFunction

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3989
&gt; +    # Otherwise return a function named {methodName}Allowed().

{methodName} is wrong.

&gt;&gt; Source/WebCore/bindings/scripts/IDLAttributes.txt:114
&gt;&gt; +V8EnabledAtContext=*
&gt; 
&gt; Can you add a run-bindings-test for this attribute?

&quot;V8EnabledPerDOMWindow&quot; might be clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628870</commentid>
    <comment_count>12</comment_count>
      <attachid>142965</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 01:34:32 -0700</bug_when>
    <thetext>Created attachment 142965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628872</commentid>
    <comment_count>13</comment_count>
      <attachid>142966</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 01:36:58 -0700</bug_when>
    <thetext>Created attachment 142966
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628919</commentid>
    <comment_count>14</comment_count>
      <attachid>142979</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 03:06:17 -0700</bug_when>
    <thetext>Created attachment 142979
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>628920</commentid>
    <comment_count>15</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 03:07:57 -0700</bug_when>
    <thetext>Hi Adam, Haraken, 
Thanks for taking a look! I updated the patch.

(In reply to comment #11)
&gt; (From update of attachment 142944 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=142944&amp;action=review
&gt; 
&gt; The approach looks good to me.
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2876
&gt; &gt; +    foreach my $runtime_attr (@enabledAtContext) {
&gt; 
&gt; Nit: $runtimeAttr
Done.

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2877
&gt; &gt; +        my $enable_function = GetContextEnableFunction($runtime_attr-&gt;signature);
&gt; 
&gt; Nit: $enableFunction
Done.

&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3989
&gt; &gt; +    # Otherwise return a function named {methodName}Allowed().
&gt; 
&gt; {methodName} is wrong.
Sure. Clarified.

&gt; 
&gt; &gt;&gt; Source/WebCore/bindings/scripts/IDLAttributes.txt:114
&gt; &gt;&gt; +V8EnabledAtContext=*
&gt; &gt; 
&gt; &gt; Can you add a run-bindings-test for this attribute?
Sure. Added.

&gt; 
&gt; &quot;V8EnabledPerDOMWindow&quot; might be clearer?
I prefer &quot;Context&quot; since the concept isn&apos;t limited to the DOMWindow.
I generalized the generator no to limit the attribute for DOMWindow to reflect the intension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629144</commentid>
    <comment_count>16</comment_count>
      <attachid>142979</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-05-21 09:01:32 -0700</bug_when>
    <thetext>Comment on attachment 142979
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        This change introduces an IDL attribute named &quot;V8EnabledAtContext&quot;

Bikeshedding: V8EnabledPerContext? &quot;at context&quot; sounds awkward.

&gt; Source/WebCore/bindings/generic/RuntimeEnabledFeatures.h:229
&gt; +    static bool shadowDOMAllowed(DOMWindow*);

Sounds like this is no longer a runtime-enabled feature? Should we have a new class ContextEnabledFeatures?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629870</commentid>
    <comment_count>17</comment_count>
      <attachid>143173</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 19:38:14 -0700</bug_when>
    <thetext>Created attachment 143173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629871</commentid>
    <comment_count>18</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 19:39:45 -0700</bug_when>
    <thetext>Hi Dimitri, thanks for the comment!
I addressed your point.

Haraken, could you rubberstamp this?
I&apos;d like to move to the next step during the PST night ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629873</commentid>
    <comment_count>19</comment_count>
      <attachid>143173</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-05-21 19:44:19 -0700</bug_when>
    <thetext>Comment on attachment 143173
Patch

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

rs=me

&gt; Source/WebCore/bindings/scripts/IDLAttributes.txt:114
&gt; +V8EnabledPerContext=*

Please add the explanation to https://trac.webkit.org/wiki/WebKitIDL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629890</commentid>
    <comment_count>20</comment_count>
      <attachid>143178</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 20:18:51 -0700</bug_when>
    <thetext>Created attachment 143178
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629892</commentid>
    <comment_count>21</comment_count>
      <attachid>143179</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 20:20:52 -0700</bug_when>
    <thetext>Created attachment 143179
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629896</commentid>
    <comment_count>22</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 20:27:58 -0700</bug_when>
    <thetext>Thanks!

&gt; &gt; Source/WebCore/bindings/scripts/IDLAttributes.txt:114
&gt; &gt; +V8EnabledPerContext=*
&gt; 
&gt; Please add the explanation to https://trac.webkit.org/wiki/WebKitIDL

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>629921</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-05-21 21:18:32 -0700</bug_when>
    <thetext>Committed r117898: &lt;http://trac.webkit.org/changeset/117898&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142224</attachid>
            <date>2012-05-16 04:41:55 -0700</date>
            <delta_ts>2012-05-20 22:13:18 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-86555-20120516204153.patch</filename>
            <type>text/plain</type>
            <size>8334</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3MTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IDcwMmFiNDQwYzU2ZmUzZTdmN2Ux
MjU4ZTdlMWRhMjJmMWQzNGI1NGUuLjg1NjRkMmEyN2NiYjMwYmY2ODYxNTkzYjQ2NzEwODc4YjJj
NzIxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtCkBAIC0zMzcsNiArMzM3LDcgQEAgRU5ECiAgICAgaWYgKCRpbXBsQ2xhc3NO
YW1lIGVxICJET01XaW5kb3ciKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5E
KTsKICAgICBzdGF0aWMgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdFRlbXBsYXRlPiBHZXRTaGFk
b3dPYmplY3RUZW1wbGF0ZSgpOworICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBET01XaW5kb3cqKTsKIEVORAogICAgIH0K
IApAQCAtMjMwOSw2ICsyMzEwLDEyIEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAg
ICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAgcHVzaChAaW1wbEZpeGVkSGVh
ZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKKwor
ICAgICMgLSBET01XaW5kb3cgcmVmZXJzIFNldHRpbmdzIHRvIHN1cHBvcnQgWFhYLgorICAgIGlm
ICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgeworICAgICAgICBBZGRUb0ltcGxJbmNs
dWRlcygiUGFnZS5oIik7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJTZXR0aW5ncy5oIik7
CisgICAgfQogICAgICAgICAgCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5LmgiKTsKQEAgLTI0
MjcsNiArMjQzNCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRpc2Fs
bG93c1NoYWRvd2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhhdCBh
cmUgZW5hYmxlZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5Lgog
ICAgIG15IEBlbmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkQnlTZXR0aW5nczsKICAg
ICBteSBAbm9ybWFsOwogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQCRhdHRyaWJ1dGVzKSB7
CiAKQEAgLTI0MzQsNiArMjQ0Miw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICBwdXNoKEBkaXNhbGxvd3NTaGFkb3dpbmcsICRhdHRyaWJ1dGUpOwogICAgICAgICB9
IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEVu
YWJsZWRBdFJ1bnRpbWUifSkgewogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0UnVudGltZSwg
JGF0dHJpYnV0ZSk7CisgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEJ5U2V0dGluZ3MifSkgeworICAgICAgICAgICAg
cHVzaChAZW5hYmxlZEJ5U2V0dGluZ3MsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgcHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAtMjg2
Myw5ICsyODczLDMxIEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01X
aW5kb3c6OkdldFNoYWRvd09iamVjdFRlbXBsYXRlKCkKICAgICB9CiAgICAgcmV0dXJuIFY4RE9N
V2luZG93U2hhZG93T2JqZWN0Q2FjaGU7CiB9CisKK3ZvaWQgVjhET01XaW5kb3c6Omluc3RhbGxQ
ZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBET01X
aW5kb3cqIHdpbmRvdykKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2ODo6
TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKKyAgICBT
ZXR0aW5ncyogc2V0dGluZ3MgPSB3aW5kb3ctPnBhZ2UoKS0+c2V0dGluZ3MoKTsKKyAgICBzZXR0
aW5ncy0+bG9jYWxTdG9yYWdlRW5hYmxlZCgpOwogRU5ECi0gICAgfQorICAgICMgU2V0dXAgdGhl
IGVuYWJsZS1ieS1zZXR0aW5ncyBhdHRycyBpZiB3ZSBoYXZlIHRoZW0KKyAgICBmb3JlYWNoIG15
ICRydW50aW1lX2F0dHIgKEBlbmFibGVkQnlTZXR0aW5ncykgeworICAgICAgICBteSAkZW5hYmxl
X2Z1bmN0aW9uID0gR2V0U2V0dGluZ3NFbmFibGVGdW5jdGlvbk5hbWUoJHJ1bnRpbWVfYXR0ci0+
c2lnbmF0dXJlKTsKKyAgICAgICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0
b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmcoJHJ1bnRpbWVfYXR0ci0+c2lnbmF0dXJlKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoJHtlbmFibGVfZnVuY3Rpb259KCkpIHtcbiIpOworICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVxc
XG4iKTsKKyAgICAgICAgR2VuZXJhdGVTaW5nbGVCYXRjaGVkQXR0cmlidXRlKCRpbnRlcmZhY2VO
YW1lLCAkcnVudGltZV9hdHRyLCAiOyIsICIgICAgIik7CisgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCA8PEVORCk7CisgICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG8s
IGF0dHJEYXRhKTsKK0VORAorICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4jZW5k
aWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAg
ICAgfQogCisgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKK30KK0VORAorICAgIH0KICAg
ICBHZW5lcmF0ZVRvVjhDb252ZXJ0ZXJzKCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICRjbGFz
c05hbWUsICRuYXRpdmVUeXBlKTsKIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CkBA
IC0zOTUzLDYgKzM5ODUsMTcgQEAgc3ViIEdldFJ1bnRpbWVFbmFibGVGdW5jdGlvbk5hbWUKICAg
ICByZXR1cm4gIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OiIgLiAkY29kZUdlbmVyYXRvci0+V0tf
bGNmaXJzdCgkc2lnbmF0dXJlLT5uYW1lKSAuICJFbmFibGVkIjsKIH0KIAorc3ViIEdldFNldHRp
bmdzRW5hYmxlRnVuY3Rpb25OYW1lCit7CisgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0OworCisg
ICAgIyBJZiBhIHBhcmFtZXRlciBpcyBnaXZlbiAoZS5nLiAiVjhFbmFibGVkQnlTZXR0aW5ncz1G
ZWF0dXJlTmFtZSIpIHJldHVybiB0aGUgc2V0dGluZ3MtPntGZWF0dXJlTmFtZX1FbmFibGVkKCkg
bWV0aG9kLgorICAgIHJldHVybiAic2V0dGluZ3MtPiIgLiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhFbmFibGVkQnlTZXR0aW5n
cyJ9KSAuICJFbmFibGVkIiBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4
RW5hYmxlZEJ5U2V0dGluZ3MifSAmJiAkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VjhFbmFibGVkQnlTZXR0aW5ncyJ9IG5lICJWQUxVRV9JU19NSVNTSU5HIik7CisKKyAgICAjIE90
aGVyd2lzZSByZXR1cm4gYSBmdW5jdGlvbiBuYW1lZCBzZXR0aW5ncy0+e21ldGhvZE5hbWV9RW5h
YmxlZCgpLgorICAgIHJldHVybiAic2V0dGluZ3MtPiIgLiAkY29kZUdlbmVyYXRvci0+V0tfbGNm
aXJzdCgkc2lnbmF0dXJlLT5uYW1lKSAuICJFbmFibGVkIjsKK30KKwogc3ViIEdldFBhc3NSZWZQ
dHJUeXBlCiB7CiAgICAgbXkgJGNsYXNzTmFtZSA9IHNoaWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggYTQ2N2JmZWU1NGQ1
YTU1ODMzYzMwOTA3MTllYTI4ZTM2ZjRkZTQ1ZC4uYWMyNWFlMDMzNDY3MTg3M2Y4NzlhNDY2MjE5
ZjRmYmM4OGI4YjI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMudHh0CkBAIC0xMTEsNSArMTExLDYgQEAgVjhDdXN0b21Ub0pTT2JqZWN0
CiBWOERlcGVuZGVudExpZmV0aW1lCiBWOERvTm90Q2hlY2tTaWduYXR1cmUKIFY4RW5hYmxlZEF0
UnVudGltZT0qCitWOEVuYWJsZWRCeVNldHRpbmdzPSoKIFY4UmVhZE9ubHkKIFY4VW5mb3JnZWFi
bGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hl
bGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAK
aW5kZXggOTBkYzBmODBkZTFjOTYzZWU4MWIyYzMwMzNjOTc4NmY3MjFhOGRiZS4uMWY5OGZkNTA4
ZWZmZDJkZWRlYWViYzcyYjQzYTk5MzJiNzkxZjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKQEAgLTQwOCwxMCArNDA4LDExIEBAIGJv
b2wgVjhET01XaW5kb3dTaGVsbDo6aW5zdGFsbERPTVdpbmRvdyh2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiBjb250ZXh0LCBET01XaW5kCiAgICAgaWYgKGpzV2luZG93LklzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCisgICAgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyhqc1dpbmRvdywgd2luZG93KTsKKwogICAgIC8vIFdyYXAgdGhlIHdpbmRvdy4KICAg
ICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIoanNXaW5kb3csICZWOERPTVdpbmRvdzo6aW5m
bywgd2luZG93KTsKICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIodjg6OkhhbmRsZTx2
ODo6T2JqZWN0Pjo6Q2FzdChqc1dpbmRvdy0+R2V0UHJvdG90eXBlKCkpLCAmVjhET01XaW5kb3c6
OmluZm8sIHdpbmRvdyk7Ci0KICAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9i
amVjdChQYXNzUmVmUHRyPERPTVdpbmRvdz4od2luZG93KSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9i
amVjdD46Ok5ldyhqc1dpbmRvdykpOwogCiAgICAgLy8gSW5zZXJ0IHRoZSB3aW5kb3cgaW5zdGFu
Y2UgYXMgdGhlIHByb3RvdHlwZSBvZiB0aGUgc2hhZG93IG9iamVjdC4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4UHJveHkuaAppbmRleCA2MDE4MzFkYzI3Njc3ZTVmZTg5YTZlNzAyMmJkOWE0MGZj
ZWQ5YTc4Li4zNGM4MDBlMDZmYTRiMTg1MDQxNGY4OGMwMTU3NjI1NDg0MjMxNGZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCkBAIC04NSw3ICs4NSw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgIHZvaWQgYmF0Y2hDb25maWd1cmVBdHRyaWJ1dGVzKHY4OjpIYW5kbGU8
djg6Ok9iamVjdFRlbXBsYXRlPiwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+LCBjb25z
dCBCYXRjaGVkQXR0cmlidXRlKiwgc2l6ZV90IGF0dHJpYnV0ZUNvdW50KTsKIAotICAgIGlubGlu
ZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4g
aW5zdGFuY2UsIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90bywgY29uc3QgQmF0
Y2hlZEF0dHJpYnV0ZSYgYXR0cmlidXRlKQorICAgIHRlbXBsYXRlPGNsYXNzIE9iamVjdE9yVGVt
cGxhdGU+CisgICAgaW5saW5lIHZvaWQgY29uZmlndXJlQXR0cmlidXRlKHY4OjpIYW5kbGU8T2Jq
ZWN0T3JUZW1wbGF0ZT4gaW5zdGFuY2UsIHY4OjpIYW5kbGU8T2JqZWN0T3JUZW1wbGF0ZT4gcHJv
dG8sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKICAgICB7CiAgICAgICAgIChh
dHRyaWJ1dGUub25Qcm90byA/IHByb3RvIDogaW5zdGFuY2UpLT5TZXRBY2Nlc3Nvcih2ODo6U3Ry
aW5nOjpOZXcoYXR0cmlidXRlLm5hbWUpLAogICAgICAgICAgICAgYXR0cmlidXRlLmdldHRlciwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCA1NTA1N2I2ODA2ZDUzYjNjMmQ1MWM5NzNm
ZjQ1YTBjZjllZjhhYmE3Li4wZmM0MGMzMjBkN2Q1NDMzNDZhNDkwMWNkYmYwNzZiMGE5ZGY5NzE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0yOCw3ICsyOCw2IEBAIG1vZHVsZSBj
b3JlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlvbmFsPVNIQURPV19ET00s
Ci0gICAgICAgIFY4RW5hYmxlZEF0UnVudGltZT1zaGFkb3dET00sCiAgICAgICAgIENvbnN0cnVj
dG9yKGluIEVsZW1lbnQgaG9zdCksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0aW9u
CiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaAppbmRleCA0YWM4MTYyNGQxYjg1NzQ1ODQ2YjVjNWQ2MGQ2MTkyMjRhMmU1ZDlmLi4yOGQz
NjA4YTcyNzMzNDc1NzQxY2FiZmZmZmI5YTNlZjJkOTI1ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmgKQEAgLTM5NiwxMSArMzk2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCB3aWxsRGV0YWNoRG9jdW1lbnRGcm9tRnJhbWUoKTsKICAgICAgICAgdm9pZCB3aWxsRGVz
dHJveUNhY2hlZEZyYW1lKCk7CiAKKyAgICAgICAgUGFnZSogcGFnZSgpOworCiAgICAgcHJpdmF0
ZToKICAgICAgICAgZXhwbGljaXQgRE9NV2luZG93KEZyYW1lKik7CiAKLSAgICAgICAgUGFnZSog
cGFnZSgpOwotCiAgICAgICAgIHZpcnR1YWwgdm9pZCBmcmFtZURlc3Ryb3llZCgpIE9WRVJSSURF
OwogICAgICAgICB2aXJ0dWFsIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBPVkVSUklERTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5MTdiOWY4MDVh
NjBiZDE4OWJkYzAuLmVlNTZmNGQ4ZWM0ZDg4OTYzZjdlYTc0YzAwN2VlYjQ1ZjI3OGJjNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICszODcsNyBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0eTsKICAgICAg
ICAgYXR0cmlidXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsK
ICAgICAgICAgYXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nl
c3NpbmdJbnN0cnVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1df
RE9NLCBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3Ig
V2ViS2l0U2hhZG93Um9vdDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1df
RE9NLCBWOEVuYWJsZWRCeVNldHRpbmdzPWxvY2FsU3RvcmFnZV0gU2hhZG93Um9vdENvbnN0cnVj
dG9yIFdlYktpdFNoYWRvd1Jvb3Q7CiAKICAgICAgICAgYXR0cmlidXRlIERPTVNlbGVjdGlvbkNv
bnN0cnVjdG9yIFNlbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIERPTVdpbmRvd0NvbnN0cnVj
dG9yIFdpbmRvdzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142944</attachid>
            <date>2012-05-20 22:13:23 -0700</date>
            <delta_ts>2012-05-21 01:34:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86555-20120521141322.patch</filename>
            <type>text/plain</type>
            <size>18296</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkYzY3YjMwMDhiOWM2
ZDM2OGU3MzQ5NDdlMjgzZGQ3NzI3Yjg0My4uYzJiZWQ1OGFiOGQ3OTVlNTA2Y2M4MTY3NjJlYmFj
MmQ2ZDJhMTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTIwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gU2hhZG93IERP
TSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4gSURM
IGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBhbGxv
d3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAgICAg
ICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgpIG1l
dGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJhdG9y
VjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBwcm9w
ZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBpbnN0
ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0IGdl
bmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNoIGlu
amVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0byBu
ZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMgdXNl
ZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2YgU2hh
ZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBGcmFt
ZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9uLgor
ICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRvdy5X
ZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9NRW5h
YmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBUaGlzIGlzbid0IHRlc3RhYmxlIGZyb20gRFJUIGFuZCB0aGlzIGNoYW5nZSBp
dHNlbGYgZG9lc24ndCBjaGFnbmUgdGhlIGJlaGF2aW91ci4KKyAgICAgICAgSXQgbmVlZHMgYSBj
bGllbnQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKTogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93
KTogQWRvcHRlZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKQorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29uZmlndXJlQXR0cmlidXRlKTogR2VuZXJhbGl6ZWQgdG8gYWNjZXB0IGJvdGggT2JqZWN0VGVt
cGxhdGUgYW5kIE9iamVjdC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBBZG9wdGVkIHNo
YWRvd0RPTUFsbG93ZWQoKQorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5pZGw6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6IEFkb3B0ZWQgc2hh
ZG93RE9NQWxsb3dlZCgpCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlv
bik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDogQWRvcHRl
ZCBzaGFkb3dET01BbGxvd2VkKCkKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaGFkb3dET01BbGxvd2Vk
KTogQWRkZWQgd2l0aCBhIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMi0wNS0yMCAgUGhp
bGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIEFjY3VtdWxhdGUgU1ZHIGFu
aW1hdGlvbnMgaW50byBmaXJzdCBjb250cmlidXRpbmcgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHAKaW5kZXggYjdjMzFlNmE5MDNhNzFjYTA0ODYzYjdhMTVhZjE4YTM2MWQwZTYwYi4uMDU4YjZj
NjFiNDgwNDQ0ZDhkNzhhNWI3MjhjN2I2NTIwOGRhMTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
IAogI2luY2x1ZGUgIkFic3RyYWN0RGF0YWJhc2UuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUg
IlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKQEAgLTIw
Miw0ICsyMDYsMTUgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1N0eWxlU2NvcGVk
RW5hYmxlZCA9IGZhbHNlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0lucHV0VHlw
ZURhdGVFbmFibGVkID0gdHJ1ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNIQURPV19ET00pCiti
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93KiB3
aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gd2luZG93LT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+c2hhZG93RE9NQWxsb3dlZChzaGFkb3dET01FbmFibGVkKCkp
OworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IDhiNDcwMDljOGE1MzNiMjMyZTM0YjczMjQ2OTNjMTA4Nzk1
NDFlNzUuLjcwMzJhODZhNGNhYjU5ZTlkZWNkYzAwYTc4MTk0YjgxYjQ1YWRmNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRE9NV2luZG93OworCiAvLyBBIGNsYXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBm
b3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4gTm90ZSB0aGF0CiAvLyB0aGUgbWV0aG9kIG5h
bWVzIG11c3QgbGluZSB1cCB3aXRoIHRoZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBm
b3IgY29kZQogLy8gZ2VuZXJhdGlvbiB0byB3b3JrIHByb3Blcmx5LgpAQCAtMjI0LDYgKzIyNiw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICBzdGF0aWMgYm9vbCBzaGFk
b3dET01FbmFibGVkKCkgeyByZXR1cm4gaXNTaGFkb3dET01FbmFibGVkOyB9CiAgICAgc3RhdGlj
IHZvaWQgc2V0U2hhZG93RE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1NoYWRvd0RPTUVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01BbGxvd2VkKERP
TVdpbmRvdyopOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBk
NjZmODRlMGM3MzI0MjhkZTBlOTA1NDZkOTg0NDEyMzkyNGNiYzM0Li4yOTY0YTE5ZDdiMDYxOTk0
YTQ4ZDNlYjdmMDdhZjAwNzI2MzQ1ZDFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzM3LDYgKzMzNyw3IEBAIEVORAog
ICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3RUZW1wbGF0ZT4gR2V0U2hhZG93T2JqZWN0VGVtcGxhdGUoKTsKKyAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgRE9NV2lu
ZG93Kik7CiBFTkQKICAgICB9CiAKQEAgLTIzMDksNyArMjMxMCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAg
cHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRl
cigkZGF0YU5vZGUpKTsKLSAgICAgICAgIAorCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5Lmgi
KTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKQEAgLTI0MjcsNiArMjQy
OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRpc2FsbG93c1NoYWRv
d2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgZW5hYmxl
ZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5LgogICAgIG15IEBl
bmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkQXRDb250ZXh0OwogICAgIG15IEBub3Jt
YWw7CiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAJGF0dHJpYnV0ZXMpIHsKIApAQCAtMjQz
NCw2ICsyNDM2LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1
c2goQGRpc2FsbG93c1NoYWRvd2luZywgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0gZWxzaWYgKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0UnVu
dGltZSJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBlbmFibGVkQXRSdW50aW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGVuYWJs
ZWRBdENvbnRleHQsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
cHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAtMjg2Myw5ICsyODY3LDI5
IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01XaW5kb3c6OkdldFNo
YWRvd09iamVjdFRlbXBsYXRlKCkKICAgICB9CiAgICAgcmV0dXJuIFY4RE9NV2luZG93U2hhZG93
T2JqZWN0Q2FjaGU7CiB9CisKK3ZvaWQgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9i
amVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKIEVORAotICAgIH0KKyAgICAj
IFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgYXR0cnMgaWYgd2UgaGF2ZSB0aGVtCisgICAg
Zm9yZWFjaCBteSAkcnVudGltZV9hdHRyIChAZW5hYmxlZEF0Q29udGV4dCkgeworICAgICAgICBt
eSAkZW5hYmxlX2Z1bmN0aW9uID0gR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uKCRydW50aW1lX2F0
dHItPnNpZ25hdHVyZSk7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRydW50aW1lX2F0dHItPnNpZ25hdHVy
ZSk7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmlu
Z31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OiR7ZW5hYmxlX2Z1bmN0aW9ufSh3aW5k
b3cpKSB7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHN0YXRpYyBj
b25zdCBCYXRjaGVkQXR0cmlidXRlIGF0dHJEYXRhID1cXFxuIik7CisgICAgICAgIEdlbmVyYXRl
U2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVfYXR0ciwgIjsi
LCAiICAgICIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBj
b25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJp
bmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgIH0KIAorICAgIHB1c2goQGltcGxD
b250ZW50LCA8PEVORCk7Cit9CitFTkQKKyAgICB9CiAgICAgR2VuZXJhdGVUb1Y4Q29udmVydGVy
cygkZGF0YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkbmF0aXZlVHlwZSk7CiAK
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMzk1Myw2ICszOTc3LDE5IEBAIHN1
YiBHZXRSdW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lCiAgICAgcmV0dXJuICJSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjoiIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+bmFt
ZSkgLiAiRW5hYmxlZCI7CiB9CiAKK3N1YiBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24KK3sKKyAg
ICBteSAkc2lnbmF0dXJlID0gc2hpZnQ7CisKKyAgICAjIElmIGEgcGFyYW1ldGVyIGlzIGdpdmVu
IChlLmcuICJWOEVuYWJsZWRBdENvbnRleHQ9RmVhdHVyZU5hbWUiKSByZXR1cm4gdGhlIHtGZWF0
dXJlTmFtZX1BbGxvd2VkKCkgbWV0aG9kLgorICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9IG5lICJWQUxVRV9JU19NSVNTSU5HIikg
eworICAgICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9KSAuICJBbGxvd2VkIjsK
KyAgICB9CisKKyAgICAjIE90aGVyd2lzZSByZXR1cm4gYSBmdW5jdGlvbiBuYW1lZCB7bWV0aG9k
TmFtZX1BbGxvd2VkKCkuCisgICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRz
aWduYXR1cmUtPm5hbWUpIC4gIkFsbG93ZWQiOworfQorCiBzdWIgR2V0UGFzc1JlZlB0clR5cGUK
IHsKICAgICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBhNDY3YmZlZTU0ZDVhNTU4MzNj
MzA5MDcxOWVhMjhlMzZmNGRlNDVkLi5hMzA5Zjk4OTYwYjBmN2NlMjA1ZjcyNGIyMmRkMjQzYjhh
MzFlMjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0
dHJpYnV0ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy50eHQKQEAgLTExMSw1ICsxMTEsNiBAQCBWOEN1c3RvbVRvSlNPYmplY3QKIFY4RGVw
ZW5kZW50TGlmZXRpbWUKIFY4RG9Ob3RDaGVja1NpZ25hdHVyZQogVjhFbmFibGVkQXRSdW50aW1l
PSoKK1Y4RW5hYmxlZEF0Q29udGV4dD0qCiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDkw
ZGMwZjgwZGUxYzk2M2VlODFiMmMzMDMzYzk3ODZmNzIxYThkYmUuLjFmOThmZDUwOGVmZmQyZGVk
ZWFlYmM3MmI0M2E5OTMyYjc5MWYwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDgsMTAgKzQwOCwxMSBAQCBib29sIFY4RE9N
V2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3codjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29u
dGV4dCwgRE9NV2luZAogICAgIGlmIChqc1dpbmRvdy5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAorICAgIFY4RE9NV2luZG93OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMo
anNXaW5kb3csIHdpbmRvdyk7CisKICAgICAvLyBXcmFwIHRoZSB3aW5kb3cuCiAgICAgVjhET01X
cmFwcGVyOjpzZXRET01XcmFwcGVyKGpzV2luZG93LCAmVjhET01XaW5kb3c6OmluZm8sIHdpbmRv
dyk7CiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVj
dD46OkNhc3QoanNXaW5kb3ctPkdldFByb3RvdHlwZSgpKSwgJlY4RE9NV2luZG93OjppbmZvLCB3
aW5kb3cpOwotCiAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoUGFz
c1JlZlB0cjxET01XaW5kb3c+KHdpbmRvdyksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpO
ZXcoanNXaW5kb3cpKTsKIAogICAgIC8vIEluc2VydCB0aGUgd2luZG93IGluc3RhbmNlIGFzIHRo
ZSBwcm90b3R5cGUgb2YgdGhlIHNoYWRvdyBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmgKaW5kZXggOGYzMzM3NjllMTNmMzMxYjkxM2VlNGQ0YmZmZWM5MzE2ZTE4ZjEzZi4u
OTZkMzdiY2U0Zjc2MTkwNTJmMTJlNGM2MzdjZTY0NzYxYWI0NWU4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtODUsNyArODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICB2b2lkIGJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3RUZW1wbGF0ZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiwgY29uc3QgQmF0Y2hl
ZEF0dHJpYnV0ZSosIHNpemVfdCBhdHRyaWJ1dGVDb3VudCk7CiAKLSAgICBpbmxpbmUgdm9pZCBj
b25maWd1cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNl
LCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8sIGNvbnN0IEJhdGNoZWRBdHRy
aWJ1dGUmIGF0dHJpYnV0ZSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBPYmplY3RPclRlbXBsYXRlPgor
ICAgIGlubGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZSh2ODo6SGFuZGxlPE9iamVjdE9yVGVt
cGxhdGU+IGluc3RhbmNlLCB2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+IHByb3RvLCBjb25z
dCBCYXRjaGVkQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAgICAgewogICAgICAgICAoYXR0cmlidXRl
Lm9uUHJvdG8gPyBwcm90byA6IGluc3RhbmNlKS0+U2V0QWNjZXNzb3Iodjg6OlN0cmluZzo6TmV3
KGF0dHJpYnV0ZS5uYW1lKSwKICAgICAgICAgICAgIGF0dHJpYnV0ZS5nZXR0ZXIsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1Bvc2l0aW9uLmNwcAppbmRleCAwOGRlYTczYjZmMWU5ZWE4ZGNhODM3Y2YwMjU1MzM3NjI0MThl
Y2Q2Li4xNzk5OTRiZWZjNmU0NjIyODczMTIyMWUzZWFmODU2OGQ0ZTZjYzFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Qb3NpdGlvbi5jcHAKQEAgLTgyLDcgKzgyLDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NS
ZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRpdGluZ09mZnNldCBvZmZzZXQpCiAgICAg
LCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19E
T00pCi0gICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
KSB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01BbGxvd2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAg
ICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsK
ICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFk
b3dSb290KCkpOwogI2VuZGlmCkBAIC05NSw3ICs5Niw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQ
YXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5cGUgYW5jaG9yVHlwZSkKICAgICAs
IG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19E
T00pCi0gICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
KSB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAg
ICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01BbGxvd2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAg
ICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsK
ICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFk
b3dSb290KCkpOwogI2VuZGlmCkBAIC0xMTIsNyArMTE0LDggQEAgUG9zaXRpb246OlBvc2l0aW9u
KFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNo
b3JUeXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5B
QkxFKFNIQURPV19ET00pCi0gICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50
KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwor
ICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRv
d0RPTUFsbG93ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAg
ICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hv
ck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAg
ICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hv
ck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRpZgpA
QCAtODU0LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNv
bnN0IE5vZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAK
ICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhZG93RE9NRW5hYmxlZCgpKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01BbGxvd2VkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0
dXJuIG5vZGUtPnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5p
ZGwKaW5kZXggYTkzMzMzYmMxMGQxNmQ0ZjY0MjIxZjNmYWZhNTdhNGU4N2EyMGUwNi4uODExMGMx
ZTA4YTc0M2Q3M2VjMTM0NTJjYTZhNGRiNmEzNzQ3NDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbApAQCAtMjgsNyArMjgsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2Ug
WwogICAgICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAotICAgICAgICBWOEVuYWJsZWRBdFJ1
bnRpbWU9c2hhZG93RE9NLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBFbGVtZW50IGhvc3QpLAog
ICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERv
Y3VtZW50RnJhZ21lbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29w
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwNzQwOWYwNjZk
YTE2YTk0OTk5MzI1YzdjNWU2YmVmMzExOWEyZDFjLi4wMTIwOTY3OWUyM2QwZTc4MjIyNzhjNWU5
MWI5YTU5OTNlNjhkOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTQ4LDcgKzE0
OCw3IEBAIERPTVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAg
IC8vIGFzIGEgY29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hh
ZG93IERPTSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAg
IGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpIHsKKyAgICBp
ZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NQWxsb3dlZChyb290Tm9kZSgpLT5k
b2N1bWVudCgpLT5kb21XaW5kb3coKSkpIHsKICAgICAgICAgbV9zZWxlY3Rpb24gPSBET01TZWxl
Y3Rpb246OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fc2VsZWN0aW9uLmdldCgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1l
bnQuY3BwCmluZGV4IGE0ZGNlZWVkMGRmYmIwYTE2YzZjNGRkNWM0ZDI5OGIwYzY0NzJkNjAuLjQ5
M2VmZWY5OGZmMjg4OGZiZGY4ZDYxMWQyMDI1NjJiMzgzMTg2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNDAsMTAgKzQw
LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRy
OwogCi1zdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoKQorc3RhdGlj
IGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50KiBkb2N1bWVudCkK
IHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYWRvd0RPTUFsbG93ZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0dXJu
IEhUTUxOYW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5hbWVz
Ojpjb250ZW50VGFnOwogI2Vsc2UKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKCkKIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1l
bnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxDb250ZW50RWxlbWVudChjb250ZW50VGFnTmFtZSgp
LCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50
KGNvbnRlbnRUYWdOYW1lKGRvY3VtZW50KSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxI
VE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjE1Y2UwMDgyZjg0YWEzNDIzZmNmMDAyNTQ4
NmE5N2FiYjE1N2MwZi4uN2M5Zjg1M2JkMGZkZWIyMDlkZWZjZmY1Mjc5ZTI0NGZiMGQ3MmRmMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMCw3ICsz
MTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0lt
YWdlKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxl
ZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNl
Y3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29u
c3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdz
LCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGlu
Z3M7IH0KLSAgICAgICAgCisKKyAgICAgICAgdmlydHVhbCBib29sIHNoYWRvd0RPTUFsbG93ZWQo
Ym9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVG
ZWF0dXJlczsgfQorCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVu
dCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQg
YnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAg
ICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBu
dW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNDBlMGIyYWZm
MWIwZGZmMTNjNjBiNTA2NjU4NDQ4MDdmYmQwY2Y1MC4uYmExNWNmN2VmZjAwN2IwYTViYTAyMjk1
OWVjYjEwYTM1YWQ2YjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzgsNiAr
NzgsNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJm
b3JtYW5jZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiUnVudGlt
ZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1
ZGUgIlNjcmVlbi5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5MTdiOWY4MDVhNjBiZDE4OWJk
YzAuLjRmNTE5OWI2MzUzYTcxOTlhNjQxZmIwOWYxZmM0OTdlYWZiMzg0M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICszODcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAg
ICAgICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0eTsKICAgICAgICAgYXR0cmli
dXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAg
YXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0
cnVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVu
YWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hh
ZG93Um9vdDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVu
YWJsZWRBdENvbnRleHQ9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hh
ZG93Um9vdDsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uQ29uc3RydWN0b3IgU2Vs
ZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgRE9NV2luZG93Q29uc3RydWN0b3IgV2luZG93Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142965</attachid>
            <date>2012-05-21 01:34:32 -0700</date>
            <delta_ts>2012-05-21 01:36:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86555-20120521173431.patch</filename>
            <type>text/plain</type>
            <size>18347</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkYzY3YjMwMDhiOWM2
ZDM2OGU3MzQ5NDdlMjgzZGQ3NzI3Yjg0My4uYzJiZWQ1OGFiOGQ3OTVlNTA2Y2M4MTY3NjJlYmFj
MmQ2ZDJhMTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTIwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gU2hhZG93IERP
TSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4gSURM
IGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBhbGxv
d3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAgICAg
ICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgpIG1l
dGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJhdG9y
VjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBwcm9w
ZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBpbnN0
ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0IGdl
bmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNoIGlu
amVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0byBu
ZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMgdXNl
ZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2YgU2hh
ZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBGcmFt
ZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9uLgor
ICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRvdy5X
ZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9NRW5h
YmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBUaGlzIGlzbid0IHRlc3RhYmxlIGZyb20gRFJUIGFuZCB0aGlzIGNoYW5nZSBp
dHNlbGYgZG9lc24ndCBjaGFnbmUgdGhlIGJlaGF2aW91ci4KKyAgICAgICAgSXQgbmVlZHMgYSBj
bGllbnQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKTogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93
KTogQWRvcHRlZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKQorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29uZmlndXJlQXR0cmlidXRlKTogR2VuZXJhbGl6ZWQgdG8gYWNjZXB0IGJvdGggT2JqZWN0VGVt
cGxhdGUgYW5kIE9iamVjdC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBBZG9wdGVkIHNo
YWRvd0RPTUFsbG93ZWQoKQorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5pZGw6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6IEFkb3B0ZWQgc2hh
ZG93RE9NQWxsb3dlZCgpCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlv
bik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDogQWRvcHRl
ZCBzaGFkb3dET01BbGxvd2VkKCkKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaGFkb3dET01BbGxvd2Vk
KTogQWRkZWQgd2l0aCBhIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMi0wNS0yMCAgUGhp
bGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIEFjY3VtdWxhdGUgU1ZHIGFu
aW1hdGlvbnMgaW50byBmaXJzdCBjb250cmlidXRpbmcgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHAKaW5kZXggYjdjMzFlNmE5MDNhNzFjYTA0ODYzYjdhMTVhZjE4YTM2MWQwZTYwYi4uMDU4YjZj
NjFiNDgwNDQ0ZDhkNzhhNWI3MjhjN2I2NTIwOGRhMTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
IAogI2luY2x1ZGUgIkFic3RyYWN0RGF0YWJhc2UuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUg
IlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKQEAgLTIw
Miw0ICsyMDYsMTUgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1N0eWxlU2NvcGVk
RW5hYmxlZCA9IGZhbHNlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0lucHV0VHlw
ZURhdGVFbmFibGVkID0gdHJ1ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNIQURPV19ET00pCiti
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93KiB3
aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gd2luZG93LT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+c2hhZG93RE9NQWxsb3dlZChzaGFkb3dET01FbmFibGVkKCkp
OworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IDhiNDcwMDljOGE1MzNiMjMyZTM0YjczMjQ2OTNjMTA4Nzk1
NDFlNzUuLjcwMzJhODZhNGNhYjU5ZTlkZWNkYzAwYTc4MTk0YjgxYjQ1YWRmNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRE9NV2luZG93OworCiAvLyBBIGNsYXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBm
b3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4gTm90ZSB0aGF0CiAvLyB0aGUgbWV0aG9kIG5h
bWVzIG11c3QgbGluZSB1cCB3aXRoIHRoZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBm
b3IgY29kZQogLy8gZ2VuZXJhdGlvbiB0byB3b3JrIHByb3Blcmx5LgpAQCAtMjI0LDYgKzIyNiw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICBzdGF0aWMgYm9vbCBzaGFk
b3dET01FbmFibGVkKCkgeyByZXR1cm4gaXNTaGFkb3dET01FbmFibGVkOyB9CiAgICAgc3RhdGlj
IHZvaWQgc2V0U2hhZG93RE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1NoYWRvd0RPTUVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01BbGxvd2VkKERP
TVdpbmRvdyopOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBk
NjZmODRlMGM3MzI0MjhkZTBlOTA1NDZkOTg0NDEyMzkyNGNiYzM0Li42Nzk1MDcxNTc5NzI4NTlm
ZGY3ZDA1ODNlN2ZkN2E5OWQ2ZDFiZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzM3LDYgKzMzNyw3IEBAIEVORAog
ICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3RUZW1wbGF0ZT4gR2V0U2hhZG93T2JqZWN0VGVtcGxhdGUoKTsKKyAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgRE9NV2lu
ZG93Kik7CiBFTkQKICAgICB9CiAKQEAgLTIzMDksNyArMjMxMCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAg
cHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRl
cigkZGF0YU5vZGUpKTsKLSAgICAgICAgIAorCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5Lmgi
KTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKQEAgLTI0MjcsNiArMjQy
OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRpc2FsbG93c1NoYWRv
d2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgZW5hYmxl
ZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5LgogICAgIG15IEBl
bmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkQXRDb250ZXh0OwogICAgIG15IEBub3Jt
YWw7CiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAJGF0dHJpYnV0ZXMpIHsKIApAQCAtMjQz
NCw2ICsyNDM2LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1
c2goQGRpc2FsbG93c1NoYWRvd2luZywgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0gZWxzaWYgKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0UnVu
dGltZSJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBlbmFibGVkQXRSdW50aW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGVuYWJs
ZWRBdENvbnRleHQsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
cHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAtMjg2Myw5ICsyODY3LDI5
IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01XaW5kb3c6OkdldFNo
YWRvd09iamVjdFRlbXBsYXRlKCkKICAgICB9CiAgICAgcmV0dXJuIFY4RE9NV2luZG93U2hhZG93
T2JqZWN0Q2FjaGU7CiB9CisKK3ZvaWQgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9i
amVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKIEVORAotICAgIH0KKyAgICAj
IFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgYXR0cnMgaWYgd2UgaGF2ZSB0aGVtCisgICAg
Zm9yZWFjaCBteSAkcnVudGltZUF0dHIgKEBlbmFibGVkQXRDb250ZXh0KSB7CisgICAgICAgIG15
ICRlbmFibGVGdW5jdGlvbiA9IEdldENvbnRleHRFbmFibGVGdW5jdGlvbigkcnVudGltZUF0dHIt
PnNpZ25hdHVyZSk7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJh
dG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6JHtlbmFibGVGdW5jdGlvbn0od2luZG93KSkg
e1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzdGF0aWMgY29uc3Qg
QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOworICAgICAgICBHZW5lcmF0ZVNpbmds
ZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsiLCAiICAg
ICIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBjb25maWd1
cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgfVxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgIH0KIAorICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Cit9CitFTkQKKyAgICB9CiAgICAgR2VuZXJhdGVUb1Y4Q29udmVydGVycygkZGF0
YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkbmF0aXZlVHlwZSk7CiAKICAgICBw
dXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMzk1Myw2ICszOTc3LDIwIEBAIHN1YiBHZXRS
dW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lCiAgICAgcmV0dXJuICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjoiIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+bmFtZSkgLiAi
RW5hYmxlZCI7CiB9CiAKK3N1YiBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24KK3sKKyAgICBteSAk
c2lnbmF0dXJlID0gc2hpZnQ7CisKKyAgICAjIElmIGEgcGFyYW1ldGVyIGlzIGdpdmVuIChlLmcu
ICJWOEVuYWJsZWRBdENvbnRleHQ9RmVhdHVyZU5hbWUiKSByZXR1cm4gdGhlIHtGZWF0dXJlTmFt
ZX1BbGxvd2VkKCkgbWV0aG9kLgorICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9IG5lICJWQUxVRV9JU19NSVNTSU5HIikgeworICAg
ICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9KSAuICJBbGxvd2VkIjsKKyAgICB9
CisKKyAgICAjIE9yIGl0IGZhbGxiYWNrcyB0byB0aGUgYXR0cmlidXRlIG5hbWUgaWYgdGhlIHBh
cmFtZXRlciB2YWx1ZSBpcyBtaXNzaW5nLgorICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJHNpZ25h
dHVyZS0+bmFtZTsKKyAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJp
YnV0ZU5hbWUpIC4gIkFsbG93ZWQiOworfQorCiBzdWIgR2V0UGFzc1JlZlB0clR5cGUKIHsKICAg
ICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBhNDY3YmZlZTU0ZDVhNTU4MzNjMzA5MDcx
OWVhMjhlMzZmNGRlNDVkLi5hMzA5Zjk4OTYwYjBmN2NlMjA1ZjcyNGIyMmRkMjQzYjhhMzFlMjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKQEAgLTExMSw1ICsxMTEsNiBAQCBWOEN1c3RvbVRvSlNPYmplY3QKIFY4RGVwZW5kZW50
TGlmZXRpbWUKIFY4RG9Ob3RDaGVja1NpZ25hdHVyZQogVjhFbmFibGVkQXRSdW50aW1lPSoKK1Y4
RW5hYmxlZEF0Q29udGV4dD0qCiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDkwZGMwZjgw
ZGUxYzk2M2VlODFiMmMzMDMzYzk3ODZmNzIxYThkYmUuLjFmOThmZDUwOGVmZmQyZGVkZWFlYmM3
MmI0M2E5OTMyYjc5MWYwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDgsMTAgKzQwOCwxMSBAQCBib29sIFY4RE9NV2luZG93
U2hlbGw6Omluc3RhbGxET01XaW5kb3codjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwg
RE9NV2luZAogICAgIGlmIChqc1dpbmRvdy5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIFY4RE9NV2luZG93OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoanNXaW5k
b3csIHdpbmRvdyk7CisKICAgICAvLyBXcmFwIHRoZSB3aW5kb3cuCiAgICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKGpzV2luZG93LCAmVjhET01XaW5kb3c6OmluZm8sIHdpbmRvdyk7CiAg
ICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoanNXaW5kb3ctPkdldFByb3RvdHlwZSgpKSwgJlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3cp
OwotCiAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoUGFzc1JlZlB0
cjxET01XaW5kb3c+KHdpbmRvdyksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoanNX
aW5kb3cpKTsKIAogICAgIC8vIEluc2VydCB0aGUgd2luZG93IGluc3RhbmNlIGFzIHRoZSBwcm90
b3R5cGUgb2YgdGhlIHNoYWRvdyBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5
LmgKaW5kZXggOGYzMzM3NjllMTNmMzMxYjkxM2VlNGQ0YmZmZWM5MzE2ZTE4ZjEzZi4uOTZkMzdi
Y2U0Zjc2MTkwNTJmMTJlNGM2MzdjZTY0NzYxYWI0NWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuaApAQCAtODUsNyArODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICB2b2lkIGJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1w
bGF0ZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiwgY29uc3QgQmF0Y2hlZEF0dHJp
YnV0ZSosIHNpemVfdCBhdHRyaWJ1dGVDb3VudCk7CiAKLSAgICBpbmxpbmUgdm9pZCBjb25maWd1
cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUm
IGF0dHJpYnV0ZSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBPYmplY3RPclRlbXBsYXRlPgorICAgIGlu
bGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZSh2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+
IGluc3RhbmNlLCB2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+IHByb3RvLCBjb25zdCBCYXRj
aGVkQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAgICAgewogICAgICAgICAoYXR0cmlidXRlLm9uUHJv
dG8gPyBwcm90byA6IGluc3RhbmNlKS0+U2V0QWNjZXNzb3Iodjg6OlN0cmluZzo6TmV3KGF0dHJp
YnV0ZS5uYW1lKSwKICAgICAgICAgICAgIGF0dHJpYnV0ZS5nZXR0ZXIsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcAppbmRleCAwOGRlYTczYjZmMWU5ZWE4ZGNhODM3Y2YwMjU1MzM3NjI0MThlY2Q2Li4x
Nzk5OTRiZWZjNmU0NjIyODczMTIyMWUzZWFmODU2OGQ0ZTZjYzFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAKQEAgLTgyLDcgKzgyLDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8
Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRpdGluZ09mZnNldCBvZmZzZXQpCiAgICAgLCBtX2lz
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0g
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAh
bV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxv
d2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8
fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNl
CiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2VuZGlmCkBAIC05NSw3ICs5Niw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVm
UHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNM
ZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0g
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAh
bV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxv
d2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8
fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNl
CiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2VuZGlmCkBAIC0xMTIsNyArMTE0LDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NS
ZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNob3JUeXAK
ICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNI
QURPV19ET00pCi0gICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKCkgfHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5j
aG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCgobV9hbmNob3JOb2RlICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFs
bG93ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgICAgICAg
IHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUu
Z2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNT
RVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUu
Z2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRpZgpAQCAtODU0
LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5v
ZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBF
TkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZCgpKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01B
bGxvd2VkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0dXJuIG5v
ZGUtPnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5k
ZXggYTkzMzMzYmMxMGQxNmQ0ZjY0MjIxZjNmYWZhNTdhNGU4N2EyMGUwNi4uODExMGMxZTA4YTc0
M2Q3M2VjMTM0NTJjYTZhNGRiNmEzNzQ3NDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290Lmlk
bApAQCAtMjgsNyArMjgsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAg
ICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAotICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9
c2hhZG93RE9NLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBFbGVtZW50IGhvc3QpLAogICAgICAg
ICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50
RnJhZ21lbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwNzQwOWYwNjZkYTE2YTk0
OTk5MzI1YzdjNWU2YmVmMzExOWEyZDFjLi4wMTIwOTY3OWUyM2QwZTc4MjIyNzhjNWU5MWI5YTU5
OTNlNjhkOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBA
IERPTVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFz
IGEgY29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERP
TSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpIHsKKyAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NQWxsb3dlZChyb290Tm9kZSgpLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSkpIHsKICAgICAgICAgbV9zZWxlY3Rpb24gPSBET01TZWxlY3Rpb246
OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fc2VsZWN0aW9uLmdldCgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IGE0ZGNlZWVkMGRmYmIwYTE2YzZjNGRkNWM0ZDI5OGIwYzY0NzJkNjAuLjQ5M2VmZWY5
OGZmMjg4OGZiZGY4ZDYxMWQyMDI1NjJiMzgzMTg2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNDAsMTAgKzQwLDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRyOwogCi1z
dGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoKQorc3RhdGljIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICNp
ZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRv
d0RPTUFsbG93ZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0dXJuIEhUTUxO
YW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5hbWVzOjpjb250
ZW50VGFnOwogI2Vsc2UKQEAgLTUzLDcgKzUzLDcgQEAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGNvbnRlbnRUYWdOYW1lKCkKIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhU
TUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEhUTUxDb250ZW50RWxlbWVudChjb250ZW50VGFnTmFtZSgpLCBkb2N1
bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KGNvbnRl
bnRUYWdOYW1lKGRvY3VtZW50KSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29u
dGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjE1Y2UwMDgyZjg0YWEzNDIzZmNmMDAyNTQ4NmE5N2Fi
YjE1N2MwZi4uN2M5Zjg1M2JkMGZkZWIyMDlkZWZjZmY1Mjc5ZTI0NGZiMGQ3MmRmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMCw3ICszMTAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJv
b2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNl
dHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNv
bnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VS
TCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wg
YWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1
cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0K
LSAgICAgICAgCisKKyAgICAgICAgdmlydHVhbCBib29sIHNoYWRvd0RPTUFsbG93ZWQoYm9vbCBl
bmFibGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJl
czsgfQorCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVudCB0aGF0
IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQgYnV0IGRp
ZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAgICAgLy8g
aGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBudW1iZXIg
b2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNDBlMGIyYWZmMWIwZGZm
MTNjNjBiNTA2NjU4NDQ4MDdmYmQwY2Y1MC4uYmExNWNmN2VmZjAwN2IwYTViYTAyMjk1OWVjYjEw
YTM1YWQ2YjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzgsNiArNzgsNyBA
QAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5j
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUgIlNj
cmVlbi5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5MTdiOWY4MDVhNjBiZDE4OWJkYzAuLjRm
NTE5OWI2MzUzYTcxOTlhNjQxZmIwOWYxZmM0OTdlYWZiMzg0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICszODcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAg
YXR0cmlidXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0eTsKICAgICAgICAgYXR0cmlidXRlIEVu
dGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgYXR0cmli
dXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRB
dFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9v
dDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRB
dENvbnRleHQ9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9v
dDsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uQ29uc3RydWN0b3IgU2VsZWN0aW9u
OwogICAgICAgICBhdHRyaWJ1dGUgRE9NV2luZG93Q29uc3RydWN0b3IgV2luZG93Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142966</attachid>
            <date>2012-05-21 01:36:58 -0700</date>
            <delta_ts>2012-05-21 03:06:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86555-20120521173656.patch</filename>
            <type>text/plain</type>
            <size>18371</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkYzY3YjMwMDhiOWM2
ZDM2OGU3MzQ5NDdlMjgzZGQ3NzI3Yjg0My4uYzJiZWQ1OGFiOGQ3OTVlNTA2Y2M4MTY3NjJlYmFj
MmQ2ZDJhMTM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEyLTA1LTIwICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gU2hhZG93IERP
TSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4gSURM
IGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBhbGxv
d3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAgICAg
ICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgpIG1l
dGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJhdG9y
VjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBwcm9w
ZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBpbnN0
ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0IGdl
bmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNoIGlu
amVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0byBu
ZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMgdXNl
ZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2YgU2hh
ZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBGcmFt
ZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9uLgor
ICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRvdy5X
ZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9NRW5h
YmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzLiBUaGlzIGlzbid0IHRlc3RhYmxlIGZyb20gRFJUIGFuZCB0aGlzIGNoYW5nZSBp
dHNlbGYgZG9lc24ndCBjaGFnbmUgdGhlIGJlaGF2aW91ci4KKyAgICAgICAgSXQgbmVlZHMgYSBj
bGllbnQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJD
b3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKTogQWRkZWQuCisg
ICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAgIChH
ZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURM
QXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93
KTogQWRvcHRlZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKQorICAgICAgICAqIGJpbmRp
bmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6
Y29uZmlndXJlQXR0cmlidXRlKTogR2VuZXJhbGl6ZWQgdG8gYWNjZXB0IGJvdGggT2JqZWN0VGVt
cGxhdGUgYW5kIE9iamVjdC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBBZG9wdGVkIHNo
YWRvd0RPTUFsbG93ZWQoKQorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OlBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpmaW5kUGFyZW50KToKKyAgICAgICAgKiBkb20v
U2hhZG93Um9vdC5pZGw6CisgICAgICAgICogZG9tL1RyZWVTY29wZS5jcHA6IEFkb3B0ZWQgc2hh
ZG93RE9NQWxsb3dlZCgpCisgICAgICAgIChXZWJDb3JlOjpUcmVlU2NvcGU6OmdldFNlbGVjdGlv
bik6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDogQWRvcHRl
ZCBzaGFkb3dET01BbGxvd2VkKCkKKyAgICAgICAgKFdlYkNvcmU6OmNvbnRlbnRUYWdOYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpzaGFkb3dET01BbGxvd2Vk
KTogQWRkZWQgd2l0aCBhIGRlZmF1bHQgYmVoYXZpb3IuCisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmlkbDoKKwogMjAxMi0wNS0yMCAgUGhp
bGlwIFJvZ2VycyAgPHBkckBnb29nbGUuY29tPgogCiAgICAgICAgIEFjY3VtdWxhdGUgU1ZHIGFu
aW1hdGlvbnMgaW50byBmaXJzdCBjb250cmlidXRpbmcgZWxlbWVudApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHAKaW5kZXggYjdjMzFlNmE5MDNhNzFjYTA0ODYzYjdhMTVhZjE4YTM2MWQwZTYwYi4uMDU4YjZj
NjFiNDgwNDQ0ZDhkNzhhNWI3MjhjN2I2NTIwOGRhMTJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3Bw
CkBAIC0zMiw2ICszMiwxMCBAQAogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
IAogI2luY2x1ZGUgIkFic3RyYWN0RGF0YWJhc2UuaCIKKyNpbmNsdWRlICJET01XaW5kb3cuaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJNZWRpYVBsYXllci5oIgogI2luY2x1ZGUg
IlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKICNpbmNsdWRlICJXZWJTb2NrZXQuaCIKQEAgLTIw
Miw0ICsyMDYsMTUgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc1N0eWxlU2NvcGVk
RW5hYmxlZCA9IGZhbHNlOwogYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjppc0lucHV0VHlw
ZURhdGVFbmFibGVkID0gdHJ1ZTsKICNlbmRpZgogCisjaWYgRU5BQkxFKFNIQURPV19ET00pCiti
b29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93KiB3
aW5kb3cpCit7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gd2luZG93LT5mcmFtZSgpKQorICAgICAgICByZXR1cm4gZnJhbWUt
PmxvYWRlcigpLT5jbGllbnQoKS0+c2hhZG93RE9NQWxsb3dlZChzaGFkb3dET01FbmFibGVkKCkp
OworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCmluZGV4IDhiNDcwMDljOGE1MzNiMjMyZTM0YjczMjQ2OTNjMTA4Nzk1
NDFlNzUuLjcwMzJhODZhNGNhYjU5ZTlkZWNkYzAwYTc4MTk0YjgxYjQ1YWRmNzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJl
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xh
c3MgRE9NV2luZG93OworCiAvLyBBIGNsYXNzIHRoYXQgc3RvcmVzIHN0YXRpYyBlbmFibGVycyBm
b3IgYWxsIGV4cGVyaW1lbnRhbCBmZWF0dXJlcy4gTm90ZSB0aGF0CiAvLyB0aGUgbWV0aG9kIG5h
bWVzIG11c3QgbGluZSB1cCB3aXRoIHRoZSBKYXZhU2NyaXB0IG1ldGhvZCB0aGV5IGVuYWJsZSBm
b3IgY29kZQogLy8gZ2VuZXJhdGlvbiB0byB3b3JrIHByb3Blcmx5LgpAQCAtMjI0LDYgKzIyNiw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICBzdGF0aWMgYm9vbCBzaGFk
b3dET01FbmFibGVkKCkgeyByZXR1cm4gaXNTaGFkb3dET01FbmFibGVkOyB9CiAgICAgc3RhdGlj
IHZvaWQgc2V0U2hhZG93RE9NRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBpc1NoYWRvd0RPTUVu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KKyAgICBzdGF0aWMgYm9vbCBzaGFkb3dET01BbGxvd2VkKERP
TVdpbmRvdyopOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBk
NjZmODRlMGM3MzI0MjhkZTBlOTA1NDZkOTg0NDEyMzkyNGNiYzM0Li42Nzk1MDcxNTc5NzI4NTlm
ZGY3ZDA1ODNlN2ZkN2E5OWQ2ZDFiZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzM3LDYgKzMzNyw3IEBAIEVORAog
ICAgIGlmICgkaW1wbENsYXNzTmFtZSBlcSAiRE9NV2luZG93IikgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CiAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3RUZW1wbGF0ZT4gR2V0U2hhZG93T2JqZWN0VGVtcGxhdGUoKTsKKyAgICBzdGF0aWMgdm9pZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgRE9NV2lu
ZG93Kik7CiBFTkQKICAgICB9CiAKQEAgLTIzMDksNyArMjMxMCw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRkIGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAg
cHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5lcmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRl
cigkZGF0YU5vZGUpKTsKLSAgICAgICAgIAorCiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOFByb3h5Lmgi
KTsKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiVjhCaW5kaW5nLmgiKTsKQEAgLTI0MjcsNiArMjQy
OCw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRpc2FsbG93c1NoYWRv
d2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhhdCBhcmUgZW5hYmxl
ZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5LgogICAgIG15IEBl
bmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkQXRDb250ZXh0OwogICAgIG15IEBub3Jt
YWw7CiAgICAgZm9yZWFjaCBteSAkYXR0cmlidXRlIChAJGF0dHJpYnV0ZXMpIHsKIApAQCAtMjQz
NCw2ICsyNDM2LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIHB1
c2goQGRpc2FsbG93c1NoYWRvd2luZywgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0gZWxzaWYgKCRh
dHRyaWJ1dGUtPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0UnVu
dGltZSJ9KSB7CiAgICAgICAgICAgICBwdXNoKEBlbmFibGVkQXRSdW50aW1lLCAkYXR0cmlidXRl
KTsKKyAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGVuYWJs
ZWRBdENvbnRleHQsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
cHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAtMjg2Myw5ICsyODY3LDI5
IEBAIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3RUZW1wbGF0ZT4gVjhET01XaW5kb3c6OkdldFNo
YWRvd09iamVjdFRlbXBsYXRlKCkKICAgICB9CiAgICAgcmV0dXJuIFY4RE9NV2luZG93U2hhZG93
T2JqZWN0Q2FjaGU7CiB9CisKK3ZvaWQgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3RhbmNlLCBET01XaW5kb3cqIHdpbmRv
dykKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9i
amVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKIEVORAotICAgIH0KKyAgICAj
IFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgYXR0cnMgaWYgd2UgaGF2ZSB0aGVtCisgICAg
Zm9yZWFjaCBteSAkcnVudGltZUF0dHIgKEBlbmFibGVkQXRDb250ZXh0KSB7CisgICAgICAgIG15
ICRlbmFibGVGdW5jdGlvbiA9IEdldENvbnRleHRFbmFibGVGdW5jdGlvbigkcnVudGltZUF0dHIt
PnNpZ25hdHVyZSk7CisgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJh
dG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsK
KyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJcbiNpZiAke2NvbmRpdGlvbmFsU3RyaW5nfVxu
IikgaWYgJGNvbmRpdGlvbmFsU3RyaW5nOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6JHtlbmFibGVGdW5jdGlvbn0od2luZG93KSkg
e1xuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBzdGF0aWMgY29uc3Qg
QmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XFxcbiIpOworICAgICAgICBHZW5lcmF0ZVNpbmds
ZUJhdGNoZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsiLCAiICAg
ICIpOworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBjb25maWd1
cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgfVxuI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4i
KSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CisgICAgIH0KIAorICAgIHB1c2goQGltcGxDb250ZW50
LCA8PEVORCk7Cit9CitFTkQKKyAgICB9CiAgICAgR2VuZXJhdGVUb1Y4Q29udmVydGVycygkZGF0
YU5vZGUsICRpbnRlcmZhY2VOYW1lLCAkY2xhc3NOYW1lLCAkbmF0aXZlVHlwZSk7CiAKICAgICBw
dXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMzk1Myw2ICszOTc3LDIwIEBAIHN1YiBHZXRS
dW50aW1lRW5hYmxlRnVuY3Rpb25OYW1lCiAgICAgcmV0dXJuICJSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjoiIC4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+bmFtZSkgLiAi
RW5hYmxlZCI7CiB9CiAKK3N1YiBHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24KK3sKKyAgICBteSAk
c2lnbmF0dXJlID0gc2hpZnQ7CisKKyAgICAjIElmIGEgcGFyYW1ldGVyIGlzIGdpdmVuIChlLmcu
ICJWOEVuYWJsZWRBdENvbnRleHQ9RmVhdHVyZU5hbWUiKSByZXR1cm4gdGhlIHtGZWF0dXJlTmFt
ZX1BbGxvd2VkKCkgbWV0aG9kLgorICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiVjhFbmFibGVkQXRDb250ZXh0In0gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9IG5lICJWQUxVRV9JU19NSVNTSU5HIikgeworICAg
ICAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJHNpZ25hdHVyZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0Q29udGV4dCJ9KSAuICJBbGxvd2VkIjsKKyAgICB9
CisKKyAgICAjIE9yIGl0IGZhbGxiYWNrcyB0byB0aGUgYXR0cmlidXRlIG5hbWUgaWYgdGhlIHBh
cmFtZXRlciB2YWx1ZSBpcyBtaXNzaW5nLgorICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJHNpZ25h
dHVyZS0+bmFtZTsKKyAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJp
YnV0ZU5hbWUpIC4gIkFsbG93ZWQiOworfQorCiBzdWIgR2V0UGFzc1JlZlB0clR5cGUKIHsKICAg
ICBteSAkY2xhc3NOYW1lID0gc2hpZnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBhNDY3YmZlZTU0ZDVhNTU4MzNjMzA5MDcx
OWVhMjhlMzZmNGRlNDVkLi5hMzA5Zjk4OTYwYjBmN2NlMjA1ZjcyNGIyMmRkMjQzYjhhMzFlMjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0
ZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKQEAgLTExMSw1ICsxMTEsNiBAQCBWOEN1c3RvbVRvSlNPYmplY3QKIFY4RGVwZW5kZW50
TGlmZXRpbWUKIFY4RG9Ob3RDaGVja1NpZ25hdHVyZQogVjhFbmFibGVkQXRSdW50aW1lPSoKK1Y4
RW5hYmxlZEF0Q29udGV4dD0qCiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCmluZGV4IDkwZGMwZjgw
ZGUxYzk2M2VlODFiMmMzMDMzYzk3ODZmNzIxYThkYmUuLjFmOThmZDUwOGVmZmQyZGVkZWFlYmM3
MmI0M2E5OTMyYjc5MWYwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDgsMTAgKzQwOCwxMSBAQCBib29sIFY4RE9NV2luZG93
U2hlbGw6Omluc3RhbGxET01XaW5kb3codjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwg
RE9NV2luZAogICAgIGlmIChqc1dpbmRvdy5Jc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAorICAgIFY4RE9NV2luZG93OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoanNXaW5k
b3csIHdpbmRvdyk7CisKICAgICAvLyBXcmFwIHRoZSB3aW5kb3cuCiAgICAgVjhET01XcmFwcGVy
OjpzZXRET01XcmFwcGVyKGpzV2luZG93LCAmVjhET01XaW5kb3c6OmluZm8sIHdpbmRvdyk7CiAg
ICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNh
c3QoanNXaW5kb3ctPkdldFByb3RvdHlwZSgpKSwgJlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3cp
OwotCiAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01PYmplY3QoUGFzc1JlZlB0
cjxET01XaW5kb3c+KHdpbmRvdyksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoanNX
aW5kb3cpKTsKIAogICAgIC8vIEluc2VydCB0aGUgd2luZG93IGluc3RhbmNlIGFzIHRoZSBwcm90
b3R5cGUgb2YgdGhlIHNoYWRvdyBvYmplY3QuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5
LmgKaW5kZXggOGYzMzM3NjllMTNmMzMxYjkxM2VlNGQ0YmZmZWM5MzE2ZTE4ZjEzZi4uOTZkMzdi
Y2U0Zjc2MTkwNTJmMTJlNGM2MzdjZTY0NzYxYWI0NWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuaApAQCAtODUsNyArODUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICB2b2lkIGJhdGNoQ29uZmlndXJlQXR0cmlidXRlcyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1w
bGF0ZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiwgY29uc3QgQmF0Y2hlZEF0dHJp
YnV0ZSosIHNpemVfdCBhdHRyaWJ1dGVDb3VudCk7CiAKLSAgICBpbmxpbmUgdm9pZCBjb25maWd1
cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+IGluc3RhbmNlLCB2ODo6
SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJvdG8sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUm
IGF0dHJpYnV0ZSkKKyAgICB0ZW1wbGF0ZTxjbGFzcyBPYmplY3RPclRlbXBsYXRlPgorICAgIGlu
bGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZSh2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+
IGluc3RhbmNlLCB2ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+IHByb3RvLCBjb25zdCBCYXRj
aGVkQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAgICAgewogICAgICAgICAoYXR0cmlidXRlLm9uUHJv
dG8gPyBwcm90byA6IGluc3RhbmNlKS0+U2V0QWNjZXNzb3Iodjg6OlN0cmluZzo6TmV3KGF0dHJp
YnV0ZS5uYW1lKSwKICAgICAgICAgICAgIGF0dHJpYnV0ZS5nZXR0ZXIsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0
aW9uLmNwcAppbmRleCAwOGRlYTczYjZmMWU5ZWE4ZGNhODM3Y2YwMjU1MzM3NjI0MThlY2Q2Li4x
Nzk5OTRiZWZjNmU0NjIyODczMTIyMWUzZWFmODU2OGQ0ZTZjYzFlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3Np
dGlvbi5jcHAKQEAgLTgyLDcgKzgyLDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8
Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRpdGluZ09mZnNldCBvZmZzZXQpCiAgICAgLCBtX2lz
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0g
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAh
bV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxv
d2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8
fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNl
CiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2VuZGlmCkBAIC05NSw3ICs5Niw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVm
UHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNM
ZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0g
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAh
bV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NF
UlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxv
d2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8
fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNl
CiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290
KCkpOwogI2VuZGlmCkBAIC0xMTIsNyArMTE0LDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NS
ZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9mZnNldCwgQW5jaG9yVHlwZSBhbmNob3JUeXAK
ICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNI
QURPV19ET00pCi0gICAgIEFTU0VSVChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01F
bmFibGVkKCkgfHwgIW1fYW5jaG9yTm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5j
aG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIEFT
U0VSVCgobV9hbmNob3JOb2RlICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFs
bG93ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgICAgICAg
IHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUu
Z2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNT
RVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUu
Z2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRpZgpAQCAtODU0
LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBvc2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5v
ZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBodHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBF
TkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZCgpKQorICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01B
bGxvd2VkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0dXJuIG5v
ZGUtPnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5k
ZXggYTkzMzMzYmMxMGQxNmQ0ZjY0MjIxZjNmYWZhNTdhNGU4N2EyMGUwNi4uODExMGMxZTA4YTc0
M2Q3M2VjMTM0NTJjYTZhNGRiNmEzNzQ3NDFjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290Lmlk
bApAQCAtMjgsNyArMjgsNiBAQCBtb2R1bGUgY29yZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAg
ICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAotICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9
c2hhZG93RE9NLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBFbGVtZW50IGhvc3QpLAogICAgICAg
ICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgogICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50
RnJhZ21lbnQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAppbmRleCAwNzQwOWYwNjZkYTE2YTk0
OTk5MzI1YzdjNWU2YmVmMzExOWEyZDFjLi4wMTIwOTY3OWUyM2QwZTc4MjIyNzhjNWU5MWI5YTU5
OTNlNjhkOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBA
IERPTVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFz
IGEgY29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxlZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERP
TSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIGlmIChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkpIHsKKyAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NQWxsb3dlZChyb290Tm9kZSgpLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSkpIHsKICAgICAgICAgbV9zZWxlY3Rpb24gPSBET01TZWxlY3Rpb246
OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJuIG1fc2VsZWN0aW9uLmdldCgpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3Bw
CmluZGV4IGE0ZGNlZWVkMGRmYmIwYTE2YzZjNGRkNWM0ZDI5OGIwYzY0NzJkNjAuLjg2NjgyN2Jl
ZDJlODI3NzgzMTE0YjI3OGE3NDA1MmE5MGVhOWU4MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNDAsMjAgKzQwLDIxIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RBdHRyOwogCi1z
dGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoKQorc3RhdGljIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICNp
ZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRv
d0RPTUFsbG93ZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0dXJuIEhUTUxO
YW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5hbWVzOjpjb250
ZW50VGFnOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogICAgIHJldHVybiBI
VE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAjZW5kaWYKIH0KIAogUGFzc1JlZlB0
cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxDb250ZW50RWxlbWVu
dChjb250ZW50VGFnTmFtZSgpLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTENvbnRlbnRFbGVtZW50KGNvbnRlbnRUYWdOYW1lKGRvY3VtZW50KSwgZG9jdW1lbnQpKTsK
IH0KIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6
Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggYjE1Y2UwMDgy
Zjg0YWEzNDIzZmNmMDAyNTQ4NmE5N2FiYjE1N2MwZi4uN2M5Zjg1M2JkMGZkZWIyMDlkZWZjZmY1
Mjc5ZTI0NGZiMGQ3MmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xp
ZW50LmgKQEAgLTMxMCw3ICszMTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBjb25zdCBLVVJM
JikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBh
bGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNl
Y3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsg
fQogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wg
ZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVy
biBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLSAgICAgICAgCisKKyAgICAgICAgdmlydHVhbCBib29s
IHNoYWRvd0RPTUFsbG93ZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJu
IGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQorCiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sg
bm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAg
ICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5l
ZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVj
YXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggNDBlMGIyYWZmMWIwZGZmMTNjNjBiNTA2NjU4NDQ4MDdmYmQwY2Y1MC4uYmExNWNm
N2VmZjAwN2IwYTViYTAyMjk1OWVjYjEwYTM1YWQ2YjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQu
aCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgi
CisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVkdWxl
ZEFjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmVlbi5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5
MTdiOWY4MDVhNjBiZDE4OWJkYzAuLjRmNTE5OWI2MzUzYTcxOTlhNjQxZmIwOWYxZmM0OTdlYWZi
Mzg0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICszODcsNyBAQCBt
b2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0
eTsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJl
ZmVyZW5jZTsKICAgICAgICAgYXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVj
dG9yIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFkb3dSb290Q29u
c3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKKyAgICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25h
bD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdENvbnRleHQ9c2hhZG93RE9NXSBTaGFkb3dSb290Q29u
c3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKIAogICAgICAgICBhdHRyaWJ1dGUgRE9NU2VsZWN0
aW9uQ29uc3RydWN0b3IgU2VsZWN0aW9uOwogICAgICAgICBhdHRyaWJ1dGUgRE9NV2luZG93Q29u
c3RydWN0b3IgV2luZG93Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>142979</attachid>
            <date>2012-05-21 03:06:17 -0700</date>
            <delta_ts>2012-05-21 19:38:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86555-20120521190616.patch</filename>
            <type>text/plain</type>
            <size>24839</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmVkYzY3YjMwMDhiOWM2
ZDM2OGU3MzQ5NDdlMjgzZGQ3NzI3Yjg0My4uMzU4ZDZkOTkxZDZlZmU4NmZlZDBiYzE5M2UzNjc5
ZTMzNGRlZWQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDEyLTA1LTIxICBNT1JJ
VEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gU2hhZG93IERP
TSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4gSURM
IGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBhbGxv
d3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAgICAg
ICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgpIG1l
dGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJhdG9y
VjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBwcm9w
ZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBpbnN0
ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0IGdl
bmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNoIGlu
amVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0byBu
ZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMgdXNl
ZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2YgU2hh
ZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBGcmFt
ZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9uLgor
ICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRvdy5X
ZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9NRW5h
YmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGV4Y2VwdCBydW4tYmluZGluZ3MtdGVzdC4gVGhpcyBpc24ndCB0ZXN0YWJsZSBm
cm9tCisgICAgICAgIERSVCBhbmQgdGhpcyBjaGFuZ2UgaXRzZWxmIGRvZXNuJ3QgY2hhZ25lIHRo
ZSBiZWhhdmlvdXIuICBJdCBuZWVkcworICAgICAgICBhIGNsaWVudCBpbXBsZW1lbnRhdGlvbi4K
KworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHA6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQpOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoUnVudGltZUVuYWJsZWRGZWF0dXJlcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChH
ZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgKEdldENvbnRleHRFbmFibGVGdW5jdGlv
bik6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUZXN0
T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIxQXR0ckdldHRlcik6CisgICAgICAg
IChUZXN0T2JqVjhJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5h
bDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIxQXR0clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0ckdldHRlcik6CisgICAg
ICAgIChXZWJDb3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0
clNldHRlcik6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RPYmo6Omluc3RhbGxQZXJDb250ZXh0
UHJvcGVydGllcyk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5oOgorICAgICAgICAoVjhUZXN0T2JqKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV2luZG93U2hlbGw6Omluc3Rh
bGxET01XaW5kb3cpOiBBZG9wdGVkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcygpCisgICAg
ICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpjb25maWd1cmVBdHRyaWJ1dGUpOiBHZW5lcmFsaXplZCB0byBhY2NlcHQgYm90
aCBPYmplY3RUZW1wbGF0ZSBhbmQgT2JqZWN0LgorICAgICAgICAqIGRvbS9Qb3NpdGlvbi5jcHA6
IEFkb3B0ZWQgc2hhZG93RE9NQWxsb3dlZCgpCisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6
UG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OmZpbmRQYXJlbnQpOgorICAg
ICAgICAqIGRvbS9TaGFkb3dSb290LmlkbDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDog
QWRvcHRlZCBzaGFkb3dET01BbGxvd2VkKCkKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTY29wZTo6
Z2V0U2VsZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwOiBBZG9wdGVkIHNoYWRvd0RPTUFsbG93ZWQoKQorICAgICAgICAoV2ViQ29yZTo6Y29udGVu
dFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoRnJhbWVM
b2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnQ6OnNoYWRv
d0RPTUFsbG93ZWQpOiBBZGRlZCB3aXRoIGEgZGVmYXVsdCBiZWhhdmlvci4KKyAgICAgICAgKiBw
YWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaWRsOgorCiAyMDEy
LTA1LTIwICBQaGlsaXAgUm9nZXJzICA8cGRyQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWNjdW11
bGF0ZSBTVkcgYW5pbWF0aW9ucyBpbnRvIGZpcnN0IGNvbnRyaWJ1dGluZyBlbGVtZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcAppbmRleCBiN2MzMWU2YTkwM2E3MWNhMDQ4NjNiN2ExNWFmMThhMzYxZDBl
NjBiLi4wNThiNmM2MWI0ODA0NDRkOGQ3OGE1YjcyOGM3YjY1MjA4ZGExMmNjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5jcHAKQEAgLTMyLDYgKzMyLDEwIEBACiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogCiAjaW5jbHVkZSAiQWJzdHJhY3REYXRhYmFzZS5oIgorI2luY2x1ZGUgIkRP
TVdpbmRvdy5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
KyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgi
CiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dC5oIgpAQCAtMjAyLDQgKzIwNiwxNSBAQCBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Omlz
U3R5bGVTY29wZWRFbmFibGVkID0gZmFsc2U7CiBib29sIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OmlzSW5wdXRUeXBlRGF0ZUVuYWJsZWQgPSB0cnVlOwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoU0hB
RE9XX0RPTSkKK2Jvb2wgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NQWxsb3dlZChE
T01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkpCisgICAgICAgIHJl
dHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zaGFkb3dET01BbGxvd2VkKHNoYWRvd0RP
TUVuYWJsZWQoKSk7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggOGI0NzAwOWM4YTUzM2IyMzJlMzRiNzMy
NDY5M2MxMDg3OTU0MWU3NS4uNzAzMmE4NmE0Y2FiNTllOWRlY2RjMDBhNzgxOTRiODFiNDVhZGY3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmgKQEAgLTMzLDYgKzMzLDggQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitjbGFzcyBET01XaW5kb3c7CisKIC8vIEEgY2xhc3MgdGhhdCBzdG9yZXMgc3RhdGlj
IGVuYWJsZXJzIGZvciBhbGwgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBOb3RlIHRoYXQKIC8vIHRo
ZSBtZXRob2QgbmFtZXMgbXVzdCBsaW5lIHVwIHdpdGggdGhlIEphdmFTY3JpcHQgbWV0aG9kIHRo
ZXkgZW5hYmxlIGZvciBjb2RlCiAvLyBnZW5lcmF0aW9uIHRvIHdvcmsgcHJvcGVybHkuCkBAIC0y
MjQsNiArMjI2LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShTSEFET1dfRE9NKQogICAgIHN0YXRp
YyBib29sIHNoYWRvd0RPTUVuYWJsZWQoKSB7IHJldHVybiBpc1NoYWRvd0RPTUVuYWJsZWQ7IH0K
ICAgICBzdGF0aWMgdm9pZCBzZXRTaGFkb3dET01FbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IGlz
U2hhZG93RE9NRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQorICAgIHN0YXRpYyBib29sIHNoYWRvd0RP
TUFsbG93ZWQoRE9NV2luZG93Kik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtCmluZGV4IGQ2NmY4NGUwYzczMjQyOGRlMGU5MDU0NmQ5ODQ0MTIzOTI0Y2JjMzQuLjc2Yjk4
YmM5MjQzM2ZlODdhMzNmYzU1YmNhZjcyYjRhNmRmZjVmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0zNDgsNiArMzQ4
LDcgQEAgRU5ECiAgICAgfQogCiAgICAgbXkgQGVuYWJsZWRBdFJ1bnRpbWU7CisgICAgbXkgQGVu
YWJsZWRBdENvbnRleHQ7CiAgICAgZm9yZWFjaCBteSAkZnVuY3Rpb24gKEB7JGRhdGFOb2RlLT5m
dW5jdGlvbnN9KSB7CiAgICAgICAgIG15ICRuYW1lID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPm5h
bWU7CiAgICAgICAgIG15ICRhdHRyRXh0ID0gJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlczsKQEAgLTM5Nyw2ICszOTgsMTAgQEAgRU5ECiAgICAgICAgIGlmICgkYXR0ckV4
dC0+eyJWOEVuYWJsZWRBdFJ1bnRpbWUifSkgewogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0
UnVudGltZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0KKworICAgICAgICBpZiAoJGF0dHJFeHQt
PnsiVjhFbmFibGVkQXRDb250ZXh0In0pIHsKKyAgICAgICAgICAgIHB1c2goQGVuYWJsZWRBdENv
bnRleHQsICRhdHRyaWJ1dGUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgR2VuZXJhdGVIZWFk
ZXJOYW1lZEFuZEluZGV4ZWRQcm9wZXJ0eUFjY2Vzc29ycygkZGF0YU5vZGUpOwpAQCAtNDEwLDYg
KzQxNSwxMiBAQCBFTkQKIEVORAogICAgIH0KIAorICAgIGlmIChAZW5hYmxlZEF0Q29udGV4dCkg
eworICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CisgICAgc3RhdGljIHZvaWQg
aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sICR7aW1w
bENsYXNzTmFtZX0qKTsKK0VORAorICAgIH0KKwogICAgIG15ICR3cmFwU2xvd0FyZ3VtZW50VHlw
ZSA9IEdldFBhc3NSZWZQdHJUeXBlKCRuYXRpdmVUeXBlKTsKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCA8PEVORCk7CiBwcml2YXRlOgpAQCAtMjMwOSw3ICsyMzIwLDcgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KIAogICAgICMgLSBBZGQgZGVmYXVsdCBoZWFkZXIgdGVtcGxhdGUKICAg
ICBwdXNoKEBpbXBsRml4ZWRIZWFkZXIsIEdlbmVyYXRlSW1wbGVtZW50YXRpb25Db250ZW50SGVh
ZGVyKCRkYXRhTm9kZSkpOwotICAgICAgICAgCisKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4UHJveHku
aCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEJpbmRpbmcuaCIpOwpAQCAtMjQyNyw2ICsy
NDM4LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICBteSBAZGlzYWxsb3dzU2hh
ZG93aW5nOwogICAgICMgQWxzbyBzZXBhcmF0ZSBvdXQgYXR0cmlidXRlcyB0aGF0IGFyZSBlbmFi
bGVkIGF0IHJ1bnRpbWUgc28gd2UgY2FuIHByb2Nlc3MgdGhlbSBzcGVjaWFsbHkuCiAgICAgbXkg
QGVuYWJsZWRBdFJ1bnRpbWU7CisgICAgbXkgQGVuYWJsZWRBdENvbnRleHQ7CiAgICAgbXkgQG5v
cm1hbDsKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEAkYXR0cmlidXRlcykgewogCkBAIC0y
NDM0LDYgKzI0NDYsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
cHVzaChAZGlzYWxsb3dzU2hhZG93aW5nLCAkYXR0cmlidXRlKTsKICAgICAgICAgfSBlbHNpZiAo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhFbmFibGVkQXRS
dW50aW1lIn0pIHsKICAgICAgICAgICAgIHB1c2goQGVuYWJsZWRBdFJ1bnRpbWUsICRhdHRyaWJ1
dGUpOworICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJWOEVuYWJsZWRBdENvbnRleHQifSkgeworICAgICAgICAgICAgcHVzaChAZW5h
YmxlZEF0Q29udGV4dCwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAg
ICBwdXNoKEBub3JtYWwsICRhdHRyaWJ1dGUpOwogICAgICAgICB9CkBAIC0yODQwLDYgKzI4NTQs
MzIgQEAgYm9vbCAke2NsYXNzTmFtZX06Okhhc0luc3RhbmNlKHY4OjpIYW5kbGU8djg6OlZhbHVl
PiB2YWx1ZSkKIAogRU5ECiAKKyAgICBpZiAoQGVuYWJsZWRBdENvbnRleHQpIHsKKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKK3ZvaWQgJHtjbGFzc05hbWV9OjppbnN0YWxsUGVy
Q29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBpbnN0YW5jZSwgJHtpbXBs
Q2xhc3NOYW1lfSogaW1wbCkKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2
ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKK0VO
RAorICAgICAgICAjIFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgYXR0cnMgaWYgd2UgaGF2
ZSB0aGVtCisgICAgICAgIGZvcmVhY2ggbXkgJHJ1bnRpbWVBdHRyIChAZW5hYmxlZEF0Q29udGV4
dCkgeworICAgICAgICAgICAgbXkgJGVuYWJsZUZ1bmN0aW9uID0gR2V0Q29udGV4dEVuYWJsZUZ1
bmN0aW9uKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgIG15ICRjb25kaXRp
b25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nKCRy
dW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
XG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsKSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUgYXR0ckRh
dGEgPVxcXG4iKTsKKyAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xlQmF0Y2hlZEF0dHJpYnV0ZSgk
aW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVBdHRyLCAiOyIsICIgICAgIik7CisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUoaW5z
dGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjZW5kaWYg
Ly8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKKyAgICAg
ICAgfQorCisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7Cit9CitFTkQKKyAgICB9
CisKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQWN0aXZlRE9NT2Jq
ZWN0In0pIHsKICAgICAgICAgIyBNZXNzYWdlUG9ydCBpcyBoYW5kbGVkIGxpa2UgYW4gYWN0aXZl
IGRvbSBvYmplY3QgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBpbmhlcml0CiAgICAgICAgICMgZnJv
bSBBY3RpdmVET01PYmplY3QsIHNvIGRvbid0IHRyeSB0byBjYXN0IGl0IHRvIEFjdGl2ZURPTU9i
amVjdC4KQEAgLTM5NTMsNiArMzk5MywyMCBAQCBzdWIgR2V0UnVudGltZUVuYWJsZUZ1bmN0aW9u
TmFtZQogICAgIHJldHVybiAiUnVudGltZUVuYWJsZWRGZWF0dXJlczo6IiAuICRjb2RlR2VuZXJh
dG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPm5hbWUpIC4gIkVuYWJsZWQiOwogfQogCitzdWIg
R2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uCit7CisgICAgbXkgJHNpZ25hdHVyZSA9IHNoaWZ0Owor
CisgICAgIyBJZiBhIHBhcmFtZXRlciBpcyBnaXZlbiAoZS5nLiAiVjhFbmFibGVkQXRDb250ZXh0
PUZlYXR1cmVOYW1lIikgcmV0dXJuIHRoZSB7RmVhdHVyZU5hbWV9QWxsb3dlZCgpIG1ldGhvZC4K
KyAgICBpZiAoJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZEF0Q29u
dGV4dCJ9ICYmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEVuYWJsZWRBdENv
bnRleHQifSBuZSAiVkFMVUVfSVNfTUlTU0lORyIpIHsKKyAgICAgICAgcmV0dXJuICRjb2RlR2Vu
ZXJhdG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOEVu
YWJsZWRBdENvbnRleHQifSkgLiAiQWxsb3dlZCI7CisgICAgfQorCisgICAgIyBPciBpdCBmYWxs
YmFja3MgdG8gdGhlIGF0dHJpYnV0ZSBuYW1lIGlmIHRoZSBwYXJhbWV0ZXIgdmFsdWUgaXMgbWlz
c2luZy4KKyAgICBteSAkYXR0cmlidXRlTmFtZSA9ICRzaWduYXR1cmUtPm5hbWU7CisgICAgcmV0
dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRhdHRyaWJ1dGVOYW1lKSAuICJBbGxvd2Vk
IjsKK30KKwogc3ViIEdldFBhc3NSZWZQdHJUeXBlCiB7CiAgICAgbXkgJGNsYXNzTmFtZSA9IHNo
aWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRy
aWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKaW5kZXggYTQ2N2JmZWU1NGQ1YTU1ODMzYzMwOTA3MTllYTI4ZTM2ZjRkZTQ1ZC4uYTMw
OWY5ODk2MGIwZjdjZTIwNWY3MjRiMjJkZDI0M2I4YTMxZTIwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC0xMTEsNSArMTEx
LDYgQEAgVjhDdXN0b21Ub0pTT2JqZWN0CiBWOERlcGVuZGVudExpZmV0aW1lCiBWOERvTm90Q2hl
Y2tTaWduYXR1cmUKIFY4RW5hYmxlZEF0UnVudGltZT0qCitWOEVuYWJsZWRBdENvbnRleHQ9Kgog
VjhSZWFkT25seQogVjhVbmZvcmdlYWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDQ4OGM5OWFiOGQxOWRlNWQ1M2Q1MGVmMzRj
NTFlM2FhOTUwNjcwODguLjA3YTRkZGRkZjJjNDZmY2JiYWMwOGJhNGQ2MWMyMWExYzZhMDdjYTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwKQEAgLTIwMyw2ICsyMDMsOSBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIFtWOEVuYWJsZWRB
dFJ1bnRpbWU9RmVhdHVyZU5hbWVdIHZvaWQgZW5hYmxlZEF0UnVudGltZU1ldGhvZDIoaW4gaW50
IGludEFyZyk7CiAgICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBsb25nIGVu
YWJsZWRBdFJ1bnRpbWVBdHRyMTsKICAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRp
bWU9RmVhdHVyZU5hbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0dHIyOworICAgICAgICAvLyBW
OEVuYWJsZWRBdENvbnRleHQgY3VycmVudGx5IG9ubHkgc3VwcG9ydHMgYXR0cmlidXRlcy4KKyAg
ICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRBdENvbnRleHRdIGxvbmcgZW5hYmxlZEF0Q29udGV4
dEF0dHIxOworICAgICAgICBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0Q29udGV4dD1GZWF0dXJlTmFt
ZV0gbG9uZyBlbmFibGVkQXRDb250ZXh0QXR0cjI7CiAjZW5kaWYKIAogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4
IGUyZDEwY2ZiYzcxZTcyNzQ5M2VmODM4NWE5OTc3ZDk0YjAwOWZiNTYuLmQ3YWYyZWExOGViMGYw
OTdiNDQ4OWMyZGFhYjE4Zjk4NGEzOGZmOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0xMDc0LDYgKzEwNzQs
MzggQEAgc3RhdGljIHZvaWQgZW5hYmxlZEF0UnVudGltZUF0dHIyQXR0clNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2EKICAgICByZXR1cm47CiB9CiAKK3N0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0Q29udGV4dEF0dHIxQXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sK
KyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRyMS5fZ2V0Iik7
CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsK
KyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhpbXAtPmVuYWJsZWRBdENvbnRleHRBdHRyMSgp
KTsKK30KKworc3RhdGljIHZvaWQgZW5hYmxlZEF0Q29udGV4dEF0dHIxQXR0clNldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5l
bmFibGVkQXRDb250ZXh0QXR0cjEuX3NldCIpOworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9i
ajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsK
KyAgICBpbXAtPnNldEVuYWJsZWRBdENvbnRleHRBdHRyMSh2KTsKKyAgICByZXR1cm47Cit9CisK
K3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0ckdl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRy
Mi5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhpbXAtPmVuYWJsZWRBdENvbnRl
eHRBdHRyMigpKTsKK30KKworc3RhdGljIHZvaWQgZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFs
dWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5DX1NUQVRTKCJET00u
VGVzdE9iai5lbmFibGVkQXRDb250ZXh0QXR0cjIuX3NldCIpOworICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50IHYgPSB0b0ludDMy
KHZhbHVlKTsKKyAgICBpbXAtPnNldEVuYWJsZWRBdENvbnRleHRBdHRyMih2KTsKKyAgICByZXR1
cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZmxvYXRBcnJheUF0dHJHZXR0
ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5mbG9hdEFycmF5Ll9nZXQiKTsKQEAg
LTIzODgsNiArMjQyMCwyMiBAQCBib29sIFY4VGVzdE9iajo6SGFzSW5zdGFuY2Uodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHJldHVybiBHZXRSYXdUZW1wbGF0ZSgpLT5IYXNJbnN0
YW5jZSh2YWx1ZSk7CiB9CiAKK3ZvaWQgVjhUZXN0T2JqOjppbnN0YWxsUGVyQ29udGV4dFByb3Bl
cnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBpbnN0YW5jZSwgVGVzdE9iaiogaW1wbCkKK3sK
KyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9iamVjdD46
OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6ZW5hYmxlZEF0Q29udGV4dEF0dHIxQWxsb3dlZChpbXBsKSkgeworICAgICAgICBz
dGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAorICAgICAgICAvLyBBdHRy
aWJ1dGUgJ2VuYWJsZWRBdENvbnRleHRBdHRyMScgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6
ICdWOEVuYWJsZWRBdENvbnRleHQnKQorICAgICAgICB7ImVuYWJsZWRBdENvbnRleHRBdHRyMSIs
IFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRDb250ZXh0QXR0cjFBdHRyR2V0dGVyLCBUZXN0
T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIxQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL307CisgICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJE
YXRhKTsKKyAgICB9CisgICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1l
QWxsb3dlZChpbXBsKSkgeworICAgICAgICBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBh
dHRyRGF0YSA9XAorICAgICAgICAvLyBBdHRyaWJ1dGUgJ2VuYWJsZWRBdENvbnRleHRBdHRyMicg
KFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVuYWJsZWRBdENvbnRleHQnKQorICAgICAg
ICB7ImVuYWJsZWRBdENvbnRleHRBdHRyMiIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRD
b250ZXh0QXR0cjJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4
dEF0dHIyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNz
Q29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+
KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL307CisgICAgICAgIGNvbmZpZ3VyZUF0dHJp
YnV0ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJEYXRhKTsKKyAgICB9Cit9CiAKIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RPYmo+IGltcGws
IHY4OjpJc29sYXRlKiBpc29sYXRlKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCmluZGV4IDc4ZjcxOGQ1NWNlNTQ2NzViNTVi
MDIzOGQ2ZDgzYzVlYWY2YzAzNzYuLmUxYmI4MTNiNWFhNzBlOTIzNzJlYjU3MDA3MDA3NTI0ZGQ4
YWFjNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY3VzdG9tQXR0ckFjY2Vzc29yR2V0dGVyKHY4OjpMb2NhbDx2ODo6
U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJik7CiAgICAgc3RhdGljIHZvaWQg
Y3VzdG9tQXR0ckFjY2Vzc29yU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6
TG9jYWw8djg6OlZhbHVlPiwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYpOwogICAgIHN0YXRpYyBj
b25zdCBpbnQgaW50ZXJuYWxGaWVsZENvdW50ID0gdjhEZWZhdWx0V3JhcHBlckludGVybmFsRmll
bGRDb3VudCArIDA7CisgICAgc3RhdGljIHZvaWQgaW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVz
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4sIFRlc3RPYmoqKTsKIHByaXZhdGU6CiAgICAgc3RhdGlj
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0T2JqPiwgdjg6
Oklzb2xhdGUqKTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OERPTVdpbmRvd1NoZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2lu
ZG93U2hlbGwuY3BwCmluZGV4IDkwZGMwZjgwZGUxYzk2M2VlODFiMmMzMDMzYzk3ODZmNzIxYThk
YmUuLjFmOThmZDUwOGVmZmQyZGVkZWFlYmM3MmI0M2E5OTMyYjc5MWYwMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwCkBAIC00MDgsMTAg
KzQwOCwxMSBAQCBib29sIFY4RE9NV2luZG93U2hlbGw6Omluc3RhbGxET01XaW5kb3codjg6Okhh
bmRsZTx2ODo6Q29udGV4dD4gY29udGV4dCwgRE9NV2luZAogICAgIGlmIChqc1dpbmRvdy5Jc0Vt
cHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAorICAgIFY4RE9NV2luZG93OjppbnN0YWxs
UGVyQ29udGV4dFByb3BlcnRpZXMoanNXaW5kb3csIHdpbmRvdyk7CisKICAgICAvLyBXcmFwIHRo
ZSB3aW5kb3cuCiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKGpzV2luZG93LCAmVjhE
T01XaW5kb3c6OmluZm8sIHdpbmRvdyk7CiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVy
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoanNXaW5kb3ctPkdldFByb3RvdHlwZSgpKSwg
JlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3cpOwotCiAgICAgVjhET01XcmFwcGVyOjpzZXRKU1dy
YXBwZXJGb3JET01PYmplY3QoUGFzc1JlZlB0cjxET01XaW5kb3c+KHdpbmRvdyksIHY4OjpQZXJz
aXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcoanNXaW5kb3cpKTsKIAogICAgIC8vIEluc2VydCB0aGUg
d2luZG93IGluc3RhbmNlIGFzIHRoZSBwcm90b3R5cGUgb2YgdGhlIHNoYWRvdyBvYmplY3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKaW5kZXggOGYzMzM3NjllMTNmMzMxYjkxM2Vl
NGQ0YmZmZWM5MzE2ZTE4ZjEzZi4uOTZkMzdiY2U0Zjc2MTkwNTJmMTJlNGM2MzdjZTY0NzYxYWI0
NWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtODUsNyArODUsOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICB2b2lkIGJhdGNoQ29uZmlndXJlQXR0cmlidXRl
cyh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIHY4OjpIYW5kbGU8djg6Ok9iamVjdFRl
bXBsYXRlPiwgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSosIHNpemVfdCBhdHRyaWJ1dGVDb3VudCk7
CiAKLSAgICBpbmxpbmUgdm9pZCBjb25maWd1cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0VGVtcGxhdGU+IGluc3RhbmNlLCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gcHJv
dG8sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUmIGF0dHJpYnV0ZSkKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBPYmplY3RPclRlbXBsYXRlPgorICAgIGlubGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJpYnV0ZSh2
ODo6SGFuZGxlPE9iamVjdE9yVGVtcGxhdGU+IGluc3RhbmNlLCB2ODo6SGFuZGxlPE9iamVjdE9y
VGVtcGxhdGU+IHByb3RvLCBjb25zdCBCYXRjaGVkQXR0cmlidXRlJiBhdHRyaWJ1dGUpCiAgICAg
ewogICAgICAgICAoYXR0cmlidXRlLm9uUHJvdG8gPyBwcm90byA6IGluc3RhbmNlKS0+U2V0QWNj
ZXNzb3Iodjg6OlN0cmluZzo6TmV3KGF0dHJpYnV0ZS5uYW1lKSwKICAgICAgICAgICAgIGF0dHJp
YnV0ZS5nZXR0ZXIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAppbmRleCAwOGRlYTczYjZmMWU5ZWE4
ZGNhODM3Y2YwMjU1MzM3NjI0MThlY2Q2Li4xNzk5OTRiZWZjNmU0NjIyODczMTIyMWUzZWFmODU2
OGQ0ZTZjYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAKQEAgLTgyLDcgKzgyLDggQEAgUG9z
aXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgTGVnYWN5RWRpdGlu
Z09mZnNldCBvZmZzZXQpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKHRydWUpCiB7
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUt
PmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5v
ZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwg
IW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2VuZGlmCkBAIC05NSw3ICs5Niw4IEBA
IFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hvck5vZGUsIEFuY2hvclR5
cGUgYW5jaG9yVHlwZSkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRpb24oZmFsc2UpCiB7
CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUt
PmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoKG1fYW5jaG9yTm9kZSAmJiBSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKG1fYW5jaG9yTm9kZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8fCAhbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5v
ZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwg
IW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2VuZGlmCkBAIC0xMTIsNyArMTE0LDgg
QEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5jaG9yTm9kZSwgaW50IG9m
ZnNldCwgQW5jaG9yVHlwZSBhbmNob3JUeXAKICAgICAsIG1faXNMZWdhY3lFZGl0aW5nUG9zaXRp
b24oZmFsc2UpCiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgIEFTU0VSVChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9kZSB8fCAh
ZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1fYW5jaG9yTm9k
ZS0+aXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgobV9hbmNob3JOb2RlICYmIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQobV9hbmNob3JOb2RlLT5kb2N1bWVudCgp
LT5kb21XaW5kb3coKSkpCisgICAgICAgICAgIHx8ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJ
Z25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hh
ZG93Um9vdCgpKTsKICNlbHNlCiAgICAgQVNTRVJUKCFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJ
Z25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hh
ZG93Um9vdCgpKTsKICNlbmRpZgpAQCAtODU0LDcgKzg1Nyw3IEBAIENvbnRhaW5lck5vZGUqIFBv
c2l0aW9uOjpmaW5kUGFyZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgLy8gRklYTUU6IFNlZSBo
dHRwOi8vd2ViLnVnLzgyNjk3CiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKQorICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKG5vZGUtPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpKSkKICAgICAgICAgcmV0dXJuIG5vZGUtPnBhcmVudE5vZGUoKTsKICNlbmRpZgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5pZGwKaW5kZXggYTkzMzMzYmMxMGQxNmQ0ZjY0MjIxZjNmYWZh
NTdhNGU4N2EyMGUwNi4uODExMGMxZTA4YTc0M2Q3M2VjMTM0NTJjYTZhNGRiNmEzNzQ3NDFjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbApAQCAtMjgsNyArMjgsNiBAQCBtb2R1bGUgY29y
ZSB7CiAKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDb25kaXRpb25hbD1TSEFET1dfRE9NLAot
ICAgICAgICBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NLAogICAgICAgICBDb25zdHJ1Y3Rv
cihpbiBFbGVtZW50IGhvc3QpLAogICAgICAgICBDb25zdHJ1Y3RvclJhaXNlc0V4Y2VwdGlvbgog
ICAgIF0gU2hhZG93Um9vdCA6IERvY3VtZW50RnJhZ21lbnQgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3Bl
LmNwcAppbmRleCAwNzQwOWYwNjZkYTE2YTk0OTk5MzI1YzdjNWU2YmVmMzExOWEyZDFjLi4wMTIw
OTY3OWUyM2QwZTc4MjIyNzhjNWU5MWI5YTU5OTNlNjhkOGQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNj
b3BlLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIERPTVNlbGVjdGlvbiogVHJlZVNjb3BlOjpnZXRT
ZWxlY3Rpb24oKSBjb25zdAogICAgIC8vIGFzIGEgY29udGFpbmVyLiBJdCBpcyBub3cgZW5hYmxl
ZCBvbmx5IGlmIHJ1bnRpbWUgU2hhZG93IERPTSBmZWF0dXJlIGlzIGVuYWJsZWQuCiAgICAgLy8g
U2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjY5NwogI2lmIEVO
QUJMRShTSEFET1dfRE9NKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dE
T01FbmFibGVkKCkpIHsKKyAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9N
QWxsb3dlZChyb290Tm9kZSgpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpIHsKICAgICAgICAg
bV9zZWxlY3Rpb24gPSBET01TZWxlY3Rpb246OmNyZWF0ZSh0aGlzKTsKICAgICAgICAgcmV0dXJu
IG1fc2VsZWN0aW9uLmdldCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IGE0ZGNlZWVkMGRmYmIwYTE2YzZjNGRk
NWM0ZDI5OGIwYzY0NzJkNjAuLjg2NjgyN2JlZDJlODI3NzgzMTE0YjI3OGE3NDA1MmE5MGVhOWU4
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcApAQCAtNDAsMjAgKzQwLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
SFRNTE5hbWVzOjpzZWxlY3RBdHRyOwogCi1zdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29u
dGVudFRhZ05hbWUoKQorc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1l
KERvY3VtZW50KiBkb2N1bWVudCkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIVJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoZG9jdW1lbnQtPmRvbVdpbmRv
dygpKSkKICAgICAgICAgcmV0dXJuIEhUTUxOYW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsK
ICAgICByZXR1cm4gSFRNTE5hbWVzOjpjb250ZW50VGFnOwogI2Vsc2UKKyAgICBVTlVTRURfUEFS
QU0oZG9jdW1lbnQpOwogICAgIHJldHVybiBIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRU
YWc7CiAjZW5kaWYKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250
ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEhUTUxDb250ZW50RWxlbWVudChjb250ZW50VGFnTmFtZSgpLCBkb2N1bWVudCkp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KGNvbnRlbnRUYWdO
YW1lKGRvY3VtZW50KSwgZG9jdW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVs
ZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRh
Z05hbWUsIERvY3VtZW50KiBkb2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggYjE1Y2UwMDgyZjg0YWEzNDIzZmNmMDAyNTQ4NmE5N2FiYjE1N2Mw
Zi4uN2M5Zjg1M2JkMGZkZWIyMDlkZWZjZmY1Mjc5ZTI0NGZiMGQ3MmRmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTMxMCw3ICszMTAsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5h
YmxlZFBlclNldHRpbmdzLCBjb25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdz
OyB9CiAgICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQo
Ym9vbCBlbmFibGVkUGVyU2V0dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsg
cmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dS
dW5uaW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9y
aWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLSAgICAg
ICAgCisKKyAgICAgICAgdmlydHVhbCBib29sIHNoYWRvd0RPTUFsbG93ZWQoYm9vbCBlbmFibGVk
QXNSdW50aW1lRmVhdHVyZXMpIHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQor
CiAgICAgICAgIC8vIFRoaXMgY2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBm
cmFtZSB3YXMgYWJvdXQgdG8gcnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3Qg
YmVjYXVzZSBhbGxvd1NjcmlwdCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBh
IHNlcGFyYXRlIGNhbGxiYWNrIGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxh
Y2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNDBlMGIyYWZmMWIwZGZmMTNjNjBi
NTA2NjU4NDQ4MDdmYmQwY2Y1MC4uYmExNWNmN2VmZjAwN2IwYTViYTAyMjk1OWVjYjEwYTM1YWQ2
YjJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2lu
Y2x1ZGUgIlBhZ2VUcmFuc2l0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgog
I2luY2x1ZGUgIlBsYXRmb3JtU2NyZWVuLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0
dXJlcy5oIgogI2luY2x1ZGUgIlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmVlbi5o
IgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRs
CmluZGV4IDlhNTEyZDA3NjY1YTFhODFjNDU5MTdiOWY4MDVhNjBiZDE4OWJkYzAuLjRmNTE5OWI2
MzUzYTcxOTlhNjQxZmIwOWYxZmM0OTdlYWZiMzg0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5pZGwKQEAgLTM4Nyw3ICszODcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmli
dXRlIEVudGl0eUNvbnN0cnVjdG9yIEVudGl0eTsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eVJl
ZmVyZW5jZUNvbnN0cnVjdG9yIEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgYXR0cmlidXRlIFBy
b2Nlc3NpbmdJbnN0cnVjdGlvbkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKLSAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdFJ1bnRp
bWU9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKKyAg
ICAgICAgYXR0cmlidXRlIFtDb25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdENvbnRl
eHQ9c2hhZG93RE9NXSBTaGFkb3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKIAog
ICAgICAgICBhdHRyaWJ1dGUgRE9NU2VsZWN0aW9uQ29uc3RydWN0b3IgU2VsZWN0aW9uOwogICAg
ICAgICBhdHRyaWJ1dGUgRE9NV2luZG93Q29uc3RydWN0b3IgV2luZG93Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143173</attachid>
            <date>2012-05-21 19:38:14 -0700</date>
            <delta_ts>2012-05-21 20:18:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86555-20120522113812.patch</filename>
            <type>text/plain</type>
            <size>37134</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA1ZjliOWYyMDRlNjgy
Yzg1YmU2NzBkZjI3NzU2MWFmYzBmYThkYi4uMzdkNGI0MDI4MzY1YWJiMmI0Y2UyZjAzMWQzYWFh
MDY5MjRmZjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA1LTIxICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gU2hhZG93
IERPTSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4g
SURMIGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBh
bGxvd3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAg
ICAgICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgp
IG1ldGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJh
dG9yVjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBw
cm9wZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBp
bnN0ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0
IGdlbmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNo
IGluamVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0
byBuZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMg
dXNlZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2Yg
U2hhZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBG
cmFtZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9u
LgorICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRv
dy5XZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9N
RW5hYmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGV4Y2VwdCBydW4tYmluZGluZ3MtdGVzdC4gVGhpcyBpc24ndCB0ZXN0YWJs
ZSBmcm9tCisgICAgICAgIERSVCBhbmQgdGhpcyBjaGFuZ2UgaXRzZWxmIGRvZXNuJ3QgY2hhZ25l
IHRoZSBiZWhhdmlvdXIuICBJdCBuZWVkcworICAgICAgICBhIGNsaWVudCBpbXBsZW1lbnRhdGlv
bi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRleHRFbmFibGVkRmVhdHVy
ZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAg
ICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgIChHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRB
dENvbnRleHRBdHRyMUF0dHJHZXR0ZXIpOgorICAgICAgICAoVGVzdE9ialY4SW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRy
MUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJs
ZWRBdENvbnRleHRBdHRyMkF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRyMkF0dHJTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0T2JqOjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaDoKKyAgICAgICAgKFY4VGVzdE9i
aik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93KTogQWRvcHRlZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKQorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJv
eHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29uZmlndXJlQXR0
cmlidXRlKTogR2VuZXJhbGl6ZWQgdG8gYWNjZXB0IGJvdGggT2JqZWN0VGVtcGxhdGUgYW5kIE9i
amVjdC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBBZG9wdGVkIENvbnRleHRFbmFibGVk
RmVhdHVyZXMKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbjo6ZmluZFBhcmVudCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHA6IEFkb3B0ZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcworICAgICAgICAo
V2ViQ29yZTo6Y29udGVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRF
bGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OnNoYWRvd0RPTUFsbG93ZWQpOiBBZGRlZCB3aXRoIGEgZGVmYXVsdCBiZWhhdmlv
ci4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorCiAyMDEyLTA1LTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQb3J0IGNocm9taXVtIGNvbXBvc2l0b3IgdG8gdXNl
IFdlYkZpbHRlck9wZXJhdGlvbihzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxNzUwMTY1Nzg2
YTRhOWVjYmY4ODBjNWQ5OWJkOWM0Mjc0NzkwODA5Li4zM2Q0ZjRmOGVmOGU4Mzc4NTU2OWE5YzI1
MDY2YjA0OWIzNTUzYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDU1LDYgKzQ1NSw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5j
cHAKIAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwCisgICAgYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcAogICAgIGJpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKIAogICAgIGNzcy9DU1NBc3BlY3RSYXRp
b1ZhbHVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjU5NDMyMzIxZTVh
MTk5NWI0YjgwYTlhZmQ5NWNiNmI5YmVlMjY5Yi4uYjQwZWQwYzgzNTFlMDE4NjMxMjdhYTM4NjU3
MjM2ZWUwNWQ2ODdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMzAzLDYg
KzEzMDMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9BY3RpdmVET01DYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggM2M5YjYw
YTczNzhkNGE3YjFlOWFlMjlkMGUyNmFjMDhmMDQ2YTllMi4uMTZlYjc5YWNmNDQyZWYzOWUwYjVm
MzNhYWZkOTI2MWY3YzZmMjg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03Miw2ICs3Miw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcCiAg
ICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJp
Yy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAorICAgIGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5jcHAKICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuY3BwCiAKIHY4IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNzNjNjNiNGIyNDc2OWFmMzM4
OTU1OTY1N2Q3M2Y4NGUwZjVlZGM4Li5hMTRkMWYxNWUwNzliNmM4YzMxZDdhMmE4Nzk2NTI5NjI3
YWUxN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODQ2LDYgKzE4NDYsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywKKyAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwJywKKyAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGIxYWRkMTVhY2RkYzFmYjc2NjEw
MmY4YTE0MjA1NDQ2YzRiYzE0OWQuLjNmZmRhZDZiOTFiNDA0Mjk3ZWVkMjUyMDA4MWNjNzY5YTMx
MTdkNzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC02MjkxMyw2ICs2MjkxMywxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcZ2VuZXJpY1xHZW5lcmljQmluZGluZy5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM3
MjE4M2E5YzlhYmEyMzYxYWFlOTViMTliZmFjN2FmYWUzMTdkMmQuLmQ0ZGMzYTc5MDlmN2ExMTZj
ZThmNjM4Yjc5ODU2OGVkZDUxMWNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MzgsNiArMzczOCw4IEBACiAJCUE3M0Y5
NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJv
dW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5
MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0
QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAv
KiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovOyB9OworCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNF
RUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi87IH07CisJCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAv
KiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oICovOyB9OwogCQlBNzRCQjc2QjEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzQxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc3MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CkBAIC0xMDgwNSw2ICsxMDgwNyw4IEBACiAJCUE3MjNG
NzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91
bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc0N0EwN0QxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHBhdGggPSBn
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmg7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1
RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk2NTYsNiArMTk2NjAsOCBAQAogCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHkuaCAqLywKIAkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCiAJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQg
LyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi8sCisJCQkJQTc0N0EwN0UxNTZCMjg2OTAw
MjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLywKIAkJCQlBNjIyQThGOTEyMkM0
NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZ2Vu
ZXJpYzsKQEAgLTIxOTMyLDYgKzIxOTM4LDcgQEAKIAkJCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2
MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MEQ2RURCMTM4NDU0NTUw
MDQ0MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2MjdC
OEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8q
IENvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJC
MUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIw
QzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMjU0NDMsNiArMjU0NTAsNyBAQAogCQkJCTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBD
b250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEw
M0UgLyogQ29udGVudFR5cGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2MjdCOEQx
NEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3NDdBMDdGMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2NUFENEY2MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDYwMjdDQjMw
QjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzQjZBMEVBMEIwQkNBODQwMEY1MDI3QSAvKiBDb250ZXh0TWVudU1hYy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250
ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE3NGM4ZTUxNjViMDYzMDIw
ZTFkNDk2OGQ2ZjhlMWZkNDE4YTNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
I2lmIEVOQUJMRShTSEFET1dfRE9NKQorYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNoYWRvd0RPTUFs
bG93ZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVh
dHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YTIwNGVlY2U0OTA2ZTNiM2I2ODk1ODFjZmRjMjIxYWVmM2U4
ZThlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9D
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dEVu
YWJsZWRGZWF0dXJlc19oCisjZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworLy8gQSBjbGFzcyB0aGF0IHN0
b3JlcyBzdGF0aWMgZW5hYmxlcnMgZm9yIGFsbCBleHBlcmltZW50YWwgZmVhdHVyZXMuIE5vdGUg
dGhhdAorLy8gdGhlIG1ldGhvZCBuYW1lcyBtdXN0IGxpbmUgdXAgd2l0aCB0aGUgSmF2YVNjcmlw
dCBtZXRob2QgdGhleSBlbmFibGUgZm9yIGNvZGUKKy8vIGdlbmVyYXRpb24gdG8gd29yayBwcm9w
ZXJseS4KKworY2xhc3MgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB7CitwdWJsaWM6CisjaWYgRU5B
QkxFKFNIQURPV19ET00pCisgICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5hYmxlZChET01XaW5k
b3cqKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
Q29udGV4dEVuYWJsZWRGZWF0dXJlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGUxODMyOWUwZTI2MmM0ZWFjOGViNTBl
MjM5MDNhZTI4OWI3NTNhZDIuLmU4ZmU2ZDQyMjRmNzM2YjVjNTNkMDM5OWY1ZWI2NGMxZDQyMDVh
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCkBAIC0zNDgsNiArMzQ4LDcgQEAgRU5ECiAgICAgfQogCiAgICAgbXkgQGVuYWJs
ZWRBdFJ1bnRpbWU7CisgICAgbXkgQGVuYWJsZWRQZXJDb250ZXh0OwogICAgIGZvcmVhY2ggbXkg
JGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICBteSAkbmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXM7CkBAIC0zOTcsNiArMzk4LDEwIEBA
IEVORAogICAgICAgICBpZiAoJGF0dHJFeHQtPnsiVjhFbmFibGVkQXRSdW50aW1lIn0pIHsKICAg
ICAgICAgICAgIHB1c2goQGVuYWJsZWRBdFJ1bnRpbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICB9
CisKKyAgICAgICAgaWYgKCRhdHRyRXh0LT57IlY4RW5hYmxlZFBlckNvbnRleHQifSkgeworICAg
ICAgICAgICAgcHVzaChAZW5hYmxlZFBlckNvbnRleHQsICRhdHRyaWJ1dGUpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgR2VuZXJhdGVIZWFkZXJOYW1lZEFuZEluZGV4ZWRQcm9wZXJ0eUFjY2Vz
c29ycygkZGF0YU5vZGUpOwpAQCAtNDEwLDYgKzQxNSwxMiBAQCBFTkQKIEVORAogICAgIH0KIAor
ICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHQpIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgPDxFTkQpOworICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCAke2ltcGxDbGFzc05hbWV9Kik7CitFTkQKKyAgICB9CisK
ICAgICBteSAkd3JhcFNsb3dBcmd1bWVudFR5cGUgPSBHZXRQYXNzUmVmUHRyVHlwZSgkbmF0aXZl
VHlwZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogcHJpdmF0ZToKQEAgLTIz
MDksOCArMjMyMCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRk
IGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAgcHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKLSAgICAgICAgIAor
CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOworICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiKTsKICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiVjhQcm94eS5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4Qmlu
ZGluZy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZ1N0YXRlLmgiKTsKQEAg
LTI0MjcsNiArMjQzOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRp
c2FsbG93c1NoYWRvd2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhh
dCBhcmUgZW5hYmxlZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5
LgogICAgIG15IEBlbmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkUGVyQ29udGV4dDsK
ICAgICBteSBAbm9ybWFsOwogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQCRhdHRyaWJ1dGVz
KSB7CiAKQEAgLTI0MzQsNiArMjQ0Nyw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICBwdXNoKEBkaXNhbGxvd3NTaGFkb3dpbmcsICRhdHRyaWJ1dGUpOwogICAgICAg
ICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OEVuYWJsZWRBdFJ1bnRpbWUifSkgewogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0UnVudGlt
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZFBlckNvbnRleHQifSkgeworICAgICAgICAg
ICAgcHVzaChAZW5hYmxlZFBlckNvbnRleHQsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgcHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAt
Mjg0MCw2ICsyODU1LDMyIEBAIGJvb2wgJHtjbGFzc05hbWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAKIEVORAogCisgICAgaWYgKEBlbmFibGVkUGVyQ29udGV4
dCkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwordm9pZCAke2NsYXNzTmFt
ZX06Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGlu
c3RhbmNlLCAke2ltcGxDbGFzc05hbWV9KiBpbXBsKQoreworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBwcm90byA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChpbnN0YW5jZS0+R2V0UHJv
dG90eXBlKCkpOworRU5ECisgICAgICAgICMgU2V0dXAgdGhlIGVuYWJsZS1ieS1zZXR0aW5ncyBh
dHRycyBpZiB3ZSBoYXZlIHRoZW0KKyAgICAgICAgZm9yZWFjaCBteSAkcnVudGltZUF0dHIgKEBl
bmFibGVkUGVyQ29udGV4dCkgeworICAgICAgICAgICAgbXkgJGVuYWJsZUZ1bmN0aW9uID0gR2V0
Q29udGV4dEVuYWJsZUZ1bmN0aW9uKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAg
ICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250
ZXh0RW5hYmxlZEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsKSkge1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRB
dHRyaWJ1dGUgYXR0ckRhdGEgPVxcXG4iKTsKKyAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xlQmF0
Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVBdHRyLCAiOyIsICIgICAgIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBjb25maWd1
cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
Cit9CitFTkQKKyAgICB9CisKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKICAgICAgICAgIyBNZXNzYWdlUG9ydCBpcyBoYW5kbGVk
IGxpa2UgYW4gYWN0aXZlIGRvbSBvYmplY3QgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBpbmhlcml0
CiAgICAgICAgICMgZnJvbSBBY3RpdmVET01PYmplY3QsIHNvIGRvbid0IHRyeSB0byBjYXN0IGl0
IHRvIEFjdGl2ZURPTU9iamVjdC4KQEAgLTM5NTMsNiArMzk5NCwyMCBAQCBzdWIgR2V0UnVudGlt
ZUVuYWJsZUZ1bmN0aW9uTmFtZQogICAgIHJldHVybiAiUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPm5hbWUpIC4gIkVuYWJs
ZWQiOwogfQogCitzdWIgR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uCit7CisgICAgbXkgJHNpZ25h
dHVyZSA9IHNoaWZ0OworCisgICAgIyBJZiBhIHBhcmFtZXRlciBpcyBnaXZlbiAoZS5nLiAiVjhF
bmFibGVkUGVyQ29udGV4dD1GZWF0dXJlTmFtZSIpIHJldHVybiB0aGUge0ZlYXR1cmVOYW1lfUFs
bG93ZWQoKSBtZXRob2QuCisgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJWOEVuYWJsZWRQZXJDb250ZXh0In0gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4RW5hYmxlZFBlckNvbnRleHQifSBuZSAiVkFMVUVfSVNfTUlTU0lORyIpIHsKKyAgICAg
ICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJWOEVuYWJsZWRQZXJDb250ZXh0In0pIC4gIkVuYWJsZWQiOworICAgIH0K
KworICAgICMgT3IgaXQgZmFsbGJhY2tzIHRvIHRoZSBhdHRyaWJ1dGUgbmFtZSBpZiB0aGUgcGFy
YW1ldGVyIHZhbHVlIGlzIG1pc3NpbmcuCisgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkc2lnbmF0
dXJlLT5uYW1lOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkYXR0cmli
dXRlTmFtZSkgLiAiRW5hYmxlZCI7Cit9CisKIHN1YiBHZXRQYXNzUmVmUHRyVHlwZQogewogICAg
IG15ICRjbGFzc05hbWUgPSBzaGlmdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IGE0NjdiZmVlNTRkNWE1NTgzM2MzMDkwNzE5
ZWEyOGUzNmY0ZGU0NWQuLjg0ODk0OTMyN2I4MDIzYmQwZjFkYmYzYjkwM2JlYjAyN2M5YzUxMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dApAQCAtMTExLDUgKzExMSw2IEBAIFY4Q3VzdG9tVG9KU09iamVjdAogVjhEZXBlbmRlbnRM
aWZldGltZQogVjhEb05vdENoZWNrU2lnbmF0dXJlCiBWOEVuYWJsZWRBdFJ1bnRpbWU9KgorVjhF
bmFibGVkUGVyQ29udGV4dD0qCiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNDg4Yzk5
YWI4ZDE5ZGU1ZDUzZDUwZWYzNGM1MWUzYWE5NTA2NzA4OC4uMDhiOTg1NjJmMWQ3NWIwMDZkNjY2
MzRjYjlhYWRlM2YxOGM4NjcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjAzLDYgKzIwMyw5IEBAIG1vZHVsZSB0ZXN0IHsK
ICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gdm9pZCBlbmFibGVkQXRS
dW50aW1lTWV0aG9kMihpbiBpbnQgaW50QXJnKTsKICAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0dHIxOwogICAgICAgICBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gbG9uZyBlbmFibGVkQXRSdW50aW1l
QXR0cjI7CisgICAgICAgIC8vIFY4RW5hYmxlZFBlckNvbnRleHQgY3VycmVudGx5IG9ubHkgc3Vw
cG9ydHMgYXR0cmlidXRlcy4KKyAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRQZXJDb250ZXh0
XSBsb25nIGVuYWJsZWRBdENvbnRleHRBdHRyMTsKKyAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJs
ZWRQZXJDb250ZXh0PUZlYXR1cmVOYW1lXSBsb25nIGVuYWJsZWRBdENvbnRleHRBdHRyMjsKICNl
bmRpZgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggYjc0OTY3MzIzNDlhZGFhOWNhZWZmNjhiMTc1MmM2NDFj
ZWU4NGU1ZS4uMTIzMzgwNGQ4NzY2YjcwODE0ZDZkNTBkODgyZWVmNTU4ODRkNGJlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKQEAgLTEwNzQsNiArMTA3NCwzOCBAQCBzdGF0aWMgdm9pZCBlbmFibGVkQXRSdW50aW1l
QXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYQogICAg
IHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouZW5hYmxl
ZEF0Q29udGV4dEF0dHIxLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGltcC0+
ZW5hYmxlZEF0Q29udGV4dEF0dHIxKCkpOworfQorCitzdGF0aWMgdm9pZCBlbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRyMS5fc2V0Iik7CisgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBp
bnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0RW5hYmxlZEF0Q29udGV4dEF0dHIx
KHYpOworICAgIHJldHVybjsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkQXRDb250ZXh0QXR0cjJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouZW5hYmxlZEF0Q29udGV4dEF0dHIyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6
TmV3KGltcC0+ZW5hYmxlZEF0Q29udGV4dEF0dHIyKCkpOworfQorCitzdGF0aWMgdm9pZCBlbmFi
bGVkQXRDb250ZXh0QXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRyMi5fc2V0
Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0RW5hYmxlZEF0Q29u
dGV4dEF0dHIyKHYpOworICAgIHJldHVybjsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBmbG9hdEFycmF5QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
LmZsb2F0QXJyYXkuX2dldCIpOwpAQCAtMjM4OCw2ICsyNDIwLDIyIEBAIGJvb2wgVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgcmV0dXJuIEdl
dFJhd1RlbXBsYXRlKCktPkhhc0luc3RhbmNlKHZhbHVlKTsKIH0KIAordm9pZCBWOFRlc3RPYmo6
Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3Rh
bmNlLCBUZXN0T2JqKiBpbXBsKQoreworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBwcm90byA9
IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChpbnN0YW5jZS0+R2V0UHJvdG90eXBlKCkpOwor
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjplbmFibGVkQXRDb250ZXh0QXR0cjFBbGxv
d2VkKGltcGwpKSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIGF0dHJE
YXRhID1cCisgICAgICAgIC8vIEF0dHJpYnV0ZSAnZW5hYmxlZEF0Q29udGV4dEF0dHIxJyAoVHlw
ZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1Y4RW5hYmxlZFBlckNvbnRleHQnKQorICAgICAgICB7
ImVuYWJsZWRBdENvbnRleHRBdHRyMSIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0
dHIxQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL307CisgICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0
ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJEYXRhKTsKKyAgICB9CisgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1lQWxsb3dlZChpbXBsKSkgeworICAgICAgICBzdGF0aWMg
Y29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAorICAgICAgICAvLyBBdHRyaWJ1dGUg
J2VuYWJsZWRBdENvbnRleHRBdHRyMicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVu
YWJsZWRQZXJDb250ZXh0JykKKyAgICAgICAgeyJlbmFibGVkQXRDb250ZXh0QXR0cjIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0ckdldHRlciwgVGVzdE9ialY4
SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRyMkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
OworICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7
CisgICAgfQorfQogCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0T2JqPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApp
bmRleCA3OGY3MThkNTVjZTU0Njc1YjU1YjAyMzhkNmQ4M2M1ZWFmNmMwMzc2Li5lMWJiODEzYjVh
YTcwZTkyMzcyZWI1NzAwNzAwNzUyNGRkOGFhYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCkBAIC01MCw2ICs1MCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGN1c3RvbUF0dHJBY2Nl
c3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYpOwogICAgIHN0YXRpYyB2b2lkIGN1c3RvbUF0dHJBY2Nlc3NvclNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4sIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4
RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOworICAgIHN0YXRpYyB2b2lkIGlu
c3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0T2Jq
Kik7CiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93
KFBhc3NSZWZQdHI8VGVzdE9iaj4sIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA5MGRjMGY4MGRlMWM5
NjNlZTgxYjJjMzAzM2M5Nzg2ZjcyMWE4ZGJlLi4xZjk4ZmQ1MDhlZmZkMmRlZGVhZWJjNzJiNDNh
OTkzMmI3OTFmMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcApAQCAtNDA4LDEwICs0MDgsMTEgQEAgYm9vbCBWOERPTVdpbmRvd1NoZWxs
OjppbnN0YWxsRE9NV2luZG93KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIERPTVdp
bmQKICAgICBpZiAoanNXaW5kb3cuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBWOERPTVdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKGpzV2luZG93LCB3
aW5kb3cpOworCiAgICAgLy8gV3JhcCB0aGUgd2luZG93LgogICAgIFY4RE9NV3JhcHBlcjo6c2V0
RE9NV3JhcHBlcihqc1dpbmRvdywgJlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3cpOwogICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGpz
V2luZG93LT5HZXRQcm90b3R5cGUoKSksICZWOERPTVdpbmRvdzo6aW5mbywgd2luZG93KTsKLQog
ICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KFBhc3NSZWZQdHI8RE9N
V2luZG93Pih3aW5kb3cpLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGpzV2luZG93
KSk7CiAKICAgICAvLyBJbnNlcnQgdGhlIHdpbmRvdyBpbnN0YW5jZSBhcyB0aGUgcHJvdG90eXBl
IG9mIHRoZSBzaGFkb3cgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmlu
ZGV4IGUwNWUzNzYzN2M4NGJiYjIzMjZiNmM0MTAwZTYwNGZkMTA2ZTA4MDYuLmY2YjdhZTkzNWQ2
NmY2NTlmOWQzZTg5ZTg0MDI5YTI1ZGY3NzY2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmgKQEAgLTg1LDcgKzg1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdm9p
ZCBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+
LCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUq
LCBzaXplX3QgYXR0cmlidXRlQ291bnQpOwogCi0gICAgaW5saW5lIHZvaWQgY29uZmlndXJlQXR0
cmlidXRlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvLCBjb25zdCBCYXRjaGVkQXR0cmlidXRlJiBhdHRy
aWJ1dGUpCisgICAgdGVtcGxhdGU8Y2xhc3MgT2JqZWN0T3JUZW1wbGF0ZT4KKyAgICBpbmxpbmUg
dm9pZCBjb25maWd1cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTxPYmplY3RPclRlbXBsYXRlPiBpbnN0
YW5jZSwgdjg6OkhhbmRsZTxPYmplY3RPclRlbXBsYXRlPiBwcm90bywgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSYgYXR0cmlidXRlKQogICAgIHsKICAgICAgICAgKGF0dHJpYnV0ZS5vblByb3RvID8g
cHJvdG8gOiBpbnN0YW5jZSktPlNldEFjY2Vzc29yKHY4OjpTdHJpbmc6Ok5ldyhhdHRyaWJ1dGUu
bmFtZSksCiAgICAgICAgICAgICBhdHRyaWJ1dGUuZ2V0dGVyLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggMDhkZWE3M2I2ZjFlOWVhOGRjYTgzN2NmMDI1NTMzNzYyNDE4ZWNkNi4uYTA2ZmZk
NDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJQb3NpdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRl
eHRCb3guaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgot
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCkBA
IC04Miw3ICs4Miw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hv
ck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0KQogICAgICwgbV9pc0xlZ2FjeUVkaXRp
bmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKChtX2FuY2hv
ck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICAgICAgICAgfHwgIW1fYW5jaG9y
Tm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VS
VCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRp
ZgpAQCAtOTUsNyArOTYsOCBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBh
bmNob3JOb2RlLCBBbmNob3JUeXBlIGFuY2hvclR5cGUpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKChtX2FuY2hv
ck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICAgICAgICAgfHwgIW1fYW5jaG9y
Tm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VS
VCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRp
ZgpAQCAtMTEyLDcgKzExNCw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+
IGFuY2hvck5vZGUsIGludCBvZmZzZXQsIEFuY2hvclR5cGUgYW5jaG9yVHlwCiAgICAgLCBtX2lz
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
ICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpIHx8
ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0
KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoKG1fYW5j
aG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5j
aG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8fCAhbV9hbmNo
b3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAh
bV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNo
b3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAh
bV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYKQEAgLTg1NCw3ICs4NTcsNyBA
QCBDb250YWluZXJOb2RlKiBQb3NpdGlvbjo6ZmluZFBhcmVudChjb25zdCBOb2RlKiBub2RlKQog
ICAgIC8vIEZJWE1FOiBTZWUgaHR0cDovL3dlYi51Zy84MjY5NwogCiAjaWYgRU5BQkxFKFNIQURP
V19ET00pCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
KSkKKyAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChub2Rl
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCiAgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnRO
b2RlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IGE5MzMzM2Jj
MTBkMTZkNGY2NDIyMWYzZmFmYTU3YTRlODdhMjBlMDYuLjgxMTBjMWUwOGE3NDNkNzNlYzEzNDUy
Y2E2YTRkYjZhMzc0NzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAgLTI4LDcg
KzI4LDYgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U0hBRE9XX0RPTSwKLSAgICAgICAgVjhFbmFibGVkQXRSdW50aW1lPXNoYWRvd0RPTSwK
ICAgICAgICAgQ29uc3RydWN0b3IoaW4gRWxlbWVudCBob3N0KSwKICAgICAgICAgQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24KICAgICBdIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggOWU4NDc4OTliYTliMGQ1NzI5ZDZmNjJhMjUz
Nzk2NmYxMzg2NDIyOS4uMmY2ZjhiZDllYTBhODg3Yzk4NWEwZWNlN2YxYTQ5NDc3NDkwZDE0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJU
cmVlU2NvcGUuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250
ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM4LDcgKzM5LDYgQEAK
ICNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTE0OSw3ICsxNDksNyBAQCBET01TZWxl
Y3Rpb24qIFRyZWVTY29wZTo6Z2V0U2VsZWN0aW9uKCkgY29uc3QKICAgICAvLyBhcyBhIGNvbnRh
aW5lci4gSXQgaXMgbm93IGVuYWJsZWQgb25seSBpZiBydW50aW1lIFNoYWRvdyBET00gZmVhdHVy
ZSBpcyBlbmFibGVkLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODI2OTcKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKSB7CisgICAgaWYgKENvbnRleHRFbmFi
bGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZG9t
V2luZG93KCkpKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uID0gRE9NU2VsZWN0aW9uOjpjcmVhdGUo
dGhpcyk7CiAgICAgICAgIHJldHVybiBtX3NlbGVjdGlvbi5nZXQoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBh
NGRjZWVlZDBkZmJiMGExNmM2YzRkZDVjNGQyOThiMGM2NDcyZDYwLi5jNzcwNmNjMTZmODY4MjNl
MzEzMmUxNzdmZDExNGFiOGFlNTYwYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAjaW5j
bHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVl
cnkuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRWxl
bWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtNDAsMjAg
KzQwLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RB
dHRyOwogCi1zdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoKQorc3Rh
dGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0
dXJuIEhUTUxOYW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5h
bWVzOjpjb250ZW50VGFnOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogICAg
IHJldHVybiBIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAjZW5kaWYKIH0KIAog
UGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxDb250
ZW50RWxlbWVudChjb250ZW50VGFnTmFtZSgpLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KGNvbnRlbnRUYWdOYW1lKGRvY3VtZW50KSwgZG9j
dW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
YjE1Y2UwMDgyZjg0YWEzNDIzZmNmMDAyNTQ4NmE5N2FiYjE1N2MwZi4uN2M5Zjg1M2JkMGZkZWIy
MDlkZWZjZmY1Mjc5ZTI0NGZiMGQ3MmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTMxMCw3ICszMTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBj
b25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250
ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwm
KSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLSAgICAgICAgCisKKyAgICAgICAgdmly
dHVhbCBib29sIHNoYWRvd0RPTUFsbG93ZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXMp
IHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQorCiAgICAgICAgIC8vIFRoaXMg
Y2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8g
cnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1Njcmlw
dCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNr
IGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggNDBlMGIyYWZmMWIwZGZmMTNjNjBiNTA2NjU4NDQ4MDdmYmQwY2Y1
MC4uYmExNWNmN2VmZjAwN2IwYTViYTAyMjk1OWVjYjEwYTM1YWQ2YjJmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U2NyZWVuLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmVlbi5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1
YTFhODFjNDU5MTdiOWY4MDVhNjBiZDE4OWJkYzAuLjU5N2QwN2Q5NDFhN2FlMTUwYTJjMTU4YjQ1
OGEzNWUzMmExZWFkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICsz
ODcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVj
dG9yIEVudGl0eTsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9y
IEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgYXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFk
b3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKKyAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gU2hh
ZG93Um9vdENvbnN0cnVjdG9yIFdlYktpdFNoYWRvd1Jvb3Q7CiAKICAgICAgICAgYXR0cmlidXRl
IERPTVNlbGVjdGlvbkNvbnN0cnVjdG9yIFNlbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIERP
TVdpbmRvd0NvbnN0cnVjdG9yIFdpbmRvdzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143178</attachid>
            <date>2012-05-21 20:18:51 -0700</date>
            <delta_ts>2012-05-21 20:20:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86555-20120522121849.patch</filename>
            <type>text/plain</type>
            <size>37134</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA1ZjliOWYyMDRlNjgy
Yzg1YmU2NzBkZjI3NzU2MWFmYzBmYThkYi4uMzdkNGI0MDI4MzY1YWJiMmI0Y2UyZjAzMWQzYWFh
MDY5MjRmZjgxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA1LTIxICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gU2hhZG93
IERPTSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGludHJvZHVjZXMgYW4g
SURMIGF0dHJpYnV0ZSBuYW1lZCAiVjhFbmFibGVkQXRDb250ZXh0IgorICAgICAgICB3aGljaCBh
bGxvd3MgRE9NV2luZG93IHByb3BlcnRpZXMgdG8gYmUgdHVybmVkIG9uIG9yIG9mZiBwZXIKKyAg
ICAgICAgd2luZG93cyBiYXNpcy4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6eHh4QWxsb3dlZCgp
IG1ldGhvZCBkZWNpZGVzIHRoZSBhdmFpbGFiaWxpdHkuCisKKyAgICAgICAgLSBDb2RlR2VuZXJh
dG9yVjgucG0gbm93IGFjY2VwdHMgVjhFbmFibGVkQXRDb250ZXh0IGFuZCBhbGxvd3Mgc3VjaCBw
cm9wZXJ0aWVzCisgICAgICAgICAgdG8gYmUgY29uZmlndXJlZCBwZXItT2JqZWN0IGJhc2lzLCBp
bnN0ZWFkIG9mIHBlci1PYmplY3RUZW1wbGF0ZSBiYXNpcy4KKyAgICAgICAgICBUaGUgc2NyaXB0
IGdlbmVyYXRlcyBWOFdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCksIHdoaWNo
IGluamVjdHMgc3VjaAorICAgICAgICAgIHBlci1vYmplY3QtdHVybmFibGUgcHJvcGVydGllcyB0
byBuZXdseSBjcmVhdGVkIERPTVdpbmRvdyB3cmFwcGVyLgorICAgICAgICAtIEFkZGVkIFJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUFsbG93ZWQoRE9NV2luZG93Kikgd2hpY2ggaXMg
dXNlZCB0bworICAgICAgICAgIGRlY2lkZSB0aGUgc2hhZG93IGRvbSBhdmFpbGFiaWxpdHkgb2Yg
U2hhZG93IERPTSBmZWF0dXJlLgorICAgICAgICAgIEl0IGRlbGVnYXRlcyB0aGUgY2FsbCB0byBG
cmFtZUxvYWRlckNsaWVudDo6c2hhZG93RE9NQWxsb3dlZCgpIHRvIG1ha2UgdGhlIGRlY2lzaW9u
LgorICAgICAgICAtIFRoZSBuZXcgSURMIGF0dHJpYnV0ZSBpcyBhcHBsaWVkIHRvIERPTVdpbmRv
dy5XZWJLaXRTaGFkb3dSb290LgorICAgICAgICAtIFVwZGF0ZWQgZXhpc3Rpbmcgc2hhZG93RE9N
RW5hYmxlZCgpIGNhbGwgc2l0ZXMgd2l0aCBzaGFkb3dET01BbGxvd2VkKCkuCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzIGV4Y2VwdCBydW4tYmluZGluZ3MtdGVzdC4gVGhpcyBpc24ndCB0ZXN0YWJs
ZSBmcm9tCisgICAgICAgIERSVCBhbmQgdGhpcyBjaGFuZ2UgaXRzZWxmIGRvZXNuJ3QgY2hhZ25l
IHRoZSBiZWhhdmlvdXIuICBJdCBuZWVkcworICAgICAgICBhIGNsaWVudCBpbXBsZW1lbnRhdGlv
bi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxp
c3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6Cisg
ICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVk
KToKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKENvbnRleHRFbmFibGVkRmVhdHVy
ZXMpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAg
ICAgICAoR2VuZXJhdGVIZWFkZXIpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6
CisgICAgICAgIChHZXRDb250ZXh0RW5hYmxlRnVuY3Rpb24pOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRB
dENvbnRleHRBdHRyMUF0dHJHZXR0ZXIpOgorICAgICAgICAoVGVzdE9ialY4SW50ZXJuYWwpOgor
ICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRy
MUF0dHJTZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6OmVuYWJs
ZWRBdENvbnRleHRBdHRyMkF0dHJHZXR0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGVzdE9ialY4
SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRyMkF0dHJTZXR0ZXIpOgorICAgICAgICAoV2Vi
Q29yZTo6VjhUZXN0T2JqOjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaDoKKyAgICAgICAgKFY4VGVzdE9i
aik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdpbmRvd1NoZWxsOjppbnN0YWxsRE9NV2luZG93KTogQWRvcHRlZCBp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMoKQorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJv
eHkuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Y29uZmlndXJlQXR0
cmlidXRlKTogR2VuZXJhbGl6ZWQgdG8gYWNjZXB0IGJvdGggT2JqZWN0VGVtcGxhdGUgYW5kIE9i
amVjdC4KKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3BwOiBBZG9wdGVkIENvbnRleHRFbmFibGVk
RmVhdHVyZXMKKyAgICAgICAgKFdlYkNvcmU6OlBvc2l0aW9uOjpQb3NpdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpQb3NpdGlvbjo6ZmluZFBhcmVudCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jv
b3QuaWRsOgorICAgICAgICAqIGRvbS9UcmVlU2NvcGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VHJlZVNjb3BlOjpnZXRTZWxlY3Rpb24pOgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHA6IEFkb3B0ZWQgQ29udGV4dEVuYWJsZWRGZWF0dXJlcworICAgICAgICAo
V2ViQ29yZTo6Y29udGVudFRhZ05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRF
bGVtZW50OjpjcmVhdGUpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgor
ICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OnNoYWRvd0RPTUFsbG93ZWQpOiBBZGRlZCB3aXRoIGEgZGVmYXVsdCBiZWhhdmlv
ci4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgICogcGFnZS9ET01XaW5k
b3cuaWRsOgorCiAyMDEyLTA1LTIxICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBQb3J0IGNocm9taXVtIGNvbXBvc2l0b3IgdG8gdXNl
IFdlYkZpbHRlck9wZXJhdGlvbihzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxNzUwMTY1Nzg2
YTRhOWVjYmY4ODBjNWQ5OWJkOWM0Mjc0NzkwODA5Li4zM2Q0ZjRmOGVmOGU4Mzc4NTU2OWE5YzI1
MDY2YjA0OWIzNTUzYjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDU1LDYgKzQ1NSw3IEBA
IFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5j
cHAKIAogICAgIGJpbmRpbmdzL2dlbmVyaWMvQWN0aXZlRE9NQ2FsbGJhY2suY3BwCisgICAgYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcAogICAgIGJpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKIAogICAgIGNzcy9DU1NBc3BlY3RSYXRp
b1ZhbHVlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjU5NDMyMzIxZTVh
MTk5NWI0YjgwYTlhZmQ5NWNiNmI5YmVlMjY5Yi4uYjQwZWQwYzgzNTFlMDE4NjMxMjdhYTM4NjU3
MjM2ZWUwNWQ2ODdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0xMzAzLDYg
KzEzMDMsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhPYmplY3RDYWNoZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0FjdGl2ZURPTUNhbGxiYWNrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJp
Yy9BY3RpdmVET01DYWxsYmFjay5oIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9n
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9CaW5kaW5nU2VjdXJpdHlCYXNlLmggXAogCVNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggM2M5YjYw
YTczNzhkNGE3YjFlOWFlMjlkMGUyNmFjMDhmMDQ2YTllMi4uMTZlYjc5YWNmNDQyZWYzOWUwYjVm
MzNhYWZkOTI2MWY3YzZmMjg5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnBy
aQorKysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC03Miw2ICs3Miw3IEBAIFNPVVJD
RVMgKz0gXAogICAgIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlUm93LmNwcCBcCiAg
ICAgYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBcCiAgICAgYmluZGluZ3MvZ2VuZXJp
Yy9BY3RpdmVET01DYWxsYmFjay5jcHAgXAorICAgIGJpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVu
YWJsZWRGZWF0dXJlcy5jcHAKICAgICBiaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVh
dHVyZXMuY3BwCiAKIHY4IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lw
aSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCBmNzNjNjNiNGIyNDc2OWFmMzM4
OTU1OTY1N2Q3M2Y4NGUwZjVlZGM4Li5hMTRkMWYxNWUwNzliNmM4YzMxZDdhMmE4Nzk2NTI5NjI3
YWUxN2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODQ2LDYgKzE4NDYsOCBAQAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5LmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oJywKKyAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwJywKKyAgICAgICAgICAgICdi
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaCcsCiAgICAgICAgICAgICAn
YmluZGluZ3MvZ2VuZXJpYy9HZW5lcmljQmluZGluZy5oJywKICAgICAgICAgICAgICdiaW5kaW5n
cy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCcsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGIxYWRkMTVhY2RkYzFmYjc2NjEw
MmY4YTE0MjA1NDQ2YzRiYzE0OWQuLjNmZmRhZDZiOTFiNDA0Mjk3ZWVkMjUyMDA4MWNjNzY5YTMx
MTdkNzAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CkBAIC02MjkxMyw2ICs2MjkxMywxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGluZ3NcZ2VuZXJpY1xDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgorCQkJ
CQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cYmluZGlu
Z3NcZ2VuZXJpY1xHZW5lcmljQmluZGluZy5oIgogCQkJCQk+CiAJCQkJPC9GaWxlPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDM3
MjE4M2E5YzlhYmEyMzYxYWFlOTViMTliZmFjN2FmYWUzMTdkMmQuLmQ0ZGMzYTc5MDlmN2ExMTZj
ZThmNjM4Yjc5ODU2OGVkZDUxMWNkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MzgsNiArMzczOCw4IEBACiAJCUE3M0Y5
NUZGMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJv
dW5kZWRSZWN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQTc0MEI1QTUxNEM5MzVBQjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdCNEVBNzkxNEM5
MzQ4NDAwQzhGNUJGIC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5oICovOyB9OwogCQlBNzQwQjVBNzE0
QzkzNUFGMDBBNzdGQTQgLyogSlNJbnRlcm5hbFNldHRpbmdzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc4MTRDOTM0ODQwMEM4RjVCRiAv
KiBKU0ludGVybmFsU2V0dGluZ3MuY3BwICovOyB9OworCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNF
RUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi87IH07CisJCUE3NDdBMDgwMTU2QjI4NjkwMDI0M0VFRCAv
KiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oICovOyB9OwogCQlBNzRCQjc2QjEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBNzRCQjc2QTEzQkRBODYzMDBGRjdCRjAgLyogRXhjZXB0aW9uQ29kZVBsYWNl
aG9sZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQTc1RTQ5NzYxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzQxMDc1
MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3NUU0OTc3MTA3NTJBQ0IwMEM5Qjg5
NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5jcHAgKi87IH07CkBAIC0xMDgwNSw2ICsxMDgwNyw4IEBACiAJCUE3MjNG
NzdBMTQ4NENBNEMwMDhDNkRCRSAvKiBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUV4cG9ydE1hY3Jvcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJl
Y3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUm91bmRlZFJlY3Qu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzNGOTVGRDEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUm91
bmRlZFJlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTc0N0EwN0QxNTZCMjg2
OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHA7IHBhdGggPSBn
ZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlBNzQ3QTA3RTE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBDb250ZXh0RW5hYmxlZEZlYXR1
cmVzLmg7IHBhdGggPSBnZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeGNl
cHRpb25Db2RlUGxhY2Vob2xkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1
RTQ5NzQxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTc1RTQ5NzUxMDc1MkFDQjAwQzlCODk2IC8qIFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZXJpYWxpemVkU2NyaXB0VmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk2NTYsNiArMTk2NjAsOCBAQAogCQkJCUE2MjJBOEY1MTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHkuaCAqLywKIAkJCQlBNjIyQThGNjEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5QmFzZS5jcHAgKi8sCiAJCQkJQTYyMkE4RjcxMjJDNDRBNjAwQTc4NUIzIC8q
IEJpbmRpbmdTZWN1cml0eUJhc2UuaCAqLywKKwkJCQlBNzQ3QTA3RDE1NkIyODY5MDAyNDNFRUQg
LyogQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAgKi8sCisJCQkJQTc0N0EwN0UxNTZCMjg2OTAw
MjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCAqLywKIAkJCQlBNjIyQThGOTEyMkM0
NEE2MDBBNzg1QjMgLyogR2VuZXJpY0JpbmRpbmcuaCAqLywKIAkJCSk7CiAJCQluYW1lID0gZ2Vu
ZXJpYzsKQEAgLTIxOTMyLDYgKzIxOTM4LDcgQEAKIAkJCQk0MUQwMTVDQTBGNEI1QzcxMDA0QTY2
MkYgLyogQ29udGVudFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3MEQ2RURCMTM4NDU0NTUw
MDQ0MTAzRSAvKiBDb250ZW50VHlwZVBhcnNlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2MjdC
OEUxNEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmggaW4gSGVh
ZGVycyAqLywKKwkJCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRG
ZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNCNkEwRTYwQjBCQ0E1QzAwRjUwMjdBIC8q
IENvbnRleHRNZW51LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNTBCMEMyRURBMDA1QTJC
MUQgLyogQ29udGV4dE1lbnVDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NUFENEY3MEIw
QzJFREEwMDVBMkIxRCAvKiBDb250ZXh0TWVudUNvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLApA
QCAtMjU0NDMsNiArMjU0NTAsNyBAQAogCQkJCTQxRDAxNUNCMEY0QjVDNzEwMDRBNjYyRiAvKiBD
b250ZW50VHlwZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzNzBENkVEQTEzODQ1NDU1MDA0NDEw
M0UgLyogQ29udGVudFR5cGVQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2MjdCOEQx
NEZCM0NFRTAwMkNEQ0ExIC8qIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUE3NDdBMDdGMTU2QjI4NjkwMDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2NUFENEY2MEIwQzJFREEwMDVBMkIxRCAv
KiBDb250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDYwMjdDQjMw
QjFDQzAzRDAwODg0QjJEIC8qIENvbnRleHRNZW51SXRlbU1hYy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTkzQjZBMEVBMEIwQkNBODQwMEY1MDI3QSAvKiBDb250ZXh0TWVudU1hYy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250
ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzE3NGM4ZTUxNjViMDYzMDIw
ZTFkNDk2OGQ2ZjhlMWZkNDE4YTNjNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKQEAgLTAsMCArMSw1
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVz
LmgiCisKKyNpbmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKKyNpbmNs
dWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
I2lmIEVOQUJMRShTSEFET1dfRE9NKQorYm9vbCBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFk
b3dET01FbmFibGVkKERPTVdpbmRvdyogd2luZG93KQoreworICAgIGlmICghd2luZG93KQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHdpbmRvdy0+ZnJhbWUo
KSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5sb2FkZXIoKS0+Y2xpZW50KCktPnNoYWRvd0RPTUFs
bG93ZWQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVh
dHVyZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41YTIwNGVlY2U0OTA2ZTNiM2I2ODk1ODFjZmRjMjIxYWVmM2U4
ZThlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9D
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29udGV4dEVu
YWJsZWRGZWF0dXJlc19oCisjZGVmaW5lIENvbnRleHRFbmFibGVkRmVhdHVyZXNfaAorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworLy8gQSBjbGFzcyB0aGF0IHN0
b3JlcyBzdGF0aWMgZW5hYmxlcnMgZm9yIGFsbCBleHBlcmltZW50YWwgZmVhdHVyZXMuIE5vdGUg
dGhhdAorLy8gdGhlIG1ldGhvZCBuYW1lcyBtdXN0IGxpbmUgdXAgd2l0aCB0aGUgSmF2YVNjcmlw
dCBtZXRob2QgdGhleSBlbmFibGUgZm9yIGNvZGUKKy8vIGdlbmVyYXRpb24gdG8gd29yayBwcm9w
ZXJseS4KKworY2xhc3MgQ29udGV4dEVuYWJsZWRGZWF0dXJlcyB7CitwdWJsaWM6CisjaWYgRU5B
QkxFKFNIQURPV19ET00pCisgICAgc3RhdGljIGJvb2wgc2hhZG93RE9NRW5hYmxlZChET01XaW5k
b3cqKTsKKyNlbmRpZgorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
Q29udGV4dEVuYWJsZWRGZWF0dXJlc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGUxODMyOWUwZTI2MmM0ZWFjOGViNTBl
MjM5MDNhZTI4OWI3NTNhZDIuLmU4ZmU2ZDQyMjRmNzM2YjVjNTNkMDM5OWY1ZWI2NGMxZDQyMDVh
OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCkBAIC0zNDgsNiArMzQ4LDcgQEAgRU5ECiAgICAgfQogCiAgICAgbXkgQGVuYWJs
ZWRBdFJ1bnRpbWU7CisgICAgbXkgQGVuYWJsZWRQZXJDb250ZXh0OwogICAgIGZvcmVhY2ggbXkg
JGZ1bmN0aW9uIChAeyRkYXRhTm9kZS0+ZnVuY3Rpb25zfSkgewogICAgICAgICBteSAkbmFtZSA9
ICRmdW5jdGlvbi0+c2lnbmF0dXJlLT5uYW1lOwogICAgICAgICBteSAkYXR0ckV4dCA9ICRmdW5j
dGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXM7CkBAIC0zOTcsNiArMzk4LDEwIEBA
IEVORAogICAgICAgICBpZiAoJGF0dHJFeHQtPnsiVjhFbmFibGVkQXRSdW50aW1lIn0pIHsKICAg
ICAgICAgICAgIHB1c2goQGVuYWJsZWRBdFJ1bnRpbWUsICRhdHRyaWJ1dGUpOwogICAgICAgICB9
CisKKyAgICAgICAgaWYgKCRhdHRyRXh0LT57IlY4RW5hYmxlZFBlckNvbnRleHQifSkgeworICAg
ICAgICAgICAgcHVzaChAZW5hYmxlZFBlckNvbnRleHQsICRhdHRyaWJ1dGUpOworICAgICAgICB9
CiAgICAgfQogCiAgICAgR2VuZXJhdGVIZWFkZXJOYW1lZEFuZEluZGV4ZWRQcm9wZXJ0eUFjY2Vz
c29ycygkZGF0YU5vZGUpOwpAQCAtNDEwLDYgKzQxNSwxMiBAQCBFTkQKIEVORAogICAgIH0KIAor
ICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHQpIHsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVu
dCwgPDxFTkQpOworICAgIHN0YXRpYyB2b2lkIGluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCAke2ltcGxDbGFzc05hbWV9Kik7CitFTkQKKyAgICB9CisK
ICAgICBteSAkd3JhcFNsb3dBcmd1bWVudFR5cGUgPSBHZXRQYXNzUmVmUHRyVHlwZSgkbmF0aXZl
VHlwZSk7CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogcHJpdmF0ZToKQEAgLTIz
MDksOCArMjMyMCw5IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAjIC0gQWRk
IGRlZmF1bHQgaGVhZGVyIHRlbXBsYXRlCiAgICAgcHVzaChAaW1wbEZpeGVkSGVhZGVyLCBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uQ29udGVudEhlYWRlcigkZGF0YU5vZGUpKTsKLSAgICAgICAgIAor
CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIpOworICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiKTsKICAgICBBZGRU
b0ltcGxJbmNsdWRlcygiVjhQcm94eS5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4Qmlu
ZGluZy5oIik7CiAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIlY4QmluZGluZ1N0YXRlLmgiKTsKQEAg
LTI0MjcsNiArMjQzOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQGRp
c2FsbG93c1NoYWRvd2luZzsKICAgICAjIEFsc28gc2VwYXJhdGUgb3V0IGF0dHJpYnV0ZXMgdGhh
dCBhcmUgZW5hYmxlZCBhdCBydW50aW1lIHNvIHdlIGNhbiBwcm9jZXNzIHRoZW0gc3BlY2lhbGx5
LgogICAgIG15IEBlbmFibGVkQXRSdW50aW1lOworICAgIG15IEBlbmFibGVkUGVyQ29udGV4dDsK
ICAgICBteSBAbm9ybWFsOwogICAgIGZvcmVhY2ggbXkgJGF0dHJpYnV0ZSAoQCRhdHRyaWJ1dGVz
KSB7CiAKQEAgLTI0MzQsNiArMjQ0Nyw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAg
ICAgICAgICAgICBwdXNoKEBkaXNhbGxvd3NTaGFkb3dpbmcsICRhdHRyaWJ1dGUpOwogICAgICAg
ICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJW
OEVuYWJsZWRBdFJ1bnRpbWUifSkgewogICAgICAgICAgICAgcHVzaChAZW5hYmxlZEF0UnVudGlt
ZSwgJGF0dHJpYnV0ZSk7CisgICAgICAgIH0gZWxzaWYgKCRhdHRyaWJ1dGUtPnNpZ25hdHVyZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RW5hYmxlZFBlckNvbnRleHQifSkgeworICAgICAgICAg
ICAgcHVzaChAZW5hYmxlZFBlckNvbnRleHQsICRhdHRyaWJ1dGUpOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgcHVzaChAbm9ybWFsLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQpAQCAt
Mjg0MCw2ICsyODU1LDMyIEBAIGJvb2wgJHtjbGFzc05hbWV9OjpIYXNJbnN0YW5jZSh2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAKIEVORAogCisgICAgaWYgKEBlbmFibGVkUGVyQ29udGV4
dCkgeworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwordm9pZCAke2NsYXNzTmFt
ZX06Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGlu
c3RhbmNlLCAke2ltcGxDbGFzc05hbWV9KiBpbXBsKQoreworICAgIHY4OjpMb2NhbDx2ODo6T2Jq
ZWN0PiBwcm90byA9IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChpbnN0YW5jZS0+R2V0UHJv
dG90eXBlKCkpOworRU5ECisgICAgICAgICMgU2V0dXAgdGhlIGVuYWJsZS1ieS1zZXR0aW5ncyBh
dHRycyBpZiB3ZSBoYXZlIHRoZW0KKyAgICAgICAgZm9yZWFjaCBteSAkcnVudGltZUF0dHIgKEBl
bmFibGVkUGVyQ29udGV4dCkgeworICAgICAgICAgICAgbXkgJGVuYWJsZUZ1bmN0aW9uID0gR2V0
Q29udGV4dEVuYWJsZUZ1bmN0aW9uKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAg
ICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbmRp
dGlvbmFsU3RyaW5nKCRydW50aW1lQXR0ci0+c2lnbmF0dXJlKTsKKyAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiXG4jaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRp
b25hbFN0cmluZzsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmIChDb250
ZXh0RW5hYmxlZEZlYXR1cmVzOjoke2VuYWJsZUZ1bmN0aW9ufShpbXBsKSkge1xuIik7CisgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgc3RhdGljIGNvbnN0IEJhdGNoZWRB
dHRyaWJ1dGUgYXR0ckRhdGEgPVxcXG4iKTsKKyAgICAgICAgICAgIEdlbmVyYXRlU2luZ2xlQmF0
Y2hlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlTmFtZSwgJHJ1bnRpbWVBdHRyLCAiOyIsICIgICAgIik7
CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOworICAgICAgICBjb25maWd1
cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CitFTkQKKyAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOworICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIjZW5kaWYgLy8gJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25h
bFN0cmluZzsKKyAgICAgICAgfQorCisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
Cit9CitFTkQKKyAgICB9CisKICAgICBpZiAoJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiQWN0aXZlRE9NT2JqZWN0In0pIHsKICAgICAgICAgIyBNZXNzYWdlUG9ydCBpcyBoYW5kbGVk
IGxpa2UgYW4gYWN0aXZlIGRvbSBvYmplY3QgZXZlbiB0aG91Z2ggaXQgZG9lc24ndCBpbmhlcml0
CiAgICAgICAgICMgZnJvbSBBY3RpdmVET01PYmplY3QsIHNvIGRvbid0IHRyeSB0byBjYXN0IGl0
IHRvIEFjdGl2ZURPTU9iamVjdC4KQEAgLTM5NTMsNiArMzk5NCwyMCBAQCBzdWIgR2V0UnVudGlt
ZUVuYWJsZUZ1bmN0aW9uTmFtZQogICAgIHJldHVybiAiUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
IiAuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPm5hbWUpIC4gIkVuYWJs
ZWQiOwogfQogCitzdWIgR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uCit7CisgICAgbXkgJHNpZ25h
dHVyZSA9IHNoaWZ0OworCisgICAgIyBJZiBhIHBhcmFtZXRlciBpcyBnaXZlbiAoZS5nLiAiVjhF
bmFibGVkUGVyQ29udGV4dD1GZWF0dXJlTmFtZSIpIHJldHVybiB0aGUge0ZlYXR1cmVOYW1lfUFs
bG93ZWQoKSBtZXRob2QuCisgICAgaWYgKCRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJWOEVuYWJsZWRQZXJDb250ZXh0In0gJiYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4RW5hYmxlZFBlckNvbnRleHQifSBuZSAiVkFMVUVfSVNfTUlTU0lORyIpIHsKKyAgICAg
ICAgcmV0dXJuICRjb2RlR2VuZXJhdG9yLT5XS19sY2ZpcnN0KCRzaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJWOEVuYWJsZWRQZXJDb250ZXh0In0pIC4gIkVuYWJsZWQiOworICAgIH0K
KworICAgICMgT3IgaXQgZmFsbGJhY2tzIHRvIHRoZSBhdHRyaWJ1dGUgbmFtZSBpZiB0aGUgcGFy
YW1ldGVyIHZhbHVlIGlzIG1pc3NpbmcuCisgICAgbXkgJGF0dHJpYnV0ZU5hbWUgPSAkc2lnbmF0
dXJlLT5uYW1lOworICAgIHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkYXR0cmli
dXRlTmFtZSkgLiAiRW5hYmxlZCI7Cit9CisKIHN1YiBHZXRQYXNzUmVmUHRyVHlwZQogewogICAg
IG15ICRjbGFzc05hbWUgPSBzaGlmdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IGE0NjdiZmVlNTRkNWE1NTgzM2MzMDkwNzE5
ZWEyOGUzNmY0ZGU0NWQuLjg0ODk0OTMyN2I4MDIzYmQwZjFkYmYzYjkwM2JlYjAyN2M5YzUxMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
LnR4dApAQCAtMTExLDUgKzExMSw2IEBAIFY4Q3VzdG9tVG9KU09iamVjdAogVjhEZXBlbmRlbnRM
aWZldGltZQogVjhEb05vdENoZWNrU2lnbmF0dXJlCiBWOEVuYWJsZWRBdFJ1bnRpbWU9KgorVjhF
bmFibGVkUGVyQ29udGV4dD0qCiBWOFJlYWRPbmx5CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5kZXggNDg4Yzk5
YWI4ZDE5ZGU1ZDUzZDUwZWYzNGM1MWUzYWE5NTA2NzA4OC4uMDhiOTg1NjJmMWQ3NWIwMDZkNjY2
MzRjYjlhYWRlM2YxOGM4NjcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtMjAzLDYgKzIwMyw5IEBAIG1vZHVsZSB0ZXN0IHsK
ICAgICAgICAgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gdm9pZCBlbmFibGVkQXRS
dW50aW1lTWV0aG9kMihpbiBpbnQgaW50QXJnKTsKICAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJs
ZWRBdFJ1bnRpbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0dHIxOwogICAgICAgICBhdHRyaWJ1
dGUgW1Y4RW5hYmxlZEF0UnVudGltZT1GZWF0dXJlTmFtZV0gbG9uZyBlbmFibGVkQXRSdW50aW1l
QXR0cjI7CisgICAgICAgIC8vIFY4RW5hYmxlZFBlckNvbnRleHQgY3VycmVudGx5IG9ubHkgc3Vw
cG9ydHMgYXR0cmlidXRlcy4KKyAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJsZWRQZXJDb250ZXh0
XSBsb25nIGVuYWJsZWRBdENvbnRleHRBdHRyMTsKKyAgICAgICAgYXR0cmlidXRlIFtWOEVuYWJs
ZWRQZXJDb250ZXh0PUZlYXR1cmVOYW1lXSBsb25nIGVuYWJsZWRBdENvbnRleHRBdHRyMjsKICNl
bmRpZgogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggYjc0OTY3MzIzNDlhZGFhOWNhZWZmNjhiMTc1MmM2NDFj
ZWU4NGU1ZS4uMTIzMzgwNGQ4NzY2YjcwODE0ZDZkNTBkODgyZWVmNTU4ODRkNGJlOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAKQEAgLTEwNzQsNiArMTA3NCwzOCBAQCBzdGF0aWMgdm9pZCBlbmFibGVkQXRSdW50aW1l
QXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYQogICAg
IHJldHVybjsKIH0KIAorc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6
QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouZW5hYmxl
ZEF0Q29udGV4dEF0dHIxLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6TmV3KGltcC0+
ZW5hYmxlZEF0Q29udGV4dEF0dHIxKCkpOworfQorCitzdGF0aWMgdm9pZCBlbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8
djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJ
TkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRyMS5fc2V0Iik7CisgICAg
VGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICBp
bnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0RW5hYmxlZEF0Q29udGV4dEF0dHIx
KHYpOworICAgIHJldHVybjsKK30KKworc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBlbmFi
bGVkQXRDb250ZXh0QXR0cjJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBj
b25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQoreworICAgIElOQ19TVEFUUygiRE9NLlRlc3RP
YmouZW5hYmxlZEF0Q29udGV4dEF0dHIyLl9nZXQiKTsKKyAgICBUZXN0T2JqKiBpbXAgPSBWOFRl
c3RPYmo6OnRvTmF0aXZlKGluZm8uSG9sZGVyKCkpOworICAgIHJldHVybiB2ODo6SW50ZWdlcjo6
TmV3KGltcC0+ZW5hYmxlZEF0Q29udGV4dEF0dHIyKCkpOworfQorCitzdGF0aWMgdm9pZCBlbmFi
bGVkQXRDb250ZXh0QXR0cjJBdHRyU2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2
ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykK
K3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRBdENvbnRleHRBdHRyMi5fc2V0
Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigp
KTsKKyAgICBpbnQgdiA9IHRvSW50MzIodmFsdWUpOworICAgIGltcC0+c2V0RW5hYmxlZEF0Q29u
dGV4dEF0dHIyKHYpOworICAgIHJldHVybjsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZh
bHVlPiBmbG9hdEFycmF5QXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
LmZsb2F0QXJyYXkuX2dldCIpOwpAQCAtMjM4OCw2ICsyNDIwLDIyIEBAIGJvb2wgVjhUZXN0T2Jq
OjpIYXNJbnN0YW5jZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiAgICAgcmV0dXJuIEdl
dFJhd1RlbXBsYXRlKCktPkhhc0luc3RhbmNlKHZhbHVlKTsKIH0KIAordm9pZCBWOFRlc3RPYmo6
Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGluc3Rh
bmNlLCBUZXN0T2JqKiBpbXBsKQoreworICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBwcm90byA9
IHY4OjpMb2NhbDx2ODo6T2JqZWN0Pjo6Q2FzdChpbnN0YW5jZS0+R2V0UHJvdG90eXBlKCkpOwor
ICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjplbmFibGVkQXRDb250ZXh0QXR0cjFBbGxv
d2VkKGltcGwpKSB7CisgICAgICAgIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0cmlidXRlIGF0dHJE
YXRhID1cCisgICAgICAgIC8vIEF0dHJpYnV0ZSAnZW5hYmxlZEF0Q29udGV4dEF0dHIxJyAoVHlw
ZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJ1Y4RW5hYmxlZFBlckNvbnRleHQnKQorICAgICAgICB7
ImVuYWJsZWRBdENvbnRleHRBdHRyMSIsIFRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRDb250
ZXh0QXR0cjFBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0
dHIxQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29u
dHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4
OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL307CisgICAgICAgIGNvbmZpZ3VyZUF0dHJpYnV0
ZShpbnN0YW5jZSwgcHJvdG8sIGF0dHJEYXRhKTsKKyAgICB9CisgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OmZlYXR1cmVOYW1lQWxsb3dlZChpbXBsKSkgeworICAgICAgICBzdGF0aWMg
Y29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0YSA9XAorICAgICAgICAvLyBBdHRyaWJ1dGUg
J2VuYWJsZWRBdENvbnRleHRBdHRyMicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVu
YWJsZWRQZXJDb250ZXh0JykKKyAgICAgICAgeyJlbmFibGVkQXRDb250ZXh0QXR0cjIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4dEF0dHIyQXR0ckdldHRlciwgVGVzdE9ialY4
SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRyMkF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
OworICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUoaW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7
CisgICAgfQorfQogCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE9iajo6d3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0T2JqPiBpbXBsLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApp
bmRleCA3OGY3MThkNTVjZTU0Njc1YjU1YjAyMzhkNmQ4M2M1ZWFmNmMwMzc2Li5lMWJiODEzYjVh
YTcwZTkyMzcyZWI1NzAwNzAwNzUyNGRkOGFhYzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCkBAIC01MCw2ICs1MCw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGN1c3RvbUF0dHJBY2Nl
c3NvckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mbyYpOwogICAgIHN0YXRpYyB2b2lkIGN1c3RvbUF0dHJBY2Nlc3NvclNldHRlcih2ODo6TG9j
YWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4sIGNvbnN0IHY4OjpBY2Nl
c3NvckluZm8mKTsKICAgICBzdGF0aWMgY29uc3QgaW50IGludGVybmFsRmllbGRDb3VudCA9IHY4
RGVmYXVsdFdyYXBwZXJJbnRlcm5hbEZpZWxkQ291bnQgKyAwOworICAgIHN0YXRpYyB2b2lkIGlu
c3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCBUZXN0T2Jq
Kik7CiBwcml2YXRlOgogICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBTbG93
KFBhc3NSZWZQdHI8VGVzdE9iaj4sIHY4OjpJc29sYXRlKik7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOERPTVdpbmRvd1NoZWxsLmNwcAppbmRleCA5MGRjMGY4MGRlMWM5
NjNlZTgxYjJjMzAzM2M5Nzg2ZjcyMWE4ZGJlLi4xZjk4ZmQ1MDhlZmZkMmRlZGVhZWJjNzJiNDNh
OTkzMmI3OTFmMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdpbmRvd1NoZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdp
bmRvd1NoZWxsLmNwcApAQCAtNDA4LDEwICs0MDgsMTEgQEAgYm9vbCBWOERPTVdpbmRvd1NoZWxs
OjppbnN0YWxsRE9NV2luZG93KHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQsIERPTVdp
bmQKICAgICBpZiAoanNXaW5kb3cuSXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
KyAgICBWOERPTVdpbmRvdzo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKGpzV2luZG93LCB3
aW5kb3cpOworCiAgICAgLy8gV3JhcCB0aGUgd2luZG93LgogICAgIFY4RE9NV3JhcHBlcjo6c2V0
RE9NV3JhcHBlcihqc1dpbmRvdywgJlY4RE9NV2luZG93OjppbmZvLCB3aW5kb3cpOwogICAgIFY4
RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGpz
V2luZG93LT5HZXRQcm90b3R5cGUoKSksICZWOERPTVdpbmRvdzo6aW5mbywgd2luZG93KTsKLQog
ICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KFBhc3NSZWZQdHI8RE9N
V2luZG93Pih3aW5kb3cpLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0Pjo6TmV3KGpzV2luZG93
KSk7CiAKICAgICAvLyBJbnNlcnQgdGhlIHdpbmRvdyBpbnN0YW5jZSBhcyB0aGUgcHJvdG90eXBl
IG9mIHRoZSBzaGFkb3cgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmlu
ZGV4IGUwNWUzNzYzN2M4NGJiYjIzMjZiNmM0MTAwZTYwNGZkMTA2ZTA4MDYuLmY2YjdhZTkzNWQ2
NmY2NTlmOWQzZTg5ZTg0MDI5YTI1ZGY3NzY2YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmgKQEAgLTg1LDcgKzg1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgdm9p
ZCBiYXRjaENvbmZpZ3VyZUF0dHJpYnV0ZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+
LCB2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4sIGNvbnN0IEJhdGNoZWRBdHRyaWJ1dGUq
LCBzaXplX3QgYXR0cmlidXRlQ291bnQpOwogCi0gICAgaW5saW5lIHZvaWQgY29uZmlndXJlQXR0
cmlidXRlKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiBpbnN0YW5jZSwgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0VGVtcGxhdGU+IHByb3RvLCBjb25zdCBCYXRjaGVkQXR0cmlidXRlJiBhdHRy
aWJ1dGUpCisgICAgdGVtcGxhdGU8Y2xhc3MgT2JqZWN0T3JUZW1wbGF0ZT4KKyAgICBpbmxpbmUg
dm9pZCBjb25maWd1cmVBdHRyaWJ1dGUodjg6OkhhbmRsZTxPYmplY3RPclRlbXBsYXRlPiBpbnN0
YW5jZSwgdjg6OkhhbmRsZTxPYmplY3RPclRlbXBsYXRlPiBwcm90bywgY29uc3QgQmF0Y2hlZEF0
dHJpYnV0ZSYgYXR0cmlidXRlKQogICAgIHsKICAgICAgICAgKGF0dHJpYnV0ZS5vblByb3RvID8g
cHJvdG8gOiBpbnN0YW5jZSktPlNldEFjY2Vzc29yKHY4OjpTdHJpbmc6Ok5ldyhhdHRyaWJ1dGUu
bmFtZSksCiAgICAgICAgICAgICBhdHRyaWJ1dGUuZ2V0dGVyLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5j
cHAKaW5kZXggMDhkZWE3M2I2ZjFlOWVhOGRjYTgzN2NmMDI1NTMzNzYyNDE4ZWNkNi4uYTA2ZmZk
NDVmMzlmMjAzMzIzNjczYmIyY2QxYzM3Y2M5OTQwZjM5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24u
Y3BwCkBAIC0yNywxMyArMjcsMTMgQEAKICNpbmNsdWRlICJQb3NpdGlvbi5oIgogCiAjaW5jbHVk
ZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklubGluZVRl
eHRCb3guaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9zaXRpb25JdGVyYXRv
ci5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dC5oIgot
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAj
aW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCkBA
IC04Miw3ICs4Miw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+IGFuY2hv
ck5vZGUsIExlZ2FjeUVkaXRpbmdPZmZzZXQgb2Zmc2V0KQogICAgICwgbV9pc0xlZ2FjeUVkaXRp
bmdQb3NpdGlvbih0cnVlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKChtX2FuY2hv
ck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICAgICAgICAgfHwgIW1fYW5jaG9y
Tm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VS
VCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRp
ZgpAQCAtOTUsNyArOTYsOCBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBh
bmNob3JOb2RlLCBBbmNob3JUeXBlIGFuY2hvclR5cGUpCiAgICAgLCBtX2lzTGVnYWN5RWRpdGlu
Z1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIEFTU0VSVChS
dW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkgfHwgIW1fYW5jaG9yTm9k
ZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKChtX2FuY2hv
ck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICAgICAgICAgfHwgIW1fYW5jaG9y
Tm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VS
VCghbV9hbmNob3JOb2RlIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKICNlbmRp
ZgpAQCAtMTEyLDcgKzExNCw4IEBAIFBvc2l0aW9uOjpQb3NpdGlvbihQYXNzUmVmUHRyPE5vZGU+
IGFuY2hvck5vZGUsIGludCBvZmZzZXQsIEFuY2hvclR5cGUgYW5jaG9yVHlwCiAgICAgLCBtX2lz
TGVnYWN5RWRpdGluZ1Bvc2l0aW9uKGZhbHNlKQogewogI2lmIEVOQUJMRShTSEFET1dfRE9NKQot
ICAgICBBU1NFUlQoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpIHx8
ICFtX2FuY2hvck5vZGUgfHwgIWVkaXRpbmdJZ25vcmVzQ29udGVudChtX2FuY2hvck5vZGUuZ2V0
KCkpIHx8ICFtX2FuY2hvck5vZGUtPmlzU2hhZG93Um9vdCgpKTsKKyAgICBBU1NFUlQoKG1fYW5j
aG9yTm9kZSAmJiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKG1fYW5j
aG9yTm9kZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQorICAgICAgICAgICB8fCAhbV9hbmNo
b3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAh
bV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZWxzZQogICAgIEFTU0VSVCghbV9hbmNo
b3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgpKSB8fCAh
bV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYKQEAgLTg1NCw3ICs4NTcsNyBA
QCBDb250YWluZXJOb2RlKiBQb3NpdGlvbjo6ZmluZFBhcmVudChjb25zdCBOb2RlKiBub2RlKQog
ICAgIC8vIEZJWE1FOiBTZWUgaHR0cDovL3dlYi51Zy84MjY5NwogCiAjaWYgRU5BQkxFKFNIQURP
V19ET00pCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQo
KSkKKyAgICBpZiAoQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChub2Rl
LT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCiAgICAgICAgIHJldHVybiBub2RlLT5wYXJlbnRO
b2RlKCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuaWRsIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCmluZGV4IGE5MzMzM2Jj
MTBkMTZkNGY2NDIyMWYzZmFmYTU3YTRlODdhMjBlMDYuLjgxMTBjMWUwOGE3NDNkNzNlYzEzNDUy
Y2E2YTRkYjZhMzc0NzQxYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5pZGwKQEAgLTI4LDcg
KzI4LDYgQEAgbW9kdWxlIGNvcmUgewogCiAgICAgaW50ZXJmYWNlIFsKICAgICAgICAgQ29uZGl0
aW9uYWw9U0hBRE9XX0RPTSwKLSAgICAgICAgVjhFbmFibGVkQXRSdW50aW1lPXNoYWRvd0RPTSwK
ICAgICAgICAgQ29uc3RydWN0b3IoaW4gRWxlbWVudCBob3N0KSwKICAgICAgICAgQ29uc3RydWN0
b3JSYWlzZXNFeGNlcHRpb24KICAgICBdIFNoYWRvd1Jvb3QgOiBEb2N1bWVudEZyYWdtZW50IHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKaW5kZXggOWU4NDc4OTliYTliMGQ1NzI5ZDZmNjJhMjUz
Nzk2NmYxMzg2NDIyOS4uMmY2ZjhiZDllYTBhODg3Yzk4NWEwZWNlN2YxYTQ5NDc3NDkwZDE0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1RyZWVTY29wZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJU
cmVlU2NvcGUuaCIKIAogI2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb250
ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRE9NU2VsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM4LDcgKzM5LDYgQEAK
ICNpbmNsdWRlICJIVE1MTWFwRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIlBhZ2UuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5j
bHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIlRyZWVTY29wZUFkb3B0ZXIuaCIKICNpbmNs
dWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KQEAgLTE0OSw3ICsxNDksNyBAQCBET01TZWxl
Y3Rpb24qIFRyZWVTY29wZTo6Z2V0U2VsZWN0aW9uKCkgY29uc3QKICAgICAvLyBhcyBhIGNvbnRh
aW5lci4gSXQgaXMgbm93IGVuYWJsZWQgb25seSBpZiBydW50aW1lIFNoYWRvdyBET00gZmVhdHVy
ZSBpcyBlbmFibGVkLgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODI2OTcKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpKSB7CisgICAgaWYgKENvbnRleHRFbmFi
bGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQocm9vdE5vZGUoKS0+ZG9jdW1lbnQoKS0+ZG9t
V2luZG93KCkpKSB7CiAgICAgICAgIG1fc2VsZWN0aW9uID0gRE9NU2VsZWN0aW9uOjpjcmVhdGUo
dGhpcyk7CiAgICAgICAgIHJldHVybiBtX3NlbGVjdGlvbi5nZXQoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBh
NGRjZWVlZDBkZmJiMGExNmM2YzRkZDVjNGQyOThiMGM2NDcyZDYwLi5jNzcwNmNjMTZmODY4MjNl
MzEzMmUxNzdmZDExNGFiOGFlNTYwYzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKQEAgLTI5LDEwICsyOSwxMCBAQAogCiAjaW5j
bHVkZSAiQ29udGVudERpc3RyaWJ1dG9yLmgiCiAjaW5jbHVkZSAiQ29udGVudFNlbGVjdG9yUXVl
cnkuaCIKKyNpbmNsdWRlICJDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiRWxl
bWVudFNoYWRvdy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIlF1YWxpZmll
ZE5hbWUuaCIKLSNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAi
U2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIApAQCAtNDAsMjAg
KzQwLDIxIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgSFRNTE5hbWVzOjpzZWxlY3RB
dHRyOwogCi1zdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgY29udGVudFRhZ05hbWUoKQorc3Rh
dGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSkKKyAgICBpZiAoIUNvbnRleHRFbmFibGVkRmVhdHVy
ZXM6OnNoYWRvd0RPTUVuYWJsZWQoZG9jdW1lbnQtPmRvbVdpbmRvdygpKSkKICAgICAgICAgcmV0
dXJuIEhUTUxOYW1lczo6d2Via2l0U2hhZG93Q29udGVudFRhZzsKICAgICByZXR1cm4gSFRNTE5h
bWVzOjpjb250ZW50VGFnOwogI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogICAg
IHJldHVybiBIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAjZW5kaWYKIH0KIAog
UGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50RWxlbWVudDo6Y3JlYXRl
KERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxDb250
ZW50RWxlbWVudChjb250ZW50VGFnTmFtZSgpLCBkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgSFRNTENvbnRlbnRFbGVtZW50KGNvbnRlbnRUYWdOYW1lKGRvY3VtZW50KSwgZG9j
dW1lbnQpKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MQ29udGVudEVsZW1lbnQ+IEhUTUxDb250ZW50
RWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBk
b2N1bWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXgg
YjE1Y2UwMDgyZjg0YWEzNDIzZmNmMDAyNTQ4NmE5N2FiYjE1N2MwZi4uN2M5Zjg1M2JkMGZkZWIy
MDlkZWZjZmY1Mjc5ZTI0NGZiMGQ3MmRmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyQ2xpZW50LmgKQEAgLTMxMCw3ICszMTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIHZpcnR1YWwgYm9vbCBhbGxvd0ltYWdlKGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBj
b25zdCBLVVJMJikgeyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBhbGxvd0Rpc3BsYXlpbmdJbnNlY3VyZUNvbnRlbnQoYm9vbCBlbmFibGVkUGVyU2V0
dGluZ3MsIFNlY3VyaXR5T3JpZ2luKiwgY29uc3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJT
ZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dSdW5uaW5nSW5zZWN1cmVDb250
ZW50KGJvb2wgZW5hYmxlZFBlclNldHRpbmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwm
KSB7IHJldHVybiBlbmFibGVkUGVyU2V0dGluZ3M7IH0KLSAgICAgICAgCisKKyAgICAgICAgdmly
dHVhbCBib29sIHNoYWRvd0RPTUFsbG93ZWQoYm9vbCBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXMp
IHsgcmV0dXJuIGVuYWJsZWRBc1J1bnRpbWVGZWF0dXJlczsgfQorCiAgICAgICAgIC8vIFRoaXMg
Y2FsbGJhY2sgbm90aWZpZXMgdGhlIGNsaWVudCB0aGF0IHRoZSBmcmFtZSB3YXMgYWJvdXQgdG8g
cnVuCiAgICAgICAgIC8vIEphdmFTY3JpcHQgYnV0IGRpZCBub3QgYmVjYXVzZSBhbGxvd1Njcmlw
dCByZXR1cm5lZCBmYWxzZS4gV2UKICAgICAgICAgLy8gaGF2ZSBhIHNlcGFyYXRlIGNhbGxiYWNr
IGhlcmUgYmVjYXVzZSB0aGVyZSBhcmUgYSBudW1iZXIgb2YgcGxhY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKaW5kZXggNDBlMGIyYWZmMWIwZGZmMTNjNjBiNTA2NjU4NDQ4MDdmYmQwY2Y1
MC4uYmExNWNmN2VmZjAwN2IwYTViYTAyMjk1OWVjYjEwYTM1YWQ2YjJmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcApAQCAtNzgsNiArNzgsNyBAQAogI2luY2x1ZGUgIlBhZ2VUcmFuc2l0
aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U2NyZWVuLmgiCisjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUg
IlNjaGVkdWxlZEFjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmVlbi5oIgogI2luY2x1ZGUgIlNjcmlw
dENhbGxTdGFjay5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCmluZGV4IDlhNTEyZDA3NjY1
YTFhODFjNDU5MTdiOWY4MDVhNjBiZDE4OWJkYzAuLjU5N2QwN2Q5NDFhN2FlMTUwYTJjMTU4YjQ1
OGEzNWUzMmExZWFkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKQEAgLTM4Nyw3ICsz
ODcsNyBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eUNvbnN0cnVj
dG9yIEVudGl0eTsKICAgICAgICAgYXR0cmlidXRlIEVudGl0eVJlZmVyZW5jZUNvbnN0cnVjdG9y
IEVudGl0eVJlZmVyZW5jZTsKICAgICAgICAgYXR0cmlidXRlIFByb2Nlc3NpbmdJbnN0cnVjdGlv
bkNvbnN0cnVjdG9yIFByb2Nlc3NpbmdJbnN0cnVjdGlvbjsKLSAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRBdFJ1bnRpbWU9c2hhZG93RE9NXSBTaGFk
b3dSb290Q29uc3RydWN0b3IgV2ViS2l0U2hhZG93Um9vdDsKKyAgICAgICAgYXR0cmlidXRlIFtD
b25kaXRpb25hbD1TSEFET1dfRE9NLCBWOEVuYWJsZWRQZXJDb250ZXh0PXNoYWRvd0RPTV0gU2hh
ZG93Um9vdENvbnN0cnVjdG9yIFdlYktpdFNoYWRvd1Jvb3Q7CiAKICAgICAgICAgYXR0cmlidXRl
IERPTVNlbGVjdGlvbkNvbnN0cnVjdG9yIFNlbGVjdGlvbjsKICAgICAgICAgYXR0cmlidXRlIERP
TVdpbmRvd0NvbnN0cnVjdG9yIFdpbmRvdzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143179</attachid>
            <date>2012-05-21 20:20:52 -0700</date>
            <delta_ts>2012-05-21 20:20:52 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86555-20120522122051.patch</filename>
            <type>text/plain</type>
            <size>37132</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE3ODY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTA1ZjliOWYyMDRlNjgy
Yzg1YmU2NzBkZjI3NzU2MWFmYzBmYThkYi4uOTA4ZDQ3YTAyOWY4ODdhNGUxOWI5ZjY0MjE1NDcw
M2ZiZDhlMTExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA1LTIxICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtWOF0gU2hhZG93
IERPTSBzaG91bGQgYmUgcGVyLXdpbmRvdy1jb25maWd1cmFibGUuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjU1NQorCisgICAgICAgIFJldmlld2Vk
IGJ5IEtlbnRhcm8gSGFyYS4KKworICAgICAgICBUaGlzIGNoYW5nZSBpbnRyb2R1Y2VzIGFuIElE
TCBhdHRyaWJ1dGUgbmFtZWQgIlY4RW5hYmxlZEF0Q29udGV4dCIKKyAgICAgICAgd2hpY2ggYWxs
b3dzIERPTVdpbmRvdyBwcm9wZXJ0aWVzIHRvIGJlIHR1cm5lZCBvbiBvciBvZmYgcGVyCisgICAg
ICAgIHdpbmRvd3MgYmFzaXMuIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Onh4eEFsbG93ZWQoKSBt
ZXRob2QgZGVjaWRlcyB0aGUgYXZhaWxhYmlsaXR5LgorCisgICAgICAgIC0gQ29kZUdlbmVyYXRv
clY4LnBtIG5vdyBhY2NlcHRzIFY4RW5hYmxlZEF0Q29udGV4dCBhbmQgYWxsb3dzIHN1Y2ggcHJv
cGVydGllcworICAgICAgICAgIHRvIGJlIGNvbmZpZ3VyZWQgcGVyLU9iamVjdCBiYXNpcywgaW5z
dGVhZCBvZiBwZXItT2JqZWN0VGVtcGxhdGUgYmFzaXMuCisgICAgICAgICAgVGhlIHNjcmlwdCBn
ZW5lcmF0ZXMgVjhXaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcygpLCB3aGljaCBp
bmplY3RzIHN1Y2gKKyAgICAgICAgICBwZXItb2JqZWN0LXR1cm5hYmxlIHByb3BlcnRpZXMgdG8g
bmV3bHkgY3JlYXRlZCBET01XaW5kb3cgd3JhcHBlci4KKyAgICAgICAgLSBBZGRlZCBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01BbGxvd2VkKERPTVdpbmRvdyopIHdoaWNoIGlzIHVz
ZWQgdG8KKyAgICAgICAgICBkZWNpZGUgdGhlIHNoYWRvdyBkb20gYXZhaWxhYmlsaXR5IG9mIFNo
YWRvdyBET00gZmVhdHVyZS4KKyAgICAgICAgICBJdCBkZWxlZ2F0ZXMgdGhlIGNhbGwgdG8gRnJh
bWVMb2FkZXJDbGllbnQ6OnNoYWRvd0RPTUFsbG93ZWQoKSB0byBtYWtlIHRoZSBkZWNpc2lvbi4K
KyAgICAgICAgLSBUaGUgbmV3IElETCBhdHRyaWJ1dGUgaXMgYXBwbGllZCB0byBET01XaW5kb3cu
V2ViS2l0U2hhZG93Um9vdC4KKyAgICAgICAgLSBVcGRhdGVkIGV4aXN0aW5nIHNoYWRvd0RPTUVu
YWJsZWQoKSBjYWxsIHNpdGVzIHdpdGggc2hhZG93RE9NQWxsb3dlZCgpLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cyBleGNlcHQgcnVuLWJpbmRpbmdzLXRlc3QuIFRoaXMgaXNuJ3QgdGVzdGFibGUg
ZnJvbQorICAgICAgICBEUlQgYW5kIHRoaXMgY2hhbmdlIGl0c2VsZiBkb2Vzbid0IGNoYWduZSB0
aGUgYmVoYXZpb3VyLiAgSXQgbmVlZHMKKyAgICAgICAgYSBjbGllbnQgaW1wbGVtZW50YXRpb24u
CisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0
LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAg
ICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL0Nv
bnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCk6
CisgICAgICAgICogYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChDb250ZXh0RW5hYmxlZEZlYXR1cmVz
KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAg
ICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOgor
ICAgICAgICAoR2V0Q29udGV4dEVuYWJsZUZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0T2JqLmlkbDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
T2JqLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRD
b250ZXh0QXR0cjFBdHRyR2V0dGVyKToKKyAgICAgICAgKFRlc3RPYmpWOEludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVkQXRDb250ZXh0QXR0cjFB
dHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjplbmFibGVk
QXRDb250ZXh0QXR0cjJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRlc3RPYmpWOElu
dGVybmFsOjplbmFibGVkQXRDb250ZXh0QXR0cjJBdHRyU2V0dGVyKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdE9iajo6aW5zdGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmg6CisgICAgICAgIChWOFRlc3RPYmop
OgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhET01XaW5kb3dTaGVsbDo6aW5zdGFsbERPTVdpbmRvdyk6IEFkb3B0ZWQgaW5z
dGFsbFBlckNvbnRleHRQcm9wZXJ0aWVzKCkKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OmNvbmZpZ3VyZUF0dHJp
YnV0ZSk6IEdlbmVyYWxpemVkIHRvIGFjY2VwdCBib3RoIE9iamVjdFRlbXBsYXRlIGFuZCBPYmpl
Y3QuCisgICAgICAgICogZG9tL1Bvc2l0aW9uLmNwcDogQWRvcHRlZCBDb250ZXh0RW5hYmxlZEZl
YXR1cmVzCisgICAgICAgIChXZWJDb3JlOjpQb3NpdGlvbjo6UG9zaXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6UG9zaXRpb246OmZpbmRQYXJlbnQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290
LmlkbDoKKyAgICAgICAgKiBkb20vVHJlZVNjb3BlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRy
ZWVTY29wZTo6Z2V0U2VsZWN0aW9uKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOiBBZG9wdGVkIENvbnRleHRFbmFibGVkRmVhdHVyZXMKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnRlbnRUYWdOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAg
ICAgICAgKEZyYW1lTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50OjpzaGFkb3dET01BbGxvd2VkKTogQWRkZWQgd2l0aCBhIGRlZmF1bHQgYmVoYXZpb3Iu
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuY3BwOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93
LmlkbDoKKwogMjAxMi0wNS0yMSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gUG9ydCBjaHJvbWl1bSBjb21wb3NpdG9yIHRvIHVzZSBX
ZWJGaWx0ZXJPcGVyYXRpb24ocykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTc1MDE2NTc4NmE0
YTllY2JmODgwYzVkOTliZDljNDI3NDc5MDgwOS4uMzNkNGY0ZjhlZjhlODM3ODU1NjlhOWMyNTA2
NmIwNDliMzU1M2IyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTQ1NSw2ICs0NTUsNyBAQCBT
RVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3Bw
CiAKICAgICBiaW5kaW5ncy9nZW5lcmljL0FjdGl2ZURPTUNhbGxiYWNrLmNwcAorICAgIGJpbmRp
bmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5jcHAKICAgICBiaW5kaW5ncy9nZW5l
cmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCiAKICAgICBjc3MvQ1NTQXNwZWN0UmF0aW9W
YWx1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDI1OTQzMjMyMWU1YTE5
OTViNGI4MGE5YWZkOTVjYjZiOWJlZTI2OWIuLmI0MGVkMGM4MzUxZTAxODYzMTI3YWEzODY1NzIz
NmVlMDVkNjg3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTMwMyw2ICsx
MzAzLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuaCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9B
Y3RpdmVET01DYWxsYmFjay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMv
QWN0aXZlRE9NQ2FsbGJhY2suaCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9D
b250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCBcCisJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2Vu
ZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2dlbmVyaWMvQmluZGluZ1NlY3VyaXR5QmFzZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDNjOWI2MGE3
Mzc4ZDRhN2IxZTlhZTI5ZDBlMjZhYzA4ZjA0NmE5ZTIuLjE2ZWI3OWFjZjQ0MmVmMzllMGI1ZjMz
YWFmZDkyNjFmN2M2ZjI4OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNzIsNiArNzIsNyBAQCBTT1VSQ0VT
ICs9IFwKICAgICBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZVJvdy5jcHAgXAogICAg
IGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgXAogICAgIGJpbmRpbmdzL2dlbmVyaWMv
QWN0aXZlRE9NQ2FsbGJhY2suY3BwIFwKKyAgICBiaW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFi
bGVkRmVhdHVyZXMuY3BwCiAgICAgYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmNwcAogCiB2OCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggZjczYzYzYjRiMjQ3NjlhZjMzODk1
NTk2NTdkNzNmODRlMGY1ZWRjOC4uYTE0ZDFmMTVlMDc5YjZjOGMzMWQ3YTJhODc5NjUyOTYyN2Fl
MTdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTg0Niw2ICsxODQ2LDggQEAKICAgICAgICAgICAg
ICdiaW5kaW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eS5oJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9nZW5lcmljL0JpbmRpbmdTZWN1cml0eUJhc2UuaCcsCisgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCcsCisgICAgICAgICAgICAnYmlu
ZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmgnLAogICAgICAgICAgICAgJ2Jp
bmRpbmdzL2dlbmVyaWMvR2VuZXJpY0JpbmRpbmcuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
Z2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBiMWFkZDE1YWNkZGMxZmI3NjYxMDJm
OGExNDIwNTQ0NmM0YmMxNDlkLi4zZmZkYWQ2YjkxYjQwNDI5N2VlZDI1MjAwODFjYzc2OWEzMTE3
ZDcwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpA
QCAtNjI5MTMsNiArNjI5MTMsMTQgQEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdzXGdlbmVyaWNcQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxiaW5kaW5nc1xnZW5lcmljXENvbnRleHRFbmFibGVkRmVhdHVyZXMuaCIKKwkJCQkJ
PgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGJpbmRpbmdz
XGdlbmVyaWNcR2VuZXJpY0JpbmRpbmcuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAzNzIx
ODNhOWM5YWJhMjM2MWFhZTk1YjE5YmZhYzdhZmFlMzE3ZDJkLi5kNGRjM2E3OTA5ZjdhMTE2Y2U4
ZjYzOGI3OTg1NjhlZGQ1MTFjZDYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzM4LDYgKzM3MzgsOCBAQAogCQlBNzNGOTVG
RjEyQzk3QkZFMDAzMUFBRjkgLyogUm91bmRlZFJlY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3Vu
ZGVkUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUE3NDBCNUE1MTRDOTM1QUIwMEE3N0ZBNCAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QjRFQTc5MTRDOTM0
ODQwMEM4RjVCRiAvKiBKU0ludGVybmFsU2V0dGluZ3MuaCAqLzsgfTsKIAkJQTc0MEI1QTcxNEM5
MzVBRjAwQTc3RkE0IC8qIEpTSW50ZXJuYWxTZXR0aW5ncy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBN0I0RUE3ODE0QzkzNDg0MDBDOEY1QkYgLyog
SlNJbnRlcm5hbFNldHRpbmdzLmNwcCAqLzsgfTsKKwkJQTc0N0EwN0YxNTZCMjg2OTAwMjQzRUVE
IC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRF
bmFibGVkRmVhdHVyZXMuY3BwICovOyB9OworCQlBNzQ3QTA4MDE1NkIyODY5MDAyNDNFRUQgLyog
Q29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCAqLzsgfTsKIAkJQTc0QkI3NkIxM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlv
bkNvZGVQbGFjZWhvbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTc0QkI3NkExM0JEQTg2MzAwRkY3QkYwIC8qIEV4Y2VwdGlvbkNvZGVQbGFjZWhv
bGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3NUU0OTc2MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc0MTA3NTJB
Q0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlBNzVFNDk3NzEwNzUyQUNCMDBDOUI4OTYg
LyogU2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVk
U2NyaXB0VmFsdWUuY3BwICovOyB9OwpAQCAtMTA4MDUsNiArMTA4MDcsOCBAQAogCQlBNzIzRjc3
QTE0ODRDQTRDMDA4QzZEQkUgLyogUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUGxhdGZvcm1FeHBvcnRNYWNyb3MuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkMxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJvdW5kZWRSZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5
IC8qIFJvdW5kZWRSZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJvdW5k
ZWRSZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUE3NDdBMDdEMTU2QjI4Njkw
MDI0M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwOyBwYXRoID0gZ2Vu
ZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJQTc0N0EwN0UxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVhdHVyZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oOyBwYXRoID0gZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1cmVzLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUE3NEJCNzZBMTNCREE4NjMwMEZGN0JGMCAvKiBFeGNlcHRpb25D
b2RlUGxhY2Vob2xkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXhjZXB0
aW9uQ29kZVBsYWNlaG9sZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0
OTc0MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZFNjcmlwdFZhbHVlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3NUU0OTc1MTA3NTJBQ0IwMEM5Qjg5NiAvKiBTZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2VyaWFsaXplZFNjcmlwdFZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTE5NjU2LDYgKzE5NjYwLDggQEAKIAkJCQlBNjIyQThGNTEyMkM0NEE2MDBBNzg1QjMgLyogQmlu
ZGluZ1NlY3VyaXR5LmggKi8sCiAJCQkJQTYyMkE4RjYxMjJDNDRBNjAwQTc4NUIzIC8qIEJpbmRp
bmdTZWN1cml0eUJhc2UuY3BwICovLAogCQkJCUE2MjJBOEY3MTIyQzQ0QTYwMEE3ODVCMyAvKiBC
aW5kaW5nU2VjdXJpdHlCYXNlLmggKi8sCisJCQkJQTc0N0EwN0QxNTZCMjg2OTAwMjQzRUVEIC8q
IENvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwICovLAorCQkJCUE3NDdBMDdFMTU2QjI4NjkwMDI0
M0VFRCAvKiBDb250ZXh0RW5hYmxlZEZlYXR1cmVzLmggKi8sCiAJCQkJQTYyMkE4RjkxMjJDNDRB
NjAwQTc4NUIzIC8qIEdlbmVyaWNCaW5kaW5nLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGdlbmVy
aWM7CkBAIC0yMTkzMiw2ICsyMTkzOCw3IEBACiAJCQkJNDFEMDE1Q0EwRjRCNUM3MTAwNEE2NjJG
IC8qIENvbnRlbnRUeXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzBENkVEQjEzODQ1NDU1MDA0
NDEwM0UgLyogQ29udGVudFR5cGVQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3NjI3QjhF
MTRGQjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTc0N0EwODAxNTZCMjg2OTAwMjQzRUVEIC8qIENvbnRleHRFbmFibGVkRmVh
dHVyZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQjZBMEU2MEIwQkNBNUMwMEY1MDI3QSAvKiBD
b250ZXh0TWVudS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDY1QUQ0RjUwQjBDMkVEQTAwNUEyQjFE
IC8qIENvbnRleHRNZW51Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjVBRDRGNzBCMEMy
RURBMDA1QTJCMUQgLyogQ29udGV4dE1lbnVDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKQEAg
LTI1NDQzLDYgKzI1NDUwLDcgQEAKIAkJCQk0MUQwMTVDQjBGNEI1QzcxMDA0QTY2MkYgLyogQ29u
dGVudFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcwRDZFREExMzg0NTQ1NTAwNDQxMDNF
IC8qIENvbnRlbnRUeXBlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NjI3QjhEMTRG
QjNDRUUwMDJDRENBMSAvKiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlci5jcHAgaW4gU291cmNl
cyAqLywKKwkJCQlBNzQ3QTA3RjE1NkIyODY5MDAyNDNFRUQgLyogQ29udGV4dEVuYWJsZWRGZWF0
dXJlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwNjVBRDRGNjBCMEMyRURBMDA1QTJCMUQgLyog
Q29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA2MDI3Q0IzMEIx
Q0MwM0QwMDg4NEIyRCAvKiBDb250ZXh0TWVudUl0ZW1NYWMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5M0I2QTBFQTBCMEJDQTg0MDBGNTAyN0EgLyogQ29udGV4dE1lbnVNYWMubW0gaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL0Nv
bnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcxNzRjOGU1MTY1YjA2MzAyMGUx
ZDQ5NjhkNmY4ZTFmZDQxOGEzYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nZW5lcmljL0NvbnRleHRFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC0wLDAgKzEsNTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4g
dGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUg
SW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRS
SUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAq
IE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5o
IgorCisjaW5jbHVkZSAiRE9NV2luZG93LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRl
ICJGcmFtZUxvYWRlci5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyNp
ZiBFTkFCTEUoU0hBRE9XX0RPTSkKK2Jvb2wgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93
RE9NRW5hYmxlZChET01XaW5kb3cqIHdpbmRvdykKK3sKKyAgICBpZiAoIXdpbmRvdykKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChGcmFtZSogZnJhbWUgPSB3aW5kb3ctPmZyYW1lKCkp
CisgICAgICAgIHJldHVybiBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5zaGFkb3dET01BbGxv
d2VkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29udGV4dEVuYWJsZWRGZWF0dXJl
cy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9Db250ZXh0RW5hYmxlZEZlYXR1
cmVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWEyMDRlZWNlNDkwNmUzYjNiNjg5NTgxY2ZkYzIyMWFlZjNlOGU4
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvQ29u
dGV4dEVuYWJsZWRGZWF0dXJlcy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIENvbnRleHRFbmFi
bGVkRmVhdHVyZXNfaAorI2RlZmluZSBDb250ZXh0RW5hYmxlZEZlYXR1cmVzX2gKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBET01XaW5kb3c7CisKKy8vIEEgY2xhc3MgdGhhdCBzdG9y
ZXMgc3RhdGljIGVuYWJsZXJzIGZvciBhbGwgZXhwZXJpbWVudGFsIGZlYXR1cmVzLiBOb3RlIHRo
YXQKKy8vIHRoZSBtZXRob2QgbmFtZXMgbXVzdCBsaW5lIHVwIHdpdGggdGhlIEphdmFTY3JpcHQg
bWV0aG9kIHRoZXkgZW5hYmxlIGZvciBjb2RlCisvLyBnZW5lcmF0aW9uIHRvIHdvcmsgcHJvcGVy
bHkuCisKK2NsYXNzIENvbnRleHRFbmFibGVkRmVhdHVyZXMgeworcHVibGljOgorI2lmIEVOQUJM
RShTSEFET1dfRE9NKQorICAgIHN0YXRpYyBib29sIHNoYWRvd0RPTUVuYWJsZWQoRE9NV2luZG93
Kik7CisjZW5kaWYKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIENv
bnRleHRFbmFibGVkRmVhdHVyZXNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBlMTgzMjllMGUyNjJjNGVhYzhlYjUwZTIz
OTAzYWUyODliNzUzYWQyLi5lOGZlNmQ0MjI0ZjczNmI1YzUzZDAzOTlmNWViNjRjMWQ0MjA1YTk1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JWOC5wbQpAQCAtMzQ4LDYgKzM0OCw3IEBAIEVORAogICAgIH0KIAogICAgIG15IEBlbmFibGVk
QXRSdW50aW1lOworICAgIG15IEBlbmFibGVkUGVyQ29udGV4dDsKICAgICBmb3JlYWNoIG15ICRm
dW5jdGlvbiAoQHskZGF0YU5vZGUtPmZ1bmN0aW9uc30pIHsKICAgICAgICAgbXkgJG5hbWUgPSAk
ZnVuY3Rpb24tPnNpZ25hdHVyZS0+bmFtZTsKICAgICAgICAgbXkgJGF0dHJFeHQgPSAkZnVuY3Rp
b24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzOwpAQCAtMzk3LDYgKzM5OCwxMCBAQCBF
TkQKICAgICAgICAgaWYgKCRhdHRyRXh0LT57IlY4RW5hYmxlZEF0UnVudGltZSJ9KSB7CiAgICAg
ICAgICAgICBwdXNoKEBlbmFibGVkQXRSdW50aW1lLCAkYXR0cmlidXRlKTsKICAgICAgICAgfQor
CisgICAgICAgIGlmICgkYXR0ckV4dC0+eyJWOEVuYWJsZWRQZXJDb250ZXh0In0pIHsKKyAgICAg
ICAgICAgIHB1c2goQGVuYWJsZWRQZXJDb250ZXh0LCAkYXR0cmlidXRlKTsKKyAgICAgICAgfQog
ICAgIH0KIAogICAgIEdlbmVyYXRlSGVhZGVyTmFtZWRBbmRJbmRleGVkUHJvcGVydHlBY2Nlc3Nv
cnMoJGRhdGFOb2RlKTsKQEAgLTQxMCw2ICs0MTUsMTIgQEAgRU5ECiBFTkQKICAgICB9CiAKKyAg
ICBpZiAoQGVuYWJsZWRQZXJDb250ZXh0KSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQs
IDw8RU5EKTsKKyAgICBzdGF0aWMgdm9pZCBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiwgJHtpbXBsQ2xhc3NOYW1lfSopOworRU5ECisgICAgfQorCiAg
ICAgbXkgJHdyYXBTbG93QXJndW1lbnRUeXBlID0gR2V0UGFzc1JlZlB0clR5cGUoJG5hdGl2ZVR5
cGUpOwogICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKIHByaXZhdGU6CkBAIC0yMzA5
LDggKzIzMjAsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogCiAgICAgIyAtIEFkZCBk
ZWZhdWx0IGhlYWRlciB0ZW1wbGF0ZQogICAgIHB1c2goQGltcGxGaXhlZEhlYWRlciwgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbkNvbnRlbnRIZWFkZXIoJGRhdGFOb2RlKSk7Ci0gICAgICAgICAKKwog
ICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiKTsKKyAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIik7CiAgICAgQWRkVG9J
bXBsSW5jbHVkZXMoIlY4UHJveHkuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEJpbmRp
bmcuaCIpOwogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJWOEJpbmRpbmdTdGF0ZS5oIik7CkBAIC0y
NDI3LDYgKzI0MzksNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgIG15IEBkaXNh
bGxvd3NTaGFkb3dpbmc7CiAgICAgIyBBbHNvIHNlcGFyYXRlIG91dCBhdHRyaWJ1dGVzIHRoYXQg
YXJlIGVuYWJsZWQgYXQgcnVudGltZSBzbyB3ZSBjYW4gcHJvY2VzcyB0aGVtIHNwZWNpYWxseS4K
ICAgICBteSBAZW5hYmxlZEF0UnVudGltZTsKKyAgICBteSBAZW5hYmxlZFBlckNvbnRleHQ7CiAg
ICAgbXkgQG5vcm1hbDsKICAgICBmb3JlYWNoIG15ICRhdHRyaWJ1dGUgKEAkYXR0cmlidXRlcykg
ewogCkBAIC0yNDM0LDYgKzI0NDcsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAg
ICAgICAgICAgcHVzaChAZGlzYWxsb3dzU2hhZG93aW5nLCAkYXR0cmlidXRlKTsKICAgICAgICAg
fSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhF
bmFibGVkQXRSdW50aW1lIn0pIHsKICAgICAgICAgICAgIHB1c2goQGVuYWJsZWRBdFJ1bnRpbWUs
ICRhdHRyaWJ1dGUpOworICAgICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4
dGVuZGVkQXR0cmlidXRlcy0+eyJWOEVuYWJsZWRQZXJDb250ZXh0In0pIHsKKyAgICAgICAgICAg
IHB1c2goQGVuYWJsZWRQZXJDb250ZXh0LCAkYXR0cmlidXRlKTsKICAgICAgICAgfSBlbHNlIHsK
ICAgICAgICAgICAgIHB1c2goQG5vcm1hbCwgJGF0dHJpYnV0ZSk7CiAgICAgICAgIH0KQEAgLTI4
NDAsNiArMjg1NSwzMiBAQCBib29sICR7Y2xhc3NOYW1lfTo6SGFzSW5zdGFuY2Uodjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHZhbHVlKQogCiBFTkQKIAorICAgIGlmIChAZW5hYmxlZFBlckNvbnRleHQp
IHsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKK3ZvaWQgJHtjbGFzc05hbWV9
OjppbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBpbnN0
YW5jZSwgJHtpbXBsQ2xhc3NOYW1lfSogaW1wbCkKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVj
dD4gcHJvdG8gPSB2ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3Rv
dHlwZSgpKTsKK0VORAorICAgICAgICAjIFNldHVwIHRoZSBlbmFibGUtYnktc2V0dGluZ3MgYXR0
cnMgaWYgd2UgaGF2ZSB0aGVtCisgICAgICAgIGZvcmVhY2ggbXkgJHJ1bnRpbWVBdHRyIChAZW5h
YmxlZFBlckNvbnRleHQpIHsKKyAgICAgICAgICAgIG15ICRlbmFibGVGdW5jdGlvbiA9IEdldENv
bnRleHRFbmFibGVGdW5jdGlvbigkcnVudGltZUF0dHItPnNpZ25hdHVyZSk7CisgICAgICAgICAg
ICBteSAkY29uZGl0aW9uYWxTdHJpbmcgPSAkY29kZUdlbmVyYXRvci0+R2VuZXJhdGVDb25kaXRp
b25hbFN0cmluZygkcnVudGltZUF0dHItPnNpZ25hdHVyZSk7CisgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIlxuI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoQ29udGV4
dEVuYWJsZWRGZWF0dXJlczo6JHtlbmFibGVGdW5jdGlvbn0oaW1wbCkpIHtcbiIpOworICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHN0YXRpYyBjb25zdCBCYXRjaGVkQXR0
cmlidXRlIGF0dHJEYXRhID1cXFxuIik7CisgICAgICAgICAgICBHZW5lcmF0ZVNpbmdsZUJhdGNo
ZWRBdHRyaWJ1dGUoJGludGVyZmFjZU5hbWUsICRydW50aW1lQXR0ciwgIjsiLCAiICAgICIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKKyAgICAgICAgY29uZmlndXJl
QXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRhdGEpOworRU5ECisgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKKyAgICAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiI2VuZGlmIC8vICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxT
dHJpbmc7CisgICAgICAgIH0KKworICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwor
fQorRU5ECisgICAgfQorCiAgICAgaWYgKCRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkFjdGl2ZURPTU9iamVjdCJ9KSB7CiAgICAgICAgICMgTWVzc2FnZVBvcnQgaXMgaGFuZGxlZCBs
aWtlIGFuIGFjdGl2ZSBkb20gb2JqZWN0IGV2ZW4gdGhvdWdoIGl0IGRvZXNuJ3QgaW5oZXJpdAog
ICAgICAgICAjIGZyb20gQWN0aXZlRE9NT2JqZWN0LCBzbyBkb24ndCB0cnkgdG8gY2FzdCBpdCB0
byBBY3RpdmVET01PYmplY3QuCkBAIC0zOTUzLDYgKzM5OTQsMjAgQEAgc3ViIEdldFJ1bnRpbWVF
bmFibGVGdW5jdGlvbk5hbWUKICAgICByZXR1cm4gIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OiIg
LiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkc2lnbmF0dXJlLT5uYW1lKSAuICJFbmFibGVk
IjsKIH0KIAorc3ViIEdldENvbnRleHRFbmFibGVGdW5jdGlvbgoreworICAgIG15ICRzaWduYXR1
cmUgPSBzaGlmdDsKKworICAgICMgSWYgYSBwYXJhbWV0ZXIgaXMgZ2l2ZW4gKGUuZy4gIlY4RW5h
YmxlZFBlckNvbnRleHQ9RmVhdHVyZU5hbWUiKSByZXR1cm4gdGhlIHtGZWF0dXJlTmFtZX1BbGxv
d2VkKCkgbWV0aG9kLgorICAgIGlmICgkc2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
VjhFbmFibGVkUGVyQ29udGV4dCJ9ICYmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+
eyJWOEVuYWJsZWRQZXJDb250ZXh0In0gbmUgIlZBTFVFX0lTX01JU1NJTkciKSB7CisgICAgICAg
IHJldHVybiAkY29kZUdlbmVyYXRvci0+V0tfbGNmaXJzdCgkc2lnbmF0dXJlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPnsiVjhFbmFibGVkUGVyQ29udGV4dCJ9KSAuICJFbmFibGVkIjsKKyAgICB9CisK
KyAgICAjIE9yIGl0IGZhbGxiYWNrcyB0byB0aGUgYXR0cmlidXRlIG5hbWUgaWYgdGhlIHBhcmFt
ZXRlciB2YWx1ZSBpcyBtaXNzaW5nLgorICAgIG15ICRhdHRyaWJ1dGVOYW1lID0gJHNpZ25hdHVy
ZS0+bmFtZTsKKyAgICByZXR1cm4gJGNvZGVHZW5lcmF0b3ItPldLX2xjZmlyc3QoJGF0dHJpYnV0
ZU5hbWUpIC4gIkVuYWJsZWQiOworfQorCiBzdWIgR2V0UGFzc1JlZlB0clR5cGUKIHsKICAgICBt
eSAkY2xhc3NOYW1lID0gc2hpZnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9JRExBdHRyaWJ1dGVzLnR4dAppbmRleCBhNDY3YmZlZTU0ZDVhNTU4MzNjMzA5MDcxOWVh
MjhlMzZmNGRlNDVkLi44NDg5NDkzMjdiODAyM2JkMGYxZGJmM2I5MDNiZWIwMjdjOWM1MTFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMu
dHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50
eHQKQEAgLTExMSw1ICsxMTEsNiBAQCBWOEN1c3RvbVRvSlNPYmplY3QKIFY4RGVwZW5kZW50TGlm
ZXRpbWUKIFY4RG9Ob3RDaGVja1NpZ25hdHVyZQogVjhFbmFibGVkQXRSdW50aW1lPSoKK1Y4RW5h
YmxlZFBlckNvbnRleHQ9KgogVjhSZWFkT25seQogVjhVbmZvcmdlYWJsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCmluZGV4IDQ4OGM5OWFi
OGQxOWRlNWQ1M2Q1MGVmMzRjNTFlM2FhOTUwNjcwODguLjA4Yjk4NTYyZjFkNzViMDA2ZDY2NjM0
Y2I5YWFkZTNmMThjODY3MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9UZXN0T2JqLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwKQEAgLTIwMyw2ICsyMDMsOSBAQCBtb2R1bGUgdGVzdCB7CiAg
ICAgICAgIFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWVdIHZvaWQgZW5hYmxlZEF0UnVu
dGltZU1ldGhvZDIoaW4gaW50IGludEFyZyk7CiAgICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
QXRSdW50aW1lXSBsb25nIGVuYWJsZWRBdFJ1bnRpbWVBdHRyMTsKICAgICAgICAgYXR0cmlidXRl
IFtWOEVuYWJsZWRBdFJ1bnRpbWU9RmVhdHVyZU5hbWVdIGxvbmcgZW5hYmxlZEF0UnVudGltZUF0
dHIyOworICAgICAgICAvLyBWOEVuYWJsZWRQZXJDb250ZXh0IGN1cnJlbnRseSBvbmx5IHN1cHBv
cnRzIGF0dHJpYnV0ZXMuCisgICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVkUGVyQ29udGV4dF0g
bG9uZyBlbmFibGVkQXRDb250ZXh0QXR0cjE7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhFbmFibGVk
UGVyQ29udGV4dD1GZWF0dXJlTmFtZV0gbG9uZyBlbmFibGVkQXRDb250ZXh0QXR0cjI7CiAjZW5k
aWYKIAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RPYmouY3BwCmluZGV4IGI3NDk2NzMyMzQ5YWRhYTljYWVmZjY4YjE3NTJjNjQxY2Vl
ODRlNWUuLjEyMzM4MDRkODc2NmI3MDgxNGQ2ZDUwZDg4MmVlZjU1ODg0ZDRiZTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCkBAIC0xMDc0LDYgKzEwNzQsMzggQEAgc3RhdGljIHZvaWQgZW5hYmxlZEF0UnVudGltZUF0
dHIyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2EKICAgICBy
ZXR1cm47CiB9CiAKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxlZEF0Q29udGV4
dEF0dHIxQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFj
Y2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLmVuYWJsZWRB
dENvbnRleHRBdHRyMS5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5ldyhpbXAtPmVu
YWJsZWRBdENvbnRleHRBdHRyMSgpKTsKK30KKworc3RhdGljIHZvaWQgZW5hYmxlZEF0Q29udGV4
dEF0dHIxQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4
OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7CisgICAgSU5D
X1NUQVRTKCJET00uVGVzdE9iai5lbmFibGVkQXRDb250ZXh0QXR0cjEuX3NldCIpOworICAgIFRl
c3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CisgICAgaW50
IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldEVuYWJsZWRBdENvbnRleHRBdHRyMSh2
KTsKKyAgICByZXR1cm47Cit9CisKK3N0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gZW5hYmxl
ZEF0Q29udGV4dEF0dHIyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29u
c3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKK3sKKyAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2Jq
LmVuYWJsZWRBdENvbnRleHRBdHRyMi5fZ2V0Iik7CisgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0
T2JqOjp0b05hdGl2ZShpbmZvLkhvbGRlcigpKTsKKyAgICByZXR1cm4gdjg6OkludGVnZXI6Ok5l
dyhpbXAtPmVuYWJsZWRBdENvbnRleHRBdHRyMigpKTsKK30KKworc3RhdGljIHZvaWQgZW5hYmxl
ZEF0Q29udGV4dEF0dHIyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCit7
CisgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5lbmFibGVkQXRDb250ZXh0QXR0cjIuX3NldCIp
OworICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7
CisgICAgaW50IHYgPSB0b0ludDMyKHZhbHVlKTsKKyAgICBpbXAtPnNldEVuYWJsZWRBdENvbnRl
eHRBdHRyMih2KTsKKyAgICByZXR1cm47Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gZmxvYXRBcnJheUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0
IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5m
bG9hdEFycmF5Ll9nZXQiKTsKQEAgLTIzODgsNiArMjQyMCwyMiBAQCBib29sIFY4VGVzdE9iajo6
SGFzSW5zdGFuY2Uodjg6OkhhbmRsZTx2ODo6VmFsdWU+IHZhbHVlKQogICAgIHJldHVybiBHZXRS
YXdUZW1wbGF0ZSgpLT5IYXNJbnN0YW5jZSh2YWx1ZSk7CiB9CiAKK3ZvaWQgVjhUZXN0T2JqOjpp
bnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBpbnN0YW5j
ZSwgVGVzdE9iaiogaW1wbCkKK3sKKyAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gcHJvdG8gPSB2
ODo6TG9jYWw8djg6Ok9iamVjdD46OkNhc3QoaW5zdGFuY2UtPkdldFByb3RvdHlwZSgpKTsKKyAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6ZW5hYmxlZEF0Q29udGV4dEF0dHIxQWxsb3dl
ZChpbXBsKSkgeworICAgICAgICBzdGF0aWMgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSBhdHRyRGF0
YSA9XAorICAgICAgICAvLyBBdHRyaWJ1dGUgJ2VuYWJsZWRBdENvbnRleHRBdHRyMScgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdWOEVuYWJsZWRQZXJDb250ZXh0JykKKyAgICAgICAgeyJl
bmFibGVkQXRDb250ZXh0QXR0cjEiLCBUZXN0T2JqVjhJbnRlcm5hbDo6ZW5hYmxlZEF0Q29udGV4
dEF0dHIxQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRy
MUF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRy
b2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6
Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99OworICAgICAgICBjb25maWd1cmVBdHRyaWJ1dGUo
aW5zdGFuY2UsIHByb3RvLCBhdHRyRGF0YSk7CisgICAgfQorICAgIGlmIChSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpmZWF0dXJlTmFtZUFsbG93ZWQoaW1wbCkpIHsKKyAgICAgICAgc3RhdGljIGNv
bnN0IEJhdGNoZWRBdHRyaWJ1dGUgYXR0ckRhdGEgPVwKKyAgICAgICAgLy8gQXR0cmlidXRlICdl
bmFibGVkQXRDb250ZXh0QXR0cjInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnVjhFbmFi
bGVkUGVyQ29udGV4dCcpCisgICAgICAgIHsiZW5hYmxlZEF0Q29udGV4dEF0dHIyIiwgVGVzdE9i
alY4SW50ZXJuYWw6OmVuYWJsZWRBdENvbnRleHRBdHRyMkF0dHJHZXR0ZXIsIFRlc3RPYmpWOElu
dGVybmFsOjplbmFibGVkQXRDb250ZXh0QXR0cjJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfTsK
KyAgICAgICAgY29uZmlndXJlQXR0cmlidXRlKGluc3RhbmNlLCBwcm90bywgYXR0ckRhdGEpOwor
ICAgIH0KK30KIAogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RPYmo6OndyYXBTbG93KFBh
c3NSZWZQdHI8VGVzdE9iaj4gaW1wbCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmgKaW5k
ZXggNzhmNzE4ZDU1Y2U1NDY3NWI1NWIwMjM4ZDZkODNjNWVhZjZjMDM3Ni4uZTFiYjgxM2I1YWE3
MGU5MjM3MmViNTcwMDcwMDc1MjRkZDhhYWM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaApAQCAtNTAsNiArNTAsNyBAQCBw
dWJsaWM6CiAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjdXN0b21BdHRyQWNjZXNz
b3JHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nvcklu
Zm8mKTsKICAgICBzdGF0aWMgdm9pZCBjdXN0b21BdHRyQWNjZXNzb3JTZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+LCBjb25zdCB2ODo6QWNjZXNz
b3JJbmZvJik7CiAgICAgc3RhdGljIGNvbnN0IGludCBpbnRlcm5hbEZpZWxkQ291bnQgPSB2OERl
ZmF1bHRXcmFwcGVySW50ZXJuYWxGaWVsZENvdW50ICsgMDsKKyAgICBzdGF0aWMgdm9pZCBpbnN0
YWxsUGVyQ29udGV4dFByb3BlcnRpZXModjg6OkhhbmRsZTx2ODo6T2JqZWN0PiwgVGVzdE9iaiop
OwogcHJpdmF0ZToKICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwU2xvdyhQ
YXNzUmVmUHRyPFRlc3RPYmo+LCB2ODo6SXNvbGF0ZSopOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggOTBkYzBmODBkZTFjOTYz
ZWU4MWIyYzMwMzNjOTc4NmY3MjFhOGRiZS4uMWY5OGZkNTA4ZWZmZDJkZWRlYWViYzcyYjQzYTk5
MzJiNzkxZjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
aW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5k
b3dTaGVsbC5jcHAKQEAgLTQwOCwxMCArNDA4LDExIEBAIGJvb2wgVjhET01XaW5kb3dTaGVsbDo6
aW5zdGFsbERPTVdpbmRvdyh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0LCBET01XaW5k
CiAgICAgaWYgKGpzV2luZG93LklzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisg
ICAgVjhET01XaW5kb3c6Omluc3RhbGxQZXJDb250ZXh0UHJvcGVydGllcyhqc1dpbmRvdywgd2lu
ZG93KTsKKwogICAgIC8vIFdyYXAgdGhlIHdpbmRvdy4KICAgICBWOERPTVdyYXBwZXI6OnNldERP
TVdyYXBwZXIoanNXaW5kb3csICZWOERPTVdpbmRvdzo6aW5mbywgd2luZG93KTsKICAgICBWOERP
TVdyYXBwZXI6OnNldERPTVdyYXBwZXIodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChqc1dp
bmRvdy0+R2V0UHJvdG90eXBlKCkpLCAmVjhET01XaW5kb3c6OmluZm8sIHdpbmRvdyk7Ci0KICAg
ICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU9iamVjdChQYXNzUmVmUHRyPERPTVdp
bmRvdz4od2luZG93KSwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD46Ok5ldyhqc1dpbmRvdykp
OwogCiAgICAgLy8gSW5zZXJ0IHRoZSB3aW5kb3cgaW5zdGFuY2UgYXMgdGhlIHByb3RvdHlwZSBv
ZiB0aGUgc2hhZG93IG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAppbmRl
eCBlMDVlMzc2MzdjODRiYmIyMzI2YjZjNDEwMGU2MDRmZDEwNmUwODA2Li5mNmI3YWU5MzVkNjZm
NjU5ZjlkM2U4OWU4NDAyOWEyNWRmNzc2NmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQ
cm94eS5oCkBAIC04NSw3ICs4NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIHZvaWQg
YmF0Y2hDb25maWd1cmVBdHRyaWJ1dGVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdFRlbXBsYXRlPiwg
djg6OkhhbmRsZTx2ODo6T2JqZWN0VGVtcGxhdGU+LCBjb25zdCBCYXRjaGVkQXR0cmlidXRlKiwg
c2l6ZV90IGF0dHJpYnV0ZUNvdW50KTsKIAotICAgIGlubGluZSB2b2lkIGNvbmZpZ3VyZUF0dHJp
YnV0ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3RUZW1wbGF0ZT4gaW5zdGFuY2UsIHY4OjpIYW5kbGU8
djg6Ok9iamVjdFRlbXBsYXRlPiBwcm90bywgY29uc3QgQmF0Y2hlZEF0dHJpYnV0ZSYgYXR0cmli
dXRlKQorICAgIHRlbXBsYXRlPGNsYXNzIE9iamVjdE9yVGVtcGxhdGU+CisgICAgaW5saW5lIHZv
aWQgY29uZmlndXJlQXR0cmlidXRlKHY4OjpIYW5kbGU8T2JqZWN0T3JUZW1wbGF0ZT4gaW5zdGFu
Y2UsIHY4OjpIYW5kbGU8T2JqZWN0T3JUZW1wbGF0ZT4gcHJvdG8sIGNvbnN0IEJhdGNoZWRBdHRy
aWJ1dGUmIGF0dHJpYnV0ZSkKICAgICB7CiAgICAgICAgIChhdHRyaWJ1dGUub25Qcm90byA/IHBy
b3RvIDogaW5zdGFuY2UpLT5TZXRBY2Nlc3Nvcih2ODo6U3RyaW5nOjpOZXcoYXR0cmlidXRlLm5h
bWUpLAogICAgICAgICAgICAgYXR0cmlidXRlLmdldHRlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUG9zaXRpb24uY3Bw
CmluZGV4IDA4ZGVhNzNiNmYxZTllYThkY2E4MzdjZjAyNTUzMzc2MjQxOGVjZDYuLmEwNmZmZDQ1
ZjM5ZjIwMzMyMzY3M2JiMmNkMWMzN2NjOTk0MGYzOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Qb3NpdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNw
cApAQCAtMjcsMTMgKzI3LDEzIEBACiAjaW5jbHVkZSAiUG9zaXRpb24uaCIKIAogI2luY2x1ZGUg
IkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5oIgorI2luY2x1ZGUgIkNvbnRleHRFbmFibGVk
RmVhdHVyZXMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0
Qm94LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uSXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJSZW5kZXJCbG9jay5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKLSNp
bmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgpAQCAt
ODIsNyArODIsOCBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBhbmNob3JO
b2RlLCBMZWdhY3lFZGl0aW5nT2Zmc2V0IG9mZnNldCkKICAgICAsIG1faXNMZWdhY3lFZGl0aW5n
UG9zaXRpb24odHJ1ZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpIHx8ICFtX2FuY2hvck5vZGUg
fHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgobV9hbmNob3JO
b2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JO
b2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgICAgICAgIHx8ICFtX2FuY2hvck5v
ZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQo
IW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYK
QEAgLTk1LDcgKzk2LDggQEAgUG9zaXRpb246OlBvc2l0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYW5j
aG9yTm9kZSwgQW5jaG9yVHlwZSBhbmNob3JUeXBlKQogICAgICwgbV9pc0xlZ2FjeUVkaXRpbmdQ
b3NpdGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICBBU1NFUlQoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZCgpIHx8ICFtX2FuY2hvck5vZGUg
fHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOworICAgIEFTU0VSVCgobV9hbmNob3JO
b2RlICYmIENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobV9hbmNob3JO
b2RlLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpCisgICAgICAgICAgIHx8ICFtX2FuY2hvck5v
ZGUgfHwgIW1fYW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQo
IW1fYW5jaG9yTm9kZSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CiAjZW5kaWYK
QEAgLTExMiw3ICsxMTQsOCBAQCBQb3NpdGlvbjo6UG9zaXRpb24oUGFzc1JlZlB0cjxOb2RlPiBh
bmNob3JOb2RlLCBpbnQgb2Zmc2V0LCBBbmNob3JUeXBlIGFuY2hvclR5cAogICAgICwgbV9pc0xl
Z2FjeUVkaXRpbmdQb3NpdGlvbihmYWxzZSkKIHsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAg
ICAgQVNTRVJUKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSB8fCAh
bV9hbmNob3JOb2RlIHx8ICFlZGl0aW5nSWdub3Jlc0NvbnRlbnQobV9hbmNob3JOb2RlLmdldCgp
KSB8fCAhbV9hbmNob3JOb2RlLT5pc1NoYWRvd1Jvb3QoKSk7CisgICAgQVNTRVJUKChtX2FuY2hv
ck5vZGUgJiYgQ29udGV4dEVuYWJsZWRGZWF0dXJlczo6c2hhZG93RE9NRW5hYmxlZChtX2FuY2hv
ck5vZGUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSkKKyAgICAgICAgICAgfHwgIW1fYW5jaG9y
Tm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1f
YW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2Vsc2UKICAgICBBU1NFUlQoIW1fYW5jaG9y
Tm9kZSB8fCAhZWRpdGluZ0lnbm9yZXNDb250ZW50KG1fYW5jaG9yTm9kZS5nZXQoKSkgfHwgIW1f
YW5jaG9yTm9kZS0+aXNTaGFkb3dSb290KCkpOwogI2VuZGlmCkBAIC04NTQsNyArODU3LDcgQEAg
Q29udGFpbmVyTm9kZSogUG9zaXRpb246OmZpbmRQYXJlbnQoY29uc3QgTm9kZSogbm9kZSkKICAg
ICAvLyBGSVhNRTogU2VlIGh0dHA6Ly93ZWIudWcvODI2OTcKIAogI2lmIEVOQUJMRShTSEFET1df
RE9NKQotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKCkp
CisgICAgaWYgKENvbnRleHRFbmFibGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQobm9kZS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKQogICAgICAgICByZXR1cm4gbm9kZS0+cGFyZW50Tm9k
ZSgpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmlkbAppbmRleCBhOTMzMzNiYzEw
ZDE2ZDRmNjQyMjFmM2ZhZmE1N2E0ZTg3YTIwZTA2Li44MTEwYzFlMDhhNzQzZDczZWMxMzQ1MmNh
NmE0ZGI2YTM3NDc0MWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaWRsCkBAIC0yOCw3ICsy
OCw2IEBAIG1vZHVsZSBjb3JlIHsKIAogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENvbmRpdGlv
bmFsPVNIQURPV19ET00sCi0gICAgICAgIFY4RW5hYmxlZEF0UnVudGltZT1zaGFkb3dET00sCiAg
ICAgICAgIENvbnN0cnVjdG9yKGluIEVsZW1lbnQgaG9zdCksCiAgICAgICAgIENvbnN0cnVjdG9y
UmFpc2VzRXhjZXB0aW9uCiAgICAgXSBTaGFkb3dSb290IDogRG9jdW1lbnRGcmFnbWVudCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vVHJlZVNjb3BlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9UcmVlU2NvcGUuY3BwCmluZGV4IDllODQ3ODk5YmE5YjBkNTcyOWQ2ZjYyYTI1Mzc5
NjZmMTM4NjQyMjkuLjJmNmY4YmQ5ZWEwYTg4N2M5ODVhMGVjZTdmMWE0OTQ3NzQ5MGQxNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9UcmVlU2NvcGUuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiVHJl
ZVNjb3BlLmgiCiAKICNpbmNsdWRlICJDb250YWluZXJOb2RlLmgiCisjaW5jbHVkZSAiQ29udGV4
dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkRPTVNlbGVjdGlvbi5oIgogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0zOCw3ICszOSw2IEBACiAj
aW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNs
dWRlICJQYWdlLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1
ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJUcmVlU2NvcGVBZG9wdGVyLmgiCiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CkBAIC0xNDksNyArMTQ5LDcgQEAgRE9NU2VsZWN0
aW9uKiBUcmVlU2NvcGU6OmdldFNlbGVjdGlvbigpIGNvbnN0CiAgICAgLy8gYXMgYSBjb250YWlu
ZXIuIEl0IGlzIG5vdyBlbmFibGVkIG9ubHkgaWYgcnVudGltZSBTaGFkb3cgRE9NIGZlYXR1cmUg
aXMgZW5hYmxlZC4KICAgICAvLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTgyNjk3CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYWRvd0RPTUVuYWJsZWQoKSkgeworICAgIGlmIChDb250ZXh0RW5hYmxl
ZEZlYXR1cmVzOjpzaGFkb3dET01FbmFibGVkKHJvb3ROb2RlKCktPmRvY3VtZW50KCktPmRvbVdp
bmRvdygpKSkgewogICAgICAgICBtX3NlbGVjdGlvbiA9IERPTVNlbGVjdGlvbjo6Y3JlYXRlKHRo
aXMpOwogICAgICAgICByZXR1cm4gbV9zZWxlY3Rpb24uZ2V0KCk7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggYTRk
Y2VlZWQwZGZiYjBhMTZjNmM0ZGQ1YzRkMjk4YjBjNjQ3MmQ2MC4uYzc3MDZjYzE2Zjg2ODIzZTMx
MzJlMTc3ZmQxMTRhYjhhZTU2MGM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC0yOSwxMCArMjksMTAgQEAKIAogI2luY2x1
ZGUgIkNvbnRlbnREaXN0cmlidXRvci5oIgogI2luY2x1ZGUgIkNvbnRlbnRTZWxlY3RvclF1ZXJ5
LmgiCisjaW5jbHVkZSAiQ29udGV4dEVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIkVsZW1l
bnRTaGFkb3cuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJRdWFsaWZpZWRO
YW1lLmgiCi0jaW5jbHVkZSAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNo
YWRvd1Jvb3QuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKQEAgLTQwLDIwICs0
MCwyMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHVzaW5nIEhUTUxOYW1lczo6c2VsZWN0QXR0
cjsKIAotc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGNvbnRlbnRUYWdOYW1lKCkKK3N0YXRp
YyBjb25zdCBRdWFsaWZpZWROYW1lJiBjb250ZW50VGFnTmFtZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFkb3dET01FbmFibGVkKCkpCisgICAgaWYgKCFDb250ZXh0RW5hYmxlZEZlYXR1cmVz
OjpzaGFkb3dET01FbmFibGVkKGRvY3VtZW50LT5kb21XaW5kb3coKSkpCiAgICAgICAgIHJldHVy
biBIVE1MTmFtZXM6OndlYmtpdFNoYWRvd0NvbnRlbnRUYWc7CiAgICAgcmV0dXJuIEhUTUxOYW1l
czo6Y29udGVudFRhZzsKICNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGRvY3VtZW50KTsKICAgICBy
ZXR1cm4gSFRNTE5hbWVzOjp3ZWJraXRTaGFkb3dDb250ZW50VGFnOwogI2VuZGlmCiB9CiAKIFBh
c3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ29udGVu
dEVsZW1lbnQoY29udGVudFRhZ05hbWUoKSwgZG9jdW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IEhUTUxDb250ZW50RWxlbWVudChjb250ZW50VGFnTmFtZShkb2N1bWVudCksIGRvY3Vt
ZW50KSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbnRlbnRFbGVtZW50PiBIVE1MQ29udGVudEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGIx
NWNlMDA4MmY4NGFhMzQyM2ZjZjAwMjU0ODZhOTdhYmIxNTdjMGYuLjdjOWY4NTNiZDBmZGViMjA5
ZGVmY2ZmNTI3OWUyNDRmYjBkNzJkZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0zMTAsNyArMzEwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIGJvb2wgYWxsb3dJbWFnZShib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgY29u
c3QgS1VSTCYpIHsgcmV0dXJuIGVuYWJsZWRQZXJTZXR0aW5nczsgfQogICAgICAgICB2aXJ0dWFs
IGJvb2wgYWxsb3dEaXNwbGF5aW5nSW5zZWN1cmVDb250ZW50KGJvb2wgZW5hYmxlZFBlclNldHRp
bmdzLCBTZWN1cml0eU9yaWdpbiosIGNvbnN0IEtVUkwmKSB7IHJldHVybiBlbmFibGVkUGVyU2V0
dGluZ3M7IH0KICAgICAgICAgdmlydHVhbCBib29sIGFsbG93UnVubmluZ0luc2VjdXJlQ29udGVu
dChib29sIGVuYWJsZWRQZXJTZXR0aW5ncywgU2VjdXJpdHlPcmlnaW4qLCBjb25zdCBLVVJMJikg
eyByZXR1cm4gZW5hYmxlZFBlclNldHRpbmdzOyB9Ci0gICAgICAgIAorCisgICAgICAgIHZpcnR1
YWwgYm9vbCBzaGFkb3dET01BbGxvd2VkKGJvb2wgZW5hYmxlZEFzUnVudGltZUZlYXR1cmVzKSB7
IHJldHVybiBlbmFibGVkQXNSdW50aW1lRmVhdHVyZXM7IH0KKwogICAgICAgICAvLyBUaGlzIGNh
bGxiYWNrIG5vdGlmaWVzIHRoZSBjbGllbnQgdGhhdCB0aGUgZnJhbWUgd2FzIGFib3V0IHRvIHJ1
bgogICAgICAgICAvLyBKYXZhU2NyaXB0IGJ1dCBkaWQgbm90IGJlY2F1c2UgYWxsb3dTY3JpcHQg
cmV0dXJuZWQgZmFsc2UuIFdlCiAgICAgICAgIC8vIGhhdmUgYSBzZXBhcmF0ZSBjYWxsYmFjayBo
ZXJlIGJlY2F1c2UgdGhlcmUgYXJlIGEgbnVtYmVyIG9mIHBsYWNlcwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCmluZGV4IDQwZTBiMmFmZjFiMGRmZjEzYzYwYjUwNjY1ODQ0ODA3ZmJkMGNmNTAu
LmJhMTVjZjdlZmYwMDdiMGE1YmEwMjI5NTllY2IxMGEzNWFkNmIyZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAKQEAgLTc4LDYgKzc4LDcgQEAKICNpbmNsdWRlICJQYWdlVHJhbnNpdGlv
bkV2ZW50LmgiCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgorI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJT
Y2hlZHVsZWRBY3Rpb24uaCIKICNpbmNsdWRlICJTY3JlZW4uaCIKICNpbmNsdWRlICJTY3JpcHRD
YWxsU3RhY2suaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmlkbAppbmRleCA5YTUxMmQwNzY2NWEx
YTgxYzQ1OTE3YjlmODA1YTYwYmQxODliZGMwLi41OTdkMDdkOTQxYTdhZTE1MGEyYzE1OGI0NThh
MzVlMzJhMWVhZGZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCkBAIC0zODcsNyArMzg3
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIGF0dHJpYnV0ZSBFbnRpdHlDb25zdHJ1Y3Rv
ciBFbnRpdHk7CiAgICAgICAgIGF0dHJpYnV0ZSBFbnRpdHlSZWZlcmVuY2VDb25zdHJ1Y3RvciBF
bnRpdHlSZWZlcmVuY2U7CiAgICAgICAgIGF0dHJpYnV0ZSBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb25D
b25zdHJ1Y3RvciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb247Ci0gICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9U0hBRE9XX0RPTSwgVjhFbmFibGVkQXRSdW50aW1lPXNoYWRvd0RPTV0gU2hhZG93
Um9vdENvbnN0cnVjdG9yIFdlYktpdFNoYWRvd1Jvb3Q7CisgICAgICAgIGF0dHJpYnV0ZSBbQ29u
ZGl0aW9uYWw9U0hBRE9XX0RPTSwgVjhFbmFibGVkUGVyQ29udGV4dD1zaGFkb3dET01dIFNoYWRv
d1Jvb3RDb25zdHJ1Y3RvciBXZWJLaXRTaGFkb3dSb290OwogCiAgICAgICAgIGF0dHJpYnV0ZSBE
T01TZWxlY3Rpb25Db25zdHJ1Y3RvciBTZWxlY3Rpb247CiAgICAgICAgIGF0dHJpYnV0ZSBET01X
aW5kb3dDb25zdHJ1Y3RvciBXaW5kb3c7Cg==
</data>
<flag name="commit-queue"
          id="149675"
          type_id="3"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>