<?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>37449</bug_id>
          
          <creation_ts>2010-04-12 09:48:08 -0700</creation_ts>
          <short_desc>SecurityOrigin needs a way to remove individual OriginAccessEntries</short_desc>
          <delta_ts>2010-04-13 15:33:26 -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>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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="Timothy Hatcher">timothy</reporter>
          <assigned_to name="Timothy Hatcher">timothy</assigned_to>
          <cc>aroben</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>211640</commentid>
    <comment_count>0</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-12 09:48:08 -0700</bug_when>
    <thetext>See summary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211651</commentid>
    <comment_count>1</comment_count>
      <attachid>53176</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-12 10:27:04 -0700</bug_when>
    <thetext>Created attachment 53176
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211759</commentid>
    <comment_count>2</comment_count>
      <attachid>53176</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-04-12 16:34:50 -0700</bug_when>
    <thetext>Comment on attachment 53176
Proposed patch

&gt; +Testing: http://127.0.0.1:8000 http:localhost 

I find this output a little confusing to parse. Maybe adding &quot;source origin=&quot; and &quot;destination origin=&quot; would make it clearer, e.g., &quot;Testing: source origin=http://127.0.0.1:8000 destination origin=http:localhost&quot;.

&gt; +Testing: http://127.0.0.1:8000 http:localhost allowing subdoamins

Typo: subdoamins

&gt; +function nextTest()
&gt; +{
&gt; +    if (currentTest &lt; tests.length)
&gt; +        test.apply(null, tests[currentTest++]);
&gt; +    else
&gt; +        layoutTestController.notifyDone();
&gt; +}

Seems like a for loop or Array.forEach would work just fine.

&gt; +        (WebCore::SecurityOrigin::whiteListAccessFromOrigin): Use the add method to preent a
&gt; +        second hash lookup.

Typo: preent

&gt; +        (WebCore::SecurityOrigin::removeWhiteListAccessFromOrigin): Added. Find a matching
&gt; +        OriginAccessEntry and remove it.

This name is unfortunately not parallel with &quot;whiteListAccessFromOrigin&quot;. That function uses the verb &quot;white list&quot;, while your new function uses the noun &quot;white list access&quot;. We either need a verb that means &quot;un-white list&quot;, or we should rename whiteListAccessFromOrigin. Maybe addOriginAccessWhitelistEntry/removeOriginAccessWhitelistEntry?

&gt; +inline bool operator==(const OriginAccessEntry&amp; a, const OriginAccessEntry&amp; b)
&gt; +{
&gt; +    return a.protocol() == b.protocol() &amp;&amp; a.host() == b.host() &amp;&amp; a.subdomainSettings() == b.subdomainSettings();
&gt; +}

Protocols and hosts are supposed to be treated case-insensitively.

r- because of the case-sensitivity issue (maybe you should add a test for this), but otherwise this looks good to go (though figuring out better names would be nice).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211891</commentid>
    <comment_count>3</comment_count>
      <attachid>53230</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-13 00:51:31 -0700</bug_when>
    <thetext>Created attachment 53230
Rename part</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>211995</commentid>
    <comment_count>4</comment_count>
      <attachid>53259</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-13 10:21:58 -0700</bug_when>
    <thetext>Created attachment 53259
Final part</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212097</commentid>
    <comment_count>5</comment_count>
      <attachid>53259</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-04-13 14:55:13 -0700</bug_when>
    <thetext>Comment on attachment 53259
Final part

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212098</commentid>
    <comment_count>6</comment_count>
      <attachid>53230</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2010-04-13 14:55:34 -0700</bug_when>
    <thetext>Comment on attachment 53230
Rename part

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>212114</commentid>
    <comment_count>7</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-04-13 15:33:26 -0700</bug_when>
    <thetext>Fixed in r57535 and 57537.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53176</attachid>
            <date>2010-04-12 10:27:04 -0700</date>
            <delta_ts>2010-04-13 00:51:31 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-SecurityOrigin-needs-a-way-to-remove-individual-Orig.patch</filename>
            <type>text/plain</type>
            <size>33044</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSAwMDM3OGFjZmYyZGU5Mjk3YjA1OTQwYTJjYmMzODUxYjdkNWZlNTBmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBNb24sIDEyIEFwciAyMDEwIDEwOjI0OjE1IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gU2Vj
dXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwgT3JpZ2luQWNjZXNz
RW50cmllcwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDQ5CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldlYkNvcmU6CgpUZXN0OiBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sCgoqIFdlYkNvcmUu
YmFzZS5leHA6IEFkZGVkIFNlY3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luLgoqIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaDoKKFdlYkNvcmU6Ok9yaWdpbkFjY2Vz
c0VudHJ5Ojpwcm90b2NvbCk6IEFkZGVkLiBSZXR1cm5zIG1fcHJvdG9jb2wuCihXZWJDb3JlOjpP
cmlnaW5BY2Nlc3NFbnRyeTo6aG9zdCk6IEFkZGVkLiBSZXR1cm5zIG1faG9zdC4KKFdlYkNvcmU6
Ok9yaWdpbkFjY2Vzc0VudHJ5OjpzdWJkb21haW5TZXR0aW5ncyk6IEFkZGVkLiBSZXR1cm5zIG1f
c3ViZG9tYWluU2V0dGluZ3MuCihXZWJDb3JlOjpvcGVyYXRvcj09KTogQWRkZWQuIENvbXBhcmVz
IE9yaWdpbkFjY2Vzc0VudHJ5LgooV2ViQ29yZTo6b3BlcmF0b3IhPSk6IERpdHRvLgoqIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwOgooV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OndoaXRlTGlzdEFj
Y2Vzc0Zyb21PcmlnaW4pOiBVc2UgdGhlIGFkZCBtZXRob2QgdG8gcHJlZW50IGEKc2Vjb25kIGhh
c2ggbG9va3VwLgooV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnJlbW92ZVdoaXRlTGlzdEFjY2Vz
c0Zyb21PcmlnaW4pOiBBZGRlZC4gRmluZCBhIG1hdGNoaW5nCk9yaWdpbkFjY2Vzc0VudHJ5IGFu
ZCByZW1vdmUgaXQuCiogcGFnZS9TZWN1cml0eU9yaWdpbi5oOiBBZGRlZCByZW1vdmVXaGl0ZUxp
c3RBY2Nlc3NGcm9tT3JpZ2luLgoKV2ViS2l0L21hYzoKCiogV2ViVmlldy9XZWJWaWV3Lm1tOgoo
K1tXZWJWaWV3IF9yZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luOmRlc3RpbmF0aW9uUHJv
dG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOl0pOgpDYWxs
IFNlY3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luLgoqIFdlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaDogQWRkZWQgX3JlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21Pcmln
aW4uCgpXZWJLaXQvd2luOgoKKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGw6CiogV2Vi
Vmlldy5jcHA6CihXZWJWaWV3OjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKTogQ2Fs
bCBTZWN1cml0eU9yaWdpbjo6cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4KKiBXZWJW
aWV3Lmg6IEFkZGVkIHJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCgpXZWJLaXRUb29s
czoKCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgoocmVtb3ZlV2hp
dGVMaXN0QWNjZXNzRnJvbU9yaWdpbkNhbGxiYWNrKTogQWRkZWQuIENhbGwgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCihMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKTogQWRkZWQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJv
bU9yaWdpbi4KKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgoqIER1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6CihMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbik6IEFkZGVkLiBGSVhNRSB0
byBpbXBsZW1lbnQuCiogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21Pcmln
aW4pOiBBZGRlZC4KKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNw
cDoKKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2lu
KTogQWRkZWQuIEZJWE1FIHRvIGltcGxlbWVudC4KKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRl
TGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBBZGRlZC4KKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luKTogRklYTUUgdG8gaW1wbGVtZW50LgooTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBBZGRlZC4gRklYTUUgdG8gaW1wbGVt
ZW50LgoKTGF5b3V0VGVzdHM6CgoqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbDogQWRkZWQuCiogcGxh
dGZvcm0vZ3RrL1NraXBwZWQ6IEFkZGVkIG9yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1s
LgoqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IERpdHRvLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxv
ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrCiAuLi4vb3JpZ2luLXdo
aXRlbGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dCAgICAgICB8ICAgMzAgKysrKysrKysrCiAu
Li4vb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwgICAgICAgICAgICAgICB8ICAgNjMg
KysrKysrKysrKysrKysrKysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkICAg
ICAgICAgICAgICAgICAgIHwgICAgMyArCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVk
ICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysKIFdlYkNvcmUvV2ViQ29yZS5i
YXNlLmV4cCAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJDb3JlL3BhZ2Uv
T3JpZ2luQWNjZXNzRW50cnkuaCAgICAgICAgICAgICAgICAgICB8ICAgMTcgKysrKystCiBXZWJD
b3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwICAgICAgICAgICAgICAgICAgICB8ICAgMzcgKysr
KysrKysrKy0tCiBXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaCAgICAgICAgICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDEyICsrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgNSArKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdQcml2
YXRlLmggICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdlTG9nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrCiBXZWJLaXQvd2luL0ludGVyZmFj
ZXMvSVdlYlZpZXdQcml2YXRlLmlkbCAgICAgICAgICB8ICAgIDMgKwogV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrCiBXZWJLaXQvd2lu
L1dlYlZpZXcuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKy0KIFdlYktp
dFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMyArKysr
KysrCiAuLi4vRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICB8
ICAgMTkgKysrKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oICB8ICAgIDEgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAgfCAgICA1ICsrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tICB8ICAgMTEgKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrCiAuLi4vRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgIDkgKysrCiAuLi4vRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgICB8ICAgIDUgKysKIDI1IGZpbGVzIGNo
YW5nZWQsIDMwMiBpbnNlcnRpb25zKCspLCA4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAwNjQ0IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0
bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMmRkNDE3YS4uZDdiOTViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEw
LTA0LTEyICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBT
ZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nl
c3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvU2tpcHBlZDogQWRkZWQgb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwu
CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDogRGl0dG8uCisKIDIwMTAtMDQtMTEgIFJv
YmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92
YWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdlNDQw
YjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwz
MCBAQAorVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGluZyBvcmlnaW5zIGFuZCByZW1v
dmluZyB0aGVtIGxhdGVyLgorCitUZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaHR0cDps
b2NhbGhvc3QgCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IEVycm9yOiBO
RVRXT1JLX0VSUjogWE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9uIDEwMQorTG9hZGluZzogaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3Rp
bmcgUEFTUykKK1BBU1M6IFBBU1MKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQorUEFT
UzogRXJyb3I6IE5FVFdPUktfRVJSOiBYTUxIdHRwUmVxdWVzdCBFeGNlcHRpb24gMTAxCisKKwor
VGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwIGh0dHA6bG9jYWxob3N0IGFsbG93aW5nIHN1
YmRvYW1pbnMKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQorUEFTUzogRXJyb3I6IE5F
VFdPUktfRVJSOiBYTUxIdHRwUmVxdWVzdCBFeGNlcHRpb24gMTAxCitMb2FkaW5nOiBodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGlu
ZyBQQVNTKQorUEFTUzogUEFTUworTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNT
OiBFcnJvcjogTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1ZXN0IEV4Y2VwdGlvbiAxMDEKKworCitU
ZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaHR0cDogYWxsb3dpbmcgc3ViZG9hbWlucwor
TG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
ZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBFcnJvcjogTkVUV09SS19FUlI6
IFhNTEh0dHBSZXF1ZXN0IEV4Y2VwdGlvbiAxMDEKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCitQ
QVNTOiBQQVNTCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IEVycm9yOiBO
RVRXT1JLX0VSUjogWE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9uIDEwMQorCisKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0
aW5nLXJlbW92YWwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzA1NWQxMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKQEAg
LTAsMCArMSw2MyBAQAorPHA+VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGluZyBvcmln
aW5zIGFuZCByZW1vdmluZyB0aGVtIGxhdGVyLjwvcD4KKworPHByZSBpZD0iY29uc29sZSI+PC9w
cmU+Cis8c2NyaXB0PgorbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkK
K3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIGxv
YWRVUkwodXJsLCBleHBlY3RTdWNjZXNzKQoreworICAgIGxvZygiTG9hZGluZzogIiArIHVybCAr
ICIgIiArIChleHBlY3RTdWNjZXNzID8gIihleHBlY3RpbmcgUEFTUykiIDogIihleHBlY3Rpbmcg
TkVUV09SS19FUlIpIikpOworCisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwor
ICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAgICB0cnkgeworICAgICAgICByZXEu
c2VuZChudWxsKTsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJ
TDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxv
ZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7CisgICAgfQorfQor
CitmdW5jdGlvbiB0ZXN0KG9yaWdpbiwgcHJvdG9jb2wsIGhvc3QsIHN1YmRvbWFpbnMsIHVybCkK
K3sKKyAgICBsb2coIlRlc3Rpbmc6ICIgKyBvcmlnaW4gKyAiICIgKyBwcm90b2NvbCArICI6IiAr
IGhvc3QgKyAiICIgKyAoc3ViZG9tYWlucyA/ICJhbGxvd2luZyBzdWJkb2FtaW5zIiA6ICIiKSk7
CisKKwlsb2FkVVJMKHVybCwgZmFsc2UpOworCisJbGF5b3V0VGVzdENvbnRyb2xsZXIud2hpdGVM
aXN0QWNjZXNzRnJvbU9yaWdpbihvcmlnaW4sIHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsK
KworCWxvYWRVUkwodXJsLCB0cnVlKTsKKworCWxheW91dFRlc3RDb250cm9sbGVyLnJlbW92ZVdo
aXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4ob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3ViZG9tYWlu
cyk7CisKKwlsb2FkVVJMKHVybCwgZmFsc2UpOworCisJbG9nKCJcbiIpOworCisJbmV4dFRlc3Qo
KTsKK30KKwordmFyIHRlc3RzID0gWworICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAibG9jYWxob3N0IiwgZmFsc2UsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXSwKKyAgICBbImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIs
ICJodHRwIiwgImxvY2FsaG9zdCIsIHRydWUsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXSwKKyAgICBbImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIsICJodHRwIiwgIiIsIHRydWUsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2dldC50eHQiXQorXTsKKwordmFyIGN1cnJlbnRUZXN0ID0gMDsKKworZnVu
Y3Rpb24gbmV4dFRlc3QoKQoreworICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RzLmxlbmd0aCkK
KyAgICAgICAgdGVzdC5hcHBseShudWxsLCB0ZXN0c1tjdXJyZW50VGVzdCsrXSk7CisgICAgZWxz
ZQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9CisKK25leHRU
ZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZmJjOGE5MC4u
MTU5Y2NlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU2MjMsNiArNTYyMyw5IEBA
IGVkaXRpbmcvc2VsZWN0aW9uL21peGVkLWVkaXRhYmlsaXR5LTEwLmh0bWwKIGVkaXRpbmcvc2Vs
ZWN0aW9uLzU4MjUzNTAtMS5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi81ODI1MzUwLTIuaHRtbAog
CisjIE1pc3NpbmcgbGF5b3V0VGVzdENvbnRyb2xsZXIucmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJv
bU9yaWdpbigpCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
cmVtb3ZhbC5odG1sCisKICMgTmVlZCBwcm9wZXIgZnJhbWUgbG9hZGVyIGNhbGxiYWNrcyByZXBv
cnRpbmcKICMgU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjE3
MAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZW1wdHktdXJsLXBsdWdpbi1pbi1m
cmFtZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA5NmRjOTM2Li4xYmVmZTAzIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMwNSw2ICszMDUsOSBAQCBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2ZlZWQtdXJscy1mcm9tLXJlbW90ZS5odG1sCiAjIE1pc3NpbmcgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoKQogaHR0cC90ZXN0cy9zZWN1
cml0eS9pc29sYXRlZFdvcmxkCiAKKyMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5yZW1v
dmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKCkKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKKwogIyBFdmFsdWF0ZSBleHBlY3RlZCBy
ZXN1bHRzIGZvciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzCiAjIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDgzOQogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvYWJvdXQtYmxhbmstaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ODE2Nzc0Li42YmJhZDM5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI2IEBACisyMDEwLTA0LTEyICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KKworICAgICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUg
aW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5l
eHA6IEFkZGVkIFNlY3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2lu
LgorICAgICAgICAqIHBhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaDoKKyAgICAgICAgKFdlYkNvcmU6
Ok9yaWdpbkFjY2Vzc0VudHJ5Ojpwcm90b2NvbCk6IEFkZGVkLiBSZXR1cm5zIG1fcHJvdG9jb2wu
CisgICAgICAgIChXZWJDb3JlOjpPcmlnaW5BY2Nlc3NFbnRyeTo6aG9zdCk6IEFkZGVkLiBSZXR1
cm5zIG1faG9zdC4KKyAgICAgICAgKFdlYkNvcmU6Ok9yaWdpbkFjY2Vzc0VudHJ5OjpzdWJkb21h
aW5TZXR0aW5ncyk6IEFkZGVkLiBSZXR1cm5zIG1fc3ViZG9tYWluU2V0dGluZ3MuCisgICAgICAg
IChXZWJDb3JlOjpvcGVyYXRvcj09KTogQWRkZWQuIENvbXBhcmVzIE9yaWdpbkFjY2Vzc0VudHJ5
LgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3IhPSk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46Ondo
aXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBVc2UgdGhlIGFkZCBtZXRob2QgdG8gcHJlZW50IGEK
KyAgICAgICAgc2Vjb25kIGhhc2ggbG9va3VwLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBBZGRlZC4gRmluZCBhIG1h
dGNoaW5nCisgICAgICAgIE9yaWdpbkFjY2Vzc0VudHJ5IGFuZCByZW1vdmUgaXQuCisgICAgICAg
ICogcGFnZS9TZWN1cml0eU9yaWdpbi5oOiBBZGRlZCByZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luLgorCiAyMDEwLTA0LTEwICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZC4gIFJlbmFtZSBtX2ZvcmNlU2FuZGJveEZsYWdzIHRvIG1fZm9y
Y2VkU2FuZG94RmxhZ3MsIGFzCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAg
Yi9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKaW5kZXggMzE1YzdlOC4uYzg5YmM1YiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5iYXNl
LmV4cApAQCAtMzEzLDYgKzMxMyw3IEBAIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4xOHNo
b3VsZEhpZGVSZWZlcnJlckVSS05TXzRLVVJMRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0
U2VjdXJpdHlPcmlnaW4yNHJlZ2lzdGVyVVJMU2NoZW1lQXNMb2NhbEVSS05TXzZTdHJpbmdFCiBf
X1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjVyZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlRVJL
TlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNXdoaXRlTGlzdEFjY2Vz
c0Zyb21PcmlnaW5FUktTMF9SS05TXzZTdHJpbmdFUzVfYgorX19aTjdXZWJDb3JlMTRTZWN1cml0
eU9yaWdpbjMxcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbkVSS1MwX1JLTlNfNlN0cmlu
Z0VTNV9iCiBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjdyZXNldE9yaWdpbkFjY2Vzc1do
aXRlTGlzdHNFdgogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjQwc2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUViUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTRT
ZWN1cml0eU9yaWdpbjZjcmVhdGVFUktOU180S1VSTEVpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bh
Z2UvT3JpZ2luQWNjZXNzRW50cnkuaCBiL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5o
CmluZGV4IDc2N2Q3NWYuLjBjNmFiNGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9PcmlnaW5B
Y2Nlc3NFbnRyeS5oCisrKyBiL1dlYkNvcmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5oCkBAIC00
NywxNSArNDcsMjggQEAgcHVibGljOgogICAgIC8vIElmIGhvc3QgaXMgZW1wdHkgc3RyaW5nIGFu
ZCBTdWJkb21haW5TZXR0aW5nIGlzIEFsbG93U3ViZG9tYWlucywgdGhlIGVudHJ5IHdpbGwgbWF0
Y2ggYWxsIGRvbWFpbnMgaW4gdGhlIHNwZWNpZmllZCBwcm90b2NvbC4KICAgICBPcmlnaW5BY2Nl
c3NFbnRyeShjb25zdCBTdHJpbmcmIHByb3RvY29sLCBjb25zdCBTdHJpbmcmIGhvc3QsIFN1YmRv
bWFpblNldHRpbmcpOwogICAgIGJvb2wgbWF0Y2hlc09yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
biYpIGNvbnN0OwotICAgIAorCisgICAgY29uc3QgU3RyaW5nJiBwcm90b2NvbCgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvdG9jb2w7IH0KKyAgICBjb25zdCBTdHJpbmcmIGhvc3QoKSBjb25zdCB7IHJl
dHVybiBtX2hvc3Q7IH0KKyAgICBTdWJkb21haW5TZXR0aW5nIHN1YmRvbWFpblNldHRpbmdzKCkg
Y29uc3QgeyByZXR1cm4gbV9zdWJkb21haW5TZXR0aW5nczsgfQorCiBwcml2YXRlOgogICAgIFN0
cmluZyBtX3Byb3RvY29sOwogICAgIFN0cmluZyBtX2hvc3Q7CiAgICAgU3ViZG9tYWluU2V0dGlu
ZyBtX3N1YmRvbWFpblNldHRpbmdzOwogICAgIGJvb2wgbV9ob3N0SXNJUEFkZHJlc3M7Ci0gICAg
CiB9OwogCitpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE9yaWdpbkFjY2Vzc0VudHJ5JiBh
LCBjb25zdCBPcmlnaW5BY2Nlc3NFbnRyeSYgYikKK3sKKyAgICByZXR1cm4gYS5wcm90b2NvbCgp
ID09IGIucHJvdG9jb2woKSAmJiBhLmhvc3QoKSA9PSBiLmhvc3QoKSAmJiBhLnN1YmRvbWFpblNl
dHRpbmdzKCkgPT0gYi5zdWJkb21haW5TZXR0aW5ncygpOworfQorCitpbmxpbmUgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IE9yaWdpbkFjY2Vzc0VudHJ5JiBhLCBjb25zdCBPcmlnaW5BY2Nlc3NFbnRy
eSYgYikKK3sKKyAgICByZXR1cm4gIShhID09IGIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBDcm9zc09yaWdpbkFjY2Vzc19oCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNw
cAppbmRleCA5MWZiYWY5Li41M2ZmNTg3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJp
dHlPcmlnaW4uY3BwCisrKyBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTY1
NywxNCArNjU3LDQxIEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OndoaXRlTGlzdEFjY2Vzc0Zyb21P
cmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNvdXJjZU9yaWdpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFN0cmluZyBzb3VyY2VTdHJpbmcgPSBzb3VyY2VPcmlnaW4udG9TdHJpbmcoKTsKLSAg
ICBPcmlnaW5BY2Nlc3NXaGl0ZUxpc3QqIGxpc3QgPSBvcmlnaW5BY2Nlc3NNYXAoKS5nZXQoc291
cmNlU3RyaW5nKTsKLSAgICBpZiAoIWxpc3QpIHsKLSAgICAgICAgbGlzdCA9IG5ldyBPcmlnaW5B
Y2Nlc3NXaGl0ZUxpc3Q7Ci0gICAgICAgIG9yaWdpbkFjY2Vzc01hcCgpLnNldChzb3VyY2VTdHJp
bmcsIGxpc3QpOwotICAgIH0KKyAgICBwYWlyPE9yaWdpbkFjY2Vzc01hcDo6aXRlcmF0b3IsIGJv
b2w+IHJlc3VsdCA9IG9yaWdpbkFjY2Vzc01hcCgpLmFkZChzb3VyY2VTdHJpbmcsIDApOworICAg
IGlmIChyZXN1bHQuc2Vjb25kKQorICAgICAgICByZXN1bHQuZmlyc3QtPnNlY29uZCA9IG5ldyBP
cmlnaW5BY2Nlc3NXaGl0ZUxpc3Q7CisKKyAgICBPcmlnaW5BY2Nlc3NXaGl0ZUxpc3QqIGxpc3Qg
PSByZXN1bHQuZmlyc3QtPnNlY29uZDsKICAgICBsaXN0LT5hcHBlbmQoT3JpZ2luQWNjZXNzRW50
cnkoZGVzdGluYXRpb25Qcm90b2NvbCwgZGVzdGluYXRpb25Eb21haW5zLCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyA/IE9yaWdpbkFjY2Vzc0VudHJ5OjpBbGxvd1N1YmRvbWFpbnMgOiBPcmln
aW5BY2Nlc3NFbnRyeTo6RGlzYWxsb3dTdWJkb21haW5zKSk7CiB9CiAKK3ZvaWQgU2VjdXJpdHlP
cmlnaW46OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4mIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25z
dCBTdHJpbmcmIGRlc3RpbmF0aW9uRG9tYWlucywgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghc291cmNl
T3JpZ2luLmlzRW1wdHkoKSk7CisgICAgaWYgKHNvdXJjZU9yaWdpbi5pc0VtcHR5KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIFN0cmluZyBzb3VyY2VTdHJpbmcgPSBzb3VyY2VPcmlnaW4udG9T
dHJpbmcoKTsKKyAgICBPcmlnaW5BY2Nlc3NNYXAmIG1hcCA9IG9yaWdpbkFjY2Vzc01hcCgpOwor
ICAgIE9yaWdpbkFjY2Vzc01hcDo6aXRlcmF0b3IgaXQgPSBtYXAuZmluZChzb3VyY2VTdHJpbmcp
OworICAgIGlmIChpdCA9PSBtYXAuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE9yaWdp
bkFjY2Vzc1doaXRlTGlzdCogbGlzdCA9IGl0LT5zZWNvbmQ7CisgICAgc2l6ZV90IGluZGV4ID0g
bGlzdC0+ZmluZChPcmlnaW5BY2Nlc3NFbnRyeShkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5h
dGlvbkRvbWFpbnMsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zID8gT3JpZ2luQWNjZXNzRW50
cnk6OkFsbG93U3ViZG9tYWlucyA6IE9yaWdpbkFjY2Vzc0VudHJ5OjpEaXNhbGxvd1N1YmRvbWFp
bnMpKTsKKyAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKworICAg
IGxpc3QtPnJlbW92ZShpbmRleCk7CisKKyAgICBpZiAoIWxpc3QtPmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbWFwLnJlbW92ZShpdCk7CisgICAgZGVsZXRlIGxpc3Q7Cit9CisK
IHZvaWQgU2VjdXJpdHlPcmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1
cml0eU9yaWdpbi5oIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggMGUzZDZl
NC4uZjRmYTc5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysr
IGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTE5NSw2ICsxOTUsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0
IFN0cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Eb21haW5zLCBib29sIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBzdGF0aWMgdm9pZCByZW1vdmVXaGl0ZUxpc3RB
Y2Nlc3NGcm9tT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzb3VyY2VPcmlnaW4sIGNvbnN0
IFN0cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkRv
bWFpbnMsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHN0YXRpYyB2b2lk
IHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBmMWFmZjE2
Li5jNDYxMTRjIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEwLTA0LTEyICBUaW1vdGh5IEhhdGNo
ZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBh
IHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1t
OgorICAgICAgICAoK1tXZWJWaWV3IF9yZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luOmRl
c3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zOl0pOgorICAgICAgICBDYWxsIFNlY3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDogQWRkZWQg
X3JlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCisKIDIwMTAtMDQtMTAgIE1hcmsgUm93
ZSAgPG1yb3dlQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWlu
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBlNTBiYzE0Li41MjY2OWFhIDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlldy5tbQpAQCAtMjI1Miw2ICsyMjUyLDExIEBAICsgKHZvaWQpX3doaXRlTGlzdEFjY2Vzc0Zy
b21PcmlnaW46KE5TU3RyaW5nICopc291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6CiAg
ICAgU2VjdXJpdHlPcmlnaW46OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oKlNlY3VyaXR5T3Jp
Z2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCisrICh2
b2lkKV9yZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9y
aWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wg
ZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucworeworICAgIFNl
Y3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKCpTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLCBkZXN0aW5hdGlvblByb3RvY29s
LCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKK30KKwogKyh2
b2lkKV9yZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMKIHsKICAgICBTZWN1cml0eU9yaWdpbjo6
cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IDdmMzc5NjMuLmRmMDAwOTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0
ZS5oCkBAIC00OTAsNiArNDkwLDcgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRvIHRoZSBBUEku
CiAvLyAtIGRlc3RpbmF0aW9uSG9zdDogVGhlIGhvc3QgdG8gZ3JhbnQgYWNjZXNzIHRvLgogLy8g
LSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9zdCBpcyBhIGRvbWFpbiwgc2V0dGlu
ZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFuZCBhbGwgaXRzIHN1YmRvbWFpbnMs
IHJlY3Vyc2l2ZWx5LgogKyAodm9pZClfd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbjooTlNTdHJp
bmcgKilzb3VyY2VPcmlnaW4gZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5h
dGlvblByb3RvY29sIGRlc3RpbmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3Qg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnM7CisrICh2b2lkKV9yZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luOihOU1N0cmluZyAq
KXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29sOihOU1N0cmluZyAqKWRlc3RpbmF0aW9u
UHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczsK
IAogLy8gUmVtb3ZlcyBhbGwgd2hpdGUgbGlzdCBlbnRyaWVzIGNyZWF0ZWQgd2l0aCBfd2hpdGVM
aXN0QWNjZXNzRnJvbU9yaWdpbi4KICsgKHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0
czsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKaW5kZXggYWZlOWRlYS4uYzhmMTY4NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMC0wNC0x
MiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgU2VjdXJp
dHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwgT3JpZ2luQWNjZXNzRW50
cmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0
NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIElu
dGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYlZpZXc6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBDYWxsIFNl
Y3VyaXR5T3JpZ2luOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luLgorICAgICAgICAq
IFdlYlZpZXcuaDogQWRkZWQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4KKwogMjAx
MC0wNC0wOSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2luZG93
cyBEZWJ1Zy9SZWxlYXNlIGJ1aWxkIGZpeCBhZnRlciByNTcyNDQKZGlmZiAtLWdpdCBhL1dlYktp
dC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZh
Y2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKaW5kZXggMzgxNTk0Mi4uZGJlMTRmYSAxMDA2NDQKLS0t
IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKKysrIGIvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKQEAgLTIyOCw0ICsyMjgsNyBAQCBp
bnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlIDogSVVua25vd24KICAgICBIUkVTVUxUIHNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoW2luXSBCT09MIGZvcmJpZGRlbiwgW2lu
XSBCU1RSIHNjaGVtZSk7CiAKICAgICBIUkVTVUxUIHJlZ2lzdGVyVVJMU2NoZW1lQXNTZWN1cmUo
W2luXSBCU1RSIHNjaGVtZSk7CisKKyAgICAvLyBSZW1vdmVzIGEgd2hpdGUgbGlzdCBlbnRyeSBj
cmVhdGVkIHdpdGggd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4gU2VlIGFib3ZlLgorICAgIEhS
RVNVTFQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihbaW5dIEJTVFIgc291cmNlT3Jp
Z2luLCBbaW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9u
SG9zdCwgW2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4
IDQ2OTViZjQuLjI5NzU0ZDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysr
IGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNjA0MCw2ICs2MDQwLDEyIEBAIEhSRVNVTFQg
V2ViVmlldzo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihCU1RSIHNvdXJjZU9yaWdpbiwgQlNU
UiBkZXN0aW5hdGlvblByCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hSRVNVTFQgV2ViVmlldzo6
cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihCU1RSIHNvdXJjZU9yaWdpbiwgQlNUUiBk
ZXN0aW5hdGlvblByb3RvY29sLCBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0eU9yaWdpbjo6cmVtb3ZlV2hpdGVMaXN0
QWNjZXNzRnJvbU9yaWdpbigqU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoU3RyaW5n
KHNvdXJjZU9yaWdpbiwgU3lzU3RyaW5nTGVuKHNvdXJjZU9yaWdpbikpKSwgU3RyaW5nKGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIFN5c1N0cmluZ0xlbihkZXN0aW5hdGlvblByb3RvY29sKSksIFN0cmlu
ZyhkZXN0aW5hdGlvbkhvc3QsIFN5c1N0cmluZ0xlbihkZXN0aW5hdGlvbkhvc3QpKSwgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHJldHVybiBTX09LOworfQorCiBIUkVTVUxUIFdl
YlZpZXc6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpCiB7CiAgICAgU2VjdXJpdHlPcmln
aW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJWaWV3LmggYi9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCBhOTlkZjNhLi43ODEyMzY5
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9XZWJLaXQvd2luL1dlYlZp
ZXcuaApAQCAtNzY0LDcgKzc2NCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihCU1RSIHNvdXJjZU9yaWdp
biwgQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwogCi0KICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0SGlzdG9yeURlbGVnYXRlKElXZWJIaXN0b3J5
RGVsZWdhdGUqIGhpc3RvcnlEZWxlZ2F0ZSk7CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGhpc3RvcnlEZWxlZ2F0ZShJV2ViSGlzdG9yeURlbGVnYXRlKiogaGlzdG9yeURl
bGVnYXRlKTsKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVmlzaXRl
ZExpbmtzKEJTVFIqIHZpc2l0ZWRVUkxzLCB1bnNpZ25lZCB2aXNpdGVkVVJMQ291bnQpOwpAQCAt
NzgxLDYgKzc4MCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0RG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZShCT09MIGZvcmJp
ZGRlbiwgQlNUUiBzY2hlbWUpOwogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSByZWdpc3RlclVSTFNjaGVtZUFzU2VjdXJlKEJTVFIpOwogCisgICAgdmlydHVhbCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIHJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oQlNUUiBz
b3VyY2VPcmlnaW4sIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgQlNUUiBkZXN0aW5hdGlvbkhv
c3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworCiAgICAgLy8gV2ViVmlldwog
ICAgIGJvb2wgc2hvdWxkVXNlRW1iZWRkZWRWaWV3KGNvbnN0IFdlYkNvcmU6OlN0cmluZyYgbWlt
ZVR5cGUpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cgYi9XZWJL
aXRUb29scy9DaGFuZ2VMb2cKaW5kZXggYzczNzlhNC4uOTFlYmY4MiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI2IEBACisyMDEwLTA0LTEyICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4K
KworICAgICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVh
bCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgor
ICAgICAgICAocmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbkNhbGxiYWNrKTogQWRkZWQu
IENhbGwgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21Pcmln
aW4uCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKTogQWRk
ZWQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6cmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbik6IEFkZGVkLiBGSVhNRSB0byBp
bXBsZW1lbnQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9s
bGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlz
dEFjY2Vzc0Zyb21PcmlnaW4pOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKTogQWRkZWQuIEZJWE1FIHRvIGltcGxl
bWVudC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJX
aW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFj
Y2Vzc0Zyb21PcmlnaW4pOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlv
dXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3
aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKTogRklYTUUgdG8gaW1wbGVtZW50LgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBB
ZGRlZC4gRklYTUUgdG8gaW1wbGVtZW50LgorCiAyMDEwLTA0LTExICBSb2JlcnQgSG9nYW4gIDxy
b2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4K
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmNwcAppbmRleCAwYjU4ZTI0Li5mMDFmZDAzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjkyLDYgKzEyOTIsMjQg
QEAgc3RhdGljIEpTVmFsdWVSZWYgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamUKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZVdoaXRlTGlzdEFjY2Vz
c0Zyb21PcmlnaW5DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3Vt
ZW50Q291bnQgIT0gNCkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNvdXJjZU9yaWdpbihBZG9wdCwg
SlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOwor
ICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRl
c3RpbmF0aW9uUHJvdG9jb2woQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJn
dW1lbnRzWzFdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBkZXN0aW5hdGlvbkhvc3QoQWRvcHQsIEpTVmFsdWVUb1N0
cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQo
ISpleGNlcHRpb24pOworICAgIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1Zh
bHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1szXSk7CisKKyAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5yZW1vdmVX
aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKHNvdXJjZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Q
cm90b2NvbC5nZXQoKSwgZGVzdGluYXRpb25Ib3N0LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQor
CiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTY3JvbGxiYXJQb2xpY3lDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBh
cmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBl
eGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gMikKQEAgLTE1MDAsNiArMTUx
OCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5j
dGlvbnMoKQogICAgICAgICB7ICJxdWV1ZU5vbkxvYWRpbmdTY3JpcHQiLCBxdWV1ZU5vbkxvYWRp
bmdTY3JpcHRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJxdWV1ZVJlbG9hZCIsIHF1ZXVl
UmVsb2FkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVtb3ZlQWxsVmlzaXRlZExpbmtz
IiwgcmVtb3ZlQWxsVmlzaXRlZExpbmtzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAicmVt
b3ZlV2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbiIsIHJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21P
cmlnaW5DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJyZXBhaW50U3dlZXBIb3Jpem9udGFs
bHkiLCByZXBhaW50U3dlZXBIb3Jpem9udGFsbHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRBY2NlcHRzRWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMiLCBzZXRBbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBlOTc3
ZjJmLi41NjZkOGFiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTIyNiw2ICsyMjYsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZBY3RpdmVBbmltYXRpb25zKCkgY29uc3Q7CiAKICAgICB2b2lkIHdoaXRlTGlz
dEFjY2Vzc0Zyb21PcmlnaW4oSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlV2hpdGVMaXN0QWNjZXNz
RnJvbU9yaWdpbihKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucyk7CiAKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJpbmdSZWYg
c291cmNlLCBib29sIHJ1bkF0U3RhcnQpOwogICAgIHZvaWQgYWRkVXNlclN0eWxlU2hlZXQoSlNT
dHJpbmdSZWYgc291cmNlKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDUyYjZkNmMuLjY2ZjFh
MzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMjY2LDYgKzI2NiwxMSBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNv
dXJjZU9yaWdpbiwgSgogICAgIGdfZnJlZShob3N0R0NoYXIpOwogfQogCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVm
IHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgcHJvdG9jb2wsIEpTU3RyaW5nUmVmIGhvc3QsIGJv
b2wgaW5jbHVkZVN1YmRvbWFpbnMpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJv
b2wgZmxhZykKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5k
ZXggY2JjOTA0Zi4uMzA1YWVlZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTczLDYgKzU3Mywx
NyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2lu
KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSgogICAgIFtXZWJWaWV3IF93aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luOnNvdXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRp
b25Qcm90b2NvbE5TIGRlc3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWluczphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CiB9CiAKK3ZvaWQg
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oSlNT
dHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VPcmlnaW5DRihBZG9wdENG
LCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzb3VyY2VPcmlnaW4p
KTsKKyAgICBOU1N0cmluZyAqc291cmNlT3JpZ2luTlMgPSAoTlNTdHJpbmcgKilzb3VyY2VPcmln
aW5DRi5nZXQoKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHByb3RvY29sQ0YoQWRvcHRD
RiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZGVzdGluYXRpb25Q
cm90b2NvbCkpOworICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvblByb3RvY29sTlMgPSAoTlNTdHJp
bmcgKilwcm90b2NvbENGLmdldCgpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gaG9zdENG
KEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGRlc3Rp
bmF0aW9uSG9zdCkpOworICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbkhvc3ROUyA9IChOU1N0cmlu
ZyAqKWhvc3RDRi5nZXQoKTsKKyAgICBbV2ViVmlldyBfcmVtb3ZlV2hpdGVMaXN0QWNjZXNzRnJv
bU9yaWdpbjpzb3VyY2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29sOmRlc3RpbmF0aW9uUHJv
dG9jb2xOUyBkZXN0aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnM6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOworfQorCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRp
b24sIEpTU3RyaW5nUmVmIHBvbGljeSkKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuY3BwCmluZGV4IDNjYWQ1YjIuLmNlNDNiYzYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBAIC00
ODAsNiArNDgwLDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndoaXRlTGlzdEFjY2Vz
c0Zyb21PcmlnaW4oY29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oc291cmNlT3JpZ2luLCBkZXN0
aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlV2hpdGVMaXN0QWNj
ZXNzRnJvbU9yaWdpbihjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
LgorfQorCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUo
KQogewogICAgIG1fd2FpdEZvclBvbGljeSA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRl
eCBlZDJmZmVjLi44YWRiYjNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTk5Miw2ICs5OTIs
MTUgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
bihKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEoKICAgICB3ZWJWaWV3LT53aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luKGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0QlNUUigpLCBic3RyVChkZXN0aW5h
dGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uSG9zdCkuR2V0QlNUUigp
LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnJlbW92ZVdoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit7CisgICAgQ09N
UHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlldzsKKyAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0
ZUluc3RhbmNlKF9fdXVpZG9mKFdlYlZpZXcpLCAwLCBfX3V1aWRvZih3ZWJWaWV3KSwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKio+KCZ3ZWJWaWV3KSkpKQorICAgICAgICByZXR1cm47CisKKyAgICB3
ZWJWaWV3LT5yZW1vdmVXaGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGJzdHJUKHNvdXJjZU9yaWdp
bikuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJU
KGRlc3RpbmF0aW9uSG9zdCkuR2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7
Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0
cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQogewogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xh
eW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5kZXggZTFkYjc0Ni4uMDIzN2QyNCAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJX
eC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHAKQEAgLTM2Miw3ICszNjIsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6ZGlzYWJsZUltYWdlTG9hZGluZygpCiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Ondo
aXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CisgICAgLy8gRklYTUU6IGltcGxlbWVu
dAorfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVXaGl0ZUxpc3RBY2Nlc3NG
cm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRp
b25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAogdm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVu
dGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpCi0tIAoxLjcuMC4yCgo=
</data>
<flag name="review"
          id="36820"
          type_id="1"
          status="-"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="36821"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53230</attachid>
            <date>2010-04-13 00:51:31 -0700</date>
            <delta_ts>2010-04-13 14:55:34 -0700</delta_ts>
            <desc>Rename part</desc>
            <filename>0001-Rename-SecurityOrigin-whiteListAccessFromOrigin-to-a.patch</filename>
            <type>text/plain</type>
            <size>46091</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA1OTJiYTJhODkzZjE2NTI0ZTc0YWMzODI1OTQzZTRjNWU4NWE0NDI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDEzIEFwciAyMDEwIDAwOjQ4OjA2IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gUmVu
YW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5LgogQW5kIFNlY3VyaXR5T3JpZ2luOjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlTGlzdHMgdG8gcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzLgoKU2VjdXJpdHlP
cmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwgT3JpZ2luQWNjZXNzRW50cmll
cwpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0NDkKClJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViQ29yZToKCiogV2ViQ29yZS5iYXNlLmV4cDoKKiBwYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcDoKKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CihXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RzKToKKiBwYWdlL1NlY3VyaXR5T3JpZ2luLmg6CgpXZWJLaXQvY2hy
b21pdW06CgoqIHNyYy9XZWJTZWN1cml0eVBvbGljeS5jcHA6CihXZWJLaXQ6OldlYlNlY3VyaXR5
UG9saWN5Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKToKKFdlYktpdDo6V2ViU2VjdXJpdHlQ
b2xpY3k6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyk6CgpXZWJLaXQvZ3RrOgoKKiB3ZWJr
aXQvd2Via2l0cHJpdmF0ZS5jcHA6Cih3ZWJraXRfd2hpdGVfbGlzdF9hY2Nlc3NfZnJvbV9vcmln
aW4pOgood2Via2l0X3Jlc2V0X29yaWdpbl9hY2Nlc3Nfd2hpdGVfbGlzdHMpOgoKV2ViS2l0L21h
YzoKCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooK1tXZWJWaWV3IF9hZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlv
bkhvc3Q6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6XSk6CigrW1dlYlZpZXcgX3Jlc2V0T3Jp
Z2luQWNjZXNzV2hpdGVsaXN0c10pOgoqIFdlYlZpZXcvV2ViVmlld1ByaXZhdGUuaDoKCldlYktp
dC9xdDoKCiogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgooRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOgooRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyk6CgpXZWJLaXQv
d2luOgoKKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGw6CiogV2ViVmlldy5jcHA6CihX
ZWJWaWV3OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CihXZWJWaWV3OjpyZXNldE9y
aWdpbkFjY2Vzc1doaXRlbGlzdHMpOgoqIFdlYlZpZXcuaDoKCldlYktpdFRvb2xzOgoKKiBEdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CihhZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeUNhbGxiYWNrKToKKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlv
bnMpOgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CiogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgooTGF5b3V0VGVzdENvbnRy
b2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKExheW91dFRlc3RDb250cm9sbGVyOjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CiogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaDoKKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRy
b2xsZXJHdGsuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KToKKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CihyZXNl
dFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgoqIER1bXBSZW5kZXJUcmVl
L21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKExheW91dFRlc3RDb250cm9sbGVyOjph
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6CiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkpOgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaDoKKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgoocmVzZXRX
ZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKiBEdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KToKKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSk6CgpMYXlvdXRUZXN0czoKCiogaHR0cC90ZXN0cy9zZWN1cml0eS9s
b2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQ6CiogaHR0cC90
ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sOgoq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwuaHRtbDoK
KiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0
Y2guaHRtbDoKKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
aHR0cHMuaHRtbDoKKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rp
bmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sOgoqIGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbDoKKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sOgot
LS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
ICAxOCArKysrKysrKysrCiAuLi5vY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLWV4
cGVjdGVkLnR4dCB8ICAgIDIgKy0KIC4uLi9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxp
c3RlZC5odG1sICAgICAgIHwgICAgNCArLQogLi4uL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3RpbmctYWxsLmh0bWwgICAgfCAgICA0ICstCiAuLi4vb3JpZ2luLXdoaXRlbGlzdGluZy1l
eGFjdC1tYXRjaC5odG1sICAgICAgICAgICB8ICAgIDIgKy0KIC4uLi94bWxodHRwcmVxdWVzdC9v
cmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWwgIHwgICAgMiArLQogLi4uLXdoaXRlbGlzdGlu
Zy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWwgfCAgICAyICstCiAuLi4vb3JpZ2lu
LXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbCAgICAgICAgICB8ICAgIDIgKy0KIC4uLi9v
cmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMuaHRtbCAgICAgICAgICAgIHwgICAgMiArLQog
V2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE2
ICsrKysrKysrKwogV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA0ICstCiBXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwICAgICAgICAg
ICAgICAgICAgICB8ICAgIDQgKy0KIFdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgNCArLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrKysrCiBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNlY3VyaXR5UG9saWN5LmNwcCAgICAgICAgICB8ICAgIDQgKy0KIFdlYktpdC9ndGsvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNCArKysrKysrKwogV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgICAgICAgICAgICAgICAgfCAgICA0ICst
CiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg
MTUgKysrKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAgICAg
ICAgICAgIHwgICAgOCArKy0tCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCAg
ICAgICAgICAgICAgICB8ICAgIDYgKystLQogV2ViS2l0L3F0L0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrKysrCiAuLi4vcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwICB8ICAgIDQgKy0KIFdlYktpdC93aW4vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNiArKysrKysrKysKIFdl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsICAgICAgICAgIHwgICAgNiAr
Ky0tCiBXZWJLaXQvd2luL1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
ICAgIDggKystLQogV2ViS2l0L3dpbi9XZWJWaWV3LmggICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgICA1ICstLQogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDM1ICsrKysrKysrKysrKysrKysrKysrCiAuLi4vRHVtcFJlbmRlclRy
ZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgIDYgKystLQogV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAgfCAgICAyICstCiAuLi4v
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgICAgICB8ICAgIDQgKy0K
IC4uLi9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIHwgICAg
NCArLQogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAg
fCAgICAyICstCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0gICB8ICAgIDIgKy0KIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0gIHwgICAgNCArLQogLi4uL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwICAgfCAgICAyICstCiAuLi4vRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oICAgICB8ICAgIDIgKy0KIFdlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgIHwgICAgMiArLQogLi4uL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgfCAgICA0ICstCiAuLi4vRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgICB8ICAgIDIgKy0KIDM5IGZpbGVzIGNo
YW5nZWQsIDE5OCBpbnNlcnRpb25zKCspLCA1NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmRkNDE3
YS4uOTgwMGVhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA0LTEzICBUaW1vdGh5IEhh
dGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgTGF5b3V0VGVzdENv
bnRyb2xsZXIud2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbiB0byBhZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeS4KKworICAgICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1v
dmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFn
ZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1h
bGwuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3RpbmctZXhhY3QtbWF0Y2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgt
c3ViZG9tYWlucy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sOgorCiAy
MDEwLTA0LTExICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9t
LXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQKaW5kZXggNjU1ZTM3Ny4uOWNjOGI2OCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1m
cm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1leHBl
Y3RlZC50eHQKQEAgLTEsNCArMSw0IEBACiAKLVRoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1v
dGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVl
biB3aGl0ZSBsaXN0ZWQgdXNpbmcgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4KK1RoaXMgdGVz
dCBpcyB0byBzZWUgaWYgYSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdo
ZW4gdGhlIGFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkuCiAKIFRlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3Rl
bHkuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlt
YWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwKaW5kZXgg
NmViY2NkMy4uMDk2YzRhYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVs
aXN0ZWQuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxzY3JpcHQ+CiAKIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLWxheW91dFRlc3RDb250cm9sbGVyLndoaXRlTGlzdEFjY2Vzc0Zy
b21PcmlnaW4oJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoJ2h0dHA6Ly8x
MjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOwogCiB2YXIgbG9jYWxJbWFnZUxvY2F0
aW9uID0gbGF5b3V0VGVzdENvbnRyb2xsZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90
bXAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcn
KTsKIApAQCAtMjQsNyArMjQsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiA8L3Nj
cmlwdD4KIAogPHA+VGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNs
dWRlIGEgbG9jYWwgaW1hZ2Ugd2hlbiB0aGUKLWFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQg
dXNpbmcgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbi4KK2FjY2VzcyBoYXMgYmVlbiB3aGl0ZSBs
aXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCiAKIDxwIGlkPXJlc3Vs
dD5UZXN0IGhhcyBub3QgcnVuLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwK
aW5kZXggZTA3ODVlMS4uYzZiODU3OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwu
aHRtbApAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+CiBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CiBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci1sYXlvdXRU
ZXN0Q29udHJvbGxlci53aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKLWxheW91dFRlc3RDb250cm9sbGVyLndoaXRlTGlz
dEFjY2Vzc0Zyb21PcmlnaW4oImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiIsIHRy
dWUpOworbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOworbGF5b3V0VGVzdENv
bnRyb2xsZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLmh0bWwKaW5kZXggYjM1
ZTlkZS4uOWVlMWNiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0
LW1hdGNoLmh0bWwKQEAgLTQsNyArNCw3IEBACiA8c2NyaXB0PgogbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwogbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwot
bGF5b3V0VGVzdENvbnRyb2xsZXIud2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbigiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOworbGF5b3V0VGVzdENv
bnRyb2xsZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCmluZGV4IDEwZTYw
NmUuLjA5ZDFkYmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCkBA
IC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLWxheW91dFRlc3RDb250
cm9sbGVyLndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIs
ICJodHRwcyIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CitsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBz
IiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nl
cy13aXRoLXN1YmRvbWFpbnMuaHRtbAppbmRleCA4NTBkMTYyLi4yNGE3NjEwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rp
bmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMt
d2l0aC1zdWJkb21haW5zLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0PgogbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOwotbGF5b3V0VGVzdENvbnRyb2xsZXIud2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbigi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiKi4wLjAuMSIsIHRydWUpOworbGF5b3V0
VGVzdENvbnRyb2xsZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMCIsICJodHRwIiwgIiouMC4wLjEiLCB0cnVlKTsKIAogZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2Vz
Lmh0bWwKaW5kZXggYTNhM2FmNy4uZWEyZTNkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxzY3JpcHQ+CiBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci1sYXlvdXRUZXN0Q29udHJvbGxlci53aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luKCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxz
ZSk7CitsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiMTI3LjAuMC4xIiwgZmFsc2UpOwogCiBm
dW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
c3ViZG9tYWlucy5odG1sCmluZGV4IDYxNjEwZTQuLjM2MDkyMGIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJk
b21haW5zLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9v
cmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMuaHRtbApAQCAtNCw3ICs0LDcgQEAKIDxzY3Jp
cHQ+CiBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci1sYXlvdXRUZXN0Q29udHJvbGxlci53aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luKCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3Qi
LCB0cnVlKTsKK2xheW91dFRlc3RDb250cm9sbGVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0cnVlKTsK
IAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDg4MTY3NzQuLjk3NDAyMzAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTAtMDQtMTMgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlbmFtZSBTZWN1cml0eU9yaWdpbjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbiB0
byBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KKyAgICAgICAgQW5kIFNlY3VyaXR5T3Jp
Z2luOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMgdG8gcmVzZXRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RzLgorCisgICAgICAgIFNlY3VyaXR5T3JpZ2luIG5lZWRzIGEgd2F5IHRvIHJlbW92ZSBp
bmRpdmlkdWFsIE9yaWdpbkFjY2Vzc0VudHJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDQ5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhwOgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMpOgorICAgICAgICAqIHBhZ2UvU2Vj
dXJpdHlPcmlnaW4uaDoKKwogMjAxMC0wNC0xMCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuICBSZW5hbWUgbV9mb3JjZVNhbmRib3hGbGFncyB0
byBtX2ZvcmNlZFNhbmRveEZsYWdzLCBhcwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmJh
c2UuZXhwIGIvV2ViQ29yZS9XZWJDb3JlLmJhc2UuZXhwCmluZGV4IDMxNWM3ZTguLjY2OTU5NTQg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAorKysgYi9XZWJDb3JlL1dlYkNv
cmUuYmFzZS5leHAKQEAgLTMxMiw4ICszMTIsOCBAQCBfX1pON1dlYkNvcmUxNFNlY3VyaXR5T3Jp
Z2luMThzZXRMb2NhbExvYWRQb2xpY3lFTlMwXzE1TG9jYWxMb2FkUG9saWN5RQogX19aTjdXZWJD
b3JlMTRTZWN1cml0eU9yaWdpbjE4c2hvdWxkSGlkZVJlZmVycmVyRVJLTlNfNEtVUkxFUktOU182
U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI0cmVnaXN0ZXJVUkxTY2hlbWVB
c0xvY2FsRVJLTlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNXJlZ2lz
dGVyVVJMU2NoZW1lQXNTZWN1cmVFUktOU182U3RyaW5nRQotX19aTjdXZWJDb3JlMTRTZWN1cml0
eU9yaWdpbjI1d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbkVSS1MwX1JLTlNfNlN0cmluZ0VTNV9i
Ci1fX1pON1dlYkNvcmUxNFNlY3VyaXR5T3JpZ2luMjdyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlz
dHNFdgorX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI5YWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnlFUktTMF9SS05TXzZTdHJpbmdFUzVfYgorX19aTjdXZWJDb3JlMTRTZWN1cml0eU9y
aWdpbjI3cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzRXYKIF9fWk43V2ViQ29yZTE0U2VjdXJp
dHlPcmlnaW40MHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVFYlJLTlNf
NlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxF
aQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjdjYW5Mb2FkRVJLTlNfNEtVUkxFUktOU182
U3RyaW5nRVBOU184RG9jdW1lbnRFCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlP
cmlnaW4uY3BwIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcAppbmRleCA5MWZiYWY5
Li5mYTJhYmY5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCisr
KyBiL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5jcHAKQEAgLTY0OSw3ICs2NDksNyBAQCBi
b29sIFNlY3VyaXR5T3JpZ2luOjphbGxvd1N1YnN0aXR1dGVEYXRhQWNjZXNzVG9Mb2NhbCgpCiAg
ICAgcmV0dXJuIGxvY2FsTG9hZFBvbGljeSAhPSBTZWN1cml0eU9yaWdpbjo6QWxsb3dMb2NhbExv
YWRzRm9yTG9jYWxPbmx5OwogfQogCi12b2lkIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFN0
cmluZyYgZGVzdGluYXRpb25Qcm90b2NvbCwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvbkRvbWFp
bnMsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFNlY3VyaXR5T3JpZ2lu
OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBTZWN1cml0eU9yaWdpbiYgc291
cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmlu
ZyYgZGVzdGluYXRpb25Eb21haW5zLCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKCFzb3VyY2VPcmlnaW4u
aXNFbXB0eSgpKTsKQEAgLTY2NSw3ICs2NjUsNyBAQCB2b2lkIFNlY3VyaXR5T3JpZ2luOjp3aGl0
ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBzb3VyY2VPcmlnaQog
ICAgIGxpc3QtPmFwcGVuZChPcmlnaW5BY2Nlc3NFbnRyeShkZXN0aW5hdGlvblByb3RvY29sLCBk
ZXN0aW5hdGlvbkRvbWFpbnMsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zID8gT3JpZ2luQWNj
ZXNzRW50cnk6OkFsbG93U3ViZG9tYWlucyA6IE9yaWdpbkFjY2Vzc0VudHJ5OjpEaXNhbGxvd1N1
YmRvbWFpbnMpKTsKIH0KIAotdm9pZCBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZUxpc3RzKCkKK3ZvaWQgU2VjdXJpdHlPcmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0cygpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBPcmlnaW5BY2Nlc3NN
YXAmIG1hcCA9IG9yaWdpbkFjY2Vzc01hcCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wYWdlL1Nl
Y3VyaXR5T3JpZ2luLmggYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAppbmRleCAwZTNk
NmU0Li5jMmJlMjc3IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAor
KysgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaApAQCAtMTk0LDggKzE5NCw4IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlclVSTFNjaGVtZUFzTm9BY2Nlc3MoY29uc3Qg
U3RyaW5nJik7CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNz
KGNvbnN0IFN0cmluZyYpOwogCi0gICAgc3RhdGljIHZvaWQgd2hpdGVMaXN0QWNjZXNzRnJvbU9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJpbmcmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Eb21haW5zLCBib29s
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKLSAgICBzdGF0aWMgdm9pZCByZXNldE9yaWdp
bkFjY2Vzc1doaXRlTGlzdHMoKTsKKyAgICBzdGF0aWMgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShjb25zdCBTZWN1cml0eU9yaWdpbiYgc291cmNlT3JpZ2luLCBjb25zdCBTdHJp
bmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFN0cmluZyYgZGVzdGluYXRpb25Eb21haW5z
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBzdGF0aWMgdm9pZCByZXNl
dE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIAogcHJpdmF0ZToKICAgICBTZWN1cml0eU9yaWdp
bihjb25zdCBLVVJMJiwgU2FuZGJveEZsYWdzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDg0YmY3MDMuLjRk
ZmI0ZGUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA0LTEzICBUaW1vdGh5
IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgU2VjdXJpdHlP
cmlnaW46OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4gdG8gYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkuCisgICAgICAgIEFuZCBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZUxpc3RzIHRvIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cy4KKworICAgICAgICBTZWN1
cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NF
bnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
NzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2VjdXJpdHlQ
b2xpY3k6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJT
ZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKToKKwogMjAxMC0wNC0x
MCAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZWN1cml0eVBvbGljeS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNlY3Vy
aXR5UG9saWN5LmNwcAppbmRleCA1ZDQ2NzRlLi4yNGVmN2QxIDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNlY3VyaXR5UG9saWN5LmNwcApAQCAtNjEsMTQgKzYxLDE0IEBAIHZvaWQgV2ViU2Vj
dXJpdHlQb2xpY3k6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4oY29uc3QgV2ViVVJMJiBzb3Vy
Y2VPcmlnaW4sCiAgICAgY29uc3QgV2ViU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsCiAgICAgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKLSAgICBTZWN1cml0eU9yaWdpbjo6d2hp
dGVMaXN0QWNjZXNzRnJvbU9yaWdpbigKKyAgICBTZWN1cml0eU9yaWdpbjo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoCiAgICAgICAgICpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHNvdXJj
ZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsCiAgICAgICAgIGRlc3RpbmF0aW9uSG9zdCwg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCiB2b2lkIFdlYlNlY3VyaXR5UG9saWN5
OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMoKQogewotICAgIFNlY3VyaXR5T3JpZ2luOjpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHMoKTsKKyAgICBTZWN1cml0eU9yaWdpbjo6cmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiB9CiAKIGJvb2wgV2ViU2VjdXJpdHlQb2xpY3k6OnNo
b3VsZEhpZGVSZWZlcnJlcihjb25zdCBXZWJVUkwmIHVybCwgY29uc3QgV2ViU3RyaW5nJiByZWZl
cnJlcikKZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKaW5kZXggMzNhZTVmYS4uMjQwZTJmZSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMC0w
NC0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVu
YW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5LgorICAgICAgICBBbmQgU2VjdXJpdHlPcmlnaW46OnJlc2V0
T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyB0byByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMuCisK
KyAgICAgICAgU2VjdXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwg
T3JpZ2luQWNjZXNzRW50cmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHdlYmtpdC93ZWJraXRwcml2YXRlLmNwcDoKKyAgICAgICAgKHdlYmtpdF93
aGl0ZV9saXN0X2FjY2Vzc19mcm9tX29yaWdpbik6CisgICAgICAgICh3ZWJraXRfcmVzZXRfb3Jp
Z2luX2FjY2Vzc193aGl0ZV9saXN0cyk6CisKIDIwMTAtMDQtMDcgIEFuZHJleSBLb3N5YWtvdiAg
PGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0
c2t5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5jcHAgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAppbmRleCA0NDUwNTFiLi45NzE5MjJm
IDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcAorKysgYi9X
ZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmNwcApAQCAtMjkzLDEwICsyOTMsMTAgQEAg
dm9pZCB3ZWJraXRfaW5pdCgpCiAKIHZvaWQgd2Via2l0X3doaXRlX2xpc3RfYWNjZXNzX2Zyb21f
b3JpZ2luKGNvbnN0IGdjaGFyKiBzb3VyY2VPcmlnaW4sIGNvbnN0IGdjaGFyKiBkZXN0aW5hdGlv
blByb3RvY29sLCBjb25zdCBnY2hhciogZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQogewotICAgIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NG
cm9tT3JpZ2luKCpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4p
LCBkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKKyAgICBTZWN1cml0eU9yaWdpbjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRv
bWFpbnMpOwogfQogCiB2b2lkIHdlYmtpdF9yZXNldF9vcmlnaW5fYWNjZXNzX3doaXRlX2xpc3Rz
KCkKIHsKLSAgICBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCk7
CisgICAgU2VjdXJpdHlPcmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogfQpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpp
bmRleCBmMWFmZjE2Li5kYjcyYTY4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL0NoYW5nZUxvZwor
KysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA0LTEzICBU
aW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgU2Vj
dXJpdHlPcmlnaW46OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4gdG8gYWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkuCisgICAgICAgIEFuZCBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5B
Y2Nlc3NXaGl0ZUxpc3RzIHRvIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cy4KKworICAgICAg
ICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5B
Y2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoK1tXZWJWaWV3IF9hZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46ZGVzdGluYXRpb25Qcm90b2NvbDpk
ZXN0aW5hdGlvbkhvc3Q6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6XSk6CisgICAgICAgICgr
W1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c10pOgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlld1ByaXZhdGUuaDoKKwogMjAxMC0wNC0xMCAgTWFyayBSb3dlICA8bXJvd2VAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IGU1MGJjMTQuLmQxYTdlZGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0y
MjQ3LDE0ICsyMjQ3LDE0IEBAIC0gKE5TUGFzdGVib2FyZCAqKV9pbnNlcnRpb25QYXN0ZWJvYXJk
CiAgICAgcmV0dXJuIF9wcml2YXRlID8gX3ByaXZhdGUtPmluc2VydGlvblBhc3RlYm9hcmQgOiBu
aWw7CiB9CiAKLSsgKHZvaWQpX3doaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW46KE5TU3RyaW5nICop
c291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6KE5TU3RyaW5nICopZGVzdGluYXRpb25Q
cm90b2NvbCBkZXN0aW5hdGlvbkhvc3Q6KE5TU3RyaW5nICopZGVzdGluYXRpb25Ib3N0IGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zOihCT09MKWFsbG93RGVzdGluYXRpb25TdWJkb21haW5zCisr
ICh2b2lkKV9hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46KE5T
U3RyaW5nICopc291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6KE5TU3RyaW5nICopZGVz
dGluYXRpb25Qcm90b2NvbCBkZXN0aW5hdGlvbkhvc3Q6KE5TU3RyaW5nICopZGVzdGluYXRpb25I
b3N0IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOihCT09MKWFsbG93RGVzdGluYXRpb25TdWJk
b21haW5zCiB7Ci0gICAgU2VjdXJpdHlPcmlnaW46OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4o
KlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
OworICAgIFNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgqU2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoc291cmNlT3JpZ2luKSwgZGVzdGluYXRpb25Q
cm90b2NvbCwgZGVzdGluYXRpb25Ib3N0LCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiB9
CiAKLSsodm9pZClfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzCisrKHZvaWQpX3Jlc2V0T3Jp
Z2luQWNjZXNzV2hpdGVsaXN0cwogewotICAgIFNlY3VyaXR5T3JpZ2luOjpyZXNldE9yaWdpbkFj
Y2Vzc1doaXRlTGlzdHMoKTsKKyAgICBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RzKCk7CiB9CiAKIC0gKHZvaWQpX3VwZGF0ZUFjdGl2ZVN0YXRlCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDdmMzc5NjMuLjE4ZDMzMTQgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3UHJpdmF0ZS5oCkBAIC00ODksMTAgKzQ4OSwxMCBAQCBDb3VsZCBiZSB3b3J0aCBh
ZGRpbmcgdG8gdGhlIEFQSS4KIC8vIC0gZGVzdGluYXRpb25Qcm90b2NvbDogVGhlIHByb3RvY29s
IHRvIGdyYW50IGFjY2VzcyB0by4KIC8vIC0gZGVzdGluYXRpb25Ib3N0OiBUaGUgaG9zdCB0byBn
cmFudCBhY2Nlc3MgdG8uCiAvLyAtIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOiBJZiBob3N0
IGlzIGEgZG9tYWluLCBzZXR0aW5nIHRoaXMgdG8gWUVTIHdpbGwgd2hpdGVsaXN0IGhvc3QgYW5k
IGFsbCBpdHMgc3ViZG9tYWlucywgcmVjdXJzaXZlbHkuCi0rICh2b2lkKV93aGl0ZUxpc3RBY2Nl
c3NGcm9tT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlvblByb3RvY29s
OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0OihOU1N0cmlu
ZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczooQk9PTClhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWluczsKKysgKHZvaWQpX2FkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNTdHJpbmcgKilzb3VyY2VPcmlnaW4gZGVzdGluYXRp
b25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5hdGlvblByb3RvY29sIGRlc3RpbmF0aW9uSG9z
dDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3QgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6
KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM7CiAKLS8vIFJlbW92ZXMgYWxsIHdoaXRl
IGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX3doaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4uCi0r
ICh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc1doaXRlTGlzdHM7CisvLyBSZW1vdmVzIGFsbCB3aGl0
ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3aXRoIF9hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eVdpdGhTb3VyY2VPcmlnaW4uCisrICh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHM7
CiAKICsgKHZvaWQpX2FkZFVzZXJTY3JpcHRUb0dyb3VwOihOU1N0cmluZyAqKWdyb3VwTmFtZSB3
b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6KE5TU3RyaW5nICopc291cmNlIHVy
bDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5ICopd2hpdGVsaXN0IGJsYWNrbGlzdDoo
TlNBcnJheSAqKWJsYWNrbGlzdCBpbmplY3Rpb25UaW1lOihXZWJVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSlpbmplY3Rpb25UaW1lOwogKyAodm9pZClfYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwOihO
U1N0cmluZyAqKWdyb3VwTmFtZSB3b3JsZDooV2ViU2NyaXB0V29ybGQgKil3b3JsZCBzb3VyY2U6
KE5TU3RyaW5nICopc291cmNlIHVybDooTlNVUkwgKil1cmwgd2hpdGVsaXN0OihOU0FycmF5ICop
d2hpdGVsaXN0IGJsYWNrbGlzdDooTlNBcnJheSAqKWJsYWNrbGlzdDsKZGlmZiAtLWdpdCBhL1dl
YktpdC9xdC9DaGFuZ2VMb2cgYi9XZWJLaXQvcXQvQ2hhbmdlTG9nCmluZGV4IDc4OTlmZjkuLjVh
Y2Q1MGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3F0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA0LTEzICBUaW1vdGh5IEhhdGNoZXIgIDx0
aW1vdGh5QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgU2VjdXJpdHlPcmlnaW46OndoaXRl
TGlzdEFjY2Vzc0Zyb21PcmlnaW4gdG8gYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCisg
ICAgICAgIEFuZCBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzIHRv
IHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cy4KKworICAgICAgICBTZWN1cml0eU9yaWdpbiBu
ZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQ6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyk6CisKIDIwMTAtMDQt
MTEgIFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTJhMzkxZS4uOTdiYjk5YSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cAorKysgYi9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCkBAIC0zMTYsMTIgKzMxNiwxMiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojpl
dmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZChRV2ViRnJhbWUqIGZyYW1lLCBpbgogCiB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGNvbnN0
IFFTdHJpbmcmIHNvdXJjZU9yaWdpbiwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Qcm90b2Nv
bCwgY29uc3QgUVN0cmluZyYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKQogewotICAgIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3Jp
Z2luKCpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLCBkZXN0
aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKKyAgICBTZWN1cml0eU9yaWdpbjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
KlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
OwogfQogCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpyZXNldE9yaWdpbkFjY2Vzc1do
aXRlTGlzdHMoKQogewotICAgIFNlY3VyaXR5T3JpZ2luOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRl
TGlzdHMoKTsKKyAgICBTZWN1cml0eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3Rz
KCk7CiB9CiAKIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldERvbWFpblJlbGF4YXRp
b25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFFTdHJpbmcmIHNj
aGVtZSkKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKaW5kZXggYWZlOWRlYS4uMmI4NmY1NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMC0w
NC0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVu
YW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luIHRvIGFkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5LgorICAgICAgICBBbmQgU2VjdXJpdHlPcmlnaW46OnJlc2V0
T3JpZ2luQWNjZXNzV2hpdGVMaXN0cyB0byByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMuCisK
KyAgICAgICAgU2VjdXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwg
T3JpZ2luQWNjZXNzRW50cmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBX
ZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KToKKyAgICAgICAgKFdlYlZpZXc6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cyk6Cisg
ICAgICAgICogV2ViVmlldy5oOgorCiAyMDEwLTA0LTA5ICBBZGFtIFJvYmVuICA8YXJvYmVuQGFw
cGxlLmNvbT4KIAogICAgICAgICBXaW5kb3dzIERlYnVnL1JlbGVhc2UgYnVpbGQgZml4IGFmdGVy
IHI1NzI0NApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0
ZS5pZGwgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAppbmRleCAz
ODE1OTQyLi44ZjBkOThlIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZp
ZXdQcml2YXRlLmlkbAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRl
LmlkbApAQCAtMjA3LDEwICsyMDcsMTAgQEAgaW50ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZSA6IElV
bmtub3duCiAgICAgLy8gLSBkZXN0aW5hdGlvblByb3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3Jh
bnQgYWNjZXNzIHRvLgogICAgIC8vIC0gZGVzdGluYXRpb25Ib3N0OiBUaGUgaG9zdCB0byBncmFu
dCBhY2Nlc3MgdG8uCiAgICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9z
dCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFu
ZCBhbGwgaXRzIHN1YmRvbWFpbnMsIHJlY3Vyc2l2ZWx5LgotICAgIEhSRVNVTFQgd2hpdGVMaXN0
QWNjZXNzRnJvbU9yaWdpbihbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBbaW5dIEJTVFIgZGVzdGlu
YXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgW2luXSBCT09MIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBIUkVTVUxUIGFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KFtpbl0gQlNUUiBzb3VyY2VPcmlnaW4sIFtpbl0gQlNUUiBkZXN0aW5hdGlvblBy
b3RvY29sLCBbaW5dIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBbaW5dIEJPT0wgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogCi0gICAgLy8gUmVtb3ZlcyBhbGwgd2hpdGUgbGlzdCBlbnRyaWVz
IGNyZWF0ZWQgd2l0aCB3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luLgotICAgIEhSRVNVTFQgcmVz
ZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzKCk7CisgICAgLy8gUmVtb3ZlcyBhbGwgd2hpdGUgbGlz
dCBlbnRyaWVzIGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KKyAg
ICBIUkVTVUxUIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpOwogCiAgICAgSFJFU1VMVCBz
ZXRIaXN0b3J5RGVsZWdhdGUoW2luXSBJV2ViSGlzdG9yeURlbGVnYXRlKiBoaXN0b3J5RGVsZWdh
dGUpOwogICAgIEhSRVNVTFQgaGlzdG9yeURlbGVnYXRlKFtvdXQscmV0dmFsXSBJV2ViSGlzdG9y
eURlbGVnYXRlKiogaGlzdG9yeURlbGVnYXRlKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDQ2OTViZjQuLjQyMWRjY2Ig
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcApAQCAtNjAzNCwxNSArNjAzNCwxNSBAQCBIUkVTVUxUIFdlYlZpZXc6OmludmFsaWRh
dGVCYWNraW5nU3RvcmUoY29uc3QgUkVDVCogcmVjdCkKICAgICByZXR1cm4gU19PSzsKIH0KIAot
SFJFU1VMVCBXZWJWaWV3Ojp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEJTVFIgc291cmNlT3Jp
Z2luLCBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09M
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQorSFJFU1VMVCBXZWJWaWV3OjphZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShCU1RSIHNvdXJjZU9yaWdpbiwgQlNUUiBkZXN0aW5hdGlvblBy
b3RvY29sLCBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKIHsKLSAgICBTZWN1cml0eU9yaWdpbjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbigq
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoU3RyaW5nKHNvdXJjZU9yaWdpbiwgU3lz
U3RyaW5nTGVuKHNvdXJjZU9yaWdpbikpKSwgU3RyaW5nKGRlc3RpbmF0aW9uUHJvdG9jb2wsIFN5
c1N0cmluZ0xlbihkZXN0aW5hdGlvblByb3RvY29sKSksIFN0cmluZyhkZXN0aW5hdGlvbkhvc3Qs
IFN5c1N0cmluZ0xlbihkZXN0aW5hdGlvbkhvc3QpKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOworICAgIFNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgq
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcoU3RyaW5nKHNvdXJjZU9yaWdpbiwgU3lz
U3RyaW5nTGVuKHNvdXJjZU9yaWdpbikpKSwgU3RyaW5nKGRlc3RpbmF0aW9uUHJvdG9jb2wsIFN5
c1N0cmluZ0xlbihkZXN0aW5hdGlvblByb3RvY29sKSksIFN0cmluZyhkZXN0aW5hdGlvbkhvc3Qs
IFN5c1N0cmluZ0xlbihkZXN0aW5hdGlvbkhvc3QpKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOwogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdlYlZpZXc6OnJlc2V0T3JpZ2lu
QWNjZXNzV2hpdGVMaXN0cygpCitIUkVTVUxUIFdlYlZpZXc6OnJlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0cygpCiB7Ci0gICAgU2VjdXJpdHlPcmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVM
aXN0cygpOworICAgIFNlY3VyaXR5T3JpZ2luOjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMo
KTsKICAgICByZXR1cm4gU19PSzsKIH0KICAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViVmll
dy5oIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYTk5ZGYzYS4uYmMxODk0ZSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAg
LTc2MSw5ICs3NjEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgaW52YWxpZGF0ZUJhY2tpbmdTdG9yZShjb25zdCBSRUNUKik7CiAKLSAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihC
U1RSIHNvdXJjZU9yaWdpbiwgQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBCU1RSIGRlc3RpbmF0
aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgdmlydHVhbCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwot
CisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KEJTVFIgc291cmNlT3JpZ2luLCBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVzZXRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RzKCk7CiAKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
SGlzdG9yeURlbGVnYXRlKElXZWJIaXN0b3J5RGVsZWdhdGUqIGhpc3RvcnlEZWxlZ2F0ZSk7CiAg
ICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGhpc3RvcnlEZWxlZ2F0ZShJV2Vi
SGlzdG9yeURlbGVnYXRlKiogaGlzdG9yeURlbGVnYXRlKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRv
b2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCBjNzM3OWE0Li45NWVk
OTUzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTAtMDQtMTMgIFRpbW90aHkgSGF0Y2hlciAg
PHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBTZWN1cml0eU9yaWdpbjo6d2hp
dGVMaXN0QWNjZXNzRnJvbU9yaWdpbiB0byBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4K
KyAgICAgICAgQW5kIExheW91dFRlc3RDb250cm9sbGVyLndoaXRlTGlzdEFjY2Vzc0Zyb21Pcmln
aW4gdG8gYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCisgICAgICAgIEFuZCBTZWN1cml0
eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxpc3RzIHRvIHJlc2V0T3JpZ2luQWNjZXNz
V2hpdGVsaXN0cy4KKworICAgICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1v
dmUgaW5kaXZpZHVhbCBPcmlnaW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFj
ayk6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcik6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
OgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06
CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0Lmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGlu
Zyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2lu
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRy
b2xsZXJXeC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkpOgorCiAyMDEwLTA0LTExICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApp
bmRleCAwYjU4ZTI0Li5kNzY4MDc0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xMjc0LDcgKzEyNzQsNyBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiB3YWl0Rm9yUG9saWN5RGVsZWdhdGVDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZQogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgd2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbkNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIGFkZE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlm
IChhcmd1bWVudENvdW50ICE9IDQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjb250ZXh0KTsKQEAgLTEyODgsNyArMTI4OCw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHdoaXRl
TGlzdEFjY2Vzc0Zyb21PcmlnaW5DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
CiAgICAgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyA9IEpTVmFsdWVUb0Jvb2xlYW4o
Y29udGV4dCwgYXJndW1lbnRzWzNdKTsKIAogICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPndoaXRlTGlzdEFjY2Vzc0Zyb21P
cmlnaW4oc291cmNlT3JpZ2luLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0
aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBjb250
cm9sbGVyLT5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCks
IGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKIH0KIApAQCAtMTU1MCw3ICsxNTUwLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgIndhaXRGb3JQ
b2xpY3lEZWxlZ2F0ZSIsIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgIndhaXRVbnRpbERvbmUiLCB3YWl0VW50aWxEb25lQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAid2luZG93Q291bnQiLCB3aW5kb3dDb3VudENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0g
ICAgICAgIHsgIndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4iLCB3aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAiYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkiLCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFNjcm9sbGJhclBvbGljeSIsIHNldFNjcm9sbGJhclBvbGljeUNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCB9CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU5NzdmMmYu
LjIwYmRlMzQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaApAQCAtMjI1LDcgKzIyNSw3IEBAIHB1YmxpYzoKICAgICBib29sIHNhbXBs
ZVNWR0FuaW1hdGlvbkZvckVsZW1lbnRBdFRpbWUoSlNTdHJpbmdSZWYgYW5pbWF0aW9uSWQsIGRv
dWJsZSB0aW1lLCBKU1N0cmluZ1JlZiBlbGVtZW50SWQpOwogICAgIHVuc2lnbmVkIG51bWJlck9m
QWN0aXZlQW5pbWF0aW9ucygpIGNvbnN0OwogCi0gICAgdm9pZCB3aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Q
cm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKTsKKyAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpT
U3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKTsKIAogICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wg
cnVuQXRTdGFydCk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3Vy
Y2UpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDZmNGQ4YmEuLjVlODA5ZjcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEwOCw3ICsxMDgsNyBAQCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0
aG9kKCJ3YWl0Rm9yUG9saWN5RGVsZWdhdGUiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRG
b3JQb2xpY3lEZWxlZ2F0ZSk7CiAgICAgYmluZE1ldGhvZCgic2V0V2lsbFNlbmRSZXF1ZXN0UmV0
dXJuc051bGxPblJlZGlyZWN0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2VuZFJl
cXVlc3RSZXR1cm5zTnVsbE9uUmVkaXJlY3QpOwogICAgIGJpbmRNZXRob2QoInNldFdpbGxTZW5k
UmVxdWVzdFJldHVybnNOdWxsIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRXaWxsU2VuZFJl
cXVlc3RSZXR1cm5zTnVsbCk7Ci0gICAgYmluZE1ldGhvZCgid2hpdGVMaXN0QWNjZXNzRnJvbU9y
aWdpbiIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbik7
CisgICAgYmluZE1ldGhvZCgiYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTsKICAgICBiaW5k
TWV0aG9kKCJjbGVhckFsbERhdGFiYXNlcyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y2xlYXJB
bGxEYXRhYmFzZXMpOwogICAgIGJpbmRNZXRob2QoInNldERhdGFiYXNlUXVvdGEiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldERhdGFiYXNlUXVvdGEpOwogICAgIGJpbmRNZXRob2QoInNldFBP
U0lYTG9jYWxlIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRQT1NJWExvY2FsZSk7CkBAIC0x
MDI0LDcgKzEwMjQsNyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhv
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZQogICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NG
cm9tT3JpZ2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVz
dWx0KQogewogICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRl
eCBkMjQzNmVkLi5hODYzOWRhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTIyNyw4ICsyMjcs
OCBAQCBwdWJsaWM6CiAgICAgLy8gdGhhdCBjYXNlIChhcyB0aGUgTWFjIGRvZXMpLgogICAgIHZv
aWQgZmFsbGJhY2tNZXRob2QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
Ci0gICAgLy8gQWxsb3dzIGxheW91dCB0ZXN0cyB0byBjYWxsIFNlY3VyaXR5T3JpZ2luOjp3aGl0
ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKCkuCi0gICAgdm9pZCB3aGl0ZUxpc3RBY2Nlc3NGcm9tT3Jp
Z2luKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICAvLyBBbGxvd3Mg
bGF5b3V0IHRlc3RzIHRvIGNhbGwgU2VjdXJpdHlPcmlnaW46OmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KCkuCisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKICAgICAvLyBDbGVhcnMgYWxsIGRh
dGFiYXNlcy4KICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDUyYjZkNmMuLjA4OTc2
NDQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMjU1LDcgKzI1NSw3IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlv
biwgSlNTdHJpbmdSCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJj
ZU9yaWdpbiwgSlNTdHJpbmdSZWYgcHJvdG9jb2wsIEpTU3RyaW5nUmVmIGhvc3QsIGJvb2wgaW5j
bHVkZVN1YmRvbWFpbnMpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIHBy
b3RvY29sLCBKU1N0cmluZ1JlZiBob3N0LCBib29sIGluY2x1ZGVTdWJkb21haW5zKQogewogICAg
IGdjaGFyKiBzb3VyY2VPcmlnaW5HQ2hhciA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKHNvdXJj
ZU9yaWdpbik7CiAgICAgZ2NoYXIqIHByb3RvY29sR0NoYXIgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0
cmluZyhwcm90b2NvbCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVt
cFJlbmRlclRyZWUubW0KaW5kZXggMzViZDYzZC4uMDIxMGNmMCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTE3MCw3ICsxMTcw
LDcgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0
aW5nKCkKICAgICBbW1ttYWluRnJhbWUgd2ViVmlld10gaW5zcGVjdG9yXSBzZXRKYXZhU2NyaXB0
UHJvZmlsaW5nRW5hYmxlZDpOT107CiAKICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9j
dXNSaW5nQ29sb3I6WUVTXTsKLSAgICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZUxp
c3RzXTsKKyAgICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzXTsKIH0KIAog
c3RhdGljIHZvaWQgcnVuVGVzdChjb25zdCBzdHJpbmcmIHRlc3RQYXRoT3JVUkwpCmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KaW5kZXggY2JjOTA0Zi4uZGYxMDc5MyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAt
NTYyLDcgKzU2Miw3IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndhaXRGb3JQb2xpY3lE
ZWxlZ2F0ZSgpCiAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0UG9saWN5RGVsZWdhdGU6cG9s
aWN5RGVsZWdhdGVdOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RB
Y2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVz
dGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKQordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgUmV0YWluUHRyPENGU3RyaW5n
UmVmPiBzb3VyY2VPcmlnaW5DRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBzb3VyY2VPcmlnaW4pKTsKICAgICBOU1N0cmluZyAqc291cmNlT3JpZ2lu
TlMgPSAoTlNTdHJpbmcgKilzb3VyY2VPcmlnaW5DRi5nZXQoKTsKQEAgLTU3MCw3ICs1NzAsNyBA
QCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEpT
U3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSgogICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvblByb3Rv
Y29sTlMgPSAoTlNTdHJpbmcgKilwcm90b2NvbENGLmdldCgpOwogICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gaG9zdENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGRlc3RpbmF0aW9uSG9zdCkpOwogICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbkhv
c3ROUyA9IChOU1N0cmluZyAqKWhvc3RDRi5nZXQoKTsKLSAgICBbV2ViVmlldyBfd2hpdGVMaXN0
QWNjZXNzRnJvbU9yaWdpbjpzb3VyY2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29sOmRlc3Rp
bmF0aW9uUHJvdG9jb2xOUyBkZXN0aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnM6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOworICAgIFtX
ZWJWaWV3IF9hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46c291
cmNlT3JpZ2luTlMgZGVzdGluYXRpb25Qcm90b2NvbDpkZXN0aW5hdGlvblByb3RvY29sTlMgZGVz
dGluYXRpb25Ib3N0OmRlc3RpbmF0aW9uSG9zdE5TIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zXTsKIH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmlu
Z1JlZiBwb2xpY3kpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDNjYWQ1YjIuLjRkODdkMjcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Y2xlYXJBbGxEYXRhYmFzZXMoKQogICAgIFFXZWJEYXRhYmFzZTo6cmVtb3ZlQWxsRGF0YWJh
c2VzKCk7CiB9CiAKLXZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OndoaXRlTGlzdEFjY2Vzc0Zy
b21PcmlnaW4oY29uc3QgUVN0cmluZyYgc291cmNlT3JpZ2luLCBjb25zdCBRU3RyaW5nJiBkZXN0
aW5hdGlvblByb3RvY29sLCBjb25zdCBRU3RyaW5nJiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNv
bnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0
aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihzb3VyY2VPcmlnaW4s
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwogfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGEyOTlkODAuLmIzNjFlMzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
aAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxl
clF0LmgKQEAgLTE1Myw3ICsxNTMsNyBAQCBwdWJsaWMgc2xvdHM6CiAKICAgICB1bnNpZ25lZCBu
dW1iZXJPZkFjdGl2ZUFuaW1hdGlvbnMoKSBjb25zdDsKIAotICAgIHZvaWQgd2hpdGVMaXN0QWNj
ZXNzRnJvbU9yaWdpbihjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShjb25zdCBRU3RyaW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAKICAgICB2b2lkIGRpc3BhdGNoUGVuZGlu
Z0xvYWRSZXF1ZXN0cygpOwogICAgIHZvaWQgZGlzYWJsZUltYWdlTG9hZGluZygpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NmNmMzFjZS4uZjliNDBkMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04NDIsNyArODQyLDcgQEAgc3RhdGljIHZvaWQgcmVz
ZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgU2V0Rm9j
dXModmlld1dpbmRvdyk7CiAKICAgICB3ZWJWaWV3UHJpdmF0ZS0+Y2xlYXJNYWluRnJhbWVOYW1l
KCk7Ci0gICAgd2ViVmlld1ByaXZhdGUtPnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVMaXN0cygpOwor
ICAgIHdlYlZpZXdQcml2YXRlLT5yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIAogICAg
IEJTVFIgZ3JvdXBOYW1lOwogICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+Z3JvdXBOYW1lKCZn
cm91cE5hbWUpKSkgewpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZWQyZmZlYy4uZWE2NmU3YyAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC05ODMsMTMgKzk4MywxMyBAQCBzdGF0aWMgX2JzdHJf
dCBic3RyVChKU1N0cmluZ1JlZiBqc1N0cmluZykKICAgICByZXR1cm4gX2JzdHJfdChKU1N0cmlu
Z0NvcHlCU1RSKGpzU3RyaW5nKSwgZmFsc2UpOwogfQogCi12b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25I
b3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgQ09N
UHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlldzsKICAgICBpZiAoRkFJTEVEKFdlYktpdENyZWF0
ZUluc3RhbmNlKF9fdXVpZG9mKFdlYlZpZXcpLCAwLCBfX3V1aWRvZih3ZWJWaWV3KSwgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKio+KCZ3ZWJWaWV3KSkpKQogICAgICAgICByZXR1cm47CiAKLSAgICB3
ZWJWaWV3LT53aGl0ZUxpc3RBY2Nlc3NGcm9tT3JpZ2luKGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0
QlNUUigpLCBic3RyVChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3Rp
bmF0aW9uSG9zdCkuR2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAg
d2ViVmlldy0+YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2lu
KS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQo
ZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
IH0KIAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0U2Nyb2xsYmFyUG9saWN5KEpTU3Ry
aW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcCBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCmlu
ZGV4IGUxZGI3NDYuLmQ5YTI0NzMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC0zNjAsNyArMzYwLDcg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTG9hZGluZygpCiAKIH0K
IAotdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbihK
U1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Q
cm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKQogewogCiB9Ci0tIAoxLjcuMC4yCgo=
</data>
<flag name="review"
          id="36889"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="36890"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>53259</attachid>
            <date>2010-04-13 10:21:58 -0700</date>
            <delta_ts>2010-04-13 14:55:13 -0700</delta_ts>
            <desc>Final part</desc>
            <filename>0001-SecurityOrigin-needs-a-way-to-remove-individual-Orig.patch</filename>
            <type>text/plain</type>
            <size>34171</size>
            <attacher name="Timothy Hatcher">timothy</attacher>
            
              <data encoding="base64">RnJvbSA3MDE0NzYxODQ1ZDdjOTVlNjE1N2Y4NGIzOTVhYTA3YzdmNjhlM2VlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW1vdGh5IEhhdGNoZXIgPHRpbW90aHlAYXBwbGUuY29tPgpE
YXRlOiBUdWUsIDEzIEFwciAyMDEwIDEwOjIxOjA4IC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gU2Vj
dXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwgT3JpZ2luQWNjZXNz
RW50cmllcwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDQ5CgpX
ZWJDb3JlOgoKVGVzdDogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0
aW5nLXJlbW92YWwuaHRtbAoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIFdlYkNvcmUu
YmFzZS5leHA6IEFkZGVkIFNlY3VyaXR5T3JpZ2luOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeS4KKiBwYWdlL09yaWdpbkFjY2Vzc0VudHJ5Lmg6CihXZWJDb3JlOjpPcmlnaW5BY2Nl
c3NFbnRyeTo6cHJvdG9jb2wpOiBBZGRlZC4gUmV0dXJucyBtX3Byb3RvY29sLgooV2ViQ29yZTo6
T3JpZ2luQWNjZXNzRW50cnk6Omhvc3QpOiBBZGRlZC4gUmV0dXJucyBtX2hvc3QuCihXZWJDb3Jl
OjpPcmlnaW5BY2Nlc3NFbnRyeTo6c3ViZG9tYWluU2V0dGluZ3MpOiBBZGRlZC4gUmV0dXJucyBt
X3N1YmRvbWFpblNldHRpbmdzLgooV2ViQ29yZTo6b3BlcmF0b3I9PSk6IEFkZGVkLiBDb21wYXJl
cyBPcmlnaW5BY2Nlc3NFbnRyeS4KKFdlYkNvcmU6Om9wZXJhdG9yIT0pOiBEaXR0by4KKiBwYWdl
L1NlY3VyaXR5T3JpZ2luLmNwcDoKKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IFVzZSB0aGUgYWRkIG1ldGhvZCB0byBwcmV2ZW50IGEKc2Vj
b25kIGhhc2ggbG9va3VwLgooV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnJlbW92ZU9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KTogQWRkZWQuIEZpbmQgYSBtYXRjaGluZwpPcmlnaW5BY2Nlc3NF
bnRyeSBhbmQgcmVtb3ZlIGl0LgoqIHBhZ2UvU2VjdXJpdHlPcmlnaW4uaDogQWRkZWQgcmVtb3Zl
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCgpXZWJLaXQvbWFjOgoKUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKCtbV2ViVmlldyBfcmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOmRlc3RpbmF0aW9uUHJvdG9j
b2w6ZGVzdGluYXRpb25Ib3N0OmFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOl0pOgpDYWxsIFNl
Y3VyaXR5T3JpZ2luOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KKiBXZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmg6IEFkZGVkIF9yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eVdpdGhTb3VyY2VPcmlnaW4uCgpXZWJLaXQvd2luOgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCgoqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKiBXZWJWaWV3LmNwcDoKKFdl
YlZpZXc6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogQ2FsbCBTZWN1cml0eU9y
aWdpbjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCiogV2ViVmlldy5oOiBBZGRl
ZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KCldlYktpdFRvb2xzOgoKUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcDoKKHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2spOiBBZGRl
ZC4gQ2FsbCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkuCihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKTogQWRkZWQgcmVt
b3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuaDoKKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJH
dGsuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KTogQWRkZWQuIEZJWE1FIHRvIGltcGxlbWVudC4KKiBEdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3Zl
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBBZGRlZC4KKiBEdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IEFkZGVkLiBGSVhNRSB0byBpbXBsZW1lbnQuCiog
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoKKExheW91dFRl
c3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IEFkZGVkLgoq
IER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgooTGF5b3V0VGVz
dENvbnRyb2xsZXI6OndoaXRlTGlzdEFjY2Vzc0Zyb21PcmlnaW4pOiBGSVhNRSB0byBpbXBsZW1l
bnQuCihMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkpOiBBZGRlZC4gRklYTUUgdG8gaW1wbGVtZW50LgoKTGF5b3V0VGVzdHM6CgpSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KCiogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hp
dGVsaXN0aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sOiBBZGRlZC4KKiBwbGF0
Zm9ybS9ndGsvU2tpcHBlZDogQWRkZWQgb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwu
CiogcGxhdGZvcm0vcXQvU2tpcHBlZDogRGl0dG8uCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrCiAuLi4vb3JpZ2luLXdo
aXRlbGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dCAgICAgICB8ICAgMzkgKysrKysrKysrKysr
KysrCiAuLi4vb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwgICAgICAgICAgICAgICB8
ICAgNTEgKysrKysrKysrKysrKysrKysrKysKIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogV2ViQ29yZS9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIzICsrKysrKysrKwogV2ViQ29yZS9X
ZWJDb3JlLmJhc2UuZXhwICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYkNv
cmUvcGFnZS9PcmlnaW5BY2Nlc3NFbnRyeS5oICAgICAgICAgICAgICAgICAgIHwgICAxNyArKysr
KystCiBXZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwICAgICAgICAgICAgICAgICAgICB8
ICAgMzcgKysrKysrKysrKysrLS0KIFdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oICAgICAg
ICAgICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArKwogV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdQcml2YXRlLmggICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKwogV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwgICAgICAgICAgfCAgICAzICsKIFdl
YktpdC93aW4vV2ViVmlldy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiAr
KwogV2ViS2l0L3dpbi9XZWJWaWV3LmggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg
ICAxICsKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAyMyArKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHAgICAgICAgIHwgICAxOSArKysrKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oICB8ICAgIDEgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgfCAgICA1ICsrCiAuLi4vRHVtcFJlbmRlclRyZWUv
bWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tICB8ICAgMTEgKysrKwogLi4uL0R1bXBSZW5k
ZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrCiAuLi4vRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgIDkgKysrKwog
Li4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwICAgfCAgICA1
ICsrCiAyNSBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK
IGNyZWF0ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEw
MDY0NCBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctcmVtb3ZhbC5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk4MDBlYTguLmI1Y2UyZWIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMC0wNC0xMiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CisKKyAgICAgICAgU2VjdXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2
aWR1YWwgT3JpZ2luQWNjZXNzRW50cmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRl
bGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbDogQWRkZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6IEFkZGVkIG9yaWdpbi13aGl0ZWxpc3Rp
bmctcmVtb3ZhbC5odG1sLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IERpdHRvLgor
CiAyMDEwLTA0LTEzICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW5hbWUgTGF5b3V0VGVzdENvbnRyb2xsZXIud2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdp
biB0byBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFs
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi4zODIwY2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzkgQEAKK1Rlc3RzIHRoZSBiZWhhdmlvciBvZiB3aGl0ZWxp
c3Rpbmcgb3JpZ2lucyBhbmQgcmVtb3ZpbmcgdGhlbSBsYXRlci4KKworVGVzdGluZzogc291cmNl
IG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwIGRlc3RpbmF0aW9uIG9yaWdpbjogaHR0cDps
b2NhbGhvc3QgCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IEVycm9yOiBO
RVRXT1JLX0VSUjogWE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9uIDEwMQorTG9hZGluZzogaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3Rp
bmcgUEFTUykKK1BBU1M6IFBBU1MKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQorUEFT
UzogRXJyb3I6IE5FVFdPUktfRVJSOiBYTUxIdHRwUmVxdWVzdCBFeGNlcHRpb24gMTAxCisKKwor
VGVzdGluZzogc291cmNlIG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwIGRlc3RpbmF0aW9u
IG9yaWdpbjogaHR0cDpsb2NhbGhvc3QgYWxsb3dpbmcgc3ViZG9tYWlucworTG9hZGluZzogaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBl
Y3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBFcnJvcjogTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1
ZXN0IEV4Y2VwdGlvbiAxMDEKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCitQQVNTOiBQQVNTCitM
b2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dl
dC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IEVycm9yOiBORVRXT1JLX0VSUjog
WE1MSHR0cFJlcXVlc3QgRXhjZXB0aW9uIDEwMQorCisKK1Rlc3Rpbmc6IHNvdXJjZSBvcmlnaW46
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBkZXN0aW5hdGlvbiBvcmlnaW46IGhUdFA6TG9DYUxoT3NU
IGFsbG93aW5nIHN1YmRvbWFpbnMKK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQorUEFT
UzogRXJyb3I6IE5FVFdPUktfRVJSOiBYTUxIdHRwUmVxdWVzdCBFeGNlcHRpb24gMTAxCitMb2Fk
aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQgKGV4cGVjdGluZyBQQVNTKQorUEFTUzogUEFTUworTG9hZGluZzogaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09S
S19FUlIpCitQQVNTOiBFcnJvcjogTkVUV09SS19FUlI6IFhNTEh0dHBSZXF1ZXN0IEV4Y2VwdGlv
biAxMDEKKworCitUZXN0aW5nOiBzb3VyY2Ugb3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAg
ZGVzdGluYXRpb24gb3JpZ2luOiBodHRwOiBhbGxvd2luZyBzdWJkb21haW5zCitMb2FkaW5nOiBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4
cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IEVycm9yOiBORVRXT1JLX0VSUjogWE1MSHR0cFJl
cXVlc3QgRXhjZXB0aW9uIDEwMQorTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgUEFTUykKK1BBU1M6IFBBU1MK
K0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
Z2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQorUEFTUzogRXJyb3I6IE5FVFdPUktfRVJS
OiBYTUxIdHRwUmVxdWVzdCBFeGNlcHRpb24gMTAxCisKKworCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3Zh
bC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hp
dGVsaXN0aW5nLXJlbW92YWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5lNmY4OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbApAQCAtMCwwICsxLDUx
IEBACis8cD5UZXN0cyB0aGUgYmVoYXZpb3Igb2Ygd2hpdGVsaXN0aW5nIG9yaWdpbnMgYW5kIHJl
bW92aW5nIHRoZW0gbGF0ZXIuPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3Jp
cHQ+CitsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGxvZyht
ZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsKK30KKworZnVu
Y3Rpb24gbG9hZFVSTCh1cmwsIGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgbG9nKCJMb2FkaW5nOiAi
ICsgdXJsICsgIiAiICsgKGV4cGVjdFN1Y2Nlc3MgPyAiKGV4cGVjdGluZyBQQVNTKSIgOiAiKGV4
cGVjdGluZyBORVRXT1JLX0VSUikiKSk7CisKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHRyeSB7CisgICAg
ICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzog
IiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyBlKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3ViZG9tYWlu
cywgdXJsKQoreworICAgIGxvZygiVGVzdGluZzogc291cmNlIG9yaWdpbjogIiArIG9yaWdpbiAr
ICIgZGVzdGluYXRpb24gb3JpZ2luOiAiICsgcHJvdG9jb2wgKyAiOiIgKyBob3N0ICsgIiAiICsg
KHN1YmRvbWFpbnMgPyAiYWxsb3dpbmcgc3ViZG9tYWlucyIgOiAiIikpOworCisJbG9hZFVSTCh1
cmwsIGZhbHNlKTsKKworCWxheW91dFRlc3RDb250cm9sbGVyLmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2VyQ2Fz
ZSgpLCBzdWJkb21haW5zKTsKKworCWxvYWRVUkwodXJsLCB0cnVlKTsKKworCWxheW91dFRlc3RD
b250cm9sbGVyLnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9j
b2wsIGhvc3QsIHN1YmRvbWFpbnMpOworCisJbG9hZFVSTCh1cmwsIGZhbHNlKTsKKworCWxvZygi
XG4iKTsKK30KKwordmFyIHRlc3RzID0gWworICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwg
Imh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXSwKKyAgICBbImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIsICJodHRwIiwgImxvY2FsaG9zdCIsIHRydWUsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXSwKKyAgICBbImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIsICJoVHRQIiwgIkxvQ2FMaE9zVCIsIHRydWUsICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXSwKKyAgICBbImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiXQorXTsKKwordGVzdHMuZm9yRWFjaChmdW5jdGlv
bih0ZXN0RW50cnkpIHsgdGVzdC5hcHBseShudWxsLCB0ZXN0RW50cnkpIH0pOworPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGZiYzhhOTAuLmI1ZjMyNzAgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NjIzLDYgKzU2MjMsOSBAQCBlZGl0aW5nL3NlbGVjdGlv
bi9taXhlZC1lZGl0YWJpbGl0eS0xMC5odG1sCiBlZGl0aW5nL3NlbGVjdGlvbi81ODI1MzUwLTEu
aHRtbAogZWRpdGluZy9zZWxlY3Rpb24vNTgyNTM1MC0yLmh0bWwKIAorIyBNaXNzaW5nIGxheW91
dFRlc3RDb250cm9sbGVyLnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCkKK2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKKwog
IyBOZWVkIHByb3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwogIyBTZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTcwCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9lbXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDk2ZGM5MzYuLjlhOWUwZTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
U2tpcHBlZApAQCAtMzA1LDYgKzMwNSw5IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvZmVlZC11cmxz
LWZyb20tcmVtb3RlLmh0bWwKICMgTWlzc2luZyBsYXlvdXRUZXN0Q29udHJvbGxlci5ldmFsdWF0
ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgpCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29y
bGQKIAorIyBNaXNzaW5nIGxheW91dFRlc3RDb250cm9sbGVyLnJlbW92ZU9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5KCkKK2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1yZW1vdmFsLmh0bWwKKwogIyBFdmFsdWF0ZSBleHBlY3RlZCByZXN1bHRzIGZvciBmcmFt
ZSBsb2FkZXIgY2FsbGJhY2tzCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zNDgzOQogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvYWJvdXQtYmxhbmst
aWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5NzQwMjMwLi4yNjExOTllIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBA
CisyMDEwLTA0LTEyICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KKworICAg
ICAgICBTZWN1cml0eU9yaWdpbiBuZWVkcyBhIHdheSB0byByZW1vdmUgaW5kaXZpZHVhbCBPcmln
aW5BY2Nlc3NFbnRyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNzQ0OQorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuYmFzZS5leHA6IEFkZGVkIFNlY3Vy
aXR5T3JpZ2luOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KKyAgICAgICAgKiBw
YWdlL09yaWdpbkFjY2Vzc0VudHJ5Lmg6CisgICAgICAgIChXZWJDb3JlOjpPcmlnaW5BY2Nlc3NF
bnRyeTo6cHJvdG9jb2wpOiBBZGRlZC4gUmV0dXJucyBtX3Byb3RvY29sLgorICAgICAgICAoV2Vi
Q29yZTo6T3JpZ2luQWNjZXNzRW50cnk6Omhvc3QpOiBBZGRlZC4gUmV0dXJucyBtX2hvc3QuCisg
ICAgICAgIChXZWJDb3JlOjpPcmlnaW5BY2Nlc3NFbnRyeTo6c3ViZG9tYWluU2V0dGluZ3MpOiBB
ZGRlZC4gUmV0dXJucyBtX3N1YmRvbWFpblNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6b3Bl
cmF0b3I9PSk6IEFkZGVkLiBDb21wYXJlcyBPcmlnaW5BY2Nlc3NFbnRyeS4KKyAgICAgICAgKFdl
YkNvcmU6Om9wZXJhdG9yIT0pOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2lu
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjphZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeSk6IFVzZSB0aGUgYWRkIG1ldGhvZCB0byBwcmV2ZW50IGEKKyAgICAgICAg
c2Vjb25kIGhhc2ggbG9va3VwLgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OnJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogQWRkZWQuIEZpbmQgYSBtYXRjaGluZwor
ICAgICAgICBPcmlnaW5BY2Nlc3NFbnRyeSBhbmQgcmVtb3ZlIGl0LgorICAgICAgICAqIHBhZ2Uv
U2VjdXJpdHlPcmlnaW4uaDogQWRkZWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnku
CisKIDIwMTAtMDQtMTMgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbmFtZSBTZWN1cml0eU9yaWdpbjo6d2hpdGVMaXN0QWNjZXNzRnJvbU9yaWdpbiB0
byBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5iYXNlLmV4cCBiL1dlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAppbmRleCA2Njk1OTU0Li5h
YzVlODNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKKysrIGIvV2ViQ29y
ZS9XZWJDb3JlLmJhc2UuZXhwCkBAIC0zMTMsNiArMzEzLDcgQEAgX19aTjdXZWJDb3JlMTRTZWN1
cml0eU9yaWdpbjE4c2hvdWxkSGlkZVJlZmVycmVyRVJLTlNfNEtVUkxFUktOU182U3RyaW5nRQog
X19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI0cmVnaXN0ZXJVUkxTY2hlbWVBc0xvY2FsRVJL
TlNfNlN0cmluZ0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW4yNXJlZ2lzdGVyVVJMU2No
ZW1lQXNTZWN1cmVFUktOU182U3RyaW5nRQogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI5
YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlFUktTMF9SS05TXzZTdHJpbmdFUzVfYgorX19a
TjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjMycmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnlFUktTMF9SS05TXzZTdHJpbmdFUzVfYgogX19aTjdXZWJDb3JlMTRTZWN1cml0eU9yaWdpbjI3
cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzRXYKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmln
aW40MHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWVFYlJLTlNfNlN0cmlu
Z0UKIF9fWk43V2ViQ29yZTE0U2VjdXJpdHlPcmlnaW42Y3JlYXRlRVJLTlNfNEtVUkxFaQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wYWdlL09yaWdpbkFjY2Vzc0VudHJ5LmggYi9XZWJDb3JlL3BhZ2Uv
T3JpZ2luQWNjZXNzRW50cnkuaAppbmRleCA3NjdkNzVmLi43YzhkNTU2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BhZ2UvT3JpZ2luQWNjZXNzRW50cnkuaAorKysgYi9XZWJDb3JlL3BhZ2UvT3JpZ2lu
QWNjZXNzRW50cnkuaApAQCAtNDcsMTUgKzQ3LDI4IEBAIHB1YmxpYzoKICAgICAvLyBJZiBob3N0
IGlzIGVtcHR5IHN0cmluZyBhbmQgU3ViZG9tYWluU2V0dGluZyBpcyBBbGxvd1N1YmRvbWFpbnMs
IHRoZSBlbnRyeSB3aWxsIG1hdGNoIGFsbCBkb21haW5zIGluIHRoZSBzcGVjaWZpZWQgcHJvdG9j
b2wuCiAgICAgT3JpZ2luQWNjZXNzRW50cnkoY29uc3QgU3RyaW5nJiBwcm90b2NvbCwgY29uc3Qg
U3RyaW5nJiBob3N0LCBTdWJkb21haW5TZXR0aW5nKTsKICAgICBib29sIG1hdGNoZXNPcmlnaW4o
Y29uc3QgU2VjdXJpdHlPcmlnaW4mKSBjb25zdDsKLSAgICAKKworICAgIGNvbnN0IFN0cmluZyYg
cHJvdG9jb2woKSBjb25zdCB7IHJldHVybiBtX3Byb3RvY29sOyB9CisgICAgY29uc3QgU3RyaW5n
JiBob3N0KCkgY29uc3QgeyByZXR1cm4gbV9ob3N0OyB9CisgICAgU3ViZG9tYWluU2V0dGluZyBz
dWJkb21haW5TZXR0aW5ncygpIGNvbnN0IHsgcmV0dXJuIG1fc3ViZG9tYWluU2V0dGluZ3M7IH0K
KwogcHJpdmF0ZToKICAgICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICBTdHJpbmcgbV9ob3N0Owog
ICAgIFN1YmRvbWFpblNldHRpbmcgbV9zdWJkb21haW5TZXR0aW5nczsKICAgICBib29sIG1faG9z
dElzSVBBZGRyZXNzOwotICAgIAogfTsKIAoraW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBP
cmlnaW5BY2Nlc3NFbnRyeSYgYSwgY29uc3QgT3JpZ2luQWNjZXNzRW50cnkmIGIpCit7CisgICAg
cmV0dXJuIGVxdWFsSWdub3JpbmdDYXNlKGEucHJvdG9jb2woKSwgYi5wcm90b2NvbCgpKSAmJiBl
cXVhbElnbm9yaW5nQ2FzZShhLmhvc3QoKSwgYi5ob3N0KCkpICYmIGEuc3ViZG9tYWluU2V0dGlu
Z3MoKSA9PSBiLnN1YmRvbWFpblNldHRpbmdzKCk7Cit9CisKK2lubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgT3JpZ2luQWNjZXNzRW50cnkmIGEsIGNvbnN0IE9yaWdpbkFjY2Vzc0VudHJ5JiBi
KQoreworICAgIHJldHVybiAhKGEgPT0gYik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIENyb3NzT3JpZ2luQWNjZXNzX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFn
ZS9TZWN1cml0eU9yaWdpbi5jcHAgYi9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uY3BwCmlu
ZGV4IGZhMmFiZjkuLjI2NWM2NDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9y
aWdpbi5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmNwcApAQCAtNjU3LDE0
ICs2NTcsNDEgQEAgdm9pZCBTZWN1cml0eU9yaWdpbjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNvdXJjZU8KICAgICAgICAgcmV0dXJuOwogCiAg
ICAgU3RyaW5nIHNvdXJjZVN0cmluZyA9IHNvdXJjZU9yaWdpbi50b1N0cmluZygpOwotICAgIE9y
aWdpbkFjY2Vzc1doaXRlTGlzdCogbGlzdCA9IG9yaWdpbkFjY2Vzc01hcCgpLmdldChzb3VyY2VT
dHJpbmcpOwotICAgIGlmICghbGlzdCkgewotICAgICAgICBsaXN0ID0gbmV3IE9yaWdpbkFjY2Vz
c1doaXRlTGlzdDsKLSAgICAgICAgb3JpZ2luQWNjZXNzTWFwKCkuc2V0KHNvdXJjZVN0cmluZywg
bGlzdCk7Ci0gICAgfQorICAgIHBhaXI8T3JpZ2luQWNjZXNzTWFwOjppdGVyYXRvciwgYm9vbD4g
cmVzdWx0ID0gb3JpZ2luQWNjZXNzTWFwKCkuYWRkKHNvdXJjZVN0cmluZywgMCk7CisgICAgaWYg
KHJlc3VsdC5zZWNvbmQpCisgICAgICAgIHJlc3VsdC5maXJzdC0+c2Vjb25kID0gbmV3IE9yaWdp
bkFjY2Vzc1doaXRlTGlzdDsKKworICAgIE9yaWdpbkFjY2Vzc1doaXRlTGlzdCogbGlzdCA9IHJl
c3VsdC5maXJzdC0+c2Vjb25kOwogICAgIGxpc3QtPmFwcGVuZChPcmlnaW5BY2Nlc3NFbnRyeShk
ZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlvbkRvbWFpbnMsIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zID8gT3JpZ2luQWNjZXNzRW50cnk6OkFsbG93U3ViZG9tYWlucyA6IE9yaWdpbkFj
Y2Vzc0VudHJ5OjpEaXNhbGxvd1N1YmRvbWFpbnMpKTsKIH0KIAordm9pZCBTZWN1cml0eU9yaWdp
bjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU2VjdXJpdHlPcmlnaW4m
IHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBT
dHJpbmcmIGRlc3RpbmF0aW9uRG9tYWlucywgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOworICAgIEFTU0VSVCghc291cmNlT3Jp
Z2luLmlzRW1wdHkoKSk7CisgICAgaWYgKHNvdXJjZU9yaWdpbi5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIFN0cmluZyBzb3VyY2VTdHJpbmcgPSBzb3VyY2VPcmlnaW4udG9TdHJp
bmcoKTsKKyAgICBPcmlnaW5BY2Nlc3NNYXAmIG1hcCA9IG9yaWdpbkFjY2Vzc01hcCgpOworICAg
IE9yaWdpbkFjY2Vzc01hcDo6aXRlcmF0b3IgaXQgPSBtYXAuZmluZChzb3VyY2VTdHJpbmcpOwor
ICAgIGlmIChpdCA9PSBtYXAuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIE9yaWdpbkFj
Y2Vzc1doaXRlTGlzdCogbGlzdCA9IGl0LT5zZWNvbmQ7CisgICAgc2l6ZV90IGluZGV4ID0gbGlz
dC0+ZmluZChPcmlnaW5BY2Nlc3NFbnRyeShkZXN0aW5hdGlvblByb3RvY29sLCBkZXN0aW5hdGlv
bkRvbWFpbnMsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zID8gT3JpZ2luQWNjZXNzRW50cnk6
OkFsbG93U3ViZG9tYWlucyA6IE9yaWdpbkFjY2Vzc0VudHJ5OjpEaXNhbGxvd1N1YmRvbWFpbnMp
KTsKKyAgICBpZiAoaW5kZXggPT0gbm90Rm91bmQpCisgICAgICAgIHJldHVybjsKKworICAgIGxp
c3QtPnJlbW92ZShpbmRleCk7CisKKyAgICBpZiAoIWxpc3QtPmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgbWFwLnJlbW92ZShpdCk7CisgICAgZGVsZXRlIGxpc3Q7Cit9CisKIHZv
aWQgU2VjdXJpdHlPcmlnaW46OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGFnZS9TZWN1cml0
eU9yaWdpbi5oIGIvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKaW5kZXggYzJiZTI3Ny4u
ZDczMjY2NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKKysrIGIv
V2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgKQEAgLTE5NSw2ICsxOTUsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgc2hvdWxkVHJlYXRVUkxTY2hlbWVBc05vQWNjZXNzKGNvbnN0IFN0
cmluZyYpOwogCiAgICAgc3RhdGljIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Y29uc3QgU2VjdXJpdHlPcmlnaW4mIHNvdXJjZU9yaWdpbiwgY29uc3QgU3RyaW5nJiBkZXN0aW5h
dGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9uRG9tYWlucywgYm9vbCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgc3RhdGljIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNvdXJjZU9yaWdpbiwgY29u
c3QgU3RyaW5nJiBkZXN0aW5hdGlvblByb3RvY29sLCBjb25zdCBTdHJpbmcmIGRlc3RpbmF0aW9u
RG9tYWlucywgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgc3RhdGljIHZv
aWQgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGRiNzJh
NjguLjkyNTBjYmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDQtMTIgIFRpbW90aHkgSGF0
Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFNlY3VyaXR5T3JpZ2luIG5lZWRz
IGEgd2F5IHRvIHJlbW92ZSBpbmRpdmlkdWFsIE9yaWdpbkFjY2Vzc0VudHJpZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDQ5CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgrW1dlYlZpZXcgX3JlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
V2l0aFNvdXJjZU9yaWdpbjpkZXN0aW5hdGlvblByb3RvY29sOmRlc3RpbmF0aW9uSG9zdDphbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWluczpdKToKKyAgICAgICAgQ2FsbCBTZWN1cml0eU9yaWdpbjo6
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCisgICAgICAgICogV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oOiBBZGRlZCBfcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRo
U291cmNlT3JpZ2luLgorCiAyMDEwLTA0LTEzICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFw
cGxlLmNvbT4KIAogICAgICAgICBSZW5hbWUgU2VjdXJpdHlPcmlnaW46OndoaXRlTGlzdEFjY2Vz
c0Zyb21PcmlnaW4gdG8gYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCmluZGV4IGQxYTdlZGEuLjEzNGUyNGIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0y
MjUyLDYgKzIyNTIsMTEgQEAgKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlX
aXRoU291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiAKICAgICBTZWN1cml0eU9y
aWdpbjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKHNvdXJjZU9yaWdpbiksIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0
aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCisrICh2b2lkKV9yZW1v
dmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46KE5TU3RyaW5nICop
c291cmNlT3JpZ2luIGRlc3RpbmF0aW9uUHJvdG9jb2w6KE5TU3RyaW5nICopZGVzdGluYXRpb25Q
cm90b2NvbCBkZXN0aW5hdGlvbkhvc3Q6KE5TU3RyaW5nICopZGVzdGluYXRpb25Ib3N0IGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zOihCT09MKWFsbG93RGVzdGluYXRpb25TdWJkb21haW5zCit7
CisgICAgU2VjdXJpdHlPcmlnaW46OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhzb3VyY2VPcmlnaW4pLCBkZXN0aW5hdGlv
blByb3RvY29sLCBkZXN0aW5hdGlvbkhvc3QsIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
K30KKwogKyh2b2lkKV9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMKIHsKICAgICBTZWN1cml0
eU9yaWdpbjo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CmRpZmYgLS1naXQgYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oCmluZGV4IDE4ZDMzMTQuLjMyNzc0M2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3UHJpdmF0ZS5oCkBAIC00OTAsNiArNDkwLDcgQEAgQ291bGQgYmUgd29ydGggYWRkaW5nIHRv
IHRoZSBBUEkuCiAvLyAtIGRlc3RpbmF0aW9uSG9zdDogVGhlIGhvc3QgdG8gZ3JhbnQgYWNjZXNz
IHRvLgogLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9zdCBpcyBhIGRvbWFp
biwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFuZCBhbGwgaXRzIHN1
YmRvbWFpbnMsIHJlY3Vyc2l2ZWx5LgogKyAodm9pZClfYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnlXaXRoU291cmNlT3JpZ2luOihOU1N0cmluZyAqKXNvdXJjZU9yaWdpbiBkZXN0aW5hdGlv
blByb3RvY29sOihOU1N0cmluZyAqKWRlc3RpbmF0aW9uUHJvdG9jb2wgZGVzdGluYXRpb25Ib3N0
OihOU1N0cmluZyAqKWRlc3RpbmF0aW9uSG9zdCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczoo
Qk9PTClhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczsKKysgKHZvaWQpX3JlbW92ZU9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbjooTlNTdHJpbmcgKilzb3VyY2VPcmln
aW4gZGVzdGluYXRpb25Qcm90b2NvbDooTlNTdHJpbmcgKilkZXN0aW5hdGlvblByb3RvY29sIGRl
c3RpbmF0aW9uSG9zdDooTlNTdHJpbmcgKilkZXN0aW5hdGlvbkhvc3QgYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnM6KEJPT0wpYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM7CiAKIC8vIFJlbW92
ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggX2FkZE9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5V2l0aFNvdXJjZU9yaWdpbi4KICsgKHZvaWQpX3Jlc2V0T3JpZ2luQWNjZXNz
V2hpdGVsaXN0czsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMmI4NmY1Ny4uZjczMDBlOCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAor
MjAxMC0wNC0xMiAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+CisKKyAgICAg
ICAgU2VjdXJpdHlPcmlnaW4gbmVlZHMgYSB3YXkgdG8gcmVtb3ZlIGluZGl2aWR1YWwgT3JpZ2lu
QWNjZXNzRW50cmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Mzc0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIEludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJWaWV3
LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KTogQ2FsbCBTZWN1cml0eU9yaWdpbjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnku
CisgICAgICAgICogV2ViVmlldy5oOiBBZGRlZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeS4KKwogMjAxMC0wNC0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVuYW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9tT3Jp
Z2luIHRvIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwgYi9XZWJLaXQvd2luL0ludGVyZmFj
ZXMvSVdlYlZpZXdQcml2YXRlLmlkbAppbmRleCA4ZjBkOThlLi4xNzM3OGNlIDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAorKysgYi9XZWJLaXQv
d2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbApAQCAtMjA5LDYgKzIwOSw5IEBAIGlu
dGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93bgogICAgIC8vIC0gYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnM6IElmIGhvc3QgaXMgYSBkb21haW4sIHNldHRpbmcgdGhpcyB0byBZRVMg
d2lsbCB3aGl0ZWxpc3QgaG9zdCBhbmQgYWxsIGl0cyBzdWJkb21haW5zLCByZWN1cnNpdmVseS4K
ICAgICBIUkVTVUxUIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFtpbl0gQlNUUiBzb3Vy
Y2VPcmlnaW4sIFtpbl0gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBbaW5dIEJTVFIgZGVzdGlu
YXRpb25Ib3N0LCBbaW5dIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCisgICAg
Ly8gUmVtb3ZlcyBhIHdoaXRlIGxpc3QgZW50cnkgY3JlYXRlZCB3aXRoIGFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5LiBTZWUgYWJvdmUuCisgICAgSFJFU1VMVCByZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBbaW5dIEJTVFIgZGVzdGlu
YXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgW2luXSBCT09MIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKKwogICAgIC8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3Qg
ZW50cmllcyBjcmVhdGVkIHdpdGggYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCiAgICAg
SFJFU1VMVCByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
S2l0L3dpbi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNDIxZGNj
Yi4uNDMwZDU0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC02MDQwLDYgKzYwNDAsMTIgQEAgSFJFU1VMVCBXZWJWaWV3
OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShCU1RSIHNvdXJjZU9yaWdpbiwgQlNUUiBk
ZXN0aW5hdGkKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBXZWJWaWV3OjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShCU1RSIHNvdXJjZU9yaWdpbiwgQlNUUiBkZXN0aW5h
dGlvblByb3RvY29sLCBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucykKK3sKKyAgICBTZWN1cml0eU9yaWdpbjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoKlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKFN0cmluZyhzb3Vy
Y2VPcmlnaW4sIFN5c1N0cmluZ0xlbihzb3VyY2VPcmlnaW4pKSksIFN0cmluZyhkZXN0aW5hdGlv
blByb3RvY29sLCBTeXNTdHJpbmdMZW4oZGVzdGluYXRpb25Qcm90b2NvbCkpLCBTdHJpbmcoZGVz
dGluYXRpb25Ib3N0LCBTeXNTdHJpbmdMZW4oZGVzdGluYXRpb25Ib3N0KSksIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwogSFJFU1VMVCBXZWJWaWV3
OjpyZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKQogewogICAgIFNlY3VyaXR5T3JpZ2luOjpy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
Vmlldy5oIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYmMxODk0ZS4uNDhmM2VmOCAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmgK
QEAgLTc2Miw2ICs3NjIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGludmFsaWRhdGVCYWNraW5nU3RvcmUoY29uc3QgUkVDVCopOwogCiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KEJTVFIgc291cmNlT3JpZ2luLCBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEJTVFIgZGVz
dGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB2aXJ0
dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoQlNUUiBzb3VyY2VPcmlnaW4sIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgQlNUUiBk
ZXN0aW5hdGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlz
dHMoKTsKIAogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRIaXN0b3J5
RGVsZWdhdGUoSVdlYkhpc3RvcnlEZWxlZ2F0ZSogaGlzdG9yeURlbGVnYXRlKTsKZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA5
NWVkOTUzLi4yYjVkYzM0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDQtMTIgIFRpbW90
aHkgSGF0Y2hlciAgPHRpbW90aHlAYXBwbGUuY29tPgorCisgICAgICAgIFNlY3VyaXR5T3JpZ2lu
IG5lZWRzIGEgd2F5IHRvIHJlbW92ZSBpbmRpdmlkdWFsIE9yaWdpbkFjY2Vzc0VudHJpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM3NDQ5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChyZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKTogQWRkZWQuIENhbGwgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEFkZGVkIHJlbW92ZU9yaWdpbkFjY2Vzc1do
aXRlbGlzdEVudHJ5LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSk6IEFkZGVkLiBGSVhNRSB0byBpbXBsZW1lbnQuCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAo
TGF5b3V0VGVzdENvbnRyb2xsZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTog
QWRkZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkpOiBBZGRlZC4gRklYTUUgdG8gaW1wbGVtZW50LgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBB
ZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjp3aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luKTogRklYTUUgdG8gaW1wbGVtZW50LgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogQWRkZWQuIEZJWE1FIHRvIGlt
cGxlbWVudC4KKwogMjAxMC0wNC0xMyAgVGltb3RoeSBIYXRjaGVyICA8dGltb3RoeUBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVuYW1lIFNlY3VyaXR5T3JpZ2luOjp3aGl0ZUxpc3RBY2Nlc3NGcm9t
T3JpZ2luIHRvIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGQ3Njgw
NzQuLmQ5MDRkN2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTEyOTIsNiArMTI5MiwyNCBAQCBzdGF0aWMgSlNWYWx1
ZVJlZiBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKUwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0K
IAorc3RhdGljIEpTVmFsdWVSZWYgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkK
KyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNvdXJjZU9yaWdpbihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5n
Q29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4
Y2VwdGlvbik7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGRlc3RpbmF0aW9uUHJvdG9j
b2woQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4dCwgYXJndW1lbnRzWzFdLCBleGNl
cHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOworICAgIEpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBkZXN0aW5hdGlvbkhvc3QoQWRvcHQsIEpTVmFsdWVUb1N0cmluZ0NvcHkoY29udGV4
dCwgYXJndW1lbnRzWzJdLCBleGNlcHRpb24pKTsKKyAgICBBU1NFUlQoISpleGNlcHRpb24pOwor
ICAgIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1ZhbHVlVG9Cb29sZWFuKGNv
bnRleHQsIGFyZ3VtZW50c1szXSk7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCks
IGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwogc3RhdGljIEpTVmFs
dWVSZWYgc2V0U2Nyb2xsYmFyUG9saWN5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewog
ICAgIGlmIChhcmd1bWVudENvdW50ICE9IDIpCkBAIC0xNTAwLDYgKzE1MTgsNyBAQCBKU1N0YXRp
Y0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAg
ICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVldWVOb25Mb2FkaW5nU2NyaXB0Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxvYWQiLCBxdWV1ZVJlbG9hZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5rcyIsIHJlbW92ZUFsbFZp
c2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJyZXBhaW50U3dlZXBIb3Jpem9udGFsbHkiLCByZXBhaW50
U3dlZXBIb3Jpem9udGFsbHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBY2NlcHRz
RWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
c2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMiLCBzZXRBbGxvd1VuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAyMGJkZTM0Li42MWMzNDYz
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9s
bGVyLmgKQEAgLTIyNiw2ICsyMjYsNyBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZB
Y3RpdmVBbmltYXRpb25zKCkgY29uc3Q7CiAKICAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRp
b25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVu
dHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90
b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKTsKIAogICAgIHZvaWQgYWRkVXNlclNjcmlwdChKU1N0cmluZ1JlZiBzb3VyY2Us
IGJvb2wgcnVuQXRTdGFydCk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1Jl
ZiBzb3VyY2UpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xh
eW91dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggMDg5NzY0NC4uM2ZhOWJhNyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9s
bGVyR3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwCkBAIC0yNjYsNiArMjY2LDExIEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJj
ZU9yaWdpCiAgICAgZ19mcmVlKGhvc3RHQ2hhcik7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJj
ZU9yaWdpbiwgSlNTdHJpbmdSZWYgcHJvdG9jb2wsIEpTU3RyaW5nUmVmIGhvc3QsIGJvb2wgaW5j
bHVkZVN1YmRvbWFpbnMpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAorfQorCiB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGJvb2wgZmxh
ZykKIHsKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KaW5kZXggZGYx
MDc5My4uMThlNjFhZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAtNTczLDYgKzU3MywxNyBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShK
U1N0cmluZ1JlZiBzb3VyY2VPcmlnaQogICAgIFtXZWJWaWV3IF9hZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeVdpdGhTb3VyY2VPcmlnaW46c291cmNlT3JpZ2luTlMgZGVzdGluYXRpb25Qcm90
b2NvbDpkZXN0aW5hdGlvblByb3RvY29sTlMgZGVzdGluYXRpb25Ib3N0OmRlc3RpbmF0aW9uSG9z
dE5TIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOmFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
XTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBzb3VyY2VP
cmlnaW5DRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0
LCBzb3VyY2VPcmlnaW4pKTsKKyAgICBOU1N0cmluZyAqc291cmNlT3JpZ2luTlMgPSAoTlNTdHJp
bmcgKilzb3VyY2VPcmlnaW5DRi5nZXQoKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHBy
b3RvY29sQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgZGVzdGluYXRpb25Qcm90b2NvbCkpOworICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvblByb3Rv
Y29sTlMgPSAoTlNTdHJpbmcgKilwcm90b2NvbENGLmdldCgpOworICAgIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4gaG9zdENGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGRlc3RpbmF0aW9uSG9zdCkpOworICAgIE5TU3RyaW5nICpkZXN0aW5hdGlvbkhv
c3ROUyA9IChOU1N0cmluZyAqKWhvc3RDRi5nZXQoKTsKKyAgICBbV2ViVmlldyBfcmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbk5TIGRl
c3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0aW9uSG9zdDpk
ZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczphbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWluc107Cit9CisKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFNjcm9s
bGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQog
ewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggNGQ4N2QyNy4u
NzM3ZjU1YSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
TGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTQ4MCw2ICs0ODAsMTEgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoY29uc3QgUVN0
cmluZyYgc291cmNlT3IKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6d2hpdGVMaXN0QWNj
ZXNzRnJvbU9yaWdpbihzb3VyY2VPcmlnaW4sIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGRlc3RpbmF0
aW9uSG9zdCwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShjb25zdCBRU3Ry
aW5nJiBzb3VyY2VPcmlnaW4sIGNvbnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIGNv
bnN0IFFTdHJpbmcmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorfQorCiB2b2lkIExheW91dFRlc3RD
b250cm9sbGVyOjp3YWl0Rm9yUG9saWN5RGVsZWdhdGUoKQogewogICAgIG1fd2FpdEZvclBvbGlj
eSA9IHRydWU7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5
b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCBlYTY2ZTdjLi4wNzhkYTgwIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0
Q29udHJvbGxlcldpbi5jcHAKQEAgLTk5Miw2ICs5OTIsMTUgQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2kKICAgICB3ZWJWaWV3LT5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShic3RyVChz
b3VyY2VPcmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Qcm90b2NvbCkuR2V0QlNU
UigpLCBic3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIoKSwgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpyZW1vdmVPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVm
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3sKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRl
PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2Yo
V2ViVmlldyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4o
JndlYlZpZXcpKSkpCisgICAgICAgIHJldHVybjsKKworICAgIHdlYlZpZXctPnJlbW92ZU9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0QlNUUigpLCBic3Ry
VChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uSG9zdCku
R2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cit9CisKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlv
biwgSlNTdHJpbmdSZWYgcG9saWN5KQogewogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xs
ZXJXeC5jcHAKaW5kZXggZDlhMjQ3My4uYjAyYTAwOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTM2
Miw3ICszNjIsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTG9h
ZGluZygpCiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRp
b25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQogeworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKK30KIAordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNT
dHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCiB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRpb24sIEpTU3Ry
aW5nUmVmIHBvbGljeSkKLS0gCjEuNy4wLjIKCg==
</data>
<flag name="review"
          id="36929"
          type_id="1"
          status="+"
          setter="hyatt"
    />
    <flag name="commit-queue"
          id="36930"
          type_id="3"
          status="-"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>