<?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>64038</bug_id>
          
          <creation_ts>2011-07-06 15:35:12 -0700</creation_ts>
          <short_desc>Pass -webkit-flex() values on to RenderStyle</short_desc>
          <delta_ts>2011-07-20 15:05:17 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>64765</dependson>
          <blocked>62048</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jamesr</cc>
    
    <cc>macpherson</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>433078</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-06 15:35:12 -0700</bug_when>
    <thetext>Pass -webkit-flex() values on to RenderStyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433081</commentid>
    <comment_count>1</comment_count>
      <attachid>99896</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-06 15:39:52 -0700</bug_when>
    <thetext>Created attachment 99896
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433612</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-07 11:15:39 -0700</bug_when>
    <thetext>Luke: Can you take a look at the changes to CSSStyleApplyProperty.cpp and see if that&apos;s what you had in mind?  I added 2 params to the template.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>433782</commentid>
    <comment_count>3</comment_count>
      <attachid>99896</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-07-07 16:39:35 -0700</bug_when>
    <thetext>Comment on attachment 99896
Patch

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

Seems fine to me. Would be good to have someone with more experience with this code to r+ though.

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:247
&gt; +            if (canBeFlexWidth &amp;&amp; value-&gt;isFlexValue()) {
&gt; +                CSSFlexValue* flexValue = static_cast&lt;CSSFlexValue*&gt;(value);
&gt; +                selector-&gt;style()-&gt;setFlexboxWidthPositiveFlex(flexValue-&gt;positiveFlex());
&gt; +                selector-&gt;style()-&gt;setFlexboxWidthNegativeFlex(flexValue-&gt;negativeFlex());
&gt; +                applyValue(selector, flexValue-&gt;preferredSize());
&gt; +            } else if (canBeFlexHeight &amp;&amp; value-&gt;isFlexValue()) {
&gt; +                CSSFlexValue* flexValue = static_cast&lt;CSSFlexValue*&gt;(value);
&gt; +                selector-&gt;style()-&gt;setFlexboxHeightPositiveFlex(flexValue-&gt;positiveFlex());
&gt; +                selector-&gt;style()-&gt;setFlexboxHeightNegativeFlex(flexValue-&gt;negativeFlex());
&gt; +                applyValue(selector, flexValue-&gt;preferredSize());
&gt; +            }

Possible cleanup nit:
if (!canBeFlexWidth &amp;&amp; !canBeFlexHeight)
    return;

if (!value-&gt;isFlexValue())
    return;

CSSFlexValue* flexValue = static_cast&lt;CSSFlexValue*&gt;(value);
applyValue(selector, flexValue-&gt;preferredSize());

if (canBeFlexWidth) {
    selector-&gt;style()-&gt;setFlexboxWidthPositiveFlex(flexValue-&gt;positiveFlex());
    selector-&gt;style()-&gt;setFlexboxWidthNegativeFlex(flexValue-&gt;negativeFlex());
} else if (canBeFlexHeight) {
    selector-&gt;style()-&gt;setFlexboxHeightPositiveFlex(flexValue-&gt;positiveFlex());
    selector-&gt;style()-&gt;setFlexboxHeightNegativeFlex(flexValue-&gt;negativeFlex());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434678</commentid>
    <comment_count>4</comment_count>
      <attachid>99896</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-10 23:15:50 -0700</bug_when>
    <thetext>Comment on attachment 99896
Patch

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

&gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:247

&gt; 
&gt; Possible cleanup nit:
&gt; if (!canBeFlexWidth &amp;&amp; !canBeFlexHeight)
&gt;     return;
&gt; 
&gt; if (!value-&gt;isFlexValue())
&gt;     return;
&gt; 
&gt; CSSFlexValue* flexValue = static_cast&lt;CSSFlexValue*&gt;(value);
&gt; applyValue(selector, flexValue-&gt;preferredSize());
&gt; 
&gt; if (canBeFlexWidth) {
&gt;     selector-&gt;style()-&gt;setFlexboxWidthPositiveFlex(flexValue-&gt;positiveFlex());
&gt;     selector-&gt;style()-&gt;setFlexboxWidthNegativeFlex(flexValue-&gt;negativeFlex());
&gt; } else if (canBeFlexHeight) {
&gt;     selector-&gt;style()-&gt;setFlexboxHeightPositiveFlex(flexValue-&gt;positiveFlex());
&gt;     selector-&gt;style()-&gt;setFlexboxHeightNegativeFlex(flexValue-&gt;negativeFlex());
&gt; }

Now that applyValue can recurse, is there any guarantee that preferredSize is not also a flex width or a bound on the depth of recursion?

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:653
&gt; +    setPropertyHandler(CSSPropertyWidth, new ApplyPropertyLength&lt;AutoEnabled, IntrinsicEnabled, MinIntrinsicEnabled, NoneDisabled, UndefinedDisabled, FlexWidthEnabled&gt;(&amp;RenderStyle::width, &amp;RenderStyle::setWidth, &amp;RenderStyle::initialSize));

Minor point - if you reorder the new template parameters you&apos;ll shorten these slightly by using the disabled-by-default pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>434679</commentid>
    <comment_count>5</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-10 23:17:38 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Luke: Can you take a look at the changes to CSSStyleApplyProperty.cpp and see if that&apos;s what you had in mind?  I added 2 params to the template.

Sure, this area is basically LGTM. A few minor suggestions, but I&apos;d still r+ it if I were the reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435188</commentid>
    <comment_count>6</comment_count>
      <attachid>100359</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-11 14:00:55 -0700</bug_when>
    <thetext>Created attachment 100359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435189</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-11 14:05:21 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 99896 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=99896&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:247
&gt; 
&gt; Now that applyValue can recurse, is there any guarantee that preferredSize is not also a flex width or a bound on the depth of recursion?

Good question.  I changed preferredSize() to be a CSSPrimitiveValue to make it more clear that this will only recurse once.

&gt; &gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:653
&gt; &gt; +    setPropertyHandler(CSSPropertyWidth, new ApplyPropertyLength&lt;AutoEnabled, IntrinsicEnabled, MinIntrinsicEnabled, NoneDisabled, UndefinedDisabled, FlexWidthEnabled&gt;(&amp;RenderStyle::width, &amp;RenderStyle::setWidth, &amp;RenderStyle::initialSize));
&gt; 
&gt; Minor point - if you reorder the new template parameters you&apos;ll shorten these slightly by using the disabled-by-default pattern.

Do you mean to put LengthFlex* before LengthNone and LengthUndefined in the template?  If I do that, I have to add extra params to CSSPropertyMaxHeight and CSSPropertyMaxWidth, no?

I also merged Ojan&apos;s suggested code.  Maybe Eric or Hyatt can take a look or suggest someone who would be a good reviewer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435316</commentid>
    <comment_count>8</comment_count>
      <attachid>100359</attachid>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-11 17:03:13 -0700</bug_when>
    <thetext>Comment on attachment 100359
Patch

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

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:217
&gt; +enum LengthFlexHeight {FlexHeightDisabled = 0, FlexHeightEnabled = 1};

Since these two are mutually exclusive, it might make sense to use a single enum instead. Eg. FlexDirection {FlexDisabled = 0, FlexWidth, FlexHeight};

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:243
&gt; +            applyValue(selector, flexValue-&gt;preferredSize());

Now that preferredSize returns a primitive value you can just set primitiveValue and fall through, avoiding the recursion entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435327</commentid>
    <comment_count>9</comment_count>
      <attachid>100387</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-11 17:23:52 -0700</bug_when>
    <thetext>Created attachment 100387
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435328</commentid>
    <comment_count>10</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-11 17:24:56 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 100359 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100359&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:217
&gt; &gt; +enum LengthFlexHeight {FlexHeightDisabled = 0, FlexHeightEnabled = 1};
&gt; 
&gt; Since these two are mutually exclusive, it might make sense to use a single enum instead. Eg. FlexDirection {FlexDisabled = 0, FlexWidth, FlexHeight};

Good idea, done.

&gt; &gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:243
&gt; &gt; +            applyValue(selector, flexValue-&gt;preferredSize());
&gt; 
&gt; Now that preferredSize returns a primitive value you can just set primitiveValue and fall through, avoiding the recursion entirely.

Done, although it makes the !ENABLED(CSS3_FLEXBOX) case a bit tricky, so I just pulled it out.  It&apos;ll simplify once we&apos;re done with flexbox and can remove the #if.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437865</commentid>
    <comment_count>11</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-15 11:48:54 -0700</bug_when>
    <thetext>Trying to find a reviewer . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438814</commentid>
    <comment_count>12</comment_count>
      <attachid>100387</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-18 16:25:32 -0700</bug_when>
    <thetext>Comment on attachment 100387
Patch

In an attempt to get this landed, I&apos;m breaking this into smaller pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438851</commentid>
    <comment_count>13</comment_count>
    <who name="Luke Macpherson">macpherson</who>
    <bug_when>2011-07-18 17:20:08 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 100387 [details])
&gt; In an attempt to get this landed, I&apos;m breaking this into smaller pieces.

So sad that it has come to that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439983</commentid>
    <comment_count>14</comment_count>
      <attachid>101504</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-20 13:39:23 -0700</bug_when>
    <thetext>Created attachment 101504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439984</commentid>
    <comment_count>15</comment_count>
      <attachid>101504</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-20 13:39:51 -0700</bug_when>
    <thetext>Comment on attachment 101504
Patch

Other patches have landed.  Eric, care to review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439985</commentid>
    <comment_count>16</comment_count>
      <attachid>101504</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-07-20 13:40:59 -0700</bug_when>
    <thetext>Comment on attachment 101504
Patch

OK.  How do we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>439989</commentid>
    <comment_count>17</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-20 13:44:08 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 101504 [details])
&gt; OK.  How do we test this?

It&apos;ll get tested by tests that are added with RenderFlexibleBox.  If we&apos;re not copying the values from css to the render style properly, we won&apos;t be able to flex properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>440042</commentid>
    <comment_count>18</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-07-20 15:00:39 -0700</bug_when>
    <thetext>Committed r91410: &lt;http://trac.webkit.org/changeset/91410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>99896</attachid>
            <date>2011-07-06 15:39:52 -0700</date>
            <delta_ts>2011-07-11 14:00:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64038-20110706153924.patch</filename>
            <type>text/plain</type>
            <size>34227</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA0NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMTA3ODM1
ZGQ3MGJjZjAwOThhYjMwOTUyNmI5ZWNjNGQxYjkyMzMwZi4uZjE1YzRmMzllZGM2ZTcyZjk2MjVi
OGFhNDc4NjRmMzNjOWM2Y2FlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNzYsNiArMTI3
Niw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hE
YXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwCisgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVy
aXRlZERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggNDk4MTE5OWY1OTZiMTNmMmNhMTcyMDM1Yzk3Y2FlNmY2NzkyNGI5My4uZmM0
ZDFiNGQzNmY5MTM2OTZmOTQ1NDRlY2Q4YjM0NDY2YTEzMDc0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY4IEBACisyMDExLTA3LTA2ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUGFzcyAtd2Via2l0LWZsZXgoKSB2YWx1ZXMgb24gdG8gUmVuZGVyU3R5bGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB0aGlzIGp1c3QgY29waWVzIGRhdGEgdG8gUmVuZGVyU3R5bGUsIHdoaWNoIHdlIGNhbgorICAg
ICAgICB0aGVuIGFjY2VzcyB3aGVuIGRvaW5nIGxheW91dC4gIFRlc3RzIHdpbGwgY29tZSB3aXRo
IHRoZSBsYXlvdXQKKyAgICAgICAgY2hhbmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTRmxleFZhbHVlLmg6IFN3aXRjaCBmcm9tIGRvdWJsZSB0byBmbG9h
dCBzaW5jZSB0aGF0J3MgcGxlbnR5IG9mCisgICAgICAgICAgICBwcmVjaXNpb24gZm9yIGZsZXgg
dmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjppc0ZsZXhWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGbGV4VmFsdWU6OnBvc2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4
VmFsdWU6Om5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4VmFsdWU6OnBy
ZWZlcnJlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpDU1NGbGV4VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUZsZXgpOiBjbGFtcFRvRmxvYXQKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVB
cHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlMZW5ndGg6
OmFwcGx5VmFsdWUpOiBIYW5kbGUgd2lkdGhzIGFuZCBoZWlnaHRzCisgICAgICAgICAgICB0aGF0
IGFyZSBmbGV4IHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0
eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZsZXhWYWx1ZSk6IEFsbG93IHR5cGUgY2hlY2tp
bmcgZm9yIGZsZXggdmFsdWVzLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgc2V0dGVycyBhbmQgZ2V0dGVycy4gIFRoZQorICAgICAg
ICAgICAgcHJlZmVycmVkIHNpemUgaXMgc3RvcmVkIGluIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHNv
IHdlIGRvbid0IG5lZWQKKyAgICAgICAgICAgIGEgbmV3IHNldHRlci9nZXR0ZXIgZm9yIHRob3Nl
LgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmZsZXhib3hXaWR0aFBvc2l0aXZl
RmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6ZmxleGJveFdpZHRoTmVn
YXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4Ym94SGVp
Z2h0UG9zaXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4
Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJp
dGVkRmxhZ3M6OnNldEZsZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodFBvc2l0aXZlRmxleCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodE5lZ2F0aXZlRmxleCk6
CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZsZXhib3hXaWR0aFBv
c2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZs
ZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFn
czo6aW5pdGlhbEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHA6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUZsZXhpYmxlQm94RGF0YTo6U3R5bGVGbGV4aWJsZUJveERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oOiBBZGRlZC4gTmV3IGZpbGUg
Zm9yIGZsZXhib3gKKyAgICAgICAgICAgIGRhdGEuIFdlIHdpbGwgYmUgYWRkaW5nIGZpZWxkcyBh
cyB3ZSBpbXBsZW1lbnQgbW9yZSBvZiB0aGUgc3BlYy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
RmxleGlibGVCb3hEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJs
ZUJveERhdGE6OmNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6
Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKwogMjAxMS0wNy0wNiAgUGF2ZWwgRmVs
ZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogaW1w
bGVtZW50IGRyYWcnbidkcm9wIGluIHRoZSBlbGVtZW50cyBwYW5lbCBmb3IgcmVvcmRlcmluZyBu
b2Rlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDBhYzVhNWE3YzBhZjAwMTA2
MWRmM2E4NmFhMWY1ZWFkNTZmN2IyNzQuLjVmMjcyNzFkMTIyMjJjM2Q1ODVhZDlkMDljM2I0MmRm
MmIxYzYzMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
KysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzEwNyw2ICszMTA3
LDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVEYXNoYm9hcmRSZWdpb24uaCBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBcCisJU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcCBcCisJ
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmggXAog
CVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuaCBc
CiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2UuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggOWRhODE1MWEzNDc5ODU0ZDkxNTYxNGIxMTJiODBhOGQzNDgwZjY0MC4uMDU5
ZWE3YWVlNGYzYTg2NjYyYzMwYjRhOGRlZTQ4MWY0ODA2M2Y2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTAxNSw2ICsxMDE1LDcgQEAKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVD
YWNoZWRJbWFnZS5oJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVEYXNoYm9h
cmRSZWdpb24uaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRl
ZEZsZXhpYmxlQm94RGF0YS5oJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVG
bGV4aWJsZUJveERhdGEuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlR2Vu
ZXJhdGVkSW1hZ2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlSW1hZ2Uu
aCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5oJywK
QEAgLTU0MzksNiArNTQ0MCw3IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxl
Qm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZElt
YWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZs
ZXhpYmxlQm94RGF0YS5jcHAnLAorICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUZs
ZXhpYmxlQm94RGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdl
bmVyYXRlZEltYWdlLmNwcCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5o
ZXJpdGVkRGF0YS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZU1hcnF1
ZWVEYXRhLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDQ1NTA0YjEzZDdjNzk0ZmY2MTEzZmI5ZDRk
YTNiYzQ1MTlhYzA1Y2YuLmMyNWVmMDIyNjZkN2UxZjIyYmJlNWJiNDIzY2U1NmIwZjkzNDFhOWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCkBAIC0xMTc5LDYgKzExNzksNyBAQCBTT1VSQ0VTICs9IFwKICAgICBy
ZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0
eWxlQ2FjaGVkSW1hZ2UuY3BwIFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVEZXByZWNhdGVk
RmxleGlibGVCb3hEYXRhLmNwcCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJhdGVkSW1hZ2UuY3Bw
IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVJbmhlcml0ZWREYXRhLmNwcCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwIFwKQEAgLTIyMjUsNiArMjIyNiw3IEBA
IEhFQURFUlMgKz0gXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuaCBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxl
L1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIFwKKyAgICByZW5kZXJpbmcvc3R5bGUv
U3R5bGVGbGV4aWJsZUJveERhdGEuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlR2VuZXJh
dGVkSW1hZ2UuaCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5oIFwK
ICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5oIFwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTNiMDc1OWYzMDhiOWZiOGU4
ZjkzOWQwM2JkNzg3OGU3ODJjYzJlMC4uOTRmYmQxNTgxMGRmMjRlMzMwZTgzOTFhYzA0NmQ3Y2Yy
MDY4MDQxYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKQEAgLTQwMzI3LDYgKzQwMzI3LDYyIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdcc3R5bGVcU3R5bGVGbGV4aWJsZUJv
eERhdGEuY3BwIgorCQkJCQk+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWd8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJ
CQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJ
CTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFt
ZT0iUmVsZWFzZXxXaW4zMiIKKwkJCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJ
PgorCQkJCQkJPFRvb2wKKwkJCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4K
KwkJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJ
CQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWls
ZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVy
VG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29u
ZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iUmVsZWFzZV9DYWlyb19DRkxpdGV8V2luMzIiCisJCQkJ
CQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJCTxUb29sCisJCQkJCQkJ
TmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwvRmlsZUNvbmZpZ3VyYXRp
b24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0iRGVidWdfQWxsfFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlByb2R1Y3Rp
b258V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlRmxleGlibGVCb3hEYXRhLmgiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxyZW5kZXJpbmdc
c3R5bGVcU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAiCiAJCQkJCT4KIAkJCQkJPEZpbGVDb25maWd1
cmF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggNmJjNWMxYzVlNzlmOTgwOGE0ZTg3Njk3YTE2YWE2NGQ3MjMwOWU2NC4uMDg3
OTI5NjQzMWJiYjVkODY1ZWVhNGFjZDFiOTU5NzRlOTJjOTYyOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTQzMyw2ICsxNDMz
LDggQEAKIAkJNTFGQjU1MDUxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZCNTUwMzExM0Uz
RTkxMDA4MjExNzYgLyogSlNDbG9zZUV2ZW50LmNwcCAqLzsgfTsKIAkJNTIxRDQ2RjYxMUFFQzk4
MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNTIxRDQ2RjUxMUFFQzk4MTAwNTE0NjEzIC8qIEtpbGxSaW5nTWFj
Lm1tICovOyB9OwogCQk1MjFENDZGODExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMUQ0NkY3MTFBRUM5
QjEwMDUxNDYxMyAvKiBLaWxsUmluZy5oICovOyB9OworCQk1MzE3NjEyMjEzQzUxNjY5MDAyNkU0
NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTMxNzYxMjAxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxl
eGlibGVCb3hEYXRhLmNwcCAqLzsgfTsKKwkJNTMxNzYxMjMxM0M1MTY2OTAwMjZFNDU0IC8qIFN0
eWxlRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MzE3NjEyMTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERh
dGEuaCAqLzsgfTsKIAkJNTMyNUU0RDcxM0E2Qzg4QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MzI1RTRE
NTEzQTZDODhCMDA0MDRBMzYgLyogQ1NTRmxleFZhbHVlLmNwcCAqLzsgfTsKIAkJNTMyNUU0RDgx
M0E2Qzg4QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyNUU0RDYxM0E2Qzg4QjAwNDA0QTM2IC8qIENTU0Zs
ZXhWYWx1ZS5oICovOyB9OwogCQk1NTBBMEJDOTA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVk
TmFtZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi87IH07CkBAIC03
OTcwLDYgKzc5NzIsOCBAQAogCQk1MUZCNTUwMzExM0UzRTkxMDA4MjExNzYgLyogSlNDbG9zZUV2
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ2xvc2VFdmVu
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMUQ0NkY1MTFBRUM5ODEwMDUx
NDYxMyAvKiBLaWxsUmluZ01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEtpbGxSaW5nTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjFE
NDZGNzExQUVDOUIxMDA1MTQ2MTMgLyogS2lsbFJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gS2lsbFJpbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTMx
NzYxMjAxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcDsg
cGF0aCA9IHN0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hE
YXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFN0eWxlRmxleGlibGVCb3hE
YXRhLmg7IHBhdGggPSBzdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MzI1RTRENTEzQTZDODhCMDA0MDRBMzYgLyogQ1NTRmxleFZhbHVl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZsZXhWYWx1ZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUzMjVFNEQ2MTNBNkM4OEIwMDQwNEEz
NiAvKiBDU1NGbGV4VmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
RmxleFZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTU1MEEwQkM3MDg1RjYw
MzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFF1YWxpZmllZE5hbWUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTE4NTc2
LDYgKzE4NTgwLDggQEAKIAkJCQlCQzVFQjY3RTBFODFENEE3MDBCMjU5NjUgLyogU3R5bGVEYXNo
Ym9hcmRSZWdpb24uaCAqLywKIAkJCQlCQzVFQjhCNjBFODIwMUJEMDBCMjU5NjUgLyogU3R5bGVE
ZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCAqLywKIAkJCQlCQzVFQjhCNzBFODIwMUJEMDBC
MjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggKi8sCisJCQkJNTMxNzYx
MjAxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmNwcCAqLywKKwkJCQk1
MzE3NjEyMTEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCAqLywKIAkJ
CQlCQ0VGNDQ3QzBFNjc0ODA2MDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgKi8s
CiAJCQkJQkNFRjQ0NDkwRTY3NDVFMDAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuaCAq
LywKIAkJCQlCQ0VGNDNDRTBFNjczREExMDAxQzEyODcgLyogU3R5bGVJbWFnZS5oICovLApAQCAt
MjI2MDAsNiArMjI2MDYsNyBAQAogCQkJCUE4QzRBN0ZEMDlENTYzMjcwMDAzQUM4RCAvKiBTdHls
ZWRFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBQTRDM0E3NzBCMkIxNjc5MDAyMzM0QTIg
LyogU3R5bGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzVFQjhCOTBFODIwMUJEMDBC
MjU5NjUgLyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVycyAqLywK
KwkJCQk1MzE3NjEyMzEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRUY0NDRBMEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVy
YXRlZEltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VGNDNDRjBFNjczREExMDAxQzEyODcg
LyogU3R5bGVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMjczMDQwRTgyRjFFNjAwRTdG
OTc1IC8qIFN0eWxlSW5oZXJpdGVkRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTQ4Myw2ICsy
NTQ5MCw3IEBACiAJCQkJQThDNEE3RkUwOUQ1NjMyNzAwMDNBQzhEIC8qIFN0eWxlZEVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUE0QzNBNzYwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxl
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzVFQjhCODBFODIwMUJEMDBCMjU5NjUg
LyogU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTUzMTc2MTIyMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlCQ0VGNDQ3RDBFNjc0ODA2MDAxQzEyODcgLyogU3R5bGVHZW5lcmF0
ZWRJbWFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIyNzMwMzBFODJGMUU2MDBFN0Y5NzUg
LyogU3R5bGVJbmhlcml0ZWREYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3MzREMEEx
OTlDNzcwMDdGQjhDNSAvKiBTdHlsZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRmxleFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRmxleFZhbHVlLmgKaW5kZXggYTdjMWY4MmU2ZGEzNWRlNWZhNjdmMzBkYmMyYzI5MGE5OWU3
NTJmNi4uOGU3ZmUzNDllNjNlOTk2NDcxMDU5M2Q0MTcyYzE5ZjYxMmY4NGU3NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZsZXhWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGbGV4VmFsdWUuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENTU0ZsZXhWYWx1ZSA6IHB1YmxpYyBDU1NWYWx1ZSB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTRmxleFZhbHVlPiBjcmVhdGUoZG91YmxlIHBvc2l0aXZlRmxl
eCwgZG91YmxlIG5lZ2F0aXZlRmxleCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcHJlZmVycmVkU2l6
ZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NGbGV4VmFsdWU+IGNyZWF0ZShmbG9hdCBwb3Np
dGl2ZUZsZXgsIGZsb2F0IG5lZ2F0aXZlRmxleCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcHJlZmVy
cmVkU2l6ZSkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ1NTRmxleFZhbHVl
KHBvc2l0aXZlRmxleCwgbmVnYXRpdmVGbGV4LCBwcmVmZXJyZWRTaXplKSk7CiAgICAgfQpAQCAt
NDcsMTYgKzQ3LDIyIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgU3RyaW5nIGNzc1RleHQoKSBj
b25zdDsKIAorICAgIHZpcnR1YWwgYm9vbCBpc0ZsZXhWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KKworICAgIGZsb2F0IHBvc2l0aXZlRmxleCgpIHsgcmV0dXJuIG1fcG9zaXRpdmVGbGV4
OyB9CisgICAgZmxvYXQgbmVnYXRpdmVGbGV4KCkgeyByZXR1cm4gbV9uZWdhdGl2ZUZsZXg7IH0K
KyAgICBDU1NWYWx1ZSogcHJlZmVycmVkU2l6ZSgpIHsgcmV0dXJuIG1fcHJlZmVycmVkU2l6ZS5n
ZXQoKTsgfQorCiBwcml2YXRlOgotICAgIENTU0ZsZXhWYWx1ZShkb3VibGUgcG9zaXRpdmVGbGV4
LCBkb3VibGUgbmVnYXRpdmVGbGV4LCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwcmVmZXJyZWRTaXpl
KQorICAgIENTU0ZsZXhWYWx1ZShmbG9hdCBwb3NpdGl2ZUZsZXgsIGZsb2F0IG5lZ2F0aXZlRmxl
eCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcHJlZmVycmVkU2l6ZSkKICAgICAgICAgOiBtX3Bvc2l0
aXZlRmxleChwb3NpdGl2ZUZsZXgpCiAgICAgICAgICwgbV9uZWdhdGl2ZUZsZXgobmVnYXRpdmVG
bGV4KQogICAgICAgICAsIG1fcHJlZmVycmVkU2l6ZShwcmVmZXJyZWRTaXplKQogICAgIHsKICAg
ICB9CiAKLSAgICBkb3VibGUgbV9wb3NpdGl2ZUZsZXg7Ci0gICAgZG91YmxlIG1fbmVnYXRpdmVG
bGV4OworICAgIGZsb2F0IG1fcG9zaXRpdmVGbGV4OworICAgIGZsb2F0IG1fbmVnYXRpdmVGbGV4
OwogICAgIFJlZlB0cjxDU1NWYWx1ZT4gbV9wcmVmZXJyZWRTaXplOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmNwcAppbmRleCBmZjQzYTJkY2VmODY5MDlkMDM3NzAwNzQwOWFiMmQxMDRiNmU0
OWVhLi40ODIxMzYwMWE4NjVmNDFlZDYwYWIwYTUzNGNmZjJmY2NiYTQ5MTM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcApAQCAtNDgyOSw3ICs0ODI5LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBh
cnNlRmxleChpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICBpZiAoIXByZWZlcnJlZFNp
emUpCiAgICAgICAgIHByZWZlcnJlZFNpemUgPSBwcmltaXRpdmVWYWx1ZUNhY2hlKCktPmNyZWF0
ZUlkZW50aWZpZXJWYWx1ZShDU1NWYWx1ZUF1dG8pOwogCi0gICAgUmVmUHRyPENTU0ZsZXhWYWx1
ZT4gZmxleCA9IENTU0ZsZXhWYWx1ZTo6Y3JlYXRlKHBvc2l0aXZlRmxleCwgbmVnYXRpdmVGbGV4
LCBwcmVmZXJyZWRTaXplKTsKKyAgICBSZWZQdHI8Q1NTRmxleFZhbHVlPiBmbGV4ID0gQ1NTRmxl
eFZhbHVlOjpjcmVhdGUoY2xhbXBUb0Zsb2F0KHBvc2l0aXZlRmxleCksIGNsYW1wVG9GbG9hdChu
ZWdhdGl2ZUZsZXgpLCBwcmVmZXJyZWRTaXplKTsKICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIGZs
ZXgucmVsZWFzZSgpLCBpbXBvcnRhbnQpOwogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKaW5kZXggODkyNjViMGUz
MzkxMzdkMzUwNDhhMjZhOGZjNjE5OThmOWU2OGQyNy4uYmRmZDQyODU1OTQ2NTc5ZTcyN2U1YmRj
NGE5ODc4ZDY2NmE2ZWI4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
QXBwbHlQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNs
dWRlICJDU1NTdHlsZUFwcGx5UHJvcGVydHkuaCIKIAorI2luY2x1ZGUgIkNTU0ZsZXhWYWx1ZS5o
IgogI2luY2x1ZGUgIkNTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NT
dHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCkBAIC0yMTIsMTEgKzIx
MywxNSBAQCBlbnVtIExlbmd0aEludHJpbnNpYyB7SW50cmluc2ljRGlzYWJsZWQgPSAwLCBJbnRy
aW5zaWNFbmFibGVkID0gMX07CiBlbnVtIExlbmd0aE1pbkludHJpbnNpYyB7TWluSW50cmluc2lj
RGlzYWJsZWQgPSAwLCBNaW5JbnRyaW5zaWNFbmFibGVkID0gMX07CiBlbnVtIExlbmd0aE5vbmUg
e05vbmVEaXNhYmxlZCA9IDAsIE5vbmVFbmFibGVkID0gMX07CiBlbnVtIExlbmd0aFVuZGVmaW5l
ZCB7VW5kZWZpbmVkRGlzYWJsZWQgPSAwLCBVbmRlZmluZWRFbmFibGVkID0gMX07CitlbnVtIExl
bmd0aEZsZXhXaWR0aCB7RmxleFdpZHRoRGlzYWJsZWQgPSAwLCBGbGV4V2lkdGhFbmFibGVkID0g
MX07CitlbnVtIExlbmd0aEZsZXhIZWlnaHQge0ZsZXhIZWlnaHREaXNhYmxlZCA9IDAsIEZsZXhI
ZWlnaHRFbmFibGVkID0gMX07CiB0ZW1wbGF0ZSA8TGVuZ3RoQXV0byBhdXRvRW5hYmxlZCA9IEF1
dG9EaXNhYmxlZCwKICAgICAgICAgICBMZW5ndGhJbnRyaW5zaWMgaW50cmluc2ljRW5hYmxlZCA9
IEludHJpbnNpY0Rpc2FibGVkLAogICAgICAgICAgIExlbmd0aE1pbkludHJpbnNpYyBtaW5JbnRy
aW5zaWNFbmFibGVkID0gTWluSW50cmluc2ljRGlzYWJsZWQsCiAgICAgICAgICAgTGVuZ3RoTm9u
ZSBub25lRW5hYmxlZCA9IE5vbmVEaXNhYmxlZCwKLSAgICAgICAgICBMZW5ndGhVbmRlZmluZWQg
bm9uZVVuZGVmaW5lZCA9IFVuZGVmaW5lZERpc2FibGVkPgorICAgICAgICAgIExlbmd0aFVuZGVm
aW5lZCBub25lVW5kZWZpbmVkID0gVW5kZWZpbmVkRGlzYWJsZWQsCisgICAgICAgICAgTGVuZ3Ro
RmxleFdpZHRoIGNhbkJlRmxleFdpZHRoID0gRmxleFdpZHRoRGlzYWJsZWQsCisgICAgICAgICAg
TGVuZ3RoRmxleEhlaWdodCBjYW5CZUZsZXhIZWlnaHQgPSBGbGV4SGVpZ2h0RGlzYWJsZWQ+CiBj
bGFzcyBBcHBseVByb3BlcnR5TGVuZ3RoIDogcHVibGljIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFz
ZTxMZW5ndGg+IHsKIHB1YmxpYzoKICAgICBBcHBseVByb3BlcnR5TGVuZ3RoKEdldHRlckZ1bmN0
aW9uIGdldHRlciwgU2V0dGVyRnVuY3Rpb24gc2V0dGVyLCBJbml0aWFsRnVuY3Rpb24gaW5pdGlh
bCkKQEAgLTIyNyw4ICsyMzIsMjIgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZv
aWQgYXBwbHlWYWx1ZShDU1NTdHlsZVNlbGVjdG9yKiBzZWxlY3RvciwgQ1NTVmFsdWUqIHZhbHVl
KSBjb25zdAogICAgIHsKLSAgICAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQor
ICAgICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyNpZiBFTkFCTEUoQ1NT
M19GTEVYQk9YKQorICAgICAgICAgICAgaWYgKGNhbkJlRmxleFdpZHRoICYmIHZhbHVlLT5pc0Zs
ZXhWYWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgQ1NTRmxleFZhbHVlKiBmbGV4VmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NGbGV4VmFsdWUqPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0
b3ItPnN0eWxlKCktPnNldEZsZXhib3hXaWR0aFBvc2l0aXZlRmxleChmbGV4VmFsdWUtPnBvc2l0
aXZlRmxleCgpKTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rvci0+c3R5bGUoKS0+c2V0RmxleGJv
eFdpZHRoTmVnYXRpdmVGbGV4KGZsZXhWYWx1ZS0+bmVnYXRpdmVGbGV4KCkpOworICAgICAgICAg
ICAgICAgIGFwcGx5VmFsdWUoc2VsZWN0b3IsIGZsZXhWYWx1ZS0+cHJlZmVycmVkU2l6ZSgpKTsK
KyAgICAgICAgICAgIH0gZWxzZSBpZiAoY2FuQmVGbGV4SGVpZ2h0ICYmIHZhbHVlLT5pc0ZsZXhW
YWx1ZSgpKSB7CisgICAgICAgICAgICAgICAgQ1NTRmxleFZhbHVlKiBmbGV4VmFsdWUgPSBzdGF0
aWNfY2FzdDxDU1NGbGV4VmFsdWUqPih2YWx1ZSk7CisgICAgICAgICAgICAgICAgc2VsZWN0b3It
PnN0eWxlKCktPnNldEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgoZmxleFZhbHVlLT5wb3NpdGl2
ZUZsZXgoKSk7CisgICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hI
ZWlnaHROZWdhdGl2ZUZsZXgoZmxleFZhbHVlLT5uZWdhdGl2ZUZsZXgoKSk7CisgICAgICAgICAg
ICAgICAgYXBwbHlWYWx1ZShzZWxlY3RvciwgZmxleFZhbHVlLT5wcmVmZXJyZWRTaXplKCkpOwor
ICAgICAgICAgICAgfQorI2VuZGlmCiAgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KIAog
ICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKICAgICAgICAgaWYgKG5vbmVFbmFibGVkICYmIHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlTm9uZSkKQEAgLTYzMSw4ICs2NTAs
OCBAQCBDU1NTdHlsZUFwcGx5UHJvcGVydHk6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eSgpCiAgICAg
c2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5Qm90dG9tLCBuZXcgQXBwbHlQcm9wZXJ0eUxl
bmd0aDxBdXRvRW5hYmxlZD4oJlJlbmRlclN0eWxlOjpib3R0b20sICZSZW5kZXJTdHlsZTo6c2V0
Qm90dG9tLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxPZmZzZXQpKTsKICAgICBzZXRQcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlMZWZ0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxl
ZD4oJlJlbmRlclN0eWxlOjpsZWZ0LCAmUmVuZGVyU3R5bGU6OnNldExlZnQsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbE9mZnNldCkpOwogCi0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5
V2lkdGgsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNFbmFi
bGVkLCBNaW5JbnRyaW5zaWNFbmFibGVkPigmUmVuZGVyU3R5bGU6OndpZHRoLCAmUmVuZGVyU3R5
bGU6OnNldFdpZHRoLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxTaXplKSk7Ci0gICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5SGVpZ2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRv
RW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWluSW50cmluc2ljRW5hYmxlZD4oJlJlbmRlclN0
eWxlOjpoZWlnaHQsICZSZW5kZXJTdHlsZTo6c2V0SGVpZ2h0LCAmUmVuZGVyU3R5bGU6OmluaXRp
YWxTaXplKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2lkdGgsIG5ldyBB
cHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNFbmFibGVkLCBNaW5JbnRy
aW5zaWNFbmFibGVkLCBOb25lRGlzYWJsZWQsIFVuZGVmaW5lZERpc2FibGVkLCBGbGV4V2lkdGhF
bmFibGVkPigmUmVuZGVyU3R5bGU6OndpZHRoLCAmUmVuZGVyU3R5bGU6OnNldFdpZHRoLCAmUmVu
ZGVyU3R5bGU6OmluaXRpYWxTaXplKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3Bl
cnR5SGVpZ2h0LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2lj
RW5hYmxlZCwgTWluSW50cmluc2ljRW5hYmxlZCwgTm9uZURpc2FibGVkLCBVbmRlZmluZWREaXNh
YmxlZCwgRmxleFdpZHRoRGlzYWJsZWQsIEZsZXhIZWlnaHRFbmFibGVkPigmUmVuZGVyU3R5bGU6
OmhlaWdodCwgJlJlbmRlclN0eWxlOjpzZXRIZWlnaHQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFNp
emUpKTsKIAogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVRleHRJbmRlbnQsIG5l
dyBBcHBseVByb3BlcnR5TGVuZ3RoPD4oJlJlbmRlclN0eWxlOjp0ZXh0SW5kZW50LCAmUmVuZGVy
U3R5bGU6OnNldFRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFRleHRJbmRlbnQpKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTVmFsdWUuaAppbmRleCBkZTQ2ZmY5ZWExMTdlMTM0NzA2MjYwNDgyYzQyMTg0
OGU0YWU3YTA5Li4xMGFjMzVjM2EyNzg2NWE1YzRhZTg1NWEwNTFhMDgwYWRiOWY5ZjRjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWUuaApAQCAtNTQsNiArNTQsOSBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNCb3JkZXJJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNDdXJzb3JJbWFnZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyNpZiBFTkFCTEUoQ1NTM19GTEVYQk9YKQorICAgIHZpcnR1YWwgYm9vbCBpc0ZsZXhWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisjZW5kaWYKICAgICB2aXJ0dWFsIGJvb2wgaXNGb250
RmFtaWx5VmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBp
c0ZvbnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlz
SW1hZ2VHZW5lcmF0b3JWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBjMzA0YzFjMWY1
OGQ4ODc3MmJmNmJjZjYwZDc2NDVjMmU3ZWZkODU1Li5iMWUxZjE1MGE1MzViNWEzMWFhZjczYTQ5
MjE0ZDIzM2VhNzNhNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTExOCw2ICsxMTgsOSBAQCBBTFdBWVNfSU5MSU5FIFJlbmRlclN0
eWxlOjpSZW5kZXJTdHlsZShib29sKQogICAgIHN1cnJvdW5kLmluaXQoKTsKICAgICByYXJlTm9u
SW5oZXJpdGVkRGF0YS5pbml0KCk7CiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmluaXQoKTsKKyNpZiBFTkFCTEUoQ1NTM19GTEVYQk9Y
KQorICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LmluaXQo
KTsKKyNlbmRpZgogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUu
aW5pdCgpOwogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLmlu
aXQoKTsKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV90cmFuc2Zvcm0uaW5p
dCgpOwpAQCAtMzQ4LDYgKzM1MSwxMiBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRp
ZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAg
ICAgICAgJiYgKnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC5n
ZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5nZXQoKSkKICAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CiAK
KyNpZiBFTkFCTEUoQ1NTM19GTEVYQk9YKQorICAgICAgICBpZiAocmFyZU5vbkluaGVyaXRlZERh
dGEtPm1fZmxleGlibGVCb3guZ2V0KCkgIT0gb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5t
X2ZsZXhpYmxlQm94LmdldCgpCisgICAgICAgICAgICAmJiAqcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fZmxleGlibGVCb3guZ2V0KCkgIT0gKm90aGVyLT5yYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9m
bGV4aWJsZUJveC5nZXQoKSkKKyAgICAgICAgICAgIHJldHVybiBTdHlsZURpZmZlcmVuY2VMYXlv
dXQ7CisjZW5kaWYKKwogICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGFkZCBhbiBvcHRpbWl6
ZWQgZm9ybSBvZiBsYXlvdXQgdGhhdCBqdXN0IHJlY29tcHV0ZXMgdmlzdWFsIG92ZXJmbG93Lgog
ICAgICAgICBpZiAoIXJhcmVOb25Jbmhlcml0ZWREYXRhLT5zaGFkb3dEYXRhRXF1aXZhbGVudCgq
b3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLmdldCgpKSkKICAgICAgICAgICAgIHJldHVybiBT
dHlsZURpZmZlcmVuY2VMYXlvdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCmluZGV4IGJkYThjYTY5NWJmYTk2NDNiMjYzZjk5NjcyMjliNzEyZWUxNTlk
NzQuLjk0YzU1MWEzZDc0ZDg0ZjdkY2NkNWQ1ODI3NGI3MmFjMmE4OWUxYTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC00OSw2ICs0OSw3IEBA
CiAjaW5jbHVkZSAiU3R5bGVCYWNrZ3JvdW5kRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlQm94RGF0
YS5oIgogI2luY2x1ZGUgIlN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIgorI2luY2x1
ZGUgIlN0eWxlRmxleGlibGVCb3hEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRh
LmgiCiAjaW5jbHVkZSAiU3R5bGVNYXJxdWVlRGF0YS5oIgogI2luY2x1ZGUgIlN0eWxlTXVsdGlD
b2xEYXRhLmgiCkBAIC02NzAsNiArNjcxLDEzIEBAIHB1YmxpYzoKICAgICBFQm94T3JpZW50IGJv
eE9yaWVudCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3hPcmllbnQ+KHJhcmVOb25J
bmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC0+b3JpZW50KTsgfQogICAgIEVC
b3hBbGlnbm1lbnQgYm94UGFjaygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3hBbGln
bm1lbnQ+KHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveC0+cGFj
ayk7IH0KIAorI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgZmxvYXQgZmxleGJveFdpZHRo
UG9zaXRpdmVGbGV4KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxl
eGlibGVCb3gtPm1fd2lkdGhQb3NpdGl2ZUZsZXg7IH0KKyAgICBmbG9hdCBmbGV4Ym94V2lkdGhO
ZWdhdGl2ZUZsZXgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4
aWJsZUJveC0+bV93aWR0aE5lZ2F0aXZlRmxleDsgfQorICAgIGZsb2F0IGZsZXhib3hIZWlnaHRQ
b3NpdGl2ZUZsZXgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4
aWJsZUJveC0+bV9oZWlnaHRQb3NpdGl2ZUZsZXg7IH0KKyAgICBmbG9hdCBmbGV4Ym94SGVpZ2h0
TmVnYXRpdmVGbGV4KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxl
eGlibGVCb3gtPm1faGVpZ2h0TmVnYXRpdmVGbGV4OyB9CisjZW5kaWYKKwogICAgIGNvbnN0IFNo
YWRvd0RhdGEqIGJveFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRh
LT5tX2JveFNoYWRvdy5nZXQoKTsgfQogICAgIHZvaWQgZ2V0Qm94U2hhZG93RXh0ZW50KGludCYg
dG9wLCBpbnQmIHJpZ2h0LCBpbnQmIGJvdHRvbSwgaW50JiBsZWZ0KSBjb25zdCB7IGdldFNoYWRv
d0V4dGVudChib3hTaGFkb3coKSwgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0KTsgfQogICAgIHZv
aWQgZ2V0Qm94U2hhZG93SG9yaXpvbnRhbEV4dGVudChpbnQmIGxlZnQsIGludCYgcmlnaHQpIGNv
bnN0IHsgZ2V0U2hhZG93SG9yaXpvbnRhbEV4dGVudChib3hTaGFkb3coKSwgbGVmdCwgcmlnaHQp
OyB9CkBAIC0xMDM4LDYgKzEwNDYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Qm94U2hhZG93
KFBhc3NPd25QdHI8U2hhZG93RGF0YT4sIGJvb2wgYWRkID0gZmFsc2UpOwogICAgIHZvaWQgc2V0
Qm94UmVmbGVjdChQYXNzUmVmUHRyPFN0eWxlUmVmbGVjdGlvbj4gcmVmbGVjdCkgeyBpZiAocmFy
ZU5vbkluaGVyaXRlZERhdGEtPm1fYm94UmVmbGVjdCAhPSByZWZsZWN0KSByYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9ib3hSZWZsZWN0ID0gcmVmbGVjdDsgfQogICAgIHZvaWQgc2V0
Qm94U2l6aW5nKEVCb3hTaXppbmcgcykgeyBTRVRfVkFSKG1fYm94LCBtX2JveFNpemluZywgcyk7
IH0KKyNpZiBFTkFCTEUoQ1NTM19GTEVYQk9YKQorICAgIHZvaWQgc2V0RmxleGJveFdpZHRoUG9z
aXRpdmVGbGV4KGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9mbGV4aWJsZUJveCwgbV93aWR0aFBvc2l0aXZlRmxleCwgZik7IH0KKyAgICB2b2lkIHNl
dEZsZXhib3hXaWR0aE5lZ2F0aXZlRmxleChmbG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fZmxleGlibGVCb3gsIG1fd2lkdGhOZWdhdGl2ZUZsZXgsIGYp
OyB9CisgICAgdm9pZCBzZXRGbGV4Ym94SGVpZ2h0UG9zaXRpdmVGbGV4KGZsb2F0IGYpIHsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV9oZWln
aHRQb3NpdGl2ZUZsZXgsIGYpOyB9CisgICAgdm9pZCBzZXRGbGV4Ym94SGVpZ2h0TmVnYXRpdmVG
bGV4KGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9m
bGV4aWJsZUJveCwgbV9oZWlnaHROZWdhdGl2ZUZsZXgsIGYpOyB9CisjZW5kaWYKICAgICB2b2lk
IHNldE1hcnF1ZWVJbmNyZW1lbnQoY29uc3QgTGVuZ3RoJiBmKSB7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFycXVlZSwgaW5jcmVtZW50LCBmKTsgfQogICAgIHZv
aWQgc2V0TWFycXVlZVNwZWVkKGludCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEu
YWNjZXNzKCktPm1fbWFycXVlZSwgc3BlZWQsIGYpOyB9CiAgICAgdm9pZCBzZXRNYXJxdWVlRGly
ZWN0aW9uKEVNYXJxdWVlRGlyZWN0aW9uIGQpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBkaXJlY3Rpb24sIGQpOyB9CkBAIC0xMjcxLDYgKzEyODUs
MTAgQEAgcHVibGljOgogICAgIHN0YXRpYyBpbnQgaW5pdGlhbEJveE9yZGluYWxHcm91cCgpIHsg
cmV0dXJuIDE7IH0KICAgICBzdGF0aWMgRUJveFNpemluZyBpbml0aWFsQm94U2l6aW5nKCkgeyBy
ZXR1cm4gQ09OVEVOVF9CT1g7IH0KICAgICBzdGF0aWMgU3R5bGVSZWZsZWN0aW9uKiBpbml0aWFs
Qm94UmVmbGVjdCgpIHsgcmV0dXJuIDA7IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZsZXhi
b3hXaWR0aFBvc2l0aXZlRmxleCgpIHsgcmV0dXJuIDAuMDsgfQorICAgIHN0YXRpYyBmbG9hdCBp
bml0aWFsRmxleGJveFdpZHRoTmVnYXRpdmVGbGV4KCkgeyByZXR1cm4gMC4wOyB9CisgICAgc3Rh
dGljIGZsb2F0IGluaXRpYWxGbGV4Ym94SGVpZ2h0UG9zaXRpdmVGbGV4KCkgeyByZXR1cm4gMC4w
OyB9CisgICAgc3RhdGljIGZsb2F0IGluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KCkg
eyByZXR1cm4gMC4wOyB9CiAgICAgc3RhdGljIGludCBpbml0aWFsTWFycXVlZUxvb3BDb3VudCgp
IHsgcmV0dXJuIC0xOyB9CiAgICAgc3RhdGljIGludCBpbml0aWFsTWFycXVlZVNwZWVkKCkgeyBy
ZXR1cm4gODU7IH0KICAgICBzdGF0aWMgTGVuZ3RoIGluaXRpYWxNYXJxdWVlSW5jcmVtZW50KCkg
eyByZXR1cm4gTGVuZ3RoKDYsIEZpeGVkKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCmluZGV4IGYwNDk3MTMzZTc1ZmNlZmY4Nzk0MTMy
NGFiNWNmODhkZmZhMTg5YTguLjRkYjQyMGNjMmM4MjZjZTA1ZDIzYzNkYzBiMDYwY2MxN2IzOTYy
MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUFsbElu
T25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9u
ZS5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJTdHlsZUJveERhdGEuY3BwIgogI2lu
Y2x1ZGUgIlN0eWxlQ2FjaGVkSW1hZ2UuY3BwIgogI2luY2x1ZGUgIlN0eWxlRGVwcmVjYXRlZEZs
ZXhpYmxlQm94RGF0YS5jcHAiCisjaW5jbHVkZSAiU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIgog
I2luY2x1ZGUgIlN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIgogI2luY2x1ZGUgIlN0eWxlSW5oZXJp
dGVkRGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVNYXJxdWVlRGF0YS5jcHAiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YWU1MWYxY2QxZGU3NmZhZmY4YTA0NGQ4YTI0ZDMwM2ZiMWM4MzUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxl
eGlibGVCb3hEYXRhLmNwcApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDExIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqICBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiAgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiAgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAq
ICAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiAgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiAgQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqICAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICoKKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU3R5bGVGbGV4aWJsZUJveERhdGEuaCIK
KworI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCisKKyNpZiBFTkFCTEUoQ1NTM19GTEVYQk9YKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1N0eWxlRmxleGlibGVCb3hEYXRhOjpTdHlsZUZsZXhp
YmxlQm94RGF0YSgpCisgICAgOiBtX3dpZHRoUG9zaXRpdmVGbGV4KFJlbmRlclN0eWxlOjppbml0
aWFsRmxleGJveFdpZHRoUG9zaXRpdmVGbGV4KCkpCisgICAgLCBtX3dpZHRoTmVnYXRpdmVGbGV4
KFJlbmRlclN0eWxlOjppbml0aWFsRmxleGJveFdpZHRoTmVnYXRpdmVGbGV4KCkpCisgICAgLCBt
X2hlaWdodFBvc2l0aXZlRmxleChSZW5kZXJTdHlsZTo6aW5pdGlhbEZsZXhib3hIZWlnaHRQb3Np
dGl2ZUZsZXgoKSkKKyAgICAsIG1faGVpZ2h0TmVnYXRpdmVGbGV4KFJlbmRlclN0eWxlOjppbml0
aWFsRmxleGJveEhlaWdodE5lZ2F0aXZlRmxleCgpKQoreworfQorCitTdHlsZUZsZXhpYmxlQm94
RGF0YTo6U3R5bGVGbGV4aWJsZUJveERhdGEoY29uc3QgU3R5bGVGbGV4aWJsZUJveERhdGEmIG8p
CisgICAgOiBSZWZDb3VudGVkPFN0eWxlRmxleGlibGVCb3hEYXRhPigpCisgICAgLCBtX3dpZHRo
UG9zaXRpdmVGbGV4KG8ubV93aWR0aFBvc2l0aXZlRmxleCkKKyAgICAsIG1fd2lkdGhOZWdhdGl2
ZUZsZXgoby5tX3dpZHRoTmVnYXRpdmVGbGV4KQorICAgICwgbV9oZWlnaHRQb3NpdGl2ZUZsZXgo
by5tX2hlaWdodFBvc2l0aXZlRmxleCkKKyAgICAsIG1faGVpZ2h0TmVnYXRpdmVGbGV4KG8ubV9o
ZWlnaHROZWdhdGl2ZUZsZXgpCit7Cit9CisKK2Jvb2wgU3R5bGVGbGV4aWJsZUJveERhdGE6Om9w
ZXJhdG9yPT0oY29uc3QgU3R5bGVGbGV4aWJsZUJveERhdGEmIG8pIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fd2lkdGhQb3NpdGl2ZUZsZXggPT0gby5tX3dpZHRoUG9zaXRpdmVGbGV4ICYmIG1fd2lk
dGhOZWdhdGl2ZUZsZXggPT0gby5tX3dpZHRoTmVnYXRpdmVGbGV4CisgICAgICAgICYmIG1faGVp
Z2h0UG9zaXRpdmVGbGV4ID09IG8ubV9oZWlnaHRQb3NpdGl2ZUZsZXggJiYgbV9oZWlnaHROZWdh
dGl2ZUZsZXggPT0gby5tX2hlaWdodE5lZ2F0aXZlRmxleDsKK30KKworfQorCisjZW5kaWYgLy8g
RU5BQkxFKENTUzNfRkxFWEJPWCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTcwMTk5MGQwM2M0YTM0
NTQ5ODQwZGUxMDhjZjI3M2Q1NTM1MGZmZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oCkBAIC0wLDAgKzEsNjEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiAgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAorICogIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqICBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkK
KyAqICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUworICogIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqICBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04KKyAqICBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTCisgKiAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpZm5kZWYgU3R5bGVGbGV4aWJsZUJveERhdGFf
aAorI2RlZmluZSBTdHlsZUZsZXhpYmxlQm94RGF0YV9oCisKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKKyNpZiBFTkFCTEUoQ1NTM19G
TEVYQk9YKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFN0eWxlRmxleGlibGVCb3hE
YXRhIDogcHVibGljIFJlZkNvdW50ZWQ8U3R5bGVGbGV4aWJsZUJveERhdGE+IHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdHlsZUZsZXhpYmxlQm94RGF0YT4gY3JlYXRlKCkgeyBy
ZXR1cm4gYWRvcHRSZWYobmV3IFN0eWxlRmxleGlibGVCb3hEYXRhKTsgfQorICAgIFBhc3NSZWZQ
dHI8U3R5bGVGbGV4aWJsZUJveERhdGE+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihu
ZXcgU3R5bGVGbGV4aWJsZUJveERhdGEoKnRoaXMpKTsgfQorCisgICAgYm9vbCBvcGVyYXRvcj09
KGNvbnN0IFN0eWxlRmxleGlibGVCb3hEYXRhJikgY29uc3Q7CisgICAgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFN0eWxlRmxleGlibGVCb3hEYXRhJiBvKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuICEoKnRoaXMgPT0gbyk7CisgICAgfQorCisgICAgZmxvYXQgbV93aWR0aFBvc2l0aXZlRmxl
eDsKKyAgICBmbG9hdCBtX3dpZHRoTmVnYXRpdmVGbGV4OworICAgIGZsb2F0IG1faGVpZ2h0UG9z
aXRpdmVGbGV4OworICAgIGZsb2F0IG1faGVpZ2h0TmVnYXRpdmVGbGV4OworCitwcml2YXRlOgor
ICAgIFN0eWxlRmxleGlibGVCb3hEYXRhKCk7CisgICAgU3R5bGVGbGV4aWJsZUJveERhdGEoY29u
c3QgU3R5bGVGbGV4aWJsZUJveERhdGEmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisKKyNlbmRpZiAvLyBTdHlsZUZsZXhp
YmxlQm94RGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggODEwNjcwNzIxYWM5OGFh
NWQ2Yjg1MTc0Mzk0MjYwMGZkZTdjMzRjZC4uNzQ4N2FkMDU1MTQ0MzJmYWYzMmI3Y2QwMzVkZmI4
ZjhiZDcwM2Y0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcApAQCAtNjMsNiArNjMsOSBAQCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhKGNvbnN0
IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICwgbGluZUNsYW1wKG8ubGluZUNsYW1wKQogICAg
ICwgb3BhY2l0eShvLm9wYWNpdHkpCiAgICAgLCBtX2RlcHJlY2F0ZWRGbGV4aWJsZUJveChvLm1f
ZGVwcmVjYXRlZEZsZXhpYmxlQm94KQorI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgLCBt
X2ZsZXhpYmxlQm94KG8ubV9mbGV4aWJsZUJveCkKKyNlbmRpZgogICAgICwgbV9tYXJxdWVlKG8u
bV9tYXJxdWVlKQogICAgICwgbV9tdWx0aUNvbChvLm1fbXVsdGlDb2wpCiAgICAgLCBtX3RyYW5z
Zm9ybShvLm1fdHJhbnNmb3JtKQpAQCAtMTA5LDYgKzExMiw5IEBAIGJvb2wgU3R5bGVSYXJlTm9u
SW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRh
JiBvKSBjCiAjZW5kaWYKICAgICAgICAgJiYgb3BhY2l0eSA9PSBvLm9wYWNpdHkKICAgICAgICAg
JiYgbV9kZXByZWNhdGVkRmxleGlibGVCb3ggPT0gby5tX2RlcHJlY2F0ZWRGbGV4aWJsZUJveAor
I2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgICAgICYmIG1fZmxleGlibGVCb3ggPT0gby5t
X2ZsZXhpYmxlQm94CisjZW5kaWYKICAgICAgICAgJiYgbV9tYXJxdWVlID09IG8ubV9tYXJxdWVl
CiAgICAgICAgICYmIG1fbXVsdGlDb2wgPT0gby5tX211bHRpQ29sCiAgICAgICAgICYmIG1fdHJh
bnNmb3JtID09IG8ubV90cmFuc2Zvcm0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCmluZGV4IDY4NDdhNmUx
NTBhMTA0NmVkMzM1MzNmMjU3ZjI4M2Y0NzFkNDcyMTQuLmRjNDMyMmFmODcwM2U2ZmRkMTk4M2Fi
ODVhNGM0ZDQ0ZTQ4NGJlYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaApAQCAtNDIsNiArNDIsNyBA
QCBjbGFzcyBBbmltYXRpb25MaXN0OwogY2xhc3MgQ1NTU3R5bGVTZWxlY3RvcjsKIGNsYXNzIFNo
YWRvd0RhdGE7CiBjbGFzcyBTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE7CitjbGFzcyBT
dHlsZUZsZXhpYmxlQm94RGF0YTsKIGNsYXNzIFN0eWxlTWFycXVlZURhdGE7CiBjbGFzcyBTdHls
ZU11bHRpQ29sRGF0YTsKIGNsYXNzIFN0eWxlUmVmbGVjdGlvbjsKQEAgLTkwLDYgKzkxLDkgQEAg
cHVibGljOgogICAgIGZsb2F0IG9wYWNpdHk7IC8vIFdoZXRoZXIgb3Igbm90IHdlJ3JlIHRyYW5z
cGFyZW50LgogCiAgICAgRGF0YVJlZjxTdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGE+IG1f
ZGVwcmVjYXRlZEZsZXhpYmxlQm94OyAvLyBGbGV4aWJsZSBib3ggcHJvcGVydGllcworI2lmIEVO
QUJMRShDU1MzX0ZMRVhCT1gpCisgICAgRGF0YVJlZjxTdHlsZUZsZXhpYmxlQm94RGF0YT4gbV9m
bGV4aWJsZUJveDsKKyNlbmRpZgogICAgIERhdGFSZWY8U3R5bGVNYXJxdWVlRGF0YT4gbV9tYXJx
dWVlOyAvLyBNYXJxdWVlIHByb3BlcnRpZXMKICAgICBEYXRhUmVmPFN0eWxlTXVsdGlDb2xEYXRh
PiBtX211bHRpQ29sOyAvLyAgQ1NTMyBtdWx0aWNvbCBwcm9wZXJ0aWVzCiAgICAgRGF0YVJlZjxT
dHlsZVRyYW5zZm9ybURhdGE+IG1fdHJhbnNmb3JtOyAvLyBUcmFuc2Zvcm0gcHJvcGVydGllcyAo
cm90YXRlLCBzY2FsZSwgc2tldywgZXRjLikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100359</attachid>
            <date>2011-07-11 14:00:55 -0700</date>
            <delta_ts>2011-07-11 17:23:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64038-20110711140023.patch</filename>
            <type>text/plain</type>
            <size>35972</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3NzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjI5OTgy
YWQ5NjFiMDNmMzQwMjBiMzA3ZjZmZjAwOWMxNGZhMjNiZi4uNTY0YjRjMWM4OTA3YWE1ODRiZDY2
ZWE0MGU1YTJjNGQ3NWExNmNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNzgsNiArMTI3
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hE
YXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwCisgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVy
aXRlZERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODAzNDI1NzA2MWEyMjdlNmNhZmE5ZTJmNjE3ZmE1ODAzYzY2ODM0Yi4uM2Jh
NmM5OTAyOGQwYTA3MmQwNzU2YmNjNTc1MDk0N2FjMmM2YjNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY4IEBACisyMDExLTA3LTExICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUGFzcyAtd2Via2l0LWZsZXgoKSB2YWx1ZXMgb24gdG8gUmVuZGVyU3R5bGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB0aGlzIGp1c3QgY29waWVzIGRhdGEgdG8gUmVuZGVyU3R5bGUsIHdoaWNoIHdlIGNhbgorICAg
ICAgICB0aGVuIGFjY2VzcyB3aGVuIGRvaW5nIGxheW91dC4gIFRlc3RzIHdpbGwgY29tZSB3aXRo
IHRoZSBsYXlvdXQKKyAgICAgICAgY2hhbmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTRmxleFZhbHVlLmg6IFN3aXRjaCBmcm9tIGRvdWJsZSB0byBmbG9h
dCBzaW5jZSB0aGF0J3MgcGxlbnR5IG9mCisgICAgICAgICAgICBwcmVjaXNpb24gZm9yIGZsZXgg
dmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjppc0ZsZXhWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGbGV4VmFsdWU6OnBvc2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4
VmFsdWU6Om5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4VmFsdWU6OnBy
ZWZlcnJlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpDU1NGbGV4VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUZsZXgpOiBjbGFtcFRvRmxvYXQKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVB
cHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlMZW5ndGg6
OmFwcGx5VmFsdWUpOiBIYW5kbGUgd2lkdGhzIGFuZCBoZWlnaHRzCisgICAgICAgICAgICB0aGF0
IGFyZSBmbGV4IHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0
eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZsZXhWYWx1ZSk6IEFsbG93IHR5cGUgY2hlY2tp
bmcgZm9yIGZsZXggdmFsdWVzLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgc2V0dGVycyBhbmQgZ2V0dGVycy4gIFRoZQorICAgICAg
ICAgICAgcHJlZmVycmVkIHNpemUgaXMgc3RvcmVkIGluIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHNv
IHdlIGRvbid0IG5lZWQKKyAgICAgICAgICAgIGEgbmV3IHNldHRlci9nZXR0ZXIgZm9yIHRob3Nl
LgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmZsZXhib3hXaWR0aFBvc2l0aXZl
RmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6ZmxleGJveFdpZHRoTmVn
YXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4Ym94SGVp
Z2h0UG9zaXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4
Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJp
dGVkRmxhZ3M6OnNldEZsZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodFBvc2l0aXZlRmxleCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodE5lZ2F0aXZlRmxleCk6
CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZsZXhib3hXaWR0aFBv
c2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZs
ZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFn
czo6aW5pdGlhbEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHA6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUZsZXhpYmxlQm94RGF0YTo6U3R5bGVGbGV4aWJsZUJveERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oOiBBZGRlZC4gTmV3IGZpbGUg
Zm9yIGZsZXhib3gKKyAgICAgICAgICAgIGRhdGEuIFdlIHdpbGwgYmUgYWRkaW5nIGZpZWxkcyBh
cyB3ZSBpbXBsZW1lbnQgbW9yZSBvZiB0aGUgc3BlYy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
RmxleGlibGVCb3hEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJs
ZUJveERhdGE6OmNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6
Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKwogMjAxMS0wNy0wOCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGlubmVyVGV4dEVsZW1lbnQo
KSBmcm9tIFJlbmRlclRleHRDb250cm9sIHRvIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2NGRlYTg4YjUwNzU1NGFhMGExMGRlNWY0
MzI3MWZkYWQyYWY3NDhmLi40ZGFkNzg3NzE5MTA4MzA5M2JlNmEyMjE0NTAzODQ5MTVlNWZlMmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMxMDksNiArMzEwOSw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAorCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDA2YTI5OTYyODZlM2JlMDNiYWYyMWVjY2JkNjdkMzg5N2RhNTdjMGMuLmQxNDJmZDk4MmU2
OGQ2NTJjMzRkYmUwMDBjNTZlYTYwM2I2ZWJhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwMTUs
NiArMTAxNSw3IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVnaW9u
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJs
ZUJveERhdGEuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZElt
YWdlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCcsCkBAIC01NDQz
LDYgKzU0NDQsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJv
eERhdGEuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJv
eERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJ
bWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERh
dGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCA1MGI3ZDViZThiMTU1OGMxYTYyNGEzYzkxY2VmNzkwZWQy
YTczMDkxLi45ZDMwYjA2YmNjZmQ1OTI2MWQyNGJmMGVkYzMzZjQ5MTE0NDk3MjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtMTE4MCw2ICsxMTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQm94RGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hl
ZEltYWdlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YS5jcHAgXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5j
cHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9z
dHlsZS9TdHlsZU1hcnF1ZWVEYXRhLmNwcCBcCkBAIC0yMjI3LDYgKzIyMjgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZURl
cHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxl
eGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdl
LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGYzZjQ0ZjZjMWZmMzQ3MTdmMjJiMDkyNWNj
Y2QxNTZhOTU4ODYzZDkuLmIwOWU2ZTg2NzRhNGE3YzZhMWYwNzE4NDhiYTVhZTE2MjZkYmYzODkg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00
MDMyNyw2ICs0MDMyNyw2MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlRmxleGlibGVCb3hEYXRhLmNw
cCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxTdHlsZUZsZXhpYmxlQm94RGF0YS5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0
eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDU4NjU4MGQzNzVjMGE1MWZmZTM4NzZjZjA5NmY3ZGYyZDkyMzcwN2YuLjNiMGQ4ZmY2YWQ4
ZGRkNjkxMmEwMjkwYzViOTRiODk5NDBmYjU5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzksNiArMTQzOSw4IEBACiAJ
CTUxRkI1NTA1MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDMxMTNFM0U5MTAwODIx
MTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgKi87IH07CiAJCTUyMUQ0NkY2MTFBRUM5ODEwMDUxNDYx
MyAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyMUQ0NkY1MTFBRUM5ODEwMDUxNDYxMyAvKiBLaWxsUmluZ01hYy5tbSAqLzsg
fTsKIAkJNTIxRDQ2RjgxMUFFQzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjFENDZGNzExQUVDOUIxMDA1MTQ2
MTMgLyogS2lsbFJpbmcuaCAqLzsgfTsKKwkJNTMxNzYxMjIxM0M1MTY2OTAwMjZFNDU0IC8qIFN0
eWxlRmxleGlibGVCb3hEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94
RGF0YS5jcHAgKi87IH07CisJCTUzMTc2MTIzMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhp
YmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi87
IH07CiAJCTUzMjVFNEQ3MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyNUU0RDUxM0E2Qzg4
QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5jcHAgKi87IH07CiAJCTUzMjVFNEQ4MTNBNkM4OEIw
MDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUzMjVFNEQ2MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUu
aCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcw
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwpAQCAtNzk4NCw2ICs3
OTg2LDggQEAKIAkJNTFGQjU1MDMxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Nsb3NlRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyog
S2lsbFJpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBL
aWxsUmluZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIxRDQ2RjcxMUFF
QzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzMTc2MTIwMTND
NTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHBhdGggPSBz
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUZsZXhpYmxlQm94RGF0YS5oOyBw
YXRoID0gc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTMyNUU0RDUxM0E2Qzg4QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NGbGV4VmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzI1RTRENjEzQTZDODhCMDA0MDRBMzYgLyogQ1NT
RmxleFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZsZXhWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUz
RDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xODYwMCw2ICsxODYw
NCw4IEBACiAJCQkJQkM1RUI2N0UwRTgxRDRBNzAwQjI1OTY1IC8qIFN0eWxlRGFzaGJvYXJkUmVn
aW9uLmggKi8sCiAJCQkJQkM1RUI4QjYwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxlRGVwcmVjYXRl
ZEZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCiAJCQkJQkM1RUI4QjcwRTgyMDFCRDAwQjI1OTY1IC8q
IFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oICovLAorCQkJCTUzMTc2MTIwMTNDNTE2
NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCisJCQkJNTMxNzYxMjEx
M0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi8sCiAJCQkJQkNFRjQ0
N0MwRTY3NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCUJD
RUY0NDQ5MEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJ
QkNFRjQzQ0UwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLywKQEAgLTIyNjI1LDYg
KzIyNjMxLDcgQEAKIAkJCQlBOEM0QTdGRDA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QjkwRTgyMDFCRDAwQjI1OTY1IC8q
IFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTMx
NzYxMjMxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0VGNDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzQ0YwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxl
SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MzA0MEU4MkYxRTYwMEU3Rjk3NSAvKiBT
dHlsZUluaGVyaXRlZERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MTIsNiArMjU1MTksNyBA
QAogCQkJCUE4QzRBN0ZFMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUFBNEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI4QjgwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxl
RGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE3NjEy
MjEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNFRjQ0N0QwRTY3NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMjczMDMwRTgyRjFFNjAwRTdGOTc1IC8qIFN0eWxl
SW5oZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNzM0RDBBMTk5Qzc3MDA3
RkI4QzUgLyogU3R5bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZsZXhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZsZXhW
YWx1ZS5oCmluZGV4IGE3YzFmODJlNmRhMzVkZTVmYTY3ZjMwZGJjMmMyOTBhOTllNzUyZjYuLmEw
M2JmZmMyYjlmYmQyMTNlN2FjOTJiNTA5NGFmODI4YzgwMDA4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGbGV4VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
RmxleFZhbHVlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NGbGV4VmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPENTU0ZsZXhWYWx1ZT4gY3JlYXRlKGRvdWJsZSBwb3NpdGl2ZUZsZXgsIGRvdWJs
ZSBuZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHByZWZlcnJlZFNpemUpCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTRmxleFZhbHVlPiBjcmVhdGUoZmxvYXQgcG9zaXRpdmVGbGV4
LCBmbG9hdCBuZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByZWZl
cnJlZFNpemUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0ZsZXhWYWx1
ZShwb3NpdGl2ZUZsZXgsIG5lZ2F0aXZlRmxleCwgcHJlZmVycmVkU2l6ZSkpOwogICAgIH0KQEAg
LTQ3LDE3ICs0NywyMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4VmFsdWUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisKKyAgICBmbG9hdCBwb3NpdGl2ZUZsZXgoKSB7IHJldHVybiBtX3Bvc2l0aXZlRmxl
eDsgfQorICAgIGZsb2F0IG5lZ2F0aXZlRmxleCgpIHsgcmV0dXJuIG1fbmVnYXRpdmVGbGV4OyB9
CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByZWZlcnJlZFNpemUoKSB7IHJldHVybiBtX3ByZWZl
cnJlZFNpemUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBDU1NGbGV4VmFsdWUoZG91YmxlIHBv
c2l0aXZlRmxleCwgZG91YmxlIG5lZ2F0aXZlRmxleCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcHJl
ZmVycmVkU2l6ZSkKKyAgICBDU1NGbGV4VmFsdWUoZmxvYXQgcG9zaXRpdmVGbGV4LCBmbG9hdCBu
ZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByZWZlcnJlZFNpemUp
CiAgICAgICAgIDogbV9wb3NpdGl2ZUZsZXgocG9zaXRpdmVGbGV4KQogICAgICAgICAsIG1fbmVn
YXRpdmVGbGV4KG5lZ2F0aXZlRmxleCkKICAgICAgICAgLCBtX3ByZWZlcnJlZFNpemUocHJlZmVy
cmVkU2l6ZSkKICAgICB7CiAgICAgfQogCi0gICAgZG91YmxlIG1fcG9zaXRpdmVGbGV4OwotICAg
IGRvdWJsZSBtX25lZ2F0aXZlRmxleDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fcHJlZmVycmVk
U2l6ZTsKKyAgICBmbG9hdCBtX3Bvc2l0aXZlRmxleDsKKyAgICBmbG9hdCBtX25lZ2F0aXZlRmxl
eDsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcHJlZmVycmVkU2l6ZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTljZGMwMmE0NzFlMzNhZTA4OWRiYWYy
Y2E1NTcwNGZkOTU5MTVhMC4uODM5YmNiM2I4YjYzZTBjMWFiOWI4NTE4NTBmNmYzYzQzMGJkZjI2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTc5Miw3ICs3OTIsNyBAQCB2b2lkIENT
U1BhcnNlcjo6Y2hlY2tGb3JPcnBoYW5lZFVuaXRzKCkKICAgICB9CiB9CiAKLWlubGluZSBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlVmFsaWRQcmltaXRpdmUoaW50IGlkLCBD
U1NQYXJzZXJWYWx1ZSogdmFsdWUpCitpbmxpbmUgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gQ1NTUGFyc2VyOjpwYXJzZVZhbGlkUHJpbWl0aXZlKGludCBpZCwgQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlKQogewogICAgIGlmIChpZCkKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKGlkKTsKQEAgLTQ4MDgsNyArNDgwOCw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZUZsZXgoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSB1bnNldFZhbHVlID0gLTE7CiAgICAgZG91YmxlIHBvc2l0aXZl
RmxleCA9IHVuc2V0VmFsdWU7CiAgICAgZG91YmxlIG5lZ2F0aXZlRmxleCA9IHVuc2V0VmFsdWU7
Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBwcmVmZXJyZWRTaXplOworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcHJlZmVycmVkU2l6ZTsKIAogICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSog
YXJnID0gYXJncy0+Y3VycmVudCgpKSB7CiAgICAgICAgIGlmICh2YWxpZFVuaXQoYXJnLCBGTnVt
YmVyIHwgRk5vbk5lZywgbV9zdHJpY3QpKSB7CkBAIC00ODM5LDcgKzQ4MzksNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VGbGV4KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGlmICgh
cHJlZmVycmVkU2l6ZSkKICAgICAgICAgcHJlZmVycmVkU2l6ZSA9IHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAKLSAgICBSZWZQdHI8
Q1NTRmxleFZhbHVlPiBmbGV4ID0gQ1NTRmxleFZhbHVlOjpjcmVhdGUocG9zaXRpdmVGbGV4LCBu
ZWdhdGl2ZUZsZXgsIHByZWZlcnJlZFNpemUpOworICAgIFJlZlB0cjxDU1NGbGV4VmFsdWU+IGZs
ZXggPSBDU1NGbGV4VmFsdWU6OmNyZWF0ZShjbGFtcFRvRmxvYXQocG9zaXRpdmVGbGV4KSwgY2xh
bXBUb0Zsb2F0KG5lZ2F0aXZlRmxleCksIHByZWZlcnJlZFNpemUpOwogICAgIGFkZFByb3BlcnR5
KHByb3BJZCwgZmxleC5yZWxlYXNlKCksIGltcG9ydGFudCk7CiAgICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGM4YjRhZDM2MjUwZTlmNzI2YmQ5YThhZDNk
ZjExM2YwNDU2NDIzYTYuLjlhZTZhODg2ZjY3MDk4YzY4N2ZhMTIyMDI5MGNmMDFmMmViMjhiNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBzdGF0aWMgYm9vbCBwYXJzZVZhbHVlKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgaW50IHByb3BJZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQsIGJvb2wg
c3RyaWN0KTsKICAgICAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihSR0JBMzImIGNvbG9yLCBj
b25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNlKTsKICAgICAgICAgc3RhdGljIGJvb2wg
cGFyc2VTeXN0ZW1Db2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmLCBEb2N1bWVudCop
OwotICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVZhbGlkUHJpbWl0aXZlKGludCBw
cm9wSWQsIENTU1BhcnNlclZhbHVlKik7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHBhcnNlVmFsaWRQcmltaXRpdmUoaW50IHByb3BJZCwgQ1NTUGFyc2VyVmFsdWUqKTsK
ICAgICAgICAgYm9vbCBwYXJzZUNvbG9yKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+
KiBzdHlsZVNvdXJjZURhdGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVk
aWFMaXN0KiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFw
cGx5UHJvcGVydHkuY3BwCmluZGV4IDg5MjY1YjBlMzM5MTM3ZDM1MDQ4YTI2YThmYzYxOTk4Zjll
NjhkMjcuLmFlOWJmNTgyMDFkYjA0NjY0ZmM0ZjQyN2UzZjVkZmVhYTExNDMyYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVBcHBseVByb3BlcnR5
LmgiCiAKKyNpbmNsdWRlICJDU1NGbGV4VmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlTGlzdC5oIgpAQCAtMjEyLDExICsyMTMsMTUgQEAgZW51bSBMZW5ndGhJbnRyaW5z
aWMge0ludHJpbnNpY0Rpc2FibGVkID0gMCwgSW50cmluc2ljRW5hYmxlZCA9IDF9OwogZW51bSBM
ZW5ndGhNaW5JbnRyaW5zaWMge01pbkludHJpbnNpY0Rpc2FibGVkID0gMCwgTWluSW50cmluc2lj
RW5hYmxlZCA9IDF9OwogZW51bSBMZW5ndGhOb25lIHtOb25lRGlzYWJsZWQgPSAwLCBOb25lRW5h
YmxlZCA9IDF9OwogZW51bSBMZW5ndGhVbmRlZmluZWQge1VuZGVmaW5lZERpc2FibGVkID0gMCwg
VW5kZWZpbmVkRW5hYmxlZCA9IDF9OworZW51bSBMZW5ndGhGbGV4V2lkdGgge0ZsZXhXaWR0aERp
c2FibGVkID0gMCwgRmxleFdpZHRoRW5hYmxlZCA9IDF9OworZW51bSBMZW5ndGhGbGV4SGVpZ2h0
IHtGbGV4SGVpZ2h0RGlzYWJsZWQgPSAwLCBGbGV4SGVpZ2h0RW5hYmxlZCA9IDF9OwogdGVtcGxh
dGUgPExlbmd0aEF1dG8gYXV0b0VuYWJsZWQgPSBBdXRvRGlzYWJsZWQsCiAgICAgICAgICAgTGVu
Z3RoSW50cmluc2ljIGludHJpbnNpY0VuYWJsZWQgPSBJbnRyaW5zaWNEaXNhYmxlZCwKICAgICAg
ICAgICBMZW5ndGhNaW5JbnRyaW5zaWMgbWluSW50cmluc2ljRW5hYmxlZCA9IE1pbkludHJpbnNp
Y0Rpc2FibGVkLAogICAgICAgICAgIExlbmd0aE5vbmUgbm9uZUVuYWJsZWQgPSBOb25lRGlzYWJs
ZWQsCi0gICAgICAgICAgTGVuZ3RoVW5kZWZpbmVkIG5vbmVVbmRlZmluZWQgPSBVbmRlZmluZWRE
aXNhYmxlZD4KKyAgICAgICAgICBMZW5ndGhVbmRlZmluZWQgbm9uZVVuZGVmaW5lZCA9IFVuZGVm
aW5lZERpc2FibGVkLAorICAgICAgICAgIExlbmd0aEZsZXhXaWR0aCBjYW5CZUZsZXhXaWR0aCA9
IEZsZXhXaWR0aERpc2FibGVkLAorICAgICAgICAgIExlbmd0aEZsZXhIZWlnaHQgY2FuQmVGbGV4
SGVpZ2h0ID0gRmxleEhlaWdodERpc2FibGVkPgogY2xhc3MgQXBwbHlQcm9wZXJ0eUxlbmd0aCA6
IHB1YmxpYyBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8TGVuZ3RoPiB7CiBwdWJsaWM6CiAgICAg
QXBwbHlQcm9wZXJ0eUxlbmd0aChHZXR0ZXJGdW5jdGlvbiBnZXR0ZXIsIFNldHRlckZ1bmN0aW9u
IHNldHRlciwgSW5pdGlhbEZ1bmN0aW9uIGluaXRpYWwpCkBAIC0yMjcsOCArMjMyLDI2IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5VmFsdWUoQ1NTU3R5bGVTZWxl
Y3Rvciogc2VsZWN0b3IsIENTU1ZhbHVlKiB2YWx1ZSkgY29uc3QKICAgICB7Ci0gICAgICAgIGlm
ICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKKyAgICAgICAgaWYgKCF2YWx1ZS0+aXNQcmlt
aXRpdmVWYWx1ZSgpKSB7CisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICAgICAgICAgIGlm
ICghY2FuQmVGbGV4V2lkdGggJiYgIWNhbkJlRmxleEhlaWdodCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgICAgICBpZiAoIXZhbHVlLT5pc0ZsZXhWYWx1ZSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgQ1NTRmxleFZhbHVlKiBmbGV4VmFsdWUgPSBz
dGF0aWNfY2FzdDxDU1NGbGV4VmFsdWUqPih2YWx1ZSk7CisgICAgICAgICAgICBhcHBseVZhbHVl
KHNlbGVjdG9yLCBmbGV4VmFsdWUtPnByZWZlcnJlZFNpemUoKSk7CisKKyAgICAgICAgICAgIGlm
IChjYW5CZUZsZXhXaWR0aCkgeworICAgICAgICAgICAgICAgIHNlbGVjdG9yLT5zdHlsZSgpLT5z
ZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoZmxleFZhbHVlLT5wb3NpdGl2ZUZsZXgoKSk7Cisg
ICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hXaWR0aE5lZ2F0aXZl
RmxleChmbGV4VmFsdWUtPm5lZ2F0aXZlRmxleCgpKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAo
Y2FuQmVGbGV4SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNl
dEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgoZmxleFZhbHVlLT5wb3NpdGl2ZUZsZXgoKSk7Cisg
ICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hIZWlnaHROZWdhdGl2
ZUZsZXgoZmxleFZhbHVlLT5uZWdhdGl2ZUZsZXgoKSk7CisgICAgICAgICAgICB9CisjZW5kaWYK
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogCiAgICAgICAgIENTU1ByaW1pdGl2ZVZh
bHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOwogICAgICAgICBpZiAobm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkgPT0gQ1NTVmFsdWVOb25lKQpAQCAtNjMxLDggKzY1NCw4IEBAIENTU1N0eWxlQXBwbHlQcm9w
ZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlCb3R0b20sIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkPigmUmVu
ZGVyU3R5bGU6OmJvdHRvbSwgJlJlbmRlclN0eWxlOjpzZXRCb3R0b20sICZSZW5kZXJTdHlsZTo6
aW5pdGlhbE9mZnNldCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUxlZnQs
IG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkPigmUmVuZGVyU3R5bGU6OmxlZnQs
ICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0KSk7CiAK
LSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXaWR0aCwgbmV3IEFwcGx5UHJvcGVy
dHlMZW5ndGg8QXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJs
ZWQ+KCZSZW5kZXJTdHlsZTo6d2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0V2lkdGgsICZSZW5kZXJT
dHlsZTo6aW5pdGlhbFNpemUpKTsKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlI
ZWlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNFbmFi
bGVkLCBNaW5JbnRyaW5zaWNFbmFibGVkPigmUmVuZGVyU3R5bGU6OmhlaWdodCwgJlJlbmRlclN0
eWxlOjpzZXRIZWlnaHQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFNpemUpKTsKKyAgICBzZXRQcm9w
ZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXaWR0aCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0
b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQsIE5vbmVEaXNh
YmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQsIEZsZXhXaWR0aEVuYWJsZWQ+KCZSZW5kZXJTdHlsZTo6
d2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0V2lkdGgsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFNpemUp
KTsKKyAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlIZWlnaHQsIG5ldyBBcHBseVBy
b3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRyaW5zaWNFbmFibGVkLCBNaW5JbnRyaW5zaWNF
bmFibGVkLCBOb25lRGlzYWJsZWQsIFVuZGVmaW5lZERpc2FibGVkLCBGbGV4V2lkdGhEaXNhYmxl
ZCwgRmxleEhlaWdodEVuYWJsZWQ+KCZSZW5kZXJTdHlsZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6
OnNldEhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6ZSkpOwogCiAgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4dEluZGVudCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8
PigmUmVuZGVyU3R5bGU6OnRleHRJbmRlbnQsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEluZGVudCwg
JlJlbmRlclN0eWxlOjppbml0aWFsVGV4dEluZGVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmlu
ZGV4IGRlNDZmZjllYTExN2UxMzQ3MDYyNjA0ODJjNDIxODQ4ZTRhZTdhMDkuLjEwYWMzNWMzYTI3
ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5ZjlmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01
NCw2ICs1NCw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0JvcmRlckltYWdlVmFs
dWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0N1cnNvcklt
YWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorI2lmIEVOQUJMRShDU1MzX0ZMRVhC
T1gpCisgICAgdmlydHVhbCBib29sIGlzRmxleFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KKyNlbmRpZgogICAgIHZpcnR1YWwgYm9vbCBpc0ZvbnRGYW1pbHlWYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzRm9udFZhbHVlKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNJbWFnZUdlbmVyYXRvclZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDNjMDMyNWM3ODhlNjRhYjlmODIxM2NjMjI3NTNkZWJm
NmU3NzEyMmMuLjQ1ZjcxZTEzOWIxMzhkM2I5MjMyZmViOWZlMjc4NjE2Zjk5ZjhiODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE4
LDYgKzExOCw5IEBAIEFMV0FZU19JTkxJTkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGJvb2wp
CiAgICAgc3Vycm91bmQuaW5pdCgpOwogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmluaXQoKTsK
ICAgICByYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9kZXByZWNhdGVkRmxleGlibGVC
b3guaW5pdCgpOworI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgcmFyZU5vbkluaGVyaXRl
ZERhdGEuYWNjZXNzKCktPm1fZmxleGlibGVCb3guaW5pdCgpOworI2VuZGlmCiAgICAgcmFyZU5v
bkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbWFycXVlZS5pbml0KCk7CiAgICAgcmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wuaW5pdCgpOwogICAgIHJhcmVOb25Jbmhl
cml0ZWREYXRhLmFjY2VzcygpLT5tX3RyYW5zZm9ybS5pbml0KCk7CkBAIC0zNTMsNiArMzU2LDEy
IEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5kZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSog
b3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2VkQ29uCiAgICAgICAgICAgICAmJiAqcmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpICE9ICpvdGhlci0+cmFyZU5v
bkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LmdldCgpKQogICAgICAgICAg
ICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKIAorI2lmIEVOQUJMRShDU1MzX0ZMRVhC
T1gpCisgICAgICAgIGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC5nZXQo
KSAhPSBvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZmxleGlibGVCb3guZ2V0KCkKKyAg
ICAgICAgICAgICYmICpyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC5nZXQoKSAh
PSAqb3RoZXItPnJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZsZXhpYmxlQm94LmdldCgpKQorICAg
ICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKKyNlbmRpZgorCiAgICAgICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGFuIG9wdGltaXplZCBmb3JtIG9mIGxheW91dCB0aGF0
IGp1c3QgcmVjb21wdXRlcyB2aXN1YWwgb3ZlcmZsb3cuCiAgICAgICAgIGlmICghcmFyZU5vbklu
aGVyaXRlZERhdGEtPnNoYWRvd0RhdGFFcXVpdmFsZW50KCpvdGhlci0+cmFyZU5vbkluaGVyaXRl
ZERhdGEuZ2V0KCkpKQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggM2Jl
ZDMwNTVhZmI5ZDI5YTIyMDk3MDQyYTllMTFjYTMzZjQyZTRjNi4uYTI5YmU4YTFkNzEyNDU4YmIz
OWNhZWRlZTM4NDU3OTljMWFiNDZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTdHlsZUJhY2tn
cm91bmREYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVCb3hEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVE
ZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmgiCisjaW5jbHVkZSAiU3R5bGVGbGV4aWJsZUJveERh
dGEuaCIKICNpbmNsdWRlICJTdHlsZUluaGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJTdHlsZU1h
cnF1ZWVEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVNdWx0aUNvbERhdGEuaCIKQEAgLTY3MCw2ICs2
NzEsMTMgQEAgcHVibGljOgogICAgIEVCb3hPcmllbnQgYm94T3JpZW50KCkgY29uc3QgeyByZXR1
cm4gc3RhdGljX2Nhc3Q8RUJveE9yaWVudD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVj
YXRlZEZsZXhpYmxlQm94LT5vcmllbnQpOyB9CiAgICAgRUJveEFsaWdubWVudCBib3hQYWNrKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUJveEFsaWdubWVudD4ocmFyZU5vbkluaGVyaXRl
ZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LT5wYWNrKTsgfQogCisjaWYgRU5BQkxFKENT
UzNfRkxFWEJPWCkKKyAgICBmbG9hdCBmbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC0+bV93aWR0aFBvc2l0
aXZlRmxleDsgfQorICAgIGZsb2F0IGZsZXhib3hXaWR0aE5lZ2F0aXZlRmxleCgpIGNvbnN0IHsg
cmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZsZXhpYmxlQm94LT5tX3dpZHRoTmVnYXRp
dmVGbGV4OyB9CisgICAgZmxvYXQgZmxleGJveEhlaWdodFBvc2l0aXZlRmxleCgpIGNvbnN0IHsg
cmV0dXJuIHJhcmVOb25Jbmhlcml0ZWREYXRhLT5tX2ZsZXhpYmxlQm94LT5tX2hlaWdodFBvc2l0
aXZlRmxleDsgfQorICAgIGZsb2F0IGZsZXhib3hIZWlnaHROZWdhdGl2ZUZsZXgoKSBjb25zdCB7
IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC0+bV9oZWlnaHROZWdh
dGl2ZUZsZXg7IH0KKyNlbmRpZgorCiAgICAgY29uc3QgU2hhZG93RGF0YSogYm94U2hhZG93KCkg
Y29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fYm94U2hhZG93LmdldCgpOyB9
CiAgICAgdm9pZCBnZXRCb3hTaGFkb3dFeHRlbnQoaW50JiB0b3AsIGludCYgcmlnaHQsIGludCYg
Ym90dG9tLCBpbnQmIGxlZnQpIGNvbnN0IHsgZ2V0U2hhZG93RXh0ZW50KGJveFNoYWRvdygpLCB0
b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQpOyB9CiAgICAgdm9pZCBnZXRCb3hTaGFkb3dIb3Jpem9u
dGFsRXh0ZW50KGludCYgbGVmdCwgaW50JiByaWdodCkgY29uc3QgeyBnZXRTaGFkb3dIb3Jpem9u
dGFsRXh0ZW50KGJveFNoYWRvdygpLCBsZWZ0LCByaWdodCk7IH0KQEAgLTEwNDMsNiArMTA1MSwx
MiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRCb3hTaGFkb3coUGFzc093blB0cjxTaGFkb3dEYXRh
PiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAgICAgdm9pZCBzZXRCb3hSZWZsZWN0KFBhc3NSZWZQdHI8
U3R5bGVSZWZsZWN0aW9uPiByZWZsZWN0KSB7IGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9i
b3hSZWZsZWN0ICE9IHJlZmxlY3QpIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2Jv
eFJlZmxlY3QgPSByZWZsZWN0OyB9CiAgICAgdm9pZCBzZXRCb3hTaXppbmcoRUJveFNpemluZyBz
KSB7IFNFVF9WQVIobV9ib3gsIG1fYm94U2l6aW5nLCBzKTsgfQorI2lmIEVOQUJMRShDU1MzX0ZM
RVhCT1gpCisgICAgdm9pZCBzZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoZmxvYXQgZikgeyBT
RVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX3dp
ZHRoUG9zaXRpdmVGbGV4LCBmKTsgfQorICAgIHZvaWQgc2V0RmxleGJveFdpZHRoTmVnYXRpdmVG
bGV4KGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9m
bGV4aWJsZUJveCwgbV93aWR0aE5lZ2F0aXZlRmxleCwgZik7IH0KKyAgICB2b2lkIHNldEZsZXhi
b3hIZWlnaHRQb3NpdGl2ZUZsZXgoZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2hlaWdodFBvc2l0aXZlRmxleCwgZik7IH0K
KyAgICB2b2lkIHNldEZsZXhib3hIZWlnaHROZWdhdGl2ZUZsZXgoZmxvYXQgZikgeyBTRVRfVkFS
KHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2hlaWdodE5l
Z2F0aXZlRmxleCwgZik7IH0KKyNlbmRpZgogICAgIHZvaWQgc2V0TWFycXVlZUluY3JlbWVudChj
b25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+
bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYpOyB9CiAgICAgdm9pZCBzZXRNYXJxdWVlU3BlZWQoaW50
IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBz
cGVlZCwgZik7IH0KICAgICB2b2lkIHNldE1hcnF1ZWVEaXJlY3Rpb24oRU1hcnF1ZWVEaXJlY3Rp
b24gZCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUs
IGRpcmVjdGlvbiwgZCk7IH0KQEAgLTEyODEsNiArMTI5NSwxMCBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIGludCBpbml0aWFsQm94T3JkaW5hbEdyb3VwKCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRp
YyBFQm94U2l6aW5nIGluaXRpYWxCb3hTaXppbmcoKSB7IHJldHVybiBDT05URU5UX0JPWDsgfQog
ICAgIHN0YXRpYyBTdHlsZVJlZmxlY3Rpb24qIGluaXRpYWxCb3hSZWZsZWN0KCkgeyByZXR1cm4g
MDsgfQorICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsRmxleGJveFdpZHRoUG9zaXRpdmVGbGV4KCkg
eyByZXR1cm4gMC4wOyB9CisgICAgc3RhdGljIGZsb2F0IGluaXRpYWxGbGV4Ym94V2lkdGhOZWdh
dGl2ZUZsZXgoKSB7IHJldHVybiAwLjA7IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZsZXhi
b3hIZWlnaHRQb3NpdGl2ZUZsZXgoKSB7IHJldHVybiAwLjA7IH0KKyAgICBzdGF0aWMgZmxvYXQg
aW5pdGlhbEZsZXhib3hIZWlnaHROZWdhdGl2ZUZsZXgoKSB7IHJldHVybiAwLjA7IH0KICAgICBz
dGF0aWMgaW50IGluaXRpYWxNYXJxdWVlTG9vcENvdW50KCkgeyByZXR1cm4gLTE7IH0KICAgICBz
dGF0aWMgaW50IGluaXRpYWxNYXJxdWVlU3BlZWQoKSB7IHJldHVybiA4NTsgfQogICAgIHN0YXRp
YyBMZW5ndGggaW5pdGlhbE1hcnF1ZWVJbmNyZW1lbnQoKSB7IHJldHVybiBMZW5ndGgoNiwgRml4
ZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVB
bGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9u
ZS5jcHAKaW5kZXggZjA0OTcxMzNlNzVmY2VmZjg3OTQxMzI0YWI1Y2Y4OGRmZmExODlhOC4uNGRi
NDIwY2MyYzgyNmNlMDVkMjNjM2RjMGIwNjBjYzE3YjM5NjIwZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUFsbEluT25lLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgIlN0eWxlQm94RGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFn
ZS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCIKKyNp
bmNsdWRlICJTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVHZW5lcmF0
ZWRJbWFnZS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVJbmhlcml0ZWREYXRhLmNwcCIKICNpbmNsdWRl
ICJTdHlsZU1hcnF1ZWVEYXRhLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZTUxZjFj
ZDFkZTc2ZmFmZjhhMDQ0ZDhhMjRkMzAzZmIxYzgzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCkBAIC0w
LDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJp
Z2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiAgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqICBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqICBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
KyAqICBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqICBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTCisgKiAgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJTdHlsZUZsZXhpYmxlQm94RGF0YS5oIgorCisjaW5jbHVkZSAiUmVuZGVyU3R5
bGUuaCIKKworI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworU3R5bGVGbGV4aWJsZUJveERhdGE6OlN0eWxlRmxleGlibGVCb3hEYXRhKCkKKyAgICA6IG1f
d2lkdGhQb3NpdGl2ZUZsZXgoUmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4Ym94V2lkdGhQb3NpdGl2
ZUZsZXgoKSkKKyAgICAsIG1fd2lkdGhOZWdhdGl2ZUZsZXgoUmVuZGVyU3R5bGU6OmluaXRpYWxG
bGV4Ym94V2lkdGhOZWdhdGl2ZUZsZXgoKSkKKyAgICAsIG1faGVpZ2h0UG9zaXRpdmVGbGV4KFJl
bmRlclN0eWxlOjppbml0aWFsRmxleGJveEhlaWdodFBvc2l0aXZlRmxleCgpKQorICAgICwgbV9o
ZWlnaHROZWdhdGl2ZUZsZXgoUmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRp
dmVGbGV4KCkpCit7Cit9CisKK1N0eWxlRmxleGlibGVCb3hEYXRhOjpTdHlsZUZsZXhpYmxlQm94
RGF0YShjb25zdCBTdHlsZUZsZXhpYmxlQm94RGF0YSYgbykKKyAgICA6IFJlZkNvdW50ZWQ8U3R5
bGVGbGV4aWJsZUJveERhdGE+KCkKKyAgICAsIG1fd2lkdGhQb3NpdGl2ZUZsZXgoby5tX3dpZHRo
UG9zaXRpdmVGbGV4KQorICAgICwgbV93aWR0aE5lZ2F0aXZlRmxleChvLm1fd2lkdGhOZWdhdGl2
ZUZsZXgpCisgICAgLCBtX2hlaWdodFBvc2l0aXZlRmxleChvLm1faGVpZ2h0UG9zaXRpdmVGbGV4
KQorICAgICwgbV9oZWlnaHROZWdhdGl2ZUZsZXgoby5tX2hlaWdodE5lZ2F0aXZlRmxleCkKK3sK
K30KKworYm9vbCBTdHlsZUZsZXhpYmxlQm94RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZUZs
ZXhpYmxlQm94RGF0YSYgbykgY29uc3QKK3sKKyAgICByZXR1cm4gbV93aWR0aFBvc2l0aXZlRmxl
eCA9PSBvLm1fd2lkdGhQb3NpdGl2ZUZsZXggJiYgbV93aWR0aE5lZ2F0aXZlRmxleCA9PSBvLm1f
d2lkdGhOZWdhdGl2ZUZsZXgKKyAgICAgICAgJiYgbV9oZWlnaHRQb3NpdGl2ZUZsZXggPT0gby5t
X2hlaWdodFBvc2l0aXZlRmxleCAmJiBtX2hlaWdodE5lZ2F0aXZlRmxleCA9PSBvLm1faGVpZ2h0
TmVnYXRpdmVGbGV4OworfQorCit9CisKKyNlbmRpZiAvLyBFTkFCTEUoQ1NTM19GTEVYQk9YKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJv
eERhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xNzAxOTkwZDAzYzRhMzQ1NDk4NDBkZTEwOGNmMjczZDU1MzUw
ZmZlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0
eWxlRmxleGlibGVCb3hEYXRhLmgKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
ICBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqICBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiAgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICog
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqICBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg
Ki8KKworI2lmbmRlZiBTdHlsZUZsZXhpYmxlQm94RGF0YV9oCisjZGVmaW5lIFN0eWxlRmxleGli
bGVCb3hEYXRhX2gKKworI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KKworI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgU3R5bGVGbGV4aWJsZUJveERhdGEgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTdHlsZUZsZXhpYmxlQm94RGF0YT4geworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFN0eWxlRmxleGlibGVCb3hEYXRhPiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5
bGVGbGV4aWJsZUJveERhdGEpOyB9CisgICAgUGFzc1JlZlB0cjxTdHlsZUZsZXhpYmxlQm94RGF0
YT4gY29weSgpIGNvbnN0IHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTdHlsZUZsZXhpYmxlQm94RGF0
YSgqdGhpcykpOyB9CisKKyAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgU3R5bGVGbGV4aWJsZUJv
eERhdGEmKSBjb25zdDsKKyAgICBib29sIG9wZXJhdG9yIT0oY29uc3QgU3R5bGVGbGV4aWJsZUJv
eERhdGEmIG8pIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAg
ICB9CisKKyAgICBmbG9hdCBtX3dpZHRoUG9zaXRpdmVGbGV4OworICAgIGZsb2F0IG1fd2lkdGhO
ZWdhdGl2ZUZsZXg7CisgICAgZmxvYXQgbV9oZWlnaHRQb3NpdGl2ZUZsZXg7CisgICAgZmxvYXQg
bV9oZWlnaHROZWdhdGl2ZUZsZXg7CisKK3ByaXZhdGU6CisgICAgU3R5bGVGbGV4aWJsZUJveERh
dGEoKTsKKyAgICBTdHlsZUZsZXhpYmxlQm94RGF0YShjb25zdCBTdHlsZUZsZXhpYmxlQm94RGF0
YSYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENT
UzNfRkxFWEJPWCkKKworI2VuZGlmIC8vIFN0eWxlRmxleGlibGVCb3hEYXRhX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWRE
YXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcAppbmRleCA5ZmQzMTBlNjIwMTFjZjY1M2VlYTQxZDEyMjk0N2UyZTRiMmE1
NjljLi40YTQ0ZDIzYzFjMzJmZmM0ZTY5ZjBlYmQ2YzA3ZmJiZDUxODY5MDFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEuY3BwCkBAIC02Nyw2ICs2Nyw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVk
CiAgICAgLCBsaW5lQ2xhbXAoby5saW5lQ2xhbXApCiAgICAgLCBvcGFjaXR5KG8ub3BhY2l0eSkK
ICAgICAsIG1fZGVwcmVjYXRlZEZsZXhpYmxlQm94KG8ubV9kZXByZWNhdGVkRmxleGlibGVCb3gp
CisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICAsIG1fZmxleGlibGVCb3goby5tX2ZsZXhp
YmxlQm94KQorI2VuZGlmCiAgICAgLCBtX21hcnF1ZWUoby5tX21hcnF1ZWUpCiAgICAgLCBtX211
bHRpQ29sKG8ubV9tdWx0aUNvbCkKICAgICAsIG1fdHJhbnNmb3JtKG8ubV90cmFuc2Zvcm0pCkBA
IC0xMTcsNiArMTIwLDkgQEAgYm9vbCBTdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEmIG8pIGMKICNlbmRpZgogICAgICAg
ICAmJiBvcGFjaXR5ID09IG8ub3BhY2l0eQogICAgICAgICAmJiBtX2RlcHJlY2F0ZWRGbGV4aWJs
ZUJveCA9PSBvLm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94CisjaWYgRU5BQkxFKENTUzNfRkxFWEJP
WCkKKyAgICAgICAgJiYgbV9mbGV4aWJsZUJveCA9PSBvLm1fZmxleGlibGVCb3gKKyNlbmRpZgog
ICAgICAgICAmJiBtX21hcnF1ZWUgPT0gby5tX21hcnF1ZWUKICAgICAgICAgJiYgbV9tdWx0aUNv
bCA9PSBvLm1fbXVsdGlDb2wKICAgICAgICAgJiYgbV90cmFuc2Zvcm0gPT0gby5tX3RyYW5zZm9y
bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5v
bkluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVOb25Jbmhlcml0ZWREYXRhLmgKaW5kZXggMTAwOTRhYjIzMjQxMmFjN2RhZDNmZmUwMGFjYmNj
YjMzNjFmNjc5ZS4uOWI0MDdiZmQzMmYyMWNiNzk4MTIyOGEyYmNjZjExZDlmMDViNGU2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVy
aXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
Tm9uSW5oZXJpdGVkRGF0YS5oCkBAIC00Miw2ICs0Miw3IEBAIGNsYXNzIEFuaW1hdGlvbkxpc3Q7
CiBjbGFzcyBDU1NTdHlsZVNlbGVjdG9yOwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxl
RGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YTsKK2NsYXNzIFN0eWxlRmxleGlibGVCb3hEYXRhOwog
Y2xhc3MgU3R5bGVNYXJxdWVlRGF0YTsKIGNsYXNzIFN0eWxlTXVsdGlDb2xEYXRhOwogY2xhc3Mg
U3R5bGVSZWZsZWN0aW9uOwpAQCAtOTAsNiArOTEsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgb3Bh
Y2l0eTsgLy8gV2hldGhlciBvciBub3Qgd2UncmUgdHJhbnNwYXJlbnQuCiAKICAgICBEYXRhUmVm
PFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YT4gbV9kZXByZWNhdGVkRmxleGlibGVCb3g7
IC8vIEZsZXhpYmxlIGJveCBwcm9wZXJ0aWVzCisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAg
ICBEYXRhUmVmPFN0eWxlRmxleGlibGVCb3hEYXRhPiBtX2ZsZXhpYmxlQm94OworI2VuZGlmCiAg
ICAgRGF0YVJlZjxTdHlsZU1hcnF1ZWVEYXRhPiBtX21hcnF1ZWU7IC8vIE1hcnF1ZWUgcHJvcGVy
dGllcwogICAgIERhdGFSZWY8U3R5bGVNdWx0aUNvbERhdGE+IG1fbXVsdGlDb2w7IC8vICBDU1Mz
IG11bHRpY29sIHByb3BlcnRpZXMKICAgICBEYXRhUmVmPFN0eWxlVHJhbnNmb3JtRGF0YT4gbV90
cmFuc2Zvcm07IC8vIFRyYW5zZm9ybSBwcm9wZXJ0aWVzIChyb3RhdGUsIHNjYWxlLCBza2V3LCBl
dGMuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100387</attachid>
            <date>2011-07-11 17:23:52 -0700</date>
            <delta_ts>2011-07-20 13:39:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64038-20110711172321.patch</filename>
            <type>text/plain</type>
            <size>35777</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTA3NzUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNjI5OTgy
YWQ5NjFiMDNmMzQwMjBiMzA3ZjZmZjAwOWMxNGZhMjNiZi4uNTY0YjRjMWM4OTA3YWE1ODRiZDY2
ZWE0MGU1YTJjNGQ3NWExNmNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyNzgsNiArMTI3
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hE
YXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmNwcAogICAgIHJl
bmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwCisgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcAogICAgIHJlbmRlcmluZy9zdHls
ZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVy
aXRlZERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuY3BwCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggODAzNDI1NzA2MWEyMjdlNmNhZmE5ZTJmNjE3ZmE1ODAzYzY2ODM0Yi4uM2Jh
NmM5OTAyOGQwYTA3MmQwNzU2YmNjNTc1MDk0N2FjMmM2YjNiMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDY4IEBACisyMDExLTA3LTExICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUGFzcyAtd2Via2l0LWZsZXgoKSB2YWx1ZXMgb24gdG8gUmVuZGVyU3R5bGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0MDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LCB0aGlzIGp1c3QgY29waWVzIGRhdGEgdG8gUmVuZGVyU3R5bGUsIHdoaWNoIHdlIGNhbgorICAg
ICAgICB0aGVuIGFjY2VzcyB3aGVuIGRvaW5nIGxheW91dC4gIFRlc3RzIHdpbGwgY29tZSB3aXRo
IHRoZSBsYXlvdXQKKyAgICAgICAgY2hhbmdlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogV2ViQ29yZS5neXBp
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBjc3MvQ1NTRmxleFZhbHVlLmg6IFN3aXRjaCBmcm9tIGRvdWJsZSB0byBmbG9h
dCBzaW5jZSB0aGF0J3MgcGxlbnR5IG9mCisgICAgICAgICAgICBwcmVjaXNpb24gZm9yIGZsZXgg
dmFsdWVzLgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjppc0ZsZXhWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGbGV4VmFsdWU6OnBvc2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4
VmFsdWU6Om5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGbGV4VmFsdWU6OnBy
ZWZlcnJlZFNpemUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRmxleFZhbHVlOjpDU1NGbGV4VmFs
dWUpOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UGFyc2VyOjpwYXJzZUZsZXgpOiBjbGFtcFRvRmxvYXQKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVB
cHBseVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlMZW5ndGg6
OmFwcGx5VmFsdWUpOiBIYW5kbGUgd2lkdGhzIGFuZCBoZWlnaHRzCisgICAgICAgICAgICB0aGF0
IGFyZSBmbGV4IHZhbHVlcy4KKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0
eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvQ1NTVmFsdWUuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjppc0ZsZXhWYWx1ZSk6IEFsbG93IHR5cGUgY2hlY2tp
bmcgZm9yIGZsZXggdmFsdWVzLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6UmVuZGVyU3R5bGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oOiBBZGQgc2V0dGVycyBhbmQgZ2V0dGVycy4gIFRoZQorICAgICAg
ICAgICAgcHJlZmVycmVkIHNpemUgaXMgc3RvcmVkIGluIHRoZSB3aWR0aCBhbmQgaGVpZ2h0IHNv
IHdlIGRvbid0IG5lZWQKKyAgICAgICAgICAgIGEgbmV3IHNldHRlci9nZXR0ZXIgZm9yIHRob3Nl
LgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmZsZXhib3hXaWR0aFBvc2l0aXZl
RmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6ZmxleGJveFdpZHRoTmVn
YXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4Ym94SGVp
Z2h0UG9zaXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmbGV4
Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
OjpzZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJp
dGVkRmxhZ3M6OnNldEZsZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3Jl
OjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodFBvc2l0aXZlRmxleCk6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0RmxleGJveEhlaWdodE5lZ2F0aXZlRmxleCk6
CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZsZXhib3hXaWR0aFBv
c2l0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6aW5pdGlhbEZs
ZXhib3hXaWR0aE5lZ2F0aXZlRmxleCk6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFn
czo6aW5pdGlhbEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgpOgorICAgICAgICAoV2ViQ29yZTo6
SW5oZXJpdGVkRmxhZ3M6OmluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHA6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJD
b3JlOjpTdHlsZUZsZXhpYmxlQm94RGF0YTo6U3R5bGVGbGV4aWJsZUJveERhdGEpOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAq
IHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oOiBBZGRlZC4gTmV3IGZpbGUg
Zm9yIGZsZXhib3gKKyAgICAgICAgICAgIGRhdGEuIFdlIHdpbGwgYmUgYWRkaW5nIGZpZWxkcyBh
cyB3ZSBpbXBsZW1lbnQgbW9yZSBvZiB0aGUgc3BlYy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
RmxleGlibGVCb3hEYXRhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJs
ZUJveERhdGE6OmNvcHkpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVGbGV4aWJsZUJveERhdGE6
Om9wZXJhdG9yIT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhl
cml0ZWREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERh
dGE6OlN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVS
YXJlTm9uSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaDoKKwogMjAxMS0wNy0wOCAgUnlvc3VrZSBO
aXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIGlubmVyVGV4dEVsZW1lbnQo
KSBmcm9tIFJlbmRlclRleHRDb250cm9sIHRvIEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA2NGRlYTg4YjUwNzU1NGFhMGExMGRlNWY0
MzI3MWZkYWQyYWY3NDhmLi40ZGFkNzg3NzE5MTA4MzA5M2JlNmEyMjE0NTAzODQ5MTVlNWZlMmIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTMxMDksNiArMzEwOSw4IEBAIHdl
YmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
RGFzaGJvYXJkUmVnaW9uLmggXAogCVNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZURlcHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmggXAorCVNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgXAorCVNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAgXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmggXAogCVNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmggXApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IDA2YTI5OTYyODZlM2JlMDNiYWYyMWVjY2JkNjdkMzg5N2RhNTdjMGMuLmQxNDJmZDk4MmU2
OGQ2NTJjMzRkYmUwMDBjNTZlYTYwM2I2ZWJhNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwMTUs
NiArMTAxNSw3IEBACiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1h
Z2UuaCcsCiAgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRGFzaGJvYXJkUmVnaW9u
LmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJs
ZUJveERhdGEuaCcsCisgICAgICAgICAgICAncmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVC
b3hEYXRhLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZElt
YWdlLmgnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUltYWdlLmgnLAogICAg
ICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCcsCkBAIC01NDQz
LDYgKzU0NDQsNyBAQAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEu
Y3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVDYWNoZWRJbWFnZS5jcHAn
LAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJsZUJv
eERhdGEuY3BwJywKKyAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJv
eERhdGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVHZW5lcmF0ZWRJ
bWFnZS5jcHAnLAogICAgICAgICAgICAgJ3JlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERh
dGEuY3BwJywKICAgICAgICAgICAgICdyZW5kZXJpbmcvc3R5bGUvU3R5bGVNYXJxdWVlRGF0YS5j
cHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnBybwppbmRleCA1MGI3ZDViZThiMTU1OGMxYTYyNGEzYzkxY2VmNzkwZWQy
YTczMDkxLi45ZDMwYjA2YmNjZmQ1OTI2MWQyNGJmMGVkYzMzZjQ5MTE0NDk3MjI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtMTE4MCw2ICsxMTgwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcmVuZGVyaW5n
L3N0eWxlL1N0eWxlQm94RGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUNhY2hl
ZEltYWdlLmNwcCBcCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YS5jcHAgXAorICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5j
cHAgXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdlLmNwcCBcCiAgICAg
cmVuZGVyaW5nL3N0eWxlL1N0eWxlSW5oZXJpdGVkRGF0YS5jcHAgXAogICAgIHJlbmRlcmluZy9z
dHlsZS9TdHlsZU1hcnF1ZWVEYXRhLmNwcCBcCkBAIC0yMjI3LDYgKzIyMjgsNyBAQCBIRUFERVJT
ICs9IFwKICAgICByZW5kZXJpbmcvc3R5bGUvU3R5bGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmlu
Zy9zdHlsZS9TdHlsZUNhY2hlZEltYWdlLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZURl
cHJlY2F0ZWRGbGV4aWJsZUJveERhdGEuaCBcCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxl
eGlibGVCb3hEYXRhLmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUdlbmVyYXRlZEltYWdl
LmggXAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUluaGVyaXRlZERhdGEuaCBcCiAgICAgcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlTWFycXVlZURhdGEuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGYzZjQ0ZjZjMWZmMzQ3MTdmMjJiMDkyNWNj
Y2QxNTZhOTU4ODYzZDkuLmIwOWU2ZTg2NzRhNGE3YzZhMWYwNzE4NDhiYTVhZTE2MjZkYmYzODkg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC00
MDMyNyw2ICs0MDMyNyw2MiBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJ
CVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0eWxlRmxleGlibGVCb3hEYXRhLmNw
cCIKKwkJCQkJPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnfFdp
bjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9v
bAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVD
b25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IlJlbGVh
c2V8V2luMzIiCisJCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKKwkJCQkJCT4KKwkJCQkJ
CTxUb29sCisJCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKKwkJCQkJCS8+CisJCQkJCTwv
RmlsZUNvbmZpZ3VyYXRpb24+CisJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgorCQkJCQkJTmFtZT0i
RGVidWdfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUi
CisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJ
CQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJCQk8RmlsZUNvbmZpZ3VyYXRp
b24KKwkJCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRlfFdpbjMyIgorCQkJCQkJRXhjbHVk
ZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAorCQkJCQkJCU5hbWU9IlZD
Q0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgorCQkJ
CQk8RmlsZUNvbmZpZ3VyYXRpb24KKwkJCQkJCU5hbWU9IkRlYnVnX0FsbHxXaW4zMiIKKwkJCQkJ
CUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgorCQkJCQkJPgorCQkJCQkJPFRvb2wKKwkJCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgorCQkJCQkJLz4KKwkJCQkJPC9GaWxlQ29uZmlndXJhdGlv
bj4KKwkJCQkJPEZpbGVDb25maWd1cmF0aW9uCisJCQkJCQlOYW1lPSJQcm9kdWN0aW9ufFdpbjMy
IgorCQkJCQkJRXhjbHVkZWRGcm9tQnVpbGQ9InRydWUiCisJCQkJCQk+CisJCQkJCQk8VG9vbAor
CQkJCQkJCU5hbWU9IlZDQ0xDb21waWxlclRvb2wiCisJCQkJCQkvPgorCQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XHJlbmRlcmluZ1xzdHlsZVxTdHlsZUZsZXhpYmxlQm94RGF0YS5oIgorCQkJCQk+CisJCQkJPC9G
aWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccmVuZGVyaW5nXHN0eWxlXFN0
eWxlR2VuZXJhdGVkSW1hZ2UuY3BwIgogCQkJCQk+CiAJCQkJCTxGaWxlQ29uZmlndXJhdGlvbgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IDU4NjU4MGQzNzVjMGE1MWZmZTM4NzZjZjA5NmY3ZGYyZDkyMzcwN2YuLjNiMGQ4ZmY2YWQ4
ZGRkNjkxMmEwMjkwYzViOTRiODk5NDBmYjU5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0MzksNiArMTQzOSw4IEBACiAJ
CTUxRkI1NTA1MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGQjU1MDMxMTNFM0U5MTAwODIx
MTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAgKi87IH07CiAJCTUyMUQ0NkY2MTFBRUM5ODEwMDUxNDYx
MyAvKiBLaWxsUmluZ01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyMUQ0NkY1MTFBRUM5ODEwMDUxNDYxMyAvKiBLaWxsUmluZ01hYy5tbSAqLzsg
fTsKIAkJNTIxRDQ2RjgxMUFFQzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjFENDZGNzExQUVDOUIxMDA1MTQ2
MTMgLyogS2lsbFJpbmcuaCAqLzsgfTsKKwkJNTMxNzYxMjIxM0M1MTY2OTAwMjZFNDU0IC8qIFN0
eWxlRmxleGlibGVCb3hEYXRhLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUzMTc2MTIwMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94
RGF0YS5jcHAgKi87IH07CisJCTUzMTc2MTIzMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhp
YmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTMxNzYxMjExM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi87
IH07CiAJCTUzMjVFNEQ3MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTMyNUU0RDUxM0E2Qzg4
QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5jcHAgKi87IH07CiAJCTUzMjVFNEQ4MTNBNkM4OEIw
MDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDUzMjVFNEQ2MTNBNkM4OEIwMDQwNEEzNiAvKiBDU1NGbGV4VmFsdWUu
aCAqLzsgfTsKIAkJNTUwQTBCQzkwODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTUwQTBCQzcw
ODVGNjAzOTAwNzM1M0Q2IC8qIFF1YWxpZmllZE5hbWUuY3BwICovOyB9OwpAQCAtNzk4NCw2ICs3
OTg2LDggQEAKIAkJNTFGQjU1MDMxMTNFM0U5MTAwODIxMTc2IC8qIEpTQ2xvc2VFdmVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Nsb3NlRXZlbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjFENDZGNTExQUVDOTgxMDA1MTQ2MTMgLyog
S2lsbFJpbmdNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBL
aWxsUmluZ01hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIxRDQ2RjcxMUFF
QzlCMTAwNTE0NjEzIC8qIEtpbGxSaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEtpbGxSaW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUzMTc2MTIwMTND
NTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHBhdGggPSBz
dHlsZS9TdHlsZUZsZXhpYmxlQm94RGF0YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTUzMTc2MTIxMTNDNTE2NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTdHlsZUZsZXhpYmxlQm94RGF0YS5oOyBw
YXRoID0gc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNTMyNUU0RDUxM0E2Qzg4QjAwNDA0QTM2IC8qIENTU0ZsZXhWYWx1ZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NGbGV4VmFsdWUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MzI1RTRENjEzQTZDODhCMDA0MDRBMzYgLyogQ1NT
RmxleFZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZsZXhWYWx1
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUz
RDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZpZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CkBAIC0xODYwMCw2ICsxODYw
NCw4IEBACiAJCQkJQkM1RUI2N0UwRTgxRDRBNzAwQjI1OTY1IC8qIFN0eWxlRGFzaGJvYXJkUmVn
aW9uLmggKi8sCiAJCQkJQkM1RUI4QjYwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxlRGVwcmVjYXRl
ZEZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCiAJCQkJQkM1RUI4QjcwRTgyMDFCRDAwQjI1OTY1IC8q
IFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oICovLAorCQkJCTUzMTc2MTIwMTNDNTE2
NjkwMDI2RTQ1NCAvKiBTdHlsZUZsZXhpYmxlQm94RGF0YS5jcHAgKi8sCisJCQkJNTMxNzYxMjEx
M0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggKi8sCiAJCQkJQkNFRjQ0
N0MwRTY3NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2UuY3BwICovLAogCQkJCUJD
RUY0NDQ5MEU2NzQ1RTAwMDFDMTI4NyAvKiBTdHlsZUdlbmVyYXRlZEltYWdlLmggKi8sCiAJCQkJ
QkNFRjQzQ0UwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxlSW1hZ2UuaCAqLywKQEAgLTIyNjI1LDYg
KzIyNjMxLDcgQEAKIAkJCQlBOEM0QTdGRDA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQUE0QzNBNzcwQjJCMTY3OTAwMjMzNEEyIC8qIFN0eWxl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM1RUI4QjkwRTgyMDFCRDAwQjI1OTY1IC8q
IFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTMx
NzYxMjMxM0M1MTY2OTAwMjZFNDU0IC8qIFN0eWxlRmxleGlibGVCb3hEYXRhLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQ0VGNDQ0QTBFNjc0NUUwMDAxQzEyODcgLyogU3R5bGVHZW5lcmF0ZWRJbWFn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFRjQzQ0YwRTY3M0RBMTAwMUMxMjg3IC8qIFN0eWxl
SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjI3MzA0MEU4MkYxRTYwMEU3Rjk3NSAvKiBT
dHlsZUluaGVyaXRlZERhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjU1MTIsNiArMjU1MTksNyBA
QAogCQkJCUE4QzRBN0ZFMDlENTYzMjcwMDAzQUM4RCAvKiBTdHlsZWRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUFBNEMzQTc2MEIyQjE2NzkwMDIzMzRBMiAvKiBTdHlsZUVsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI4QjgwRTgyMDFCRDAwQjI1OTY1IC8qIFN0eWxl
RGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0YS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MzE3NjEy
MjEzQzUxNjY5MDAyNkU0NTQgLyogU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkNFRjQ0N0QwRTY3NDgwNjAwMUMxMjg3IC8qIFN0eWxlR2VuZXJhdGVkSW1hZ2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMyMjczMDMwRTgyRjFFNjAwRTdGOTc1IC8qIFN0eWxl
SW5oZXJpdGVkRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBODBFNzM0RDBBMTk5Qzc3MDA3
RkI4QzUgLyogU3R5bGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZsZXhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZsZXhW
YWx1ZS5oCmluZGV4IGE3YzFmODJlNmRhMzVkZTVmYTY3ZjMwZGJjMmMyOTBhOTllNzUyZjYuLmEw
M2JmZmMyYjlmYmQyMTNlN2FjOTJiNTA5NGFmODI4YzgwMDA4NjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGbGV4VmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
RmxleFZhbHVlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDU1NGbGV4VmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPENTU0ZsZXhWYWx1ZT4gY3JlYXRlKGRvdWJsZSBwb3NpdGl2ZUZsZXgsIGRvdWJs
ZSBuZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IHByZWZlcnJlZFNpemUpCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8Q1NTRmxleFZhbHVlPiBjcmVhdGUoZmxvYXQgcG9zaXRpdmVGbGV4
LCBmbG9hdCBuZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByZWZl
cnJlZFNpemUpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IENTU0ZsZXhWYWx1
ZShwb3NpdGl2ZUZsZXgsIG5lZ2F0aXZlRmxleCwgcHJlZmVycmVkU2l6ZSkpOwogICAgIH0KQEAg
LTQ3LDE3ICs0NywyMyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBjc3NUZXh0KCkg
Y29uc3Q7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaXNGbGV4VmFsdWUoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CisKKyAgICBmbG9hdCBwb3NpdGl2ZUZsZXgoKSB7IHJldHVybiBtX3Bvc2l0aXZlRmxl
eDsgfQorICAgIGZsb2F0IG5lZ2F0aXZlRmxleCgpIHsgcmV0dXJuIG1fbmVnYXRpdmVGbGV4OyB9
CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByZWZlcnJlZFNpemUoKSB7IHJldHVybiBtX3ByZWZl
cnJlZFNpemUuZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBDU1NGbGV4VmFsdWUoZG91YmxlIHBv
c2l0aXZlRmxleCwgZG91YmxlIG5lZ2F0aXZlRmxleCwgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gcHJl
ZmVycmVkU2l6ZSkKKyAgICBDU1NGbGV4VmFsdWUoZmxvYXQgcG9zaXRpdmVGbGV4LCBmbG9hdCBu
ZWdhdGl2ZUZsZXgsIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHByZWZlcnJlZFNpemUp
CiAgICAgICAgIDogbV9wb3NpdGl2ZUZsZXgocG9zaXRpdmVGbGV4KQogICAgICAgICAsIG1fbmVn
YXRpdmVGbGV4KG5lZ2F0aXZlRmxleCkKICAgICAgICAgLCBtX3ByZWZlcnJlZFNpemUocHJlZmVy
cmVkU2l6ZSkKICAgICB7CiAgICAgfQogCi0gICAgZG91YmxlIG1fcG9zaXRpdmVGbGV4OwotICAg
IGRvdWJsZSBtX25lZ2F0aXZlRmxleDsKLSAgICBSZWZQdHI8Q1NTVmFsdWU+IG1fcHJlZmVycmVk
U2l6ZTsKKyAgICBmbG9hdCBtX3Bvc2l0aXZlRmxleDsKKyAgICBmbG9hdCBtX25lZ2F0aXZlRmxl
eDsKKyAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IG1fcHJlZmVycmVkU2l6ZTsKIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTljZGMwMmE0NzFlMzNhZTA4OWRiYWYy
Y2E1NTcwNGZkOTU5MTVhMC4uODM5YmNiM2I4YjYzZTBjMWFiOWI4NTE4NTBmNmYzYzQzMGJkZjI2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTc5Miw3ICs3OTIsNyBAQCB2b2lkIENT
U1BhcnNlcjo6Y2hlY2tGb3JPcnBoYW5lZFVuaXRzKCkKICAgICB9CiB9CiAKLWlubGluZSBQYXNz
UmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlVmFsaWRQcmltaXRpdmUoaW50IGlkLCBD
U1NQYXJzZXJWYWx1ZSogdmFsdWUpCitpbmxpbmUgUGFzc1JlZlB0cjxDU1NQcmltaXRpdmVWYWx1
ZT4gQ1NTUGFyc2VyOjpwYXJzZVZhbGlkUHJpbWl0aXZlKGludCBpZCwgQ1NTUGFyc2VyVmFsdWUq
IHZhbHVlKQogewogICAgIGlmIChpZCkKICAgICAgICAgcmV0dXJuIHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKGlkKTsKQEAgLTQ4MDgsNyArNDgwOCw3IEBAIGJv
b2wgQ1NTUGFyc2VyOjpwYXJzZUZsZXgoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAg
c3RhdGljIGNvbnN0IGRvdWJsZSB1bnNldFZhbHVlID0gLTE7CiAgICAgZG91YmxlIHBvc2l0aXZl
RmxleCA9IHVuc2V0VmFsdWU7CiAgICAgZG91YmxlIG5lZ2F0aXZlRmxleCA9IHVuc2V0VmFsdWU7
Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBwcmVmZXJyZWRTaXplOworICAgIFJlZlB0cjxDU1NQcmlt
aXRpdmVWYWx1ZT4gcHJlZmVycmVkU2l6ZTsKIAogICAgIHdoaWxlIChDU1NQYXJzZXJWYWx1ZSog
YXJnID0gYXJncy0+Y3VycmVudCgpKSB7CiAgICAgICAgIGlmICh2YWxpZFVuaXQoYXJnLCBGTnVt
YmVyIHwgRk5vbk5lZywgbV9zdHJpY3QpKSB7CkBAIC00ODM5LDcgKzQ4MzksNyBAQCBib29sIENT
U1BhcnNlcjo6cGFyc2VGbGV4KGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KQogICAgIGlmICgh
cHJlZmVycmVkU2l6ZSkKICAgICAgICAgcHJlZmVycmVkU2l6ZSA9IHByaW1pdGl2ZVZhbHVlQ2Fj
aGUoKS0+Y3JlYXRlSWRlbnRpZmllclZhbHVlKENTU1ZhbHVlQXV0byk7CiAKLSAgICBSZWZQdHI8
Q1NTRmxleFZhbHVlPiBmbGV4ID0gQ1NTRmxleFZhbHVlOjpjcmVhdGUocG9zaXRpdmVGbGV4LCBu
ZWdhdGl2ZUZsZXgsIHByZWZlcnJlZFNpemUpOworICAgIFJlZlB0cjxDU1NGbGV4VmFsdWU+IGZs
ZXggPSBDU1NGbGV4VmFsdWU6OmNyZWF0ZShjbGFtcFRvRmxvYXQocG9zaXRpdmVGbGV4KSwgY2xh
bXBUb0Zsb2F0KG5lZ2F0aXZlRmxleCksIHByZWZlcnJlZFNpemUpOwogICAgIGFkZFByb3BlcnR5
KHByb3BJZCwgZmxleC5yZWxlYXNlKCksIGltcG9ydGFudCk7CiAgICAgcmV0dXJuIHRydWU7CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IGM4YjRhZDM2MjUwZTlmNzI2YmQ5YThhZDNk
ZjExM2YwNDU2NDIzYTYuLjlhZTZhODg2ZjY3MDk4YzY4N2ZhMTIyMDI5MGNmMDFmMmViMjhiNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTY0LDcgKzY0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBzdGF0aWMgYm9vbCBwYXJzZVZhbHVlKENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uKiwgaW50IHByb3BJZCwgY29uc3QgU3RyaW5nJiwgYm9vbCBpbXBvcnRhbnQsIGJvb2wg
c3RyaWN0KTsKICAgICAgICAgc3RhdGljIGJvb2wgcGFyc2VDb2xvcihSR0JBMzImIGNvbG9yLCBj
b25zdCBTdHJpbmcmLCBib29sIHN0cmljdCA9IGZhbHNlKTsKICAgICAgICAgc3RhdGljIGJvb2wg
cGFyc2VTeXN0ZW1Db2xvcihSR0JBMzImIGNvbG9yLCBjb25zdCBTdHJpbmcmLCBEb2N1bWVudCop
OwotICAgICAgICBQYXNzUmVmUHRyPENTU1ZhbHVlPiBwYXJzZVZhbGlkUHJpbWl0aXZlKGludCBw
cm9wSWQsIENTU1BhcnNlclZhbHVlKik7CisgICAgICAgIFBhc3NSZWZQdHI8Q1NTUHJpbWl0aXZl
VmFsdWU+IHBhcnNlVmFsaWRQcmltaXRpdmUoaW50IHByb3BJZCwgQ1NTUGFyc2VyVmFsdWUqKTsK
ICAgICAgICAgYm9vbCBwYXJzZUNvbG9yKENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uKiwgY29u
c3QgU3RyaW5nJik7CiAgICAgICAgIGJvb2wgcGFyc2VEZWNsYXJhdGlvbihDU1NNdXRhYmxlU3R5
bGVEZWNsYXJhdGlvbiosIGNvbnN0IFN0cmluZyYsIFJlZlB0cjxDU1NTdHlsZVNvdXJjZURhdGE+
KiBzdHlsZVNvdXJjZURhdGEgPSAwKTsKICAgICAgICAgYm9vbCBwYXJzZU1lZGlhUXVlcnkoTWVk
aWFMaXN0KiwgY29uc3QgU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFw
cGx5UHJvcGVydHkuY3BwCmluZGV4IDg5MjY1YjBlMzM5MTM3ZDM1MDQ4YTI2YThmYzYxOTk4Zjll
NjhkMjcuLjRkZGZkNDYyMWQ4MjhhMmIwMTk1ZjYwMjBmM2MwOTMzMTQyYmM2YTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHkuY3BwCkBAIC0yNSw2ICsyNSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVBcHBseVByb3BlcnR5
LmgiCiAKKyNpbmNsdWRlICJDU1NGbGV4VmFsdWUuaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IkNTU1ZhbHVlTGlzdC5oIgpAQCAtMjEyLDExICsyMTMsMTMgQEAgZW51bSBMZW5ndGhJbnRyaW5z
aWMge0ludHJpbnNpY0Rpc2FibGVkID0gMCwgSW50cmluc2ljRW5hYmxlZCA9IDF9OwogZW51bSBM
ZW5ndGhNaW5JbnRyaW5zaWMge01pbkludHJpbnNpY0Rpc2FibGVkID0gMCwgTWluSW50cmluc2lj
RW5hYmxlZCA9IDF9OwogZW51bSBMZW5ndGhOb25lIHtOb25lRGlzYWJsZWQgPSAwLCBOb25lRW5h
YmxlZCA9IDF9OwogZW51bSBMZW5ndGhVbmRlZmluZWQge1VuZGVmaW5lZERpc2FibGVkID0gMCwg
VW5kZWZpbmVkRW5hYmxlZCA9IDF9OworZW51bSBMZW5ndGhGbGV4RGlyZWN0aW9uIHtGbGV4RGly
ZWN0aW9uRGlzYWJsZWQgPSAwLCBGbGV4V2lkdGggPSAxLCBGbGV4SGVpZ2h0fTsKIHRlbXBsYXRl
IDxMZW5ndGhBdXRvIGF1dG9FbmFibGVkID0gQXV0b0Rpc2FibGVkLAogICAgICAgICAgIExlbmd0
aEludHJpbnNpYyBpbnRyaW5zaWNFbmFibGVkID0gSW50cmluc2ljRGlzYWJsZWQsCiAgICAgICAg
ICAgTGVuZ3RoTWluSW50cmluc2ljIG1pbkludHJpbnNpY0VuYWJsZWQgPSBNaW5JbnRyaW5zaWNE
aXNhYmxlZCwKICAgICAgICAgICBMZW5ndGhOb25lIG5vbmVFbmFibGVkID0gTm9uZURpc2FibGVk
LAotICAgICAgICAgIExlbmd0aFVuZGVmaW5lZCBub25lVW5kZWZpbmVkID0gVW5kZWZpbmVkRGlz
YWJsZWQ+CisgICAgICAgICAgTGVuZ3RoVW5kZWZpbmVkIG5vbmVVbmRlZmluZWQgPSBVbmRlZmlu
ZWREaXNhYmxlZCwKKyAgICAgICAgICBMZW5ndGhGbGV4RGlyZWN0aW9uIGZsZXhEaXJlY3Rpb24g
PSBGbGV4RGlyZWN0aW9uRGlzYWJsZWQ+CiBjbGFzcyBBcHBseVByb3BlcnR5TGVuZ3RoIDogcHVi
bGljIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxMZW5ndGg+IHsKIHB1YmxpYzoKICAgICBBcHBs
eVByb3BlcnR5TGVuZ3RoKEdldHRlckZ1bmN0aW9uIGdldHRlciwgU2V0dGVyRnVuY3Rpb24gc2V0
dGVyLCBJbml0aWFsRnVuY3Rpb24gaW5pdGlhbCkKQEAgLTIyNyw4ICsyMzAsMjYgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlWYWx1ZShDU1NTdHlsZVNlbGVjdG9y
KiBzZWxlY3RvciwgQ1NTVmFsdWUqIHZhbHVlKSBjb25zdAogICAgIHsKKyNpZiBFTkFCTEUoQ1NT
M19GTEVYQk9YKQorICAgICAgICBpZiAoIXZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkpIHsKKyAg
ICAgICAgICAgIGlmICghZmxleERpcmVjdGlvbiB8fCAhdmFsdWUtPmlzRmxleFZhbHVlKCkpCisg
ICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBDU1NGbGV4VmFsdWUqIGZsZXhW
YWx1ZSA9IHN0YXRpY19jYXN0PENTU0ZsZXhWYWx1ZSo+KHZhbHVlKTsKKyAgICAgICAgICAgIHZh
bHVlID0gZmxleFZhbHVlLT5wcmVmZXJyZWRTaXplKCk7CisKKyAgICAgICAgICAgIGlmIChmbGV4
RGlyZWN0aW9uID09IEZsZXhXaWR0aCkgeworICAgICAgICAgICAgICAgIHNlbGVjdG9yLT5zdHls
ZSgpLT5zZXRGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoZmxleFZhbHVlLT5wb3NpdGl2ZUZsZXgo
KSk7CisgICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hXaWR0aE5l
Z2F0aXZlRmxleChmbGV4VmFsdWUtPm5lZ2F0aXZlRmxleCgpKTsKKyAgICAgICAgICAgIH0gZWxz
ZSBpZiAoZmxleERpcmVjdGlvbiA9PSBGbGV4SGVpZ2h0KSB7CisgICAgICAgICAgICAgICAgc2Vs
ZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgoZmxleFZhbHVlLT5w
b3NpdGl2ZUZsZXgoKSk7CisgICAgICAgICAgICAgICAgc2VsZWN0b3ItPnN0eWxlKCktPnNldEZs
ZXhib3hIZWlnaHROZWdhdGl2ZUZsZXgoZmxleFZhbHVlLT5uZWdhdGl2ZUZsZXgoKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0KKyNlbHNlCiAgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0
aXZlVmFsdWUoKSkKICAgICAgICAgICAgIHJldHVybjsKKyNlbmRpZgogCiAgICAgICAgIENTU1By
aW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlKj4odmFsdWUpOwogICAgICAgICBpZiAobm9uZUVuYWJsZWQgJiYgcHJpbWl0aXZlVmFsdWUt
PmdldElkZW50KCkgPT0gQ1NTVmFsdWVOb25lKQpAQCAtNjMxLDggKzY1Miw4IEBAIENTU1N0eWxl
QXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KCkKICAgICBzZXRQcm9wZXJ0eUhh
bmRsZXIoQ1NTUHJvcGVydHlCb3R0b20sIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFi
bGVkPigmUmVuZGVyU3R5bGU6OmJvdHRvbSwgJlJlbmRlclN0eWxlOjpzZXRCb3R0b20sICZSZW5k
ZXJTdHlsZTo6aW5pdGlhbE9mZnNldCkpOwogICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9w
ZXJ0eUxlZnQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkPigmUmVuZGVyU3R5
bGU6OmxlZnQsICZSZW5kZXJTdHlsZTo6c2V0TGVmdCwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zm
c2V0KSk7CiAKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXaWR0aCwgbmV3IEFw
cGx5UHJvcGVydHlMZW5ndGg8QXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJp
bnNpY0VuYWJsZWQ+KCZSZW5kZXJTdHlsZTo6d2lkdGgsICZSZW5kZXJTdHlsZTo6c2V0V2lkdGgs
ICZSZW5kZXJTdHlsZTo6aW5pdGlhbFNpemUpKTsKLSAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlIZWlnaHQsIG5ldyBBcHBseVByb3BlcnR5TGVuZ3RoPEF1dG9FbmFibGVkLCBJbnRy
aW5zaWNFbmFibGVkLCBNaW5JbnRyaW5zaWNFbmFibGVkPigmUmVuZGVyU3R5bGU6OmhlaWdodCwg
JlJlbmRlclN0eWxlOjpzZXRIZWlnaHQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbFNpemUpKTsKKyAg
ICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXaWR0aCwgbmV3IEFwcGx5UHJvcGVydHlM
ZW5ndGg8QXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQs
IE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQsIEZsZXhXaWR0aD4oJlJlbmRlclN0eWxl
Ojp3aWR0aCwgJlJlbmRlclN0eWxlOjpzZXRXaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6
ZSkpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUhlaWdodCwgbmV3IEFwcGx5
UHJvcGVydHlMZW5ndGg8QXV0b0VuYWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNp
Y0VuYWJsZWQsIE5vbmVEaXNhYmxlZCwgVW5kZWZpbmVkRGlzYWJsZWQsIEZsZXhIZWlnaHQ+KCZS
ZW5kZXJTdHlsZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldEhlaWdodCwgJlJlbmRlclN0eWxl
Ojppbml0aWFsU2l6ZSkpOwogCiAgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5VGV4
dEluZGVudCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8PigmUmVuZGVyU3R5bGU6OnRleHRJbmRl
bnQsICZSZW5kZXJTdHlsZTo6c2V0VGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjppbml0aWFsVGV4
dEluZGVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCmluZGV4IGRlNDZmZjllYTExN2UxMzQ3MDYy
NjA0ODJjNDIxODQ4ZTRhZTdhMDkuLjEwYWMzNWMzYTI3ODY1YTVjNGFlODU1YTA1MWEwODBhZGI5
ZjlmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgYm9vbCBpc0JvcmRlckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0N1cnNvckltYWdlVmFsdWUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgdmlydHVhbCBib29sIGlz
RmxleFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyNlbmRpZgogICAgIHZpcnR1YWwg
Ym9vbCBpc0ZvbnRGYW1pbHlWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGlzRm9udFZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNJbWFnZUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDNjMDMyNWM3ODhlNjRhYjlmODIxM2NjMjI3NTNkZWJmNmU3NzEyMmMuLjQ1ZjcxZTEzOWIxMzhk
M2I5MjMyZmViOWZlMjc4NjE2Zjk5ZjhiODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTE4LDYgKzExOCw5IEBAIEFMV0FZU19JTkxJ
TkUgUmVuZGVyU3R5bGU6OlJlbmRlclN0eWxlKGJvb2wpCiAgICAgc3Vycm91bmQuaW5pdCgpOwog
ICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmluaXQoKTsKICAgICByYXJlTm9uSW5oZXJpdGVkRGF0
YS5hY2Nlc3MoKS0+bV9kZXByZWNhdGVkRmxleGlibGVCb3guaW5pdCgpOworI2lmIEVOQUJMRShD
U1MzX0ZMRVhCT1gpCisgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fZmxleGli
bGVCb3guaW5pdCgpOworI2VuZGlmCiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCkt
Pm1fbWFycXVlZS5pbml0KCk7CiAgICAgcmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1f
bXVsdGlDb2wuaW5pdCgpOwogICAgIHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX3Ry
YW5zZm9ybS5pbml0KCk7CkBAIC0zNTMsNiArMzU2LDEyIEBAIFN0eWxlRGlmZmVyZW5jZSBSZW5k
ZXJTdHlsZTo6ZGlmZihjb25zdCBSZW5kZXJTdHlsZSogb3RoZXIsIHVuc2lnbmVkJiBjaGFuZ2Vk
Q29uCiAgICAgICAgICAgICAmJiAqcmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmdldCgpICE9ICpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVj
YXRlZEZsZXhpYmxlQm94LmdldCgpKQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5j
ZUxheW91dDsKIAorI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgICAgIGlmIChyYXJlTm9u
SW5oZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC5nZXQoKSAhPSBvdGhlci0+cmFyZU5vbkluaGVy
aXRlZERhdGEtPm1fZmxleGlibGVCb3guZ2V0KCkKKyAgICAgICAgICAgICYmICpyYXJlTm9uSW5o
ZXJpdGVkRGF0YS0+bV9mbGV4aWJsZUJveC5nZXQoKSAhPSAqb3RoZXItPnJhcmVOb25Jbmhlcml0
ZWREYXRhLT5tX2ZsZXhpYmxlQm94LmdldCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlm
ZmVyZW5jZUxheW91dDsKKyNlbmRpZgorCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRk
IGFuIG9wdGltaXplZCBmb3JtIG9mIGxheW91dCB0aGF0IGp1c3QgcmVjb21wdXRlcyB2aXN1YWwg
b3ZlcmZsb3cuCiAgICAgICAgIGlmICghcmFyZU5vbkluaGVyaXRlZERhdGEtPnNoYWRvd0RhdGFF
cXVpdmFsZW50KCpvdGhlci0+cmFyZU5vbkluaGVyaXRlZERhdGEuZ2V0KCkpKQogICAgICAgICAg
ICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxheW91dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggM2JlZDMwNTVhZmI5ZDI5YTIyMDk3MDQyYTll
MTFjYTMzZjQyZTRjNi4uYTI5YmU4YTFkNzEyNDU4YmIzOWNhZWRlZTM4NDU3OTljMWFiNDZhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTQ5
LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJTdHlsZUJhY2tncm91bmREYXRhLmgiCiAjaW5jbHVkZSAi
U3R5bGVCb3hEYXRhLmgiCiAjaW5jbHVkZSAiU3R5bGVEZXByZWNhdGVkRmxleGlibGVCb3hEYXRh
LmgiCisjaW5jbHVkZSAiU3R5bGVGbGV4aWJsZUJveERhdGEuaCIKICNpbmNsdWRlICJTdHlsZUlu
aGVyaXRlZERhdGEuaCIKICNpbmNsdWRlICJTdHlsZU1hcnF1ZWVEYXRhLmgiCiAjaW5jbHVkZSAi
U3R5bGVNdWx0aUNvbERhdGEuaCIKQEAgLTY3MCw2ICs2NzEsMTMgQEAgcHVibGljOgogICAgIEVC
b3hPcmllbnQgYm94T3JpZW50KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUJveE9yaWVu
dD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhpYmxlQm94LT5vcmllbnQp
OyB9CiAgICAgRUJveEFsaWdubWVudCBib3hQYWNrKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RUJveEFsaWdubWVudD4ocmFyZU5vbkluaGVyaXRlZERhdGEtPm1fZGVwcmVjYXRlZEZsZXhp
YmxlQm94LT5wYWNrKTsgfQogCisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICBmbG9hdCBm
bGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9mbGV4aWJsZUJveC0+bV93aWR0aFBvc2l0aXZlRmxleDsgfQorICAgIGZsb2F0IGZs
ZXhib3hXaWR0aE5lZ2F0aXZlRmxleCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2ZsZXhpYmxlQm94LT5tX3dpZHRoTmVnYXRpdmVGbGV4OyB9CisgICAgZmxvYXQgZmxl
eGJveEhlaWdodFBvc2l0aXZlRmxleCgpIGNvbnN0IHsgcmV0dXJuIHJhcmVOb25Jbmhlcml0ZWRE
YXRhLT5tX2ZsZXhpYmxlQm94LT5tX2hlaWdodFBvc2l0aXZlRmxleDsgfQorICAgIGZsb2F0IGZs
ZXhib3hIZWlnaHROZWdhdGl2ZUZsZXgoKSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVk
RGF0YS0+bV9mbGV4aWJsZUJveC0+bV9oZWlnaHROZWdhdGl2ZUZsZXg7IH0KKyNlbmRpZgorCiAg
ICAgY29uc3QgU2hhZG93RGF0YSogYm94U2hhZG93KCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbklu
aGVyaXRlZERhdGEtPm1fYm94U2hhZG93LmdldCgpOyB9CiAgICAgdm9pZCBnZXRCb3hTaGFkb3dF
eHRlbnQoaW50JiB0b3AsIGludCYgcmlnaHQsIGludCYgYm90dG9tLCBpbnQmIGxlZnQpIGNvbnN0
IHsgZ2V0U2hhZG93RXh0ZW50KGJveFNoYWRvdygpLCB0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnQp
OyB9CiAgICAgdm9pZCBnZXRCb3hTaGFkb3dIb3Jpem9udGFsRXh0ZW50KGludCYgbGVmdCwgaW50
JiByaWdodCkgY29uc3QgeyBnZXRTaGFkb3dIb3Jpem9udGFsRXh0ZW50KGJveFNoYWRvdygpLCBs
ZWZ0LCByaWdodCk7IH0KQEAgLTEwNDMsNiArMTA1MSwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRCb3hTaGFkb3coUGFzc093blB0cjxTaGFkb3dEYXRhPiwgYm9vbCBhZGQgPSBmYWxzZSk7CiAg
ICAgdm9pZCBzZXRCb3hSZWZsZWN0KFBhc3NSZWZQdHI8U3R5bGVSZWZsZWN0aW9uPiByZWZsZWN0
KSB7IGlmIChyYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9ib3hSZWZsZWN0ICE9IHJlZmxlY3QpIHJh
cmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2JveFJlZmxlY3QgPSByZWZsZWN0OyB9CiAg
ICAgdm9pZCBzZXRCb3hTaXppbmcoRUJveFNpemluZyBzKSB7IFNFVF9WQVIobV9ib3gsIG1fYm94
U2l6aW5nLCBzKTsgfQorI2lmIEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgdm9pZCBzZXRGbGV4
Ym94V2lkdGhQb3NpdGl2ZUZsZXgoZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWRE
YXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX3dpZHRoUG9zaXRpdmVGbGV4LCBmKTsgfQor
ICAgIHZvaWQgc2V0RmxleGJveFdpZHRoTmVnYXRpdmVGbGV4KGZsb2F0IGYpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9mbGV4aWJsZUJveCwgbV93aWR0aE5lZ2F0
aXZlRmxleCwgZik7IH0KKyAgICB2b2lkIHNldEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgoZmxv
YXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX2ZsZXhpYmxl
Qm94LCBtX2hlaWdodFBvc2l0aXZlRmxleCwgZik7IH0KKyAgICB2b2lkIHNldEZsZXhib3hIZWln
aHROZWdhdGl2ZUZsZXgoZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX2ZsZXhpYmxlQm94LCBtX2hlaWdodE5lZ2F0aXZlRmxleCwgZik7IH0KKyNlbmRp
ZgogICAgIHZvaWQgc2V0TWFycXVlZUluY3JlbWVudChjb25zdCBMZW5ndGgmIGYpIHsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBpbmNyZW1lbnQsIGYp
OyB9CiAgICAgdm9pZCBzZXRNYXJxdWVlU3BlZWQoaW50IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tYXJxdWVlLCBzcGVlZCwgZik7IH0KICAgICB2b2lkIHNl
dE1hcnF1ZWVEaXJlY3Rpb24oRU1hcnF1ZWVEaXJlY3Rpb24gZCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX21hcnF1ZWUsIGRpcmVjdGlvbiwgZCk7IH0KQEAgLTEy
ODEsNiArMTI5NSwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGludCBpbml0aWFsQm94T3JkaW5h
bEdyb3VwKCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRpYyBFQm94U2l6aW5nIGluaXRpYWxCb3hT
aXppbmcoKSB7IHJldHVybiBDT05URU5UX0JPWDsgfQogICAgIHN0YXRpYyBTdHlsZVJlZmxlY3Rp
b24qIGluaXRpYWxCb3hSZWZsZWN0KCkgeyByZXR1cm4gMDsgfQorICAgIHN0YXRpYyBmbG9hdCBp
bml0aWFsRmxleGJveFdpZHRoUG9zaXRpdmVGbGV4KCkgeyByZXR1cm4gMC4wOyB9CisgICAgc3Rh
dGljIGZsb2F0IGluaXRpYWxGbGV4Ym94V2lkdGhOZWdhdGl2ZUZsZXgoKSB7IHJldHVybiAwLjA7
IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZsZXhib3hIZWlnaHRQb3NpdGl2ZUZsZXgoKSB7
IHJldHVybiAwLjA7IH0KKyAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEZsZXhib3hIZWlnaHROZWdh
dGl2ZUZsZXgoKSB7IHJldHVybiAwLjA7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxNYXJxdWVl
TG9vcENvdW50KCkgeyByZXR1cm4gLTE7IH0KICAgICBzdGF0aWMgaW50IGluaXRpYWxNYXJxdWVl
U3BlZWQoKSB7IHJldHVybiA4NTsgfQogICAgIHN0YXRpYyBMZW5ndGggaW5pdGlhbE1hcnF1ZWVJ
bmNyZW1lbnQoKSB7IHJldHVybiBMZW5ndGgoNiwgRml4ZWQpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVBbGxJbk9uZS5jcHAKaW5kZXggZjA0OTcxMzNlNzVm
Y2VmZjg3OTQxMzI0YWI1Y2Y4OGRmZmExODlhOC4uNGRiNDIwY2MyYzgyNmNlMDVkMjNjM2RjMGIw
NjBjYzE3YjM5NjIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlQWxsSW5PbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZUFsbEluT25lLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIlN0eWxlQm94RGF0
YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVDYWNoZWRJbWFnZS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVE
ZXByZWNhdGVkRmxleGlibGVCb3hEYXRhLmNwcCIKKyNpbmNsdWRlICJTdHlsZUZsZXhpYmxlQm94
RGF0YS5jcHAiCiAjaW5jbHVkZSAiU3R5bGVHZW5lcmF0ZWRJbWFnZS5jcHAiCiAjaW5jbHVkZSAi
U3R5bGVJbmhlcml0ZWREYXRhLmNwcCIKICNpbmNsdWRlICJTdHlsZU1hcnF1ZWVEYXRhLmNwcCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZUZsZXhpYmxl
Qm94RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJs
ZUJveERhdGEuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVhZTUxZjFjZDFkZTc2ZmFmZjhhMDQ0ZDhhMjRkMzAz
ZmIxYzgzNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiAgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiAgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqICBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqICBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqICBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04KKyAqICBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiAgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTdHlsZUZsZXhpYmxl
Qm94RGF0YS5oIgorCisjaW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKKworI2lmIEVOQUJMRShDU1Mz
X0ZMRVhCT1gpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU3R5bGVGbGV4aWJsZUJveERhdGE6
OlN0eWxlRmxleGlibGVCb3hEYXRhKCkKKyAgICA6IG1fd2lkdGhQb3NpdGl2ZUZsZXgoUmVuZGVy
U3R5bGU6OmluaXRpYWxGbGV4Ym94V2lkdGhQb3NpdGl2ZUZsZXgoKSkKKyAgICAsIG1fd2lkdGhO
ZWdhdGl2ZUZsZXgoUmVuZGVyU3R5bGU6OmluaXRpYWxGbGV4Ym94V2lkdGhOZWdhdGl2ZUZsZXgo
KSkKKyAgICAsIG1faGVpZ2h0UG9zaXRpdmVGbGV4KFJlbmRlclN0eWxlOjppbml0aWFsRmxleGJv
eEhlaWdodFBvc2l0aXZlRmxleCgpKQorICAgICwgbV9oZWlnaHROZWdhdGl2ZUZsZXgoUmVuZGVy
U3R5bGU6OmluaXRpYWxGbGV4Ym94SGVpZ2h0TmVnYXRpdmVGbGV4KCkpCit7Cit9CisKK1N0eWxl
RmxleGlibGVCb3hEYXRhOjpTdHlsZUZsZXhpYmxlQm94RGF0YShjb25zdCBTdHlsZUZsZXhpYmxl
Qm94RGF0YSYgbykKKyAgICA6IFJlZkNvdW50ZWQ8U3R5bGVGbGV4aWJsZUJveERhdGE+KCkKKyAg
ICAsIG1fd2lkdGhQb3NpdGl2ZUZsZXgoby5tX3dpZHRoUG9zaXRpdmVGbGV4KQorICAgICwgbV93
aWR0aE5lZ2F0aXZlRmxleChvLm1fd2lkdGhOZWdhdGl2ZUZsZXgpCisgICAgLCBtX2hlaWdodFBv
c2l0aXZlRmxleChvLm1faGVpZ2h0UG9zaXRpdmVGbGV4KQorICAgICwgbV9oZWlnaHROZWdhdGl2
ZUZsZXgoby5tX2hlaWdodE5lZ2F0aXZlRmxleCkKK3sKK30KKworYm9vbCBTdHlsZUZsZXhpYmxl
Qm94RGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZUZsZXhpYmxlQm94RGF0YSYgbykgY29uc3QK
K3sKKyAgICByZXR1cm4gbV93aWR0aFBvc2l0aXZlRmxleCA9PSBvLm1fd2lkdGhQb3NpdGl2ZUZs
ZXggJiYgbV93aWR0aE5lZ2F0aXZlRmxleCA9PSBvLm1fd2lkdGhOZWdhdGl2ZUZsZXgKKyAgICAg
ICAgJiYgbV9oZWlnaHRQb3NpdGl2ZUZsZXggPT0gby5tX2hlaWdodFBvc2l0aXZlRmxleCAmJiBt
X2hlaWdodE5lZ2F0aXZlRmxleCA9PSBvLm1faGVpZ2h0TmVnYXRpdmVGbGV4OworfQorCit9CisK
KyNlbmRpZiAvLyBFTkFCTEUoQ1NTM19GTEVYQk9YKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzAx
OTkwZDAzYzRhMzQ1NDk4NDBkZTEwOGNmMjczZDU1MzUwZmZlCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmxleGlibGVCb3hEYXRhLmgKQEAg
LTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwg
UmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqICBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkK
KyAqICBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiAgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQorICogIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OworICogIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqICBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisgKi8KKworI2lmbmRlZiBTdHlsZUZsZXhp
YmxlQm94RGF0YV9oCisjZGVmaW5lIFN0eWxlRmxleGlibGVCb3hEYXRhX2gKKworI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworI2lmIEVO
QUJMRShDU1MzX0ZMRVhCT1gpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU3R5bGVG
bGV4aWJsZUJveERhdGEgOiBwdWJsaWMgUmVmQ291bnRlZDxTdHlsZUZsZXhpYmxlQm94RGF0YT4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFN0eWxlRmxleGlibGVCb3hEYXRhPiBj
cmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZihuZXcgU3R5bGVGbGV4aWJsZUJveERhdGEpOyB9Cisg
ICAgUGFzc1JlZlB0cjxTdHlsZUZsZXhpYmxlQm94RGF0YT4gY29weSgpIGNvbnN0IHsgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTdHlsZUZsZXhpYmxlQm94RGF0YSgqdGhpcykpOyB9CisKKyAgICBib29s
IG9wZXJhdG9yPT0oY29uc3QgU3R5bGVGbGV4aWJsZUJveERhdGEmKSBjb25zdDsKKyAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgU3R5bGVGbGV4aWJsZUJveERhdGEmIG8pIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKKyAgICB9CisKKyAgICBmbG9hdCBtX3dpZHRo
UG9zaXRpdmVGbGV4OworICAgIGZsb2F0IG1fd2lkdGhOZWdhdGl2ZUZsZXg7CisgICAgZmxvYXQg
bV9oZWlnaHRQb3NpdGl2ZUZsZXg7CisgICAgZmxvYXQgbV9oZWlnaHROZWdhdGl2ZUZsZXg7CisK
K3ByaXZhdGU6CisgICAgU3R5bGVGbGV4aWJsZUJveERhdGEoKTsKKyAgICBTdHlsZUZsZXhpYmxl
Qm94RGF0YShjb25zdCBTdHlsZUZsZXhpYmxlQm94RGF0YSYpOworfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKENTUzNfRkxFWEJPWCkKKworI2VuZGlmIC8v
IFN0eWxlRmxleGlibGVCb3hEYXRhX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmNwcAppbmRleCA5ZmQz
MTBlNjIwMTFjZjY1M2VlYTQxZDEyMjk0N2UyZTRiMmE1NjljLi40YTQ0ZDIzYzFjMzJmZmM0ZTY5
ZjBlYmQ2YzA3ZmJiZDUxODY5MDFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuY3BwCkBAIC02Nyw2
ICs2Nyw5IEBAIFN0eWxlUmFyZU5vbkluaGVyaXRlZERhdGE6OlN0eWxlUmFyZU5vbkluaGVyaXRl
ZERhdGEoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAgICAgLCBsaW5lQ2xhbXAoby5saW5l
Q2xhbXApCiAgICAgLCBvcGFjaXR5KG8ub3BhY2l0eSkKICAgICAsIG1fZGVwcmVjYXRlZEZsZXhp
YmxlQm94KG8ubV9kZXByZWNhdGVkRmxleGlibGVCb3gpCisjaWYgRU5BQkxFKENTUzNfRkxFWEJP
WCkKKyAgICAsIG1fZmxleGlibGVCb3goby5tX2ZsZXhpYmxlQm94KQorI2VuZGlmCiAgICAgLCBt
X21hcnF1ZWUoby5tX21hcnF1ZWUpCiAgICAgLCBtX211bHRpQ29sKG8ubV9tdWx0aUNvbCkKICAg
ICAsIG1fdHJhbnNmb3JtKG8ubV90cmFuc2Zvcm0pCkBAIC0xMTcsNiArMTIwLDkgQEAgYm9vbCBT
dHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZU5vbklu
aGVyaXRlZERhdGEmIG8pIGMKICNlbmRpZgogICAgICAgICAmJiBvcGFjaXR5ID09IG8ub3BhY2l0
eQogICAgICAgICAmJiBtX2RlcHJlY2F0ZWRGbGV4aWJsZUJveCA9PSBvLm1fZGVwcmVjYXRlZEZs
ZXhpYmxlQm94CisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICAgICAgJiYgbV9mbGV4aWJs
ZUJveCA9PSBvLm1fZmxleGlibGVCb3gKKyNlbmRpZgogICAgICAgICAmJiBtX21hcnF1ZWUgPT0g
by5tX21hcnF1ZWUKICAgICAgICAgJiYgbV9tdWx0aUNvbCA9PSBvLm1fbXVsdGlDb2wKICAgICAg
ICAgJiYgbV90cmFuc2Zvcm0gPT0gby5tX3RyYW5zZm9ybQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVOb25Jbmhlcml0ZWREYXRhLmgKaW5k
ZXggMTAwOTRhYjIzMjQxMmFjN2RhZDNmZmUwMGFjYmNjYjMzNjFmNjc5ZS4uOWI0MDdiZmQzMmYy
MWNiNzk4MTIyOGEyYmNjZjExZDlmMDViNGU2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZU5vbkluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlTm9uSW5oZXJpdGVkRGF0YS5oCkBAIC00
Miw2ICs0Miw3IEBAIGNsYXNzIEFuaW1hdGlvbkxpc3Q7CiBjbGFzcyBDU1NTdHlsZVNlbGVjdG9y
OwogY2xhc3MgU2hhZG93RGF0YTsKIGNsYXNzIFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxlQm94RGF0
YTsKK2NsYXNzIFN0eWxlRmxleGlibGVCb3hEYXRhOwogY2xhc3MgU3R5bGVNYXJxdWVlRGF0YTsK
IGNsYXNzIFN0eWxlTXVsdGlDb2xEYXRhOwogY2xhc3MgU3R5bGVSZWZsZWN0aW9uOwpAQCAtOTAs
NiArOTEsOSBAQCBwdWJsaWM6CiAgICAgZmxvYXQgb3BhY2l0eTsgLy8gV2hldGhlciBvciBub3Qg
d2UncmUgdHJhbnNwYXJlbnQuCiAKICAgICBEYXRhUmVmPFN0eWxlRGVwcmVjYXRlZEZsZXhpYmxl
Qm94RGF0YT4gbV9kZXByZWNhdGVkRmxleGlibGVCb3g7IC8vIEZsZXhpYmxlIGJveCBwcm9wZXJ0
aWVzCisjaWYgRU5BQkxFKENTUzNfRkxFWEJPWCkKKyAgICBEYXRhUmVmPFN0eWxlRmxleGlibGVC
b3hEYXRhPiBtX2ZsZXhpYmxlQm94OworI2VuZGlmCiAgICAgRGF0YVJlZjxTdHlsZU1hcnF1ZWVE
YXRhPiBtX21hcnF1ZWU7IC8vIE1hcnF1ZWUgcHJvcGVydGllcwogICAgIERhdGFSZWY8U3R5bGVN
dWx0aUNvbERhdGE+IG1fbXVsdGlDb2w7IC8vICBDU1MzIG11bHRpY29sIHByb3BlcnRpZXMKICAg
ICBEYXRhUmVmPFN0eWxlVHJhbnNmb3JtRGF0YT4gbV90cmFuc2Zvcm07IC8vIFRyYW5zZm9ybSBw
cm9wZXJ0aWVzIChyb3RhdGUsIHNjYWxlLCBza2V3LCBldGMuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101504</attachid>
            <date>2011-07-20 13:39:23 -0700</date>
            <delta_ts>2011-07-20 15:05:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64038-20110720133846.patch</filename>
            <type>text/plain</type>
            <size>4983</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTEzOTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZjdmNDJiYTg4YTQ2MDA5
MGViZGIyYWQ4NTQzMjk2MTQ5ODkxOTQ4Li5iMDExZGY5N2JjYzE2ODNmODk5ZTcxZGExZTgzNmFm
NDI3MTEyMDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDctMjAgIFRvbnkg
Q2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBQYXNzIC13ZWJraXQtZmxleCgp
IHZhbHVlcyBvbiB0byBSZW5kZXJTdHlsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NjQwMzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMganVzdCBjb3BpZXMgZGF0YSB0byBS
ZW5kZXJTdHlsZSwgd2hpY2ggd2UgY2FuCisgICAgICAgIHRoZW4gYWNjZXNzIHdoZW4gZG9pbmcg
bGF5b3V0LiAgVGVzdHMgd2lsbCBjb21lIHdpdGggdGhlIGxheW91dAorICAgICAgICBjaGFuZ2Vz
LgorCisgICAgICAgICogY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5TGVuZ3RoOjphcHBseVZhbHVlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlQXBwbHlQcm9wZXJ0eTo6Q1NTU3R5bGVBcHBseVByb3BlcnR5KToKKwogMjAx
MS0wNy0yMCAgS3VsYW50aGFpdmVsIFBhbGFuaWNoYW15ICA8a3VsYW50aGFpdmVsQGNvZGVhdXJv
cmEub3JnPgogCiAgICAgICAgIFdlYktpdCBjcmFzaGVzIG9uIHNlbGVjdGlvbiB3aGVuIGRvY3Vt
ZW50RWxlbWVudCBpcyByZW1vdmVkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBs
eVByb3BlcnR5LmNwcAppbmRleCA3MGRhNTYzZDJmZTZmYTFkMmNkMjA1ZjFlYzMyMzYzZDczOGJi
YjA2Li5iNDVkMmMxMjU4MTBlYmVmY2ZhYzkxZjJlNzdiY2U2YWIwODA3MjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVBcHBseVByb3BlcnR5LmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgIkNTU1N0eWxlQXBwbHlQcm9wZXJ0eS5oIgogCiAjaW5jbHVkZSAiQ1NTQ3Vy
c29ySW1hZ2VWYWx1ZS5oIgorI2luY2x1ZGUgIkNTU0ZsZXhWYWx1ZS5oIgogI2luY2x1ZGUgIkNT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCIKICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgi
CiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCkBAIC0yMTMsMTEgKzIxNCwxMyBAQCBlbnVtIExl
bmd0aEludHJpbnNpYyB7SW50cmluc2ljRGlzYWJsZWQgPSAwLCBJbnRyaW5zaWNFbmFibGVkID0g
MX07CiBlbnVtIExlbmd0aE1pbkludHJpbnNpYyB7TWluSW50cmluc2ljRGlzYWJsZWQgPSAwLCBN
aW5JbnRyaW5zaWNFbmFibGVkID0gMX07CiBlbnVtIExlbmd0aE5vbmUge05vbmVEaXNhYmxlZCA9
IDAsIE5vbmVFbmFibGVkID0gMX07CiBlbnVtIExlbmd0aFVuZGVmaW5lZCB7VW5kZWZpbmVkRGlz
YWJsZWQgPSAwLCBVbmRlZmluZWRFbmFibGVkID0gMX07CitlbnVtIExlbmd0aEZsZXhEaXJlY3Rp
b24ge0ZsZXhEaXJlY3Rpb25EaXNhYmxlZCA9IDAsIEZsZXhXaWR0aCA9IDEsIEZsZXhIZWlnaHR9
OwogdGVtcGxhdGUgPExlbmd0aEF1dG8gYXV0b0VuYWJsZWQgPSBBdXRvRGlzYWJsZWQsCiAgICAg
ICAgICAgTGVuZ3RoSW50cmluc2ljIGludHJpbnNpY0VuYWJsZWQgPSBJbnRyaW5zaWNEaXNhYmxl
ZCwKICAgICAgICAgICBMZW5ndGhNaW5JbnRyaW5zaWMgbWluSW50cmluc2ljRW5hYmxlZCA9IE1p
bkludHJpbnNpY0Rpc2FibGVkLAogICAgICAgICAgIExlbmd0aE5vbmUgbm9uZUVuYWJsZWQgPSBO
b25lRGlzYWJsZWQsCi0gICAgICAgICAgTGVuZ3RoVW5kZWZpbmVkIG5vbmVVbmRlZmluZWQgPSBV
bmRlZmluZWREaXNhYmxlZD4KKyAgICAgICAgICBMZW5ndGhVbmRlZmluZWQgbm9uZVVuZGVmaW5l
ZCA9IFVuZGVmaW5lZERpc2FibGVkLAorICAgICAgICAgIExlbmd0aEZsZXhEaXJlY3Rpb24gZmxl
eERpcmVjdGlvbiA9IEZsZXhEaXJlY3Rpb25EaXNhYmxlZD4KIGNsYXNzIEFwcGx5UHJvcGVydHlM
ZW5ndGggOiBwdWJsaWMgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPExlbmd0aD4gewogcHVibGlj
OgogICAgIEFwcGx5UHJvcGVydHlMZW5ndGgoR2V0dGVyRnVuY3Rpb24gZ2V0dGVyLCBTZXR0ZXJG
dW5jdGlvbiBzZXR0ZXIsIEluaXRpYWxGdW5jdGlvbiBpbml0aWFsKQpAQCAtMjI4LDggKzIzMSwy
NiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVZhbHVlKENTU1N0
eWxlU2VsZWN0b3IqIHNlbGVjdG9yLCBDU1NWYWx1ZSogdmFsdWUpIGNvbnN0CiAgICAgeworI2lm
IEVOQUJMRShDU1MzX0ZMRVhCT1gpCisgICAgICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFs
dWUoKSkgeworICAgICAgICAgICAgaWYgKCFmbGV4RGlyZWN0aW9uIHx8ICF2YWx1ZS0+aXNGbGV4
VmFsdWUoKSkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIENTU0ZsZXhW
YWx1ZSogZmxleFZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTRmxleFZhbHVlKj4odmFsdWUpOworICAg
ICAgICAgICAgdmFsdWUgPSBmbGV4VmFsdWUtPnByZWZlcnJlZFNpemUoKTsKKworICAgICAgICAg
ICAgaWYgKGZsZXhEaXJlY3Rpb24gPT0gRmxleFdpZHRoKSB7CisgICAgICAgICAgICAgICAgc2Vs
ZWN0b3ItPnN0eWxlKCktPnNldEZsZXhib3hXaWR0aFBvc2l0aXZlRmxleChmbGV4VmFsdWUtPnBv
c2l0aXZlRmxleCgpKTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rvci0+c3R5bGUoKS0+c2V0Rmxl
eGJveFdpZHRoTmVnYXRpdmVGbGV4KGZsZXhWYWx1ZS0+bmVnYXRpdmVGbGV4KCkpOworICAgICAg
ICAgICAgfSBlbHNlIGlmIChmbGV4RGlyZWN0aW9uID09IEZsZXhIZWlnaHQpIHsKKyAgICAgICAg
ICAgICAgICBzZWxlY3Rvci0+c3R5bGUoKS0+c2V0RmxleGJveEhlaWdodFBvc2l0aXZlRmxleChm
bGV4VmFsdWUtPnBvc2l0aXZlRmxleCgpKTsKKyAgICAgICAgICAgICAgICBzZWxlY3Rvci0+c3R5
bGUoKS0+c2V0RmxleGJveEhlaWdodE5lZ2F0aXZlRmxleChmbGV4VmFsdWUtPm5lZ2F0aXZlRmxl
eCgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgaWYgKCF2YWx1
ZS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAgcmV0dXJuOworI2VuZGlmCiAKICAg
ICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7CiAgICAgICAgIGlmIChub25lRW5hYmxlZCAmJiBwcmlt
aXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZU5vbmUpCkBAIC03NDksOCArNzcwLDgg
QEAgQ1NTU3R5bGVBcHBseVByb3BlcnR5OjpDU1NTdHlsZUFwcGx5UHJvcGVydHkoKQogICAgIHNl
dFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eUJvdHRvbSwgbmV3IEFwcGx5UHJvcGVydHlMZW5n
dGg8QXV0b0VuYWJsZWQ+KCZSZW5kZXJTdHlsZTo6Ym90dG9tLCAmUmVuZGVyU3R5bGU6OnNldEJv
dHRvbSwgJlJlbmRlclN0eWxlOjppbml0aWFsT2Zmc2V0KSk7CiAgICAgc2V0UHJvcGVydHlIYW5k
bGVyKENTU1Byb3BlcnR5TGVmdCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0b0VuYWJsZWQ+
KCZSZW5kZXJTdHlsZTo6bGVmdCwgJlJlbmRlclN0eWxlOjpzZXRMZWZ0LCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxPZmZzZXQpKTsKIAotICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdp
ZHRoLCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxl
ZCwgTWluSW50cmluc2ljRW5hYmxlZD4oJlJlbmRlclN0eWxlOjp3aWR0aCwgJlJlbmRlclN0eWxl
OjpzZXRXaWR0aCwgJlJlbmRlclN0eWxlOjppbml0aWFsU2l6ZSkpOwotICAgIHNldFByb3BlcnR5
SGFuZGxlcihDU1NQcm9wZXJ0eUhlaWdodCwgbmV3IEFwcGx5UHJvcGVydHlMZW5ndGg8QXV0b0Vu
YWJsZWQsIEludHJpbnNpY0VuYWJsZWQsIE1pbkludHJpbnNpY0VuYWJsZWQ+KCZSZW5kZXJTdHls
ZTo6aGVpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldEhlaWdodCwgJlJlbmRlclN0eWxlOjppbml0aWFs
U2l6ZSkpOworICAgIHNldFByb3BlcnR5SGFuZGxlcihDU1NQcm9wZXJ0eVdpZHRoLCBuZXcgQXBw
bHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwgTWluSW50cmlu
c2ljRW5hYmxlZCwgTm9uZURpc2FibGVkLCBVbmRlZmluZWREaXNhYmxlZCwgRmxleFdpZHRoPigm
UmVuZGVyU3R5bGU6OndpZHRoLCAmUmVuZGVyU3R5bGU6OnNldFdpZHRoLCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxTaXplKSk7CisgICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5SGVpZ2h0
LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDxBdXRvRW5hYmxlZCwgSW50cmluc2ljRW5hYmxlZCwg
TWluSW50cmluc2ljRW5hYmxlZCwgTm9uZURpc2FibGVkLCBVbmRlZmluZWREaXNhYmxlZCwgRmxl
eEhlaWdodD4oJlJlbmRlclN0eWxlOjpoZWlnaHQsICZSZW5kZXJTdHlsZTo6c2V0SGVpZ2h0LCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxTaXplKSk7CiAKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlUZXh0SW5kZW50LCBuZXcgQXBwbHlQcm9wZXJ0eUxlbmd0aDw+KCZSZW5kZXJTdHls
ZTo6dGV4dEluZGVudCwgJlJlbmRlclN0eWxlOjpzZXRUZXh0SW5kZW50LCAmUmVuZGVyU3R5bGU6
OmluaXRpYWxUZXh0SW5kZW50KSk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>