<?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>103239</bug_id>
          
          <creation_ts>2012-11-26 03:56:23 -0800</creation_ts>
          <short_desc>[Shadow DOM]: scoped styles are not applied in the cascade order.</short_desc>
          <delta_ts>2012-12-13 20:41:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>103600</dependson>
          <blocked>97282</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Takashi Sakamoto">tasak</reporter>
          <assigned_to name="Takashi Sakamoto">tasak</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>ericbidelman</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mibalan</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>ojan</cc>
    
    <cc>stearns</cc>
    
    <cc>tasak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775330</commentid>
    <comment_count>0</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-26 03:56:23 -0800</bug_when>
    <thetext>From http://code.google.com/p/chromium/issues/detail?id=162517.

Current WebKit implementation uses different document position for &lt;style scoped&gt; whose scoped element is different (i.e. RuleSet::m_ruleCount and doesn&apos;t share information about m_ruleCount with StyleResolver::m_authorStyle). So if some html document has &lt;style&gt; and &lt;style scoped&gt;, wrong rules might be applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776342</commentid>
    <comment_count>1</comment_count>
      <attachid>176175</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-26 22:16:14 -0800</bug_when>
    <thetext>Created attachment 176175
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776418</commentid>
    <comment_count>2</comment_count>
      <attachid>176175</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 23:53:11 -0800</bug_when>
    <thetext>Comment on attachment 176175
Patch

Attachment 176175 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15013014

New failing tests:
fast/regions/style-scoped-in-flow-override-region-styling.html
animations/suspend-resume-animation-events.html
fast/dom/shadow/athost-atrules.html
http/tests/security/local-user-CSS-from-remote.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776508</commentid>
    <comment_count>3</comment_count>
      <attachid>176204</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-27 02:03:58 -0800</bug_when>
    <thetext>Created attachment 176204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776539</commentid>
    <comment_count>4</comment_count>
      <attachid>176214</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-27 02:42:36 -0800</bug_when>
    <thetext>Created attachment 176214
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776548</commentid>
    <comment_count>5</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-11-27 02:51:17 -0800</bug_when>
    <thetext>I would like to ask about fast/regions/style-scoped-in-flow-override-region-styling.html.

The test has a style element under &lt;head&gt; and the style element has @region rule, i.e.

	#f3 {
		-webkit-flow-into: flow3;
	}
	#r3 {
		-webkit-flow-from: flow3;
	}
	@-webkit-region #r3 {
		p {
			background-color: lightgreen;
		}
		.c3 {
			background-color: lime;
		}
		#p3 {
			background-color: green;
		}
	}

and the test also has a scoped style element which is a direct child of #f3:

	&lt;div id=&apos;f3&apos;&gt;
 		&lt;style scoped=&apos;true&apos;&gt;
			p {
				background-color: yellow;
			}
			.c3 {
				background-color: orange;
			}
			#p3 {
				background-color: red;
			}
		&lt;/style&gt;

Since both rules have the same specificities, we have to compare the document positions of both rules. I think, the style scoped should be applied. Is this correct?
The test&apos;s expected result says that @region rule should be applied...

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776988</commentid>
    <comment_count>6</comment_count>
      <attachid>176214</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-27 11:00:38 -0800</bug_when>
    <thetext>Comment on attachment 176214
Patch

Attachment 176214 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15003566

New failing tests:
fast/regions/style-scoped-in-flow-override-region-styling.html
fast/css/style-scoped/style-scoped-apply-author-styles.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>785601</commentid>
    <comment_count>7</comment_count>
      <attachid>178152</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-06 21:05:26 -0800</bug_when>
    <thetext>Created attachment 178152
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>786970</commentid>
    <comment_count>8</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-12-09 21:29:47 -0800</bug_when>
    <thetext>This part of the Shadow DOM spec might also be relevant, in that it deals with the application (via cascade) of scoped styles in Shadow DOM:

http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles

For the purposes of the cascade order, the CSS rules for shadow trees that have the apply-author-styles flag set must be treated as scoped selectors with shadow root as their scope. In this context, for shadow trees A and B, the A&apos;s shadow root is treated as descendant of B&apos;s shadow root if A is enclosed by B.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787199</commentid>
    <comment_count>9</comment_count>
      <attachid>178517</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 04:37:39 -0800</bug_when>
    <thetext>Created attachment 178517
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787334</commentid>
    <comment_count>10</comment_count>
      <attachid>178517</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-10 07:52:06 -0800</bug_when>
    <thetext>Comment on attachment 178517
WIP

Attachment 178517 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15241356

New failing tests:
fast/regions/style-scoped-in-flow-override-region-styling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788042</commentid>
    <comment_count>11</comment_count>
      <attachid>178716</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 22:05:16 -0800</bug_when>
    <thetext>Created attachment 178716
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788052</commentid>
    <comment_count>12</comment_count>
      <attachid>178718</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 22:21:37 -0800</bug_when>
    <thetext>Created attachment 178718
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788057</commentid>
    <comment_count>13</comment_count>
      <attachid>178721</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 22:32:54 -0800</bug_when>
    <thetext>Created attachment 178721
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788102</commentid>
    <comment_count>14</comment_count>
      <attachid>178733</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-10 23:56:10 -0800</bug_when>
    <thetext>Created attachment 178733
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788122</commentid>
    <comment_count>15</comment_count>
      <attachid>178740</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 00:30:28 -0800</bug_when>
    <thetext>Created attachment 178740
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788135</commentid>
    <comment_count>16</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 00:51:59 -0800</bug_when>
    <thetext>I don&apos;t know the reason why win-ews reported the following failure:
---
Last 500 characters of output:
tTests/fast/regions/style-scoped-in-flow-override-region-styling-expected.html
Hunk #1 FAILED at 32.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling-expected.html.rej
patching file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling.html
Hunk #1 FAILED at 50.
Hunk #2 FAILED at 87.
2 out of 2 hunks FAILED -- saving rejects to file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling.html.rej

Failed to run &quot;[&apos;/home/buildbot/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /home/buildbot/WebKit
----

However style queue said:
----
Pass 16 minutes ago
Style checked 16 minutes ago
Watchlist applied 16 minutes ago
Applied patch
^^^^^^^^^^^
-----

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788161</commentid>
    <comment_count>17</comment_count>
      <attachid>178740</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-11 01:20:47 -0800</bug_when>
    <thetext>Comment on attachment 178740
Patch

Attachment 178740 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15277039

New failing tests:
inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788193</commentid>
    <comment_count>18</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 01:50:12 -0800</bug_when>
    <thetext>I cannot reproduce the following failure locally:

Regressions: Unexpected crashes (1)
  inspector-protocol/debugger-terminate-dedicated-worker-while-paused.html [ Crash ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788529</commentid>
    <comment_count>19</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-11 09:48:25 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I don&apos;t know the reason why win-ews reported the following failure:
&gt; ---
&gt; Last 500 characters of output:
&gt; tTests/fast/regions/style-scoped-in-flow-override-region-styling-expected.html
&gt; Hunk #1 FAILED at 32.
&gt; 1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling-expected.html.rej
&gt; patching file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling.html
&gt; Hunk #1 FAILED at 50.
&gt; Hunk #2 FAILED at 87.
&gt; 2 out of 2 hunks FAILED -- saving rejects to file LayoutTests/fast/regions/style-scoped-in-flow-override-region-styling.html.rej
&gt; 
&gt; Failed to run &quot;[&apos;/home/buildbot/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;]&quot; exit_code: 1 cwd: /home/buildbot/WebKit
&gt; ----
&gt; 
&gt; However style queue said:
&gt; ----
&gt; Pass 16 minutes ago
&gt; Style checked 16 minutes ago
&gt; Watchlist applied 16 minutes ago
&gt; Applied patch
&gt; ^^^^^^^^^^^


There were some gremlins among the style elves last night.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>788623</commentid>
    <comment_count>20</comment_count>
      <attachid>178740</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-12-11 11:21:27 -0800</bug_when>
    <thetext>Comment on attachment 178740
Patch

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

&gt; Source/WebCore/css/StyleResolver.cpp:891
&gt; +    if (r1.first == r2.first) {

Early return might be better here?

&gt; Source/WebCore/css/StyleResolver.h:480
&gt; +    Vector&lt;ScopeRuleData, 32&gt; m_matchedRules;

This doesn&apos;t quite seem like the right solution. The scope level idea is right, but it seems wrong to not store it in RuleData. It&apos;s a property of a rule, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789209</commentid>
    <comment_count>21</comment_count>
      <attachid>178968</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 22:23:59 -0800</bug_when>
    <thetext>Created attachment 178968
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>789215</commentid>
    <comment_count>22</comment_count>
      <attachid>178740</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-11 22:31:51 -0800</bug_when>
    <thetext>Comment on attachment 178740
Patch

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

Thank you for reviewing.

&gt;&gt; Source/WebCore/css/StyleResolver.cpp:891
&gt;&gt; +    if (r1.first == r2.first) {
&gt; 
&gt; Early return might be better here?

I see. Done.

&gt;&gt; Source/WebCore/css/StyleResolver.h:480
&gt;&gt; +    Vector&lt;ScopeRuleData, 32&gt; m_matchedRules;
&gt; 
&gt; This doesn&apos;t quite seem like the right solution. The scope level idea is right, but it seems wrong to not store it in RuleData. It&apos;s a property of a rule, right?

Yeah, I agree that my ways is not good. I uploaded this patch to discuss what is a right solution.
Talking about modifying class RuleData, I have following concerns:
(1) memory usage. Class RuleData has many member variables with bit field parameters, e.g. unsigned position : 20 and so on. Is it ok to use more 5 or 6 bits per RuleData when there are neither shadow 
roots nor scoped styles? (Since I heard that shadow dom trees in ui-toolkit examples are nested to about 10 levels, I guess, we need 5 bits or 6 bits)

(2) granularity. Each scoping level is prepared for each RuleSet. RuleData in the same RuleSet have the same scoping level. I&apos;m afraid that we uses much more memory than we expect (related to (1)).

(3) when and where we add scoping level information to RuleData. While creating RuleData, stylesheets are not sorted in the cascade order (Node::compareDocumentPosition doesn&apos;t provide any information when nodes in different tree scopes are given). Is it ok to see all RuleSets and to update all RuleData in the RuleSets after StyleResolver::appendAuthorStyleSheets?

I&apos;m also thinking of another way:
(a) run sortAndTransfer for each scoping element (I tried in my @host @-rules patch and I reverted…)....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790218</commentid>
    <comment_count>23</comment_count>
      <attachid>179184</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-12 19:57:53 -0800</bug_when>
    <thetext>Created attachment 179184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790224</commentid>
    <comment_count>24</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-12 20:04:59 -0800</bug_when>
    <thetext>I removed scopingLevel. Instead, I modified to invoke sortAndTransferMatchedRules after collecting scoped rules and collecting @host @-rules.
Now the cascading order is kept by the order of matchXXXRules.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790317</commentid>
    <comment_count>25</comment_count>
      <attachid>179205</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-12 23:00:32 -0800</bug_when>
    <thetext>Created attachment 179205
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790319</commentid>
    <comment_count>26</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-12 23:01:36 -0800</bug_when>
    <thetext>We need one more layout test for scoped stylesheets with important rules.
So I added fast/css/style-scoped/style-scoped-with-important-rule.html.

Best regards,
Takashi Sakamoto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790323</commentid>
    <comment_count>27</comment_count>
      <attachid>179208</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-12-12 23:16:58 -0800</bug_when>
    <thetext>Created attachment 179208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791286</commentid>
    <comment_count>28</comment_count>
      <attachid>179208</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 20:41:49 -0800</bug_when>
    <thetext>Comment on attachment 179208
Patch

Clearing flags on attachment: 179208

Committed r137708: &lt;http://trac.webkit.org/changeset/137708&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>791287</commentid>
    <comment_count>29</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-13 20:41:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176175</attachid>
            <date>2012-11-26 22:16:14 -0800</date>
            <delta_ts>2012-11-27 02:03:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121127151352.patch</filename>
            <type>text/plain</type>
            <size>21588</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVhM2EwYzY1NzQyMGQz
ZTczN2FhMTUyNzJhN2UyNGI2YzA5OGU3OC4uZGQxOWQyY2NlYjk5Y2I5MjgwM2RjMmNjODBkMmFj
MGEzMDhlYWI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTExLTI2ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUnVsZXNldHMgZm9yIHNj
b3BlZCBzdHlsZXMgYW5kIHJ1bGVzZXQgZm9yIG5vdC1zY29wZWQgc3R5bGVzIGhhdmUgdG8KKyAg
ICAgICAgc2hhcmUgcG9zaXRpb24gaW5mb3JtYXRpb24sIGkuZS4gbV9ydWxlQ291bnQuIElmIHRo
ZXNlIHJ1bGVzZXRzIGRvbid0CisgICAgICAgIHNoYXJlIHRoZSBpbmZvcm1hdGlvbiwgd2UgY2Fu
bm90IGRldGVybWluZSB3aGljaCBydWxlIHNob3VsZCBiZQorICAgICAgICBhcHBsaWVkLCBmcm9t
IHNjb3BlZCBzdHlsZXMgb3IgZnJvbSBub3Qtc2NvcGVkIHN0eWxlcy4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUmVnaW9uUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldCk6CisgICAgICAgICog
Y3NzL1J1bGVTZXQuaDoKKyAgICAgICAgbV9ydWxlQ291bnQgaXMgdXNlZCB0byBrZWVwIGRvY3Vt
ZW50IG9yZGVyIGluZm9ybWF0aW9uLgorICAgICAgICBDaGFuZ2VkIG1fcnVsZUNvdW50IGZyb20g
dW5zaWduZWQgdG8gdW5zaWduZWQqIHRvIHNoYXJlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBh
bW9uZyBtdWx0aXBsZSBydWxlc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpkaXNhYmxlQWRkUnVsZSk6CisgICAgICAg
IFNvbWUgcnVsZXNldHMsIGUuZy4gZmVhdHVyZSBzZXQsIHJlcXVpcmVzIHZhbGlkIG1fcnVsZUNv
dW50IG9ubHkgd2hlbgorICAgICAgICB3ZSBpbml0aXplIHRoZSBydWxlc2V0LCBlLmcuIHdlIG5l
ZWQgb25seSBpbgorICAgICAgICBTdHlsZVJlc29sdmVyOjptYWtlUnVsZVNldC4gU28gaW4gc3Vj
aCBjYXNlcywgcHJvdmlkZSBsb2NhbCB2YXJpYWJsZQorICAgICAgICBmb3IgUnVsZVNldDo6Y3Jl
YXRlLiBBZnRlciBhZGRpbmcgYWxsIHJ1bGVzLCB1c2UgdGhpcyBtZXRob2QgdG8KKyAgICAgICAg
cmVzZXQgbV9ydWxlQ291bnQuCisgICAgICAgIChSdWxlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bGVTZXQ6OlJ1bGVTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVj
dFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0cyk6CisgICAgICAgIChXZWJDb3JlOjptYWtlUnVsZVNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpsb2FkVmlld1NvdXJjZVN0eWxlKToKKyAgICAgICAgVGhl
c2Ugc3R5bGVzLCBpLmUuIG1fdXNlclN0eWxlLCBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlLAorICAg
ICAgICBtX3NpYmxpbmdSdWxlU2V0LCBtX3VuY29tbW9uQXR0cmlidXRlUnVsZVNldCBuZWVkIHZh
bGlkIG1fcnVsZUNvdW50CisgICAgICAgIG9ubHkgaW4gdGhlc2UgbWV0aG9kcy4gU28gdXNlIGxv
Y2FsIHZhcmFpYmxlcyB0byBpbml0aWFsaXplIHRoZXNlCisgICAgICAgIHJ1bGVzLiBBZnRlciBp
bml0aWFsaXppbmcgdGhlbSwgaW52b2tlIGRpc2FibGVBZGRSdWxlIHRvIHJlc2V0CisgICAgICAg
IG1fcnVsZUNvdW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6cmVzZXRBdXRo
b3JTdHlsZSk6CisgICAgICAgIEFkZGVkIHRvIG1ha2UgbV9hdXRob3JSdWxlQ291bnQgYmUgMC4K
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRz
KToKKyAgICAgICAgKFdlYkNvcmU6OmxvYWRGdWxsRGVmYXVsdFN0eWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OmxvYWRTaW1wbGVEZWZhdWx0U3R5bGUpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29s
dmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRIb3N0UnVsZSk6Cisg
ICAgICAgIChTdHlsZVJlc29sdmVyKToKKyAgICAgICAgKiBjc3MvU3R5bGVTY29wZVJlc29sdmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlUnVsZVNl
dEZvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZUF0SG9z
dFJ1bGVTZXRGb3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjphZGRI
b3N0UnVsZSk6CisgICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5oOgorICAgICAgICAo
U3R5bGVTY29wZVJlc29sdmVyKToKKyAgICAgICAgQWRkZWQgYSBuZXcgbWVtYmVyIHZhcmlhYmxl
LCBtX2F1dGhvclJ1bGVDb3VudCB3aGljaCBoYXMgZG9jdW1lbnQKKyAgICAgICAgb3JkZXIgaW5m
b3JtYXRpb24gdXNlZCBieSBtX2F1dGhvclN0eWxlcyBpbiBTdHlsZVJlc29sdmVyIGFuZAorICAg
ICAgICBzY29wZWQgc3R5bGVzIGluIFN0eWxlU2NvcGVSZXNvbHZlci4KKwogMjAxMi0xMS0yNiAg
Tm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5jb20+CiAKICAgICAgICAgUE5HIGRlY29k
ZSBwZXJmb3JtYW5jZTogYXZvaWQgdXNpbmcgZnJhbWUgYnVmZmVyLnNldFJHQkEoeCx5KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1J1bGVTZXQuY3BwCmluZGV4IDlhNzhjMGZmOTAzODljOTBjNDRkYTVhNmI5ZjVmZjdhZTIw
YzZlMzEuLjQyZWE4ZGI0MDZjMTllYTkwMDZjZWRhZGY3Nzg4ZGQ1OWJmY2MyOWUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5jcHAKQEAgLTE5MCw3ICsxOTAsOCBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFRvUnVs
ZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0IFJ1bGVE
YQogCiB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxl
Y3RvckluZGV4LCBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzKQogewotICAgIFJ1bGVEYXRhIHJ1
bGVEYXRhKHJ1bGUsIHNlbGVjdG9ySW5kZXgsIG1fcnVsZUNvdW50KyssIGFkZFJ1bGVGbGFncyk7
CisgICAgQVNTRVJUKG1fcnVsZUNvdW50KTsKKyAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBz
ZWxlY3RvckluZGV4LCArKyptX3J1bGVDb3VudCwgYWRkUnVsZUZsYWdzKTsKICAgICBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgYXRob3N0UnVsZVNwZWNpZmljaXR5ID0gMHgxMDAwMDA7CiAKICAgICBp
ZiAoYWRkUnVsZUZsYWdzICYgUnVsZUlzSG9zdFJ1bGUpCkBAIC0yNDIsMTEgKzI0MywxMSBAQCB2
b2lkIFJ1bGVTZXQ6OmFkZFBhZ2VSdWxlKFN0eWxlUnVsZVBhZ2UqIHJ1bGUpCiAKIHZvaWQgUnVs
ZVNldDo6YWRkUmVnaW9uUnVsZShTdHlsZVJ1bGVSZWdpb24qIHJlZ2lvblJ1bGUsIGJvb2wgaGFz
RG9jdW1lbnRTZWN1cml0eU9yaWdpbikKIHsKLSAgICBPd25QdHI8UnVsZVNldD4gcmVnaW9uUnVs
ZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIEFTU0VSVChtX3J1bGVDb3VudCk7CiAgICAg
Ly8gVGhlIHJlZ2lvbiBydWxlIHNldCBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlIHBvc2l0
aW9uIGluc2lkZSB0aGUgcGFyZW50IHJ1bGUgc2V0LgogICAgIC8vIE90aGVyd2lzZSwgdGhlIHJ1
bGVzIGluc2lkZSByZWdpb24gYmxvY2sgbWlnaHQgYmUgaW5jb3JyZWN0bHkgcG9zaXRpb25lZCBi
ZWZvcmUgb3RoZXIgc2ltaWxhciBydWxlcyBmcm9tCiAgICAgLy8gdGhlIHN0eWxlc2hlZXQgdGhh
dCBjb250YWlucyB0aGUgcmVnaW9uIGJsb2NrLgotICAgIHJlZ2lvblJ1bGVTZXQtPm1fcnVsZUNv
dW50ID0gbV9ydWxlQ291bnQ7CisgICAgT3duUHRyPFJ1bGVTZXQ+IHJlZ2lvblJ1bGVTZXQgPSBS
dWxlU2V0OjpjcmVhdGUobV9ydWxlQ291bnQpOwogCiAgICAgLy8gQ29sbGVjdCB0aGUgcmVnaW9u
IHJ1bGVzIGludG8gYSBydWxlIHNldAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxl
QmFzZT4gPiYgY2hpbGRSdWxlcyA9IHJlZ2lvblJ1bGUtPmNoaWxkUnVsZXMoKTsKQEAgLTI1Nyw4
ICsyNTgsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJlZ2lvblJ1bGUoU3R5bGVSdWxlUmVnaW9uKiBy
ZWdpb25SdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdAogICAgICAgICBpZiAocmVnaW9uU3R5
bGluZ1J1bGUtPmlzU3R5bGVSdWxlKCkpCiAgICAgICAgICAgICByZWdpb25SdWxlU2V0LT5hZGRT
dHlsZVJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlKj4ocmVnaW9uU3R5bGluZ1J1bGUpLCBhZGRS
dWxlRmxhZ3MpOwogICAgIH0KLSAgICAvLyBVcGRhdGUgdGhlICJnbG9iYWwiIHJ1bGUgY291bnQg
c28gdGhhdCBwcm9wZXIgb3JkZXIgaXMgbWFpbnRhaW5lZAotICAgIG1fcnVsZUNvdW50ID0gcmVn
aW9uUnVsZVNldC0+bV9ydWxlQ291bnQ7CiAKICAgICBtX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVT
ZXRzLmFwcGVuZChSdWxlU2V0U2VsZWN0b3JQYWlyKHJlZ2lvblJ1bGUtPnNlbGVjdG9yTGlzdCgp
LmZpcnN0KCksIHJlZ2lvblJ1bGVTZXQucmVsZWFzZSgpKSk7CiB9CkBAIC0yNjYsNiArMjY1LDcg
QEAgdm9pZCBSdWxlU2V0OjphZGRSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiogcmVnaW9uUnVs
ZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXQKIHZvaWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hl
ZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgTWVkaWFRdWVyeUV2YWx1YXRvciYg
bWVkaXVtLCBTdHlsZVJlc29sdmVyKiByZXNvbHZlciwgY29uc3QgQ29udGFpbmVyTm9kZSogc2Nv
cGUpCiB7CiAgICAgQVNTRVJUKHNoZWV0KTsKKyAgICBBU1NFUlQobV9ydWxlQ291bnQpOwogICAg
IAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlSW1wb3J0PiA+JiBpbXBvcnRSdWxl
cyA9IHNoZWV0LT5pbXBvcnRSdWxlcygpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBp
bXBvcnRSdWxlcy5zaXplKCk7ICsraSkgewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHZvaWQgUnVsZVNl
dDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgTWVk
aWFRdWVyeUV2YWx1CiAjZW5kaWYKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICAgICAgZWxz
ZSBpZiAocnVsZS0+aXNIb3N0UnVsZSgpKQotICAgICAgICAgICAgcmVzb2x2ZXItPmFkZEhvc3RS
dWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUhvc3QqPihydWxlKSwgaGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbiwgc2NvcGUpOworICAgICAgICAgICAgcmVzb2x2ZXItPmFkZEhvc3RSdWxlKHN0YXRp
Y19jYXN0PFN0eWxlUnVsZUhvc3QqPihydWxlKSwgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwg
c2NvcGUsIG1fcnVsZUNvdW50KTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfREVWSUNFX0FEQVBU
QVRJT04pCiAgICAgICAgIGVsc2UgaWYgKHJ1bGUtPmlzVmlld3BvcnRSdWxlKCkgJiYgcmVzb2x2
ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IGEyZmJlY2JjMDBiMmNhMWI1MzJmNDk2YTk1YzA5
MzUwMjZmYTRmN2QuLjFjYjY3ZThiM2M2NjA0MmNkNzJmNDcxY2UyMDA3Y2MzZGQ2MTY0OTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuaApAQCAtMTAxLDcgKzEwMSw3IEBAIENPTVBJTEVfQVNTRVJUKHNpemVv
ZihSdWxlRGF0YSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSdWxlRGF0YSksIFJ1bGVEYXRhX3Nob3Vs
ZF9zCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSdWxlU2V0KTsg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8
UnVsZVNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFJ1bGVTZXQpOyB9CisgICAg
c3RhdGljIFBhc3NPd25QdHI8UnVsZVNldD4gY3JlYXRlKHVuc2lnbmVkKiBydWxlQ291bnQpIHsg
cmV0dXJuIGFkb3B0UHRyKG5ldyBSdWxlU2V0KHJ1bGVDb3VudCkpOyB9CiAKICAgICB0eXBlZGVm
IEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIE93blB0cjxWZWN0b3I8UnVsZURhdGE+ID4gPiBB
dG9tUnVsZU1hcDsKIApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFJl
Z2lvblJ1bGUoU3R5bGVSdWxlUmVnaW9uKiwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KTsKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Nocmlua1Rv
Rml0KCkgeyBtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQgPSBmYWxzZTsgfQorICAgIHZvaWQgZGlz
YWJsZUFkZFJ1bGUoKSB7IG1fcnVsZUNvdW50ID0gMDsgfQogCiAgICAgY29uc3QgUnVsZUZlYXR1
cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQogCkBAIC0xMjks
NyArMTMwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2Jq
ZWN0SW5mbyopIGNvbnN0OwogCiBwdWJsaWM6Ci0gICAgUnVsZVNldCgpOworICAgIFJ1bGVTZXQo
dW5zaWduZWQqKTsKIAogICAgIEF0b21SdWxlTWFwIG1faWRSdWxlczsKICAgICBBdG9tUnVsZU1h
cCBtX2NsYXNzUnVsZXM7CkBAIC0xMzksNyArMTQwLDcgQEAgcHVibGljOgogICAgIFZlY3RvcjxS
dWxlRGF0YT4gbV9mb2N1c1BzZXVkb0NsYXNzUnVsZXM7CiAgICAgVmVjdG9yPFJ1bGVEYXRhPiBt
X3VuaXZlcnNhbFJ1bGVzOwogICAgIFZlY3RvcjxTdHlsZVJ1bGVQYWdlKj4gbV9wYWdlUnVsZXM7
Ci0gICAgdW5zaWduZWQgbV9ydWxlQ291bnQ7CisgICAgdW5zaWduZWQqIG1fcnVsZUNvdW50Owog
ICAgIGJvb2wgbV9hdXRvU2hyaW5rVG9GaXRFbmFibGVkOwogICAgIFJ1bGVGZWF0dXJlU2V0IG1f
ZmVhdHVyZXM7CiAKQEAgLTE1NSw4ICsxNTYsOCBAQCBwdWJsaWM6CiAgICAgVmVjdG9yPFJ1bGVT
ZXRTZWxlY3RvclBhaXI+IG1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHM7CiB9OwogCi1pbmxp
bmUgUnVsZVNldDo6UnVsZVNldCgpCi0gICAgOiBtX3J1bGVDb3VudCgwKQoraW5saW5lIFJ1bGVT
ZXQ6OlJ1bGVTZXQodW5zaWduZWQqIHJ1bGVDb3VudCkKKyAgICA6IG1fcnVsZUNvdW50KHJ1bGVD
b3VudCkKICAgICAsIG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZCh0cnVlKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGNiZjZjOGE3NTFhZGRiZDQ2Y2MxMGIyYmIw
ZThmZWZjNzI0ZTkyZDcuLjQ4NzQ1NzVlNmQwNjg2NTc2ZDFmNzJhZjQ0YTU4ZmI2YjMzNTQ5ODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTIwNyw2ICsyMDcsNyBAQCBz
dGF0aWMgUnVsZVNldCogZGVmYXVsdFN0eWxlOwogc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRRdWly
a3NTdHlsZTsKIHN0YXRpYyBSdWxlU2V0KiBkZWZhdWx0UHJpbnRTdHlsZTsKIHN0YXRpYyBSdWxl
U2V0KiBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworc3RhdGljIHVuc2lnbmVkIHJ1bGVDb3VudEZv
ckRlZmF1bHRTdHlsZXM7CiBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBzaW1wbGVEZWZhdWx0
U3R5bGVTaGVldDsKIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIGRlZmF1bHRTdHlsZVNoZWV0
Owogc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcXVpcmtzU3R5bGVTaGVldDsKQEAgLTI4Niw2
ICsyODcsNyBAQCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50KiBkb2N1bWVu
dCwgYm9vbCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAjaWYgRU5BQkxFKENTU19TSEFERVJT
KQogICAgICwgbV9oYXNQZW5kaW5nU2hhZGVycyhmYWxzZSkKICNlbmRpZgorICAgICwgbV9hdXRo
b3JSdWxlQ291bnQoMCkKICAgICAsIG1fc3R5bGVNYXAodGhpcykKIHsKICAgICBFbGVtZW50KiBy
b290ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwpAQCAtMzI0LDExICszMjYsMTMgQEAg
U3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0
Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RSdWxl
c0Zyb21Vc2VyU3R5bGVTaGVldHMoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+
JiB1c2VyU2hlZXRzKQogewotICAgIE93blB0cjxSdWxlU2V0PiB1c2VyU3R5bGVSdWxlU2V0ID0g
UnVsZVNldDo6Y3JlYXRlKCk7CisgICAgdW5zaWduZWQgcnVsZUNvdW50ID0gMDsKKyAgICBPd25Q
dHI8UnVsZVNldD4gdXNlclN0eWxlUnVsZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdXNlclNoZWV0cy5zaXplKCk7ICsraSkg
ewogICAgICAgICBBU1NFUlQodXNlclNoZWV0c1tpXS0+Y29udGVudHMoKS0+aXNVc2VyU3R5bGVT
aGVldCgpKTsKICAgICAgICAgdXNlclN0eWxlUnVsZVNldC0+YWRkUnVsZXNGcm9tU2hlZXQodXNl
clNoZWV0c1tpXS0+Y29udGVudHMoKSwgKm1fbWVkaXVtLCB0aGlzKTsKICAgICB9CisgICAgdXNl
clN0eWxlUnVsZVNldC0+ZGlzYWJsZUFkZFJ1bGUoKTsKICAgICBpZiAodXNlclN0eWxlUnVsZVNl
dC0+bV9ydWxlQ291bnQgPiAwIHx8IHVzZXJTdHlsZVJ1bGVTZXQtPm1fcGFnZVJ1bGVzLnNpemUo
KSA+IDApCiAgICAgICAgIG1fdXNlclN0eWxlID0gdXNlclN0eWxlUnVsZVNldC5yZWxlYXNlKCk7
CiB9CkBAIC0zMzgsMTAgKzM0MiwxMiBAQCBzdGF0aWMgUGFzc093blB0cjxSdWxlU2V0PiBtYWtl
UnVsZVNldChjb25zdCBWZWN0b3I8UnVsZUZlYXR1cmU+JiBydWxlcykKICAgICBzaXplX3Qgc2l6
ZSA9IHJ1bGVzLnNpemUoKTsKICAgICBpZiAoIXNpemUpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIE93blB0cjxSdWxlU2V0PiBydWxlU2V0ID0gUnVsZVNldDo6Y3JlYXRlKCk7CisgICAg
dW5zaWduZWQgcnVsZUNvdW50ID0gMDsKKyAgICBPd25QdHI8UnVsZVNldD4gcnVsZVNldCA9IFJ1
bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50KTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNp
emU7ICsraSkKICAgICAgICAgcnVsZVNldC0+YWRkUnVsZShydWxlc1tpXS5ydWxlLCBydWxlc1tp
XS5zZWxlY3RvckluZGV4LCBydWxlc1tpXS5oYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID8gUnVs
ZUhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9TcGVjaWFsU3RhdGUpOwogICAg
IHJ1bGVTZXQtPnNocmlua1RvRml0KCk7CisgICAgcnVsZVNldC0+ZGlzYWJsZUFkZFJ1bGUoKTsK
ICAgICByZXR1cm4gcnVsZVNldC5yZWxlYXNlKCk7CiB9CiAKQEAgLTM2NCw3ICszNzAsOCBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RGZWF0dXJlcygpCiAKIHZvaWQgU3R5bGVSZXNvbHZl
cjo6cmVzZXRBdXRob3JTdHlsZSgpCiB7Ci0gICAgbV9hdXRob3JTdHlsZSA9IFJ1bGVTZXQ6OmNy
ZWF0ZSgpOworICAgIG1fYXV0aG9yUnVsZUNvdW50ID0gMDsKKyAgICBtX2F1dGhvclN0eWxlID0g
UnVsZVNldDo6Y3JlYXRlKCZtX2F1dGhvclJ1bGVDb3VudCk7CiAgICAgbV9hdXRob3JTdHlsZS0+
ZGlzYWJsZUF1dG9TaHJpbmtUb0ZpdCgpOwogfQogCkBAIC0zODEsNyArMzg4LDcgQEAgdm9pZCBT
dHlsZVJlc29sdmVyOjphcHBlbmRBdXRob3JTdHlsZVNoZWV0cyh1bnNpZ25lZCBmaXJzdE5ldywg
Y29uc3QgVmVjdG9yPFJlZlAKICAgICAgICAgU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCA9IGNz
c1NoZWV0LT5jb250ZW50cygpOwogI2lmIEVOQUJMRShTVFlMRV9TQ09QRUQpIHx8IEVOQUJMRShT
SEFET1dfRE9NKQogICAgICAgICBpZiAoY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSBTdHls
ZVNjb3BlUmVzb2x2ZXI6OnNjb3BlRm9yKGNzc1NoZWV0KSkgewotICAgICAgICAgICAgZW5zdXJl
U2NvcGVSZXNvbHZlcigpLT5lbnN1cmVSdWxlU2V0Rm9yKHNjb3BlKS0+YWRkUnVsZXNGcm9tU2hl
ZXQoc2hlZXQsICptX21lZGl1bSwgdGhpcywgc2NvcGUpOworICAgICAgICAgICAgZW5zdXJlU2Nv
cGVSZXNvbHZlcigpLT5lbnN1cmVSdWxlU2V0Rm9yKHNjb3BlLCAmbV9hdXRob3JSdWxlQ291bnQp
LT5hZGRSdWxlc0Zyb21TaGVldChzaGVldCwgKm1fbWVkaXVtLCB0aGlzLCBzY29wZSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogI2VuZGlmCkBAIC00OTYsMTkgKzUwMywyMCBA
QCBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBwYXJzZVVBU2hlZXQoY29uc3QgY2hhciogY2hh
cmFjdGVycywgdW5zaWduZWQgc2l6ZSkKIAogc3RhdGljIHZvaWQgbG9hZEZ1bGxEZWZhdWx0U3R5
bGUoKQogeworICAgIHJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMgPSAwOwogICAgIGlmIChzaW1w
bGVEZWZhdWx0U3R5bGVTaGVldCkgewogICAgICAgICBBU1NFUlQoZGVmYXVsdFN0eWxlKTsKICAg
ICAgICAgQVNTRVJUKGRlZmF1bHRQcmludFN0eWxlID09IGRlZmF1bHRTdHlsZSk7CiAgICAgICAg
IGRlbGV0ZSBkZWZhdWx0U3R5bGU7CiAgICAgICAgIHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0LT5k
ZXJlZigpOwotICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRy
KCk7Ci0gICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0
cigpOworICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZv
ckRlZmF1bHRTdHlsZXMpLmxlYWtQdHIoKTsKKyAgICAgICAgZGVmYXVsdFByaW50U3R5bGUgPSBS
dWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMpLmxlYWtQdHIoKTsKICAg
ICAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSAwOwogICAgIH0gZWxzZSB7CiAgICAgICAg
IEFTU0VSVCghZGVmYXVsdFN0eWxlKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6
Y3JlYXRlKCkubGVha1B0cigpOwotICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6
OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0Ojpj
cmVhdGUoJnJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMpLmxlYWtQdHIoKTsKKyAgICAgICAgZGVm
YXVsdFByaW50U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZvckRlZmF1bHRTdHls
ZXMpLmxlYWtQdHIoKTsKKyAgICAgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3Jl
YXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CiAgICAgfQogCiAgICAg
Ly8gU3RyaWN0LW1vZGUgcnVsZXMuCkBAIC01MjgsMTAgKzUzNiwxMSBAQCBzdGF0aWMgdm9pZCBs
b2FkU2ltcGxlRGVmYXVsdFN0eWxlKCkKICAgICBBU1NFUlQoIWRlZmF1bHRTdHlsZSk7CiAgICAg
QVNTRVJUKCFzaW1wbGVEZWZhdWx0U3R5bGVTaGVldCk7CiAKLSAgICBkZWZhdWx0U3R5bGUgPSBS
dWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxl
cyA9IDA7CisgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JE
ZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CiAgICAgLy8gVGhlcmUgYXJlIG5vIG1lZGlhLXNwZWNp
ZmljIHJ1bGVzIGluIHRoZSBzaW1wbGUgZGVmYXVsdCBzdHlsZS4KICAgICBkZWZhdWx0UHJpbnRT
dHlsZSA9IGRlZmF1bHRTdHlsZTsKLSAgICBkZWZhdWx0UXVpcmtzU3R5bGUgPSBSdWxlU2V0Ojpj
cmVhdGUoKS5sZWFrUHRyKCk7CisgICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3Jl
YXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CiAKICAgICBzaW1wbGVE
ZWZhdWx0U3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChzaW1wbGVVc2VyQWdlbnRTdHlsZVNoZWV0
LCBzdHJsZW4oc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCkpOwogICAgIGRlZmF1bHRTdHlsZS0+
YWRkUnVsZXNGcm9tU2hlZXQoc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQsIHNjcmVlbkV2YWwoKSk7
CkBAIC01NDIsOCArNTUxLDEwIEBAIHN0YXRpYyB2b2lkIGxvYWRTaW1wbGVEZWZhdWx0U3R5bGUo
KQogc3RhdGljIHZvaWQgbG9hZFZpZXdTb3VyY2VTdHlsZSgpCiB7CiAgICAgQVNTRVJUKCFkZWZh
dWx0Vmlld1NvdXJjZVN0eWxlKTsKLSAgICBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlID0gUnVsZVNl
dDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgIHVuc2lnbmVkIHJ1bGVDb3VudCA9IDA7CisgICAg
ZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50KS5sZWFr
UHRyKCk7CiAgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZS0+YWRkUnVsZXNGcm9tU2hlZXQocGFy
c2VVQVNoZWV0KHNvdXJjZVVzZXJBZ2VudFN0eWxlU2hlZXQsIHNpemVvZihzb3VyY2VVc2VyQWdl
bnRTdHlsZVNoZWV0KSksIHNjcmVlbkV2YWwoKSk7CisgICAgZGVmYXVsdFZpZXdTb3VyY2VTdHls
ZS0+ZGlzYWJsZUFkZFJ1bGUoKTsKIH0KIAogc3RhdGljIHZvaWQgZW5zdXJlRGVmYXVsdFN0eWxl
U2hlZXRzRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKaW5kZXggMDU1ZDgxM2VkYjU2YjA1MGNiNjEzMzcyNDU0ODUxMWRjNjBmYjIyYi4uMmU5
YTVhMmFjYzIwM2QzNDgyNDE1ODUyMDE5N2Q0MWQ3NzJlYzNjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5oCkBAIC0xNDAsNyArMTQwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcHVzaFBh
cmVudFNoYWRvd1Jvb3QoY29uc3QgU2hhZG93Um9vdCopOwogICAgIHZvaWQgcG9wUGFyZW50U2hh
ZG93Um9vdChjb25zdCBTaGFkb3dSb290Kik7CiAjaWYgRU5BQkxFKFNIQURPV19ET00pCi0gICAg
dm9pZCBhZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiBydWxlLCBib29sIGhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKSB7IGVuc3VyZVNjb3BlUmVz
b2x2ZXIoKS0+YWRkSG9zdFJ1bGUocnVsZSwgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgc2Nv
cGUpOyB9CisgICAgdm9pZCBhZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiBydWxlLCBib29sIGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCB1bnNp
Z25lZCogcnVsZUNvdW50KSB7IGVuc3VyZVNjb3BlUmVzb2x2ZXIoKS0+YWRkSG9zdFJ1bGUocnVs
ZSwgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgc2NvcGUsIHJ1bGVDb3VudCk7IH0KICNlbmRp
ZgogCiAgICAgUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KEVsZW1lbnQq
LCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSAwLCBTdHlsZVNoYXJpbmdCZWhhdmlvciA9IEFs
bG93U3R5bGVTaGFyaW5nLApAQCAtNTE2LDYgKzUxNiw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxF
KENTU19GSUxURVJTKSAmJiBFTkFCTEUoU1ZHKQogICAgIEhhc2hNYXA8RmlsdGVyT3BlcmF0aW9u
KiwgUmVmUHRyPFdlYktpdENTU1NWR0RvY3VtZW50VmFsdWU+ID4gbV9wZW5kaW5nU1ZHRG9jdW1l
bnRzOwogI2VuZGlmCisgICAgdW5zaWduZWQgbV9hdXRob3JSdWxlQ291bnQ7CiAKICAgICBPd25Q
dHI8U3R5bGVTY29wZVJlc29sdmVyPiBtX3Njb3BlUmVzb2x2ZXI7CiAgICAgQ1NTVG9TdHlsZU1h
cCBtX3N0eWxlTWFwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcApp
bmRleCA1ZmYyYjNlMGIxMTU0OTk0NDdlMjFjODZmNThmNjQ2MTMwMWNmMGZkLi5iNjE0MDFhY2Qy
ZmNmYzAyNDAxNmI2N2JlNmI1ZWM0M2Q2MTA2YjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVTY29wZVJlc29sdmVyLmNwcApAQCAtODUsMTEgKzg1LDExIEBAIGlubGluZSBSdWxlU2V0KiBT
dHlsZVNjb3BlUmVzb2x2ZXI6OnJ1bGVTZXRGb3IoY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUp
IGNvbnN0CiAgICAgcmV0dXJuIGl0ICE9IG1fYXV0aG9yU3R5bGVzLmVuZCgpID8gaXQtPnZhbHVl
LmdldCgpIDogMDsgCiB9CiAKLVJ1bGVTZXQqIFN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlUnVs
ZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkKK1J1bGVTZXQqIFN0eWxlU2NvcGVS
ZXNvbHZlcjo6ZW5zdXJlUnVsZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgdW5z
aWduZWQqIHJ1bGVDb3VudCkKIHsKICAgICBTY29wZWRSdWxlU2V0TWFwOjpBZGRSZXN1bHQgYWRk
UmVzdWx0ID0gbV9hdXRob3JTdHlsZXMuYWRkKHNjb3BlLCBudWxscHRyKTsKICAgICBpZiAoYWRk
UmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBS
dWxlU2V0OjpjcmVhdGUoKTsKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFJ1
bGVTZXQ6OmNyZWF0ZShydWxlQ291bnQpOwogICAgIHJldHVybiBhZGRSZXN1bHQuaXRlcmF0b3It
PnZhbHVlLmdldCgpOwogfQogCkBAIC0xNTYsMTEgKzE1NiwxMSBAQCB2b2lkIFN0eWxlU2NvcGVS
ZXNvbHZlcjo6Y29sbGVjdEZlYXR1cmVzVG8oUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKQogICAg
ICAgICBmZWF0dXJlcy5hZGQoaXQtPnZhbHVlLT5mZWF0dXJlcygpKTsKIH0KIAotaW5saW5lIFJ1
bGVTZXQqIFN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlQXRIb3N0UnVsZVNldEZvcihjb25zdCBT
aGFkb3dSb290KiBzaGFkb3dSb290KQoraW5saW5lIFJ1bGVTZXQqIFN0eWxlU2NvcGVSZXNvbHZl
cjo6ZW5zdXJlQXRIb3N0UnVsZVNldEZvcihjb25zdCBTaGFkb3dSb290KiBzaGFkb3dSb290LCB1
bnNpZ25lZCogcnVsZUNvdW50KQogewogICAgIFNjb3BlZFJ1bGVTZXRNYXA6OkFkZFJlc3VsdCBh
ZGRSZXN1bHQgPSBtX2F0SG9zdFJ1bGVzLmFkZChzaGFkb3dSb290LCBudWxscHRyKTsKICAgICBp
ZiAoYWRkUmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1
ZSA9IFJ1bGVTZXQ6OmNyZWF0ZShydWxlQ291bnQpOwogICAgIHJldHVybiBhZGRSZXN1bHQuaXRl
cmF0b3ItPnZhbHVlLmdldCgpOwogfQogCkBAIC0xNzAsNyArMTcwLDcgQEAgaW5saW5lIFJ1bGVT
ZXQqIFN0eWxlU2NvcGVSZXNvbHZlcjo6YXRIb3N0UnVsZVNldEZvcihjb25zdCBTaGFkb3dSb290
KiBzaGFkb3dSb28KICAgICByZXR1cm4gaXQgIT0gbV9hdEhvc3RSdWxlcy5lbmQoKSA/IGl0LT52
YWx1ZS5nZXQoKSA6IDA7CiB9CiAKLXZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjphZGRIb3N0UnVs
ZShTdHlsZVJ1bGVIb3N0KiBob3N0UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
LCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkKK3ZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjph
ZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiBob3N0UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgdW5zaWduZWQqIHJ1bGVDb3Vu
dCkKIHsKICAgICBpZiAoIXNjb3BlIHx8ICFzY29wZS0+aXNJblNoYWRvd1RyZWUoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjph
ZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiBob3N0UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlCiAg
ICAgaWYgKCFzaGFkb3dSb290IHx8ICFzaGFkb3dSb290LT5ob3N0KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIFJ1bGVTZXQqIHJ1bGUgPSBlbnN1cmVBdEhvc3RSdWxlU2V0Rm9yKHNoYWRvd1Jv
b3QpOworICAgIFJ1bGVTZXQqIHJ1bGUgPSBlbnN1cmVBdEhvc3RSdWxlU2V0Rm9yKHNoYWRvd1Jv
b3QsIHJ1bGVDb3VudCk7CiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+
ID4mIGNoaWxkUnVsZXMgPSBob3N0UnVsZS0+Y2hpbGRSdWxlcygpOwogICAgIEFkZFJ1bGVGbGFn
cyBhZGRSdWxlRmxhZ3MgPSBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID8gUnVsZUhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9TcGVjaWFsU3RhdGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVTY29wZVJlc29sdmVyLmgKaW5kZXggM2JlM2ZmNGY3MGM3Mzc1YmQwMTQyNmEwMGJh
NDI0MTI4NDYyY2MwZS4uNzZhOWIxMWMzN2MzMDBmZWUzNWY2ZTc5ZTE1ZmY1ODIwM2M4MDY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuaApAQCAtNjgsMTQgKzY4LDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2goY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIGNv
bnN0IENvbnRhaW5lck5vZGUqIHNjb3BlUGFyZW50KTsKICAgICB2b2lkIHBvcChjb25zdCBDb250
YWluZXJOb2RlKiBzY29wZSk7CiAgICAgYm9vbCBoYXNTY29wZWRTdHlsZXMoKSBjb25zdCB7IHJl
dHVybiAhbV9hdXRob3JTdHlsZXMuaXNFbXB0eSgpOyB9Ci0gICAgUnVsZVNldCogZW5zdXJlUnVs
ZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSk7CisgICAgUnVsZVNldCogZW5zdXJl
UnVsZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgdW5zaWduZWQqIHJ1bGVDb3Vu
dCk7CiAgICAgYm9vbCBlbnN1cmVTdGFja0NvbnNpc3RlbmN5KENvbnRhaW5lck5vZGUqKTsKICAg
ICB1bnNpZ25lZCBzdGFja1NpemUoKSBjb25zdCB7IHJldHVybiBtX3N0YWNrLnNpemUoKTsgfQog
ICAgIGNvbnN0IFN0YWNrRnJhbWUmIHN0YWNrRnJhbWVBdCh1bnNpZ25lZCBpbmRleCkgY29uc3Qg
eyByZXR1cm4gbV9zdGFjay5hdChpbmRleCk7IH0KICAgICBib29sIG1hdGNoZXNTdHlsZUJvdW5k
cyhjb25zdCBTdGFja0ZyYW1lJiBmcmFtZSkgY29uc3QgeyByZXR1cm4gZnJhbWUubV9hdXRob3JT
dHlsZUJvdW5kc0luZGV4ID09IG1fc3RhY2tQYXJlbnRCb3VuZHNJbmRleDsgfQogICAgIHZvaWQg
Y29sbGVjdEZlYXR1cmVzVG8oUnVsZUZlYXR1cmVTZXQmKTsKIAotICAgIHZvaWQgYWRkSG9zdFJ1
bGUoU3R5bGVSdWxlSG9zdCosIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUpOworICAgIHZvaWQgYWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9z
dCosIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3QgQ29udGFpbmVyTm9kZSog
c2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpOwogICAgIGJvb2wgc3R5bGVTaGFyaW5nQ2FuZGlk
YXRlTWF0Y2hlc0hvc3RSdWxlcyhjb25zdCBFbGVtZW50Kik7CiAgICAgdm9pZCBtYXRjaEhvc3RS
dWxlcyhjb25zdCBFbGVtZW50KiwgVmVjdG9yPFJ1bGVTZXQqPiYgbWF0Y2hlZFJ1bGVzKTsKIApA
QCAtODUsNyArODUsNyBAQCBwcml2YXRlOgogICAgIFJ1bGVTZXQqIHJ1bGVTZXRGb3IoY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUpIGNvbnN0OwogICAgIHZvaWQgc2V0dXBTdGFjayhjb25zdCBD
b250YWluZXJOb2RlKik7CiAgICAgYm9vbCBzdGFja0lzQ29uc2lzdGVudChjb25zdCBDb250YWlu
ZXJOb2RlKiBwYXJlbnQpIGNvbnN0IHsgcmV0dXJuIHBhcmVudCAmJiBwYXJlbnQgPT0gbV9zdGFj
a1BhcmVudDsgfQotICAgIFJ1bGVTZXQqIGVuc3VyZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hh
ZG93Um9vdCopOworICAgIFJ1bGVTZXQqIGVuc3VyZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hh
ZG93Um9vdCosIHVuc2lnbmVkKiBydWxlQ291bnQpOwogICAgIFJ1bGVTZXQqIGF0SG9zdFJ1bGVT
ZXRGb3IoY29uc3QgU2hhZG93Um9vdCopIGNvbnN0OwogCiAgICAgU2NvcGVkUnVsZVNldE1hcCBt
X2F1dGhvclN0eWxlczsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmODE4OTYwZDBmY2QzNTRmODhlNThhMWUyM2EyN2Q3M2Uw
MDhmNTg0Li43NWIwZDQxOGMxYjc4MGM2MGM0YTk0MDRhN2RmZTdmMGIwNDBlNmQwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTItMTEtMjYgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29n
bGUuY29tPgorCisgICAgICAgIFtTaGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFw
cGxpZWQgaW4gZG9jdW1lbnQgb3JkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9j
dW1lbnQtb3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHls
ZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWw6IEFkZGVkLgorCiAyMDEy
LTExLTI2ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBKYXZh
U2NyaXB0IGZhaWxzIHRvIGhhbmRsZSBTdHJpbmcucmVwbGFjZSgpIHdpdGggbGFyZ2UgcmVwbGFj
ZW1lbnQgc3RyaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXItZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZmMzg1MWJkOTNjMzQ2NzA2Njg3NmE0N2RkOTRhYTVhMzZmNTBm
NzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQv
c3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAK
K0J1ZyAxMDMyMzkgLSBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVk
IGluIGRvY3VtZW50IG9yZGVyLgorVGVzdCB3aGV0aGVyIGEgc2NvcGVkIHN0eWxlIGlzIGFwcGxp
ZWQgaW4gZG9jdW1lbnQgb3JkZXIgb3Igbm90LgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRhcmdl
dCkuY29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMg
dHJ1ZQorCitURVNUIENPTVBMRVRFCitUaGUgY29sb3Igb2YgdGhpcyB0ZXh0IHNob3VsZCBiZSBn
cmVlbiwgbm90IHJlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNj
b3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXIuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NzZlYmMxNWIyYmUwM2NkMmRiZTMyNTc5NGM5ZjgzMzcwYzZiMzkxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1k
b2N1bWVudC1vcmRlci5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPHN0eWxlPgorc3BhbiB7CisgICAgY29sb3I6IHBpbms7Cit9CisKK2gz
IHsKKyAgICBjb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICA8ZGl2PgorICAgIDxzdHlsZSBzY29wZWQ+CisgICAgaDMgeworICAgICAg
ICBjb2xvcjogZ3JlZW47CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPGgzIGlkPSJ0YXJnZXQi
PlRoZSBjb2xvciBvZiB0aGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuLCBub3QgcmVkLjwvaDM+Cisg
IDwvZGl2PgorPHNjcmlwdD4KK2RlYnVnKCdCdWcgMTAzMjM5IC0gW1NoYWRvdyBET01dOiBzY29w
ZWQgc3R5bGVzIGFyZSBub3QgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlci4nKTsKK2RlYnVnKCdU
ZXN0IHdoZXRoZXIgYSBzY29wZWQgc3R5bGUgaXMgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlciBv
ciBub3QuJyk7Cit2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcp
Oworc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIsICcicmdiKDAsIDEy
OCwgMCkiJyk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176204</attachid>
            <date>2012-11-27 02:03:58 -0800</date>
            <delta_ts>2012-11-27 02:42:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121127190135.patch</filename>
            <type>text/plain</type>
            <size>25255</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVhM2EwYzY1NzQyMGQz
ZTczN2FhMTUyNzJhN2UyNGI2YzA5OGU3OC4uMjA2YjQ4ZGYzNTFjNTY0OGQyYmRmOTdjZDliYmQz
OGM1NzE1MDc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUnVsZXNldHMgZm9yIHNj
b3BlZCBzdHlsZXMgYW5kIHJ1bGVzZXQgZm9yIG5vdC1zY29wZWQgc3R5bGVzIGhhdmUgdG8KKyAg
ICAgICAgc2hhcmUgcG9zaXRpb24gaW5mb3JtYXRpb24sIGkuZS4gbV9ydWxlQ291bnQuIElmIHRo
ZXNlIHJ1bGVzZXRzIGRvbid0CisgICAgICAgIHNoYXJlIHRoZSBpbmZvcm1hdGlvbiwgd2UgY2Fu
bm90IGRldGVybWluZSB3aGljaCBydWxlIHNob3VsZCBiZQorICAgICAgICBhcHBsaWVkLCBmcm9t
IHNjb3BlZCBzdHlsZXMgb3IgZnJvbSBub3Qtc2NvcGVkIHN0eWxlcy4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUmVnaW9uUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldCk6CisgICAgICAgICog
Y3NzL1J1bGVTZXQuaDoKKyAgICAgICAgbV9ydWxlQ291bnQgaXMgdXNlZCB0byBrZWVwIGRvY3Vt
ZW50IG9yZGVyIGluZm9ybWF0aW9uLgorICAgICAgICBDaGFuZ2VkIG1fcnVsZUNvdW50IGZyb20g
dW5zaWduZWQgdG8gdW5zaWduZWQqIHRvIHNoYXJlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBh
bW9uZyBtdWx0aXBsZSBydWxlc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpkaXNhYmxlQWRkUnVsZSk6CisgICAgICAg
IFNvbWUgcnVsZXNldHMsIGUuZy4gZmVhdHVyZSBzZXQsIHJlcXVpcmVzIHZhbGlkIG1fcnVsZUNv
dW50IG9ubHkgd2hlbgorICAgICAgICB3ZSBpbml0aXplIHRoZSBydWxlc2V0LCBlLmcuIHdlIG5l
ZWQgb25seSBpbgorICAgICAgICBTdHlsZVJlc29sdmVyOjptYWtlUnVsZVNldC4gU28gaW4gc3Vj
aCBjYXNlcywgcHJvdmlkZSBsb2NhbCB2YXJpYWJsZQorICAgICAgICBmb3IgUnVsZVNldDo6Y3Jl
YXRlLiBBZnRlciBhZGRpbmcgYWxsIHJ1bGVzLCB1c2UgdGhpcyBtZXRob2QgdG8KKyAgICAgICAg
cmVzZXQgbV9ydWxlQ291bnQuCisgICAgICAgIChSdWxlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bGVTZXQ6OlJ1bGVTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3R5bGVS
ZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNG
cm9tVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VSdWxlU2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmxvYWRWaWV3U291cmNlU3R5bGUpOgorICAgICAgICBUaGVzZSBzdHls
ZXMsIGkuZS4gbV91c2VyU3R5bGUsIGRlZmF1bHRWaWV3U291cmNlU3R5bGUsCisgICAgICAgIG1f
c2libGluZ1J1bGVTZXQsIG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0IG5lZWQgdmFsaWQgbV9y
dWxlQ291bnQKKyAgICAgICAgb25seSBpbiB0aGVzZSBtZXRob2RzLiBTbyB1c2UgbG9jYWwgdmFy
YWlibGVzIHRvIGluaXRpYWxpemUgdGhlc2UKKyAgICAgICAgcnVsZXMuIEFmdGVyIGluaXRpYWxp
emluZyB0aGVtLCBpbnZva2UgZGlzYWJsZUFkZFJ1bGUgdG8gcmVzZXQKKyAgICAgICAgbV9ydWxl
Q291bnQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpyZXNldEF1dGhvclN0eWxl
KToKKyAgICAgICAgQWRkZWQgdG8gbWFrZSBtX2F1dGhvclJ1bGVDb3VudCBiZSAwLgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMpOgorICAg
ICAgICAoV2ViQ29yZTo6bG9hZEZ1bGxEZWZhdWx0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
bG9hZFNpbXBsZURlZmF1bHRTdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAg
KFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVSdWxlU2V0Rm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlQXRIb3N0UnVsZVNl
dEZvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxl
KToKKyAgICAgICAgKiBjc3MvU3R5bGVTY29wZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVNj
b3BlUmVzb2x2ZXIpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZW1iZXIgdmFyaWFibGUsIG1fYXV0
aG9yUnVsZUNvdW50IHdoaWNoIGhhcyBkb2N1bWVudAorICAgICAgICBvcmRlciBpbmZvcm1hdGlv
biB1c2VkIGJ5IG1fYXV0aG9yU3R5bGVzIGluIFN0eWxlUmVzb2x2ZXIgYW5kCisgICAgICAgIHNj
b3BlZCBzdHlsZXMgaW4gU3R5bGVTY29wZVJlc29sdmVyLgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKToKKyAg
ICAgICAgTW9kaWZpZWQgdG8gc3VwcG9ydCBub2RlcyBpbiBzaGFkb3cgZG9tIHRyZWVzLiBJZiBh
IGNvbW1vbiBhbmNlc3RvciBvZgorICAgICAgICB0aGUgZ2l2ZW4gbm9kZSBBIGFuZCBCIGlzIGEg
c2hhZG93IGhvc3QsIHN1cHBvc2UgdGhhdCBBJyBpcyBhbiBhbmNlc3RvcgorICAgICAgICBvZiBu
b2RlIEEgYW5kIGEgY2hpbGQgb2YgdGhlIGNvbW1vbiBhbmNlc3RvciBhbmQgQidzIGlzIGFuIGFu
Y2VzdG9yCisgICAgICAgIG9mIG5vZGUgQiBhbmQgYSBjaGlsZCBvZiB0aGUgY29tbW9uIGFuY2Vz
dG9yOgorICAgICAgICAtIGlmIEEnIGlzIGEgc2hhZG93IHJvb3QgYW5kIEInIGlzIG5vdCBhIHNo
YWRvdyByb290LCBBIDwgQi4KKyAgICAgICAgLSBpZiBBJyBpcyBub3QgYSBzaGFkb3cgcm9vdCBh
bmQgQicgaXMgYSBzaGFkb3cgcm9vdCwgQSA+IEIuCisgICAgICAgIC0gaWYgQScgYW5kIEInIGFy
ZSBzaGFkb3cgcm9vdHMsIHNlZSB3aGljaGkgaXMgYSB5b3VuZ2VyIHNoYWRvdyByb290LAorICAg
ICAgICAgIEEnIG9yIEInLiBJZiBBJyBpcyB5b3VuZ2VyIHRoYW4gQicsIEEgPiBCLiBPdGhlcndp
c2UsIEIgPCBBLgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgQGhvc3QgQC1y
dWxlcy4gV2l0aG91dCB0aGlzIGNoYW5nZSwKKyAgICAgICAgYXRob3N0LWF0cnVsZXMuaHRtbCB3
aWxsIGZhaWwuCisKIDIwMTItMTEtMjYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwu
Y29tPgogCiAgICAgICAgIFBORyBkZWNvZGUgcGVyZm9ybWFuY2U6IGF2b2lkIHVzaW5nIGZyYW1l
IGJ1ZmZlci5zZXRSR0JBKHgseSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxl
U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5YTc4YzBmZjkw
Mzg5YzkwYzQ0ZGE1YTZiOWY1ZmY3YWUyMGM2ZTMxLi40MmVhOGRiNDA2YzE5ZWE5MDA2Y2VkYWRm
Nzc4OGRkNTliZmNjMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xOTAsNyArMTkwLDgg
QEAgdm9pZCBSdWxlU2V0OjphZGRUb1J1bGVTZXQoQXRvbWljU3RyaW5nSW1wbCoga2V5LCBBdG9t
UnVsZU1hcCYgbWFwLCBjb25zdCBSdWxlRGEKIAogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxl
UnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVG
bGFncykKIHsKLSAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1
bGVDb3VudCsrLCBhZGRSdWxlRmxhZ3MpOworICAgIEFTU0VSVChtX3J1bGVDb3VudCk7CisgICAg
UnVsZURhdGEgcnVsZURhdGEocnVsZSwgc2VsZWN0b3JJbmRleCwgKysqbV9ydWxlQ291bnQsIGFk
ZFJ1bGVGbGFncyk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGF0aG9zdFJ1bGVTcGVjaWZp
Y2l0eSA9IDB4MTAwMDAwOwogCiAgICAgaWYgKGFkZFJ1bGVGbGFncyAmIFJ1bGVJc0hvc3RSdWxl
KQpAQCAtMjQyLDExICsyNDMsMTEgQEAgdm9pZCBSdWxlU2V0OjphZGRQYWdlUnVsZShTdHlsZVJ1
bGVQYWdlKiBydWxlKQogCiB2b2lkIFJ1bGVTZXQ6OmFkZFJlZ2lvblJ1bGUoU3R5bGVSdWxlUmVn
aW9uKiByZWdpb25SdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAg
T3duUHRyPFJ1bGVTZXQ+IHJlZ2lvblJ1bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICBB
U1NFUlQobV9ydWxlQ291bnQpOwogICAgIC8vIFRoZSByZWdpb24gcnVsZSBzZXQgc2hvdWxkIHRh
a2UgaW50byBhY2NvdW50IHRoZSBwb3NpdGlvbiBpbnNpZGUgdGhlIHBhcmVudCBydWxlIHNldC4K
ICAgICAvLyBPdGhlcndpc2UsIHRoZSBydWxlcyBpbnNpZGUgcmVnaW9uIGJsb2NrIG1pZ2h0IGJl
IGluY29ycmVjdGx5IHBvc2l0aW9uZWQgYmVmb3JlIG90aGVyIHNpbWlsYXIgcnVsZXMgZnJvbQog
ICAgIC8vIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIHJlZ2lvbiBibG9jay4KLSAg
ICByZWdpb25SdWxlU2V0LT5tX3J1bGVDb3VudCA9IG1fcnVsZUNvdW50OworICAgIE93blB0cjxS
dWxlU2V0PiByZWdpb25SdWxlU2V0ID0gUnVsZVNldDo6Y3JlYXRlKG1fcnVsZUNvdW50KTsKIAog
ICAgIC8vIENvbGxlY3QgdGhlIHJlZ2lvbiBydWxlcyBpbnRvIGEgcnVsZSBzZXQKICAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGNoaWxkUnVsZXMgPSByZWdpb25SdWxl
LT5jaGlsZFJ1bGVzKCk7CkBAIC0yNTcsOCArMjU4LDYgQEAgdm9pZCBSdWxlU2V0OjphZGRSZWdp
b25SdWxlKFN0eWxlUnVsZVJlZ2lvbiogcmVnaW9uUnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3Vy
aXQKICAgICAgICAgaWYgKHJlZ2lvblN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQogICAgICAg
ICAgICAgcmVnaW9uUnVsZVNldC0+YWRkU3R5bGVSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZSo+
KHJlZ2lvblN0eWxpbmdSdWxlKSwgYWRkUnVsZUZsYWdzKTsKICAgICB9Ci0gICAgLy8gVXBkYXRl
IHRoZSAiZ2xvYmFsIiBydWxlIGNvdW50IHNvIHRoYXQgcHJvcGVyIG9yZGVyIGlzIG1haW50YWlu
ZWQKLSAgICBtX3J1bGVDb3VudCA9IHJlZ2lvblJ1bGVTZXQtPm1fcnVsZUNvdW50OwogCiAgICAg
bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hcHBlbmQoUnVsZVNldFNlbGVjdG9yUGFpcihy
ZWdpb25SdWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpLCByZWdpb25SdWxlU2V0LnJlbGVhc2Uo
KSkpOwogfQpAQCAtMjY2LDYgKzI2NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUmVnaW9uUnVsZShT
dHlsZVJ1bGVSZWdpb24qIHJlZ2lvblJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0CiB2b2lk
IFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNv
bnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgU3R5bGVSZXNvbHZlciogcmVzb2x2ZXIs
IGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKQogewogICAgIEFTU0VSVChzaGVldCk7CisgICAg
QVNTRVJUKG1fcnVsZUNvdW50KTsKICAgICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxl
UnVsZUltcG9ydD4gPiYgaW1wb3J0UnVsZXMgPSBzaGVldC0+aW1wb3J0UnVsZXMoKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW1wb3J0UnVsZXMuc2l6ZSgpOyArK2kpIHsKQEAgLTM0
Niw3ICszNDYsNyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRD
b250ZW50cyogc2hlZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdQogI2VuZGlmCiAjaWYgRU5BQkxF
KFNIQURPV19ET00pCiAgICAgICAgIGVsc2UgaWYgKHJ1bGUtPmlzSG9zdFJ1bGUoKSkKLSAgICAg
ICAgICAgIHJlc29sdmVyLT5hZGRIb3N0UnVsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4o
cnVsZSksIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlKTsKKyAgICAgICAgICAgIHJl
c29sdmVyLT5hZGRIb3N0UnVsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4ocnVsZSksIGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlLCBtX3J1bGVDb3VudCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgICAgICBlbHNlIGlmIChydWxlLT5p
c1ZpZXdwb3J0UnVsZSgpICYmIHJlc29sdmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBhMmZi
ZWNiYzAwYjJjYTFiNTMyZjQ5NmE5NWMwOTM1MDI2ZmE0ZjdkLi4xY2I2N2U4YjNjNjYwNDJjZDcy
ZjQ3MWNlMjAwN2NjM2RkNjE2NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBDT01QSUxFX0FTU0VSVChzaXplb2YoUnVsZURhdGEpID09IHNpemVvZihTYW1lU2l6ZUFz
UnVsZURhdGEpLCBSdWxlRGF0YV9zaG91bGRfcwogY2xhc3MgUnVsZVNldCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoUnVsZVNldCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBSdWxlU2V0KTsgfQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IGNyZWF0
ZSh1bnNpZ25lZCogcnVsZUNvdW50KSB7IHJldHVybiBhZG9wdFB0cihuZXcgUnVsZVNldChydWxl
Q291bnQpKTsgfQogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBPd25Q
dHI8VmVjdG9yPFJ1bGVEYXRhPiA+ID4gQXRvbVJ1bGVNYXA7CiAKQEAgLTExNCw2ICsxMTQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiosIGJvb2wg
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbik7CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogICAg
IHZvaWQgZGlzYWJsZUF1dG9TaHJpbmtUb0ZpdCgpIHsgbV9hdXRvU2hyaW5rVG9GaXRFbmFibGVk
ID0gZmFsc2U7IH0KKyAgICB2b2lkIGRpc2FibGVBZGRSdWxlKCkgeyBtX3J1bGVDb3VudCA9IDA7
IH0KIAogICAgIGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZmVhdHVyZXM7IH0KIApAQCAtMTI5LDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHVibGljOgotICAg
IFJ1bGVTZXQoKTsKKyAgICBSdWxlU2V0KHVuc2lnbmVkKik7CiAKICAgICBBdG9tUnVsZU1hcCBt
X2lkUnVsZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV9jbGFzc1J1bGVzOwpAQCAtMTM5LDcgKzE0MCw3
IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8UnVsZURhdGE+IG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVz
OwogICAgIFZlY3RvcjxSdWxlRGF0YT4gbV91bml2ZXJzYWxSdWxlczsKICAgICBWZWN0b3I8U3R5
bGVSdWxlUGFnZSo+IG1fcGFnZVJ1bGVzOwotICAgIHVuc2lnbmVkIG1fcnVsZUNvdW50OworICAg
IHVuc2lnbmVkKiBtX3J1bGVDb3VudDsKICAgICBib29sIG1fYXV0b1Nocmlua1RvRml0RW5hYmxl
ZDsKICAgICBSdWxlRmVhdHVyZVNldCBtX2ZlYXR1cmVzOwogCkBAIC0xNTUsOCArMTU2LDggQEAg
cHVibGljOgogICAgIFZlY3RvcjxSdWxlU2V0U2VsZWN0b3JQYWlyPiBtX3JlZ2lvblNlbGVjdG9y
c0FuZFJ1bGVTZXRzOwogfTsKIAotaW5saW5lIFJ1bGVTZXQ6OlJ1bGVTZXQoKQotICAgIDogbV9y
dWxlQ291bnQoMCkKK2lubGluZSBSdWxlU2V0OjpSdWxlU2V0KHVuc2lnbmVkKiBydWxlQ291bnQp
CisgICAgOiBtX3J1bGVDb3VudChydWxlQ291bnQpCiAgICAgLCBtX2F1dG9TaHJpbmtUb0ZpdEVu
YWJsZWQodHJ1ZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBj
YmY2YzhhNzUxYWRkYmQ0NmNjMTBiMmJiMGU4ZmVmYzcyNGU5MmQ3Li40ODc0NTc1ZTZkMDY4NjU3
NmQxZjcyYWY0NGE1OGZiNmIzMzU0OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRTdHlsZTsKIHN0
YXRpYyBSdWxlU2V0KiBkZWZhdWx0UXVpcmtzU3R5bGU7CiBzdGF0aWMgUnVsZVNldCogZGVmYXVs
dFByaW50U3R5bGU7CiBzdGF0aWMgUnVsZVNldCogZGVmYXVsdFZpZXdTb3VyY2VTdHlsZTsKK3N0
YXRpYyB1bnNpZ25lZCBydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzOwogc3RhdGljIFN0eWxlU2hl
ZXRDb250ZW50cyogc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQ7CiBzdGF0aWMgU3R5bGVTaGVldENv
bnRlbnRzKiBkZWZhdWx0U3R5bGVTaGVldDsKIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIHF1
aXJrc1N0eWxlU2hlZXQ7CkBAIC0yODYsNiArMjg3LDcgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVS
ZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVz
KQogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAsIG1faGFzUGVuZGluZ1NoYWRlcnMoZmFs
c2UpCiAjZW5kaWYKKyAgICAsIG1fYXV0aG9yUnVsZUNvdW50KDApCiAgICAgLCBtX3N0eWxlTWFw
KHRoaXMpCiB7CiAgICAgRWxlbWVudCogcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQo
KTsKQEAgLTMyNCwxMSArMzI2LDEzIEBAIFN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIoRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcykKIAogdm9pZCBT
dHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgdXNlclNoZWV0cykKIHsKLSAgICBPd25QdHI8UnVs
ZVNldD4gdXNlclN0eWxlUnVsZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIHVuc2lnbmVk
IHJ1bGVDb3VudCA9IDA7CisgICAgT3duUHRyPFJ1bGVTZXQ+IHVzZXJTdHlsZVJ1bGVTZXQgPSBS
dWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHVzZXJTaGVldHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQVNTRVJUKHVzZXJTaGVldHNbaV0t
PmNvbnRlbnRzKCktPmlzVXNlclN0eWxlU2hlZXQoKSk7CiAgICAgICAgIHVzZXJTdHlsZVJ1bGVT
ZXQtPmFkZFJ1bGVzRnJvbVNoZWV0KHVzZXJTaGVldHNbaV0tPmNvbnRlbnRzKCksICptX21lZGl1
bSwgdGhpcyk7CiAgICAgfQorICAgIHVzZXJTdHlsZVJ1bGVTZXQtPmRpc2FibGVBZGRSdWxlKCk7
CiAgICAgaWYgKHVzZXJTdHlsZVJ1bGVTZXQtPm1fcnVsZUNvdW50ID4gMCB8fCB1c2VyU3R5bGVS
dWxlU2V0LT5tX3BhZ2VSdWxlcy5zaXplKCkgPiAwKQogICAgICAgICBtX3VzZXJTdHlsZSA9IHVz
ZXJTdHlsZVJ1bGVTZXQucmVsZWFzZSgpOwogfQpAQCAtMzM4LDEwICszNDIsMTIgQEAgc3RhdGlj
IFBhc3NPd25QdHI8UnVsZVNldD4gbWFrZVJ1bGVTZXQoY29uc3QgVmVjdG9yPFJ1bGVGZWF0dXJl
PiYgcnVsZXMpCiAgICAgc2l6ZV90IHNpemUgPSBydWxlcy5zaXplKCk7CiAgICAgaWYgKCFzaXpl
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBPd25QdHI8UnVsZVNldD4gcnVsZVNldCA9
IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIHVuc2lnbmVkIHJ1bGVDb3VudCA9IDA7CisgICAgT3du
UHRyPFJ1bGVTZXQ+IHJ1bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1
bGUocnVsZXNbaV0ucnVsZSwgcnVsZXNbaV0uc2VsZWN0b3JJbmRleCwgcnVsZXNbaV0uaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIDogUnVs
ZUhhc05vU3BlY2lhbFN0YXRlKTsKICAgICBydWxlU2V0LT5zaHJpbmtUb0ZpdCgpOworICAgIHJ1
bGVTZXQtPmRpc2FibGVBZGRSdWxlKCk7CiAgICAgcmV0dXJuIHJ1bGVTZXQucmVsZWFzZSgpOwog
fQogCkBAIC0zNjQsNyArMzcwLDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0RmVhdHVy
ZXMoKQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlc2V0QXV0aG9yU3R5bGUoKQogewotICAgIG1f
YXV0aG9yU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICBtX2F1dGhvclJ1bGVDb3VudCA9
IDA7CisgICAgbV9hdXRob3JTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmbV9hdXRob3JSdWxlQ291
bnQpOwogICAgIG1fYXV0aG9yU3R5bGUtPmRpc2FibGVBdXRvU2hyaW5rVG9GaXQoKTsKIH0KIApA
QCAtMzgxLDcgKzM4OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVT
aGVldHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZlY3RvcjxSZWZQCiAgICAgICAgIFN0eWxl
U2hlZXRDb250ZW50cyogc2hlZXQgPSBjc3NTaGVldC0+Y29udGVudHMoKTsKICNpZiBFTkFCTEUo
U1RZTEVfU0NPUEVEKSB8fCBFTkFCTEUoU0hBRE9XX0RPTSkKICAgICAgICAgaWYgKGNvbnN0IENv
bnRhaW5lck5vZGUqIHNjb3BlID0gU3R5bGVTY29wZVJlc29sdmVyOjpzY29wZUZvcihjc3NTaGVl
dCkpIHsKLSAgICAgICAgICAgIGVuc3VyZVNjb3BlUmVzb2x2ZXIoKS0+ZW5zdXJlUnVsZVNldEZv
cihzY29wZSktPmFkZFJ1bGVzRnJvbVNoZWV0KHNoZWV0LCAqbV9tZWRpdW0sIHRoaXMsIHNjb3Bl
KTsKKyAgICAgICAgICAgIGVuc3VyZVNjb3BlUmVzb2x2ZXIoKS0+ZW5zdXJlUnVsZVNldEZvcihz
Y29wZSwgJm1fYXV0aG9yUnVsZUNvdW50KS0+YWRkUnVsZXNGcm9tU2hlZXQoc2hlZXQsICptX21l
ZGl1bSwgdGhpcywgc2NvcGUpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICNl
bmRpZgpAQCAtNDk2LDE5ICs1MDMsMjAgQEAgc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcGFy
c2VVQVNoZWV0KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIHNpemUpCiAKIHN0YXRp
YyB2b2lkIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCkKIHsKKyAgICBydWxlQ291bnRGb3JEZWZhdWx0
U3R5bGVzID0gMDsKICAgICBpZiAoc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpIHsKICAgICAgICAg
QVNTRVJUKGRlZmF1bHRTdHlsZSk7CiAgICAgICAgIEFTU0VSVChkZWZhdWx0UHJpbnRTdHlsZSA9
PSBkZWZhdWx0U3R5bGUpOwogICAgICAgICBkZWxldGUgZGVmYXVsdFN0eWxlOwogICAgICAgICBz
aW1wbGVEZWZhdWx0U3R5bGVTaGVldC0+ZGVyZWYoKTsKLSAgICAgICAgZGVmYXVsdFN0eWxlID0g
UnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9
IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKKyAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVs
ZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CisgICAg
ICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZh
dWx0U3R5bGVzKS5sZWFrUHRyKCk7CiAgICAgICAgIHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0ID0g
MDsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQoIWRlZmF1bHRTdHlsZSk7Ci0gICAgICAg
IGRlZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVm
YXVsdFByaW50U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7Ci0gICAgICAgIGRl
ZmF1bHRRdWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKKyAgICAgICAg
ZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVz
KS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRl
KCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRR
dWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxlcyku
bGVha1B0cigpOwogICAgIH0KIAogICAgIC8vIFN0cmljdC1tb2RlIHJ1bGVzLgpAQCAtNTI4LDEw
ICs1MzYsMTEgQEAgc3RhdGljIHZvaWQgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpCiAgICAgQVNT
RVJUKCFkZWZhdWx0U3R5bGUpOwogICAgIEFTU0VSVCghc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQp
OwogCi0gICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOworICAg
IHJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMgPSAwOworICAgIGRlZmF1bHRTdHlsZSA9IFJ1bGVT
ZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVha1B0cigpOwogICAgIC8v
IFRoZXJlIGFyZSBubyBtZWRpYS1zcGVjaWZpYyBydWxlcyBpbiB0aGUgc2ltcGxlIGRlZmF1bHQg
c3R5bGUuCiAgICAgZGVmYXVsdFByaW50U3R5bGUgPSBkZWZhdWx0U3R5bGU7Ci0gICAgZGVmYXVs
dFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOworICAgIGRlZmF1bHRR
dWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxlcyku
bGVha1B0cigpOwogCiAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQo
c2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCwgc3RybGVuKHNpbXBsZVVzZXJBZ2VudFN0eWxlU2hl
ZXQpKTsKICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHNpbXBsZURlZmF1bHRT
dHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwpAQCAtNTQyLDggKzU1MSwxMCBAQCBzdGF0aWMgdm9p
ZCBsb2FkU2ltcGxlRGVmYXVsdFN0eWxlKCkKIHN0YXRpYyB2b2lkIGxvYWRWaWV3U291cmNlU3R5
bGUoKQogewogICAgIEFTU0VSVCghZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSk7Ci0gICAgZGVmYXVs
dFZpZXdTb3VyY2VTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKKyAgICB1bnNp
Z25lZCBydWxlQ291bnQgPSAwOworICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUgPSBSdWxlU2V0
OjpjcmVhdGUoJnJ1bGVDb3VudCkubGVha1B0cigpOwogICAgIGRlZmF1bHRWaWV3U291cmNlU3R5
bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhcnNlVUFTaGVldChzb3VyY2VVc2VyQWdlbnRTdHlsZVNo
ZWV0LCBzaXplb2Yoc291cmNlVXNlckFnZW50U3R5bGVTaGVldCkpLCBzY3JlZW5FdmFsKCkpOwor
ICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUtPmRpc2FibGVBZGRSdWxlKCk7CiB9CiAKIHN0YXRp
YyB2b2lkIGVuc3VyZURlZmF1bHRTdHlsZVNoZWV0c0ZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDA1NWQ4MTNlZGI1NmIwNTBjYjYx
MzM3MjQ1NDg1MTFkYzYwZmIyMmIuLjJlOWE1YTJhY2MyMDNkMzQ4MjQxNTg1MjAxOTdkNDFkNzcy
ZWMzYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMTQwLDcgKzE0MCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHB1c2hQYXJlbnRTaGFkb3dSb290KGNvbnN0IFNoYWRvd1Jvb3Qq
KTsKICAgICB2b2lkIHBvcFBhcmVudFNoYWRvd1Jvb3QoY29uc3QgU2hhZG93Um9vdCopOwogI2lm
IEVOQUJMRShTSEFET1dfRE9NKQotICAgIHZvaWQgYWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCog
cnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBjb25zdCBDb250YWluZXJOb2Rl
KiBzY29wZSkgeyBlbnN1cmVTY29wZVJlc29sdmVyKCktPmFkZEhvc3RSdWxlKHJ1bGUsIGhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlKTsgfQorICAgIHZvaWQgYWRkSG9zdFJ1bGUoU3R5
bGVSdWxlSG9zdCogcnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBjb25zdCBD
b250YWluZXJOb2RlKiBzY29wZSwgdW5zaWduZWQqIHJ1bGVDb3VudCkgeyBlbnN1cmVTY29wZVJl
c29sdmVyKCktPmFkZEhvc3RSdWxlKHJ1bGUsIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNj
b3BlLCBydWxlQ291bnQpOyB9CiAjZW5kaWYKIAogICAgIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+
IHN0eWxlRm9yRWxlbWVudChFbGVtZW50KiwgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gMCwg
U3R5bGVTaGFyaW5nQmVoYXZpb3IgPSBBbGxvd1N0eWxlU2hhcmluZywKQEAgLTUxNiw2ICs1MTYs
NyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRklMVEVSUykgJiYgRU5BQkxFKFNWRykKICAg
ICBIYXNoTWFwPEZpbHRlck9wZXJhdGlvbiosIFJlZlB0cjxXZWJLaXRDU1NTVkdEb2N1bWVudFZh
bHVlPiA+IG1fcGVuZGluZ1NWR0RvY3VtZW50czsKICNlbmRpZgorICAgIHVuc2lnbmVkIG1fYXV0
aG9yUnVsZUNvdW50OwogCiAgICAgT3duUHRyPFN0eWxlU2NvcGVSZXNvbHZlcj4gbV9zY29wZVJl
c29sdmVyOwogICAgIENTU1RvU3R5bGVNYXAgbV9zdHlsZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNWZmMmIzZTBiMTE1NDk5NDQ3ZTIxYzg2ZjU4
ZjY0NjEzMDFjZjBmZC4uYjYxNDAxYWNkMmZjZmMwMjQwMTZiNjdiZTZiNWVjNDNkNjEwNmI2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKQEAgLTg1LDExICs4
NSwxMSBAQCBpbmxpbmUgUnVsZVNldCogU3R5bGVTY29wZVJlc29sdmVyOjpydWxlU2V0Rm9yKGNv
bnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKSBjb25zdAogICAgIHJldHVybiBpdCAhPSBtX2F1dGhv
clN0eWxlcy5lbmQoKSA/IGl0LT52YWx1ZS5nZXQoKSA6IDA7IAogfQogCi1SdWxlU2V0KiBTdHls
ZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZVJ1bGVTZXRGb3IoY29uc3QgQ29udGFpbmVyTm9kZSogc2Nv
cGUpCitSdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZVJ1bGVTZXRGb3IoY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpCiB7CiAgICAgU2NvcGVk
UnVsZVNldE1hcDo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1fYXV0aG9yU3R5bGVzLmFkZChzY29w
ZSwgbnVsbHB0cik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICBhZGRS
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVsZVNldDo6Y3JlYXRlKCk7CisgICAgICAgIGFkZFJl
c3VsdC5pdGVyYXRvci0+dmFsdWUgPSBSdWxlU2V0OjpjcmVhdGUocnVsZUNvdW50KTsKICAgICBy
ZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIApAQCAtMTU2LDExICsx
NTYsMTEgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmNvbGxlY3RGZWF0dXJlc1RvKFJ1bGVG
ZWF0dXJlU2V0JiBmZWF0dXJlcykKICAgICAgICAgZmVhdHVyZXMuYWRkKGl0LT52YWx1ZS0+ZmVh
dHVyZXMoKSk7CiB9CiAKLWlubGluZSBSdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3Vy
ZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCkKK2lubGluZSBS
dWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3Qg
U2hhZG93Um9vdCogc2hhZG93Um9vdCwgdW5zaWduZWQqIHJ1bGVDb3VudCkKIHsKICAgICBTY29w
ZWRSdWxlU2V0TWFwOjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gbV9hdEhvc3RSdWxlcy5hZGQoc2hh
ZG93Um9vdCwgbnVsbHB0cik7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAg
ICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVsZVNldDo6Y3JlYXRlKCk7CisgICAgICAg
IGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBSdWxlU2V0OjpjcmVhdGUocnVsZUNvdW50KTsK
ICAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5nZXQoKTsKIH0KIApAQCAtMTcw
LDcgKzE3MCw3IEBAIGlubGluZSBSdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmF0SG9zdFJ1
bGVTZXRGb3IoY29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vCiAgICAgcmV0dXJuIGl0ICE9IG1f
YXRIb3N0UnVsZXMuZW5kKCkgPyBpdC0+dmFsdWUuZ2V0KCkgOiAwOwogfQogCi12b2lkIFN0eWxl
U2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wg
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpCit2
b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1
bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3QgQ29udGFpbmVyTm9kZSog
c2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpCiB7CiAgICAgaWYgKCFzY29wZSB8fCAhc2NvcGUt
PmlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OSw3ICsxNzksNyBAQCB2
b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1
bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQogICAgIGlmICghc2hhZG93Um9vdCB8fCAhc2hhZG93Um9v
dC0+aG9zdCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBSdWxlU2V0KiBydWxlID0gZW5zdXJl
QXRIb3N0UnVsZVNldEZvcihzaGFkb3dSb290KTsKKyAgICBSdWxlU2V0KiBydWxlID0gZW5zdXJl
QXRIb3N0UnVsZVNldEZvcihzaGFkb3dSb290LCBydWxlQ291bnQpOwogCiAgICAgY29uc3QgVmVj
dG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVzID0gaG9zdFJ1bGUtPmNoaWxk
UnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzID0gaGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIDogUnVsZUhhc05vU3Bl
Y2lhbFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNv
bHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5oCmluZGV4IDNi
ZTNmZjRmNzBjNzM3NWJkMDE0MjZhMDBiYTQyNDEyODQ2MmNjMGUuLjc2YTliMTFjMzdjMzAwZmVl
MzVmNmU3OWUxNWZmNTgyMDNjODA2OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVNjb3BlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJl
c29sdmVyLmgKQEAgLTY4LDE0ICs2OCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoKGNvbnN0
IENvbnRhaW5lck5vZGUqIHNjb3BlLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZVBhcmVudCk7
CiAgICAgdm9pZCBwb3AoY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpOwogICAgIGJvb2wgaGFz
U2NvcGVkU3R5bGVzKCkgY29uc3QgeyByZXR1cm4gIW1fYXV0aG9yU3R5bGVzLmlzRW1wdHkoKTsg
fQotICAgIFJ1bGVTZXQqIGVuc3VyZVJ1bGVTZXRGb3IoY29uc3QgQ29udGFpbmVyTm9kZSogc2Nv
cGUpOworICAgIFJ1bGVTZXQqIGVuc3VyZVJ1bGVTZXRGb3IoY29uc3QgQ29udGFpbmVyTm9kZSog
c2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpOwogICAgIGJvb2wgZW5zdXJlU3RhY2tDb25zaXN0
ZW5jeShDb250YWluZXJOb2RlKik7CiAgICAgdW5zaWduZWQgc3RhY2tTaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFjay5zaXplKCk7IH0KICAgICBjb25zdCBTdGFja0ZyYW1lJiBzdGFja0ZyYW1l
QXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2suYXQoaW5kZXgpOyB9CiAg
ICAgYm9vbCBtYXRjaGVzU3R5bGVCb3VuZHMoY29uc3QgU3RhY2tGcmFtZSYgZnJhbWUpIGNvbnN0
IHsgcmV0dXJuIGZyYW1lLm1fYXV0aG9yU3R5bGVCb3VuZHNJbmRleCA9PSBtX3N0YWNrUGFyZW50
Qm91bmRzSW5kZXg7IH0KICAgICB2b2lkIGNvbGxlY3RGZWF0dXJlc1RvKFJ1bGVGZWF0dXJlU2V0
Jik7CiAKLSAgICB2b2lkIGFkZEhvc3RSdWxlKFN0eWxlUnVsZUhvc3QqLCBib29sIGhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKTsKKyAgICB2b2lk
IGFkZEhvc3RSdWxlKFN0eWxlUnVsZUhvc3QqLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmln
aW4sIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCB1bnNpZ25lZCogcnVsZUNvdW50KTsKICAg
ICBib29sIHN0eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNoZXNIb3N0UnVsZXMoY29uc3QgRWxlbWVu
dCopOwogICAgIHZvaWQgbWF0Y2hIb3N0UnVsZXMoY29uc3QgRWxlbWVudCosIFZlY3RvcjxSdWxl
U2V0Kj4mIG1hdGNoZWRSdWxlcyk7CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHJpdmF0ZToKICAgICBS
dWxlU2V0KiBydWxlU2V0Rm9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKSBjb25zdDsKICAg
ICB2b2lkIHNldHVwU3RhY2soY29uc3QgQ29udGFpbmVyTm9kZSopOwogICAgIGJvb2wgc3RhY2tJ
c0NvbnNpc3RlbnQoY29uc3QgQ29udGFpbmVyTm9kZSogcGFyZW50KSBjb25zdCB7IHJldHVybiBw
YXJlbnQgJiYgcGFyZW50ID09IG1fc3RhY2tQYXJlbnQ7IH0KLSAgICBSdWxlU2V0KiBlbnN1cmVB
dEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqKTsKKyAgICBSdWxlU2V0KiBlbnN1cmVB
dEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqLCB1bnNpZ25lZCogcnVsZUNvdW50KTsK
ICAgICBSdWxlU2V0KiBhdEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqKSBjb25zdDsK
IAogICAgIFNjb3BlZFJ1bGVTZXRNYXAgbV9hdXRob3JTdHlsZXM7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5k
ZXggODUwMTRjOTRmZWI2MTI4ODA1MDA3NDIwMTRlNGQwY2ZhOWY5ZWZmNC4uYWQ1YmNmOGZlMjUx
YzZhMDE5NWUyNWI3MmRjYzU2ZDY0N2Q0ZDk3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMjAwMCw5
ICsyMDAwLDkgQEAgdW5zaWduZWQgc2hvcnQgTm9kZTo6Y29tcGFyZURvY3VtZW50UG9zaXRpb24o
Tm9kZSogb3RoZXJOb2RlKQogCiAgICAgLy8gV2UgbmVlZCB0byBmaW5kIGEgY29tbW9uIGFuY2Vz
dG9yIGNvbnRhaW5lciwgYW5kIHRoZW4gY29tcGFyZSB0aGUgaW5kaWNlcyBvZiB0aGUgdHdvIGlt
bWVkaWF0ZSBjaGlsZHJlbi4KICAgICBOb2RlKiBjdXJyZW50OwotICAgIGZvciAoY3VycmVudCA9
IHN0YXJ0MTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudE5vZGUoKSkKKyAgICBm
b3IgKGN1cnJlbnQgPSBzdGFydDE7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnRP
ckhvc3ROb2RlKCkpCiAgICAgICAgIGNoYWluMS5hcHBlbmQoY3VycmVudCk7Ci0gICAgZm9yIChj
dXJyZW50ID0gc3RhcnQyOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50Tm9kZSgp
KQorICAgIGZvciAoY3VycmVudCA9IHN0YXJ0MjsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQt
PnBhcmVudE9ySG9zdE5vZGUoKSkKICAgICAgICAgY2hhaW4yLmFwcGVuZChjdXJyZW50KTsKICAg
IAogICAgIC8vIFdhbGsgdGhlIHR3byBjaGFpbnMgYmFja3dhcmRzIGFuZCBsb29rIGZvciB0aGUg
Zmlyc3QgZGlmZmVyZW5jZS4KQEAgLTIwMTgsMTYgKzIwMTgsMzIgQEAgdW5zaWduZWQgc2hvcnQg
Tm9kZTo6Y29tcGFyZURvY3VtZW50UG9zaXRpb24oTm9kZSogb3RoZXJOb2RlKQogICAgICAgICAg
ICAgaWYgKGNoaWxkMi0+bm9kZVR5cGUoKSA9PSBBVFRSSUJVVEVfTk9ERSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOwogICAgICAgICAgICAgCi0g
ICAgICAgICAgICBpZiAoIWNoaWxkMi0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOwotICAgICAgICAgICAgaWYgKCFjaGls
ZDEtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lU
SU9OX1BSRUNFRElORzsKLQotICAgICAgICAgICAgLy8gT3RoZXJ3aXNlIHdlIG5lZWQgdG8gc2Vl
IHdoaWNoIG5vZGUgb2NjdXJzIGZpcnN0LiAgQ3Jhd2wgYmFja3dhcmRzIGZyb20gY2hpbGQyIGxv
b2tpbmcgZm9yIGNoaWxkMS4KLSAgICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZDIt
PnByZXZpb3VzU2libGluZygpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5n
KCkpIHsKLSAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT0gY2hpbGQxKQorI2lmIEVOQUJMRShT
SEFET1dfRE9NKQorICAgICAgICAgICAgLy8gSWYgb25lIG9mIHRoZSBjaGlsZHJlbiBpcyBhIHNo
YWRvdyByb290LCAKKyAgICAgICAgICAgIGlmIChjaGlsZDEtPmlzU2hhZG93Um9vdCgpIHx8IGNo
aWxkMi0+aXNTaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIWNoaWxkMi0+aXNT
aGFkb3dSb290KCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElP
Tl9GT0xMT1dJTkc7CisgICAgICAgICAgICAgICAgaWYgKCFjaGlsZDEtPmlzU2hhZG93Um9vdCgp
KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5H
OworICAgICAgICAgICAgICAgIGZvciAoU2hhZG93Um9vdCogY2hpbGQgPSB0b1NoYWRvd1Jvb3Qo
Y2hpbGQyKS0+b2xkZXJTaGFkb3dSb290KCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5vbGRlclNo
YWRvd1Jvb3QoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQgPT0gY2hpbGQxKQor
ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lO
RzsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworI2VuZGlmCisgICAg
ICAgICAgICAgICAgaWYgKCFjaGlsZDItPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc7CisgICAgICAgICAgICAgICAg
aWYgKCFjaGlsZDEtPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBE
T0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7CisKKyAgICAgICAgICAgICAgICAvLyBPdGhlcndp
c2Ugd2UgbmVlZCB0byBzZWUgd2hpY2ggbm9kZSBvY2N1cnMgZmlyc3QuIENyYXdsIGJhY2t3YXJk
cyBmcm9tIGNoaWxkMiBsb29raW5nIGZvciBjaGlsZDEuCisgICAgICAgICAgICAgICAgZm9yIChO
b2RlKiBjaGlsZCA9IGNoaWxkMi0+cHJldmlvdXNTaWJsaW5nKCk7IGNoaWxkOyBjaGlsZCA9IGNo
aWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGQg
PT0gY2hpbGQxKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lU
SU9OX0ZPTExPV0lORzsKKyAgICAgICAgICAgICAgICB9CisjaWYgRU5BQkxFKFNIQURPV19ET00p
CiAgICAgICAgICAgICB9CisjZW5kaWYKICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJ
VElPTl9QUkVDRURJTkc7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjgxODk2MGQwZmNkMzU0
Zjg4ZTU4YTFlMjNhMjdkNzNlMDA4ZjU4NC4uMGI3NDFiN2YyMGM5OGZjY2MwZDVhMzRjZDlmOTky
NDg1NGZhMzI0ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTExLTI3ICBUYWthc2hpIFNh
a2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06IHNjb3Bl
ZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRlci5o
dG1sOiBBZGRlZC4KKwogMjAxMi0xMS0yNiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgSmF2YVNjcmlwdCBmYWlscyB0byBoYW5kbGUgU3RyaW5nLnJlcGxhY2Uo
KSB3aXRoIGxhcmdlIHJlcGxhY2VtZW50IHN0cmluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRlci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRv
Y3VtZW50LW9yZGVyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZjM4NTFiZDkzYzM0NjcwNjY4
NzZhNDdkZDk0YWE1YTM2ZjUwZjc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRlci1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACitCdWcgMTAzMjM5IC0gW1NoYWRvdyBET01dOiBzY29wZWQgc3R5
bGVzIGFyZSBub3QgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlci4KK1Rlc3Qgd2hldGhlciBhIHNj
b3BlZCBzdHlsZSBpcyBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyIG9yIG5vdC4KK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJyZ2IoMCwgMTI4LCAwKSIKK1BBU1Mgc3Vj
Y2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhlIGNvbG9yIG9mIHRo
aXMgdGV4dCBzaG91bGQgYmUgZ3JlZW4sIG5vdCByZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50
LW9yZGVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODc2ZWJjMTViMmJlMDNjZDJkYmUzMjU3OTRjOWY4MzM3
MGM2YjM5MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNj
b3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXIuaHRtbApAQCAtMCwwICsxLDM2IEBACis8
IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KK3NwYW4geworICAgIGNv
bG9yOiBwaW5rOworfQorCitoMyB7CisgICAgY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdj4KKyAgICA8c3R5bGUgc2NvcGVk
PgorICAgIGgzIHsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgIH0KKyAgICA8L3N0eWxlPgor
ICAgIDxoMyBpZD0idGFyZ2V0Ij5UaGUgY29sb3Igb2YgdGhpcyB0ZXh0IHNob3VsZCBiZSBncmVl
biwgbm90IHJlZC48L2gzPgorICA8L2Rpdj4KKzxzY3JpcHQ+CitkZWJ1ZygnQnVnIDEwMzIzOSAt
IFtTaGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQgaW4gZG9jdW1lbnQg
b3JkZXIuJyk7CitkZWJ1ZygnVGVzdCB3aGV0aGVyIGEgc2NvcGVkIHN0eWxlIGlzIGFwcGxpZWQg
aW4gZG9jdW1lbnQgb3JkZXIgb3Igbm90LicpOwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXQnKTsKK3Nob3VsZEJlKCJnZXRDb21wdXRlZFN0eWxlKHRhcmdldCku
Y29sb3IiLCAnInJnYigwLCAxMjgsIDApIicpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176214</attachid>
            <date>2012-11-27 02:42:36 -0800</date>
            <delta_ts>2012-12-06 21:05:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121127194013.patch</filename>
            <type>text/plain</type>
            <size>25325</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1ODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmVhM2EwYzY1NzQyMGQz
ZTczN2FhMTUyNzJhN2UyNGI2YzA5OGU3OC4uMjA2YjQ4ZGYzNTFjNTY0OGQyYmRmOTdjZDliYmQz
OGM1NzE1MDc0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUnVsZXNldHMgZm9yIHNj
b3BlZCBzdHlsZXMgYW5kIHJ1bGVzZXQgZm9yIG5vdC1zY29wZWQgc3R5bGVzIGhhdmUgdG8KKyAg
ICAgICAgc2hhcmUgcG9zaXRpb24gaW5mb3JtYXRpb24sIGkuZS4gbV9ydWxlQ291bnQuIElmIHRo
ZXNlIHJ1bGVzZXRzIGRvbid0CisgICAgICAgIHNoYXJlIHRoZSBpbmZvcm1hdGlvbiwgd2UgY2Fu
bm90IGRldGVybWluZSB3aGljaCBydWxlIHNob3VsZCBiZQorICAgICAgICBhcHBsaWVkLCBmcm9t
IHNjb3BlZCBzdHlsZXMgb3IgZnJvbSBub3Qtc2NvcGVkIHN0eWxlcy4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUmVnaW9uUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldCk6CisgICAgICAgICog
Y3NzL1J1bGVTZXQuaDoKKyAgICAgICAgbV9ydWxlQ291bnQgaXMgdXNlZCB0byBrZWVwIGRvY3Vt
ZW50IG9yZGVyIGluZm9ybWF0aW9uLgorICAgICAgICBDaGFuZ2VkIG1fcnVsZUNvdW50IGZyb20g
dW5zaWduZWQgdG8gdW5zaWduZWQqIHRvIHNoYXJlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBh
bW9uZyBtdWx0aXBsZSBydWxlc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpkaXNhYmxlQWRkUnVsZSk6CisgICAgICAg
IFNvbWUgcnVsZXNldHMsIGUuZy4gZmVhdHVyZSBzZXQsIHJlcXVpcmVzIHZhbGlkIG1fcnVsZUNv
dW50IG9ubHkgd2hlbgorICAgICAgICB3ZSBpbml0aXplIHRoZSBydWxlc2V0LCBlLmcuIHdlIG5l
ZWQgb25seSBpbgorICAgICAgICBTdHlsZVJlc29sdmVyOjptYWtlUnVsZVNldC4gU28gaW4gc3Vj
aCBjYXNlcywgcHJvdmlkZSBsb2NhbCB2YXJpYWJsZQorICAgICAgICBmb3IgUnVsZVNldDo6Y3Jl
YXRlLiBBZnRlciBhZGRpbmcgYWxsIHJ1bGVzLCB1c2UgdGhpcyBtZXRob2QgdG8KKyAgICAgICAg
cmVzZXQgbV9ydWxlQ291bnQuCisgICAgICAgIChSdWxlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bGVTZXQ6OlJ1bGVTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3R5bGVS
ZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNG
cm9tVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VSdWxlU2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmxvYWRWaWV3U291cmNlU3R5bGUpOgorICAgICAgICBUaGVzZSBzdHls
ZXMsIGkuZS4gbV91c2VyU3R5bGUsIGRlZmF1bHRWaWV3U291cmNlU3R5bGUsCisgICAgICAgIG1f
c2libGluZ1J1bGVTZXQsIG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0IG5lZWQgdmFsaWQgbV9y
dWxlQ291bnQKKyAgICAgICAgb25seSBpbiB0aGVzZSBtZXRob2RzLiBTbyB1c2UgbG9jYWwgdmFy
YWlibGVzIHRvIGluaXRpYWxpemUgdGhlc2UKKyAgICAgICAgcnVsZXMuIEFmdGVyIGluaXRpYWxp
emluZyB0aGVtLCBpbnZva2UgZGlzYWJsZUFkZFJ1bGUgdG8gcmVzZXQKKyAgICAgICAgbV9ydWxl
Q291bnQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpyZXNldEF1dGhvclN0eWxl
KToKKyAgICAgICAgQWRkZWQgdG8gbWFrZSBtX2F1dGhvclJ1bGVDb3VudCBiZSAwLgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMpOgorICAg
ICAgICAoV2ViQ29yZTo6bG9hZEZ1bGxEZWZhdWx0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
bG9hZFNpbXBsZURlZmF1bHRTdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAg
KFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVSdWxlU2V0Rm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlQXRIb3N0UnVsZVNl
dEZvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxl
KToKKyAgICAgICAgKiBjc3MvU3R5bGVTY29wZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVNj
b3BlUmVzb2x2ZXIpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZW1iZXIgdmFyaWFibGUsIG1fYXV0
aG9yUnVsZUNvdW50IHdoaWNoIGhhcyBkb2N1bWVudAorICAgICAgICBvcmRlciBpbmZvcm1hdGlv
biB1c2VkIGJ5IG1fYXV0aG9yU3R5bGVzIGluIFN0eWxlUmVzb2x2ZXIgYW5kCisgICAgICAgIHNj
b3BlZCBzdHlsZXMgaW4gU3R5bGVTY29wZVJlc29sdmVyLgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKToKKyAg
ICAgICAgTW9kaWZpZWQgdG8gc3VwcG9ydCBub2RlcyBpbiBzaGFkb3cgZG9tIHRyZWVzLiBJZiBh
IGNvbW1vbiBhbmNlc3RvciBvZgorICAgICAgICB0aGUgZ2l2ZW4gbm9kZSBBIGFuZCBCIGlzIGEg
c2hhZG93IGhvc3QsIHN1cHBvc2UgdGhhdCBBJyBpcyBhbiBhbmNlc3RvcgorICAgICAgICBvZiBu
b2RlIEEgYW5kIGEgY2hpbGQgb2YgdGhlIGNvbW1vbiBhbmNlc3RvciBhbmQgQidzIGlzIGFuIGFu
Y2VzdG9yCisgICAgICAgIG9mIG5vZGUgQiBhbmQgYSBjaGlsZCBvZiB0aGUgY29tbW9uIGFuY2Vz
dG9yOgorICAgICAgICAtIGlmIEEnIGlzIGEgc2hhZG93IHJvb3QgYW5kIEInIGlzIG5vdCBhIHNo
YWRvdyByb290LCBBIDwgQi4KKyAgICAgICAgLSBpZiBBJyBpcyBub3QgYSBzaGFkb3cgcm9vdCBh
bmQgQicgaXMgYSBzaGFkb3cgcm9vdCwgQSA+IEIuCisgICAgICAgIC0gaWYgQScgYW5kIEInIGFy
ZSBzaGFkb3cgcm9vdHMsIHNlZSB3aGljaGkgaXMgYSB5b3VuZ2VyIHNoYWRvdyByb290LAorICAg
ICAgICAgIEEnIG9yIEInLiBJZiBBJyBpcyB5b3VuZ2VyIHRoYW4gQicsIEEgPiBCLiBPdGhlcndp
c2UsIEIgPCBBLgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgQGhvc3QgQC1y
dWxlcy4gV2l0aG91dCB0aGlzIGNoYW5nZSwKKyAgICAgICAgYXRob3N0LWF0cnVsZXMuaHRtbCB3
aWxsIGZhaWwuCisKIDIwMTItMTEtMjYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25AZ21haWwu
Y29tPgogCiAgICAgICAgIFBORyBkZWNvZGUgcGVyZm9ybWFuY2U6IGF2b2lkIHVzaW5nIGZyYW1l
IGJ1ZmZlci5zZXRSR0JBKHgseSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxl
U2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5YTc4YzBmZjkw
Mzg5YzkwYzQ0ZGE1YTZiOWY1ZmY3YWUyMGM2ZTMxLi40MmVhOGRiNDA2YzE5ZWE5MDA2Y2VkYWRm
Nzc4OGRkNTliZmNjMjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xOTAsNyArMTkwLDgg
QEAgdm9pZCBSdWxlU2V0OjphZGRUb1J1bGVTZXQoQXRvbWljU3RyaW5nSW1wbCoga2V5LCBBdG9t
UnVsZU1hcCYgbWFwLCBjb25zdCBSdWxlRGEKIAogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxl
UnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVG
bGFncykKIHsKLSAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1
bGVDb3VudCsrLCBhZGRSdWxlRmxhZ3MpOworICAgIEFTU0VSVChtX3J1bGVDb3VudCk7CisgICAg
UnVsZURhdGEgcnVsZURhdGEocnVsZSwgc2VsZWN0b3JJbmRleCwgKysqbV9ydWxlQ291bnQsIGFk
ZFJ1bGVGbGFncyk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGF0aG9zdFJ1bGVTcGVjaWZp
Y2l0eSA9IDB4MTAwMDAwOwogCiAgICAgaWYgKGFkZFJ1bGVGbGFncyAmIFJ1bGVJc0hvc3RSdWxl
KQpAQCAtMjQyLDExICsyNDMsMTEgQEAgdm9pZCBSdWxlU2V0OjphZGRQYWdlUnVsZShTdHlsZVJ1
bGVQYWdlKiBydWxlKQogCiB2b2lkIFJ1bGVTZXQ6OmFkZFJlZ2lvblJ1bGUoU3R5bGVSdWxlUmVn
aW9uKiByZWdpb25SdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAg
T3duUHRyPFJ1bGVTZXQ+IHJlZ2lvblJ1bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICBB
U1NFUlQobV9ydWxlQ291bnQpOwogICAgIC8vIFRoZSByZWdpb24gcnVsZSBzZXQgc2hvdWxkIHRh
a2UgaW50byBhY2NvdW50IHRoZSBwb3NpdGlvbiBpbnNpZGUgdGhlIHBhcmVudCBydWxlIHNldC4K
ICAgICAvLyBPdGhlcndpc2UsIHRoZSBydWxlcyBpbnNpZGUgcmVnaW9uIGJsb2NrIG1pZ2h0IGJl
IGluY29ycmVjdGx5IHBvc2l0aW9uZWQgYmVmb3JlIG90aGVyIHNpbWlsYXIgcnVsZXMgZnJvbQog
ICAgIC8vIHRoZSBzdHlsZXNoZWV0IHRoYXQgY29udGFpbnMgdGhlIHJlZ2lvbiBibG9jay4KLSAg
ICByZWdpb25SdWxlU2V0LT5tX3J1bGVDb3VudCA9IG1fcnVsZUNvdW50OworICAgIE93blB0cjxS
dWxlU2V0PiByZWdpb25SdWxlU2V0ID0gUnVsZVNldDo6Y3JlYXRlKG1fcnVsZUNvdW50KTsKIAog
ICAgIC8vIENvbGxlY3QgdGhlIHJlZ2lvbiBydWxlcyBpbnRvIGEgcnVsZSBzZXQKICAgICBjb25z
dCBWZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGNoaWxkUnVsZXMgPSByZWdpb25SdWxl
LT5jaGlsZFJ1bGVzKCk7CkBAIC0yNTcsOCArMjU4LDYgQEAgdm9pZCBSdWxlU2V0OjphZGRSZWdp
b25SdWxlKFN0eWxlUnVsZVJlZ2lvbiogcmVnaW9uUnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3Vy
aXQKICAgICAgICAgaWYgKHJlZ2lvblN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQogICAgICAg
ICAgICAgcmVnaW9uUnVsZVNldC0+YWRkU3R5bGVSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZSo+
KHJlZ2lvblN0eWxpbmdSdWxlKSwgYWRkUnVsZUZsYWdzKTsKICAgICB9Ci0gICAgLy8gVXBkYXRl
IHRoZSAiZ2xvYmFsIiBydWxlIGNvdW50IHNvIHRoYXQgcHJvcGVyIG9yZGVyIGlzIG1haW50YWlu
ZWQKLSAgICBtX3J1bGVDb3VudCA9IHJlZ2lvblJ1bGVTZXQtPm1fcnVsZUNvdW50OwogCiAgICAg
bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hcHBlbmQoUnVsZVNldFNlbGVjdG9yUGFpcihy
ZWdpb25SdWxlLT5zZWxlY3Rvckxpc3QoKS5maXJzdCgpLCByZWdpb25SdWxlU2V0LnJlbGVhc2Uo
KSkpOwogfQpAQCAtMjY2LDYgKzI2NSw3IEBAIHZvaWQgUnVsZVNldDo6YWRkUmVnaW9uUnVsZShT
dHlsZVJ1bGVSZWdpb24qIHJlZ2lvblJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0CiB2b2lk
IFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQsIGNv
bnN0IE1lZGlhUXVlcnlFdmFsdWF0b3ImIG1lZGl1bSwgU3R5bGVSZXNvbHZlciogcmVzb2x2ZXIs
IGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKQogewogICAgIEFTU0VSVChzaGVldCk7CisgICAg
QVNTRVJUKG1fcnVsZUNvdW50KTsKICAgICAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxl
UnVsZUltcG9ydD4gPiYgaW1wb3J0UnVsZXMgPSBzaGVldC0+aW1wb3J0UnVsZXMoKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW1wb3J0UnVsZXMuc2l6ZSgpOyArK2kpIHsKQEAgLTM0
Niw3ICszNDYsNyBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGVzRnJvbVNoZWV0KFN0eWxlU2hlZXRD
b250ZW50cyogc2hlZXQsIGNvbnN0IE1lZGlhUXVlcnlFdmFsdQogI2VuZGlmCiAjaWYgRU5BQkxF
KFNIQURPV19ET00pCiAgICAgICAgIGVsc2UgaWYgKHJ1bGUtPmlzSG9zdFJ1bGUoKSkKLSAgICAg
ICAgICAgIHJlc29sdmVyLT5hZGRIb3N0UnVsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4o
cnVsZSksIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlKTsKKyAgICAgICAgICAgIHJl
c29sdmVyLT5hZGRIb3N0UnVsZShzdGF0aWNfY2FzdDxTdHlsZVJ1bGVIb3N0Kj4ocnVsZSksIGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlLCBtX3J1bGVDb3VudCk7CiAjZW5kaWYKICNp
ZiBFTkFCTEUoQ1NTX0RFVklDRV9BREFQVEFUSU9OKQogICAgICAgICBlbHNlIGlmIChydWxlLT5p
c1ZpZXdwb3J0UnVsZSgpICYmIHJlc29sdmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBhMmZi
ZWNiYzAwYjJjYTFiNTMyZjQ5NmE5NWMwOTM1MDI2ZmE0ZjdkLi4xY2I2N2U4YjNjNjYwNDJjZDcy
ZjQ3MWNlMjAwN2NjM2RkNjE2NDk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTEwMSw3ICsxMDEs
NyBAQCBDT01QSUxFX0FTU0VSVChzaXplb2YoUnVsZURhdGEpID09IHNpemVvZihTYW1lU2l6ZUFz
UnVsZURhdGEpLCBSdWxlRGF0YV9zaG91bGRfcwogY2xhc3MgUnVsZVNldCB7CiAgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoUnVsZVNldCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0
UHRyKG5ldyBSdWxlU2V0KTsgfQorICAgIHN0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IGNyZWF0
ZSh1bnNpZ25lZCogcnVsZUNvdW50KSB7IHJldHVybiBhZG9wdFB0cihuZXcgUnVsZVNldChydWxl
Q291bnQpKTsgfQogCiAgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBPd25Q
dHI8VmVjdG9yPFJ1bGVEYXRhPiA+ID4gQXRvbVJ1bGVNYXA7CiAKQEAgLTExNCw2ICsxMTQsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBhZGRSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiosIGJvb2wg
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbik7CiAgICAgdm9pZCBzaHJpbmtUb0ZpdCgpOwogICAg
IHZvaWQgZGlzYWJsZUF1dG9TaHJpbmtUb0ZpdCgpIHsgbV9hdXRvU2hyaW5rVG9GaXRFbmFibGVk
ID0gZmFsc2U7IH0KKyAgICB2b2lkIGRpc2FibGVBZGRSdWxlKCkgeyBtX3J1bGVDb3VudCA9IDA7
IH0KIAogICAgIGNvbnN0IFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJu
IG1fZmVhdHVyZXM7IH0KIApAQCAtMTI5LDcgKzEzMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJl
cG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAogcHVibGljOgotICAg
IFJ1bGVTZXQoKTsKKyAgICBSdWxlU2V0KHVuc2lnbmVkKik7CiAKICAgICBBdG9tUnVsZU1hcCBt
X2lkUnVsZXM7CiAgICAgQXRvbVJ1bGVNYXAgbV9jbGFzc1J1bGVzOwpAQCAtMTM5LDcgKzE0MCw3
IEBAIHB1YmxpYzoKICAgICBWZWN0b3I8UnVsZURhdGE+IG1fZm9jdXNQc2V1ZG9DbGFzc1J1bGVz
OwogICAgIFZlY3RvcjxSdWxlRGF0YT4gbV91bml2ZXJzYWxSdWxlczsKICAgICBWZWN0b3I8U3R5
bGVSdWxlUGFnZSo+IG1fcGFnZVJ1bGVzOwotICAgIHVuc2lnbmVkIG1fcnVsZUNvdW50OworICAg
IHVuc2lnbmVkKiBtX3J1bGVDb3VudDsKICAgICBib29sIG1fYXV0b1Nocmlua1RvRml0RW5hYmxl
ZDsKICAgICBSdWxlRmVhdHVyZVNldCBtX2ZlYXR1cmVzOwogCkBAIC0xNTUsOCArMTU2LDggQEAg
cHVibGljOgogICAgIFZlY3RvcjxSdWxlU2V0U2VsZWN0b3JQYWlyPiBtX3JlZ2lvblNlbGVjdG9y
c0FuZFJ1bGVTZXRzOwogfTsKIAotaW5saW5lIFJ1bGVTZXQ6OlJ1bGVTZXQoKQotICAgIDogbV9y
dWxlQ291bnQoMCkKK2lubGluZSBSdWxlU2V0OjpSdWxlU2V0KHVuc2lnbmVkKiBydWxlQ291bnQp
CisgICAgOiBtX3J1bGVDb3VudChydWxlQ291bnQpCiAgICAgLCBtX2F1dG9TaHJpbmtUb0ZpdEVu
YWJsZWQodHJ1ZSkKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBj
YmY2YzhhNzUxYWRkYmQ0NmNjMTBiMmJiMGU4ZmVmYzcyNGU5MmQ3Li40OTU2MjI2YmQwMDRkNzM5
NGIwMGNlMDNlY2Y1NTVkZDI3MjYwOTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwCkBAIC0yMDcsNiArMjA3LDcgQEAgc3RhdGljIFJ1bGVTZXQqIGRlZmF1bHRTdHlsZTsKIHN0
YXRpYyBSdWxlU2V0KiBkZWZhdWx0UXVpcmtzU3R5bGU7CiBzdGF0aWMgUnVsZVNldCogZGVmYXVs
dFByaW50U3R5bGU7CiBzdGF0aWMgUnVsZVNldCogZGVmYXVsdFZpZXdTb3VyY2VTdHlsZTsKK3N0
YXRpYyB1bnNpZ25lZCBydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzOwogc3RhdGljIFN0eWxlU2hl
ZXRDb250ZW50cyogc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQ7CiBzdGF0aWMgU3R5bGVTaGVldENv
bnRlbnRzKiBkZWZhdWx0U3R5bGVTaGVldDsKIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIHF1
aXJrc1N0eWxlU2hlZXQ7CkBAIC0yODYsNiArMjg3LDcgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVS
ZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQsIGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVz
KQogI2lmIEVOQUJMRShDU1NfU0hBREVSUykKICAgICAsIG1faGFzUGVuZGluZ1NoYWRlcnMoZmFs
c2UpCiAjZW5kaWYKKyAgICAsIG1fYXV0aG9yUnVsZUNvdW50KDApCiAgICAgLCBtX3N0eWxlTWFw
KHRoaXMpCiB7CiAgICAgRWxlbWVudCogcm9vdCA9IGRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQo
KTsKQEAgLTMyNCwxMiArMzI2LDE0IEBAIFN0eWxlUmVzb2x2ZXI6OlN0eWxlUmVzb2x2ZXIoRG9j
dW1lbnQqIGRvY3VtZW50LCBib29sIG1hdGNoQXV0aG9yQW5kVXNlclN0eWxlcykKIAogdm9pZCBT
dHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNGcm9tVXNlclN0eWxlU2hlZXRzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4gPiYgdXNlclNoZWV0cykKIHsKLSAgICBPd25QdHI8UnVs
ZVNldD4gdXNlclN0eWxlUnVsZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIHVuc2lnbmVk
IHJ1bGVDb3VudCA9IDA7CisgICAgT3duUHRyPFJ1bGVTZXQ+IHVzZXJTdHlsZVJ1bGVTZXQgPSBS
dWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHVzZXJTaGVldHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgQVNTRVJUKHVzZXJTaGVldHNbaV0t
PmNvbnRlbnRzKCktPmlzVXNlclN0eWxlU2hlZXQoKSk7CiAgICAgICAgIHVzZXJTdHlsZVJ1bGVT
ZXQtPmFkZFJ1bGVzRnJvbVNoZWV0KHVzZXJTaGVldHNbaV0tPmNvbnRlbnRzKCksICptX21lZGl1
bSwgdGhpcyk7CiAgICAgfQotICAgIGlmICh1c2VyU3R5bGVSdWxlU2V0LT5tX3J1bGVDb3VudCA+
IDAgfHwgdXNlclN0eWxlUnVsZVNldC0+bV9wYWdlUnVsZXMuc2l6ZSgpID4gMCkKKyAgICB1c2Vy
U3R5bGVSdWxlU2V0LT5kaXNhYmxlQWRkUnVsZSgpOworICAgIGlmIChydWxlQ291bnQgPiAwIHx8
IHVzZXJTdHlsZVJ1bGVTZXQtPm1fcGFnZVJ1bGVzLnNpemUoKSA+IDApCiAgICAgICAgIG1fdXNl
clN0eWxlID0gdXNlclN0eWxlUnVsZVNldC5yZWxlYXNlKCk7CiB9CiAKQEAgLTMzOCwxMCArMzQy
LDEyIEBAIHN0YXRpYyBQYXNzT3duUHRyPFJ1bGVTZXQ+IG1ha2VSdWxlU2V0KGNvbnN0IFZlY3Rv
cjxSdWxlRmVhdHVyZT4mIHJ1bGVzKQogICAgIHNpemVfdCBzaXplID0gcnVsZXMuc2l6ZSgpOwog
ICAgIGlmICghc2l6ZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgT3duUHRyPFJ1bGVT
ZXQ+IHJ1bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICB1bnNpZ25lZCBydWxlQ291bnQg
PSAwOworICAgIE93blB0cjxSdWxlU2V0PiBydWxlU2V0ID0gUnVsZVNldDo6Y3JlYXRlKCZydWxl
Q291bnQpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKQogICAgICAgICBy
dWxlU2V0LT5hZGRSdWxlKHJ1bGVzW2ldLnJ1bGUsIHJ1bGVzW2ldLnNlbGVjdG9ySW5kZXgsIHJ1
bGVzW2ldLmhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPyBSdWxlSGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbiA6IFJ1bGVIYXNOb1NwZWNpYWxTdGF0ZSk7CiAgICAgcnVsZVNldC0+c2hyaW5rVG9G
aXQoKTsKKyAgICBydWxlU2V0LT5kaXNhYmxlQWRkUnVsZSgpOwogICAgIHJldHVybiBydWxlU2V0
LnJlbGVhc2UoKTsKIH0KIApAQCAtMzY0LDcgKzM3MCw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6
Y29sbGVjdEZlYXR1cmVzKCkKIAogdm9pZCBTdHlsZVJlc29sdmVyOjpyZXNldEF1dGhvclN0eWxl
KCkKIHsKLSAgICBtX2F1dGhvclN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCk7CisgICAgbV9hdXRo
b3JSdWxlQ291bnQgPSAwOworICAgIG1fYXV0aG9yU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJm1f
YXV0aG9yUnVsZUNvdW50KTsKICAgICBtX2F1dGhvclN0eWxlLT5kaXNhYmxlQXV0b1Nocmlua1Rv
Rml0KCk7CiB9CiAKQEAgLTM4MSw3ICszODgsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmFwcGVu
ZEF1dGhvclN0eWxlU2hlZXRzKHVuc2lnbmVkIGZpcnN0TmV3LCBjb25zdCBWZWN0b3I8UmVmUAog
ICAgICAgICBTdHlsZVNoZWV0Q29udGVudHMqIHNoZWV0ID0gY3NzU2hlZXQtPmNvbnRlbnRzKCk7
CiAjaWYgRU5BQkxFKFNUWUxFX1NDT1BFRCkgfHwgRU5BQkxFKFNIQURPV19ET00pCiAgICAgICAg
IGlmIChjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IFN0eWxlU2NvcGVSZXNvbHZlcjo6c2Nv
cGVGb3IoY3NzU2hlZXQpKSB7Ci0gICAgICAgICAgICBlbnN1cmVTY29wZVJlc29sdmVyKCktPmVu
c3VyZVJ1bGVTZXRGb3Ioc2NvcGUpLT5hZGRSdWxlc0Zyb21TaGVldChzaGVldCwgKm1fbWVkaXVt
LCB0aGlzLCBzY29wZSk7CisgICAgICAgICAgICBlbnN1cmVTY29wZVJlc29sdmVyKCktPmVuc3Vy
ZVJ1bGVTZXRGb3Ioc2NvcGUsICZtX2F1dGhvclJ1bGVDb3VudCktPmFkZFJ1bGVzRnJvbVNoZWV0
KHNoZWV0LCAqbV9tZWRpdW0sIHRoaXMsIHNjb3BlKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAjZW5kaWYKQEAgLTQ5NiwxOSArNTAzLDIwIEBAIHN0YXRpYyBTdHlsZVNoZWV0
Q29udGVudHMqIHBhcnNlVUFTaGVldChjb25zdCBjaGFyKiBjaGFyYWN0ZXJzLCB1bnNpZ25lZCBz
aXplKQogCiBzdGF0aWMgdm9pZCBsb2FkRnVsbERlZmF1bHRTdHlsZSgpCiB7CisgICAgcnVsZUNv
dW50Rm9yRGVmYXVsdFN0eWxlcyA9IDA7CiAgICAgaWYgKHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0
KSB7CiAgICAgICAgIEFTU0VSVChkZWZhdWx0U3R5bGUpOwogICAgICAgICBBU1NFUlQoZGVmYXVs
dFByaW50U3R5bGUgPT0gZGVmYXVsdFN0eWxlKTsKICAgICAgICAgZGVsZXRlIGRlZmF1bHRTdHls
ZTsKICAgICAgICAgc2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQtPmRlcmVmKCk7Ci0gICAgICAgIGRl
ZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVs
dFByaW50U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1
bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVh
a1B0cigpOworICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVs
ZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVha1B0cigpOwogICAgICAgICBzaW1wbGVEZWZhdWx0
U3R5bGVTaGVldCA9IDA7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQVNTRVJUKCFkZWZhdWx0U3R5
bGUpOwotICAgICAgICBkZWZhdWx0U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRyKCk7
Ci0gICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigp
OwotICAgICAgICBkZWZhdWx0UXVpcmtzU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRy
KCk7CisgICAgICAgIGRlZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9y
RGVmYXVsdFN0eWxlcykubGVha1B0cigpOworICAgICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1
bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVha1B0cigpOworICAg
ICAgICBkZWZhdWx0UXVpcmtzU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZvckRl
ZmF1bHRTdHlsZXMpLmxlYWtQdHIoKTsKICAgICB9CiAKICAgICAvLyBTdHJpY3QtbW9kZSBydWxl
cy4KQEAgLTUyOCwxMCArNTM2LDExIEBAIHN0YXRpYyB2b2lkIGxvYWRTaW1wbGVEZWZhdWx0U3R5
bGUoKQogICAgIEFTU0VSVCghZGVmYXVsdFN0eWxlKTsKICAgICBBU1NFUlQoIXNpbXBsZURlZmF1
bHRTdHlsZVNoZWV0KTsKIAotICAgIGRlZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxl
YWtQdHIoKTsKKyAgICBydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzID0gMDsKKyAgICBkZWZhdWx0
U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMpLmxlYWtQ
dHIoKTsKICAgICAvLyBUaGVyZSBhcmUgbm8gbWVkaWEtc3BlY2lmaWMgcnVsZXMgaW4gdGhlIHNp
bXBsZSBkZWZhdWx0IHN0eWxlLgogICAgIGRlZmF1bHRQcmludFN0eWxlID0gZGVmYXVsdFN0eWxl
OwotICAgIGRlZmF1bHRRdWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsK
KyAgICBkZWZhdWx0UXVpcmtzU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudEZvckRl
ZmF1bHRTdHlsZXMpLmxlYWtQdHIoKTsKIAogICAgIHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0ID0g
cGFyc2VVQVNoZWV0KHNpbXBsZVVzZXJBZ2VudFN0eWxlU2hlZXQsIHN0cmxlbihzaW1wbGVVc2Vy
QWdlbnRTdHlsZVNoZWV0KSk7CiAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChz
aW1wbGVEZWZhdWx0U3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKQEAgLTU0Miw4ICs1NTEsMTAg
QEAgc3RhdGljIHZvaWQgbG9hZFNpbXBsZURlZmF1bHRTdHlsZSgpCiBzdGF0aWMgdm9pZCBsb2Fk
Vmlld1NvdXJjZVN0eWxlKCkKIHsKICAgICBBU1NFUlQoIWRlZmF1bHRWaWV3U291cmNlU3R5bGUp
OwotICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKS5sZWFrUHRy
KCk7CisgICAgdW5zaWduZWQgcnVsZUNvdW50ID0gMDsKKyAgICBkZWZhdWx0Vmlld1NvdXJjZVN0
eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnQpLmxlYWtQdHIoKTsKICAgICBkZWZhdWx0
Vmlld1NvdXJjZVN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChwYXJzZVVBU2hlZXQoc291cmNlVXNl
ckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKHNvdXJjZVVzZXJBZ2VudFN0eWxlU2hlZXQpKSwgc2Ny
ZWVuRXZhbCgpKTsKKyAgICBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlLT5kaXNhYmxlQWRkUnVsZSgp
OwogfQogCiBzdGF0aWMgdm9pZCBlbnN1cmVEZWZhdWx0U3R5bGVTaGVldHNGb3JFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAwNTVkODEz
ZWRiNTZiMDUwY2I2MTMzNzI0NTQ4NTExZGM2MGZiMjJiLi4yZTlhNWEyYWNjMjAzZDM0ODI0MTU4
NTIwMTk3ZDQxZDc3MmVjM2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTE0
MCw3ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXNoUGFyZW50U2hhZG93Um9vdChjb25z
dCBTaGFkb3dSb290Kik7CiAgICAgdm9pZCBwb3BQYXJlbnRTaGFkb3dSb290KGNvbnN0IFNoYWRv
d1Jvb3QqKTsKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKLSAgICB2b2lkIGFkZEhvc3RSdWxlKFN0
eWxlUnVsZUhvc3QqIHJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUpIHsgZW5zdXJlU2NvcGVSZXNvbHZlcigpLT5hZGRIb3N0UnVs
ZShydWxlLCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBzY29wZSk7IH0KKyAgICB2b2lkIGFk
ZEhvc3RSdWxlKFN0eWxlUnVsZUhvc3QqIHJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9y
aWdpbiwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpIHsg
ZW5zdXJlU2NvcGVSZXNvbHZlcigpLT5hZGRIb3N0UnVsZShydWxlLCBoYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luLCBzY29wZSwgcnVsZUNvdW50KTsgfQogI2VuZGlmCiAKICAgICBQYXNzUmVmUHRy
PFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnQoRWxlbWVudCosIFJlbmRlclN0eWxlKiBwYXJl
bnRTdHlsZSA9IDAsIFN0eWxlU2hhcmluZ0JlaGF2aW9yID0gQWxsb3dTdHlsZVNoYXJpbmcsCkBA
IC01MTYsNiArNTE2LDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpICYmIEVO
QUJMRShTVkcpCiAgICAgSGFzaE1hcDxGaWx0ZXJPcGVyYXRpb24qLCBSZWZQdHI8V2ViS2l0Q1NT
U1ZHRG9jdW1lbnRWYWx1ZT4gPiBtX3BlbmRpbmdTVkdEb2N1bWVudHM7CiAjZW5kaWYKKyAgICB1
bnNpZ25lZCBtX2F1dGhvclJ1bGVDb3VudDsKIAogICAgIE93blB0cjxTdHlsZVNjb3BlUmVzb2x2
ZXI+IG1fc2NvcGVSZXNvbHZlcjsKICAgICBDU1NUb1N0eWxlTWFwIG1fc3R5bGVNYXA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDVmZjJiM2UwYjExNTQ5
OTQ0N2UyMWM4NmY1OGY2NDYxMzAxY2YwZmQuLmI2MTQwMWFjZDJmY2ZjMDI0MDE2YjY3YmU2YjVl
YzQzZDYxMDZiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVz
b2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3Bw
CkBAIC04NSwxMSArODUsMTEgQEAgaW5saW5lIFJ1bGVTZXQqIFN0eWxlU2NvcGVSZXNvbHZlcjo6
cnVsZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkgY29uc3QKICAgICByZXR1cm4g
aXQgIT0gbV9hdXRob3JTdHlsZXMuZW5kKCkgPyBpdC0+dmFsdWUuZ2V0KCkgOiAwOyAKIH0KIAot
UnVsZVNldCogU3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVSdWxlU2V0Rm9yKGNvbnN0IENvbnRh
aW5lck5vZGUqIHNjb3BlKQorUnVsZVNldCogU3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVSdWxl
U2V0Rm9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCB1bnNpZ25lZCogcnVsZUNvdW50KQog
ewogICAgIFNjb3BlZFJ1bGVTZXRNYXA6OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBtX2F1dGhvclN0
eWxlcy5hZGQoc2NvcGUsIG51bGxwdHIpOwogICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkK
LSAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOwor
ICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVsZVNldDo6Y3JlYXRlKHJ1bGVD
b3VudCk7CiAgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7CiB9CiAK
QEAgLTE1NiwxMSArMTU2LDExIEBAIHZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjpjb2xsZWN0RmVh
dHVyZXNUbyhSdWxlRmVhdHVyZVNldCYgZmVhdHVyZXMpCiAgICAgICAgIGZlYXR1cmVzLmFkZChp
dC0+dmFsdWUtPmZlYXR1cmVzKCkpOwogfQogCi1pbmxpbmUgUnVsZVNldCogU3R5bGVTY29wZVJl
c29sdmVyOjplbnN1cmVBdEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jv
b3QpCitpbmxpbmUgUnVsZVNldCogU3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVBdEhvc3RSdWxl
U2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QsIHVuc2lnbmVkKiBydWxlQ291bnQp
CiB7CiAgICAgU2NvcGVkUnVsZVNldE1hcDo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9IG1fYXRIb3N0
UnVsZXMuYWRkKHNoYWRvd1Jvb3QsIG51bGxwdHIpOwogICAgIGlmIChhZGRSZXN1bHQuaXNOZXdF
bnRyeSkKLSAgICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFJ1bGVTZXQ6OmNyZWF0
ZSgpOworICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVsZVNldDo6Y3JlYXRl
KHJ1bGVDb3VudCk7CiAgICAgcmV0dXJuIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUuZ2V0KCk7
CiB9CiAKQEAgLTE3MCw3ICsxNzAsNyBAQCBpbmxpbmUgUnVsZVNldCogU3R5bGVTY29wZVJlc29s
dmVyOjphdEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3QqIHNoYWRvd1JvbwogICAgIHJl
dHVybiBpdCAhPSBtX2F0SG9zdFJ1bGVzLmVuZCgpID8gaXQtPnZhbHVlLmdldCgpIDogMDsKIH0K
IAotdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKFN0eWxlUnVsZUhvc3QqIGhv
c3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5lck5v
ZGUqIHNjb3BlKQordm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKFN0eWxlUnVs
ZUhvc3QqIGhvc3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENv
bnRhaW5lck5vZGUqIHNjb3BlLCB1bnNpZ25lZCogcnVsZUNvdW50KQogewogICAgIGlmICghc2Nv
cGUgfHwgIXNjb3BlLT5pc0luU2hhZG93VHJlZSgpKQogICAgICAgICByZXR1cm47CkBAIC0xNzks
NyArMTc5LDcgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKFN0eWxlUnVs
ZUhvc3QqIGhvc3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2UKICAgICBpZiAoIXNoYWRvd1Jvb3Qg
fHwgIXNoYWRvd1Jvb3QtPmhvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgUnVsZVNldCog
cnVsZSA9IGVuc3VyZUF0SG9zdFJ1bGVTZXRGb3Ioc2hhZG93Um9vdCk7CisgICAgUnVsZVNldCog
cnVsZSA9IGVuc3VyZUF0SG9zdFJ1bGVTZXRGb3Ioc2hhZG93Um9vdCwgcnVsZUNvdW50KTsKIAog
ICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgY2hpbGRSdWxlcyA9IGhv
c3RSdWxlLT5jaGlsZFJ1bGVzKCk7CiAgICAgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncyA9IGhh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gPyBSdWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA6
IFJ1bGVIYXNOb1NwZWNpYWxTdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZVNjb3BlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2
ZXIuaAppbmRleCAzYmUzZmY0ZjcwYzczNzViZDAxNDI2YTAwYmE0MjQxMjg0NjJjYzBlLi43NmE5
YjExYzM3YzMwMGZlZTM1ZjZlNzllMTVmZjU4MjAzYzgwNjk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlU2NvcGVSZXNvbHZlci5oCkBAIC02OCwxNCArNjgsMTQgQEAgcHVibGljOgogICAgIHZv
aWQgcHVzaChjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgY29uc3QgQ29udGFpbmVyTm9kZSog
c2NvcGVQYXJlbnQpOwogICAgIHZvaWQgcG9wKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKTsK
ICAgICBib29sIGhhc1Njb3BlZFN0eWxlcygpIGNvbnN0IHsgcmV0dXJuICFtX2F1dGhvclN0eWxl
cy5pc0VtcHR5KCk7IH0KLSAgICBSdWxlU2V0KiBlbnN1cmVSdWxlU2V0Rm9yKGNvbnN0IENvbnRh
aW5lck5vZGUqIHNjb3BlKTsKKyAgICBSdWxlU2V0KiBlbnN1cmVSdWxlU2V0Rm9yKGNvbnN0IENv
bnRhaW5lck5vZGUqIHNjb3BlLCB1bnNpZ25lZCogcnVsZUNvdW50KTsKICAgICBib29sIGVuc3Vy
ZVN0YWNrQ29uc2lzdGVuY3koQ29udGFpbmVyTm9kZSopOwogICAgIHVuc2lnbmVkIHN0YWNrU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhY2suc2l6ZSgpOyB9CiAgICAgY29uc3QgU3RhY2tGcmFt
ZSYgc3RhY2tGcmFtZUF0KHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJldHVybiBtX3N0YWNrLmF0
KGluZGV4KTsgfQogICAgIGJvb2wgbWF0Y2hlc1N0eWxlQm91bmRzKGNvbnN0IFN0YWNrRnJhbWUm
IGZyYW1lKSBjb25zdCB7IHJldHVybiBmcmFtZS5tX2F1dGhvclN0eWxlQm91bmRzSW5kZXggPT0g
bV9zdGFja1BhcmVudEJvdW5kc0luZGV4OyB9CiAgICAgdm9pZCBjb2xsZWN0RmVhdHVyZXNUbyhS
dWxlRmVhdHVyZVNldCYpOwogCi0gICAgdm9pZCBhZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0Kiwg
Ym9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29w
ZSk7CisgICAgdm9pZCBhZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiwgYm9vbCBoYXNEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgdW5zaWduZWQqIHJ1
bGVDb3VudCk7CiAgICAgYm9vbCBzdHlsZVNoYXJpbmdDYW5kaWRhdGVNYXRjaGVzSG9zdFJ1bGVz
KGNvbnN0IEVsZW1lbnQqKTsKICAgICB2b2lkIG1hdGNoSG9zdFJ1bGVzKGNvbnN0IEVsZW1lbnQq
LCBWZWN0b3I8UnVsZVNldCo+JiBtYXRjaGVkUnVsZXMpOwogCkBAIC04NSw3ICs4NSw3IEBAIHBy
aXZhdGU6CiAgICAgUnVsZVNldCogcnVsZVNldEZvcihjb25zdCBDb250YWluZXJOb2RlKiBzY29w
ZSkgY29uc3Q7CiAgICAgdm9pZCBzZXR1cFN0YWNrKGNvbnN0IENvbnRhaW5lck5vZGUqKTsKICAg
ICBib29sIHN0YWNrSXNDb25zaXN0ZW50KGNvbnN0IENvbnRhaW5lck5vZGUqIHBhcmVudCkgY29u
c3QgeyByZXR1cm4gcGFyZW50ICYmIHBhcmVudCA9PSBtX3N0YWNrUGFyZW50OyB9Ci0gICAgUnVs
ZVNldCogZW5zdXJlQXRIb3N0UnVsZVNldEZvcihjb25zdCBTaGFkb3dSb290Kik7CisgICAgUnVs
ZVNldCogZW5zdXJlQXRIb3N0UnVsZVNldEZvcihjb25zdCBTaGFkb3dSb290KiwgdW5zaWduZWQq
IHJ1bGVDb3VudCk7CiAgICAgUnVsZVNldCogYXRIb3N0UnVsZVNldEZvcihjb25zdCBTaGFkb3dS
b290KikgY29uc3Q7CiAKICAgICBTY29wZWRSdWxlU2V0TWFwIG1fYXV0aG9yU3R5bGVzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCmluZGV4IDg1MDE0Yzk0ZmViNjEyODgwNTAwNzQyMDE0ZTRkMGNmYTlmOWVmZjQu
LmFkNWJjZjhmZTI1MWM2YTAxOTVlMjViNzJkY2M1NmQ2NDdkNGQ5N2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKQEAgLTIwMDAsOSArMjAwMCw5IEBAIHVuc2lnbmVkIHNob3J0IE5vZGU6OmNvbXBhcmVEb2N1
bWVudFBvc2l0aW9uKE5vZGUqIG90aGVyTm9kZSkKIAogICAgIC8vIFdlIG5lZWQgdG8gZmluZCBh
IGNvbW1vbiBhbmNlc3RvciBjb250YWluZXIsIGFuZCB0aGVuIGNvbXBhcmUgdGhlIGluZGljZXMg
b2YgdGhlIHR3byBpbW1lZGlhdGUgY2hpbGRyZW4uCiAgICAgTm9kZSogY3VycmVudDsKLSAgICBm
b3IgKGN1cnJlbnQgPSBzdGFydDE7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnRO
b2RlKCkpCisgICAgZm9yIChjdXJyZW50ID0gc3RhcnQxOyBjdXJyZW50OyBjdXJyZW50ID0gY3Vy
cmVudC0+cGFyZW50T3JIb3N0Tm9kZSgpKQogICAgICAgICBjaGFpbjEuYXBwZW5kKGN1cnJlbnQp
OwotICAgIGZvciAoY3VycmVudCA9IHN0YXJ0MjsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQt
PnBhcmVudE5vZGUoKSkKKyAgICBmb3IgKGN1cnJlbnQgPSBzdGFydDI7IGN1cnJlbnQ7IGN1cnJl
bnQgPSBjdXJyZW50LT5wYXJlbnRPckhvc3ROb2RlKCkpCiAgICAgICAgIGNoYWluMi5hcHBlbmQo
Y3VycmVudCk7CiAgICAKICAgICAvLyBXYWxrIHRoZSB0d28gY2hhaW5zIGJhY2t3YXJkcyBhbmQg
bG9vayBmb3IgdGhlIGZpcnN0IGRpZmZlcmVuY2UuCkBAIC0yMDE4LDE2ICsyMDE4LDMyIEBAIHVu
c2lnbmVkIHNob3J0IE5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKE5vZGUqIG90aGVyTm9k
ZSkKICAgICAgICAgICAgIGlmIChjaGlsZDItPm5vZGVUeXBlKCkgPT0gQVRUUklCVVRFX05PREUp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzsKICAg
ICAgICAgICAgIAotICAgICAgICAgICAgaWYgKCFjaGlsZDItPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX0ZPTExPV0lORzsKLSAgICAgICAg
ICAgIGlmICghY2hpbGQxLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgICAgIHJldHVybiBE
T0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7Ci0KLSAgICAgICAgICAgIC8vIE90aGVyd2lzZSB3
ZSBuZWVkIHRvIHNlZSB3aGljaCBub2RlIG9jY3VycyBmaXJzdC4gIENyYXdsIGJhY2t3YXJkcyBm
cm9tIGNoaWxkMiBsb29raW5nIGZvciBjaGlsZDEuCi0gICAgICAgICAgICBmb3IgKE5vZGUqIGNo
aWxkID0gY2hpbGQyLT5wcmV2aW91c1NpYmxpbmcoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnBy
ZXZpb3VzU2libGluZygpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNoaWxkID09IGNoaWxkMSkK
KyNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKKyAgICAgICAgICAgIC8vIElmIG9uZSBvZiB0aGUgY2hp
bGRyZW4gaXMgYSBzaGFkb3cgcm9vdCwgCisgICAgICAgICAgICBpZiAoY2hpbGQxLT5pc1NoYWRv
d1Jvb3QoKSB8fCBjaGlsZDItPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFjaGlsZDItPmlzU2hhZG93Um9vdCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9D
VU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOworICAgICAgICAgICAgICAgIGlmICghY2hpbGQxLT5p
c1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lU
SU9OX1BSRUNFRElORzsKKyAgICAgICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIGNoaWxkID0g
dG9TaGFkb3dSb290KGNoaWxkMiktPm9sZGVyU2hhZG93Um9vdCgpOyBjaGlsZDsgY2hpbGQgPSBj
aGlsZC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxk
ID09IGNoaWxkMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJ
VElPTl9GT0xMT1dJTkc7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSBlbHNlIHsK
KyNlbmRpZgorICAgICAgICAgICAgICAgIGlmICghY2hpbGQyLT5uZXh0U2libGluZygpKQorICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HOworICAg
ICAgICAgICAgICAgIGlmICghY2hpbGQxLT5uZXh0U2libGluZygpKQorICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOworCisgICAgICAgICAgICAg
ICAgLy8gT3RoZXJ3aXNlIHdlIG5lZWQgdG8gc2VlIHdoaWNoIG5vZGUgb2NjdXJzIGZpcnN0LiBD
cmF3bCBiYWNrd2FyZHMgZnJvbSBjaGlsZDIgbG9va2luZyBmb3IgY2hpbGQxLgorICAgICAgICAg
ICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZDItPnByZXZpb3VzU2libGluZygpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkID09IGNoaWxkMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBE
T0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkc7CisgICAgICAgICAgICAgICAgfQorI2lmIEVOQUJM
RShTSEFET1dfRE9NKQogICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICByZXR1cm4g
RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY4
MTg5NjBkMGZjZDM1NGY4OGU1OGExZTIzYTI3ZDczZTAwOGY1ODQuLjBiNzQxYjdmMjBjOThmY2Nj
MGQ1YTM0Y2Q5Zjk5MjQ4NTRmYTMyNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0xMS0y
NyAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CisKKyAgICAgICAgW1NoYWRv
dyBET01dOiBzY29wZWQgc3R5bGVzIGFyZSBub3QgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlci4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzIzOQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9j
c3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9j
dW1lbnQtb3JkZXIuaHRtbDogQWRkZWQuCisKIDIwMTItMTEtMjYgIERhbmllbCBCYXRlcyAgPGRi
YXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEphdmFTY3JpcHQgZmFpbHMgdG8gaGFuZGxlIFN0
cmluZy5yZXBsYWNlKCkgd2l0aCBsYXJnZSByZXBsYWNlbWVudCBzdHJpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQt
b3JkZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0
eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYzODUx
YmQ5M2MzNDY3MDY2ODc2YTQ3ZGQ5NGFhNWEzNmY1MGY3OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3Jk
ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQnVnIDEwMzIzOSAtIFtTaGFkb3cgRE9N
XTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQgaW4gZG9jdW1lbnQgb3JkZXIuCitUZXN0
IHdoZXRoZXIgYSBzY29wZWQgc3R5bGUgaXMgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlciBvciBu
b3QuCitQQVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDEyOCwg
MCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1Ro
ZSBjb2xvciBvZiB0aGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuLCBub3QgcmVkLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVu
dC1vcmRlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNj
b3BlZC1kb2N1bWVudC1vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NmViYzE1YjJiZTAzY2QyZGJl
MzI1Nzk0YzlmODMzNzBjNmIzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwKQEAgLTAs
MCArMSwzNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citz
cGFuIHsKKyAgICBjb2xvcjogcGluazsKK30KKworaDMgeworICAgIGNvbG9yOiByZWQ7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+CisgICAg
PHN0eWxlIHNjb3BlZD4KKyAgICBoMyB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9Cisg
ICAgPC9zdHlsZT4KKyAgICA8aDMgaWQ9InRhcmdldCI+VGhlIGNvbG9yIG9mIHRoaXMgdGV4dCBz
aG91bGQgYmUgZ3JlZW4sIG5vdCByZWQuPC9oMz4KKyAgPC9kaXY+Cis8c2NyaXB0PgorZGVidWco
J0J1ZyAxMDMyMzkgLSBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVk
IGluIGRvY3VtZW50IG9yZGVyLicpOworZGVidWcoJ1Rlc3Qgd2hldGhlciBhIHNjb3BlZCBzdHls
ZSBpcyBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyIG9yIG5vdC4nKTsKK3ZhciB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKzwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178152</attachid>
            <date>2012-12-06 21:05:26 -0800</date>
            <delta_ts>2012-12-10 04:37:34 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121207140249.patch</filename>
            <type>text/plain</type>
            <size>27770</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2OTEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjA4MjJhOTEzMTg5Yjc3
YmVjMjA0NDllY2EyY2E2YTM4MjM3YmQ4Ny4uYjExMzI3MmE0NmNjMDRiYmY3MGI5M2Q2YjU5Y2E5
Y2Y5N2IxMzA4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTExLTI3ICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRvY3VtZW50IG9yZGVyLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUnVsZXNldHMgZm9yIHNj
b3BlZCBzdHlsZXMgYW5kIHJ1bGVzZXQgZm9yIG5vdC1zY29wZWQgc3R5bGVzIGhhdmUgdG8KKyAg
ICAgICAgc2hhcmUgcG9zaXRpb24gaW5mb3JtYXRpb24sIGkuZS4gbV9ydWxlQ291bnQuIElmIHRo
ZXNlIHJ1bGVzZXRzIGRvbid0CisgICAgICAgIHNoYXJlIHRoZSBpbmZvcm1hdGlvbiwgd2UgY2Fu
bm90IGRldGVybWluZSB3aGljaCBydWxlIHNob3VsZCBiZQorICAgICAgICBhcHBsaWVkLCBmcm9t
IHNjb3BlZCBzdHlsZXMgb3IgZnJvbSBub3Qtc2NvcGVkIHN0eWxlcy4KKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6UnVsZVNldDo6YWRkUmVnaW9uUnVsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjphZGRSdWxlc0Zyb21TaGVldCk6CisgICAgICAgICog
Y3NzL1J1bGVTZXQuaDoKKyAgICAgICAgbV9ydWxlQ291bnQgaXMgdXNlZCB0byBrZWVwIGRvY3Vt
ZW50IG9yZGVyIGluZm9ybWF0aW9uLgorICAgICAgICBDaGFuZ2VkIG1fcnVsZUNvdW50IGZyb20g
dW5zaWduZWQgdG8gdW5zaWduZWQqIHRvIHNoYXJlIHRoZSBpbmZvcm1hdGlvbgorICAgICAgICBh
bW9uZyBtdWx0aXBsZSBydWxlc2V0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSdWxlU2V0OjpkaXNhYmxlQWRkUnVsZSk6CisgICAgICAg
IFNvbWUgcnVsZXNldHMsIGUuZy4gZmVhdHVyZSBzZXQsIHJlcXVpcmVzIHZhbGlkIG1fcnVsZUNv
dW50IG9ubHkgd2hlbgorICAgICAgICB3ZSBpbml0aXplIHRoZSBydWxlc2V0LCBlLmcuIHdlIG5l
ZWQgb25seSBpbgorICAgICAgICBTdHlsZVJlc29sdmVyOjptYWtlUnVsZVNldC4gU28gaW4gc3Vj
aCBjYXNlcywgcHJvdmlkZSBsb2NhbCB2YXJpYWJsZQorICAgICAgICBmb3IgUnVsZVNldDo6Y3Jl
YXRlLiBBZnRlciBhZGRpbmcgYWxsIHJ1bGVzLCB1c2UgdGhpcyBtZXRob2QgdG8KKyAgICAgICAg
cmVzZXQgbV9ydWxlQ291bnQuCisgICAgICAgIChSdWxlU2V0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJ1bGVTZXQ6OlJ1bGVTZXQpOgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6U3R5bGVS
ZXNvbHZlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0UnVsZXNG
cm9tVXNlclN0eWxlU2hlZXRzKToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VSdWxlU2V0KToKKyAg
ICAgICAgKFdlYkNvcmU6OmxvYWRWaWV3U291cmNlU3R5bGUpOgorICAgICAgICBUaGVzZSBzdHls
ZXMsIGkuZS4gbV91c2VyU3R5bGUsIGRlZmF1bHRWaWV3U291cmNlU3R5bGUsCisgICAgICAgIG1f
c2libGluZ1J1bGVTZXQsIG1fdW5jb21tb25BdHRyaWJ1dGVSdWxlU2V0IG5lZWQgdmFsaWQgbV9y
dWxlQ291bnQKKyAgICAgICAgb25seSBpbiB0aGVzZSBtZXRob2RzLiBTbyB1c2UgbG9jYWwgdmFy
YWlibGVzIHRvIGluaXRpYWxpemUgdGhlc2UKKyAgICAgICAgcnVsZXMuIEFmdGVyIGluaXRpYWxp
emluZyB0aGVtLCBpbnZva2UgZGlzYWJsZUFkZFJ1bGUgdG8gcmVzZXQKKyAgICAgICAgbV9ydWxl
Q291bnQuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpyZXNldEF1dGhvclN0eWxl
KToKKyAgICAgICAgQWRkZWQgdG8gbWFrZSBtX2F1dGhvclJ1bGVDb3VudCBiZSAwLgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHMpOgorICAg
ICAgICAoV2ViQ29yZTo6bG9hZEZ1bGxEZWZhdWx0U3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
bG9hZFNpbXBsZURlZmF1bHRTdHlsZSk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAg
KFN0eWxlUmVzb2x2ZXIpOgorICAgICAgICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjplbnN1cmVSdWxlU2V0Rm9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2NvcGVSZXNvbHZlcjo6ZW5zdXJlQXRIb3N0UnVsZVNl
dEZvcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxl
KToKKyAgICAgICAgKiBjc3MvU3R5bGVTY29wZVJlc29sdmVyLmg6CisgICAgICAgIChTdHlsZVNj
b3BlUmVzb2x2ZXIpOgorICAgICAgICBBZGRlZCBhIG5ldyBtZW1iZXIgdmFyaWFibGUsIG1fYXV0
aG9yUnVsZUNvdW50IHdoaWNoIGhhcyBkb2N1bWVudAorICAgICAgICBvcmRlciBpbmZvcm1hdGlv
biB1c2VkIGJ5IG1fYXV0aG9yU3R5bGVzIGluIFN0eWxlUmVzb2x2ZXIgYW5kCisgICAgICAgIHNj
b3BlZCBzdHlsZXMgaW4gU3R5bGVTY29wZVJlc29sdmVyLgorICAgICAgICAqIGRvbS9Ob2RlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKToKKyAg
ICAgICAgTW9kaWZpZWQgdG8gc3VwcG9ydCBub2RlcyBpbiBzaGFkb3cgZG9tIHRyZWVzLiBJZiBh
IGNvbW1vbiBhbmNlc3RvciBvZgorICAgICAgICB0aGUgZ2l2ZW4gbm9kZSBBIGFuZCBCIGlzIGEg
c2hhZG93IGhvc3QsIHN1cHBvc2UgdGhhdCBBJyBpcyBhbiBhbmNlc3RvcgorICAgICAgICBvZiBu
b2RlIEEgYW5kIGEgY2hpbGQgb2YgdGhlIGNvbW1vbiBhbmNlc3RvciBhbmQgQidzIGlzIGFuIGFu
Y2VzdG9yCisgICAgICAgIG9mIG5vZGUgQiBhbmQgYSBjaGlsZCBvZiB0aGUgY29tbW9uIGFuY2Vz
dG9yOgorICAgICAgICAtIGlmIEEnIGlzIGEgc2hhZG93IHJvb3QgYW5kIEInIGlzIG5vdCBhIHNo
YWRvdyByb290LCBBIDwgQi4KKyAgICAgICAgLSBpZiBBJyBpcyBub3QgYSBzaGFkb3cgcm9vdCBh
bmQgQicgaXMgYSBzaGFkb3cgcm9vdCwgQSA+IEIuCisgICAgICAgIC0gaWYgQScgYW5kIEInIGFy
ZSBzaGFkb3cgcm9vdHMsIHNlZSB3aGljaGkgaXMgYSB5b3VuZ2VyIHNoYWRvdyByb290LAorICAg
ICAgICAgIEEnIG9yIEInLiBJZiBBJyBpcyB5b3VuZ2VyIHRoYW4gQicsIEEgPiBCLiBPdGhlcndp
c2UsIEIgPCBBLgorICAgICAgICBUaGlzIGlzIHJlcXVpcmVkIHRvIHN1cHBvcnQgQGhvc3QgQC1y
dWxlcy4gV2l0aG91dCB0aGlzIGNoYW5nZSwKKyAgICAgICAgYXRob3N0LWF0cnVsZXMuaHRtbCB3
aWxsIGZhaWwuCisKIDIwMTItMTItMDYgIERvbWluaWMgQ29vbmV5ICA8ZG9taW5pY2NAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEVsZW1lbnQucHNldWRvIHByb3BlcnR5IHNob3VsZCBiZSBwcmVm
aXhlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCmluZGV4IDlhNzhjMGZmOTAzODljOTBjNDRkYTVhNmI5
ZjVmZjdhZTIwYzZlMzEuLjQyZWE4ZGI0MDZjMTllYTkwMDZjZWRhZGY3Nzg4ZGQ1OWJmY2MyOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKQEAgLTE5MCw3ICsxOTAsOCBAQCB2b2lkIFJ1bGVTZXQ6
OmFkZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNv
bnN0IFJ1bGVEYQogCiB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxlKiBydWxlLCB1bnNp
Z25lZCBzZWxlY3RvckluZGV4LCBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzKQogewotICAgIFJ1
bGVEYXRhIHJ1bGVEYXRhKHJ1bGUsIHNlbGVjdG9ySW5kZXgsIG1fcnVsZUNvdW50KyssIGFkZFJ1
bGVGbGFncyk7CisgICAgQVNTRVJUKG1fcnVsZUNvdW50KTsKKyAgICBSdWxlRGF0YSBydWxlRGF0
YShydWxlLCBzZWxlY3RvckluZGV4LCArKyptX3J1bGVDb3VudCwgYWRkUnVsZUZsYWdzKTsKICAg
ICBzdGF0aWMgY29uc3QgdW5zaWduZWQgYXRob3N0UnVsZVNwZWNpZmljaXR5ID0gMHgxMDAwMDA7
CiAKICAgICBpZiAoYWRkUnVsZUZsYWdzICYgUnVsZUlzSG9zdFJ1bGUpCkBAIC0yNDIsMTEgKzI0
MywxMSBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFBhZ2VSdWxlKFN0eWxlUnVsZVBhZ2UqIHJ1bGUpCiAK
IHZvaWQgUnVsZVNldDo6YWRkUmVnaW9uUnVsZShTdHlsZVJ1bGVSZWdpb24qIHJlZ2lvblJ1bGUs
IGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbikKIHsKLSAgICBPd25QdHI8UnVsZVNldD4g
cmVnaW9uUnVsZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIEFTU0VSVChtX3J1bGVDb3Vu
dCk7CiAgICAgLy8gVGhlIHJlZ2lvbiBydWxlIHNldCBzaG91bGQgdGFrZSBpbnRvIGFjY291bnQg
dGhlIHBvc2l0aW9uIGluc2lkZSB0aGUgcGFyZW50IHJ1bGUgc2V0LgogICAgIC8vIE90aGVyd2lz
ZSwgdGhlIHJ1bGVzIGluc2lkZSByZWdpb24gYmxvY2sgbWlnaHQgYmUgaW5jb3JyZWN0bHkgcG9z
aXRpb25lZCBiZWZvcmUgb3RoZXIgc2ltaWxhciBydWxlcyBmcm9tCiAgICAgLy8gdGhlIHN0eWxl
c2hlZXQgdGhhdCBjb250YWlucyB0aGUgcmVnaW9uIGJsb2NrLgotICAgIHJlZ2lvblJ1bGVTZXQt
Pm1fcnVsZUNvdW50ID0gbV9ydWxlQ291bnQ7CisgICAgT3duUHRyPFJ1bGVTZXQ+IHJlZ2lvblJ1
bGVTZXQgPSBSdWxlU2V0OjpjcmVhdGUobV9ydWxlQ291bnQpOwogCiAgICAgLy8gQ29sbGVjdCB0
aGUgcmVnaW9uIHJ1bGVzIGludG8gYSBydWxlIHNldAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8
U3R5bGVSdWxlQmFzZT4gPiYgY2hpbGRSdWxlcyA9IHJlZ2lvblJ1bGUtPmNoaWxkUnVsZXMoKTsK
QEAgLTI1Nyw4ICsyNTgsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFJlZ2lvblJ1bGUoU3R5bGVSdWxl
UmVnaW9uKiByZWdpb25SdWxlLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdAogICAgICAgICBpZiAo
cmVnaW9uU3R5bGluZ1J1bGUtPmlzU3R5bGVSdWxlKCkpCiAgICAgICAgICAgICByZWdpb25SdWxl
U2V0LT5hZGRTdHlsZVJ1bGUoc3RhdGljX2Nhc3Q8U3R5bGVSdWxlKj4ocmVnaW9uU3R5bGluZ1J1
bGUpLCBhZGRSdWxlRmxhZ3MpOwogICAgIH0KLSAgICAvLyBVcGRhdGUgdGhlICJnbG9iYWwiIHJ1
bGUgY291bnQgc28gdGhhdCBwcm9wZXIgb3JkZXIgaXMgbWFpbnRhaW5lZAotICAgIG1fcnVsZUNv
dW50ID0gcmVnaW9uUnVsZVNldC0+bV9ydWxlQ291bnQ7CiAKICAgICBtX3JlZ2lvblNlbGVjdG9y
c0FuZFJ1bGVTZXRzLmFwcGVuZChSdWxlU2V0U2VsZWN0b3JQYWlyKHJlZ2lvblJ1bGUtPnNlbGVj
dG9yTGlzdCgpLmZpcnN0KCksIHJlZ2lvblJ1bGVTZXQucmVsZWFzZSgpKSk7CiB9CkBAIC0yNjYs
NiArMjY1LDcgQEAgdm9pZCBSdWxlU2V0OjphZGRSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiog
cmVnaW9uUnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXQKIHZvaWQgUnVsZVNldDo6YWRkUnVs
ZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwgY29uc3QgTWVkaWFRdWVyeUV2
YWx1YXRvciYgbWVkaXVtLCBTdHlsZVJlc29sdmVyKiByZXNvbHZlciwgY29uc3QgQ29udGFpbmVy
Tm9kZSogc2NvcGUpCiB7CiAgICAgQVNTRVJUKHNoZWV0KTsKKyAgICBBU1NFUlQobV9ydWxlQ291
bnQpOwogICAgIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlSW1wb3J0PiA+JiBp
bXBvcnRSdWxlcyA9IHNoZWV0LT5pbXBvcnRSdWxlcygpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBpbXBvcnRSdWxlcy5zaXplKCk7ICsraSkgewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHZv
aWQgUnVsZVNldDo6YWRkUnVsZXNGcm9tU2hlZXQoU3R5bGVTaGVldENvbnRlbnRzKiBzaGVldCwg
Y29uc3QgTWVkaWFRdWVyeUV2YWx1CiAjZW5kaWYKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICAg
ICAgICAgZWxzZSBpZiAocnVsZS0+aXNIb3N0UnVsZSgpKQotICAgICAgICAgICAgcmVzb2x2ZXIt
PmFkZEhvc3RSdWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUhvc3QqPihydWxlKSwgaGFzRG9jdW1l
bnRTZWN1cml0eU9yaWdpbiwgc2NvcGUpOworICAgICAgICAgICAgcmVzb2x2ZXItPmFkZEhvc3RS
dWxlKHN0YXRpY19jYXN0PFN0eWxlUnVsZUhvc3QqPihydWxlKSwgaGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbiwgc2NvcGUsIG1fcnVsZUNvdW50KTsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfREVW
SUNFX0FEQVBUQVRJT04pCiAgICAgICAgIGVsc2UgaWYgKHJ1bGUtPmlzVmlld3BvcnRSdWxlKCkg
JiYgcmVzb2x2ZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCmluZGV4IGEyZmJlY2JjMDBiMmNhMWI1MzJm
NDk2YTk1YzA5MzUwMjZmYTRmN2QuLjFjYjY3ZThiM2M2NjA0MmNkNzJmNDcxY2UyMDA3Y2MzZGQ2
MTY0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApAQCAtMTAxLDcgKzEwMSw3IEBAIENPTVBJTEVfQVNT
RVJUKHNpemVvZihSdWxlRGF0YSkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSdWxlRGF0YSksIFJ1bGVE
YXRhX3Nob3VsZF9zCiBjbGFzcyBSdWxlU2V0IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShS
dWxlU2V0KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8UnVsZVNldD4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFJ1bGVTZXQp
OyB9CisgICAgc3RhdGljIFBhc3NPd25QdHI8UnVsZVNldD4gY3JlYXRlKHVuc2lnbmVkKiBydWxl
Q291bnQpIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBSdWxlU2V0KHJ1bGVDb3VudCkpOyB9CiAKICAg
ICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIE93blB0cjxWZWN0b3I8UnVsZURh
dGE+ID4gPiBBdG9tUnVsZU1hcDsKIApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFJlZ2lvblJ1bGUoU3R5bGVSdWxlUmVnaW9uKiwgYm9vbCBoYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKTsKICAgICB2b2lkIHNocmlua1RvRml0KCk7CiAgICAgdm9pZCBkaXNhYmxlQXV0
b1Nocmlua1RvRml0KCkgeyBtX2F1dG9TaHJpbmtUb0ZpdEVuYWJsZWQgPSBmYWxzZTsgfQorICAg
IHZvaWQgZGlzYWJsZUFkZFJ1bGUoKSB7IG1fcnVsZUNvdW50ID0gMDsgfQogCiAgICAgY29uc3Qg
UnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mZWF0dXJlczsgfQog
CkBAIC0xMjksNyArMTMwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0OwogCiBwdWJsaWM6Ci0gICAgUnVsZVNldCgpOworICAg
IFJ1bGVTZXQodW5zaWduZWQqKTsKIAogICAgIEF0b21SdWxlTWFwIG1faWRSdWxlczsKICAgICBB
dG9tUnVsZU1hcCBtX2NsYXNzUnVsZXM7CkBAIC0xMzksNyArMTQwLDcgQEAgcHVibGljOgogICAg
IFZlY3RvcjxSdWxlRGF0YT4gbV9mb2N1c1BzZXVkb0NsYXNzUnVsZXM7CiAgICAgVmVjdG9yPFJ1
bGVEYXRhPiBtX3VuaXZlcnNhbFJ1bGVzOwogICAgIFZlY3RvcjxTdHlsZVJ1bGVQYWdlKj4gbV9w
YWdlUnVsZXM7Ci0gICAgdW5zaWduZWQgbV9ydWxlQ291bnQ7CisgICAgdW5zaWduZWQqIG1fcnVs
ZUNvdW50OwogICAgIGJvb2wgbV9hdXRvU2hyaW5rVG9GaXRFbmFibGVkOwogICAgIFJ1bGVGZWF0
dXJlU2V0IG1fZmVhdHVyZXM7CiAKQEAgLTE1NSw4ICsxNTYsOCBAQCBwdWJsaWM6CiAgICAgVmVj
dG9yPFJ1bGVTZXRTZWxlY3RvclBhaXI+IG1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHM7CiB9
OwogCi1pbmxpbmUgUnVsZVNldDo6UnVsZVNldCgpCi0gICAgOiBtX3J1bGVDb3VudCgwKQoraW5s
aW5lIFJ1bGVTZXQ6OlJ1bGVTZXQodW5zaWduZWQqIHJ1bGVDb3VudCkKKyAgICA6IG1fcnVsZUNv
dW50KHJ1bGVDb3VudCkKICAgICAsIG1fYXV0b1Nocmlua1RvRml0RW5hYmxlZCh0cnVlKQogewog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDcyNjMzMjM5ZTMyZWQ3NDk5
M2IxNzBiMjVmODM5ZDgzOTJjMjQ4NDIuLmU1MmI4MTk5NjI1MzVjMzkxYjBhNjE3YzFmODdiNmE2
NzM2NGE2OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTIwNyw2ICsy
MDcsNyBAQCBzdGF0aWMgUnVsZVNldCogZGVmYXVsdFN0eWxlOwogc3RhdGljIFJ1bGVTZXQqIGRl
ZmF1bHRRdWlya3NTdHlsZTsKIHN0YXRpYyBSdWxlU2V0KiBkZWZhdWx0UHJpbnRTdHlsZTsKIHN0
YXRpYyBSdWxlU2V0KiBkZWZhdWx0Vmlld1NvdXJjZVN0eWxlOworc3RhdGljIHVuc2lnbmVkIHJ1
bGVDb3VudEZvckRlZmF1bHRTdHlsZXM7CiBzdGF0aWMgU3R5bGVTaGVldENvbnRlbnRzKiBzaW1w
bGVEZWZhdWx0U3R5bGVTaGVldDsKIHN0YXRpYyBTdHlsZVNoZWV0Q29udGVudHMqIGRlZmF1bHRT
dHlsZVNoZWV0Owogc3RhdGljIFN0eWxlU2hlZXRDb250ZW50cyogcXVpcmtzU3R5bGVTaGVldDsK
QEAgLTI4Niw2ICsyODcsNyBAQCBTdHlsZVJlc29sdmVyOjpTdHlsZVJlc29sdmVyKERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBtYXRjaEF1dGhvckFuZFVzZXJTdHlsZXMpCiAjaWYgRU5BQkxFKENT
U19TSEFERVJTKQogICAgICwgbV9oYXNQZW5kaW5nU2hhZGVycyhmYWxzZSkKICNlbmRpZgorICAg
ICwgbV9hdXRob3JSdWxlQ291bnQoMCkKICAgICAsIG1fc3R5bGVNYXAodGhpcykKIHsKICAgICBF
bGVtZW50KiByb290ID0gZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpOwpAQCAtMzE4LDExICsz
MjAsMTQgQEAgU3R5bGVSZXNvbHZlcjo6U3R5bGVSZXNvbHZlcihEb2N1bWVudCogZG9jdW1lbnQs
IGJvb2wgbWF0Y2hBdXRob3JBbmRVc2VyU3R5bGVzKQogICAgIHJlc2V0QXV0aG9yU3R5bGUoKTsK
IAogICAgIERvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24qIHN0eWxlU2hlZXRDb2xsZWN0aW9u
ID0gZG9jdW1lbnQtPnN0eWxlU2hlZXRDb2xsZWN0aW9uKCk7Ci0gICAgT3duUHRyPFJ1bGVTZXQ+
IHRlbXBVc2VyU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKTsKKyAgICB1bnNpZ25lZCB0ZW1wUnVs
ZUNvdW50ID0gMDsKKyAgICBPd25QdHI8UnVsZVNldD4gdGVtcFVzZXJTdHlsZSA9IFJ1bGVTZXQ6
OmNyZWF0ZSgmdGVtcFJ1bGVDb3VudCk7CisKICAgICBpZiAoQ1NTU3R5bGVTaGVldCogcGFnZVVz
ZXJTaGVldCA9IHN0eWxlU2hlZXRDb2xsZWN0aW9uLT5wYWdlVXNlclNoZWV0KCkpCiAgICAgICAg
IHRlbXBVc2VyU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhZ2VVc2VyU2hlZXQtPmNvbnRlbnRz
KCksICptX21lZGl1bSwgdGhpcyk7CiAgICAgY29sbGVjdFJ1bGVzRnJvbVVzZXJTdHlsZVNoZWV0
cyhzdHlsZVNoZWV0Q29sbGVjdGlvbi0+aW5qZWN0ZWRVc2VyU3R5bGVTaGVldHMoKSwgKnRlbXBV
c2VyU3R5bGUpOwogICAgIGNvbGxlY3RSdWxlc0Zyb21Vc2VyU3R5bGVTaGVldHMoc3R5bGVTaGVl
dENvbGxlY3Rpb24tPmRvY3VtZW50VXNlclN0eWxlU2hlZXRzKCksICp0ZW1wVXNlclN0eWxlKTsK
KyAgICB0ZW1wVXNlclN0eWxlLT5kaXNhYmxlQWRkUnVsZSgpOwogICAgIGlmICh0ZW1wVXNlclN0
eWxlLT5tX3J1bGVDb3VudCA+IDAgfHwgdGVtcFVzZXJTdHlsZS0+bV9wYWdlUnVsZXMuc2l6ZSgp
ID4gMCkKICAgICAgICAgbV91c2VyU3R5bGUgPSB0ZW1wVXNlclN0eWxlLnJlbGVhc2UoKTsKIApA
QCAtMzUxLDE2ICszNTYsMTkgQEAgc3RhdGljIFBhc3NPd25QdHI8UnVsZVNldD4gbWFrZVJ1bGVT
ZXQoY29uc3QgVmVjdG9yPFJ1bGVGZWF0dXJlPiYgcnVsZXMpCiAgICAgc2l6ZV90IHNpemUgPSBy
dWxlcy5zaXplKCk7CiAgICAgaWYgKCFzaXplKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICBPd25QdHI8UnVsZVNldD4gcnVsZVNldCA9IFJ1bGVTZXQ6OmNyZWF0ZSgpOworICAgIHVuc2ln
bmVkIHJ1bGVDb3VudCA9IDA7CisgICAgT3duUHRyPFJ1bGVTZXQ+IHJ1bGVTZXQgPSBSdWxlU2V0
OjpjcmVhdGUoJnJ1bGVDb3VudCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyAr
K2kpCiAgICAgICAgIHJ1bGVTZXQtPmFkZFJ1bGUocnVsZXNbaV0ucnVsZSwgcnVsZXNbaV0uc2Vs
ZWN0b3JJbmRleCwgcnVsZXNbaV0uaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNE
b2N1bWVudFNlY3VyaXR5T3JpZ2luIDogUnVsZUhhc05vU3BlY2lhbFN0YXRlKTsKICAgICBydWxl
U2V0LT5zaHJpbmtUb0ZpdCgpOworICAgIHJ1bGVTZXQtPmRpc2FibGVBZGRSdWxlKCk7CiAgICAg
cmV0dXJuIHJ1bGVTZXQucmVsZWFzZSgpOwogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnJlc2V0
QXV0aG9yU3R5bGUoKQogewotICAgIG1fYXV0aG9yU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoKTsK
KyAgICBtX2F1dGhvclJ1bGVDb3VudCA9IDA7CisgICAgbV9hdXRob3JTdHlsZSA9IFJ1bGVTZXQ6
OmNyZWF0ZSgmbV9hdXRob3JSdWxlQ291bnQpOwogICAgIG1fYXV0aG9yU3R5bGUtPmRpc2FibGVB
dXRvU2hyaW5rVG9GaXQoKTsKIH0KIApAQCAtMzc3LDcgKzM4NSw3IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6YXBwZW5kQXV0aG9yU3R5bGVTaGVldHModW5zaWduZWQgZmlyc3ROZXcsIGNvbnN0IFZl
Y3RvcjxSZWZQCiAgICAgICAgIFN0eWxlU2hlZXRDb250ZW50cyogc2hlZXQgPSBjc3NTaGVldC0+
Y29udGVudHMoKTsKICNpZiBFTkFCTEUoU1RZTEVfU0NPUEVEKSB8fCBFTkFCTEUoU0hBRE9XX0RP
TSkKICAgICAgICAgaWYgKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlID0gU3R5bGVTY29wZVJl
c29sdmVyOjpzY29wZUZvcihjc3NTaGVldCkpIHsKLSAgICAgICAgICAgIGVuc3VyZVNjb3BlUmVz
b2x2ZXIoKS0+ZW5zdXJlUnVsZVNldEZvcihzY29wZSktPmFkZFJ1bGVzRnJvbVNoZWV0KHNoZWV0
LCAqbV9tZWRpdW0sIHRoaXMsIHNjb3BlKTsKKyAgICAgICAgICAgIGVuc3VyZVNjb3BlUmVzb2x2
ZXIoKS0+ZW5zdXJlUnVsZVNldEZvcihzY29wZSwgJm1fYXV0aG9yUnVsZUNvdW50KS0+YWRkUnVs
ZXNGcm9tU2hlZXQoc2hlZXQsICptX21lZGl1bSwgdGhpcywgc2NvcGUpOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KICNlbmRpZgpAQCAtNDkyLDE5ICs1MDAsMjAgQEAgc3RhdGlj
IFN0eWxlU2hlZXRDb250ZW50cyogcGFyc2VVQVNoZWV0KGNvbnN0IGNoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIHNpemUpCiAKIHN0YXRpYyB2b2lkIGxvYWRGdWxsRGVmYXVsdFN0eWxlKCkKIHsK
KyAgICBydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzID0gMDsKICAgICBpZiAoc2ltcGxlRGVmYXVs
dFN0eWxlU2hlZXQpIHsKICAgICAgICAgQVNTRVJUKGRlZmF1bHRTdHlsZSk7CiAgICAgICAgIEFT
U0VSVChkZWZhdWx0UHJpbnRTdHlsZSA9PSBkZWZhdWx0U3R5bGUpOwogICAgICAgICBkZWxldGUg
ZGVmYXVsdFN0eWxlOwogICAgICAgICBzaW1wbGVEZWZhdWx0U3R5bGVTaGVldC0+ZGVyZWYoKTsK
LSAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCkubGVha1B0cigpOwotICAg
ICAgICBkZWZhdWx0UHJpbnRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgpLmxlYWtQdHIoKTsKKyAg
ICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZhdWx0
U3R5bGVzKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQcmludFN0eWxlID0gUnVsZVNldDo6
Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CiAgICAgICAgIHNp
bXBsZURlZmF1bHRTdHlsZVNoZWV0ID0gMDsKICAgICB9IGVsc2UgewogICAgICAgICBBU1NFUlQo
IWRlZmF1bHRTdHlsZSk7Ci0gICAgICAgIGRlZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgp
LmxlYWtQdHIoKTsKLSAgICAgICAgZGVmYXVsdFByaW50U3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUo
KS5sZWFrUHRyKCk7Ci0gICAgICAgIGRlZmF1bHRRdWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0
ZSgpLmxlYWtQdHIoKTsKKyAgICAgICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZy
dWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFrUHRyKCk7CisgICAgICAgIGRlZmF1bHRQcmlu
dFN0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCZydWxlQ291bnRGb3JEZWZhdWx0U3R5bGVzKS5sZWFr
UHRyKCk7CisgICAgICAgIGRlZmF1bHRRdWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVs
ZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVha1B0cigpOwogICAgIH0KIAogICAgIC8vIFN0cmlj
dC1tb2RlIHJ1bGVzLgpAQCAtNTI0LDEwICs1MzMsMTEgQEAgc3RhdGljIHZvaWQgbG9hZFNpbXBs
ZURlZmF1bHRTdHlsZSgpCiAgICAgQVNTRVJUKCFkZWZhdWx0U3R5bGUpOwogICAgIEFTU0VSVCgh
c2ltcGxlRGVmYXVsdFN0eWxlU2hlZXQpOwogCi0gICAgZGVmYXVsdFN0eWxlID0gUnVsZVNldDo6
Y3JlYXRlKCkubGVha1B0cigpOworICAgIHJ1bGVDb3VudEZvckRlZmF1bHRTdHlsZXMgPSAwOwor
ICAgIGRlZmF1bHRTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVsZUNvdW50Rm9yRGVmYXVsdFN0
eWxlcykubGVha1B0cigpOwogICAgIC8vIFRoZXJlIGFyZSBubyBtZWRpYS1zcGVjaWZpYyBydWxl
cyBpbiB0aGUgc2ltcGxlIGRlZmF1bHQgc3R5bGUuCiAgICAgZGVmYXVsdFByaW50U3R5bGUgPSBk
ZWZhdWx0U3R5bGU7Ci0gICAgZGVmYXVsdFF1aXJrc1N0eWxlID0gUnVsZVNldDo6Y3JlYXRlKCku
bGVha1B0cigpOworICAgIGRlZmF1bHRRdWlya3NTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0ZSgmcnVs
ZUNvdW50Rm9yRGVmYXVsdFN0eWxlcykubGVha1B0cigpOwogCiAgICAgc2ltcGxlRGVmYXVsdFN0
eWxlU2hlZXQgPSBwYXJzZVVBU2hlZXQoc2ltcGxlVXNlckFnZW50U3R5bGVTaGVldCwgc3RybGVu
KHNpbXBsZVVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKICAgICBkZWZhdWx0U3R5bGUtPmFkZFJ1bGVz
RnJvbVNoZWV0KHNpbXBsZURlZmF1bHRTdHlsZVNoZWV0LCBzY3JlZW5FdmFsKCkpOwpAQCAtNTM4
LDggKzU0OCwxMCBAQCBzdGF0aWMgdm9pZCBsb2FkU2ltcGxlRGVmYXVsdFN0eWxlKCkKIHN0YXRp
YyB2b2lkIGxvYWRWaWV3U291cmNlU3R5bGUoKQogewogICAgIEFTU0VSVCghZGVmYXVsdFZpZXdT
b3VyY2VTdHlsZSk7Ci0gICAgZGVmYXVsdFZpZXdTb3VyY2VTdHlsZSA9IFJ1bGVTZXQ6OmNyZWF0
ZSgpLmxlYWtQdHIoKTsKKyAgICB1bnNpZ25lZCBydWxlQ291bnQgPSAwOworICAgIGRlZmF1bHRW
aWV3U291cmNlU3R5bGUgPSBSdWxlU2V0OjpjcmVhdGUoJnJ1bGVDb3VudCkubGVha1B0cigpOwog
ICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUtPmFkZFJ1bGVzRnJvbVNoZWV0KHBhcnNlVUFTaGVl
dChzb3VyY2VVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2Yoc291cmNlVXNlckFnZW50U3R5bGVT
aGVldCkpLCBzY3JlZW5FdmFsKCkpOworICAgIGRlZmF1bHRWaWV3U291cmNlU3R5bGUtPmRpc2Fi
bGVBZGRSdWxlKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGVuc3VyZURlZmF1bHRTdHlsZVNoZWV0c0Zv
ckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmlu
ZGV4IGNlZWI3NDEzMzZkYWFhNDhkNTBjMzgwNjIwMzE5MWI0ZDE3MTI5YmUuLjMzZjZhNTk5YmIx
YjIxODFmOWRkNWQ0ZmRjYThhOTAzYzZhNzQ1MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuaApAQCAtMTQwLDcgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHB1c2hQYXJlbnRTaGFk
b3dSb290KGNvbnN0IFNoYWRvd1Jvb3QqKTsKICAgICB2b2lkIHBvcFBhcmVudFNoYWRvd1Jvb3Qo
Y29uc3QgU2hhZG93Um9vdCopOwogI2lmIEVOQUJMRShTSEFET1dfRE9NKQotICAgIHZvaWQgYWRk
SG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogcnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSkgeyBlbnN1cmVTY29wZVJlc29sdmVyKCkt
PmFkZEhvc3RSdWxlKHJ1bGUsIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlKTsgfQor
ICAgIHZvaWQgYWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogcnVsZSwgYm9vbCBoYXNEb2N1bWVu
dFNlY3VyaXR5T3JpZ2luLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSwgdW5zaWduZWQqIHJ1
bGVDb3VudCkgeyBlbnN1cmVTY29wZVJlc29sdmVyKCktPmFkZEhvc3RSdWxlKHJ1bGUsIGhhc0Rv
Y3VtZW50U2VjdXJpdHlPcmlnaW4sIHNjb3BlLCBydWxlQ291bnQpOyB9CiAjZW5kaWYKIAogICAg
IFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudChFbGVtZW50KiwgUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlID0gMCwgU3R5bGVTaGFyaW5nQmVoYXZpb3IgPSBBbGxvd1N0eWxl
U2hhcmluZywKQEAgLTUyMiw2ICs1MjIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShDU1NfRklM
VEVSUykgJiYgRU5BQkxFKFNWRykKICAgICBIYXNoTWFwPEZpbHRlck9wZXJhdGlvbiosIFJlZlB0
cjxXZWJLaXRDU1NTVkdEb2N1bWVudFZhbHVlPiA+IG1fcGVuZGluZ1NWR0RvY3VtZW50czsKICNl
bmRpZgorICAgIHVuc2lnbmVkIG1fYXV0aG9yUnVsZUNvdW50OwogCiAgICAgT3duUHRyPFN0eWxl
U2NvcGVSZXNvbHZlcj4gbV9zY29wZVJlc29sdmVyOwogICAgIENTU1RvU3R5bGVNYXAgbV9zdHls
ZU1hcDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNWZm
MmIzZTBiMTE1NDk5NDQ3ZTIxYzg2ZjU4ZjY0NjEzMDFjZjBmZC4uYjYxNDAxYWNkMmZjZmMwMjQw
MTZiNjdiZTZiNWVjNDNkNjEwNmI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2NvcGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVS
ZXNvbHZlci5jcHAKQEAgLTg1LDExICs4NSwxMSBAQCBpbmxpbmUgUnVsZVNldCogU3R5bGVTY29w
ZVJlc29sdmVyOjpydWxlU2V0Rm9yKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlKSBjb25zdAog
ICAgIHJldHVybiBpdCAhPSBtX2F1dGhvclN0eWxlcy5lbmQoKSA/IGl0LT52YWx1ZS5nZXQoKSA6
IDA7IAogfQogCi1SdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZVJ1bGVTZXRGb3Io
Y29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpCitSdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6
OmVuc3VyZVJ1bGVTZXRGb3IoY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIHVuc2lnbmVkKiBy
dWxlQ291bnQpCiB7CiAgICAgU2NvcGVkUnVsZVNldE1hcDo6QWRkUmVzdWx0IGFkZFJlc3VsdCA9
IG1fYXV0aG9yU3R5bGVzLmFkZChzY29wZSwgbnVsbHB0cik7CiAgICAgaWYgKGFkZFJlc3VsdC5p
c05ld0VudHJ5KQotICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVsZVNldDo6
Y3JlYXRlKCk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBSdWxlU2V0Ojpj
cmVhdGUocnVsZUNvdW50KTsKICAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5n
ZXQoKTsKIH0KIApAQCAtMTU2LDExICsxNTYsMTEgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6
OmNvbGxlY3RGZWF0dXJlc1RvKFJ1bGVGZWF0dXJlU2V0JiBmZWF0dXJlcykKICAgICAgICAgZmVh
dHVyZXMuYWRkKGl0LT52YWx1ZS0+ZmVhdHVyZXMoKSk7CiB9CiAKLWlubGluZSBSdWxlU2V0KiBT
dHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3VyZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hhZG93Um9v
dCogc2hhZG93Um9vdCkKK2lubGluZSBSdWxlU2V0KiBTdHlsZVNjb3BlUmVzb2x2ZXI6OmVuc3Vy
ZUF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCwgdW5zaWduZWQq
IHJ1bGVDb3VudCkKIHsKICAgICBTY29wZWRSdWxlU2V0TWFwOjpBZGRSZXN1bHQgYWRkUmVzdWx0
ID0gbV9hdEhvc3RSdWxlcy5hZGQoc2hhZG93Um9vdCwgbnVsbHB0cik7CiAgICAgaWYgKGFkZFJl
c3VsdC5pc05ld0VudHJ5KQotICAgICAgICBhZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlID0gUnVs
ZVNldDo6Y3JlYXRlKCk7CisgICAgICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBSdWxl
U2V0OjpjcmVhdGUocnVsZUNvdW50KTsKICAgICByZXR1cm4gYWRkUmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZS5nZXQoKTsKIH0KIApAQCAtMTcwLDcgKzE3MCw3IEBAIGlubGluZSBSdWxlU2V0KiBTdHls
ZVNjb3BlUmVzb2x2ZXI6OmF0SG9zdFJ1bGVTZXRGb3IoY29uc3QgU2hhZG93Um9vdCogc2hhZG93
Um9vCiAgICAgcmV0dXJuIGl0ICE9IG1fYXRIb3N0UnVsZXMuZW5kKCkgPyBpdC0+dmFsdWUuZ2V0
KCkgOiAwOwogfQogCi12b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1bGUoU3R5bGVS
dWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiwgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUpCit2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1
bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdp
biwgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpCiB7CiAg
ICAgaWYgKCFzY29wZSB8fCAhc2NvcGUtPmlzSW5TaGFkb3dUcmVlKCkpCiAgICAgICAgIHJldHVy
bjsKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9zdFJ1
bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQogICAgIGlmICgh
c2hhZG93Um9vdCB8fCAhc2hhZG93Um9vdC0+aG9zdCgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBSdWxlU2V0KiBydWxlID0gZW5zdXJlQXRIb3N0UnVsZVNldEZvcihzaGFkb3dSb290KTsKKyAg
ICBSdWxlU2V0KiBydWxlID0gZW5zdXJlQXRIb3N0UnVsZVNldEZvcihzaGFkb3dSb290LCBydWxl
Q291bnQpOwogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGls
ZFJ1bGVzID0gaG9zdFJ1bGUtPmNoaWxkUnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVs
ZUZsYWdzID0gaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luIDogUnVsZUhhc05vU3BlY2lhbFN0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
U2NvcGVSZXNvbHZlci5oCmluZGV4IDNiZTNmZjRmNzBjNzM3NWJkMDE0MjZhMDBiYTQyNDEyODQ2
MmNjMGUuLjc2YTliMTFjMzdjMzAwZmVlMzVmNmU3OWUxNWZmNTgyMDNjODA2OTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmgKQEAgLTY4LDE0ICs2OCwxNCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBwdXNoKGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCBjb25zdCBDb250
YWluZXJOb2RlKiBzY29wZVBhcmVudCk7CiAgICAgdm9pZCBwb3AoY29uc3QgQ29udGFpbmVyTm9k
ZSogc2NvcGUpOwogICAgIGJvb2wgaGFzU2NvcGVkU3R5bGVzKCkgY29uc3QgeyByZXR1cm4gIW1f
YXV0aG9yU3R5bGVzLmlzRW1wdHkoKTsgfQotICAgIFJ1bGVTZXQqIGVuc3VyZVJ1bGVTZXRGb3Io
Y29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUpOworICAgIFJ1bGVTZXQqIGVuc3VyZVJ1bGVTZXRG
b3IoY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUsIHVuc2lnbmVkKiBydWxlQ291bnQpOwogICAg
IGJvb2wgZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShDb250YWluZXJOb2RlKik7CiAgICAgdW5zaWdu
ZWQgc3RhY2tTaXplKCkgY29uc3QgeyByZXR1cm4gbV9zdGFjay5zaXplKCk7IH0KICAgICBjb25z
dCBTdGFja0ZyYW1lJiBzdGFja0ZyYW1lQXQodW5zaWduZWQgaW5kZXgpIGNvbnN0IHsgcmV0dXJu
IG1fc3RhY2suYXQoaW5kZXgpOyB9CiAgICAgYm9vbCBtYXRjaGVzU3R5bGVCb3VuZHMoY29uc3Qg
U3RhY2tGcmFtZSYgZnJhbWUpIGNvbnN0IHsgcmV0dXJuIGZyYW1lLm1fYXV0aG9yU3R5bGVCb3Vu
ZHNJbmRleCA9PSBtX3N0YWNrUGFyZW50Qm91bmRzSW5kZXg7IH0KICAgICB2b2lkIGNvbGxlY3RG
ZWF0dXJlc1RvKFJ1bGVGZWF0dXJlU2V0Jik7CiAKLSAgICB2b2lkIGFkZEhvc3RSdWxlKFN0eWxl
UnVsZUhvc3QqLCBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5l
ck5vZGUqIHNjb3BlKTsKKyAgICB2b2lkIGFkZEhvc3RSdWxlKFN0eWxlUnVsZUhvc3QqLCBib29s
IGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4sIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlLCB1
bnNpZ25lZCogcnVsZUNvdW50KTsKICAgICBib29sIHN0eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNo
ZXNIb3N0UnVsZXMoY29uc3QgRWxlbWVudCopOwogICAgIHZvaWQgbWF0Y2hIb3N0UnVsZXMoY29u
c3QgRWxlbWVudCosIFZlY3RvcjxSdWxlU2V0Kj4mIG1hdGNoZWRSdWxlcyk7CiAKQEAgLTg1LDcg
Kzg1LDcgQEAgcHJpdmF0ZToKICAgICBSdWxlU2V0KiBydWxlU2V0Rm9yKGNvbnN0IENvbnRhaW5l
ck5vZGUqIHNjb3BlKSBjb25zdDsKICAgICB2b2lkIHNldHVwU3RhY2soY29uc3QgQ29udGFpbmVy
Tm9kZSopOwogICAgIGJvb2wgc3RhY2tJc0NvbnNpc3RlbnQoY29uc3QgQ29udGFpbmVyTm9kZSog
cGFyZW50KSBjb25zdCB7IHJldHVybiBwYXJlbnQgJiYgcGFyZW50ID09IG1fc3RhY2tQYXJlbnQ7
IH0KLSAgICBSdWxlU2V0KiBlbnN1cmVBdEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3Qq
KTsKKyAgICBSdWxlU2V0KiBlbnN1cmVBdEhvc3RSdWxlU2V0Rm9yKGNvbnN0IFNoYWRvd1Jvb3Qq
LCB1bnNpZ25lZCogcnVsZUNvdW50KTsKICAgICBSdWxlU2V0KiBhdEhvc3RSdWxlU2V0Rm9yKGNv
bnN0IFNoYWRvd1Jvb3QqKSBjb25zdDsKIAogICAgIFNjb3BlZFJ1bGVTZXRNYXAgbV9hdXRob3JT
dHlsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0
Q29sbGVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRTdHlsZVNoZWV0Q29s
bGVjdGlvbi5jcHAKaW5kZXggNWU4ZTdjZTI2YzZiNGJiYTc4ZjYwYzcyNzFmZTI5MGVjMzFjNWM3
NS4uZTM2NTlhNTE2MDA2YjkxYjM4MjhlZTJhNjZmNWQzNTkxM2YyMmEwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50U3R5bGVTaGVldENvbGxlY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudFN0eWxlU2hlZXRDb2xsZWN0aW9uLmNwcApAQCAt
MjU0LDcgKzI1NCw3IEBAIHZvaWQgRG9jdW1lbnRTdHlsZVNoZWV0Q29sbGVjdGlvbjo6YWRkU3R5
bGVTaGVldENhbmRpZGF0ZU5vZGUoTm9kZSogbm9kZSwgYm9vbCBjCiAgICAgICAgIC0taXQ7CiAg
ICAgICAgIE5vZGUqIG4gPSAqaXQ7CiAgICAgICAgIHVuc2lnbmVkIHNob3J0IHBvc2l0aW9uID0g
bi0+Y29tcGFyZURvY3VtZW50UG9zaXRpb24obm9kZSk7Ci0gICAgICAgIGlmIChwb3NpdGlvbiA9
PSBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcpIHsKKyAgICAgICAgaWYgKHBvc2l0
aW9uICYgTm9kZTo6RE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HKSB7CiAgICAgICAgICAgICBt
X3N0eWxlU2hlZXRDYW5kaWRhdGVOb2Rlcy5pbnNlcnRCZWZvcmUoZm9sbG93aW5nTm9kZSwgbm9k
ZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCA1
ODRkYmU5ZmUyNGQ1Yzk3YWM4OTg1NWEyNjhlNTQ5MDQ3MzAzZGI4Li43ZDBhNzRlNmJjMWNlYjU1
MDNiYWFjNjJiMWQwOWRkYjRjYzIyM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0xOTMyLDE0ICsx
OTMyLDE2IEBAIHVuc2lnbmVkIHNob3J0IE5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKE5v
ZGUqIG90aGVyTm9kZSkKICAgICAvLyBJZiB0aGUgbm9kZXMgaGF2ZSBkaWZmZXJlbnQgb3duaW5n
IGRvY3VtZW50cywgdGhleSBtdXN0IGJlIGRpc2Nvbm5lY3RlZC4gIE5vdGUgdGhhdCB3ZSBhdm9p
ZAogICAgIC8vIGNvbXBhcmluZyBBdHRyIG5vZGVzIGhlcmUsIHNpbmNlIHRoZXkgcmV0dXJuIGZh
bHNlIGZyb20gaW5Eb2N1bWVudCgpIGFsbCB0aGUgdGltZSAod2hpY2ggc2VlbXMgbGlrZSBhIGJ1
ZykuCiAgICAgaWYgKHN0YXJ0MS0+aW5Eb2N1bWVudCgpICE9IHN0YXJ0Mi0+aW5Eb2N1bWVudCgp
IHx8Ci0gICAgICAgIHN0YXJ0MS0+dHJlZVNjb3BlKCkgIT0gc3RhcnQyLT50cmVlU2NvcGUoKSkK
KyAgICAgICAgc3RhcnQxLT5kb2N1bWVudCgpICE9IHN0YXJ0Mi0+ZG9jdW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX0RJU0NPTk5FQ1RFRCB8IERPQ1VNRU5UX1BPU0lU
SU9OX0lNUExFTUVOVEFUSU9OX1NQRUNJRklDOwogCisgICAgdW5zaWduZWQgdmFsdWUgPSBzdGFy
dDEtPnRyZWVTY29wZSgpICE9IHN0YXJ0Mi0+dHJlZVNjb3BlKCkgPyBET0NVTUVOVF9QT1NJVElP
Tl9ESVNDT05ORUNURUQgfCBET0NVTUVOVF9QT1NJVElPTl9JTVBMRU1FTlRBVElPTl9TUEVDSUZJ
QyA6IDA7CisKICAgICAvLyBXZSBuZWVkIHRvIGZpbmQgYSBjb21tb24gYW5jZXN0b3IgY29udGFp
bmVyLCBhbmQgdGhlbiBjb21wYXJlIHRoZSBpbmRpY2VzIG9mIHRoZSB0d28gaW1tZWRpYXRlIGNo
aWxkcmVuLgogICAgIE5vZGUqIGN1cnJlbnQ7Ci0gICAgZm9yIChjdXJyZW50ID0gc3RhcnQxOyBj
dXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50Tm9kZSgpKQorICAgIGZvciAoY3VycmVu
dCA9IHN0YXJ0MTsgY3VycmVudDsgY3VycmVudCA9IGN1cnJlbnQtPnBhcmVudE9ySG9zdE5vZGUo
KSkKICAgICAgICAgY2hhaW4xLmFwcGVuZChjdXJyZW50KTsKLSAgICBmb3IgKGN1cnJlbnQgPSBz
dGFydDI7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5wYXJlbnROb2RlKCkpCisgICAgZm9y
IChjdXJyZW50ID0gc3RhcnQyOyBjdXJyZW50OyBjdXJyZW50ID0gY3VycmVudC0+cGFyZW50T3JI
b3N0Tm9kZSgpKQogICAgICAgICBjaGFpbjIuYXBwZW5kKGN1cnJlbnQpOwogICAgCiAgICAgLy8g
V2FsayB0aGUgdHdvIGNoYWlucyBiYWNrd2FyZHMgYW5kIGxvb2sgZm9yIHRoZSBmaXJzdCBkaWZm
ZXJlbmNlLgpAQCAtMTk1MSwyOSArMTk1Myw0NSBAQCB1bnNpZ25lZCBzaG9ydCBOb2RlOjpjb21w
YXJlRG9jdW1lbnRQb3NpdGlvbihOb2RlKiBvdGhlck5vZGUpCiAgICAgICAgIGlmIChjaGlsZDEg
IT0gY2hpbGQyKSB7CiAgICAgICAgICAgICAvLyBJZiBvbmUgb2YgdGhlIGNoaWxkcmVuIGlzIGFu
IGF0dHJpYnV0ZSwgaXQgd2lucy4KICAgICAgICAgICAgIGlmIChjaGlsZDEtPm5vZGVUeXBlKCkg
PT0gQVRUUklCVVRFX05PREUpCi0gICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lU
SU9OX0ZPTExPV0lORzsKKyAgICAgICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05f
Rk9MTE9XSU5HIHwgdmFsdWU7CiAgICAgICAgICAgICBpZiAoY2hpbGQyLT5ub2RlVHlwZSgpID09
IEFUVFJJQlVURV9OT0RFKQotICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElP
Tl9QUkVDRURJTkc7CisgICAgICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX1BS
RUNFRElORyB8IHZhbHVlOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAoIWNoaWxkMi0+
bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRfUE9TSVRJT05f
Rk9MTE9XSU5HOwotICAgICAgICAgICAgaWYgKCFjaGlsZDEtPm5leHRTaWJsaW5nKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORzsKLQotICAgICAg
ICAgICAgLy8gT3RoZXJ3aXNlIHdlIG5lZWQgdG8gc2VlIHdoaWNoIG5vZGUgb2NjdXJzIGZpcnN0
LiAgQ3Jhd2wgYmFja3dhcmRzIGZyb20gY2hpbGQyIGxvb2tpbmcgZm9yIGNoaWxkMS4KLSAgICAg
ICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZDItPnByZXZpb3VzU2libGluZygpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpIHsKLSAgICAgICAgICAgICAgICBp
ZiAoY2hpbGQgPT0gY2hpbGQxKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRE9DVU1FTlRf
UE9TSVRJT05fRk9MTE9XSU5HOworI2lmIEVOQUJMRShTSEFET1dfRE9NKQorICAgICAgICAgICAg
Ly8gSWYgb25lIG9mIHRoZSBjaGlsZHJlbiBpcyBhIHNoYWRvdyByb290LCAKKyAgICAgICAgICAg
IGlmIChjaGlsZDEtPmlzU2hhZG93Um9vdCgpIHx8IGNoaWxkMi0+aXNTaGFkb3dSb290KCkpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIWNoaWxkMi0+aXNTaGFkb3dSb290KCkpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgfCB2YWx1ZTsKKyAg
ICAgICAgICAgICAgICBpZiAoIWNoaWxkMS0+aXNTaGFkb3dSb290KCkpCisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfCB2YWx1ZTsKKyAgICAg
ICAgICAgICAgICBmb3IgKFNoYWRvd1Jvb3QqIGNoaWxkID0gdG9TaGFkb3dSb290KGNoaWxkMikt
Pm9sZGVyU2hhZG93Um9vdCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+b2xkZXJTaGFkb3dSb290
KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkID09IGNoaWxkMSkKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgfCB2YWx1
ZTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgeworI2VuZGlmCisgICAg
ICAgICAgICAgICAgaWYgKCFjaGlsZDItPm5leHRTaWJsaW5nKCkpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgfCB2YWx1ZTsKKyAgICAgICAg
ICAgICAgICBpZiAoIWNoaWxkMS0+bmV4dFNpYmxpbmcoKSkKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIERPQ1VNRU5UX1BPU0lUSU9OX1BSRUNFRElORyB8IHZhbHVlOworCisgICAgICAgICAg
ICAgICAgLy8gT3RoZXJ3aXNlIHdlIG5lZWQgdG8gc2VlIHdoaWNoIG5vZGUgb2NjdXJzIGZpcnN0
LiBDcmF3bCBiYWNrd2FyZHMgZnJvbSBjaGlsZDIgbG9va2luZyBmb3IgY2hpbGQxLgorICAgICAg
ICAgICAgICAgIGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZDItPnByZXZpb3VzU2libGluZygpOyBj
aGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlvdXNTaWJsaW5nKCkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGNoaWxkID09IGNoaWxkMSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkcgfCB2YWx1ZTsKKyAgICAgICAgICAgICAgICB9
CisjaWYgRU5BQkxFKFNIQURPV19ET00pCiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICByZXR1
cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HOworI2VuZGlmCisgICAgICAgICAgICByZXR1
cm4gRE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHwgdmFsdWU7CiAgICAgICAgIH0KICAgICB9
CiAgICAgCiAgICAgLy8gVGhlcmUgd2FzIG5vIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgdHdvIHBh
cmVudCBjaGFpbnMsIGkuZS4sIG9uZSB3YXMgYSBzdWJzZXQgb2YgdGhlIG90aGVyLiAgVGhlIHNo
b3J0ZXIKICAgICAvLyBjaGFpbiBpcyB0aGUgYW5jZXN0b3IuCi0gICAgcmV0dXJuIGluZGV4MSA8
IGluZGV4MiA/IAotICAgICAgICAgICAgICAgRE9DVU1FTlRfUE9TSVRJT05fRk9MTE9XSU5HIHwg
RE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIDoKLSAgICAgICAgICAgICAgIERPQ1VNRU5U
X1BPU0lUSU9OX1BSRUNFRElORyB8IERPQ1VNRU5UX1BPU0lUSU9OX0NPTlRBSU5TOworICAgIHJl
dHVybiB2YWx1ZSB8IChpbmRleDEgPCBpbmRleDIgPyAKKyAgICAgICAgRE9DVU1FTlRfUE9TSVRJ
T05fRk9MTE9XSU5HIHwgRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTkVEX0JZIDoKKyAgICAgICAg
RE9DVU1FTlRfUE9TSVRJT05fUFJFQ0VESU5HIHwgRE9DVU1FTlRfUE9TSVRJT05fQ09OVEFJTlMp
OwogfQogCiBGbG9hdFBvaW50IE5vZGU6OmNvbnZlcnRUb1BhZ2UoY29uc3QgRmxvYXRQb2ludCYg
cCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA2YjA1MWVkNWI2NjcwODM0YWE0ZDNjMjZhY2U2MzRmMDM5YWQ4NmU1
Li4xNTQ3ZjdiY2I2NTEzODVhOWFjMmQ1YjZlODE4MzgyYTMyY2I3OTZmIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTItMTEtMjcgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29t
PgorCisgICAgICAgIFtTaGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQg
aW4gZG9jdW1lbnQgb3JkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQt
b3JkZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWw6IEFkZGVkLgorCiAyMDEyLTEyLTA2
ICBEb21pbmljIENvb25leSAgPGRvbWluaWNjQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbGVt
ZW50LnBzZXVkbyBwcm9wZXJ0eSBzaG91bGQgYmUgcHJlZml4ZWQKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXIt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNj
b3BlZC1kb2N1bWVudC1vcmRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmYzODUxYmQ5M2Mz
NDY3MDY2ODc2YTQ3ZGQ5NGFhNWEzNmY1MGY3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtZG9jdW1lbnQtb3JkZXItZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQnVnIDEwMzIzOSAtIFtTaGFkb3cgRE9NXTogc2Nv
cGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQgaW4gZG9jdW1lbnQgb3JkZXIuCitUZXN0IHdoZXRo
ZXIgYSBzY29wZWQgc3R5bGUgaXMgYXBwbGllZCBpbiBkb2N1bWVudCBvcmRlciBvciBub3QuCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoZSBjb2xv
ciBvZiB0aGlzIHRleHQgc2hvdWxkIGJlIGdyZWVuLCBub3QgcmVkLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1kb2N1bWVudC1vcmRl
ci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1k
b2N1bWVudC1vcmRlci5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3NmViYzE1YjJiZTAzY2QyZGJlMzI1Nzk0
YzlmODMzNzBjNmIzOTEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9z
dHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLWRvY3VtZW50LW9yZGVyLmh0bWwKQEAgLTAsMCArMSwz
NiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+CitzcGFuIHsK
KyAgICBjb2xvcjogcGluazsKK30KKworaDMgeworICAgIGNvbG9yOiByZWQ7Cit9Cis8L3N0eWxl
PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIDxkaXY+CisgICAgPHN0eWxl
IHNjb3BlZD4KKyAgICBoMyB7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICB9CisgICAgPC9z
dHlsZT4KKyAgICA8aDMgaWQ9InRhcmdldCI+VGhlIGNvbG9yIG9mIHRoaXMgdGV4dCBzaG91bGQg
YmUgZ3JlZW4sIG5vdCByZWQuPC9oMz4KKyAgPC9kaXY+Cis8c2NyaXB0PgorZGVidWcoJ0J1ZyAx
MDMyMzkgLSBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIGRv
Y3VtZW50IG9yZGVyLicpOworZGVidWcoJ1Rlc3Qgd2hldGhlciBhIHNjb3BlZCBzdHlsZSBpcyBh
cHBsaWVkIGluIGRvY3VtZW50IG9yZGVyIG9yIG5vdC4nKTsKK3ZhciB0YXJnZXQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7CitzaG91bGRCZSgiZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178517</attachid>
            <date>2012-12-10 04:37:39 -0800</date>
            <delta_ts>2012-12-10 22:05:11 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121210213501.patch</filename>
            <type>text/plain</type>
            <size>17315</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmYyMjMyYzJhYTAyYWU1
N2YzNDBhNzNjYzhkZjI0ZTAzZjZhYWY2MS4uOWZjNGIyOTJiMWU1NGU3MDk2MmQ5N2U5NTc5OWZl
ZjRlZmVhNWY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKwogMjAxMi0xMi0wOSAgSm9hbm1hcmll
IERpZ2dzICA8amRpZ2dzQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gYWNjZXNzaWJpbGl0
eS9wbGFjZWhvbGRlci5odG1sIGlzIGZhaWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9SdWxlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5
YTc4YzBmZjkwMzg5YzkwYzQ0ZGE1YTZiOWY1ZmY3YWUyMGM2ZTMxLi5lNjI3YzA1ZjJmZTI2Mzlh
OGM2NDE3M2VmYjczMDAxODFhMzNlYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UnVsZVNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xOTEs
MTAgKzE5MSw2IEBAIHZvaWQgUnVsZVNldDo6YWRkVG9SdWxlU2V0KEF0b21pY1N0cmluZ0ltcGwq
IGtleSwgQXRvbVJ1bGVNYXAmIG1hcCwgY29uc3QgUnVsZURhCiB2b2lkIFJ1bGVTZXQ6OmFkZFJ1
bGUoU3R5bGVSdWxlKiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCBBZGRSdWxlRmxhZ3Mg
YWRkUnVsZUZsYWdzKQogewogICAgIFJ1bGVEYXRhIHJ1bGVEYXRhKHJ1bGUsIHNlbGVjdG9ySW5k
ZXgsIG1fcnVsZUNvdW50KyssIGFkZFJ1bGVGbGFncyk7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2ln
bmVkIGF0aG9zdFJ1bGVTcGVjaWZpY2l0eSA9IDB4MTAwMDAwOwotCi0gICAgaWYgKGFkZFJ1bGVG
bGFncyAmIFJ1bGVJc0hvc3RSdWxlKQotICAgICAgICBydWxlRGF0YS5pbmNyZWFzZVNwZWNpZmlj
aXR5KGF0aG9zdFJ1bGVTcGVjaWZpY2l0eSk7CiAKICAgICBjb2xsZWN0RmVhdHVyZXNGcm9tUnVs
ZURhdGEobV9mZWF0dXJlcywgcnVsZURhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvUnVsZVNldC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBhMmZi
ZWNiYzAwYjJjYTFiNTMyZjQ5NmE5NWMwOTM1MDI2ZmE0ZjdkLi4zN2FmOWQ0NjQ0NjM0YTMzZWFi
Y2JmNjIxZDUyZmI4MGM0MDliYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTM2LDcgKzM2LDYg
QEAgZW51bSBBZGRSdWxlRmxhZ3MgewogICAgIFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
ID0gMSwKICAgICBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgICA9IDEgPDwgMSwKICAgICBS
dWxlSXNJblJlZ2lvblJ1bGUgICAgICAgICAgICA9IDEgPDwgMiwKLSAgICBSdWxlSXNIb3N0UnVs
ZSAgICAgICAgICAgICAgICA9IDEgPDwgMywKIH07CiAKIGNsYXNzIENTU1NlbGVjdG9yOwpAQCAt
NjMsNyArNjIsNiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fbGlua01hdGNoVHlwZTsgfQogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1faGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQog
ICAgIGJvb2wgaXNJblJlZ2lvblJ1bGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5SZWdpb25SdWxl
OyB9Ci0gICAgdm9pZCBpbmNyZWFzZVNwZWNpZmljaXR5KHVuc2lnbmVkIHZhbHVlKSB7IG1fc3Bl
Y2lmaWNpdHkgKz0gdmFsdWU7IH0KIAogICAgIC8vIFRyeSB0byBiYWxhbmNlIGJldHdlZW4gbWVt
b3J5IHVzYWdlICh0aGVyZSBjYW4gYmUgbG90cyBvZiBSdWxlRGF0YSBvYmplY3RzKSBhbmQgZ29v
ZCBmaWx0ZXJpbmcgcGVyZm9ybWFuY2UuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGlt
dW1JZGVudGlmaWVyQ291bnQgPSA0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmlu
ZGV4IGQ4OWQ2NWYzZTY2M2E0NGMwODVjNzJlMGZiYTVkZjZlODViMjM3MGIuLjI4ZjFhNjczZWJk
Nzg1N2Q0ZTk2ZWExODExMzQxNmQzYjA3YjE2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNv
bHZlci5jcHAKQEAgLTcwMyw3ICs3MDMsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRU
cmFuc2Zlck1hdGNoZWRSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0KQogICAgICAgICBpZiAoIW1f
cnVsZUxpc3QpCiAgICAgICAgICAgICBtX3J1bGVMaXN0ID0gU3RhdGljQ1NTUnVsZUxpc3Q6OmNy
ZWF0ZSgpOwogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9tYXRjaGVkUnVsZXMu
c2l6ZSgpOyArK2kpCi0gICAgICAgICAgICBtX3J1bGVMaXN0LT5ydWxlcygpLmFwcGVuZChtX21h
dGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5jcmVhdGVDU1NPTVdyYXBwZXIoKSk7CisgICAgICAgICAg
ICBtX3J1bGVMaXN0LT5ydWxlcygpLmFwcGVuZChtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPnJ1
bGUoKS0+Y3JlYXRlQ1NTT01XcmFwcGVyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC03MTEsMTIgKzcxMSwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRUcmFuc2Zlck1h
dGNoZWRSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0KQogICAgIC8vIEZJWE1FOiBUaGlzIHN1Y2tz
LCB0aGUgaW5zcGVjdG9yIHNob3VsZCBnZXQgdGhlIHN0eWxlIGZyb20gdGhlIHZpc2l0ZWQgc3R5
bGUgaXRzZWxmLgogICAgIGJvb2wgc3dhcFZpc2l0ZWRVbnZpc2l0ZWQgPSBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmZvcmNlUHNldWRvU3RhdGUobV9lbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNl
dWRvVmlzaXRlZCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbWF0Y2hlZFJ1bGVz
LnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIGlmIChtX3N0eWxlICYmIG1fbWF0Y2hlZFJ1bGVzW2ld
LT5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKKyAgICAgICAgaWYgKG1fc3R5
bGUgJiYgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5jb250YWluc1VuY29tbW9uQXR0cmlidXRl
U2VsZWN0b3IoKSkKICAgICAgICAgICAgIG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICB1
bnNpZ25lZCBsaW5rTWF0Y2hUeXBlID0gbV9tYXRjaGVkUnVsZXNbaV0tPmxpbmtNYXRjaFR5cGUo
KTsKKyAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0Y2hlZFJ1bGVzW2ldLnNl
Y29uZC0+bGlua01hdGNoVHlwZSgpOwogICAgICAgICBpZiAoc3dhcFZpc2l0ZWRVbnZpc2l0ZWQg
JiYgbGlua01hdGNoVHlwZSAmJiBsaW5rTWF0Y2hUeXBlICE9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0
Y2hBbGwpCiAgICAgICAgICAgICBsaW5rTWF0Y2hUeXBlID0gKGxpbmtNYXRjaFR5cGUgPT0gU2Vs
ZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0ZWQpID8gU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmsg
OiBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZDsKLSAgICAgICAgYWRkTWF0Y2hlZFByb3Bl
cnRpZXMocmVzdWx0LCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1f
bWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCksIGxpbmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ld
LT5pc0luUmVnaW9uUnVsZSgpKTsKKyAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0
LCBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtX21hdGNo
ZWRSdWxlc1tpXS5zZWNvbmQtPnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9tYXRjaGVkUnVsZXNb
aV0uc2Vjb25kLT5pc0luUmVnaW9uUnVsZSgpKTsKICAgICB9CiB9CiAKQEAgLTcyNiwxMyArNzI2
LDEyIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRjaFJl
c3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0CiAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXIp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3VsdCwgaW5jbHVkZUVt
cHR5UnVsZXMpOworICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2lu
ZyB0aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lz
dGVudCkuCisgICAgYm9vbCBuZWVkQ2hlY2tTY29wZWRTdHlsZSA9IG1fc2NvcGVSZXNvbHZlci0+
aGFzU2NvcGVkU3R5bGVzKCkgJiYgbV9zY29wZVJlc29sdmVyLT5lbnN1cmVTdGFja0NvbnNpc3Rl
bmN5KG1fZWxlbWVudCk7CiAKLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5
bGVzKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBtYXRjaEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1
ZGVFbXB0eVJ1bGVzKTsKIAotICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJh
dmVyc2luZyB0aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGlu
Y29uc2lzdGVudCkuCi0gICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPmVuc3VyZVN0YWNrQ29uc2lz
dGVuY3kobV9lbGVtZW50KSkKKyAgICBpZiAoIW5lZWRDaGVja1Njb3BlZFN0eWxlKQogICAgICAg
ICByZXR1cm47CiAKICAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9lbGVtZW50LT50cmVl
U2NvcGUoKS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKQEAgLTc0OCw4ICs3NDcsOCBAQCB2b2lkIFN0
eWxlUmVzb2x2ZXI6Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwg
Ym9vbCBpbmNsdWRlRW1wdAogICAgICAgICAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPm1hdGNo
ZXNTdHlsZUJvdW5kcyhmcmFtZSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KLSAgICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0
eVJ1bGVzLCBmcmFtZS5tX3Njb3BlKTsKKworICAgICAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhp
bmNsdWRlRW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSwgaSArIDEpOwogICAgICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JS
dWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICAgICAgICAgY29s
bGVjdE1hdGNoaW5nUnVsZXNGb3JSZWdpb24oZnJhbWUubV9ydWxlU2V0LCByZXN1bHQucmFuZ2Vz
LmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7
CiAgICAgfQpAQCAtNzc5LDggKzc3OCw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hIb3N0
UnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcykKICAgICBp
ZiAobWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hP
cHRpb25zIG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMpOwotICAgIG9wdGlvbnMuc2NvcGUgPSBt
X2VsZW1lbnQ7CisgICAgdW5zaWduZWQgc2NvcGVMZXZlbCA9IG1fc2NvcGVSZXNvbHZlci0+c3Rh
Y2tTaXplKCkgKyAxOworICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVz
LCBtX2VsZW1lbnQsIHNjb3BlTGV2ZWwpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGNoZWRS
dWxlcy5zaXplKCk7IGkgPiAwOyAtLWkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKG1h
dGNoZWRSdWxlcy5hdChpLTEpLCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0
LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CiAjZWxzZQpAQCAtODc2LDcgKzg3NSw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0
IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpCiAgICAgICAgICAgICAgICAgICAgIGZpcnN0UnVs
ZUluZGV4ID0gbGFzdFJ1bGVJbmRleDsKIAogICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIHJ1
bGUgdG8gb3VyIGxpc3Qgb2YgbWF0Y2hlZCBydWxlcy4KLSAgICAgICAgICAgICAgICBhZGRNYXRj
aGVkUnVsZSgmcnVsZURhdGEpOworICAgICAgICAgICAgICAgIGFkZE1hdGNoZWRSdWxlKG9wdGlv
bnMuc2NvcGVMZXZlbCwgJnJ1bGVEYXRhKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZE1hdGNoUnVsZShjb29raWUsIHRydWUpOwogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICAgICAgfQpAQCAtODg1LDExICs4ODQsMTYgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVE
YXRhPiogcnVsZXMsIGkKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlUnVs
ZXMoY29uc3QgUnVsZURhdGEqIHIxLCBjb25zdCBSdWxlRGF0YSogcjIpCitzdGF0aWMgaW5saW5l
IGJvb2wgY29tcGFyZVJ1bGVzKFN0eWxlUmVzb2x2ZXI6OlNjb3BlUnVsZURhdGEgcjEsIFN0eWxl
UmVzb2x2ZXI6OlNjb3BlUnVsZURhdGEgcjIpCiB7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkx
ID0gcjEtPnNwZWNpZmljaXR5KCk7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkyID0gcjItPnNw
ZWNpZmljaXR5KCk7Ci0gICAgcmV0dXJuIChzcGVjaWZpY2l0eTEgPT0gc3BlY2lmaWNpdHkyKSA/
IHIxLT5wb3NpdGlvbigpIDwgcjItPnBvc2l0aW9uKCkgOiBzcGVjaWZpY2l0eTEgPCBzcGVjaWZp
Y2l0eTI7CisgICAgaWYgKHIxLmZpcnN0ID09IHIyLmZpcnN0KSB7CisgICAgICAgIHVuc2lnbmVk
IHNwZWNpZmljaXR5MSA9IHIxLnNlY29uZC0+c3BlY2lmaWNpdHkoKTsKKyAgICAgICAgdW5zaWdu
ZWQgc3BlY2lmaWNpdHkyID0gcjIuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAgICByZXR1
cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZpY2l0eTIpID8KKyAgICAgICAgICAgIHIxLnNlY29u
ZC0+cG9zaXRpb24oKSA8IHIyLnNlY29uZC0+cG9zaXRpb24oKSA6CisgICAgICAgICAgICBzcGVj
aWZpY2l0eTEgPCBzcGVjaWZpY2l0eTI7CisgICAgfQorICAgIHJldHVybiByMS5maXJzdCA8IHIy
LmZpcnN0OwogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRNYXRjaGVkUnVsZXMoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKaW5kZXggZGM3YWM4YTJiODQ0MzE0ZGYyZGFmNGI4YmNi
YTliMjg3N2YwY2Q5YS4uYmQ3MjYzYmZjMTg0NjhmN2YwNjcwODZmNDY1ZDZkYjNmMmQ3NWUwNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiTWVkaWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAi
UnVsZUZlYXR1cmUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUg
IlN0eWxlSW5oZXJpdGVkRGF0YS5oIgpAQCAtMzA1LDcgKzMwNiw3IEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIGFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZVRvQWRqdXN0LCBSZW5k
ZXJTdHlsZSogcGFyZW50U3R5bGUsIEVsZW1lbnQqKTsKIAotICAgIHZvaWQgYWRkTWF0Y2hlZFJ1
bGUoY29uc3QgUnVsZURhdGEqIHJ1bGUpIHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKHJ1bGUpOyB9
CisgICAgdm9pZCBhZGRNYXRjaGVkUnVsZSh1bnNpZ25lZCBzY29wZSwgY29uc3QgUnVsZURhdGEq
IHJ1bGUpIHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKFNjb3BlUnVsZURhdGEoc2NvcGUsIHJ1bGUp
KTsgfQogCiAgICAgc3RydWN0IE1hdGNoUmFuZ2VzIHsKICAgICAgICAgTWF0Y2hSYW5nZXMoKSA6
IGZpcnN0VUFSdWxlKC0xKSwgbGFzdFVBUnVsZSgtMSksIGZpcnN0QXV0aG9yUnVsZSgtMSksIGxh
c3RBdXRob3JSdWxlKC0xKSwgZmlyc3RVc2VyUnVsZSgtMSksIGxhc3RVc2VyUnVsZSgtMSkgeyB9
CkBAIC0zNDEsOSArMzQyLDEwIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHN0cnVjdCBNYXRj
aE9wdGlvbnMgewotICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywg
Y29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVt
cHR5UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMpIHsgfQorICAgICAgICBNYXRjaE9wdGlvbnMoYm9v
bCBpbmNsdWRlRW1wdHlSdWxlcywgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwLCB1bnNp
Z25lZCBzY29wZUxldmVsID0gMCkgOiBzY29wZShzY29wZSksIGluY2x1ZGVFbXB0eVJ1bGVzKGlu
Y2x1ZGVFbXB0eVJ1bGVzKSwgc2NvcGVMZXZlbChzY29wZUxldmVsKSB7IH0KICAgICAgICAgY29u
c3QgQ29udGFpbmVyTm9kZSogc2NvcGU7CiAgICAgICAgIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXM7
CisgICAgICAgIHVuc2lnbmVkIHNjb3BlTGV2ZWw7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lk
IGFkZE1hdGNoZWRQcm9wZXJ0aWVzKE1hdGNoUmVzdWx0JiwgY29uc3QgU3R5bGVQcm9wZXJ0eVNl
dCogcHJvcGVydGllcywgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBT
ZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsLCBib29sIGluUmVnaW9uUnVsZSA9IGZhbHNlKTsKQEAg
LTQyNiw2ICs0MjgsOCBAQCBwdWJsaWM6CiAgICAgQ1NTVG9TdHlsZU1hcCogc3R5bGVNYXAoKSB7
IHJldHVybiAmbV9zdHlsZU1hcDsgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1v
cnlPYmplY3RJbmZvKikgY29uc3Q7CisKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwg
Y29uc3QgUnVsZURhdGEqPiBTY29wZVJ1bGVEYXRhOwogICAgIAogcHJpdmF0ZToKICAgICBzdGF0
aWMgUmVuZGVyU3R5bGUqIHNfc3R5bGVOb3RZZXRBdmFpbGFibGU7CkBAIC00NzMsNyArNDc3LDcg
QEAgcHJpdmF0ZToKIAogICAgIC8vIEEgYnVmZmVyIHVzZWQgdG8gaG9sZCB0aGUgc2V0IG9mIG1h
dGNoZWQgcnVsZXMgZm9yIGFuIGVsZW1lbnQsIGFuZCBhIHRlbXBvcmFyeSBidWZmZXIgdXNlZCBm
b3IKICAgICAvLyBtZXJnZSBzb3J0aW5nLgotICAgIFZlY3Rvcjxjb25zdCBSdWxlRGF0YSosIDMy
PiBtX21hdGNoZWRSdWxlczsKKyAgICBWZWN0b3I8U2NvcGVSdWxlRGF0YSwgMzI+IG1fbWF0Y2hl
ZFJ1bGVzOwogCiAgICAgUmVmUHRyPFN0YXRpY0NTU1J1bGVMaXN0PiBtX3J1bGVMaXN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDc2ODE3MjUzMWVi
M2EyMDVlNWVmMGJiMzQyY2IwYzhlMjliZmNiMmQuLjczMDA1MGQ2YzRkODE3MmU1NTRiZTg2MDI4
ZDliYjU3YzdiMTJiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3Bl
UmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIu
Y3BwCkBAIC0xODMsNyArMTgzLDcgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RS
dWxlKFN0eWxlUnVsZUhvc3QqIGhvc3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2UKIAogICAgIGNv
bnN0IFZlY3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgY2hpbGRSdWxlcyA9IGhvc3RSdWxl
LT5jaGlsZFJ1bGVzKCk7CiAgICAgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncyA9IGhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4gPyBSdWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA6IFJ1bGVI
YXNOb1NwZWNpYWxTdGF0ZTsKLSAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxl
RmxhZ3M+KGFkZFJ1bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvciB8IFJ1bGVJ
c0hvc3RSdWxlKTsKKyAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxlRmxhZ3M+
KGFkZFJ1bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3Rvcik7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGNoaWxkUnVsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3R5
bGVSdWxlQmFzZSogaG9zdFN0eWxpbmdSdWxlID0gY2hpbGRSdWxlc1tpXS5nZXQoKTsKICAgICAg
ICAgaWYgKGhvc3RTdHlsaW5nUnVsZS0+aXNTdHlsZVJ1bGUoKSkKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMmQ1NzY5MTQ2
ZGM2NzI5Y2EwNjEyMmIyZTE0NzdkODBmNWMzNmU5Li44ZjM4Y2U4MWViNzIzNjM5MzI1NDI2OGYx
MWU3YTk1NzczOTE2YWM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMTItMTAgIFRha2Fz
aGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFtTaGFkb3cgRE9NXTog
c2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQgaW4gdGhlIGNhc2NhZGUgb3JkZXIuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0
eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0ZWQuaHRtbDogQWRk
ZWQuCisKIDIwMTItMTItMDkgIEpvYW5tYXJpZSBEaWdncyAgPGpkaWdnc0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIGFjY2Vzc2liaWxpdHkvcGxhY2Vob2xkZXIuaHRtbCBpcyBmYWlsaW5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2Nv
cGVkLW5lc3RlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29w
ZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDA5YmYzYTQ0
OTM0M2MyMTQ3NzFhNDBiYjQ1YTY3ZGRkNjFiNTUxYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0IHdoZXRoZXIgc2NvcGVkIHN0eWxlcyBhcmUgYXBw
bGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuCitJZiB0aGlzIHRlc3QgcGFzc2VzLCBy
dWxlcyB3aGljaCBhcmUgZGVjbGFyZWQgaW4gZGVzY2VuZGFudCBzY29waW5nIGVsZW1lbnQgYXJl
IGFwcGxpZWQgdG8gYSB0YXJnZXQgZWxlbWVudC4KK2MuZi4gaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwMzIzOQorT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVk
IHRvIHRoZSB0YXJnZXQuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29s
b3IgaXMgInJnYigyNTUsIDAsIDApIgorQSBuZXcgc2NvcGVkIHN0eWxlIGlzIGluc2VydGVkIGlu
dG8gdGhlIGdyYW5kcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSBjbGFzcyBydWxlIGluIHRo
ZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lucyBhbiBpZCBydWxlIGluIGRvY3VtZW50LnN0eWxl
LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJyZ2IoMjU1
LCAyNTUsIDApIgorQSBuZXcgc2NvcGVkIHN0eWxlIGlzIGluc2VydGVkIGludG8gdGhlIHBhcmVu
dCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgdGFnIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3BlZCBz
dHlsZSB3aW5zIGFuIGlkIHJ1bGUgYW5kIGEgY2xhc3MgcnVsZSBpbiBleGlzdGluZyBzdHlsZXMu
CitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigwLCAw
LCAyNTUpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1z
Y29wZWQtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhhNzJjZDBjYjFkOGVjODg0MDc5MDIz
ODc3NDY2NzY3ZTEwYTQ0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNDYgQEAK
KzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQgeworICAg
IGNvbG9yOiByZWQ7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVudCI+Cisg
ICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAgPC9kaXY+
CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIgc2NvcGVk
IHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7CitkZWJ1
ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGluIGRlc2Nl
bmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1lbnQuIik7
CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
MjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7
CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJnZXQuIik7
CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIsICcicmdi
KDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0gdHJ1ZTsK
K3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjogeWVsbG93
OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVuZENoaWxk
KHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNl
cnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xhc3MgcnVs
ZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBkb2N1bWVu
dC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNv
bG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVkID0gdHJ1
ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7IH0iOwor
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yUGFy
ZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFy
ZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVk
IHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxl
cy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwg
JyJyZ2IoMCwgMCwgMjU1KSInKTsKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jl
c291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178716</attachid>
            <date>2012-12-10 22:05:16 -0800</date>
            <delta_ts>2012-12-10 22:21:32 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121211150237.patch</filename>
            <type>text/plain</type>
            <size>23361</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU4MTIwNjNkOTNiYWRl
NjNkMDI4YjM1NDYwZWJjYmNlMTIwOGU1Yy4uYjE1YTcxMTEwMjNmODI4MDQ5YWYzMTA4YTg5YjJj
NTQ3ZTBlYjNhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTEwICBLeXVuZ1RhZSBLaW0g
IDxrdGYua2ltQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeCBhZnRlciByMTM3MjIx
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZm
N2FlMjBjNmUzMS4uZTYyN2MwNWYyZmUyNjM5YThjNjQxNzNlZmI3MzAwMTgxYTMzZWJjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMTkxLDEwICsxOTEsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFk
ZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0
IFJ1bGVEYQogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQg
c2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKIHsKICAgICBSdWxlRGF0
YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1bGVDb3VudCsrLCBhZGRSdWxlRmxh
Z3MpOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBhdGhvc3RSdWxlU3BlY2lmaWNpdHkgPSAw
eDEwMDAwMDsKLQotICAgIGlmIChhZGRSdWxlRmxhZ3MgJiBSdWxlSXNIb3N0UnVsZSkKLSAgICAg
ICAgcnVsZURhdGEuaW5jcmVhc2VTcGVjaWZpY2l0eShhdGhvc3RSdWxlU3BlY2lmaWNpdHkpOwog
CiAgICAgY29sbGVjdEZlYXR1cmVzRnJvbVJ1bGVEYXRhKG1fZmVhdHVyZXMsIHJ1bGVEYXRhKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggYTJmYmVjYmMwMGIyY2ExYjUzMmY0OTZhOTVjMDkzNTAy
NmZhNGY3ZC4uMzdhZjlkNDY0NDYzNGEzM2VhYmNiZjYyMWQ1MmZiODBjNDA5YmE5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5oCkBAIC0zNiw3ICszNiw2IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsKICAgICBS
dWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IDEsCiAgICAgUnVsZUNhblVzZUZhc3RDaGVj
a1NlbGVjdG9yICAgPSAxIDw8IDEsCiAgICAgUnVsZUlzSW5SZWdpb25SdWxlICAgICAgICAgICAg
PSAxIDw8IDIsCi0gICAgUnVsZUlzSG9zdFJ1bGUgICAgICAgICAgICAgICAgPSAxIDw8IDMsCiB9
OwogCiBjbGFzcyBDU1NTZWxlY3RvcjsKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGxpbmtNYXRjaFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2xpbmtNYXRjaFR5cGU7IH0K
ICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2hh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW47IH0KICAgICBib29sIGlzSW5SZWdpb25SdWxlKCkgY29u
c3QgeyByZXR1cm4gbV9pc0luUmVnaW9uUnVsZTsgfQotICAgIHZvaWQgaW5jcmVhc2VTcGVjaWZp
Y2l0eSh1bnNpZ25lZCB2YWx1ZSkgeyBtX3NwZWNpZmljaXR5ICs9IHZhbHVlOyB9CiAKICAgICAv
LyBUcnkgdG8gYmFsYW5jZSBiZXR3ZWVuIG1lbW9yeSB1c2FnZSAodGhlcmUgY2FuIGJlIGxvdHMg
b2YgUnVsZURhdGEgb2JqZWN0cykgYW5kIGdvb2QgZmlsdGVyaW5nIHBlcmZvcm1hbmNlLgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50ID0gNDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkODlkNjVmM2U2NjNhNDRjMDg1YzcyZTBm
YmE1ZGY2ZTg1YjIzNzBiLi4wMmFmZjMyYjU3YTEwODBlMzMyYzJjM2FmNzdmMGE1Mjg0ZjY0NmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03MDMsNyArNzAzLDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1
bHQmIHJlc3VsdCkKICAgICAgICAgaWYgKCFtX3J1bGVMaXN0KQogICAgICAgICAgICAgbV9ydWxl
TGlzdCA9IFN0YXRpY0NTU1J1bGVMaXN0OjpjcmVhdGUoKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fbWF0Y2hlZFJ1bGVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9y
dWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQobV9tYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+Y3JlYXRl
Q1NTT01XcmFwcGVyKCkpOworICAgICAgICAgICAgbV9ydWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQo
bV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCktPmNyZWF0ZUNTU09NV3JhcHBlcigpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzExLDEyICs3MTEsMTIgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3Vs
dCkKICAgICAvLyBGSVhNRTogVGhpcyBzdWNrcywgdGhlIGluc3BlY3RvciBzaG91bGQgZ2V0IHRo
ZSBzdHlsZSBmcm9tIHRoZSB2aXNpdGVkIHN0eWxlIGl0c2VsZi4KICAgICBib29sIHN3YXBWaXNp
dGVkVW52aXNpdGVkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRl
KG1fZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX21hdGNoZWRSdWxlcy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bV9zdHlsZSAmJiBtX21hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNl
bGVjdG9yKCkpCisgICAgICAgIGlmIChtX3N0eWxlICYmIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29u
ZC0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0
Y2hlZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCk7CisgICAgICAgIHVuc2lnbmVkIGxpbmtNYXRj
aFR5cGUgPSBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmxpbmtNYXRjaFR5cGUoKTsKICAgICAg
ICAgaWYgKHN3YXBWaXNpdGVkVW52aXNpdGVkICYmIGxpbmtNYXRjaFR5cGUgJiYgbGlua01hdGNo
VHlwZSAhPSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKQogICAgICAgICAgICAgbGlua01hdGNo
VHlwZSA9IChsaW5rTWF0Y2hUeXBlID09IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkKSA/
IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rIDogU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0
ZWQ7Ci0gICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNb
aV0tPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBsaW5r
TWF0Y2hUeXBlLCBtX21hdGNoZWRSdWxlc1tpXS0+aXNJblJlZ2lvblJ1bGUoKSk7CisgICAgICAg
IGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5y
dWxlKCktPnByb3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCksIGxp
bmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+aXNJblJlZ2lvblJ1bGUoKSk7
CiAgICAgfQogfQogCkBAIC03MjYsMTMgKzcyNiwxNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1h
dGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1w
dAogICAgIGlmICghbV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtYXRj
aEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICAvLyBNYXRjaCBzY29w
ZWQgYXV0aG9yIHJ1bGVzIGJ5IHRyYXZlcnNpbmcgdGhlIHNjb3BlZCBlbGVtZW50IHN0YWNrIChy
ZWJ1aWxkIGl0IGlmIGl0IGdvdCBpbmNvbnNpc3RlbnQpLgorICAgIGJvb2wgbmVlZENoZWNrU2Nv
cGVkU3R5bGUgPSBtX3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpICYmIG1fc2NvcGVS
ZXNvbHZlci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpOwogCi0gICAgaWYgKCFt
X3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpKQotICAgICAgICByZXR1cm47CisgICAg
Ly8gTWF0Y2hIb3N0UnVsZXMgdXNlcyBudW1iZXIgb2Ygc2NvcGVkIFJ1bGVTZXRzIHdoaWNoIG1p
Z2h0IGJlIGFwcGxpZWQKKyAgICAvLyB0byB0aGUgbV9lbGVtZW50LiBTbyBuZWVkIHRvIGludm9r
ZSBhZnRlciBlbnN1cmVTdGFja0NvbnNpc3RlbmN5LgorICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3Vs
dCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogCi0gICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxl
cyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBp
dCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+ZW5zdXJlU3Rh
Y2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQorICAgIGlmICghbmVlZENoZWNrU2NvcGVkU3R5bGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMgPSBtX2VsZW1l
bnQtPnRyZWVTY29wZSgpLT5hcHBseUF1dGhvclN0eWxlcygpOwpAQCAtNzQ4LDggKzc0OSw4IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRjaFJlc3VsdCYg
cmVzdWx0LCBib29sIGluY2x1ZGVFbXB0CiAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNvbHZl
ci0+bWF0Y2hlc1N0eWxlQm91bmRzKGZyYW1lKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQotICAgICAgICAgICAKLSAgICAgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5j
bHVkZUVtcHR5UnVsZXMsIGZyYW1lLm1fc2NvcGUpOworCisgICAgICAgIE1hdGNoT3B0aW9ucyBv
cHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlLCBpICsgMSk7CiAgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAg
ICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihmcmFtZS5tX3J1bGVTZXQsIHJlc3Vs
dC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBv
cHRpb25zKTsKICAgICB9CkBAIC03NzksOCArNzgwLDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpt
YXRjaEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVz
KQogICAgIGlmIChtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcyk7Ci0gICAgb3B0aW9ucy5z
Y29wZSA9IG1fZWxlbWVudDsKKyAgICB1bnNpZ25lZCBzY29wZUxldmVsID0gbV9zY29wZVJlc29s
dmVyLT5zdGFja1NpemUoKSArIDE7CisgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVkZUVt
cHR5UnVsZXMsIG1fZWxlbWVudCwgc2NvcGVMZXZlbCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5n
UnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxl
LCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICNlbHNlCkBAIC04NzYs
NyArODc3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGkKICAgICAgICAgICAgICAgICAgICAg
Zmlyc3RSdWxlSW5kZXggPSBsYXN0UnVsZUluZGV4OwogCiAgICAgICAgICAgICAgICAgLy8gQWRk
IHRoaXMgcnVsZSB0byBvdXIgbGlzdCBvZiBtYXRjaGVkIHJ1bGVzLgotICAgICAgICAgICAgICAg
IGFkZE1hdGNoZWRSdWxlKCZydWxlRGF0YSk7CisgICAgICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1
bGUob3B0aW9ucy5zY29wZUxldmVsLCAmcnVsZURhdGEpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgdHJ1ZSk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC04ODUsMTEgKzg4NiwxNiBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0
b3I8UnVsZURhdGE+KiBydWxlcywgaQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIGNv
bXBhcmVSdWxlcyhjb25zdCBSdWxlRGF0YSogcjEsIGNvbnN0IFJ1bGVEYXRhKiByMikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSBy
MSwgU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSByMikKIHsKLSAgICB1bnNpZ25lZCBzcGVj
aWZpY2l0eTEgPSByMS0+c3BlY2lmaWNpdHkoKTsKLSAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIg
PSByMi0+c3BlY2lmaWNpdHkoKTsKLSAgICByZXR1cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZp
Y2l0eTIpID8gcjEtPnBvc2l0aW9uKCkgPCByMi0+cG9zaXRpb24oKSA6IHNwZWNpZmljaXR5MSA8
IHNwZWNpZmljaXR5MjsKKyAgICBpZiAocjEuZmlyc3QgPT0gcjIuZmlyc3QpIHsKKyAgICAgICAg
dW5zaWduZWQgc3BlY2lmaWNpdHkxID0gcjEuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAg
ICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIgPSByMi5zZWNvbmQtPnNwZWNpZmljaXR5KCk7CisgICAg
ICAgIHJldHVybiAoc3BlY2lmaWNpdHkxID09IHNwZWNpZmljaXR5MikgPworICAgICAgICAgICAg
cjEuc2Vjb25kLT5wb3NpdGlvbigpIDwgcjIuc2Vjb25kLT5wb3NpdGlvbigpIDoKKyAgICAgICAg
ICAgIHNwZWNpZmljaXR5MSA8IHNwZWNpZmljaXR5MjsKKyAgICB9CisgICAgcmV0dXJuIHIxLmZp
cnN0IDwgcjIuZmlyc3Q7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29ydE1hdGNoZWRSdWxl
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBkYzdhYzhhMmI4NDQzMTRkZjJk
YWY0YjhiY2JhOWIyODc3ZjBjZDlhLi5iZDcyNjNiZmMxODQ2OGY3ZjA2NzA4NmY0NjVkNmRiM2Yy
ZDc1ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSdWxlRmVhdHVyZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCkBAIC0zMDUsNyArMzA2LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlVG9BZGp1
c3QsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgRWxlbWVudCopOwogCi0gICAgdm9pZCBhZGRN
YXRjaGVkUnVsZShjb25zdCBSdWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQo
cnVsZSk7IH0KKyAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKHVuc2lnbmVkIHNjb3BlLCBjb25zdCBS
dWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQoU2NvcGVSdWxlRGF0YShzY29w
ZSwgcnVsZSkpOyB9CiAKICAgICBzdHJ1Y3QgTWF0Y2hSYW5nZXMgewogICAgICAgICBNYXRjaFJh
bmdlcygpIDogZmlyc3RVQVJ1bGUoLTEpLCBsYXN0VUFSdWxlKC0xKSwgZmlyc3RBdXRob3JSdWxl
KC0xKSwgbGFzdEF1dGhvclJ1bGUoLTEpLCBmaXJzdFVzZXJSdWxlKC0xKSwgbGFzdFVzZXJSdWxl
KC0xKSB7IH0KQEAgLTM0MSw5ICszNDIsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgc3Ry
dWN0IE1hdGNoT3B0aW9ucyB7Ci0gICAgICAgIE1hdGNoT3B0aW9ucyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApIDogc2NvcGUoc2NvcGUpLCBp
bmNsdWRlRW1wdHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykgeyB9CisgICAgICAgIE1hdGNoT3B0
aW9ucyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9
IDAsIHVuc2lnbmVkIHNjb3BlTGV2ZWwgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5
UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMpLCBzY29wZUxldmVsKHNjb3BlTGV2ZWwpIHsgfQogICAg
ICAgICBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZTsKICAgICAgICAgYm9vbCBpbmNsdWRlRW1w
dHlSdWxlczsKKyAgICAgICAgdW5zaWduZWQgc2NvcGVMZXZlbDsKICAgICB9OwogCiAgICAgc3Rh
dGljIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNo
VHlwZSA9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFs
c2UpOwpAQCAtNDI2LDYgKzQyOCw4IEBAIHB1YmxpYzoKICAgICBDU1NUb1N0eWxlTWFwKiBzdHls
ZU1hcCgpIHsgcmV0dXJuICZtX3N0eWxlTWFwOyB9CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKworICAgIHR5cGVkZWYgc3RkOjpwYWlyPHVu
c2lnbmVkLCBjb25zdCBSdWxlRGF0YSo+IFNjb3BlUnVsZURhdGE7CiAgICAgCiBwcml2YXRlOgog
ICAgIHN0YXRpYyBSZW5kZXJTdHlsZSogc19zdHlsZU5vdFlldEF2YWlsYWJsZTsKQEAgLTQ3Myw3
ICs0NzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBz
ZXQgb2YgbWF0Y2hlZCBydWxlcyBmb3IgYW4gZWxlbWVudCwgYW5kIGEgdGVtcG9yYXJ5IGJ1ZmZl
ciB1c2VkIGZvcgogICAgIC8vIG1lcmdlIHNvcnRpbmcuCi0gICAgVmVjdG9yPGNvbnN0IFJ1bGVE
YXRhKiwgMzI+IG1fbWF0Y2hlZFJ1bGVzOworICAgIFZlY3RvcjxTY29wZVJ1bGVEYXRhLCAzMj4g
bV9tYXRjaGVkUnVsZXM7CiAKICAgICBSZWZQdHI8U3RhdGljQ1NTUnVsZUxpc3Q+IG1fcnVsZUxp
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNzY4
MTcyNTMxZWIzYTIwNWU1ZWYwYmIzNDJjYjBjOGUyOWJmY2IyZC4uNzMwMDUwZDZjNGQ4MTcyZTU1
NGJlODYwMjhkOWJiNTdjN2IxMmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2NvcGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVS
ZXNvbHZlci5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6
YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQog
CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVzID0g
aG9zdFJ1bGUtPmNoaWxkUnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzID0g
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
IDogUnVsZUhhc05vU3BlY2lhbFN0YXRlOwotICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0
PEFkZFJ1bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9y
IHwgUnVsZUlzSG9zdFJ1bGUpOworICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0PEFkZFJ1
bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRSdWxlcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBTdHlsZVJ1bGVCYXNlKiBob3N0U3R5bGluZ1J1bGUgPSBjaGlsZFJ1bGVzW2ldLmdldCgp
OwogICAgICAgICBpZiAoaG9zdFN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggZDZlZDNhOTczMzFkNjc5MjY0Yjcx
N2NkNjg2MGMxZWY5Y2Q2MDZhZS4uYTgxZjNiZDg0ZDBkY2I2NmRmNmIzNjVkZGEyNGVlNmYzZGQy
MGQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC0xNDAs
OSArMTQwLDExIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoYm9vbCBzY29wZWQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotCiAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQo
KTsKLSAgICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGlmIChzY29wZS0+aXNT
aGFkb3dSb290KCkpCisgICAgICAgIHNjb3BlLT5zaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKKyAgICBlbHNlCisgICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+cGFyc2luZygpICYmIGRvY3Vt
ZW50KCktPnJlbmRlcmVyKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXJDaGFu
Z2VkKERlZmVyUmVjYWxjU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWJkMzlmNjI1YjMzZmI0NzFhYTA0Zjc1
ODgxYWE4NmQwY2RhZDUxZi4uYzNjN2Q2YzkwZTYwMmQ0NTlhYjRlYzg1YTc0NWIwZTlmNjA2YjY5
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTEwICBUYWthc2hpIFNha2Ftb3RvICA8
dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMg
YXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGlu
Zy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4t
Zmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0
ZXN0J3MgZXhwZWN0YXRpb24uCisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1l
bnQgaXMgOnJvb3QgYnV0IHNjb3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBp
cyBhIGRlc2NlbmRhbnQgZWxlbWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2lu
LgorCiAyMDEyLTEyLTEwICBBZGFtIEtsZWluICA8YWRhbWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEZpeCBleHBlY3RhdGlvbnMgbGludCBlcnJvcnMgaW4gcjEzNzIzMQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3Bl
ZC1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNzMzMzBhMTAwOTI4NjU3ZTNhM2Uz
MGRlOWE4ZDhiYzk1NDAzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwxNyBAQAorVGVzdCB3aGV0aGVyIHNjb3BlZCBzdHlsZXMgYXJlIGFwcGxpZWQgaW4gdGhlIGNh
c2NhZGUgb3JkZXIgb3Igbm90LgorSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJl
IGRlY2xhcmVkIGluIGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEg
dGFyZ2V0IGVsZW1lbnQuCitjLmYuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDMyMzkKK09ubHkgZG9jdW1lbnQuc3R5bGUgaXMgYXBwbGllZCB0byB0aGUgdGFyZ2V0
LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJyZ2IoMjU1
LCAwLCAwKSIKK0EgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBh
cmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xhc3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2Nv
cGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBkb2N1bWVudC5zdHlsZS4KK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMjU1LCAwKSIKK0Eg
bmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUg
dGFyZ2V0LiBBIHRhZyBydWxlIGluIHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lucyBhbiBp
ZCBydWxlIGFuZCBhIGNsYXNzIHJ1bGUgaW4gZXhpc3Rpbmcgc3R5bGVzLgorUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK1Rlc3Qg
YSBzcGFuIGluIHNvbWUgc2hhZG93IGRvbSB0cmVlLiBTaW5jZSB0aGUgc3BhbidzIGhvc3Qgbm9k
ZSBpcyB0aGUgYWJvdmUgdGFyZ2V0LCB3ZSBoYXZlIHRvIHNlZSBhbGwgaW5zZXJ0ZWQgc2NvcGVk
IHN0eWxlcyBhbmQgYW4gYXV0aG9yIHN0eWxlIHRvIGZpbmQgd2hldGhlciB0aGUgc3R5bGVzIGhh
dmUgYW55IG1hdGNoZWQgcnVsZXMgb3Igbm90LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAwLCAyNTUpIgorQXBwZW5kIGEgbmV3
IHN0eWxlIGVsZW1lbnQgdG8gdGhlIHNoYWRvdyByb290LiBUaGUgc3R5bGUncyBzY29waW5nIGVs
ZW1lbnQgaXMgdGhlIHNoYWRvdyByb290LiBSdWxlcyBpbiB0aGUgc3R5bGUgc2hvdWxkIG92ZXJy
aWRlIG90aGVyIHJ1bGVzIGluIGFzY2VuZGFudCAoc2NvcGVkKSBzdHlsZXMuCitQQVNTIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciBpcyAicmdiKDAsIDI1NSwg
MCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3Bl
ZC1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1z
Y29wZWQtbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1NjMxNGE4MDk3OThkOTYwM2ZmYjA4MGY1
Y2IyZjA0ZGM4YTRjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0
eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw2NCBAQAorPCFk
b2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorI3RhcmdldCwgI3RhcmdldElu
U2hhZG93IHsKKyAgICBjb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJncmFuZHBhcmVudCI+CisgICAg
PGRpdiBpZD0icGFyZW50Ij4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0YXJnZXQi
Pjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0PgorZGVidWco
IlRlc3Qgd2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9y
ZGVyIG9yIG5vdC4iKTsKK2RlYnVnKCJJZiB0aGlzIHRlc3QgcGFzc2VzLCBydWxlcyB3aGljaCBh
cmUgZGVjbGFyZWQgaW4gZGVzY2VuZGFudCBzY29waW5nIGVsZW1lbnQgYXJlIGFwcGxpZWQgdG8g
YSB0YXJnZXQgZWxlbWVudC4iKTsKK2RlYnVnKCJjLmYuIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkiKTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2RlYnVnKCJPbmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxp
ZWQgdG8gdGhlIHRhcmdldC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAwLCAwKSInKTsKKwordmFyIHN0eWxlRm9yR3JhbmRw
YXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JHcmFuZHBh
cmVudC5zY29wZWQgPSB0cnVlOworc3R5bGVGb3JHcmFuZHBhcmVudC5pbm5lckhUTUwgPSAiLnRh
cmdldCB7IGNvbG9yOiB5ZWxsb3c7IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImdyYW5k
cGFyZW50IikuYXBwZW5kQ2hpbGQoc3R5bGVGb3JHcmFuZHBhcmVudCk7CitkZWJ1ZygiQSBuZXcg
c2NvcGVkIHN0eWxlIGlzIGluc2VydGVkIGludG8gdGhlIGdyYW5kcGFyZW50IG5vZGUgb2YgdGhl
IHRhcmdldC4gQSBjbGFzcyBydWxlIGluIHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lucyBh
biBpZCBydWxlIGluIGRvY3VtZW50LnN0eWxlLiIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHRhcmdldCkuY29sb3IiLCAnInJnYigyNTUsIDI1NSwgMCkiJyk7CisKK3ZhciBz
dHlsZUZvclBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUZv
clBhcmVudC5zY29wZWQgPSB0cnVlOworc3R5bGVGb3JQYXJlbnQuaW5uZXJIVE1MID0gInNwYW4g
eyBjb2xvcjogYmx1ZTsgfSI7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50IikuYXBw
ZW5kQ2hpbGQoc3R5bGVGb3JQYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBpcyBp
bnNlcnRlZCBpbnRvIHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgdGFyZ2V0LiBBIHRhZyBydWxlIGlu
IHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lucyBhbiBpZCBydWxlIGFuZCBhIGNsYXNzIHJ1
bGUgaW4gZXhpc3Rpbmcgc3R5bGVzLiIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc2hhZG93Um9v
dCA9IHRhcmdldC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290LmlubmVySFRN
TCA9ICc8c3BhbiBpZD0idGFyZ2V0SW5TaGFkb3ciIGNsYXNzPSJ0YXJnZXQiPjwvc3Bhbj4nOwor
dmFyIHRhcmdldEluU2hhZG93ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0SW5T
aGFkb3ciKTsKK3NoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOworLy8gRGlzYWJs
ZSBzdHlsZS1pbmhlcml0YW5jZSBmcm9tIGl0cyBzaGFkb3cgaG9zdCB0byBjaGVjayB3aGV0aGVy
IHJ1bGVzIG1hdGNoCisvLyB0aGUgc3BhbiBpbiB0aGUgc2hhZG93IHRyZWUgb3Igbm90Lgorc2hh
ZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworZGVidWcoIlRlc3QgYSBzcGFu
IGluIHNvbWUgc2hhZG93IGRvbSB0cmVlLiBTaW5jZSB0aGUgc3BhbidzIGhvc3Qgbm9kZSBpcyB0
aGUgYWJvdmUgdGFyZ2V0LCB3ZSBoYXZlIHRvIHNlZSBhbGwgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxl
cyBhbmQgYW4gYXV0aG9yIHN0eWxlIHRvIGZpbmQgd2hldGhlciB0aGUgc3R5bGVzIGhhdmUgYW55
IG1hdGNoZWQgcnVsZXMgb3Igbm90LiIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciIsICcicmdiKDAsIDAsIDI1NSkiJyk7CisKK3ZhciBz
dHlsZUluU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlSW5T
aGFkb3cuaW5uZXJIVE1MID0gInNwYW4geyBjb2xvcjogbGltZTsgfSI7CitzaGFkb3dSb290LmFw
cGVuZENoaWxkKHN0eWxlSW5TaGFkb3cpOworZGVidWcoIkFwcGVuZCBhIG5ldyBzdHlsZSBlbGVt
ZW50IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRo
ZSBzaGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBy
dWxlcyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLiIpOworc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciIsICcicmdiKDAsIDI1NSwgMCki
Jyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4
cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZs
b3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRtbAppbmRleCAxMDMzOWMxNjM3
MmU3NWY3OGQzNGJmY2RlMWI4NDlhYzY2OWRhYWE0Li4wYjgwYzYzOWIxM2YzOTMyMGFiMTVmMjYy
NDk4MGI3NWYwZGViNDc0IDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5
bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJp
ZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRtbApAQCAtMzIsOCArMzIsOCBAQAogCVBhcnRp
YWwgb3ZlcmxhcCwgQHJlZ2lvbiBtb3JlIHNwZWNpZmljIHRoYW4gJmx0O3N0eWxlIHNjb3BlZCZn
dDsgKEByZWdpb24gc3R5bGUgaGFzIHJ1bGVzIGZvciBjbGFzcyBhbmQgaWQsIHNjb3BlZCBzdHls
ZSBoYXMgcnVsZSBmb3IgJmx0O3AmZ3Q7KQ0KIAk8ZGl2IGNsYXNzPSdjb250YWluZXInIGlkPSdy
MSc+DQogCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBj
bGFzcz0nbGltZSc+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCi0JCTxwIGNsYXNzPSdncmVlbic+
U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxpbmUg
b2YgdGV4dDwvcD4NCisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4N
CiAJPC9kaXY+DQogCVBhcnRpYWwgb3ZlcmxhcCwgJmx0O3N0eWxlIHNjb3BlZCZndDsgbW9yZSBz
cGVjaWZpYyB0aGFuIEByZWdpb24gKEByZWdpb24gc3R5bGUgaGFzIHJ1bGUgZm9yICZsdDtwJmd0
Oywgc2NvcGVkIHN0eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkKQ0KIAk8ZGl2IGNsYXNz
PSdjb250YWluZXInIGlkPSdyMic+DQpAQCAtNDgsNCArNDgsNCBAQAogCQk8cCBjbGFzcz0nZ3Jl
ZW4nPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2Pg0KIDwvYm9keT4NCi08L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPg0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24t
c3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKaW5kZXggYmU5Y2NkMmZiZjk4Y2JmOGEx
YTgzYWYwNWRiOGQ0ZjNlYjk4NGI5NS4uMDc4MzU4ZGQwOTAyOWYxZTk3NmQ2MDEyMTNhODM5ZTRk
MGFiNTBiNCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3Bl
ZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5n
Lmh0bWwKQEAgLTUwLDEzICs1MCwxMyBAQAogCX0NCiAJQC13ZWJraXQtcmVnaW9uICNyMyB7DQog
CQlwIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOw0KKwkJCWJhY2tncm91bmQt
Y29sb3I6IHllbGxvdzsNCiAJCX0NCiAJCS5jMyB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGlt
ZTsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQogCQl9DQogCQkjcDMgew0KLQkJCWJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCiAJCX0N
CiAJfQ0KIAk8L3N0eWxlPg0KQEAgLTg3LDE1ICs4NywxNSBAQAogCTwvZGl2Pg0KIAk8ZGl2IGlk
PSdmMyc+DQogCQk8c3R5bGUgc2NvcGVkPSd0cnVlJz4NCi0JCQlwIHsNCi0JCQkJYmFja2dyb3Vu
ZC1jb2xvcjogeWVsbG93Ow0KLQkJCX0NCi0JCQkuYzMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9y
OiBvcmFuZ2U7DQotCQkJfQ0KLQkJCSNwMyB7DQotCQkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsN
Ci0JCQl9DQorCQkgICAgICAgIHAgew0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGln
aHRncmVlbjsNCisgICAgCQkJfQ0KKwkJICAgICAgICAuYzMgew0KKyAgICAgICAgCQkJYmFja2dy
b3VuZC1jb2xvcjogbGltZTsNCisgICAgICAgIAkJfQ0KKyAgICAgICAgCQkjcDMgew0KKyAgICAg
ICAgCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47DQorICAgICAgICAJCX0NCiAJCTwvc3R5bGU+
DQogCQk8cD5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KIAkJPHAgY2xhc3M9J2MzJz5TdHlsZWQg
bGluZSBvZiB0ZXh0PC9wPg0KQEAgLTEwOSw0ICsxMDksNCBAQAogCU92ZXJsYXAsIEByZWdpb24g
YW5kICZsdDtzdHlsZSBzY29wZWQmZ3Q7dXNpbmcgdGhlIHNhbWUgc2VsZWN0b3JzIChib3RoIEBy
ZWdpb24gYW5kIHNjb3BlZCBzdHlsZSBoYXZlIHJ1bGVzIGZvciAmbHQ7cCZndDssIGNsYXNzIGFu
ZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjMnPjwvZGl2Pg0KIDwvYm9keT4N
Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178718</attachid>
            <date>2012-12-10 22:21:37 -0800</date>
            <delta_ts>2012-12-10 22:32:49 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121211151858.patch</filename>
            <type>text/plain</type>
            <size>23461</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE4MjVjMDA4MzVjOWE4
ODYyNmRlZjgwNjQ0M2M3NDUxZTk4MzYxNi4uOTkyMjE1MzVkMzY5MmM2ZDhhNjFlMzBlYzQxMzMx
NmRlNDI2MTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTEwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMzcyMTUp
OiBXZWJLaXQgc3RyZXRjaGVzIGFuZCBzaHJpbmtzIGEgcGFydCBvZiBzY3JlZW4gb24gc2Nyb2xs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZm
N2FlMjBjNmUzMS4uZTYyN2MwNWYyZmUyNjM5YThjNjQxNzNlZmI3MzAwMTgxYTMzZWJjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMTkxLDEwICsxOTEsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFk
ZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0
IFJ1bGVEYQogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQg
c2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKIHsKICAgICBSdWxlRGF0
YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1bGVDb3VudCsrLCBhZGRSdWxlRmxh
Z3MpOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBhdGhvc3RSdWxlU3BlY2lmaWNpdHkgPSAw
eDEwMDAwMDsKLQotICAgIGlmIChhZGRSdWxlRmxhZ3MgJiBSdWxlSXNIb3N0UnVsZSkKLSAgICAg
ICAgcnVsZURhdGEuaW5jcmVhc2VTcGVjaWZpY2l0eShhdGhvc3RSdWxlU3BlY2lmaWNpdHkpOwog
CiAgICAgY29sbGVjdEZlYXR1cmVzRnJvbVJ1bGVEYXRhKG1fZmVhdHVyZXMsIHJ1bGVEYXRhKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggYTJmYmVjYmMwMGIyY2ExYjUzMmY0OTZhOTVjMDkzNTAy
NmZhNGY3ZC4uMzdhZjlkNDY0NDYzNGEzM2VhYmNiZjYyMWQ1MmZiODBjNDA5YmE5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5oCkBAIC0zNiw3ICszNiw2IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsKICAgICBS
dWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IDEsCiAgICAgUnVsZUNhblVzZUZhc3RDaGVj
a1NlbGVjdG9yICAgPSAxIDw8IDEsCiAgICAgUnVsZUlzSW5SZWdpb25SdWxlICAgICAgICAgICAg
PSAxIDw8IDIsCi0gICAgUnVsZUlzSG9zdFJ1bGUgICAgICAgICAgICAgICAgPSAxIDw8IDMsCiB9
OwogCiBjbGFzcyBDU1NTZWxlY3RvcjsKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGxpbmtNYXRjaFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2xpbmtNYXRjaFR5cGU7IH0K
ICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2hh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW47IH0KICAgICBib29sIGlzSW5SZWdpb25SdWxlKCkgY29u
c3QgeyByZXR1cm4gbV9pc0luUmVnaW9uUnVsZTsgfQotICAgIHZvaWQgaW5jcmVhc2VTcGVjaWZp
Y2l0eSh1bnNpZ25lZCB2YWx1ZSkgeyBtX3NwZWNpZmljaXR5ICs9IHZhbHVlOyB9CiAKICAgICAv
LyBUcnkgdG8gYmFsYW5jZSBiZXR3ZWVuIG1lbW9yeSB1c2FnZSAodGhlcmUgY2FuIGJlIGxvdHMg
b2YgUnVsZURhdGEgb2JqZWN0cykgYW5kIGdvb2QgZmlsdGVyaW5nIHBlcmZvcm1hbmNlLgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50ID0gNDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkODlkNjVmM2U2NjNhNDRjMDg1YzcyZTBm
YmE1ZGY2ZTg1YjIzNzBiLi4wMmFmZjMyYjU3YTEwODBlMzMyYzJjM2FmNzdmMGE1Mjg0ZjY0NmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03MDMsNyArNzAzLDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1
bHQmIHJlc3VsdCkKICAgICAgICAgaWYgKCFtX3J1bGVMaXN0KQogICAgICAgICAgICAgbV9ydWxl
TGlzdCA9IFN0YXRpY0NTU1J1bGVMaXN0OjpjcmVhdGUoKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fbWF0Y2hlZFJ1bGVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9y
dWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQobV9tYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+Y3JlYXRl
Q1NTT01XcmFwcGVyKCkpOworICAgICAgICAgICAgbV9ydWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQo
bV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCktPmNyZWF0ZUNTU09NV3JhcHBlcigpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzExLDEyICs3MTEsMTIgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3Vs
dCkKICAgICAvLyBGSVhNRTogVGhpcyBzdWNrcywgdGhlIGluc3BlY3RvciBzaG91bGQgZ2V0IHRo
ZSBzdHlsZSBmcm9tIHRoZSB2aXNpdGVkIHN0eWxlIGl0c2VsZi4KICAgICBib29sIHN3YXBWaXNp
dGVkVW52aXNpdGVkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRl
KG1fZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX21hdGNoZWRSdWxlcy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bV9zdHlsZSAmJiBtX21hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNl
bGVjdG9yKCkpCisgICAgICAgIGlmIChtX3N0eWxlICYmIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29u
ZC0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0
Y2hlZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCk7CisgICAgICAgIHVuc2lnbmVkIGxpbmtNYXRj
aFR5cGUgPSBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmxpbmtNYXRjaFR5cGUoKTsKICAgICAg
ICAgaWYgKHN3YXBWaXNpdGVkVW52aXNpdGVkICYmIGxpbmtNYXRjaFR5cGUgJiYgbGlua01hdGNo
VHlwZSAhPSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKQogICAgICAgICAgICAgbGlua01hdGNo
VHlwZSA9IChsaW5rTWF0Y2hUeXBlID09IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkKSA/
IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rIDogU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0
ZWQ7Ci0gICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNb
aV0tPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBsaW5r
TWF0Y2hUeXBlLCBtX21hdGNoZWRSdWxlc1tpXS0+aXNJblJlZ2lvblJ1bGUoKSk7CisgICAgICAg
IGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5y
dWxlKCktPnByb3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCksIGxp
bmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+aXNJblJlZ2lvblJ1bGUoKSk7
CiAgICAgfQogfQogCkBAIC03MjYsMTMgKzcyNiwxNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1h
dGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1w
dAogICAgIGlmICghbV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtYXRj
aEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICAvLyBNYXRjaCBzY29w
ZWQgYXV0aG9yIHJ1bGVzIGJ5IHRyYXZlcnNpbmcgdGhlIHNjb3BlZCBlbGVtZW50IHN0YWNrIChy
ZWJ1aWxkIGl0IGlmIGl0IGdvdCBpbmNvbnNpc3RlbnQpLgorICAgIGJvb2wgbmVlZENoZWNrU2Nv
cGVkU3R5bGUgPSBtX3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpICYmIG1fc2NvcGVS
ZXNvbHZlci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpOwogCi0gICAgaWYgKCFt
X3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpKQotICAgICAgICByZXR1cm47CisgICAg
Ly8gTWF0Y2hIb3N0UnVsZXMgdXNlcyBudW1iZXIgb2Ygc2NvcGVkIFJ1bGVTZXRzIHdoaWNoIG1p
Z2h0IGJlIGFwcGxpZWQKKyAgICAvLyB0byB0aGUgbV9lbGVtZW50LiBTbyBuZWVkIHRvIGludm9r
ZSBhZnRlciBlbnN1cmVTdGFja0NvbnNpc3RlbmN5LgorICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3Vs
dCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogCi0gICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxl
cyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBp
dCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+ZW5zdXJlU3Rh
Y2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQorICAgIGlmICghbmVlZENoZWNrU2NvcGVkU3R5bGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMgPSBtX2VsZW1l
bnQtPnRyZWVTY29wZSgpLT5hcHBseUF1dGhvclN0eWxlcygpOwpAQCAtNzQ4LDggKzc0OSw4IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRjaFJlc3VsdCYg
cmVzdWx0LCBib29sIGluY2x1ZGVFbXB0CiAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNvbHZl
ci0+bWF0Y2hlc1N0eWxlQm91bmRzKGZyYW1lKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQotICAgICAgICAgICAKLSAgICAgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5j
bHVkZUVtcHR5UnVsZXMsIGZyYW1lLm1fc2NvcGUpOworCisgICAgICAgIE1hdGNoT3B0aW9ucyBv
cHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlLCBpICsgMSk7CiAgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAg
ICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihmcmFtZS5tX3J1bGVTZXQsIHJlc3Vs
dC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBv
cHRpb25zKTsKICAgICB9CkBAIC03NzksOCArNzgwLDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpt
YXRjaEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVz
KQogICAgIGlmIChtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcyk7Ci0gICAgb3B0aW9ucy5z
Y29wZSA9IG1fZWxlbWVudDsKKyAgICB1bnNpZ25lZCBzY29wZUxldmVsID0gbV9zY29wZVJlc29s
dmVyLT5zdGFja1NpemUoKSArIDE7CisgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVkZUVt
cHR5UnVsZXMsIG1fZWxlbWVudCwgc2NvcGVMZXZlbCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5n
UnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxl
LCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICNlbHNlCkBAIC04NzYs
NyArODc3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGkKICAgICAgICAgICAgICAgICAgICAg
Zmlyc3RSdWxlSW5kZXggPSBsYXN0UnVsZUluZGV4OwogCiAgICAgICAgICAgICAgICAgLy8gQWRk
IHRoaXMgcnVsZSB0byBvdXIgbGlzdCBvZiBtYXRjaGVkIHJ1bGVzLgotICAgICAgICAgICAgICAg
IGFkZE1hdGNoZWRSdWxlKCZydWxlRGF0YSk7CisgICAgICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1
bGUob3B0aW9ucy5zY29wZUxldmVsLCAmcnVsZURhdGEpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgdHJ1ZSk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC04ODUsMTEgKzg4NiwxNiBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0
b3I8UnVsZURhdGE+KiBydWxlcywgaQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIGNv
bXBhcmVSdWxlcyhjb25zdCBSdWxlRGF0YSogcjEsIGNvbnN0IFJ1bGVEYXRhKiByMikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSBy
MSwgU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSByMikKIHsKLSAgICB1bnNpZ25lZCBzcGVj
aWZpY2l0eTEgPSByMS0+c3BlY2lmaWNpdHkoKTsKLSAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIg
PSByMi0+c3BlY2lmaWNpdHkoKTsKLSAgICByZXR1cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZp
Y2l0eTIpID8gcjEtPnBvc2l0aW9uKCkgPCByMi0+cG9zaXRpb24oKSA6IHNwZWNpZmljaXR5MSA8
IHNwZWNpZmljaXR5MjsKKyAgICBpZiAocjEuZmlyc3QgPT0gcjIuZmlyc3QpIHsKKyAgICAgICAg
dW5zaWduZWQgc3BlY2lmaWNpdHkxID0gcjEuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAg
ICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIgPSByMi5zZWNvbmQtPnNwZWNpZmljaXR5KCk7CisgICAg
ICAgIHJldHVybiAoc3BlY2lmaWNpdHkxID09IHNwZWNpZmljaXR5MikgPworICAgICAgICAgICAg
cjEuc2Vjb25kLT5wb3NpdGlvbigpIDwgcjIuc2Vjb25kLT5wb3NpdGlvbigpIDoKKyAgICAgICAg
ICAgIHNwZWNpZmljaXR5MSA8IHNwZWNpZmljaXR5MjsKKyAgICB9CisgICAgcmV0dXJuIHIxLmZp
cnN0IDwgcjIuZmlyc3Q7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29ydE1hdGNoZWRSdWxl
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBkYzdhYzhhMmI4NDQzMTRkZjJk
YWY0YjhiY2JhOWIyODc3ZjBjZDlhLi5iZDcyNjNiZmMxODQ2OGY3ZjA2NzA4NmY0NjVkNmRiM2Yy
ZDc1ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSdWxlRmVhdHVyZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCkBAIC0zMDUsNyArMzA2LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlVG9BZGp1
c3QsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgRWxlbWVudCopOwogCi0gICAgdm9pZCBhZGRN
YXRjaGVkUnVsZShjb25zdCBSdWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQo
cnVsZSk7IH0KKyAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKHVuc2lnbmVkIHNjb3BlLCBjb25zdCBS
dWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQoU2NvcGVSdWxlRGF0YShzY29w
ZSwgcnVsZSkpOyB9CiAKICAgICBzdHJ1Y3QgTWF0Y2hSYW5nZXMgewogICAgICAgICBNYXRjaFJh
bmdlcygpIDogZmlyc3RVQVJ1bGUoLTEpLCBsYXN0VUFSdWxlKC0xKSwgZmlyc3RBdXRob3JSdWxl
KC0xKSwgbGFzdEF1dGhvclJ1bGUoLTEpLCBmaXJzdFVzZXJSdWxlKC0xKSwgbGFzdFVzZXJSdWxl
KC0xKSB7IH0KQEAgLTM0MSw5ICszNDIsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgc3Ry
dWN0IE1hdGNoT3B0aW9ucyB7Ci0gICAgICAgIE1hdGNoT3B0aW9ucyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApIDogc2NvcGUoc2NvcGUpLCBp
bmNsdWRlRW1wdHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykgeyB9CisgICAgICAgIE1hdGNoT3B0
aW9ucyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9
IDAsIHVuc2lnbmVkIHNjb3BlTGV2ZWwgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5
UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMpLCBzY29wZUxldmVsKHNjb3BlTGV2ZWwpIHsgfQogICAg
ICAgICBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZTsKICAgICAgICAgYm9vbCBpbmNsdWRlRW1w
dHlSdWxlczsKKyAgICAgICAgdW5zaWduZWQgc2NvcGVMZXZlbDsKICAgICB9OwogCiAgICAgc3Rh
dGljIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNo
VHlwZSA9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFs
c2UpOwpAQCAtNDI2LDYgKzQyOCw4IEBAIHB1YmxpYzoKICAgICBDU1NUb1N0eWxlTWFwKiBzdHls
ZU1hcCgpIHsgcmV0dXJuICZtX3N0eWxlTWFwOyB9CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKworICAgIHR5cGVkZWYgc3RkOjpwYWlyPHVu
c2lnbmVkLCBjb25zdCBSdWxlRGF0YSo+IFNjb3BlUnVsZURhdGE7CiAgICAgCiBwcml2YXRlOgog
ICAgIHN0YXRpYyBSZW5kZXJTdHlsZSogc19zdHlsZU5vdFlldEF2YWlsYWJsZTsKQEAgLTQ3Myw3
ICs0NzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBz
ZXQgb2YgbWF0Y2hlZCBydWxlcyBmb3IgYW4gZWxlbWVudCwgYW5kIGEgdGVtcG9yYXJ5IGJ1ZmZl
ciB1c2VkIGZvcgogICAgIC8vIG1lcmdlIHNvcnRpbmcuCi0gICAgVmVjdG9yPGNvbnN0IFJ1bGVE
YXRhKiwgMzI+IG1fbWF0Y2hlZFJ1bGVzOworICAgIFZlY3RvcjxTY29wZVJ1bGVEYXRhLCAzMj4g
bV9tYXRjaGVkUnVsZXM7CiAKICAgICBSZWZQdHI8U3RhdGljQ1NTUnVsZUxpc3Q+IG1fcnVsZUxp
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNzY4
MTcyNTMxZWIzYTIwNWU1ZWYwYmIzNDJjYjBjOGUyOWJmY2IyZC4uNzMwMDUwZDZjNGQ4MTcyZTU1
NGJlODYwMjhkOWJiNTdjN2IxMmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2NvcGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVS
ZXNvbHZlci5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6
YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQog
CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVzID0g
aG9zdFJ1bGUtPmNoaWxkUnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzID0g
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
IDogUnVsZUhhc05vU3BlY2lhbFN0YXRlOwotICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0
PEFkZFJ1bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9y
IHwgUnVsZUlzSG9zdFJ1bGUpOworICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0PEFkZFJ1
bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRSdWxlcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBTdHlsZVJ1bGVCYXNlKiBob3N0U3R5bGluZ1J1bGUgPSBjaGlsZFJ1bGVzW2ldLmdldCgp
OwogICAgICAgICBpZiAoaG9zdFN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggZDZlZDNhOTczMzFkNjc5MjY0Yjcx
N2NkNjg2MGMxZWY5Y2Q2MDZhZS4uYTgxZjNiZDg0ZDBkY2I2NmRmNmIzNjVkZGEyNGVlNmYzZGQy
MGQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC0xNDAs
OSArMTQwLDExIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoYm9vbCBzY29wZWQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotCiAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQo
KTsKLSAgICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGlmIChzY29wZS0+aXNT
aGFkb3dSb290KCkpCisgICAgICAgIHNjb3BlLT5zaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKKyAgICBlbHNlCisgICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+cGFyc2luZygpICYmIGRvY3Vt
ZW50KCktPnJlbmRlcmVyKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXJDaGFu
Z2VkKERlZmVyUmVjYWxjU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQ5NzQ5MTJkZmExMTA5OTMzYjE1Y2Yy
ZmNhMGFkOWQ5NGU5MmJlYy4uOTQ1Zjk3M2JlNDBjMzkxZTM1Yjg1N2E4YmVjYTJiNDc0NmU3YWJj
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTEwICBUYWthc2hpIFNha2Ftb3RvICA8
dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMg
YXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGlu
Zy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4t
Zmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0
ZXN0J3MgZXhwZWN0YXRpb24uCisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1l
bnQgaXMgOnJvb3QgYnV0IHNjb3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBp
cyBhIGRlc2NlbmRhbnQgZWxlbWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2lu
LgorCiAyMDEyLTEyLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjEzNzIxNSk6IFdlYktpdCBzdHJldGNoZXMgYW5kIHNocmlu
a3MgYSBwYXJ0IG9mIHNjcmVlbiBvbiBzY3JvbGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDczMzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQw
MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qg
d2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9y
IG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNzZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBk
ZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVudCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50
LgorYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitP
bmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0
aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5z
IGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQuc3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5
bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcg
cnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBj
bGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21l
IHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3Zl
IHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFu
IGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVk
IHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFk
b3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50
IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBz
aGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxl
cyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRhODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAg
Y29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93
L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVu
dCI+CisgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAg
PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIg
c2NvcGVkIHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7
CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGlu
IGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1l
bnQuIik7CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJn
ZXQuIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIs
ICcicmdiKDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0g
dHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjog
eWVsbG93OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVu
ZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBp
cyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xh
c3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBk
b2N1bWVudC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJn
ZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVk
ID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7
IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxl
Rm9yUGFyZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0
aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5n
IHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNv
bG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSInKTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9
InRhcmdldEluU2hhZG93IiBjbGFzcz0idGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNo
YWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFk
b3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJp
dGFuY2UgZnJvbSBpdHMgc2hhZG93IGhvc3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAor
Ly8gdGhlIHNwYW4gaW4gdGhlIHNoYWRvdyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKK2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRv
dyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdl
dCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhv
ciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVz
IG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNo
YWRvdykuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRN
TCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHls
ZUluU2hhZG93KTsKK2RlYnVnKCJBcHBlbmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hh
ZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNjb3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3Qu
IFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5k
YW50IChzY29wZWQpIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJl
Z2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhkMzRiZmNk
ZTFiODQ5YWM2NjlkYWFhNC4uMGI4MGM2MzliMTNmMzkzMjBhYjE1ZjI2MjQ5ODBiNzVmMGRlYjQ3
NCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFsIG92ZXJsYXAsIEBy
ZWdpb24gbW9yZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0
eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9y
ICZsdDtwJmd0OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KIAkJPHAgY2xh
c3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9m
IHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQor
CQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2Pg0KIAlQ
YXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3BlY2lmaWMgdGhhbiBA
cmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDssIHNjb3BlZCBzdHls
ZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBp
ZD0ncjInPg0KQEAgLTQ4LDQgKzQ4LDQgQEAKIAkJPHAgY2xhc3M9J2dyZWVuJz5TdHlsZWQgbGlu
ZSBvZiB0ZXh0PC9wPg0KIAk8L2Rpdj4NCiA8L2JvZHk+DQotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4NCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1y
ZWdpb24tc3R5bGluZy5odG1sCmluZGV4IGJlOWNjZDJmYmY5OGNiZjhhMWE4M2FmMDVkYjhkNGYz
ZWI5ODRiOTUuLjA3ODM1OGRkMDkwMjlmMWU5NzZkNjAxMjEzYTgzOWU0ZDBhYjUwYjQgMTAwNzU1
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVy
cmlkZS1yZWdpb24tc3R5bGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9z
dHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sCkBAIC01MCwx
MyArNTAsMTMgQEAKIAl9DQogCUAtd2Via2l0LXJlZ2lvbiAjcjMgew0KIAkJcCB7DQotCQkJYmFj
a2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7
DQogCQl9DQogCQkuYzMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGxpbWU7DQorCQkJYmFja2dy
b3VuZC1jb2xvcjogb3JhbmdlOw0KIAkJfQ0KIAkJI3AzIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiByZWQ7DQogCQl9DQogCX0NCiAJPC9zdHls
ZT4NCkBAIC04NywxNSArODcsMTUgQEAKIAk8L2Rpdj4NCiAJPGRpdiBpZD0nZjMnPg0KIAkJPHN0
eWxlIHNjb3BlZD0ndHJ1ZSc+DQotCQkJcCB7DQotCQkJCWJhY2tncm91bmQtY29sb3I6IHllbGxv
dzsNCi0JCQl9DQotCQkJLmMzIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOw0KLQkJ
CX0NCi0JCQkjcDMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiByZWQ7DQotCQkJfQ0KKwkJICAg
ICAgICBwIHsNCisJCQkgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47DQorICAg
IAkJCX0NCisJCSAgICAgICAgLmMzIHsNCisgICAgICAgIAkJCWJhY2tncm91bmQtY29sb3I6IGxp
bWU7DQorICAgICAgICAJCX0NCisgICAgICAgIAkJI3AzIHsNCisgICAgICAgIAkJCWJhY2tncm91
bmQtY29sb3I6IGdyZWVuOw0KKyAgICAgICAgCQl9DQogCQk8L3N0eWxlPg0KIAkJPHA+U3R5bGVk
IGxpbmUgb2YgdGV4dDwvcD4NCiAJCTxwIGNsYXNzPSdjMyc+U3R5bGVkIGxpbmUgb2YgdGV4dDwv
cD4NCkBAIC0xMDksNCArMTA5LDQgQEAKIAlPdmVybGFwLCBAcmVnaW9uIGFuZCAmbHQ7c3R5bGUg
c2NvcGVkJmd0O3VzaW5nIHRoZSBzYW1lIHNlbGVjdG9ycyAoYm90aCBAcmVnaW9uIGFuZCBzY29w
ZWQgc3R5bGUgaGF2ZSBydWxlcyBmb3IgJmx0O3AmZ3Q7LCBjbGFzcyBhbmQgaWQpDQogCTxkaXYg
Y2xhc3M9J2NvbnRhaW5lcicgaWQ9J3IzJz48L2Rpdj4NCiA8L2JvZHk+DQotPC9odG1sPgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4NCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178721</attachid>
            <date>2012-12-10 22:32:54 -0800</date>
            <delta_ts>2012-12-10 23:56:06 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121211153015.patch</filename>
            <type>text/plain</type>
            <size>23073</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE4MjVjMDA4MzVjOWE4
ODYyNmRlZjgwNjQ0M2M3NDUxZTk4MzYxNi4uOTkyMjE1MzVkMzY5MmM2ZDhhNjFlMzBlYzQxMzMx
NmRlNDI2MTczOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTEwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIxMzcyMTUp
OiBXZWJLaXQgc3RyZXRjaGVzIGFuZCBzaHJpbmtzIGEgcGFydCBvZiBzY3JlZW4gb24gc2Nyb2xs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZm
N2FlMjBjNmUzMS4uZTYyN2MwNWYyZmUyNjM5YThjNjQxNzNlZmI3MzAwMTgxYTMzZWJjZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMTkxLDEwICsxOTEsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFk
ZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0
IFJ1bGVEYQogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQg
c2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKIHsKICAgICBSdWxlRGF0
YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1bGVDb3VudCsrLCBhZGRSdWxlRmxh
Z3MpOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBhdGhvc3RSdWxlU3BlY2lmaWNpdHkgPSAw
eDEwMDAwMDsKLQotICAgIGlmIChhZGRSdWxlRmxhZ3MgJiBSdWxlSXNIb3N0UnVsZSkKLSAgICAg
ICAgcnVsZURhdGEuaW5jcmVhc2VTcGVjaWZpY2l0eShhdGhvc3RSdWxlU3BlY2lmaWNpdHkpOwog
CiAgICAgY29sbGVjdEZlYXR1cmVzRnJvbVJ1bGVEYXRhKG1fZmVhdHVyZXMsIHJ1bGVEYXRhKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggYTJmYmVjYmMwMGIyY2ExYjUzMmY0OTZhOTVjMDkzNTAy
NmZhNGY3ZC4uMzdhZjlkNDY0NDYzNGEzM2VhYmNiZjYyMWQ1MmZiODBjNDA5YmE5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvUnVsZVNldC5oCkBAIC0zNiw3ICszNiw2IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsKICAgICBS
dWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IDEsCiAgICAgUnVsZUNhblVzZUZhc3RDaGVj
a1NlbGVjdG9yICAgPSAxIDw8IDEsCiAgICAgUnVsZUlzSW5SZWdpb25SdWxlICAgICAgICAgICAg
PSAxIDw8IDIsCi0gICAgUnVsZUlzSG9zdFJ1bGUgICAgICAgICAgICAgICAgPSAxIDw8IDMsCiB9
OwogCiBjbGFzcyBDU1NTZWxlY3RvcjsKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGxpbmtNYXRjaFR5cGUoKSBjb25zdCB7IHJldHVybiBtX2xpbmtNYXRjaFR5cGU7IH0K
ICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2hh
c0RvY3VtZW50U2VjdXJpdHlPcmlnaW47IH0KICAgICBib29sIGlzSW5SZWdpb25SdWxlKCkgY29u
c3QgeyByZXR1cm4gbV9pc0luUmVnaW9uUnVsZTsgfQotICAgIHZvaWQgaW5jcmVhc2VTcGVjaWZp
Y2l0eSh1bnNpZ25lZCB2YWx1ZSkgeyBtX3NwZWNpZmljaXR5ICs9IHZhbHVlOyB9CiAKICAgICAv
LyBUcnkgdG8gYmFsYW5jZSBiZXR3ZWVuIG1lbW9yeSB1c2FnZSAodGhlcmUgY2FuIGJlIGxvdHMg
b2YgUnVsZURhdGEgb2JqZWN0cykgYW5kIGdvb2QgZmlsdGVyaW5nIHBlcmZvcm1hbmNlLgogICAg
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50ID0gNDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkODlkNjVmM2U2NjNhNDRjMDg1YzcyZTBm
YmE1ZGY2ZTg1YjIzNzBiLi4wMmFmZjMyYjU3YTEwODBlMzMyYzJjM2FmNzdmMGE1Mjg0ZjY0NmU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03MDMsNyArNzAzLDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1
bHQmIHJlc3VsdCkKICAgICAgICAgaWYgKCFtX3J1bGVMaXN0KQogICAgICAgICAgICAgbV9ydWxl
TGlzdCA9IFN0YXRpY0NTU1J1bGVMaXN0OjpjcmVhdGUoKTsKICAgICAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fbWF0Y2hlZFJ1bGVzLnNpemUoKTsgKytpKQotICAgICAgICAgICAgbV9y
dWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQobV9tYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKS0+Y3JlYXRl
Q1NTT01XcmFwcGVyKCkpOworICAgICAgICAgICAgbV9ydWxlTGlzdC0+cnVsZXMoKS5hcHBlbmQo
bV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCktPmNyZWF0ZUNTU09NV3JhcHBlcigpKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNzExLDEyICs3MTEsMTIgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3Vs
dCkKICAgICAvLyBGSVhNRTogVGhpcyBzdWNrcywgdGhlIGluc3BlY3RvciBzaG91bGQgZ2V0IHRo
ZSBzdHlsZSBmcm9tIHRoZSB2aXNpdGVkIHN0eWxlIGl0c2VsZi4KICAgICBib29sIHN3YXBWaXNp
dGVkVW52aXNpdGVkID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpmb3JjZVBzZXVkb1N0YXRl
KG1fZWxlbWVudCwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Zpc2l0ZWQpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBtX21hdGNoZWRSdWxlcy5zaXplKCk7IGkrKykgewotICAgICAgICBpZiAo
bV9zdHlsZSAmJiBtX21hdGNoZWRSdWxlc1tpXS0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNl
bGVjdG9yKCkpCisgICAgICAgIGlmIChtX3N0eWxlICYmIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29u
ZC0+Y29udGFpbnNVbmNvbW1vbkF0dHJpYnV0ZVNlbGVjdG9yKCkpCiAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRVbmlxdWUoKTsKLSAgICAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0
Y2hlZFJ1bGVzW2ldLT5saW5rTWF0Y2hUeXBlKCk7CisgICAgICAgIHVuc2lnbmVkIGxpbmtNYXRj
aFR5cGUgPSBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmxpbmtNYXRjaFR5cGUoKTsKICAgICAg
ICAgaWYgKHN3YXBWaXNpdGVkVW52aXNpdGVkICYmIGxpbmtNYXRjaFR5cGUgJiYgbGlua01hdGNo
VHlwZSAhPSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoQWxsKQogICAgICAgICAgICAgbGlua01hdGNo
VHlwZSA9IChsaW5rTWF0Y2hUeXBlID09IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkKSA/
IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hMaW5rIDogU2VsZWN0b3JDaGVja2VyOjpNYXRjaFZpc2l0
ZWQ7Ci0gICAgICAgIGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNb
aV0tPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLCBsaW5r
TWF0Y2hUeXBlLCBtX21hdGNoZWRSdWxlc1tpXS0+aXNJblJlZ2lvblJ1bGUoKSk7CisgICAgICAg
IGFkZE1hdGNoZWRQcm9wZXJ0aWVzKHJlc3VsdCwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5y
dWxlKCktPnByb3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5ydWxlKCksIGxp
bmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+aXNJblJlZ2lvblJ1bGUoKSk7
CiAgICAgfQogfQogCkBAIC03MjYsMTMgKzcyNiwxNCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1h
dGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1w
dAogICAgIGlmICghbV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtYXRj
aEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICAvLyBNYXRjaCBzY29w
ZWQgYXV0aG9yIHJ1bGVzIGJ5IHRyYXZlcnNpbmcgdGhlIHNjb3BlZCBlbGVtZW50IHN0YWNrIChy
ZWJ1aWxkIGl0IGlmIGl0IGdvdCBpbmNvbnNpc3RlbnQpLgorICAgIGJvb2wgbmVlZENoZWNrU2Nv
cGVkU3R5bGUgPSBtX3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpICYmIG1fc2NvcGVS
ZXNvbHZlci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpOwogCi0gICAgaWYgKCFt
X3Njb3BlUmVzb2x2ZXItPmhhc1Njb3BlZFN0eWxlcygpKQotICAgICAgICByZXR1cm47CisgICAg
Ly8gTWF0Y2hIb3N0UnVsZXMgdXNlcyBudW1iZXIgb2Ygc2NvcGVkIFJ1bGVTZXRzIHdoaWNoIG1p
Z2h0IGJlIGFwcGxpZWQKKyAgICAvLyB0byB0aGUgbV9lbGVtZW50LiBTbyBuZWVkIHRvIGludm9r
ZSBhZnRlciBlbnN1cmVTdGFja0NvbnNpc3RlbmN5LgorICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3Vs
dCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogCi0gICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxl
cyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBp
dCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+ZW5zdXJlU3Rh
Y2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQorICAgIGlmICghbmVlZENoZWNrU2NvcGVkU3R5bGUp
CiAgICAgICAgIHJldHVybjsKIAogICAgIGJvb2wgYXBwbHlBdXRob3JTdHlsZXMgPSBtX2VsZW1l
bnQtPnRyZWVTY29wZSgpLT5hcHBseUF1dGhvclN0eWxlcygpOwpAQCAtNzQ4LDggKzc0OSw4IEBA
IHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRjaFJlc3VsdCYg
cmVzdWx0LCBib29sIGluY2x1ZGVFbXB0CiAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNvbHZl
ci0+bWF0Y2hlc1N0eWxlQm91bmRzKGZyYW1lKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQotICAgICAgICAgICAKLSAgICAgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5j
bHVkZUVtcHR5UnVsZXMsIGZyYW1lLm1fc2NvcGUpOworCisgICAgICAgIE1hdGNoT3B0aW9ucyBv
cHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlLCBpICsgMSk7CiAgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAg
ICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihmcmFtZS5tX3J1bGVTZXQsIHJlc3Vs
dC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBv
cHRpb25zKTsKICAgICB9CkBAIC03NzksOCArNzgwLDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpt
YXRjaEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVz
KQogICAgIGlmIChtYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcyk7Ci0gICAgb3B0aW9ucy5z
Y29wZSA9IG1fZWxlbWVudDsKKyAgICB1bnNpZ25lZCBzY29wZUxldmVsID0gbV9zY29wZVJlc29s
dmVyLT5zdGFja1NpemUoKSArIDE7CisgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVkZUVt
cHR5UnVsZXMsIG1fZWxlbWVudCwgc2NvcGVMZXZlbCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
bWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5n
UnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxl
LCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICNlbHNlCkBAIC04NzYs
NyArODc3LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGkKICAgICAgICAgICAgICAgICAgICAg
Zmlyc3RSdWxlSW5kZXggPSBsYXN0UnVsZUluZGV4OwogCiAgICAgICAgICAgICAgICAgLy8gQWRk
IHRoaXMgcnVsZSB0byBvdXIgbGlzdCBvZiBtYXRjaGVkIHJ1bGVzLgotICAgICAgICAgICAgICAg
IGFkZE1hdGNoZWRSdWxlKCZydWxlRGF0YSk7CisgICAgICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1
bGUob3B0aW9ucy5zY29wZUxldmVsLCAmcnVsZURhdGEpOwogICAgICAgICAgICAgICAgIEluc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTWF0Y2hSdWxlKGNvb2tpZSwgdHJ1ZSk7CiAgICAgICAg
ICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICB9CkBAIC04ODUsMTEgKzg4NiwxNiBAQCB2
b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0
b3I8UnVsZURhdGE+KiBydWxlcywgaQogICAgIH0KIH0KIAotc3RhdGljIGlubGluZSBib29sIGNv
bXBhcmVSdWxlcyhjb25zdCBSdWxlRGF0YSogcjEsIGNvbnN0IFJ1bGVEYXRhKiByMikKK3N0YXRp
YyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSBy
MSwgU3R5bGVSZXNvbHZlcjo6U2NvcGVSdWxlRGF0YSByMikKIHsKLSAgICB1bnNpZ25lZCBzcGVj
aWZpY2l0eTEgPSByMS0+c3BlY2lmaWNpdHkoKTsKLSAgICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIg
PSByMi0+c3BlY2lmaWNpdHkoKTsKLSAgICByZXR1cm4gKHNwZWNpZmljaXR5MSA9PSBzcGVjaWZp
Y2l0eTIpID8gcjEtPnBvc2l0aW9uKCkgPCByMi0+cG9zaXRpb24oKSA6IHNwZWNpZmljaXR5MSA8
IHNwZWNpZmljaXR5MjsKKyAgICBpZiAocjEuZmlyc3QgPT0gcjIuZmlyc3QpIHsKKyAgICAgICAg
dW5zaWduZWQgc3BlY2lmaWNpdHkxID0gcjEuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAg
ICB1bnNpZ25lZCBzcGVjaWZpY2l0eTIgPSByMi5zZWNvbmQtPnNwZWNpZmljaXR5KCk7CisgICAg
ICAgIHJldHVybiAoc3BlY2lmaWNpdHkxID09IHNwZWNpZmljaXR5MikgPworICAgICAgICAgICAg
cjEuc2Vjb25kLT5wb3NpdGlvbigpIDwgcjIuc2Vjb25kLT5wb3NpdGlvbigpIDoKKyAgICAgICAg
ICAgIHNwZWNpZmljaXR5MSA8IHNwZWNpZmljaXR5MjsKKyAgICB9CisgICAgcmV0dXJuIHIxLmZp
cnN0IDwgcjIuZmlyc3Q7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29ydE1hdGNoZWRSdWxl
cygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBkYzdhYzhhMmI4NDQzMTRkZjJk
YWY0YjhiY2JhOWIyODc3ZjBjZDlhLi5iZDcyNjNiZmMxODQ2OGY3ZjA2NzA4NmY0NjVkNmRiM2Yy
ZDc1ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNp
bmNsdWRlICJSdWxlRmVhdHVyZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKICNpbmNsdWRlICJS
dW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAj
aW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCkBAIC0zMDUsNyArMzA2LDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlVG9BZGp1
c3QsIFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgRWxlbWVudCopOwogCi0gICAgdm9pZCBhZGRN
YXRjaGVkUnVsZShjb25zdCBSdWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQo
cnVsZSk7IH0KKyAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKHVuc2lnbmVkIHNjb3BlLCBjb25zdCBS
dWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQoU2NvcGVSdWxlRGF0YShzY29w
ZSwgcnVsZSkpOyB9CiAKICAgICBzdHJ1Y3QgTWF0Y2hSYW5nZXMgewogICAgICAgICBNYXRjaFJh
bmdlcygpIDogZmlyc3RVQVJ1bGUoLTEpLCBsYXN0VUFSdWxlKC0xKSwgZmlyc3RBdXRob3JSdWxl
KC0xKSwgbGFzdEF1dGhvclJ1bGUoLTEpLCBmaXJzdFVzZXJSdWxlKC0xKSwgbGFzdFVzZXJSdWxl
KC0xKSB7IH0KQEAgLTM0MSw5ICszNDIsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgc3Ry
dWN0IE1hdGNoT3B0aW9ucyB7Ci0gICAgICAgIE1hdGNoT3B0aW9ucyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApIDogc2NvcGUoc2NvcGUpLCBp
bmNsdWRlRW1wdHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykgeyB9CisgICAgICAgIE1hdGNoT3B0
aW9ucyhib29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9
IDAsIHVuc2lnbmVkIHNjb3BlTGV2ZWwgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5
UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMpLCBzY29wZUxldmVsKHNjb3BlTGV2ZWwpIHsgfQogICAg
ICAgICBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZTsKICAgICAgICAgYm9vbCBpbmNsdWRlRW1w
dHlSdWxlczsKKyAgICAgICAgdW5zaWduZWQgc2NvcGVMZXZlbDsKICAgICB9OwogCiAgICAgc3Rh
dGljIHZvaWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVBy
b3BlcnR5U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNo
VHlwZSA9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFs
c2UpOwpAQCAtNDI2LDYgKzQyOCw4IEBAIHB1YmxpYzoKICAgICBDU1NUb1N0eWxlTWFwKiBzdHls
ZU1hcCgpIHsgcmV0dXJuICZtX3N0eWxlTWFwOyB9CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qKSBjb25zdDsKKworICAgIHR5cGVkZWYgc3RkOjpwYWlyPHVu
c2lnbmVkLCBjb25zdCBSdWxlRGF0YSo+IFNjb3BlUnVsZURhdGE7CiAgICAgCiBwcml2YXRlOgog
ICAgIHN0YXRpYyBSZW5kZXJTdHlsZSogc19zdHlsZU5vdFlldEF2YWlsYWJsZTsKQEAgLTQ3Myw3
ICs0NzcsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gQSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBz
ZXQgb2YgbWF0Y2hlZCBydWxlcyBmb3IgYW4gZWxlbWVudCwgYW5kIGEgdGVtcG9yYXJ5IGJ1ZmZl
ciB1c2VkIGZvcgogICAgIC8vIG1lcmdlIHNvcnRpbmcuCi0gICAgVmVjdG9yPGNvbnN0IFJ1bGVE
YXRhKiwgMzI+IG1fbWF0Y2hlZFJ1bGVzOworICAgIFZlY3RvcjxTY29wZVJ1bGVEYXRhLCAzMj4g
bV9tYXRjaGVkUnVsZXM7CiAKICAgICBSZWZQdHI8U3RhdGljQ1NTUnVsZUxpc3Q+IG1fcnVsZUxp
c3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNzY4
MTcyNTMxZWIzYTIwNWU1ZWYwYmIzNDJjYjBjOGUyOWJmY2IyZC4uNzMwMDUwZDZjNGQ4MTcyZTU1
NGJlODYwMjhkOWJiNTdjN2IxMmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlU2NvcGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVS
ZXNvbHZlci5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6
YWRkSG9zdFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQog
CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVzID0g
aG9zdFJ1bGUtPmNoaWxkUnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzID0g
aGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
IDogUnVsZUhhc05vU3BlY2lhbFN0YXRlOwotICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0
PEFkZFJ1bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9y
IHwgUnVsZUlzSG9zdFJ1bGUpOworICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0PEFkZFJ1
bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yKTsKICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRSdWxlcy5zaXplKCk7ICsraSkgewogICAg
ICAgICBTdHlsZVJ1bGVCYXNlKiBob3N0U3R5bGluZ1J1bGUgPSBjaGlsZFJ1bGVzW2ldLmdldCgp
OwogICAgICAgICBpZiAoaG9zdFN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggZDZlZDNhOTczMzFkNjc5MjY0Yjcx
N2NkNjg2MGMxZWY5Y2Q2MDZhZS4uYTgxZjNiZDg0ZDBkY2I2NmRmNmIzNjVkZGEyNGVlNmYzZGQy
MGQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC0xNDAs
OSArMTQwLDExIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05v
ZGUoYm9vbCBzY29wZWQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQotCiAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQo
KTsKLSAgICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGlmIChzY29wZS0+aXNT
aGFkb3dSb290KCkpCisgICAgICAgIHNjb3BlLT5zaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVS
ZWNhbGMoKTsKKyAgICBlbHNlCisgICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7
CiAgICAgaWYgKGluRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+cGFyc2luZygpICYmIGRvY3Vt
ZW50KCktPnJlbmRlcmVyKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXJDaGFu
Z2VkKERlZmVyUmVjYWxjU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTQ5NzQ5MTJkZmExMTA5OTMzYjE1Y2Yy
ZmNhMGFkOWQ5NGU5MmJlYy4uOTQ1Zjk3M2JlNDBjMzkxZTM1Yjg1N2E4YmVjYTJiNDc0NmU3YWJj
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTEwICBUYWthc2hpIFNha2Ftb3RvICA8
dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMg
YXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3Nz
L3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGlu
Zy1leHBlY3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4t
Zmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0
ZXN0J3MgZXhwZWN0YXRpb24uCisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1l
bnQgaXMgOnJvb3QgYnV0IHNjb3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBp
cyBhIGRlc2NlbmRhbnQgZWxlbWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2lu
LgorCiAyMDEyLTEyLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIFJFR1JFU1NJT04ocjEzNzIxNSk6IFdlYktpdCBzdHJldGNoZXMgYW5kIHNocmlu
a3MgYSBwYXJ0IG9mIHNjcmVlbiBvbiBzY3JvbGwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDczMzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQw
MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qg
d2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9y
IG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNzZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBk
ZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVudCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50
LgorYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitP
bmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0
aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5z
IGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQuc3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5
bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcg
cnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBj
bGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21l
IHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3Zl
IHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFu
IGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVk
IHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFk
b3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50
IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBz
aGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxl
cyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRhODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAg
Y29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93
L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVu
dCI+CisgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAg
PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIg
c2NvcGVkIHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7
CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGlu
IGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1l
bnQuIik7CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJn
ZXQuIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIs
ICcicmdiKDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0g
dHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjog
eWVsbG93OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVu
ZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBp
cyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xh
c3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBk
b2N1bWVudC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJn
ZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVk
ID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7
IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxl
Rm9yUGFyZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0
aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5n
IHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNv
bG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSInKTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9
InRhcmdldEluU2hhZG93IiBjbGFzcz0idGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNo
YWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFk
b3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJp
dGFuY2UgZnJvbSBpdHMgc2hhZG93IGhvc3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAor
Ly8gdGhlIHNwYW4gaW4gdGhlIHNoYWRvdyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKK2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRv
dyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdl
dCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhv
ciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVz
IG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNo
YWRvdykuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRN
TCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHls
ZUluU2hhZG93KTsKK2RlYnVnKCJBcHBlbmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hh
ZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNjb3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3Qu
IFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5k
YW50IChzY29wZWQpIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJl
Z2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhkMzRiZmNk
ZTFiODQ5YWM2NjlkYWFhNC4uYjFhYzY2YzZmYzFiNzE5ZmQ0NDYzMTQxZjRmZjQ2MWM3MjYwMzlm
MSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFsIG92ZXJsYXAsIEBy
ZWdpb24gbW9yZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0
eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9y
ICZsdDtwJmd0OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KIAkJPHAgY2xh
c3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9m
IHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQor
CQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2Pg0KIAlQ
YXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3BlY2lmaWMgdGhhbiBA
cmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDssIHNjb3BlZCBzdHls
ZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBp
ZD0ncjInPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29w
ZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0
bWwKaW5kZXggYmU5Y2NkMmZiZjk4Y2JmOGExYTgzYWYwNWRiOGQ0ZjNlYjk4NGI5NS4uNDU3Njk0
YWVjYmNiZGU5Y2I3MzgxOTc3NmIwODIzY2E4YWUzOTFiMiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKQEAgLTUwLDEzICs1MCwxMyBAQAogCX0N
CiAJQC13ZWJraXQtcmVnaW9uICNyMyB7DQogCQlwIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBs
aWdodGdyZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCiAJCX0NCiAJCS5jMyB7
DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFu
Z2U7DQogCQl9DQogCQkjcDMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOw0KKwkJCWJh
Y2tncm91bmQtY29sb3I6IHJlZDsNCiAJCX0NCiAJfQ0KIAk8L3N0eWxlPg0KQEAgLTg3LDE1ICs4
NywxNSBAQAogCTwvZGl2Pg0KIAk8ZGl2IGlkPSdmMyc+DQogCQk8c3R5bGUgc2NvcGVkPSd0cnVl
Jz4NCi0JCQlwIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0KLQkJCX0NCi0JCQku
YzMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQotCQkJfQ0KLQkJCSNwMyB7DQot
CQkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCi0JCQl9DQorCQkgICAgICAgIHAgew0KKwkJCSAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisgICAgCQkJfQ0KKwkJICAgICAg
ICAuYzMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisgICAgICAgIAkJ
fQ0KKyAgICAgICAgCQkjcDMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
DQorICAgICAgICAJCX0NCiAJCTwvc3R5bGU+DQogCQk8cD5TdHlsZWQgbGluZSBvZiB0ZXh0PC9w
Pg0KIAkJPHAgY2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178733</attachid>
            <date>2012-12-10 23:56:10 -0800</date>
            <delta_ts>2012-12-11 00:30:23 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-103239-20121211165332.patch</filename>
            <type>text/plain</type>
            <size>28870</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzlhZjkzNDkzNTc1ODVk
MmU3MjY1MDRhN2NjYzQ3YWY0NzQ4NmVmMi4uYjljMjYzNzFjNTA5MmQ4OTNmYWI4YjVlNTVlZDdj
OTI0NjMwM2NhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTEwICBObydhbSBSb3NlbnRo
YWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzNzAwNik6IENT
UyBjbGlwIG9uIHNvbGlkIGNvbG9yIGNvbXBvc2l0ZWQgZGl2IGJyb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVT
ZXQuY3BwCmluZGV4IDlhNzhjMGZmOTAzODljOTBjNDRkYTVhNmI5ZjVmZjdhZTIwYzZlMzEuLmU2
MjdjMDVmMmZlMjYzOWE4YzY0MTczZWZiNzMwMDE4MWEzM2ViY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5jcHAKQEAgLTE5MSwxMCArMTkxLDYgQEAgdm9pZCBSdWxlU2V0OjphZGRUb1J1bGVTZXQoQXRv
bWljU3RyaW5nSW1wbCoga2V5LCBBdG9tUnVsZU1hcCYgbWFwLCBjb25zdCBSdWxlRGEKIHZvaWQg
UnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgs
IEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MpCiB7CiAgICAgUnVsZURhdGEgcnVsZURhdGEocnVs
ZSwgc2VsZWN0b3JJbmRleCwgbV9ydWxlQ291bnQrKywgYWRkUnVsZUZsYWdzKTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgYXRob3N0UnVsZVNwZWNpZmljaXR5ID0gMHgxMDAwMDA7Ci0KLSAg
ICBpZiAoYWRkUnVsZUZsYWdzICYgUnVsZUlzSG9zdFJ1bGUpCi0gICAgICAgIHJ1bGVEYXRhLmlu
Y3JlYXNlU3BlY2lmaWNpdHkoYXRob3N0UnVsZVNwZWNpZmljaXR5KTsKIAogICAgIGNvbGxlY3RG
ZWF0dXJlc0Zyb21SdWxlRGF0YShtX2ZlYXR1cmVzLCBydWxlRGF0YSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5oCmluZGV4IGEyZmJlY2JjMDBiMmNhMWI1MzJmNDk2YTk1YzA5MzUwMjZmYTRmN2QuLjM3YWY5
ZDQ2NDQ2MzRhMzNlYWJjYmY2MjFkNTJmYjgwYzQwOWJhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApA
QCAtMzYsNyArMzYsNiBAQCBlbnVtIEFkZFJ1bGVGbGFncyB7CiAgICAgUnVsZUhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4gPSAxLAogICAgIFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvciAgID0g
MSA8PCAxLAogICAgIFJ1bGVJc0luUmVnaW9uUnVsZSAgICAgICAgICAgID0gMSA8PCAyLAotICAg
IFJ1bGVJc0hvc3RSdWxlICAgICAgICAgICAgICAgID0gMSA8PCAzLAogfTsKIAogY2xhc3MgQ1NT
U2VsZWN0b3I7CkBAIC02Myw3ICs2Miw2IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsaW5rTWF0
Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9saW5rTWF0Y2hUeXBlOyB9CiAgICAgYm9vbCBoYXNE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOyB9CiAgICAgYm9vbCBpc0luUmVnaW9uUnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNJblJlZ2lvblJ1bGU7IH0KLSAgICB2b2lkIGluY3JlYXNlU3BlY2lmaWNpdHkodW5zaWduZWQg
dmFsdWUpIHsgbV9zcGVjaWZpY2l0eSArPSB2YWx1ZTsgfQogCiAgICAgLy8gVHJ5IHRvIGJhbGFu
Y2UgYmV0d2VlbiBtZW1vcnkgdXNhZ2UgKHRoZXJlIGNhbiBiZSBsb3RzIG9mIFJ1bGVEYXRhIG9i
amVjdHMpIGFuZCBnb29kIGZpbHRlcmluZyBwZXJmb3JtYW5jZS4KICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4aW11bUlkZW50aWZpZXJDb3VudCA9IDQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggZDg5ZDY1ZjNlNjYzYTQ0YzA4NWM3MmUwZmJhNWRmNmU4NWIyMzcw
Yi4uMDJhZmYzMmI1N2ExMDgwZTMzMmMyYzNhZjc3ZjBhNTI4NGY2NDZlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNzAzLDcgKzcwMyw3IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQpCiAg
ICAgICAgIGlmICghbV9ydWxlTGlzdCkKICAgICAgICAgICAgIG1fcnVsZUxpc3QgPSBTdGF0aWND
U1NSdWxlTGlzdDo6Y3JlYXRlKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X21hdGNoZWRSdWxlcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fcnVsZUxpc3QtPnJ1bGVz
KCkuYXBwZW5kKG1fbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPmNyZWF0ZUNTU09NV3JhcHBlcigp
KTsKKyAgICAgICAgICAgIG1fcnVsZUxpc3QtPnJ1bGVzKCkuYXBwZW5kKG1fbWF0Y2hlZFJ1bGVz
W2ldLnNlY29uZC0+cnVsZSgpLT5jcmVhdGVDU1NPTVdyYXBwZXIoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTcxMSwxMiArNzExLDEyIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29y
dEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQpCiAgICAgLy8gRklY
TUU6IFRoaXMgc3Vja3MsIHRoZSBpbnNwZWN0b3Igc2hvdWxkIGdldCB0aGUgc3R5bGUgZnJvbSB0
aGUgdmlzaXRlZCBzdHlsZSBpdHNlbGYuCiAgICAgYm9vbCBzd2FwVmlzaXRlZFVudmlzaXRlZCA9
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShtX2VsZW1lbnQsIENT
U1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKG1fc3R5bGUgJiYgbV9t
YXRjaGVkUnVsZXNbaV0tPmNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQorICAg
ICAgICBpZiAobV9zdHlsZSAmJiBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmNvbnRhaW5zVW5j
b21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0VW5pcXVl
KCk7Ci0gICAgICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBtX21hdGNoZWRSdWxlc1tpXS0+
bGlua01hdGNoVHlwZSgpOworICAgICAgICB1bnNpZ25lZCBsaW5rTWF0Y2hUeXBlID0gbV9tYXRj
aGVkUnVsZXNbaV0uc2Vjb25kLT5saW5rTWF0Y2hUeXBlKCk7CiAgICAgICAgIGlmIChzd2FwVmlz
aXRlZFVudmlzaXRlZCAmJiBsaW5rTWF0Y2hUeXBlICYmIGxpbmtNYXRjaFR5cGUgIT0gU2VsZWN0
b3JDaGVja2VyOjpNYXRjaEFsbCkKICAgICAgICAgICAgIGxpbmtNYXRjaFR5cGUgPSAobGlua01h
dGNoVHlwZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZCkgPyBTZWxlY3RvckNoZWNr
ZXI6Ok1hdGNoTGluayA6IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwotICAgICAgICBh
ZGRNYXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1fbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPnBy
b3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9t
YXRjaGVkUnVsZXNbaV0tPmlzSW5SZWdpb25SdWxlKCkpOworICAgICAgICBhZGRNYXRjaGVkUHJv
cGVydGllcyhyZXN1bHQsIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+cnVsZSgpLT5wcm9wZXJ0
aWVzKCksIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+cnVsZSgpLCBsaW5rTWF0Y2hUeXBlLCBt
X21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmlzSW5SZWdpb25SdWxlKCkpOwogICAgIH0KIH0KIApA
QCAtNzI2LDEzICs3MjYsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhv
clJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHQKICAgICBpZiAoIW1f
c2NvcGVSZXNvbHZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbWF0Y2hIb3N0UnVsZXMocmVz
dWx0LCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxl
cyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBp
dCBnb3QgaW5jb25zaXN0ZW50KS4KKyAgICBib29sIG5lZWRDaGVja1Njb3BlZFN0eWxlID0gbV9z
Y29wZVJlc29sdmVyLT5oYXNTY29wZWRTdHlsZXMoKSAmJiBtX3Njb3BlUmVzb2x2ZXItPmVuc3Vy
ZVN0YWNrQ29uc2lzdGVuY3kobV9lbGVtZW50KTsKIAotICAgIGlmICghbV9zY29wZVJlc29sdmVy
LT5oYXNTY29wZWRTdHlsZXMoKSkKLSAgICAgICAgcmV0dXJuOworICAgIC8vIE1hdGNoSG9zdFJ1
bGVzIHVzZXMgbnVtYmVyIG9mIHNjb3BlZCBSdWxlU2V0cyB3aGljaCBtaWdodCBiZSBhcHBsaWVk
CisgICAgLy8gdG8gdGhlIG1fZWxlbWVudC4gU28gbmVlZCB0byBpbnZva2UgYWZ0ZXIgZW5zdXJl
U3RhY2tDb25zaXN0ZW5jeS4KKyAgICBtYXRjaEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0
eVJ1bGVzKTsKIAotICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2lu
ZyB0aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lz
dGVudCkuCi0gICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPmVuc3VyZVN0YWNrQ29uc2lzdGVuY3ko
bV9lbGVtZW50KSkKKyAgICBpZiAoIW5lZWRDaGVja1Njb3BlZFN0eWxlKQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9lbGVtZW50LT50cmVlU2NvcGUo
KS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKQEAgLTc0OCw4ICs3NDksOCBAQCB2b2lkIFN0eWxlUmVz
b2x2ZXI6Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBp
bmNsdWRlRW1wdAogICAgICAgICAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPm1hdGNoZXNTdHls
ZUJvdW5kcyhmcmFtZSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAg
ICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVz
LCBmcmFtZS5tX3Njb3BlKTsKKworICAgICAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRl
RW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSwgaSArIDEpOwogICAgICAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCBy
ZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICAgICAgICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JSZWdpb24oZnJhbWUubV9ydWxlU2V0LCByZXN1bHQucmFuZ2VzLmZpcnN0
QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CiAgICAg
fQpAQCAtNzc5LDggKzc4MCw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hIb3N0UnVsZXMo
TWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcykKICAgICBpZiAobWF0
Y2hlZFJ1bGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hPcHRpb25z
IG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMpOwotICAgIG9wdGlvbnMuc2NvcGUgPSBtX2VsZW1l
bnQ7CisgICAgdW5zaWduZWQgc2NvcGVMZXZlbCA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tTaXpl
KCkgKyAxOworICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBtX2Vs
ZW1lbnQsIHNjb3BlTGV2ZWwpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGNoZWRSdWxlcy5z
aXplKCk7IGkgPiAwOyAtLWkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKG1hdGNoZWRS
dWxlcy5hdChpLTEpLCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdl
cy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CiAjZWxzZQpAQCAtODc2LDcgKzg3Nyw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3Rv
cjxSdWxlRGF0YT4qIHJ1bGVzLCBpCiAgICAgICAgICAgICAgICAgICAgIGZpcnN0UnVsZUluZGV4
ID0gbGFzdFJ1bGVJbmRleDsKIAogICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIHJ1bGUgdG8g
b3VyIGxpc3Qgb2YgbWF0Y2hlZCBydWxlcy4KLSAgICAgICAgICAgICAgICBhZGRNYXRjaGVkUnVs
ZSgmcnVsZURhdGEpOworICAgICAgICAgICAgICAgIGFkZE1hdGNoZWRSdWxlKG9wdGlvbnMuc2Nv
cGVMZXZlbCwgJnJ1bGVEYXRhKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZE1hdGNoUnVsZShjb29raWUsIHRydWUpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQpAQCAtODg1LDExICs4ODYsMTYgQEAgdm9pZCBTdHlsZVJlc29s
dmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiog
cnVsZXMsIGkKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoY29u
c3QgUnVsZURhdGEqIHIxLCBjb25zdCBSdWxlRGF0YSogcjIpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y29tcGFyZVJ1bGVzKFN0eWxlUmVzb2x2ZXI6OlNjb3BlUnVsZURhdGEgcjEsIFN0eWxlUmVzb2x2
ZXI6OlNjb3BlUnVsZURhdGEgcjIpCiB7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkxID0gcjEt
PnNwZWNpZmljaXR5KCk7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkyID0gcjItPnNwZWNpZmlj
aXR5KCk7Ci0gICAgcmV0dXJuIChzcGVjaWZpY2l0eTEgPT0gc3BlY2lmaWNpdHkyKSA/IHIxLT5w
b3NpdGlvbigpIDwgcjItPnBvc2l0aW9uKCkgOiBzcGVjaWZpY2l0eTEgPCBzcGVjaWZpY2l0eTI7
CisgICAgaWYgKHIxLmZpcnN0ID09IHIyLmZpcnN0KSB7CisgICAgICAgIHVuc2lnbmVkIHNwZWNp
ZmljaXR5MSA9IHIxLnNlY29uZC0+c3BlY2lmaWNpdHkoKTsKKyAgICAgICAgdW5zaWduZWQgc3Bl
Y2lmaWNpdHkyID0gcjIuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAgICByZXR1cm4gKHNw
ZWNpZmljaXR5MSA9PSBzcGVjaWZpY2l0eTIpID8KKyAgICAgICAgICAgIHIxLnNlY29uZC0+cG9z
aXRpb24oKSA8IHIyLnNlY29uZC0+cG9zaXRpb24oKSA6CisgICAgICAgICAgICBzcGVjaWZpY2l0
eTEgPCBzcGVjaWZpY2l0eTI7CisgICAgfQorICAgIHJldHVybiByMS5maXJzdCA8IHIyLmZpcnN0
OwogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRNYXRjaGVkUnVsZXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKaW5kZXggZGM3YWM4YTJiODQ0MzE0ZGYyZGFmNGI4YmNiYTliMjg3
N2YwY2Q5YS4uYmQ3MjYzYmZjMTg0NjhmN2YwNjcwODZmNDY1ZDZkYjNmMmQ3NWUwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVk
aWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVsZUZl
YXR1cmUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgIlN0eWxl
SW5oZXJpdGVkRGF0YS5oIgpAQCAtMzA1LDcgKzMwNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZVRvQWRqdXN0LCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUsIEVsZW1lbnQqKTsKIAotICAgIHZvaWQgYWRkTWF0Y2hlZFJ1bGUoY29u
c3QgUnVsZURhdGEqIHJ1bGUpIHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKHJ1bGUpOyB9CisgICAg
dm9pZCBhZGRNYXRjaGVkUnVsZSh1bnNpZ25lZCBzY29wZSwgY29uc3QgUnVsZURhdGEqIHJ1bGUp
IHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKFNjb3BlUnVsZURhdGEoc2NvcGUsIHJ1bGUpKTsgfQog
CiAgICAgc3RydWN0IE1hdGNoUmFuZ2VzIHsKICAgICAgICAgTWF0Y2hSYW5nZXMoKSA6IGZpcnN0
VUFSdWxlKC0xKSwgbGFzdFVBUnVsZSgtMSksIGZpcnN0QXV0aG9yUnVsZSgtMSksIGxhc3RBdXRo
b3JSdWxlKC0xKSwgZmlyc3RVc2VyUnVsZSgtMSksIGxhc3RVc2VyUnVsZSgtMSkgeyB9CkBAIC0z
NDEsOSArMzQyLDEwIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHN0cnVjdCBNYXRjaE9wdGlv
bnMgewotICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5UnVs
ZXMoaW5jbHVkZUVtcHR5UnVsZXMpIHsgfQorICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNs
dWRlRW1wdHlSdWxlcywgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwLCB1bnNpZ25lZCBz
Y29wZUxldmVsID0gMCkgOiBzY29wZShzY29wZSksIGluY2x1ZGVFbXB0eVJ1bGVzKGluY2x1ZGVF
bXB0eVJ1bGVzKSwgc2NvcGVMZXZlbChzY29wZUxldmVsKSB7IH0KICAgICAgICAgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGU7CiAgICAgICAgIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXM7CisgICAg
ICAgIHVuc2lnbmVkIHNjb3BlTGV2ZWw7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIGFkZE1h
dGNoZWRQcm9wZXJ0aWVzKE1hdGNoUmVzdWx0JiwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJv
cGVydGllcywgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoQWxsLCBib29sIGluUmVnaW9uUnVsZSA9IGZhbHNlKTsKQEAgLTQyNiw2
ICs0MjgsOCBAQCBwdWJsaWM6CiAgICAgQ1NTVG9TdHlsZU1hcCogc3R5bGVNYXAoKSB7IHJldHVy
biAmbV9zdHlsZU1hcDsgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CisKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgY29uc3Qg
UnVsZURhdGEqPiBTY29wZVJ1bGVEYXRhOwogICAgIAogcHJpdmF0ZToKICAgICBzdGF0aWMgUmVu
ZGVyU3R5bGUqIHNfc3R5bGVOb3RZZXRBdmFpbGFibGU7CkBAIC00NzMsNyArNDc3LDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEEgYnVmZmVyIHVzZWQgdG8gaG9sZCB0aGUgc2V0IG9mIG1hdGNoZWQg
cnVsZXMgZm9yIGFuIGVsZW1lbnQsIGFuZCBhIHRlbXBvcmFyeSBidWZmZXIgdXNlZCBmb3IKICAg
ICAvLyBtZXJnZSBzb3J0aW5nLgotICAgIFZlY3Rvcjxjb25zdCBSdWxlRGF0YSosIDMyPiBtX21h
dGNoZWRSdWxlczsKKyAgICBWZWN0b3I8U2NvcGVSdWxlRGF0YSwgMzI+IG1fbWF0Y2hlZFJ1bGVz
OwogCiAgICAgUmVmUHRyPFN0YXRpY0NTU1J1bGVMaXN0PiBtX3J1bGVMaXN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDc2ODE3MjUzMWViM2EyMDVl
NWVmMGJiMzQyY2IwYzhlMjliZmNiMmQuLjczMDA1MGQ2YzRkODE3MmU1NTRiZTg2MDI4ZDliYjU3
YzdiMTJiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCkBA
IC0xODMsNyArMTgzLDcgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKFN0
eWxlUnVsZUhvc3QqIGhvc3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2UKIAogICAgIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgY2hpbGRSdWxlcyA9IGhvc3RSdWxlLT5jaGls
ZFJ1bGVzKCk7CiAgICAgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncyA9IGhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4gPyBSdWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA6IFJ1bGVIYXNOb1Nw
ZWNpYWxTdGF0ZTsKLSAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxlRmxhZ3M+
KGFkZFJ1bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvciB8IFJ1bGVJc0hvc3RS
dWxlKTsKKyAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxlRmxhZ3M+KGFkZFJ1
bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3Rvcik7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGNoaWxkUnVsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3R5bGVSdWxl
QmFzZSogaG9zdFN0eWxpbmdSdWxlID0gY2hpbGRSdWxlc1tpXS5nZXQoKTsKICAgICAgICAgaWYg
KGhvc3RTdHlsaW5nUnVsZS0+aXNTdHlsZVJ1bGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuY3BwCmluZGV4IGQ2ZWQzYTk3MzMxZDY3OTI2NGI3MTdjZDY4NjBjMWVmOWNk
NjA2YWUuLmE4MWYzYmQ4NGQwZGNiNjZkZjZiMzY1ZGRhMjRlZTZmM2RkMjBkODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtMTQwLDkgKzE0MCwxMSBAQCB2
b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKGJvb2wgc2NvcGVk
KQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LQogICAgIHNjb3BlLT5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Ci0gICAgc2NvcGUt
PnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBpZiAoc2NvcGUtPmlzU2hhZG93Um9vdCgpKQor
ICAgICAgICBzY29wZS0+c2hhZG93SG9zdCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAg
ZWxzZQorICAgICAgICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIGlmIChpbkRv
Y3VtZW50KCkgJiYgIWRvY3VtZW50KCktPnBhcnNpbmcoKSAmJiBkb2N1bWVudCgpLT5yZW5kZXJl
cigpKQogICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyQ2hhbmdlZChEZWZlclJlY2Fs
Y1N0eWxlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDlmYmZhYWU0YjllNTRkMDliNGNhNWU5ODdjMTY1OTAxZmMzZWE3
ZmIuLmY1MjkxMTBjYjNlZDIwODdjODdiOWFkMTAwMTI5MzI3YThhZDhiMzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0xMi0xMCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW1NoYWRvdyBET01dOiBzY29wZWQgc3R5bGVzIGFyZSBub3QgYXBwbGll
ZCBpbiB0aGUgY2FzY2FkZSBvcmRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQv
c3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUt
cmVnaW9uLXN0eWxpbmcuaHRtbDoKKyAgICAgICAgQ2hhbmdlZCB0aGUgdGVzdCdzIGV4cGVjdGF0
aW9uLgorICAgICAgICBTaW5jZSBAcmVnaW9uJ3Mgc2NvcGluZyBlbGVtZW50IGlzIDpyb290IGJ1
dCBzY29wZWQgc3R5bGVzJyBzY29waW5nCisgICAgICAgIGVsZW1lbnQgaXMgYSBkZXNjZW5kYW50
IGVsZW1lbnQgb2YgOnJvb3QsIHNjb3BlZCBzdHlsZXMgc2hvdWxkIHdpbi4KKwogMjAxMi0xMi0x
MCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDczMzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQw
MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qg
d2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9y
IG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNzZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBk
ZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVudCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50
LgorYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitP
bmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0
aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5z
IGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQuc3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5
bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcg
cnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBj
bGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21l
IHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3Zl
IHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFu
IGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVk
IHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFk
b3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50
IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBz
aGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxl
cyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRhODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAg
Y29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93
L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVu
dCI+CisgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAg
PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIg
c2NvcGVkIHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7
CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGlu
IGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1l
bnQuIik7CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJn
ZXQuIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIs
ICcicmdiKDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0g
dHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjog
eWVsbG93OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVu
ZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBp
cyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xh
c3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBk
b2N1bWVudC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJn
ZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVk
ID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7
IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxl
Rm9yUGFyZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0
aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5n
IHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNv
bG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSInKTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9
InRhcmdldEluU2hhZG93IiBjbGFzcz0idGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNo
YWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFk
b3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJp
dGFuY2UgZnJvbSBpdHMgc2hhZG93IGhvc3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAor
Ly8gdGhlIHNwYW4gaW4gdGhlIHNoYWRvdyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKK2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRv
dyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdl
dCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhv
ciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVz
IG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNo
YWRvdykuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRN
TCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHls
ZUluU2hhZG93KTsKK2RlYnVnKCJBcHBlbmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hh
ZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNjb3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3Qu
IFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5k
YW50IChzY29wZWQpIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJl
Z2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhkMzRiZmNk
ZTFiODQ5YWM2NjlkYWFhNC4uOWE3MTMzZDMzZDI1ZWQ5YmJiYzk3MTkwMGIzZDE5NjNhZWQ3YjM1
OCAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTEsNTEgKzEsNTEgQEAKLTwhZG9jdHlwZSBodG1sPg0KLTxo
dG1sPg0KLTxoZWFkPg0KLQk8c3R5bGU+DQotCWJvZHkgew0KLQkJZm9udC1mYW1pbHk6IG1vbm9z
cGFjZTsNCi0JfQ0KLQlwIHsNCi0JCW1hcmdpbjogMDsNCi0JfQ0KLQ0KLQkuY29udGFpbmVyIHsN
Ci0JCXdpZHRoOiAxM2VtOw0KLQkJaGVpZ2h0OiAxMGVtOw0KLQkJYmFja2dyb3VuZC1jb2xvcjog
bGlnaHRncmF5Ow0KLQl9DQotDQotCS5saWdodCB7DQotCQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdo
dGdyZWVuOw0KLQl9DQotDQotCS5saW1lIHsNCi0JCWJhY2tncm91bmQtY29sb3I6IGxpbWU7DQot
CX0NCi0NCi0JLmdyZWVuIHsNCi0JCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOw0KLQl9DQotCTwv
c3R5bGU+DQotPC9oZWFkPg0KLTxib2R5Pg0KLQlQYXJ0aWFsIG92ZXJsYXAsIEByZWdpb24gbW9y
ZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0eWxlIGhhcyBy
dWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9yICZsdDtwJmd0
OykNCi0JPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KLQkJPHAgY2xhc3M9J2xpZ2h0
Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0eWxlZCBsaW5l
IG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+
DQotCTwvZGl2Pg0KLQlQYXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUg
c3BlY2lmaWMgdGhhbiBAcmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZn
dDssIHNjb3BlZCBzdHlsZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCi0JPGRpdiBjbGFz
cz0nY29udGFpbmVyJyBpZD0ncjInPg0KLQkJPHAgY2xhc3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBv
ZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQot
CQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCTwvZGl2Pg0KLQlP
dmVybGFwLCBAcmVnaW9uIGFuZCAmbHQ7c3R5bGUgc2NvcGVkJmd0O3VzaW5nIHRoZSBzYW1lIHNl
bGVjdG9ycyAoYm90aCBAcmVnaW9uIGFuZCBzY29wZWQgc3R5bGUgaGF2ZSBydWxlcyBmb3IgJmx0
O3AmZ3Q7LCBjbGFzcyBhbmQgaWQpDQotCTxkaXYgY2xhc3M9J2NvbnRhaW5lcicgaWQ9J3IzJz4N
Ci0JCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCi0JCTxwIGNsYXNz
PSdsaW1lJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2dyZWVuJz5TdHls
ZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQk8L2Rpdj4NCi08L2JvZHk+DQotPC9odG1sPgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKwk8
c3R5bGU+CisJYm9keSB7CisJCWZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisJfQorCXAgeworCQlt
YXJnaW46IDA7CisJfQorCisJLmNvbnRhaW5lciB7CisJCXdpZHRoOiAxM2VtOworCQloZWlnaHQ6
IDEwZW07CisJCWJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JheTsKKwl9CisKKwkubGlnaHQgewor
CQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOworCX0KKworCS5saW1lIHsKKwkJYmFja2dy
b3VuZC1jb2xvcjogbGltZTsKKwl9CisKKwkuZ3JlZW4geworCQliYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjsKKwl9CisJPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorCVBhcnRpYWwgb3ZlcmxhcCwg
QHJlZ2lvbiBtb3JlIHNwZWNpZmljIHRoYW4gJmx0O3N0eWxlIHNjb3BlZCZndDsgKEByZWdpb24g
c3R5bGUgaGFzIHJ1bGVzIGZvciBjbGFzcyBhbmQgaWQsIHNjb3BlZCBzdHlsZSBoYXMgcnVsZSBm
b3IgJmx0O3AmZ3Q7KQorCTxkaXYgY2xhc3M9J2NvbnRhaW5lcicgaWQ9J3IxJz4KKwkJPHAgY2xh
c3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPgorCQk8cCBjbGFzcz0nbGlnaHQnPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+CisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxpbmUgb2Yg
dGV4dDwvcD4KKwk8L2Rpdj4KKwlQYXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7
IG1vcmUgc3BlY2lmaWMgdGhhbiBAcmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAm
bHQ7cCZndDssIHNjb3BlZCBzdHlsZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkKKwk8ZGl2
IGNsYXNzPSdjb250YWluZXInIGlkPSdyMic+CisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxp
bmUgb2YgdGV4dDwvcD4KKwkJPHAgY2xhc3M9J2xpbWUnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+
CisJCTxwIGNsYXNzPSdncmVlbic+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4KKwk8L2Rpdj4KKwlP
dmVybGFwLCBAcmVnaW9uIGFuZCAmbHQ7c3R5bGUgc2NvcGVkJmd0O3VzaW5nIHRoZSBzYW1lIHNl
bGVjdG9ycyAoYm90aCBAcmVnaW9uIGFuZCBzY29wZWQgc3R5bGUgaGF2ZSBydWxlcyBmb3IgJmx0
O3AmZ3Q7LCBjbGFzcyBhbmQgaWQpCisJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjMnPgor
CQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+CisJCTxwIGNsYXNzPSds
aW1lJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPgorCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBs
aW5lIG9mIHRleHQ8L3A+CisJPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVn
aW9uLXN0eWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQt
aW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sCmluZGV4IGJlOWNjZDJmYmY5OGNi
ZjhhMWE4M2FmMDVkYjhkNGYzZWI5ODRiOTUuLmRlODA5Yzc2ODA1NDljZTc2ODdiMjIyMzQzODJm
NjM3ZDA3NDQwNDcgMTAwNzU1Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1z
Y29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5
bGluZy5odG1sCkBAIC0xLDExMiArMSwxMTIgQEAKLTwhZG9jdHlwZSBodG1sPg0KLTxodG1sPg0K
LTxoZWFkPg0KLQk8c3R5bGU+DQotCWJvZHkgew0KLQkJZm9udC1mYW1pbHk6IG1vbm9zcGFjZTsN
Ci0JfQ0KLQlwIHsNCi0JCW1hcmdpbjogMDsNCi0JfQ0KLQ0KLQkuY29udGFpbmVyIHsNCi0JCXdp
ZHRoOiAxM2VtOw0KLQkJaGVpZ2h0OiAxMGVtOw0KLQkJYmFja2dyb3VuZC1jb2xvcjogbGlnaHRn
cmF5Ow0KLQl9DQotDQotCSNmMSB7DQotCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzE7DQotCX0N
Ci0JI3IxIHsNCi0JCS13ZWJraXQtZmxvdy1mcm9tOiBmbG93MTsNCi0JfQ0KLQlALXdlYmtpdC1y
ZWdpb24gI3IxIHsNCi0JCS5jMSB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCi0JCX0N
Ci0JCSNwMSB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47DQotCQl9DQotCX0NCi0NCi0J
I2YyIHsNCi0JCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93MjsNCi0JfQ0KLQkjcjIgew0KLQkJLXdl
YmtpdC1mbG93LWZyb206IGZsb3cyOw0KLQl9DQotCUAtd2Via2l0LXJlZ2lvbiAjcjIgew0KLQkJ
cCB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCi0JCX0NCi0JfQ0KLQ0KLQkj
ZjMgew0KLQkJLXdlYmtpdC1mbG93LWludG86IGZsb3czOw0KLQl9DQotCSNyMyB7DQotCQktd2Vi
a2l0LWZsb3ctZnJvbTogZmxvdzM7DQotCX0NCi0JQC13ZWJraXQtcmVnaW9uICNyMyB7DQotCQlw
IHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOw0KLQkJfQ0KLQkJLmMzIHsNCi0J
CQliYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOw0KLQkJfQ0KLQkJI3AzIHsNCi0JCQliYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsNCi0JCX0NCi0JfQ0KLQk8L3N0eWxlPg0KLTwvaGVhZD4NCi08Ym9keT4N
Ci0JPGRpdiBpZD0nZjEnPg0KLQkJPHN0eWxlIHNjb3BlZD0ndHJ1ZSc+DQotCQkJcCB7DQotCQkJ
CWJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47DQotCQkJfQ0KLQkJPC9zdHlsZT4NCi0JCTxw
PlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nYzEnPlN0eWxlZCBsaW5lIG9m
IHRleHQ8L3A+DQotCQk8cCBpZD0ncDEnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCTwvZGl2
Pg0KLQk8ZGl2IGlkPSdmMic+DQotCQk8c3R5bGUgc2NvcGVkPSd0cnVlJz4NCi0JCQkuYzIgew0K
LQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOw0KLQkJCX0NCi0JCQkjcDIgew0KLQkJCQliYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsNCi0JCQl9DQotCQk8L3N0eWxlPg0KLQkJPHA+U3R5bGVkIGxp
bmUgb2YgdGV4dDwvcD4NCi0JCTxwIGNsYXNzPSdjMic+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4N
Ci0JCTxwIGlkPSdwMic+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCi0JPC9kaXY+DQotCTxkaXYg
aWQ9J2YzJz4NCi0JCTxzdHlsZSBzY29wZWQ9J3RydWUnPg0KLQkJCXAgew0KLQkJCQliYWNrZ3Jv
dW5kLWNvbG9yOiB5ZWxsb3c7DQotCQkJfQ0KLQkJCS5jMyB7DQotCQkJCWJhY2tncm91bmQtY29s
b3I6IG9yYW5nZTsNCi0JCQl9DQotCQkJI3AzIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogcmVk
Ow0KLQkJCX0NCi0JCTwvc3R5bGU+DQotCQk8cD5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJ
PHAgY2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgaWQ9J3AzJz5TdHls
ZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQk8L2Rpdj4NCi0NCi0JUGFydGlhbCBvdmVybGFwLCBAcmVn
aW9uIG1vcmUgc3BlY2lmaWMgdGhhbiAmbHQ7c3R5bGUgc2NvcGVkJmd0OyAoQHJlZ2lvbiBzdHls
ZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCwgc2NvcGVkIHN0eWxlIGhhcyBydWxlIGZvciAm
bHQ7cCZndDspDQotCTxkaXYgY2xhc3M9J2NvbnRhaW5lcicgaWQ9J3IxJz48L2Rpdj4NCi0JUGFy
dGlhbCBvdmVybGFwLCAmbHQ7c3R5bGUgc2NvcGVkJmd0OyBtb3JlIHNwZWNpZmljIHRoYW4gQHJl
Z2lvbiAoQHJlZ2lvbiBzdHlsZSBoYXMgcnVsZSBmb3IgJmx0O3AmZ3Q7LCBzY29wZWQgc3R5bGUg
aGFzIHJ1bGVzIGZvciBjbGFzcyBhbmQgaWQpDQotCTxkaXYgY2xhc3M9J2NvbnRhaW5lcicgaWQ9
J3IyJz48L2Rpdj4NCi0JT3ZlcmxhcCwgQHJlZ2lvbiBhbmQgJmx0O3N0eWxlIHNjb3BlZCZndDt1
c2luZyB0aGUgc2FtZSBzZWxlY3RvcnMgKGJvdGggQHJlZ2lvbiBhbmQgc2NvcGVkIHN0eWxlIGhh
dmUgcnVsZXMgZm9yICZsdDtwJmd0OywgY2xhc3MgYW5kIGlkKQ0KLQk8ZGl2IGNsYXNzPSdjb250
YWluZXInIGlkPSdyMyc+PC9kaXY+DQotPC9ib2R5Pg0KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0
IGVuZCBvZiBmaWxlCis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisJPHN0eWxlPgor
CWJvZHkgeworCQlmb250LWZhbWlseTogbW9ub3NwYWNlOworCX0KKwlwIHsKKwkJbWFyZ2luOiAw
OworCX0KKworCS5jb250YWluZXIgeworCQl3aWR0aDogMTNlbTsKKwkJaGVpZ2h0OiAxMGVtOwor
CQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyYXk7CisJfQorCisJI2YxIHsKKwkJLXdlYmtpdC1m
bG93LWludG86IGZsb3cxOworCX0KKwkjcjEgeworCQktd2Via2l0LWZsb3ctZnJvbTogZmxvdzE7
CisJfQorCUAtd2Via2l0LXJlZ2lvbiAjcjEgeworCQkuYzEgeworCQkJYmFja2dyb3VuZC1jb2xv
cjogbGltZTsKKwkJfQorCQkjcDEgeworCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCX0K
Kwl9CisKKwkjZjIgeworCQktd2Via2l0LWZsb3ctaW50bzogZmxvdzI7CisJfQorCSNyMiB7CisJ
CS13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsKKwl9CisJQC13ZWJraXQtcmVnaW9uICNyMiB7CisJ
CXAgeworCQkJYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsKKwkJfQorCX0KKworCSNmMyB7
CisJCS13ZWJraXQtZmxvdy1pbnRvOiBmbG93MzsKKwl9CisJI3IzIHsKKwkJLXdlYmtpdC1mbG93
LWZyb206IGZsb3czOworCX0KKwlALXdlYmtpdC1yZWdpb24gI3IzIHsKKwkJcCB7CisJCQliYWNr
Z3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisJCX0KKwkJLmMzIHsKKwkJCWJhY2tncm91bmQtY29sb3I6
IG9yYW5nZTsKKwkJfQorCQkjcDMgeworCQkJYmFja2dyb3VuZC1jb2xvcjogcmVkOworCQl9CisJ
fQorCTwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKwk8ZGl2IGlkPSdmMSc+CisJCTxzdHlsZSBz
Y29wZWQ9J3RydWUnPgorCQkJcCB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsK
KwkJCX0KKwkJPC9zdHlsZT4KKwkJPHA+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4KKwkJPHAgY2xh
c3M9J2MxJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPgorCQk8cCBpZD0ncDEnPlN0eWxlZCBsaW5l
IG9mIHRleHQ8L3A+CisJPC9kaXY+CisJPGRpdiBpZD0nZjInPgorCQk8c3R5bGUgc2NvcGVkPSd0
cnVlJz4KKwkJCS5jMiB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsKKwkJCX0KKwkJCSNw
MiB7CisJCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisJCQl9CisJCTwvc3R5bGU+CisJCTxw
PlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+CisJCTxwIGNsYXNzPSdjMic+U3R5bGVkIGxpbmUgb2Yg
dGV4dDwvcD4KKwkJPHAgaWQ9J3AyJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPgorCTwvZGl2Pgor
CTxkaXYgaWQ9J2YzJz4KKwkJPHN0eWxlIHNjb3BlZD0ndHJ1ZSc+CisJCQlwIHsKKwkJCQliYWNr
Z3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOworCQkJfQorCQkJLmMzIHsKKwkJCQliYWNrZ3JvdW5k
LWNvbG9yOiBsaW1lOworCQkJfQorCQkJI3AzIHsKKwkJCQliYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsKKwkJCX0KKwkJPC9zdHlsZT4KKwkJPHA+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4KKwkJPHAg
Y2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPgorCQk8cCBpZD0ncDMnPlN0eWxlZCBs
aW5lIG9mIHRleHQ8L3A+CisJPC9kaXY+CisKKwlQYXJ0aWFsIG92ZXJsYXAsIEByZWdpb24gbW9y
ZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0eWxlIGhhcyBy
dWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9yICZsdDtwJmd0
OykKKwk8ZGl2IGNsYXNzPSdjb250YWluZXInIGlkPSdyMSc+PC9kaXY+CisJUGFydGlhbCBvdmVy
bGFwLCAmbHQ7c3R5bGUgc2NvcGVkJmd0OyBtb3JlIHNwZWNpZmljIHRoYW4gQHJlZ2lvbiAoQHJl
Z2lvbiBzdHlsZSBoYXMgcnVsZSBmb3IgJmx0O3AmZ3Q7LCBzY29wZWQgc3R5bGUgaGFzIHJ1bGVz
IGZvciBjbGFzcyBhbmQgaWQpCisJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjInPjwvZGl2
PgorCU92ZXJsYXAsIEByZWdpb24gYW5kICZsdDtzdHlsZSBzY29wZWQmZ3Q7dXNpbmcgdGhlIHNh
bWUgc2VsZWN0b3JzIChib3RoIEByZWdpb24gYW5kIHNjb3BlZCBzdHlsZSBoYXZlIHJ1bGVzIGZv
ciAmbHQ7cCZndDssIGNsYXNzIGFuZCBpZCkKKwk8ZGl2IGNsYXNzPSdjb250YWluZXInIGlkPSdy
Myc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178740</attachid>
            <date>2012-12-11 00:30:28 -0800</date>
            <delta_ts>2012-12-11 22:31:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121211172749.patch</filename>
            <type>text/plain</type>
            <size>23016</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3MjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzlhZjkzNDkzNTc1ODVk
MmU3MjY1MDRhN2NjYzQ3YWY0NzQ4NmVmMi4uYjljMjYzNzFjNTA5MmQ4OTNmYWI4YjVlNTVlZDdj
OTI0NjMwM2NhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTEwICBObydhbSBSb3NlbnRo
YWwgIDxub2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEzNzAwNik6IENT
UyBjbGlwIG9uIHNvbGlkIGNvbG9yIGNvbXBvc2l0ZWQgZGl2IGJyb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVT
ZXQuY3BwCmluZGV4IDlhNzhjMGZmOTAzODljOTBjNDRkYTVhNmI5ZjVmZjdhZTIwYzZlMzEuLmU2
MjdjMDVmMmZlMjYzOWE4YzY0MTczZWZiNzMwMDE4MWEzM2ViY2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5jcHAKQEAgLTE5MSwxMCArMTkxLDYgQEAgdm9pZCBSdWxlU2V0OjphZGRUb1J1bGVTZXQoQXRv
bWljU3RyaW5nSW1wbCoga2V5LCBBdG9tUnVsZU1hcCYgbWFwLCBjb25zdCBSdWxlRGEKIHZvaWQg
UnVsZVNldDo6YWRkUnVsZShTdHlsZVJ1bGUqIHJ1bGUsIHVuc2lnbmVkIHNlbGVjdG9ySW5kZXgs
IEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MpCiB7CiAgICAgUnVsZURhdGEgcnVsZURhdGEocnVs
ZSwgc2VsZWN0b3JJbmRleCwgbV9ydWxlQ291bnQrKywgYWRkUnVsZUZsYWdzKTsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgYXRob3N0UnVsZVNwZWNpZmljaXR5ID0gMHgxMDAwMDA7Ci0KLSAg
ICBpZiAoYWRkUnVsZUZsYWdzICYgUnVsZUlzSG9zdFJ1bGUpCi0gICAgICAgIHJ1bGVEYXRhLmlu
Y3JlYXNlU3BlY2lmaWNpdHkoYXRob3N0UnVsZVNwZWNpZmljaXR5KTsKIAogICAgIGNvbGxlY3RG
ZWF0dXJlc0Zyb21SdWxlRGF0YShtX2ZlYXR1cmVzLCBydWxlRGF0YSk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5oCmluZGV4IGEyZmJlY2JjMDBiMmNhMWI1MzJmNDk2YTk1YzA5MzUwMjZmYTRmN2QuLjM3YWY5
ZDQ2NDQ2MzRhMzNlYWJjYmY2MjFkNTJmYjgwYzQwOWJhOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9SdWxlU2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaApA
QCAtMzYsNyArMzYsNiBAQCBlbnVtIEFkZFJ1bGVGbGFncyB7CiAgICAgUnVsZUhhc0RvY3VtZW50
U2VjdXJpdHlPcmlnaW4gPSAxLAogICAgIFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvciAgID0g
MSA8PCAxLAogICAgIFJ1bGVJc0luUmVnaW9uUnVsZSAgICAgICAgICAgID0gMSA8PCAyLAotICAg
IFJ1bGVJc0hvc3RSdWxlICAgICAgICAgICAgICAgID0gMSA8PCAzLAogfTsKIAogY2xhc3MgQ1NT
U2VsZWN0b3I7CkBAIC02Myw3ICs2Miw2IEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBsaW5rTWF0
Y2hUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9saW5rTWF0Y2hUeXBlOyB9CiAgICAgYm9vbCBoYXNE
b2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9oYXNEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luOyB9CiAgICAgYm9vbCBpc0luUmVnaW9uUnVsZSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNJblJlZ2lvblJ1bGU7IH0KLSAgICB2b2lkIGluY3JlYXNlU3BlY2lmaWNpdHkodW5zaWduZWQg
dmFsdWUpIHsgbV9zcGVjaWZpY2l0eSArPSB2YWx1ZTsgfQogCiAgICAgLy8gVHJ5IHRvIGJhbGFu
Y2UgYmV0d2VlbiBtZW1vcnkgdXNhZ2UgKHRoZXJlIGNhbiBiZSBsb3RzIG9mIFJ1bGVEYXRhIG9i
amVjdHMpIGFuZCBnb29kIGZpbHRlcmluZyBwZXJmb3JtYW5jZS4KICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4aW11bUlkZW50aWZpZXJDb3VudCA9IDQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggZDg5ZDY1ZjNlNjYzYTQ0YzA4NWM3MmUwZmJhNWRmNmU4NWIyMzcw
Yi4uMDJhZmYzMmI1N2ExMDgwZTMzMmMyYzNhZjc3ZjBhNTI4NGY2NDZlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNzAzLDcgKzcwMyw3IEBAIHZvaWQgU3R5bGVSZXNv
bHZlcjo6c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQpCiAg
ICAgICAgIGlmICghbV9ydWxlTGlzdCkKICAgICAgICAgICAgIG1fcnVsZUxpc3QgPSBTdGF0aWND
U1NSdWxlTGlzdDo6Y3JlYXRlKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X21hdGNoZWRSdWxlcy5zaXplKCk7ICsraSkKLSAgICAgICAgICAgIG1fcnVsZUxpc3QtPnJ1bGVz
KCkuYXBwZW5kKG1fbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPmNyZWF0ZUNTU09NV3JhcHBlcigp
KTsKKyAgICAgICAgICAgIG1fcnVsZUxpc3QtPnJ1bGVzKCkuYXBwZW5kKG1fbWF0Y2hlZFJ1bGVz
W2ldLnNlY29uZC0+cnVsZSgpLT5jcmVhdGVDU1NPTVdyYXBwZXIoKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTcxMSwxMiArNzExLDEyIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29y
dEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQpCiAgICAgLy8gRklY
TUU6IFRoaXMgc3Vja3MsIHRoZSBpbnNwZWN0b3Igc2hvdWxkIGdldCB0aGUgc3R5bGUgZnJvbSB0
aGUgdmlzaXRlZCBzdHlsZSBpdHNlbGYuCiAgICAgYm9vbCBzd2FwVmlzaXRlZFVudmlzaXRlZCA9
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6Zm9yY2VQc2V1ZG9TdGF0ZShtX2VsZW1lbnQsIENT
U1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
bV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgaWYgKG1fc3R5bGUgJiYgbV9t
YXRjaGVkUnVsZXNbaV0tPmNvbnRhaW5zVW5jb21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQorICAg
ICAgICBpZiAobV9zdHlsZSAmJiBtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmNvbnRhaW5zVW5j
b21tb25BdHRyaWJ1dGVTZWxlY3RvcigpKQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0VW5pcXVl
KCk7Ci0gICAgICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBtX21hdGNoZWRSdWxlc1tpXS0+
bGlua01hdGNoVHlwZSgpOworICAgICAgICB1bnNpZ25lZCBsaW5rTWF0Y2hUeXBlID0gbV9tYXRj
aGVkUnVsZXNbaV0uc2Vjb25kLT5saW5rTWF0Y2hUeXBlKCk7CiAgICAgICAgIGlmIChzd2FwVmlz
aXRlZFVudmlzaXRlZCAmJiBsaW5rTWF0Y2hUeXBlICYmIGxpbmtNYXRjaFR5cGUgIT0gU2VsZWN0
b3JDaGVja2VyOjpNYXRjaEFsbCkKICAgICAgICAgICAgIGxpbmtNYXRjaFR5cGUgPSAobGlua01h
dGNoVHlwZSA9PSBTZWxlY3RvckNoZWNrZXI6Ok1hdGNoVmlzaXRlZCkgPyBTZWxlY3RvckNoZWNr
ZXI6Ok1hdGNoTGluayA6IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hWaXNpdGVkOwotICAgICAgICBh
ZGRNYXRjaGVkUHJvcGVydGllcyhyZXN1bHQsIG1fbWF0Y2hlZFJ1bGVzW2ldLT5ydWxlKCktPnBy
b3BlcnRpZXMoKSwgbV9tYXRjaGVkUnVsZXNbaV0tPnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9t
YXRjaGVkUnVsZXNbaV0tPmlzSW5SZWdpb25SdWxlKCkpOworICAgICAgICBhZGRNYXRjaGVkUHJv
cGVydGllcyhyZXN1bHQsIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+cnVsZSgpLT5wcm9wZXJ0
aWVzKCksIG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+cnVsZSgpLCBsaW5rTWF0Y2hUeXBlLCBt
X21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPmlzSW5SZWdpb25SdWxlKCkpOwogICAgIH0KIH0KIApA
QCAtNzI2LDEzICs3MjYsMTQgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhv
clJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHQKICAgICBpZiAoIW1f
c2NvcGVSZXNvbHZlcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbWF0Y2hIb3N0UnVsZXMocmVz
dWx0LCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxl
cyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBp
dCBnb3QgaW5jb25zaXN0ZW50KS4KKyAgICBib29sIG5lZWRDaGVja1Njb3BlZFN0eWxlID0gbV9z
Y29wZVJlc29sdmVyLT5oYXNTY29wZWRTdHlsZXMoKSAmJiBtX3Njb3BlUmVzb2x2ZXItPmVuc3Vy
ZVN0YWNrQ29uc2lzdGVuY3kobV9lbGVtZW50KTsKIAotICAgIGlmICghbV9zY29wZVJlc29sdmVy
LT5oYXNTY29wZWRTdHlsZXMoKSkKLSAgICAgICAgcmV0dXJuOworICAgIC8vIE1hdGNoSG9zdFJ1
bGVzIHVzZXMgbnVtYmVyIG9mIHNjb3BlZCBSdWxlU2V0cyB3aGljaCBtaWdodCBiZSBhcHBsaWVk
CisgICAgLy8gdG8gdGhlIG1fZWxlbWVudC4gU28gbmVlZCB0byBpbnZva2UgYWZ0ZXIgZW5zdXJl
U3RhY2tDb25zaXN0ZW5jeS4KKyAgICBtYXRjaEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0
eVJ1bGVzKTsKIAotICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2lu
ZyB0aGUgc2NvcGVkIGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lz
dGVudCkuCi0gICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPmVuc3VyZVN0YWNrQ29uc2lzdGVuY3ko
bV9lbGVtZW50KSkKKyAgICBpZiAoIW5lZWRDaGVja1Njb3BlZFN0eWxlKQogICAgICAgICByZXR1
cm47CiAKICAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9lbGVtZW50LT50cmVlU2NvcGUo
KS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKQEAgLTc0OCw4ICs3NDksOCBAQCB2b2lkIFN0eWxlUmVz
b2x2ZXI6Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBp
bmNsdWRlRW1wdAogICAgICAgICAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPm1hdGNoZXNTdHls
ZUJvdW5kcyhmcmFtZSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAg
ICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVz
LCBmcmFtZS5tX3Njb3BlKTsKKworICAgICAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRl
RW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSwgaSArIDEpOwogICAgICAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCBy
ZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKICAgICAgICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JSZWdpb24oZnJhbWUubV9ydWxlU2V0LCByZXN1bHQucmFuZ2VzLmZpcnN0
QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CiAgICAg
fQpAQCAtNzc5LDggKzc4MCw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hIb3N0UnVsZXMo
TWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcykKICAgICBpZiAobWF0
Y2hlZFJ1bGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hPcHRpb25z
IG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMpOwotICAgIG9wdGlvbnMuc2NvcGUgPSBtX2VsZW1l
bnQ7CisgICAgdW5zaWduZWQgc2NvcGVMZXZlbCA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tTaXpl
KCkgKyAxOworICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBtX2Vs
ZW1lbnQsIHNjb3BlTGV2ZWwpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1hdGNoZWRSdWxlcy5z
aXplKCk7IGkgPiAwOyAtLWkpCiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKG1hdGNoZWRS
dWxlcy5hdChpLTEpLCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdl
cy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CiAjZWxzZQpAQCAtODc2LDcgKzg3Nyw3IEBAIHZv
aWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3Rv
cjxSdWxlRGF0YT4qIHJ1bGVzLCBpCiAgICAgICAgICAgICAgICAgICAgIGZpcnN0UnVsZUluZGV4
ID0gbGFzdFJ1bGVJbmRleDsKIAogICAgICAgICAgICAgICAgIC8vIEFkZCB0aGlzIHJ1bGUgdG8g
b3VyIGxpc3Qgb2YgbWF0Y2hlZCBydWxlcy4KLSAgICAgICAgICAgICAgICBhZGRNYXRjaGVkUnVs
ZSgmcnVsZURhdGEpOworICAgICAgICAgICAgICAgIGFkZE1hdGNoZWRSdWxlKG9wdGlvbnMuc2Nv
cGVMZXZlbCwgJnJ1bGVEYXRhKTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OmRpZE1hdGNoUnVsZShjb29raWUsIHRydWUpOwogICAgICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICAgICAgfQpAQCAtODg1LDExICs4ODYsMTYgQEAgdm9pZCBTdHlsZVJlc29s
dmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiog
cnVsZXMsIGkKICAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBjb21wYXJlUnVsZXMoY29u
c3QgUnVsZURhdGEqIHIxLCBjb25zdCBSdWxlRGF0YSogcjIpCitzdGF0aWMgaW5saW5lIGJvb2wg
Y29tcGFyZVJ1bGVzKFN0eWxlUmVzb2x2ZXI6OlNjb3BlUnVsZURhdGEgcjEsIFN0eWxlUmVzb2x2
ZXI6OlNjb3BlUnVsZURhdGEgcjIpCiB7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkxID0gcjEt
PnNwZWNpZmljaXR5KCk7Ci0gICAgdW5zaWduZWQgc3BlY2lmaWNpdHkyID0gcjItPnNwZWNpZmlj
aXR5KCk7Ci0gICAgcmV0dXJuIChzcGVjaWZpY2l0eTEgPT0gc3BlY2lmaWNpdHkyKSA/IHIxLT5w
b3NpdGlvbigpIDwgcjItPnBvc2l0aW9uKCkgOiBzcGVjaWZpY2l0eTEgPCBzcGVjaWZpY2l0eTI7
CisgICAgaWYgKHIxLmZpcnN0ID09IHIyLmZpcnN0KSB7CisgICAgICAgIHVuc2lnbmVkIHNwZWNp
ZmljaXR5MSA9IHIxLnNlY29uZC0+c3BlY2lmaWNpdHkoKTsKKyAgICAgICAgdW5zaWduZWQgc3Bl
Y2lmaWNpdHkyID0gcjIuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgICAgICByZXR1cm4gKHNw
ZWNpZmljaXR5MSA9PSBzcGVjaWZpY2l0eTIpID8KKyAgICAgICAgICAgIHIxLnNlY29uZC0+cG9z
aXRpb24oKSA8IHIyLnNlY29uZC0+cG9zaXRpb24oKSA6CisgICAgICAgICAgICBzcGVjaWZpY2l0
eTEgPCBzcGVjaWZpY2l0eTI7CisgICAgfQorICAgIHJldHVybiByMS5maXJzdCA8IHIyLmZpcnN0
OwogfQogCiB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRNYXRjaGVkUnVsZXMoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmgKaW5kZXggZGM3YWM4YTJiODQ0MzE0ZGYyZGFmNGI4YmNiYTliMjg3
N2YwY2Q5YS4uYmQ3MjYzYmZjMTg0NjhmN2YwNjcwODZmNDY1ZDZkYjNmMmQ3NWUwNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiTWVk
aWFRdWVyeUV4cC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUnVsZUZl
YXR1cmUuaCIKKyNpbmNsdWRlICJSdWxlU2V0LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJsZWRG
ZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNlbGVjdG9yQ2hlY2tlci5oIgogI2luY2x1ZGUgIlN0eWxl
SW5oZXJpdGVkRGF0YS5oIgpAQCAtMzA1LDcgKzMwNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IGFkanVzdFJlbmRlclN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZVRvQWRqdXN0LCBSZW5kZXJTdHls
ZSogcGFyZW50U3R5bGUsIEVsZW1lbnQqKTsKIAotICAgIHZvaWQgYWRkTWF0Y2hlZFJ1bGUoY29u
c3QgUnVsZURhdGEqIHJ1bGUpIHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKHJ1bGUpOyB9CisgICAg
dm9pZCBhZGRNYXRjaGVkUnVsZSh1bnNpZ25lZCBzY29wZSwgY29uc3QgUnVsZURhdGEqIHJ1bGUp
IHsgbV9tYXRjaGVkUnVsZXMuYXBwZW5kKFNjb3BlUnVsZURhdGEoc2NvcGUsIHJ1bGUpKTsgfQog
CiAgICAgc3RydWN0IE1hdGNoUmFuZ2VzIHsKICAgICAgICAgTWF0Y2hSYW5nZXMoKSA6IGZpcnN0
VUFSdWxlKC0xKSwgbGFzdFVBUnVsZSgtMSksIGZpcnN0QXV0aG9yUnVsZSgtMSksIGxhc3RBdXRo
b3JSdWxlKC0xKSwgZmlyc3RVc2VyUnVsZSgtMSksIGxhc3RVc2VyUnVsZSgtMSkgeyB9CkBAIC0z
NDEsOSArMzQyLDEwIEBAIHByaXZhdGU6CiAgICAgfTsKIAogICAgIHN0cnVjdCBNYXRjaE9wdGlv
bnMgewotICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNsdWRlRW1wdHlSdWxlcywgY29uc3Qg
Q29udGFpbmVyTm9kZSogc2NvcGUgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5UnVs
ZXMoaW5jbHVkZUVtcHR5UnVsZXMpIHsgfQorICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNs
dWRlRW1wdHlSdWxlcywgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwLCB1bnNpZ25lZCBz
Y29wZUxldmVsID0gMCkgOiBzY29wZShzY29wZSksIGluY2x1ZGVFbXB0eVJ1bGVzKGluY2x1ZGVF
bXB0eVJ1bGVzKSwgc2NvcGVMZXZlbChzY29wZUxldmVsKSB7IH0KICAgICAgICAgY29uc3QgQ29u
dGFpbmVyTm9kZSogc2NvcGU7CiAgICAgICAgIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXM7CisgICAg
ICAgIHVuc2lnbmVkIHNjb3BlTGV2ZWw7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIGFkZE1h
dGNoZWRQcm9wZXJ0aWVzKE1hdGNoUmVzdWx0JiwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJv
cGVydGllcywgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoQWxsLCBib29sIGluUmVnaW9uUnVsZSA9IGZhbHNlKTsKQEAgLTQyNiw2
ICs0MjgsOCBAQCBwdWJsaWM6CiAgICAgQ1NTVG9TdHlsZU1hcCogc3R5bGVNYXAoKSB7IHJldHVy
biAmbV9zdHlsZU1hcDsgfQogCiAgICAgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmpl
Y3RJbmZvKikgY29uc3Q7CisKKyAgICB0eXBlZGVmIHN0ZDo6cGFpcjx1bnNpZ25lZCwgY29uc3Qg
UnVsZURhdGEqPiBTY29wZVJ1bGVEYXRhOwogICAgIAogcHJpdmF0ZToKICAgICBzdGF0aWMgUmVu
ZGVyU3R5bGUqIHNfc3R5bGVOb3RZZXRBdmFpbGFibGU7CkBAIC00NzMsNyArNDc3LDcgQEAgcHJp
dmF0ZToKIAogICAgIC8vIEEgYnVmZmVyIHVzZWQgdG8gaG9sZCB0aGUgc2V0IG9mIG1hdGNoZWQg
cnVsZXMgZm9yIGFuIGVsZW1lbnQsIGFuZCBhIHRlbXBvcmFyeSBidWZmZXIgdXNlZCBmb3IKICAg
ICAvLyBtZXJnZSBzb3J0aW5nLgotICAgIFZlY3Rvcjxjb25zdCBSdWxlRGF0YSosIDMyPiBtX21h
dGNoZWRSdWxlczsKKyAgICBWZWN0b3I8U2NvcGVSdWxlRGF0YSwgMzI+IG1fbWF0Y2hlZFJ1bGVz
OwogCiAgICAgUmVmUHRyPFN0YXRpY0NTU1J1bGVMaXN0PiBtX3J1bGVMaXN0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCmluZGV4IDc2ODE3MjUzMWViM2EyMDVl
NWVmMGJiMzQyY2IwYzhlMjliZmNiMmQuLjczMDA1MGQ2YzRkODE3MmU1NTRiZTg2MDI4ZDliYjU3
YzdiMTJiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwCkBA
IC0xODMsNyArMTgzLDcgQEAgdm9pZCBTdHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKFN0
eWxlUnVsZUhvc3QqIGhvc3RSdWxlLCBib29sIGhhc0RvY3VtZW50U2UKIAogICAgIGNvbnN0IFZl
Y3RvcjxSZWZQdHI8U3R5bGVSdWxlQmFzZT4gPiYgY2hpbGRSdWxlcyA9IGhvc3RSdWxlLT5jaGls
ZFJ1bGVzKCk7CiAgICAgQWRkUnVsZUZsYWdzIGFkZFJ1bGVGbGFncyA9IGhhc0RvY3VtZW50U2Vj
dXJpdHlPcmlnaW4gPyBSdWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA6IFJ1bGVIYXNOb1Nw
ZWNpYWxTdGF0ZTsKLSAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxlRmxhZ3M+
KGFkZFJ1bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3RvciB8IFJ1bGVJc0hvc3RS
dWxlKTsKKyAgICBhZGRSdWxlRmxhZ3MgPSBzdGF0aWNfY2FzdDxBZGRSdWxlRmxhZ3M+KGFkZFJ1
bGVGbGFncyB8IFJ1bGVDYW5Vc2VGYXN0Q2hlY2tTZWxlY3Rvcik7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGNoaWxkUnVsZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3R5bGVSdWxl
QmFzZSogaG9zdFN0eWxpbmdSdWxlID0gY2hpbGRSdWxlc1tpXS5nZXQoKTsKICAgICAgICAgaWYg
KGhvc3RTdHlsaW5nUnVsZS0+aXNTdHlsZVJ1bGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuY3BwCmluZGV4IGQ2ZWQzYTk3MzMxZDY3OTI2NGI3MTdjZDY4NjBjMWVmOWNk
NjA2YWUuLmE4MWYzYmQ4NGQwZGNiNjZkZjZiMzY1ZGRhMjRlZTZmM2RkMjBkODAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApAQCAtMTQwLDkgKzE0MCwxMSBAQCB2
b2lkIEhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKGJvb2wgc2NvcGVk
KQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LQogICAgIHNjb3BlLT5yZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCk7Ci0gICAgc2NvcGUt
PnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBpZiAoc2NvcGUtPmlzU2hhZG93Um9vdCgpKQor
ICAgICAgICBzY29wZS0+c2hhZG93SG9zdCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAg
ZWxzZQorICAgICAgICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwogICAgIGlmIChpbkRv
Y3VtZW50KCkgJiYgIWRvY3VtZW50KCktPnBhcnNpbmcoKSAmJiBkb2N1bWVudCgpLT5yZW5kZXJl
cigpKQogICAgICAgICBkb2N1bWVudCgpLT5zdHlsZVJlc29sdmVyQ2hhbmdlZChEZWZlclJlY2Fs
Y1N0eWxlKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDlmYmZhYWU0YjllNTRkMDliNGNhNWU5ODdjMTY1OTAxZmMzZWE3
ZmIuLmY1MjkxMTBjYjNlZDIwODdjODdiOWFkMTAwMTI5MzI3YThhZDhiMzMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAxMi0xMi0xMCAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgW1NoYWRvdyBET01dOiBzY29wZWQgc3R5bGVzIGFyZSBub3QgYXBwbGll
ZCBpbiB0aGUgY2FzY2FkZSBvcmRlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwMzIzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0
ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQv
c3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMv
c3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUt
cmVnaW9uLXN0eWxpbmcuaHRtbDoKKyAgICAgICAgQ2hhbmdlZCB0aGUgdGVzdCdzIGV4cGVjdGF0
aW9uLgorICAgICAgICBTaW5jZSBAcmVnaW9uJ3Mgc2NvcGluZyBlbGVtZW50IGlzIDpyb290IGJ1
dCBzY29wZWQgc3R5bGVzJyBzY29waW5nCisgICAgICAgIGVsZW1lbnQgaXMgYSBkZXNjZW5kYW50
IGVsZW1lbnQgb2YgOnJvb3QsIHNjb3BlZCBzdHlsZXMgc2hvdWxkIHdpbi4KKwogMjAxMi0xMi0x
MCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgRUZMIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5iMDczMzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQw
MzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qg
d2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9y
IG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNzZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBk
ZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVudCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50
LgorYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitP
bmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0
aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5z
IGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQuc3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0
eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5
bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcg
cnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBj
bGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5
bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21l
IHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3Zl
IHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFu
IGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVk
IHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFk
b3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50
IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBz
aGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxl
cyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRhODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5
bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAg
Y29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2Vz
L2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93
L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVu
dCI+CisgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAg
PC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIg
c2NvcGVkIHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7
CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGlu
IGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1l
bnQuIik7CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0Iik7CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJn
ZXQuIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIs
ICcicmdiKDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0g
dHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjog
eWVsbG93OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVu
ZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBp
cyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xh
c3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBk
b2N1bWVudC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJn
ZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVk
ID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7
IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxl
Rm9yUGFyZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0
aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5n
IHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNv
bG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSInKTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Vi
a2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9
InRhcmdldEluU2hhZG93IiBjbGFzcz0idGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNo
YWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFk
b3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJp
dGFuY2UgZnJvbSBpdHMgc2hhZG93IGhvc3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAor
Ly8gdGhlIHNwYW4gaW4gdGhlIHNoYWRvdyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRT
dHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKK2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRv
dyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdl
dCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhv
ciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVz
IG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNo
YWRvdykuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRN
TCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHls
ZUluU2hhZG93KTsKK2RlYnVnKCJBcHBlbmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hh
ZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNjb3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3Qu
IFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5k
YW50IChzY29wZWQpIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Nj
cmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJl
Z2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhkMzRiZmNk
ZTFiODQ5YWM2NjlkYWFhNC4uYjFhYzY2YzZmYzFiNzE5ZmQ0NDYzMTQxZjRmZjQ2MWM3MjYwMzlm
MSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFsIG92ZXJsYXAsIEBy
ZWdpb24gbW9yZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0
eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9y
ICZsdDtwJmd0OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KIAkJPHAgY2xh
c3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9m
IHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQor
CQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2Pg0KIAlQ
YXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3BlY2lmaWMgdGhhbiBA
cmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDssIHNjb3BlZCBzdHls
ZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBp
ZD0ncjInPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29w
ZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0
bWwKaW5kZXggYmU5Y2NkMmZiZjk4Y2JmOGExYTgzYWYwNWRiOGQ0ZjNlYjk4NGI5NS4uNDU3Njk0
YWVjYmNiZGU5Y2I3MzgxOTc3NmIwODIzY2E4YWUzOTFiMiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKQEAgLTUwLDEzICs1MCwxMyBAQAogCX0N
CiAJQC13ZWJraXQtcmVnaW9uICNyMyB7DQogCQlwIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBs
aWdodGdyZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCiAJCX0NCiAJCS5jMyB7
DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFu
Z2U7DQogCQl9DQogCQkjcDMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOw0KKwkJCWJh
Y2tncm91bmQtY29sb3I6IHJlZDsNCiAJCX0NCiAJfQ0KIAk8L3N0eWxlPg0KQEAgLTg3LDE1ICs4
NywxNSBAQAogCTwvZGl2Pg0KIAk8ZGl2IGlkPSdmMyc+DQogCQk8c3R5bGUgc2NvcGVkPSd0cnVl
Jz4NCi0JCQlwIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0KLQkJCX0NCi0JCQku
YzMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQotCQkJfQ0KLQkJCSNwMyB7DQot
CQkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCi0JCQl9DQorCQkgICAgICAgIHAgew0KKwkJCSAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisgICAgCQkJfQ0KKwkJICAgICAg
ICAuYzMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisgICAgICAgIAkJ
fQ0KKyAgICAgICAgCQkjcDMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
DQorICAgICAgICAJCX0NCiAJCTwvc3R5bGU+DQogCQk8cD5TdHlsZWQgbGluZSBvZiB0ZXh0PC9w
Pg0KIAkJPHAgY2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>178968</attachid>
            <date>2012-12-11 22:23:59 -0800</date>
            <delta_ts>2012-12-12 19:57:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121212152120.patch</filename>
            <type>text/plain</type>
            <size>22971</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3Mzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjFiZDBmODQxMzdkMTBk
NThkODExYjNmZmVlOWMzYzcyMTI1ODBlNy4uNDc4ZWEyNzE5MmM3ZjBjNmViNmJhYjdkMTIzNjll
YjRjMTU1ODJlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEyLTEyLTEwICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjpzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMpOgorICAgICAgICBTaW5jZSBtX21h
dGNoZWRSdWxlIGlzIGNoYW5nZWQgaW50byBhIHZlY3RvciBvZiBhIHBhaXIgb2YgdW5zaWduZWQg
YW5kCisgICAgICAgIGNvbnN0IFJ1bGVEYXRhKiwgdXBkYXRlIHRoZSByZWxhdGVkIGNvZGVzIHdo
aWNoIHVzZSBtX21hdGNoZWRSdWxlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6
Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMpOgorICAgICAgICBVc2UgTWF0Y2hPcHRpb25zIHRvIHBy
b3ZpZGUgYSBzY29waW5nIGxldmVsIG9mIGVhY2ggZm91bmQgUnVsZVNldC4KKyAgICAgICAgU2lu
Y2UgYSBzY29waW5nIGxldmVsIG9mIDpyb290IGlzIDAsIHRoZSBjb2RlIHVzZXMgZnJvbSAxIHRv
IGZvdW5kZWQKKyAgICAgICAgUnVsZVNldCBzaXplICsgMS4KKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgVXNlIG51bWJlciBvZiBtYXRj
aGVkIHNjb3BlZCBzdHlsZXMgcGx1cyAxIGFzIHNjb3BpbmcgbGV2ZWwgb2YKKyAgICAgICAgQGhv
c3QgQC1ydWxlcy4gQmVjYXVzZSBpZiB0aGVyZSBleGlzdCBhbnkgQGhvc3QgQC1ydWxlcyB3aGlj
aCBhcmUKKyAgICAgICAgYXBwbGllZCB0byBtX2VsZW1lbnQsIHRoZSBzY29waW5nIGVsZW1lbnQg
b2YgdGhlIHJ1bGVzIGlzIG1fZWxlbWVudCwKKyAgICAgICAgdGhlIG1vc3QgZGVzY2VuZGFudCBl
bGVtZW50LgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KToKKyAgICAgICAgUHJvdmlkZSBtYXRjaGVkIHJ1bGVzJyBzY29waW5nIGxl
dmVsIGZvciBhZGRNYXRjaGVkUnVsZS4KKyAgICAgICAgKFdlYkNvcmU6OmNvbXBhcmVSdWxlcyk6
CisgICAgICAgIEZpcnN0bHkgY29tcGFyZSBydWxlcyBieSB1c2luZyB0aGVpciBzY29waW5nIGxl
dmVscywgZS5nLiA6cm9vdCBpcyAwLgorICAgICAgICBJZiB0aGUgcnVsZXMgaGF2ZSB0aGUgc2Ft
ZSBzY29waW5nIGxldmVsLCBqdXN0IGNvbXBhcmUgdGhlaXIKKyAgICAgICAgc3BlY2lmaWNpdHkg
YW5kIGRvY3VtZW50IHBvc2l0aW9uLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphZGRNYXRjaGVkUnVsZSk6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpNYXRjaE9wdGlvbnM6Ok1hdGNoT3B0aW9ucyk6Cisg
ICAgICAgIChNYXRjaE9wdGlvbnMpOgorICAgICAgICBBZGRlZCBzY29waW5nIGxldmVsIHRvIHBy
b3ZpZGUgaW5mb3JtYXRpb24gYWJvdXQgc2NvcGluZyBlbGVtZW50IGZvcgorICAgICAgICBhZGRN
YXRjaGVkUnVsZSB2aWEgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0LgorICAgICAgICAoU3R5
bGVSZXNvbHZlcik6CisgICAgICAgIE1vZGlmeSBtX21hdGNoZWRSdWxlIGZyb20gYSB2ZWN0b3Ig
b2YgY29uc3QgUnVsZURhdGEqIHRvIGEgdmVjdG9yIG9mCisgICAgICAgIGEgcGFpciBvZiB1bnNp
Z25lZCBhbmQgY29uc3QgUnVsZURhdGEqLiBUaGUgdW5zaWduZWQgaG9sZHMgaW5mb3JtYXRpb24K
KyAgICAgICAgYWJvdXQgc2NvcGluZyBsZXZlbCBvZiBlYWNoIG1hdGNoZWQgUnVsZURhdGEuCisg
ICAgICAgICogY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVNjb3BlUmVzb2x2ZXI6OmFkZEhvc3RSdWxlKToKKyAgICAgICAgUmVtb3ZlZCBSdWxlSXNI
b3N0UnVsZS4gV2UgZG9uJ3QgbmVlZCB0aGUgZmxhZy4KKyAgICAgICAgKiBodG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0
ZXJXaXRoU2NvcGluZ05vZGUpOgorICAgICAgICBOZWVkcyB0byBwYXNzIHRoZSBsYXN0IHRlc3Qg
Y2FzZSBvZiBzdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwuCisgICAgICAgIFdoZW4gYXBwZW5kaW5n
IHNvbWUgc3R5bGUgZWxlbWVudCB0byBhIHNoYWRvdyByb290LCB3ZSBzaG91bGQgcmVjYWxjCisg
ICAgICAgIHN0eWxlcyBvZiBhbGwgZWxlbWVudHMgaW4gdGhlIHNoYWRvdyBkb20gdHJlZS4gQW5k
IGlmIHRoZSBzdHlsZQorICAgICAgICBlbGVtZW50IGhhcyBAaG9zdCBALXJ1bGVzLCB3ZSBoYXZl
IHRvIHVwZGF0ZSB0aGUgaG9zdCdzIHN0eWxlLgorCiAyMDEyLTEyLTExICBDaHJpcyBSb2dlcnMg
IDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IE9mZmxpbmVBdWRpb0Nv
bnRleHQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcAppbmRleCA5YTc4YzBmZjkwMzg5
YzkwYzQ0ZGE1YTZiOWY1ZmY3YWUyMGM2ZTMxLi5lNjI3YzA1ZjJmZTI2MzlhOGM2NDE3M2VmYjcz
MDAxODFhMzNlYmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuY3BwCkBAIC0xOTEsMTAgKzE5MSw2IEBA
IHZvaWQgUnVsZVNldDo6YWRkVG9SdWxlU2V0KEF0b21pY1N0cmluZ0ltcGwqIGtleSwgQXRvbVJ1
bGVNYXAmIG1hcCwgY29uc3QgUnVsZURhCiB2b2lkIFJ1bGVTZXQ6OmFkZFJ1bGUoU3R5bGVSdWxl
KiBydWxlLCB1bnNpZ25lZCBzZWxlY3RvckluZGV4LCBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdz
KQogewogICAgIFJ1bGVEYXRhIHJ1bGVEYXRhKHJ1bGUsIHNlbGVjdG9ySW5kZXgsIG1fcnVsZUNv
dW50KyssIGFkZFJ1bGVGbGFncyk7Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGF0aG9zdFJ1
bGVTcGVjaWZpY2l0eSA9IDB4MTAwMDAwOwotCi0gICAgaWYgKGFkZFJ1bGVGbGFncyAmIFJ1bGVJ
c0hvc3RSdWxlKQotICAgICAgICBydWxlRGF0YS5pbmNyZWFzZVNwZWNpZmljaXR5KGF0aG9zdFJ1
bGVTcGVjaWZpY2l0eSk7CiAKICAgICBjb2xsZWN0RmVhdHVyZXNGcm9tUnVsZURhdGEobV9mZWF0
dXJlcywgcnVsZURhdGEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNl
dC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAppbmRleCBhMmZiZWNiYzAwYjJjYTFi
NTMyZjQ5NmE5NWMwOTM1MDI2ZmE0ZjdkLi4zN2FmOWQ0NjQ0NjM0YTMzZWFiY2JmNjIxZDUyZmI4
MGM0MDliYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKQEAgLTM2LDcgKzM2LDYgQEAgZW51bSBBZGRS
dWxlRmxhZ3MgewogICAgIFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID0gMSwKICAgICBS
dWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgICA9IDEgPDwgMSwKICAgICBSdWxlSXNJblJlZ2lv
blJ1bGUgICAgICAgICAgICA9IDEgPDwgMiwKLSAgICBSdWxlSXNIb3N0UnVsZSAgICAgICAgICAg
ICAgICA9IDEgPDwgMywKIH07CiAKIGNsYXNzIENTU1NlbGVjdG9yOwpAQCAtNjMsNyArNjIsNiBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGlua01hdGNoVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bGlua01hdGNoVHlwZTsgfQogICAgIGJvb2wgaGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIGNv
bnN0IHsgcmV0dXJuIG1faGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbjsgfQogICAgIGJvb2wgaXNJ
blJlZ2lvblJ1bGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5SZWdpb25SdWxlOyB9Ci0gICAgdm9p
ZCBpbmNyZWFzZVNwZWNpZmljaXR5KHVuc2lnbmVkIHZhbHVlKSB7IG1fc3BlY2lmaWNpdHkgKz0g
dmFsdWU7IH0KIAogICAgIC8vIFRyeSB0byBiYWxhbmNlIGJldHdlZW4gbWVtb3J5IHVzYWdlICh0
aGVyZSBjYW4gYmUgbG90cyBvZiBSdWxlRGF0YSBvYmplY3RzKSBhbmQgZ29vZCBmaWx0ZXJpbmcg
cGVyZm9ybWFuY2UuCiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heGltdW1JZGVudGlmaWVy
Q291bnQgPSA0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDM4YzRlNzky
ZDRlY2UzMTJhMTBlMjk3MDk1NjIwNzk5NjY4M2I3ZGYuLjc3NGNhMzUzNTRlNzAxYmViZGU2MmI4
NmNmM2IxMGJiMzU1Yjg3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJl
c29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAg
LTcwMyw3ICs3MDMsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRUcmFuc2Zlck1hdGNo
ZWRSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0KQogICAgICAgICBpZiAoIW1fcnVsZUxpc3QpCiAg
ICAgICAgICAgICBtX3J1bGVMaXN0ID0gU3RhdGljQ1NTUnVsZUxpc3Q6OmNyZWF0ZSgpOwogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9tYXRjaGVkUnVsZXMuc2l6ZSgpOyArK2kp
Ci0gICAgICAgICAgICBtX3J1bGVMaXN0LT5ydWxlcygpLmFwcGVuZChtX21hdGNoZWRSdWxlc1tp
XS0+cnVsZSgpLT5jcmVhdGVDU1NPTVdyYXBwZXIoKSk7CisgICAgICAgICAgICBtX3J1bGVMaXN0
LT5ydWxlcygpLmFwcGVuZChtX21hdGNoZWRSdWxlc1tpXS5zZWNvbmQtPnJ1bGUoKS0+Y3JlYXRl
Q1NTT01XcmFwcGVyKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03MTEsMTIgKzcx
MSwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OnNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyhN
YXRjaFJlc3VsdCYgcmVzdWx0KQogICAgIC8vIEZJWE1FOiBUaGlzIHN1Y2tzLCB0aGUgaW5zcGVj
dG9yIHNob3VsZCBnZXQgdGhlIHN0eWxlIGZyb20gdGhlIHZpc2l0ZWQgc3R5bGUgaXRzZWxmLgog
ICAgIGJvb2wgc3dhcFZpc2l0ZWRVbnZpc2l0ZWQgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmZvcmNlUHNldWRvU3RhdGUobV9lbGVtZW50LCBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZCk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSsr
KSB7Ci0gICAgICAgIGlmIChtX3N0eWxlICYmIG1fbWF0Y2hlZFJ1bGVzW2ldLT5jb250YWluc1Vu
Y29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkKKyAgICAgICAgaWYgKG1fc3R5bGUgJiYgbV9tYXRj
aGVkUnVsZXNbaV0uc2Vjb25kLT5jb250YWluc1VuY29tbW9uQXR0cmlidXRlU2VsZWN0b3IoKSkK
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldFVuaXF1ZSgpOwotICAgICAgICB1bnNpZ25lZCBsaW5r
TWF0Y2hUeXBlID0gbV9tYXRjaGVkUnVsZXNbaV0tPmxpbmtNYXRjaFR5cGUoKTsKKyAgICAgICAg
dW5zaWduZWQgbGlua01hdGNoVHlwZSA9IG1fbWF0Y2hlZFJ1bGVzW2ldLnNlY29uZC0+bGlua01h
dGNoVHlwZSgpOwogICAgICAgICBpZiAoc3dhcFZpc2l0ZWRVbnZpc2l0ZWQgJiYgbGlua01hdGNo
VHlwZSAmJiBsaW5rTWF0Y2hUeXBlICE9IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwpCiAgICAg
ICAgICAgICBsaW5rTWF0Y2hUeXBlID0gKGxpbmtNYXRjaFR5cGUgPT0gU2VsZWN0b3JDaGVja2Vy
OjpNYXRjaFZpc2l0ZWQpID8gU2VsZWN0b3JDaGVja2VyOjpNYXRjaExpbmsgOiBTZWxlY3RvckNo
ZWNrZXI6Ok1hdGNoVmlzaXRlZDsKLSAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0
LCBtX21hdGNoZWRSdWxlc1tpXS0+cnVsZSgpLT5wcm9wZXJ0aWVzKCksIG1fbWF0Y2hlZFJ1bGVz
W2ldLT5ydWxlKCksIGxpbmtNYXRjaFR5cGUsIG1fbWF0Y2hlZFJ1bGVzW2ldLT5pc0luUmVnaW9u
UnVsZSgpKTsKKyAgICAgICAgYWRkTWF0Y2hlZFByb3BlcnRpZXMocmVzdWx0LCBtX21hdGNoZWRS
dWxlc1tpXS5zZWNvbmQtPnJ1bGUoKS0+cHJvcGVydGllcygpLCBtX21hdGNoZWRSdWxlc1tpXS5z
ZWNvbmQtPnJ1bGUoKSwgbGlua01hdGNoVHlwZSwgbV9tYXRjaGVkUnVsZXNbaV0uc2Vjb25kLT5p
c0luUmVnaW9uUnVsZSgpKTsKICAgICB9CiB9CiAKQEAgLTcyNiwxMyArNzI2LDE0IEBAIHZvaWQg
U3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0
LCBib29sIGluY2x1ZGVFbXB0CiAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXIpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3VsdCwgaW5jbHVkZUVtcHR5UnVsZXMpOwor
ICAgIC8vIE1hdGNoIHNjb3BlZCBhdXRob3IgcnVsZXMgYnkgdHJhdmVyc2luZyB0aGUgc2NvcGVk
IGVsZW1lbnQgc3RhY2sgKHJlYnVpbGQgaXQgaWYgaXQgZ290IGluY29uc2lzdGVudCkuCisgICAg
Ym9vbCBuZWVkQ2hlY2tTY29wZWRTdHlsZSA9IG1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5
bGVzKCkgJiYgbV9zY29wZVJlc29sdmVyLT5lbnN1cmVTdGFja0NvbnNpc3RlbmN5KG1fZWxlbWVu
dCk7CiAKLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5bGVzKCkpCi0gICAg
ICAgIHJldHVybjsKKyAgICAvLyBNYXRjaEhvc3RSdWxlcyB1c2VzIG51bWJlciBvZiBzY29wZWQg
UnVsZVNldHMgd2hpY2ggbWlnaHQgYmUgYXBwbGllZAorICAgIC8vIHRvIHRoZSBtX2VsZW1lbnQu
IFNvIG5lZWQgdG8gaW52b2tlIGFmdGVyIGVuc3VyZVN0YWNrQ29uc2lzdGVuY3kuCisgICAgbWF0
Y2hIb3N0UnVsZXMocmVzdWx0LCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAKLSAgICAvLyBNYXRjaCBz
Y29wZWQgYXV0aG9yIHJ1bGVzIGJ5IHRyYXZlcnNpbmcgdGhlIHNjb3BlZCBlbGVtZW50IHN0YWNr
IChyZWJ1aWxkIGl0IGlmIGl0IGdvdCBpbmNvbnNpc3RlbnQpLgotICAgIGlmICghbV9zY29wZVJl
c29sdmVyLT5lbnN1cmVTdGFja0NvbnNpc3RlbmN5KG1fZWxlbWVudCkpCisgICAgaWYgKCFuZWVk
Q2hlY2tTY29wZWRTdHlsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBhcHBseUF1dGhv
clN0eWxlcyA9IG1fZWxlbWVudC0+dHJlZVNjb3BlKCktPmFwcGx5QXV0aG9yU3R5bGVzKCk7CkBA
IC03NDgsOCArNzQ5LDggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1
bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHQKICAgICAgICAgICAgIGlm
ICghbV9zY29wZVJlc29sdmVyLT5tYXRjaGVzU3R5bGVCb3VuZHMoZnJhbWUpKQogICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgICAgIAotICAgICAgICBNYXRjaE9w
dGlvbnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSk7CisKKyAgICAg
ICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMsIGZyYW1lLm1fc2NvcGUs
IGkgKyAxKTsKICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMoZnJhbWUubV9ydWxlU2V0LCBy
ZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVs
ZSwgb3B0aW9ucyk7CiAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1l
Lm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMu
bGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAgIH0KQEAgLTc3OSw4ICs3ODAsOCBAQCB2b2lk
IFN0eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wg
aW5jbHVkZUVtcHR5UnVsZXMpCiAgICAgaWYgKG1hdGNoZWRSdWxlcy5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVz
KTsKLSAgICBvcHRpb25zLnNjb3BlID0gbV9lbGVtZW50OworICAgIHVuc2lnbmVkIHNjb3BlTGV2
ZWwgPSBtX3Njb3BlUmVzb2x2ZXItPnN0YWNrU2l6ZSgpICsgMTsKKyAgICBNYXRjaE9wdGlvbnMg
b3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcywgbV9lbGVtZW50LCBzY29wZUxldmVsKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSBtYXRjaGVkUnVsZXMuc2l6ZSgpOyBpID4gMDsgLS1pKQogICAgICAg
ICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaGVkUnVsZXMuYXQoaS0xKSwgcmVzdWx0LnJhbmdl
cy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMp
OwogI2Vsc2UKQEAgLTg3Niw3ICs4NzcsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiBydWxlcywgaQogICAg
ICAgICAgICAgICAgICAgICBmaXJzdFJ1bGVJbmRleCA9IGxhc3RSdWxlSW5kZXg7CiAKICAgICAg
ICAgICAgICAgICAvLyBBZGQgdGhpcyBydWxlIHRvIG91ciBsaXN0IG9mIG1hdGNoZWQgcnVsZXMu
Ci0gICAgICAgICAgICAgICAgYWRkTWF0Y2hlZFJ1bGUoJnJ1bGVEYXRhKTsKKyAgICAgICAgICAg
ICAgICBhZGRNYXRjaGVkUnVsZShvcHRpb25zLnNjb3BlTGV2ZWwsICZydWxlRGF0YSk7CiAgICAg
ICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRNYXRjaFJ1bGUoY29va2ll
LCB0cnVlKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTg4
NSwxMSArODg2LDE2IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNG
b3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpCiAgICAgfQogfQogCi1zdGF0
aWMgaW5saW5lIGJvb2wgY29tcGFyZVJ1bGVzKGNvbnN0IFJ1bGVEYXRhKiByMSwgY29uc3QgUnVs
ZURhdGEqIHIyKQorc3RhdGljIGlubGluZSBib29sIGNvbXBhcmVSdWxlcyhTdHlsZVJlc29sdmVy
OjpTY29wZVJ1bGVEYXRhIHIxLCBTdHlsZVJlc29sdmVyOjpTY29wZVJ1bGVEYXRhIHIyKQogewot
ICAgIHVuc2lnbmVkIHNwZWNpZmljaXR5MSA9IHIxLT5zcGVjaWZpY2l0eSgpOwotICAgIHVuc2ln
bmVkIHNwZWNpZmljaXR5MiA9IHIyLT5zcGVjaWZpY2l0eSgpOwotICAgIHJldHVybiAoc3BlY2lm
aWNpdHkxID09IHNwZWNpZmljaXR5MikgPyByMS0+cG9zaXRpb24oKSA8IHIyLT5wb3NpdGlvbigp
IDogc3BlY2lmaWNpdHkxIDwgc3BlY2lmaWNpdHkyOworICAgIGlmIChyMS5maXJzdCAhPSByMi5m
aXJzdCkKKyAgICAgICAgcmV0dXJuIHIxLmZpcnN0IDwgcjIuZmlyc3Q7CisKKyAgICB1bnNpZ25l
ZCBzcGVjaWZpY2l0eTEgPSByMS5zZWNvbmQtPnNwZWNpZmljaXR5KCk7CisgICAgdW5zaWduZWQg
c3BlY2lmaWNpdHkyID0gcjIuc2Vjb25kLT5zcGVjaWZpY2l0eSgpOworICAgIHJldHVybiAoc3Bl
Y2lmaWNpdHkxID09IHNwZWNpZmljaXR5MikgPworICAgICAgICByMS5zZWNvbmQtPnBvc2l0aW9u
KCkgPCByMi5zZWNvbmQtPnBvc2l0aW9uKCkgOgorICAgICAgICBzcGVjaWZpY2l0eTEgPCBzcGVj
aWZpY2l0eTI7CiB9CiAKIHZvaWQgU3R5bGVSZXNvbHZlcjo6c29ydE1hdGNoZWRSdWxlcygpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCBkYzdhYzhhMmI4NDQzMTRkZjJkYWY0Yjhi
Y2JhOWIyODc3ZjBjZDlhLi5iZDcyNjNiZmMxODQ2OGY3ZjA2NzA4NmY0NjVkNmRiM2YyZDc1ZTA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJNZWRpYVF1ZXJ5RXhwLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRl
ICJSdWxlRmVhdHVyZS5oIgorI2luY2x1ZGUgIlJ1bGVTZXQuaCIKICNpbmNsdWRlICJSdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiU2VsZWN0b3JDaGVja2VyLmgiCiAjaW5jbHVk
ZSAiU3R5bGVJbmhlcml0ZWREYXRhLmgiCkBAIC0zMDUsNyArMzA2LDcgQEAgcHJpdmF0ZToKIAog
ICAgIHZvaWQgYWRqdXN0UmVuZGVyU3R5bGUoUmVuZGVyU3R5bGUqIHN0eWxlVG9BZGp1c3QsIFJl
bmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgRWxlbWVudCopOwogCi0gICAgdm9pZCBhZGRNYXRjaGVk
UnVsZShjb25zdCBSdWxlRGF0YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQocnVsZSk7
IH0KKyAgICB2b2lkIGFkZE1hdGNoZWRSdWxlKHVuc2lnbmVkIHNjb3BlLCBjb25zdCBSdWxlRGF0
YSogcnVsZSkgeyBtX21hdGNoZWRSdWxlcy5hcHBlbmQoU2NvcGVSdWxlRGF0YShzY29wZSwgcnVs
ZSkpOyB9CiAKICAgICBzdHJ1Y3QgTWF0Y2hSYW5nZXMgewogICAgICAgICBNYXRjaFJhbmdlcygp
IDogZmlyc3RVQVJ1bGUoLTEpLCBsYXN0VUFSdWxlKC0xKSwgZmlyc3RBdXRob3JSdWxlKC0xKSwg
bGFzdEF1dGhvclJ1bGUoLTEpLCBmaXJzdFVzZXJSdWxlKC0xKSwgbGFzdFVzZXJSdWxlKC0xKSB7
IH0KQEAgLTM0MSw5ICszNDIsMTAgQEAgcHJpdmF0ZToKICAgICB9OwogCiAgICAgc3RydWN0IE1h
dGNoT3B0aW9ucyB7Ci0gICAgICAgIE1hdGNoT3B0aW9ucyhib29sIGluY2x1ZGVFbXB0eVJ1bGVz
LCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApIDogc2NvcGUoc2NvcGUpLCBpbmNsdWRl
RW1wdHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykgeyB9CisgICAgICAgIE1hdGNoT3B0aW9ucyhi
b29sIGluY2x1ZGVFbXB0eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDAsIHVu
c2lnbmVkIHNjb3BlTGV2ZWwgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVkZUVtcHR5UnVsZXMo
aW5jbHVkZUVtcHR5UnVsZXMpLCBzY29wZUxldmVsKHNjb3BlTGV2ZWwpIHsgfQogICAgICAgICBj
b25zdCBDb250YWluZXJOb2RlKiBzY29wZTsKICAgICAgICAgYm9vbCBpbmNsdWRlRW1wdHlSdWxl
czsKKyAgICAgICAgdW5zaWduZWQgc2NvcGVMZXZlbDsKICAgICB9OwogCiAgICAgc3RhdGljIHZv
aWQgYWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVByb3BlcnR5
U2V0KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9
IFNlbGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFsc2UpOwpA
QCAtNDI2LDYgKzQyOCw4IEBAIHB1YmxpYzoKICAgICBDU1NUb1N0eWxlTWFwKiBzdHlsZU1hcCgp
IHsgcmV0dXJuICZtX3N0eWxlTWFwOyB9CiAKICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKKworICAgIHR5cGVkZWYgc3RkOjpwYWlyPHVuc2lnbmVk
LCBjb25zdCBSdWxlRGF0YSo+IFNjb3BlUnVsZURhdGE7CiAgICAgCiBwcml2YXRlOgogICAgIHN0
YXRpYyBSZW5kZXJTdHlsZSogc19zdHlsZU5vdFlldEF2YWlsYWJsZTsKQEAgLTQ3Myw3ICs0Nzcs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gQSBidWZmZXIgdXNlZCB0byBob2xkIHRoZSBzZXQgb2Yg
bWF0Y2hlZCBydWxlcyBmb3IgYW4gZWxlbWVudCwgYW5kIGEgdGVtcG9yYXJ5IGJ1ZmZlciB1c2Vk
IGZvcgogICAgIC8vIG1lcmdlIHNvcnRpbmcuCi0gICAgVmVjdG9yPGNvbnN0IFJ1bGVEYXRhKiwg
MzI+IG1fbWF0Y2hlZFJ1bGVzOworICAgIFZlY3RvcjxTY29wZVJ1bGVEYXRhLCAzMj4gbV9tYXRj
aGVkUnVsZXM7CiAKICAgICBSZWZQdHI8U3RhdGljQ1NTUnVsZUxpc3Q+IG1fcnVsZUxpc3Q7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAKaW5kZXggNzY4MTcyNTMx
ZWIzYTIwNWU1ZWYwYmIzNDJjYjBjOGUyOWJmY2IyZC4uNzMwMDUwZDZjNGQ4MTcyZTU1NGJlODYw
MjhkOWJiNTdjN2IxMmI5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2Nv
cGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZl
ci5jcHAKQEAgLTE4Myw3ICsxODMsNyBAQCB2b2lkIFN0eWxlU2NvcGVSZXNvbHZlcjo6YWRkSG9z
dFJ1bGUoU3R5bGVSdWxlSG9zdCogaG9zdFJ1bGUsIGJvb2wgaGFzRG9jdW1lbnRTZQogCiAgICAg
Y29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVzID0gaG9zdFJ1
bGUtPmNoaWxkUnVsZXMoKTsKICAgICBBZGRSdWxlRmxhZ3MgYWRkUnVsZUZsYWdzID0gaGFzRG9j
dW1lbnRTZWN1cml0eU9yaWdpbiA/IFJ1bGVIYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luIDogUnVs
ZUhhc05vU3BlY2lhbFN0YXRlOwotICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0PEFkZFJ1
bGVGbGFncz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yIHwgUnVs
ZUlzSG9zdFJ1bGUpOworICAgIGFkZFJ1bGVGbGFncyA9IHN0YXRpY19jYXN0PEFkZFJ1bGVGbGFn
cz4oYWRkUnVsZUZsYWdzIHwgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgY2hpbGRSdWxlcy5zaXplKCk7ICsraSkgewogICAgICAgICBT
dHlsZVJ1bGVCYXNlKiBob3N0U3R5bGluZ1J1bGUgPSBjaGlsZFJ1bGVzW2ldLmdldCgpOwogICAg
ICAgICBpZiAoaG9zdFN0eWxpbmdSdWxlLT5pc1N0eWxlUnVsZSgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKaW5kZXggZDZlZDNhOTczMzFkNjc5MjY0YjcxN2NkNjg2
MGMxZWY5Y2Q2MDZhZS4uYTgxZjNiZDg0ZDBkY2I2NmRmNmIzNjVkZGEyNGVlNmYzZGQyMGQ4MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCkBAIC0xNDAsOSArMTQw
LDExIEBAIHZvaWQgSFRNTFN0eWxlRWxlbWVudDo6cmVnaXN0ZXJXaXRoU2NvcGluZ05vZGUoYm9v
bCBzY29wZWQpCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotCiAgICAgc2NvcGUtPnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKTsKLSAg
ICBzY29wZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGlmIChzY29wZS0+aXNTaGFkb3dS
b290KCkpCisgICAgICAgIHNjb3BlLT5zaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKKyAgICBlbHNlCisgICAgICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CiAgICAg
aWYgKGluRG9jdW1lbnQoKSAmJiAhZG9jdW1lbnQoKS0+cGFyc2luZygpICYmIGRvY3VtZW50KCkt
PnJlbmRlcmVyKCkpCiAgICAgICAgIGRvY3VtZW50KCktPnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERl
ZmVyUmVjYWxjU3R5bGUpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODYwNjdhNWYxNjQ1M2EwNjhmZjljZmE3OGRjMjhi
YTljNWVlNDJjMS4uYzg2M2I5ZjNjOTkyOGU3YmYxZGZhODdmYjEzNGQyYWRlMDMwMjYwOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTEyLTEwICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtA
Z29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06IHNjb3BlZCBzdHlsZXMgYXJlIG5v
dCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2Nv
cGVkLW5lc3RlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3N0eWxl
LXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBl
Y3RlZC5odG1sOgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1v
dmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0ZXN0J3Mg
ZXhwZWN0YXRpb24uCisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1lbnQgaXMg
OnJvb3QgYnV0IHNjb3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBpcyBhIGRl
c2NlbmRhbnQgZWxlbWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2luLgorCiAy
MDEyLTEyLTExICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IE9mZmxpbmVBdWRpb0NvbnRleHQgY29uc3RydWN0b3IKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQt
bmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDczMzMwYTEwMDkyODY1N2UzYTNlMzBk
ZTlhOGQ4YmM5NTQwMzdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
c3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTcgQEAKK1Rlc3Qgd2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNj
YWRlIG9yZGVyIG9yIG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNzZXMsIHJ1bGVzIHdoaWNoIGFyZSBk
ZWNsYXJlZCBpbiBkZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVudCBhcmUgYXBwbGllZCB0byBhIHRh
cmdldCBlbGVtZW50LgorYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMjM5CitPbmx5IGRvY3VtZW50LnN0eWxlIGlzIGFwcGxpZWQgdG8gdGhlIHRhcmdldC4K
K1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwg
MCwgMCkiCitBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgZ3JhbmRwYXJl
bnQgbm9kZSBvZiB0aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUgaW4gdGhlIGluc2VydGVkIHNjb3Bl
ZCBzdHlsZSB3aW5zIGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQuc3R5bGUuCitQQVNTIHdpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29sb3IgaXMgInJnYigyNTUsIDI1NSwgMCkiCitBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRh
cmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQg
cnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4KK1BBU1Mgd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDAsIDAsIDI1NSkiCitUZXN0IGEg
c3BhbiBpbiBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUg
aXMgdGhlIGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBz
dHlsZXMgYW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZl
IGFueSBtYXRjaGVkIHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUo
dGFyZ2V0SW5TaGFkb3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIKK0FwcGVuZCBhIG5ldyBz
dHlsZSBlbGVtZW50IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVt
ZW50IGlzIHRoZSBzaGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlk
ZSBvdGhlciBydWxlcyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLgorUEFTUyB3aW5kb3cu
Z2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAyNTUsIDAp
IgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQt
bmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2Nv
cGVkLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRhODA5Nzk4ZDk2MDNmZmIwODBmNWNi
MmYwNGRjOGE0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHls
ZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhZG9j
dHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyN0YXJnZXQsICN0YXJnZXRJblNo
YWRvdyB7CisgICAgY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0iZ3JhbmRwYXJlbnQiPgorICAgIDxk
aXYgaWQ9InBhcmVudCI+CisgICAgICA8c3BhbiBjbGFzcz0idGFyZ2V0IiBpZD0idGFyZ2V0Ij48
L3NwYW4+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2RlYnVnKCJU
ZXN0IHdoZXRoZXIgc2NvcGVkIHN0eWxlcyBhcmUgYXBwbGllZCBpbiB0aGUgY2FzY2FkZSBvcmRl
ciBvciBub3QuIik7CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hpY2ggYXJl
IGRlY2xhcmVkIGluIGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVkIHRvIGEg
dGFyZ2V0IGVsZW1lbnQuIik7CitkZWJ1ZygiYy5mLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGFyZ2V0Iik7CitkZWJ1ZygiT25seSBkb2N1bWVudC5zdHlsZSBpcyBhcHBsaWVk
IHRvIHRoZSB0YXJnZXQuIik7CitzaG91bGRCZSgid2luZG93LmdldENvbXB1dGVkU3R5bGUodGFy
Z2V0KS5jb2xvciIsICcicmdiKDI1NSwgMCwgMCkiJyk7CisKK3ZhciBzdHlsZUZvckdyYW5kcGFy
ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0eWxlRm9yR3JhbmRwYXJl
bnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuaW5uZXJIVE1MID0gIi50YXJn
ZXQgeyBjb2xvcjogeWVsbG93OyB9IjsKK2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJncmFuZHBh
cmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJlbnQpOworZGVidWcoIkEgbmV3IHNj
b3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBncmFuZHBhcmVudCBub2RlIG9mIHRoZSB0
YXJnZXQuIEEgY2xhc3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4g
aWQgcnVsZSBpbiBkb2N1bWVudC5zdHlsZS4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAyNTUsIDApIicpOworCit2YXIgc3R5
bGVGb3JQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JQ
YXJlbnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50LmlubmVySFRNTCA9ICJzcGFuIHsg
Y29sb3I6IGJsdWU7IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBhcmVudCIpLmFwcGVu
ZENoaWxkKHN0eWxlRm9yUGFyZW50KTsKK2RlYnVnKCJBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5z
ZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0
aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxl
IGluIGV4aXN0aW5nIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSInKTsKKwordmFyIHNoYWRvd1Jvb3Qg
PSB0YXJnZXQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdC5pbm5lckhUTUwg
PSAnPHNwYW4gaWQ9InRhcmdldEluU2hhZG93IiBjbGFzcz0idGFyZ2V0Ij48L3NwYW4+JzsKK3Zh
ciB0YXJnZXRJblNoYWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxlbWVudEJ5SWQoInRhcmdldEluU2hh
ZG93Iik7CitzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVzID0gdHJ1ZTsKKy8vIERpc2FibGUg
c3R5bGUtaW5oZXJpdGFuY2UgZnJvbSBpdHMgc2hhZG93IGhvc3QgdG8gY2hlY2sgd2hldGhlciBy
dWxlcyBtYXRjaAorLy8gdGhlIHNwYW4gaW4gdGhlIHNoYWRvdyB0cmVlIG9yIG5vdC4KK3NoYWRv
d1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsKK2RlYnVnKCJUZXN0IGEgc3BhbiBp
biBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhl
IGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMg
YW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBt
YXRjaGVkIHJ1bGVzIG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc3R5
bGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7CitzdHlsZUluU2hh
ZG93LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7IH0iOworc2hhZG93Um9vdC5hcHBl
bmRDaGlsZChzdHlsZUluU2hhZG93KTsKK2RlYnVnKCJBcHBlbmQgYSBuZXcgc3R5bGUgZWxlbWVu
dCB0byB0aGUgc2hhZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNjb3BpbmcgZWxlbWVudCBpcyB0aGUg
c2hhZG93IHJvb3QuIFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91bGQgb3ZlcnJpZGUgb3RoZXIgcnVs
ZXMgaW4gYXNjZW5kYW50IChzY29wZWQpIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAyNTUsIDApIicp
OworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93
LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJl
NzVmNzhkMzRiZmNkZTFiODQ5YWM2NjlkYWFhNC4uYjFhYzY2YzZmYzFiNzE5ZmQ0NDYzMTQxZjRm
ZjQ2MWM3MjYwMzlmMSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxl
LXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRl
LXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFs
IG92ZXJsYXAsIEByZWdpb24gbW9yZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7
IChAcmVnaW9uIHN0eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUg
aGFzIHJ1bGUgZm9yICZsdDtwJmd0OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEn
Pg0KIAkJPHAgY2xhc3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xh
c3M9J2xpbWUnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9m
IHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQog
CTwvZGl2Pg0KIAlQYXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3Bl
Y2lmaWMgdGhhbiBAcmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDss
IHNjb3BlZCBzdHlsZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0n
Y29udGFpbmVyJyBpZD0ncjInPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lv
bi1zdHlsaW5nLmh0bWwKaW5kZXggYmU5Y2NkMmZiZjk4Y2JmOGExYTgzYWYwNWRiOGQ0ZjNlYjk4
NGI5NS4uNDU3Njk0YWVjYmNiZGU5Y2I3MzgxOTc3NmIwODIzY2E4YWUzOTFiMiAxMDA3NTUKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRl
LXJlZ2lvbi1zdHlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxl
LXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKQEAgLTUwLDEzICs1
MCwxMyBAQAogCX0NCiAJQC13ZWJraXQtcmVnaW9uICNyMyB7DQogCQlwIHsNCi0JCQliYWNrZ3Jv
dW5kLWNvbG9yOiBsaWdodGdyZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCiAJ
CX0NCiAJCS5jMyB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisJCQliYWNrZ3JvdW5k
LWNvbG9yOiBvcmFuZ2U7DQogCQl9DQogCQkjcDMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCiAJCX0NCiAJfQ0KIAk8L3N0eWxlPg0K
QEAgLTg3LDE1ICs4NywxNSBAQAogCTwvZGl2Pg0KIAk8ZGl2IGlkPSdmMyc+DQogCQk8c3R5bGUg
c2NvcGVkPSd0cnVlJz4NCi0JCQlwIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0K
LQkJCX0NCi0JCQkuYzMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQotCQkJfQ0K
LQkJCSNwMyB7DQotCQkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCi0JCQl9DQorCQkgICAgICAg
IHAgew0KKwkJCSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisgICAgCQkJ
fQ0KKwkJICAgICAgICAuYzMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsN
CisgICAgICAgIAkJfQ0KKyAgICAgICAgCQkjcDMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47DQorICAgICAgICAJCX0NCiAJCTwvc3R5bGU+DQogCQk8cD5TdHlsZWQgbGlu
ZSBvZiB0ZXh0PC9wPg0KIAkJPHAgY2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179184</attachid>
            <date>2012-12-12 19:57:53 -0800</date>
            <delta_ts>2012-12-12 23:00:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121213125513.patch</filename>
            <type>text/plain</type>
            <size>18533</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5MjIzNjcwMjJhOWFj
Y2QwNDQ5NmZhMTJiZDgzZGYzMzRjMDZhYi4uZTU2NjEyNjBhZGViZmFiNTg5ODEzMGE3ZDNkMTZi
MmYzZjg0N2IwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEyLTEyLTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bGVTZXQ6
OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5IGZvciBAaG9zdCBALXJ1bGVz
LiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNhc2NhZGluZyBvcmRlciBpbnN0
ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAgIFJlbW92ZWQgaW5jcmVhc2VT
cGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkgQGhvc3QgQC1ydWxlcy4KKyAg
ICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJl
c29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2
ZXI6Om1hdGNoQXV0aG9yUnVsZXMpOgorICAgICAgICBNb2RpZmllZCB0byBpbnZva2Ugc29ydEFu
ZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzIHBlciBzY29waW5nIGVsZW1lbnQuCisgICAgICAgIFRoZSBv
cmRlciBvZiAibWF0Y2hYWFhSdWxlcyIgbXVzdCBiZSB0aGUgc2FtZSBhcyB0aGUgY2FzY2FkaW5n
IG9yZGVyLgorICAgICAgICBTbyBtYXRjaEhvc3RSdWxlcyB3YXMgaW52b2tlZCBhZnRlciBjb2xs
ZWN0aW5nIGFsbCBzY29wZWQgYXV0aG9yIHJ1bGVzLgorICAgICAgICAqIGNzcy9TdHlsZVNjb3Bl
UmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTY29wZVJlc29sdmVyOjphZGRI
b3N0UnVsZSk6CisgICAgICAgIFJlbW92ZWQgUnVsZUlzSG9zdFJ1bGUuIFdlIGRvbid0IG5lZWQg
dGhlIGZsYWcuCisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0aFNjb3BpbmdOb2RlKToKKyAg
ICAgICAgTmVlZHMgdG8gcGFzcyB0aGUgbGFzdCB0ZXN0IGNhc2Ugb2Ygc3R5bGUtc2NvcGVkLW5l
c3RlZC5odG1sLgorICAgICAgICBXaGVuIGFwcGVuZGluZyBzb21lIHN0eWxlIGVsZW1lbnQgdG8g
YSBzaGFkb3cgcm9vdCwgd2Ugc2hvdWxkIHJlY2FsYworICAgICAgICBzdHlsZXMgb2YgYWxsIGVs
ZW1lbnRzIGluIHRoZSBzaGFkb3cgZG9tIHRyZWUuIEFuZCBpZiB0aGUgc3R5bGUKKyAgICAgICAg
ZWxlbWVudCBoYXMgQGhvc3QgQC1ydWxlcywgd2UgaGF2ZSB0byB1cGRhdGUgdGhlIGhvc3QncyBz
dHlsZS4KKwogMjAxMi0xMi0xMiAgUGF0cmljayBHYW5zdGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbV0lOXSBJbXBsZW1lbnQgV2ViQ29yZTo6ZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKCkgZm9yICFVU0UoQ0YpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVs
ZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAKaW5kZXggOWE3OGMwZmY5
MDM4OWM5MGM0NGRhNWE2YjlmNWZmN2FlMjBjNmUzMS4uZTYyN2MwNWYyZmUyNjM5YThjNjQxNzNl
ZmI3MzAwMTgxYTMzZWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNwcApAQCAtMTkxLDEwICsxOTEs
NiBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFRvUnVsZVNldChBdG9taWNTdHJpbmdJbXBsKiBrZXksIEF0
b21SdWxlTWFwJiBtYXAsIGNvbnN0IFJ1bGVEYQogdm9pZCBSdWxlU2V0OjphZGRSdWxlKFN0eWxl
UnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRkUnVsZUZsYWdzIGFkZFJ1bGVG
bGFncykKIHsKICAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBzZWxlY3RvckluZGV4LCBtX3J1
bGVDb3VudCsrLCBhZGRSdWxlRmxhZ3MpOwotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBhdGhv
c3RSdWxlU3BlY2lmaWNpdHkgPSAweDEwMDAwMDsKLQotICAgIGlmIChhZGRSdWxlRmxhZ3MgJiBS
dWxlSXNIb3N0UnVsZSkKLSAgICAgICAgcnVsZURhdGEuaW5jcmVhc2VTcGVjaWZpY2l0eShhdGhv
c3RSdWxlU3BlY2lmaWNpdHkpOwogCiAgICAgY29sbGVjdEZlYXR1cmVzRnJvbVJ1bGVEYXRhKG1f
ZmVhdHVyZXMsIHJ1bGVEYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1J1
bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgKaW5kZXggYTJmYmVjYmMwMGIy
Y2ExYjUzMmY0OTZhOTVjMDkzNTAyNmZhNGY3ZC4uMzdhZjlkNDY0NDYzNGEzM2VhYmNiZjYyMWQ1
MmZiODBjNDA5YmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0zNiw3ICszNiw2IEBAIGVudW0g
QWRkUnVsZUZsYWdzIHsKICAgICBSdWxlSGFzRG9jdW1lbnRTZWN1cml0eU9yaWdpbiA9IDEsCiAg
ICAgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yICAgPSAxIDw8IDEsCiAgICAgUnVsZUlzSW5S
ZWdpb25SdWxlICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgUnVsZUlzSG9zdFJ1bGUgICAgICAg
ICAgICAgICAgPSAxIDw8IDMsCiB9OwogCiBjbGFzcyBDU1NTZWxlY3RvcjsKQEAgLTYzLDcgKzYy
LDYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2xpbmtNYXRjaFR5cGU7IH0KICAgICBib29sIGhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4o
KSBjb25zdCB7IHJldHVybiBtX2hhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW47IH0KICAgICBib29s
IGlzSW5SZWdpb25SdWxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0luUmVnaW9uUnVsZTsgfQotICAg
IHZvaWQgaW5jcmVhc2VTcGVjaWZpY2l0eSh1bnNpZ25lZCB2YWx1ZSkgeyBtX3NwZWNpZmljaXR5
ICs9IHZhbHVlOyB9CiAKICAgICAvLyBUcnkgdG8gYmFsYW5jZSBiZXR3ZWVuIG1lbW9yeSB1c2Fn
ZSAodGhlcmUgY2FuIGJlIGxvdHMgb2YgUnVsZURhdGEgb2JqZWN0cykgYW5kIGdvb2QgZmlsdGVy
aW5nIHBlcmZvcm1hbmNlLgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhpbXVtSWRlbnRp
ZmllckNvdW50ID0gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCBkYzkx
YmU2MWFhMjdkZmExYzI3NTEzOWM4NWUyYTRkNTM5MDM1ZTI2Li5kMDY1ZDg1OThhZjhiODk1MjJk
NTY3ODFlZDBlODQzMGMwOWUyYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC03MjYsMzQgKzcyNiwzMyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoU2NvcGVkQXV0
aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdAogICAgIGlmICgh
bV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBtYXRjaEhvc3RSdWxlcyhy
ZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKLQotICAgIGlmICghbV9zY29wZVJlc29sdmVyLT5o
YXNTY29wZWRTdHlsZXMoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgLy8gTWF0Y2ggc2NvcGVk
IGF1dGhvciBydWxlcyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQgZWxlbWVudCBzdGFjayAocmVi
dWlsZCBpdCBpZiBpdCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBpZiAoIW1fc2NvcGVSZXNvbHZl
ci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQotICAgICAgICByZXR1cm47Cisg
ICAgaWYgKG1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5bGVzKCkgJiYgbV9zY29wZVJlc29s
dmVyLT5lbnN1cmVTdGFja0NvbnNpc3RlbmN5KG1fZWxlbWVudCkpIHsKKyAgICAgICAgYm9vbCBh
cHBseUF1dGhvclN0eWxlcyA9IG1fZWxlbWVudC0+dHJlZVNjb3BlKCktPmFwcGx5QXV0aG9yU3R5
bGVzKCk7CisgICAgICAgIGJvb2wgZG9jdW1lbnRTY29wZSA9IHRydWU7CisgICAgICAgIHVuc2ln
bmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tTaXplKCk7CisgICAgICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBzY29wZVNpemU7ICsraSkgeworICAgICAgICAgICAgbV9t
YXRjaGVkUnVsZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhv
clJ1bGUgPSByZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgpIC0gMTsKKworICAgICAgICAg
ICAgY29uc3QgU3R5bGVTY29wZVJlc29sdmVyOjpTdGFja0ZyYW1lJiBmcmFtZSA9IG1fc2NvcGVS
ZXNvbHZlci0+c3RhY2tGcmFtZUF0KGkpOworICAgICAgICAgICAgZG9jdW1lbnRTY29wZSA9IGRv
Y3VtZW50U2NvcGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFkb3dUcmVlKCk7CisgICAgICAg
ICAgICBpZiAoZG9jdW1lbnRTY29wZSkgeworICAgICAgICAgICAgICAgIGlmICghYXBwbHlBdXRo
b3JTdHlsZXMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNvbHZlci0+bWF0Y2hlc1N0eWxl
Qm91bmRzKGZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICB9CiAKLSAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9lbGVtZW50LT50cmVlU2NvcGUo
KS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKLSAgICBib29sIGRvY3VtZW50U2NvcGUgPSB0cnVlOwot
ICAgIHVuc2lnbmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tTaXplKCk7Ci0g
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjb3BlU2l6ZTsgKytpKSB7Ci0gICAgICAgIGNv
bnN0IFN0eWxlU2NvcGVSZXNvbHZlcjo6U3RhY2tGcmFtZSYgZnJhbWUgPSBtX3Njb3BlUmVzb2x2
ZXItPnN0YWNrRnJhbWVBdChpKTsKLSAgICAgICAgZG9jdW1lbnRTY29wZSA9IGRvY3VtZW50U2Nv
cGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFkb3dUcmVlKCk7Ci0gICAgICAgIGlmIChkb2N1
bWVudFNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoIWFwcGx5QXV0aG9yU3R5bGVzKQotICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKCFt
X3Njb3BlUmVzb2x2ZXItPm1hdGNoZXNTdHlsZUJvdW5kcyhmcmFtZSkpCi0gICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRlRW1w
dHlSdWxlcywgZnJhbWUubV9zY29wZSk7CisgICAgICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxl
cyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1bHQu
cmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICAgICAgICAgIGNvbGxlY3RNYXRj
aGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1
dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOworICAgICAg
ICAgICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKHJlc3VsdCk7CiAgICAgICAgIH0KLSAg
ICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVz
LCBmcmFtZS5tX3Njb3BlKTsKLSAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMoZnJhbWUubV9y
dWxlU2V0LCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0
QXV0aG9yUnVsZSwgb3B0aW9ucyk7Ci0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVn
aW9uKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAgIH0KIAorICAgIG1hdGNoSG9z
dFJ1bGVzKHJlc3VsdCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogI2Vsc2UKICAgICBVTlVTRURfUEFS
QU0ocmVzdWx0KTsKICAgICBVTlVTRURfUEFSQU0oaW5jbHVkZUVtcHR5UnVsZXMpOwpAQCAtNzc0
LDE1ICs3NzMsMTggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEhvc3RSdWxlcyhNYXRjaFJl
c3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQogI2lmIEVOQUJMRShTSEFET1df
RE9NKQogICAgIEFTU0VSVChtX3Njb3BlUmVzb2x2ZXIpOwogCisgICAgbV9tYXRjaGVkUnVsZXMu
Y2xlYXIoKTsKKyAgICByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlID0gcmVzdWx0Lm1hdGNo
ZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDE7CisKICAgICBWZWN0b3I8UnVsZVNldCo+IG1hdGNoZWRS
dWxlczsKICAgICBtX3Njb3BlUmVzb2x2ZXItPm1hdGNoSG9zdFJ1bGVzKG1fZWxlbWVudCwgbWF0
Y2hlZFJ1bGVzKTsKICAgICBpZiAobWF0Y2hlZFJ1bGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMpOwotICAg
IG9wdGlvbnMuc2NvcGUgPSBtX2VsZW1lbnQ7CisgICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5j
bHVkZUVtcHR5UnVsZXMsIG1fZWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gbWF0Y2hl
ZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMo
bWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1
bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICBzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMocmVzdWx0KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CiAg
ICAgVU5VU0VEX1BBUkFNKGluY2x1ZGVFbXB0eVJ1bGVzKTsKQEAgLTgwMSwxMCArODAzLDkgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEF1dGhvclJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQs
IGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMKICAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhpbmNsdWRl
RW1wdHlSdWxlcyk7CiAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobV9hdXRob3JTdHlsZS5nZXQo
KSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhv
clJ1bGUsIG9wdGlvbnMpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1fYXV0
aG9yU3R5bGUuZ2V0KCksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1bHQucmFu
Z2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVk
UnVsZXMocmVzdWx0KTsKIAogICAgIG1hdGNoU2NvcGVkQXV0aG9yUnVsZXMocmVzdWx0LCBpbmNs
dWRlRW1wdHlSdWxlcyk7Ci0KLSAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0
KTsKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFVzZXJSdWxlcyhNYXRjaFJlc3VsdCYg
cmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVT
Y29wZVJlc29sdmVyLmNwcAppbmRleCA3NjgxNzI1MzFlYjNhMjA1ZTVlZjBiYjM0MmNiMGM4ZTI5
YmZjYjJkLi43MzAwNTBkNmM0ZDgxNzJlNTU0YmU4NjAyOGQ5YmI1N2M3YjEyYjk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcApAQCAtMTgzLDcgKzE4Myw3IEBA
IHZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjphZGRIb3N0UnVsZShTdHlsZVJ1bGVIb3N0KiBob3N0
UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlCiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxl
UnVsZUJhc2U+ID4mIGNoaWxkUnVsZXMgPSBob3N0UnVsZS0+Y2hpbGRSdWxlcygpOwogICAgIEFk
ZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MgPSBoYXNEb2N1bWVudFNlY3VyaXR5T3JpZ2luID8gUnVs
ZUhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9TcGVjaWFsU3RhdGU7Ci0gICAg
YWRkUnVsZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdzPihhZGRSdWxlRmxhZ3MgfCBS
dWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgfCBSdWxlSXNIb3N0UnVsZSk7CisgICAgYWRkUnVs
ZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdzPihhZGRSdWxlRmxhZ3MgfCBSdWxlQ2Fu
VXNlRmFzdENoZWNrU2VsZWN0b3IpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBjaGls
ZFJ1bGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0eWxlUnVsZUJhc2UqIGhvc3RTdHlsaW5n
UnVsZSA9IGNoaWxkUnVsZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlmIChob3N0U3R5bGluZ1J1bGUt
PmlzU3R5bGVSdWxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHls
ZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVtZW50LmNwcApp
bmRleCBkNmVkM2E5NzMzMWQ2NzkyNjRiNzE3Y2Q2ODYwYzFlZjljZDYwNmFlLi5hODFmM2JkODRk
MGRjYjY2ZGY2YjM2NWRkYTI0ZWU2ZjNkZDIwZDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFN0eWxlRWxlbWVudC5jcHAKQEAgLTE0MCw5ICsxNDAsMTEgQEAgdm9pZCBIVE1MU3R5bGVFbGVt
ZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZShib29sIHNjb3BlZCkKICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0KICAgICBzY29wZS0+cmVn
aXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIHNjb3BlLT5zZXROZWVkc1N0eWxlUmVj
YWxjKCk7CisgICAgaWYgKHNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkKKyAgICAgICAgc2NvcGUtPnNo
YWRvd0hvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGVsc2UKKyAgICAgICAgc2Nv
cGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBpZiAoaW5Eb2N1bWVudCgpICYmICFkb2N1
bWVudCgpLT5wYXJzaW5nKCkgJiYgZG9jdW1lbnQoKS0+cmVuZGVyZXIoKSkKICAgICAgICAgZG9j
dW1lbnQoKS0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3NGE0NTdjNzBiYzIyMzliYzcxNGFlNjcwZmVmYWUwMWEzNDFmZDllLi42OWQxMmJiMzYwNGEx
ZGQ3YWM3YzBlN2Y2ZWE3ODExNTQ1MGQ0ZDU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTIt
MTItMTIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgorCisgICAgICAgIFtT
aGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxpZWQgaW4gdGhlIGNhc2NhZGUg
b3JkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0
ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1m
bG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWw6CisgICAgICAgICogZmFz
dC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0
bWw6CisgICAgICAgIENoYW5nZWQgdGhlIHRlc3QncyBleHBlY3RhdGlvbi4KKyAgICAgICAgU2lu
Y2UgQHJlZ2lvbidzIHNjb3BpbmcgZWxlbWVudCBpcyA6cm9vdCBidXQgc2NvcGVkIHN0eWxlcycg
c2NvcGluZworICAgICAgICBlbGVtZW50IGlzIGEgZGVzY2VuZGFudCBlbGVtZW50IG9mIDpyb290
LCBzY29wZWQgc3R5bGVzIHNob3VsZCB3aW4uCisKIDIwMTItMTItMTIgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBzb21lIHRpbGVk
IHNjcm9sbGluZyByZXN1bHRzIHRoYXQgd2VyZSBhZmZlY3RlZCBieSByMTM3Mzg3LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxl
LXNjb3BlZC1uZXN0ZWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwNzMzMzBhMTAwOTI4NjU3
ZTNhM2UzMGRlOWE4ZDhiYzk1NDAzN2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxNyBAQAorVGVzdCB3aGV0aGVyIHNjb3BlZCBzdHlsZXMgYXJlIGFwcGxpZWQgaW4g
dGhlIGNhc2NhZGUgb3JkZXIgb3Igbm90LgorSWYgdGhpcyB0ZXN0IHBhc3NlcywgcnVsZXMgd2hp
Y2ggYXJlIGRlY2xhcmVkIGluIGRlc2NlbmRhbnQgc2NvcGluZyBlbGVtZW50IGFyZSBhcHBsaWVk
IHRvIGEgdGFyZ2V0IGVsZW1lbnQuCitjLmYuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDMyMzkKK09ubHkgZG9jdW1lbnQuc3R5bGUgaXMgYXBwbGllZCB0byB0aGUg
dGFyZ2V0LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJy
Z2IoMjU1LCAwLCAwKSIKK0EgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBn
cmFuZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xhc3MgcnVsZSBpbiB0aGUgaW5zZXJ0
ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBkb2N1bWVudC5zdHlsZS4KK1BBU1Mg
d2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdiKDI1NSwgMjU1LCAw
KSIKK0EgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBwYXJlbnQgbm9kZSBv
ZiB0aGUgdGFyZ2V0LiBBIHRhZyBydWxlIGluIHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lu
cyBhbiBpZCBydWxlIGFuZCBhIGNsYXNzIHJ1bGUgaW4gZXhpc3Rpbmcgc3R5bGVzLgorUEFTUyB3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIGlzICJyZ2IoMCwgMCwgMjU1KSIK
K1Rlc3QgYSBzcGFuIGluIHNvbWUgc2hhZG93IGRvbSB0cmVlLiBTaW5jZSB0aGUgc3BhbidzIGhv
c3Qgbm9kZSBpcyB0aGUgYWJvdmUgdGFyZ2V0LCB3ZSBoYXZlIHRvIHNlZSBhbGwgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlcyBhbmQgYW4gYXV0aG9yIHN0eWxlIHRvIGZpbmQgd2hldGhlciB0aGUgc3R5
bGVzIGhhdmUgYW55IG1hdGNoZWQgcnVsZXMgb3Igbm90LgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IgaXMgInJnYigwLCAwLCAyNTUpIgorQXBwZW5k
IGEgbmV3IHN0eWxlIGVsZW1lbnQgdG8gdGhlIHNoYWRvdyByb290LiBUaGUgc3R5bGUncyBzY29w
aW5nIGVsZW1lbnQgaXMgdGhlIHNoYWRvdyByb290LiBSdWxlcyBpbiB0aGUgc3R5bGUgc2hvdWxk
IG92ZXJyaWRlIG90aGVyIHJ1bGVzIGluIGFzY2VuZGFudCAoc2NvcGVkKSBzdHlsZXMuCitQQVNT
IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciBpcyAicmdiKDAs
IDI1NSwgMCkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxl
LXNjb3BlZC1uZXN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9z
dHlsZS1zY29wZWQtbmVzdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWE1NjMxNGE4MDk3OThkOTYwM2Zm
YjA4MGY1Y2IyZjA0ZGM4YTRjNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwKQEAgLTAsMCArMSw2NCBA
QAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorI3RhcmdldCwgI3Rh
cmdldEluU2hhZG93IHsKKyAgICBjb2xvcjogcmVkOworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2RvbS9zaGFkb3cvcmVzb3VyY2VzL3BvbHlmaWxsLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8ZGl2IGlkPSJncmFuZHBhcmVudCI+
CisgICAgPGRpdiBpZD0icGFyZW50Ij4KKyAgICAgIDxzcGFuIGNsYXNzPSJ0YXJnZXQiIGlkPSJ0
YXJnZXQiPjwvc3Bhbj4KKyAgICA8L2Rpdj4KKyAgPC9kaXY+Cis8L2JvZHk+Cis8c2NyaXB0Pgor
ZGVidWcoIlRlc3Qgd2hldGhlciBzY29wZWQgc3R5bGVzIGFyZSBhcHBsaWVkIGluIHRoZSBjYXNj
YWRlIG9yZGVyIG9yIG5vdC4iKTsKK2RlYnVnKCJJZiB0aGlzIHRlc3QgcGFzc2VzLCBydWxlcyB3
aGljaCBhcmUgZGVjbGFyZWQgaW4gZGVzY2VuZGFudCBzY29waW5nIGVsZW1lbnQgYXJlIGFwcGxp
ZWQgdG8gYSB0YXJnZXQgZWxlbWVudC4iKTsKK2RlYnVnKCJjLmYuIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkiKTsKKwordmFyIHRhcmdldCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKK2RlYnVnKCJPbmx5IGRvY3VtZW50LnN0eWxlIGlz
IGFwcGxpZWQgdG8gdGhlIHRhcmdldC4iKTsKK3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAwLCAwKSInKTsKKwordmFyIHN0eWxlRm9y
R3JhbmRwYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzdHlsZSIpOworc3R5bGVGb3JH
cmFuZHBhcmVudC5zY29wZWQgPSB0cnVlOworc3R5bGVGb3JHcmFuZHBhcmVudC5pbm5lckhUTUwg
PSAiLnRhcmdldCB7IGNvbG9yOiB5ZWxsb3c7IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImdyYW5kcGFyZW50IikuYXBwZW5kQ2hpbGQoc3R5bGVGb3JHcmFuZHBhcmVudCk7CitkZWJ1Zygi
QSBuZXcgc2NvcGVkIHN0eWxlIGlzIGluc2VydGVkIGludG8gdGhlIGdyYW5kcGFyZW50IG5vZGUg
b2YgdGhlIHRhcmdldC4gQSBjbGFzcyBydWxlIGluIHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUg
d2lucyBhbiBpZCBydWxlIGluIGRvY3VtZW50LnN0eWxlLiIpOworc2hvdWxkQmUoIndpbmRvdy5n
ZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29sb3IiLCAnInJnYigyNTUsIDI1NSwgMCkiJyk7CisK
K3ZhciBzdHlsZUZvclBhcmVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInN0eWxlIik7Citz
dHlsZUZvclBhcmVudC5zY29wZWQgPSB0cnVlOworc3R5bGVGb3JQYXJlbnQuaW5uZXJIVE1MID0g
InNwYW4geyBjb2xvcjogYmx1ZTsgfSI7Citkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGFyZW50
IikuYXBwZW5kQ2hpbGQoc3R5bGVGb3JQYXJlbnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHls
ZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBwYXJlbnQgbm9kZSBvZiB0aGUgdGFyZ2V0LiBBIHRhZyBy
dWxlIGluIHRoZSBpbnNlcnRlZCBzY29wZWQgc3R5bGUgd2lucyBhbiBpZCBydWxlIGFuZCBhIGNs
YXNzIHJ1bGUgaW4gZXhpc3Rpbmcgc3R5bGVzLiIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHRhcmdldCkuY29sb3IiLCAnInJnYigwLCAwLCAyNTUpIicpOworCit2YXIgc2hh
ZG93Um9vdCA9IHRhcmdldC53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290Lmlu
bmVySFRNTCA9ICc8c3BhbiBpZD0idGFyZ2V0SW5TaGFkb3ciIGNsYXNzPSJ0YXJnZXQiPjwvc3Bh
bj4nOwordmFyIHRhcmdldEluU2hhZG93ID0gc2hhZG93Um9vdC5nZXRFbGVtZW50QnlJZCgidGFy
Z2V0SW5TaGFkb3ciKTsKK3NoYWRvd1Jvb3QuYXBwbHlBdXRob3JTdHlsZXMgPSB0cnVlOworLy8g
RGlzYWJsZSBzdHlsZS1pbmhlcml0YW5jZSBmcm9tIGl0cyBzaGFkb3cgaG9zdCB0byBjaGVjayB3
aGV0aGVyIHJ1bGVzIG1hdGNoCisvLyB0aGUgc3BhbiBpbiB0aGUgc2hhZG93IHRyZWUgb3Igbm90
Lgorc2hhZG93Um9vdC5yZXNldFN0eWxlSW5oZXJpdGFuY2UgPSB0cnVlOworZGVidWcoIlRlc3Qg
YSBzcGFuIGluIHNvbWUgc2hhZG93IGRvbSB0cmVlLiBTaW5jZSB0aGUgc3BhbidzIGhvc3Qgbm9k
ZSBpcyB0aGUgYWJvdmUgdGFyZ2V0LCB3ZSBoYXZlIHRvIHNlZSBhbGwgaW5zZXJ0ZWQgc2NvcGVk
IHN0eWxlcyBhbmQgYW4gYXV0aG9yIHN0eWxlIHRvIGZpbmQgd2hldGhlciB0aGUgc3R5bGVzIGhh
dmUgYW55IG1hdGNoZWQgcnVsZXMgb3Igbm90LiIpOworc2hvdWxkQmUoIndpbmRvdy5nZXRDb21w
dXRlZFN0eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciIsICcicmdiKDAsIDAsIDI1NSkiJyk7CisK
K3ZhciBzdHlsZUluU2hhZG93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKTsKK3N0
eWxlSW5TaGFkb3cuaW5uZXJIVE1MID0gInNwYW4geyBjb2xvcjogbGltZTsgfSI7CitzaGFkb3dS
b290LmFwcGVuZENoaWxkKHN0eWxlSW5TaGFkb3cpOworZGVidWcoIkFwcGVuZCBhIG5ldyBzdHls
ZSBlbGVtZW50IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhlIHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50
IGlzIHRoZSBzaGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhlIHN0eWxlIHNob3VsZCBvdmVycmlkZSBv
dGhlciBydWxlcyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkgc3R5bGVzLiIpOworc2hvdWxkQmUoIndp
bmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldEluU2hhZG93KS5jb2xvciIsICcicmdiKDAsIDI1
NSwgMCkiJyk7CisKKzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVk
LWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRtbAppbmRleCAxMDMz
OWMxNjM3MmU3NWY3OGQzNGJmY2RlMWI4NDlhYzY2OWRhYWE0Li5iMWFjNjZjNmZjMWI3MTlmZDQ0
NjMxNDFmNGZmNDYxYzcyNjAzOWYxIDEwMDc1NQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ct
b3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmctZXhwZWN0ZWQuaHRtbApAQCAtMzIsOCArMzIsOCBAQAog
CVBhcnRpYWwgb3ZlcmxhcCwgQHJlZ2lvbiBtb3JlIHNwZWNpZmljIHRoYW4gJmx0O3N0eWxlIHNj
b3BlZCZndDsgKEByZWdpb24gc3R5bGUgaGFzIHJ1bGVzIGZvciBjbGFzcyBhbmQgaWQsIHNjb3Bl
ZCBzdHlsZSBoYXMgcnVsZSBmb3IgJmx0O3AmZ3Q7KQ0KIAk8ZGl2IGNsYXNzPSdjb250YWluZXIn
IGlkPSdyMSc+DQogCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQot
CQk8cCBjbGFzcz0nbGltZSc+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCi0JCTxwIGNsYXNzPSdn
cmVlbic+U3R5bGVkIGxpbmUgb2YgdGV4dDwvcD4NCisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVk
IGxpbmUgb2YgdGV4dDwvcD4NCisJCTxwIGNsYXNzPSdsaWdodCc+U3R5bGVkIGxpbmUgb2YgdGV4
dDwvcD4NCiAJPC9kaXY+DQogCVBhcnRpYWwgb3ZlcmxhcCwgJmx0O3N0eWxlIHNjb3BlZCZndDsg
bW9yZSBzcGVjaWZpYyB0aGFuIEByZWdpb24gKEByZWdpb24gc3R5bGUgaGFzIHJ1bGUgZm9yICZs
dDtwJmd0Oywgc2NvcGVkIHN0eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkKQ0KIAk8ZGl2
IGNsYXNzPSdjb250YWluZXInIGlkPSdyMic+DQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJp
ZGUtcmVnaW9uLXN0eWxpbmcuaHRtbAppbmRleCBiZTljY2QyZmJmOThjYmY4YTFhODNhZjA1ZGI4
ZDRmM2ViOTg0Yjk1Li40NTc2OTRhZWNiY2JkZTljYjczODE5Nzc2YjA4MjNjYThhZTM5MWIyIDEw
MDc1NQotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvc3R5bGUtc2NvcGVkLWluLWZsb3ct
b3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvc3R5bGUtc2NvcGVkLWluLWZsb3ctb3ZlcnJpZGUtcmVnaW9uLXN0eWxpbmcuaHRtbApAQCAt
NTAsMTMgKzUwLDEzIEBACiAJfQ0KIAlALXdlYmtpdC1yZWdpb24gI3IzIHsNCiAJCXAgew0KLQkJ
CWJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47DQorCQkJYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93Ow0KIAkJfQ0KIAkJLmMzIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBsaW1lOw0KKwkJCWJh
Y2tncm91bmQtY29sb3I6IG9yYW5nZTsNCiAJCX0NCiAJCSNwMyB7DQotCQkJYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47DQorCQkJYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KIAkJfQ0KIAl9DQogCTwv
c3R5bGU+DQpAQCAtODcsMTUgKzg3LDE1IEBACiAJPC9kaXY+DQogCTxkaXYgaWQ9J2YzJz4NCiAJ
CTxzdHlsZSBzY29wZWQ9J3RydWUnPg0KLQkJCXAgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiB5
ZWxsb3c7DQotCQkJfQ0KLQkJCS5jMyB7DQotCQkJCWJhY2tncm91bmQtY29sb3I6IG9yYW5nZTsN
Ci0JCQl9DQotCQkJI3AzIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogcmVkOw0KLQkJCX0NCisJ
CSAgICAgICAgcCB7DQorCQkJICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVuOw0K
KyAgICAJCQl9DQorCQkgICAgICAgIC5jMyB7DQorICAgICAgICAJCQliYWNrZ3JvdW5kLWNvbG9y
OiBsaW1lOw0KKyAgICAgICAgCQl9DQorICAgICAgICAJCSNwMyB7DQorICAgICAgICAJCQliYWNr
Z3JvdW5kLWNvbG9yOiBncmVlbjsNCisgICAgICAgIAkJfQ0KIAkJPC9zdHlsZT4NCiAJCTxwPlN0
eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCQk8cCBjbGFzcz0nYzMnPlN0eWxlZCBsaW5lIG9mIHRl
eHQ8L3A+DQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179205</attachid>
            <date>2012-12-12 23:00:32 -0800</date>
            <delta_ts>2012-12-12 23:16:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121213155752.patch</filename>
            <type>text/plain</type>
            <size>26085</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5MjIzNjcwMjJhOWFj
Y2QwNDQ5NmZhMTJiZDgzZGYzMzRjMDZhYi4uMTM1MjU0N2ZiMDExM2M4NDM5MDZmYmVlNjhkN2Iz
MjY0OWNjMGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEyLTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRoLWlt
cG9ydGFudC1ydWxlLmh0bWwKKworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5
IGZvciBAaG9zdCBALXJ1bGVzLiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNh
c2NhZGluZyBvcmRlciBpbnN0ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAg
IFJlbW92ZWQgaW5jcmVhc2VTcGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkg
QGhvc3QgQC1ydWxlcy4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1bGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9yUnVsZXMpOgorICAgICAgICBNb2RpZmll
ZCB0byBpbnZva2Ugc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzIHBlciBzY29waW5nIGVsZW1l
bnQuCisgICAgICAgIFRoZSBvcmRlciBvZiAibWF0Y2hYWFhSdWxlcyIgbXVzdCBiZSB0aGUgc2Ft
ZSBhcyB0aGUgY2FzY2FkaW5nIG9yZGVyLgorICAgICAgICBTbyBtYXRjaEhvc3RSdWxlcyB3YXMg
aW52b2tlZCBhZnRlciBjb2xsZWN0aW5nIGFsbCBzY29wZWQgYXV0aG9yIHJ1bGVzLgorICAgICAg
ICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVT
Y29wZVJlc29sdmVyOjphZGRIb3N0UnVsZSk6CisgICAgICAgIFJlbW92ZWQgUnVsZUlzSG9zdFJ1
bGUuIFdlIGRvbid0IG5lZWQgdGhlIGZsYWcuCisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0
aFNjb3BpbmdOb2RlKToKKyAgICAgICAgTmVlZHMgdG8gcGFzcyB0aGUgbGFzdCB0ZXN0IGNhc2Ug
b2Ygc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sLgorICAgICAgICBXaGVuIGFwcGVuZGluZyBzb21l
IHN0eWxlIGVsZW1lbnQgdG8gYSBzaGFkb3cgcm9vdCwgd2Ugc2hvdWxkIHJlY2FsYworICAgICAg
ICBzdHlsZXMgb2YgYWxsIGVsZW1lbnRzIGluIHRoZSBzaGFkb3cgZG9tIHRyZWUuIEFuZCBpZiB0
aGUgc3R5bGUKKyAgICAgICAgZWxlbWVudCBoYXMgQGhvc3QgQC1ydWxlcywgd2UgaGF2ZSB0byB1
cGRhdGUgdGhlIGhvc3QncyBzdHlsZS4KKwogMjAxMi0xMi0xMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0lOXSBJbXBsZW1lbnQgV2ViQ29yZTo6
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKCkgZm9yICFVU0UoQ0YpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5j
cHAKaW5kZXggOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZmN2FlMjBjNmUzMS4uZTYyN2Mw
NWYyZmUyNjM5YThjNjQxNzNlZmI3MzAwMTgxYTMzZWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cApAQCAtMTkxLDEwICsxOTEsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFRvUnVsZVNldChBdG9taWNT
dHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0IFJ1bGVEYQogdm9pZCBSdWxl
U2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRk
UnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKIHsKICAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBz
ZWxlY3RvckluZGV4LCBtX3J1bGVDb3VudCsrLCBhZGRSdWxlRmxhZ3MpOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBhdGhvc3RSdWxlU3BlY2lmaWNpdHkgPSAweDEwMDAwMDsKLQotICAgIGlm
IChhZGRSdWxlRmxhZ3MgJiBSdWxlSXNIb3N0UnVsZSkKLSAgICAgICAgcnVsZURhdGEuaW5jcmVh
c2VTcGVjaWZpY2l0eShhdGhvc3RSdWxlU3BlY2lmaWNpdHkpOwogCiAgICAgY29sbGVjdEZlYXR1
cmVzRnJvbVJ1bGVEYXRhKG1fZmVhdHVyZXMsIHJ1bGVEYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgK
aW5kZXggYTJmYmVjYmMwMGIyY2ExYjUzMmY0OTZhOTVjMDkzNTAyNmZhNGY3ZC4uMzdhZjlkNDY0
NDYzNGEzM2VhYmNiZjYyMWQ1MmZiODBjNDA5YmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0z
Niw3ICszNiw2IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsKICAgICBSdWxlSGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiA9IDEsCiAgICAgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yICAgPSAxIDw8
IDEsCiAgICAgUnVsZUlzSW5SZWdpb25SdWxlICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgUnVs
ZUlzSG9zdFJ1bGUgICAgICAgICAgICAgICAgPSAxIDw8IDMsCiB9OwogCiBjbGFzcyBDU1NTZWxl
Y3RvcjsKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2xpbmtNYXRjaFR5cGU7IH0KICAgICBib29sIGhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2hhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW47IH0KICAgICBib29sIGlzSW5SZWdpb25SdWxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0lu
UmVnaW9uUnVsZTsgfQotICAgIHZvaWQgaW5jcmVhc2VTcGVjaWZpY2l0eSh1bnNpZ25lZCB2YWx1
ZSkgeyBtX3NwZWNpZmljaXR5ICs9IHZhbHVlOyB9CiAKICAgICAvLyBUcnkgdG8gYmFsYW5jZSBi
ZXR3ZWVuIG1lbW9yeSB1c2FnZSAodGhlcmUgY2FuIGJlIGxvdHMgb2YgUnVsZURhdGEgb2JqZWN0
cykgYW5kIGdvb2QgZmlsdGVyaW5nIHBlcmZvcm1hbmNlLgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50ID0gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBkYzkxYmU2MWFhMjdkZmExYzI3NTEzOWM4NWUyYTRkNTM5MDM1ZTI2Li5k
MDY1ZDg1OThhZjhiODk1MjJkNTY3ODFlZDBlODQzMGMwOWUyYmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03MjYsMzQgKzcyNiwzMyBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNs
dWRlRW1wdAogICAgIGlmICghbV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtYXRjaEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKLQotICAgIGlmICgh
bV9zY29wZVJlc29sdmVyLT5oYXNTY29wZWRTdHlsZXMoKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxlcyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQg
ZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBpdCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBp
ZiAoIW1fc2NvcGVSZXNvbHZlci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQot
ICAgICAgICByZXR1cm47CisgICAgaWYgKG1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5bGVz
KCkgJiYgbV9zY29wZVJlc29sdmVyLT5lbnN1cmVTdGFja0NvbnNpc3RlbmN5KG1fZWxlbWVudCkp
IHsKKyAgICAgICAgYm9vbCBhcHBseUF1dGhvclN0eWxlcyA9IG1fZWxlbWVudC0+dHJlZVNjb3Bl
KCktPmFwcGx5QXV0aG9yU3R5bGVzKCk7CisgICAgICAgIGJvb2wgZG9jdW1lbnRTY29wZSA9IHRy
dWU7CisgICAgICAgIHVuc2lnbmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tT
aXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzY29wZVNpemU7ICsraSkg
eworICAgICAgICAgICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIHJlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSByZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgp
IC0gMTsKKworICAgICAgICAgICAgY29uc3QgU3R5bGVTY29wZVJlc29sdmVyOjpTdGFja0ZyYW1l
JiBmcmFtZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tGcmFtZUF0KGkpOworICAgICAgICAgICAg
ZG9jdW1lbnRTY29wZSA9IGRvY3VtZW50U2NvcGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFk
b3dUcmVlKCk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRTY29wZSkgeworICAgICAgICAgICAg
ICAgIGlmICghYXBwbHlBdXRob3JTdHlsZXMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNv
bHZlci0+bWF0Y2hlc1N0eWxlQm91bmRzKGZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICB9CiAKLSAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9l
bGVtZW50LT50cmVlU2NvcGUoKS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKLSAgICBib29sIGRvY3Vt
ZW50U2NvcGUgPSB0cnVlOwotICAgIHVuc2lnbmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZl
ci0+c3RhY2tTaXplKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjb3BlU2l6ZTsg
KytpKSB7Ci0gICAgICAgIGNvbnN0IFN0eWxlU2NvcGVSZXNvbHZlcjo6U3RhY2tGcmFtZSYgZnJh
bWUgPSBtX3Njb3BlUmVzb2x2ZXItPnN0YWNrRnJhbWVBdChpKTsKLSAgICAgICAgZG9jdW1lbnRT
Y29wZSA9IGRvY3VtZW50U2NvcGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFkb3dUcmVlKCk7
Ci0gICAgICAgIGlmIChkb2N1bWVudFNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoIWFwcGx5QXV0
aG9yU3R5bGVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPm1hdGNoZXNTdHlsZUJvdW5kcyhmcmFt
ZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBNYXRjaE9wdGlvbnMg
b3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSk7CisgICAgICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RB
dXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICAg
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVz
dWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUs
IG9wdGlvbnMpOworICAgICAgICAgICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKHJlc3Vs
dCk7CiAgICAgICAgIH0KLSAgICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25z
KGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlKTsKLSAgICAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXMoZnJhbWUubV9ydWxlU2V0LCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwg
cmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7Ci0gICAgICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAg
IH0KIAorICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3VsdCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKICAgICBVTlVTRURfUEFSQU0oaW5jbHVkZUVt
cHR5UnVsZXMpOwpAQCAtNzc0LDE1ICs3NzMsMTggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRj
aEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQogICAgIEFTU0VSVChtX3Njb3BlUmVzb2x2ZXIpOwogCisg
ICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKKyAgICByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JS
dWxlID0gcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDE7CisKICAgICBWZWN0b3I8
UnVsZVNldCo+IG1hdGNoZWRSdWxlczsKICAgICBtX3Njb3BlUmVzb2x2ZXItPm1hdGNoSG9zdFJ1
bGVzKG1fZWxlbWVudCwgbWF0Y2hlZFJ1bGVzKTsKICAgICBpZiAobWF0Y2hlZFJ1bGVzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVk
ZUVtcHR5UnVsZXMpOwotICAgIG9wdGlvbnMuc2NvcGUgPSBtX2VsZW1lbnQ7CisgICAgTWF0Y2hP
cHRpb25zIG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMsIG1fZWxlbWVudCk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29s
bGVjdE1hdGNoaW5nUnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmly
c3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAg
ICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CiAgICAgVU5VU0VEX1BBUkFNKGluY2x1ZGVFbXB0eVJ1bGVzKTsKQEAg
LTgwMSwxMCArODAzLDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEF1dGhvclJ1bGVzKE1h
dGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMKICAgICBNYXRjaE9wdGlv
bnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMo
bV9hdXRob3JTdHlsZS5nZXQoKSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1
bGVzRm9yUmVnaW9uKG1fYXV0aG9yU3R5bGUuZ2V0KCksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRo
b3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICBzb3J0
QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKIAogICAgIG1hdGNoU2NvcGVkQXV0aG9y
UnVsZXMocmVzdWx0LCBpbmNsdWRlRW1wdHlSdWxlcyk7Ci0KLSAgICBzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMocmVzdWx0KTsKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFVzZXJS
dWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcAppbmRleCA3NjgxNzI1MzFlYjNhMjA1
ZTVlZjBiYjM0MmNiMGM4ZTI5YmZjYjJkLi43MzAwNTBkNmM0ZDgxNzJlNTU0YmU4NjAyOGQ5YmI1
N2M3YjEyYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcApA
QCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjphZGRIb3N0UnVsZShT
dHlsZVJ1bGVIb3N0KiBob3N0UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlCiAKICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGNoaWxkUnVsZXMgPSBob3N0UnVsZS0+Y2hp
bGRSdWxlcygpOwogICAgIEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MgPSBoYXNEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luID8gUnVsZUhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9T
cGVjaWFsU3RhdGU7Ci0gICAgYWRkUnVsZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdz
PihhZGRSdWxlRmxhZ3MgfCBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgfCBSdWxlSXNIb3N0
UnVsZSk7CisgICAgYWRkUnVsZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdzPihhZGRS
dWxlRmxhZ3MgfCBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBjaGlsZFJ1bGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0eWxlUnVs
ZUJhc2UqIGhvc3RTdHlsaW5nUnVsZSA9IGNoaWxkUnVsZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlm
IChob3N0U3R5bGluZ1J1bGUtPmlzU3R5bGVSdWxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmNwcAppbmRleCBkNmVkM2E5NzMzMWQ2NzkyNjRiNzE3Y2Q2ODYwYzFlZjlj
ZDYwNmFlLi5hODFmM2JkODRkMGRjYjY2ZGY2YjM2NWRkYTI0ZWU2ZjNkZDIwZDgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTE0MCw5ICsxNDAsMTEgQEAg
dm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZShib29sIHNjb3Bl
ZCkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0KICAgICBzY29wZS0+cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIHNjb3Bl
LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgaWYgKHNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkK
KyAgICAgICAgc2NvcGUtPnNoYWRvd0hvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAg
IGVsc2UKKyAgICAgICAgc2NvcGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBpZiAoaW5E
b2N1bWVudCgpICYmICFkb2N1bWVudCgpLT5wYXJzaW5nKCkgJiYgZG9jdW1lbnQoKS0+cmVuZGVy
ZXIoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNh
bGNTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3NGE0NTdjNzBiYzIyMzliYzcxNGFlNjcwZmVmYWUwMWEzNDFm
ZDllLi41YTk4ODc1MWIxOTA0ZGVkOWMxZGUwODIyZWE5ZjllNzQxODBiNzYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMTItMTIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFtTaGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxp
ZWQgaW4gdGhlIGNhc2NhZGUgb3JkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVz
dGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5
bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRoLWltcG9ydGFudC1ydWxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRo
LWltcG9ydGFudC1ydWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdp
b24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0ZXN0J3MgZXhwZWN0YXRpb24u
CisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1lbnQgaXMgOnJvb3QgYnV0IHNj
b3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBpcyBhIGRlc2NlbmRhbnQgZWxl
bWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2luLgorCiAyMDEyLTEyLTEyICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxp
bmUgc29tZSB0aWxlZCBzY3JvbGxpbmcgcmVzdWx0cyB0aGF0IHdlcmUgYWZmZWN0ZWQgYnkgcjEz
NzM4Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHls
ZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxl
LXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDcz
MzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQwMzdiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qgd2hldGhlciBzY29wZWQgc3R5bGVzIGFy
ZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9yIG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNz
ZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBkZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVu
dCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50LgorYy5mLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitPbmx5IGRvY3VtZW50LnN0eWxlIGlzIGFw
cGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0
KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0
ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUg
aW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5zIGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQu
c3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29sb3IgaXMgInJn
YigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUg
cGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2Nv
cGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0
eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdi
KDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2Ug
dGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUg
YWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdo
ZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFkb3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwg
MjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhl
IHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBzaGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhl
IHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxlcyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkg
c3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29s
b3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxl
LXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9z
dHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRh
ODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
KyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAgY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0i
Z3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVudCI+CisgICAgICA8c3BhbiBjbGFzcz0i
dGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIgc2NvcGVkIHN0eWxlcyBhcmUgYXBwbGll
ZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBh
c3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGluIGRlc2NlbmRhbnQgc2NvcGluZyBlbGVt
ZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1lbnQuIik7CitkZWJ1ZygiYy5mLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CitkZWJ1ZygiT25seSBkb2N1
bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJnZXQuIik7CitzaG91bGRCZSgid2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIsICcicmdiKDI1NSwgMCwgMCkiJyk7CisK
K3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUi
KTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJl
bnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjogeWVsbG93OyB9IjsKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJl
bnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBncmFu
ZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xhc3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBkb2N1bWVudC5zdHlsZS4iKTsKK3Nob3Vs
ZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAy
NTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50
LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yUGFyZW50KTsKK2RlYnVnKCJBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRh
cmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQg
cnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSIn
KTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwor
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9InRhcmdldEluU2hhZG93IiBjbGFzcz0i
dGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNoYWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVz
ID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJpdGFuY2UgZnJvbSBpdHMgc2hhZG93IGhv
c3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAorLy8gdGhlIHNwYW4gaW4gdGhlIHNoYWRv
dyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsK
K2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNw
YW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGlu
c2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIg
dGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVzIG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAw
LCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7
IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHlsZUluU2hhZG93KTsKK2RlYnVnKCJBcHBl
bmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hhZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNj
b3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3QuIFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91
bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5kYW50IChzY29wZWQpIHN0eWxlcy4iKTsK
K3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3Ii
LCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtd2l0aC1p
bXBvcnRhbnQtcnVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1z
Y29wZWQvc3R5bGUtc2NvcGVkLXdpdGgtaW1wb3J0YW50LXJ1bGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRlYzkyOGJiODViYWQ3ODBhYjE4MGZjZGY4YzE2OTlkYmY1YTJlZTcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVk
LXdpdGgtaW1wb3J0YW50LXJ1bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjMgQEAKK1Rlc3Qg
dGhhdCBydWxlcyBpbiBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVldCBkb24ndCBvdmVycmlkZSAh
aW1wb3J0YW50IHJ1bGVzIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2FzZTogVGhlIHRhcmdldCBlbGVtZW50
IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29w
ZWQgc3R5bGVzaGVldCwgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFueSBtYXRjaGVkIG5vcm1h
bCBydWxlIGRlY2xhcmVkIGluIGFuIGlubmVyIHNjb3BlZCBzdHlsZXNoZWV0LgorUEFTUyBnZXRD
b21wdXRlZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorQ2Fz
ZTogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNs
YXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVzaGVldCwgYW5kIHRoZSBlbGVtZW50IGFsc28g
aGFzIGEgbWF0Y2hlZCBub3JtYWwgSUQgcnVsZSBkZWNsYXJlZCBpbiBhbiBpbm5lciBzY29wZWQg
c3R5bGVzaGVldC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmJvcmRlckNvbG9yIGlz
ICJyZ2IoMCwgMTI4LCAwKSIKK0Nhc2U6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNo
ZWQgaW1wb3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2NvcGVkIHN0eWxlc2hlZXQs
IGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBtYXRjaGVkIG5vcm1hbCBydWxlcyBkZWNsYXJlZCBp
biBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVldCBhbmQgaW4gYSBTVFlMRSBhdHRyaWJ1dGUuCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5ib3JkZXJDb2xvciBpcyAicmdiKDAsIDEyOCwg
MCkiCitDYXNlOiBUaGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGFueSBtYXRjaGVkIGltcG9ydGFudCBy
dWxlIGRlY2xhcmVkIGluIGFuIGF1dGhvciBzdHlsZXNoZWV0LCBhbmQgdGhlIGVsZW1lbnQgYWxz
byBoYXMgbWF0Y2hlZCBub3JtYWwgcnVsZXMgZGVjbGFyZWQgaW4gYW4gaW5uZXIgc2NvcGVkIHN0
eWxlc2hlZXQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5ib3JkZXJDb2xvciBpcyAi
cmdiKDAsIDI1NSwgMCkiCitDYXNlOiBUaGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGFueSBtYXRjaGVk
IGltcG9ydGFudCBydWxlIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0LiBU
aGUgZWxlbWVudCBpcyBpbiBhIHNoYWRvdyBkb20gdHJlZSB3aG9zZSBzaGFkb3cgcm9vdCBoYXMg
YXBwbHktYXV0aG9yLXN0eWxlcyB0cnVlLiBUaGUgc2hhZG93IGRvbSB0cmVlIGhhcyBhbnkgb3Ro
ZXIgbm9ybWFsIHJ1bGVzIHdoaWNoIG1hdGNoIHRoZSBlbGVtZW50LgorUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorQ2FzZTogVGhl
IHRhcmdldCBlbGVtZW50IGluIGEgc2hhZG93IGRvbSB0cmVlIGhhcyBhbnkgbWF0Y2hlZCBpbXBv
cnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVzaGVldCBpbiBhbiBl
bmNsb3Npbmcgc2hhZG93IGRvbSB0cmVlLiBUaGUgdGFyZ2V0IGVsZW1lbnQncyBzaGFkb3cgcm9v
dCBoYXMgYXBwbHktYXV0aG9yLXN0eWxlcyB0cnVlLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRh
cmdldCkuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorQ2FzZTogVGhlIHRhcmdldCBl
bGVtZW50IGlzIGluIGEgc2hhZG93IGRvbSB0cmVlLiBBbiBlbmNsb3Npbmcgc2hhZG93IGRvbSB0
cmVlIGhhcyBzb21lIHN0eWxlc2hlZXQgd2hpY2ggZGVjbGFyZXMgYW4gaW1wb3J0YW50IHJ1bGUu
IFRoZSB0YXJnZXQgZWxlbWVudCdzIHNoYWRvdyByb290IGhhcyBhcHBseS1hdXRob3Itc3R5bGVz
IGZhbHNlLgorUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3IgaXMgInJn
YigwLCAwLCAyNTUpIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9z
dHlsZS1zY29wZWQtd2l0aC1pbXBvcnRhbnQtcnVsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
c3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRoLWltcG9ydGFudC1ydWxlLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYmMzNWRlYzAyMzdmYjdiZjgzYTkwODViY2ViMTcwYzljNDBhNTQ1NQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29w
ZWQtd2l0aC1pbXBvcnRhbnQtcnVsZS5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geyBib3JkZXItY29sb3I6IGxpbWUg
ISBpbXBvcnRhbnQ7IH0KK2RpdiB7IGJvcmRlci1jb2xvcjogb3JhbmdlOyB9CitkaXYjaWQyIHsg
Ym9yZGVyLWNvbG9yOiB5ZWxsb3c7IH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9k
b20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXY+CisgIDxzdHlsZSBzY29wZWQ+CisgICAgICBkaXYgeyBib3JkZXItY29sb3I6IGdy
ZWVuICEgaW1wb3J0YW50OyB9CisgICAgICBkaXYgeyBib3JkZXItY29sb3I6IHJlZDsgfQorICAg
ICAgZGl2I2lkMiB7Ym9yZGVyLWNvbG9yOiBwdXJwbGU7IH0KKyAgPC9zdHlsZT4KKyAgPGRpdj4K
KyAgICA8c3R5bGUgc2NvcGVkPgorICAgICAgICBkaXYgeyBib3JkZXItY29sb3I6IGJsdWU7IH0K
KyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImlkMSI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2
PgorICAgIDxzdHlsZSBzY29wZWQ+CisgICAgICAgIGRpdiNpZDIgeyBib3JkZXItY29sb3I6IGJs
dWU7IH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImlkMiI+PC9kaXY+CisgIDwvZGl2Pgor
ICA8ZGl2PgorICAgIDxzdHlsZSBzY29wZWQ+CisgICAgICAgIGRpdiB7IGJvcmRlci1jb2xvcjog
Ymx1ZTsgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0iaWQzIiBzdHlsZT0iYm9yZGVyLWNv
bG9yOiByZWQ7Ij48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXYgaWQ9Imhvc3QxIj5TaGFkb3cgSG9z
dDwvZGl2PgorPC9kaXY+Cis8ZGl2PgorICA8c3R5bGUgc2NvcGVkPgorICAgICAgc3BhbiNpZDQg
eyBib3JkZXItY29sb3I6IGJsdWU7IH0KKyAgPC9zdHlsZT4KKyAgPHNwYW4gaWQ9ImlkNCI+PC9z
cGFuPgorPC9kaXY+Cis8ZGl2PgorICA8c3R5bGUgc2NvcGVkPgorICAgICAgZGl2IHsgYm9yZGVy
LWNvbG9yOiByZWQ7fQorICA8L3N0eWxlPgorICA8ZGl2IGlkPSJob3N0MiI+U2hhZG93IEhvc3Q8
L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0IHRoYXQg
cnVsZXMgaW4gYW4gaW5uZXIgc2NvcGVkIHN0eWxlc2hlZXQgZG9uJ3Qgb3ZlcnJpZGUgIWltcG9y
dGFudCBydWxlcyBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVzaGVldC4iKTsKKwor
dmFyIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDEiKTsKK2RlYnVnKCJDYXNl
OiBUaGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGFueSBtYXRjaGVkIGltcG9ydGFudCBydWxlIGRlY2xh
cmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0LCBhbmQgdGhlIGVsZW1lbnQgYWxzbyBo
YXMgYW55IG1hdGNoZWQgbm9ybWFsIHJ1bGUgZGVjbGFyZWQgaW4gYW4gaW5uZXIgc2NvcGVkIHN0
eWxlc2hlZXQuIik7CitzaG91bGRCZSgnZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmJvcmRlckNv
bG9yJywgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKworZGVidWcoIkNhc2U6IFRoZSB0YXJnZXQgZWxl
bWVudCBoYXMgYW55IG1hdGNoZWQgaW1wb3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIg
c2NvcGVkIHN0eWxlc2hlZXQsIGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhIG1hdGNoZWQgbm9y
bWFsIElEIHJ1bGUgZGVjbGFyZWQgaW4gYW4gaW5uZXIgc2NvcGVkIHN0eWxlc2hlZXQuIik7Cit0
YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWQyIik7CitzaG91bGRCZSgnZ2V0Q29t
cHV0ZWRTdHlsZSh0YXJnZXQpLmJvcmRlckNvbG9yJywgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKwor
ZGVidWcoIkNhc2U6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNoZWQgaW1wb3J0YW50
IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2NvcGVkIHN0eWxlc2hlZXQsIGFuZCB0aGUgZWxl
bWVudCBhbHNvIGhhcyBtYXRjaGVkIG5vcm1hbCBydWxlcyBkZWNsYXJlZCBpbiBhbiBpbm5lciBz
Y29wZWQgc3R5bGVzaGVldCBhbmQgaW4gYSBTVFlMRSBhdHRyaWJ1dGUuIik7Cit0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWQzIik7CitzaG91bGRCZSgnZ2V0Q29tcHV0ZWRTdHls
ZSh0YXJnZXQpLmJvcmRlckNvbG9yJywgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKworZGVidWcoIkNh
c2U6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNoZWQgaW1wb3J0YW50IHJ1bGUgZGVj
bGFyZWQgaW4gYW4gYXV0aG9yIHN0eWxlc2hlZXQsIGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBt
YXRjaGVkIG5vcm1hbCBydWxlcyBkZWNsYXJlZCBpbiBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVl
dC4iKTsKK3RhcmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDQiKTsKK3Nob3VsZEJl
KCdnZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3InLCAnInJnYigwLCAyNTUsIDAp
IicpOworCitkZWJ1ZygiQ2FzZTogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBhbnkgbWF0Y2hlZCBp
bXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVzaGVldC4gVGhl
IGVsZW1lbnQgaXMgaW4gYSBzaGFkb3cgZG9tIHRyZWUgd2hvc2Ugc2hhZG93IHJvb3QgaGFzIGFw
cGx5LWF1dGhvci1zdHlsZXMgdHJ1ZS4gVGhlIHNoYWRvdyBkb20gdHJlZSBoYXMgYW55IG90aGVy
IG5vcm1hbCBydWxlcyB3aGljaCBtYXRjaCB0aGUgZWxlbWVudC4iKTsKK3ZhciBob3N0MSA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3N0MSIpOwordmFyIHNoYWRvd1Jvb3QxID0gaG9zdDEu
d2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOworc2hhZG93Um9vdDEuYXBwbHlBdXRob3JTdHlsZXMg
PSB0cnVlOworc2hhZG93Um9vdDEuaW5uZXJIVE1MID0gJzxzdHlsZT5kaXYjc2hhZG93MSB7IGNv
bG9yOiBibHVlOyB9PC9zdHlsZT48ZGl2IGlkPSJzaGFkb3cxIj48L2Rpdj4nOwordGFyZ2V0ID0g
c2hhZG93Um9vdDEuZ2V0RWxlbWVudEJ5SWQoInNoYWRvdzEiKTsKK3Nob3VsZEJlKCdnZXRDb21w
dXRlZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3InLCAnInJnYigwLCAxMjgsIDApIicpOworCitk
ZWJ1ZygiQ2FzZTogVGhlIHRhcmdldCBlbGVtZW50IGluIGEgc2hhZG93IGRvbSB0cmVlIGhhcyBh
bnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5
bGVzaGVldCBpbiBhbiBlbmNsb3Npbmcgc2hhZG93IGRvbSB0cmVlLiBUaGUgdGFyZ2V0IGVsZW1l
bnQncyBzaGFkb3cgcm9vdCBoYXMgYXBwbHktYXV0aG9yLXN0eWxlcyB0cnVlLiIpOwordmFyIGhv
c3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QyIik7Cit2YXIgc2hhZG93Um9vdDIg
PSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290Mi5hcHBseUF1dGhv
clN0eWxlcyA9IGZhbHNlOworc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxzdHlsZT5kaXYgeyBi
b3JkZXItY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7IH08L3N0eWxlPjxkaXYgaWQ9InNoYWRvdzIi
PjwvZGl2Pic7CisKK3ZhciBob3N0SW5TaGFkb3dUcmVlMiA9IHNoYWRvd1Jvb3QyLmdldEVsZW1l
bnRCeUlkKCJzaGFkb3cyIik7Cit2YXIgc2hhZG93Um9vdDMgPSBob3N0SW5TaGFkb3dUcmVlMi53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290My5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7CitzaGFkb3dSb290My5pbm5lckhUTUwgPSAnPHN0eWxlPmRpdiNzaGFkb3czIHsgYm9y
ZGVyLWNvbG9yOiBibHVlOyB9PC9zdHlsZT48ZGl2IGlkPSJzaGFkb3czIj48L2Rpdj4nOwordGFy
Z2V0ID0gc2hhZG93Um9vdDMuZ2V0RWxlbWVudEJ5SWQoInNoYWRvdzMiKTsKK3Nob3VsZEJlKCdn
ZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuYm9yZGVyQ29sb3InLCAnInJnYigwLCAxMjgsIDApIicp
OworCitkZWJ1ZygiQ2FzZTogVGhlIHRhcmdldCBlbGVtZW50IGlzIGluIGEgc2hhZG93IGRvbSB0
cmVlLiBBbiBlbmNsb3Npbmcgc2hhZG93IGRvbSB0cmVlIGhhcyBzb21lIHN0eWxlc2hlZXQgd2hp
Y2ggZGVjbGFyZXMgYW4gaW1wb3J0YW50IHJ1bGUuIFRoZSB0YXJnZXQgZWxlbWVudCdzIHNoYWRv
dyByb290IGhhcyBhcHBseS1hdXRob3Itc3R5bGVzIGZhbHNlLiIpOworc2hhZG93Um9vdDMuYXBw
bHlBdXRob3JTdHlsZXMgPSBmYWxzZTsKK3Nob3VsZEJlKCdnZXRDb21wdXRlZFN0eWxlKHRhcmdl
dCkuYm9yZGVyQ29sb3InLCAnInJnYigwLCAwLCAyNTUpIicpOworCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQt
aW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhkMzRiZmNkZTFiODQ5YWM2
NjlkYWFhNC4uYjFhYzY2YzZmYzFiNzE5ZmQ0NDYzMTQxZjRmZjQ2MWM3MjYwMzlmMSAxMDA3NTUK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJy
aWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVj
dGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFsIG92ZXJsYXAsIEByZWdpb24gbW9y
ZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVnaW9uIHN0eWxlIGhhcyBy
dWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1bGUgZm9yICZsdDtwJmd0
OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KIAkJPHAgY2xhc3M9J2xpZ2h0
Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xpbWUnPlN0eWxlZCBsaW5l
IG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+
DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQorCQk8cCBjbGFz
cz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2Pg0KIAlQYXJ0aWFsIG92
ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3BlY2lmaWMgdGhhbiBAcmVnaW9uIChA
cmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDssIHNjb3BlZCBzdHlsZSBoYXMgcnVs
ZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjInPg0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxv
dy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25z
L3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKaW5kZXgg
YmU5Y2NkMmZiZjk4Y2JmOGExYTgzYWYwNWRiOGQ0ZjNlYjk4NGI5NS4uNDU3Njk0YWVjYmNiZGU5
Y2I3MzgxOTc3NmIwODIzY2E4YWUzOTFiMiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9y
ZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJy
aWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKQEAgLTUwLDEzICs1MCwxMyBAQAogCX0NCiAJQC13ZWJr
aXQtcmVnaW9uICNyMyB7DQogCQlwIHsNCi0JCQliYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGdyZWVu
Ow0KKwkJCWJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCiAJCX0NCiAJCS5jMyB7DQotCQkJYmFj
a2dyb3VuZC1jb2xvcjogbGltZTsNCisJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQogCQl9
DQogCQkjcDMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOw0KKwkJCWJhY2tncm91bmQt
Y29sb3I6IHJlZDsNCiAJCX0NCiAJfQ0KIAk8L3N0eWxlPg0KQEAgLTg3LDE1ICs4NywxNSBAQAog
CTwvZGl2Pg0KIAk8ZGl2IGlkPSdmMyc+DQogCQk8c3R5bGUgc2NvcGVkPSd0cnVlJz4NCi0JCQlw
IHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0KLQkJCX0NCi0JCQkuYzMgew0KLQkJ
CQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQotCQkJfQ0KLQkJCSNwMyB7DQotCQkJCWJhY2tn
cm91bmQtY29sb3I6IHJlZDsNCi0JCQl9DQorCQkgICAgICAgIHAgew0KKwkJCSAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisgICAgCQkJfQ0KKwkJICAgICAgICAuYzMgew0K
KyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisgICAgICAgIAkJfQ0KKyAgICAg
ICAgCQkjcDMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47DQorICAgICAg
ICAJCX0NCiAJCTwvc3R5bGU+DQogCQk8cD5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KIAkJPHAg
Y2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>179208</attachid>
            <date>2012-12-12 23:16:58 -0800</date>
            <delta_ts>2012-12-13 20:41:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103239-20121213161418.patch</filename>
            <type>text/plain</type>
            <size>27411</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM3NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzQ5MjIzNjcwMjJhOWFj
Y2QwNDQ5NmZhMTJiZDgzZGYzMzRjMDZhYi4uMTM1MjU0N2ZiMDExM2M4NDM5MDZmYmVlNjhkN2Iz
MjY0OWNjMGRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEyLTEyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBbU2hhZG93IERPTV06
IHNjb3BlZCBzdHlsZXMgYXJlIG5vdCBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgdGhlIHNjb3Bp
bmcgZWxlbWVudHMgb2YgdHdvIGRlY2xhcmF0aW9ucyBoYXZlIGFuIGFuY2VzdG9yLworICAgICAg
ICBkZXNjZW5kYW50IHJlbGF0aW9uc2hpcCwgdGhlIGRlY2xhcmF0aW9uIHdob3NlIHNjb3Bpbmcg
ZWxlbWVudCBpcworICAgICAgICB0aGUgZGVzY2VuZGFudCBzaG91bGQgd2luLgorICAgICAgICBj
LmYuIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtY2FzY2FkZS8jY2FzY2FkZQorCisgICAg
ICAgIFRlc3Q6IGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwK
KyAgICAgICAgICAgICAgZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRoLWlt
cG9ydGFudC1ydWxlLmh0bWwKKworICAgICAgICAqIGNzcy9SdWxlU2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJ1bGVTZXQ6OmFkZFJ1bGUpOgorICAgICAgICBSZW1vdmVkIHNwZWNpZmljaXR5
IGZvciBAaG9zdCBALXJ1bGVzLiBOb3cgQGhvc3QgQC1ydWxlcyB1c2UgdGhlCisgICAgICAgIGNh
c2NhZGluZyBvcmRlciBpbnN0ZWFkLgorICAgICAgICAqIGNzcy9SdWxlU2V0Lmg6CisgICAgICAg
IFJlbW92ZWQgaW5jcmVhc2VTcGVjaWZpY2l0eS4gVGhlIG1ldGhvZCBpcyB1c2VkIGJ5IG9ubHkg
QGhvc3QgQC1ydWxlcy4KKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1bGVzKToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToKKyAgICAgICAgKFdl
YkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9yUnVsZXMpOgorICAgICAgICBNb2RpZmll
ZCB0byBpbnZva2Ugc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzIHBlciBzY29waW5nIGVsZW1l
bnQuCisgICAgICAgIFRoZSBvcmRlciBvZiAibWF0Y2hYWFhSdWxlcyIgbXVzdCBiZSB0aGUgc2Ft
ZSBhcyB0aGUgY2FzY2FkaW5nIG9yZGVyLgorICAgICAgICBTbyBtYXRjaEhvc3RSdWxlcyB3YXMg
aW52b2tlZCBhZnRlciBjb2xsZWN0aW5nIGFsbCBzY29wZWQgYXV0aG9yIHJ1bGVzLgorICAgICAg
ICAqIGNzcy9TdHlsZVNjb3BlUmVzb2x2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVT
Y29wZVJlc29sdmVyOjphZGRIb3N0UnVsZSk6CisgICAgICAgIFJlbW92ZWQgUnVsZUlzSG9zdFJ1
bGUuIFdlIGRvbid0IG5lZWQgdGhlIGZsYWcuCisgICAgICAgICogaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTdHlsZUVsZW1lbnQ6OnJlZ2lzdGVyV2l0
aFNjb3BpbmdOb2RlKToKKyAgICAgICAgTmVlZHMgdG8gcGFzcyB0aGUgbGFzdCB0ZXN0IGNhc2Ug
b2Ygc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sLgorICAgICAgICBXaGVuIGFwcGVuZGluZyBzb21l
IHN0eWxlIGVsZW1lbnQgdG8gYSBzaGFkb3cgcm9vdCwgd2Ugc2hvdWxkIHJlY2FsYworICAgICAg
ICBzdHlsZXMgb2YgYWxsIGVsZW1lbnRzIGluIHRoZSBzaGFkb3cgZG9tIHRyZWUuIEFuZCBpZiB0
aGUgc3R5bGUKKyAgICAgICAgZWxlbWVudCBoYXMgQGhvc3QgQC1ydWxlcywgd2UgaGF2ZSB0byB1
cGRhdGUgdGhlIGhvc3QncyBzdHlsZS4KKwogMjAxMi0xMi0xMiAgUGF0cmljayBHYW5zdGVyZXIg
IDxwYXJvZ2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBbV0lOXSBJbXBsZW1lbnQgV2ViQ29yZTo6
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKCkgZm9yICFVU0UoQ0YpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUnVsZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5j
cHAKaW5kZXggOWE3OGMwZmY5MDM4OWM5MGM0NGRhNWE2YjlmNWZmN2FlMjBjNmUzMS4uZTYyN2Mw
NWYyZmUyNjM5YThjNjQxNzNlZmI3MzAwMTgxYTMzZWJjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1J1bGVTZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmNw
cApAQCAtMTkxLDEwICsxOTEsNiBAQCB2b2lkIFJ1bGVTZXQ6OmFkZFRvUnVsZVNldChBdG9taWNT
dHJpbmdJbXBsKiBrZXksIEF0b21SdWxlTWFwJiBtYXAsIGNvbnN0IFJ1bGVEYQogdm9pZCBSdWxl
U2V0OjphZGRSdWxlKFN0eWxlUnVsZSogcnVsZSwgdW5zaWduZWQgc2VsZWN0b3JJbmRleCwgQWRk
UnVsZUZsYWdzIGFkZFJ1bGVGbGFncykKIHsKICAgICBSdWxlRGF0YSBydWxlRGF0YShydWxlLCBz
ZWxlY3RvckluZGV4LCBtX3J1bGVDb3VudCsrLCBhZGRSdWxlRmxhZ3MpOwotICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBhdGhvc3RSdWxlU3BlY2lmaWNpdHkgPSAweDEwMDAwMDsKLQotICAgIGlm
IChhZGRSdWxlRmxhZ3MgJiBSdWxlSXNIb3N0UnVsZSkKLSAgICAgICAgcnVsZURhdGEuaW5jcmVh
c2VTcGVjaWZpY2l0eShhdGhvc3RSdWxlU3BlY2lmaWNpdHkpOwogCiAgICAgY29sbGVjdEZlYXR1
cmVzRnJvbVJ1bGVEYXRhKG1fZmVhdHVyZXMsIHJ1bGVEYXRhKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL1J1bGVTZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9SdWxlU2V0LmgK
aW5kZXggYTJmYmVjYmMwMGIyY2ExYjUzMmY0OTZhOTVjMDkzNTAyNmZhNGY3ZC4uMzdhZjlkNDY0
NDYzNGEzM2VhYmNiZjYyMWQ1MmZiODBjNDA5YmE5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1J1bGVTZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvUnVsZVNldC5oCkBAIC0z
Niw3ICszNiw2IEBAIGVudW0gQWRkUnVsZUZsYWdzIHsKICAgICBSdWxlSGFzRG9jdW1lbnRTZWN1
cml0eU9yaWdpbiA9IDEsCiAgICAgUnVsZUNhblVzZUZhc3RDaGVja1NlbGVjdG9yICAgPSAxIDw8
IDEsCiAgICAgUnVsZUlzSW5SZWdpb25SdWxlICAgICAgICAgICAgPSAxIDw8IDIsCi0gICAgUnVs
ZUlzSG9zdFJ1bGUgICAgICAgICAgICAgICAgPSAxIDw8IDMsCiB9OwogCiBjbGFzcyBDU1NTZWxl
Y3RvcjsKQEAgLTYzLDcgKzYyLDYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxpbmtNYXRjaFR5
cGUoKSBjb25zdCB7IHJldHVybiBtX2xpbmtNYXRjaFR5cGU7IH0KICAgICBib29sIGhhc0RvY3Vt
ZW50U2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX2hhc0RvY3VtZW50U2VjdXJpdHlP
cmlnaW47IH0KICAgICBib29sIGlzSW5SZWdpb25SdWxlKCkgY29uc3QgeyByZXR1cm4gbV9pc0lu
UmVnaW9uUnVsZTsgfQotICAgIHZvaWQgaW5jcmVhc2VTcGVjaWZpY2l0eSh1bnNpZ25lZCB2YWx1
ZSkgeyBtX3NwZWNpZmljaXR5ICs9IHZhbHVlOyB9CiAKICAgICAvLyBUcnkgdG8gYmFsYW5jZSBi
ZXR3ZWVuIG1lbW9yeSB1c2FnZSAodGhlcmUgY2FuIGJlIGxvdHMgb2YgUnVsZURhdGEgb2JqZWN0
cykgYW5kIGdvb2QgZmlsdGVyaW5nIHBlcmZvcm1hbmNlLgogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBtYXhpbXVtSWRlbnRpZmllckNvdW50ID0gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCBkYzkxYmU2MWFhMjdkZmExYzI3NTEzOWM4NWUyYTRkNTM5MDM1ZTI2Li5k
MDY1ZDg1OThhZjhiODk1MjJkNTY3ODFlZDBlODQzMGMwOWUyYmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03MjYsMzQgKzcyNiwzMyBAQCB2b2lkIFN0eWxlUmVzb2x2
ZXI6Om1hdGNoU2NvcGVkQXV0aG9yUnVsZXMoTWF0Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNs
dWRlRW1wdAogICAgIGlmICghbV9zY29wZVJlc29sdmVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtYXRjaEhvc3RSdWxlcyhyZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKLQotICAgIGlmICgh
bV9zY29wZVJlc29sdmVyLT5oYXNTY29wZWRTdHlsZXMoKSkKLSAgICAgICAgcmV0dXJuOwotCiAg
ICAgLy8gTWF0Y2ggc2NvcGVkIGF1dGhvciBydWxlcyBieSB0cmF2ZXJzaW5nIHRoZSBzY29wZWQg
ZWxlbWVudCBzdGFjayAocmVidWlsZCBpdCBpZiBpdCBnb3QgaW5jb25zaXN0ZW50KS4KLSAgICBp
ZiAoIW1fc2NvcGVSZXNvbHZlci0+ZW5zdXJlU3RhY2tDb25zaXN0ZW5jeShtX2VsZW1lbnQpKQot
ICAgICAgICByZXR1cm47CisgICAgaWYgKG1fc2NvcGVSZXNvbHZlci0+aGFzU2NvcGVkU3R5bGVz
KCkgJiYgbV9zY29wZVJlc29sdmVyLT5lbnN1cmVTdGFja0NvbnNpc3RlbmN5KG1fZWxlbWVudCkp
IHsKKyAgICAgICAgYm9vbCBhcHBseUF1dGhvclN0eWxlcyA9IG1fZWxlbWVudC0+dHJlZVNjb3Bl
KCktPmFwcGx5QXV0aG9yU3R5bGVzKCk7CisgICAgICAgIGJvb2wgZG9jdW1lbnRTY29wZSA9IHRy
dWU7CisgICAgICAgIHVuc2lnbmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tT
aXplKCk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzY29wZVNpemU7ICsraSkg
eworICAgICAgICAgICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKKyAgICAgICAgICAgIHJlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUgPSByZXN1bHQubWF0Y2hlZFByb3BlcnRpZXMuc2l6ZSgp
IC0gMTsKKworICAgICAgICAgICAgY29uc3QgU3R5bGVTY29wZVJlc29sdmVyOjpTdGFja0ZyYW1l
JiBmcmFtZSA9IG1fc2NvcGVSZXNvbHZlci0+c3RhY2tGcmFtZUF0KGkpOworICAgICAgICAgICAg
ZG9jdW1lbnRTY29wZSA9IGRvY3VtZW50U2NvcGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFk
b3dUcmVlKCk7CisgICAgICAgICAgICBpZiAoZG9jdW1lbnRTY29wZSkgeworICAgICAgICAgICAg
ICAgIGlmICghYXBwbHlBdXRob3JTdHlsZXMpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBpZiAoIW1fc2NvcGVSZXNv
bHZlci0+bWF0Y2hlc1N0eWxlQm91bmRzKGZyYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgICAgICB9CiAKLSAgICBib29sIGFwcGx5QXV0aG9yU3R5bGVzID0gbV9l
bGVtZW50LT50cmVlU2NvcGUoKS0+YXBwbHlBdXRob3JTdHlsZXMoKTsKLSAgICBib29sIGRvY3Vt
ZW50U2NvcGUgPSB0cnVlOwotICAgIHVuc2lnbmVkIHNjb3BlU2l6ZSA9IG1fc2NvcGVSZXNvbHZl
ci0+c3RhY2tTaXplKCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNjb3BlU2l6ZTsg
KytpKSB7Ci0gICAgICAgIGNvbnN0IFN0eWxlU2NvcGVSZXNvbHZlcjo6U3RhY2tGcmFtZSYgZnJh
bWUgPSBtX3Njb3BlUmVzb2x2ZXItPnN0YWNrRnJhbWVBdChpKTsKLSAgICAgICAgZG9jdW1lbnRT
Y29wZSA9IGRvY3VtZW50U2NvcGUgJiYgIWZyYW1lLm1fc2NvcGUtPmlzSW5TaGFkb3dUcmVlKCk7
Ci0gICAgICAgIGlmIChkb2N1bWVudFNjb3BlKSB7Ci0gICAgICAgICAgICBpZiAoIWFwcGx5QXV0
aG9yU3R5bGVzKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgaWYgKCFtX3Njb3BlUmVzb2x2ZXItPm1hdGNoZXNTdHlsZUJvdW5kcyhmcmFt
ZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBNYXRjaE9wdGlvbnMg
b3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSk7CisgICAgICAgICAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RB
dXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICAg
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVz
dWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUs
IG9wdGlvbnMpOworICAgICAgICAgICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKHJlc3Vs
dCk7CiAgICAgICAgIH0KLSAgICAgICAgICAgCi0gICAgICAgIE1hdGNoT3B0aW9ucyBvcHRpb25z
KGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlKTsKLSAgICAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXMoZnJhbWUubV9ydWxlU2V0LCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwg
cmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7Ci0gICAgICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAg
IH0KIAorICAgIG1hdGNoSG9zdFJ1bGVzKHJlc3VsdCwgaW5jbHVkZUVtcHR5UnVsZXMpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKICAgICBVTlVTRURfUEFSQU0oaW5jbHVkZUVt
cHR5UnVsZXMpOwpAQCAtNzc0LDE1ICs3NzMsMTggQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRj
aEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQog
I2lmIEVOQUJMRShTSEFET1dfRE9NKQogICAgIEFTU0VSVChtX3Njb3BlUmVzb2x2ZXIpOwogCisg
ICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKKyAgICByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JS
dWxlID0gcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDE7CisKICAgICBWZWN0b3I8
UnVsZVNldCo+IG1hdGNoZWRSdWxlczsKICAgICBtX3Njb3BlUmVzb2x2ZXItPm1hdGNoSG9zdFJ1
bGVzKG1fZWxlbWVudCwgbWF0Y2hlZFJ1bGVzKTsKICAgICBpZiAobWF0Y2hlZFJ1bGVzLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hPcHRpb25zIG9wdGlvbnMoaW5jbHVk
ZUVtcHR5UnVsZXMpOwotICAgIG9wdGlvbnMuc2NvcGUgPSBtX2VsZW1lbnQ7CisgICAgTWF0Y2hP
cHRpb25zIG9wdGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMsIG1fZWxlbWVudCk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKICAgICAgICAgY29s
bGVjdE1hdGNoaW5nUnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmly
c3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAg
ICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKHJlc3VsdCk7CiAgICAgVU5VU0VEX1BBUkFNKGluY2x1ZGVFbXB0eVJ1bGVzKTsKQEAg
LTgwMSwxMCArODAzLDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEF1dGhvclJ1bGVzKE1h
dGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMKICAgICBNYXRjaE9wdGlv
bnMgb3B0aW9ucyhpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMo
bV9hdXRob3JTdHlsZS5nZXQoKSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3Vs
dC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwogICAgIGNvbGxlY3RNYXRjaGluZ1J1
bGVzRm9yUmVnaW9uKG1fYXV0aG9yU3R5bGUuZ2V0KCksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRo
b3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICBzb3J0
QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKIAogICAgIG1hdGNoU2NvcGVkQXV0aG9y
UnVsZXMocmVzdWx0LCBpbmNsdWRlRW1wdHlSdWxlcyk7Ci0KLSAgICBzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMocmVzdWx0KTsKIH0KIAogdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFVzZXJS
dWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlU2NvcGVSZXNvbHZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcAppbmRleCA3NjgxNzI1MzFlYjNhMjA1
ZTVlZjBiYjM0MmNiMGM4ZTI5YmZjYjJkLi43MzAwNTBkNmM0ZDgxNzJlNTU0YmU4NjAyOGQ5YmI1
N2M3YjEyYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVTY29wZVJlc29sdmVyLmNwcApA
QCAtMTgzLDcgKzE4Myw3IEBAIHZvaWQgU3R5bGVTY29wZVJlc29sdmVyOjphZGRIb3N0UnVsZShT
dHlsZVJ1bGVIb3N0KiBob3N0UnVsZSwgYm9vbCBoYXNEb2N1bWVudFNlCiAKICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPFN0eWxlUnVsZUJhc2U+ID4mIGNoaWxkUnVsZXMgPSBob3N0UnVsZS0+Y2hp
bGRSdWxlcygpOwogICAgIEFkZFJ1bGVGbGFncyBhZGRSdWxlRmxhZ3MgPSBoYXNEb2N1bWVudFNl
Y3VyaXR5T3JpZ2luID8gUnVsZUhhc0RvY3VtZW50U2VjdXJpdHlPcmlnaW4gOiBSdWxlSGFzTm9T
cGVjaWFsU3RhdGU7Ci0gICAgYWRkUnVsZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdz
PihhZGRSdWxlRmxhZ3MgfCBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IgfCBSdWxlSXNIb3N0
UnVsZSk7CisgICAgYWRkUnVsZUZsYWdzID0gc3RhdGljX2Nhc3Q8QWRkUnVsZUZsYWdzPihhZGRS
dWxlRmxhZ3MgfCBSdWxlQ2FuVXNlRmFzdENoZWNrU2VsZWN0b3IpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDA7IGkgPCBjaGlsZFJ1bGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0eWxlUnVs
ZUJhc2UqIGhvc3RTdHlsaW5nUnVsZSA9IGNoaWxkUnVsZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlm
IChob3N0U3R5bGluZ1J1bGUtPmlzU3R5bGVSdWxlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
U3R5bGVFbGVtZW50LmNwcAppbmRleCBkNmVkM2E5NzMzMWQ2NzkyNjRiNzE3Y2Q2ODYwYzFlZjlj
ZDYwNmFlLi5hODFmM2JkODRkMGRjYjY2ZGY2YjM2NWRkYTI0ZWU2ZjNkZDIwZDgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTdHlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHAKQEAgLTE0MCw5ICsxNDAsMTEgQEAg
dm9pZCBIVE1MU3R5bGVFbGVtZW50OjpyZWdpc3RlcldpdGhTY29waW5nTm9kZShib29sIHNjb3Bl
ZCkKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
Ci0KICAgICBzY29wZS0+cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpOwotICAgIHNjb3Bl
LT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgaWYgKHNjb3BlLT5pc1NoYWRvd1Jvb3QoKSkK
KyAgICAgICAgc2NvcGUtPnNoYWRvd0hvc3QoKS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworICAg
IGVsc2UKKyAgICAgICAgc2NvcGUtPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBpZiAoaW5E
b2N1bWVudCgpICYmICFkb2N1bWVudCgpLT5wYXJzaW5nKCkgJiYgZG9jdW1lbnQoKS0+cmVuZGVy
ZXIoKSkKICAgICAgICAgZG9jdW1lbnQoKS0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNh
bGNTdHlsZSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA3NGE0NTdjNzBiYzIyMzliYzcxNGFlNjcwZmVmYWUwMWEzNDFm
ZDllLi41YTk4ODc1MWIxOTA0ZGVkOWMxZGUwODIyZWE5ZjllNzQxODBiNzYwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMTItMTIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUu
Y29tPgorCisgICAgICAgIFtTaGFkb3cgRE9NXTogc2NvcGVkIHN0eWxlcyBhcmUgbm90IGFwcGxp
ZWQgaW4gdGhlIGNhc2NhZGUgb3JkZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMyMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtbmVz
dGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVk
L3N0eWxlLXNjb3BlZC1uZXN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5
bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRoLWltcG9ydGFudC1ydWxlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC13aXRo
LWltcG9ydGFudC1ydWxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5odG1sOgor
ICAgICAgICAqIGZhc3QvcmVnaW9ucy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdp
b24tc3R5bGluZy5odG1sOgorICAgICAgICBDaGFuZ2VkIHRoZSB0ZXN0J3MgZXhwZWN0YXRpb24u
CisgICAgICAgIFNpbmNlIEByZWdpb24ncyBzY29waW5nIGVsZW1lbnQgaXMgOnJvb3QgYnV0IHNj
b3BlZCBzdHlsZXMnIHNjb3BpbmcKKyAgICAgICAgZWxlbWVudCBpcyBhIGRlc2NlbmRhbnQgZWxl
bWVudCBvZiA6cm9vdCwgc2NvcGVkIHN0eWxlcyBzaG91bGQgd2luLgorCiAyMDEyLTEyLTEyICBT
aW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlYmFzZWxp
bmUgc29tZSB0aWxlZCBzY3JvbGxpbmcgcmVzdWx0cyB0aGF0IHdlcmUgYWZmZWN0ZWQgYnkgcjEz
NzM4Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHls
ZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxl
LXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDcz
MzMwYTEwMDkyODY1N2UzYTNlMzBkZTlhOGQ4YmM5NTQwMzdiCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxlLXNjb3BlZC1uZXN0ZWQtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rlc3Qgd2hldGhlciBzY29wZWQgc3R5bGVzIGFy
ZSBhcHBsaWVkIGluIHRoZSBjYXNjYWRlIG9yZGVyIG9yIG5vdC4KK0lmIHRoaXMgdGVzdCBwYXNz
ZXMsIHJ1bGVzIHdoaWNoIGFyZSBkZWNsYXJlZCBpbiBkZXNjZW5kYW50IHNjb3BpbmcgZWxlbWVu
dCBhcmUgYXBwbGllZCB0byBhIHRhcmdldCBlbGVtZW50LgorYy5mLiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5CitPbmx5IGRvY3VtZW50LnN0eWxlIGlzIGFw
cGxpZWQgdG8gdGhlIHRhcmdldC4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0
KS5jb2xvciBpcyAicmdiKDI1NSwgMCwgMCkiCitBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0
ZWQgaW50byB0aGUgZ3JhbmRwYXJlbnQgbm9kZSBvZiB0aGUgdGFyZ2V0LiBBIGNsYXNzIHJ1bGUg
aW4gdGhlIGluc2VydGVkIHNjb3BlZCBzdHlsZSB3aW5zIGFuIGlkIHJ1bGUgaW4gZG9jdW1lbnQu
c3R5bGUuCitQQVNTIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRhcmdldCkuY29sb3IgaXMgInJn
YigyNTUsIDI1NSwgMCkiCitBIG5ldyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUg
cGFyZW50IG5vZGUgb2YgdGhlIHRhcmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2Nv
cGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0
eWxlcy4KK1BBU1Mgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciBpcyAicmdi
KDAsIDAsIDI1NSkiCitUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2Ug
dGhlIHNwYW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUg
YWxsIGluc2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdo
ZXRoZXIgdGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVzIG9yIG5vdC4KK1BBU1Mgd2lu
ZG93LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0SW5TaGFkb3cpLmNvbG9yIGlzICJyZ2IoMCwgMCwg
MjU1KSIKK0FwcGVuZCBhIG5ldyBzdHlsZSBlbGVtZW50IHRvIHRoZSBzaGFkb3cgcm9vdC4gVGhl
IHN0eWxlJ3Mgc2NvcGluZyBlbGVtZW50IGlzIHRoZSBzaGFkb3cgcm9vdC4gUnVsZXMgaW4gdGhl
IHN0eWxlIHNob3VsZCBvdmVycmlkZSBvdGhlciBydWxlcyBpbiBhc2NlbmRhbnQgKHNjb3BlZCkg
c3R5bGVzLgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29s
b3IgaXMgInJnYigwLCAyNTUsIDApIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxl
LXNjb3BlZC9zdHlsZS1zY29wZWQtbmVzdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9z
dHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhNTYzMTRh
ODA5Nzk4ZDk2MDNmZmIwODBmNWNiMmYwNGRjOGE0YzYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLW5lc3RlZC5odG1sCkBA
IC0wLDAgKzEsNjQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4K
KyN0YXJnZXQsICN0YXJnZXRJblNoYWRvdyB7CisgICAgY29sb3I6IHJlZDsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgPGRpdiBpZD0i
Z3JhbmRwYXJlbnQiPgorICAgIDxkaXYgaWQ9InBhcmVudCI+CisgICAgICA8c3BhbiBjbGFzcz0i
dGFyZ2V0IiBpZD0idGFyZ2V0Ij48L3NwYW4+CisgICAgPC9kaXY+CisgIDwvZGl2PgorPC9ib2R5
PgorPHNjcmlwdD4KK2RlYnVnKCJUZXN0IHdoZXRoZXIgc2NvcGVkIHN0eWxlcyBhcmUgYXBwbGll
ZCBpbiB0aGUgY2FzY2FkZSBvcmRlciBvciBub3QuIik7CitkZWJ1ZygiSWYgdGhpcyB0ZXN0IHBh
c3NlcywgcnVsZXMgd2hpY2ggYXJlIGRlY2xhcmVkIGluIGRlc2NlbmRhbnQgc2NvcGluZyBlbGVt
ZW50IGFyZSBhcHBsaWVkIHRvIGEgdGFyZ2V0IGVsZW1lbnQuIik7CitkZWJ1ZygiYy5mLiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMjM5Iik7CisKK3ZhciB0YXJn
ZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7CitkZWJ1ZygiT25seSBkb2N1
bWVudC5zdHlsZSBpcyBhcHBsaWVkIHRvIHRoZSB0YXJnZXQuIik7CitzaG91bGRCZSgid2luZG93
LmdldENvbXB1dGVkU3R5bGUodGFyZ2V0KS5jb2xvciIsICcicmdiKDI1NSwgMCwgMCkiJyk7CisK
K3ZhciBzdHlsZUZvckdyYW5kcGFyZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUi
KTsKK3N0eWxlRm9yR3JhbmRwYXJlbnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yR3JhbmRwYXJl
bnQuaW5uZXJIVE1MID0gIi50YXJnZXQgeyBjb2xvcjogeWVsbG93OyB9IjsKK2RvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJncmFuZHBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yR3JhbmRwYXJl
bnQpOworZGVidWcoIkEgbmV3IHNjb3BlZCBzdHlsZSBpcyBpbnNlcnRlZCBpbnRvIHRoZSBncmFu
ZHBhcmVudCBub2RlIG9mIHRoZSB0YXJnZXQuIEEgY2xhc3MgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQg
c2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQgcnVsZSBpbiBkb2N1bWVudC5zdHlsZS4iKTsKK3Nob3Vs
ZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMjU1LCAy
NTUsIDApIicpOworCit2YXIgc3R5bGVGb3JQYXJlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzdHlsZSIpOworc3R5bGVGb3JQYXJlbnQuc2NvcGVkID0gdHJ1ZTsKK3N0eWxlRm9yUGFyZW50
LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGJsdWU7IH0iOworZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInBhcmVudCIpLmFwcGVuZENoaWxkKHN0eWxlRm9yUGFyZW50KTsKK2RlYnVnKCJBIG5l
dyBzY29wZWQgc3R5bGUgaXMgaW5zZXJ0ZWQgaW50byB0aGUgcGFyZW50IG5vZGUgb2YgdGhlIHRh
cmdldC4gQSB0YWcgcnVsZSBpbiB0aGUgaW5zZXJ0ZWQgc2NvcGVkIHN0eWxlIHdpbnMgYW4gaWQg
cnVsZSBhbmQgYSBjbGFzcyBydWxlIGluIGV4aXN0aW5nIHN0eWxlcy4iKTsKK3Nob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQpLmNvbG9yIiwgJyJyZ2IoMCwgMCwgMjU1KSIn
KTsKKwordmFyIHNoYWRvd1Jvb3QgPSB0YXJnZXQud2Via2l0Q3JlYXRlU2hhZG93Um9vdCgpOwor
c2hhZG93Um9vdC5pbm5lckhUTUwgPSAnPHNwYW4gaWQ9InRhcmdldEluU2hhZG93IiBjbGFzcz0i
dGFyZ2V0Ij48L3NwYW4+JzsKK3ZhciB0YXJnZXRJblNoYWRvdyA9IHNoYWRvd1Jvb3QuZ2V0RWxl
bWVudEJ5SWQoInRhcmdldEluU2hhZG93Iik7CitzaGFkb3dSb290LmFwcGx5QXV0aG9yU3R5bGVz
ID0gdHJ1ZTsKKy8vIERpc2FibGUgc3R5bGUtaW5oZXJpdGFuY2UgZnJvbSBpdHMgc2hhZG93IGhv
c3QgdG8gY2hlY2sgd2hldGhlciBydWxlcyBtYXRjaAorLy8gdGhlIHNwYW4gaW4gdGhlIHNoYWRv
dyB0cmVlIG9yIG5vdC4KK3NoYWRvd1Jvb3QucmVzZXRTdHlsZUluaGVyaXRhbmNlID0gdHJ1ZTsK
K2RlYnVnKCJUZXN0IGEgc3BhbiBpbiBzb21lIHNoYWRvdyBkb20gdHJlZS4gU2luY2UgdGhlIHNw
YW4ncyBob3N0IG5vZGUgaXMgdGhlIGFib3ZlIHRhcmdldCwgd2UgaGF2ZSB0byBzZWUgYWxsIGlu
c2VydGVkIHNjb3BlZCBzdHlsZXMgYW5kIGFuIGF1dGhvciBzdHlsZSB0byBmaW5kIHdoZXRoZXIg
dGhlIHN0eWxlcyBoYXZlIGFueSBtYXRjaGVkIHJ1bGVzIG9yIG5vdC4iKTsKK3Nob3VsZEJlKCJ3
aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3IiLCAnInJnYigwLCAw
LCAyNTUpIicpOworCit2YXIgc3R5bGVJblNoYWRvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InN0eWxlIik7CitzdHlsZUluU2hhZG93LmlubmVySFRNTCA9ICJzcGFuIHsgY29sb3I6IGxpbWU7
IH0iOworc2hhZG93Um9vdC5hcHBlbmRDaGlsZChzdHlsZUluU2hhZG93KTsKK2RlYnVnKCJBcHBl
bmQgYSBuZXcgc3R5bGUgZWxlbWVudCB0byB0aGUgc2hhZG93IHJvb3QuIFRoZSBzdHlsZSdzIHNj
b3BpbmcgZWxlbWVudCBpcyB0aGUgc2hhZG93IHJvb3QuIFJ1bGVzIGluIHRoZSBzdHlsZSBzaG91
bGQgb3ZlcnJpZGUgb3RoZXIgcnVsZXMgaW4gYXNjZW5kYW50IChzY29wZWQpIHN0eWxlcy4iKTsK
K3Nob3VsZEJlKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXRJblNoYWRvdykuY29sb3Ii
LCAnInJnYigwLCAyNTUsIDApIicpOworCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3N0eWxlLXNjb3BlZC9zdHlsZS1zY29wZWQtd2l0aC1p
bXBvcnRhbnQtcnVsZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1z
Y29wZWQvc3R5bGUtc2NvcGVkLXdpdGgtaW1wb3J0YW50LXJ1bGUtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmRmNTY1NWVkMWQzYzJkNzE2MDYzMzg5Njc3MzVmYjI1MDlkNWM1YzkKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVk
LXdpdGgtaW1wb3J0YW50LXJ1bGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjcgQEAKK1Rlc3Qg
dGhhdCBydWxlcyBpbiBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVldCBkb24ndCBvdmVycmlkZSAh
aW1wb3J0YW50IHJ1bGVzIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0Lgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworQ2FzZTE6IFRoZSB0YXJnZXQgZWxlbWVu
dCBoYXMgYW55IG1hdGNoZWQgaW1wb3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2Nv
cGVkIHN0eWxlc2hlZXQsIGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbnkgbWF0Y2hlZCBub3Jt
YWwgcnVsZSBkZWNsYXJlZCBpbiBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVldC4KK1BBU1MgZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQxKS5ib3JkZXJDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitD
YXNlMjogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBk
ZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVzaGVldCwgYW5kIHRoZSBlbGVtZW50IGFs
c28gaGFzIGEgbWF0Y2hlZCBub3JtYWwgSUQgcnVsZSBkZWNsYXJlZCBpbiBhbiBpbm5lciBzY29w
ZWQgc3R5bGVzaGVldC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQyKS5ib3JkZXJDb2xv
ciBpcyAicmdiKDAsIDEyOCwgMCkiCitDYXNlMzogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBhbnkg
bWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29wZWQgc3R5bGVz
aGVldCwgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIG1hdGNoZWQgbm9ybWFsIHJ1bGVzIGRlY2xh
cmVkIGluIGFuIGlubmVyIHNjb3BlZCBzdHlsZXNoZWV0IGFuZCBpbiBhIFNUWUxFIGF0dHJpYnV0
ZS4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQzKS5ib3JkZXJDb2xvciBpcyAicmdiKDAs
IDEyOCwgMCkiCitDYXNlNDogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBtYXRjaGVkIGltcG9ydGFu
dCBydWxlcy4gT25lIGlzIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0IGFu
ZCB0aGUgb3RoZXIgaXMgZGVjbGFyZWQgaW4gYW4gaW5uZXIgc2NvcGVkIHN0eWxlc2hlZXQuCitQ
QVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0NCkuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAwLCAy
NTUpIgorQ2FzZTU6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNoZWQgaW1wb3J0YW50
IHJ1bGUgZGVjbGFyZWQgaW4gYW4gYXV0aG9yIHN0eWxlc2hlZXQsIGFuZCB0aGUgZWxlbWVudCBh
bHNvIGhhcyBtYXRjaGVkIG5vcm1hbCBydWxlcyBkZWNsYXJlZCBpbiBhbiBpbm5lciBzY29wZWQg
c3R5bGVzaGVldC4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQ1KS5ib3JkZXJDb2xvciBp
cyAicmdiKDAsIDI1NSwgMCkiCitDYXNlNjogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBtYXRjaGVk
IGltcG9ydGFudCBydWxlcy4gT25lIGlzIGRlY2xhcmVkIGluIGFuIGF1dGhvciBzdHlsZXNoZWV0
IChub3Qgc2NvcGVkKSBhbmQgdGhlIG90aGVyIGlzIGRlY2xhcmVkIGluIGEgc2NvcGVkIHN0eWxl
c2hlZXQuCitQQVNTIGdldENvbXB1dGVkU3R5bGUodGFyZ2V0NikuYm9yZGVyQ29sb3IgaXMgInJn
YigwLCAwLCAyNTUpIgorQ2FzZTc6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNoZWQg
aW1wb3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2NvcGVkIHN0eWxlc2hlZXQuIFRo
ZSBlbGVtZW50IGlzIGluIGEgc2hhZG93IGRvbSB0cmVlIHdob3NlIHNoYWRvdyByb290IGhhcyBh
cHBseS1hdXRob3Itc3R5bGVzIHRydWUuIFRoZSBzaGFkb3cgZG9tIHRyZWUgaGFzIGFueSBvdGhl
ciBub3JtYWwgcnVsZXMgd2hpY2ggbWF0Y2ggdGhlIGVsZW1lbnQuCitQQVNTIGdldENvbXB1dGVk
U3R5bGUodGFyZ2V0NykuYm9yZGVyQ29sb3IgaXMgInJnYigwLCAxMjgsIDApIgorQ2FzZTg6IFRo
ZSB0YXJnZXQgZWxlbWVudCBpbiBhIHNoYWRvdyBkb20gdHJlZSBoYXMgYW55IG1hdGNoZWQgaW1w
b3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2NvcGVkIHN0eWxlc2hlZXQgaW4gYW4g
ZW5jbG9zaW5nIHNoYWRvdyBkb20gdHJlZS4gVGhlIHRhcmdldCBlbGVtZW50J3Mgc2hhZG93IHJv
b3QgaGFzIGFwcGx5LWF1dGhvci1zdHlsZXMgdHJ1ZS4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0
YXJnZXQ4KS5ib3JkZXJDb2xvciBpcyAicmdiKDAsIDEyOCwgMCkiCitDYXNlOCc6IFRoZSB0YXJn
ZXQgZWxlbWVudCBpcyBpbiBhIHNoYWRvdyBkb20gdHJlZS4gQW4gZW5jbG9zaW5nIHNoYWRvdyBk
b20gdHJlZSBoYXMgc29tZSBzdHlsZXNoZWV0IHdoaWNoIGRlY2xhcmVzIGFuIGltcG9ydGFudCBy
dWxlLiBUaGUgdGFyZ2V0IGVsZW1lbnQncyBzaGFkb3cgcm9vdCBoYXMgYXBwbHktYXV0aG9yLXN0
eWxlcyBmYWxzZS4KK1BBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQ4KS5ib3JkZXJDb2xvciBp
cyAicmdiKDAsIDAsIDI1NSkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RF
U1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2Nv
cGVkL3N0eWxlLXNjb3BlZC13aXRoLWltcG9ydGFudC1ydWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9zdHlsZS1zY29wZWQvc3R5bGUtc2NvcGVkLXdpdGgtaW1wb3J0YW50LXJ1bGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wYTcwNjZjMGMwMDVlMDJkYjg3NmNiYmVkNzAyNWVkYjVlYTQwMGJjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc3R5bGUtc2NvcGVkL3N0eWxl
LXNjb3BlZC13aXRoLWltcG9ydGFudC1ydWxlLmh0bWwKQEAgLTAsMCArMSwxMTggQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KK3NwYW4geyBib3JkZXItY29sb3I6
IGxpbWUgISBpbXBvcnRhbnQ7IH0KK2RpdiB7IGJvcmRlci1jb2xvcjogb3JhbmdlOyB9CitkaXYj
aWQyIHsgYm9yZGVyLWNvbG9yOiB5ZWxsb3c7IH0KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4v
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9kb20vc2hhZG93L3Jlc291cmNlcy9wb2x5ZmlsbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXY+CisgIDxzdHlsZSBzY29wZWQ+CisgICAgICBkaXYgeyBib3JkZXItY29s
b3I6IGdyZWVuICEgaW1wb3J0YW50OyB9CisgICAgICBkaXYgeyBib3JkZXItY29sb3I6IHJlZDsg
fQorICAgICAgZGl2I2lkMiB7Ym9yZGVyLWNvbG9yOiBwdXJwbGU7IH0KKyAgPC9zdHlsZT4KKyAg
PGRpdj4KKyAgICA8c3R5bGUgc2NvcGVkPgorICAgICAgICBkaXYgeyBib3JkZXItY29sb3I6IGJs
dWU7IH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImlkMSI+PC9kaXY+CisgIDwvZGl2Pgor
ICA8ZGl2PgorICAgIDxzdHlsZSBzY29wZWQ+CisgICAgICAgIGRpdiNpZDIgeyBib3JkZXItY29s
b3I6IGJsdWU7IH0KKyAgICA8L3N0eWxlPgorICAgIDxkaXYgaWQ9ImlkMiI+PC9kaXY+CisgIDwv
ZGl2PgorICA8ZGl2PgorICAgIDxzdHlsZSBzY29wZWQ+CisgICAgICAgIGRpdiB7IGJvcmRlci1j
b2xvcjogYmx1ZTsgfQorICAgIDwvc3R5bGU+CisgICAgPGRpdiBpZD0iaWQzIiBzdHlsZT0iYm9y
ZGVyLWNvbG9yOiByZWQ7Ij48L2Rpdj4KKyAgPC9kaXY+CisgIDxkaXY+CisgICAgPHN0eWxlIHNj
b3BlZD4KKyAgICAgIGRpdiB7IGJvcmRlci1jb2xvcjogYmx1ZSAhaW1wb3J0YW50OyB9CisgICAg
PC9zdHlsZT4KKyAgICA8ZGl2IGlkPSJpZDQiPjwvZGl2PgorICA8L2Rpdj4KKyAgPGRpdiBpZD0i
aG9zdDEiPlNoYWRvdyBIb3N0PC9kaXY+Cis8L2Rpdj4KKzxkaXY+CisgIDxzdHlsZSBzY29wZWQ+
CisgICAgICBzcGFuI2lkNSB7IGJvcmRlci1jb2xvcjogYmx1ZTsgfQorICA8L3N0eWxlPgorICA8
c3BhbiBpZD0iaWQ1Ij48L3NwYW4+Cis8L2Rpdj4KKzxkaXY+CisgIDxzdHlsZSBzY29wZWQ+Cisg
ICAgICBzcGFuIHsgYm9yZGVyLWNvbG9yOiBibHVlICFpbXBvcnRhbnQ7IH0KKyAgPC9zdHlsZT4K
KyAgPHNwYW4gaWQ9ImlkNiI+PC9zcGFuPgorPC9kaXY+Cis8ZGl2PgorICA8c3R5bGUgc2NvcGVk
PgorICAgICAgZGl2IHsgYm9yZGVyLWNvbG9yOiByZWQ7fQorICA8L3N0eWxlPgorICA8ZGl2IGlk
PSJob3N0MiI+U2hhZG93IEhvc3Q8L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPHNjcmlwdD4KK2Rl
c2NyaXB0aW9uKCJUZXN0IHRoYXQgcnVsZXMgaW4gYW4gaW5uZXIgc2NvcGVkIHN0eWxlc2hlZXQg
ZG9uJ3Qgb3ZlcnJpZGUgIWltcG9ydGFudCBydWxlcyBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29w
ZWQgc3R5bGVzaGVldC4iKTsKKwordmFyIHRhcmdldDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiaWQxIik7CitkZWJ1ZygiQ2FzZTE6IFRoZSB0YXJnZXQgZWxlbWVudCBoYXMgYW55IG1hdGNo
ZWQgaW1wb3J0YW50IHJ1bGUgZGVjbGFyZWQgaW4gYW4gb3V0ZXIgc2NvcGVkIHN0eWxlc2hlZXQs
IGFuZCB0aGUgZWxlbWVudCBhbHNvIGhhcyBhbnkgbWF0Y2hlZCBub3JtYWwgcnVsZSBkZWNsYXJl
ZCBpbiBhbiBpbm5lciBzY29wZWQgc3R5bGVzaGVldC4iKTsKK3Nob3VsZEJlKCdnZXRDb21wdXRl
ZFN0eWxlKHRhcmdldDEpLmJvcmRlckNvbG9yJywgJyJyZ2IoMCwgMTI4LCAwKSInKTsKKworZGVi
dWcoIkNhc2UyOiBUaGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGFueSBtYXRjaGVkIGltcG9ydGFudCBy
dWxlIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0LCBhbmQgdGhlIGVsZW1l
bnQgYWxzbyBoYXMgYSBtYXRjaGVkIG5vcm1hbCBJRCBydWxlIGRlY2xhcmVkIGluIGFuIGlubmVy
IHNjb3BlZCBzdHlsZXNoZWV0LiIpOwordmFyIHRhcmdldDIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiaWQyIik7CitzaG91bGRCZSgnZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQyKS5ib3JkZXJD
b2xvcicsICcicmdiKDAsIDEyOCwgMCkiJyk7CisKK2RlYnVnKCJDYXNlMzogVGhlIHRhcmdldCBl
bGVtZW50IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRl
ciBzY29wZWQgc3R5bGVzaGVldCwgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIG1hdGNoZWQgbm9y
bWFsIHJ1bGVzIGRlY2xhcmVkIGluIGFuIGlubmVyIHNjb3BlZCBzdHlsZXNoZWV0IGFuZCBpbiBh
IFNUWUxFIGF0dHJpYnV0ZS4iKTsKK3ZhciB0YXJnZXQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImlkMyIpOworc2hvdWxkQmUoJ2dldENvbXB1dGVkU3R5bGUodGFyZ2V0MykuYm9yZGVyQ29s
b3InLCAnInJnYigwLCAxMjgsIDApIicpOworCitkZWJ1ZygiQ2FzZTQ6IFRoZSB0YXJnZXQgZWxl
bWVudCBoYXMgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZXMuIE9uZSBpcyBkZWNsYXJlZCBpbiBhbiBv
dXRlciBzY29wZWQgc3R5bGVzaGVldCBhbmQgdGhlIG90aGVyIGlzIGRlY2xhcmVkIGluIGFuIGlu
bmVyIHNjb3BlZCBzdHlsZXNoZWV0LiIpOwordmFyIHRhcmdldDQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiaWQ0Iik7CitzaG91bGRCZSgnZ2V0Q29tcHV0ZWRTdHlsZSh0YXJnZXQ0KS5ib3Jk
ZXJDb2xvcicsICcicmdiKDAsIDAsIDI1NSkiJyk7CisKK2RlYnVnKCJDYXNlNTogVGhlIHRhcmdl
dCBlbGVtZW50IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBh
dXRob3Igc3R5bGVzaGVldCwgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIG1hdGNoZWQgbm9ybWFs
IHJ1bGVzIGRlY2xhcmVkIGluIGFuIGlubmVyIHNjb3BlZCBzdHlsZXNoZWV0LiIpOwordmFyIHRh
cmdldDUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaWQ1Iik7CitzaG91bGRCZSgnZ2V0Q29t
cHV0ZWRTdHlsZSh0YXJnZXQ1KS5ib3JkZXJDb2xvcicsICcicmdiKDAsIDI1NSwgMCkiJyk7CisK
K2RlYnVnKCJDYXNlNjogVGhlIHRhcmdldCBlbGVtZW50IGhhcyBtYXRjaGVkIGltcG9ydGFudCBy
dWxlcy4gT25lIGlzIGRlY2xhcmVkIGluIGFuIGF1dGhvciBzdHlsZXNoZWV0IChub3Qgc2NvcGVk
KSBhbmQgdGhlIG90aGVyIGlzIGRlY2xhcmVkIGluIGEgc2NvcGVkIHN0eWxlc2hlZXQuIik7Cit2
YXIgdGFyZ2V0NiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpZDYiKTsKK3Nob3VsZEJlKCdn
ZXRDb21wdXRlZFN0eWxlKHRhcmdldDYpLmJvcmRlckNvbG9yJywgJyJyZ2IoMCwgMCwgMjU1KSIn
KTsKKworZGVidWcoIkNhc2U3OiBUaGUgdGFyZ2V0IGVsZW1lbnQgaGFzIGFueSBtYXRjaGVkIGlt
cG9ydGFudCBydWxlIGRlY2xhcmVkIGluIGFuIG91dGVyIHNjb3BlZCBzdHlsZXNoZWV0LiBUaGUg
ZWxlbWVudCBpcyBpbiBhIHNoYWRvdyBkb20gdHJlZSB3aG9zZSBzaGFkb3cgcm9vdCBoYXMgYXBw
bHktYXV0aG9yLXN0eWxlcyB0cnVlLiBUaGUgc2hhZG93IGRvbSB0cmVlIGhhcyBhbnkgb3RoZXIg
bm9ybWFsIHJ1bGVzIHdoaWNoIG1hdGNoIHRoZSBlbGVtZW50LiIpOwordmFyIGhvc3QxID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QxIik7Cit2YXIgc2hhZG93Um9vdDEgPSBob3N0MS53
ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290MS5hcHBseUF1dGhvclN0eWxlcyA9
IHRydWU7CitzaGFkb3dSb290MS5pbm5lckhUTUwgPSAnPHN0eWxlPmRpdiNzaGFkb3cxIHsgY29s
b3I6IGJsdWU7IH08L3N0eWxlPjxkaXYgaWQ9InNoYWRvdzEiPjwvZGl2Pic7Cit2YXIgdGFyZ2V0
NyA9IHNoYWRvd1Jvb3QxLmdldEVsZW1lbnRCeUlkKCJzaGFkb3cxIik7CitzaG91bGRCZSgnZ2V0
Q29tcHV0ZWRTdHlsZSh0YXJnZXQ3KS5ib3JkZXJDb2xvcicsICcicmdiKDAsIDEyOCwgMCkiJyk7
CisKK2RlYnVnKCJDYXNlODogVGhlIHRhcmdldCBlbGVtZW50IGluIGEgc2hhZG93IGRvbSB0cmVl
IGhhcyBhbnkgbWF0Y2hlZCBpbXBvcnRhbnQgcnVsZSBkZWNsYXJlZCBpbiBhbiBvdXRlciBzY29w
ZWQgc3R5bGVzaGVldCBpbiBhbiBlbmNsb3Npbmcgc2hhZG93IGRvbSB0cmVlLiBUaGUgdGFyZ2V0
IGVsZW1lbnQncyBzaGFkb3cgcm9vdCBoYXMgYXBwbHktYXV0aG9yLXN0eWxlcyB0cnVlLiIpOwor
dmFyIGhvc3QyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvc3QyIik7Cit2YXIgc2hhZG93
Um9vdDIgPSBob3N0Mi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290Mi5hcHBs
eUF1dGhvclN0eWxlcyA9IGZhbHNlOworc2hhZG93Um9vdDIuaW5uZXJIVE1MID0gJzxzdHlsZT5k
aXYgeyBib3JkZXItY29sb3I6IGdyZWVuICFpbXBvcnRhbnQ7IH08L3N0eWxlPjxkaXYgaWQ9InNo
YWRvdzIiPjwvZGl2Pic7CisKK3ZhciBob3N0SW5TaGFkb3dUcmVlMiA9IHNoYWRvd1Jvb3QyLmdl
dEVsZW1lbnRCeUlkKCJzaGFkb3cyIik7Cit2YXIgc2hhZG93Um9vdDMgPSBob3N0SW5TaGFkb3dU
cmVlMi53ZWJraXRDcmVhdGVTaGFkb3dSb290KCk7CitzaGFkb3dSb290My5hcHBseUF1dGhvclN0
eWxlcyA9IHRydWU7CitzaGFkb3dSb290My5pbm5lckhUTUwgPSAnPHN0eWxlPmRpdiNzaGFkb3cz
IHsgYm9yZGVyLWNvbG9yOiBibHVlOyB9PC9zdHlsZT48ZGl2IGlkPSJzaGFkb3czIj48L2Rpdj4n
OwordmFyIHRhcmdldDggPSBzaGFkb3dSb290My5nZXRFbGVtZW50QnlJZCgic2hhZG93MyIpOwor
c2hvdWxkQmUoJ2dldENvbXB1dGVkU3R5bGUodGFyZ2V0OCkuYm9yZGVyQ29sb3InLCAnInJnYigw
LCAxMjgsIDApIicpOworCitkZWJ1ZygiQ2FzZTgnOiBUaGUgdGFyZ2V0IGVsZW1lbnQgaXMgaW4g
YSBzaGFkb3cgZG9tIHRyZWUuIEFuIGVuY2xvc2luZyBzaGFkb3cgZG9tIHRyZWUgaGFzIHNvbWUg
c3R5bGVzaGVldCB3aGljaCBkZWNsYXJlcyBhbiBpbXBvcnRhbnQgcnVsZS4gVGhlIHRhcmdldCBl
bGVtZW50J3Mgc2hhZG93IHJvb3QgaGFzIGFwcGx5LWF1dGhvci1zdHlsZXMgZmFsc2UuIik7Citz
aGFkb3dSb290My5hcHBseUF1dGhvclN0eWxlcyA9IGZhbHNlOworc2hvdWxkQmUoJ2dldENvbXB1
dGVkU3R5bGUodGFyZ2V0OCkuYm9yZGVyQ29sb3InLCAnInJnYigwLCAwLCAyNTUpIicpOworCis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9zdHlsZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJy
aWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKaW5kZXggMTAzMzljMTYzNzJlNzVmNzhk
MzRiZmNkZTFiODQ5YWM2NjlkYWFhNC4uYjFhYzY2YzZmYzFiNzE5ZmQ0NDYzMTQxZjRmZjQ2MWM3
MjYwMzlmMSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3Bl
ZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lv
bi1zdHlsaW5nLWV4cGVjdGVkLmh0bWwKQEAgLTMyLDggKzMyLDggQEAKIAlQYXJ0aWFsIG92ZXJs
YXAsIEByZWdpb24gbW9yZSBzcGVjaWZpYyB0aGFuICZsdDtzdHlsZSBzY29wZWQmZ3Q7IChAcmVn
aW9uIHN0eWxlIGhhcyBydWxlcyBmb3IgY2xhc3MgYW5kIGlkLCBzY29wZWQgc3R5bGUgaGFzIHJ1
bGUgZm9yICZsdDtwJmd0OykNCiAJPGRpdiBjbGFzcz0nY29udGFpbmVyJyBpZD0ncjEnPg0KIAkJ
PHAgY2xhc3M9J2xpZ2h0Jz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0KLQkJPHAgY2xhc3M9J2xp
bWUnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQotCQk8cCBjbGFzcz0nZ3JlZW4nPlN0eWxlZCBs
aW5lIG9mIHRleHQ8L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8
L3A+DQorCQk8cCBjbGFzcz0nbGlnaHQnPlN0eWxlZCBsaW5lIG9mIHRleHQ8L3A+DQogCTwvZGl2
Pg0KIAlQYXJ0aWFsIG92ZXJsYXAsICZsdDtzdHlsZSBzY29wZWQmZ3Q7IG1vcmUgc3BlY2lmaWMg
dGhhbiBAcmVnaW9uIChAcmVnaW9uIHN0eWxlIGhhcyBydWxlIGZvciAmbHQ7cCZndDssIHNjb3Bl
ZCBzdHlsZSBoYXMgcnVsZXMgZm9yIGNsYXNzIGFuZCBpZCkNCiAJPGRpdiBjbGFzcz0nY29udGFp
bmVyJyBpZD0ncjInPg0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9zdHls
ZS1zY29wZWQtaW4tZmxvdy1vdmVycmlkZS1yZWdpb24tc3R5bGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHls
aW5nLmh0bWwKaW5kZXggYmU5Y2NkMmZiZjk4Y2JmOGExYTgzYWYwNWRiOGQ0ZjNlYjk4NGI5NS4u
NDU3Njk0YWVjYmNiZGU5Y2I3MzgxOTc3NmIwODIzY2E4YWUzOTFiMiAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3BlZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lv
bi1zdHlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL3N0eWxlLXNjb3Bl
ZC1pbi1mbG93LW92ZXJyaWRlLXJlZ2lvbi1zdHlsaW5nLmh0bWwKQEAgLTUwLDEzICs1MCwxMyBA
QAogCX0NCiAJQC13ZWJraXQtcmVnaW9uICNyMyB7DQogCQlwIHsNCi0JCQliYWNrZ3JvdW5kLWNv
bG9yOiBsaWdodGdyZWVuOw0KKwkJCWJhY2tncm91bmQtY29sb3I6IHllbGxvdzsNCiAJCX0NCiAJ
CS5jMyB7DQotCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisJCQliYWNrZ3JvdW5kLWNvbG9y
OiBvcmFuZ2U7DQogCQl9DQogCQkjcDMgew0KLQkJCWJhY2tncm91bmQtY29sb3I6IGdyZWVuOw0K
KwkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCiAJCX0NCiAJfQ0KIAk8L3N0eWxlPg0KQEAgLTg3
LDE1ICs4NywxNSBAQAogCTwvZGl2Pg0KIAk8ZGl2IGlkPSdmMyc+DQogCQk8c3R5bGUgc2NvcGVk
PSd0cnVlJz4NCi0JCQlwIHsNCi0JCQkJYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Ow0KLQkJCX0N
Ci0JCQkuYzMgew0KLQkJCQliYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7DQotCQkJfQ0KLQkJCSNw
MyB7DQotCQkJCWJhY2tncm91bmQtY29sb3I6IHJlZDsNCi0JCQl9DQorCQkgICAgICAgIHAgew0K
KwkJCSAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsNCisgICAgCQkJfQ0KKwkJ
ICAgICAgICAuYzMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjogbGltZTsNCisgICAg
ICAgIAkJfQ0KKyAgICAgICAgCQkjcDMgew0KKyAgICAgICAgCQkJYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47DQorICAgICAgICAJCX0NCiAJCTwvc3R5bGU+DQogCQk8cD5TdHlsZWQgbGluZSBvZiB0
ZXh0PC9wPg0KIAkJPHAgY2xhc3M9J2MzJz5TdHlsZWQgbGluZSBvZiB0ZXh0PC9wPg0K
</data>

          </attachment>
      

    </bug>

</bugzilla>