<?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>96381</bug_id>
          
          <creation_ts>2012-09-11 05:41:27 -0700</creation_ts>
          <short_desc>-webkit-clip-path should parse IRIs</short_desc>
          <delta_ts>2019-08-21 23:14:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=201030</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>95389</blocked>
    
    <blocked>98599</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">krit</reporter>
          <assigned_to name="Dirk Schulze">krit</assigned_to>
          <cc>ap</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>fujii</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>717085</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-11 05:41:27 -0700</bug_when>
    <thetext>-webkit-clip-path should parse IRIs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726114</commentid>
    <comment_count>1</comment_count>
      <attachid>165258</attachid>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-09-22 03:57:37 -0700</bug_when>
    <thetext>Created attachment 165258
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726115</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-22 04:01:11 -0700</bug_when>
    <thetext>Attachment 165258 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/css3/masking/clip-path-referen...&quot; exit_code: 1
Source/WebCore/css/CSSComputedStyleDeclaration.cpp:2431:  Extra space between return and CSSPrimitiveValue  [whitespace/declaration] [3]
Source/WebCore/rendering/RenderLayer.cpp:85:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726119</commentid>
    <comment_count>3</comment_count>
      <attachid>165258</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-22 04:23:48 -0700</bug_when>
    <thetext>Comment on attachment 165258
patch

Attachment 165258 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13953971</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726121</commentid>
    <comment_count>4</comment_count>
      <attachid>165258</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-22 04:30:47 -0700</bug_when>
    <thetext>Comment on attachment 165258
patch

Attachment 165258 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13987001

New failing tests:
fast/masking/parsing-clip-path-iri.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726126</commentid>
    <comment_count>5</comment_count>
      <attachid>165258</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-22 04:38:56 -0700</bug_when>
    <thetext>Comment on attachment 165258
patch

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

Please use phrases on FIXME&apos;s. There is a build warning that you never run into a code path in styleresolver.

&gt; LayoutTests/css3/masking/clip-path-reference.html:21
&gt; +&lt;svg height=&quot;0&quot;&gt;
&gt; +    &lt;clipPath id=&quot;c1&quot; clipPathUnits=&quot;objectBoundingBox&quot;&gt;

Please add a test with userSpaceOnUse as well. Note that you need to specify a with and height for the SVG element then:
&lt;svg height=&quot;200&quot; width=&quot;200&quot;&gt;
&lt;clipPath id=&quot;c1&quot; clipPathUnits=&quot;userSpaceOnUse&quot;&gt;
    &lt;rect x=&quot;20&quot; y=&quot;20&quot; width=&quot;160&quot; height=&quot;160&quot;/&gt;
&lt;/clipPath&gt;

&gt; Source/WebCore/css/StyleBuilder.cpp:-1690
&gt; -template &lt;ClipPathOperation* (RenderStyle::*getterFunction)() const, void (RenderStyle::*setterFunction)(PassRefPtr&lt;ClipPathOperation&gt;), ClipPathOperation* (*initialFunction)()&gt;
&gt; -class ApplyPropertyClipPath {
&gt; -public:

I was told to use this template, since it is the new way to use StyleBuilder. Like discussed offline, the code from StyleResolver::createPathOperation should be moved here.

&gt; Source/WebCore/css/StyleBuilder.cpp:-2055
&gt; -    setPropertyHandler(CSSPropertyWebkitClipPath, ApplyPropertyClipPath&lt;&amp;RenderStyle::clipPath, &amp;RenderStyle::setClipPath, &amp;RenderStyle::initialClipPath&gt;::createHandler());

Needs to be added again.

&gt; Source/WebCore/css/StyleResolver.cpp:5171
&gt; +    // FIXME: needs handling for load pending SVG documents (similar to what CSS Filters)

Add the reference to the bug report https://bugs.webkit.org/show_bug.cgi?id=90405.

&gt; Source/WebCore/rendering/RenderLayer.cpp:3149
&gt; +            // FIXME: doesn&apos;t work if we have an external reference to a SVG document or if the SVG element is after the HTML one

The external referencing doesn&apos;t work in SVG either. We have a bug report about that. The one with SVG after HTML should reference to the bug report: https://bugs.webkit.org/show_bug.cgi?id=90405

&gt; Source/WebCore/rendering/RenderLayer.cpp:3151
&gt; +
&gt; +

One empty line s enough.

&gt; Source/WebCore/rendering/RenderLayer.cpp:3155
&gt; +                RenderSVGResourceClipper* clipper = static_cast&lt;RenderSVGResourceClipper*&gt;(clipPath-&gt;renderer());
&gt; +                if (clipper)

If you don&apos;t have more checks, move the initialisation into the if function: 
if (RenderSVGResourceClipper* clipper = static_cast&lt;RenderSVGResourceClipper*&gt;(clipPath-&gt;renderer()))

&gt; Source/WebCore/rendering/RenderLayer.cpp:3156
&gt; +                    clipper-&gt;applyClippingToContext(renderer(), calculateLayerBounds(this, rootLayer, 0), paintDirtyRect, transparencyLayerContext);

should be context, not transparencyLayerContext.

&gt; Source/WebCore/rendering/svg/RenderSVGResourceClipper.h:58
&gt; +    // clipPath can be clipped too, but don&apos;t have a boundingBox or repaintRect. So we can&apos;t call
&gt; +    // applyResource directly and use the rects from the object, since they are empty for RenderSVGResources
&gt; +    // This function is public because we need to apply clipping on HTML element
&gt; +    bool applyClippingToContext(RenderObject*, const FloatRect&amp;, const FloatRect&amp;, GraphicsContext*);

They should have a bounding box. Seems to be a bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726127</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-22 04:40:21 -0700</bug_when>
    <thetext>Forgot to say: This is really awesome code! Great work! :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726508</commentid>
    <comment_count>7</comment_count>
      <attachid>165340</attachid>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-09-24 03:21:21 -0700</bug_when>
    <thetext>Created attachment 165340
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726511</commentid>
    <comment_count>8</comment_count>
      <attachid>165342</attachid>
    <who name="Raul Hudea">rhudea</who>
    <bug_when>2012-09-24 03:26:07 -0700</bug_when>
    <thetext>Created attachment 165342
removed extra include</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726524</commentid>
    <comment_count>9</comment_count>
      <attachid>165342</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-24 03:59:52 -0700</bug_when>
    <thetext>Comment on attachment 165342
removed extra include

Attachment 165342 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13985655

New failing tests:
fast/masking/parsing-clip-path-iri.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726573</commentid>
    <comment_count>10</comment_count>
      <attachid>165342</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 05:30:38 -0700</bug_when>
    <thetext>Comment on attachment 165342
removed extra include

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

New failing tests:
fast/masking/parsing-clip-path-iri.html
css3/masking/clip-path-reference-userSpaceOnUse.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726608</commentid>
    <comment_count>11</comment_count>
      <attachid>165342</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-24 06:37:38 -0700</bug_when>
    <thetext>Comment on attachment 165342
removed extra include

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

New failing tests:
fast/masking/parsing-clip-path-iri.html
css3/masking/clip-path-reference-userSpaceOnUse.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727105</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-24 17:14:17 -0700</bug_when>
    <thetext>Do you have the time to investigate in the test failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>731441</commentid>
    <comment_count>13</comment_count>
      <attachid>165342</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-10-01 00:52:05 -0700</bug_when>
    <thetext>Comment on attachment 165342
removed extra include

Looks sane to me. I&apos;ll leave the final review for DIrk though as he published comments earlier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736240</commentid>
    <comment_count>14</comment_count>
      <attachid>167456</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-06 07:19:03 -0700</bug_when>
    <thetext>Created attachment 167456
Patch

Just updated the style issues and added on ref test for chromium to TextExpectations. Seems to be a Chromium specific bug. Opened a separate bug report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736311</commentid>
    <comment_count>15</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-06 17:33:19 -0700</bug_when>
    <thetext>Dan asked to make one more change on IRC: cssUrlValue =&gt; cssURLValue

Will do that before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736315</commentid>
    <comment_count>16</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-06 18:35:22 -0700</bug_when>
    <thetext>Committed r130592: &lt;http://trac.webkit.org/changeset/130592&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>890973</commentid>
    <comment_count>17</comment_count>
      <attachid>167456</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-05-18 16:13:44 -0700</bug_when>
    <thetext>Comment on attachment 167456
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:3150
&gt; +                static_cast&lt;RenderSVGResourceClipper*&gt;(clipPath-&gt;renderer())-&gt;applyClippingToContext(renderer(), calculateLayerBounds(this, rootLayer, 0), paintDirtyRect, context);

Why doesn&apos;t this code set hasClipPath to true? Don&apos;t we need to restore the context at the end of the function? In fact, applyClippingToContext() clips the context without saving state, so I can&apos;t see how this is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891356</commentid>
    <comment_count>18</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-05-20 15:17:13 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 167456 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167456&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:3150
&gt; &gt; +                static_cast&lt;RenderSVGResourceClipper*&gt;(clipPath-&gt;renderer())-&gt;applyClippingToContext(renderer(), calculateLayerBounds(this, rootLayer, 0), paintDirtyRect, context);
&gt; 
&gt; Why doesn&apos;t this code set hasClipPath to true? Don&apos;t we need to restore the context at the end of the function? In fact, applyClippingToContext() clips the context without saving state, so I can&apos;t see how this is correct.

I&apos;ll check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>891361</commentid>
    <comment_count>19</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2013-05-20 15:38:09 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 167456 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=167456&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:3150
&gt; &gt; +                static_cast&lt;RenderSVGResourceClipper*&gt;(clipPath-&gt;renderer())-&gt;applyClippingToContext(renderer(), calculateLayerBounds(this, rootLayer, 0), paintDirtyRect, context);
&gt; 
&gt; Why doesn&apos;t this code set hasClipPath to true? Don&apos;t we need to restore the context at the end of the function? In fact, applyClippingToContext() clips the context without saving state, so I can&apos;t see how this is correct.

Looking at the source, we indeed do not restore the context on SVG clipping. I was more worried if we call save without restore, but this isn&apos;t the case.

The most important part is that we do not have a security issue here and we haven&apos;t. I can not say if the painted result is correct under all circumstances. I guess it just needs testing. However, saving and restoring for SVG clipping shouldn&apos;t cause rendering issues either.

If you have a test where the rendering fails, we can add save and restore guards.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165258</attachid>
            <date>2012-09-22 03:57:37 -0700</date>
            <delta_ts>2012-09-24 03:21:21 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17726</size>
            <attacher name="Raul Hudea">rhudea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNl
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVy
ZW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZj
NzA3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1w
YXRoLXJlZmVyZW5jZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGU+CisjZCB7CisgIHdpZHRoOiAx
ODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cit9Cisj
Y2xpcCB7CisgICAgd2lkdGg6IDMycHg7CisgICAgaGVpZ2h0OiAzMnB4OworICAgIG1hcmdpbjog
NzRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzdmcgaGVpZ2h0PSIwIj48L3N2Zz4KKzxkaXYgaWQ9ImQiPjxkaXYgaWQ9ImNs
aXAiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1YjNmMmEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS5odG1sCkBAIC0w
LDAgKzEsMjcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8
c3R5bGU+CisjZCB7CisgIHdpZHRoOiAxODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7Cit9CisjY2xpcCB7CisgICAgd2lkdGg6IDE2MHB4OworICAgIGhl
aWdodDogMTYwcHg7CisgICAgbWFyZ2luOiAxMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOworICAgIC13ZWJraXQtY2xpcC1wYXRoOiB1cmwoI2MxKTsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxzdmcgaGVpZ2h0PSIwIj4KKyAgICA8Y2xpcFBhdGggaWQ9ImMxIiBjbGlw
UGF0aFVuaXRzPSJvYmplY3RCb3VuZGluZ0JveCI+CisgICAgICAgIDxyZWN0IHg9IjAuNCIgeT0i
MC40IiB3aWR0aD0iMC4yIiBoZWlnaHQ9IjAuMiIvPgorICAgIDwvY2xpcFBhdGg+CisgIDwvc3Zn
PgorPGRpdiBpZD0iZCI+PGRpdiBpZD0iY2xpcCI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5n
L3BhcnNpbmctY2xpcC1wYXRoLWlyaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21h
c2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwLi5lZjZmYTI0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxMyBAQAorVGVzdCBzb21lIGNsaXAtcGF0aCBJUkkKKworT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgorCisKK1BBU1MgaW5uZXJTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJsKCNj
bGlwMSkiKSBpcyAidXJsKCNjbGlwMSkiCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInVybChjbGlwLnN2ZyNjbGlwMSkiKSBpcyAidXJsKGNsaXAuc3ZnI2NsaXAxKSIKK1BB
U1MgY29tcHV0ZWRTdHlsZSgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJsKCNjbGlwMSkiKSBpcyAi
dXJsKCNjbGlwMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVy
bChjbGlwLnN2ZyNjbGlwMSkiKSBpcyAidXJsKGNsaXAuc3ZnI2NsaXAxKSIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2IxYTRmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmkuaHRtbApAQCAtMCwwICsx
LDQ3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPHN0eWxlPgorKiB7IGZvbnQtc2l6ZTog
MTZweDsgfQorZGl2IHsgZm9udC1zaXplOiA4cHg7IH0KKzwvc3R5bGU+Cis8Ym9keT4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2Rlc2NyaXB0aW9uKCdUZXN0IGNsaXAtcGF0aCByZWZlcmVuY2UnKTsKKworZnVuY3Rpb24g
Y29tcHV0ZWRTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkaXYp
OworICAgIGRpdi5zdHlsZS5zZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHZhciBj
b21wdXRlZFZhbHVlID0gZ2V0Q29tcHV0ZWRTdHlsZShkaXYpLmdldFByb3BlcnR5VmFsdWUocHJv
cGVydHkpOworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZGl2KTsKKyAgICByZXR1cm4g
Y29tcHV0ZWRWYWx1ZTsKK30KKworZnVuY3Rpb24gaW5uZXJTdHlsZShwcm9wZXJ0eSwgdmFsdWUp
IHsKKyAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgZGl2
LnN0eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgcmV0dXJuIGRpdi5zdHls
ZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKK30KKworZnVuY3Rpb24gdGVzdENvbXB1dGVk
KHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmco
J2NvbXB1dGVkU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJywgZXhw
ZWN0ZWQpOworfQorCitmdW5jdGlvbiB0ZXN0SW5uZXIocHJvcGVydHksIHZhbHVlLCBleHBlY3Rl
ZCkgeworICAgIGlmIChleHBlY3RlZCA9PT0gbnVsbCkKKyAgICAgICAgc2hvdWxkQmVOdWxsKCdp
bm5lclN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScpOworICAgIGVs
c2UKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdpbm5lclN0eWxlKCInICsgcHJvcGVy
dHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsKK30KKwordGVzdElubmVyKCIt
d2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoI2NsaXAxKSIsICJ1cmwoI2NsaXAxKSIpOwordGVzdElu
bmVyKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoY2xpcC5zdmcjY2xpcDEpIiwgInVybChjbGlw
LnN2ZyNjbGlwMSkiKTsKKwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwo
I2NsaXAxKSIsICJ1cmwoI2NsaXAxKSIpOwordGVzdENvbXB1dGVkKCItd2Via2l0LWNsaXAtcGF0
aCIsICJ1cmwoY2xpcC5zdmcjY2xpcDEpIiwgInVybChjbGlwLnN2ZyNjbGlwMSkiKTsKKworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3Jlc291cmNlcy9jbGlwLnN2ZyBiL0xh
eW91dFRlc3RzL2Zhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5zdmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMGEzOTRjMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5zdmcKQEAgLTAsMCArMSw3IEBACis8c3Zn
IGhlaWdodD0iMCI+CisgICAgPGNsaXBQYXRoIGlkPSJjbGlwMSIgY2xpcFBhdGhVbml0cz0ib2Jq
ZWN0Qm91bmRpbmdCb3giPgorICAgICAgPGNpcmNsZSBjeD0iMC4yNSIgY3k9IjAuMjUiIHI9IjAu
MjUiIGlkPSJjaXJjbGUiLz4KKyAgICA8L2NsaXBQYXRoPgorPC9zdmc+CisKKwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCBk
MTBkNzM4Li45NTFhYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtODIsNiArODIsMTAgQEAKICNpbmNsdWRlICJEYXNo
Ym9hcmRSZWdpb24uaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJXZWJL
aXRDU1NTVkdEb2N1bWVudFZhbHVlLmgiCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAvLyBMaXN0IG9mIGFsbCBwcm9wZXJ0aWVzIHdlIGtub3cgaG93IHRvIGNvbXB1dGUsIG9taXR0
aW5nIHNob3J0aGFuZHMuCkBAIC0yNDIxLDYgKzI0MjUsMTIgQEAgUGFzc1JlZlB0cjxDU1NWYWx1
ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1By
b3BlcnQKICAgICAgICAgICAgIGlmIChDbGlwUGF0aE9wZXJhdGlvbiogb3BlcmF0aW9uID0gc3R5
bGUtPmNsaXBQYXRoKCkpIHsKICAgICAgICAgICAgICAgICBpZiAob3BlcmF0aW9uLT5nZXRPcGVy
YXRpb25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlNIQVBFKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gdmFsdWVGb3JCYXNpY1NoYXBlKHN0YXRpY19jYXN0PFNoYXBlQ2xpcFBhdGhP
cGVyYXRpb24qPihvcGVyYXRpb24pLT5iYXNpY1NoYXBlKCkpOworI2lmIEVOQUJMRShTVkcpCisg
ICAgICAgICAgICAgICAgZWxzZSBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0g
Q2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgICAgICAgICAgICAgICAgICBSZWZl
cmVuY2VDbGlwUGF0aE9wZXJhdGlvbiogcmVmZXJlbmNlT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8
UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qPihvcGVyYXRpb24pOworICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUocmVmZXJlbmNlT3BlcmF0aW9u
LT51cmwoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworICAgICAgICAgICAgICAgIH0K
KyNlbmRpZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVlUG9vbCgp
LmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogI2lmIEVOQUJMRShDU1NfUkVH
SU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZWZkOWJhZS4uMGZjZGU2ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI3NjQsNiArMjc2NCwxMyBAQCBib29sIENTU1Bh
cnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAg
ICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHZhbHVl
LT51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbikKICAgICAgICAgICAgIHJldHVybiBw
YXJzZUJhc2ljU2hhcGUocHJvcElkLCBpbXBvcnRhbnQpOworI2lmIEVOQUJMRShTVkcpCisgICAg
ICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKSB7
CisgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUodmFs
dWUtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworICAgICAgICAgICAgYWRk
UHJvcGVydHkocHJvcElkLCBwYXJzZWRWYWx1ZS5yZWxlYXNlKCksIGltcG9ydGFudCk7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hh
cGVJbnNpZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDA5YzI3YjcuLjM0
N2E1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0zMyw3ICszMyw2IEBA
CiAjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIgogI2luY2x1ZGUgIkNTU1Rv
U3R5bGVNYXAuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUxpc3QuaCIKLSNpbmNsdWRlICJDbGlwUGF0
aE9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3QuaCIKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE2ODUsMjggKzE2ODQsNiBAQCBwdWJsaWM6
CiAgICAgfQogfTsKIAotdGVtcGxhdGUgPENsaXBQYXRoT3BlcmF0aW9uKiAoUmVuZGVyU3R5bGU6
OipnZXR0ZXJGdW5jdGlvbikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXJGdW5j
dGlvbikoUGFzc1JlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4pLCBDbGlwUGF0aE9wZXJhdGlvbiog
KCppbml0aWFsRnVuY3Rpb24pKCk+Ci1jbGFzcyBBcHBseVByb3BlcnR5Q2xpcFBhdGggewotcHVi
bGljOgotICAgIHN0YXRpYyB2b2lkIHNldFZhbHVlKFJlbmRlclN0eWxlKiBzdHlsZSwgUGFzc1Jl
ZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gdmFsdWUpIHsgKHN0eWxlLT4qc2V0dGVyRnVuY3Rpb24p
KHZhbHVlKTsgfQotICAgIHN0YXRpYyB2b2lkIGFwcGx5VmFsdWUoQ1NTUHJvcGVydHlJRCwgU3R5
bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgQ1NTVmFsdWUqIHZhbHVlKQotICAgIHsKLSAgICAg
ICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKLSAgICAgICAgICAgIENTU1ByaW1p
dGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVl
Kj4odmFsdWUpOwotICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09
IENTU1ZhbHVlTm9uZSkKLSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLCAwKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBl
KCkpIHsKLSAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgpLCBT
aGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUoYmFzaWNTaGFwZUZvclZhbHVlKHN0eWxlUmVz
b2x2ZXIsIHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5k
bGVyKCkKLSAgICB7Ci0gICAgICAgIFByb3BlcnR5SGFuZGxlciBoYW5kbGVyID0gQXBwbHlQcm9w
ZXJ0eURlZmF1bHRCYXNlPENsaXBQYXRoT3BlcmF0aW9uKiwgZ2V0dGVyRnVuY3Rpb24sIFBhc3NS
ZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+LCBzZXR0ZXJGdW5jdGlvbiwgQ2xpcFBhdGhPcGVyYXRp
b24qLCBpbml0aWFsRnVuY3Rpb24+OjpjcmVhdGVIYW5kbGVyKCk7Ci0gICAgICAgIHJldHVybiBQ
cm9wZXJ0eUhhbmRsZXIoaGFuZGxlci5pbmhlcml0RnVuY3Rpb24oKSwgaGFuZGxlci5pbml0aWFs
RnVuY3Rpb24oKSwgJmFwcGx5VmFsdWUpOwotICAgIH0KLX07Ci0KICNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCiB0ZW1wbGF0ZSA8QmFzaWNTaGFwZSogKFJlbmRlclN0eWxlOjoqZ2V0dGVyRnVu
Y3Rpb24pKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyRnVuY3Rpb24pKFBhc3NS
ZWZQdHI8QmFzaWNTaGFwZT4pLCBCYXNpY1NoYXBlKiAoKmluaXRpYWxGdW5jdGlvbikoKT4KIGNs
YXNzIEFwcGx5UHJvcGVydHlXcmFwU2hhcGUgewpAQCAtMjA1Miw3ICsyMDI5LDYgQEAgU3R5bGVC
dWlsZGVyOjpTdHlsZUJ1aWxkZXIoKQogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0
eVdlYmtpdFVzZXJEcmFnLCBBcHBseVByb3BlcnR5RGVmYXVsdDxFVXNlckRyYWcsICZSZW5kZXJT
dHlsZTo6dXNlckRyYWcsIEVVc2VyRHJhZywgJlJlbmRlclN0eWxlOjpzZXRVc2VyRHJhZywgRVVz
ZXJEcmFnLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VyRHJhZz46OmNyZWF0ZUhhbmRsZXIoKSk7
CiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0VXNlck1vZGlmeSwgQXBw
bHlQcm9wZXJ0eURlZmF1bHQ8RVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6dXNlck1vZGlmeSwg
RVVzZXJNb2RpZnksICZSZW5kZXJTdHlsZTo6c2V0VXNlck1vZGlmeSwgRVVzZXJNb2RpZnksICZS
ZW5kZXJTdHlsZTo6aW5pdGlhbFVzZXJNb2RpZnk+OjpjcmVhdGVIYW5kbGVyKCkpOwogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdlYmtpdFVzZXJTZWxlY3QsIEFwcGx5UHJvcGVy
dHlEZWZhdWx0PEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5bGU6OnVzZXJTZWxlY3QsIEVVc2VyU2Vs
ZWN0LCAmUmVuZGVyU3R5bGU6OnNldFVzZXJTZWxlY3QsIEVVc2VyU2VsZWN0LCAmUmVuZGVyU3R5
bGU6OmluaXRpYWxVc2VyU2VsZWN0Pjo6Y3JlYXRlSGFuZGxlcigpKTsKLSAgICBzZXRQcm9wZXJ0
eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aCwgQXBwbHlQcm9wZXJ0eUNsaXBQYXRo
PCZSZW5kZXJTdHlsZTo6Y2xpcFBhdGgsICZSZW5kZXJTdHlsZTo6c2V0Q2xpcFBhdGgsICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbENsaXBQYXRoPjo6Y3JlYXRlSGFuZGxlcigpKTsKIAogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJr
aXRXcmFwLCBBcHBseVByb3BlcnR5RXhwYW5kaW5nPFN1cHByZXNzVmFsdWUsIENTU1Byb3BlcnR5
V2Via2l0V3JhcEZsb3csIENTU1Byb3BlcnR5V2Via2l0V3JhcE1hcmdpbiwgQ1NTUHJvcGVydHlX
ZWJraXRXcmFwUGFkZGluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAKaW5kZXggZWMwYzM5Yy4uZTNjN2Q5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIlN0eWxlUmVzb2x2ZXIu
aCIKIAogI2luY2x1ZGUgIkF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIkJhc2ljU2hhcGVGdW5jdGlv
bnMuaCIKICNpbmNsdWRlICJDU1NCb3JkZXJJbWFnZS5oIgogI2luY2x1ZGUgIkNTU0NhbGN1bGF0
aW9uVmFsdWUuaCIKICNpbmNsdWRlICJDU1NDdXJzb3JJbWFnZVZhbHVlLmgiCkBAIC00MTc5LDYg
KzQxODAsMTMgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5
SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGNh
c2UgQ1NTUHJvcGVydHlXZWJraXRDbGlwUGF0aDogeworICAgICAgICBSZWZQdHI8Q2xpcFBhdGhP
cGVyYXRpb24+IG9wZXJhdGlvbjsKKyAgICAgICAgaWYgKGNyZWF0ZVBhdGhPcGVyYXRpb24odmFs
dWUsIG9wZXJhdGlvbikpCisgICAgICAgICAgICBtX3N0eWxlLT5zZXRDbGlwUGF0aChvcGVyYXRp
b24pOworICAgICAgICByZXR1cm47CisgICAgfQorCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRGaWx0ZXI6IHsKICAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwoZmlsdGVyLCBGaWx0ZXIpOwpAQCAtNDQ3Miw3ICs0NDgwLDYgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
KiB2YWx1ZSkKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VXNlckRyYWc6CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFVzZXJNb2RpZnk6CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVz
ZXJTZWxlY3Q6Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdENsaXBQYXRoOgogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcDoKICAgICBj
YXNlIENTU1Byb3BlcnR5V2Via2l0V3JhcEZsb3c6CkBAIC01MTQzLDYgKzUxNTAsMzIgQEAgYm9v
bCBTdHlsZVJlc29sdmVyOjpjcmVhdGVUcmFuc2Zvcm1PcGVyYXRpb25zKENTU1ZhbHVlKiBpblZh
bHVlLCBSZW5kZXJTdHlsZSogc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBTdHlsZVJl
c29sdmVyOjpjcmVhdGVQYXRoT3BlcmF0aW9uKENTU1ZhbHVlKiB2YWx1ZSwgUmVmUHRyPENsaXBQ
YXRoT3BlcmF0aW9uPiYgb3BlcmF0aW9uKQoreworICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZl
VmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBw
cmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwor
ICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCisgICAg
ICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5pc1NoYXBlKCkpIHsK
KyAgICAgICBvcGVyYXRpb24gPSBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUoYmFzaWNT
aGFwZUZvclZhbHVlKHRoaXMsIHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKTsKKyAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisjaWYgRU5BQkxFKFNWRykKKyAgICBlbHNlIGlmIChw
cmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgpICE9IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
VVJJKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgU3RyaW5nIGNzc1VybFZhbHVlID0gcHJp
bWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgS1VSTCB1cmwgPSBtX2VsZW1lbnQt
PmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGNzc1VybFZhbHVlKTsKKyAgICBSZWZQdHI8UmVmZXJl
bmNlQ2xpcFBhdGhPcGVyYXRpb24+IHJlZmVyZW5jZU9wZXJhdGlvbiA9IFJlZmVyZW5jZUNsaXBQ
YXRoT3BlcmF0aW9uOjpjcmVhdGUoY3NzVXJsVmFsdWUsIHVybC5mcmFnbWVudElkZW50aWZpZXIo
KSk7CisgICAgLy8gRklYTUU6IG5lZWRzIGhhbmRsaW5nIGZvciBsb2FkIHBlbmRpbmcgU1ZHIGRv
Y3VtZW50cyAoc2ltaWxhciB0byB3aGF0IENTUyBGaWx0ZXJzKQorICAgIG9wZXJhdGlvbiA9IHJl
ZmVyZW5jZU9wZXJhdGlvbjsKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorICAgIHJldHVybiBm
YWxzZTsKK30KKworCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogc3RhdGljIEZpbHRlck9wZXJh
dGlvbjo6T3BlcmF0aW9uVHlwZSBmaWx0ZXJPcGVyYXRpb25Gb3JUeXBlKFdlYktpdENTU0ZpbHRl
clZhbHVlOjpGaWx0ZXJPcGVyYXRpb25UeXBlIHR5cGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVz
b2x2ZXIuaAppbmRleCA5YzZmZTFkLi5jNTgzOTQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmgKQEAgLTI1NCw2ICsyNTQsOCBAQCBwdWJsaWM6CiAgICAgLy8gSXQgaXMgaGVyZSB0byBz
dXBwb3J0IGluc3BlY3Rvci4gRG9uJ3QgdXNlIGZvciBhbnkgcmVndWxhciBlbmdpbmUgZnVuY3Rp
b25zLgogICAgIENTU1N0eWxlUnVsZSogZW5zdXJlRnVsbENTU09NV3JhcHBlckZvckluc3BlY3Rv
cihTdHlsZVJ1bGUqKTsKIAorICAgIGJvb2wgY3JlYXRlUGF0aE9wZXJhdGlvbihDU1NWYWx1ZSos
IFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4mKTsKKwogI2lmIEVOQUJMRShDU1NfRklMVEVSUykK
ICAgICBib29sIGNyZWF0ZUZpbHRlck9wZXJhdGlvbnMoQ1NTVmFsdWUqIGluVmFsdWUsIFJlbmRl
clN0eWxlKiBpblN0eWxlLCBSZW5kZXJTdHlsZSogcm9vdFN0eWxlLCBGaWx0ZXJPcGVyYXRpb25z
JiBvdXRPcGVyYXRpb25zKTsKICNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGM0NjlkNmQuLmE5NmViN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCkBAIC00
Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENsaXBQYXRoT3BlcmF0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpcFBhdGhPcGVyYXRpb24+IHsKIHB1YmxpYzoKICAgICBl
bnVtIE9wZXJhdGlvblR5cGUgewotICAgICAgICAvLyBGSVhNRTogQWRkIHJlZmVyZW5jaW5nIGZv
ciBJUkkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzgxCisgICAg
ICAgIFJFRkVSRU5DRSwKICAgICAgICAgU0hBUEUKICAgICB9OwogCkBAIC02Myw2ICs2MywzNSBA
QCBwcm90ZWN0ZWQ6CiAgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7CiB9OwogCitjbGFzcyBSZWZl
cmVuY2VDbGlwUGF0aE9wZXJhdGlvbiA6IHB1YmxpYyBDbGlwUGF0aE9wZXJhdGlvbiB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24+IGNy
ZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24odXJs
LCBmcmFnbWVudCkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29uc3QgeyBy
ZXR1cm4gbV91cmw7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50KCkgY29uc3QgeyByZXR1
cm4gbV9mcmFnbWVudDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IENsaXBQYXRoT3BlcmF0aW9uJiBvKSBjb25zdAorICAgIHsgICAgICAgIGlmICghaXNT
YW1lVHlwZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgUmVm
ZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgUmVmZXJl
bmNlQ2xpcFBhdGhPcGVyYXRpb24qPigmbyk7CisgICAgICAgIHJldHVybiBtX3VybCA9PSBvdGhl
ci0+bV91cmw7CisgICAgfQorCisgICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24oY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQpCisgICAgICAgIDogQ2xpcFBhdGhP
cGVyYXRpb24oUkVGRVJFTkNFKQorICAgICAgICAsIG1fdXJsKHVybCkKKyAgICAgICAgLCBtX2Zy
YWdtZW50KGZyYWdtZW50KQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV91cmw7CisgICAg
U3RyaW5nIG1fZnJhZ21lbnQ7Cit9OworCiBjbGFzcyBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uIDog
cHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTaGFwZUNsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBz
aGFwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDc1OTg2
MzMuLjc5MTY1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApA
QCAtODIsNiArODIsNyBAQAogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKICNpbmNsdWRlICJS
ZW5kZXJTY3JvbGxiYXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCisjaW5j
bHVkZSAiUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUu
aCIKICNpbmNsdWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5o
IgpAQCAtMzE0MCw2ICszMTQxLDIyIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGF5ZXJDb250
ZW50cyhSZW5kZXJMYXllciogcm9vdExheWVyLCBHcmFwaGljc0NvbnRleHQqIGNvCiAgICAgICAg
ICAgICBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uKiBjbGlwUGF0aCA9IHN0YXRpY19jYXN0PFNoYXBl
Q2xpcFBhdGhPcGVyYXRpb24qPihzdHlsZS0+Y2xpcFBhdGgoKSk7CiAgICAgICAgICAgICBjb250
ZXh0LT5jbGlwUGF0aChjbGlwUGF0aC0+cGF0aChjYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzLCBy
b290TGF5ZXIsIDApKSwgY2xpcFBhdGgtPndpbmRSdWxlKCkpOwogICAgICAgICB9CisjaWYgRU5B
QkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAoc3R5bGUtPmNsaXBQYXRoKCktPmdldE9wZXJhdGlv
blR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7CisgICAgICAgICAgICBS
ZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiogcmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24gPSBz
dGF0aWNfY2FzdDxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbio+KHN0eWxlLT5jbGlwUGF0aCgp
KTsKKworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+ZG9jdW1l
bnQoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBkb2Vzbid0IHdvcmsgaWYgd2UgaGF2ZSBhbiBl
eHRlcm5hbCByZWZlcmVuY2UgdG8gYSBTVkcgZG9jdW1lbnQgb3IgaWYgdGhlIFNWRyBlbGVtZW50
IGlzIGFmdGVyIHRoZSBIVE1MIG9uZQorCisKKyAgICAgICAgICAgIEVsZW1lbnQqIGNsaXBQYXRo
ID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQocmVmZXJlbmNlQ2xpcFBhdGhP
cGVyYXRpb24tPmZyYWdtZW50KCkpIDogMDsKKyAgICAgICAgICAgIGlmIChjbGlwUGF0aCAmJiBj
bGlwUGF0aC0+cmVuZGVyZXIoKSAmJiBjbGlwUGF0aC0+cmVuZGVyZXIoKS0+aXNTVkdSZXNvdXJj
ZUNvbnRhaW5lcigpKSB7CisgICAgICAgICAgICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVy
KiBjbGlwcGVyID0gc3RhdGljX2Nhc3Q8UmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyKj4oY2xpcFBh
dGgtPnJlbmRlcmVyKCkpOworICAgICAgICAgICAgICAgIGlmIChjbGlwcGVyKQorICAgICAgICAg
ICAgICAgICAgICBjbGlwcGVyLT5hcHBseUNsaXBwaW5nVG9Db250ZXh0KHJlbmRlcmVyKCksIGNh
bGN1bGF0ZUxheWVyQm91bmRzKHRoaXMsIHJvb3RMYXllciwgMCksIHBhaW50RGlydHlSZWN0LCB0
cmFuc3BhcmVuY3lMYXllckNvbnRleHQpOworICAgICAgICAgICAgfQorICAgICAgICAgfQorI2Vu
ZGlmCiAgICAgfQogCiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgKaW5kZXgg
ZjJmNGIwNS4uYzBkNGYwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oCkBAIC01Miw2ICs1MiwxMCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUNsaWVudEZyb21DYWNoZShSZW5kZXJPYmplY3Qq
LCBib29sIG1hcmtGb3JJbnZhbGlkYXRpb24gPSB0cnVlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBh
cHBseVJlc291cmNlKFJlbmRlck9iamVjdCosIFJlbmRlclN0eWxlKiwgR3JhcGhpY3NDb250ZXh0
KiYsIHVuc2lnbmVkIHNob3J0IHJlc291cmNlTW9kZSk7CisgICAgLy8gY2xpcFBhdGggY2FuIGJl
IGNsaXBwZWQgdG9vLCBidXQgZG9uJ3QgaGF2ZSBhIGJvdW5kaW5nQm94IG9yIHJlcGFpbnRSZWN0
LiBTbyB3ZSBjYW4ndCBjYWxsCisgICAgLy8gYXBwbHlSZXNvdXJjZSBkaXJlY3RseSBhbmQgdXNl
IHRoZSByZWN0cyBmcm9tIHRoZSBvYmplY3QsIHNpbmNlIHRoZXkgYXJlIGVtcHR5IGZvciBSZW5k
ZXJTVkdSZXNvdXJjZXMKKyAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHB1YmxpYyBiZWNhdXNlIHdl
IG5lZWQgdG8gYXBwbHkgY2xpcHBpbmcgb24gSFRNTCBlbGVtZW50CisgICAgYm9vbCBhcHBseUNs
aXBwaW5nVG9Db250ZXh0KFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZs
b2F0UmVjdCYsIEdyYXBoaWNzQ29udGV4dCopOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291
cmNlQm91bmRpbmdCb3goUmVuZGVyT2JqZWN0Kik7CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jl
c291cmNlVHlwZSByZXNvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBDbGlwcGVyUmVzb3VyY2VU
eXBlOyB9CkBAIC02Miw5ICs2Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZW5kZXJTVkdS
ZXNvdXJjZVR5cGUgc19yZXNvdXJjZVR5cGU7CiBwcml2YXRlOgotICAgIC8vIGNsaXBQYXRoIGNh
biBiZSBjbGlwcGVkIHRvbywgYnV0IGRvbid0IGhhdmUgYSBib3VuZGluZ0JveCBvciByZXBhaW50
UmVjdC4gU28gd2UgY2FuJ3QgY2FsbAotICAgIC8vIGFwcGx5UmVzb3VyY2UgZGlyZWN0bHkgYW5k
IHVzZSB0aGUgcmVjdHMgZnJvbSB0aGUgb2JqZWN0LCBzaW5jZSB0aGV5IGFyZSBlbXB0eSBmb3Ig
UmVuZGVyU1ZHUmVzb3VyY2VzCi0gICAgYm9vbCBhcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRl
ck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzQ29u
dGV4dCopOwogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRleHQqLCBjb25z
dCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGRyYXdDb250
ZW50SW50b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91
bmRpbmdCb3gpOwogICAgIHZvaWQgY2FsY3VsYXRlQ2xpcENvbnRlbnRSZXBhaW50UmVjdCgpOwo=
</data>
<flag name="review"
          id="177263"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="177259"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165340</attachid>
            <date>2012-09-24 03:21:21 -0700</date>
            <delta_ts>2012-09-24 03:26:07 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17371</size>
            <attacher name="Raul Hudea">rhudea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMGQ0NjFlLi4wYzE5OTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDkt
MjQgIFJhdWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIC13ZWJraXQtY2xp
cC1wYXRoIHNob3VsZCBwYXJzZSBJUklzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjM4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzIGZvciBTVkcgcmVmZXJlbmNlZCBjbGlwUGF0aCB3aXRoIGJv
dGggdHlwZXMgb2YgY2xpcFBhdGhVbml0czogInVzZXJTcGFjZU9uVXNlIiBhbmQgIm9iamVjdEJv
dW5kaW5nQm94Ii4KKworICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNl
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgt
cmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgt
aXJpLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5z
dmc6IEFkZGVkLgorCiAyMDEyLTA5LTIxICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBzYXZpbmcgSEFSIHdpdGgg
cmVzb3VyY2VzIGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9j
bGlwLXBhdGgtcmVmZXJlbmNlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tp
bmcvY2xpcC1wYXRoLXJlZmVyZW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjZjNzA3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGU+
CisjZCB7CisgIHdpZHRoOiAxODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7Cit9CisjY2xpcCB7CisgICAgd2lkdGg6IDMycHg7CisgICAgaGVpZ2h0OiAz
MnB4OworICAgIG1hcmdpbjogNzRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzdmcgaGVpZ2h0PSIwIj48L3N2Zz4KKzxkaXYg
aWQ9ImQiPjxkaXYgaWQ9ImNsaXAiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBh
dGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOGFiYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11
c2VyU3BhY2VPblVzZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGU+CisqIHtwYWRkaW5nOiAwOyBt
YXJnaW46IDB9CisjZCB7CisgIHdpZHRoOiAxODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgbWFyZ2lu
LXRvcDogMTA0cHg7Cit9CisjY2xpcC1yZWYgeworICAgIHdpZHRoOiAzMnB4OworICAgIGhlaWdo
dDogMzJweDsKKyAgICBtYXJnaW46IDc0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkIj48ZGl2IGlkPSJjbGlw
LXJlZiI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UtdXNl
clNwYWNlT25Vc2UuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcmVm
ZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjQ1NGM4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvbWFza2lu
Zy9jbGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzdHlsZT4KKyog
e3BhZGRpbmc6IDA7IG1hcmdpbjogMH0KKyNkIHsKKyAgd2lkdGg6IDE4MHB4OworICBoZWlnaHQ6
IDE4MHB4OworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworfQorI2NsaXAgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2MHB4Owor
ICAgIG1hcmdpbjogMTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAtd2Vi
a2l0LWNsaXAtcGF0aDogdXJsKCNjMik7Cit9CisjY2xpcC1yZWYgeworICAgIHdpZHRoOiAzMnB4
OworICAgIGhlaWdodDogMzJweDsKKyAgICBtYXJnaW46IDc0cHg7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3ZnIGhlaWdodD0i
MTAwIiB3aWR0aD0iMTAwIj4KKzxjbGlwUGF0aCBpZD0iYzIiIGNsaXBQYXRoVW5pdHM9InVzZXJT
cGFjZU9uVXNlIj4KKyAgPHJlY3QgeD0iNzUiIHk9IjE3OSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMy
Ii8+Cis8L2NsaXBQYXRoPgorPC9zdmc+Cis8ZGl2IGlkPSJkIj48ZGl2IGlkPSJjbGlwIj4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS5odG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWIzZjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlPgor
I2QgeworICB3aWR0aDogMTgwcHg7CisgIGhlaWdodDogMTgwcHg7CisgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworfQorI2NsaXAgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2
MHB4OworICAgIG1hcmdpbjogMTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAg
ICAtd2Via2l0LWNsaXAtcGF0aDogdXJsKCNjMSk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8c3ZnIGhlaWdodD0iMCI+CisgICAgPGNsaXBQYXRoIGlkPSJjMSIgY2xpcFBhdGhVbml0
cz0ib2JqZWN0Qm91bmRpbmdCb3giPgorICAgICAgICA8cmVjdCB4PSIwLjQiIHk9IjAuNCIgd2lk
dGg9IjAuMiIgaGVpZ2h0PSIwLjIiLz4KKyAgICA8L2NsaXBQYXRoPgorICA8L3N2Zz4KKzxkaXYg
aWQ9ImQiPjxkaXYgaWQ9ImNsaXAiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5n
LWNsaXAtcGF0aC1pcmktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3Bh
cnNpbmctY2xpcC1wYXRoLWlyaS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWY2ZmEyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1Rlc3Qgc29tZSBjbGlwLXBhdGggSVJJCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikg
aXMgInVybCgjY2xpcDEpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1
cmwoY2xpcC5zdmcjY2xpcDEpIikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikgaXMgInVybCgjY2xp
cDEpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoY2xpcC5z
dmcjY2xpcDEpIikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNiMWE0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2cHg7IH0K
K2RpdiB7IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBjbGlwLXBhdGggcmVmZXJlbmNlJyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVk
U3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBk
aXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRW
YWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVk
VmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5z
ZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0
eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRl
ZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIHNob3VsZEJlTnVsbCgnaW5uZXJTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknKTsKKyAgICBlbHNlCisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIs
ICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK3Rlc3RJbm5lcigiLXdlYmtpdC1j
bGlwLXBhdGgiLCAidXJsKCNjbGlwMSkiLCAidXJsKCNjbGlwMSkiKTsKK3Rlc3RJbm5lcigiLXdl
YmtpdC1jbGlwLXBhdGgiLCAidXJsKGNsaXAuc3ZnI2NsaXAxKSIsICJ1cmwoY2xpcC5zdmcjY2xp
cDEpIik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJsKCNjbGlwMSki
LCAidXJsKCNjbGlwMSkiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJs
KGNsaXAuc3ZnI2NsaXAxKSIsICJ1cmwoY2xpcC5zdmcjY2xpcDEpIik7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5zdmcgYi9MYXlvdXRUZXN0
cy9mYXN0L21hc2tpbmcvcmVzb3VyY2VzL2NsaXAuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBhMzk0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21hc2tpbmcvcmVzb3VyY2VzL2NsaXAuc3ZnCkBAIC0wLDAgKzEsNyBAQAorPHN2ZyBoZWlnaHQ9
IjAiPgorICAgIDxjbGlwUGF0aCBpZD0iY2xpcDEiIGNsaXBQYXRoVW5pdHM9Im9iamVjdEJvdW5k
aW5nQm94Ij4KKyAgICAgIDxjaXJjbGUgY3g9IjAuMjUiIGN5PSIwLjI1IiByPSIwLjI1IiBpZD0i
Y2lyY2xlIi8+CisgICAgPC9jbGlwUGF0aD4KKzwvc3ZnPgorCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZWYw
YzU1Li43MTI4NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDktMjQgIFJh
dWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIC13ZWJraXQtY2xpcC1wYXRo
IHNob3VsZCBwYXJzZSBJUklzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NjM4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudGVkIHRoZSBjbGlwcGluZyB2aWEgcmVmZXJlbmNpbmcgYSBTVkcg
Y2xpcFBhdGguIEN1cnJlbnRseSBpdCB3b3JrcyBvbmx5IGlmIHRoZSBjbGlwUGF0aCBpcyBkZWZp
bmVkCisgICAgICAgIGJlZm9yZSB1c2luZyBpdCBvbiBhbiBIVE1MIGVsZW1lbnQuIFRoZSBmb3J3
YXJkIHJlZmVyZW5jZSBpc3N1ZSBpcyB0cmFja2VkIHZpYSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTA0MDUuCisKKyAgICAgICAgVGVzdHM6IGNzczMvbWFza2luZy9j
bGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
bWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmkuaHRtbAorCisgICAgICAgICogY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBhZGQgaGFuZGxpbmcgZm9y
IFNWRyBjbGlwUGF0aCByZWZlcmVuY2VzCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBhZGQgaGFuZGxpbmcgZm9y
IFNWRyBjbGlwUGF0aCByZWZlcmVuY2VzCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOiBh
ZGQgaGFuZGxpbmcgZm9yIFNWRyByZWZlcmVuY2VzCisgICAgICAgICogcmVuZGVyaW5nL0NsaXBQ
YXRoT3BlcmF0aW9uLmg6CisgICAgICAgIChSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbik6IGFk
ZGVkIGEgbmV3IGNsYXNzIGNvcnJlc3BvbmRpbmcgdG8gU1ZHIHJlZmVyZW5jZWQgY2xpcFBhdGgK
KyAgICAgICAgKFdlYkNvcmU6OlJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246OnVybCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6ZnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246OlJlZmVyZW5jZUNs
aXBQYXRoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRM
YXllckNvbnRlbnRzKTogYWRkIGhhbmRsaW5nIGZvciBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlv
bgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmg6Cisg
ICAgICAgIChSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIpOiBtYWRlIGFwcGx5Q2xpcHBpbmdUb0Nv
bnRleHQgcHVibGljIGFzIGl0IG5lZWRzIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmb3IgSFRNTCBl
bGVtZW50cworCiAyMDEyLTA5LTI0ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtUZXh0RWRpdG9yXSBMaW5lIG51bWJlcnMg
b3V0IG9mIHN5bmMgYWZ0ZXIgY2xvc2luZyBicmVha3BvaW50IGNvbmRpdGlvbiBlZGl0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggZDEwZDczOC4uMDAyNGY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTgyLDYgKzgyLDEwIEBACiAjaW5jbHVk
ZSAiRGFzaGJvYXJkUmVnaW9uLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShTVkcpCisjaW5jbHVk
ZSAiV2ViS2l0Q1NTU1ZHRG9jdW1lbnRWYWx1ZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogLy8gTGlzdCBvZiBhbGwgcHJvcGVydGllcyB3ZSBrbm93IGhvdyB0byBjb21wdXRl
LCBvbWl0dGluZyBzaG9ydGhhbmRzLgpAQCAtMjQyMSw2ICsyNDI1LDEyIEBAIFBhc3NSZWZQdHI8
Q1NTVmFsdWU+IENTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbjo6Z2V0UHJvcGVydHlDU1NWYWx1
ZShDU1NQcm9wZXJ0CiAgICAgICAgICAgICBpZiAoQ2xpcFBhdGhPcGVyYXRpb24qIG9wZXJhdGlv
biA9IHN0eWxlLT5jbGlwUGF0aCgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKG9wZXJhdGlvbi0+
Z2V0T3BlcmF0aW9uVHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpTSEFQRSkKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIHZhbHVlRm9yQmFzaWNTaGFwZShzdGF0aWNfY2FzdDxTaGFwZUNs
aXBQYXRoT3BlcmF0aW9uKj4ob3BlcmF0aW9uKS0+YmFzaWNTaGFwZSgpKTsKKyNpZiBFTkFCTEUo
U1ZHKQorICAgICAgICAgICAgICAgIGVsc2UgaWYgKG9wZXJhdGlvbi0+Z2V0T3BlcmF0aW9uVHlw
ZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsKKyAgICAgICAgICAgICAgICAg
ICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qIHJlZmVyZW5jZU9wZXJhdGlvbiA9IHN0YXRp
Y19jYXN0PFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKj4ob3BlcmF0aW9uKTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUocmVmZXJlbmNlT3Bl
cmF0aW9uLT51cmwoKSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworICAgICAgICAgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIGNzc1ZhbHVl
UG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZU5vbmUpOwogI2lmIEVOQUJMRShD
U1NfUkVHSU9OUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZWZkOWJhZS4uMGZjZGU2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI3NjQsNiArMjc2NCwxMyBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYg
KHZhbHVlLT51bml0ID09IENTU1BhcnNlclZhbHVlOjpGdW5jdGlvbikKICAgICAgICAgICAgIHJl
dHVybiBwYXJzZUJhc2ljU2hhcGUocHJvcElkLCBpbXBvcnRhbnQpOworI2lmIEVOQUJMRShTVkcp
CisgICAgICAgIGVsc2UgaWYgKHZhbHVlLT51bml0ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
VVJJKSB7CisgICAgICAgICAgICBwYXJzZWRWYWx1ZSA9IENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVh
dGUodmFsdWUtPnN0cmluZywgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpOworICAgICAgICAg
ICAgYWRkUHJvcGVydHkocHJvcElkLCBwYXJzZWRWYWx1ZS5yZWxlYXNlKCksIGltcG9ydGFudCk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIGJy
ZWFrOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICBjYXNlIENTU1Byb3BlcnR5V2Vi
a2l0U2hhcGVJbnNpZGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWls
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDA5YzI3
YjcuLjNjZDhjM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0xNjk4LDYg
KzE2OTgsMTQgQEAgcHVibGljOgogICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZlVmFsdWUt
PmlzU2hhcGUoKSkgewogICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0
eWxlKCksIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZShiYXNpY1NoYXBlRm9yVmFsdWUo
c3R5bGVSZXNvbHZlciwgcHJpbWl0aXZlVmFsdWUtPmdldFNoYXBlVmFsdWUoKSkpKTsKICAgICAg
ICAgICAgIH0KKyNpZiBFTkFCTEUoU1ZHKQorICAgICAgICAgICAgZWxzZSBpZiAocHJpbWl0aXZl
VmFsdWUtPnByaW1pdGl2ZVR5cGUoKSA9PSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VSSSkgewor
ICAgICAgICAgICAgICAgIFN0cmluZyBjc3NVcmxWYWx1ZSA9IHByaW1pdGl2ZVZhbHVlLT5nZXRT
dHJpbmdWYWx1ZSgpOworICAgICAgICAgICAgICAgIEtVUkwgdXJsID0gc3R5bGVSZXNvbHZlci0+
ZG9jdW1lbnQoKS0+Y29tcGxldGVVUkwoY3NzVXJsVmFsdWUpOworICAgICAgICAgICAgICAgIC8v
IEZJWE1FOiBJdCBkb2Vzbid0IHdvcmsgd2l0aCBmb3J3YXJkIG9yIGV4dGVybmFsIFNWRyByZWZl
cmVuY2VzIChzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwNDA1
KQorICAgICAgICAgICAgICAgIHNldFZhbHVlKHN0eWxlUmVzb2x2ZXItPnN0eWxlKCksIFJlZmVy
ZW5jZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUoY3NzVXJsVmFsdWUsIHVybC5mcmFnbWVudElk
ZW50aWZpZXIoKSkpOworICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIH0KICAgICB9CiAg
ICAgc3RhdGljIFByb3BlcnR5SGFuZGxlciBjcmVhdGVIYW5kbGVyKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgKaW5kZXggYzQ2OWQ2ZC4uYTk2ZWI3ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0NsaXBQYXRoT3BlcmF0aW9uLmgKQEAgLTQy
LDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ2xpcFBhdGhPcGVyYXRpb24g
OiBwdWJsaWMgUmVmQ291bnRlZDxDbGlwUGF0aE9wZXJhdGlvbj4gewogcHVibGljOgogICAgIGVu
dW0gT3BlcmF0aW9uVHlwZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBBZGQgcmVmZXJlbmNpbmcgZm9y
IElSSSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTYzODEKKyAgICAg
ICAgUkVGRVJFTkNFLAogICAgICAgICBTSEFQRQogICAgIH07CiAKQEAgLTYzLDYgKzYzLDM1IEBA
IHByb3RlY3RlZDoKICAgICBPcGVyYXRpb25UeXBlIG1fdHlwZTsKIH07CiAKK2NsYXNzIFJlZmVy
ZW5jZUNsaXBQYXRoT3BlcmF0aW9uIDogcHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbj4gY3Jl
YXRlKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIGZyYWdtZW50KQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbih1cmws
IGZyYWdtZW50KSk7CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiB1cmwoKSBjb25zdCB7IHJl
dHVybiBtX3VybDsgfQorICAgIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQoKSBjb25zdCB7IHJldHVy
biBtX2ZyYWdtZW50OyB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCBib29sIG9wZXJhdG9yPT0o
Y29uc3QgQ2xpcFBhdGhPcGVyYXRpb24mIG8pIGNvbnN0CisgICAgeyAgICAgICAgaWYgKCFpc1Nh
bWVUeXBlKG8pKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBjb25zdCBSZWZl
cmVuY2VDbGlwUGF0aE9wZXJhdGlvbiogb3RoZXIgPSBzdGF0aWNfY2FzdDxjb25zdCBSZWZlcmVu
Y2VDbGlwUGF0aE9wZXJhdGlvbio+KCZvKTsKKyAgICAgICAgcmV0dXJuIG1fdXJsID09IG90aGVy
LT5tX3VybDsKKyAgICB9CisKKyAgICBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbihjb25zdCBT
dHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKKyAgICAgICAgOiBDbGlwUGF0aE9w
ZXJhdGlvbihSRUZFUkVOQ0UpCisgICAgICAgICwgbV91cmwodXJsKQorICAgICAgICAsIG1fZnJh
Z21lbnQoZnJhZ21lbnQpCisgICAgeworICAgIH0KKworICAgIFN0cmluZyBtX3VybDsKKyAgICBT
dHJpbmcgbV9mcmFnbWVudDsKK307CisKIGNsYXNzIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24gOiBw
dWJsaWMgQ2xpcFBhdGhPcGVyYXRpb24gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPEJhc2ljU2hhcGU+IHNo
YXBlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggNzU5ODYz
My4uZGQyNDlhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC04MCw2ICs4MCw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyTWFycXVlZS5oIgogI2luY2x1ZGUgIlJlbmRlclJlcGxpY2EuaCIKKyNpbmNsdWRlICJSZW5k
ZXJTVkdSZXNvdXJjZUNsaXBwZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTY3JvbGxiYXIuaCIKICNp
bmNsdWRlICJSZW5kZXJTY3JvbGxiYXJQYXJ0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIK
QEAgLTMxNDAsNiArMzE0MSwxNiBAQCB2b2lkIFJlbmRlckxheWVyOjpwYWludExheWVyQ29udGVu
dHMoUmVuZGVyTGF5ZXIqIHJvb3RMYXllciwgR3JhcGhpY3NDb250ZXh0KiBjbwogICAgICAgICAg
ICAgU2hhcGVDbGlwUGF0aE9wZXJhdGlvbiogY2xpcFBhdGggPSBzdGF0aWNfY2FzdDxTaGFwZUNs
aXBQYXRoT3BlcmF0aW9uKj4oc3R5bGUtPmNsaXBQYXRoKCkpOwogICAgICAgICAgICAgY29udGV4
dC0+Y2xpcFBhdGgoY2xpcFBhdGgtPnBhdGgoY2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgcm9v
dExheWVyLCAwKSksIGNsaXBQYXRoLT53aW5kUnVsZSgpKTsKICAgICAgICAgfQorI2lmIEVOQUJM
RShTVkcpCisgICAgICAgIGVsc2UgaWYgKHN0eWxlLT5jbGlwUGF0aCgpLT5nZXRPcGVyYXRpb25U
eXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgeworICAgICAgICAgICAgUmVm
ZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qIHJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uID0gc3Rh
dGljX2Nhc3Q8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qPihzdHlsZS0+Y2xpcFBhdGgoKSk7
CisgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSByZW5kZXJlcigpLT5kb2N1bWVudCgp
OworICAgICAgICAgICAgLy8gRklYTUU6IEl0IGRvZXNuJ3Qgd29yayB3aXRoIGZvcndhcmQgb3Ig
ZXh0ZXJuYWwgU1ZHIHJlZmVyZW5jZXMgKGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05MDQwNSkKKyAgICAgICAgICAgIEVsZW1lbnQqIGNsaXBQYXRoID0gZG9jdW1lbnQg
PyBkb2N1bWVudC0+Z2V0RWxlbWVudEJ5SWQocmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24tPmZy
YWdtZW50KCkpIDogMDsKKyAgICAgICAgICAgIGlmIChjbGlwUGF0aCAmJiBjbGlwUGF0aC0+cmVu
ZGVyZXIoKSAmJiBjbGlwUGF0aC0+cmVuZGVyZXIoKS0+aXNTVkdSZXNvdXJjZUNvbnRhaW5lcigp
KQorICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlcio+
KGNsaXBQYXRoLT5yZW5kZXJlcigpKS0+YXBwbHlDbGlwcGluZ1RvQ29udGV4dChyZW5kZXJlcigp
LCBjYWxjdWxhdGVMYXllckJvdW5kcyh0aGlzLCByb290TGF5ZXIsIDApLCBwYWludERpcnR5UmVj
dCwgY29udGV4dCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0KIAogI2lmIEVOQUJMRShDU1Nf
RklMVEVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jlc291cmNlQ2xpcHBlci5oCmluZGV4IGYyZjRiMDUuLjU5MTU3ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBw
ZXIuaApAQCAtNTIsNiArNTIsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVD
bGllbnRGcm9tQ2FjaGUoUmVuZGVyT2JqZWN0KiwgYm9vbCBtYXJrRm9ySW52YWxpZGF0aW9uID0g
dHJ1ZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlSZXNvdXJjZShSZW5kZXJPYmplY3QqLCBS
ZW5kZXJTdHlsZSosIEdyYXBoaWNzQ29udGV4dComLCB1bnNpZ25lZCBzaG9ydCByZXNvdXJjZU1v
ZGUpOworICAgIC8vIGNsaXBQYXRoIGNhbiBiZSBjbGlwcGVkIHRvbywgYnV0IGRvbid0IGhhdmUg
YSBib3VuZGluZ0JveCBvciByZXBhaW50UmVjdC4gU28gd2UgY2FuJ3QgY2FsbAorICAgIC8vIGFw
cGx5UmVzb3VyY2UgZGlyZWN0bHkgYW5kIHVzZSB0aGUgcmVjdHMgZnJvbSB0aGUgb2JqZWN0LCBz
aW5jZSB0aGV5IGFyZSBlbXB0eSBmb3IgUmVuZGVyU1ZHUmVzb3VyY2VzCisgICAgLy8gRklYTUU6
IFdlIG1hZGUgYXBwbHlDbGlwcGluZ1RvQ29udGV4dCBwdWJsaWMgYmVjYXVzZSB3ZSBjYW5ub3Qg
Y2FsbCBhcHBseVJlc291cmNlIG9uIEhUTUwgZWxlbWVudHMgKGl0IGFzc2VydHMgb24gUmVuZGVy
T2JqZWN0OjpvYmplY3RCb3VuZGluZ0JveCkKKyAgICBib29sIGFwcGx5Q2xpcHBpbmdUb0NvbnRl
eHQoUmVuZGVyT2JqZWN0KiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgR3Jh
cGhpY3NDb250ZXh0Kik7CiAgICAgdmlydHVhbCBGbG9hdFJlY3QgcmVzb3VyY2VCb3VuZGluZ0Jv
eChSZW5kZXJPYmplY3QqKTsKIAogICAgIHZpcnR1YWwgUmVuZGVyU1ZHUmVzb3VyY2VUeXBlIHJl
c291cmNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENsaXBwZXJSZXNvdXJjZVR5cGU7IH0KQEAgLTYy
LDkgKzY2LDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlbmRlclNWR1Jlc291cmNlVHlwZSBz
X3Jlc291cmNlVHlwZTsKIHByaXZhdGU6Ci0gICAgLy8gY2xpcFBhdGggY2FuIGJlIGNsaXBwZWQg
dG9vLCBidXQgZG9uJ3QgaGF2ZSBhIGJvdW5kaW5nQm94IG9yIHJlcGFpbnRSZWN0LiBTbyB3ZSBj
YW4ndCBjYWxsCi0gICAgLy8gYXBwbHlSZXNvdXJjZSBkaXJlY3RseSBhbmQgdXNlIHRoZSByZWN0
cyBmcm9tIHRoZSBvYmplY3QsIHNpbmNlIHRoZXkgYXJlIGVtcHR5IGZvciBSZW5kZXJTVkdSZXNv
dXJjZXMKLSAgICBib29sIGFwcGx5Q2xpcHBpbmdUb0NvbnRleHQoUmVuZGVyT2JqZWN0KiwgY29u
c3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgR3JhcGhpY3NDb250ZXh0Kik7CiAgICAg
Ym9vbCBwYXRoT25seUNsaXBwaW5nKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEFmZmluZVRyYW5z
Zm9ybSYsIGNvbnN0IEZsb2F0UmVjdCYpOwogICAgIGJvb2wgZHJhd0NvbnRlbnRJbnRvTWFza0lt
YWdlKENsaXBwZXJEYXRhKiwgY29uc3QgRmxvYXRSZWN0JiBvYmplY3RCb3VuZGluZ0JveCk7CiAg
ICAgdm9pZCBjYWxjdWxhdGVDbGlwQ29udGVudFJlcGFpbnRSZWN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165342</attachid>
            <date>2012-09-24 03:26:07 -0700</date>
            <delta_ts>2012-10-06 07:18:55 -0700</delta_ts>
            <desc>removed extra include</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>17150</size>
            <attacher name="Raul Hudea">rhudea</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMGQ0NjFlLi4wYzE5OTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMDkt
MjQgIFJhdWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIC13ZWJraXQtY2xp
cC1wYXRoIHNob3VsZCBwYXJzZSBJUklzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NjM4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzIGZvciBTVkcgcmVmZXJlbmNlZCBjbGlwUGF0aCB3aXRoIGJv
dGggdHlwZXMgb2YgY2xpcFBhdGhVbml0czogInVzZXJTcGFjZU9uVXNlIiBhbmQgIm9iamVjdEJv
dW5kaW5nQm94Ii4KKworICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNl
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgt
cmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmktZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgt
aXJpLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5z
dmc6IEFkZGVkLgorCiAyMDEyLTA5LTIxICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogc3VwcG9ydCBzYXZpbmcgSEFSIHdpdGgg
cmVzb3VyY2VzIGNvbnRlbnQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9j
bGlwLXBhdGgtcmVmZXJlbmNlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tp
bmcvY2xpcC1wYXRoLXJlZmVyZW5jZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjZjNzA3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEs
MjIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGU+
CisjZCB7CisgIHdpZHRoOiAxODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7Cit9CisjY2xpcCB7CisgICAgd2lkdGg6IDMycHg7CisgICAgaGVpZ2h0OiAz
MnB4OworICAgIG1hcmdpbjogNzRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzdmcgaGVpZ2h0PSIwIj48L3N2Zz4KKzxkaXYg
aWQ9ImQiPjxkaXYgaWQ9ImNsaXAiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBh
dGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9j
c3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjExOGFiYTAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS11
c2VyU3BhY2VPblVzZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWwgbGFuZz0iZW4iPgorPGhlYWQ+Cis8c3R5bGU+CisqIHtwYWRkaW5nOiAwOyBt
YXJnaW46IDB9CisjZCB7CisgIHdpZHRoOiAxODBweDsKKyAgaGVpZ2h0OiAxODBweDsKKyAgYm9y
ZGVyOiAxcHggc29saWQgYmxhY2s7CisgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgbWFyZ2lu
LXRvcDogMTA0cHg7Cit9CisjY2xpcC1yZWYgeworICAgIHdpZHRoOiAzMnB4OworICAgIGhlaWdo
dDogMzJweDsKKyAgICBtYXJnaW46IDc0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJkIj48ZGl2IGlkPSJjbGlw
LXJlZiI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UtdXNl
clNwYWNlT25Vc2UuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgtcmVm
ZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uMjQ1NGM4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvbWFza2lu
Zy9jbGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzdHlsZT4KKyog
e3BhZGRpbmc6IDA7IG1hcmdpbjogMH0KKyNkIHsKKyAgd2lkdGg6IDE4MHB4OworICBoZWlnaHQ6
IDE4MHB4OworICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKKyAgYmFja2dyb3VuZC1jb2xvcjog
cmVkOworfQorI2NsaXAgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2MHB4Owor
ICAgIG1hcmdpbjogMTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAgICAtd2Vi
a2l0LWNsaXAtcGF0aDogdXJsKCNjMik7Cit9CisjY2xpcC1yZWYgeworICAgIHdpZHRoOiAzMnB4
OworICAgIGhlaWdodDogMzJweDsKKyAgICBtYXJnaW46IDc0cHg7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8c3ZnIGhlaWdodD0i
MTAwIiB3aWR0aD0iMTAwIj4KKzxjbGlwUGF0aCBpZD0iYzIiIGNsaXBQYXRoVW5pdHM9InVzZXJT
cGFjZU9uVXNlIj4KKyAgPHJlY3QgeD0iNzUiIHk9IjE3OSIgd2lkdGg9IjMyIiBoZWlnaHQ9IjMy
Ii8+Cis8L2NsaXBQYXRoPgorPC9zdmc+Cis8ZGl2IGlkPSJkIj48ZGl2IGlkPSJjbGlwIj4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS5odG1sIGIvTGF5b3V0
VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi45NWIzZjJhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UuaHRtbApAQCAtMCwwICsxLDI3
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlPgor
I2QgeworICB3aWR0aDogMTgwcHg7CisgIGhlaWdodDogMTgwcHg7CisgIGJvcmRlcjogMXB4IHNv
bGlkIGJsYWNrOworfQorI2NsaXAgeworICAgIHdpZHRoOiAxNjBweDsKKyAgICBoZWlnaHQ6IDE2
MHB4OworICAgIG1hcmdpbjogMTBweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKKyAg
ICAtd2Via2l0LWNsaXAtcGF0aDogdXJsKCNjMSk7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJv
ZHk+Cis8c3ZnIGhlaWdodD0iMCI+CisgICAgPGNsaXBQYXRoIGlkPSJjMSIgY2xpcFBhdGhVbml0
cz0ib2JqZWN0Qm91bmRpbmdCb3giPgorICAgICAgICA8cmVjdCB4PSIwLjQiIHk9IjAuNCIgd2lk
dGg9IjAuMiIgaGVpZ2h0PSIwLjIiLz4KKyAgICA8L2NsaXBQYXRoPgorICA8L3N2Zz4KKzxkaXYg
aWQ9ImQiPjxkaXYgaWQ9ImNsaXAiPgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5n
LWNsaXAtcGF0aC1pcmktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5nL3Bh
cnNpbmctY2xpcC1wYXRoLWlyaS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZWY2ZmEyNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
bWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTMg
QEAKK1Rlc3Qgc29tZSBjbGlwLXBhdGggSVJJCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikg
aXMgInVybCgjY2xpcDEpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1
cmwoY2xpcC5zdmcjY2xpcDEpIikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIGNvbXB1
dGVkU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikgaXMgInVybCgjY2xp
cDEpIgorUEFTUyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoY2xpcC5z
dmcjY2xpcDEpIikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjNiMWE0ZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2cHg7IH0K
K2RpdiB7IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBjbGlwLXBhdGggcmVmZXJlbmNlJyk7CisKK2Z1bmN0aW9uIGNvbXB1dGVk
U3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImRpdiIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKKyAgICBk
aXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICB2YXIgY29tcHV0ZWRW
YWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsK
KyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7CisgICAgcmV0dXJuIGNvbXB1dGVk
VmFsdWU7Cit9CisKK2Z1bmN0aW9uIGlubmVyU3R5bGUocHJvcGVydHksIHZhbHVlKSB7CisgICAg
dmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIGRpdi5zdHlsZS5z
ZXRQcm9wZXJ0eShwcm9wZXJ0eSwgdmFsdWUpOworICAgIHJldHVybiBkaXYuc3R5bGUuZ2V0UHJv
cGVydHlWYWx1ZShwcm9wZXJ0eSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wdXRlZChwcm9wZXJ0
eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdjb21wdXRl
ZFN0eWxlKCInICsgcHJvcGVydHkgKyAnIiwgIicgKyB2YWx1ZSArICciKScsIGV4cGVjdGVkKTsK
K30KKworZnVuY3Rpb24gdGVzdElubmVyKHByb3BlcnR5LCB2YWx1ZSwgZXhwZWN0ZWQpIHsKKyAg
ICBpZiAoZXhwZWN0ZWQgPT09IG51bGwpCisgICAgICAgIHNob3VsZEJlTnVsbCgnaW5uZXJTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknKTsKKyAgICBlbHNlCisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnaW5uZXJTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIs
ICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisKK3Rlc3RJbm5lcigiLXdlYmtpdC1j
bGlwLXBhdGgiLCAidXJsKCNjbGlwMSkiLCAidXJsKCNjbGlwMSkiKTsKK3Rlc3RJbm5lcigiLXdl
YmtpdC1jbGlwLXBhdGgiLCAidXJsKGNsaXAuc3ZnI2NsaXAxKSIsICJ1cmwoY2xpcC5zdmcjY2xp
cDEpIik7CisKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJsKCNjbGlwMSki
LCAidXJsKCNjbGlwMSkiKTsKK3Rlc3RDb21wdXRlZCgiLXdlYmtpdC1jbGlwLXBhdGgiLCAidXJs
KGNsaXAuc3ZnI2NsaXAxKSIsICJ1cmwoY2xpcC5zdmcjY2xpcDEpIik7CisKKzwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9yZXNvdXJjZXMvY2xpcC5zdmcgYi9MYXlvdXRUZXN0
cy9mYXN0L21hc2tpbmcvcmVzb3VyY2VzL2NsaXAuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjBhMzk0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21hc2tpbmcvcmVzb3VyY2VzL2NsaXAuc3ZnCkBAIC0wLDAgKzEsNyBAQAorPHN2ZyBoZWlnaHQ9
IjAiPgorICAgIDxjbGlwUGF0aCBpZD0iY2xpcDEiIGNsaXBQYXRoVW5pdHM9Im9iamVjdEJvdW5k
aW5nQm94Ij4KKyAgICAgIDxjaXJjbGUgY3g9IjAuMjUiIGN5PSIwLjI1IiByPSIwLjI1IiBpZD0i
Y2lyY2xlIi8+CisgICAgPC9jbGlwUGF0aD4KKzwvc3ZnPgorCisKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwZWYw
YzU1Li43MTI4NDhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDktMjQgIFJh
dWwgSHVkZWEgIDxyaHVkZWFAYWRvYmUuY29tPgorCisgICAgICAgIC13ZWJraXQtY2xpcC1wYXRo
IHNob3VsZCBwYXJzZSBJUklzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NjM4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEltcGxlbWVudGVkIHRoZSBjbGlwcGluZyB2aWEgcmVmZXJlbmNpbmcgYSBTVkcg
Y2xpcFBhdGguIEN1cnJlbnRseSBpdCB3b3JrcyBvbmx5IGlmIHRoZSBjbGlwUGF0aCBpcyBkZWZp
bmVkCisgICAgICAgIGJlZm9yZSB1c2luZyBpdCBvbiBhbiBIVE1MIGVsZW1lbnQuIFRoZSBmb3J3
YXJkIHJlZmVyZW5jZSBpc3N1ZSBpcyB0cmFja2VkIHZpYSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTA0MDUuCisKKyAgICAgICAgVGVzdHM6IGNzczMvbWFza2luZy9j
bGlwLXBhdGgtcmVmZXJlbmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwKKyAgICAgICAgICAgICAgIGNz
czMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qv
bWFza2luZy9wYXJzaW5nLWNsaXAtcGF0aC1pcmkuaHRtbAorCisgICAgICAgICogY3NzL0NTU0Nv
bXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5Q1NTVmFsdWUpOiBhZGQgaGFuZGxpbmcgZm9y
IFNWRyBjbGlwUGF0aCByZWZlcmVuY2VzCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOiBhZGQgaGFuZGxpbmcgZm9y
IFNWRyBjbGlwUGF0aCByZWZlcmVuY2VzCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOiBh
ZGQgaGFuZGxpbmcgZm9yIFNWRyByZWZlcmVuY2VzCisgICAgICAgICogcmVuZGVyaW5nL0NsaXBQ
YXRoT3BlcmF0aW9uLmg6CisgICAgICAgIChSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbik6IGFk
ZGVkIGEgbmV3IGNsYXNzIGNvcnJlc3BvbmRpbmcgdG8gU1ZHIHJlZmVyZW5jZWQgY2xpcFBhdGgK
KyAgICAgICAgKFdlYkNvcmU6OlJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246OnVybCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6ZnJhZ21lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246Om9wZXJhdG9yPT0pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246OlJlZmVyZW5jZUNs
aXBQYXRoT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cGFpbnRM
YXllckNvbnRlbnRzKTogYWRkIGhhbmRsaW5nIGZvciBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlv
bgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmg6Cisg
ICAgICAgIChSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIpOiBtYWRlIGFwcGx5Q2xpcHBpbmdUb0Nv
bnRleHQgcHVibGljIGFzIGl0IG5lZWRzIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmb3IgSFRNTCBl
bGVtZW50cworCiAyMDEyLTA5LTI0ICBBbmRyZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtUZXh0RWRpdG9yXSBMaW5lIG51bWJlcnMg
b3V0IG9mIHN5bmMgYWZ0ZXIgY2xvc2luZyBicmVha3BvaW50IGNvbmRpdGlvbiBlZGl0b3IKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAK
aW5kZXggZDEwZDczOC4uMmY4YjQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTI0MjEsNiArMjQyMSwxMiBAQCBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb246OmdldFByb3BlcnR5
Q1NTVmFsdWUoQ1NTUHJvcGVydAogICAgICAgICAgICAgaWYgKENsaXBQYXRoT3BlcmF0aW9uKiBv
cGVyYXRpb24gPSBzdHlsZS0+Y2xpcFBhdGgoKSkgewogICAgICAgICAgICAgICAgIGlmIChvcGVy
YXRpb24tPmdldE9wZXJhdGlvblR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6U0hBUEUpCiAg
ICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZUZvckJhc2ljU2hhcGUoc3RhdGljX2Nhc3Q8
U2hhcGVDbGlwUGF0aE9wZXJhdGlvbio+KG9wZXJhdGlvbiktPmJhc2ljU2hhcGUoKSk7CisjaWYg
RU5BQkxFKFNWRykKKyAgICAgICAgICAgICAgICBlbHNlIGlmIChvcGVyYXRpb24tPmdldE9wZXJh
dGlvblR5cGUoKSA9PSBDbGlwUGF0aE9wZXJhdGlvbjo6UkVGRVJFTkNFKSB7CisgICAgICAgICAg
ICAgICAgICAgIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKiByZWZlcmVuY2VPcGVyYXRpb24g
PSBzdGF0aWNfY2FzdDxSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbio+KG9wZXJhdGlvbik7Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKHJlZmVy
ZW5jZU9wZXJhdGlvbi0+dXJsKCksIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKTsKKyAgICAg
ICAgICAgICAgICB9CisjZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBj
c3NWYWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUoQ1NTVmFsdWVOb25lKTsKICNpZiBF
TkFCTEUoQ1NTX1JFR0lPTlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGVmZDliYWUu
LjBmY2RlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yNzY0LDYgKzI3NjQsMTMg
QEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wg
aW1wb3J0YW50KQogICAgICAgICAgICAgdmFsaWRQcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBl
bHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQYXJzZXJWYWx1ZTo6RnVuY3Rpb24pCiAgICAgICAg
ICAgICByZXR1cm4gcGFyc2VCYXNpY1NoYXBlKHByb3BJZCwgaW1wb3J0YW50KTsKKyNpZiBFTkFC
TEUoU1ZHKQorICAgICAgICBlbHNlIGlmICh2YWx1ZS0+dW5pdCA9PSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTX1VSSSkgeworICAgICAgICAgICAgcGFyc2VkVmFsdWUgPSBDU1NQcmltaXRpdmVWYWx1
ZTo6Y3JlYXRlKHZhbHVlLT5zdHJpbmcsIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKTsKKyAg
ICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgcGFyc2VkVmFsdWUucmVsZWFzZSgpLCBpbXBv
cnRhbnQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyNlbmRpZgogICAg
ICAgICBicmVhazsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdFNoYXBlSW5zaWRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRl
eCAwOWMyN2I3Li4zY2Q4YzNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAt
MTY5OCw2ICsxNjk4LDE0IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGVsc2UgaWYgKHByaW1pdGl2
ZVZhbHVlLT5pc1NoYXBlKCkpIHsKICAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLCBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUoYmFzaWNTaGFwZUZv
clZhbHVlKHN0eWxlUmVzb2x2ZXIsIHByaW1pdGl2ZVZhbHVlLT5nZXRTaGFwZVZhbHVlKCkpKSk7
CiAgICAgICAgICAgICB9CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgIGVsc2UgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5wcmltaXRpdmVUeXBlKCkgPT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19V
UkkpIHsKKyAgICAgICAgICAgICAgICBTdHJpbmcgY3NzVXJsVmFsdWUgPSBwcmltaXRpdmVWYWx1
ZS0+Z2V0U3RyaW5nVmFsdWUoKTsKKyAgICAgICAgICAgICAgICBLVVJMIHVybCA9IHN0eWxlUmVz
b2x2ZXItPmRvY3VtZW50KCktPmNvbXBsZXRlVVJMKGNzc1VybFZhbHVlKTsKKyAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogSXQgZG9lc24ndCB3b3JrIHdpdGggZm9yd2FyZCBvciBleHRlcm5hbCBT
VkcgcmVmZXJlbmNlcyAoc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MDQwNSkKKyAgICAgICAgICAgICAgICBzZXRWYWx1ZShzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LCBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKGNzc1VybFZhbHVlLCB1cmwuZnJh
Z21lbnRJZGVudGlmaWVyKCkpKTsKKyAgICAgICAgICAgIH0KKyNlbmRpZgogICAgICAgICB9CiAg
ICAgfQogICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5oCmluZGV4IGM0NjlkNmQuLmE5
NmViN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9DbGlwUGF0aE9wZXJhdGlvbi5o
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENsaXBQYXRoT3Bl
cmF0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8Q2xpcFBhdGhPcGVyYXRpb24+IHsKIHB1YmxpYzoK
ICAgICBlbnVtIE9wZXJhdGlvblR5cGUgewotICAgICAgICAvLyBGSVhNRTogQWRkIHJlZmVyZW5j
aW5nIGZvciBJUkkgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2Mzgx
CisgICAgICAgIFJFRkVSRU5DRSwKICAgICAgICAgU0hBUEUKICAgICB9OwogCkBAIC02Myw2ICs2
MywzNSBAQCBwcm90ZWN0ZWQ6CiAgICAgT3BlcmF0aW9uVHlwZSBtX3R5cGU7CiB9OwogCitjbGFz
cyBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiA6IHB1YmxpYyBDbGlwUGF0aE9wZXJhdGlvbiB7
CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRp
b24+IGNyZWF0ZShjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBmcmFnbWVudCkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRp
b24odXJsLCBmcmFnbWVudCkpOworICAgIH0KKworICAgIGNvbnN0IFN0cmluZyYgdXJsKCkgY29u
c3QgeyByZXR1cm4gbV91cmw7IH0KKyAgICBjb25zdCBTdHJpbmcmIGZyYWdtZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9mcmFnbWVudDsgfQorCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBvcGVy
YXRvcj09KGNvbnN0IENsaXBQYXRoT3BlcmF0aW9uJiBvKSBjb25zdAorICAgIHsgICAgICAgIGlm
ICghaXNTYW1lVHlwZShvKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29u
c3QgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3Qg
UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qPigmbyk7CisgICAgICAgIHJldHVybiBtX3VybCA9
PSBvdGhlci0+bV91cmw7CisgICAgfQorCisgICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24o
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQpCisgICAgICAgIDogQ2xp
cFBhdGhPcGVyYXRpb24oUkVGRVJFTkNFKQorICAgICAgICAsIG1fdXJsKHVybCkKKyAgICAgICAg
LCBtX2ZyYWdtZW50KGZyYWdtZW50KQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV91cmw7
CisgICAgU3RyaW5nIG1fZnJhZ21lbnQ7Cit9OworCiBjbGFzcyBTaGFwZUNsaXBQYXRoT3BlcmF0
aW9uIDogcHVibGljIENsaXBQYXRoT3BlcmF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxTaGFwZUNsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxCYXNpY1No
YXBlPiBzaGFwZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4
IDc1OTg2MzMuLmRkMjQ5YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcApAQCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1
ZGUgIlJlbmRlck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmgiCisjaW5jbHVk
ZSAiUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCkBAIC0zMTQwLDYgKzMxNDEsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXll
ckNvbnRlbnRzKFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogY28KICAg
ICAgICAgICAgIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24qIGNsaXBQYXRoID0gc3RhdGljX2Nhc3Q8
U2hhcGVDbGlwUGF0aE9wZXJhdGlvbio+KHN0eWxlLT5jbGlwUGF0aCgpKTsKICAgICAgICAgICAg
IGNvbnRleHQtPmNsaXBQYXRoKGNsaXBQYXRoLT5wYXRoKGNhbGN1bGF0ZUxheWVyQm91bmRzKHRo
aXMsIHJvb3RMYXllciwgMCkpLCBjbGlwUGF0aC0+d2luZFJ1bGUoKSk7CiAgICAgICAgIH0KKyNp
ZiBFTkFCTEUoU1ZHKQorICAgICAgICBlbHNlIGlmIChzdHlsZS0+Y2xpcFBhdGgoKS0+Z2V0T3Bl
cmF0aW9uVHlwZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsKKyAgICAgICAg
ICAgIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKiByZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlv
biA9IHN0YXRpY19jYXN0PFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKj4oc3R5bGUtPmNsaXBQ
YXRoKCkpOworICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+ZG9j
dW1lbnQoKTsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJdCBkb2Vzbid0IHdvcmsgd2l0aCBmb3J3
YXJkIG9yIGV4dGVybmFsIFNWRyByZWZlcmVuY2VzIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTA0MDUpCisgICAgICAgICAgICBFbGVtZW50KiBjbGlwUGF0aCA9IGRv
Y3VtZW50ID8gZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKHJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0
aW9uLT5mcmFnbWVudCgpKSA6IDA7CisgICAgICAgICAgICBpZiAoY2xpcFBhdGggJiYgY2xpcFBh
dGgtPnJlbmRlcmVyKCkgJiYgY2xpcFBhdGgtPnJlbmRlcmVyKCktPmlzU1ZHUmVzb3VyY2VDb250
YWluZXIoKSkKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZUNs
aXBwZXIqPihjbGlwUGF0aC0+cmVuZGVyZXIoKSktPmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQocmVu
ZGVyZXIoKSwgY2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgcm9vdExheWVyLCAwKSwgcGFpbnRE
aXJ0eVJlY3QsIGNvbnRleHQpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICNpZiBFTkFC
TEUoQ1NTX0ZJTFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3Zn
L1JlbmRlclNWR1Jlc291cmNlQ2xpcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIuaAppbmRleCBmMmY0YjA1Li41OTE1N2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xp
cHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VDbGlwcGVyLmgKQEAgLTUyLDYgKzUyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQ2xpZW50RnJvbUNhY2hlKFJlbmRlck9iamVjdCosIGJvb2wgbWFya0ZvckludmFsaWRh
dGlvbiA9IHRydWUpOwogCiAgICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyT2Jq
ZWN0KiwgUmVuZGVyU3R5bGUqLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVz
b3VyY2VNb2RlKTsKKyAgICAvLyBjbGlwUGF0aCBjYW4gYmUgY2xpcHBlZCB0b28sIGJ1dCBkb24n
dCBoYXZlIGEgYm91bmRpbmdCb3ggb3IgcmVwYWludFJlY3QuIFNvIHdlIGNhbid0IGNhbGwKKyAg
ICAvLyBhcHBseVJlc291cmNlIGRpcmVjdGx5IGFuZCB1c2UgdGhlIHJlY3RzIGZyb20gdGhlIG9i
amVjdCwgc2luY2UgdGhleSBhcmUgZW1wdHkgZm9yIFJlbmRlclNWR1Jlc291cmNlcworICAgIC8v
IEZJWE1FOiBXZSBtYWRlIGFwcGx5Q2xpcHBpbmdUb0NvbnRleHQgcHVibGljIGJlY2F1c2Ugd2Ug
Y2Fubm90IGNhbGwgYXBwbHlSZXNvdXJjZSBvbiBIVE1MIGVsZW1lbnRzIChpdCBhc3NlcnRzIG9u
IFJlbmRlck9iamVjdDo6b2JqZWN0Qm91bmRpbmdCb3gpCisgICAgYm9vbCBhcHBseUNsaXBwaW5n
VG9Db250ZXh0KFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVj
dCYsIEdyYXBoaWNzQ29udGV4dCopOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91
bmRpbmdCb3goUmVuZGVyT2JqZWN0Kik7CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNl
VHlwZSByZXNvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBDbGlwcGVyUmVzb3VyY2VUeXBlOyB9
CkBAIC02Miw5ICs2Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZW5kZXJTVkdSZXNvdXJj
ZVR5cGUgc19yZXNvdXJjZVR5cGU7CiBwcml2YXRlOgotICAgIC8vIGNsaXBQYXRoIGNhbiBiZSBj
bGlwcGVkIHRvbywgYnV0IGRvbid0IGhhdmUgYSBib3VuZGluZ0JveCBvciByZXBhaW50UmVjdC4g
U28gd2UgY2FuJ3QgY2FsbAotICAgIC8vIGFwcGx5UmVzb3VyY2UgZGlyZWN0bHkgYW5kIHVzZSB0
aGUgcmVjdHMgZnJvbSB0aGUgb2JqZWN0LCBzaW5jZSB0aGV5IGFyZSBlbXB0eSBmb3IgUmVuZGVy
U1ZHUmVzb3VyY2VzCi0gICAgYm9vbCBhcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRlck9iamVj
dCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzQ29udGV4dCop
OwogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGRyYXdDb250ZW50SW50
b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdC
b3gpOwogICAgIHZvaWQgY2FsY3VsYXRlQ2xpcENvbnRlbnRSZXBhaW50UmVjdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167456</attachid>
            <date>2012-10-06 07:19:03 -0700</date>
            <delta_ts>2013-05-18 16:13:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96381-20121006071810.patch</filename>
            <type>text/plain</type>
            <size>18496</size>
            <attacher name="Dirk Schulze">krit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzRkYzU1NzZjYWYxODQy
YjNlNTI3MWRlN2YxZTk1MTdhY2Y2YTkwNi4uZWEyMTliN2FkNDcwYjI0YTExN2E3OGZmOGIyODVh
ZGQxZjFmYmE3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTEwLTA2ICBSYXVs
IEh1ZGVhICA8cmh1ZGVhQGFkb2JlLmNvbT4KKworICAgICAgICAtd2Via2l0LWNsaXAtcGF0aCBz
aG91bGQgcGFyc2UgSVJJcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTYzODEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnRlZCB0aGUgY2xpcHBpbmcgdmlhIHJlZmVyZW5jaW5nIGEgU1ZHIGNs
aXBQYXRoLiBDdXJyZW50bHkgaXQgd29ya3Mgb25seSBpZiB0aGUgY2xpcFBhdGggaXMgZGVmaW5l
ZAorICAgICAgICBiZWZvcmUgdXNpbmcgaXQgb24gYW4gSFRNTCBlbGVtZW50LiBUaGUgZm9yd2Fy
ZCByZWZlcmVuY2UgaXNzdWUgaXMgdHJhY2tlZCB2aWEgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkwNDA1LgorCisgICAgICAgIFRlc3RzOiBjc3MzL21hc2tpbmcvY2xp
cC1wYXRoLXJlZmVyZW5jZS11c2VyU3BhY2VPblVzZS5odG1sCisgICAgICAgICAgICAgICBjc3Mz
L21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS5odG1sCisgICAgICAgICAgICAgICBmYXN0L21h
c2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NDb21w
dXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uOjpnZXRQcm9wZXJ0eUNTU1ZhbHVlKTogQWRkIGhhbmRsaW5nIGZvciBT
VkcgY2xpcFBhdGggcmVmZXJlbmNlcy4KKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6IEFkZCBoYW5kbGluZyBmb3Ig
U1ZHIGNsaXBQYXRoIHJlZmVyZW5jZXMuCisgICAgICAgICogY3NzL1N0eWxlQnVpbGRlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5Q2xpcFBhdGg6OmFwcGx5VmFsdWUpOiBB
ZGQgaGFuZGxpbmcgZm9yIFNWRyByZWZlcmVuY2VzLgorICAgICAgICAqIHJlbmRlcmluZy9DbGlw
UGF0aE9wZXJhdGlvbi5oOgorICAgICAgICAoUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24pOiBB
ZGRlZCBhIG5ldyBjbGFzcyBjb3JyZXNwb25kaW5nIHRvIFNWRyByZWZlcmVuY2VkIGNsaXBQYXRo
LgorICAgICAgICAoV2ViQ29yZTo6UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6dXJsKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uOjpmcmFnbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6b3BlcmF0b3I9PSk6
CisgICAgICAgIChXZWJDb3JlOjpSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbjo6UmVmZXJlbmNl
Q2xpcFBhdGhPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWlu
dExheWVyQ29udGVudHMpOiBBZGQgaGFuZGxpbmcgZm9yIFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VDbGlwcGVyLmg6
CisgICAgICAgIChSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIpOiBNYWRlIGFwcGx5Q2xpcHBpbmdU
b0NvbnRleHQgcHVibGljIGFzIGl0IG5lZWRzIHRvIGJlIGNhbGxlZCBkaXJlY3RseSBmb3IgSFRN
TCBlbGVtZW50cy4KKwogMjAxMi0xMC0wNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEZvcm0gY29udHJvbHMgc2hvdWxkIGFsd2F5cyBiZSBob3Jpem9udGFsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3Bw
CmluZGV4IDFiYTZjODgyNDJjYWNkZjk3NGIzZDBkMWZiMmZkMGUxODVkZjc1NmEuLmRhMGQ0MzY5
ZjExOGFiNzU3MzViN2ZjMGQ4ODYxODc2YzRmYmZhNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwCkBAIC0yNDY4LDYgKzI0Njgs
MTIgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uOjpn
ZXRQcm9wZXJ0eUNTU1ZhbHVlKENTU1Byb3BlcnQKICAgICAgICAgICAgIGlmIChDbGlwUGF0aE9w
ZXJhdGlvbiogb3BlcmF0aW9uID0gc3R5bGUtPmNsaXBQYXRoKCkpIHsKICAgICAgICAgICAgICAg
ICBpZiAob3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246
OlNIQVBFKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWVGb3JCYXNpY1NoYXBlKHN0
YXRpY19jYXN0PFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24qPihvcGVyYXRpb24pLT5iYXNpY1NoYXBl
KCkpOworI2lmIEVOQUJMRShTVkcpCisgICAgICAgICAgICAgICAgZWxzZSBpZiAob3BlcmF0aW9u
LT5nZXRPcGVyYXRpb25UeXBlKCkgPT0gQ2xpcFBhdGhPcGVyYXRpb246OlJFRkVSRU5DRSkgewor
ICAgICAgICAgICAgICAgICAgICBSZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiogcmVmZXJlbmNl
T3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8UmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24qPihvcGVy
YXRpb24pOworICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1NTUHJpbWl0aXZlVmFsdWU6OmNy
ZWF0ZShyZWZlcmVuY2VPcGVyYXRpb24tPnVybCgpLCBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX1VS
SSk7CisgICAgICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICByZXR1cm4gY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlTm9u
ZSk7CiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRl
eCBkMzU0YzRkYTA0MzFiZDFmZTY2NzYzOWIzNzIxMTc5NzNmMDM4ZWYwLi5mYjBmYWQyYjRhMWMy
ODExOWQxMjExNzRiNGQ5OTgwYTUzNjRiMDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApA
QCAtMjc2NSw2ICsyNzY1LDEzIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIHZhbGlkUHJpbWl0aXZl
ID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQgPT0gQ1NTUGFyc2VyVmFsdWU6
OkZ1bmN0aW9uKQogICAgICAgICAgICAgcmV0dXJuIHBhcnNlQmFzaWNTaGFwZShwcm9wSWQsIGlt
cG9ydGFudCk7CisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgZWxzZSBpZiAodmFsdWUtPnVuaXQg
PT0gQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19VUkkpIHsKKyAgICAgICAgICAgIHBhcnNlZFZhbHVl
ID0gQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0ZSh2YWx1ZS0+c3RyaW5nLCBDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTX1VSSSk7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIHBhcnNlZFZh
bHVlLnJlbGVhc2UoKSwgaW1wb3J0YW50KTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRTaGFwZUluc2lkZToKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlQnVpbGRlci5jcHAKaW5kZXggYmQwODU3MDA4YWUwNmMwMjNkNTAxNzc5ZTJkNDgyNjAzY2Q5
NDVkMS4uMjE2ZmNlNmZiZWQ0N2ZiMDI3NDQwNzM5OWQzNWNiZjkwZTBiMmQ2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE2OTgsNiArMTY5OCwxNCBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+aXNTaGFwZSgpKSB7CiAgICAgICAg
ICAgICAgICAgc2V0VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgU2hhcGVDbGlwUGF0aE9w
ZXJhdGlvbjo6Y3JlYXRlKGJhc2ljU2hhcGVGb3JWYWx1ZShzdHlsZVJlc29sdmVyLCBwcmltaXRp
dmVWYWx1ZS0+Z2V0U2hhcGVWYWx1ZSgpKSkpOwogICAgICAgICAgICAgfQorI2lmIEVOQUJMRShT
VkcpCisgICAgICAgICAgICBlbHNlIGlmIChwcmltaXRpdmVWYWx1ZS0+cHJpbWl0aXZlVHlwZSgp
ID09IENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfVVJJKSB7CisgICAgICAgICAgICAgICAgU3RyaW5n
IGNzc1VybFZhbHVlID0gcHJpbWl0aXZlVmFsdWUtPmdldFN0cmluZ1ZhbHVlKCk7CisgICAgICAg
ICAgICAgICAgS1VSTCB1cmwgPSBzdHlsZVJlc29sdmVyLT5kb2N1bWVudCgpLT5jb21wbGV0ZVVS
TChjc3NVcmxWYWx1ZSk7CisgICAgICAgICAgICAgICAgLy8gRklYTUU6IEl0IGRvZXNuJ3Qgd29y
ayB3aXRoIGZvcndhcmQgb3IgZXh0ZXJuYWwgU1ZHIHJlZmVyZW5jZXMgKHNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTA0MDUpCisgICAgICAgICAgICAgICAgc2V0
VmFsdWUoc3R5bGVSZXNvbHZlci0+c3R5bGUoKSwgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb246
OmNyZWF0ZShjc3NVcmxWYWx1ZSwgdXJsLmZyYWdtZW50SWRlbnRpZmllcigpKSk7CisgICAgICAg
ICAgICB9CisjZW5kaWYKICAgICAgICAgfQogICAgIH0KICAgICBzdGF0aWMgUHJvcGVydHlIYW5k
bGVyIGNyZWF0ZUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0NsaXBQYXRoT3BlcmF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhP
cGVyYXRpb24uaAppbmRleCBjNDY5ZDZkZjgzODRmMmQ2YTIwYmM2YTVjMGJlZWQxNmQzOWYzNWEz
Li5hMWY3N2UyNDNhNjc2ZWI5YmQyMDIwODM4ZWI0ZjhkY2M2OTNjMjA3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvQ2xpcFBhdGhPcGVyYXRpb24uaApAQCAtNDIsNyArNDIsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDbGlwUGF0aE9wZXJhdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPENsaXBQYXRoT3BlcmF0aW9uPiB7CiBwdWJsaWM6CiAgICAgZW51bSBPcGVyYXRpb25U
eXBlIHsKLSAgICAgICAgLy8gRklYTUU6IEFkZCByZWZlcmVuY2luZyBmb3IgSVJJIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjM4MQorICAgICAgICBSRUZFUkVOQ0Us
CiAgICAgICAgIFNIQVBFCiAgICAgfTsKIApAQCAtNjMsNiArNjMsMzYgQEAgcHJvdGVjdGVkOgog
ICAgIE9wZXJhdGlvblR5cGUgbV90eXBlOwogfTsKIAorY2xhc3MgUmVmZXJlbmNlQ2xpcFBhdGhP
cGVyYXRpb24gOiBwdWJsaWMgQ2xpcFBhdGhPcGVyYXRpb24geworcHVibGljOgorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uPiBjcmVhdGUoY29uc3QgU3Ry
aW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgZnJhZ21lbnQpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKHVybCwgZnJhZ21lbnQpKTsK
KyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIHVybCgpIGNvbnN0IHsgcmV0dXJuIG1fdXJsOyB9
CisgICAgY29uc3QgU3RyaW5nJiBmcmFnbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhZ21lbnQ7
IH0KKworcHJpdmF0ZToKKyAgICB2aXJ0dWFsIGJvb2wgb3BlcmF0b3I9PShjb25zdCBDbGlwUGF0
aE9wZXJhdGlvbiYgbykgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghaXNTYW1lVHlwZShvKSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgY29uc3QgUmVmZXJlbmNlQ2xpcFBh
dGhPcGVyYXRpb24qIG90aGVyID0gc3RhdGljX2Nhc3Q8Y29uc3QgUmVmZXJlbmNlQ2xpcFBhdGhP
cGVyYXRpb24qPigmbyk7CisgICAgICAgIHJldHVybiBtX3VybCA9PSBvdGhlci0+bV91cmw7Cisg
ICAgfQorCisgICAgUmVmZXJlbmNlQ2xpcFBhdGhPcGVyYXRpb24oY29uc3QgU3RyaW5nJiB1cmws
IGNvbnN0IFN0cmluZyYgZnJhZ21lbnQpCisgICAgICAgIDogQ2xpcFBhdGhPcGVyYXRpb24oUkVG
RVJFTkNFKQorICAgICAgICAsIG1fdXJsKHVybCkKKyAgICAgICAgLCBtX2ZyYWdtZW50KGZyYWdt
ZW50KQorICAgIHsKKyAgICB9CisKKyAgICBTdHJpbmcgbV91cmw7CisgICAgU3RyaW5nIG1fZnJh
Z21lbnQ7Cit9OworCiBjbGFzcyBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uIDogcHVibGljIENsaXBQ
YXRoT3BlcmF0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFwZUNsaXBQ
YXRoT3BlcmF0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxCYXNpY1NoYXBlPiBzaGFwZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDc2YzQ1ZDJlOTcxNWE1NDdm
YjI0N2ZmZGI1NDk5MDk5Y2JkMjA5MzQuLjRiMDk2M2FiYzc5OTkwYTJiMzFlMmY3ZmEzYWMyMmVl
ZmRiMTcxNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAt
ODAsNiArODAsNyBAQAogI2luY2x1ZGUgIlJlbmRlcklubGluZS5oIgogI2luY2x1ZGUgIlJlbmRl
ck1hcnF1ZWUuaCIKICNpbmNsdWRlICJSZW5kZXJSZXBsaWNhLmgiCisjaW5jbHVkZSAiUmVuZGVy
U1ZHUmVzb3VyY2VDbGlwcGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2Nyb2xsYmFyLmgiCiAjaW5j
bHVkZSAiUmVuZGVyU2Nyb2xsYmFyUGFydC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBA
IC0zMTM5LDYgKzMxNDAsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMYXllckNvbnRlbnRz
KFJlbmRlckxheWVyKiByb290TGF5ZXIsIEdyYXBoaWNzQ29udGV4dCogY28KICAgICAgICAgICAg
IFNoYXBlQ2xpcFBhdGhPcGVyYXRpb24qIGNsaXBQYXRoID0gc3RhdGljX2Nhc3Q8U2hhcGVDbGlw
UGF0aE9wZXJhdGlvbio+KHN0eWxlLT5jbGlwUGF0aCgpKTsKICAgICAgICAgICAgIGNvbnRleHQt
PmNsaXBQYXRoKGNsaXBQYXRoLT5wYXRoKGNhbGN1bGF0ZUxheWVyQm91bmRzKHRoaXMsIHJvb3RM
YXllciwgMCkpLCBjbGlwUGF0aC0+d2luZFJ1bGUoKSk7CiAgICAgICAgIH0KKyNpZiBFTkFCTEUo
U1ZHKQorICAgICAgICBlbHNlIGlmIChzdHlsZS0+Y2xpcFBhdGgoKS0+Z2V0T3BlcmF0aW9uVHlw
ZSgpID09IENsaXBQYXRoT3BlcmF0aW9uOjpSRUZFUkVOQ0UpIHsKKyAgICAgICAgICAgIFJlZmVy
ZW5jZUNsaXBQYXRoT3BlcmF0aW9uKiByZWZlcmVuY2VDbGlwUGF0aE9wZXJhdGlvbiA9IHN0YXRp
Y19jYXN0PFJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uKj4oc3R5bGUtPmNsaXBQYXRoKCkpOwor
ICAgICAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gcmVuZGVyZXIoKS0+ZG9jdW1lbnQoKTsK
KyAgICAgICAgICAgIC8vIEZJWE1FOiBJdCBkb2Vzbid0IHdvcmsgd2l0aCBmb3J3YXJkIG9yIGV4
dGVybmFsIFNWRyByZWZlcmVuY2VzIChodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTA0MDUpCisgICAgICAgICAgICBFbGVtZW50KiBjbGlwUGF0aCA9IGRvY3VtZW50ID8g
ZG9jdW1lbnQtPmdldEVsZW1lbnRCeUlkKHJlZmVyZW5jZUNsaXBQYXRoT3BlcmF0aW9uLT5mcmFn
bWVudCgpKSA6IDA7CisgICAgICAgICAgICBpZiAoY2xpcFBhdGggJiYgY2xpcFBhdGgtPnJlbmRl
cmVyKCkgJiYgY2xpcFBhdGgtPnJlbmRlcmVyKCktPmlzU1ZHUmVzb3VyY2VDb250YWluZXIoKSkK
KyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdSZXNvdXJjZUNsaXBwZXIqPihj
bGlwUGF0aC0+cmVuZGVyZXIoKSktPmFwcGx5Q2xpcHBpbmdUb0NvbnRleHQocmVuZGVyZXIoKSwg
Y2FsY3VsYXRlTGF5ZXJCb3VuZHModGhpcywgcm9vdExheWVyLCAwKSwgcGFpbnREaXJ0eVJlY3Qs
IGNvbnRleHQpOworICAgICAgICB9CisjZW5kaWYKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJ
TFRFUlMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlQ2xpcHBlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdSZXNvdXJjZUNsaXBwZXIuaAppbmRleCBmMmY0YjA1NDNhMzMwMTY5NjMwMGQyNzFlYTcwZWQ5
MTAzMTQ4ZTYyLi41OTE1N2ZhNDYwMGEzMjVjZmVhYWQxNGMyZDc5OTMzODE2NmRhY2Q5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlQ2xp
cHBlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3Vy
Y2VDbGlwcGVyLmgKQEAgLTUyLDYgKzUyLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlQ2xpZW50RnJvbUNhY2hlKFJlbmRlck9iamVjdCosIGJvb2wgbWFya0ZvckludmFsaWRh
dGlvbiA9IHRydWUpOwogCiAgICAgdmlydHVhbCBib29sIGFwcGx5UmVzb3VyY2UoUmVuZGVyT2Jq
ZWN0KiwgUmVuZGVyU3R5bGUqLCBHcmFwaGljc0NvbnRleHQqJiwgdW5zaWduZWQgc2hvcnQgcmVz
b3VyY2VNb2RlKTsKKyAgICAvLyBjbGlwUGF0aCBjYW4gYmUgY2xpcHBlZCB0b28sIGJ1dCBkb24n
dCBoYXZlIGEgYm91bmRpbmdCb3ggb3IgcmVwYWludFJlY3QuIFNvIHdlIGNhbid0IGNhbGwKKyAg
ICAvLyBhcHBseVJlc291cmNlIGRpcmVjdGx5IGFuZCB1c2UgdGhlIHJlY3RzIGZyb20gdGhlIG9i
amVjdCwgc2luY2UgdGhleSBhcmUgZW1wdHkgZm9yIFJlbmRlclNWR1Jlc291cmNlcworICAgIC8v
IEZJWE1FOiBXZSBtYWRlIGFwcGx5Q2xpcHBpbmdUb0NvbnRleHQgcHVibGljIGJlY2F1c2Ugd2Ug
Y2Fubm90IGNhbGwgYXBwbHlSZXNvdXJjZSBvbiBIVE1MIGVsZW1lbnRzIChpdCBhc3NlcnRzIG9u
IFJlbmRlck9iamVjdDo6b2JqZWN0Qm91bmRpbmdCb3gpCisgICAgYm9vbCBhcHBseUNsaXBwaW5n
VG9Db250ZXh0KFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVj
dCYsIEdyYXBoaWNzQ29udGV4dCopOwogICAgIHZpcnR1YWwgRmxvYXRSZWN0IHJlc291cmNlQm91
bmRpbmdCb3goUmVuZGVyT2JqZWN0Kik7CiAKICAgICB2aXJ0dWFsIFJlbmRlclNWR1Jlc291cmNl
VHlwZSByZXNvdXJjZVR5cGUoKSBjb25zdCB7IHJldHVybiBDbGlwcGVyUmVzb3VyY2VUeXBlOyB9
CkBAIC02Miw5ICs2Niw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZW5kZXJTVkdSZXNvdXJj
ZVR5cGUgc19yZXNvdXJjZVR5cGU7CiBwcml2YXRlOgotICAgIC8vIGNsaXBQYXRoIGNhbiBiZSBj
bGlwcGVkIHRvbywgYnV0IGRvbid0IGhhdmUgYSBib3VuZGluZ0JveCBvciByZXBhaW50UmVjdC4g
U28gd2UgY2FuJ3QgY2FsbAotICAgIC8vIGFwcGx5UmVzb3VyY2UgZGlyZWN0bHkgYW5kIHVzZSB0
aGUgcmVjdHMgZnJvbSB0aGUgb2JqZWN0LCBzaW5jZSB0aGV5IGFyZSBlbXB0eSBmb3IgUmVuZGVy
U1ZHUmVzb3VyY2VzCi0gICAgYm9vbCBhcHBseUNsaXBwaW5nVG9Db250ZXh0KFJlbmRlck9iamVj
dCosIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIEdyYXBoaWNzQ29udGV4dCop
OwogICAgIGJvb2wgcGF0aE9ubHlDbGlwcGluZyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBBZmZp
bmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFJlY3QmKTsKICAgICBib29sIGRyYXdDb250ZW50SW50
b01hc2tJbWFnZShDbGlwcGVyRGF0YSosIGNvbnN0IEZsb2F0UmVjdCYgb2JqZWN0Qm91bmRpbmdC
b3gpOwogICAgIHZvaWQgY2FsY3VsYXRlQ2xpcENvbnRlbnRSZXBhaW50UmVjdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGYzZjkyODRjOWI4NDI0N2ViOGFhNTgzOGJlNmE1YzhkMmJlYzY5YjYuLjhhNGZmN2NhZTJjZjBm
Yjc5YmQzNjBmOGZiZjg0ZmFmMmNiYzhmNDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0x
MC0wNiAgUmF1bCBIdWRlYSAgPHJodWRlYUBhZG9iZS5jb20+CisKKyAgICAgICAgLXdlYmtpdC1j
bGlwLXBhdGggc2hvdWxkIHBhcnNlIElSSXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk2MzgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIFNWRyByZWZlcmVuY2VkIGNsaXBQYXRoIHdpdGgg
Ym90aCB0eXBlcyBvZiBjbGlwUGF0aFVuaXRzOiAidXNlclNwYWNlT25Vc2UiIGFuZCAib2JqZWN0
Qm91bmRpbmdCb3giLgorCisgICAgICAgICogY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVu
Y2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL2NsaXAtcGF0
aC1yZWZlcmVuY2UtdXNlclNwYWNlT25Vc2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UtdXNlclNwYWNlT25Vc2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UuaHRtbDog
QWRkZWQuCisgICAgICAgICogZmFzdC9tYXNraW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0
aC1pcmkuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9uczoKKwogMjAxMi0xMC0wNSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIEZvcm0gY29udHJvbHMgc2hvdWxkIGFsd2F5cyBiZSBob3Jpem9udGFsCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVyZW5jZS1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2Ut
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNmI5ZWEzMjA3OWVhZDdkNzMxNTBjZWViY2QyMDVk
YjJkYWIyYTdiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2Ns
aXAtcGF0aC1yZWZlcmVuY2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlPgorI2QgeworICAgIHdp
ZHRoOiAxODBweDsKKyAgICBoZWlnaHQ6IDE4MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworfQorI2NsaXAgeworICAgIHdpZHRoOiAzMnB4OworICAgIGhlaWdodDogMzJweDsKKyAg
ICBtYXJnaW46IDc0cHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxl
PgorPC9oZWFkPgorPGJvZHk+Cis8c3ZnIGhlaWdodD0iMCI+PC9zdmc+Cis8ZGl2IGlkPSJkIj48
ZGl2IGlkPSJjbGlwIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBm
aWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJlZmVy
ZW5jZS11c2VyU3BhY2VPblVzZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNr
aW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UtdXNlclNwYWNlT25Vc2UtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xZTkzNGM3ODI5ZWU5NjdjZDQwZDU5MzZhODkxOTAyODg4OGFhYTI0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2Ut
dXNlclNwYWNlT25Vc2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sIGxhbmc9ImVuIj4KKzxoZWFkPgorPHN0eWxlPgorKiB7cGFkZGluZzogMDsg
bWFyZ2luOiAwfQorI2QgeworICAgIHdpZHRoOiAxODBweDsKKyAgICBoZWlnaHQ6IDE4MHB4Owor
ICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICBtYXJnaW4tdG9wOiAxMDRweDsKK30KKyNjbGlwLXJlZiB7CisgICAgd2lkdGg6IDMycHg7
CisgICAgaGVpZ2h0OiAzMnB4OworICAgIG1hcmdpbjogNzRweDsKKyAgICBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImQiPjxk
aXYgaWQ9ImNsaXAtcmVmIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL21hc2tpbmcvY2xpcC1wYXRoLXJl
ZmVyZW5jZS11c2VyU3BhY2VPblVzZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2Ns
aXAtcGF0aC1yZWZlcmVuY2UtdXNlclNwYWNlT25Vc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MTM0ZjA0
ZDFjYzhhMTU1NjJmYzExMTBhMzcwNzU3Mzk0NWEzNmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAtcGF0aC1yZWZlcmVuY2UtdXNlclNwYWNlT25Vc2Uu
aHRtbApAQCAtMCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sIGxhbmc9ImVuIj4K
KzxoZWFkPgorPHN0eWxlPgorKiB7cGFkZGluZzogMDsgbWFyZ2luOiAwfQorI2QgeworICAgIHdp
ZHRoOiAxODBweDsKKyAgICBoZWlnaHQ6IDE4MHB4OworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJs
YWNrOworICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKK30KKyNjbGlwIHsKKyAgICB3aWR0aDog
MTYwcHg7CisgICAgaGVpZ2h0OiAxNjBweDsKKyAgICBtYXJnaW46IDEwcHg7CisgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47CisgICAgLXdlYmtpdC1jbGlwLXBhdGg6IHVybCgjYzIpOworfQor
I2NsaXAtcmVmIHsKKyAgICB3aWR0aDogMzJweDsKKyAgICBoZWlnaHQ6IDMycHg7CisgICAgbWFy
Z2luOiA3NHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHN2ZyBoZWlnaHQ9IjEwMCIgd2lkdGg9IjEwMCI+Cis8Y2xpcFBhdGgg
aWQ9ImMyIiBjbGlwUGF0aFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CisgIDxyZWN0IHg9Ijc1IiB5
PSIxNzkiIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIvPgorPC9jbGlwUGF0aD4KKzwvc3ZnPgorPGRp
diBpZD0iZCI+PGRpdiBpZD0iY2xpcCI+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9tYXNraW5nL2NsaXAt
cGF0aC1yZWZlcmVuY2UuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9jbGlwLXBhdGgt
cmVmZXJlbmNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWNmMTY1NmVhNTBhYzE1ZDgxMTU0M2UwYTc5OTI2
NDA2NTE5MjJmYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvbWFza2luZy9j
bGlwLXBhdGgtcmVmZXJlbmNlLmh0bWwKQEAgLTAsMCArMSwyNyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbCBsYW5nPSJlbiI+Cis8aGVhZD4KKzxzdHlsZT4KKyNkIHsKKyAgICB3aWR0aDogMTgw
cHg7CisgICAgaGVpZ2h0OiAxODBweDsKKyAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKK30K
KyNjbGlwIHsKKyAgICB3aWR0aDogMTYwcHg7CisgICAgaGVpZ2h0OiAxNjBweDsKKyAgICBtYXJn
aW46IDEwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47CisgICAgLXdlYmtpdC1jbGlw
LXBhdGg6IHVybCgjYzEpOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHN2ZyBoZWln
aHQ9IjAiPgorICAgIDxjbGlwUGF0aCBpZD0iYzEiIGNsaXBQYXRoVW5pdHM9Im9iamVjdEJvdW5k
aW5nQm94Ij4KKyAgICAgICAgPHJlY3QgeD0iMC40IiB5PSIwLjQiIHdpZHRoPSIwLjIiIGhlaWdo
dD0iMC4yIi8+CisgICAgPC9jbGlwUGF0aD4KKyAgPC9zdmc+Cis8ZGl2IGlkPSJkIj48ZGl2IGlk
PSJjbGlwIj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJp
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWFza2luZy9wYXJzaW5nLWNsaXAtcGF0
aC1pcmktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdjNzhlZGVhYjNmZjBiNDk3OTk3ODJmMThm
NjI5YzM0YjM4NDViZDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21hc2tp
bmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitU
ZXN0IGNsaXAtcGF0aCBJUklzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGlubmVyU3R5bGUoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikgaXMgInVybCgj
Y2xpcDEpIgorUEFTUyBpbm5lclN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoY2xpcC5z
dmcjY2xpcDEpIikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIGNvbXB1dGVkU3R5bGUo
Ii13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIikgaXMgInVybCgjY2xpcDEpIgorUEFT
UyBjb21wdXRlZFN0eWxlKCItd2Via2l0LWNsaXAtcGF0aCIsICJ1cmwoY2xpcC5zdmcjY2xpcDEp
IikgaXMgInVybChjbGlwLnN2ZyNjbGlwMSkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tYXNr
aW5nL3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tYXNraW5n
L3BhcnNpbmctY2xpcC1wYXRoLWlyaS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgyNDYyODQzMmUwYzA0NTAx
ZDAzNjA5MzdmNzEyZDViZWZiMDg3YWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21hc2tpbmcvcGFyc2luZy1jbGlwLXBhdGgtaXJpLmh0bWwKQEAgLTAsMCArMSw0NyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxzdHlsZT4KKyogeyBmb250LXNpemU6IDE2cHg7IH0K
K2RpdiB7IGZvbnQtc2l6ZTogOHB4OyB9Cis8L3N0eWxlPgorPGJvZHk+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNj
cmlwdGlvbignVGVzdCBjbGlwLXBhdGggSVJJcycpOworCitmdW5jdGlvbiBjb21wdXRlZFN0eWxl
KHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJkaXYiKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRpdik7CisgICAgZGl2LnN0
eWxlLnNldFByb3BlcnR5KHByb3BlcnR5LCB2YWx1ZSk7CisgICAgdmFyIGNvbXB1dGVkVmFsdWUg
PSBnZXRDb21wdXRlZFN0eWxlKGRpdikuZ2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eSk7CisgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkaXYpOworICAgIHJldHVybiBjb21wdXRlZFZhbHVl
OworfQorCitmdW5jdGlvbiBpbm5lclN0eWxlKHByb3BlcnR5LCB2YWx1ZSkgeworICAgIHZhciBk
aXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBkaXYuc3R5bGUuc2V0UHJv
cGVydHkocHJvcGVydHksIHZhbHVlKTsKKyAgICByZXR1cm4gZGl2LnN0eWxlLmdldFByb3BlcnR5
VmFsdWUocHJvcGVydHkpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcHV0ZWQocHJvcGVydHksIHZh
bHVlLCBleHBlY3RlZCkgeworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnY29tcHV0ZWRTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCBleHBlY3RlZCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RJbm5lcihwcm9wZXJ0eSwgdmFsdWUsIGV4cGVjdGVkKSB7CisgICAgaWYg
KGV4cGVjdGVkID09PSBudWxsKQorICAgICAgICBzaG91bGRCZU51bGwoJ2lubmVyU3R5bGUoIicg
KyBwcm9wZXJ0eSArICciLCAiJyArIHZhbHVlICsgJyIpJyk7CisgICAgZWxzZQorICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2lubmVyU3R5bGUoIicgKyBwcm9wZXJ0eSArICciLCAiJyAr
IHZhbHVlICsgJyIpJywgZXhwZWN0ZWQpOworfQorCit0ZXN0SW5uZXIoIi13ZWJraXQtY2xpcC1w
YXRoIiwgInVybCgjY2xpcDEpIiwgInVybCgjY2xpcDEpIik7Cit0ZXN0SW5uZXIoIi13ZWJraXQt
Y2xpcC1wYXRoIiwgInVybChjbGlwLnN2ZyNjbGlwMSkiLCAidXJsKGNsaXAuc3ZnI2NsaXAxKSIp
OworCit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybCgjY2xpcDEpIiwgInVy
bCgjY2xpcDEpIik7Cit0ZXN0Q29tcHV0ZWQoIi13ZWJraXQtY2xpcC1wYXRoIiwgInVybChjbGlw
LnN2ZyNjbGlwMSkiLCAidXJsKGNsaXAuc3ZnI2NsaXAxKSIpOworCis8L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiZTU1NTE3NmNkZWQyZDQx
NzExNzBkNDU3ZDZjNWEyZDUxYWRhZGM5Li5hYzM4NmEyN2YyMTE0YjUzM2FmMWE1NjM5N2FlZGU4
YTAyOGUxOWQyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTE0NDQsNiArMTQ0NCw4IEBAIGNyYnVnLmNvbS8xMDMyMyBbIFdpbiBdIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm8tY29udGVudC1sZW5nCiAj
IFdpbmRvd3M/CiBjcmJ1Zy5jb20vMTAzNDIgWyBBbmRyb2lkIExpbnV4IE1hYyBdIGZhc3QvbG9h
ZGVyL2ZpbGUtVVJMLXdpdGgtcG9ydC1udW1iZXIuaHRtbCBbIFdvbnRGaXggXQogCisjIENsaXBw
aW5nIGRpZmZlcmVuY2VzIGJldHdlZW4gQ2hyb21pdW0gcGxhdGZvcm1zLiBOZWVkcyBpbnZlc3Rp
Z2F0aW9uLgord2Via2l0Lm9yZy9iLzk4NTk5IGNzczMvbWFza2luZy9jbGlwLXBhdGgtcmVmZXJl
bmNlLXVzZXJTcGFjZU9uVXNlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0gCiAKICMgU3RhcnRl
ZCB0aW1pbmcgb3V0IHdpdGggYWdsJ3MgY29tcGxleCB0ZXh0IGNoYW5nZS4gIFBhZ2UgaXMgdmVy
cnJ5IHNsb3cuCiBjcmJ1Zy5jb20vMTAzNDMgWyBBbmRyb2lkIExpbnV4IF0gZmFzdC90ZXh0L2xh
cmdlLXRleHQtY29tcG9zZWQtY2hhci5odG1sCg==
</data>
<flag name="review"
          id="180133"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>