<?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>132332</bug_id>
          
          <creation_ts>2014-04-29 05:06:03 -0700</creation_ts>
          <short_desc>[CSS Grid Layout] Grid optimization keeping track of its status</short_desc>
          <delta_ts>2014-08-01 07:58:20 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>125145</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>hyatt</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>stavila</cc>
    
    <cc>svillar</cc>
    
    <cc>syoichi</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1004905</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-29 05:06:03 -0700</bug_when>
    <thetext>The following patch is a port of Blink https://chromiumcodereview.appspot.com/21205004

It&apos;s making grid layout perftest around 29% faster.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004906</commentid>
    <comment_count>1</comment_count>
      <attachid>230366</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-04-29 05:08:49 -0700</bug_when>
    <thetext>Created attachment 230366
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011715</commentid>
    <comment_count>2</comment_count>
      <attachid>232075</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 06:53:12 -0700</bug_when>
    <thetext>Created attachment 232075
Patch

Rebased patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1011832</commentid>
    <comment_count>3</comment_count>
      <attachid>232095</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-05-26 13:46:38 -0700</bug_when>
    <thetext>Created attachment 232095
Patch

Fix build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013080</commentid>
    <comment_count>4</comment_count>
      <attachid>232421</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-03 04:18:20 -0700</bug_when>
    <thetext>Created attachment 232421
Patch

Upload rebased patch after r169385.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013088</commentid>
    <comment_count>5</comment_count>
      <attachid>232421</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2014-06-03 06:38:10 -0700</bug_when>
    <thetext>Comment on attachment 232421
Patch

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

&gt; Source/WebCore/rendering/RenderGrid.cpp:1201
&gt; +    // We could avoid to dirty the grid if the new child has definite positions and grid auto-flow property is none.

The original patch from blink contained some additional logic here, it didn&apos;t always just dirty the grid. Is there a reason you removed that?

&gt; Source/WebCore/rendering/RenderGrid.cpp:1219
&gt; +    return nextSibling;

I think it would be clearer and better for future modifications to have a single return point. E.g.:

RenderObject* nextSibling = RenderBlock::removeChild(child);
if (!girdIsDirty())
   dirtyGrid();

return nextSibling;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013128</commentid>
    <comment_count>6</comment_count>
      <attachid>232421</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-03 13:05:31 -0700</bug_when>
    <thetext>Comment on attachment 232421
Patch

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

I&apos;m uploading a new patch changing RenderGrid::removeChild() as suggested.

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:1201
&gt;&gt; +    // We could avoid to dirty the grid if the new child has definite positions and grid auto-flow property is none.
&gt; 
&gt; The original patch from blink contained some additional logic here, it didn&apos;t always just dirty the grid. Is there a reason you removed that?

Basically the patch in Blink was not right, as it was introducing some bugs some of them due to the extra logic added here.

I&apos;ve plans to avoid marking the grid as dirty always, but that will be done in a later step.

&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:1219
&gt;&gt; +    return nextSibling;
&gt; 
&gt; I think it would be clearer and better for future modifications to have a single return point. E.g.:
&gt; 
&gt; RenderObject* nextSibling = RenderBlock::removeChild(child);
&gt; if (!girdIsDirty())
&gt;    dirtyGrid();
&gt; 
&gt; return nextSibling;

Nice suggestion, I&apos;ve modified it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013129</commentid>
    <comment_count>7</comment_count>
      <attachid>232436</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-03 13:06:35 -0700</bug_when>
    <thetext>Created attachment 232436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013158</commentid>
    <comment_count>8</comment_count>
      <attachid>232421</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2014-06-03 15:05:40 -0700</bug_when>
    <thetext>Comment on attachment 232421
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderGrid.cpp:1201
&gt;&gt;&gt; +    // We could avoid to dirty the grid if the new child has definite positions and grid auto-flow property is none.
&gt;&gt; 
&gt;&gt; The original patch from blink contained some additional logic here, it didn&apos;t always just dirty the grid. Is there a reason you removed that?
&gt; 
&gt; Basically the patch in Blink was not right, as it was introducing some bugs some of them due to the extra logic added here.
&gt; 
&gt; I&apos;ve plans to avoid marking the grid as dirty always, but that will be done in a later step.

Ok, sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016418</commentid>
    <comment_count>9</comment_count>
      <attachid>233300</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-06-18 02:04:50 -0700</bug_when>
    <thetext>Created attachment 233300
Patch

New version of the patch including a new change from Blink (https://codereview.chromium.org/302083005).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1026224</commentid>
    <comment_count>10</comment_count>
      <attachid>233300</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2014-08-01 04:23:35 -0700</bug_when>
    <thetext>Comment on attachment 233300
Patch

This is causing some security issues in Blink, so until it gets stabilized we won&apos;t integrate it on WebKit. Probably a new rebase would be needed but that time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230366</attachid>
            <date>2014-04-29 05:08:49 -0700</date>
            <delta_ts>2014-05-26 06:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140429140826.patch</filename>
            <type>text/plain</type>
            <size>21919</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3ODgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmM0NzQ5ZWZhYjJmY2Ri
NDQ0MDY5MDhjNjg1NWE1NDA5ZTJhYTQ0MC4uZDQxNmJmMWM4NmUwYjEwOGYwZTE3MzEzN2UyMDgx
YjA3YjdiYzZlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTI5ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3
aGVuZXZlciBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcworICAgICAgICBn
cmlkIGxheW91dCBwZXJmIHRlc3RzIHRvIHJ1biBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAg
ICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2ZQorICAg
ICAgICB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkIGl0ZW1zIGFkaXR0aW9uLCByZW1v
dmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8t
Zmxvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdyaWQgaWYg
bmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9zaXRpb25B
ZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5LgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMpOiBEbyBub3Qg
bmVlZCB0byBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYgZ3JpZCBpcyBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQg
Y2xlYXIgaXQuIFJlbmFtZWQgZnJvbSBjbGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcyBk
aXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlk
IGFzIGRpcnR5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFy
ayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZERpZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25E
aWRDaGFuZ2UpOiBDaGVja3MgaWYgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBuZXcg
bWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzIHNpZ25hdHVyZXMuCisKIDIwMTQt
MDQtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIFVwZGF0ZSBHT2JqZWN0IERPTSBiaW5kaW5ncyBzeW1ib2xzIGZpbGUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IDQxZjc5MWFiMTg4OWVh
ODM5YzI4MTJlNTU1M2U5YjE5MzFlZWM0ZTUuLjRmOTQ0M2M0MmUzZTNjZTg2MDNkZDRiYzYzNjZi
NzcxYWZmZGMwZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00
OCw2ICs0OCw5IEBACiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJS
ZW5kZXJJbmxpbmUuaCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgorI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2VuZGlmCiAjaW5jbHVk
ZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNp
bmNsdWRlICJSZW5kZXJOYW1lZEZsb3dGcmFnbWVudC5oIgpAQCAtMzgwLDggKzM4MywzMSBAQCB2
b2lkIFJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIGlmICgob2xkU3R5bGUgJiYgb2xkU3R5bGUtPnNo
YXBlT3V0c2lkZSgpKSB8fCBzdHlsZSgpLnNoYXBlT3V0c2lkZSgpKQogICAgICAgICB1cGRhdGVT
aGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLCBvbGRTdHlsZSk7CiAjZW5k
aWYKKworI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdXBkYXRlR3JpZFBvc2l0aW9u
QWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLCBvbGRTdHlsZSk7CisjZW5kaWYKIH0KIAorI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCit2b2lkIFJlbmRlckJveDo6dXBkYXRlR3JpZFBvc2l0aW9u
QWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0
eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBpZiAoIW9sZFN0eWxlIHx8ICFwYXJlbnQoKSB8fCAhcGFy
ZW50KCktPmlzUmVuZGVyR3JpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAob2xkU3R5
bGUtPmdyaWRJdGVtQ29sdW1uU3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkK
KyAgICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtQ29sdW1uRW5kKCkgPT0gc3R5bGUuZ3JpZEl0
ZW1Db2x1bW5FbmQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+Z3JpZEl0ZW1Sb3dTdGFydCgpID09
IHN0eWxlLmdyaWRJdGVtUm93U3RhcnQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+Z3JpZEl0ZW1S
b3dFbmQoKSA9PSBzdHlsZS5ncmlkSXRlbVJvd0VuZCgpCisgICAgICAgICYmIG9sZFN0eWxlLT5v
cmRlcigpID09IHN0eWxlLm9yZGVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEl0IHNo
b3VsZCBiZSBwb3NzaWJsZSB0byBub3QgZGlydHkgdGhlIGdyaWQgaW4gc29tZSBjYXNlcyAobGlr
ZSBtb3ZpbmcgYW4gZXhwbGljaXRseSBwbGFjZWQgZ3JpZCBpdGVtKS4KKyAgICAvLyBGb3Igbm93
LCBpdCdzIG1vcmUgc2ltcGxlIHRvIGp1c3QgYWx3YXlzIHJlY29tcHV0ZSB0aGUgZ3JpZC4KKyAg
ICB0b1JlbmRlckdyaWQocGFyZW50KCkpLT5kaXJ0eUdyaWQoKTsKK30KKyNlbmRpZgorCiAjaWYg
RU5BQkxFKENTU19TSEFQRVMpCiB2b2lkIFJlbmRlckJveDo6dXBkYXRlU2hhcGVPdXRzaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJT
dHlsZSogb2xkU3R5bGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXgg
Mjk4ZDA5MTY4MTcxYmU4MzZhYzQwM2RkMWFjMDJjMzQ1YzY0ZTNhNi4uZWY1YjMzMjc0OGEyNDdm
MTUyZDEyNWViZDUyN2Q1ODZiZjU1YThiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaApAQCAtNjU1LDYgKzY1NSw5IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJPYmplY3QqIHNw
bGl0QW5vbnltb3VzQm94ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsK
ICAKIHByaXZhdGU6CisjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICB2b2lkIHVwZGF0
ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpOworI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAg
ICAgdm9pZCB1cGRhdGVTaGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5k
ZXJTdHlsZSYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCAxM2FlNDgzZjRmNjFkMWE3MDAyOWVj
MDI0ZTZmMjA4MTg1ZDliOGVkLi45NDExYzdkMjhiNTFjZDVlOGI0N2MzZTgwMjNhNGY0MjYxMmVi
Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0xNjQsNiAr
MTY0LDcgQEAgcHVibGljOgogCiBSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKEVsZW1lbnQmIGVsZW1l
bnQsIFBhc3NSZWY8UmVuZGVyU3R5bGU+IHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2soZWxlbWVu
dCwgc3RkOjptb3ZlKHN0eWxlKSwgMCkKKyAgICAsIG1fZ3JpZElzRGlydHkodHJ1ZSkKIHsKICAg
ICAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2sgbGV2ZWwuCiAgICAgc2V0Q2hp
bGRyZW5JbmxpbmUoZmFsc2UpOwpAQCAtMjM0LDggKzIzNSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6
Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRo
LCBMYXlvCiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGFkZCBpbiB0aGUgc2Nyb2xs
YmFyV2lkdGggKGUuZy4gc2VlIFJlbmRlckZsZXhpYmxlQm94KS4KICAgICB9Ci0KLSAgICBjb25z
dF9jYXN0PFJlbmRlckdyaWQqPih0aGlzKS0+Y2xlYXJHcmlkKCk7CiB9CiAKIHZvaWQgUmVuZGVy
R3JpZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKQpAQCAtNjU4LDExICs2NTcsMTUg
QEAgdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwg
c2l6ZV90IHJvd1RyYWNrLCBzaXplX3QgY28KIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1z
T25HcmlkKCkKIHsKLSAgICBBU1NFUlQoIWdyaWRXYXNQb3B1bGF0ZWQoKSk7Ci0gICAgQVNTRVJU
KG1fZ3JpZEl0ZW1Db29yZGluYXRlLmlzRW1wdHkoKSk7CisgICAgaWYgKCFncmlkSXNEaXJ0eSgp
KQorICAgICAgICByZXR1cm47CiAKICAgICBwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRl
cmF0b3IoKTsKIAorICAgIC8vIFdlIGNsZWFyIHRoZSBkaXJ0eSBiaXQgaGVyZSBhcyB0aGUgZ3Jp
ZCBzaXplcyBoYXZlIGJlZW4gdXBkYXRlZCwgdGhpcyBtZWFucworICAgIC8vIHRoYXQgd2UgY2Fu
IHNhZmVseSBjYWxsIGdyaWRSb3dDb3VudCgpIC8gZ3JpZENvbHVtbkNvdW50KCkuCisgICAgbV9n
cmlkSXNEaXJ0eSA9IGZhbHNlOworCiAgICAgVmVjdG9yPFJlbmRlckJveCo+IGF1dG9NYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOwogICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4
aXNBdXRvR3JpZEl0ZW1zOwogICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCkuZ3Jp
ZEF1dG9GbG93KCk7CkBAIC02OTQsNiArNjk3LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0
ZW1zT25HcmlkKCkKIAogICAgIHBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoc3Bl
Y2lmaWVkTWFqb3JBeGlzQXV0b0dyaWRJdGVtcyk7CiAgICAgcGxhY2VBdXRvTWFqb3JBeGlzSXRl
bXNPbkdyaWQoYXV0b01ham9yQXhpc0F1dG9HcmlkSXRlbXMpOworCisgICAgbV9ncmlkLnNocmlu
a1RvRml0KCk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRP
cmRlckl0ZXJhdG9yKCkKQEAgLTc4OSwxMCArNzk0LDExIEBAIFJlbmRlckdyaWQ6OkdyaWRUcmFj
a1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0
aW9uCiAgICAgcmV0dXJuIChmbG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JD
b2x1bW5zOwogfQogCi12b2lkIFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCit2b2lkIFJlbmRlckdy
aWQ6OmRpcnR5R3JpZCgpCiB7Ci0gICAgbV9ncmlkLmNsZWFyKCk7CisgICAgbV9ncmlkLnJlc2l6
ZSgwKTsKICAgICBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5jbGVhcigpOworICAgIG1fZ3JpZElzRGly
dHkgPSB0cnVlOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC04
NDIsNyArODQ4LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogCiAgICAg
Ly8gbWluIC8gbWF4IGxvZ2ljYWwgaGVpZ2h0IGlzIGhhbmRsZWQgaW4gdXBkYXRlTG9naWNhbEhl
aWdodCgpLgogICAgIHNldExvZ2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgYm9yZGVyQW5k
UGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgY2xlYXJHcmlkKCk7CiB9CiAKIEdyaWRDb29y
ZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCog
Z3JpZEl0ZW0pIGNvbnN0CkBAIC0xMTg2LDYgKzExOTEsNjIgQEAgY29uc3QgY2hhciogUmVuZGVy
R3JpZDo6cmVuZGVyTmFtZSgpIGNvbnN0CiAgICAgcmV0dXJuICJSZW5kZXJHcmlkIjsKIH0KIAor
dm9pZCBSZW5kZXJHcmlkOjphZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJP
YmplY3QqIGJlZm9yZUNoaWxkKQoreworICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChuZXdDaGls
ZCwgYmVmb3JlQ2hpbGQpOworCisgICAgaWYgKGdyaWRJc0RpcnR5KCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFdlIGNvdWxkIGF2b2lkIHRvIGRpcnR5IHRoZSBncmlkIGlmIHRoZSBuZXcg
Y2hpbGQgaGFzIGRlZmluaXRlIHBvc2l0aW9ucyBhbmQgZ3JpZCBhdXRvLWZsb3cgcHJvcGVydHkg
aXMgbm9uZS4KKyAgICAvLyBJbiB0aGF0IGNhc2Ugd2Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSBtX29y
ZGVySXRlcmF0b3IgbWFudWFsbHkgYWRkaW5nIHRoZSBjaGlsZCB3aXRoIHRoZSBwcm9wZXIgaW5k
ZXggYW5kIHVwZGF0aW5nCisgICAgLy8gdGhlIHNpYmxpbmcgaW5kZXhlcyBpZiBuZWVkZWQuCisg
ICAgZGlydHlHcmlkKCk7Cit9CisKK3ZvaWQgUmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQoUmVuZGVy
T2JqZWN0JiBjaGlsZCkKK3sKKyAgICBSZW5kZXJCbG9jazo6cmVtb3ZlQ2hpbGQoY2hpbGQpOwor
CisgICAgaWYgKGdyaWRJc0RpcnR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIGNv
dWxkIGF2b2lkIHRvIGRpcnR5IHRoZSBncmlkIGlmIGdyaWQgYXV0by1mbG93IHByb3BlcnR5IGlz
IG5vbmUuCisgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHdpbGwgbmVlZCB0byB1cGRhdGUgbV9vcmRl
ckl0ZXJhdG9yIG1hbnVhbGx5IHJlbW92aW5nIHRoZSBjaGlsZCBhbmQgdXBkYXRpbmcgdGhlIHNp
YmxpbmcgaW5kZXhlcworICAgIC8vIGlmIG5lZWRlZC4KKyAgICBkaXJ0eUdyaWQoKTsKK30KKwor
dm9pZCBSZW5kZXJHcmlkOjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAgIFJlbmRlckJsb2NrOjpzdHlsZURpZENo
YW5nZShkaWZmLCBvbGRTdHlsZSk7CisgICAgaWYgKCFvbGRTdHlsZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gVGhlIGZvbGxvd2luZyBjaGVja3MgY291bGQgYmUgbmFycm93ZWQgZG93biBp
ZiB3ZSBrZXB0IHRyYWNrIG9mIHdoaWNoIHR5cGUgb2YgZ3JpZCBpdGVtcyB3ZSBoYXZlOgorICAg
IC8vIC0gZXhwbGljaXQgZ3JpZCBzaXplIGNoYW5nZXMgaW1wYWN0IG5lZ2F0aXZlIGV4cGxpY2l0
bHkgcG9zaXRpb25lZCBhbmQgYXV0by1wbGFjZWQgZ3JpZCBpdGVtcy4KKyAgICAvLyAtIG5hbWVk
IGdyaWQgbGluZXMgb25seSBpbXBhY3QgZ3JpZCBpdGVtcyB3aXRoIG5hbWVkIGdyaWQgbGluZXMu
CisgICAgLy8gLSBhdXRvLWZsb3cgY2hhbmdlcyBvbmx5IGltcGFjdHMgYXV0by1wbGFjZWQgY2hp
bGRyZW4uCisKKyAgICBpZiAoZXhwbGljaXRHcmlkRGlkUmVzaXplKG9sZFN0eWxlKQorICAgICAg
ICB8fCBuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFuZ2Uob2xkU3R5bGUpCisgICAgICAg
IHx8IG9sZFN0eWxlLT5ncmlkQXV0b0Zsb3coKSAhPSBzdHlsZSgpLmdyaWRBdXRvRmxvdygpKQor
ICAgICAgICBkaXJ0eUdyaWQoKTsKK30KKworYm9vbCBSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWRE
aWRSZXNpemUoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBjb25zdAoreworICAgIHJldHVy
biBvbGRTdHlsZS0+Z3JpZENvbHVtbnMoKS5zaXplKCkgIT0gc3R5bGUoKS5ncmlkQ29sdW1ucygp
LnNpemUoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Z3JpZFJvd3MoKS5zaXplKCkgIT0gc3R5bGUo
KS5ncmlkUm93cygpLnNpemUoKTsKK30KKworYm9vbCBSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5l
c0RlZmluaXRpb25EaWRDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBjb25zdAor
eworICAgIHJldHVybiBvbGRTdHlsZS0+bmFtZWRHcmlkUm93TGluZXMoKSAhPSBzdHlsZSgpLm5h
bWVkR3JpZFJvd0xpbmVzKCkKKyAgICAgICAgfHwgb2xkU3R5bGUtPm5hbWVkR3JpZENvbHVtbkxp
bmVzKCkgIT0gc3R5bGUoKS5uYW1lZEdyaWRDb2x1bW5MaW5lcygpOworfQorCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8qIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpICovCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaAppbmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4
ZWQ3YTYxODM4NjE2NTA0MDJiZTQ3Li5iNmE3N2M5ZTMwNjEzMGJkODMyMzRmZjE2Mzk3YzAwMTdk
NzM2YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTU4LDYgKzU4
LDggQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgY29sdW1uUG9zaXRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5Qb3NpdGlvbnM7IH0KICAgICBjb25zdCBWZWN0
b3I8TGF5b3V0VW5pdD4mIHJvd1Bvc2l0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcm93UG9zaXRp
b25zOyB9CiAKKyAgICB2b2lkIGRpcnR5R3JpZCgpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
Y29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9v
bCBpc1JlbmRlckdyaWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjcs
MjEgKzEyOSwzMSBAQCBwcml2YXRlOgogCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgdHJhY2tz
QXJlV2lkZXJUaGFuTWluVHJhY2tCcmVhZHRoKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29u
c3QgVmVjdG9yPEdyaWRUcmFjaz4mKTsKLSAgICBib29sIGdyaWRXYXNQb3B1bGF0ZWQoKSBjb25z
dCB7IHJldHVybiAhbV9ncmlkLmlzRW1wdHkoKSAmJiAhbV9ncmlkWzBdLmlzRW1wdHkoKTsgfQog
I2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
dm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikg
b3ZlcnJpZGU7CisKKyAgICBib29sIGV4cGxpY2l0R3JpZERpZFJlc2l6ZShjb25zdCBSZW5kZXJT
dHlsZSopIGNvbnN0OworICAgIGJvb2wgbmFtZWRHcmlkTGluZXNEZWZpbml0aW9uRGlkQ2hhbmdl
KGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CisKKyAgICBib29sIGdyaWRJc0RpcnR5KCkgY29u
c3QgeyByZXR1cm4gbV9ncmlkSXNEaXJ0eTsgfQorCiAgICAgc2l6ZV90IGdyaWRDb2x1bW5Db3Vu
dCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoZ3JpZFdhc1BvcHVsYXRlZCgpKTsKKyAg
ICAgICAgQVNTRVJUKCFncmlkSXNEaXJ0eSgpKTsKICAgICAgICAgcmV0dXJuIG1fZ3JpZFswXS5z
aXplKCk7CiAgICAgfQogICAgIHNpemVfdCBncmlkUm93Q291bnQoKSBjb25zdAogICAgIHsKLSAg
ICAgICAgQVNTRVJUKGdyaWRXYXNQb3B1bGF0ZWQoKSk7CisgICAgICAgIEFTU0VSVCghZ3JpZElz
RGlydHkoKSk7CiAgICAgICAgIHJldHVybiBtX2dyaWQuc2l6ZSgpOwogICAgIH0KIAogICAgIFZl
Y3RvcjxWZWN0b3I8VmVjdG9yPFJlbmRlckJveCosIDE+Pj4gbV9ncmlkOworICAgIGJvb2wgbV9n
cmlkSXNEaXJ0eTsKICAgICBWZWN0b3I8TGF5b3V0VW5pdD4gbV9jb2x1bW5Qb3NpdGlvbnM7CiAg
ICAgVmVjdG9yPExheW91dFVuaXQ+IG1fcm93UG9zaXRpb25zOwogICAgIEhhc2hNYXA8Y29uc3Qg
UmVuZGVyQm94KiwgR3JpZENvb3JkaW5hdGU+IG1fZ3JpZEl0ZW1Db29yZGluYXRlOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGFmNzkzZGZhZTM1MzNjM2QzNTBlMTVmNmRhM2Q4ODVmMmE5YmFhZTYuLjQyNGMxZDU3ZTdmMTRk
ZDk4YzQwMWI5NGQzNDg2NTVkYjQyMzZkMWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0w
NC0yOSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAg
ICBbQ1NTIEdyaWQgTGF5b3V0XSBHcmlkIG9wdGltaXphdGlvbiBrZWVwaW5nIHRyYWNrIG9mIGl0
cyBzdGF0dXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEzMjMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEZyb20gQmxpbmsgcjE1NTI2MiBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgTmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUte3Jv
d3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5n
ZS1vcmRlci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sOiBBZGRl
ZC4KKwogMjAxNC0wNC0yNyAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KIAogICAg
ICAgICBTdG9yZSB0aGUgY29udGFpbmluZyByZWdpb24gbWFwIGluc2lkZSB0aGUgZmxvdyB0aHJl
YWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2Ut
ZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1
ODRhNjE1NjdiNTVkZjM1MmU2Mjg2MmI0YTIzNTdhNThiOGRhOGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2Ut
ZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBA
QAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1uc30gZHlu
YW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBs
YWNlZCBncmlkIGl0ZW1zLgorUEFTUworUEFTUworUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxp
Y2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlk
LWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hp
bGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MzU1NjVmMmMxODMyYmFjNWYyMTc2Nzc2YTM0MWRhYzA2NWI0
OTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLmh0bWwK
QEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVy
ZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiLCAxKTsKKzwvc2NyaXB0PgorPGxpbmsg
aHJlZj0icmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorLmdy
aWQgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IHJvdzsKK30KKyNmaXJzdEdyaWRJdGVt
IHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46
IDE7Cit9CisKKyNzZWNvbmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMTsKKyAg
ICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorCisjdGhpcmRHcmlkSXRlbSB7CisgICAg
LXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOwor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3JpZERlZmluaXRpb25zKGdyaWRU
ZW1wbGF0ZVJvd3MsIGdyaWRUZW1wbGF0ZUNvbHVtbnMsIGZpcnN0R3JpZEl0ZW1EYXRhLCBzZWNv
bmRHcmlkSXRlbURhdGEsIHRoaXJkR3JpZEl0ZW1EYXRhKQoreworICAgIHZhciBncmlkRWxlbWVu
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImdyaWQiKVswXTsKKyAgICBncmlk
RWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVtcGxhdGVSb3dzID0gZ3JpZFRlbXBsYXRlUm93czsK
KyAgICBncmlkRWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVtcGxhdGVDb2x1bW5zID0gZ3JpZFRl
bXBsYXRlQ29sdW1uczsKKworICAgIHZhciBmaXJzdEdyaWRJdGVtID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImZpcnN0R3JpZEl0ZW0iKTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0
ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBm
aXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBmaXJzdEdy
aWRJdGVtRGF0YS5oZWlnaHQpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRh
LW9mZnNldC14IiwgZmlyc3RHcmlkSXRlbURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRB
dHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZh
ciBzZWNvbmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRHcmlkSXRl
bSIpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0
aCIsIHNlY29uZEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0
cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHNlY29uZEdyaWRJdGVtRGF0YS5oZWlnaHQp
OworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHNlY29u
ZEdyaWRJdGVtRGF0YS54KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEt
b2Zmc2V0LXkiLCBzZWNvbmRHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgdGhpcmRHcmlkSXRl
bSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGlyZEdyaWRJdGVtIik7CisgICAgdGhpcmRH
cmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCB0aGlyZEdyaWRJdGVt
RGF0YS53aWR0aCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0
ZWQtaGVpZ2h0IiwgdGhpcmRHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICB0aGlyZEdyaWRJdGVt
LnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHRoaXJkR3JpZEl0ZW1EYXRhLngpOworICAg
IHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15IiwgdGhpcmRHcmlkSXRl
bURhdGEueSk7CisKKyAgICBjaGVja0xheW91dCgiLmdyaWQiKTsKK30KKworZnVuY3Rpb24gdGVz
dENoYW5naW5nR3JpZERlZmluaXRpb25zKCkKK3sKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCcx
MHB4IDIwcHgnLCAnMTBweCcsCisgICAgICAgIHsgJ3dpZHRoJzogJzEwJywgJ2hlaWdodCc6ICcy
MCcsICd4JzogJzAnLCAneSc6ICcxMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnMTAnLCAnaGVp
Z2h0JzogJzEwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzEw
JywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzMwJyB9KTsKKyAgICB0ZXN0R3JpZERl
ZmluaXRpb25zKCc1MHB4JywgJzMwcHggNDBweCcsCisgICAgICAgIHsgJ3dpZHRoJzogJzMwJywg
J2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3aWR0aCc6
ICczMCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAn
d2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMzAnLCAneSc6ICcwJyB9KTsKKyAg
ICB0ZXN0R3JpZERlZmluaXRpb25zKCc1MHB4JywgJzYwcHgnLAorICAgICAgICB7ICd3aWR0aCc6
ICc2MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAn
d2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAg
ICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9
KTsKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCc1MHB4IDEwMHB4IDE1MHB4JywgJzYwcHgnLAor
ICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5Jzog
JzUwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcw
JywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzE1MCcs
ICd4JzogJzAnLCAneSc6ICcxNTAnIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHRlc3RDaGFuZ2luZ0dyaWREZWZpbml0aW9ucywgZmFsc2UpOworPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBv
ZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBncmlkIGl0ZW1zLjwvZGl2PgorCis8ZGl2IHN0eWxlPSJw
b3NpdGlvbjogcmVsYXRpdmUiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQiPgorICAgICAgICA8ZGl2
IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJmaXJzdEdyaWRJdGVtIj48L2Rpdj4KKyAgICAg
ICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0ic2Vjb25kR3JpZEl0ZW0iPjwvZGl2
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJ0aGlyZEdyaWRJdGVt
Ij48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9y
ZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMGYwODlkNmE0NTM1MDRkMzJlYWMwZDdlYmJhMmQ2NDEyODVkOGM5NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFu
Z2Utb3JkZXItYXV0by1mbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVz
dCBjaGVja3MgdGhhdCBncmlkIGl0ZW1zJyAnb3JkZXInIGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1
dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVtcy4KK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxv
dy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQ5NTU0YWVhZjk2Mzk2ZGFiZTAxYTMwNzljYzY5ODc4N2M4OWI3
OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9n
cmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRM
YXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlk
LmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hl
Y2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0LWdy
aWQtYXV0by1mbG93OiByb3c7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3M6IDUwcHgg
MTAwcHg7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHg7Cit9CisKKyNm
aXJzdEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13ZWJraXQt
Z3JpZC1jb2x1bW46IDE7Cit9CisKKyNzZWNvbmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlk
LXJvdzogMTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorCisjdGhpcmRHcmlk
SXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29s
dW1uOiBhdXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3JpZEl0ZW1z
T3JkZXIoZmlyc3RHcmlkSXRlbURhdGEsIHNlY29uZEdyaWRJdGVtRGF0YSwgdGhpcmRHcmlkSXRl
bURhdGEpCit7CisgICAgdmFyIGZpcnN0R3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZmlyc3RHcmlkSXRlbSIpOworICAgIGZpcnN0R3JpZEl0ZW0uc3R5bGUud2Via2l0T3JkZXIg
PSBmaXJzdEdyaWRJdGVtRGF0YS5vcmRlcjsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0
ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBm
aXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBmaXJzdEdy
aWRJdGVtRGF0YS5oZWlnaHQpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRh
LW9mZnNldC14IiwgZmlyc3RHcmlkSXRlbURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRB
dHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZh
ciBzZWNvbmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRHcmlkSXRl
bSIpOworICAgIHNlY29uZEdyaWRJdGVtLnN0eWxlLndlYmtpdE9yZGVyID0gc2Vjb25kR3JpZEl0
ZW1EYXRhLm9yZGVyOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBl
Y3RlZC13aWR0aCIsIHNlY29uZEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgc2Vjb25kR3JpZEl0
ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHNlY29uZEdyaWRJdGVtRGF0
YS5oZWlnaHQpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQt
eCIsIHNlY29uZEdyaWRJdGVtRGF0YS54KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1
dGUoImRhdGEtb2Zmc2V0LXkiLCBzZWNvbmRHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgdGhp
cmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGlyZEdyaWRJdGVtIik7Cisg
ICAgdGhpcmRHcmlkSXRlbS5zdHlsZS53ZWJraXRPcmRlciA9IHRoaXJkR3JpZEl0ZW1EYXRhLm9y
ZGVyOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRo
IiwgdGhpcmRHcmlkSXRlbURhdGEud2lkdGgpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmli
dXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHRoaXJkR3JpZEl0ZW1EYXRhLmhlaWdodCk7Cisg
ICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCB0aGlyZEdyaWRJ
dGVtRGF0YS54KTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQt
eSIsIHRoaXJkR3JpZEl0ZW1EYXRhLnkpOworCisgICAgY2hlY2tMYXlvdXQoIi5ncmlkIik7Cit9
CisKK2Z1bmN0aW9uIHRlc3RDaGFuZ2luZ0dyaWRJdGVtc09yZGVyKCkKK3sKKyAgICB0ZXN0R3Jp
ZEl0ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVp
Z2h0JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAn
MCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwK
KyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4
JzogJzAnLCAneSc6ICcxNTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAgICAgICAg
eyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcs
ICd5JzogJzUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICctMScsICd3aWR0aCc6ICc0MCcsICdo
ZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAn
MCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0p
OworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAgICAgICAgeyAnb3JkZXInOiAnMScsICd3aWR0
aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0sCisgICAgICAg
IHsgJ29yZGVyJzogJy0xJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzAn
LCAneSc6ICcwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICcwJywgJ3dpZHRoJzogJzQwJywgJ2hl
aWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNP
cmRlcigKKyAgICAgICAgeyAnb3JkZXInOiAnMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAn
MTAwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICctMScsICd3
aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAg
ICAgeyAnb3JkZXInOiAnMTAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcw
JywgJ3knOiAnMTUwJyB9KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0
ZXN0Q2hhbmdpbmdHcmlkSXRlbXNPcmRlciwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQgaXRlbXMnICdvcmRlcicgZHlu
YW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBs
YWNlZCBncmlkIGl0ZW1zLjwvZGl2PgorCis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUi
PgorICAgIDxkaXYgY2xhc3M9ImdyaWQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3Jp
ZEFyZWEiIGlkPSJmaXJzdEdyaWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6
ZWRUb0dyaWRBcmVhIiBpZD0ic2Vjb25kR3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8ZGl2IGNs
YXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJ0aGlyZEdyaWRJdGVtIj48L2Rpdj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232075</attachid>
            <date>2014-05-26 06:53:12 -0700</date>
            <delta_ts>2014-05-26 13:46:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140526155247.patch</filename>
            <type>text/plain</type>
            <size>22009</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhZjZlZGJiMGMzMGM2
NGFkODlkODUyMTFhNzZjODkyMDY5ZjFlNi4uOWQ3NzdhMWRkZWI1ZmM2YzgzOWFiODI3ZTNjOWNl
MDk2ZTkwMTFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTI5ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3
aGVuZXZlciBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcworICAgICAgICBn
cmlkIGxheW91dCBwZXJmIHRlc3RzIHRvIHJ1biBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAg
ICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2ZQorICAg
ICAgICB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkIGl0ZW1zIGFkaXR0aW9uLCByZW1v
dmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8t
Zmxvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdyaWQgaWYg
bmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9zaXRpb25B
ZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5LgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMpOiBEbyBub3Qg
bmVlZCB0byBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYgZ3JpZCBpcyBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQg
Y2xlYXIgaXQuIFJlbmFtZWQgZnJvbSBjbGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcyBk
aXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlk
IGFzIGRpcnR5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFy
ayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZERpZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25E
aWRDaGFuZ2UpOiBDaGVja3MgaWYgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBuZXcg
bWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzIHNpZ25hdHVyZXMuCisKIDIwMTQt
MDUtMjYgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBJbnB1dCBmaWVsZHMgYW5kIHRleHQgYXJlYXMgYXJlIG5vdCByZW5k
ZXJlZCBjb3JyZWN0bHkgYWZ0ZXIgcjE2Nzc3MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCAyYzJhMzRhODQxNTExYWU2MzFjMGNmNzkxMGJhZWUyNzNlYTA1N2U1Li4w
ZmMxZmMwZTA2YWNlMTYyMjExM2U1YmUyYWQ4MDZhNmMxZDU3ZjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDgsNiArNDgsOSBAQAogI2luY2x1ZGUgIlJlbmRl
ckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySXRlcmF0b3IuaCIKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorI2luY2x1ZGUgIlJl
bmRlckdyaWQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQuaCIKQEAgLTQwMCw3ICs0MDMsMzAgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICBp
ZiAoKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5zaGFwZU91dHNpZGUoKSkgfHwgc3R5bGUoKS5zaGFw
ZU91dHNpZGUoKSkKICAgICAgICAgdXBkYXRlU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFu
Z2Uoc3R5bGUoKSwgb2xkU3R5bGUpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZ
T1VUKQorICAgIHVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKSwgb2xk
U3R5bGUpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQordm9pZCBS
ZW5kZXJCb3g6OnVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgaWYgKCFv
bGRTdHlsZSB8fCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pc1JlbmRlckdyaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG9sZFN0eWxlLT5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgPT0g
c3R5bGUuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpCisgICAgICAgICYmIG9sZFN0eWxlLT5ncmlkSXRl
bUNvbHVtbkVuZCgpID09IHN0eWxlLmdyaWRJdGVtQ29sdW1uRW5kKCkKKyAgICAgICAgJiYgb2xk
U3R5bGUtPmdyaWRJdGVtUm93U3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRlbVJvd1N0YXJ0KCkKKyAg
ICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93RW5kKCkgPT0gc3R5bGUuZ3JpZEl0ZW1Sb3dF
bmQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+b3JkZXIoKSA9PSBzdHlsZS5vcmRlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gbm90IGRpcnR5
IHRoZSBncmlkIGluIHNvbWUgY2FzZXMgKGxpa2UgbW92aW5nIGFuIGV4cGxpY2l0bHkgcGxhY2Vk
IGdyaWQgaXRlbSkuCisgICAgLy8gRm9yIG5vdywgaXQncyBtb3JlIHNpbXBsZSB0byBqdXN0IGFs
d2F5cyByZWNvbXB1dGUgdGhlIGdyaWQuCisgICAgdG9SZW5kZXJHcmlkKHBhcmVudCgpKS0+ZGly
dHlHcmlkKCk7CiB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogdm9pZCBSZW5k
ZXJCb3g6OnVwZGF0ZVNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDg0MDg1ZWZhOTJjNTNjNzdmZTVjNzk4ZGU4NWEwNDFh
OGFlODI0ODAuLjNlZmM3ZDZmNzZkNjU2ZGRmZTNlMWU2NDE3MDA5Y2YyNGJkMTJhM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY1Nyw2ICs2NTcsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgUmVuZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAgCiBwcml2YXRlOgorI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCisgICAgdm9pZCB1cGRhdGVHcmlkUG9zaXRpb25BZnRlclN0eWxlQ2hhbmdlKGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKyNlbmRpZgog
I2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQgdXBkYXRlU2hhcGVPdXRzaWRlSW5mb0Fm
dGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5k
ZXggZGEzNmMyOTU3MjcyMmQ4OTQyZTg3NDViM2Q2ZTU2ZGY5ZTkxMTUzYS4uZTNlZjZmYTc1Njcx
MzMwNGZiMmEzYzk4YTZjOGU1YjY1NzQ4N2Y1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcApAQCAtMTY0LDYgKzE2NCw3IEBAIHB1YmxpYzoKIFJlbmRlckdyaWQ6OlJl
bmRlckdyaWQoRWxlbWVudCYgZWxlbWVudCwgUGFzc1JlZjxSZW5kZXJTdHlsZT4gc3R5bGUpCiAg
ICAgOiBSZW5kZXJCbG9jayhlbGVtZW50LCBzdGQ6Om1vdmUoc3R5bGUpLCAwKQogICAgICwgbV9v
cmRlckl0ZXJhdG9yKCp0aGlzKQorICAgICwgbV9ncmlkSXNEaXJ0eSh0cnVlKQogewogICAgIC8v
IEFsbCBvZiBvdXIgY2hpbGRyZW4gbXVzdCBiZSBibG9jayBsZXZlbC4KICAgICBzZXRDaGlsZHJl
bklubGluZShmYWxzZSk7CkBAIC0yMzQsOCArMjM1LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpjb21w
dXRlSW50cmluc2ljTG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExh
eW8KIAogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWRkIGluIHRoZSBzY3JvbGxiYXJX
aWR0aCAoZS5nLiBzZWUgUmVuZGVyRmxleGlibGVCb3gpLgogICAgIH0KLQotICAgIGNvbnN0X2Nh
c3Q8UmVuZGVyR3JpZCo+KHRoaXMpLT5jbGVhckdyaWQoKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlk
Ojpjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpCkBAIC02NTgsMTEgKzY1NywxNSBAQCB2
b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBzaXpl
X3Qgcm93VHJhY2ssIHNpemVfdCBjbwogCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdy
aWQoKQogewotICAgIEFTU0VSVCghZ3JpZFdhc1BvcHVsYXRlZCgpKTsKLSAgICBBU1NFUlQobV9n
cmlkSXRlbUNvb3JkaW5hdGUuaXNFbXB0eSgpKTsKKyAgICBpZiAoIWdyaWRJc0RpcnR5KCkpCisg
ICAgICAgIHJldHVybjsKIAogICAgIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRv
cigpOwogCisgICAgLy8gV2UgY2xlYXIgdGhlIGRpcnR5IGJpdCBoZXJlIGFzIHRoZSBncmlkIHNp
emVzIGhhdmUgYmVlbiB1cGRhdGVkLCB0aGlzIG1lYW5zCisgICAgLy8gdGhhdCB3ZSBjYW4gc2Fm
ZWx5IGNhbGwgZ3JpZFJvd0NvdW50KCkgLyBncmlkQ29sdW1uQ291bnQoKS4KKyAgICBtX2dyaWRJ
c0RpcnR5ID0gZmFsc2U7CisKICAgICBWZWN0b3I8UmVuZGVyQm94Kj4gYXV0b01ham9yQXhpc0F1
dG9HcmlkSXRlbXM7CiAgICAgVmVjdG9yPFJlbmRlckJveCo+IHNwZWNpZmllZE1ham9yQXhpc0F1
dG9HcmlkSXRlbXM7CiAgICAgR3JpZEF1dG9GbG93IGF1dG9GbG93ID0gc3R5bGUoKS5ncmlkQXV0
b0Zsb3coKTsKQEAgLTY5NCw2ICs2OTcsOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNP
bkdyaWQoKQogCiAgICAgcGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChzcGVjaWZp
ZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1zKTsKICAgICBwbGFjZUF1dG9NYWpvckF4aXNJdGVtc09u
R3JpZChhdXRvTWFqb3JBeGlzQXV0b0dyaWRJdGVtcyk7CisKKyAgICBtX2dyaWQuc2hyaW5rVG9G
aXQoKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVy
SXRlcmF0b3IoKQpAQCAtNzk2LDEwICs4MDEsMTEgQEAgUmVuZGVyR3JpZDo6R3JpZFRyYWNrU2l6
aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24K
ICAgICByZXR1cm4gKGZsb3cgPT0gQXV0b0Zsb3dDb2x1bW4pID8gRm9yUm93cyA6IEZvckNvbHVt
bnM7CiB9CiAKLXZvaWQgUmVuZGVyR3JpZDo6Y2xlYXJHcmlkKCkKK3ZvaWQgUmVuZGVyR3JpZDo6
ZGlydHlHcmlkKCkKIHsKLSAgICBtX2dyaWQuY2xlYXIoKTsKKyAgICBtX2dyaWQucmVzaXplKDAp
OwogICAgIG1fZ3JpZEl0ZW1Db29yZGluYXRlLmNsZWFyKCk7CisgICAgbV9ncmlkSXNEaXJ0eSA9
IHRydWU7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0R3JpZEl0ZW1zKCkKQEAgLTg0OSw3
ICs4NTUsNiBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCiAKICAgICAvLyBt
aW4gLyBtYXggbG9naWNhbCBoZWlnaHQgaXMgaGFuZGxlZCBpbiB1cGRhdGVMb2dpY2FsSGVpZ2h0
KCkuCiAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0KCkgKyBib3JkZXJBbmRQYWRk
aW5nTG9naWNhbEhlaWdodCgpKTsKLSAgICBjbGVhckdyaWQoKTsKIH0KIAogR3JpZENvb3JkaW5h
dGUgUmVuZGVyR3JpZDo6Y2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94KiBncmlk
SXRlbSkgY29uc3QKQEAgLTExOTMsNiArMTE5OCw2MiBAQCBjb25zdCBjaGFyKiBSZW5kZXJHcmlk
OjpyZW5kZXJOYW1lKCkgY29uc3QKICAgICByZXR1cm4gIlJlbmRlckdyaWQiOwogfQogCit2b2lk
IFJlbmRlckdyaWQ6OmFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVj
dCogYmVmb3JlQ2hpbGQpCit7CisgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKG5ld0NoaWxkLCBi
ZWZvcmVDaGlsZCk7CisKKyAgICBpZiAoZ3JpZElzRGlydHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gV2UgY291bGQgYXZvaWQgdG8gZGlydHkgdGhlIGdyaWQgaWYgdGhlIG5ldyBjaGls
ZCBoYXMgZGVmaW5pdGUgcG9zaXRpb25zIGFuZCBncmlkIGF1dG8tZmxvdyBwcm9wZXJ0eSBpcyBu
b25lLgorICAgIC8vIEluIHRoYXQgY2FzZSB3ZSB3aWxsIG5lZWQgdG8gdXBkYXRlIG1fb3JkZXJJ
dGVyYXRvciBtYW51YWxseSBhZGRpbmcgdGhlIGNoaWxkIHdpdGggdGhlIHByb3BlciBpbmRleCBh
bmQgdXBkYXRpbmcKKyAgICAvLyB0aGUgc2libGluZyBpbmRleGVzIGlmIG5lZWRlZC4KKyAgICBk
aXJ0eUdyaWQoKTsKK30KKwordm9pZCBSZW5kZXJHcmlkOjpyZW1vdmVDaGlsZChSZW5kZXJPYmpl
Y3QmIGNoaWxkKQoreworICAgIFJlbmRlckJsb2NrOjpyZW1vdmVDaGlsZChjaGlsZCk7CisKKyAg
ICBpZiAoZ3JpZElzRGlydHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgY291bGQg
YXZvaWQgdG8gZGlydHkgdGhlIGdyaWQgaWYgZ3JpZCBhdXRvLWZsb3cgcHJvcGVydHkgaXMgbm9u
ZS4KKyAgICAvLyBJbiB0aGF0IGNhc2Ugd2Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSBtX29yZGVySXRl
cmF0b3IgbWFudWFsbHkgcmVtb3ZpbmcgdGhlIGNoaWxkIGFuZCB1cGRhdGluZyB0aGUgc2libGlu
ZyBpbmRleGVzCisgICAgLy8gaWYgbmVlZGVkLgorICAgIGRpcnR5R3JpZCgpOworfQorCit2b2lk
IFJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdl
KGRpZmYsIG9sZFN0eWxlKTsKKyAgICBpZiAoIW9sZFN0eWxlKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBUaGUgZm9sbG93aW5nIGNoZWNrcyBjb3VsZCBiZSBuYXJyb3dlZCBkb3duIGlmIHdl
IGtlcHQgdHJhY2sgb2Ygd2hpY2ggdHlwZSBvZiBncmlkIGl0ZW1zIHdlIGhhdmU6CisgICAgLy8g
LSBleHBsaWNpdCBncmlkIHNpemUgY2hhbmdlcyBpbXBhY3QgbmVnYXRpdmUgZXhwbGljaXRseSBw
b3NpdGlvbmVkIGFuZCBhdXRvLXBsYWNlZCBncmlkIGl0ZW1zLgorICAgIC8vIC0gbmFtZWQgZ3Jp
ZCBsaW5lcyBvbmx5IGltcGFjdCBncmlkIGl0ZW1zIHdpdGggbmFtZWQgZ3JpZCBsaW5lcy4KKyAg
ICAvLyAtIGF1dG8tZmxvdyBjaGFuZ2VzIG9ubHkgaW1wYWN0cyBhdXRvLXBsYWNlZCBjaGlsZHJl
bi4KKworICAgIGlmIChleHBsaWNpdEdyaWREaWRSZXNpemUob2xkU3R5bGUpCisgICAgICAgIHx8
IG5hbWVkR3JpZExpbmVzRGVmaW5pdGlvbkRpZENoYW5nZShvbGRTdHlsZSkKKyAgICAgICAgfHwg
b2xkU3R5bGUtPmdyaWRBdXRvRmxvdygpICE9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCkpCisgICAg
ICAgIGRpcnR5R3JpZCgpOworfQorCitib29sIFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZERpZFJl
c2l6ZShjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG9s
ZFN0eWxlLT5ncmlkQ29sdW1ucygpLnNpemUoKSAhPSBzdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6
ZSgpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ncmlkUm93cygpLnNpemUoKSAhPSBzdHlsZSgpLmdy
aWRSb3dzKCkuc2l6ZSgpOworfQorCitib29sIFJlbmRlckdyaWQ6Om5hbWVkR3JpZExpbmVzRGVm
aW5pdGlvbkRpZENoYW5nZShjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG9sZFN0eWxlLT5uYW1lZEdyaWRSb3dMaW5lcygpICE9IHN0eWxlKCkubmFtZWRH
cmlkUm93TGluZXMoKQorICAgICAgICB8fCBvbGRTdHlsZS0+bmFtZWRHcmlkQ29sdW1uTGluZXMo
KSAhPSBzdHlsZSgpLm5hbWVkR3JpZENvbHVtbkxpbmVzKCk7Cit9CisKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLyogRU5BQkxFKENTU19HUklEX0xBWU9VVCkgKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmluZGV4IDgxODRlY2ZiNzQyNjJhNTRiMThlZDdh
NjE4Mzg2MTY1MDQwMmJlNDcuLmI2YTc3YzllMzA2MTMwYmQ4MzIzNGZmMTYzOTdjMDAxN2Q3MzZh
ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtNTgsNiArNTgsOCBA
QCBwdWJsaWM6CiAgICAgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiBjb2x1bW5Qb3NpdGlvbnMo
KSBjb25zdCB7IHJldHVybiBtX2NvbHVtblBvc2l0aW9uczsgfQogICAgIGNvbnN0IFZlY3RvcjxM
YXlvdXRVbml0PiYgcm93UG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9yb3dQb3NpdGlvbnM7
IH0KIAorICAgIHZvaWQgZGlydHlHcmlkKCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlz
UmVuZGVyR3JpZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEyNywyMSAr
MTI5LDMxIEBAIHByaXZhdGU6CiAKICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCB0cmFja3NBcmVX
aWRlclRoYW5NaW5UcmFja0JyZWFkdGgoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBW
ZWN0b3I8R3JpZFRyYWNrPiYpOwotICAgIGJvb2wgZ3JpZFdhc1BvcHVsYXRlZCgpIGNvbnN0IHsg
cmV0dXJuICFtX2dyaWQuaXNFbXB0eSgpICYmICFtX2dyaWRbMF0uaXNFbXB0eSgpOyB9CiAjZW5k
aWYKIAorICAgIHZpcnR1YWwgdm9pZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBS
ZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBvdmVy
cmlkZTsKKworICAgIGJvb2wgZXhwbGljaXRHcmlkRGlkUmVzaXplKGNvbnN0IFJlbmRlclN0eWxl
KikgY29uc3Q7CisgICAgYm9vbCBuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFuZ2UoY29u
c3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKKworICAgIGJvb2wgZ3JpZElzRGlydHkoKSBjb25zdCB7
IHJldHVybiBtX2dyaWRJc0RpcnR5OyB9CisKICAgICBzaXplX3QgZ3JpZENvbHVtbkNvdW50KCkg
Y29uc3QKICAgICB7Ci0gICAgICAgIEFTU0VSVChncmlkV2FzUG9wdWxhdGVkKCkpOworICAgICAg
ICBBU1NFUlQoIWdyaWRJc0RpcnR5KCkpOwogICAgICAgICByZXR1cm4gbV9ncmlkWzBdLnNpemUo
KTsKICAgICB9CiAgICAgc2l6ZV90IGdyaWRSb3dDb3VudCgpIGNvbnN0CiAgICAgewotICAgICAg
ICBBU1NFUlQoZ3JpZFdhc1BvcHVsYXRlZCgpKTsKKyAgICAgICAgQVNTRVJUKCFncmlkSXNEaXJ0
eSgpKTsKICAgICAgICAgcmV0dXJuIG1fZ3JpZC5zaXplKCk7CiAgICAgfQogCiAgICAgVmVjdG9y
PFZlY3RvcjxWZWN0b3I8UmVuZGVyQm94KiwgMT4+PiBtX2dyaWQ7CisgICAgYm9vbCBtX2dyaWRJ
c0RpcnR5OwogICAgIFZlY3RvcjxMYXlvdXRVbml0PiBtX2NvbHVtblBvc2l0aW9uczsKICAgICBW
ZWN0b3I8TGF5b3V0VW5pdD4gbV9yb3dQb3NpdGlvbnM7CiAgICAgSGFzaE1hcDxjb25zdCBSZW5k
ZXJCb3gqLCBHcmlkQ29vcmRpbmF0ZT4gbV9ncmlkSXRlbUNvb3JkaW5hdGU7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMWE1
MzVmYTZkY2FlNTNhZDQ4MjFhMzc1MWJkYmRlNzBiODU2ODI4NS4uNTYyY2NlN2JiMzE2ODczZWFl
YzYzMmQxNzBjODUzM2Q0NmFhNGQ0NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE0LTA0LTI5
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtD
U1MgR3JpZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0
YXR1cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMy
MzMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJv
bSBCbGluayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBO
ZXcgbGF5b3V0IHRlc3RzIHRvIGNoZWNrIGNoYW5nZXMgaW4gZ3JpZC10ZW1wbGF0ZS17cm93c3xj
b2x1bW5zfSBhbmQgb3JkZXIgcHJvcGVydGllcy4KKworICAgICAgICAqIGZhc3QvY3NzLWdyaWQt
bGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGls
ZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9y
ZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdy
aWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93Lmh0bWw6IEFkZGVkLgor
CiAyMDE0LTA1LTI2ICBNaWNoYcWCIFBha3XFgmEgdmVsIFJ1dGthICA8bS5wYWt1bGFAc2Ftc3Vu
Zy5jb20+CiAKICAgICAgICAgW0VGTF0gSW5wdXQgZmllbGRzIGFuZCB0ZXh0IGFyZWFzIGFyZSBu
b3QgcmVuZGVyZWQgY29ycmVjdGx5IGFmdGVyIHIxNjc3NzEKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1n
cmlkLXJlY29tcHV0ZS1jaGlsZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM1ODRhNjE1NjdiNTVkZjM1MmU2Mjg2MmI0
YTIzNTdhNThiOGRhOGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUt
Y2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1uc30gZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMg
dGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBncmlkIGl0ZW1zLgorUEFTUwor
UEFTUworUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1j
aGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU1
NjVmMmMxODMyYmFjNWYyMTc2Nzc2YTM0MWRhYzA2NWI0OTQxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4
cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91
dEVuYWJsZWQiLCAxKTsKKzwvc2NyaXB0PgorPGxpbmsgaHJlZj0icmVzb3VyY2VzL2dyaWQuY3Nz
IiByZWw9InN0eWxlc2hlZXQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1s
YXlvdXQuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorLmdyaWQgeworICAgIC13ZWJraXQtZ3JpZC1h
dXRvLWZsb3c6IHJvdzsKK30KKyNmaXJzdEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93
OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDE7Cit9CisKKyNzZWNvbmRHcmlkSXRl
bSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBh
dXRvOworfQorCisjdGhpcmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsK
KyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+Citm
dW5jdGlvbiB0ZXN0R3JpZERlZmluaXRpb25zKGdyaWRUZW1wbGF0ZVJvd3MsIGdyaWRUZW1wbGF0
ZUNvbHVtbnMsIGZpcnN0R3JpZEl0ZW1EYXRhLCBzZWNvbmRHcmlkSXRlbURhdGEsIHRoaXJkR3Jp
ZEl0ZW1EYXRhKQoreworICAgIHZhciBncmlkRWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRz
QnlDbGFzc05hbWUoImdyaWQiKVswXTsKKyAgICBncmlkRWxlbWVudC5zdHlsZS53ZWJraXRHcmlk
VGVtcGxhdGVSb3dzID0gZ3JpZFRlbXBsYXRlUm93czsKKyAgICBncmlkRWxlbWVudC5zdHlsZS53
ZWJraXRHcmlkVGVtcGxhdGVDb2x1bW5zID0gZ3JpZFRlbXBsYXRlQ29sdW1uczsKKworICAgIHZh
ciBmaXJzdEdyaWRJdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpcnN0R3JpZEl0ZW0i
KTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIs
IGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0
ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBmaXJzdEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAg
IGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14IiwgZmlyc3RHcmlkSXRl
bURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXki
LCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZhciBzZWNvbmRHcmlkSXRlbSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRHcmlkSXRlbSIpOworICAgIHNlY29uZEdyaWRJdGVt
LnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIHNlY29uZEdyaWRJdGVtRGF0YS53
aWR0aCk7CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhl
aWdodCIsIHNlY29uZEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIHNlY29uZEdyaWRJdGVtLnNl
dEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHNlY29uZEdyaWRJdGVtRGF0YS54KTsKKyAgICBz
ZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBzZWNvbmRHcmlkSXRl
bURhdGEueSk7CisKKyAgICB2YXIgdGhpcmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0aGlyZEdyaWRJdGVtIik7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRh
dGEtZXhwZWN0ZWQtd2lkdGgiLCB0aGlyZEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgdGhpcmRH
cmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgdGhpcmRHcmlkSXRl
bURhdGEuaGVpZ2h0KTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZz
ZXQteCIsIHRoaXJkR3JpZEl0ZW1EYXRhLngpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmli
dXRlKCJkYXRhLW9mZnNldC15IiwgdGhpcmRHcmlkSXRlbURhdGEueSk7CisKKyAgICBjaGVja0xh
eW91dCgiLmdyaWQiKTsKK30KKworZnVuY3Rpb24gdGVzdENoYW5naW5nR3JpZERlZmluaXRpb25z
KCkKK3sKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCcxMHB4IDIwcHgnLCAnMTBweCcsCisgICAg
ICAgIHsgJ3dpZHRoJzogJzEwJywgJ2hlaWdodCc6ICcyMCcsICd4JzogJzAnLCAneSc6ICcxMCcg
fSwKKyAgICAgICAgeyAnd2lkdGgnOiAnMTAnLCAnaGVpZ2h0JzogJzEwJywgJ3gnOiAnMCcsICd5
JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzEwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAn
MCcsICd5JzogJzMwJyB9KTsKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCc1MHB4JywgJzMwcHgg
NDBweCcsCisgICAgICAgIHsgJ3dpZHRoJzogJzMwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcs
ICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICczMCcsICdoZWlnaHQnOiAnNTAnLCAn
eCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0Jzog
JzUwJywgJ3gnOiAnMzAnLCAneSc6ICcwJyB9KTsKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCc1
MHB4JywgJzYwcHgnLAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMCcsICd4
JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0Jzog
JzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hl
aWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9KTsKKyAgICB0ZXN0R3JpZERlZmluaXRp
b25zKCc1MHB4IDEwMHB4IDE1MHB4JywgJzYwcHgnLAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcs
ICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3aWR0
aCc6ICc2MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAg
eyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzE1MCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0p
OworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRlc3RDaGFuZ2luZ0dyaWRE
ZWZpbml0aW9ucywgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1uc30gZHluYW1pYyB1
cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBn
cmlkIGl0ZW1zLjwvZGl2PgorCis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICAg
IDxkaXYgY2xhc3M9ImdyaWQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEi
IGlkPSJmaXJzdEdyaWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dy
aWRBcmVhIiBpZD0ic2Vjb25kR3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJz
aXplZFRvR3JpZEFyZWEiIGlkPSJ0aGlyZEdyaWRJdGVtIj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwv
ZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9y
ZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGYwODlkNmE0NTM1MDRkMzJl
YWMwZDdlYmJhMmQ2NDEyODVkOGM5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW1z
JyAnb3JkZXInIGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0
b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVtcy4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFu
Z2Utb3JkZXItYXV0by1mbG93Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NTU0
YWVhZjk2Mzk2ZGFiZTAxYTMwNzljYzY5ODc4N2M4OWI3OTcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1
dG8tZmxvdy5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5v
dmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3Nj
cmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4K
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4K
KzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiByb3c7CisgICAg
LXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3M6IDUwcHggMTAwcHg7CisgICAgLXdlYmtpdC1ncmlk
LXRlbXBsYXRlLWNvbHVtbnM6IDQwcHg7Cit9CisKKyNmaXJzdEdyaWRJdGVtIHsKKyAgICAtd2Vi
a2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IDE7Cit9CisKKyNz
ZWNvbmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogMTsKKyAgICAtd2Via2l0LWdy
aWQtY29sdW1uOiBhdXRvOworfQorCisjdGhpcmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlk
LXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorPC9zdHlsZT4K
KzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3JpZEl0ZW1zT3JkZXIoZmlyc3RHcmlkSXRlbURhdGEs
IHNlY29uZEdyaWRJdGVtRGF0YSwgdGhpcmRHcmlkSXRlbURhdGEpCit7CisgICAgdmFyIGZpcnN0
R3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmlyc3RHcmlkSXRlbSIpOworICAg
IGZpcnN0R3JpZEl0ZW0uc3R5bGUud2Via2l0T3JkZXIgPSBmaXJzdEdyaWRJdGVtRGF0YS5vcmRl
cjsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIs
IGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0
ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBmaXJzdEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAg
IGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14IiwgZmlyc3RHcmlkSXRl
bURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXki
LCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZhciBzZWNvbmRHcmlkSXRlbSA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRHcmlkSXRlbSIpOworICAgIHNlY29uZEdyaWRJdGVt
LnN0eWxlLndlYmtpdE9yZGVyID0gc2Vjb25kR3JpZEl0ZW1EYXRhLm9yZGVyOworICAgIHNlY29u
ZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIHNlY29uZEdyaWRJ
dGVtRGF0YS53aWR0aCk7CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4
cGVjdGVkLWhlaWdodCIsIHNlY29uZEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIHNlY29uZEdy
aWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHNlY29uZEdyaWRJdGVtRGF0YS54
KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBzZWNv
bmRHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgdGhpcmRHcmlkSXRlbSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJ0aGlyZEdyaWRJdGVtIik7CisgICAgdGhpcmRHcmlkSXRlbS5zdHlsZS53
ZWJraXRPcmRlciA9IHRoaXJkR3JpZEl0ZW1EYXRhLm9yZGVyOworICAgIHRoaXJkR3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgdGhpcmRHcmlkSXRlbURhdGEud2lk
dGgpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdo
dCIsIHRoaXJkR3JpZEl0ZW1EYXRhLmhlaWdodCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRy
aWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCB0aGlyZEdyaWRJdGVtRGF0YS54KTsKKyAgICB0aGlyZEdy
aWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteSIsIHRoaXJkR3JpZEl0ZW1EYXRhLnkp
OworCisgICAgY2hlY2tMYXlvdXQoIi5ncmlkIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RDaGFuZ2lu
Z0dyaWRJdGVtc09yZGVyKCkKK3sKKyAgICB0ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAgICAgIHsg
J29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAn
eSc6ICc1MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWln
aHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMCcs
ICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0pOwor
ICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6
ICc0MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7
ICdvcmRlcic6ICctMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywg
J3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWln
aHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNPcmRl
cigKKyAgICAgICAgeyAnb3JkZXInOiAnMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcs
ICd4JzogJzAnLCAneSc6ICcxNTAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJy0xJywgJ3dpZHRo
JzogJzQwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7
ICdvcmRlcic6ICcwJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywg
J3knOiAnNTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAgICAgICAgeyAnb3JkZXIn
OiAnMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5JzogJzUw
JyB9LAorICAgICAgICB7ICdvcmRlcic6ICctMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAn
NTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMTAnLCAnd2lk
dGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0Q2hhbmdpbmdHcmlkSXRlbXNPcmRl
ciwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyB0ZXN0IGNo
ZWNrcyB0aGF0IGdyaWQgaXRlbXMnICdvcmRlcicgZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMg
dGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBncmlkIGl0ZW1zLjwvZGl2Pgor
Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJmaXJzdEdyaWRJdGVt
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0ic2Vjb25k
R3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlk
PSJ0aGlyZEdyaWRJdGVtIj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232095</attachid>
            <date>2014-05-26 13:46:38 -0700</date>
            <delta_ts>2014-06-03 04:18:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140526224613.patch</filename>
            <type>text/plain</type>
            <size>21980</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzFhZjZlZGJiMGMzMGM2
NGFkODlkODUyMTFhNzZjODkyMDY5ZjFlNi4uOWQ3NzdhMWRkZWI1ZmM2YzgzOWFiODI3ZTNjOWNl
MDk2ZTkwMTFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA0LTI5ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3
aGVuZXZlciBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcworICAgICAgICBn
cmlkIGxheW91dCBwZXJmIHRlc3RzIHRvIHJ1biBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAg
ICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2ZQorICAg
ICAgICB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkIGl0ZW1zIGFkaXR0aW9uLCByZW1v
dmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8t
Zmxvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdyaWQgaWYg
bmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9zaXRpb25B
ZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5LgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMpOiBEbyBub3Qg
bmVlZCB0byBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYgZ3JpZCBpcyBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQg
Y2xlYXIgaXQuIFJlbmFtZWQgZnJvbSBjbGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcyBk
aXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlk
IGFzIGRpcnR5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFy
ayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZERpZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25E
aWRDaGFuZ2UpOiBDaGVja3MgaWYgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBuZXcg
bWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzIHNpZ25hdHVyZXMuCisKIDIwMTQt
MDUtMjYgIE1pY2hhxYIgUGFrdcWCYSB2ZWwgUnV0a2EgIDxtLnBha3VsYUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXSBJbnB1dCBmaWVsZHMgYW5kIHRleHQgYXJlYXMgYXJlIG5vdCByZW5k
ZXJlZCBjb3JyZWN0bHkgYWZ0ZXIgcjE2Nzc3MQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCAyYzJhMzRhODQxNTExYWU2MzFjMGNmNzkxMGJhZWUyNzNlYTA1N2U1Li4w
ZmMxZmMwZTA2YWNlMTYyMjExM2U1YmUyYWQ4MDZhNmMxZDU3ZjNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDgsNiArNDgsOSBAQAogI2luY2x1ZGUgIlJlbmRl
ckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVu
ZGVySXRlcmF0b3IuaCIKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorI2luY2x1ZGUgIlJl
bmRlckdyaWQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTmFtZWRGbG93RnJhZ21l
bnQuaCIKQEAgLTQwMCw3ICs0MDMsMzAgQEAgdm9pZCBSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdl
KFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICBp
ZiAoKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5zaGFwZU91dHNpZGUoKSkgfHwgc3R5bGUoKS5zaGFw
ZU91dHNpZGUoKSkKICAgICAgICAgdXBkYXRlU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFu
Z2Uoc3R5bGUoKSwgb2xkU3R5bGUpOwogI2VuZGlmCisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZ
T1VUKQorICAgIHVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKSwgb2xk
U3R5bGUpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQordm9pZCBS
ZW5kZXJCb3g6OnVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCit7CisgICAgaWYgKCFv
bGRTdHlsZSB8fCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pc1JlbmRlckdyaWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKG9sZFN0eWxlLT5ncmlkSXRlbUNvbHVtblN0YXJ0KCkgPT0g
c3R5bGUuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpCisgICAgICAgICYmIG9sZFN0eWxlLT5ncmlkSXRl
bUNvbHVtbkVuZCgpID09IHN0eWxlLmdyaWRJdGVtQ29sdW1uRW5kKCkKKyAgICAgICAgJiYgb2xk
U3R5bGUtPmdyaWRJdGVtUm93U3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRlbVJvd1N0YXJ0KCkKKyAg
ICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93RW5kKCkgPT0gc3R5bGUuZ3JpZEl0ZW1Sb3dF
bmQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+b3JkZXIoKSA9PSBzdHlsZS5vcmRlcigpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8gbm90IGRpcnR5
IHRoZSBncmlkIGluIHNvbWUgY2FzZXMgKGxpa2UgbW92aW5nIGFuIGV4cGxpY2l0bHkgcGxhY2Vk
IGdyaWQgaXRlbSkuCisgICAgLy8gRm9yIG5vdywgaXQncyBtb3JlIHNpbXBsZSB0byBqdXN0IGFs
d2F5cyByZWNvbXB1dGUgdGhlIGdyaWQuCisgICAgdG9SZW5kZXJHcmlkKHBhcmVudCgpKS0+ZGly
dHlHcmlkKCk7CiB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogdm9pZCBSZW5k
ZXJCb3g6OnVwZGF0ZVNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IDg0MDg1ZWZhOTJjNTNjNzdmZTVjNzk4ZGU4NWEwNDFh
OGFlODI0ODAuLjNlZmM3ZDZmNzZkNjU2ZGRmZTNlMWU2NDE3MDA5Y2YyNGJkMTJhM2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY1Nyw2ICs2NTcsOSBAQCBwcm90ZWN0
ZWQ6CiAgICAgUmVuZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVzQXJvdW5kQ2hpbGQoUmVu
ZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAgCiBwcml2YXRlOgorI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCisgICAgdm9pZCB1cGRhdGVHcmlkUG9zaXRpb25BZnRlclN0eWxlQ2hhbmdlKGNv
bnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKKyNlbmRpZgog
I2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQgdXBkYXRlU2hhcGVPdXRzaWRlSW5mb0Fm
dGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5k
ZXggZGEzNmMyOTU3MjcyMmQ4OTQyZTg3NDViM2Q2ZTU2ZGY5ZTkxMTUzYS4uZmUzZDFmNGE5MTVj
OTZiZjMzNmNhZGNhNGVkZTI5Y2Y4NmU4ODNiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcApAQCAtMTYzLDYgKzE2Myw3IEBAIHB1YmxpYzoKIAogUmVuZGVyR3JpZDo6
UmVuZGVyR3JpZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRlclN0eWxlPiBzdHlsZSkK
ICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHlsZSksIDApCisgICAgLCBt
X2dyaWRJc0RpcnR5KHRydWUpCiAgICAgLCBtX29yZGVySXRlcmF0b3IoKnRoaXMpCiB7CiAgICAg
Ly8gQWxsIG9mIG91ciBjaGlsZHJlbiBtdXN0IGJlIGJsb2NrIGxldmVsLgpAQCAtMjM0LDggKzIz
NSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMoTGF5
b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvCiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGFkZCBpbiB0aGUgc2Nyb2xsYmFyV2lkdGggKGUuZy4gc2VlIFJlbmRlckZsZXhpYmxl
Qm94KS4KICAgICB9Ci0KLSAgICBjb25zdF9jYXN0PFJlbmRlckdyaWQqPih0aGlzKS0+Y2xlYXJH
cmlkKCk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0
aHMoKQpAQCAtNjU4LDExICs2NTcsMTUgQEAgdm9pZCBSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50
b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgc2l6ZV90IHJvd1RyYWNrLCBzaXplX3QgY28KIAogdm9p
ZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIHsKLSAgICBBU1NFUlQoIWdyaWRXYXNQ
b3B1bGF0ZWQoKSk7Ci0gICAgQVNTRVJUKG1fZ3JpZEl0ZW1Db29yZGluYXRlLmlzRW1wdHkoKSk7
CisgICAgaWYgKCFncmlkSXNEaXJ0eSgpKQorICAgICAgICByZXR1cm47CiAKICAgICBwb3B1bGF0
ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKTsKIAorICAgIC8vIFdlIGNsZWFyIHRoZSBk
aXJ0eSBiaXQgaGVyZSBhcyB0aGUgZ3JpZCBzaXplcyBoYXZlIGJlZW4gdXBkYXRlZCwgdGhpcyBt
ZWFucworICAgIC8vIHRoYXQgd2UgY2FuIHNhZmVseSBjYWxsIGdyaWRSb3dDb3VudCgpIC8gZ3Jp
ZENvbHVtbkNvdW50KCkuCisgICAgbV9ncmlkSXNEaXJ0eSA9IGZhbHNlOworCiAgICAgVmVjdG9y
PFJlbmRlckJveCo+IGF1dG9NYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwogICAgIFZlY3RvcjxSZW5k
ZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwogICAgIEdyaWRBdXRvRmxv
dyBhdXRvRmxvdyA9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCk7CkBAIC02OTQsNiArNjk3LDggQEAg
dm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogICAgIHBsYWNlU3BlY2lmaWVk
TWFqb3JBeGlzSXRlbXNPbkdyaWQoc3BlY2lmaWVkTWFqb3JBeGlzQXV0b0dyaWRJdGVtcyk7CiAg
ICAgcGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoYXV0b01ham9yQXhpc0F1dG9HcmlkSXRl
bXMpOworCisgICAgbV9ncmlkLnNocmlua1RvRml0KCk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6
cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKQEAgLTc5NiwxMCArODAxLDEx
IEBAIFJlbmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBSZW5kZXJHcmlkOjphdXRv
UGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uCiAgICAgcmV0dXJuIChmbG93ID09IEF1dG9GbG93
Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JDb2x1bW5zOwogfQogCi12b2lkIFJlbmRlckdyaWQ6OmNs
ZWFyR3JpZCgpCit2b2lkIFJlbmRlckdyaWQ6OmRpcnR5R3JpZCgpCiB7Ci0gICAgbV9ncmlkLmNs
ZWFyKCk7CisgICAgbV9ncmlkLnJlc2l6ZSgwKTsKICAgICBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5j
bGVhcigpOworICAgIG1fZ3JpZElzRGlydHkgPSB0cnVlOwogfQogCiB2b2lkIFJlbmRlckdyaWQ6
OmxheW91dEdyaWRJdGVtcygpCkBAIC04NDksNyArODU1LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjps
YXlvdXRHcmlkSXRlbXMoKQogCiAgICAgLy8gbWluIC8gbWF4IGxvZ2ljYWwgaGVpZ2h0IGlzIGhh
bmRsZWQgaW4gdXBkYXRlTG9naWNhbEhlaWdodCgpLgogICAgIHNldExvZ2ljYWxIZWlnaHQobG9n
aWNhbEhlaWdodCgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWlnaHQoKSk7Ci0gICAgY2xl
YXJHcmlkKCk7CiB9CiAKIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29y
ZGluYXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CkBAIC0xMTkzLDYgKzExOTgs
NjIgQEAgY29uc3QgY2hhciogUmVuZGVyR3JpZDo6cmVuZGVyTmFtZSgpIGNvbnN0CiAgICAgcmV0
dXJuICJSZW5kZXJHcmlkIjsKIH0KIAordm9pZCBSZW5kZXJHcmlkOjphZGRDaGlsZChSZW5kZXJP
YmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKQoreworICAgIFJlbmRl
ckJsb2NrOjphZGRDaGlsZChuZXdDaGlsZCwgYmVmb3JlQ2hpbGQpOworCisgICAgaWYgKGdyaWRJ
c0RpcnR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIGNvdWxkIGF2b2lkIHRvIGRp
cnR5IHRoZSBncmlkIGlmIHRoZSBuZXcgY2hpbGQgaGFzIGRlZmluaXRlIHBvc2l0aW9ucyBhbmQg
Z3JpZCBhdXRvLWZsb3cgcHJvcGVydHkgaXMgbm9uZS4KKyAgICAvLyBJbiB0aGF0IGNhc2Ugd2Ug
d2lsbCBuZWVkIHRvIHVwZGF0ZSBtX29yZGVySXRlcmF0b3IgbWFudWFsbHkgYWRkaW5nIHRoZSBj
aGlsZCB3aXRoIHRoZSBwcm9wZXIgaW5kZXggYW5kIHVwZGF0aW5nCisgICAgLy8gdGhlIHNpYmxp
bmcgaW5kZXhlcyBpZiBuZWVkZWQuCisgICAgZGlydHlHcmlkKCk7Cit9CisKK3ZvaWQgUmVuZGVy
R3JpZDo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0JiBjaGlsZCkKK3sKKyAgICBSZW5kZXJCbG9j
azo6cmVtb3ZlQ2hpbGQoY2hpbGQpOworCisgICAgaWYgKGdyaWRJc0RpcnR5KCkpCisgICAgICAg
IHJldHVybjsKKworICAgIC8vIFdlIGNvdWxkIGF2b2lkIHRvIGRpcnR5IHRoZSBncmlkIGlmIGdy
aWQgYXV0by1mbG93IHByb3BlcnR5IGlzIG5vbmUuCisgICAgLy8gSW4gdGhhdCBjYXNlIHdlIHdp
bGwgbmVlZCB0byB1cGRhdGUgbV9vcmRlckl0ZXJhdG9yIG1hbnVhbGx5IHJlbW92aW5nIHRoZSBj
aGlsZCBhbmQgdXBkYXRpbmcgdGhlIHNpYmxpbmcgaW5kZXhlcworICAgIC8vIGlmIG5lZWRlZC4K
KyAgICBkaXJ0eUdyaWQoKTsKK30KKwordm9pZCBSZW5kZXJHcmlkOjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQoreworICAg
IFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHlsZSk7CisgICAgaWYgKCFv
bGRTdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlIGZvbGxvd2luZyBjaGVja3Mg
Y291bGQgYmUgbmFycm93ZWQgZG93biBpZiB3ZSBrZXB0IHRyYWNrIG9mIHdoaWNoIHR5cGUgb2Yg
Z3JpZCBpdGVtcyB3ZSBoYXZlOgorICAgIC8vIC0gZXhwbGljaXQgZ3JpZCBzaXplIGNoYW5nZXMg
aW1wYWN0IG5lZ2F0aXZlIGV4cGxpY2l0bHkgcG9zaXRpb25lZCBhbmQgYXV0by1wbGFjZWQgZ3Jp
ZCBpdGVtcy4KKyAgICAvLyAtIG5hbWVkIGdyaWQgbGluZXMgb25seSBpbXBhY3QgZ3JpZCBpdGVt
cyB3aXRoIG5hbWVkIGdyaWQgbGluZXMuCisgICAgLy8gLSBhdXRvLWZsb3cgY2hhbmdlcyBvbmx5
IGltcGFjdHMgYXV0by1wbGFjZWQgY2hpbGRyZW4uCisKKyAgICBpZiAoZXhwbGljaXRHcmlkRGlk
UmVzaXplKG9sZFN0eWxlKQorICAgICAgICB8fCBuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRD
aGFuZ2Uob2xkU3R5bGUpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ncmlkQXV0b0Zsb3coKSAhPSBz
dHlsZSgpLmdyaWRBdXRvRmxvdygpKQorICAgICAgICBkaXJ0eUdyaWQoKTsKK30KKworYm9vbCBS
ZW5kZXJHcmlkOjpleHBsaWNpdEdyaWREaWRSZXNpemUoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKSBjb25zdAoreworICAgIHJldHVybiBvbGRTdHlsZS0+Z3JpZENvbHVtbnMoKS5zaXplKCkg
IT0gc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKQorICAgICAgICB8fCBvbGRTdHlsZS0+Z3Jp
ZFJvd3MoKS5zaXplKCkgIT0gc3R5bGUoKS5ncmlkUm93cygpLnNpemUoKTsKK30KKworYm9vbCBS
ZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFuZ2UoY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKSBjb25zdAoreworICAgIHJldHVybiBvbGRTdHlsZS0+bmFtZWRHcmlk
Um93TGluZXMoKSAhPSBzdHlsZSgpLm5hbWVkR3JpZFJvd0xpbmVzKCkKKyAgICAgICAgfHwgb2xk
U3R5bGUtPm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgIT0gc3R5bGUoKS5uYW1lZEdyaWRDb2x1bW5M
aW5lcygpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8qIEVOQUJM
RShDU1NfR1JJRF9MQVlPVVQpICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaApp
bmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4ZWQ3YTYxODM4NjE2NTA0MDJiZTQ3Li5iNmE3N2M5ZTMw
NjEzMGJkODMyMzRmZjE2Mzk3YzAwMTdkNzM2YWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIGNvbnN0IFZlY3RvcjxM
YXlvdXRVbml0PiYgY29sdW1uUG9zaXRpb25zKCkgY29uc3QgeyByZXR1cm4gbV9jb2x1bW5Qb3Np
dGlvbnM7IH0KICAgICBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIHJvd1Bvc2l0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fcm93UG9zaXRpb25zOyB9CiAKKyAgICB2b2lkIGRpcnR5R3JpZCgpOwor
CiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckdyaWQoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiB0cnVlOyB9CkBAIC0xMjcsMjEgKzEyOSwzMSBAQCBwcml2YXRlOgogCiAjaWZuZGVm
IE5ERUJVRwogICAgIGJvb2wgdHJhY2tzQXJlV2lkZXJUaGFuTWluVHJhY2tCcmVhZHRoKEdyaWRU
cmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFjaz4mKTsKLSAgICBib29s
IGdyaWRXYXNQb3B1bGF0ZWQoKSBjb25zdCB7IHJldHVybiAhbV9ncmlkLmlzRW1wdHkoKSAmJiAh
bV9ncmlkWzBdLmlzRW1wdHkoKTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0dWFsIHZvaWQgYWRkQ2hp
bGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCA9IDAp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCByZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmKSBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UsIGNvbnN0IFJlbmRlclN0eWxlKikgb3ZlcnJpZGU7CisKKyAgICBib29sIGV4cGxpY2l0R3Jp
ZERpZFJlc2l6ZShjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OworICAgIGJvb2wgbmFtZWRHcmlk
TGluZXNEZWZpbml0aW9uRGlkQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7CisKKyAg
ICBib29sIGdyaWRJc0RpcnR5KCkgY29uc3QgeyByZXR1cm4gbV9ncmlkSXNEaXJ0eTsgfQorCiAg
ICAgc2l6ZV90IGdyaWRDb2x1bW5Db3VudCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQo
Z3JpZFdhc1BvcHVsYXRlZCgpKTsKKyAgICAgICAgQVNTRVJUKCFncmlkSXNEaXJ0eSgpKTsKICAg
ICAgICAgcmV0dXJuIG1fZ3JpZFswXS5zaXplKCk7CiAgICAgfQogICAgIHNpemVfdCBncmlkUm93
Q291bnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGdyaWRXYXNQb3B1bGF0ZWQoKSk7
CisgICAgICAgIEFTU0VSVCghZ3JpZElzRGlydHkoKSk7CiAgICAgICAgIHJldHVybiBtX2dyaWQu
c2l6ZSgpOwogICAgIH0KIAogICAgIFZlY3RvcjxWZWN0b3I8VmVjdG9yPFJlbmRlckJveCosIDE+
Pj4gbV9ncmlkOworICAgIGJvb2wgbV9ncmlkSXNEaXJ0eTsKICAgICBWZWN0b3I8TGF5b3V0VW5p
dD4gbV9jb2x1bW5Qb3NpdGlvbnM7CiAgICAgVmVjdG9yPExheW91dFVuaXQ+IG1fcm93UG9zaXRp
b25zOwogICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94KiwgR3JpZENvb3JkaW5hdGU+IG1fZ3Jp
ZEl0ZW1Db29yZGluYXRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFhNTM1ZmE2ZGNhZTUzYWQ0ODIxYTM3NTFiZGJkZTcw
Yjg1NjgyODUuLjU2MmNjZTdiYjMxNjg3M2VhZWM2MzJkMTcwYzg1MzNkNDZhYTRkNDQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxNC0wNC0yOSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdyaWQgTGF5b3V0XSBHcmlkIG9wdGltaXph
dGlvbiBrZWVwaW5nIHRyYWNrIG9mIGl0cyBzdGF0dXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjMzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gQmxpbmsgcjE1NTI2MiBieSA8amNoYWZmcmFp
eEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFu
Z2VzIGluIGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMu
CisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2Ut
ZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQt
Z3JpZC1yZWNvbXB1dGUtY2hpbGQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9y
ZGVyLWF1dG8tZmxvdy5odG1sOiBBZGRlZC4KKwogMjAxNC0wNS0yNiAgTWljaGHFgiBQYWt1xYJh
IHZlbCBSdXRrYSAgPG0ucGFrdWxhQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIElucHV0
IGZpZWxkcyBhbmQgdGV4dCBhcmVhcyBhcmUgbm90IHJlbmRlcmVkIGNvcnJlY3RseSBhZnRlciBy
MTY3NzcxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlk
LWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hh
bmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4zNTg0YTYxNTY3YjU1ZGYzNTJlNjI4NjJiNGEyMzU3YTU4YjhkYThkCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hh
bmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkLXRlbXBsYXRlLXtyb3dzfGNvbHVtbnN9
IGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxs
eSBwbGFjZWQgZ3JpZCBpdGVtcy4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1l
eHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRl
LWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1NTY1ZjJjMTgzMmJhYzVmMjE3Njc3NmEzNDFkYWMw
NjViNDk0MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5o
dG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxs
aW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4K
Ky5ncmlkIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0by1mbG93OiByb3c7Cit9CisjZmlyc3RHcmlk
SXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29s
dW1uOiAxOworfQorCisjc2Vjb25kR3JpZEl0ZW0geworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE7
CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKK30KKworI3RoaXJkR3JpZEl0ZW0gewor
ICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0
bzsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEdyaWREZWZpbml0aW9ucyhn
cmlkVGVtcGxhdGVSb3dzLCBncmlkVGVtcGxhdGVDb2x1bW5zLCBmaXJzdEdyaWRJdGVtRGF0YSwg
c2Vjb25kR3JpZEl0ZW1EYXRhLCB0aGlyZEdyaWRJdGVtRGF0YSkKK3sKKyAgICB2YXIgZ3JpZEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCJncmlkIilbMF07CisgICAg
Z3JpZEVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRlbXBsYXRlUm93cyA9IGdyaWRUZW1wbGF0ZVJv
d3M7CisgICAgZ3JpZEVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRlbXBsYXRlQ29sdW1ucyA9IGdy
aWRUZW1wbGF0ZUNvbHVtbnM7CisKKyAgICB2YXIgZmlyc3RHcmlkSXRlbSA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmaXJzdEdyaWRJdGVtIik7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRy
aWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBmaXJzdEdyaWRJdGVtRGF0YS53aWR0aCk7Cisg
ICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgZmly
c3RHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgi
ZGF0YS1vZmZzZXQteCIsIGZpcnN0R3JpZEl0ZW1EYXRhLngpOworICAgIGZpcnN0R3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15IiwgZmlyc3RHcmlkSXRlbURhdGEueSk7CisKKyAg
ICB2YXIgc2Vjb25kR3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vjb25kR3Jp
ZEl0ZW0iKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQt
d2lkdGgiLCBzZWNvbmRHcmlkSXRlbURhdGEud2lkdGgpOworICAgIHNlY29uZEdyaWRJdGVtLnNl
dEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBzZWNvbmRHcmlkSXRlbURhdGEuaGVp
Z2h0KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCBz
ZWNvbmRHcmlkSXRlbURhdGEueCk7CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJk
YXRhLW9mZnNldC15Iiwgc2Vjb25kR3JpZEl0ZW1EYXRhLnkpOworCisgICAgdmFyIHRoaXJkR3Jp
ZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhpcmRHcmlkSXRlbSIpOworICAgIHRo
aXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgdGhpcmRHcmlk
SXRlbURhdGEud2lkdGgpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4
cGVjdGVkLWhlaWdodCIsIHRoaXJkR3JpZEl0ZW1EYXRhLmhlaWdodCk7CisgICAgdGhpcmRHcmlk
SXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCB0aGlyZEdyaWRJdGVtRGF0YS54KTsK
KyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteSIsIHRoaXJkR3Jp
ZEl0ZW1EYXRhLnkpOworCisgICAgY2hlY2tMYXlvdXQoIi5ncmlkIik7Cit9CisKK2Z1bmN0aW9u
IHRlc3RDaGFuZ2luZ0dyaWREZWZpbml0aW9ucygpCit7CisgICAgdGVzdEdyaWREZWZpbml0aW9u
cygnMTBweCAyMHB4JywgJzEwcHgnLAorICAgICAgICB7ICd3aWR0aCc6ICcxMCcsICdoZWlnaHQn
OiAnMjAnLCAneCc6ICcwJywgJ3knOiAnMTAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzEwJywg
J2hlaWdodCc6ICcxMCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICd3aWR0aCc6
ICcxMCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICczMCcgfSk7CisgICAgdGVzdEdy
aWREZWZpbml0aW9ucygnNTBweCcsICczMHB4IDQwcHgnLAorICAgICAgICB7ICd3aWR0aCc6ICcz
MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnd2lk
dGgnOiAnMzAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAg
IHsgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzMwJywgJ3knOiAnMCcgfSk7
CisgICAgdGVzdEdyaWREZWZpbml0aW9ucygnNTBweCcsICc2MHB4JywKKyAgICAgICAgeyAnd2lk
dGgnOiAnNjAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0sCisgICAgICAg
IHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAor
ICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICc1
MCcgfSk7CisgICAgdGVzdEdyaWREZWZpbml0aW9ucygnNTBweCAxMDBweCAxNTBweCcsICc2MHB4
JywKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAn
eSc6ICc1MCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzUwJywgJ3gn
OiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICcx
NTAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVu
ZXIoImxvYWQiLCB0ZXN0Q2hhbmdpbmdHcmlkRGVmaW5pdGlvbnMsIGZhbHNlKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkLXRlbXBs
YXRlLXtyb3dzfGNvbHVtbnN9IGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRoZSBwb3NpdGlv
bnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVtcy48L2Rpdj4KKworPGRpdiBzdHls
ZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIj4KKyAgICAgICAg
PGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0iZmlyc3RHcmlkSXRlbSI+PC9kaXY+Cisg
ICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgaWQ9InNlY29uZEdyaWRJdGVtIj48
L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0idGhpcmRHcmlk
SXRlbSI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5n
ZS1vcmRlci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjBmMDg5ZDZhNDUzNTA0ZDMyZWFjMGQ3ZWJiYTJkNjQxMjg1ZDhjOTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0t
Y2hhbmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVtcycgJ29yZGVyJyBkeW5hbWljIHVwZGF0ZXMgcmVj
b21wdXRlcyB0aGUgcG9zaXRpb25zIG9mIGF1dG9tYXRpY2FsbHkgcGxhY2VkIGdyaWQgaXRlbXMu
CitQQVNTCitQQVNTCitQQVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRv
LWZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTU1NGFlYWY5NjM5NmRhYmUwMWEzMDc5Y2M2OTg3ODdj
ODliNzk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3cuaHRtbApAQCAtMCwwICsxLDk0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NH
cmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMv
Z3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisuZ3JpZCB7CisgICAgLXdlYmtp
dC1ncmlkLWF1dG8tZmxvdzogcm93OworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1
MHB4IDEwMHB4OworICAgIC13ZWJraXQtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4OworfQor
CisjZmlyc3RHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Vi
a2l0LWdyaWQtY29sdW1uOiAxOworfQorCisjc2Vjb25kR3JpZEl0ZW0geworICAgIC13ZWJraXQt
Z3JpZC1yb3c6IDE7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKK30KKworI3RoaXJk
R3JpZEl0ZW0geworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87CisgICAgLXdlYmtpdC1ncmlk
LWNvbHVtbjogYXV0bzsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gdGVzdEdyaWRJ
dGVtc09yZGVyKGZpcnN0R3JpZEl0ZW1EYXRhLCBzZWNvbmRHcmlkSXRlbURhdGEsIHRoaXJkR3Jp
ZEl0ZW1EYXRhKQoreworICAgIHZhciBmaXJzdEdyaWRJdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImZpcnN0R3JpZEl0ZW0iKTsKKyAgICBmaXJzdEdyaWRJdGVtLnN0eWxlLndlYmtpdE9y
ZGVyID0gZmlyc3RHcmlkSXRlbURhdGEub3JkZXI7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRy
aWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBmaXJzdEdyaWRJdGVtRGF0YS53aWR0aCk7Cisg
ICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgZmly
c3RHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgi
ZGF0YS1vZmZzZXQteCIsIGZpcnN0R3JpZEl0ZW1EYXRhLngpOworICAgIGZpcnN0R3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15IiwgZmlyc3RHcmlkSXRlbURhdGEueSk7CisKKyAg
ICB2YXIgc2Vjb25kR3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2Vjb25kR3Jp
ZEl0ZW0iKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zdHlsZS53ZWJraXRPcmRlciA9IHNlY29uZEdy
aWRJdGVtRGF0YS5vcmRlcjsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEt
ZXhwZWN0ZWQtd2lkdGgiLCBzZWNvbmRHcmlkSXRlbURhdGEud2lkdGgpOworICAgIHNlY29uZEdy
aWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBzZWNvbmRHcmlkSXRl
bURhdGEuaGVpZ2h0KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zm
c2V0LXgiLCBzZWNvbmRHcmlkSXRlbURhdGEueCk7CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0
cmlidXRlKCJkYXRhLW9mZnNldC15Iiwgc2Vjb25kR3JpZEl0ZW1EYXRhLnkpOworCisgICAgdmFy
IHRoaXJkR3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhpcmRHcmlkSXRlbSIp
OworICAgIHRoaXJkR3JpZEl0ZW0uc3R5bGUud2Via2l0T3JkZXIgPSB0aGlyZEdyaWRJdGVtRGF0
YS5vcmRlcjsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13
aWR0aCIsIHRoaXJkR3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCB0aGlyZEdyaWRJdGVtRGF0YS5oZWlnaHQp
OworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14IiwgdGhpcmRH
cmlkSXRlbURhdGEueCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zm
c2V0LXkiLCB0aGlyZEdyaWRJdGVtRGF0YS55KTsKKworICAgIGNoZWNrTGF5b3V0KCIuZ3JpZCIp
OworfQorCitmdW5jdGlvbiB0ZXN0Q2hhbmdpbmdHcmlkSXRlbXNPcmRlcigpCit7CisgICAgdGVz
dEdyaWRJdGVtc09yZGVyKAorICAgICAgICB7ICdvcmRlcic6ICcwJywgJ3dpZHRoJzogJzQwJywg
J2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0sCisgICAgICAgIHsgJ29yZGVy
JzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAn
IH0sCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAn
LCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKKyAgICB0ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAg
ICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzEwMCcsICd4Jzog
JzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnLTEnLCAnd2lkdGgnOiAnNDAn
LCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ29yZGVy
JzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnMTUw
JyB9KTsKKyAgICB0ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzogJzEnLCAn
d2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9LAorICAg
ICAgICB7ICdvcmRlcic6ICctMScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6
ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcs
ICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9KTsKKyAgICB0ZXN0R3JpZEl0
ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzogJzEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0
JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnLTEn
LCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisg
ICAgICAgIHsgJ29yZGVyJzogJzEwJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcwJywgJ3gn
OiAnMCcsICd5JzogJzE1MCcgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2Fk
IiwgdGVzdENoYW5naW5nR3JpZEl0ZW1zT3JkZXIsIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8ZGl2PlRoaXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW1zJyAnb3JkZXIn
IGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxs
eSBwbGFjZWQgZ3JpZCBpdGVtcy48L2Rpdj4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0
aXZlIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRU
b0dyaWRBcmVhIiBpZD0iZmlyc3RHcmlkSXRlbSI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InNpemVkVG9HcmlkQXJlYSIgaWQ9InNlY29uZEdyaWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRp
diBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0idGhpcmRHcmlkSXRlbSI+PC9kaXY+CisgICAg
PC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232421</attachid>
            <date>2014-06-03 04:18:20 -0700</date>
            <delta_ts>2014-06-03 15:05:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140603131755.patch</filename>
            <type>text/plain</type>
            <size>21982</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRjYTVlZGJlOTZlNTEw
MTIwOGFmNzA2YzdjZmJhMTNhYTE1ZjJhYi4uZDRlNTBiZWE2ODAyOGIxZmIxOTJjZmYxNjM5NDQw
MmM1ODk0Y2Y3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTAzICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3
aGVuZXZlciBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcworICAgICAgICBn
cmlkIGxheW91dCBwZXJmIHRlc3RzIHRvIHJ1biBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAg
ICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2ZQorICAg
ICAgICB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkIGl0ZW1zIGFkaXR0aW9uLCByZW1v
dmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8t
Zmxvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdyaWQgaWYg
bmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9zaXRpb25B
ZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5LgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMpOiBEbyBub3Qg
bmVlZCB0byBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYgZ3JpZCBpcyBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQg
Y2xlYXIgaXQuIFJlbmFtZWQgZnJvbSBjbGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcyBk
aXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlk
IGFzIGRpcnR5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFy
ayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZERpZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25E
aWRDaGFuZ2UpOiBDaGVja3MgaWYgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBuZXcg
bWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzIHNpZ25hdHVyZXMuCisKIDIwMTQt
MDYtMDIgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmQg
ZXh0ZXJuYWwgcGxheWJhY2sgcHJvcGVydGllcyB0byBmdWxsc2NyZWVuLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxODFhODIzM2U0NDY3NTFjZDRiMDI0ODZiYjFl
ZWFjYWVlMDgwZjljLi5mMDkzMmFmZDVlOWNkMGFmMjQxZjRkNDdmM2E3MGE4NGYyZGI5NTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDgsNiArNDgsOSBAQAog
I2luY2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorI2luY2x1ZGUgIlJlbmRlckdyaWQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQuaCIKQEAgLTQwMCw3ICs0MDMsMzAgQEAgdm9pZCBSZW5kZXJCb3g6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUKICAgICBpZiAoKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5zaGFwZU91dHNpZGUoKSkg
fHwgc3R5bGUoKS5zaGFwZU91dHNpZGUoKSkKICAgICAgICAgdXBkYXRlU2hhcGVPdXRzaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKSwgb2xkU3R5bGUpOwogI2VuZGlmCisKKyNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIHVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFu
Z2Uoc3R5bGUoKSwgb2xkU3R5bGUpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoQ1NTX0dSSURf
TEFZT1VUKQordm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFu
Z2UoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
Cit7CisgICAgaWYgKCFvbGRTdHlsZSB8fCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pc1JlbmRl
ckdyaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG9sZFN0eWxlLT5ncmlkSXRlbUNv
bHVtblN0YXJ0KCkgPT0gc3R5bGUuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpCisgICAgICAgICYmIG9s
ZFN0eWxlLT5ncmlkSXRlbUNvbHVtbkVuZCgpID09IHN0eWxlLmdyaWRJdGVtQ29sdW1uRW5kKCkK
KyAgICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93U3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRl
bVJvd1N0YXJ0KCkKKyAgICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93RW5kKCkgPT0gc3R5
bGUuZ3JpZEl0ZW1Sb3dFbmQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+b3JkZXIoKSA9PSBzdHls
ZS5vcmRlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJdCBzaG91bGQgYmUgcG9zc2li
bGUgdG8gbm90IGRpcnR5IHRoZSBncmlkIGluIHNvbWUgY2FzZXMgKGxpa2UgbW92aW5nIGFuIGV4
cGxpY2l0bHkgcGxhY2VkIGdyaWQgaXRlbSkuCisgICAgLy8gRm9yIG5vdywgaXQncyBtb3JlIHNp
bXBsZSB0byBqdXN0IGFsd2F5cyByZWNvbXB1dGUgdGhlIGdyaWQuCisgICAgdG9SZW5kZXJHcmlk
KHBhcmVudCgpKS0+ZGlydHlHcmlkKCk7CiB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hB
UEVTKQogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZVNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hh
bmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGUzM2ZiOWRhZmQ1MTQ3ZDhh
NWRjOGM3MjZhOTcwMGY5ZTUyYWE3NmUuLmVkNDZkZDllNmE3YTRkZDQ0MGYzNmNmZDI5MGJhZDc5
ZWM2YWNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY1Niw2ICs2
NTYsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVz
QXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAgCiBwcml2YXRlOgorI2lm
IEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdm9pZCB1cGRhdGVHcmlkUG9zaXRpb25BZnRl
clN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKTsKKyNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQgdXBkYXRlU2hh
cGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKaW5kZXggMjFiYzI4ZTFiYjk4YmEwMTg2ZGNiMWM0YmFkODQxMGFlNWI4NWFj
MS4uMTQ4YzdmMDFmY2MyYTgyOTNmZDBmZWVhNzlmOTVmOTQ3ODVlNjE2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTYzLDYgKzE2Myw3IEBAIHB1YmxpYzoK
IAogUmVuZGVyR3JpZDo6UmVuZGVyR3JpZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIDApCisgICAgLCBtX2dyaWRJc0RpcnR5KHRydWUpCiAgICAgLCBtX29yZGVySXRlcmF0b3Io
KnRoaXMpCiB7CiAgICAgLy8gQWxsIG9mIG91ciBjaGlsZHJlbiBtdXN0IGJlIGJsb2NrIGxldmVs
LgpAQCAtMjM0LDggKzIzNSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xv
Z2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvCiAKICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGFkZCBpbiB0aGUgc2Nyb2xsYmFyV2lkdGggKGUuZy4gc2Vl
IFJlbmRlckZsZXhpYmxlQm94KS4KICAgICB9Ci0KLSAgICBjb25zdF9jYXN0PFJlbmRlckdyaWQq
Pih0aGlzKS0+Y2xlYXJHcmlkKCk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQpAQCAtNjU4LDExICs2NTcsMTUgQEAgdm9pZCBSZW5kZXJHcmlk
OjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgc2l6ZV90IHJvd1RyYWNrLCBz
aXplX3QgY28KIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIHsKLSAgICBB
U1NFUlQoIWdyaWRXYXNQb3B1bGF0ZWQoKSk7Ci0gICAgQVNTRVJUKG1fZ3JpZEl0ZW1Db29yZGlu
YXRlLmlzRW1wdHkoKSk7CisgICAgaWYgKCFncmlkSXNEaXJ0eSgpKQorICAgICAgICByZXR1cm47
CiAKICAgICBwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKTsKIAorICAgIC8v
IFdlIGNsZWFyIHRoZSBkaXJ0eSBiaXQgaGVyZSBhcyB0aGUgZ3JpZCBzaXplcyBoYXZlIGJlZW4g
dXBkYXRlZCwgdGhpcyBtZWFucworICAgIC8vIHRoYXQgd2UgY2FuIHNhZmVseSBjYWxsIGdyaWRS
b3dDb3VudCgpIC8gZ3JpZENvbHVtbkNvdW50KCkuCisgICAgbV9ncmlkSXNEaXJ0eSA9IGZhbHNl
OworCiAgICAgVmVjdG9yPFJlbmRlckJveCo+IGF1dG9NYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwog
ICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwog
ICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCk7CkBAIC02
OTQsNiArNjk3LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogICAg
IHBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoc3BlY2lmaWVkTWFqb3JBeGlzQXV0
b0dyaWRJdGVtcyk7CiAgICAgcGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoYXV0b01ham9y
QXhpc0F1dG9HcmlkSXRlbXMpOworCisgICAgbV9ncmlkLnNocmlua1RvRml0KCk7CiB9CiAKIHZv
aWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKQEAg
LTc4OSwxMCArNzk0LDExIEBAIFJlbmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBS
ZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uCiAgICAgcmV0dXJuIChm
bG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JDb2x1bW5zOwogfQogCi12b2lk
IFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCit2b2lkIFJlbmRlckdyaWQ6OmRpcnR5R3JpZCgpCiB7
Ci0gICAgbV9ncmlkLmNsZWFyKCk7CisgICAgbV9ncmlkLnJlc2l6ZSgwKTsKICAgICBtX2dyaWRJ
dGVtQ29vcmRpbmF0ZS5jbGVhcigpOworICAgIG1fZ3JpZElzRGlydHkgPSB0cnVlOwogfQogCiB2
b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC04NDIsNyArODQ4LDYgQEAgdm9p
ZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogCiAgICAgLy8gbWluIC8gbWF4IGxvZ2lj
YWwgaGVpZ2h0IGlzIGhhbmRsZWQgaW4gdXBkYXRlTG9naWNhbEhlaWdodCgpLgogICAgIHNldExv
Z2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWln
aHQoKSk7Ci0gICAgY2xlYXJHcmlkKCk7CiB9CiAKIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6
OmNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CkBA
IC0xMTg2LDYgKzExOTEsNjQgQEAgY29uc3QgY2hhciogUmVuZGVyR3JpZDo6cmVuZGVyTmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuICJSZW5kZXJHcmlkIjsKIH0KIAordm9pZCBSZW5kZXJHcmlkOjph
ZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
KQoreworICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChuZXdDaGlsZCwgYmVmb3JlQ2hpbGQpOwor
CisgICAgaWYgKGdyaWRJc0RpcnR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIGNv
dWxkIGF2b2lkIHRvIGRpcnR5IHRoZSBncmlkIGlmIHRoZSBuZXcgY2hpbGQgaGFzIGRlZmluaXRl
IHBvc2l0aW9ucyBhbmQgZ3JpZCBhdXRvLWZsb3cgcHJvcGVydHkgaXMgbm9uZS4KKyAgICAvLyBJ
biB0aGF0IGNhc2Ugd2Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSBtX29yZGVySXRlcmF0b3IgbWFudWFs
bHkgYWRkaW5nIHRoZSBjaGlsZCB3aXRoIHRoZSBwcm9wZXIgaW5kZXggYW5kIHVwZGF0aW5nCisg
ICAgLy8gdGhlIHNpYmxpbmcgaW5kZXhlcyBpZiBuZWVkZWQuCisgICAgZGlydHlHcmlkKCk7Cit9
CisKK1JlbmRlck9iamVjdCogUmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0JiBj
aGlsZCkKK3sKKyAgICBSZW5kZXJPYmplY3QqIG5leHRTaWJsaW5nID0gUmVuZGVyQmxvY2s6OnJl
bW92ZUNoaWxkKGNoaWxkKTsKKworICAgIGlmIChncmlkSXNEaXJ0eSgpKQorICAgICAgICByZXR1
cm4gbmV4dFNpYmxpbmc7CisKKyAgICAvLyBXZSBjb3VsZCBhdm9pZCB0byBkaXJ0eSB0aGUgZ3Jp
ZCBpZiBncmlkIGF1dG8tZmxvdyBwcm9wZXJ0eSBpcyBub25lLgorICAgIC8vIEluIHRoYXQgY2Fz
ZSB3ZSB3aWxsIG5lZWQgdG8gdXBkYXRlIG1fb3JkZXJJdGVyYXRvciBtYW51YWxseSByZW1vdmlu
ZyB0aGUgY2hpbGQgYW5kIHVwZGF0aW5nIHRoZSBzaWJsaW5nIGluZGV4ZXMKKyAgICAvLyBpZiBu
ZWVkZWQuCisgICAgZGlydHlHcmlkKCk7CisKKyAgICByZXR1cm4gbmV4dFNpYmxpbmc7Cit9CisK
K3ZvaWQgUmVuZGVyR3JpZDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNv
bnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKK3sKKyAgICBSZW5kZXJCbG9jazo6c3R5bGVEaWRD
aGFuZ2UoZGlmZiwgb2xkU3R5bGUpOworICAgIGlmICghb2xkU3R5bGUpCisgICAgICAgIHJldHVy
bjsKKworICAgIC8vIFRoZSBmb2xsb3dpbmcgY2hlY2tzIGNvdWxkIGJlIG5hcnJvd2VkIGRvd24g
aWYgd2Uga2VwdCB0cmFjayBvZiB3aGljaCB0eXBlIG9mIGdyaWQgaXRlbXMgd2UgaGF2ZToKKyAg
ICAvLyAtIGV4cGxpY2l0IGdyaWQgc2l6ZSBjaGFuZ2VzIGltcGFjdCBuZWdhdGl2ZSBleHBsaWNp
dGx5IHBvc2l0aW9uZWQgYW5kIGF1dG8tcGxhY2VkIGdyaWQgaXRlbXMuCisgICAgLy8gLSBuYW1l
ZCBncmlkIGxpbmVzIG9ubHkgaW1wYWN0IGdyaWQgaXRlbXMgd2l0aCBuYW1lZCBncmlkIGxpbmVz
LgorICAgIC8vIC0gYXV0by1mbG93IGNoYW5nZXMgb25seSBpbXBhY3RzIGF1dG8tcGxhY2VkIGNo
aWxkcmVuLgorCisgICAgaWYgKGV4cGxpY2l0R3JpZERpZFJlc2l6ZShvbGRTdHlsZSkKKyAgICAg
ICAgfHwgbmFtZWRHcmlkTGluZXNEZWZpbml0aW9uRGlkQ2hhbmdlKG9sZFN0eWxlKQorICAgICAg
ICB8fCBvbGRTdHlsZS0+Z3JpZEF1dG9GbG93KCkgIT0gc3R5bGUoKS5ncmlkQXV0b0Zsb3coKSkK
KyAgICAgICAgZGlydHlHcmlkKCk7Cit9CisKK2Jvb2wgUmVuZGVyR3JpZDo6ZXhwbGljaXRHcmlk
RGlkUmVzaXplKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgY29uc3QKK3sKKyAgICByZXR1
cm4gb2xkU3R5bGUtPmdyaWRDb2x1bW5zKCkuc2l6ZSgpICE9IHN0eWxlKCkuZ3JpZENvbHVtbnMo
KS5zaXplKCkKKyAgICAgICAgfHwgb2xkU3R5bGUtPmdyaWRSb3dzKCkuc2l6ZSgpICE9IHN0eWxl
KCkuZ3JpZFJvd3MoKS5zaXplKCk7Cit9CisKK2Jvb2wgUmVuZGVyR3JpZDo6bmFtZWRHcmlkTGlu
ZXNEZWZpbml0aW9uRGlkQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gb2xkU3R5bGUtPm5hbWVkR3JpZFJvd0xpbmVzKCkgIT0gc3R5bGUoKS5u
YW1lZEdyaWRSb3dMaW5lcygpCisgICAgICAgIHx8IG9sZFN0eWxlLT5uYW1lZEdyaWRDb2x1bW5M
aW5lcygpICE9IHN0eWxlKCkubmFtZWRHcmlkQ29sdW1uTGluZXMoKTsKK30KKworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvKiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKSAqLwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKaW5kZXggODE4NGVjZmI3NDI2MmE1NGIx
OGVkN2E2MTgzODYxNjUwNDAyYmU0Ny4uYzhmMGZlNzc4MTE4NmM3ODExZjVjNzkxNWYwMWMyZDc4
YWMwMzVhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCkBAIC01OCw2ICs1
OCw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIGNvbHVtblBvc2l0
aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fY29sdW1uUG9zaXRpb25zOyB9CiAgICAgY29uc3QgVmVj
dG9yPExheW91dFVuaXQ+JiByb3dQb3NpdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX3Jvd1Bvc2l0
aW9uczsgfQogCisgICAgdm9pZCBkaXJ0eUdyaWQoKTsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IGNvbnN0IGNoYXIqIHJlbmRlck5hbWUoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNSZW5kZXJHcmlkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTI3
LDIxICsxMjksMzEgQEAgcHJpdmF0ZToKIAogI2lmbmRlZiBOREVCVUcKICAgICBib29sIHRyYWNr
c0FyZVdpZGVyVGhhbk1pblRyYWNrQnJlYWR0aChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNv
bnN0IFZlY3RvcjxHcmlkVHJhY2s+Jik7Ci0gICAgYm9vbCBncmlkV2FzUG9wdWxhdGVkKCkgY29u
c3QgeyByZXR1cm4gIW1fZ3JpZC5pc0VtcHR5KCkgJiYgIW1fZ3JpZFswXS5pc0VtcHR5KCk7IH0K
ICNlbmRpZgogCisgICAgdmlydHVhbCB2b2lkIGFkZENoaWxkKFJlbmRlck9iamVjdCogbmV3Q2hp
bGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQgPSAwKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogcmVtb3ZlQ2hpbGQoUmVuZGVyT2JqZWN0Jikgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSopIG92ZXJyaWRlOworCisgICAgYm9vbCBleHBsaWNpdEdyaWREaWRSZXNpemUoY29u
c3QgUmVuZGVyU3R5bGUqKSBjb25zdDsKKyAgICBib29sIG5hbWVkR3JpZExpbmVzRGVmaW5pdGlv
bkRpZENoYW5nZShjb25zdCBSZW5kZXJTdHlsZSopIGNvbnN0OworCisgICAgYm9vbCBncmlkSXNE
aXJ0eSgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JpZElzRGlydHk7IH0KKwogICAgIHNpemVfdCBncmlk
Q29sdW1uQ291bnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGdyaWRXYXNQb3B1bGF0
ZWQoKSk7CisgICAgICAgIEFTU0VSVCghZ3JpZElzRGlydHkoKSk7CiAgICAgICAgIHJldHVybiBt
X2dyaWRbMF0uc2l6ZSgpOwogICAgIH0KICAgICBzaXplX3QgZ3JpZFJvd0NvdW50KCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChncmlkV2FzUG9wdWxhdGVkKCkpOworICAgICAgICBBU1NF
UlQoIWdyaWRJc0RpcnR5KCkpOwogICAgICAgICByZXR1cm4gbV9ncmlkLnNpemUoKTsKICAgICB9
CiAKICAgICBWZWN0b3I8VmVjdG9yPFZlY3RvcjxSZW5kZXJCb3gqLCAxPj4+IG1fZ3JpZDsKKyAg
ICBib29sIG1fZ3JpZElzRGlydHk7CiAgICAgVmVjdG9yPExheW91dFVuaXQ+IG1fY29sdW1uUG9z
aXRpb25zOwogICAgIFZlY3RvcjxMYXlvdXRVbml0PiBtX3Jvd1Bvc2l0aW9uczsKICAgICBIYXNo
TWFwPGNvbnN0IFJlbmRlckJveCosIEdyaWRDb29yZGluYXRlPiBtX2dyaWRJdGVtQ29vcmRpbmF0
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCBmMDMxZDU5NjE0YzRhZGVlYjU1MDMzZTJmZDVlMzhiYjAyOGQ3N2ZiLi5mYWJh
NDBhY2NmMGQzMzdhZDc4ZjllODFiZGQwODQ0MWYxZTkyMjA1IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTQtMDYtMDMgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0NTUyBHcmlkIExheW91dF0gR3JpZCBvcHRpbWl6YXRpb24ga2VlcGluZyB0
cmFjayBvZiBpdHMgc3RhdHVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzIzMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBGcm9tIEJsaW5rIHIxNTUyNjIgYnkgPGpjaGFmZnJhaXhAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIE5ldyBsYXlvdXQgdGVzdHMgdG8gY2hlY2sgY2hhbmdlcyBpbiBncmlkLXRl
bXBsYXRlLXtyb3dzfGNvbHVtbnN9IGFuZCBvcmRlciBwcm9wZXJ0aWVzLgorCisgICAgICAgICog
ZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQt
cmVjb21wdXRlLWNoaWxkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRl
LWNoaWxkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
aXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3cu
aHRtbDogQWRkZWQuCisKIDIwMTQtMDYtMDIgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgVGVzdEV4cGVjdGF0aW9ucyBnYXJkZW5pbmcgYWZ0ZXIg
cjE2OTUzMi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1j
aGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjM1ODRhNjE1NjdiNTVkZjM1MmU2Mjg2MmI0YTIzNTdhNThiOGRhOGQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1j
aGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1u
c30gZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNh
bGx5IHBsYWNlZCBncmlkIGl0ZW1zLgorUEFTUworUEFTUworUEFTUworUEFTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdl
LWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1
dGUtY2hpbGQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MzU1NjVmMmMxODMyYmFjNWYyMTc2Nzc2YTM0MWRh
YzA2NWI0OTQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1s
YXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxk
Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRl
UHJlZmVyZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQiLCAxKTsKKzwvc2NyaXB0Pgor
PGxpbmsgaHJlZj0icmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0eWxlc2hlZXQiPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwvc2NyaXB0PgorPHN0eWxl
PgorLmdyaWQgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6IHJvdzsKK30KKyNmaXJzdEdy
aWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1j
b2x1bW46IDE7Cit9CisKKyNzZWNvbmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzog
MTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorCisjdGhpcmRHcmlkSXRlbSB7
CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBh
dXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3JpZERlZmluaXRpb25z
KGdyaWRUZW1wbGF0ZVJvd3MsIGdyaWRUZW1wbGF0ZUNvbHVtbnMsIGZpcnN0R3JpZEl0ZW1EYXRh
LCBzZWNvbmRHcmlkSXRlbURhdGEsIHRoaXJkR3JpZEl0ZW1EYXRhKQoreworICAgIHZhciBncmlk
RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImdyaWQiKVswXTsKKyAg
ICBncmlkRWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVtcGxhdGVSb3dzID0gZ3JpZFRlbXBsYXRl
Um93czsKKyAgICBncmlkRWxlbWVudC5zdHlsZS53ZWJraXRHcmlkVGVtcGxhdGVDb2x1bW5zID0g
Z3JpZFRlbXBsYXRlQ29sdW1uczsKKworICAgIHZhciBmaXJzdEdyaWRJdGVtID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZpcnN0R3JpZEl0ZW0iKTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsK
KyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBm
aXJzdEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRl
KCJkYXRhLW9mZnNldC14IiwgZmlyc3RHcmlkSXRlbURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRl
bS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKwor
ICAgIHZhciBzZWNvbmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRH
cmlkSXRlbSIpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3Rl
ZC13aWR0aCIsIHNlY29uZEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgc2Vjb25kR3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHNlY29uZEdyaWRJdGVtRGF0YS5o
ZWlnaHQpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIs
IHNlY29uZEdyaWRJdGVtRGF0YS54KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUo
ImRhdGEtb2Zmc2V0LXkiLCBzZWNvbmRHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgdGhpcmRH
cmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGlyZEdyaWRJdGVtIik7CisgICAg
dGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCB0aGlyZEdy
aWRJdGVtRGF0YS53aWR0aCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0IiwgdGhpcmRHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICB0aGlyZEdy
aWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHRoaXJkR3JpZEl0ZW1EYXRhLngp
OworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15IiwgdGhpcmRH
cmlkSXRlbURhdGEueSk7CisKKyAgICBjaGVja0xheW91dCgiLmdyaWQiKTsKK30KKworZnVuY3Rp
b24gdGVzdENoYW5naW5nR3JpZERlZmluaXRpb25zKCkKK3sKKyAgICB0ZXN0R3JpZERlZmluaXRp
b25zKCcxMHB4IDIwcHgnLCAnMTBweCcsCisgICAgICAgIHsgJ3dpZHRoJzogJzEwJywgJ2hlaWdo
dCc6ICcyMCcsICd4JzogJzAnLCAneSc6ICcxMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnMTAn
LCAnaGVpZ2h0JzogJzEwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRo
JzogJzEwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzMwJyB9KTsKKyAgICB0ZXN0
R3JpZERlZmluaXRpb25zKCc1MHB4JywgJzMwcHggNDBweCcsCisgICAgICAgIHsgJ3dpZHRoJzog
JzMwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3
aWR0aCc6ICczMCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAg
ICAgeyAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMzAnLCAneSc6ICcwJyB9
KTsKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCc1MHB4JywgJzYwcHgnLAorICAgICAgICB7ICd3
aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAg
ICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0s
CisgICAgICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5Jzog
JzUwJyB9KTsKKyAgICB0ZXN0R3JpZERlZmluaXRpb25zKCc1MHB4IDEwMHB4IDE1MHB4JywgJzYw
cHgnLAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcs
ICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnNTAnLCAn
eCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0Jzog
JzE1MCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIHRlc3RDaGFuZ2luZ0dyaWREZWZpbml0aW9ucywgZmFsc2UpOworPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQtdGVt
cGxhdGUte3Jvd3N8Y29sdW1uc30gZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0
aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBncmlkIGl0ZW1zLjwvZGl2PgorCis8ZGl2IHN0
eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQiPgorICAgICAg
ICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJmaXJzdEdyaWRJdGVtIj48L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0ic2Vjb25kR3JpZEl0ZW0i
PjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJ0aGlyZEdy
aWRJdGVtIj48L2Rpdj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hh
bmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1n
cmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMGYwODlkNmE0NTM1MDRkMzJlYWMwZDdlYmJhMmQ2NDEyODVkOGM5NgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1jaGFuZ2Utb3JkZXItYXV0by1mbG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgdGhhdCBncmlkIGl0ZW1zJyAnb3JkZXInIGR5bmFtaWMgdXBkYXRlcyBy
ZWNvbXB1dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVt
cy4KK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93Lmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1
dG8tZmxvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NTU0YWVhZjk2Mzk2ZGFiZTAxYTMwNzljYzY5ODc4
N2M4OWI3OTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sCkBAIC0wLDAgKzEsOTQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENT
U0dyaWRMYXlvdXRFbmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNl
cy9ncmlkLmNzcyIgcmVsPSJzdHlsZXNoZWV0Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJj
ZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Vi
a2l0LWdyaWQtYXV0by1mbG93OiByb3c7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLXJvd3M6
IDUwcHggMTAwcHg7CisgICAgLXdlYmtpdC1ncmlkLXRlbXBsYXRlLWNvbHVtbnM6IDQwcHg7Cit9
CisKKyNmaXJzdEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13
ZWJraXQtZ3JpZC1jb2x1bW46IDE7Cit9CisKKyNzZWNvbmRHcmlkSXRlbSB7CisgICAgLXdlYmtp
dC1ncmlkLXJvdzogMTsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiBhdXRvOworfQorCisjdGhp
cmRHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdy
aWQtY29sdW1uOiBhdXRvOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0R3Jp
ZEl0ZW1zT3JkZXIoZmlyc3RHcmlkSXRlbURhdGEsIHNlY29uZEdyaWRJdGVtRGF0YSwgdGhpcmRH
cmlkSXRlbURhdGEpCit7CisgICAgdmFyIGZpcnN0R3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZmlyc3RHcmlkSXRlbSIpOworICAgIGZpcnN0R3JpZEl0ZW0uc3R5bGUud2Via2l0
T3JkZXIgPSBmaXJzdEdyaWRJdGVtRGF0YS5vcmRlcjsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIGZpcnN0R3JpZEl0ZW1EYXRhLndpZHRoKTsK
KyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCBm
aXJzdEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRl
KCJkYXRhLW9mZnNldC14IiwgZmlyc3RHcmlkSXRlbURhdGEueCk7CisgICAgZmlyc3RHcmlkSXRl
bS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBmaXJzdEdyaWRJdGVtRGF0YS55KTsKKwor
ICAgIHZhciBzZWNvbmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWNvbmRH
cmlkSXRlbSIpOworICAgIHNlY29uZEdyaWRJdGVtLnN0eWxlLndlYmtpdE9yZGVyID0gc2Vjb25k
R3JpZEl0ZW1EYXRhLm9yZGVyOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZC13aWR0aCIsIHNlY29uZEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgc2Vjb25k
R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHNlY29uZEdyaWRJ
dGVtRGF0YS5oZWlnaHQpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1v
ZmZzZXQteCIsIHNlY29uZEdyaWRJdGVtRGF0YS54KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRB
dHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCBzZWNvbmRHcmlkSXRlbURhdGEueSk7CisKKyAgICB2
YXIgdGhpcmRHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGlyZEdyaWRJdGVt
Iik7CisgICAgdGhpcmRHcmlkSXRlbS5zdHlsZS53ZWJraXRPcmRlciA9IHRoaXJkR3JpZEl0ZW1E
YXRhLm9yZGVyOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVk
LXdpZHRoIiwgdGhpcmRHcmlkSXRlbURhdGEud2lkdGgpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0
QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHRoaXJkR3JpZEl0ZW1EYXRhLmhlaWdo
dCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCB0aGly
ZEdyaWRJdGVtRGF0YS54KTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1v
ZmZzZXQteSIsIHRoaXJkR3JpZEl0ZW1EYXRhLnkpOworCisgICAgY2hlY2tMYXlvdXQoIi5ncmlk
Iik7Cit9CisKK2Z1bmN0aW9uIHRlc3RDaGFuZ2luZ0dyaWRJdGVtc09yZGVyKCkKK3sKKyAgICB0
ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAn
LCAnaGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnb3Jk
ZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAn
MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAn
MCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAg
ICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gn
OiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICctMScsICd3aWR0aCc6ICc0
MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnb3Jk
ZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcx
NTAnIH0pOworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigKKyAgICAgICAgeyAnb3JkZXInOiAnMScs
ICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAnIH0sCisg
ICAgICAgIHsgJ29yZGVyJzogJy0xJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICc1MCcsICd4
JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICcwJywgJ3dpZHRoJzogJzQw
JywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0pOworICAgIHRlc3RHcmlk
SXRlbXNPcmRlcigKKyAgICAgICAgeyAnb3JkZXInOiAnMScsICd3aWR0aCc6ICc0MCcsICdoZWln
aHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICct
MScsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwK
KyAgICAgICAgeyAnb3JkZXInOiAnMTAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAn
eCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCB0ZXN0Q2hhbmdpbmdHcmlkSXRlbXNPcmRlciwgZmFsc2UpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXY+VGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGdyaWQgaXRlbXMnICdvcmRl
cicgZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0aW9ucyBvZiBhdXRvbWF0aWNh
bGx5IHBsYWNlZCBncmlkIGl0ZW1zLjwvZGl2PgorCis8ZGl2IHN0eWxlPSJwb3NpdGlvbjogcmVs
YXRpdmUiPgorICAgIDxkaXYgY2xhc3M9ImdyaWQiPgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXpl
ZFRvR3JpZEFyZWEiIGlkPSJmaXJzdEdyaWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz
cz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0ic2Vjb25kR3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8
ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEiIGlkPSJ0aGlyZEdyaWRJdGVtIj48L2Rpdj4KKyAg
ICA8L2Rpdj4KKzwvZGl2PgorCis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>232436</attachid>
            <date>2014-06-03 13:06:35 -0700</date>
            <delta_ts>2014-06-18 02:04:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140603220609.patch</filename>
            <type>text/plain</type>
            <size>21849</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5NTQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWRjYTVlZGJlOTZlNTEw
MTIwOGFmNzA2YzdjZmJhMTNhYTE1ZjJhYi4uZDRlNTBiZWE2ODAyOGIxZmIxOTJjZmYxNjM5NDQw
MmM1ODk0Y2Y3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE0LTA2LTAzICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4KKworICAgICAgICBUaGlzIHBh
dGNoIGltcGxlbWVudHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3
aGVuZXZlciBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcworICAgICAgICBn
cmlkIGxheW91dCBwZXJmIHRlc3RzIHRvIHJ1biBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAg
ICBBZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUt
e3Jvd3N8Y29sdW1uc30gYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2ZQorICAg
ICAgICB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkIGl0ZW1zIGFkaXR0aW9uLCByZW1v
dmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29u
dGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8t
Zmxvdy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdyaWQgaWYg
bmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9zaXRpb25B
ZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNpZ25hdHVyZS4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJH
cmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5LgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxXaWR0aHMpOiBEbyBub3Qg
bmVlZCB0byBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlk
OjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYgZ3JpZCBpcyBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQg
Y2xlYXIgaXQuIFJlbmFtZWQgZnJvbSBjbGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcyBk
aXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlk
IGFzIGRpcnR5LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFy
ayBncmlkIGFzIGRpcnR5IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6
OmV4cGxpY2l0R3JpZERpZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzIGNoYW5nZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25E
aWRDaGFuZ2UpOiBDaGVja3MgaWYgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBuZXcg
bWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzIHNpZ25hdHVyZXMuCisKIDIwMTQt
MDYtMDIgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgogCiAgICAgICAgIFNlbmQg
ZXh0ZXJuYWwgcGxheWJhY2sgcHJvcGVydGllcyB0byBmdWxsc2NyZWVuLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCAxODFhODIzM2U0NDY3NTFjZDRiMDI0ODZiYjFl
ZWFjYWVlMDgwZjljLi5mMDkzMmFmZDVlOWNkMGFmMjQxZjRkNDdmM2E3MGE4NGYyZGI5NTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtNDgsNiArNDgsOSBAQAog
I2luY2x1ZGUgIlJlbmRlckdlb21ldHJ5TWFwLmgiCiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgi
CiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VU
KQorI2luY2x1ZGUgIlJlbmRlckdyaWQuaCIKKyNlbmRpZgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVy
TmFtZWRGbG93RnJhZ21lbnQuaCIKQEAgLTQwMCw3ICs0MDMsMzAgQEAgdm9pZCBSZW5kZXJCb3g6
OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSog
b2xkU3R5bGUKICAgICBpZiAoKG9sZFN0eWxlICYmIG9sZFN0eWxlLT5zaGFwZU91dHNpZGUoKSkg
fHwgc3R5bGUoKS5zaGFwZU91dHNpZGUoKSkKICAgICAgICAgdXBkYXRlU2hhcGVPdXRzaWRlSW5m
b0FmdGVyU3R5bGVDaGFuZ2Uoc3R5bGUoKSwgb2xkU3R5bGUpOwogI2VuZGlmCisKKyNpZiBFTkFC
TEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIHVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFu
Z2Uoc3R5bGUoKSwgb2xkU3R5bGUpOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoQ1NTX0dSSURf
TEFZT1VUKQordm9pZCBSZW5kZXJCb3g6OnVwZGF0ZUdyaWRQb3NpdGlvbkFmdGVyU3R5bGVDaGFu
Z2UoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
Cit7CisgICAgaWYgKCFvbGRTdHlsZSB8fCAhcGFyZW50KCkgfHwgIXBhcmVudCgpLT5pc1JlbmRl
ckdyaWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG9sZFN0eWxlLT5ncmlkSXRlbUNv
bHVtblN0YXJ0KCkgPT0gc3R5bGUuZ3JpZEl0ZW1Db2x1bW5TdGFydCgpCisgICAgICAgICYmIG9s
ZFN0eWxlLT5ncmlkSXRlbUNvbHVtbkVuZCgpID09IHN0eWxlLmdyaWRJdGVtQ29sdW1uRW5kKCkK
KyAgICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93U3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRl
bVJvd1N0YXJ0KCkKKyAgICAgICAgJiYgb2xkU3R5bGUtPmdyaWRJdGVtUm93RW5kKCkgPT0gc3R5
bGUuZ3JpZEl0ZW1Sb3dFbmQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+b3JkZXIoKSA9PSBzdHls
ZS5vcmRlcigpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJdCBzaG91bGQgYmUgcG9zc2li
bGUgdG8gbm90IGRpcnR5IHRoZSBncmlkIGluIHNvbWUgY2FzZXMgKGxpa2UgbW92aW5nIGFuIGV4
cGxpY2l0bHkgcGxhY2VkIGdyaWQgaXRlbSkuCisgICAgLy8gRm9yIG5vdywgaXQncyBtb3JlIHNp
bXBsZSB0byBqdXN0IGFsd2F5cyByZWNvbXB1dGUgdGhlIGdyaWQuCisgICAgdG9SZW5kZXJHcmlk
KHBhcmVudCgpKS0+ZGlydHlHcmlkKCk7CiB9CisjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfU0hB
UEVTKQogdm9pZCBSZW5kZXJCb3g6OnVwZGF0ZVNoYXBlT3V0c2lkZUluZm9BZnRlclN0eWxlQ2hh
bmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4IGUzM2ZiOWRhZmQ1MTQ3ZDhh
NWRjOGM3MjZhOTcwMGY5ZTUyYWE3NmUuLmVkNDZkZDllNmE3YTRkZDQ0MGYzNmNmZDI5MGJhZDc5
ZWM2YWNiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3gu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAgLTY1Niw2ICs2
NTYsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUmVuZGVyT2JqZWN0KiBzcGxpdEFub255bW91c0JveGVz
QXJvdW5kQ2hpbGQoUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZCk7CiAgCiBwcml2YXRlOgorI2lm
IEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdm9pZCB1cGRhdGVHcmlkUG9zaXRpb25BZnRl
clN0eWxlQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0
eWxlKTsKKyNlbmRpZgogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIHZvaWQgdXBkYXRlU2hh
cGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBS
ZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAKaW5kZXggMjFiYzI4ZTFiYjk4YmEwMTg2ZGNiMWM0YmFkODQxMGFlNWI4NWFj
MS4uODAxMjlmZWVmODI4ZDA1MjNkMmFkZDJmODBiZDQ5NWVhOWVmOTYwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApAQCAtMTYzLDYgKzE2Myw3IEBAIHB1YmxpYzoK
IAogUmVuZGVyR3JpZDo6UmVuZGVyR3JpZChFbGVtZW50JiBlbGVtZW50LCBQYXNzUmVmPFJlbmRl
clN0eWxlPiBzdHlsZSkKICAgICA6IFJlbmRlckJsb2NrKGVsZW1lbnQsIHN0ZDo6bW92ZShzdHls
ZSksIDApCisgICAgLCBtX2dyaWRJc0RpcnR5KHRydWUpCiAgICAgLCBtX29yZGVySXRlcmF0b3Io
KnRoaXMpCiB7CiAgICAgLy8gQWxsIG9mIG91ciBjaGlsZHJlbiBtdXN0IGJlIGJsb2NrIGxldmVs
LgpAQCAtMjM0LDggKzIzNSw2IEBAIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xv
Z2ljYWxXaWR0aHMoTGF5b3V0VW5pdCYgbWluTG9naWNhbFdpZHRoLCBMYXlvCiAKICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGFkZCBpbiB0aGUgc2Nyb2xsYmFyV2lkdGggKGUuZy4gc2Vl
IFJlbmRlckZsZXhpYmxlQm94KS4KICAgICB9Ci0KLSAgICBjb25zdF9jYXN0PFJlbmRlckdyaWQq
Pih0aGlzKS0+Y2xlYXJHcmlkKCk7CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQpAQCAtNjU4LDExICs2NTcsMTUgQEAgdm9pZCBSZW5kZXJHcmlk
OjppbnNlcnRJdGVtSW50b0dyaWQoUmVuZGVyQm94KiBjaGlsZCwgc2l6ZV90IHJvd1RyYWNrLCBz
aXplX3QgY28KIAogdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIHsKLSAgICBB
U1NFUlQoIWdyaWRXYXNQb3B1bGF0ZWQoKSk7Ci0gICAgQVNTRVJUKG1fZ3JpZEl0ZW1Db29yZGlu
YXRlLmlzRW1wdHkoKSk7CisgICAgaWYgKCFncmlkSXNEaXJ0eSgpKQorICAgICAgICByZXR1cm47
CiAKICAgICBwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKTsKIAorICAgIC8v
IFdlIGNsZWFyIHRoZSBkaXJ0eSBiaXQgaGVyZSBhcyB0aGUgZ3JpZCBzaXplcyBoYXZlIGJlZW4g
dXBkYXRlZCwgdGhpcyBtZWFucworICAgIC8vIHRoYXQgd2UgY2FuIHNhZmVseSBjYWxsIGdyaWRS
b3dDb3VudCgpIC8gZ3JpZENvbHVtbkNvdW50KCkuCisgICAgbV9ncmlkSXNEaXJ0eSA9IGZhbHNl
OworCiAgICAgVmVjdG9yPFJlbmRlckJveCo+IGF1dG9NYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwog
ICAgIFZlY3RvcjxSZW5kZXJCb3gqPiBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1zOwog
ICAgIEdyaWRBdXRvRmxvdyBhdXRvRmxvdyA9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCk7CkBAIC02
OTQsNiArNjk3LDggQEAgdm9pZCBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkKIAogICAg
IHBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRlbXNPbkdyaWQoc3BlY2lmaWVkTWFqb3JBeGlzQXV0
b0dyaWRJdGVtcyk7CiAgICAgcGxhY2VBdXRvTWFqb3JBeGlzSXRlbXNPbkdyaWQoYXV0b01ham9y
QXhpc0F1dG9HcmlkSXRlbXMpOworCisgICAgbV9ncmlkLnNocmlua1RvRml0KCk7CiB9CiAKIHZv
aWQgUmVuZGVyR3JpZDo6cG9wdWxhdGVFeHBsaWNpdEdyaWRBbmRPcmRlckl0ZXJhdG9yKCkKQEAg
LTc4OSwxMCArNzk0LDExIEBAIFJlbmRlckdyaWQ6OkdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBS
ZW5kZXJHcmlkOjphdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uCiAgICAgcmV0dXJuIChm
bG93ID09IEF1dG9GbG93Q29sdW1uKSA/IEZvclJvd3MgOiBGb3JDb2x1bW5zOwogfQogCi12b2lk
IFJlbmRlckdyaWQ6OmNsZWFyR3JpZCgpCit2b2lkIFJlbmRlckdyaWQ6OmRpcnR5R3JpZCgpCiB7
Ci0gICAgbV9ncmlkLmNsZWFyKCk7CisgICAgbV9ncmlkLnJlc2l6ZSgwKTsKICAgICBtX2dyaWRJ
dGVtQ29vcmRpbmF0ZS5jbGVhcigpOworICAgIG1fZ3JpZElzRGlydHkgPSB0cnVlOwogfQogCiB2
b2lkIFJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVtcygpCkBAIC04NDIsNyArODQ4LDYgQEAgdm9p
ZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQogCiAgICAgLy8gbWluIC8gbWF4IGxvZ2lj
YWwgaGVpZ2h0IGlzIGhhbmRsZWQgaW4gdXBkYXRlTG9naWNhbEhlaWdodCgpLgogICAgIHNldExv
Z2ljYWxIZWlnaHQobG9naWNhbEhlaWdodCgpICsgYm9yZGVyQW5kUGFkZGluZ0xvZ2ljYWxIZWln
aHQoKSk7Ci0gICAgY2xlYXJHcmlkKCk7CiB9CiAKIEdyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6
OmNhY2hlZEdyaWRDb29yZGluYXRlKGNvbnN0IFJlbmRlckJveCogZ3JpZEl0ZW0pIGNvbnN0CkBA
IC0xMTg2LDYgKzExOTEsNjEgQEAgY29uc3QgY2hhciogUmVuZGVyR3JpZDo6cmVuZGVyTmFtZSgp
IGNvbnN0CiAgICAgcmV0dXJuICJSZW5kZXJHcmlkIjsKIH0KIAordm9pZCBSZW5kZXJHcmlkOjph
ZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxk
KQoreworICAgIFJlbmRlckJsb2NrOjphZGRDaGlsZChuZXdDaGlsZCwgYmVmb3JlQ2hpbGQpOwor
CisgICAgaWYgKGdyaWRJc0RpcnR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIGNv
dWxkIGF2b2lkIHRvIGRpcnR5IHRoZSBncmlkIGlmIHRoZSBuZXcgY2hpbGQgaGFzIGRlZmluaXRl
IHBvc2l0aW9ucyBhbmQgZ3JpZCBhdXRvLWZsb3cgcHJvcGVydHkgaXMgbm9uZS4KKyAgICAvLyBJ
biB0aGF0IGNhc2Ugd2Ugd2lsbCBuZWVkIHRvIHVwZGF0ZSBtX29yZGVySXRlcmF0b3IgbWFudWFs
bHkgYWRkaW5nIHRoZSBjaGlsZC4KKyAgICBkaXJ0eUdyaWQoKTsKK30KKworUmVuZGVyT2JqZWN0
KiBSZW5kZXJHcmlkOjpyZW1vdmVDaGlsZChSZW5kZXJPYmplY3QmIGNoaWxkKQoreworICAgIFJl
bmRlck9iamVjdCogbmV4dFNpYmxpbmcgPSBSZW5kZXJCbG9jazo6cmVtb3ZlQ2hpbGQoY2hpbGQp
OworCisgICAgaWYgKCFncmlkSXNEaXJ0eSgpKSB7CisgICAgICAgIC8vIFdlIGNvdWxkIGF2b2lk
IHRvIGRpcnR5IHRoZSBncmlkIGlmIGdyaWQgYXV0by1mbG93IHByb3BlcnR5IGlzIG5vbmUuCisg
ICAgICAgIC8vIEluIHRoYXQgY2FzZSB3ZSB3aWxsIG5lZWQgdG8gdXBkYXRlIG1fb3JkZXJJdGVy
YXRvciBtYW51YWxseSByZW1vdmluZyB0aGUgY2hpbGQuCisgICAgICAgIGRpcnR5R3JpZCgpOwor
ICAgIH0KKworICAgIHJldHVybiBuZXh0U2libGluZzsKK30KKwordm9pZCBSZW5kZXJHcmlkOjpz
dHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9s
ZFN0eWxlKQoreworICAgIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShkaWZmLCBvbGRTdHls
ZSk7CisgICAgaWYgKCFvbGRTdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhlIGZv
bGxvd2luZyBjaGVja3MgY291bGQgYmUgbmFycm93ZWQgZG93biBpZiB3ZSBrZXB0IHRyYWNrIG9m
IHdoaWNoIHR5cGUgb2YgZ3JpZCBpdGVtcyB3ZSBoYXZlOgorICAgIC8vIC0gZXhwbGljaXQgZ3Jp
ZCBzaXplIGNoYW5nZXMgaW1wYWN0IG5lZ2F0aXZlIGV4cGxpY2l0bHkgcG9zaXRpb25lZCBhbmQg
YXV0by1wbGFjZWQgZ3JpZCBpdGVtcy4KKyAgICAvLyAtIG5hbWVkIGdyaWQgbGluZXMgb25seSBp
bXBhY3QgZ3JpZCBpdGVtcyB3aXRoIG5hbWVkIGdyaWQgbGluZXMuCisgICAgLy8gLSBhdXRvLWZs
b3cgY2hhbmdlcyBvbmx5IGltcGFjdHMgYXV0by1wbGFjZWQgY2hpbGRyZW4uCisKKyAgICBpZiAo
ZXhwbGljaXRHcmlkRGlkUmVzaXplKG9sZFN0eWxlKQorICAgICAgICB8fCBuYW1lZEdyaWRMaW5l
c0RlZmluaXRpb25EaWRDaGFuZ2Uob2xkU3R5bGUpCisgICAgICAgIHx8IG9sZFN0eWxlLT5ncmlk
QXV0b0Zsb3coKSAhPSBzdHlsZSgpLmdyaWRBdXRvRmxvdygpKQorICAgICAgICBkaXJ0eUdyaWQo
KTsKK30KKworYm9vbCBSZW5kZXJHcmlkOjpleHBsaWNpdEdyaWREaWRSZXNpemUoY29uc3QgUmVu
ZGVyU3R5bGUqIG9sZFN0eWxlKSBjb25zdAoreworICAgIHJldHVybiBvbGRTdHlsZS0+Z3JpZENv
bHVtbnMoKS5zaXplKCkgIT0gc3R5bGUoKS5ncmlkQ29sdW1ucygpLnNpemUoKQorICAgICAgICB8
fCBvbGRTdHlsZS0+Z3JpZFJvd3MoKS5zaXplKCkgIT0gc3R5bGUoKS5ncmlkUm93cygpLnNpemUo
KTsKK30KKworYm9vbCBSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFu
Z2UoY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBjb25zdAoreworICAgIHJldHVybiBvbGRT
dHlsZS0+bmFtZWRHcmlkUm93TGluZXMoKSAhPSBzdHlsZSgpLm5hbWVkR3JpZFJvd0xpbmVzKCkK
KyAgICAgICAgfHwgb2xkU3R5bGUtPm5hbWVkR3JpZENvbHVtbkxpbmVzKCkgIT0gc3R5bGUoKS5u
YW1lZEdyaWRDb2x1bW5MaW5lcygpOworfQorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8qIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpICovCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckdyaWQuaAppbmRleCA4MTg0ZWNmYjc0MjYyYTU0YjE4ZWQ3YTYxODM4NjE2NTA0MDJi
ZTQ3Li5jOGYwZmU3NzgxMTg2Yzc4MTFmNWM3OTE1ZjAxYzJkNzhhYzAzNWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAg
IGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgY29sdW1uUG9zaXRpb25zKCkgY29uc3QgeyByZXR1
cm4gbV9jb2x1bW5Qb3NpdGlvbnM7IH0KICAgICBjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIHJv
d1Bvc2l0aW9ucygpIGNvbnN0IHsgcmV0dXJuIG1fcm93UG9zaXRpb25zOyB9CiAKKyAgICB2b2lk
IGRpcnR5R3JpZCgpOworCiBwcml2YXRlOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciogcmVuZGVy
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgYm9vbCBpc1JlbmRlckdyaWQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjcsMjEgKzEyOSwzMSBAQCBwcml2
YXRlOgogCiAjaWZuZGVmIE5ERUJVRwogICAgIGJvb2wgdHJhY2tzQXJlV2lkZXJUaGFuTWluVHJh
Y2tCcmVhZHRoKEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiwgY29uc3QgVmVjdG9yPEdyaWRUcmFj
az4mKTsKLSAgICBib29sIGdyaWRXYXNQb3B1bGF0ZWQoKSBjb25zdCB7IHJldHVybiAhbV9ncmlk
LmlzRW1wdHkoKSAmJiAhbV9ncmlkWzBdLmlzRW1wdHkoKTsgfQogI2VuZGlmCiAKKyAgICB2aXJ0
dWFsIHZvaWQgYWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBuZXdDaGlsZCwgUmVuZGVyT2JqZWN0KiBi
ZWZvcmVDaGlsZCA9IDApIG92ZXJyaWRlOworICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0KiByZW1v
dmVDaGlsZChSZW5kZXJPYmplY3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBzdHls
ZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKikgb3ZlcnJpZGU7
CisKKyAgICBib29sIGV4cGxpY2l0R3JpZERpZFJlc2l6ZShjb25zdCBSZW5kZXJTdHlsZSopIGNv
bnN0OworICAgIGJvb2wgbmFtZWRHcmlkTGluZXNEZWZpbml0aW9uRGlkQ2hhbmdlKGNvbnN0IFJl
bmRlclN0eWxlKikgY29uc3Q7CisKKyAgICBib29sIGdyaWRJc0RpcnR5KCkgY29uc3QgeyByZXR1
cm4gbV9ncmlkSXNEaXJ0eTsgfQorCiAgICAgc2l6ZV90IGdyaWRDb2x1bW5Db3VudCgpIGNvbnN0
CiAgICAgewotICAgICAgICBBU1NFUlQoZ3JpZFdhc1BvcHVsYXRlZCgpKTsKKyAgICAgICAgQVNT
RVJUKCFncmlkSXNEaXJ0eSgpKTsKICAgICAgICAgcmV0dXJuIG1fZ3JpZFswXS5zaXplKCk7CiAg
ICAgfQogICAgIHNpemVfdCBncmlkUm93Q291bnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgQVNT
RVJUKGdyaWRXYXNQb3B1bGF0ZWQoKSk7CisgICAgICAgIEFTU0VSVCghZ3JpZElzRGlydHkoKSk7
CiAgICAgICAgIHJldHVybiBtX2dyaWQuc2l6ZSgpOwogICAgIH0KIAogICAgIFZlY3RvcjxWZWN0
b3I8VmVjdG9yPFJlbmRlckJveCosIDE+Pj4gbV9ncmlkOworICAgIGJvb2wgbV9ncmlkSXNEaXJ0
eTsKICAgICBWZWN0b3I8TGF5b3V0VW5pdD4gbV9jb2x1bW5Qb3NpdGlvbnM7CiAgICAgVmVjdG9y
PExheW91dFVuaXQ+IG1fcm93UG9zaXRpb25zOwogICAgIEhhc2hNYXA8Y29uc3QgUmVuZGVyQm94
KiwgR3JpZENvb3JkaW5hdGU+IG1fZ3JpZEl0ZW1Db29yZGluYXRlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYwMzFkNTk2
MTRjNGFkZWViNTUwMzNlMmZkNWUzOGJiMDI4ZDc3ZmIuLmZhYmE0MGFjY2YwZDMzN2FkNzhmOWU4
MWJkZDA4NDQxZjFlOTIyMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wNi0wMyAgTWFu
dWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBbQ1NTIEdy
aWQgTGF5b3V0XSBHcmlkIG9wdGltaXphdGlvbiBrZWVwaW5nIHRyYWNrIG9mIGl0cyBzdGF0dXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMjMzMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZyb20gQmxp
bmsgcjE1NTI2MiBieSA8amNoYWZmcmFpeEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTmV3IGxh
eW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUte3Jvd3N8Y29sdW1u
c30gYW5kIG9yZGVyIHByb3BlcnRpZXMuCisKKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91
dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNv
bnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1h
dXRvLWZsb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxh
eW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy5odG1sOiBBZGRlZC4KKwogMjAx
NC0wNi0wMiAgTWFydGluIEhvY2sgIDxtaG9ja0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCBUZXN0RXhwZWN0YXRpb25zIGdhcmRlbmluZyBhZnRlciByMTY5NTMyLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdl
LWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlk
LXJlY29tcHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzU4NGE2MTU2N2I1NWRm
MzUyZTYyODYyYjRhMjM1N2E1OGI4ZGE4ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlk
LXJlY29tcHV0ZS1jaGlsZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgZ3JpZC10ZW1wbGF0ZS17cm93c3xjb2x1bW5zfSBkeW5hbWljIHVwZGF0ZXMg
cmVjb21wdXRlcyB0aGUgcG9zaXRpb25zIG9mIGF1dG9tYXRpY2FsbHkgcGxhY2VkIGdyaWQgaXRl
bXMuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNv
bXB1dGUtY2hpbGQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQt
Y29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQzNTU2NWYyYzE4MzJiYWM1ZjIxNzY3NzZhMzQxZGFjMDY1YjQ5NDEKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5l
ci1jaGFuZ2UtZXhwbGljaXQtZ3JpZC1yZWNvbXB1dGUtY2hpbGQuaHRtbApAQCAtMCwwICsxLDky
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRD
U1NHcmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3JpcHQ+Cis8bGluayBocmVmPSJyZXNvdXJj
ZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3Vy
Y2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CisuZ3JpZCB7CisgICAgLXdl
YmtpdC1ncmlkLWF1dG8tZmxvdzogcm93OworfQorI2ZpcnN0R3JpZEl0ZW0geworICAgIC13ZWJr
aXQtZ3JpZC1yb3c6IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogMTsKK30KKworI3Nl
Y29uZEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAxOworICAgIC13ZWJraXQtZ3Jp
ZC1jb2x1bW46IGF1dG87Cit9CisKKyN0aGlyZEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQt
cm93OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87Cit9Cis8L3N0eWxlPgor
PHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RHcmlkRGVmaW5pdGlvbnMoZ3JpZFRlbXBsYXRlUm93cywg
Z3JpZFRlbXBsYXRlQ29sdW1ucywgZmlyc3RHcmlkSXRlbURhdGEsIHNlY29uZEdyaWRJdGVtRGF0
YSwgdGhpcmRHcmlkSXRlbURhdGEpCit7CisgICAgdmFyIGdyaWRFbGVtZW50ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeUNsYXNzTmFtZSgiZ3JpZCIpWzBdOworICAgIGdyaWRFbGVtZW50LnN0eWxl
LndlYmtpdEdyaWRUZW1wbGF0ZVJvd3MgPSBncmlkVGVtcGxhdGVSb3dzOworICAgIGdyaWRFbGVt
ZW50LnN0eWxlLndlYmtpdEdyaWRUZW1wbGF0ZUNvbHVtbnMgPSBncmlkVGVtcGxhdGVDb2x1bW5z
OworCisgICAgdmFyIGZpcnN0R3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZmly
c3RHcmlkSXRlbSIpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVj
dGVkLXdpZHRoIiwgZmlyc3RHcmlkSXRlbURhdGEud2lkdGgpOworICAgIGZpcnN0R3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIGZpcnN0R3JpZEl0ZW1EYXRhLmhl
aWdodCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCBm
aXJzdEdyaWRJdGVtRGF0YS54KTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0
YS1vZmZzZXQteSIsIGZpcnN0R3JpZEl0ZW1EYXRhLnkpOworCisgICAgdmFyIHNlY29uZEdyaWRJ
dGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY29uZEdyaWRJdGVtIik7CisgICAgc2Vj
b25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwgc2Vjb25kR3Jp
ZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEt
ZXhwZWN0ZWQtaGVpZ2h0Iiwgc2Vjb25kR3JpZEl0ZW1EYXRhLmhlaWdodCk7CisgICAgc2Vjb25k
R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14Iiwgc2Vjb25kR3JpZEl0ZW1EYXRh
LngpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteSIsIHNl
Y29uZEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZhciB0aGlyZEdyaWRJdGVtID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInRoaXJkR3JpZEl0ZW0iKTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0
dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIHRoaXJkR3JpZEl0ZW1EYXRhLndpZHRoKTsK
KyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQiLCB0
aGlyZEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRl
KCJkYXRhLW9mZnNldC14IiwgdGhpcmRHcmlkSXRlbURhdGEueCk7CisgICAgdGhpcmRHcmlkSXRl
bS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCB0aGlyZEdyaWRJdGVtRGF0YS55KTsKKwor
ICAgIGNoZWNrTGF5b3V0KCIuZ3JpZCIpOworfQorCitmdW5jdGlvbiB0ZXN0Q2hhbmdpbmdHcmlk
RGVmaW5pdGlvbnMoKQoreworICAgIHRlc3RHcmlkRGVmaW5pdGlvbnMoJzEwcHggMjBweCcsICcx
MHB4JywKKyAgICAgICAgeyAnd2lkdGgnOiAnMTAnLCAnaGVpZ2h0JzogJzIwJywgJ3gnOiAnMCcs
ICd5JzogJzEwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICcxMCcsICdoZWlnaHQnOiAnMTAnLCAn
eCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnMTAnLCAnaGVpZ2h0Jzog
JzAnLCAneCc6ICcwJywgJ3knOiAnMzAnIH0pOworICAgIHRlc3RHcmlkRGVmaW5pdGlvbnMoJzUw
cHgnLCAnMzBweCA0MHB4JywKKyAgICAgICAgeyAnd2lkdGgnOiAnMzAnLCAnaGVpZ2h0JzogJzAn
LCAneCc6ICcwJywgJ3knOiAnNTAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzMwJywgJ2hlaWdo
dCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICc0MCcs
ICdoZWlnaHQnOiAnNTAnLCAneCc6ICczMCcsICd5JzogJzAnIH0pOworICAgIHRlc3RHcmlkRGVm
aW5pdGlvbnMoJzUwcHgnLCAnNjBweCcsCisgICAgICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdo
dCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcs
ICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAnd2lkdGgn
OiAnNjAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0pOworICAgIHRlc3RH
cmlkRGVmaW5pdGlvbnMoJzUwcHggMTAwcHggMTUwcHgnLCAnNjBweCcsCisgICAgICAgIHsgJ3dp
ZHRoJzogJzYwJywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0sCisgICAg
ICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9
LAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWlnaHQnOiAnMTUwJywgJ3gnOiAnMCcsICd5
JzogJzE1MCcgfSk7Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdENo
YW5naW5nR3JpZERlZmluaXRpb25zLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdj5UaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZC10ZW1wbGF0ZS17cm93c3xjb2x1bW5z
fSBkeW5hbWljIHVwZGF0ZXMgcmVjb21wdXRlcyB0aGUgcG9zaXRpb25zIG9mIGF1dG9tYXRpY2Fs
bHkgcGxhY2VkIGdyaWQgaXRlbXMuPC9kaXY+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxh
dGl2ZSI+CisgICAgPGRpdiBjbGFzcz0iZ3JpZCI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVk
VG9HcmlkQXJlYSIgaWQ9ImZpcnN0R3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNz
PSJzaXplZFRvR3JpZEFyZWEiIGlkPSJzZWNvbmRHcmlkSXRlbSI+PC9kaXY+CisgICAgICAgIDxk
aXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgaWQ9InRoaXJkR3JpZEl0ZW0iPjwvZGl2PgorICAg
IDwvZGl2PgorPC9kaXY+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRl
bS1jaGFuZ2Utb3JkZXItYXV0by1mbG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjA4OWQ2
YTQ1MzUwNGQzMmVhYzBkN2ViYmEyZDY0MTI4NWQ4Yzk2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRv
LWZsb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0
IGdyaWQgaXRlbXMnICdvcmRlcicgZHluYW1pYyB1cGRhdGVzIHJlY29tcHV0ZXMgdGhlIHBvc2l0
aW9ucyBvZiBhdXRvbWF0aWNhbGx5IHBsYWNlZCBncmlkIGl0ZW1zLgorUEFTUworUEFTUworUEFT
UworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3Jp
ZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDk1NTRhZWFmOTYzOTZkYWJlMDFhMzA3OWNjNjk4Nzg3Yzg5Yjc5NwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtaXRlbS1jaGFu
Z2Utb3JkZXItYXV0by1mbG93Lmh0bWwKQEAgLTAsMCArMSw5NCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0Q1NTR3JpZExheW91dEVuYWJsZWQi
LCAxKTsKKzwvc2NyaXB0PgorPGxpbmsgaHJlZj0icmVzb3VyY2VzL2dyaWQuY3NzIiByZWw9InN0
eWxlc2hlZXQiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMi
Pjwvc2NyaXB0PgorPHN0eWxlPgorLmdyaWQgeworICAgIC13ZWJraXQtZ3JpZC1hdXRvLWZsb3c6
IHJvdzsKKyAgICAtd2Via2l0LWdyaWQtdGVtcGxhdGUtcm93czogNTBweCAxMDBweDsKKyAgICAt
d2Via2l0LWdyaWQtdGVtcGxhdGUtY29sdW1uczogNDBweDsKK30KKworI2ZpcnN0R3JpZEl0ZW0g
eworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjog
MTsKK30KKworI3NlY29uZEdyaWRJdGVtIHsKKyAgICAtd2Via2l0LWdyaWQtcm93OiAxOworICAg
IC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87Cit9CisKKyN0aGlyZEdyaWRJdGVtIHsKKyAgICAt
d2Via2l0LWdyaWQtcm93OiBhdXRvOworICAgIC13ZWJraXQtZ3JpZC1jb2x1bW46IGF1dG87Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3RHcmlkSXRlbXNPcmRlcihmaXJzdEdy
aWRJdGVtRGF0YSwgc2Vjb25kR3JpZEl0ZW1EYXRhLCB0aGlyZEdyaWRJdGVtRGF0YSkKK3sKKyAg
ICB2YXIgZmlyc3RHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdEdyaWRJ
dGVtIik7CisgICAgZmlyc3RHcmlkSXRlbS5zdHlsZS53ZWJraXRPcmRlciA9IGZpcnN0R3JpZEl0
ZW1EYXRhLm9yZGVyOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVj
dGVkLXdpZHRoIiwgZmlyc3RHcmlkSXRlbURhdGEud2lkdGgpOworICAgIGZpcnN0R3JpZEl0ZW0u
c2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIGZpcnN0R3JpZEl0ZW1EYXRhLmhl
aWdodCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCBm
aXJzdEdyaWRJdGVtRGF0YS54KTsKKyAgICBmaXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0
YS1vZmZzZXQteSIsIGZpcnN0R3JpZEl0ZW1EYXRhLnkpOworCisgICAgdmFyIHNlY29uZEdyaWRJ
dGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlY29uZEdyaWRJdGVtIik7CisgICAgc2Vj
b25kR3JpZEl0ZW0uc3R5bGUud2Via2l0T3JkZXIgPSBzZWNvbmRHcmlkSXRlbURhdGEub3JkZXI7
CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLXdpZHRoIiwg
c2Vjb25kR3JpZEl0ZW1EYXRhLndpZHRoKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRBdHRyaWJ1
dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0Iiwgc2Vjb25kR3JpZEl0ZW1EYXRhLmhlaWdodCk7Cisg
ICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC14Iiwgc2Vjb25kR3Jp
ZEl0ZW1EYXRhLngpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZz
ZXQteSIsIHNlY29uZEdyaWRJdGVtRGF0YS55KTsKKworICAgIHZhciB0aGlyZEdyaWRJdGVtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoaXJkR3JpZEl0ZW0iKTsKKyAgICB0aGlyZEdyaWRJ
dGVtLnN0eWxlLndlYmtpdE9yZGVyID0gdGhpcmRHcmlkSXRlbURhdGEub3JkZXI7CisgICAgdGhp
cmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCB0aGlyZEdyaWRJ
dGVtRGF0YS53aWR0aCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0IiwgdGhpcmRHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICB0aGlyZEdyaWRJ
dGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIHRoaXJkR3JpZEl0ZW1EYXRhLngpOwor
ICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15IiwgdGhpcmRHcmlk
SXRlbURhdGEueSk7CisKKyAgICBjaGVja0xheW91dCgiLmdyaWQiKTsKK30KKworZnVuY3Rpb24g
dGVzdENoYW5naW5nR3JpZEl0ZW1zT3JkZXIoKQoreworICAgIHRlc3RHcmlkSXRlbXNPcmRlcigK
KyAgICAgICAgeyAnb3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMTAwJywg
J3gnOiAnMCcsICd5JzogJzUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICcwJywgJ3dpZHRoJzog
JzQwJywgJ2hlaWdodCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICdv
cmRlcic6ICcwJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5Jzog
JzE1MCcgfSk7CisgICAgdGVzdEdyaWRJdGVtc09yZGVyKAorICAgICAgICB7ICdvcmRlcic6ICcw
JywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3knOiAnNTAnIH0s
CisgICAgICAgIHsgJ29yZGVyJzogJy0xJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICc1MCcs
ICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICcwJywgJ3dpZHRoJzog
JzQwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzE1MCcgfSk7CisgICAgdGVzdEdy
aWRJdGVtc09yZGVyKAorICAgICAgICB7ICdvcmRlcic6ICcxJywgJ3dpZHRoJzogJzQwJywgJ2hl
aWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzE1MCcgfSwKKyAgICAgICAgeyAnb3JkZXInOiAn
LTEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0s
CisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzEwMCcs
ICd4JzogJzAnLCAneSc6ICc1MCcgfSk7CisgICAgdGVzdEdyaWRJdGVtc09yZGVyKAorICAgICAg
ICB7ICdvcmRlcic6ICcxJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcw
JywgJ3knOiAnNTAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJy0xJywgJ3dpZHRoJzogJzQwJywg
J2hlaWdodCc6ICc1MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICdvcmRlcic6
ICcxMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICcxNTAn
IH0pOworfQorCit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibG9hZCIsIHRlc3RDaGFuZ2luZ0dy
aWRJdGVtc09yZGVyLCBmYWxzZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRpdj5U
aGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVtcycgJ29yZGVyJyBkeW5hbWljIHVwZGF0ZXMg
cmVjb21wdXRlcyB0aGUgcG9zaXRpb25zIG9mIGF1dG9tYXRpY2FsbHkgcGxhY2VkIGdyaWQgaXRl
bXMuPC9kaXY+CisKKzxkaXYgc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZSI+CisgICAgPGRpdiBj
bGFzcz0iZ3JpZCI+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgaWQ9ImZp
cnN0R3JpZEl0ZW0iPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJzaXplZFRvR3JpZEFyZWEi
IGlkPSJzZWNvbmRHcmlkSXRlbSI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9H
cmlkQXJlYSIgaWQ9InRoaXJkR3JpZEl0ZW0iPjwvZGl2PgorICAgIDwvZGl2PgorPC9kaXY+CisK
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233300</attachid>
            <date>2014-06-18 02:04:50 -0700</date>
            <delta_ts>2014-08-01 04:23:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132332-20140618110426.patch</filename>
            <type>text/plain</type>
            <size>26511</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMyOTMzYmFkNzM5M2Vl
OWNlYWNjN2I5Yzk4YWE0NDY2YTNhZDA2NC4uNjZjYmM4NmFiMzg2MGNmNTM5ZmZiMzUzMzU4ZGZj
ZWNhYzYyZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE0LTA2LTE4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3Jp
ZCBMYXlvdXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGlu
ayByMTU1MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4gYW5kIHIxNzU5MTIgYnkKKyAg
ICAgICAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVu
dHMgdGhlIGxvZ2ljIHRvIGNvcnJlY3RseSBpbnZhbGlkYXRlIG1fZ3JpZCB3aGVuZXZlcgorICAg
ICAgICBuZWVkZWQgbWFya2luZyBpdCBhcyBkaXJ0eS4gVGhpcyBtYWtlcyBncmlkIGxheW91dCBw
ZXJmIHRlc3RzIHRvIHJ1bgorICAgICAgICBhcm91bmQgMjklIGZhc3Rlci4KKworICAgICAgICBB
ZGQgbmV3IGxheW91dCB0ZXN0cyB0byBjaGVjayBjaGFuZ2VzIGluIGdyaWQtdGVtcGxhdGUte3Jv
d3N8Y29sdW1uc30KKyAgICAgICAgYW5kIG9yZGVyIHByb3BlcnRpZXMuIFdlIGFscmVhZHkgaGF2
ZSB0ZXN0cyBmb3IgdGhlIG90aGVyIGNhc2VzOiBncmlkCisgICAgICAgIGl0ZW1zIGFkZGl0aW9u
LCByZW1vdmFsLCBldGMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvY3NzLWdyaWQtbGF5b3V0L2dy
aWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCisg
ICAgICAgICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVy
LWF1dG8tZmxvdy5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Nzcy1ncmlkLWxheW91dC9zdGFs
ZS1ncmlkLWxheW91dC0yLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L3N0YWxlLWdyaWQtbGF5b3V0Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVtb3ZlTGVmdG92ZXJBbm9u
eW1vdXNCbG9jayk6IERpcnR5IGdyaWQgZm9yCisgICAgICAgIGFub255bW91cyBibG9ja3Mgd3Jh
cHBpbmcgZ3JpZCBpdGVtcy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6c3R5bGVEaWRDaGFuZ2UpOiBJbnZhbGlkYXRlIGdy
aWQgaWYgbmVlZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVHcmlkUG9z
aXRpb25BZnRlclN0eWxlQ2hhbmdlKTogTWFyayBncmlkIGFzCisgICAgICAgIGRpcnR5IGlmIG5l
ZWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6IEFkZCBuZXcgbWV0aG9kIHNp
Z25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKTogQnkgZGVmYXVsdCBncmlkIGlzIGRpcnR5
LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6Y29tcHV0ZUludHJpbnNpY0xvZ2ljYWxX
aWR0aHMpOiBEbyBub3QgbmVlZCB0bworICAgICAgICBtYXJrIGdyaWQgYXMgZGlydHkuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKTogT25seSBydW4gaWYg
Z3JpZCBpcyBkaXJ0eS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmRpcnR5R3JpZCk6
IE1hcmsgZ3JpZCBhcyBkaXJ0eSBhbmQgY2xlYXIgaXQuCisgICAgICAgIFJlbmFtZWQgZnJvbSBj
bGVhckdyaWQoKS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEdyaWRJdGVt
cyk6IERvIG5vdCBuZWVkIHRvIG1hcmsgZ3JpZCBhcworICAgICAgICBkaXJ0eS4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OmFkZENoaWxkKTogTWFyayBncmlkIGFzIGRpcnR5LgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyR3JpZDo6cmVtb3ZlQ2hpbGQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckdyaWQ6OnN0eWxlRGlkQ2hhbmdlKTogTWFyayBncmlkIGFzIGRpcnR5
IGlmIG5lZWRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZERp
ZFJlc2l6ZSk6IENoZWNrcyBpZiBncmlkIHNpemUgaGFzCisgICAgICAgIGNoYW5nZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFu
Z2UpOiBDaGVja3MgaWYKKyAgICAgICAgbmFtZWQgZ3JpZCBsaW5lcyBoYXZlIGNoYW5nZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpjbGVhckdyaWQpOiBEZWxldGVkLiBSZW5hbWVk
IHRvIGRpcnR5R3JpZCgpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmg6IEFkZCBu
ZXcgbWVtYmVyIG1fZ3JpZElzRGlydHkgYW5kIG5ldyBtZXRob2RzCisgICAgICAgIHNpZ25hdHVy
ZXMuCisKIDIwMTQtMDYtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBJbnB1dCB0eXBlPXRpbWUgZWxlbWVudHMgc3R5bGVkIHdpdGgg
U1ZHIGZvbnRzIGhhdmUgMCB3aWR0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggODYzNmQzYjk3YTkyZGVjNGQ3OWEyYjcxZWFmYjYyNmFjMzI3NTRiNC4uMjFk
MzM2MDQzNzQzZjQ3YmI0NWJkZjUxYmVkNDIwMDA2ODFkNjdjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC01MCw2ICs1MCw5IEBACiAjaW5jbHVkZSAiUmVu
ZGVyQ29tYmluZVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3gu
aCIKICNpbmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgorI2lmIEVOQUJMRShDU1NfR1JJRF9M
QVlPVVQpCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVySXRlcmF0b3IuaCIKICNpbmNsdWRlICJSZW5kZXJM
YXllci5oIgpAQCAtNzE0LDYgKzcxNywxMiBAQCB2b2lkIFJlbmRlckJsb2NrOjpyZW1vdmVMZWZ0
b3ZlckFub255bW91c0Jsb2NrKFJlbmRlckJsb2NrKiBjaGlsZCkKICAgICAvLyBSZW1vdmUgYWxs
IHRoZSBpbmZvcm1hdGlvbiBpbiB0aGUgZmxvdyB0aHJlYWQgYXNzb2NpYXRlZCB3aXRoIHRoZSBs
ZWZ0b3ZlciBhbm9ueW1vdXMgYmxvY2suCiAgICAgY2hpbGQtPnJlbW92ZUZyb21SZW5kZXJGbG93
VGhyZWFkKCk7CiAKKyNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQorICAgIC8vIFJlbmRlckdy
aWQga2VlcHMgdHJhY2sgb2YgaXRzIGNoaWxkcmVuLCB3ZSBtdXN0IG5vdGlmeSBpdCBhYm91dCBj
aGFuZ2VzIGluIHRoZSB0cmVlLgorICAgIGlmIChjaGlsZC0+cGFyZW50KCktPmlzUmVuZGVyR3Jp
ZCgpKQorICAgICAgICB0b1JlbmRlckdyaWQoY2hpbGQtPnBhcmVudCgpKS0+ZGlydHlHcmlkKCk7
CisjZW5kaWYKKwogICAgIGNoaWxkLT5zZXRQYXJlbnQoMCk7CiAgICAgY2hpbGQtPnNldFByZXZp
b3VzU2libGluZygwKTsKICAgICBjaGlsZC0+c2V0TmV4dFNpYmxpbmcoMCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCmluZGV4IGRkNzY4NWM1MzUxMjVkZjRiMmRlODNiOWFm
MmE2ZDVlNzNmYmYyYmUuLjJjZWYxZGNiYzY2MGNiMTVjOTRkMzBhMzc5MTJjNGMxYTM1YjQyNmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCkBAIC00OCw2ICs0OCw5IEBA
CiAjaW5jbHVkZSAiUmVuZGVyR2VvbWV0cnlNYXAuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUu
aCIKICNpbmNsdWRlICJSZW5kZXJJdGVyYXRvci5oIgorI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlP
VVQpCisjaW5jbHVkZSAiUmVuZGVyR3JpZC5oIgorI2VuZGlmCiAjaW5jbHVkZSAiUmVuZGVyTGF5
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0b3IuaCIKICNpbmNsdWRlICJSZW5k
ZXJOYW1lZEZsb3dGcmFnbWVudC5oIgpAQCAtNDAwLDcgKzQwMywzMCBAQCB2b2lkIFJlbmRlckJv
eDo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZQogICAgIGlmICgob2xkU3R5bGUgJiYgb2xkU3R5bGUtPnNoYXBlT3V0c2lkZSgp
KSB8fCBzdHlsZSgpLnNoYXBlT3V0c2lkZSgpKQogICAgICAgICB1cGRhdGVTaGFwZU91dHNpZGVJ
bmZvQWZ0ZXJTdHlsZUNoYW5nZShzdHlsZSgpLCBvbGRTdHlsZSk7CiAjZW5kaWYKKworI2lmIEVO
QUJMRShDU1NfR1JJRF9MQVlPVVQpCisgICAgdXBkYXRlR3JpZFBvc2l0aW9uQWZ0ZXJTdHlsZUNo
YW5nZShzdHlsZSgpLCBvbGRTdHlsZSk7CisjZW5kaWYKK30KKworI2lmIEVOQUJMRShDU1NfR1JJ
RF9MQVlPVVQpCit2b2lkIFJlbmRlckJveDo6dXBkYXRlR3JpZFBvc2l0aW9uQWZ0ZXJTdHlsZUNo
YW5nZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkKK3sKKyAgICBpZiAoIW9sZFN0eWxlIHx8ICFwYXJlbnQoKSB8fCAhcGFyZW50KCktPmlzUmVu
ZGVyR3JpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAob2xkU3R5bGUtPmdyaWRJdGVt
Q29sdW1uU3RhcnQoKSA9PSBzdHlsZS5ncmlkSXRlbUNvbHVtblN0YXJ0KCkKKyAgICAgICAgJiYg
b2xkU3R5bGUtPmdyaWRJdGVtQ29sdW1uRW5kKCkgPT0gc3R5bGUuZ3JpZEl0ZW1Db2x1bW5FbmQo
KQorICAgICAgICAmJiBvbGRTdHlsZS0+Z3JpZEl0ZW1Sb3dTdGFydCgpID09IHN0eWxlLmdyaWRJ
dGVtUm93U3RhcnQoKQorICAgICAgICAmJiBvbGRTdHlsZS0+Z3JpZEl0ZW1Sb3dFbmQoKSA9PSBz
dHlsZS5ncmlkSXRlbVJvd0VuZCgpCisgICAgICAgICYmIG9sZFN0eWxlLT5vcmRlcigpID09IHN0
eWxlLm9yZGVyKCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEl0IHNob3VsZCBiZSBwb3Nz
aWJsZSB0byBub3QgZGlydHkgdGhlIGdyaWQgaW4gc29tZSBjYXNlcyAobGlrZSBtb3ZpbmcgYW4g
ZXhwbGljaXRseSBwbGFjZWQgZ3JpZCBpdGVtKS4KKyAgICAvLyBGb3Igbm93LCBpdCdzIG1vcmUg
c2ltcGxlIHRvIGp1c3QgYWx3YXlzIHJlY29tcHV0ZSB0aGUgZ3JpZC4KKyAgICB0b1JlbmRlckdy
aWQocGFyZW50KCkpLT5kaXJ0eUdyaWQoKTsKIH0KKyNlbmRpZgogCiAjaWYgRU5BQkxFKENTU19T
SEFQRVMpCiB2b2lkIFJlbmRlckJveDo6dXBkYXRlU2hhcGVPdXRzaWRlSW5mb0FmdGVyU3R5bGVD
aGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKaW5kZXggZTMzZmI5ZGFmZDUxNDdk
OGE1ZGM4YzcyNmE5NzAwZjllNTJhYTc2ZS4uZWQ0NmRkOWU2YTdhNGRkNDQwZjM2Y2ZkMjkwYmFk
NzllYzZhY2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApAQCAtNjU2LDYg
KzY1Niw5IEBAIHByb3RlY3RlZDoKICAgICBSZW5kZXJPYmplY3QqIHNwbGl0QW5vbnltb3VzQm94
ZXNBcm91bmRDaGlsZChSZW5kZXJPYmplY3QqIGJlZm9yZUNoaWxkKTsKICAKIHByaXZhdGU6Cisj
aWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKKyAgICB2b2lkIHVwZGF0ZUdyaWRQb3NpdGlvbkFm
dGVyU3R5bGVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xk
U3R5bGUpOworI2VuZGlmCiAjaWYgRU5BQkxFKENTU19TSEFQRVMpCiAgICAgdm9pZCB1cGRhdGVT
aGFwZU91dHNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0
IFJlbmRlclN0eWxlKiBvbGRTdHlsZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcAppbmRleCA2MWNkMjZjZTZkNzE1YTQyNDIyNTJhZDM0NDMxYzU4Y2YxMGFm
ZDNiLi43MmFkZmYzZjk0Y2U5OGUzMjhiNzAyOTc0MmI1ZDg2Y2M5YjE0YTVkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC0xNjQsNiArMTY0LDcgQEAgcHVibGlj
OgogCiBSZW5kZXJHcmlkOjpSZW5kZXJHcmlkKEVsZW1lbnQmIGVsZW1lbnQsIFBhc3NSZWY8UmVu
ZGVyU3R5bGU+IHN0eWxlKQogICAgIDogUmVuZGVyQmxvY2soZWxlbWVudCwgc3RkOjptb3ZlKHN0
eWxlKSwgMCkKKyAgICAsIG1fZ3JpZElzRGlydHkodHJ1ZSkKICAgICAsIG1fb3JkZXJJdGVyYXRv
cigqdGhpcykKIHsKICAgICAvLyBBbGwgb2Ygb3VyIGNoaWxkcmVuIG11c3QgYmUgYmxvY2sgbGV2
ZWwuCkBAIC0yMzUsOCArMjM2LDYgQEAgdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlSW50cmluc2lj
TG9naWNhbFdpZHRocyhMYXlvdXRVbml0JiBtaW5Mb2dpY2FsV2lkdGgsIExheW8KIAogICAgICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYWRkIGluIHRoZSBzY3JvbGxiYXJXaWR0aCAoZS5nLiBz
ZWUgUmVuZGVyRmxleGlibGVCb3gpLgogICAgIH0KLQotICAgIGNvbnN0X2Nhc3Q8UmVuZGVyR3Jp
ZCo+KHRoaXMpLT5jbGVhckdyaWQoKTsKIH0KIAogdm9pZCBSZW5kZXJHcmlkOjpjb21wdXRlUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpCkBAIC02MzksMTEgKzYzOCwxNSBAQCB2b2lkIFJlbmRlckdy
aWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gqIGNoaWxkLCBjb25zdCBHcmlkUmVzb2x2
ZWRQb3NpdGlvbgogCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogewotICAg
IEFTU0VSVCghZ3JpZFdhc1BvcHVsYXRlZCgpKTsKLSAgICBBU1NFUlQobV9ncmlkSXRlbUNvb3Jk
aW5hdGUuaXNFbXB0eSgpKTsKKyAgICBpZiAoIWdyaWRJc0RpcnR5KCkpCisgICAgICAgIHJldHVy
bjsKIAogICAgIHBvcHVsYXRlRXhwbGljaXRHcmlkQW5kT3JkZXJJdGVyYXRvcigpOwogCisgICAg
Ly8gV2UgY2xlYXIgdGhlIGRpcnR5IGJpdCBoZXJlIGFzIHRoZSBncmlkIHNpemVzIGhhdmUgYmVl
biB1cGRhdGVkLCB0aGlzIG1lYW5zCisgICAgLy8gdGhhdCB3ZSBjYW4gc2FmZWx5IGNhbGwgZ3Jp
ZFJvd0NvdW50KCkgLyBncmlkQ29sdW1uQ291bnQoKS4KKyAgICBtX2dyaWRJc0RpcnR5ID0gZmFs
c2U7CisKICAgICBWZWN0b3I8UmVuZGVyQm94Kj4gYXV0b01ham9yQXhpc0F1dG9HcmlkSXRlbXM7
CiAgICAgVmVjdG9yPFJlbmRlckJveCo+IHNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXM7
CiAgICAgR3JpZEF1dG9GbG93IGF1dG9GbG93ID0gc3R5bGUoKS5ncmlkQXV0b0Zsb3coKTsKQEAg
LTY3NSw2ICs2NzgsOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlSXRlbXNPbkdyaWQoKQogCiAg
ICAgcGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZChzcGVjaWZpZWRNYWpvckF4aXNB
dXRvR3JpZEl0ZW1zKTsKICAgICBwbGFjZUF1dG9NYWpvckF4aXNJdGVtc09uR3JpZChhdXRvTWFq
b3JBeGlzQXV0b0dyaWRJdGVtcyk7CisKKyAgICBtX2dyaWQuc2hyaW5rVG9GaXQoKTsKIH0KIAog
dm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQpA
QCAtNzcwLDEwICs3NzUsMTEgQEAgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIFJlbmRlckdyaWQ6
OmF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSBjb25zdAogICAgIHJldHVybiAoZmxv
dyA9PSBBdXRvRmxvd0NvbHVtbikgPyBGb3JSb3dzIDogRm9yQ29sdW1uczsKIH0KIAotdm9pZCBS
ZW5kZXJHcmlkOjpjbGVhckdyaWQoKQordm9pZCBSZW5kZXJHcmlkOjpkaXJ0eUdyaWQoKQogewot
ICAgIG1fZ3JpZC5jbGVhcigpOworICAgIG1fZ3JpZC5yZXNpemUoMCk7CiAgICAgbV9ncmlkSXRl
bUNvb3JkaW5hdGUuY2xlYXIoKTsKKyAgICBtX2dyaWRJc0RpcnR5ID0gdHJ1ZTsKIH0KIAogdm9p
ZCBSZW5kZXJHcmlkOjpsYXlvdXRHcmlkSXRlbXMoKQpAQCAtODIzLDcgKzgyOSw2IEBAIHZvaWQg
UmVuZGVyR3JpZDo6bGF5b3V0R3JpZEl0ZW1zKCkKIAogICAgIC8vIG1pbiAvIG1heCBsb2dpY2Fs
IGhlaWdodCBpcyBoYW5kbGVkIGluIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKS4KICAgICBzZXRMb2dp
Y2FsSGVpZ2h0KGxvZ2ljYWxIZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0
KCkpOwotICAgIGNsZWFyR3JpZCgpOwogfQogCiBHcmlkQ29vcmRpbmF0ZSBSZW5kZXJHcmlkOjpj
YWNoZWRHcmlkQ29vcmRpbmF0ZShjb25zdCBSZW5kZXJCb3gqIGdyaWRJdGVtKSBjb25zdApAQCAt
ODg0LDYgKzg4OSw1NCBAQCBjb25zdCBjaGFyKiBSZW5kZXJHcmlkOjpyZW5kZXJOYW1lKCkgY29u
c3QKICAgICByZXR1cm4gIlJlbmRlckdyaWQiOwogfQogCit2b2lkIFJlbmRlckdyaWQ6OmFkZENo
aWxkKFJlbmRlck9iamVjdCogbmV3Q2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQpCit7
CisgICAgUmVuZGVyQmxvY2s6OmFkZENoaWxkKG5ld0NoaWxkLCBiZWZvcmVDaGlsZCk7CisKKyAg
ICBpZiAoIWdyaWRJc0RpcnR5KCkpCisgICAgICAgIGRpcnR5R3JpZCgpOworfQorCitSZW5kZXJP
YmplY3QqIFJlbmRlckdyaWQ6OnJlbW92ZUNoaWxkKFJlbmRlck9iamVjdCYgY2hpbGQpCit7Cisg
ICAgUmVuZGVyT2JqZWN0KiBuZXh0U2libGluZyA9IFJlbmRlckJsb2NrOjpyZW1vdmVDaGlsZChj
aGlsZCk7CisKKyAgICBpZiAoIWdyaWRJc0RpcnR5KCkpCisgICAgICAgIGRpcnR5R3JpZCgpOwor
CisgICAgcmV0dXJuIG5leHRTaWJsaW5nOworfQorCit2b2lkIFJlbmRlckdyaWQ6OnN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUp
Cit7CisgICAgUmVuZGVyQmxvY2s6OnN0eWxlRGlkQ2hhbmdlKGRpZmYsIG9sZFN0eWxlKTsKKyAg
ICBpZiAoIW9sZFN0eWxlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBUaGUgZm9sbG93aW5n
IGNoZWNrcyBjb3VsZCBiZSBuYXJyb3dlZCBkb3duIGlmIHdlIGtlcHQgdHJhY2sgb2Ygd2hpY2gg
dHlwZSBvZiBncmlkIGl0ZW1zIHdlIGhhdmU6CisgICAgLy8gLSBleHBsaWNpdCBncmlkIHNpemUg
Y2hhbmdlcyBpbXBhY3QgbmVnYXRpdmUgZXhwbGljaXRseSBwb3NpdGlvbmVkIGFuZCBhdXRvLXBs
YWNlZCBncmlkIGl0ZW1zLgorICAgIC8vIC0gbmFtZWQgZ3JpZCBsaW5lcyBvbmx5IGltcGFjdCBn
cmlkIGl0ZW1zIHdpdGggbmFtZWQgZ3JpZCBsaW5lcy4KKyAgICAvLyAtIGF1dG8tZmxvdyBjaGFu
Z2VzIG9ubHkgaW1wYWN0cyBhdXRvLXBsYWNlZCBjaGlsZHJlbi4KKworICAgIGlmIChleHBsaWNp
dEdyaWREaWRSZXNpemUob2xkU3R5bGUpCisgICAgICAgIHx8IG5hbWVkR3JpZExpbmVzRGVmaW5p
dGlvbkRpZENoYW5nZShvbGRTdHlsZSkKKyAgICAgICAgfHwgb2xkU3R5bGUtPmdyaWRBdXRvRmxv
dygpICE9IHN0eWxlKCkuZ3JpZEF1dG9GbG93KCkpCisgICAgICAgIGRpcnR5R3JpZCgpOworfQor
Citib29sIFJlbmRlckdyaWQ6OmV4cGxpY2l0R3JpZERpZFJlc2l6ZShjb25zdCBSZW5kZXJTdHls
ZSogb2xkU3R5bGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG9sZFN0eWxlLT5ncmlkQ29sdW1ucygp
LnNpemUoKSAhPSBzdHlsZSgpLmdyaWRDb2x1bW5zKCkuc2l6ZSgpCisgICAgICAgIHx8IG9sZFN0
eWxlLT5ncmlkUm93cygpLnNpemUoKSAhPSBzdHlsZSgpLmdyaWRSb3dzKCkuc2l6ZSgpOworfQor
Citib29sIFJlbmRlckdyaWQ6Om5hbWVkR3JpZExpbmVzRGVmaW5pdGlvbkRpZENoYW5nZShjb25z
dCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG9sZFN0eWxlLT5u
YW1lZEdyaWRSb3dMaW5lcygpICE9IHN0eWxlKCkubmFtZWRHcmlkUm93TGluZXMoKQorICAgICAg
ICB8fCBvbGRTdHlsZS0+bmFtZWRHcmlkQ29sdW1uTGluZXMoKSAhPSBzdHlsZSgpLm5hbWVkR3Jp
ZENvbHVtbkxpbmVzKCk7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
LyogRU5BQkxFKENTU19HUklEX0xBWU9VVCkgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5oCmluZGV4IDNiM2I2ZWI0MTM5NTYxNTgzMmI0ZDE2M2VhYThhNDA2MjkyMmY2YzIuLjUx
NzdiNjJjMTMyMWEzNDQ3ZjZhMjM4NDU4M2FkMDQ3YWJmNTU4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckdyaWQuaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
VmVjdG9yPExheW91dFVuaXQ+JiBjb2x1bW5Qb3NpdGlvbnMoKSBjb25zdCB7IHJldHVybiBtX2Nv
bHVtblBvc2l0aW9uczsgfQogICAgIGNvbnN0IFZlY3RvcjxMYXlvdXRVbml0PiYgcm93UG9zaXRp
b25zKCkgY29uc3QgeyByZXR1cm4gbV9yb3dQb3NpdGlvbnM7IH0KIAorICAgIHZvaWQgZGlydHlH
cmlkKCk7CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyR3JpZCgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KQEAgLTEwOCwyMSArMTEwLDMxIEBAIHByaXZhdGU6CiAK
ICNpZm5kZWYgTkRFQlVHCiAgICAgYm9vbCB0cmFja3NBcmVXaWRlclRoYW5NaW5UcmFja0JyZWFk
dGgoR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uLCBjb25zdCBWZWN0b3I8R3JpZFRyYWNrPiYpOwot
ICAgIGJvb2wgZ3JpZFdhc1BvcHVsYXRlZCgpIGNvbnN0IHsgcmV0dXJuICFtX2dyaWQuaXNFbXB0
eSgpICYmICFtX2dyaWRbMF0uaXNFbXB0eSgpOyB9CiAjZW5kaWYKIAorICAgIHZpcnR1YWwgdm9p
ZCBhZGRDaGlsZChSZW5kZXJPYmplY3QqIG5ld0NoaWxkLCBSZW5kZXJPYmplY3QqIGJlZm9yZUNo
aWxkID0gMCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBSZW5kZXJPYmplY3QqIHJlbW92ZUNoaWxk
KFJlbmRlck9iamVjdCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqKSBvdmVycmlkZTsKKworICAg
IGJvb2wgZXhwbGljaXRHcmlkRGlkUmVzaXplKGNvbnN0IFJlbmRlclN0eWxlKikgY29uc3Q7Cisg
ICAgYm9vbCBuYW1lZEdyaWRMaW5lc0RlZmluaXRpb25EaWRDaGFuZ2UoY29uc3QgUmVuZGVyU3R5
bGUqKSBjb25zdDsKKworICAgIGJvb2wgZ3JpZElzRGlydHkoKSBjb25zdCB7IHJldHVybiBtX2dy
aWRJc0RpcnR5OyB9CisKICAgICBzaXplX3QgZ3JpZENvbHVtbkNvdW50KCkgY29uc3QKICAgICB7
Ci0gICAgICAgIEFTU0VSVChncmlkV2FzUG9wdWxhdGVkKCkpOworICAgICAgICBBU1NFUlQoIWdy
aWRJc0RpcnR5KCkpOwogICAgICAgICByZXR1cm4gbV9ncmlkWzBdLnNpemUoKTsKICAgICB9CiAg
ICAgc2l6ZV90IGdyaWRSb3dDb3VudCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoZ3Jp
ZFdhc1BvcHVsYXRlZCgpKTsKKyAgICAgICAgQVNTRVJUKCFncmlkSXNEaXJ0eSgpKTsKICAgICAg
ICAgcmV0dXJuIG1fZ3JpZC5zaXplKCk7CiAgICAgfQogCiAgICAgVmVjdG9yPFZlY3RvcjxWZWN0
b3I8UmVuZGVyQm94KiwgMT4+PiBtX2dyaWQ7CisgICAgYm9vbCBtX2dyaWRJc0RpcnR5OwogICAg
IFZlY3RvcjxMYXlvdXRVbml0PiBtX2NvbHVtblBvc2l0aW9uczsKICAgICBWZWN0b3I8TGF5b3V0
VW5pdD4gbV9yb3dQb3NpdGlvbnM7CiAgICAgSGFzaE1hcDxjb25zdCBSZW5kZXJCb3gqLCBHcmlk
Q29vcmRpbmF0ZT4gbV9ncmlkSXRlbUNvb3JkaW5hdGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjQ5OTFhODNiM2Q4OTNh
ZTRmYzU3MzRjZDBiZWVjOTUzNGQwOGI4Yi4uN2Q5NmRmODkwNzg0MDJkMDVhYzM3Mzc2MjAwYjFh
ZjU1YWMyNGE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTA2LTE4ICBNYW51ZWwgUmVn
byBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtDU1MgR3JpZCBMYXlv
dXRdIEdyaWQgb3B0aW1pemF0aW9uIGtlZXBpbmcgdHJhY2sgb2YgaXRzIHN0YXR1cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMyMzMyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRnJvbSBCbGluayByMTU1
MjYyIGJ5IDxqY2hhZmZyYWl4QGNocm9taXVtLm9yZz4gYW5kIHIxNzU5MTIgYnkKKyAgICAgICAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBOZXcgbGF5b3V0IHRlc3RzIHRvIGNoZWNr
IGNoYW5nZXMgaW4gZ3JpZC10ZW1wbGF0ZS17cm93c3xjb2x1bW5zfSwKKyAgICAgICAgb3JkZXIg
cHJvcGVydGllcyBhbmQgYW5vbnltb3VzIGl0ZW1zLgorCisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNo
aWxkLmh0bWw6CisgICAgICAgIEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzLWdyaWQtbGF5b3V0
L2dyaWQtaXRlbS1jaGFuZ2Utb3JkZXItYXV0by1mbG93LWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1v
cmRlci1hdXRvLWZsb3cuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MtZ3JpZC1sYXlv
dXQvc3RhbGUtZ3JpZC1sYXlvdXQtMi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvY3NzLWdyaWQtbGF5b3V0L3N0YWxlLWdyaWQtbGF5b3V0LTIuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3MtZ3JpZC1sYXlvdXQvc3RhbGUtZ3JpZC1sYXlvdXQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy1ncmlkLWxheW91dC9zdGFsZS1ncmlkLWxheW91
dC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNi0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIElucHV0IHR5cGU9dGltZSBlbGVtZW50cyBz
dHlsZWQgd2l0aCBTVkcgZm9udHMgaGF2ZSAwIHdpZHRoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWNvbnRhaW5lci1jaGFuZ2UtZXhwbGljaXQtZ3Jp
ZC1yZWNvbXB1dGUtY2hpbGQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNTg0YTYxNTY3YjU1ZGYzNTJlNjI4NjJiNGEy
MzU3YTU4YjhkYThkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3Jp
ZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hhbmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNo
aWxkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK1RoaXMgdGVzdCBjaGVja3MgdGhhdCBn
cmlkLXRlbXBsYXRlLXtyb3dzfGNvbHVtbnN9IGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRo
ZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVtcy4KK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBsaWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1jb250YWluZXItY2hh
bmdlLWV4cGxpY2l0LWdyaWQtcmVjb21wdXRlLWNoaWxkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1NTY1
ZjJjMTgzMmJhYzVmMjE3Njc3NmEzNDFkYWMwNjViNDk0MQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L2dyaWQtY29udGFpbmVyLWNoYW5nZS1leHBs
aWNpdC1ncmlkLXJlY29tcHV0ZS1jaGlsZC5odG1sCkBAIC0wLDAgKzEsOTIgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdENTU0dyaWRMYXlvdXRF
bmFibGVkIiwgMSk7Cis8L3NjcmlwdD4KKzxsaW5rIGhyZWY9InJlc291cmNlcy9ncmlkLmNzcyIg
cmVsPSJzdHlsZXNoZWV0Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5
b3V0LmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5ncmlkIHsKKyAgICAtd2Via2l0LWdyaWQtYXV0
by1mbG93OiByb3c7Cit9CisjZmlyc3RHcmlkSXRlbSB7CisgICAgLXdlYmtpdC1ncmlkLXJvdzog
YXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxOworfQorCisjc2Vjb25kR3JpZEl0ZW0g
eworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE7CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0
bzsKK30KKworI3RoaXJkR3JpZEl0ZW0geworICAgIC13ZWJraXQtZ3JpZC1yb3c6IGF1dG87Cisg
ICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdEdyaWREZWZpbml0aW9ucyhncmlkVGVtcGxhdGVSb3dzLCBncmlkVGVtcGxhdGVD
b2x1bW5zLCBmaXJzdEdyaWRJdGVtRGF0YSwgc2Vjb25kR3JpZEl0ZW1EYXRhLCB0aGlyZEdyaWRJ
dGVtRGF0YSkKK3sKKyAgICB2YXIgZ3JpZEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
Q2xhc3NOYW1lKCJncmlkIilbMF07CisgICAgZ3JpZEVsZW1lbnQuc3R5bGUud2Via2l0R3JpZFRl
bXBsYXRlUm93cyA9IGdyaWRUZW1wbGF0ZVJvd3M7CisgICAgZ3JpZEVsZW1lbnQuc3R5bGUud2Vi
a2l0R3JpZFRlbXBsYXRlQ29sdW1ucyA9IGdyaWRUZW1wbGF0ZUNvbHVtbnM7CisKKyAgICB2YXIg
Zmlyc3RHcmlkSXRlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdEdyaWRJdGVtIik7
CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBm
aXJzdEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUo
ImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgZmlyc3RHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBm
aXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIGZpcnN0R3JpZEl0ZW1E
YXRhLngpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15Iiwg
Zmlyc3RHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgc2Vjb25kR3JpZEl0ZW0gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2Vjb25kR3JpZEl0ZW0iKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5z
ZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBzZWNvbmRHcmlkSXRlbURhdGEud2lk
dGgpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWln
aHQiLCBzZWNvbmRHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBzZWNvbmRHcmlkSXRlbS5zZXRB
dHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCBzZWNvbmRHcmlkSXRlbURhdGEueCk7CisgICAgc2Vj
b25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15Iiwgc2Vjb25kR3JpZEl0ZW1E
YXRhLnkpOworCisgICAgdmFyIHRoaXJkR3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgidGhpcmRHcmlkSXRlbSIpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRh
LWV4cGVjdGVkLXdpZHRoIiwgdGhpcmRHcmlkSXRlbURhdGEud2lkdGgpOworICAgIHRoaXJkR3Jp
ZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIHRoaXJkR3JpZEl0ZW1E
YXRhLmhlaWdodCk7CisgICAgdGhpcmRHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0
LXgiLCB0aGlyZEdyaWRJdGVtRGF0YS54KTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0
ZSgiZGF0YS1vZmZzZXQteSIsIHRoaXJkR3JpZEl0ZW1EYXRhLnkpOworCisgICAgY2hlY2tMYXlv
dXQoIi5ncmlkIik7Cit9CisKK2Z1bmN0aW9uIHRlc3RDaGFuZ2luZ0dyaWREZWZpbml0aW9ucygp
Cit7CisgICAgdGVzdEdyaWREZWZpbml0aW9ucygnMTBweCAyMHB4JywgJzEwcHgnLAorICAgICAg
ICB7ICd3aWR0aCc6ICcxMCcsICdoZWlnaHQnOiAnMjAnLCAneCc6ICcwJywgJ3knOiAnMTAnIH0s
CisgICAgICAgIHsgJ3dpZHRoJzogJzEwJywgJ2hlaWdodCc6ICcxMCcsICd4JzogJzAnLCAneSc6
ICcwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICcxMCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAn
LCAneSc6ICczMCcgfSk7CisgICAgdGVzdEdyaWREZWZpbml0aW9ucygnNTBweCcsICczMHB4IDQw
cHgnLAorICAgICAgICB7ICd3aWR0aCc6ICczMCcsICdoZWlnaHQnOiAnMCcsICd4JzogJzAnLCAn
eSc6ICc1MCcgfSwKKyAgICAgICAgeyAnd2lkdGgnOiAnMzAnLCAnaGVpZ2h0JzogJzUwJywgJ3gn
OiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICc1
MCcsICd4JzogJzMwJywgJ3knOiAnMCcgfSk7CisgICAgdGVzdEdyaWREZWZpbml0aW9ucygnNTBw
eCcsICc2MHB4JywKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAnaGVpZ2h0JzogJzAnLCAneCc6
ICcwJywgJ3knOiAnNTAnIH0sCisgICAgICAgIHsgJ3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICc1
MCcsICd4JzogJzAnLCAneSc6ICcwJyB9LAorICAgICAgICB7ICd3aWR0aCc6ICc2MCcsICdoZWln
aHQnOiAnMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSk7CisgICAgdGVzdEdyaWREZWZpbml0aW9u
cygnNTBweCAxMDBweCAxNTBweCcsICc2MHB4JywKKyAgICAgICAgeyAnd2lkdGgnOiAnNjAnLCAn
aGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAnd2lkdGgn
OiAnNjAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsg
J3dpZHRoJzogJzYwJywgJ2hlaWdodCc6ICcxNTAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsK
K30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCB0ZXN0Q2hhbmdpbmdHcmlkRGVm
aW5pdGlvbnMsIGZhbHNlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PlRoaXMg
dGVzdCBjaGVja3MgdGhhdCBncmlkLXRlbXBsYXRlLXtyb3dzfGNvbHVtbnN9IGR5bmFtaWMgdXBk
YXRlcyByZWNvbXB1dGVzIHRoZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3Jp
ZCBpdGVtcy48L2Rpdj4KKworPGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgICA8
ZGl2IGNsYXNzPSJncmlkIj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBp
ZD0iZmlyc3RHcmlkSXRlbSI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9Hcmlk
QXJlYSIgaWQ9InNlY29uZEdyaWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6
ZWRUb0dyaWRBcmVhIiBpZD0idGhpcmRHcmlkSXRlbSI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rp
dj4KKworPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mt
Z3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRl
ci1hdXRvLWZsb3ctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBmMDg5ZDZhNDUzNTA0ZDMyZWFj
MGQ3ZWJiYTJkNjQxMjg1ZDhjOTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdlLW9yZGVyLWF1dG8tZmxvdy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw1IEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZ3JpZCBpdGVtcycg
J29yZGVyJyBkeW5hbWljIHVwZGF0ZXMgcmVjb21wdXRlcyB0aGUgcG9zaXRpb25zIG9mIGF1dG9t
YXRpY2FsbHkgcGxhY2VkIGdyaWQgaXRlbXMuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9ncmlkLWl0ZW0tY2hhbmdl
LW9yZGVyLWF1dG8tZmxvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQv
Z3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRvLWZsb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTU1NGFl
YWY5NjM5NmRhYmUwMWEzMDc5Y2M2OTg3ODdjODliNzk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvZ3JpZC1pdGVtLWNoYW5nZS1vcmRlci1hdXRv
LWZsb3cuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIub3Zl
cnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRDU1NHcmlkTGF5b3V0RW5hYmxlZCIsIDEpOworPC9zY3Jp
cHQ+Cis8bGluayBocmVmPSJyZXNvdXJjZXMvZ3JpZC5jc3MiIHJlbD0ic3R5bGVzaGVldCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8
c3R5bGU+CisuZ3JpZCB7CisgICAgLXdlYmtpdC1ncmlkLWF1dG8tZmxvdzogcm93OworICAgIC13
ZWJraXQtZ3JpZC10ZW1wbGF0ZS1yb3dzOiA1MHB4IDEwMHB4OworICAgIC13ZWJraXQtZ3JpZC10
ZW1wbGF0ZS1jb2x1bW5zOiA0MHB4OworfQorCisjZmlyc3RHcmlkSXRlbSB7CisgICAgLXdlYmtp
dC1ncmlkLXJvdzogYXV0bzsKKyAgICAtd2Via2l0LWdyaWQtY29sdW1uOiAxOworfQorCisjc2Vj
b25kR3JpZEl0ZW0geworICAgIC13ZWJraXQtZ3JpZC1yb3c6IDE7CisgICAgLXdlYmtpdC1ncmlk
LWNvbHVtbjogYXV0bzsKK30KKworI3RoaXJkR3JpZEl0ZW0geworICAgIC13ZWJraXQtZ3JpZC1y
b3c6IGF1dG87CisgICAgLXdlYmtpdC1ncmlkLWNvbHVtbjogYXV0bzsKK30KKzwvc3R5bGU+Cis8
c2NyaXB0PgorZnVuY3Rpb24gdGVzdEdyaWRJdGVtc09yZGVyKGZpcnN0R3JpZEl0ZW1EYXRhLCBz
ZWNvbmRHcmlkSXRlbURhdGEsIHRoaXJkR3JpZEl0ZW1EYXRhKQoreworICAgIHZhciBmaXJzdEdy
aWRJdGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpcnN0R3JpZEl0ZW0iKTsKKyAgICBm
aXJzdEdyaWRJdGVtLnN0eWxlLndlYmtpdE9yZGVyID0gZmlyc3RHcmlkSXRlbURhdGEub3JkZXI7
CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBm
aXJzdEdyaWRJdGVtRGF0YS53aWR0aCk7CisgICAgZmlyc3RHcmlkSXRlbS5zZXRBdHRyaWJ1dGUo
ImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgZmlyc3RHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBm
aXJzdEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1vZmZzZXQteCIsIGZpcnN0R3JpZEl0ZW1E
YXRhLngpOworICAgIGZpcnN0R3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15Iiwg
Zmlyc3RHcmlkSXRlbURhdGEueSk7CisKKyAgICB2YXIgc2Vjb25kR3JpZEl0ZW0gPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgic2Vjb25kR3JpZEl0ZW0iKTsKKyAgICBzZWNvbmRHcmlkSXRlbS5z
dHlsZS53ZWJraXRPcmRlciA9IHNlY29uZEdyaWRJdGVtRGF0YS5vcmRlcjsKKyAgICBzZWNvbmRH
cmlkSXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtd2lkdGgiLCBzZWNvbmRHcmlkSXRl
bURhdGEud2lkdGgpOworICAgIHNlY29uZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBl
Y3RlZC1oZWlnaHQiLCBzZWNvbmRHcmlkSXRlbURhdGEuaGVpZ2h0KTsKKyAgICBzZWNvbmRHcmlk
SXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXgiLCBzZWNvbmRHcmlkSXRlbURhdGEueCk7
CisgICAgc2Vjb25kR3JpZEl0ZW0uc2V0QXR0cmlidXRlKCJkYXRhLW9mZnNldC15Iiwgc2Vjb25k
R3JpZEl0ZW1EYXRhLnkpOworCisgICAgdmFyIHRoaXJkR3JpZEl0ZW0gPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGhpcmRHcmlkSXRlbSIpOworICAgIHRoaXJkR3JpZEl0ZW0uc3R5bGUud2Vi
a2l0T3JkZXIgPSB0aGlyZEdyaWRJdGVtRGF0YS5vcmRlcjsKKyAgICB0aGlyZEdyaWRJdGVtLnNl
dEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC13aWR0aCIsIHRoaXJkR3JpZEl0ZW1EYXRhLndpZHRo
KTsKKyAgICB0aGlyZEdyaWRJdGVtLnNldEF0dHJpYnV0ZSgiZGF0YS1leHBlY3RlZC1oZWlnaHQi
LCB0aGlyZEdyaWRJdGVtRGF0YS5oZWlnaHQpOworICAgIHRoaXJkR3JpZEl0ZW0uc2V0QXR0cmli
dXRlKCJkYXRhLW9mZnNldC14IiwgdGhpcmRHcmlkSXRlbURhdGEueCk7CisgICAgdGhpcmRHcmlk
SXRlbS5zZXRBdHRyaWJ1dGUoImRhdGEtb2Zmc2V0LXkiLCB0aGlyZEdyaWRJdGVtRGF0YS55KTsK
KworICAgIGNoZWNrTGF5b3V0KCIuZ3JpZCIpOworfQorCitmdW5jdGlvbiB0ZXN0Q2hhbmdpbmdH
cmlkSXRlbXNPcmRlcigpCit7CisgICAgdGVzdEdyaWRJdGVtc09yZGVyKAorICAgICAgICB7ICdv
cmRlcic6ICcwJywgJ3dpZHRoJzogJzQwJywgJ2hlaWdodCc6ICcxMDAnLCAneCc6ICcwJywgJ3kn
OiAnNTAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0
JzogJzUwJywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAn
d2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKKyAg
ICB0ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAn
NDAnLCAnaGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcgfSwKKyAgICAgICAgeyAn
b3JkZXInOiAnLTEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUwJywgJ3gnOiAnMCcsICd5
JzogJzAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJzAnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0
JzogJzAnLCAneCc6ICcwJywgJ3knOiAnMTUwJyB9KTsKKyAgICB0ZXN0R3JpZEl0ZW1zT3JkZXIo
CisgICAgICAgIHsgJ29yZGVyJzogJzEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzAnLCAn
eCc6ICcwJywgJ3knOiAnMTUwJyB9LAorICAgICAgICB7ICdvcmRlcic6ICctMScsICd3aWR0aCc6
ICc0MCcsICdoZWlnaHQnOiAnNTAnLCAneCc6ICcwJywgJ3knOiAnMCcgfSwKKyAgICAgICAgeyAn
b3JkZXInOiAnMCcsICd3aWR0aCc6ICc0MCcsICdoZWlnaHQnOiAnMTAwJywgJ3gnOiAnMCcsICd5
JzogJzUwJyB9KTsKKyAgICB0ZXN0R3JpZEl0ZW1zT3JkZXIoCisgICAgICAgIHsgJ29yZGVyJzog
JzEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzEwMCcsICd4JzogJzAnLCAneSc6ICc1MCcg
fSwKKyAgICAgICAgeyAnb3JkZXInOiAnLTEnLCAnd2lkdGgnOiAnNDAnLCAnaGVpZ2h0JzogJzUw
JywgJ3gnOiAnMCcsICd5JzogJzAnIH0sCisgICAgICAgIHsgJ29yZGVyJzogJzEwJywgJ3dpZHRo
JzogJzQwJywgJ2hlaWdodCc6ICcwJywgJ3gnOiAnMCcsICd5JzogJzE1MCcgfSk7Cit9CisKK3dp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgdGVzdENoYW5naW5nR3JpZEl0ZW1zT3JkZXIs
IGZhbHNlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2PlRoaXMgdGVzdCBjaGVj
a3MgdGhhdCBncmlkIGl0ZW1zJyAnb3JkZXInIGR5bmFtaWMgdXBkYXRlcyByZWNvbXB1dGVzIHRo
ZSBwb3NpdGlvbnMgb2YgYXV0b21hdGljYWxseSBwbGFjZWQgZ3JpZCBpdGVtcy48L2Rpdj4KKwor
PGRpdiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlIj4KKyAgICA8ZGl2IGNsYXNzPSJncmlkIj4K
KyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0iZmlyc3RHcmlkSXRlbSI+
PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InNpemVkVG9HcmlkQXJlYSIgaWQ9InNlY29uZEdy
aWRJdGVtIj48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0ic2l6ZWRUb0dyaWRBcmVhIiBpZD0i
dGhpcmRHcmlkSXRlbSI+PC9kaXY+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvc3RhbGUt
Z3JpZC1sYXlvdXQtMi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9zdGFsZS1ncmlkLWxheW91dC0yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZTdkNGJj
ZTJiYzQ0OWE3YzUzYWVjY2ZjMTAyODkyYjUzOGViOWIzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvc3RhbGUtZ3JpZC1sYXlvdXQtMi1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACitYVGhlIHRlc3QgY2hlY2tzIHRoYXQgd2UgZG9uJ3QgbGVh
dmUgc3RhbGUgcG9pbnRlcnMgaW50byB0aGUgaW50ZXJuYWwgZ3JpZCByZXByZXNlbnRhdGlvbi4K
KworVGhpcyB0ZXN0IGhhcyBQQVNTRUQgaWYgaXQgZGlkbid0IGNyYXNoIHVuZGVyIEFTQU4uCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9zdGFsZS1ncmlkLWxh
eW91dC0yLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9zdGFsZS1ncmlk
LWxheW91dC0yLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTA1OTRkOGM2YzUzYTRkOWY1MWY4M2I0N2Y2MjVi
YTYzMmQ2OWMwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQt
bGF5b3V0L3N0YWxlLWdyaWQtbGF5b3V0LTIuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxzcGFuIHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWdyaWQiIGNvbnRlbnRlZGl0
YWJsZT1wbGFpbnRleHQtb25seT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNyYXNoKCkgeworICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKQorICAgICAgICByZXR1cm47CisgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigiXHQiKTsKKyAgICBldmVudFNlbmRlci5rZXlEb3duKCJYIik7CisgICAgZG9jdW1l
bnQuZGVzaWduTW9kZSA9ICdvbic7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkluc2VydEhU
TUwiLCBmYWxzZSwgIjxkaXY+Iik7Cit9Citkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01D
b250ZW50TG9hZGVkIiwgY3Jhc2gsIGZhbHNlKTsKKzwvc2NyaXB0PlRoZSB0ZXN0IGNoZWNrcyB0
aGF0IHdlIGRvbid0IGxlYXZlIHN0YWxlIHBvaW50ZXJzIGludG8gdGhlIGludGVybmFsIGdyaWQg
cmVwcmVzZW50YXRpb24uPGJyPiBUaGlzIHRlc3QgaGFzIFBBU1NFRCBpZiBpdCBkaWRuJ3QgY3Jh
c2ggdW5kZXIgQVNBTi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5
b3V0L3N0YWxlLWdyaWQtbGF5b3V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3Nz
LWdyaWQtbGF5b3V0L3N0YWxlLWdyaWQtbGF5b3V0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4x
YWY1ZThiMmQxM2Y2MjJkNDdjYzYzM2IyYzQ3ZmYxYzQ0MzQ1ZDcxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MtZ3JpZC1sYXlvdXQvc3RhbGUtZ3JpZC1sYXlvdXQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitUaGUgdGVzdCBjaGVja3MgdGhhdCB3ZSBkb24n
dCBhZGQgbm9uLWNoaWxkcmVuIG9mIHRoZSBncmlkIGludG8gdGhlIGdyaWQgcmVwcmVzZW50YXRp
b24KK1RoaXMgdGVzdCBoYXMgcGFzc2VkIGlmIGl0IGRpZG4ndCBjcmFzaCB1bmRlciBBU0FOLiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzLWdyaWQtbGF5b3V0L3N0YWxlLWdyaWQt
bGF5b3V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxheW91dC9zdGFsZS1ncmlk
LWxheW91dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY3MjYyN2Y2MGVkMDg0NjI3OWU5YTU3NzRkZjBiYjFh
NjE2NzhiNzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy1ncmlkLWxh
eW91dC9zdGFsZS1ncmlkLWxheW91dC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGtleWdlbj4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZ3JpZDsiPlRoZSB0
ZXN0IGNoZWNrcyB0aGF0IHdlIGRvbid0IGFkZCBub24tY2hpbGRyZW4gb2YgdGhlIGdyaWQgaW50
byB0aGUgZ3JpZCByZXByZXNlbnRhdGlvbjxicj5UaGlzIHRlc3QgaGFzIHBhc3NlZCBpZiBpdCBk
aWRuJ3QgY3Jhc2ggdW5kZXIgQVNBTi4KKyAgICA8ZW1iZWQgdHlwZT1zb21ldGhpbmctbm90LWpz
PgorPC9kaXY+Cis8c3R5bGU+CitlbWJlZCB7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgfQorLmMxIHsg
YW5pbWF0aW9uLWRlbGF5OiA0NTc2MnM7IH0KKzwvc3R5bGU+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBj
cmFzaCgpIHsKKyAgICB2YXIgaGlnaGxpZ2h0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiwgImhpZ2hsaWdodCIpOworICAgIGhpZ2hsaWdo
dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgImMxIik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChoaWdobGlnaHQpOworCisgICAgZm9yIChpPTA7IGkgIT0gODsgaSsrKQorICAgICAgICBl
dmVudFNlbmRlci5rZXlEb3duKCJcdCIpOworICAgIGV2ZW50U2VuZGVyLmtleURvd24oIlgiKTsK
K30KKworaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgYWxlcnQoIlRoaXMgdGVzdCBuZWVk
cyB0byBiZSBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIik7CitlbHNlCisgICAgZG9jdW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsIGNyYXNoLCBmYWxzZSk7Cis8L3Nj
cmlwdD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>