<?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>96837</bug_id>
          
          <creation_ts>2012-09-14 15:53:58 -0700</creation_ts>
          <short_desc>We should make collecting metrics easier by adding an IDL attribute</short_desc>
          <delta_ts>2012-09-17 11:53:18 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>mjs</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>721215</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 15:53:58 -0700</bug_when>
    <thetext>We should make collecting metrics easier by adding an IDL attribute</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721217</commentid>
    <comment_count>1</comment_count>
      <attachid>164243</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 15:57:44 -0700</bug_when>
    <thetext>Created attachment 164243
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721218</commentid>
    <comment_count>2</comment_count>
      <attachid>164244</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 15:58:28 -0700</bug_when>
    <thetext>Created attachment 164244
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721219</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-09-14 15:59:42 -0700</bug_when>
    <thetext>I support this product and/or service.  Want to buy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721250</commentid>
    <comment_count>4</comment_count>
      <attachid>164249</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 16:49:54 -0700</bug_when>
    <thetext>Created attachment 164249
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721255</commentid>
    <comment_count>5</comment_count>
      <attachid>164249</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-14 17:00:53 -0700</bug_when>
    <thetext>Comment on attachment 164249
Patch

Non-bindings bits LGTM. Probably someone more familiar with V8 bindings should review that part though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721265</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-14 17:08:33 -0700</bug_when>
    <thetext>Maybe japhet or dglazkov?  I believe haraken in on vacation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721426</commentid>
    <comment_count>7</comment_count>
      <attachid>164249</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-15 05:48:03 -0700</bug_when>
    <thetext>Comment on attachment 164249
Patch

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

The V8 binding LGTM. Do you have any plan to support [MeasureAs] in JSC?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1828
&gt; +END
&gt; +    push(@implContent, GenerateFeatureObservation($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;MeasureAs&quot;}));
&gt; +
&gt; +    push(@implContent, &lt;&lt;END);

Nit: For readability, shall we avoid the END? You can store the result of GenerateFeatureObservation() to some variable before line 1822 and use the variable here.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:2023
&gt; +END
&gt; +    push(@implContent, GenerateFeatureObservation($function-&gt;signature-&gt;extendedAttributes-&gt;{&quot;MeasureAs&quot;}));
&gt; +
&gt; +    push(@implContent, &lt;&lt;END);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721445</commentid>
    <comment_count>8</comment_count>
      <attachid>164249</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-15 08:23:22 -0700</bug_when>
    <thetext>Comment on attachment 164249
Patch

Bikeshed: MeasureAs is a confusing term to me. MeasureUsage maybe?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721446</commentid>
    <comment_count>9</comment_count>
      <attachid>164249</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-09-15 08:24:03 -0700</bug_when>
    <thetext>Comment on attachment 164249
Patch

Oh, never mind. I see now that it takes a name to measure as. Carry on. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721470</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-15 11:41:21 -0700</bug_when>
    <thetext>&gt; The V8 binding LGTM. Do you have any plan to support [MeasureAs] in JSC?

Currently Chromium is the only port that has a backend for Histograms.  It doesn&apos;t seem worth supporting in JSC since it will just be overhead at this point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721493</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-15 15:15:36 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; The V8 binding LGTM. Do you have any plan to support [MeasureAs] in JSC?
&gt; 
&gt; Currently Chromium is the only port that has a backend for Histograms.  It doesn&apos;t seem worth supporting in JSC since it will just be overhead at this point.

Got it. Then [V8MeasureAs] might be a better name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722091</commentid>
    <comment_count>12</comment_count>
      <attachid>164422</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 11:22:34 -0700</bug_when>
    <thetext>Created attachment 164422
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722103</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-17 11:28:10 -0700</bug_when>
    <thetext>Comments addressed!  Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722125</commentid>
    <comment_count>14</comment_count>
      <attachid>164422</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 11:53:14 -0700</bug_when>
    <thetext>Comment on attachment 164422
Patch for landing

Clearing flags on attachment: 164422

Committed r128788: &lt;http://trac.webkit.org/changeset/128788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722127</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 11:53:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164243</attachid>
            <date>2012-09-14 15:57:44 -0700</date>
            <delta_ts>2012-09-14 15:58:25 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-96837-20120914155715.patch</filename>
            <type>text/plain</type>
            <size>19341</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNjhjNjk5OGZhZjRm
MTBkNDMyNjM4Y2U1ZTRjNWEwYTk5ZjAzNC4uNTE4MjU0Njk2N2E3OWI2ZGNlNGI4MjQ3NDc5OGNl
NmVmNDFkMzQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTE0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2Ugc2hvdWxkIG1ha2UgY29s
bGVjdGluZyBtZXRyaWNzIGVhc2llciBieSBhZGRpbmcgYW4gSURMIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4MzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQgaXMg
dG9vIGhhcmQgdG8gc2V0IHVwIGEgZ29vZCBtZWFzdXJlbWVudCBleHBlcmltZW50IHRvIHNlZQor
ICAgICAgICB3aGV0aGVyIHdlIGNhbiBzYWZlbHkgcmVtb3ZlIGEgZmVhdHVyZSAoaW5jbHVkaW5n
IHZlbmRvci1wcmVmaXhlZAorICAgICAgICBmZWF0dXJlcykuIFRoaXMgcGF0Y2ggaW50cm9kdWNl
cyB0aGUgW01lYXN1cmVBc10gSURMIGF0dHJpYnV0ZSB0byBtYWtlCisgICAgICAgIHRoYXQgcHJv
Y2VzcyBlYXNpZXIuCisKKyAgICAgICAgV2hlbiB5b3UgYWRkIHRoZSBbTWVhc3VyZUFzXSBJREwg
cHJvcGVydHkgdG8gYW4gQVBJLCB3ZSdsbCBjb3VudCB3aGF0CisgICAgICAgIGZyYWN0aW9uIG9m
IFBhZ2Ugb2JqZWN0cyB1c2VkIHRoYXQgQVBJLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVGZWF0dXJlT2JzZXJ2
YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0
clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUNv
bnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9yQ2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmZlYXR1cmVPYnNlcnZlcik6CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOS0xNCAgRGFu
YSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNaW5pbWl6ZSBjb2xs
aXNpb25zIHdoZW4gaGFzaGluZyBwYWlycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCmlu
ZGV4IGVhOGExMjljNTdhMWRjNjg2NWIxNTU4YzllM2M3NDY1M2Q5ZGYyOTYuLjM1NWQ0MmEzMDM0
ZTk4OWJlOWZjNjllMGY4MDc3YWVkMzI0NWMyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwKQEAgLTMxLDcgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFN1cHBsZW1l
bnRhbD1ET01XaW5kb3cKICAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgewogI2lmIGRlZmlu
ZWQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTEVHQUNZX05PVElGSUNB
VElPTlMKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5v
dGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZSwgTWVhc3VyZUFzPUxlZ2FjeU5vdGlmaWNhdGlv
bnNdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwogI2VuZGlmCiAjaWYg
ZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMKICAg
ICAgICAgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNvbnN0cnVjdG9yIE5vdGlmaWNhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCA0MDg1MzExOWQ0NjJjY2FlOGYzMGIyMmE0ZWY5NmQ1YzIxYTUyYzlm
Li5hZGMwYjI5NDQxNjhjNmM2NmRiYzA3ZTk1ZmYzZDY0Yjg0YmJiYmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yMzIsNiArMjMyLDcgQEAKICAgICAgICAgICAgICdwYWdlL0RyYWdTdGF0ZS5oJywK
ICAgICAgICAgICAgICdwYWdlL0VkaXRvckNsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0V2
ZW50SGFuZGxlci5oJywKKyAgICAgICAgICAgICdwYWdlL0ZlYXR1cmVPYnNlcnZlci5oJywKICAg
ICAgICAgICAgICdwYWdlL0ZvY3VzQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0Zv
Y3VzRGlyZWN0aW9uLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUuaCcsCkBAIC0zMTEzLDYg
KzMxMTQsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCcsCiAgICAgICAg
ICAgICAncGFnZS9FdmVudFNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRTb3Vy
Y2UuaCcsCisgICAgICAgICAgICAncGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IGI5ZjQzNjRiZmUzNjdjNDVhN2FiNmJlYzY0OTNhMDQxYmI2NTUzNWUuLjU5YzVjNjUyYjE1
ZjhlOWRmODkzNjQ1ZjZiOTQ5ZDM4MjY4MzEzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC04MTMsNiArODEzLDE4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9y
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyCiBFTkQKIH0KIAorc3ViIEdlbmVyYXRlRmVhdHVyZU9i
c2VydmF0aW9uCit7CisgICAgbXkgJG1lYXN1cmVBcyA9IHNoaWZ0OworCisgICAgaWYgKCRtZWFz
dXJlQXMpIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZlYXR1cmVPYnNlcnZlci5oIik7
CisgICAgICAgIHJldHVybiAiICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShhY3RpdmVET01X
aW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVyZVRyYWNrZXI6OiR7bWVhc3Vy
ZUFzfSk7XG4iOworICAgIH0KKworICAgIHJldHVybiAiIjsKK30KKwogc3ViIEdlbmVyYXRlTm9y
bWFsQXR0ckdldHRlcgogewogICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKQEAgLTgzNiw4ICs4
NDgsOSBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyCiAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke2F0dHJOYW1l
fUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRTKFwiRE9NLiRpbXBsQ2xhc3NOYW1lLiRhdHRy
TmFtZS5fZ2V0XCIpOworICAgIElOQ19TVEFUUygiRE9NLiRpbXBsQ2xhc3NOYW1lLiRhdHRyTmFt
ZS5fZ2V0Iik7CiBFTkQKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1
cmVPYnNlcnZhdGlvbigkYXR0ckV4dC0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgaWYgKCRzdmdO
YXRpdmVUeXBlKSB7CiAgICAgICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsK
QEAgLTEwODUsNiArMTA5OCw3IEBAIHN0YXRpYyB2b2lkICR7aW1wbENsYXNzTmFtZX1SZXBsYWNl
YWJsZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4CiB7CiAgICAgSU5D
X1NUQVRTKCJET00uJGltcGxDbGFzc05hbWUucmVwbGFjZWFibGUuX3NldCIpOwogRU5ECisgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTWVhc3VyZUFzIn0pKTsKIAogICAgIGlmICgkaW1w
bENsYXNzTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZyYW1l
LmgiKTsKQEAgLTExMTcsNiArMTEzMSw3IEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIK
IAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJzdGF0aWMgdm9pZCAke2F0dHJOYW1lfUF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKVxue1xuIik7CiAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJGF0
dHJOYW1lLl9zZXRcIik7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0
ZUZlYXR1cmVPYnNlcnZhdGlvbigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgIyBJZiB0aGUgIlN0cmljdFR5cGVDaGVja2lu
ZyIgZXh0ZW5kZWQgYXR0cmlidXRlIGlzIHByZXNlbnQsIGFuZCB0aGUgYXR0cmlidXRlJ3MgdHlw
ZSBpcyBhbgogICAgICMgaW50ZXJmYWNlIHR5cGUsIHRoZW4gaWYgdGhlIGluY29taW5nIHZhbHVl
IGRvZXMgbm90IGltcGxlbWVudCB0aGF0IGludGVyZmFjZSwgYSBUeXBlRXJyb3IgaXMKQEAgLTE0
MjMsNiArMTQzOCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKFwiRE9NLiRp
bXBsQ2xhc3NOYW1lLiRuYW1lXCIpOwogRU5ECisgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
R2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgZm9yZWFjaCBteSAkb3ZlcmxvYWQg
KEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAgbXkgKCRudW1NYW5kYXRvcnlQ
YXJhbXMsICRwYXJhbWV0ZXJzQ2hlY2spID0gR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRlcnNDaGVj
aygkb3ZlcmxvYWQpOwpAQCAtMTQ3Myw2ICsxNDg5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiAke25hbWV9Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJG5hbWVcIik7CiBFTkQKKyAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1lYXN1cmVBcyJ9KSk7CiAKICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0
aW9uLCAkZGF0YU5vZGUpKTsKIApAQCAtMTgwNSw2ICsxODIyLDEwIEBAIHN1YiBHZW5lcmF0ZUNv
bnN0cnVjdG9yQ2FsbGJhY2sKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFt
ZX06OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS4ke2ltcGxDbGFzc05hbWV9LkNvbnN0cnVjdG9yIik7CitFTkQKKyAg
ICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOworCisgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENh
bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVj
dG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKQEAgLTE5OTYsNiArMjAxNywx
MCBAQCBFTkQKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ltcGxDbGFzc05hbWV9
Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLiR7aW1wbENsYXNzTmFtZX0uQ29uc3RydWN0b3IiKTsKK0VORAorICAgIHB1
c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1lYXN1cmVBcyJ9KSk7CisKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwogCiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgp
KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3Ig
Y2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMzhkZTY5ZDRlZGRjOWQz
NWNiOTUzMWQxMWJlMDk4YjgzOGQyMDc5Mi4uMDg3ZjQ1MTU2MDZmOGJmNDUwMWYyOGFmOTRjMDg4
ZWJkOGViYzkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0CkBAIC04NCw2ICs4NCw3IEBAIEpTTGVnYWN5UGFyZW50PSoKIEpTTm9T
dGF0aWNUYWJsZXMKIEpTV2luZG93RXZlbnRMaXN0ZW5lcgogTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZAorTWVhc3VyZUFzPSoKIE5hbWVkQ29uc3RydWN0b3I9KgogTmFtZWRHZXR0ZXIKIE5vdEVudW1l
cmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAppbmRleCAxODc3NWY3MDNkNWUwNzRiZjIyOWNkMjdmMGZhYzM2NGU4ZjgwMmQzLi5kMDkx
ZDNhZmNmNjg0YzRhZDZmZDJiZGY4NjhkODEyOWRlZmI5MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC00OSw3ICs0OSw3IEBA
IG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbG9uZyAgICAgICAgICAgICAg
ICBsb25nTG9uZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgICAg
ICAgdW5zaWduZWRMb25nTG9uZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgICAgICAgICAgc3RyaW5nQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAg
ICAgICAgICAgICB0ZXN0T2JqQXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtNZWFzdXJlQXM9VGVz
dEZlYXR1cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKICAgICAgICAgSlMsIFY4CiAgICAgICAg
IC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCkBAIC03NSw3ICs3
NSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgdm9pZCAgICB2b2lkTWV0aG9kV2l0aEFyZ3Mo
aW4gbG9uZyBsb25nQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7
CiAgICAgICAgIGxvbmcgICAgbG9uZ01ldGhvZCgpOwogICAgICAgICBsb25nICAgIGxvbmdNZXRo
b2RXaXRoQXJncyhpbiBsb25nIGxvbmdBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RP
Ymogb2JqQXJnKTsKLSAgICAgICAgVGVzdE9iaiBvYmpNZXRob2QoKTsKKyAgICAgICAgW01lYXN1
cmVBcz1UZXN0RmVhdHVyZV0gVGVzdE9iaiBvYmpNZXRob2QoKTsKICAgICAgICAgVGVzdE9iaiBv
YmpNZXRob2RXaXRoQXJncyhpbiBsb25nIGxvbmdBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGlu
IFRlc3RPYmogb2JqQXJnKTsKIAogICAgICAgICB2b2lkIG1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhp
biBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlPiBzZXF1ZW5jZUFyZyk7CkBAIC05Nyw3ICs5Nyw3IEBA
IG1vZHVsZSB0ZXN0IHsKIAogICAgICAgICAvLyAnQ3VzdG9tJyBleHRlbmRlZCBhdHRyaWJ1dGUK
ICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcgICAgICAgICAgICBjdXN0b21BdHRyOwot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhvZCgpOworICAgICAgICBbQ3VzdG9tLCBN
ZWFzdXJlQXM9Q3VzdG9tVGVzdEZlYXR1cmVdIHZvaWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFyZ3MoaW4gbG9uZyBsb25nQXJnLCBpbiBE
T01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7CiAKICAgICAgICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggYzQzNDFiMmFl
YTIxM2IwY2QyMjQ1YTRiMGY5MjVmMjc1ZTg1MzkzNy4uNTYzNzc0NGIxYWFmZGRmYWE2MzM2MDVm
ZDAwMDUwODNhNzExMjYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklEQkJpbmRpbmdVdGls
aXRpZXMuaCIKQEAgLTIyNyw2ICsyMjgsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZQogc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0T2JqQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai50ZXN0T2JqQXR0ci5fZ2V0Iik7CisgICAgRmVhdHVyZU9i
c2VydmVyOjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkp
LCBGZWF0dXJlVHJhY2tlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgcmV0dXJuIHRvVjgoaW1wLT50ZXN0
T2JqQXR0cigpLCBpbmZvLkhvbGRlcigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CkBAIC0yMzQs
NiArMjM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0T2JqQXR0ckF0dHJH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGMKIHN0YXRpYyB2b2lkIHRlc3RPYmpB
dHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai50ZXN0T2JqQXR0ci5fc2V0Iik7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLCBGZWF0
dXJlVHJhY2tlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwogICAgIGltcC0+c2V0VGVzdE9iakF0dHIoV1RGOjpnZXRQ
dHIodikpOwpAQCAtMTA5NCw2ICsxMDk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vYmpNZXRob2QiKTsK
KyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0
ZTo6aW5zdGFuY2UoKSksIEZlYXR1cmVUcmFja2VyOjpUZXN0RmVhdHVyZSk7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICByZXR1cm4g
dG9WOChpbXAtPm9iak1ldGhvZCgpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7
CiB9CkBAIC0xOTI4LDcgKzE5MzIsNyBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9u
OjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJ1bnNpZ25lZExv
bmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJH
ZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnc3RyaW5nQXR0cicgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsic3RyaW5nQXR0ciIsIFRlc3RPYmpWOEludGVy
bmFsOjpzdHJpbmdBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RPYmpBdHRy
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisgICAgLy8gQXR0cmlidXRlICd0ZXN0
T2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdNZWFzdXJlQXMnKQogICAgIHsi
dGVzdE9iakF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ1hNTE9iakF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnJykKICAgICB7IlhNTE9iakF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6WE1MT2JqQXR0ckF0
dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpYTUxPYmpBdHRyQXR0clNldHRlciwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjNkODk3OWUzOGU1ODY5MDVhNjFlN2E4NjZmMjRjZDFlZmRjYzQxNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1cmVPYnNl
cnZlcigpCisgICAgOiBtX2ZlYXR1cmVNYXNrKDApCit7Cit9CisKK0ZlYXR1cmVPYnNlcnZlcjo6
fkZlYXR1cmVPYnNlcnZlcigpCit7CisgICAgLy8gV2UgYWx3YXlzIGxvZyBQYWdlRGVzdHJ1Y3Rp
b24gc28gdGhhdCB3ZSBoYXZlIGEgc2NhbGUgZm9yIHRoZSByZXN0IG9mIHRoZSBmZWF0dXJlcy4K
KyAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5GZWF0
dXJlT2JzZXJ2ZXIiLCBQYWdlRGVzdHJ1Y3Rpb24sIE51bWJlck9mRmVhdHVyZXMpOworCisgICAg
aWYgKCFtX2ZlYXR1cmVNYXNrKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IE51bWJlck9mRmVhdHVyZXM7ICsraSkgeworICAgICAgICBpZiAobV9mZWF0dXJlTWFz
ayAmICgxIDw8IGkpKQorICAgICAgICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51
bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgaSwgTnVtYmVyT2ZGZWF0dXJlcyk7
CisgICAgfQorfQorCit2b2lkIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShET01XaW5kb3cqIGRv
bVdpbmRvdywgRmVhdHVyZSBmZWF0dXJlKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRv
bVdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmZlYXR1cmVPYnNlcnZlcigpLT5kaWRPYnNlcnZl
KGZlYXR1cmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
ZWF0dXJlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZGI3Zjc1MjA0NmMyOWI3NTAzYjY4ZjIzNTQ3
NmNiNjBmZDM2Y2E3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0
dXJlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmVhdHVyZU9ic2VydmVy
X2gKKyNkZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdyo7CisKK2NsYXNz
IEZlYXR1cmVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRmVhdHVyZU9ic2Vy
dmVyKTsKK3B1YmxpYzoKKyAgICBGZWF0dXJlT2JzZXJ2ZXIoKTsKKyAgICB+RmVhdHVyZU9ic2Vy
dmVyKCk7CisKKyAgICBlbnVtIEZlYXR1cmUgeworICAgICAgICBQYWdlRGVzdHJ1Y3Rpb24sCisg
ICAgICAgIExlZ2FjeU5vdGlmaWNhdGlvbnMsCisgICAgICAgIC8vIEFkZCBuZXcgZmVhdHVyZXMg
YWJvdmUgdGhpcyBsaW5lLgorICAgICAgICBOdW1iZXJPZkZlYXR1cmVzLCAvLyBUaGlzIGVudW0g
dmFsdWUgbXVzdCBiZSBsYXN0LgorICAgIH07CisKKyAgICBzdGF0aWMgdm9pZCBvYnNlcnZlKERP
TVdpbmRvdyosIEZlYXR1cmUpOworCitwcml2YXRlOgorICAgIHZvaWQgZGlkT2JzZXJ2ZShGZWF0
dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YobV9mZWF0
dXJlTWFzaykgKiA4ID49IE51bWJlck9mRmVhdHVyZXMsIEZlYXR1cmVzTXVzdE5vdE92ZXJmbG93
Qml0bWFzayk7CisgICAgICAgIEFTU0VSVChmZWF0dXJlICE9IFBhZ2VEZXN0cnVjdGlvbik7IC8v
IFBhZ2VEZXN0cnVjdGlvbiBpcyByZXNlcnZlZCBhcyBhIHNjYWxpbmcgZmFjdG9yLgorICAgICAg
ICBBU1NFUlQoZmVhdHVyZSAhPSBOdW1iZXJPZkZlYXR1cmVzKTsKKyAgICAgICAgQVNTRVJUKGZl
YXR1cmUgIT0gVW5rbm93bik7CisgICAgICAgIG1fZmVhdHVyZU1hc2sgfD0gMSA8PCBzdGF0aWNf
Y2FzdDxpbnQ+KGZlYXR1cmUpOworICAgIH0KKworICAgIGludCBtX2ZlYXR1cmVNYXNrOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorICAgIAorI2VuZGlmIC8vIEZlYXR1cmVPYnNlcnZl
cl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5oCmluZGV4IDZmNGZlMDViZWFhNTYzMzdjNjY3NTAxYTUwNmIyZjcyYWFi
Zjg3YWQuLjIzOGYzNGIwMWEyMWNjYTQzMDZiMjUyYjMwYjIyYzlhOTJiMWUzNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIFBhZ2VfaAogI2RlZmluZSBQYWdlX2gK
IAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlw
ZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUgIkxheW91dFR5cGVzLmgi
CkBAIC0xOTYsNiArMTk3LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBQcm9ncmVz
c1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmVzcy5nZXQoKTsgfQog
ICAgICAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIqIGJhY2tGb3J3YXJkKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIuZ2V0KCk7IH0KIAorICAgICAgICBGZWF0dXJlT2Jz
ZXJ2ZXIqIGZlYXR1cmVPYnNlcnZlcigpIHsgcmV0dXJuICZtX2ZlYXR1cmVPYnNlcnZlcjsgfQor
CiAgICAgICAgIGVudW0gVmlld01vZGUgewogICAgICAgICAgICAgVmlld01vZGVJbnZhbGlkLAog
ICAgICAgICAgICAgVmlld01vZGVXaW5kb3dlZCwKQEAgLTM4Nyw2ICszOTAsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIEVkaXRvckNsaWVudCogbV9lZGl0b3JDbGllbnQ7CiAgICAg
ICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiBtX3ZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Owog
CisgICAgICAgIEZlYXR1cmVPYnNlcnZlciBtX2ZlYXR1cmVPYnNlcnZlcjsKKwogICAgICAgICBp
bnQgbV9mcmFtZUNvdW50OwogICAgICAgICBTdHJpbmcgbV9ncm91cE5hbWU7CiAgICAgICAgIGJv
b2wgbV9vcGVuZWRCeURPTTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164244</attachid>
            <date>2012-09-14 15:58:28 -0700</date>
            <delta_ts>2012-09-14 16:49:52 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-96837-20120914155759.patch</filename>
            <type>text/plain</type>
            <size>19303</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNjhjNjk5OGZhZjRm
MTBkNDMyNjM4Y2U1ZTRjNWEwYTk5ZjAzNC4uNTE4MjU0Njk2N2E3OWI2ZGNlNGI4MjQ3NDc5OGNl
NmVmNDFkMzQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTE0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2Ugc2hvdWxkIG1ha2UgY29s
bGVjdGluZyBtZXRyaWNzIGVhc2llciBieSBhZGRpbmcgYW4gSURMIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4MzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQgaXMg
dG9vIGhhcmQgdG8gc2V0IHVwIGEgZ29vZCBtZWFzdXJlbWVudCBleHBlcmltZW50IHRvIHNlZQor
ICAgICAgICB3aGV0aGVyIHdlIGNhbiBzYWZlbHkgcmVtb3ZlIGEgZmVhdHVyZSAoaW5jbHVkaW5n
IHZlbmRvci1wcmVmaXhlZAorICAgICAgICBmZWF0dXJlcykuIFRoaXMgcGF0Y2ggaW50cm9kdWNl
cyB0aGUgW01lYXN1cmVBc10gSURMIGF0dHJpYnV0ZSB0byBtYWtlCisgICAgICAgIHRoYXQgcHJv
Y2VzcyBlYXNpZXIuCisKKyAgICAgICAgV2hlbiB5b3UgYWRkIHRoZSBbTWVhc3VyZUFzXSBJREwg
cHJvcGVydHkgdG8gYW4gQVBJLCB3ZSdsbCBjb3VudCB3aGF0CisgICAgICAgIGZyYWN0aW9uIG9m
IFBhZ2Ugb2JqZWN0cyB1c2VkIHRoYXQgQVBJLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVGZWF0dXJlT2JzZXJ2
YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0
clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUNv
bnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9yQ2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmZlYXR1cmVPYnNlcnZlcik6CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOS0xNCAgRGFu
YSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNaW5pbWl6ZSBjb2xs
aXNpb25zIHdoZW4gaGFzaGluZyBwYWlycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCmlu
ZGV4IGVhOGExMjljNTdhMWRjNjg2NWIxNTU4YzllM2M3NDY1M2Q5ZGYyOTYuLjM1NWQ0MmEzMDM0
ZTk4OWJlOWZjNjllMGY4MDc3YWVkMzI0NWMyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9u
cy5pZGwKQEAgLTMxLDcgKzMxLDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFN1cHBsZW1l
bnRhbD1ET01XaW5kb3cKICAgICBdIERPTVdpbmRvd05vdGlmaWNhdGlvbnMgewogI2lmIGRlZmlu
ZWQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAmJiBFTkFCTEVfTEVHQUNZX05PVElGSUNB
VElPTlMKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWVdIE5v
dGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOworICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZSwgTWVhc3VyZUFzPUxlZ2FjeU5vdGlmaWNhdGlv
bnNdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXROb3RpZmljYXRpb25zOwogI2VuZGlmCiAjaWYg
ZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJiYgRU5BQkxFX05PVElGSUNBVElPTlMKICAg
ICAgICAgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNvbnN0cnVjdG9yIE5vdGlmaWNhdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQppbmRleCA0MDg1MzExOWQ0NjJjY2FlOGYzMGIyMmE0ZWY5NmQ1YzIxYTUyYzlm
Li5hZGMwYjI5NDQxNjhjNmM2NmRiYzA3ZTk1ZmYzZDY0Yjg0YmJiYmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCkBAIC0yMzIsNiArMjMyLDcgQEAKICAgICAgICAgICAgICdwYWdlL0RyYWdTdGF0ZS5oJywK
ICAgICAgICAgICAgICdwYWdlL0VkaXRvckNsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0V2
ZW50SGFuZGxlci5oJywKKyAgICAgICAgICAgICdwYWdlL0ZlYXR1cmVPYnNlcnZlci5oJywKICAg
ICAgICAgICAgICdwYWdlL0ZvY3VzQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0Zv
Y3VzRGlyZWN0aW9uLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUuaCcsCkBAIC0zMTEzLDYg
KzMxMTQsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCcsCiAgICAgICAg
ICAgICAncGFnZS9FdmVudFNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRTb3Vy
Y2UuaCcsCisgICAgICAgICAgICAncGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUu
Y3BwJywKICAgICAgICAgICAgICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmlu
ZGV4IGI5ZjQzNjRiZmUzNjdjNDVhN2FiNmJlYzY0OTNhMDQxYmI2NTUzNWUuLjU5YzVjNjUyYjE1
ZjhlOWRmODkzNjQ1ZjZiOTQ5ZDM4MjY4MzEzZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC04MTMsNiArODEzLDE4IEBA
IHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9y
R2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyCiBFTkQKIH0KIAorc3ViIEdlbmVyYXRlRmVhdHVyZU9i
c2VydmF0aW9uCit7CisgICAgbXkgJG1lYXN1cmVBcyA9IHNoaWZ0OworCisgICAgaWYgKCRtZWFz
dXJlQXMpIHsKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZlYXR1cmVPYnNlcnZlci5oIik7
CisgICAgICAgIHJldHVybiAiICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShhY3RpdmVET01X
aW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVyZVRyYWNrZXI6OiR7bWVhc3Vy
ZUFzfSk7XG4iOworICAgIH0KKworICAgIHJldHVybiAiIjsKK30KKwogc3ViIEdlbmVyYXRlTm9y
bWFsQXR0ckdldHRlcgogewogICAgIG15ICRhdHRyaWJ1dGUgPSBzaGlmdDsKQEAgLTgzNiw4ICs4
NDgsOSBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyCiAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgPDxFTkQpOwogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke2F0dHJOYW1l
fUF0dHJHZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3Nv
ckluZm8mIGluZm8pCiB7Ci0gICAgSU5DX1NUQVRTKFwiRE9NLiRpbXBsQ2xhc3NOYW1lLiRhdHRy
TmFtZS5fZ2V0XCIpOworICAgIElOQ19TVEFUUygiRE9NLiRpbXBsQ2xhc3NOYW1lLiRhdHRyTmFt
ZS5fZ2V0Iik7CiBFTkQKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1
cmVPYnNlcnZhdGlvbigkYXR0ckV4dC0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgaWYgKCRzdmdO
YXRpdmVUeXBlKSB7CiAgICAgICAgIG15ICRzdmdXcmFwcGVkTmF0aXZlVHlwZSA9ICRjb2RlR2Vu
ZXJhdG9yLT5HZXRTVkdXcmFwcGVkVHlwZU5lZWRpbmdUZWFyT2ZmKCRpbXBsQ2xhc3NOYW1lKTsK
QEAgLTEwODUsNiArMTA5OCw3IEBAIHN0YXRpYyB2b2lkICR7aW1wbENsYXNzTmFtZX1SZXBsYWNl
YWJsZUF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4CiB7CiAgICAgSU5D
X1NUQVRTKCJET00uJGltcGxDbGFzc05hbWUucmVwbGFjZWFibGUuX3NldCIpOwogRU5ECisgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGRhdGFO
b2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTWVhc3VyZUFzIn0pKTsKIAogICAgIGlmICgkaW1w
bENsYXNzTmFtZSBlcSAiRE9NV2luZG93IiB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJDaGVja1NlY3VyaXR5In0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZyYW1l
LmgiKTsKQEAgLTExMTcsNiArMTEzMSw3IEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIK
IAogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJzdGF0aWMgdm9pZCAke2F0dHJOYW1lfUF0
dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+
IHZhbHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKVxue1xuIik7CiAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJGF0
dHJOYW1lLl9zZXRcIik7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0
ZUZlYXR1cmVPYnNlcnZhdGlvbigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmli
dXRlcy0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgIyBJZiB0aGUgIlN0cmljdFR5cGVDaGVja2lu
ZyIgZXh0ZW5kZWQgYXR0cmlidXRlIGlzIHByZXNlbnQsIGFuZCB0aGUgYXR0cmlidXRlJ3MgdHlw
ZSBpcyBhbgogICAgICMgaW50ZXJmYWNlIHR5cGUsIHRoZW4gaWYgdGhlIGluY29taW5nIHZhbHVl
IGRvZXMgbm90IGltcGxlbWVudCB0aGF0IGludGVyZmFjZSwgYSBUeXBlRXJyb3IgaXMKQEAgLTE0
MjMsNiArMTQzOCw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtuYW1lfUNhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKFwiRE9NLiRp
bXBsQ2xhc3NOYW1lLiRuYW1lXCIpOwogRU5ECisgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywg
R2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUtPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgZm9yZWFjaCBteSAkb3ZlcmxvYWQg
KEB7JGZ1bmN0aW9uLT57b3ZlcmxvYWRzfX0pIHsKICAgICAgICAgbXkgKCRudW1NYW5kYXRvcnlQ
YXJhbXMsICRwYXJhbWV0ZXJzQ2hlY2spID0gR2VuZXJhdGVGdW5jdGlvblBhcmFtZXRlcnNDaGVj
aygkb3ZlcmxvYWQpOwpAQCAtMTQ3Myw2ICsxNDg5LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiAke25hbWV9Q2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJG5hbWVcIik7CiBFTkQKKyAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24t
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1lYXN1cmVBcyJ9KSk7CiAKICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0
aW9uLCAkZGF0YU5vZGUpKTsKIApAQCAtMTgwNSw2ICsxODIyLDEwIEBAIHN1YiBHZW5lcmF0ZUNv
bnN0cnVjdG9yQ2FsbGJhY2sKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOCR7aW1wbENsYXNzTmFt
ZX06OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAg
ICBJTkNfU1RBVFMoIkRPTS4ke2ltcGxDbGFzc05hbWV9LkNvbnN0cnVjdG9yIik7CitFTkQKKyAg
ICBwdXNoKEBpbXBsQ29udGVudCwgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9u
LT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOworCisgICAg
cHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENh
bGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVj
dG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKQEAgLTE5OTYsNiArMjAxNywx
MCBAQCBFTkQKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ltcGxDbGFzc05hbWV9
Q29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLiR7aW1wbENsYXNzTmFtZX0uQ29uc3RydWN0b3IiKTsKK0VORAorICAgIHB1
c2goQGltcGxDb250ZW50LCBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24tPnNp
Z25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Ik1lYXN1cmVBcyJ9KSk7CisKKyAgICBwdXNo
KEBpbXBsQ29udGVudCwgPDxFTkQpOwogCiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgp
KQogICAgICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3Ig
Y2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0aW9uLiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXggMzhkZTY5ZDRlZGRjOWQz
NWNiOTUzMWQxMWJlMDk4YjgzOGQyMDc5Mi4uMDg3ZjQ1MTU2MDZmOGJmNDUwMWYyOGFmOTRjMDg4
ZWJkOGViYzkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9J
RExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lE
TEF0dHJpYnV0ZXMudHh0CkBAIC04NCw2ICs4NCw3IEBAIEpTTGVnYWN5UGFyZW50PSoKIEpTTm9T
dGF0aWNUYWJsZXMKIEpTV2luZG93RXZlbnRMaXN0ZW5lcgogTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZAorTWVhc3VyZUFzPSoKIE5hbWVkQ29uc3RydWN0b3I9KgogTmFtZWRHZXR0ZXIKIE5vdEVudW1l
cmFibGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9U
ZXN0T2JqLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2Jq
LmlkbAppbmRleCAxODc3NWY3MDNkNWUwNzRiZjIyOWNkMjdmMGZhYzM2NGU4ZjgwMmQzLi5kMDkx
ZDNhZmNmNjg0YzRhZDZmZDJiZGY4NjhkODEyOWRlZmI5MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCkBAIC00OSw3ICs0OSw3IEBA
IG1vZHVsZSB0ZXN0IHsKICAgICAgICAgYXR0cmlidXRlIGxvbmcgbG9uZyAgICAgICAgICAgICAg
ICBsb25nTG9uZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSB1bnNpZ25lZCBsb25nIGxvbmcgICAg
ICAgdW5zaWduZWRMb25nTG9uZ0F0dHI7CiAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAg
ICAgICAgICAgICAgc3RyaW5nQXR0cjsKLSAgICAgICAgYXR0cmlidXRlIFRlc3RPYmogICAgICAg
ICAgICAgICAgICB0ZXN0T2JqQXR0cjsKKyAgICAgICAgYXR0cmlidXRlIFtNZWFzdXJlQXM9VGVz
dEZlYXR1cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKICAgICAgICAgSlMsIFY4CiAgICAgICAg
IC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMuCkBAIC03NSw3ICs3
NSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgdm9pZCAgICB2b2lkTWV0aG9kV2l0aEFyZ3Mo
aW4gbG9uZyBsb25nQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7
CiAgICAgICAgIGxvbmcgICAgbG9uZ01ldGhvZCgpOwogICAgICAgICBsb25nICAgIGxvbmdNZXRo
b2RXaXRoQXJncyhpbiBsb25nIGxvbmdBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGluIFRlc3RP
Ymogb2JqQXJnKTsKLSAgICAgICAgVGVzdE9iaiBvYmpNZXRob2QoKTsKKyAgICAgICAgW01lYXN1
cmVBcz1UZXN0RmVhdHVyZV0gVGVzdE9iaiBvYmpNZXRob2QoKTsKICAgICAgICAgVGVzdE9iaiBv
YmpNZXRob2RXaXRoQXJncyhpbiBsb25nIGxvbmdBcmcsIGluIERPTVN0cmluZyBzdHJBcmcsIGlu
IFRlc3RPYmogb2JqQXJnKTsKIAogICAgICAgICB2b2lkIG1ldGhvZFdpdGhTZXF1ZW5jZUFyZyhp
biBzZXF1ZW5jZTxTY3JpcHRQcm9maWxlPiBzZXF1ZW5jZUFyZyk7CkBAIC05Nyw3ICs5Nyw3IEBA
IG1vZHVsZSB0ZXN0IHsKIAogICAgICAgICAvLyAnQ3VzdG9tJyBleHRlbmRlZCBhdHRyaWJ1dGUK
ICAgICAgICAgYXR0cmlidXRlIFtDdXN0b21dIGxvbmcgICAgICAgICAgICBjdXN0b21BdHRyOwot
ICAgICAgICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhvZCgpOworICAgICAgICBbQ3VzdG9tLCBN
ZWFzdXJlQXM9Q3VzdG9tVGVzdEZlYXR1cmVdIHZvaWQgY3VzdG9tTWV0aG9kKCk7CiAgICAgICAg
IFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kV2l0aEFyZ3MoaW4gbG9uZyBsb25nQXJnLCBpbiBE
T01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFyZyk7CiAKICAgICAgICAgdm9pZCBhZGRF
dmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggYzQzNDFiMmFl
YTIxM2IwY2QyMjQ1YTRiMGY5MjVmMjc1ZTg1MzkzNy4uNTYzNzc0NGIxYWFmZGRmYWE2MzM2MDVm
ZDAwMDUwODNhNzExMjYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRl
ICJET01TdHJpbmdMaXN0LmgiCiAjaW5jbHVkZSAiRGljdGlvbmFyeS5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJG
cmFtZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklEQkJpbmRpbmdVdGls
aXRpZXMuaCIKQEAgLTIyNyw2ICsyMjgsNyBAQCBzdGF0aWMgdm9pZCBzdHJpbmdBdHRyQXR0clNl
dHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZQogc3Rh
dGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0T2JqQXR0ckF0dHJHZXR0ZXIodjg6OkxvY2Fs
PHY4OjpTdHJpbmc+IG5hbWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai50ZXN0T2JqQXR0ci5fZ2V0Iik7CisgICAgRmVhdHVyZU9i
c2VydmVyOjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkp
LCBGZWF0dXJlVHJhY2tlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVz
dE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgcmV0dXJuIHRvVjgoaW1wLT50ZXN0
T2JqQXR0cigpLCBpbmZvLkhvbGRlcigpLCBpbmZvLkdldElzb2xhdGUoKSk7CiB9CkBAIC0yMzQs
NiArMjM2LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0ZXN0T2JqQXR0ckF0dHJH
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIGMKIHN0YXRpYyB2b2lkIHRlc3RPYmpB
dHRyQXR0clNldHRlcih2ODo6TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgdjg6OkxvY2FsPHY4OjpW
YWx1ZT4gdmFsdWUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGluZm8pCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdE9iai50ZXN0T2JqQXR0ci5fc2V0Iik7CisgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCkpLCBGZWF0
dXJlVHJhY2tlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoaW5mby5Ib2xkZXIoKSk7CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFz
SW5zdGFuY2UodmFsdWUpID8gVjhUZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+OjpDYXN0KHZhbHVlKSkgOiAwOwogICAgIGltcC0+c2V0VGVzdE9iakF0dHIoV1RGOjpnZXRQ
dHIodikpOwpAQCAtMTA5NCw2ICsxMDk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBNZXRob2RXaXRoQXJnc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiBzdGF0
aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IG9iak1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE9iai5vYmpNZXRob2QiKTsK
KyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0
ZTo6aW5zdGFuY2UoKSksIEZlYXR1cmVUcmFja2VyOjpUZXN0RmVhdHVyZSk7CiAgICAgVGVzdE9i
aiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKICAgICByZXR1cm4g
dG9WOChpbXAtPm9iak1ldGhvZCgpLCBhcmdzLkhvbGRlcigpLCBhcmdzLkdldElzb2xhdGUoKSk7
CiB9CkBAIC0xOTI4LDcgKzE5MzIsNyBAQCBzdGF0aWMgY29uc3QgVjhET01Db25maWd1cmF0aW9u
OjpCYXRjaGVkQXR0cmlidXRlIFY4VGVzdE9iakF0dHJzW10gPSB7CiAgICAgeyJ1bnNpZ25lZExv
bmdMb25nQXR0ciIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJH
ZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjp1bnNpZ25lZExvbmdMb25nQXR0ckF0dHJTZXR0ZXIs
IDAgLyogbm8gZGF0YSAqLywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZB
VUxUKSwgc3RhdGljX2Nhc3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyog
b24gaW5zdGFuY2UgKi99LAogICAgIC8vIEF0dHJpYnV0ZSAnc3RyaW5nQXR0cicgKFR5cGU6ICdh
dHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQogICAgIHsic3RyaW5nQXR0ciIsIFRlc3RPYmpWOEludGVy
bmFsOjpzdHJpbmdBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4SW50ZXJuYWw6OnN0cmluZ0F0dHJB
dHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9s
Pih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5v
bmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKLSAgICAvLyBBdHRyaWJ1dGUgJ3Rlc3RPYmpBdHRy
JyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCisgICAgLy8gQXR0cmlidXRlICd0ZXN0
T2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICdNZWFzdXJlQXMnKQogICAgIHsi
dGVzdE9iakF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8s
IHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0
PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwK
ICAgICAvLyBBdHRyaWJ1dGUgJ1hNTE9iakF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRy
OiAnJykKICAgICB7IlhNTE9iakF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6WE1MT2JqQXR0ckF0
dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpYTUxPYmpBdHRyQXR0clNldHRlciwgMCAvKiBu
byBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBz
dGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0
YW5jZSAqL30sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYjNkODk3OWUzOGU1ODY5MDVhNjFlN2E4NjZmMjRjZDFlZmRjYzQxNwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNwcApAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
R09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1cmVPYnNl
cnZlcigpCisgICAgOiBtX2ZlYXR1cmVNYXNrKDApCit7Cit9CisKK0ZlYXR1cmVPYnNlcnZlcjo6
fkZlYXR1cmVPYnNlcnZlcigpCit7CisgICAgLy8gV2UgYWx3YXlzIGxvZyBQYWdlRGVzdHJ1Y3Rp
b24gc28gdGhhdCB3ZSBoYXZlIGEgc2NhbGUgZm9yIHRoZSByZXN0IG9mIHRoZSBmZWF0dXJlcy4K
KyAgICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5GZWF0
dXJlT2JzZXJ2ZXIiLCBQYWdlRGVzdHJ1Y3Rpb24sIE51bWJlck9mRmVhdHVyZXMpOworCisgICAg
aWYgKCFtX2ZlYXR1cmVNYXNrKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGludCBpID0g
MDsgaSA8IE51bWJlck9mRmVhdHVyZXM7ICsraSkgeworICAgICAgICBpZiAobV9mZWF0dXJlTWFz
ayAmICgxIDw8IGkpKQorICAgICAgICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51
bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgaSwgTnVtYmVyT2ZGZWF0dXJlcyk7
CisgICAgfQorfQorCit2b2lkIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShET01XaW5kb3cqIGRv
bVdpbmRvdywgRmVhdHVyZSBmZWF0dXJlKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRv
bVdpbmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisg
ICAgICAgIHJldHVybjsKKworICAgIHBhZ2UtPmZlYXR1cmVPYnNlcnZlcigpLT5kaWRPYnNlcnZl
KGZlYXR1cmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
ZWF0dXJlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZTE3YTRiN2YzNjJhNzg3Y2IyNzMxMzgwYzJi
NTZiMzc3MWQ3MzFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0
dXJlT2JzZXJ2ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmVhdHVyZU9ic2VydmVy
X2gKKyNkZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJs
ZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdyo7CisKK2NsYXNz
IEZlYXR1cmVPYnNlcnZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRmVhdHVyZU9ic2Vy
dmVyKTsKK3B1YmxpYzoKKyAgICBGZWF0dXJlT2JzZXJ2ZXIoKTsKKyAgICB+RmVhdHVyZU9ic2Vy
dmVyKCk7CisKKyAgICBlbnVtIEZlYXR1cmUgeworICAgICAgICBQYWdlRGVzdHJ1Y3Rpb24sCisg
ICAgICAgIExlZ2FjeU5vdGlmaWNhdGlvbnMsCisgICAgICAgIC8vIEFkZCBuZXcgZmVhdHVyZXMg
YWJvdmUgdGhpcyBsaW5lLgorICAgICAgICBOdW1iZXJPZkZlYXR1cmVzLCAvLyBUaGlzIGVudW0g
dmFsdWUgbXVzdCBiZSBsYXN0LgorICAgIH07CisKKyAgICBzdGF0aWMgdm9pZCBvYnNlcnZlKERP
TVdpbmRvdyosIEZlYXR1cmUpOworCitwcml2YXRlOgorICAgIHZvaWQgZGlkT2JzZXJ2ZShGZWF0
dXJlIGZlYXR1cmUpCisgICAgeworICAgICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YobV9mZWF0
dXJlTWFzaykgKiA4ID49IE51bWJlck9mRmVhdHVyZXMsIEZlYXR1cmVzTXVzdE5vdE92ZXJmbG93
Qml0bWFzayk7CisgICAgICAgIEFTU0VSVChmZWF0dXJlICE9IFBhZ2VEZXN0cnVjdGlvbik7IC8v
IFBhZ2VEZXN0cnVjdGlvbiBpcyByZXNlcnZlZCBhcyBhIHNjYWxpbmcgZmFjdG9yLgorICAgICAg
ICBBU1NFUlQoZmVhdHVyZSA8IE51bWJlck9mRmVhdHVyZXMpOworICAgICAgICBtX2ZlYXR1cmVN
YXNrIHw9IDEgPDwgc3RhdGljX2Nhc3Q8aW50PihmZWF0dXJlKTsKKyAgICB9CisKKyAgICBpbnQg
bV9mZWF0dXJlTWFzazsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKyAgICAKKyNlbmRp
ZiAvLyBGZWF0dXJlT2JzZXJ2ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCA2ZjRmZTA1YmVhYTU2MzM3
YzY2NzUwMWE1MDZiMmY3MmFhYmY4N2FkLi4yMzhmMzRiMDFhMjFjY2E0MzA2YjI1MmIzMGIyMmM5
YTkyYjFlMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBQYWdl
X2gKICNkZWZpbmUgUGFnZV9oCiAKKyNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJGcmFtZUxvYWRlclR5cGVzLmgiCiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKICNpbmNs
dWRlICJMYXlvdXRUeXBlcy5oIgpAQCAtMTk2LDYgKzE5Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgUHJvZ3Jlc3NUcmFja2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvZ3Jlc3MuZ2V0KCk7IH0KICAgICAgICAgQmFja0ZvcndhcmRDb250cm9sbGVyKiBiYWNrRm9y
d2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRDb250cm9sbGVyLmdldCgpOyB9CiAK
KyAgICAgICAgRmVhdHVyZU9ic2VydmVyKiBmZWF0dXJlT2JzZXJ2ZXIoKSB7IHJldHVybiAmbV9m
ZWF0dXJlT2JzZXJ2ZXI7IH0KKwogICAgICAgICBlbnVtIFZpZXdNb2RlIHsKICAgICAgICAgICAg
IFZpZXdNb2RlSW52YWxpZCwKICAgICAgICAgICAgIFZpZXdNb2RlV2luZG93ZWQsCkBAIC0zODcs
NiArMzkwLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBFZGl0b3JDbGllbnQqIG1f
ZWRpdG9yQ2xpZW50OwogICAgICAgICBWYWxpZGF0aW9uTWVzc2FnZUNsaWVudCogbV92YWxpZGF0
aW9uTWVzc2FnZUNsaWVudDsKIAorICAgICAgICBGZWF0dXJlT2JzZXJ2ZXIgbV9mZWF0dXJlT2Jz
ZXJ2ZXI7CisKICAgICAgICAgaW50IG1fZnJhbWVDb3VudDsKICAgICAgICAgU3RyaW5nIG1fZ3Jv
dXBOYW1lOwogICAgICAgICBib29sIG1fb3BlbmVkQnlET007Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164249</attachid>
            <date>2012-09-14 16:49:54 -0700</date>
            <delta_ts>2012-09-17 11:22:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96837-20120914164925.patch</filename>
            <type>text/plain</type>
            <size>26233</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDVmNjhjNjk5OGZhZjRm
MTBkNDMyNjM4Y2U1ZTRjNWEwYTk5ZjAzNC4uNTE4MjU0Njk2N2E3OWI2ZGNlNGI4MjQ3NDc5OGNl
NmVmNDFkMzQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTE0ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2Ugc2hvdWxkIG1ha2UgY29s
bGVjdGluZyBtZXRyaWNzIGVhc2llciBieSBhZGRpbmcgYW4gSURMIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4MzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgaXQgaXMg
dG9vIGhhcmQgdG8gc2V0IHVwIGEgZ29vZCBtZWFzdXJlbWVudCBleHBlcmltZW50IHRvIHNlZQor
ICAgICAgICB3aGV0aGVyIHdlIGNhbiBzYWZlbHkgcmVtb3ZlIGEgZmVhdHVyZSAoaW5jbHVkaW5n
IHZlbmRvci1wcmVmaXhlZAorICAgICAgICBmZWF0dXJlcykuIFRoaXMgcGF0Y2ggaW50cm9kdWNl
cyB0aGUgW01lYXN1cmVBc10gSURMIGF0dHJpYnV0ZSB0byBtYWtlCisgICAgICAgIHRoYXQgcHJv
Y2VzcyBlYXNpZXIuCisKKyAgICAgICAgV2hlbiB5b3UgYWRkIHRoZSBbTWVhc3VyZUFzXSBJREwg
cHJvcGVydHkgdG8gYW4gQVBJLCB3ZSdsbCBjb3VudCB3aGF0CisgICAgICAgIGZyYWN0aW9uIG9m
IFBhZ2Ugb2JqZWN0cyB1c2VkIHRoYXQgQVBJLgorCisgICAgICAgICogTW9kdWxlcy9ub3RpZmlj
YXRpb25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVGZWF0dXJlT2JzZXJ2
YXRpb24pOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKEdl
bmVyYXRlUmVwbGFjZWFibGVBdHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0
clNldHRlcik6CisgICAgICAgIChHZW5lcmF0ZU92ZXJsb2FkZWRGdW5jdGlvbkNhbGxiYWNrKToK
KyAgICAgICAgKEdlbmVyYXRlRnVuY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZUNv
bnN0cnVjdG9yQ2FsbGJhY2spOgorICAgICAgICAoR2VuZXJhdGVOYW1lZENvbnN0cnVjdG9yQ2Fs
bGJhY2spOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQ6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGVzdE9ialY4SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0ckdldHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyU2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjpvYmpNZXRob2RDYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2U6OmZlYXR1cmVPYnNlcnZlcik6CisgICAgICAgIChQYWdlKToKKwogMjAxMi0wOS0xNCAgRGFu
YSBKYW5zZW5zICA8ZGFuYWtqQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNaW5pbWl6ZSBjb2xs
aXNpb25zIHdoZW4gaGFzaGluZyBwYWlycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5MjgxMjNj
MjlkYzRmYmU4ZTIxYzA0MmI5NjVlZjhkMDRiYWVhY2UyLi5mNzRiYTJkMjhmN2I0ODUyNjc2MDg2
MGE4Yzk3ZTAxMmEwNTRhNDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY4NSw2ICsxNjg1
LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCiAg
ICAgcGFnZS9FdmVudEhhbmRsZXIuY3BwCiAgICAgcGFnZS9FdmVudFNvdXJjZS5jcHAKKyAgICBw
YWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKICAgICBwYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKICAg
ICBwYWdlL0ZyYW1lLmNwcAogICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBhZTMwYTQzOGViYzFhNmYxZWVmY2JlZDIwZTk1
M2I2YzNiZmQ4YjE4Li40OTFlN2ViM2M3OTVmMjM5NTkyNTU5YWFhNDBjNGI5ZjEwOWJiYTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM5NjgsNiArMzk2OCw4IEBAIHdlYmNv
cmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRTb3VyY2UuaCBcCisJU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIu
Y3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNEaXJlY3Rpb24u
aCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9N
V2luZG93Tm90aWZpY2F0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNh
dGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGwKaW5kZXggZWE4YTEyOWM1N2ExZGM2ODY1
YjE1NThjOWUzYzc0NjUzZDlkZjI5Ni4uMzU1ZDQyYTMwMzRlOTg5YmU5ZmM2OWUwZjgwNzdhZWQz
MjQ1YzJlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRpb25z
L0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3RpZmljYXRpb25zLmlkbApAQCAtMzEsNyArMzEsNyBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgU3VwcGxlbWVudGFsPURPTVdpbmRvdwogICAgIF0g
RE9NV2luZG93Tm90aWZpY2F0aW9ucyB7CiAjaWYgZGVmaW5lZChFTkFCTEVfTEVHQUNZX05PVElG
SUNBVElPTlMpICYmIEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUwotICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgW1Y4RW5hYmxlZEF0UnVudGltZV0gTm90aWZpY2F0aW9uQ2VudGVyIHdlYmtp
dE5vdGlmaWNhdGlvbnM7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbVjhFbmFibGVkQXRS
dW50aW1lLCBNZWFzdXJlQXM9TGVnYWN5Tm90aWZpY2F0aW9uc10gTm90aWZpY2F0aW9uQ2VudGVy
IHdlYmtpdE5vdGlmaWNhdGlvbnM7CiAjZW5kaWYKICNpZiBkZWZpbmVkKEVOQUJMRV9OT1RJRklD
QVRJT05TKSAmJiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgICAgICBhdHRyaWJ1dGUgTm90aWZp
Y2F0aW9uQ29uc3RydWN0b3IgTm90aWZpY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvVGFyZ2V0LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggZTY1YWFiY2Nm
M2E3ZTg4ZDAzMTUxM2NiMDgyNTRiOWNkNWYyOGJhMy4uMmNjYTIxZTk0Mjc2Y2YxYWE3YjU4M2Vh
ZjA1ZTY2OGZjMjlkOTdjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC04NjUsNiArODY1LDcgQEAgU09VUkNF
UyArPSBcCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgXAogICAgIHBhZ2UvRXZlbnRIYW5k
bGVyLmNwcCBcCiAgICAgcGFnZS9FdmVudFNvdXJjZS5jcHAgXAorICAgIHBhZ2UvRmVhdHVyZU9i
c2VydmVyLmNwcCBcCiAgICAgcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0Zy
YW1lLmNwcCBcCiAgICAgcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAgXApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDQwODUzMTE5ZDQ2MmNjYWU4ZjMwYjIyYTRlZjk2ZDVjMjFhNTJjOWYuLmFkYzBi
Mjk0NDE2OGM2YzY2ZGJjMDdlOTVmZjNkNjRiODRiYmJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTIzMiw2ICsyMzIsNyBAQAogICAgICAgICAgICAgJ3BhZ2UvRHJhZ1N0YXRlLmgnLAogICAgICAg
ICAgICAgJ3BhZ2UvRWRpdG9yQ2xpZW50LmgnLAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRIYW5k
bGVyLmgnLAorICAgICAgICAgICAgJ3BhZ2UvRmVhdHVyZU9ic2VydmVyLmgnLAogICAgICAgICAg
ICAgJ3BhZ2UvRm9jdXNDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ3BhZ2UvRm9jdXNEaXJl
Y3Rpb24uaCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZS5oJywKQEAgLTMxMTMsNiArMzExNCw3
IEBACiAgICAgICAgICAgICAncGFnZS9FdmVudEhhbmRsZXIuY3BwJywKICAgICAgICAgICAgICdw
YWdlL0V2ZW50U291cmNlLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9FdmVudFNvdXJjZS5oJywK
KyAgICAgICAgICAgICdwYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAnLAogICAgICAgICAgICAgJ3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9GcmFtZS5jcHAnLAog
ICAgICAgICAgICAgJ3BhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwJywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggZWVjNmI1ZWQ5OTA1MDM0
ODQxMjYxZGRmYmMzOGQzYjNiNzI4M2Q1Yi4uMzg3NDcxOTc3NzJhYTdmMDI0OTk1Zjk5YWQ3OTM5
NTBiMjc4MTQ0NiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52
Y3Byb2oKQEAgLTI3MDUxLDYgKzI3MDUxLDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZp
bGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRmVhdHVyZU9ic2VydmVyLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGFnZVxGZWF0dXJl
T2JzZXJ2ZXIuaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0
aD0iLi5ccGFnZVxGb2N1c0NvbnRyb2xsZXIuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBj
Y2NiOTdhYWI1OTRiODUxNGI5MWRiOTIxZDE5Njg1NmNmYjQzOWM1Li4xMjJhZjdjZWQwODVlODE3
MTkxYzE4ODAwYjA0MzVmMWY4N2E5ZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNjkwLDYgKzM2OTAsOCBAQAogCQk5N0Mw
Nzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdDMDc4NEYxMTY1RDVCRTAwM0EzMkVGIC8qIFN1
ZmZpeFRyZWUuaCAqLzsgfTsKIAkJOTdDNDcxREIxMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRT
ZWN1cml0eVBvbGljeS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5N0M0NzFEOTEyRjkyNUJDMDA4NjM1NEIgLyogQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcCAqLzsgfTsKIAkJOTdDNDcxREMxMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0
eVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdDNDcxREExMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk3Qzc0MDE0MTYw
M0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdDNzQwMTIxNjAzRjdBMTAwMTFGRjJEIC8qIEZl
YXR1cmVPYnNlcnZlci5jcHAgKi87IH07CisJCTk3Qzc0MDE1MTYwM0Y3QTEwMDExRkYyRCAvKiBG
ZWF0dXJlT2JzZXJ2ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDk3Qzc0MDEzMTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5N0QyQUQwMzE0
QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEMkFEMDExNEI4MjNBNjAwOTNERjMyIC8q
IERPTVdpbmRvd1Byb3BlcnR5LmNwcCAqLzsgfTsKIAkJOTdEMkFEMDQxNEI4MjNBNjAwOTNERjMy
IC8qIERPTVdpbmRvd1Byb3BlcnR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5N0QyQUQwMjE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVy
dHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5
N0RDRTIwMTEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEQ0UxRkYxMDgwN0M3NTAw
NTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEwOTE0LDYgKzEwOTE2
LDggQEAKIAkJOTdDMUY1NTIxMjI4NTVDQjAwRURFNjE2IC8qIEhUTUxUb2tlbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1MVG9rZW4uaDsgcGF0aCA9IHBhcnNlci9IVE1M
VG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTdDNDcxRDkxMkY5MjVCQzAw
ODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBDb250ZW50U2VjdXJpdHlQb2xpY3kuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5N0M0NzFEQTEyRjkyNUJEMDA4NjM1NEIgLyogQ29udGVudFNlY3Vy
aXR5UG9saWN5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRlbnRTZWN1
cml0eVBvbGljeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5N0M3NDAxMjE2MDNG
N0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2VydmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEZlYXR1cmVPYnNlcnZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk3Qzc0MDEzMTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZU9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3RDJBRDAxMTRCODIzQTYwMDkzREYzMiAvKiBET01X
aW5kb3dQcm9wZXJ0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBE
T01XaW5kb3dQcm9wZXJ0eS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3RDJB
RDAyMTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5kb3dQcm9wZXJ0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01XaW5kb3dQcm9wZXJ0eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5N0RDRTFGRjEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGlzdG9yeUNvbnRy
b2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU4MTIsNiArMTU4MTYs
OCBAQAogCQkJCUUwRkVGMzcxQjE3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5oICovLAog
CQkJCUUwRkVGMzcxQjA3QzUzRUFDMUMxRkJFRSAvKiBFdmVudFNvdXJjZS5pZGwgKi8sCiAJCQkJ
MTQ5OTNCRTMwQjJGMkIxQzAwNTA0OTdGIC8qIEZvY3VzQ29udHJvbGxlci5jcHAgKi8sCisJCQkJ
OTdDNzQwMTIxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVPYnNlcnZlci5jcHAgKi8sCisJCQkJ
OTdDNzQwMTMxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVPYnNlcnZlci5oICovLAogCQkJCTE0
OTkzQkU0MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCAqLywKIAkJCQkwNjIy
ODc4MzBCNERCMzIyMDAwQzM0REYgLyogRm9jdXNEaXJlY3Rpb24uaCAqLywKIAkJCQk2NUJGMDIy
OTA5NzQ4MTYzMDBDNDMxOTYgLyogRnJhbWUuY3BwICovLApAQCAtMjM0MDMsNiArMjM0MDksNyBA
QAogCQkJCTg0NzMwRDhEMTI0OEYwQjMwMEQzQTlDOSAvKiBGRVR1cmJ1bGVuY2UuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZEMzE2MDk1MTJCMDI2RjcwMEMxQTM1OSAvKiBGRlRDb252b2x2ZXIuaCBp
biBIZWFkZXJzICovLAogCQkJCUZEMzE2MDk3MTJCMDI2RjcwMEMxQTM1OSAvKiBGRlRGcmFtZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJOTdDNzQwMTUxNjAzRjdBMTAwMTFGRjJEIC8qIEZlYXR1cmVP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc2RDZDODExMjJCOEEzRDAwMUZEMUY3IC8q
IEZpbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTg5M0M0N0E3MTIzODkwOEIwMDJCM0Q4NiAvKiBG
aWxlQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTA2NkM3NzJCMEFCNjAzQjcwMDIzOEND
NCAvKiBGaWxlQ2hvb3Nlci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjY1NCw2ICsyNjY2MSw3IEBA
CiAJCQkJRkQzMTYwOTQxMkIwMjZGNzAwQzFBMzU5IC8qIEZGVENvbnZvbHZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlGRDMxNjA5NjEyQjAyNkY3MDBDMUEzNTkgLyogRkZURnJhbWUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkQzMTYwQzAxMkIwMjcyQTAwQzFBMzU5IC8qIEZGVEZyYW1lTWFj
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk3Qzc0MDE0MTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0
dXJlT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc2RDZDODAxMjJCOEEzRDAwMUZE
MUY3IC8qIEZpbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0RkU5RTUwQjVDQTUzOTAwM0U0
QTczIC8qIEZpbGVDaG9vc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NTYxMTIyQ0Ew
NjQwMDNBQUJEQSAvKiBGaWxlRW50cnkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGI5ZjQz
NjRiZmUzNjdjNDVhN2FiNmJlYzY0OTNhMDQxYmI2NTUzNWUuLjJlMTMxOGExODU1MWVhNmZiYWNh
YmU0Mzk4YWJjNTVkOTMyNGFiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC04MTMsNiArODEzLDE4IEBAIHN0YXRpYyB2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVjdG9yR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyCiBFTkQKIH0KIAorc3ViIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9u
Cit7CisgICAgbXkgJG1lYXN1cmVBcyA9IHNoaWZ0OworCisgICAgaWYgKCRtZWFzdXJlQXMpIHsK
KyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZlYXR1cmVPYnNlcnZlci5oIik7CisgICAgICAg
IHJldHVybiAiICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShhY3RpdmVET01XaW5kb3coQmlu
ZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVyZU9ic2VydmVyOjoke21lYXN1cmVBc30pO1xu
IjsKKyAgICB9CisKKyAgICByZXR1cm4gIiI7Cit9CisKIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJH
ZXR0ZXIKIHsKICAgICBteSAkYXR0cmlidXRlID0gc2hpZnQ7CkBAIC04MzYsOCArODQ4LDkgQEAg
c3ViIEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcgogICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMs
IDw8RU5EKTsKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gJHthdHRyTmFtZX1BdHRyR2V0
dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBp
bmZvKQogewotICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNzTmFtZS4kYXR0ck5hbWUuX2dl
dFwiKTsKKyAgICBJTkNfU1RBVFMoIkRPTS4kaW1wbENsYXNzTmFtZS4kYXR0ck5hbWUuX2dldCIp
OwogRU5ECisgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2
YXRpb24oJGF0dHJFeHQtPnsiTWVhc3VyZUFzIn0pKTsKIAogICAgIGlmICgkc3ZnTmF0aXZlVHlw
ZSkgewogICAgICAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+
R2V0U1ZHV3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW1wbENsYXNzTmFtZSk7CkBAIC0xMDg1
LDYgKzEwOTgsNyBAQCBzdGF0aWMgdm9pZCAke2ltcGxDbGFzc05hbWV9UmVwbGFjZWFibGVBdHRy
U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2OAogewogICAgIElOQ19TVEFUUygi
RE9NLiRpbXBsQ2xhc3NOYW1lLnJlcGxhY2VhYmxlLl9zZXQiKTsKIEVORAorICAgIHB1c2goQGlt
cGxDb250ZW50RGVjbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRkYXRhTm9kZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Ik1lYXN1cmVBcyJ9KSk7CiAKICAgICBpZiAoJGltcGxDbGFzc05h
bWUgZXEgIkRPTVdpbmRvdyIgfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2hl
Y2tTZWN1cml0eSJ9KSB7CiAgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJGcmFtZS5oIik7CkBA
IC0xMTE3LDYgKzExMzEsNyBAQCBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyU2V0dGVyCiAKICAgICBw
dXNoKEBpbXBsQ29udGVudERlY2xzLCAic3RhdGljIHZvaWQgJHthdHRyTmFtZX1BdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Y29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbylcbntcbiIpOwogICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsICIgICAgSU5DX1NUQVRTKFwiRE9NLiRpbXBsQ2xhc3NOYW1lLiRhdHRyTmFtZS5f
c2V0XCIpO1xuIik7CisgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJl
T2JzZXJ2YXRpb24oJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsi
TWVhc3VyZUFzIn0pKTsKIAogICAgICMgSWYgdGhlICJTdHJpY3RUeXBlQ2hlY2tpbmciIGV4dGVu
ZGVkIGF0dHJpYnV0ZSBpcyBwcmVzZW50LCBhbmQgdGhlIGF0dHJpYnV0ZSdzIHR5cGUgaXMgYW4K
ICAgICAjIGludGVyZmFjZSB0eXBlLCB0aGVuIGlmIHRoZSBpbmNvbWluZyB2YWx1ZSBkb2VzIG5v
dCBpbXBsZW1lbnQgdGhhdCBpbnRlcmZhY2UsIGEgVHlwZUVycm9yIGlzCkBAIC0xNDIzLDYgKzE0
MzgsNyBAQCBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7bmFtZX1DYWxsYmFjayhjb25z
dCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElOQ19TVEFUUyhcIkRPTS4kaW1wbENsYXNz
TmFtZS4kbmFtZVwiKTsKIEVORAorICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIEdlbmVyYXRl
RmVhdHVyZU9ic2VydmF0aW9uKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiTWVhc3VyZUFzIn0pKTsKIAogICAgIGZvcmVhY2ggbXkgJG92ZXJsb2FkIChAeyRmdW5j
dGlvbi0+e292ZXJsb2Fkc319KSB7CiAgICAgICAgIG15ICgkbnVtTWFuZGF0b3J5UGFyYW1zLCAk
cGFyYW1ldGVyc0NoZWNrKSA9IEdlbmVyYXRlRnVuY3Rpb25QYXJhbWV0ZXJzQ2hlY2soJG92ZXJs
b2FkKTsKQEAgLTE0NzMsNiArMTQ4OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
JHtuYW1lfUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKFwiRE9NLiRpbXBsQ2xhc3NOYW1lLiRuYW1lXCIpOwogRU5ECisgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOwogCiAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgR2VuZXJhdGVBcmd1bWVudHNDb3VudENoZWNrKCRmdW5jdGlvbiwgJGRh
dGFOb2RlKSk7CiAKQEAgLTE4MDUsNiArMTgyMiwxMCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3Rv
ckNhbGxiYWNrCiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjgke2ltcGxDbGFzc05hbWV9Ojpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uJHtpbXBsQ2xhc3NOYW1lfS5Db25zdHJ1Y3RvciIpOworRU5ECisgICAgcHVzaChA
aW1wbENvbnRlbnQsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRmdW5jdGlvbi0+c2lnbmF0
dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTWVhc3VyZUFzIn0pKTsKKworICAgIHB1c2goQGlt
cGxDb250ZW50LCA8PEVORCk7CiAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5u
b3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CkBAIC0xOTk2LDYgKzIwMTcsMTAgQEAgRU5E
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4JHtpbXBsQ2xhc3NOYW1lfUNvbnN0cnVj
dG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMo
IkRPTS4ke2ltcGxDbGFzc05hbWV9LkNvbnN0cnVjdG9yIik7CitFTkQKKyAgICBwdXNoKEBpbXBs
Q29udGVudCwgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1cmUt
PmV4dGVuZGVkQXR0cmlidXRlcy0+eyJNZWFzdXJlQXMifSkpOworCisgICAgcHVzaChAaW1wbENv
bnRlbnQsIDw8RU5EKTsKIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBi
ZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CmluZGV4IDM4ZGU2OWQ0ZWRkYzlkMzVjYjk1MzFk
MTFiZTA5OGI4MzhkMjA3OTIuLjA4N2Y0NTE1NjA2ZjhiZjQ1MDFmMjhhZjk0YzA4OGViZDhlYmM5
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmli
dXRlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1
dGVzLnR4dApAQCAtODQsNiArODQsNyBAQCBKU0xlZ2FjeVBhcmVudD0qCiBKU05vU3RhdGljVGFi
bGVzCiBKU1dpbmRvd0V2ZW50TGlzdGVuZXIKIE1hc3F1ZXJhZGVzQXNVbmRlZmluZWQKK01lYXN1
cmVBcz0qCiBOYW1lZENvbnN0cnVjdG9yPSoKIE5hbWVkR2V0dGVyCiBOb3RFbnVtZXJhYmxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwKaW5k
ZXggMTg3NzVmNzAzZDVlMDc0YmYyMjljZDI3ZjBmYWMzNjRlOGY4MDJkMy4uZDA5MWQzYWZjZjY4
NGM0YWQ2ZmQyYmRmODY4ZDgxMjlkZWZiOTBmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNDksNyArNDksNyBAQCBtb2R1bGUg
dGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGxvbmcgICAgICAgICAgICAgICAgbG9uZ0xv
bmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyBsb25nICAgICAgIHVuc2ln
bmVkTG9uZ0xvbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICAgICAg
ICAgIHN0cmluZ0F0dHI7Ci0gICAgICAgIGF0dHJpYnV0ZSBUZXN0T2JqICAgICAgICAgICAgICAg
ICAgdGVzdE9iakF0dHI7CisgICAgICAgIGF0dHJpYnV0ZSBbTWVhc3VyZUFzPVRlc3RGZWF0dXJl
XSBUZXN0T2JqIHRlc3RPYmpBdHRyOwogCiAgICAgICAgIEpTLCBWOAogICAgICAgICAvLyBXS191
Y2ZpcnN0LCBXS19sY2ZpcnN0IGV4Y2VwdGlvbmFsIGNhc2VzLgpAQCAtNzUsNyArNzUsNyBAQCBt
b2R1bGUgdGVzdCB7CiAgICAgICAgIHZvaWQgICAgdm9pZE1ldGhvZFdpdGhBcmdzKGluIGxvbmcg
bG9uZ0FyZywgaW4gRE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogICAgICAg
ICBsb25nICAgIGxvbmdNZXRob2QoKTsKICAgICAgICAgbG9uZyAgICBsb25nTWV0aG9kV2l0aEFy
Z3MoaW4gbG9uZyBsb25nQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2JqIG9iakFy
Zyk7Ci0gICAgICAgIFRlc3RPYmogb2JqTWV0aG9kKCk7CisgICAgICAgIFtNZWFzdXJlQXM9VGVz
dEZlYXR1cmVdIFRlc3RPYmogb2JqTWV0aG9kKCk7CiAgICAgICAgIFRlc3RPYmogb2JqTWV0aG9k
V2l0aEFyZ3MoaW4gbG9uZyBsb25nQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0T2Jq
IG9iakFyZyk7CiAKICAgICAgICAgdm9pZCBtZXRob2RXaXRoU2VxdWVuY2VBcmcoaW4gc2VxdWVu
Y2U8U2NyaXB0UHJvZmlsZT4gc2VxdWVuY2VBcmcpOwpAQCAtOTcsNyArOTcsNyBAQCBtb2R1bGUg
dGVzdCB7CiAKICAgICAgICAgLy8gJ0N1c3RvbScgZXh0ZW5kZWQgYXR0cmlidXRlCiAgICAgICAg
IGF0dHJpYnV0ZSBbQ3VzdG9tXSBsb25nICAgICAgICAgICAgY3VzdG9tQXR0cjsKLSAgICAgICAg
W0N1c3RvbV0gdm9pZCBjdXN0b21NZXRob2QoKTsKKyAgICAgICAgW0N1c3RvbSwgTWVhc3VyZUFz
PUN1c3RvbVRlc3RGZWF0dXJlXSB2b2lkIGN1c3RvbU1ldGhvZCgpOwogICAgICAgICBbQ3VzdG9t
XSB2b2lkIGN1c3RvbU1ldGhvZFdpdGhBcmdzKGluIGxvbmcgbG9uZ0FyZywgaW4gRE9NU3RyaW5n
IHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogCiAgICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0
ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGM0MzQxYjJhZWEyMTNiMGNk
MjI0NWE0YjBmOTI1ZjI3NWU4NTM5MzcuLjU2Mzc3NDRiMWFhZmRkZmFhNjMzNjA1ZmQwMDA1MDgz
YTcxMTI2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9WOC9WOFRlc3RPYmouY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRE9NU3Ry
aW5nTGlzdC5oIgogI2luY2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25D
b2RlLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgi
CkBAIC0yMjcsNiArMjI4LDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWUKIHN0YXRpYyB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gdGVzdE9iakF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3Ry
aW5nPiBuYW1lLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFU
UygiRE9NLlRlc3RPYmoudGVzdE9iakF0dHIuX2dldCIpOworICAgIEZlYXR1cmVPYnNlcnZlcjo6
b2JzZXJ2ZShhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVy
ZVRyYWNrZXI6OlRlc3RGZWF0dXJlKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRv
TmF0aXZlKGluZm8uSG9sZGVyKCkpOwogICAgIHJldHVybiB0b1Y4KGltcC0+dGVzdE9iakF0dHIo
KSwgaW5mby5Ib2xkZXIoKSwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpAQCAtMjM0LDYgKzIzNiw3
IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdGVzdE9iakF0dHJBdHRyR2V0dGVyKHY4
OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjCiBzdGF0aWMgdm9pZCB0ZXN0T2JqQXR0ckF0dHJT
ZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZh
bHVlLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9N
LlRlc3RPYmoudGVzdE9iakF0dHIuX3NldCIpOworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2
ZShhY3RpdmVET01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVyZVRyYWNr
ZXI6OlRlc3RGZWF0dXJlKTsKICAgICBUZXN0T2JqKiBpbXAgPSBWOFRlc3RPYmo6OnRvTmF0aXZl
KGluZm8uSG9sZGVyKCkpOwogICAgIFRlc3RPYmoqIHYgPSBWOFRlc3RPYmo6Okhhc0luc3RhbmNl
KHZhbHVlKSA/IFY4VGVzdE9iajo6dG9OYXRpdmUodjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2Fz
dCh2YWx1ZSkpIDogMDsKICAgICBpbXAtPnNldFRlc3RPYmpBdHRyKFdURjo6Z2V0UHRyKHYpKTsK
QEAgLTEwOTQsNiArMTA5Nyw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gTWV0aG9k
V2l0aEFyZ3NDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogc3RhdGljIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBvYmpNZXRob2RDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoub2JqTWV0aG9kIik7CisgICAgRmVh
dHVyZU9ic2VydmVyOjpvYnNlcnZlKGFjdGl2ZURPTVdpbmRvdyhCaW5kaW5nU3RhdGU6Omluc3Rh
bmNlKCkpLCBGZWF0dXJlVHJhY2tlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9
IFY4VGVzdE9iajo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgcmV0dXJuIHRvVjgoaW1w
LT5vYmpNZXRob2QoKSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQpAQCAt
MTkyOCw3ICsxOTMyLDcgQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hl
ZEF0dHJpYnV0ZSBWOFRlc3RPYmpBdHRyc1tdID0gewogICAgIHsidW5zaWduZWRMb25nTG9uZ0F0
dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyR2V0dGVyLCBU
ZXN0T2JqVjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5v
IGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0
YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3Rh
bmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUgJ3N0cmluZ0F0dHInIChUeXBlOiAnYXR0cmlidXRl
JyBFeHRBdHRyOiAnJykKICAgICB7InN0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c3Ry
aW5nQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyQXR0clNldHRl
ciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRF
RkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAv
KiBvbiBpbnN0YW5jZSAqL30sCi0gICAgLy8gQXR0cmlidXRlICd0ZXN0T2JqQXR0cicgKFR5cGU6
ICdhdHRyaWJ1dGUnIEV4dEF0dHI6ICcnKQorICAgIC8vIEF0dHJpYnV0ZSAndGVzdE9iakF0dHIn
IChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnTWVhc3VyZUFzJykKICAgICB7InRlc3RPYmpB
dHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0ckdldHRlciwgVGVzdE9ialY4
SW50ZXJuYWw6OnRlc3RPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCiAgICAgLy8g
QXR0cmlidXRlICdYTUxPYmpBdHRyJyAoVHlwZTogJ2F0dHJpYnV0ZScgRXh0QXR0cjogJycpCiAg
ICAgeyJYTUxPYmpBdHRyIiwgVGVzdE9ialY4SW50ZXJuYWw6OlhNTE9iakF0dHJBdHRyR2V0dGVy
LCBUZXN0T2JqVjhJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJTZXR0ZXIsIDAgLyogbm8gZGF0YSAq
Lywgc3RhdGljX2Nhc3Q8djg6OkFjY2Vzc0NvbnRyb2w+KHY4OjpERUZBVUxUKSwgc3RhdGljX2Nh
c3Q8djg6OlByb3BlcnR5QXR0cmlidXRlPih2ODo6Tm9uZSksIDAgLyogb24gaW5zdGFuY2UgKi99
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmExZjg4
OWVjODc1YWM2MTZhMWI1MjhjODYxMmM4ZDgxODZkMzA4MTUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAKQEAgLTAsMCArMSw2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEdPT0dMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCisKKyNp
bmNsdWRlICJET01XaW5kb3cuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhp
c3RvZ3JhbVN1cHBvcnQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworRmVhdHVyZU9ic2VydmVyOjpGZWF0dXJlT2JzZXJ2ZXIoKQorICAgIDogbV9mZWF0dXJl
TWFzaygwKQoreworfQorCitGZWF0dXJlT2JzZXJ2ZXI6On5GZWF0dXJlT2JzZXJ2ZXIoKQorewor
ICAgIC8vIFdlIGFsd2F5cyBsb2cgUGFnZURlc3RydWN0aW9uIHNvIHRoYXQgd2UgaGF2ZSBhIHNj
YWxlIGZvciB0aGUgcmVzdCBvZiB0aGUgZmVhdHVyZXMuCisgICAgSGlzdG9ncmFtU3VwcG9ydDo6
aGlzdG9ncmFtRW51bWVyYXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgUGFnZURlc3Ry
dWN0aW9uLCBOdW1iZXJPZkZlYXR1cmVzKTsKKworICAgIGlmICghbV9mZWF0dXJlTWFzaykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBOdW1iZXJPZkZlYXR1cmVz
OyArK2kpIHsKKyAgICAgICAgaWYgKG1fZmVhdHVyZU1hc2sgJiAoMSA8PCBpKSkKKyAgICAgICAg
ICAgIEhpc3RvZ3JhbVN1cHBvcnQ6Omhpc3RvZ3JhbUVudW1lcmF0aW9uKCJXZWJDb3JlLkZlYXR1
cmVPYnNlcnZlciIsIGksIE51bWJlck9mRmVhdHVyZXMpOworICAgIH0KK30KKwordm9pZCBGZWF0
dXJlT2JzZXJ2ZXI6Om9ic2VydmUoRE9NV2luZG93KiBkb21XaW5kb3csIEZlYXR1cmUgZmVhdHVy
ZSkKK3sKKyAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBkb21XaW5kb3ctPmRvY3VtZW50KCk7Cisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgUGFnZSogcGFnZSA9IGRv
Y3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICBw
YWdlLT5mZWF0dXJlT2JzZXJ2ZXIoKS0+ZGlkT2JzZXJ2ZShmZWF0dXJlKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJl
T2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZWIyZDhkZjg2NmJmZWNjYjNmMTY4ODFiOGI5MmI2MGIzNjRjMTU4YwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmgKQEAgLTAsMCAr
MSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUsIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEdPT0dMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09N
UFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIEZlYXR1cmVPYnNlcnZlcl9oCisjZGVmaW5lIEZlYXR1cmVPYnNl
cnZlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBET01XaW5kb3c7CisKK2NsYXNzIEZlYXR1cmVPYnNlcnZlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRmVhdHVyZU9ic2VydmVyKTsKK3B1YmxpYzoKKyAgICBGZWF0
dXJlT2JzZXJ2ZXIoKTsKKyAgICB+RmVhdHVyZU9ic2VydmVyKCk7CisKKyAgICBlbnVtIEZlYXR1
cmUgeworICAgICAgICBQYWdlRGVzdHJ1Y3Rpb24sCisgICAgICAgIExlZ2FjeU5vdGlmaWNhdGlv
bnMsCisgICAgICAgIC8vIEFkZCBuZXcgZmVhdHVyZXMgYWJvdmUgdGhpcyBsaW5lLgorICAgICAg
ICBOdW1iZXJPZkZlYXR1cmVzLCAvLyBUaGlzIGVudW0gdmFsdWUgbXVzdCBiZSBsYXN0LgorICAg
IH07CisKKyAgICBzdGF0aWMgdm9pZCBvYnNlcnZlKERPTVdpbmRvdyosIEZlYXR1cmUpOworCitw
cml2YXRlOgorICAgIHZvaWQgZGlkT2JzZXJ2ZShGZWF0dXJlIGZlYXR1cmUpCisgICAgeworICAg
ICAgICBDT01QSUxFX0FTU0VSVChzaXplb2YobV9mZWF0dXJlTWFzaykgKiA4ID49IE51bWJlck9m
RmVhdHVyZXMsIEZlYXR1cmVzTXVzdE5vdE92ZXJmbG93Qml0bWFzayk7CisgICAgICAgIEFTU0VS
VChmZWF0dXJlICE9IFBhZ2VEZXN0cnVjdGlvbik7IC8vIFBhZ2VEZXN0cnVjdGlvbiBpcyByZXNl
cnZlZCBhcyBhIHNjYWxpbmcgZmFjdG9yLgorICAgICAgICBBU1NFUlQoZmVhdHVyZSA8IE51bWJl
ck9mRmVhdHVyZXMpOworICAgICAgICBtX2ZlYXR1cmVNYXNrIHw9IDEgPDwgc3RhdGljX2Nhc3Q8
aW50PihmZWF0dXJlKTsKKyAgICB9CisKKyAgICBpbnQgbV9mZWF0dXJlTWFzazsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKyAgICAKKyNlbmRpZiAvLyBGZWF0dXJlT2JzZXJ2ZXJfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuaAppbmRleCA2ZjRmZTA1YmVhYTU2MzM3YzY2NzUwMWE1MDZiMmY3MmFhYmY4N2Fk
Li4yMzhmMzRiMDFhMjFjY2E0MzA2YjI1MmIzMGIyMmM5YTkyYjFlMzcyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aApAQCAtMjEsNiArMjEsNyBAQAogI2lmbmRlZiBQYWdlX2gKICNkZWZpbmUgUGFnZV9oCiAKKyNp
bmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlclR5cGVzLmgi
CiAjaW5jbHVkZSAiRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJMYXlvdXRUeXBlcy5oIgpAQCAt
MTk2LDYgKzE5Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgUHJvZ3Jlc3NUcmFj
a2VyKiBwcm9ncmVzcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvZ3Jlc3MuZ2V0KCk7IH0KICAgICAg
ICAgQmFja0ZvcndhcmRDb250cm9sbGVyKiBiYWNrRm9yd2FyZCgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja0ZvcndhcmRDb250cm9sbGVyLmdldCgpOyB9CiAKKyAgICAgICAgRmVhdHVyZU9ic2VydmVy
KiBmZWF0dXJlT2JzZXJ2ZXIoKSB7IHJldHVybiAmbV9mZWF0dXJlT2JzZXJ2ZXI7IH0KKwogICAg
ICAgICBlbnVtIFZpZXdNb2RlIHsKICAgICAgICAgICAgIFZpZXdNb2RlSW52YWxpZCwKICAgICAg
ICAgICAgIFZpZXdNb2RlV2luZG93ZWQsCkBAIC0zODcsNiArMzkwLDggQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBFZGl0b3JDbGllbnQqIG1fZWRpdG9yQ2xpZW50OwogICAgICAgICBW
YWxpZGF0aW9uTWVzc2FnZUNsaWVudCogbV92YWxpZGF0aW9uTWVzc2FnZUNsaWVudDsKIAorICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXIgbV9mZWF0dXJlT2JzZXJ2ZXI7CisKICAgICAgICAgaW50IG1f
ZnJhbWVDb3VudDsKICAgICAgICAgU3RyaW5nIG1fZ3JvdXBOYW1lOwogICAgICAgICBib29sIG1f
b3BlbmVkQnlET007Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164422</attachid>
            <date>2012-09-17 11:22:34 -0700</date>
            <delta_ts>2012-09-17 11:53:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96837-20120917112203.patch</filename>
            <type>text/plain</type>
            <size>30015</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4Nzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2JkNjFiMmQxMGNkZjk3
ZmY0MjM4ZDFhYTE0MmYwMzQ3NGVmNmEwNS4uMGE2NDdiODBlMmQ2YmYyODE4YzE5MzA3NTY0MDY3
MmFmZjE1OTg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTA5LTE3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgV2Ugc2hvdWxkIG1ha2UgY29s
bGVjdGluZyBtZXRyaWNzIGVhc2llciBieSBhZGRpbmcgYW4gSURMIGF0dHJpYnV0ZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4MzcKKworICAgICAg
ICBSZXZpZXdlZCBieSBLZW50YXJvIEhhcmEuCisKKyAgICAgICAgQ3VycmVudGx5IGl0IGlzIHRv
byBoYXJkIHRvIHNldCB1cCBhIGdvb2QgbWVhc3VyZW1lbnQgZXhwZXJpbWVudCB0byBzZWUKKyAg
ICAgICAgd2hldGhlciB3ZSBjYW4gc2FmZWx5IHJlbW92ZSBhIGZlYXR1cmUgKGluY2x1ZGluZyB2
ZW5kb3ItcHJlZml4ZWQKKyAgICAgICAgZmVhdHVyZXMpLiBUaGlzIHBhdGNoIGludHJvZHVjZXMg
dGhlIFtWOE1lYXN1cmVBc10gSURMIGF0dHJpYnV0ZSB0byBtYWtlCisgICAgICAgIHRoYXQgcHJv
Y2VzcyBlYXNpZXIuCisKKyAgICAgICAgV2hlbiB5b3UgYWRkIHRoZSBbVjhNZWFzdXJlQXNdIElE
TCBwcm9wZXJ0eSB0byBhbiBBUEksIHdlJ2xsIGNvdW50IHdoYXQKKyAgICAgICAgZnJhY3Rpb24g
b2YgUGFnZSBvYmplY3RzIHVzZWQgdGhhdCBBUEkuCisKKyAgICAgICAgKiBNb2R1bGVzL25vdGlm
aWNhdGlvbnMvRE9NV2luZG93Tm90aWZpY2F0aW9ucy5pZGw6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0ZUZlYXR1cmVPYnNl
cnZhdGlvbik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJHZXR0ZXIpOgorICAgICAgICAo
R2VuZXJhdGVSZXBsYWNlYWJsZUF0dHJTZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVOb3JtYWxB
dHRyU2V0dGVyKToKKyAgICAgICAgKEdlbmVyYXRlT3ZlcmxvYWRlZEZ1bmN0aW9uQ2FsbGJhY2sp
OgorICAgICAgICAoR2VuZXJhdGVGdW5jdGlvbkNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRl
Q29uc3RydWN0b3JDYWxsYmFjayk6CisgICAgICAgIChHZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JD
YWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGw6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUZXN0T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRlc3RPYmpWOEludGVybmFsOjp0ZXN0T2JqQXR0ckF0dHJTZXR0ZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGVzdE9ialY4SW50ZXJuYWw6Om9iak1ldGhvZENhbGxiYWNrKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6
UGFnZTo6ZmVhdHVyZU9ic2VydmVyKToKKyAgICAgICAgKFBhZ2UpOgorCiAyMDEyLTA5LTE3ICBa
YW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0d0a10gUmVt
b3ZlIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3Igc3RhYmxlIGZlYXR1cmVzIHRoYXQgYXJlIGN1
cnJlbnRseSBlbmFibGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkyODEyM2MyOWRjNGZiZThl
MjFjMDQyYjk2NWVmOGQwNGJhZWFjZTIuLmY3NGJhMmQyOGY3YjQ4NTI2NzYwODYwYThjOTdlMDEy
YTA1NGE0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xNjg1LDYgKzE2ODUsNyBAQCBTRVQo
V2ViQ29yZV9TT1VSQ0VTCiAgICAgcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKICAgICBwYWdlL0V2
ZW50SGFuZGxlci5jcHAKICAgICBwYWdlL0V2ZW50U291cmNlLmNwcAorICAgIHBhZ2UvRmVhdHVy
ZU9ic2VydmVyLmNwcAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAogICAgIHBhZ2UvRnJh
bWUuY3BwCiAgICAgcGFnZS9GcmFtZUFjdGlvblNjaGVkdWxlci5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDFmMjRiNzM1NWI2MzcyYzhmMjAzN2JiNWYwMmMyZDZlMzQ1ZTUw
NWQuLmNhNmRhYmNmNTE0NDI2MWI0MDk3NmQ1YTA5YWNhNzJhZTNjODg0NTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzk2OCw2ICszOTY4LDggQEAgd2ViY29yZV9zb3VyY2Vz
ICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNv
dXJjZS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRy
b2xsZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0RpcmVjdGlvbi5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01XaW5kb3dOb3Rp
ZmljYXRpb25zLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbm90aWZpY2F0aW9ucy9ET01X
aW5kb3dOb3RpZmljYXRpb25zLmlkbAppbmRleCBlYThhMTI5YzU3YTFkYzY4NjViMTU1OGM5ZTNj
NzQ2NTNkOWRmMjk2Li45ODdiZWIwYTA3MGZlZjI5ZTQxZDQ0MzVjN2E4YWZiNDE2NGQ1MjMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL25vdGlmaWNhdGlvbnMvRE9NV2luZG93
Tm90aWZpY2F0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9ub3RpZmljYXRp
b25zL0RPTVdpbmRvd05vdGlmaWNhdGlvbnMuaWRsCkBAIC0zMSw3ICszMSw3IEBAIG1vZHVsZSB3
aW5kb3cgewogICAgICAgICBTdXBwbGVtZW50YWw9RE9NV2luZG93CiAgICAgXSBET01XaW5kb3dO
b3RpZmljYXRpb25zIHsKICNpZiBkZWZpbmVkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykg
JiYgRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TCi0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbVjhFbmFibGVkQXRSdW50aW1lXSBOb3RpZmljYXRpb25DZW50ZXIgd2Via2l0Tm90aWZpY2F0
aW9uczsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtWOEVuYWJsZWRBdFJ1bnRpbWUsIFY4
TWVhc3VyZUFzPUxlZ2FjeU5vdGlmaWNhdGlvbnNdIE5vdGlmaWNhdGlvbkNlbnRlciB3ZWJraXRO
b3RpZmljYXRpb25zOwogI2VuZGlmCiAjaWYgZGVmaW5lZChFTkFCTEVfTk9USUZJQ0FUSU9OUykg
JiYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICAgICAgYXR0cmlidXRlIE5vdGlmaWNhdGlvbkNv
bnN0cnVjdG9yIE5vdGlmaWNhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1Rhcmdl
dC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGU2NWFhYmNjZjNhN2U4OGQw
MzE1MTNjYjA4MjU0YjljZDVmMjhiYTMuLjJjY2EyMWU5NDI3NmNmMWFhN2I1ODNlYWYwNWU2Njhm
YzI5ZDk3Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291
cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtODY1LDYgKzg2NSw3IEBAIFNPVVJDRVMgKz0gXAog
ICAgIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIFwKICAgICBwYWdlL0V2ZW50SGFuZGxlci5jcHAg
XAogICAgIHBhZ2UvRXZlbnRTb3VyY2UuY3BwIFwKKyAgICBwYWdlL0ZlYXR1cmVPYnNlcnZlci5j
cHAgXAogICAgIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBcCiAgICAgcGFnZS9GcmFtZS5jcHAg
XAogICAgIHBhZ2UvRnJhbWVBY3Rpb25TY2hlZHVsZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRl
eCA0MDg1MzExOWQ0NjJjY2FlOGYzMGIyMmE0ZWY5NmQ1YzIxYTUyYzlmLi5hZGMwYjI5NDQxNjhj
NmM2NmRiYzA3ZTk1ZmYzZDY0Yjg0YmJiYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0yMzIsNiAr
MjMyLDcgQEAKICAgICAgICAgICAgICdwYWdlL0RyYWdTdGF0ZS5oJywKICAgICAgICAgICAgICdw
YWdlL0VkaXRvckNsaWVudC5oJywKICAgICAgICAgICAgICdwYWdlL0V2ZW50SGFuZGxlci5oJywK
KyAgICAgICAgICAgICdwYWdlL0ZlYXR1cmVPYnNlcnZlci5oJywKICAgICAgICAgICAgICdwYWdl
L0ZvY3VzQ29udHJvbGxlci5oJywKICAgICAgICAgICAgICdwYWdlL0ZvY3VzRGlyZWN0aW9uLmgn
LAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUuaCcsCkBAIC0zMTEzLDYgKzMxMTQsNyBAQAogICAg
ICAgICAgICAgJ3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCcsCiAgICAgICAgICAgICAncGFnZS9FdmVu
dFNvdXJjZS5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRXZlbnRTb3VyY2UuaCcsCisgICAgICAg
ICAgICAncGFnZS9GZWF0dXJlT2JzZXJ2ZXIuY3BwJywKICAgICAgICAgICAgICdwYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAnLAogICAgICAgICAgICAgJ3BhZ2UvRnJhbWUuY3BwJywKICAgICAgICAg
ICAgICdwYWdlL0ZyYW1lQWN0aW9uU2NoZWR1bGVyLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDA2Mjc0Yjk0YmZjOTAzNTUzM2E4NjE0
ZGUxNzI2Y2M3MTUwNWNjMjEuLjg4NTBjZGM3OTA1OTQ5NWFjNzQzYTk3MmY1NjFiYWQ4NTc3NDkw
YmUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBA
IC0yNzA1MSw2ICsyNzA1MSwxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJ
UmVsYXRpdmVQYXRoPSIuLlxwYWdlXEZlYXR1cmVPYnNlcnZlci5jcHAiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcRmVhdHVyZU9ic2VydmVy
LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBh
Z2VcRm9jdXNDb250cm9sbGVyLmNwcCIKIAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTVkNmQ3NDc1
Zjc4NmQ4OGExM2U4MWMyZmY5ZGY1Y2E4MTFlZDcwMC4uMjBkYjhmNDQ0MTRjZWFlYTRjZjU4ZGUz
MTE0Y2I3YzFkYjc3ODUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzY5MCw2ICszNjkwLDggQEAKIAkJOTdDMDc4NTAxMTY1
RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3QzA3ODRGMTE2NUQ1QkUwMDNBMzJFRiAvKiBTdWZmaXhUcmVl
LmggKi87IH07CiAJCTk3QzQ3MURCMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQ
b2xpY3kuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdDNDcxRDkxMkY5MjVCQzAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgKi87
IH07CiAJCTk3QzQ3MURDMTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3ku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3QzQ3MURB
MTJGOTI1QkQwMDg2MzU0QiAvKiBDb250ZW50U2VjdXJpdHlQb2xpY3kuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5N0M3NDAxNDE2MDNGN0ExMDAx
MUZGMkQgLyogRmVhdHVyZU9ic2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk3Qzc0MDEyMTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2Jz
ZXJ2ZXIuY3BwICovOyB9OworCQk5N0M3NDAxNTE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9i
c2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
N0M3NDAxMzE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2VydmVyLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdEMkFEMDMxNEI4MjNBNjAw
OTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RDJBRDAxMTRCODIzQTYwMDkzREYzMiAvKiBET01XaW5k
b3dQcm9wZXJ0eS5jcHAgKi87IH07CiAJCTk3RDJBRDA0MTRCODIzQTYwMDkzREYzMiAvKiBET01X
aW5kb3dQcm9wZXJ0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTdEMkFEMDIxNEI4MjNBNjAwOTNERjMyIC8qIERPTVdpbmRvd1Byb3BlcnR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTdEQ0UyMDEx
MDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAv
KiBIaXN0b3J5Q29udHJvbGxlci5jcHAgKi87IH07CkBAIC0xMDkxNSw2ICsxMDkxNyw4IEBACiAJ
CTk3QzFGNTUyMTIyODU1Q0IwMEVERTYxNiAvKiBIVE1MVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gSFRNTFRva2VuLmg7IHBhdGggPSBwYXJzZXIvSFRNTFRva2VuLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3QzQ3MUQ5MTJGOTI1QkMwMDg2MzU0QiAv
KiBDb250ZW50U2VjdXJpdHlQb2xpY3kuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTdDNDcxREExMkY5MjVCRDAwODYzNTRCIC8qIENvbnRlbnRTZWN1cml0eVBvbGlj
eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb250ZW50U2VjdXJpdHlQb2xp
Y3kuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTdDNzQwMTIxNjAzRjdBMTAwMTFG
RjJEIC8qIEZlYXR1cmVPYnNlcnZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGZWF0dXJlT2JzZXJ2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5N0M3NDAxMzE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5N0QyQUQwMTE0QjgyM0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJv
cGVydHkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRE9NV2luZG93
UHJvcGVydHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0QyQUQwMjE0Qjgy
M0E2MDA5M0RGMzIgLyogRE9NV2luZG93UHJvcGVydHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NV2luZG93UHJvcGVydHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTdEQ0UxRkYxMDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvcnlDb250cm9sbGVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1ODE0LDYgKzE1ODE4LDggQEAKIAkJ
CQlFMEZFRjM3MUIxN0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuaCAqLywKIAkJCQlFMEZF
RjM3MUIwN0M1M0VBQzFDMUZCRUUgLyogRXZlbnRTb3VyY2UuaWRsICovLAogCQkJCTE0OTkzQkUz
MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuY3BwICovLAorCQkJCTk3Qzc0MDEy
MTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIuY3BwICovLAorCQkJCTk3Qzc0MDEz
MTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIuaCAqLywKIAkJCQkxNDk5M0JFNDBC
MkYyQjFDMDA1MDQ5N0YgLyogRm9jdXNDb250cm9sbGVyLmggKi8sCiAJCQkJMDYyMjg3ODMwQjRE
QjMyMjAwMEMzNERGIC8qIEZvY3VzRGlyZWN0aW9uLmggKi8sCiAJCQkJNjVCRjAyMjkwOTc0ODE2
MzAwQzQzMTk2IC8qIEZyYW1lLmNwcCAqLywKQEAgLTIzNDA2LDYgKzIzNDEyLDcgQEAKIAkJCQk4
NDczMEQ4RDEyNDhGMEIzMDBEM0E5QzkgLyogRkVUdXJidWxlbmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRDMxNjA5NTEyQjAyNkY3MDBDMUEzNTkgLyogRkZUQ29udm9sdmVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGRDMxNjA5NzEyQjAyNkY3MDBDMUEzNTkgLyogRkZURnJhbWUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTk3Qzc0MDE1MTYwM0Y3QTEwMDExRkYyRCAvKiBGZWF0dXJlT2JzZXJ2ZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTk3NkQ2QzgxMTIyQjhBM0QwMDFGRDFGNyAvKiBGaWxlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4OTNDNDdBNzEyMzg5MDhCMDAyQjNEODYgLyogRmlsZUNhbGxi
YWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwNjZDNzcyQjBBQjYwM0I3MDAyMzhDQzQgLyogRmls
ZUNob29zZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMjY2NTgsNiArMjY2NjUsNyBAQAogCQkJCUZE
MzE2MDk0MTJCMDI2RjcwMEMxQTM1OSAvKiBGRlRDb252b2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRkQzMTYwOTYxMkIwMjZGNzAwQzFBMzU5IC8qIEZGVEZyYW1lLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZEMzE2MEMwMTJCMDI3MkEwMEMxQTM1OSAvKiBGRlRGcmFtZU1hYy5jcHAgaW4g
U291cmNlcyAqLywKKwkJCQk5N0M3NDAxNDE2MDNGN0ExMDAxMUZGMkQgLyogRmVhdHVyZU9ic2Vy
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk3NkQ2QzgwMTIyQjhBM0QwMDFGRDFGNyAvKiBG
aWxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNEZFOUU1MEI1Q0E1MzkwMDNFNEE3MyAvKiBG
aWxlQ2hvb3Nlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU2MTEyMkNBMDY0MDAzQUFC
REEgLyogRmlsZUVudHJ5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCBiOWY0MzY0YmZlMzY3
YzQ1YTdhYjZiZWM2NDkzYTA0MWJiNjU1MzVlLi4wNjgxMDU2MDA2MzIxY2JhMjE3MDAyNDUzOGFi
ZDAxNzVmZDJhMGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtODEzLDYgKzgxMywxOCBAQCBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+ICR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3RvckdldHRlcih2ODo6TG9jYWw8
djg6OlN0cgogRU5ECiB9CiAKK3N1YiBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbgoreworICAg
IG15ICRtZWFzdXJlQXMgPSBzaGlmdDsKKworICAgIGlmICgkbWVhc3VyZUFzKSB7CisgICAgICAg
IEFkZFRvSW1wbEluY2x1ZGVzKCJGZWF0dXJlT2JzZXJ2ZXIuaCIpOworICAgICAgICByZXR1cm4g
IiAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0
ZTo6aW5zdGFuY2UoKSksIEZlYXR1cmVPYnNlcnZlcjo6JHttZWFzdXJlQXN9KTtcbiI7CisgICAg
fQorCisgICAgcmV0dXJuICIiOworfQorCiBzdWIgR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyCiB7
CiAgICAgbXkgJGF0dHJpYnV0ZSA9IHNoaWZ0OwpAQCAtODM2LDggKzg0OCw5IEBAIHN1YiBHZW5l
cmF0ZU5vcm1hbEF0dHJHZXR0ZXIKICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCA8PEVORCk7
CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+ICR7YXR0ck5hbWV9QXR0ckdldHRlcih2ODo6
TG9jYWw8djg6OlN0cmluZz4gbmFtZSwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsK
LSAgICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJGF0dHJOYW1lLl9nZXRcIik7Cisg
ICAgSU5DX1NUQVRTKCJET00uJGltcGxDbGFzc05hbWUuJGF0dHJOYW1lLl9nZXQiKTsKIEVORAor
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRh
dHRyRXh0LT57IlY4TWVhc3VyZUFzIn0pKTsKIAogICAgIGlmICgkc3ZnTmF0aXZlVHlwZSkgewog
ICAgICAgICBteSAkc3ZnV3JhcHBlZE5hdGl2ZVR5cGUgPSAkY29kZUdlbmVyYXRvci0+R2V0U1ZH
V3JhcHBlZFR5cGVOZWVkaW5nVGVhck9mZigkaW1wbENsYXNzTmFtZSk7CkBAIC0xMDg1LDYgKzEw
OTgsNyBAQCBzdGF0aWMgdm9pZCAke2ltcGxDbGFzc05hbWV9UmVwbGFjZWFibGVBdHRyU2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCB2OAogewogICAgIElOQ19TVEFUUygiRE9NLiRp
bXBsQ2xhc3NOYW1lLnJlcGxhY2VhYmxlLl9zZXQiKTsKIEVORAorICAgIHB1c2goQGltcGxDb250
ZW50RGVjbHMsIEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRkYXRhTm9kZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57IlY4TWVhc3VyZUFzIn0pKTsKIAogICAgIGlmICgkaW1wbENsYXNzTmFtZSBl
cSAiRE9NV2luZG93IiB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDaGVja1Nl
Y3VyaXR5In0pIHsKICAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkZyYW1lLmgiKTsKQEAgLTEx
MTcsNiArMTEzMSw3IEBAIHN1YiBHZW5lcmF0ZU5vcm1hbEF0dHJTZXR0ZXIKIAogICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICJzdGF0aWMgdm9pZCAke2F0dHJOYW1lfUF0dHJTZXR0ZXIodjg6
OkxvY2FsPHY4OjpTdHJpbmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKVxue1xuIik7CiAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05hbWUuJGF0dHJOYW1lLl9zZXRc
Iik7XG4iKTsKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZlYXR1cmVPYnNl
cnZhdGlvbigkYXR0cmlidXRlLT5zaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE1l
YXN1cmVBcyJ9KSk7CiAKICAgICAjIElmIHRoZSAiU3RyaWN0VHlwZUNoZWNraW5nIiBleHRlbmRl
ZCBhdHRyaWJ1dGUgaXMgcHJlc2VudCwgYW5kIHRoZSBhdHRyaWJ1dGUncyB0eXBlIGlzIGFuCiAg
ICAgIyBpbnRlcmZhY2UgdHlwZSwgdGhlbiBpZiB0aGUgaW5jb21pbmcgdmFsdWUgZG9lcyBub3Qg
aW1wbGVtZW50IHRoYXQgaW50ZXJmYWNlLCBhIFR5cGVFcnJvciBpcwpAQCAtMTQyMyw2ICsxNDM4
LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiAke25hbWV9Q2FsbGJhY2soY29uc3Qg
djg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoXCJET00uJGltcGxDbGFzc05h
bWUuJG5hbWVcIik7CiBFTkQKKyAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUZl
YXR1cmVPYnNlcnZhdGlvbigkZnVuY3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57IlY4TWVhc3VyZUFzIn0pKTsKIAogICAgIGZvcmVhY2ggbXkgJG92ZXJsb2FkIChAeyRmdW5j
dGlvbi0+e292ZXJsb2Fkc319KSB7CiAgICAgICAgIG15ICgkbnVtTWFuZGF0b3J5UGFyYW1zLCAk
cGFyYW1ldGVyc0NoZWNrKSA9IEdlbmVyYXRlRnVuY3Rpb25QYXJhbWV0ZXJzQ2hlY2soJG92ZXJs
b2FkKTsKQEAgLTE0NzMsNiArMTQ4OSw3IEBAIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4g
JHtuYW1lfUNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKFwiRE9NLiRpbXBsQ2xhc3NOYW1lLiRuYW1lXCIpOwogRU5ECisgICAgcHVzaChAaW1wbENv
bnRlbnREZWNscywgR2VuZXJhdGVGZWF0dXJlT2JzZXJ2YXRpb24oJGZ1bmN0aW9uLT5zaWduYXR1
cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJWOE1lYXN1cmVBcyJ9KSk7CiAKICAgICBwdXNoKEBp
bXBsQ29udGVudERlY2xzLCBHZW5lcmF0ZUFyZ3VtZW50c0NvdW50Q2hlY2soJGZ1bmN0aW9uLCAk
ZGF0YU5vZGUpKTsKIApAQCAtMTc5OSwxMyArMTgxNiwxNSBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1
Y3RvckNhbGxiYWNrCiAgICAgICAgIH0KICAgICB9CiAKKyAgICBteSAkbWF5YmVPYnNlcnZlRmVh
dHVyZSA9IEdlbmVyYXRlRmVhdHVyZU9ic2VydmF0aW9uKCRmdW5jdGlvbi0+c2lnbmF0dXJlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhNZWFzdXJlQXMifSk7CisKICAgICBteSBAYmVmb3JlQXJn
dW1lbnRMaXN0OwogICAgIG15IEBhZnRlckFyZ3VtZW50TGlzdDsKICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgPDxFTkQpOwogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4JHtpbXBsQ2xhc3NOYW1lfTo6
Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQogewogICAgIElO
Q19TVEFUUygiRE9NLiR7aW1wbENsYXNzTmFtZX0uQ29uc3RydWN0b3IiKTsKLQorICAgICR7bWF5
YmVPYnNlcnZlRmVhdHVyZX0KICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1Y3RDYWxsKCkpCiAgICAg
ICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25zdHJ1Y3RvciBjYW5ub3Qg
YmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CiAKQEAgLTE5NzYsNiArMTk5NSw4IEBAIHN1YiBH
ZW5lcmF0ZU5hbWVkQ29uc3RydWN0b3JDYWxsYmFjawogICAgICAgICB9CiAgICAgfQogCisgICAg
bXkgJG1heWJlT2JzZXJ2ZUZlYXR1cmUgPSBHZW5lcmF0ZUZlYXR1cmVPYnNlcnZhdGlvbigkZnVu
Y3Rpb24tPnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4TWVhc3VyZUFzIn0pOwor
CiAgICAgbXkgQGJlZm9yZUFyZ3VtZW50TGlzdDsKICAgICBteSBAYWZ0ZXJBcmd1bWVudExpc3Q7
CiAKQEAgLTE5OTYsNyArMjAxNyw3IEBAIEVORAogc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOCR7aW1wbENsYXNzTmFtZX1Db25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVu
dHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uJHtpbXBsQ2xhc3NOYW1lfS5Db25zdHJ1
Y3RvciIpOwotCisgICAgJHttYXliZU9ic2VydmVGZWF0dXJlfQogICAgIGlmICghYXJncy5Jc0Nv
bnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCJET00gb2JqZWN0
IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy50eHQKaW5kZXgg
MzhkZTY5ZDRlZGRjOWQzNWNiOTUzMWQxMWJlMDk4YjgzOGQyMDc5Mi4uZGYzZDU2ZDliZDk1ODhk
ZDMzMDViNmMyMDJmNzUxNjE5ODZmNzZjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMudHh0CkBAIC0xMTksNSArMTE5LDYgQEAgVjhEb05v
dENoZWNrU2lnbmF0dXJlCiBWOEVuYWJsZWRBdFJ1bnRpbWU9KgogVjhFbmFibGVkUGVyQ29udGV4
dD0qCiBWOEdlbmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290fEltcGxPd25lclJvb3R8
SW1wbE93bmVyTm9kZVJvb3R8SW1wbEJhc2VSb290CitWOE1lYXN1cmVBcz0qCiBWOFJlYWRPbmx5
CiBWOFVuZm9yZ2VhYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVGVzdE9iai5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVGVzdE9iai5pZGwKaW5kZXggMTg3NzVmNzAzZDVlMDc0YmYyMjljZDI3ZjBmYWMzNjRlOGY4
MDJkMy4uZjJkMWZlODEwZDFiYWVkMTc0NTZjN2IxNDAxYTk3ODY3MWJkM2ZjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmouaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbApAQCAtNDks
NyArNDksNyBAQCBtb2R1bGUgdGVzdCB7CiAgICAgICAgIGF0dHJpYnV0ZSBsb25nIGxvbmcgICAg
ICAgICAgICAgICAgbG9uZ0xvbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgdW5zaWduZWQgbG9u
ZyBsb25nICAgICAgIHVuc2lnbmVkTG9uZ0xvbmdBdHRyOwogICAgICAgICBhdHRyaWJ1dGUgRE9N
U3RyaW5nICAgICAgICAgICAgICAgIHN0cmluZ0F0dHI7Ci0gICAgICAgIGF0dHJpYnV0ZSBUZXN0
T2JqICAgICAgICAgICAgICAgICAgdGVzdE9iakF0dHI7CisgICAgICAgIGF0dHJpYnV0ZSBbVjhN
ZWFzdXJlQXM9VGVzdEZlYXR1cmVdIFRlc3RPYmogdGVzdE9iakF0dHI7CiAKICAgICAgICAgSlMs
IFY4CiAgICAgICAgIC8vIFdLX3VjZmlyc3QsIFdLX2xjZmlyc3QgZXhjZXB0aW9uYWwgY2FzZXMu
CkBAIC03NSw3ICs3NSw3IEBAIG1vZHVsZSB0ZXN0IHsKICAgICAgICAgdm9pZCAgICB2b2lkTWV0
aG9kV2l0aEFyZ3MoaW4gbG9uZyBsb25nQXJnLCBpbiBET01TdHJpbmcgc3RyQXJnLCBpbiBUZXN0
T2JqIG9iakFyZyk7CiAgICAgICAgIGxvbmcgICAgbG9uZ01ldGhvZCgpOwogICAgICAgICBsb25n
ICAgIGxvbmdNZXRob2RXaXRoQXJncyhpbiBsb25nIGxvbmdBcmcsIGluIERPTVN0cmluZyBzdHJB
cmcsIGluIFRlc3RPYmogb2JqQXJnKTsKLSAgICAgICAgVGVzdE9iaiBvYmpNZXRob2QoKTsKKyAg
ICAgICAgW1Y4TWVhc3VyZUFzPVRlc3RGZWF0dXJlXSBUZXN0T2JqIG9iak1ldGhvZCgpOwogICAg
ICAgICBUZXN0T2JqIG9iak1ldGhvZFdpdGhBcmdzKGluIGxvbmcgbG9uZ0FyZywgaW4gRE9NU3Ry
aW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogCiAgICAgICAgIHZvaWQgbWV0aG9kV2l0
aFNlcXVlbmNlQXJnKGluIHNlcXVlbmNlPFNjcmlwdFByb2ZpbGU+IHNlcXVlbmNlQXJnKTsKQEAg
LTk3LDcgKzk3LDcgQEAgbW9kdWxlIHRlc3QgewogCiAgICAgICAgIC8vICdDdXN0b20nIGV4dGVu
ZGVkIGF0dHJpYnV0ZQogICAgICAgICBhdHRyaWJ1dGUgW0N1c3RvbV0gbG9uZyAgICAgICAgICAg
IGN1c3RvbUF0dHI7Ci0gICAgICAgIFtDdXN0b21dIHZvaWQgY3VzdG9tTWV0aG9kKCk7CisgICAg
ICAgIFtDdXN0b20sIFY4TWVhc3VyZUFzPUN1c3RvbVRlc3RGZWF0dXJlXSB2b2lkIGN1c3RvbU1l
dGhvZCgpOwogICAgICAgICBbQ3VzdG9tXSB2b2lkIGN1c3RvbU1ldGhvZFdpdGhBcmdzKGluIGxv
bmcgbG9uZ0FyZywgaW4gRE9NU3RyaW5nIHN0ckFyZywgaW4gVGVzdE9iaiBvYmpBcmcpOwogCiAg
ICAgICAgIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihpbiBET01TdHJpbmcgdHlwZSwgCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJm
YWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuY3BwCmluZGV4IGFjODY4YWI5OWYxMjFlNTZhZDg5YjkxNmFiZGFjNDkxNDFlN2U2
NjEuLjRhNWVhNWJjOGU0YmNiMzM5OGZkNTExN2ZmMzEzM2M1YzdkNmNlN2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJ
bnRlcmZhY2UuY3BwCkBAIC0yNDIsNyArMjQyLDcgQEAgQ09NUElMRV9BU1NFUlQoMiA9PSBUZXN0
U3VwcGxlbWVudGFsOjpDT05TVF9JTVBMLCBUZXN0SW50ZXJmYWNlRW51bUNPTlNUX0lNUExJc1cK
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOFRlc3RJbnRlcmZhY2U6OmNvbnN0cnVjdG9yQ2FsbGJh
Y2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0
SW50ZXJmYWNlLkNvbnN0cnVjdG9yIik7Ci0KKyAgICAKICAgICBpZiAoIWFyZ3MuSXNDb25zdHJ1
Y3RDYWxsKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcigiRE9NIG9iamVjdCBjb25z
dHJ1Y3RvciBjYW5ub3QgYmUgY2FsbGVkIGFzIGEgZnVuY3Rpb24uIik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0
cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCA1ZWIwN2VlZjI0YTkxNjcyZmNhZmRjZjY4YTRi
MjQxYTMwNDQyM2Y5Li4wYThmZTQzZmM3MzU0ZTZjMTk3ZGUxM2NjNWY3OWRiNzlhZDNiODUwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFdy
YXBwZXJUeXBlSW5mbyBWOFRlc3ROYW1lZENvbnN0cnVjdG9yQ29uc3RydWN0b3I6OmluZm8gPSB7
IFY4VGVzdE5hbWVkQ29uc3RydWN0CiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4VGVz
dE5hbWVkQ29uc3RydWN0b3JDb25zdHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMm
IGFyZ3MpCiB7CiAgICAgSU5DX1NUQVRTKCJET00uVGVzdE5hbWVkQ29uc3RydWN0b3IuQ29uc3Ry
dWN0b3IiKTsKLQorICAgIAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBi
ZSBjYWxsZWQgYXMgYSBmdW5jdGlvbi4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCmluZGV4IDU1OGE2NWFiNjU1
NjRmMjFlYWE2ZDU1OTAzMGQwYTA4YzkzYjUxNmEuLmY0YTRiNDUyZDY2ZTI1YzY5YWNjNTEzZTZh
YzdmNGM0NzVlMDQ1OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+IHZvaWQgVjhfVVNFKFQpIHsgfQogdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
VGVzdE5vZGU6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykK
IHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0Tm9kZS5Db25zdHJ1Y3RvciIpOwotCisgICAgCiAg
ICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxlZCBhcyBhIGZ1bmN0
aW9uLiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RPYmouY3BwCmluZGV4IGM0MzQxYjJhZWEyMTNiMGNkMjI0NWE0YjBmOTI1ZjI3
NWU4NTM5MzcuLjUwMjQyOGE3MTAwYzVmNzE2NjNjZjVjNjkxNTE2OWQ5NzIyMTU1MzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmou
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RP
YmouY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRE9NU3RyaW5nTGlzdC5oIgogI2lu
Y2x1ZGUgIkRpY3Rpb25hcnkuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCisjaW5jbHVk
ZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1M
TmFtZXMuaCIKICNpbmNsdWRlICJJREJCaW5kaW5nVXRpbGl0aWVzLmgiCkBAIC0yMjcsNiArMjI4
LDcgQEAgc3RhdGljIHZvaWQgc3RyaW5nQXR0ckF0dHJTZXR0ZXIodjg6OkxvY2FsPHY4OjpTdHJp
bmc+IG5hbWUsIHY4OjpMb2NhbDx2ODo6VmFsdWUKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gdGVzdE9iakF0dHJBdHRyR2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPiBuYW1lLCBjb25z
dCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmou
dGVzdE9iakF0dHIuX2dldCIpOworICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShhY3RpdmVE
T01XaW5kb3coQmluZGluZ1N0YXRlOjppbnN0YW5jZSgpKSwgRmVhdHVyZU9ic2VydmVyOjpUZXN0
RmVhdHVyZSk7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05hdGl2ZShpbmZvLkhv
bGRlcigpKTsKICAgICByZXR1cm4gdG9WOChpbXAtPnRlc3RPYmpBdHRyKCksIGluZm8uSG9sZGVy
KCksIGluZm8uR2V0SXNvbGF0ZSgpKTsKIH0KQEAgLTIzNCw2ICsyMzYsNyBAQCBzdGF0aWMgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRlc3RPYmpBdHRyQXR0ckdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtZSwgYwogc3RhdGljIHZvaWQgdGVzdE9iakF0dHJBdHRyU2V0dGVyKHY4OjpMb2Nh
bDx2ODo6U3RyaW5nPiBuYW1lLCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwgY29uc3Qgdjg6
OkFjY2Vzc29ySW5mbyYgaW5mbykKIHsKICAgICBJTkNfU1RBVFMoIkRPTS5UZXN0T2JqLnRlc3RP
YmpBdHRyLl9zZXQiKTsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoYWN0aXZlRE9NV2lu
ZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSksIEZlYXR1cmVPYnNlcnZlcjo6VGVzdEZlYXR1
cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6dG9OYXRpdmUoaW5mby5Ib2xkZXIo
KSk7CiAgICAgVGVzdE9iaiogdiA9IFY4VGVzdE9iajo6SGFzSW5zdGFuY2UodmFsdWUpID8gVjhU
ZXN0T2JqOjp0b05hdGl2ZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KHZhbHVlKSkgOiAw
OwogICAgIGltcC0+c2V0VGVzdE9iakF0dHIoV1RGOjpnZXRQdHIodikpOwpAQCAtMTA5NCw2ICsx
MDk3LDcgQEAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBNZXRob2RXaXRoQXJnc0NhbGxi
YWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IG9iak1ldGhvZENhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAg
SU5DX1NUQVRTKCJET00uVGVzdE9iai5vYmpNZXRob2QiKTsKKyAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoYWN0aXZlRE9NV2luZG93KEJpbmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSksIEZlYXR1
cmVPYnNlcnZlcjo6VGVzdEZlYXR1cmUpOwogICAgIFRlc3RPYmoqIGltcCA9IFY4VGVzdE9iajo6
dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CiAgICAgcmV0dXJuIHRvVjgoaW1wLT5vYmpNZXRob2Qo
KSwgYXJncy5Ib2xkZXIoKSwgYXJncy5HZXRJc29sYXRlKCkpOwogfQpAQCAtMTkyOCw3ICsxOTMy
LDcgQEAgc3RhdGljIGNvbnN0IFY4RE9NQ29uZmlndXJhdGlvbjo6QmF0Y2hlZEF0dHJpYnV0ZSBW
OFRlc3RPYmpBdHRyc1tdID0gewogICAgIHsidW5zaWduZWRMb25nTG9uZ0F0dHIiLCBUZXN0T2Jq
VjhJbnRlcm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRl
cm5hbDo6dW5zaWduZWRMb25nTG9uZ0F0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0
YXRpY19jYXN0PHY4OjpBY2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4
OjpQcm9wZXJ0eUF0dHJpYnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAg
ICAvLyBBdHRyaWJ1dGUgJ3N0cmluZ0F0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAn
JykKICAgICB7InN0cmluZ0F0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6c3RyaW5nQXR0ckF0dHJH
ZXR0ZXIsIFRlc3RPYmpWOEludGVybmFsOjpzdHJpbmdBdHRyQXR0clNldHRlciwgMCAvKiBubyBk
YXRhICovLCBzdGF0aWNfY2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0
aWNfY2FzdDx2ODo6UHJvcGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5j
ZSAqL30sCi0gICAgLy8gQXR0cmlidXRlICd0ZXN0T2JqQXR0cicgKFR5cGU6ICdhdHRyaWJ1dGUn
IEV4dEF0dHI6ICcnKQorICAgIC8vIEF0dHJpYnV0ZSAndGVzdE9iakF0dHInIChUeXBlOiAnYXR0
cmlidXRlJyBFeHRBdHRyOiAnVjhNZWFzdXJlQXMnKQogICAgIHsidGVzdE9iakF0dHIiLCBUZXN0
T2JqVjhJbnRlcm5hbDo6dGVzdE9iakF0dHJBdHRyR2V0dGVyLCBUZXN0T2JqVjhJbnRlcm5hbDo6
dGVzdE9iakF0dHJBdHRyU2V0dGVyLCAwIC8qIG5vIGRhdGEgKi8sIHN0YXRpY19jYXN0PHY4OjpB
Y2Nlc3NDb250cm9sPih2ODo6REVGQVVMVCksIHN0YXRpY19jYXN0PHY4OjpQcm9wZXJ0eUF0dHJp
YnV0ZT4odjg6Ok5vbmUpLCAwIC8qIG9uIGluc3RhbmNlICovfSwKICAgICAvLyBBdHRyaWJ1dGUg
J1hNTE9iakF0dHInIChUeXBlOiAnYXR0cmlidXRlJyBFeHRBdHRyOiAnJykKICAgICB7IlhNTE9i
akF0dHIiLCBUZXN0T2JqVjhJbnRlcm5hbDo6WE1MT2JqQXR0ckF0dHJHZXR0ZXIsIFRlc3RPYmpW
OEludGVybmFsOjpYTUxPYmpBdHRyQXR0clNldHRlciwgMCAvKiBubyBkYXRhICovLCBzdGF0aWNf
Y2FzdDx2ODo6QWNjZXNzQ29udHJvbD4odjg6OkRFRkFVTFQpLCBzdGF0aWNfY2FzdDx2ODo6UHJv
cGVydHlBdHRyaWJ1dGU+KHY4OjpOb25lKSwgMCAvKiBvbiBpbnN0YW5jZSAqL30sCkBAIC0yMTIy
LDcgKzIxMjYsNyBAQCBDT01QSUxFX0FTU0VSVCgxNSA9PSBUZXN0T2JqOjpDT05TVF9JTVBMLCBU
ZXN0T2JqRW51bUNPTlNUX0lNUExJc1dyb25nVXNlRG9Ob3RDaAogdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4VGVzdE9iajo6Y29uc3RydWN0b3JDYWxsYmFjayhjb25zdCB2ODo6QXJndW1lbnRzJiBh
cmdzKQogewogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmouQ29uc3RydWN0b3IiKTsKLQorICAg
IAogICAgIGlmICghYXJncy5Jc0NvbnN0cnVjdENhbGwoKSkKICAgICAgICAgcmV0dXJuIHRocm93
VHlwZUVycm9yKCJET00gb2JqZWN0IGNvbnN0cnVjdG9yIGNhbm5vdCBiZSBjYWxsZWQgYXMgYSBm
dW5jdGlvbi4iKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCBmMmY0Y2JhMjFmOGRjYjZlMjQ1MDRmYTE0ZWQxOWVi
ZjI4NDQ0Y2IyLi4zOTMwZDY5ZjdkMzU2MjcxYzcxMzMzNzU2OTg2OWZiY2QyNDgxZjg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2Vy
aWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHN0YXRpYyBjb25zdCBWOERPTUNvbmZpZ3VyYXRpb246
OkJhdGNoZWRDYWxsYmFjayBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlCiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4gVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjpjb25z
dHJ1Y3RvckNhbGxiYWNrKGNvbnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCiB7CiAgICAgSU5DX1NU
QVRTKCJET00uVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5Db25zdHJ1Y3RvciIp
OwotCisgICAgCiAgICAgaWYgKCFhcmdzLklzQ29uc3RydWN0Q2FsbCgpKQogICAgICAgICByZXR1
cm4gdGhyb3dUeXBlRXJyb3IoIkRPTSBvYmplY3QgY29uc3RydWN0b3IgY2Fubm90IGJlIGNhbGxl
ZCBhcyBhIGZ1bmN0aW9uLiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zl
YXR1cmVPYnNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYTFmODg5ZWM4NzVhYzYxNmExYjUyOGM4NjEyYzhkODE4NmQzMDgxNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRmVhdHVyZU9ic2VydmVyLmNw
cApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZWF0
dXJlT2JzZXJ2ZXIuaCIKKworI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiSGlzdG9ncmFtU3VwcG9ydC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1cmVPYnNlcnZl
cigpCisgICAgOiBtX2ZlYXR1cmVNYXNrKDApCit7Cit9CisKK0ZlYXR1cmVPYnNlcnZlcjo6fkZl
YXR1cmVPYnNlcnZlcigpCit7CisgICAgLy8gV2UgYWx3YXlzIGxvZyBQYWdlRGVzdHJ1Y3Rpb24g
c28gdGhhdCB3ZSBoYXZlIGEgc2NhbGUgZm9yIHRoZSByZXN0IG9mIHRoZSBmZWF0dXJlcy4KKyAg
ICBIaXN0b2dyYW1TdXBwb3J0OjpoaXN0b2dyYW1FbnVtZXJhdGlvbigiV2ViQ29yZS5GZWF0dXJl
T2JzZXJ2ZXIiLCBQYWdlRGVzdHJ1Y3Rpb24sIE51bWJlck9mRmVhdHVyZXMpOworCisgICAgaWYg
KCFtX2ZlYXR1cmVNYXNrKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGludCBpID0gMDsg
aSA8IE51bWJlck9mRmVhdHVyZXM7ICsraSkgeworICAgICAgICBpZiAobV9mZWF0dXJlTWFzayAm
ICgxIDw8IGkpKQorICAgICAgICAgICAgSGlzdG9ncmFtU3VwcG9ydDo6aGlzdG9ncmFtRW51bWVy
YXRpb24oIldlYkNvcmUuRmVhdHVyZU9ic2VydmVyIiwgaSwgTnVtYmVyT2ZGZWF0dXJlcyk7Cisg
ICAgfQorfQorCit2b2lkIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShET01XaW5kb3cqIGRvbVdp
bmRvdywgRmVhdHVyZSBmZWF0dXJlKQoreworICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGRvbVdp
bmRvdy0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybjsKKworICAgIHBhZ2UtPmZlYXR1cmVPYnNlcnZlcigpLT5kaWRPYnNlcnZlKGZl
YXR1cmUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZlYXR1cmVPYnNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0
dXJlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYjJkOGRmODY2YmZlY2NiM2YxNjg4MWI4YjkyYjYw
YjM2NGMxNThjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GZWF0dXJl
T2JzZXJ2ZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdv
b2dsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmVhdHVyZU9ic2VydmVyX2gK
KyNkZWZpbmUgRmVhdHVyZU9ic2VydmVyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIERPTVdpbmRvdzsKKworY2xhc3MgRmVh
dHVyZU9ic2VydmVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGZWF0dXJlT2JzZXJ2ZXIp
OworcHVibGljOgorICAgIEZlYXR1cmVPYnNlcnZlcigpOworICAgIH5GZWF0dXJlT2JzZXJ2ZXIo
KTsKKworICAgIGVudW0gRmVhdHVyZSB7CisgICAgICAgIFBhZ2VEZXN0cnVjdGlvbiwKKyAgICAg
ICAgTGVnYWN5Tm90aWZpY2F0aW9ucywKKyAgICAgICAgLy8gQWRkIG5ldyBmZWF0dXJlcyBhYm92
ZSB0aGlzIGxpbmUuCisgICAgICAgIE51bWJlck9mRmVhdHVyZXMsIC8vIFRoaXMgZW51bSB2YWx1
ZSBtdXN0IGJlIGxhc3QuCisgICAgfTsKKworICAgIHN0YXRpYyB2b2lkIG9ic2VydmUoRE9NV2lu
ZG93KiwgRmVhdHVyZSk7CisKK3ByaXZhdGU6CisgICAgdm9pZCBkaWRPYnNlcnZlKEZlYXR1cmUg
ZmVhdHVyZSkKKyAgICB7CisgICAgICAgIENPTVBJTEVfQVNTRVJUKHNpemVvZihtX2ZlYXR1cmVN
YXNrKSAqIDggPj0gTnVtYmVyT2ZGZWF0dXJlcywgRmVhdHVyZXNNdXN0Tm90T3ZlcmZsb3dCaXRt
YXNrKTsKKyAgICAgICAgQVNTRVJUKGZlYXR1cmUgIT0gUGFnZURlc3RydWN0aW9uKTsgLy8gUGFn
ZURlc3RydWN0aW9uIGlzIHJlc2VydmVkIGFzIGEgc2NhbGluZyBmYWN0b3IuCisgICAgICAgIEFT
U0VSVChmZWF0dXJlIDwgTnVtYmVyT2ZGZWF0dXJlcyk7CisgICAgICAgIG1fZmVhdHVyZU1hc2sg
fD0gMSA8PCBzdGF0aWNfY2FzdDxpbnQ+KGZlYXR1cmUpOworICAgIH0KKworICAgIGludCBtX2Zl
YXR1cmVNYXNrOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorICAgIAorI2VuZGlmIC8v
IEZlYXR1cmVPYnNlcnZlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDk2ODY0YjIxMDdiZTA1YzZiOWM0
YjE0NmJhMjJmYjFhNWQ4NDE3MmEuLmJhMjZjZTgxOTVmZGMyYzVjOTg0NGE2ODBkMTVmNWI2Y2Vj
OWE5NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0yMSw2ICsyMSw3IEBACiAjaWZuZGVmIFBhZ2VfaAog
I2RlZmluZSBQYWdlX2gKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUg
IkZyYW1lTG9hZGVyVHlwZXMuaCIKICNpbmNsdWRlICJGaW5kT3B0aW9ucy5oIgogI2luY2x1ZGUg
IkxheW91dFR5cGVzLmgiCkBAIC0xOTcsNiArMTk4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBQcm9ncmVzc1RyYWNrZXIqIHByb2dyZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9n
cmVzcy5nZXQoKTsgfQogICAgICAgICBCYWNrRm9yd2FyZENvbnRyb2xsZXIqIGJhY2tGb3J3YXJk
KCkgY29uc3QgeyByZXR1cm4gbV9iYWNrRm9yd2FyZENvbnRyb2xsZXIuZ2V0KCk7IH0KIAorICAg
ICAgICBGZWF0dXJlT2JzZXJ2ZXIqIGZlYXR1cmVPYnNlcnZlcigpIHsgcmV0dXJuICZtX2ZlYXR1
cmVPYnNlcnZlcjsgfQorCiAgICAgICAgIGVudW0gVmlld01vZGUgewogICAgICAgICAgICAgVmll
d01vZGVJbnZhbGlkLAogICAgICAgICAgICAgVmlld01vZGVXaW5kb3dlZCwKQEAgLTM5MSw2ICsz
OTQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEVkaXRvckNsaWVudCogbV9lZGl0
b3JDbGllbnQ7CiAgICAgICAgIFZhbGlkYXRpb25NZXNzYWdlQ2xpZW50KiBtX3ZhbGlkYXRpb25N
ZXNzYWdlQ2xpZW50OwogCisgICAgICAgIEZlYXR1cmVPYnNlcnZlciBtX2ZlYXR1cmVPYnNlcnZl
cjsKKwogICAgICAgICBpbnQgbV9mcmFtZUNvdW50OwogICAgICAgICBTdHJpbmcgbV9ncm91cE5h
bWU7CiAgICAgICAgIGJvb2wgbV9vcGVuZWRCeURPTTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>