<?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>126689</bug_id>
          
          <creation_ts>2014-01-09 03:17:42 -0800</creation_ts>
          <short_desc>Move platformName property from testRunner to accessibilityController</short_desc>
          <delta_ts>2014-01-10 13:06:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>126685</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mario Sanchez Prada">mario</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>rakuco</cc>
    
    <cc>samuel_white</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>965832</commentid>
    <comment_count>0</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-09 03:17:42 -0800</bug_when>
    <thetext>This platformName property was originally introduced to be able to write some parts of the layout tests in a platform-specific way, which might sound like a weird idea at a first glance but made sense in the context of accessibility, where different ports expect some times different accessibility hierarchies exposed, and having different test expectations didn&apos;t look like good enough (which usually lead to platform-specific tests, causing duplication).

Still, this property has been added in testRunner (former layoutTestController) for the sake of providing the functionality in a more generic way, in case it was useful for other tests. However, the truth is that after all this time only accessibility tests are using it, so I think it might be better to move it out of testRunner and into accessibilityController, where it seems to be a better fit.

Additionally, if we do this move we could refactor the concept itself of &quot;platform name&quot;, which so far has been tied to the &quot;port name&quot; (e.g. &quot;gtk&quot;, &quot;mac&quot;, &quot;efl&quot;). Thus, my proposal is to move this into accessibilityController and also change the concept of &quot;platform name&quot; to mean &quot;the name of the accessibility platform&quot;, that is, &quot;atk&quot; (for gtk and efl), &quot;mac&quot; and win (only for WK1, it seems).

Doing this change, the merge among platform/mac/accessibility/role-subrole-roledescription.html and platform/gtk/accessibility/roles-exposed.html tests would be cleaner and, in my opinion, simpler. Of course we would need to adapt the few layout tests that are now using testRunner.platformName, but that should not be a big deal.

I&apos;ll post a patch soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965834</commentid>
    <comment_count>1</comment_count>
      <attachid>220710</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-09 03:34:57 -0800</bug_when>
    <thetext>Created attachment 220710
Patch proposal

Here comes the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965927</commentid>
    <comment_count>2</comment_count>
      <attachid>220710</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-01-09 08:55:25 -0800</bug_when>
    <thetext>Comment on attachment 220710
Patch proposal

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

&gt; Tools/ChangeLog:12
&gt; +        gtk, efl) but between platofms (atk, mac, win).

platofrms -&gt; platforms

&gt; Tools/DumpRenderTree/AccessibilityController.cpp:161
&gt; +#if PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(WIN) || PLATFORM(EFL)

is there any platform that doesn&apos;t want this?
seems like we prob don&apos;t need the #if check</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965958</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-09 10:10:21 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 220710 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220710&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:12
&gt; &gt; +        gtk, efl) but between platofms (atk, mac, win).
&gt; 
&gt; platofrms -&gt; platforms

Ok.

&gt; &gt; Tools/DumpRenderTree/AccessibilityController.cpp:161
&gt; &gt; +#if PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(WIN) || PLATFORM(EFL)
&gt; 
&gt; is there any platform that doesn&apos;t want this?
&gt; seems like we prob don&apos;t need the #if check

I thought the same, but then I though of the IOS version of AccessibilityController (all guarded with #if PLATFORM(IOS)) and it was not clear to me whether I should added there, and also what to report as the platform name (&quot;mac&quot;? &quot;ios&quot;?)

If you can clarify this, I&apos;m happy to include the related bits in AccessibilityControllerIOS and get rid of all these checks here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>965964</commentid>
    <comment_count>4</comment_count>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2014-01-09 10:27:24 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 220710 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=220710&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/ChangeLog:12
&gt; &gt; &gt; +        gtk, efl) but between platofms (atk, mac, win).
&gt; &gt; 
&gt; &gt; platofrms -&gt; platforms
&gt; 
&gt; Ok.
&gt; 
&gt; &gt; &gt; Tools/DumpRenderTree/AccessibilityController.cpp:161
&gt; &gt; &gt; +#if PLATFORM(MAC) || PLATFORM(GTK) || PLATFORM(WIN) || PLATFORM(EFL)
&gt; &gt; 
&gt; &gt; is there any platform that doesn&apos;t want this?
&gt; &gt; seems like we prob don&apos;t need the #if check
&gt; 
&gt; I thought the same, but then I though of the IOS version of AccessibilityController (all guarded with #if PLATFORM(IOS)) and it was not clear to me whether I should added there, and also what to report as the platform name (&quot;mac&quot;? &quot;ios&quot;?)
&gt; 
&gt; If you can clarify this, I&apos;m happy to include the related bits in AccessibilityControllerIOS and get rid of all these checks here

Yes, let&apos;s add it to iOS as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966326</commentid>
    <comment_count>5</comment_count>
      <attachid>220831</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-10 04:05:25 -0800</bug_when>
    <thetext>Created attachment 220831
Patch proposal

New patch addressing Chris&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966412</commentid>
    <comment_count>6</comment_count>
      <attachid>220831</attachid>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2014-01-10 10:01:42 -0800</bug_when>
    <thetext>Comment on attachment 220831
Patch proposal

Thanks for the review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966531</commentid>
    <comment_count>7</comment_count>
      <attachid>220831</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-10 13:06:56 -0800</bug_when>
    <thetext>Comment on attachment 220831
Patch proposal

Clearing flags on attachment: 220831

Committed r161666: &lt;http://trac.webkit.org/changeset/161666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>966532</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-10 13:06:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220710</attachid>
            <date>2014-01-09 03:34:57 -0800</date>
            <delta_ts>2014-01-10 04:05:25 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-Move-platformName-property-from-testRunner-to-access.patch</filename>
            <type>text/plain</type>
            <size>27024</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA2Y2RiZjE4MTUxNjZkNTczOTQ1NjE1MGNhNGEwMzgxM2U1M2ZlMDMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCA5IEphbiAyMDE0IDExOjI4OjMzICswMDAwClN1YmplY3Q6IFtQ
QVRDSCAxLzJdIE1vdmUgcGxhdGZvcm1OYW1lIHByb3BlcnR5IGZyb20gdGVzdFJ1bm5lciB0bwog
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY2ODkKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFs
bGJhY2stY29udGVudC5odG1sICAgICB8ICAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L2lnbm9y
ZS1zcGFjZXItZWxlbWVudHMuaHRtbCAgICAgIHwgICAgMiArLQogTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9wbGF0Zm9ybS1uYW1lLmh0bWwgICAgICAgfCAgICA0ICstCiAuLi4vZWZsL2FjY2Vz
c2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQgICB8ICAgIDIgKy0KIC4uLi9ndGsv
YWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dCAgIHwgICAgMiArLQogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDY5ICsr
KysrKysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5jcHAgICB8ICAgMTQgKysrKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaCAgICAgfCAgICA1ICsrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcCAgICAgICAgICAgICAgICB8ICAgMTQgLS0tLQogVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5oICAgICAgICAgICAgICAgICAgfCAgICA1IC0tCiAuLi4vYXRrL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDYgKysKIFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCAgICAgICAgIHwgICAgNiAtLQogVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwICAgICAgICAgfCAgICA2IC0t
CiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAgICAgICAgICAgICB8ICAg
IDYgKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tICAgICAgICAg
IHwgICAgNiAtLQogLi4uL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAgICAgICAg
ICAgICAgfCAgICA2ICsrCiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5j
cHAgICAgICAgICB8ICAgIDYgLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oICAgICAgIHwgICAgMiArCiAuLi4vQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaWRsICAgICAgICAgICB8ICAgIDEgKwogLi4uL0luamVjdGVkQnVuZGxlL0JpbmRpbmdz
L1Rlc3RSdW5uZXIuaWRsICAgICAgICAgfCAgICAyIC0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIHwgICAgMiAtCiAuLi4vYXRrL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDYgKysKIC4uLi9JbmplY3RlZEJ1
bmRsZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgICAgICAgICAgIHwgICAgNiAtLQogLi4uL0luamVj
dGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCAgICAgICAgICAgfCAgICA2IC0tCiAuLi4v
bWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAgICAgICAgICAgICB8ICAgIDYgKysK
IC4uLi9JbmplY3RlZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSAgICAgICAgICAgIHwgICAg
NiAtLQogLi4uL0luamVjdGVkQnVuZGxlL3dpbi9UZXN0UnVubmVyV2luLmNwcCAgICAgICAgICAg
fCAgICA2IC0tCiAyOCBmaWxlcyBjaGFuZ2VkLCAxNDMgaW5zZXJ0aW9ucygrKSwgNzcgZGVsZXRp
b25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDI3NzdiODYuLmQ4MjA2OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wMS0wOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcuY29t
PgorCisgICAgICAgIE1vdmUgcGxhdGZvcm1OYW1lIHByb3BlcnR5IGZyb20gdGVzdFJ1bm5lciB0
byBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Njg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0cyBhbmQgZXhwZWN0YXRpb25zIGFmZmVjdGVk
IGJ5IHRoZSBtb3ZlIG9mCisgICAgICAgIHBsYXRmb3JtTmFtZSBmcm9tIFRlc3RSdW5uZXIgdG8g
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2NhbnZh
cy1mYWxsYmFjay1jb250ZW50Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZ25vcmUt
c3BhY2VyLWVsZW1lbnRzLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1u
YW1lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0t
bmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxpdHkv
cGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQ6CisKIDIwMTQtMDEtMDYgIEd1cnByZWV0IEthdXIg
IDxrLmd1cnByZWV0QHNhbXN1bmcuY29tPgogCiAgICAgICAgIDxocj4gYXBwZWFycyBncmF5IGlu
c3RlYWQgb2YgZ3JlZW4gYmVjYXVzZSBvZiBjb2xvciBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBmb2xs
b3dlZCBieSBub3NoYWRlIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sCmluZGV4IDYxOWU4MjQuLmY0MzZl
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxiYWNr
LWNvbnRlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1mYWxs
YmFjay1jb250ZW50Lmh0bWwKQEAgLTUyLDcgKzUyLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogICAgICAgICBkZWJ1ZygiIik7
CiAgICAgfQogCi0gICAgdmFyIGNvbWJvQm94Um9sZSA9ICh0ZXN0UnVubmVyLnBsYXRmb3JtTmFt
ZSA9PSAiZ3RrIiB8fCB0ZXN0UnVubmVyLnBsYXRmb3JtTmFtZSA9PSAiZWZsIikgPyAiQVhSb2xl
OiBBWENvbWJvQm94IiA6ICJBWFJvbGU6IEFYUG9wVXBCdXR0b24iOworICAgIHZhciBjb21ib0Jv
eFJvbGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIgPyAi
QVhSb2xlOiBBWENvbWJvQm94IiA6ICJBWFJvbGU6IEFYUG9wVXBCdXR0b24iOwogCiAgICAgLy8g
Q2hlY2sgcmVuZGVyZWQgY29udHJvbHMuCiAgICAgY2hlY2soImxpbmsxIiwgIkFYUm9sZTogQVhM
aW5rIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1zcGFj
ZXItZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNwYWNl
ci1lbGVtZW50cy5odG1sCmluZGV4IDE5YWM5Y2YuLmVkYmM4NmEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNwYWNlci1lbGVtZW50cy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNwYWNlci1lbGVtZW50cy5odG1sCkBAIC0y
NSw3ICsyNSw3IEBACiAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gYWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwogCiAgICAgICAgICAgICAv
LyBUaGUgR3RrIGFuZCBFRkwgcG9ydHMgQVRzIGV4cGVjdCB0aGUgYm9sZCBpbmxpbmUgdGV4dCB0
byBub3QgaGF2ZSBhY2Nlc3NpYmxlIG9iamVjdHMuCi0gICAgICAgICAgICB2YXIgZXhwZWN0ZWRD
b3VudCA9ICh0ZXN0UnVubmVyLnBsYXRmb3JtTmFtZSA9PSAiZ3RrIiB8fCB0ZXN0UnVubmVyLnBs
YXRmb3JtTmFtZSA9PSAiZWZsIikgPyAyIDogNDsKKyAgICAgICAgICAgIHZhciBleHBlY3RlZENv
dW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJhdGsiID8gMiA6
IDQ7CiAgICAgICAgICAgICBpZiAoY29udGFpbmVyLmNoaWxkcmVuQ291bnQgPT0gZXhwZWN0ZWRD
b3VudCkgewogICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgKz0gIlRlc3QgcGFzc2Vk
XG4iOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0
eS9wbGF0Zm9ybS1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3BsYXRmb3Jt
LW5hbWUuaHRtbAppbmRleCAzMGQyNzE0Li44ZDQ3MWVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nl
c3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUuaHRtbApAQCAtOCwxMCArOCwxMCBAQAogPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBqdXN0IHBy
aW50cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybS4iKTsKLWlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAotICBkZWJ1ZygiUGxh
dGZvcm0gbmFtZTogIiArIHRlc3RSdW5uZXIucGxhdGZvcm1OYW1lKTsKKyAgZGVidWcoIlBsYXRm
b3JtIG5hbWU6ICIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUpOwogfQog
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJpbGl0
eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9h
Y2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CmluZGV4IGNjMjIxMWEuLjZl
OTIwNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9hY2Nlc3NpYmlsaXR5
L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMsNyBA
QCBUaGlzIHRlc3QganVzdCBwcmludHMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgcGxhdGZvcm0u
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUGxhdGZvcm0gbmFtZTogZWZsCitQbGF0
Zm9ybSBuYW1lOiBhdGsKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBD
T01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
YWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCBlODc0Mjg3Li42
ZTkyMDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJpbGl0
eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMyw3ICszLDcg
QEAgVGhpcyB0ZXN0IGp1c3QgcHJpbnRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHBsYXRmb3Jt
LgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBsYXRmb3JtIG5hbWU6IGd0aworUGxh
dGZvcm0gbmFtZTogYXRrCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1Qg
Q09NUExFVEUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCAxMzhhNWNkLi5lMDdkY2MxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMTQtMDEtMDkgIE1hcmlvIFNhbmNo
ZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHBsYXRm
b3JtTmFtZSBwcm9wZXJ0eSBmcm9tIHRlc3RSdW5uZXIgdG8gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNjY4
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUg
dGhlIHBsYXRmb3JtTmFtZSBwcm9wZXJ0eSBmcm9tIHRoZSB0ZXN0UnVubmVyIGludG8KKyAgICAg
ICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIsIHNpbmNlIHRoaXMgaXMgYSBjb25jZXB0IHRoYXQg
aGFzIG9ubHkgYmUKKyAgICAgICAgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IHRlc3RzIHNpbmNlIGl0
IGdvdCBhZGRlZCwgYW5kIGFsc28gYmVjYXVzZQorICAgICAgICB0aGUgcmVhbCBpbnRlbnRpb24g
d2FzIG5vdCB0byBkaXN0aW5ndWlzaCBhbW9uZyAicG9ydHMiIChtYWMsIHdpbiwKKyAgICAgICAg
Z3RrLCBlZmwpIGJ1dCBiZXR3ZWVuIHBsYXRvZm1zIChhdGssIG1hYywgd2luKS4KKworICAgICAg
ICBUaGlzIGNoYW5nZSB3aWxsIGJlIHZlcnkgdXNlZnVsIHRvIG1lcmdlIEdUSydzIHJvbGVzLWV4
cG9zZWQuaHRtbAorICAgICAgICBhbmQgTWFjJ3Mgcm9sZS1zdWJyb2xlLXJvbGVkZXNjcmlwdGlv
bi5odG1sIGludG8gb25lIHNpbmdsZSB0ZXN0LAorICAgICAgICBzaW5jZSB3ZSB3aWxsIGJlIHNw
ZWNpZnlpbmcgaW4gdGhlIHRlc3QgaXRzZWxmIHdoaWNoIGVsZW1lbnRzIGFyZQorICAgICAgICBz
dXBwb3J0ZWQgaW4gd2hpY2ggYWNjZXNzaWJpbGl0eSAicGxhdGZvcm0iLiBJbiB0aGlzIGNvbnRl
eHQsCisgICAgICAgIGJlaW5nIGFibGUgdG8gY2hlY2sgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
cGxhdGZvcm1OYW1lIGRpcmVjdGx5CisgICAgICAgIGFnYWluc3QgYSBsaXN0IG9mIHN1cHBvcnRl
ZCBhY2Nlc3NpYmlsaXR5IHBsYXRmb3JtcyAoZS5nLiAiYXRrLG1hYyIpCisgICAgICAgIHdpbGwg
Y2VydGFpbmx5IG1haW50YWluIHRoZSBjb2RlIGNsZWFuZXIgYW5kIHNpbXBsZXIuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyOjpw
bGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2spOiBSZW1vdmVkLgorICAg
ICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljVmFsdWVzKTogUmVtb3ZlZCBwbGF0Zm9ybU5hbWUKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgIChU
ZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnBsYXRmb3Jt
TmFtZSk6IFJlbW92ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW06CisgICAgICAgIChUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAgKFRl
c3RSdW5uZXI6OnBsYXRmb3JtTmFtZSk6IFJlbW92ZWQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnBsYXRmb3JtTmFtZSk6IEFkZGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKGdldFBsYXRmb3JtTmFtZUNh
bGxiYWNrKTogQWRkZWQuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlND
bGFzcyk6IEFkZGVkIHBsYXRmb3JtTmFtZS4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9hdGsv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwOgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXI6OnBsYXRmb3JtTmFtZSk6IEFkZGVkLCByZXR1cm5pbmcgImF0ayIuCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOgorICAg
ICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSk6IERpdHRvLCByZXR1
cm5pbmcgIm1hYyIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0
Zm9ybU5hbWUpOiBEaXR0bywgcmV0dXJuaW5nICJ3aW4iLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbDoKKyAgICAgICAg
KHBsYXRmb3JtTmFtZSk6IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyOjpwbGF0Zm9ybU5h
bWUpOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
ZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1l
KTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSk6
IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
VGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSk6IFJl
bW92ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93aW4vVGVz
dFJ1bm5lcldpbi5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1v
dmVkLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOkFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpwbGF0Zm9ybU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbDoKKyAgICAgICAg
KHBsYXRmb3JtTmFtZSk6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSk6IEFkZGVkLCByZXR1cm5p
bmcgImF0ayIuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUpOiBBZGRlZCwgcmV0dXJuaW5nICJtYWMiLgorCiAy
MDE0LTAxLTA1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAg
ICAgICBbR1RLXVtDTWFrZV0gQWRkIHN1cHBvcnQgZm9yIGJ1aWxkaW5nIHRoZSBHVEsrIHBvcnQg
d2l0aCBjbWFrZSB0byBidWlsZC13ZWJraXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAppbmRleCA4MGM2ODljLi5mOTI5ZTZhIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC0x
MzAsNiArMTMwLDE3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3Rl
bmVyQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqCiAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oRUZMKQorc3RhdGljIEpTVmFs
dWVSZWYgZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQoreworICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUo
dGhpc09iamVjdCkpOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUo
Y29udHJvbGxlci0+cGxhdGZvcm1OYW1lKCkpOworICAgIGlmICghcGxhdGZvcm1OYW1lLmdldCgp
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgcmV0
dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIHBsYXRmb3JtTmFtZS5nZXQoKSk7Cit9Cisj
ZW5kaWYKKwogSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0SlNDbGFzcygp
CiB7CiAgICAgc3RhdGljIEpTU3RhdGljRnVuY3Rpb24gc3RhdGljRnVuY3Rpb25zW10gPSB7CkBA
IC0xNDcsNiArMTU4LDkgQEAgSlNDbGFzc1JlZiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Z2V0
SlNDbGFzcygpCiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUgc3RhdGljVmFsdWVzW10gPSB7CiAg
ICAgICAgIHsgImZvY3VzZWRFbGVtZW50IiwgZ2V0Rm9jdXNlZEVsZW1lbnRDYWxsYmFjaywgMCwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJyb290RWxlbWVudCIsIGdldFJvb3RFbGVtZW50Q2FsbGJhY2ss
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKKyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKSB8fCBQTEFURk9STShFRkwpCisgICAgICAgIHsgInBsYXRmb3JtTmFtZSIsIGdldFBs
YXRmb3JtTmFtZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisjZW5kaWYKICAgICAgICAgeyAwLCAwLCAw
LCAwIH0KICAgICB9OwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaAppbmRleCAzM2Y5MDgyLi5hYzY5NGEwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9KU09iamVjdFJlZi5oPgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+
CiAjaW5jbHVkZSA8c3RyaW5nPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL1BsYXRmb3JtLmg+CkBAIC02Myw2ICs2NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhZGRO
b3RpZmljYXRpb25MaXN0ZW5lcihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKTsKICAgICB2
b2lkIHJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCk7CiAKKyNpZiBQTEFURk9STShNQUMpIHx8
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCisgICAgSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpIGNvbnN0OworI2VuZGlmCisKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgLy8gSGVscGVyIG1ldGhvZHMgc28gdGhpcyBjbGFzcyBjYW4g
YWRkIHRoZSBsaXN0ZW5lcnMgb24gYmVoYWxmIG9mIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQuCiAg
ICAgdm9pZCB3aW5BZGROb3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9ybVVJRWxlbWVudCwgSlNP
YmplY3RSZWYgZnVuY3Rpb25DYWxsYmFjayk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
CmluZGV4IDJkNDAwN2EuLjE5ZDkwYzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC0xODQ0LDE3ICsxODQ0LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgZ2V0V2ViSGlzdG9yeUl0
ZW1Db3VudENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFIKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxlci0+d2ViSGlzdG9yeUl0ZW1D
b3VudCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShXSU4pIHx8IFBMQVRGT1JNKEVGTCkKLXN0YXRpYyBKU1ZhbHVlUmVmIGdldFBsYXRmb3Jt
TmFtZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAg
ICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IHBsYXRmb3JtTmFtZShjb250cm9sbGVyLT5wbGF0Zm9ybU5hbWUoKSk7Ci0gICAgaWYgKCFwbGF0
Zm9ybU5hbWUuZ2V0KCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29udGV4dCwgcGxhdGZvcm1OYW1l
LmdldCgpKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRTZWN1cmVFdmVudElu
cHV0SXNFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTIwNjAsOSArMjA0OSw2IEBAIEpTU3RhdGljVmFs
dWUqIFRlc3RSdW5uZXI6OnN0YXRpY1ZhbHVlcygpCiAgICAgc3RhdGljIEpTU3RhdGljVmFsdWUg
c3RhdGljVmFsdWVzW10gPSB7CiAgICAgICAgIHsgImdsb2JhbEZsYWciLCBnZXRHbG9iYWxGbGFn
Q2FsbGJhY2ssIHNldEdsb2JhbEZsYWdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25l
IH0sCiAgICAgICAgIHsgIndlYkhpc3RvcnlJdGVtQ291bnQiLCBnZXRXZWJIaXN0b3J5SXRlbUNv
dW50Q2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCi0gICAgICAgIHsgInBsYXRmb3Jt
TmFtZSIsIGdldFBsYXRmb3JtTmFtZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0jZW5kaWYKICAgICAg
ICAgeyAic2VjdXJlRXZlbnRJbnB1dElzRW5hYmxlZCIsIGdldFNlY3VyZUV2ZW50SW5wdXRJc0Vu
YWJsZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0aXRsZVRleHREaXJlY3Rpb24i
LCBnZXRUaXRsZVRleHREaXJlY3Rpb25DYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJk
YXRhYmFzZURlZmF1bHRRdW90YSIsIGdldERhdGFiYXNlRGVmYXVsdFF1b3RhQ2FsbGJhY2ssIHNl
dERhdGFiYXNlRGVmYXVsdFF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGEwYjQ1ZGQuLmJhMTU4MzQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNkZWZpbmUgVGVzdFJ1
bm5lcl9oCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgotI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8bWFwPgogI2luY2x1
ZGUgPHNldD4KICNpbmNsdWRlIDxzdHJpbmc+CkBAIC0xMzAsMTAgKzEyOSw2IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sKTsKICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZP
Uk0oRUZMKQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKSBjb25z
dDsKLSNlbmRpZgotCiAgICAgLy8gTGVnYWN5IGhlcmUgcmVmZXJzIHRvIHRoZSBvbGQgVGVzdFJ1
bm5lciBBUEkgZm9yIGhhbmRsaW5nIHdlYiBub3RpZmljYXRpb25zLCBub3QgdGhlIGxlZ2FjeSB3
ZWIgbm90aWZpY2F0aW9uIEFQSS4KICAgICB2b2lkIGlnbm9yZUxlZ2FjeVdlYk5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0cygpOwogICAgIC8vIExlZ2FjeSBoZXJlIHJlZmVycyB0byB0aGUg
b2xkIFRlc3RSdW5uZXIgQVBJIGZvciBoYW5kbGluZyB3ZWIgbm90aWZpY2F0aW9ucywgbm90IHRo
ZSBsZWdhY3kgd2ViIG5vdGlmaWNhdGlvbiBBUEkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcAppbmRleCA1MGRhNjYz
Li43YzIxMWQzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2F0ay9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKQEAgLTEwMyw2ICsxMDMsMTIgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQogICAgIG1f
Z2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9IG51bGxwdHI7CiB9CiAKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkgY29uc3QK
K3sKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYXRrIikpOworICAgIHJldHVybiBwbGF0Zm9ybU5h
bWU7Cit9CisKIEF0a09iamVjdCogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmNoaWxkRWxlbWVu
dEJ5SWQoQXRrT2JqZWN0KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGlkKQogewogICAgIGlmICghQVRL
X0lTX09CSkVDVChwYXJlbnQpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwCmluZGV4IDQ1NGY4Y2YuLjdmZTkzZDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTgzMyw5ICs4MzMsMyBAQCB2b2lkIFRlc3RSdW5uZXI6
OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KLQotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFt
ZSgpIGNvbnN0Ci17Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShB
ZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImVmbCIpKTsKLSAgICByZXR1cm4g
cGxhdGZvcm1OYW1lOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwCmluZGV4IDVlMGI5NGIuLmVhNTdkMjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
VGVzdFJ1bm5lckd0ay5jcHAKQEAgLTEyMiwxMiArMTIyLDYgQEAgc2l6ZV90IFRlc3RSdW5uZXI6
OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgICAgICAgICAgd2Via2l0X3dlYl9iYWNrX2Zvcndh
cmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgobGlzdCk7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAotewotICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKCJndGsiKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpub3RpZnlEb25lKCkKIHsKICAgICBpZiAobV93YWl0VG9EdW1wICYmICF0b3BM
b2FkaW5nRnJhbWUgJiYgIVdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0g
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0K
aW5kZXggOGQ3MmM4YS4uOWE4YjRkZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMTQxLDMgKzE0MSw5IEBA
IHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVy
KCkKICAgICBBU1NFUlQobV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyKTsKICAgICBtX2dsb2Jh
bE5vdGlmaWNhdGlvbkhhbmRsZXIuY2xlYXIoKTsKIH0KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAoreworICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJtYWMiKSk7CisgICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKK30K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggYmY2NzhlMy4u
YWQ5ZWRmOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAg
LTI4NSwxMiArMjg1LDYgQEAgc2l6ZV90IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQo
KQogICAgIHJldHVybiBbW1tXZWJIaXN0b3J5IG9wdGlvbmFsU2hhcmVkSGlzdG9yeV0gYWxsSXRl
bXNdIGNvdW50XTsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBs
YXRmb3JtTmFtZSgpIGNvbnN0Ci17Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRm
b3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKLSAg
ICByZXR1cm4gcGxhdGZvcm1OYW1lOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUo
KQogewogICAgIGlmIChtX3dhaXRUb0R1bXAgJiYgIXRvcExvYWRpbmdGcmFtZSAmJiAhV29ya1F1
ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGQ4Yzg5YjMuLmFiOGY3
NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyV2luLmNwcApAQCAtMzg5LDMgKzM4OSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OndpbkFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKFBsYXRmb3JtVUlFbGVtZW50
IGVsZW1lCiAgICAgSlNWYWx1ZVByb3RlY3QoZnJhbWUtPmdsb2JhbENvbnRleHQoKSwgZnVuY3Rp
b25DYWxsYmFjayk7CiAgICAgbV9ub3RpZmljYXRpb25MaXN0ZW5lcnMuYWRkKGVsZW1lbnQsIGZ1
bmN0aW9uQ2FsbGJhY2spOwogfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0Cit7CisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoIndpbiIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDIxNTZjMDMuLmUyNWYxMDIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTE5MiwxMiAr
MTkyLDYgQEAgc2l6ZV90IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJl
dHVybiBjb3VudDsKIH0KIAotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBs
YXRmb3JtTmFtZSgpIGNvbnN0Ci17Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRm
b3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIpKTsKLSAg
ICByZXR1cm4gcGxhdGZvcm1OYW1lOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUo
KQogewogICAgIC8vIFNhbWUgYXMgb24gbWFjLiAgVGhpcyBjYW4gYmUgc2hhcmVkLgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlci5oCmluZGV4IDBlZGI0Y2EuLjdjZTFhNDUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTQ0LDYgKzQ0LDggQEAgcHVibGljOgogICAgIHZvaWQg
bWFrZVdpbmRvd09iamVjdChKU0NvbnRleHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsKICAgICB2aXJ0dWFsIEpTQ2xhc3NSZWYgd3JhcHBlckNs
YXNzKCk7CiAgICAgCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgp
OworCiAgICAgLy8gQ29udHJvbGxlciBNZXRob2RzIC0gcGxhdGZvcm0taW5kZXBlbmRlbnQgaW1w
bGVtZW50YXRpb25zLgogICAgIFBhc3NSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gcm9v
dEVsZW1lbnQoKTsKICAgICBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGZvY3Vz
ZWRFbGVtZW50KCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuaWRsCmluZGV4IDU2NjFjMGMuLmJmN2E2ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogaW50
ZXJmYWNlIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nIHBsYXRmb3JtTmFtZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudCByb290RWxlbWVudDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCBmb2N1c2VkRWxlbWVudDsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50IGVsZW1lbnRBdFBvaW50KGludCB4LCBpbnQgeSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bAppbmRleCBjMmZmODNhLi5lMjlkYTUxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAg
LTE1NSw4ICsxNTUsNiBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRQYWdl
VmlzaWJpbGl0eShET01TdHJpbmcgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0
eSgpOwogCi0gICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybU5hbWU7Ci0K
ICAgICAvLyBDb250cm9sIGZ1bGwgc2NyZWVuIGJlaGF2aW9yLgogICAgIHZvaWQgc2V0SGFzQ3Vz
dG9tRnVsbFNjcmVlbkJlaGF2aW9yKGJvb2xlYW4gdmFsdWUpOwogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDVlZjMyYWUu
LmNlZmI2YTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5oCkBAIC0yNTcsOCArMjU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24oZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRl
LCBkb3VibGUgYWNjdXJhY3ksIEpTVmFsdWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYgYWx0aXR1
ZGVBY2N1cmFjeSwgSlNWYWx1ZVJlZiBoZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsKICAgICB2
b2lkIHNldE1vY2tHZW9sb2NhdGlvblBvc2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1Jl
ZiBtZXNzYWdlKTsKIAotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUo
KTsKLQogICAgIHZvaWQgc2V0UGFnZVZpc2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAg
IHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlckF0ay5jcHAKaW5kZXggYmM2MzA3My4uNGUxMTE1MCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcApAQCAtMTE0LDYgKzExNCwxMiBA
QCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SQogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFt
ZSgpCit7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwg
SlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImF0ayIpKTsKKyAgICByZXR1cm4gcGxhdGZv
cm1OYW1lOworfQorCiBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBh
Z2UgPSBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2VmbC9UZXN0UnVubmVyRWZs
LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwCmluZGV4IDk2ODE2MTEuLjZhOTI2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3Bw
CkBAIC04MywxMCArODMsNCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6
cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCiAgICAgcmV0dXJuIEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKGZ1bGxQYXRoVG9VcmwudXRmOCgpLmRhdGEoKSk7CiB9CiAK
LUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKQotewot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJlZmwiKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDQyN2Nm
MmUuLmRmNDA0M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC03OCwxMCArNzgsNCBAQCBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShK
U1N0cmluZ1JlZiB1cmwpCiAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5n
KHRlc3RVUkkuZ2V0KCkpOwogfQogCi1KU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5l
cjo6cGxhdGZvcm1OYW1lKCkKLXsKLSAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZv
cm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiZ3RrIikpOwotICAg
IHJldHVybiBwbGF0Zm9ybU5hbWU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQppbmRleCA4NDczMDQxLi4zNDAzYjcw
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMTEy
LDYgKzExMiwxMiBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SQogICAgIHJldHVybiBudWxscHRy
OwogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OnBsYXRmb3JtTmFtZSgpCit7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3Jt
TmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKKyAgICBy
ZXR1cm4gcGxhdGZvcm1OYW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKIAogI2VuZGlmIC8v
IEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IGM5YmYzY2EuLmE5
MjQxMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNjAsMTEgKzYwLDUgQEAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdS
ZWYgdXJsKQogewogICAgIHJldHVybiBKU1N0cmluZ1JldGFpbih1cmwpOyAvLyBEbyBub3RoaW5n
IG9uIG1hYy4KIH0KLSAgICAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpw
bGF0Zm9ybU5hbWUoKQotewotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5h
bWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJtYWMiKSk7Ci0gICAgcmV0
dXJuIHBsYXRmb3JtTmFtZTsKLX0KIAogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dpbi9UZXN0UnVubmVyV2luLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJX
aW4uY3BwCmluZGV4IDIyNTM5NDIuLjRhYzZmNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBA
IC02NCwxMCArNjQsNCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0
aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCiAgICAgcmV0dXJuIEpTU3RyaW5nUmV0
YWluKHVybCk7IC8vIFRPRE8uCiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVu
bmVyOjpwbGF0Zm9ybU5hbWUoKQotewotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0
Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ3aW4iKSk7Ci0g
ICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCi0tIAoxLjcu
MTAuNAoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220831</attachid>
            <date>2014-01-10 04:05:25 -0800</date>
            <delta_ts>2014-01-10 13:06:56 -0800</delta_ts>
            <desc>Patch proposal</desc>
            <filename>0001-Move-platformName-property-from-testRunner-to-access.patch</filename>
            <type>text/plain</type>
            <size>27570</size>
            <attacher name="Mario Sanchez Prada">mario</attacher>
            
              <data encoding="base64">RnJvbSA4NGVmOGEwM2U3NjI4YmJkYjVlMWZmZjAzMDg3ZGJmNmVmMGEwNTQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJpbyBTYW5jaGV6IFByYWRhIDxtYXJpby5wcmFkYUBzYW1z
dW5nLmNvbT4KRGF0ZTogVGh1LCA5IEphbiAyMDE0IDExOjI4OjMzICswMDAwClN1YmplY3Q6IFtQ
QVRDSCAxLzJdIE1vdmUgcGxhdGZvcm1OYW1lIHByb3BlcnR5IGZyb20gdGVzdFJ1bm5lciB0bwog
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIKIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY2ODkKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDE2ICsrKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9jYW52YXMtZmFs
bGJhY2stY29udGVudC5odG1sICAgICB8ICAgIDIgKy0KIC4uLi9hY2Nlc3NpYmlsaXR5L2lnbm9y
ZS1zcGFjZXItZWxlbWVudHMuaHRtbCAgICAgIHwgICAgMiArLQogTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9wbGF0Zm9ybS1uYW1lLmh0bWwgICAgICAgfCAgICA0ICstCiAuLi4vZWZsL2FjY2Vz
c2liaWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQgICB8ICAgIDIgKy0KIC4uLi9ndGsv
YWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dCAgIHwgICAgMiArLQogVG9v
bHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcxICsr
KysrKysrKysrKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5jcHAgICB8ICAgMTAgKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oICAgICB8ICAgIDMgKwogVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAgICAgICAgICAgICAgICAgfCAgIDE0IC0tLS0KIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuaCAgICAgICAgICAgICAgICAgIHwgICAgNSAtLQogLi4uL2F0ay9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlckF0ay5jcHAgICAgICAgICAgICAgfCAgICA2ICsrCiBUb29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgICAgICAgICB8ICAgIDYgLS0KIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCAgICAgICAgIHwgICAgNiAtLQog
Li4uL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbSAgICAgICAgICAgICAgfCAgICA2
ICsrCiAuLi4vbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAgICAgICAgICAgICB8
ICAgIDYgKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tICAgICAg
ICAgIHwgICAgNiAtLQogLi4uL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAgICAg
ICAgICAgICAgfCAgICA2ICsrCiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAgICAgICAgICB8ICAgIDYgLS0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5oICAgICAgIHwgICAgMiArCiAuLi4vQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuaWRsICAgICAgICAgICB8ICAgIDEgKwogLi4uL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsICAgICAgICAgfCAgICAyIC0KIFRvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oIHwgICAgMiAtCiAuLi4vYXRrL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyQXRrLmNwcCAgICAgICAgICAgICB8ICAgIDYgKysKIC4uLi9JbmplY3Rl
ZEJ1bmRsZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgICAgICAgICAgIHwgICAgNiAtLQogLi4uL0lu
amVjdGVkQnVuZGxlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCAgICAgICAgICAgfCAgICA2IC0tCiAu
Li4vbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tICAgICAgICAgICAgICB8ICAgIDYg
KysKIC4uLi9JbmplY3RlZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSAgICAgICAgICAgIHwg
ICAgNiAtLQogLi4uL0luamVjdGVkQnVuZGxlL3dpbi9UZXN0UnVubmVyV2luLmNwcCAgICAgICAg
ICAgfCAgICA2IC0tCiAyOSBmaWxlcyBjaGFuZ2VkLCAxNDUgaW5zZXJ0aW9ucygrKSwgNzcgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDI3NzdiODYuLmQ4MjA2OWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxNC0wMS0wOSAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1hcmlvLnByYWRhQHNhbXN1bmcu
Y29tPgorCisgICAgICAgIE1vdmUgcGxhdGZvcm1OYW1lIHByb3BlcnR5IGZyb20gdGVzdFJ1bm5l
ciB0byBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI2Njg5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCB0ZXN0cyBhbmQgZXhwZWN0YXRpb25zIGFmZmVj
dGVkIGJ5IHRoZSBtb3ZlIG9mCisgICAgICAgIHBsYXRmb3JtTmFtZSBmcm9tIFRlc3RSdW5uZXIg
dG8gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2Nh
bnZhcy1mYWxsYmFjay1jb250ZW50Lmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pZ25v
cmUtc3BhY2VyLWVsZW1lbnRzLmh0bWw6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9wbGF0Zm9y
bS1uYW1lLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vZWZsL2FjY2Vzc2liaWxpdHkvcGxhdGZv
cm0tbmFtZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL2FjY2Vzc2liaWxp
dHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQ6CisKIDIwMTQtMDEtMDYgIEd1cnByZWV0IEth
dXIgIDxrLmd1cnByZWV0QHNhbXN1bmcuY29tPgogCiAgICAgICAgIDxocj4gYXBwZWFycyBncmF5
IGluc3RlYWQgb2YgZ3JlZW4gYmVjYXVzZSBvZiBjb2xvciBhdHRyaWJ1dGUgaXMgZGVmaW5lZCBm
b2xsb3dlZCBieSBub3NoYWRlIGF0dHJpYnV0ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvYWNj
ZXNzaWJpbGl0eS9jYW52YXMtZmFsbGJhY2stY29udGVudC5odG1sCmluZGV4IDYxOWU4MjQuLmY0
MzZlNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvY2FudmFzLWZhbGxi
YWNrLWNvbnRlbnQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2NhbnZhcy1m
YWxsYmFjay1jb250ZW50Lmh0bWwKQEAgLTUyLDcgKzUyLDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgewogICAgICAgICBkZWJ1Zygi
Iik7CiAgICAgfQogCi0gICAgdmFyIGNvbWJvQm94Um9sZSA9ICh0ZXN0UnVubmVyLnBsYXRmb3Jt
TmFtZSA9PSAiZ3RrIiB8fCB0ZXN0UnVubmVyLnBsYXRmb3JtTmFtZSA9PSAiZWZsIikgPyAiQVhS
b2xlOiBBWENvbWJvQm94IiA6ICJBWFJvbGU6IEFYUG9wVXBCdXR0b24iOworICAgIHZhciBjb21i
b0JveFJvbGUgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUgPT0gImF0ayIg
PyAiQVhSb2xlOiBBWENvbWJvQm94IiA6ICJBWFJvbGU6IEFYUG9wVXBCdXR0b24iOwogCiAgICAg
Ly8gQ2hlY2sgcmVuZGVyZWQgY29udHJvbHMuCiAgICAgY2hlY2soImxpbmsxIiwgIkFYUm9sZTog
QVhMaW5rIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L2lnbm9yZS1z
cGFjZXItZWxlbWVudHMuaHRtbCBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNw
YWNlci1lbGVtZW50cy5odG1sCmluZGV4IDE5YWM5Y2YuLmVkYmM4NmEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNwYWNlci1lbGVtZW50cy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvaWdub3JlLXNwYWNlci1lbGVtZW50cy5odG1sCkBA
IC0yNSw3ICsyNSw3IEBACiAgICAgICAgICAgICB2YXIgY29udGFpbmVyID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuZm9jdXNlZEVsZW1lbnQuY2hpbGRBdEluZGV4KDApOwogCiAgICAgICAgICAg
ICAvLyBUaGUgR3RrIGFuZCBFRkwgcG9ydHMgQVRzIGV4cGVjdCB0aGUgYm9sZCBpbmxpbmUgdGV4
dCB0byBub3QgaGF2ZSBhY2Nlc3NpYmxlIG9iamVjdHMuCi0gICAgICAgICAgICB2YXIgZXhwZWN0
ZWRDb3VudCA9ICh0ZXN0UnVubmVyLnBsYXRmb3JtTmFtZSA9PSAiZ3RrIiB8fCB0ZXN0UnVubmVy
LnBsYXRmb3JtTmFtZSA9PSAiZWZsIikgPyAyIDogNDsKKyAgICAgICAgICAgIHZhciBleHBlY3Rl
ZENvdW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIucGxhdGZvcm1OYW1lID09ICJhdGsiID8g
MiA6IDQ7CiAgICAgICAgICAgICBpZiAoY29udGFpbmVyLmNoaWxkcmVuQ291bnQgPT0gZXhwZWN0
ZWRDb3VudCkgewogICAgICAgICAgICAgICAgIHJlc3VsdC5pbm5lclRleHQgKz0gIlRlc3QgcGFz
c2VkXG4iOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9wbGF0Zm9ybS1uYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L3BsYXRm
b3JtLW5hbWUuaHRtbAppbmRleCAzMGQyNzE0Li44ZDQ3MWVjIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9h
Y2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUuaHRtbApAQCAtOCwxMCArOCwxMCBAQAogPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+CiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBqdXN0
IHByaW50cyB0aGUgbmFtZSBvZiB0aGUgY3VycmVudCBwbGF0Zm9ybS4iKTsKLWlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5hY2Nlc3NpYmls
aXR5Q29udHJvbGxlcikgewogICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAotICBkZWJ1Zygi
UGxhdGZvcm0gbmFtZTogIiArIHRlc3RSdW5uZXIucGxhdGZvcm1OYW1lKTsKKyAgZGVidWcoIlBs
YXRmb3JtIG5hbWU6ICIgKyBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5wbGF0Zm9ybU5hbWUpOwog
fQogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvYWNjZXNzaWJp
bGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CmluZGV4IGNjMjIxMWEu
LjZlOTIwNWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9hY2Nlc3NpYmls
aXR5L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtLW5hbWUtZXhwZWN0ZWQudHh0CkBAIC0zLDcgKzMs
NyBAQCBUaGlzIHRlc3QganVzdCBwcmludHMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgcGxhdGZv
cm0uCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUGxhdGZvcm0gbmFtZTogZWZsCitQ
bGF0Zm9ybSBuYW1lOiBhdGsKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL2FjY2Vzc2li
aWxpdHkvcGxhdGZvcm0tbmFtZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dAppbmRleCBlODc0Mjg3
Li42ZTkyMDViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvYWNjZXNzaWJp
bGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS1uYW1lLWV4cGVjdGVkLnR4dApAQCAtMyw3ICsz
LDcgQEAgVGhpcyB0ZXN0IGp1c3QgcHJpbnRzIHRoZSBuYW1lIG9mIHRoZSBjdXJyZW50IHBsYXRm
b3JtLgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBsYXRmb3JtIG5hbWU6IGd0awor
UGxhdGZvcm0gbmFtZTogYXRrCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAxMzhhNWNkLi5lNTkwODg2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTQtMDEtMDkgIE1hcmlvIFNh
bmNoZXogUHJhZGEgIDxtYXJpby5wcmFkYUBzYW1zdW5nLmNvbT4KKworICAgICAgICBNb3ZlIHBs
YXRmb3JtTmFtZSBwcm9wZXJ0eSBmcm9tIHRlc3RSdW5uZXIgdG8gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
NjY4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1v
dmUgdGhlIHBsYXRmb3JtTmFtZSBwcm9wZXJ0eSBmcm9tIHRoZSB0ZXN0UnVubmVyIGludG8KKyAg
ICAgICAgYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIsIHNpbmNlIHRoaXMgaXMgYSBjb25jZXB0IHRo
YXQgaGFzIG9ubHkgYmUKKyAgICAgICAgdXNlZCBieSBhY2Nlc3NpYmlsaXR5IHRlc3RzIHNpbmNl
IGl0IGdvdCBhZGRlZCwgYW5kIGFsc28gYmVjYXVzZQorICAgICAgICB0aGUgcmVhbCBpbnRlbnRp
b24gd2FzIG5vdCB0byBkaXN0aW5ndWlzaCBhbW9uZyAicG9ydHMiIChtYWMsIHdpbiwKKyAgICAg
ICAgZ3RrLCBlZmwpIGJ1dCBiZXR3ZWVuIHBsYXRmb3JtcyAoYXRrLCBtYWMsIHdpbikuCisKKyAg
ICAgICAgVGhpcyBjaGFuZ2Ugd2lsbCBiZSB2ZXJ5IHVzZWZ1bCB0byBtZXJnZSBHVEsncyByb2xl
cy1leHBvc2VkLmh0bWwKKyAgICAgICAgYW5kIE1hYydzIHJvbGUtc3Vicm9sZS1yb2xlZGVzY3Jp
cHRpb24uaHRtbCBpbnRvIG9uZSBzaW5nbGUgdGVzdCwKKyAgICAgICAgc2luY2Ugd2Ugd2lsbCBi
ZSBzcGVjaWZ5aW5nIGluIHRoZSB0ZXN0IGl0c2VsZiB3aGljaCBlbGVtZW50cyBhcmUKKyAgICAg
ICAgc3VwcG9ydGVkIGluIHdoaWNoIGFjY2Vzc2liaWxpdHkgInBsYXRmb3JtIi4gSW4gdGhpcyBj
b250ZXh0LAorICAgICAgICBiZWluZyBhYmxlIHRvIGNoZWNrIGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLnBsYXRmb3JtTmFtZSBkaXJlY3RseQorICAgICAgICBhZ2FpbnN0IGEgbGlzdCBvZiBzdXBw
b3J0ZWQgYWNjZXNzaWJpbGl0eSBwbGF0Zm9ybXMgKGUuZy4gImF0ayxtYWMiKQorICAgICAgICB3
aWxsIGNlcnRhaW5seSBtYWludGFpbiB0aGUgY29kZSBjbGVhbmVyIGFuZCBzaW1wbGVyLgorCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6cGxhdGZvcm1OYW1lKTogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKGdldFBsYXRmb3JtTmFtZUNhbGxiYWNrKTogUmVtb3ZlZC4K
KyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY1ZhbHVlcyk6IFJlbW92ZWQgcGxhdGZvcm1OYW1l
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKTogUmVtb3ZlZC4KKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpwbGF0
Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVu
bmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKTogUmVtb3ZlZC4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAg
IChUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUpOiBBZGRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHA6CisgICAgICAgIChnZXRQbGF0Zm9ybU5h
bWVDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6Omdl
dEpTQ2xhc3MpOiBBZGRlZCBwbGF0Zm9ybU5hbWUuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
YXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRrLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxp
dHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUpOiBBZGRlZCwgcmV0dXJuaW5nICJhdGsiLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUpOiBEaXR0bywg
cmV0dXJuaW5nICJtYWMiLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpw
bGF0Zm9ybU5hbWUpOiBEaXR0bywgcmV0dXJuaW5nICJpb3MiLgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKTogRGl0dG8sIHJldHVybmluZyAid2lu
Ii4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3Mv
VGVzdFJ1bm5lci5pZGw6CisgICAgICAgIChwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAg
ICAoVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKTogUmVtb3ZlZC4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSk6IFJlbW92ZWQuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgIChU
ZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgIChUZXN0
UnVubmVyOjpwbGF0Zm9ybU5hbWUpOiBSZW1vdmVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6cGxhdGZvcm1OYW1lKTogUmVtb3ZlZC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdU
UjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKTogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5pZGw6CisgICAgICAgIChwbGF0Zm9ybU5hbWUpOiBBZGRlZC4KKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckF0ay5jcHA6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0
Zm9ybU5hbWUpOiBBZGRlZCwgcmV0dXJuaW5nICJhdGsiLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyTWFjLm1tOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKTogQWRk
ZWQsIHJldHVybmluZyAibWFjIi4KKwogMjAxNC0wMS0wNSAgTWFydGluIFJvYmluc29uICA8bXJv
Ymluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bQ01ha2VdIEFkZCBzdXBwb3J0IGZv
ciBidWlsZGluZyB0aGUgR1RLKyBwb3J0IHdpdGggY21ha2UgdG8gYnVpbGQtd2Via2l0CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXgg
ODBjNjg5Yy4uZmExMzlmYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmNwcApAQCAtMTMwLDYgKzEzMCwxNSBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiByZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iagogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAor
c3RhdGljIEpTVmFsdWVSZWYgZ2V0UGxhdGZvcm1OYW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIqPihKU09iamVj
dEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBw
bGF0Zm9ybU5hbWUoY29udHJvbGxlci0+cGxhdGZvcm1OYW1lKCkpOworICAgIGlmICghcGxhdGZv
cm1OYW1lLmdldCgpKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7CisgICAgcmV0dXJuIEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIHBsYXRmb3JtTmFtZS5n
ZXQoKSk7Cit9CisKIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OmdldEpTQ2xh
c3MoKQogewogICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIHN0YXRpY0Z1bmN0aW9uc1tdID0g
ewpAQCAtMTQ3LDYgKzE1Niw3IEBAIEpTQ2xhc3NSZWYgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6
OmdldEpTQ2xhc3MoKQogICAgIHN0YXRpYyBKU1N0YXRpY1ZhbHVlIHN0YXRpY1ZhbHVlc1tdID0g
ewogICAgICAgICB7ICJmb2N1c2VkRWxlbWVudCIsIGdldEZvY3VzZWRFbGVtZW50Q2FsbGJhY2ss
IDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAicm9vdEVsZW1lbnQiLCBnZXRSb290RWxlbWVudENhbGxi
YWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInBsYXRmb3JtTmFtZSIsIGdldFBsYXRmb3JtTmFt
ZUNhbGxiYWNrLCAwLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgMCwgMCwgMCwgMCB9CiAgICAgfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXgg
MzNmOTA4Mi4uZDNkNDFmOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgiCiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4K
KyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgogI2luY2x1ZGUgPHN0cmlu
Zz4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QbGF0Zm9ybS5oPgpA
QCAtNjMsNiArNjQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBhZGROb3RpZmljYXRpb25MaXN0ZW5l
cihKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKTsKICAgICB2b2lkIHJlbW92ZU5vdGlmaWNh
dGlvbkxpc3RlbmVyKCk7CiAKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1O
YW1lKCkgY29uc3Q7CisKICNpZiBQTEFURk9STShXSU4pCiAgICAgLy8gSGVscGVyIG1ldGhvZHMg
c28gdGhpcyBjbGFzcyBjYW4gYWRkIHRoZSBsaXN0ZW5lcnMgb24gYmVoYWxmIG9mIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQuCiAgICAgdm9pZCB3aW5BZGROb3RpZmljYXRpb25MaXN0ZW5lcihQbGF0
Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RSZWYgZnVuY3Rpb25DYWxsYmFjayk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDJkNDAwN2EuLjE5ZDkwYzkgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xODQ0LDE3ICsxODQ0LDYgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgZ2V0V2ViSGlzdG9yeUl0ZW1Db3VudENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFIKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VOdW1iZXIoY29udGV4dCwgY29udHJvbGxl
ci0+d2ViSGlzdG9yeUl0ZW1Db3VudCgpKTsKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEVGTCkKLXN0YXRpYyBKU1Zh
bHVlUmVmIGdldFBsYXRmb3JtTmFtZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKLXsKLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8
VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShjb250cm9sbGVyLT5wbGF0Zm9ybU5hbWUo
KSk7Ci0gICAgaWYgKCFwbGF0Zm9ybU5hbWUuZ2V0KCkpCi0gICAgICAgIHJldHVybiBKU1ZhbHVl
TWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VTdHJpbmcoY29u
dGV4dCwgcGxhdGZvcm1OYW1lLmdldCgpKTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgSlNWYWx1ZVJl
ZiBnZXRTZWN1cmVFdmVudElucHV0SXNFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTIwNjAsOSArMjA0
OSw2IEBAIEpTU3RhdGljVmFsdWUqIFRlc3RSdW5uZXI6OnN0YXRpY1ZhbHVlcygpCiAgICAgc3Rh
dGljIEpTU3RhdGljVmFsdWUgc3RhdGljVmFsdWVzW10gPSB7CiAgICAgICAgIHsgImdsb2JhbEZs
YWciLCBnZXRHbG9iYWxGbGFnQ2FsbGJhY2ssIHNldEdsb2JhbEZsYWdDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVOb25lIH0sCiAgICAgICAgIHsgIndlYkhpc3RvcnlJdGVtQ291bnQiLCBn
ZXRXZWJIaXN0b3J5SXRlbUNvdW50Q2FsbGJhY2ssIDAsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShFRkwpCi0g
ICAgICAgIHsgInBsYXRmb3JtTmFtZSIsIGdldFBsYXRmb3JtTmFtZUNhbGxiYWNrLCAwLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCi0jZW5kaWYKICAgICAgICAgeyAic2VjdXJlRXZlbnRJbnB1dElzRW5hYmxlZCIsIGdldFNl
Y3VyZUV2ZW50SW5wdXRJc0VuYWJsZWRDYWxsYmFjaywgMCwga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ0
aXRsZVRleHREaXJlY3Rpb24iLCBnZXRUaXRsZVRleHREaXJlY3Rpb25DYWxsYmFjaywgMCwga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJkYXRhYmFzZURlZmF1bHRRdW90YSIsIGdldERhdGFiYXNlRGVmYXVs
dFF1b3RhQ2FsbGJhY2ssIHNldERhdGFiYXNlRGVmYXVsdFF1b3RhQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlTm9uZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGEwYjQ1
ZGQuLmJhMTU4MzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTMwLDcgKzMwLDYg
QEAKICNkZWZpbmUgVGVzdFJ1bm5lcl9oCiAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09i
amVjdFJlZi5oPgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5j
bHVkZSA8bWFwPgogI2luY2x1ZGUgPHNldD4KICNpbmNsdWRlIDxzdHJpbmc+CkBAIC0xMzAsMTAg
KzEyOSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29s
KTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdJTikgfHwgUExBVEZPUk0oRUZMKQotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBw
bGF0Zm9ybU5hbWUoKSBjb25zdDsKLSNlbmRpZgotCiAgICAgLy8gTGVnYWN5IGhlcmUgcmVmZXJz
IHRvIHRoZSBvbGQgVGVzdFJ1bm5lciBBUEkgZm9yIGhhbmRsaW5nIHdlYiBub3RpZmljYXRpb25z
LCBub3QgdGhlIGxlZ2FjeSB3ZWIgbm90aWZpY2F0aW9uIEFQSS4KICAgICB2b2lkIGlnbm9yZUxl
Z2FjeVdlYk5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0cygpOwogICAgIC8vIExlZ2FjeSBo
ZXJlIHJlZmVycyB0byB0aGUgb2xkIFRlc3RSdW5uZXIgQVBJIGZvciBoYW5kbGluZyB3ZWIgbm90
aWZpY2F0aW9ucywgbm90IHRoZSBsZWdhY3kgd2ViIG5vdGlmaWNhdGlvbiBBUEkuCmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYXRrL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyQXRr
LmNwcAppbmRleCA1MGRhNjYzLi43YzIxMWQzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKQEAgLTEwMyw2ICsx
MDMsMTIgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0aW9u
TGlzdGVuZXIoKQogICAgIG1fZ2xvYmFsTm90aWZpY2F0aW9uSGFuZGxlciA9IG51bGxwdHI7CiB9
CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxh
dGZvcm1OYW1lKCkgY29uc3QKK3sKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZv
cm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiYXRrIikpOworICAg
IHJldHVybiBwbGF0Zm9ybU5hbWU7Cit9CisKIEF0a09iamVjdCogQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OmNoaWxkRWxlbWVudEJ5SWQoQXRrT2JqZWN0KiBwYXJlbnQsIGNvbnN0IGNoYXIqIGlk
KQogewogICAgIGlmICghQVRLX0lTX09CSkVDVChwYXJlbnQpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDQ1NGY4Y2YuLjdmZTkzZDMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTgzMyw5ICs4MzMsMyBA
QCB2b2lkIFRlc3RSdW5uZXI6OmNsb3NlSWRsZUxvY2FsU3RvcmFnZURhdGFiYXNlcygpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KLQotSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RS
dW5uZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0Ci17Ci0gICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoImVm
bCIpKTsKLSAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDVlMGI5NGIuLmVhNTdkMjMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTEyMiwxMiArMTIyLDYgQEAg
c2l6ZV90IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgICAgICAgICAgd2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgobGlzdCk7CiB9CiAK
LUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKSBjb25z
dAotewotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpT
U3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJndGsiKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3Jt
TmFtZTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpub3RpZnlEb25lKCkKIHsKICAgICBpZiAobV93
YWl0VG9EdW1wICYmICF0b3BMb2FkaW5nRnJhbWUgJiYgIVdvcmtRdWV1ZTo6c2hhcmVkKCktPmNv
dW50KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9pb3MvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJJT1MubW0KaW5kZXggYWM1N2VjYy4uYjJlMjM1NCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvaW9zL0FjY2Vzc2liaWxpdHlDb250cm9sbGVySU9TLm1tCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcklPUy5tbQpA
QCAtMTI1LDQgKzEyNSwxMCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1vdmVO
b3RpZmljYXRpb25MaXN0ZW5lcigpCiB7CiB9CiAKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkgY29uc3QKK3sKKyAgICBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0cmluZ0NyZWF0ZVdp
dGhVVEY4Q1N0cmluZygiaW9zIikpOworICAgIHJldHVybiBwbGF0Zm9ybU5hbWU7Cit9CisKICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0KaW5kZXggOGQ3MmM4YS4uOWE4YjRkZiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlck1hYy5tbQpAQCAtMTQxLDMgKzE0MSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnJlbW92ZU5vdGlmaWNhdGlvbkxpc3RlbmVyKCkKICAgICBBU1NFUlQobV9nbG9iYWxO
b3RpZmljYXRpb25IYW5kbGVyKTsKICAgICBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXIuY2xl
YXIoKTsKIH0KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpwbGF0Zm9ybU5hbWUoKSBjb25zdAoreworICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJtYWMi
KSk7CisgICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggYmY2NzhlMy4uYWQ5ZWRmOSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTI4NSwxMiArMjg1LDYgQEAgc2l6ZV90
IFRlc3RSdW5uZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJldHVybiBbW1tXZWJIaXN0
b3J5IG9wdGlvbmFsU2hhcmVkSGlzdG9yeV0gYWxsSXRlbXNdIGNvdW50XTsKIH0KIAotSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0Ci17Ci0g
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKLSAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwot
fQotCiB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQogewogICAgIGlmIChtX3dhaXRUb0R1
bXAgJiYgIXRvcExvYWRpbmdGcmFtZSAmJiAhV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJXaW4uY3BwCmluZGV4IGQ4Yzg5YjMuLmFiOGY3NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcApAQCAt
Mzg5LDMgKzM4OSw5IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OndpbkFkZE5vdGlm
aWNhdGlvbkxpc3RlbmVyKFBsYXRmb3JtVUlFbGVtZW50IGVsZW1lCiAgICAgSlNWYWx1ZVByb3Rl
Y3QoZnJhbWUtPmdsb2JhbENvbnRleHQoKSwgZnVuY3Rpb25DYWxsYmFjayk7CiAgICAgbV9ub3Rp
ZmljYXRpb25MaXN0ZW5lcnMuYWRkKGVsZW1lbnQsIGZ1bmN0aW9uQ2FsbGJhY2spOwogfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3Jt
TmFtZSgpIGNvbnN0Cit7CisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFt
ZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIpKTsKKyAgICByZXR1
cm4gcGxhdGZvcm1OYW1lOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJX
aW4uY3BwCmluZGV4IDIxNTZjMDMuLmUyNWYxMDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93
aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTE5MiwxMiArMTkyLDYgQEAgc2l6ZV90IFRlc3RSdW5u
ZXI6OndlYkhpc3RvcnlJdGVtQ291bnQoKQogICAgIHJldHVybiBjb3VudDsKIH0KIAotSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6OnBsYXRmb3JtTmFtZSgpIGNvbnN0Ci17Ci0g
ICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIndpbiIpKTsKLSAgICByZXR1cm4gcGxhdGZvcm1OYW1lOwot
fQotCiB2b2lkIFRlc3RSdW5uZXI6Om5vdGlmeURvbmUoKQogewogICAgIC8vIFNhbWUgYXMgb24g
bWFjLiAgVGhpcyBjYW4gYmUgc2hhcmVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCmlu
ZGV4IDBlZGI0Y2EuLjdjZTFhNDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAg
LTQ0LDYgKzQ0LDggQEAgcHVibGljOgogICAgIHZvaWQgbWFrZVdpbmRvd09iamVjdChKU0NvbnRl
eHRSZWYsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKTsK
ICAgICB2aXJ0dWFsIEpTQ2xhc3NSZWYgd3JhcHBlckNsYXNzKCk7CiAgICAgCisgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZSgpOworCiAgICAgLy8gQ29udHJvbGxlciBN
ZXRob2RzIC0gcGxhdGZvcm0taW5kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zLgogICAgIFBhc3NS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gcm9vdEVsZW1lbnQoKTsKICAgICBQYXNzUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IGZvY3VzZWRFbGVtZW50KCk7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCmluZGV4IDU2NjFjMGMuLmJm
N2E2ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aWRsCkBAIC0yNCw2ICsyNCw3IEBACiAgKi8KIAogaW50ZXJmYWNlIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyIHsKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHBsYXRmb3JtTmFtZTsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCByb290RWxlbWVu
dDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBmb2N1c2Vk
RWxlbWVudDsKICAgICBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IGVsZW1lbnRBdFBvaW50KGludCB4
LCBpbnQgeSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAppbmRleCBjMmZmODNhLi5lMjlkYTUx
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRp
bmdzL1Rlc3RSdW5uZXIuaWRsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKQEAgLTE1NSw4ICsxNTUsNiBAQCBpbnRlcmZh
Y2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRQYWdlVmlzaWJpbGl0eShET01TdHJpbmcgc3Rh
dGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0eSgpOwogCi0gICAgcmVhZG9ubHkgYXR0
cmlidXRlIERPTVN0cmluZyBwbGF0Zm9ybU5hbWU7Ci0KICAgICAvLyBDb250cm9sIGZ1bGwgc2Ny
ZWVuIGJlaGF2aW9yLgogICAgIHZvaWQgc2V0SGFzQ3VzdG9tRnVsbFNjcmVlbkJlaGF2aW9yKGJv
b2xlYW4gdmFsdWUpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvVGVzdFJ1bm5lci5oCmluZGV4IDVlZjMyYWUuLmNlZmI2YTUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0yNTcs
OCArMjU3LDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TW9ja0dlb2xvY2F0aW9uUG9zaXRpb24o
ZG91YmxlIGxhdGl0dWRlLCBkb3VibGUgbG9uZ2l0dWRlLCBkb3VibGUgYWNjdXJhY3ksIEpTVmFs
dWVSZWYgYWx0aXR1ZGUsIEpTVmFsdWVSZWYgYWx0aXR1ZGVBY2N1cmFjeSwgSlNWYWx1ZVJlZiBo
ZWFkaW5nLCBKU1ZhbHVlUmVmIHNwZWVkKTsKICAgICB2b2lkIHNldE1vY2tHZW9sb2NhdGlvblBv
c2l0aW9uVW5hdmFpbGFibGVFcnJvcihKU1N0cmluZ1JlZiBtZXNzYWdlKTsKIAotICAgIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoKTsKLQogICAgIHZvaWQgc2V0UGFnZVZp
c2liaWxpdHkoSlNTdHJpbmdSZWYgc3RhdGUpOwogICAgIHZvaWQgcmVzZXRQYWdlVmlzaWJpbGl0
eSgpOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL2F0ay9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlckF0ay5jcHAKaW5k
ZXggYmM2MzA3My4uNGUxMTE1MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9hdGsvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJBdGsuY3BwCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvYXRrL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyQXRrLmNwcApAQCAtMTE0LDYgKzExNCwxMiBAQCBQYXNzUmVmUHRyPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5
SQogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCit7CisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENT
dHJpbmcoImF0ayIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworfQorCiBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyb290RWxl
bWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmplY3RlZEJ1bmRsZTo6c2hh
cmVkKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDk2ODE2MTEu
LjZhOTI2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC04MywxMCArODMsNCBAQCBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0
cmluZ1JlZiB1cmwpCiAgICAgcmV0dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGZ1
bGxQYXRoVG9VcmwudXRmOCgpLmRhdGEoKSk7CiB9CiAKLUpTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKQotewotICAgIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJl
ZmwiKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV1RS
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9U
ZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
Z3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDQyN2NmMmUuLmRmNDA0M2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwCkBAIC03OCwxMCArNzgsNCBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZiB1cmwpCiAgICAgcmV0
dXJuIEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHRlc3RVUkkuZ2V0KCkpOwogfQogCi1K
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGxhdGZvcm1OYW1lKCkKLXsKLSAg
ICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gcGxhdGZvcm1OYW1lKEFkb3B0LCBKU1N0cmluZ0Ny
ZWF0ZVdpdGhVVEY4Q1N0cmluZygiZ3RrIikpOwotICAgIHJldHVybiBwbGF0Zm9ybU5hbWU7Ci19
Ci0KIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJNYWMubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlck1hYy5tbQppbmRleCA4NDczMDQxLi4zNDAzYjcwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlck1h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nl
c3NpYmlsaXR5Q29udHJvbGxlck1hYy5tbQpAQCAtMTEyLDYgKzExMiwxMiBAQCBQYXNzUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3Np
YmxlRWxlbWVudEJ5SQogICAgIHJldHVybiBudWxscHRyOwogfQogCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnBsYXRmb3JtTmFtZSgpCit7CisgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHBsYXRmb3JtTmFtZShBZG9wdCwgSlNTdHJpbmdDcmVh
dGVXaXRoVVRGOENTdHJpbmcoIm1hYyIpKTsKKyAgICByZXR1cm4gcGxhdGZvcm1OYW1lOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXVFIKIAogI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL1Rlc3RS
dW5uZXJNYWMubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9U
ZXN0UnVubmVyTWFjLm1tCmluZGV4IGM5YmYzY2EuLmE5MjQxMTcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQpAQCAtNjAsMTEgKzYwLDUgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5u
ZXI6OnBhdGhUb0xvY2FsUmVzb3VyY2UoSlNTdHJpbmdSZWYgdXJsKQogewogICAgIHJldHVybiBK
U1N0cmluZ1JldGFpbih1cmwpOyAvLyBEbyBub3RoaW5nIG9uIG1hYy4KIH0KLSAgICAKLUpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKQotewotICAgIEpT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJtYWMiKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsKLX0KIAog
fSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDIyNTM5NDIuLjRh
YzZmNGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
d2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC02NCwxMCArNjQsNCBAQCBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmlu
Z1JlZiB1cmwpCiAgICAgcmV0dXJuIEpTU3RyaW5nUmV0YWluKHVybCk7IC8vIFRPRE8uCiB9CiAK
LUpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwbGF0Zm9ybU5hbWUoKQotewot
ICAgIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBwbGF0Zm9ybU5hbWUoQWRvcHQsIEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJ3aW4iKSk7Ci0gICAgcmV0dXJuIHBsYXRmb3JtTmFtZTsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV1RSCi0tIAoxLjcuMTAuNAoK
</data>

          </attachment>
      

    </bug>

</bugzilla>