<?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>70215</bug_id>
          
          <creation_ts>2011-10-16 21:51:26 -0700</creation_ts>
          <short_desc>Generate WebKitCSSMatrix constructor for JSC by [Constructor] IDL</short_desc>
          <delta_ts>2011-10-28 10:38:41 -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>DOM</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>
          
          <blocked>65839</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>darin</cc>
    
    <cc>dominicc</cc>
    
    <cc>ggaren</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>484908</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-16 21:51:26 -0700</bug_when>
    <thetext>Currently, the WebKitCSSMatrix constructor in JSC is written manually as a custom constructor. We should replace this with automatically generated code by the [Constructor] IDL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484984</commentid>
    <comment_count>1</comment_count>
      <attachid>111222</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-17 01:17:06 -0700</bug_when>
    <thetext>Created attachment 111222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486105</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-18 09:41:25 -0700</bug_when>
    <thetext>Ideally Sam or ggaren would comment on the JavaScriptCore aspect of this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486496</commentid>
    <comment_count>3</comment_count>
      <attachid>111545</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-18 18:24:02 -0700</bug_when>
    <thetext>Created attachment 111545
Rebased patch for review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491319</commentid>
    <comment_count>4</comment_count>
      <attachid>111545</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-10-26 18:29:55 -0700</bug_when>
    <thetext>Comment on attachment 111545
Rebased patch for review

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

We should not be special casing an empty JSValue.  If you get one of these, something is probably wrong.

&gt; Source/JavaScriptCore/runtime/JSString.h:712
&gt; +        if (isEmpty())
&gt; +            return UString();

This is wrong.  The empty value JSValue should be treated like a null pointer, and you should never call functions on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491334</commentid>
    <comment_count>5</comment_count>
      <attachid>111545</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-26 19:56:57 -0700</bug_when>
    <thetext>Comment on attachment 111545
Rebased patch for review

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

&gt;&gt; Source/JavaScriptCore/runtime/JSString.h:712
&gt;&gt; +            return UString();
&gt; 
&gt; This is wrong.  The empty value JSValue should be treated like a null pointer, and you should never call functions on it.

Thanks, sam!

However, toNumber(), toFloat(), toInt32(), toUInt32() and toInteger() return 0 when an empty value is passed to them. Specifically, in case of the empty value, those methods fallback to JSValue::toNumberSlowCase(), which returns 0. toBoolean() returns false when the empty value is passed. Judging from these behaviors, I guess that it would make sense to return the &quot;default value&quot; of the given type when the empty value is passed. If so, returning UString() from toString() would also make sense. 

Why do you think that the empty value should be treated like a null pointer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492005</commentid>
    <comment_count>6</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2011-10-27 15:13:39 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 111545 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111545&amp;action=review
&gt; 
&gt; &gt;&gt; Source/JavaScriptCore/runtime/JSString.h:712
&gt; &gt;&gt; +            return UString();
&gt; &gt; 
&gt; &gt; This is wrong.  The empty value JSValue should be treated like a null pointer, and you should never call functions on it.
&gt; 
&gt; Thanks, sam!
&gt; 
&gt; However, toNumber(), toFloat(), toInt32(), toUInt32() and toInteger() return 0 when an empty value is passed to them. Specifically, in case of the empty value, those methods fallback to JSValue::toNumberSlowCase(), which returns 0. toBoolean() returns false when the empty value is passed. Judging from these behaviors, I guess that it would make sense to return the &quot;default value&quot; of the given type when the empty value is passed. If so, returning UString() from toString() would also make sense. 
&gt; 
&gt; Why do you think that the empty value should be treated like a null pointer?

The empty value is not a valid value to be passed into JavaScript code (it does not have a a meaning within the language), and JS code will not check for this (e.g. passing the empty value to JIT code could lead to a null pointer exception).  The correct interpretation of the empty value is as an in-band signal of an error.  It is not a valid value to operate on or to pass to functions.

I think the numeric conversions should probably not be accepting the empty value, that this is an error.  They should likely be able to ASSERT against this usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492185</commentid>
    <comment_count>7</comment_count>
      <attachid>112804</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-27 18:37:49 -0700</bug_when>
    <thetext>Created attachment 112804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492188</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-27 18:42:19 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 111545 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111545&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt; Source/JavaScriptCore/runtime/JSString.h:712
&gt; &gt; &gt;&gt; +            return UString();
&gt; &gt; &gt; 
&gt; &gt; &gt; This is wrong.  The empty value JSValue should be treated like a null pointer, and you should never call functions on it.
&gt; &gt; 
&gt; &gt; Thanks, sam!
&gt; &gt; 
&gt; &gt; However, toNumber(), toFloat(), toInt32(), toUInt32() and toInteger() return 0 when an empty value is passed to them. Specifically, in case of the empty value, those methods fallback to JSValue::toNumberSlowCase(), which returns 0. toBoolean() returns false when the empty value is passed. Judging from these behaviors, I guess that it would make sense to return the &quot;default value&quot; of the given type when the empty value is passed. If so, returning UString() from toString() would also make sense. 
&gt; &gt; 
&gt; &gt; Why do you think that the empty value should be treated like a null pointer?
&gt; 
&gt; The empty value is not a valid value to be passed into JavaScript code (it does not have a a meaning within the language), and JS code will not check for this (e.g. passing the empty value to JIT code could lead to a null pointer exception).  The correct interpretation of the empty value is as an in-band signal of an error.  It is not a valid value to operate on or to pass to functions.
&gt; 
&gt; I think the numeric conversions should probably not be accepting the empty value, that this is an error.  They should likely be able to ASSERT against this usage.

Thank you, I got it. I fixed the patch. 

c.f. Why do we need to introduce [CallWithNullValue] and MAYBE_MISSING_PARAMETER() macro: https://bugs.webkit.org/show_bug.cgi?id=67458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492189</commentid>
    <comment_count>9</comment_count>
      <attachid>112804</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 18:42:44 -0700</bug_when>
    <thetext>Comment on attachment 112804
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        This patch implements [Optional=CallWithNullValue] IDL for JSC.
&gt; +        While a parameter specified as [Optional=CallWithDefaultValue] is
&gt; +        handled as a string &quot;undefined&quot;, a parameter specified as
&gt; +        [Optional=CallWithNullValue] is handled as a null string.
&gt; +        (Note: not a string &quot;null&quot;, but a null string).

Interesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492200</commentid>
    <comment_count>10</comment_count>
      <attachid>112804</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 19:43:31 -0700</bug_when>
    <thetext>Comment on attachment 112804
Patch

Clearing flags on attachment: 112804

Committed r98679: &lt;http://trac.webkit.org/changeset/98679&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492202</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 19:43:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492207</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-27 19:49:17 -0700</bug_when>
    <thetext>How is Optional=CallWithNullValue different from Optional,ConvertNullToNullString?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492212</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-10-27 19:55:22 -0700</bug_when>
    <thetext>&gt; How is Optional=CallWithNullValue different from Optional,ConvertNullToNullString?

I would expect the two to be different from when the argument null is supplied.  In the ConvertNullToNullString case, the null string will be supplied whereas in the Optional=CallWithNullValue, the string &quot;null&quot; will be supplied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492214</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-10-27 19:59:18 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; How is Optional=CallWithNullValue different from Optional,ConvertNullToNullString?

ConvertNullToNullString defines the behavior when null is passed to a parameter. On the other hand, Optional=CallWithNullValue defines the behavior when the parameter is missing.

Please assume func(in [XXXX] DOMString str).

If XXXX is &quot;Optional, ConvertNullToNullString&quot;:
func(null) -&gt; (not a string &quot;null&quot; but) a null string is passed to a WebCore method.
func() -&gt; a string &quot;undefined&quot; is passed to a WebCore method.

If XXXX is &quot;Optional=CallWithNullValue&quot;:
func(null) -&gt; a string &quot;null&quot; is passed to a WebCore method.
func() -&gt; a null string is passed to a WebCore method.

If XXXX is &quot;Optional=CallWithDefaultValue&quot;:
func(null) -&gt; a string &quot;null&quot; is passed to a WebCore method.
func() -&gt; a string &quot;undefined&quot; is passed to a WebCore method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492230</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 21:40:25 -0700</bug_when>
    <thetext>binding tests are failing :(

http://build.webkit.org/builders/Chromium%20Linux%20Release%20%28Tests%29/builds/25283</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492235</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 21:59:34 -0700</bug_when>
    <thetext>Rebaselined binding tests in http://trac.webkit.org/changeset/98688.

We should really do something about these binding tests. It&apos;s shadowing other more serious failures by turning bots red :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492518</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-28 10:38:41 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; We should really do something about these binding tests.

Yes, I think we should make sure at least one EWS server runs them.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111222</attachid>
            <date>2011-10-17 01:17:06 -0700</date>
            <delta_ts>2011-10-18 18:23:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70215-20111017171704.patch</filename>
            <type>text/plain</type>
            <size>19395</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc1ODIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQ0
NGFmYjBiMWI4NjI4YTBjZDhiMjQ0MWEwZmNjNWZmZjU3ZmUyZGIuLmIyZDIyOTBlM2Y0Y2I0NjFl
ZmY4YWJmODhmMGJlYjIyYTM5ZWRhM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDExLTEwLTE3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBHZW5lcmF0ZSBXZWJLaXRDU1NNYXRyaXggY29uc3RydWN0b3IgZm9yIEpT
QyBieSBbQ29uc3RydWN0b3JdIElETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzAyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHksIEpTQzo6SlNWYWx1ZTo6dG9TdHJpbmcoKSBjcmFzaGVz
IHdoZW4gd2UgcGFzcyBpdCBhbiBlbXB0eSBKU1ZhbHVlLgorICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIGEgY2hhbmdlIHNvIHRoYXQgSlNDOjpKU1ZhbHVlOjp0b1N0cmluZygpIHJldHVybnMgVVN0
cmluZygpCisgICAgICAgIHdoZW4gdGhlIGVtcHR5IEpTVmFsdWUgaXMgcGFzc2VkLgorCisgICAg
ICAgIFRlc3RzOiB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0bWwKKyAgICAgICAgICAgICAgIHRy
YW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS54aHRtbAorICAgICAgICAgICAgICAgdHJh
bnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sCisKKyAgICAgICAgKiBydW50aW1l
L0pTU3RyaW5nLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvU3RyaW5nKTogUmV0dXJucyBV
U3RyaW5nKCkgaWYgSlNWYWx1ZSBpcyBlbXB0eS4KKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChK
U0M6OkpTVmFsdWU6OmlzRW1wdHkpOiBKdWRnZXMgaWYgYSBnaXZlbiBKU1ZhbHVlIGlzIGVtcHR5
IG9yIG5vdC4KKwogMjAxMS0xMC0xNiAgTm9lbCBHb3Jkb24gIDxub2VsLmdvcmRvbkBnbWFpbC5j
b20+CiAKICAgICAgICAgW2Nocm9taXVtXSBSZW1vdmUgUGFnZUFsbG9jYXRvclN5bWJpYW4uaCwg
T1NBbGxvY2F0b3JTeW1iaWFuLmNwcCwgZ3RrL1RocmVhZGluZ0d0ay5jcHAgZnJvbSBneXAgcHJv
amVjdCBmaWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDVjYTYxMmZhZjViZWEwNGUwOWFmNmI0MTYzNDFiNjJh
OWMyYzE1NjguLjkzYWYxZTUwMzE5N2M5YTA4YmM1YjU5ZWRhNjk1MGRhOTIzMTkxYmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMS0xMC0xNyAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgR2VuZXJhdGUgV2ViS2l0Q1NTTWF0cml4IGNvbnN0
cnVjdG9yIGZvciBKU0MgYnkgW0NvbnN0cnVjdG9yXSBJREwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjE1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBpbXBsZW1lbnRzIFtPcHRpb25h
bD1DYWxsV2l0aE51bGxWYWx1ZV0gSURMIGZvciBKU0MuCisgICAgICAgIFdoaWxlIGEgcGFyYW1l
dGVyIHNwZWNpZmllZCBhcyBbT3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIGlzCisgICAg
ICAgIGhhbmRsZWQgYXMgYSBzdHJpbmcgInVuZGVmaW5lZCIsIGEgcGFyYW1ldGVyIHNwZWNpZmll
ZCBhcworICAgICAgICBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFsdWVdIGlzIGhhbmRsZWQgYXMg
YSBudWxsIHN0cmluZy4KKyAgICAgICAgKE5vdGU6IG5vdCBhIHN0cmluZyAibnVsbCIsIGJ1dCBh
IG51bGwgc3RyaW5nKS4KKworICAgICAgICBjLmYuIFtPcHRpb25hbD1DYWxsV2l0aE51bGxWYWx1
ZV0gaXMgaW1wbGVtZW50ZWQgaW4gVjggaW4gYnVnIDY3NDU4LgorCisgICAgICAgIFRlc3RzOiBm
YXN0L2RvbS9nbG9iYWwtY29uc3RydWN0b3JzLmh0bWwKKyAgICAgICAgICAgICAgIHRyYW5zZm9y
bXMvc3ZnLXZzLWNzcy54aHRtbAorICAgICAgICAgICAgICAgdHJhbnNmb3Jtcy9jc3NtYXRyaXgt
MmQtaW50ZXJmYWNlLnhodG1sCisgICAgICAgICAgICAgICB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0z
ZC1pbnRlcmZhY2UueGh0bWwKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IFJlbW92
ZWQgSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwLgorICAgICAgICAqIFVzZUpTQy5jbWFrZTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZS5neXBpOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3Jl
LnBybzogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaDogTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGljeSkgcmV0dXJucyB0aGUgaW5kZXgtdGggcGFy
YW1ldGVyLCBpZiB0aGUgcGFyYW1ldGVyIGV4aXN0cy4gSXQgcmV0dXJucyBhbiB1bmRlZmluZWQg
dmFsdWUsIGlmIHRoZSBpbmRleC10aCBwYXJhbWV0ZXIgaXMgbWlzc2luZyBhbmQgdGhlIHBvbGlj
eSBpcyBNaXNzaW5nSXNVbmRlZmluZWQuIEl0IHJldHVybnMgYW4gZW1wdHkgdmFsdWUsIG90aGVy
d2lzZSAoaS5lLiBpZiB0aGUgaW5kZXgtdGggcGFyYW1ldGVyIGlzIG1pc3NpbmcgYW5kIHRoZSBw
b2xpY3kgaXMgTWlzc2luZ0lzRW1wdHkpLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTTWF0cml4Q3VzdG9tLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrKTog
U3VwcG9ydGVkIFtPcHRpb25hbD1DYWxsV2l0aE51bGxWYWx1ZV0uCisgICAgICAgIChHZW5lcmF0
ZUNvbnN0cnVjdG9yRGVmaW5pdGlvbik6IFN1cHBvcnRlZCBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxs
VmFsdWVdLgorICAgICAgICAqIGNzcy9XZWJLaXRDU1NNYXRyaXguaWRsOiBSZW1vdmVkIFtKU0N1
c3RvbUNvbnN0cnVjdG9yXS4KKwogMjAxMS0xMC0xNiAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgR2VuZXJhdGUgWE1MSHR0cFJlcXVlc3QgY29uc3RydWN0
b3IgZm9yIEpTQyBieSBbQ29uc3RydWN0b3JdIElETApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTU3RyaW5nLmgKaW5kZXggNDY5NjUyYjAxOGM1MjBmMjMzNjk5MzBmMTY1MDZjOGVkNzJh
OTkwOS4uZWExOWI0NmM1NzlhMWZiODQ2MzdkNzVlYTUzZjQ4ZTdkYWM5MGM3MiAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC03MDgsNiArNzA4LDggQEAgbmFt
ZXNwYWNlIEpTQyB7CiAKICAgICBpbmxpbmUgVVN0cmluZyBKU1ZhbHVlOjp0b1N0cmluZyhFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgeworICAgICAgICBpZiAoaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuIFVTdHJpbmcoKTsKICAgICAgICAgaWYgKGlzU3RyaW5nKCkpCiAgICAgICAg
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNTdHJpbmcqPihhc0NlbGwoKSktPnZhbHVlKGV4ZWMp
OwogICAgICAgICBpZiAoaXNJbnQzMigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNWYWx1ZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNW
YWx1ZS5oCmluZGV4IDM2MGJhZWU5NTEyOTNkYTI4OTNlYzZhM2MzNDgwMGVjMmM0OTMzOGMuLjAw
YTM1NjQwY2M5MTBhODA3YTU3ZGMzZWMwNWZmYjViOWUwYjVhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU1ZhbHVlLmgKQEAgLTE2MSw2ICsxNjEsNyBAQCBuYW1lc3BhY2UgSlND
IHsKICAgICAgICAgZG91YmxlIGFzTnVtYmVyKCkgY29uc3Q7CiAKICAgICAgICAgLy8gUXVlcnlp
bmcgdGhlIHR5cGUuCisgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogICAgICAgICBib29s
IGlzVW5kZWZpbmVkKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNOdWxsKCkgY29uc3Q7CiAgICAg
ICAgIGJvb2wgaXNVbmRlZmluZWRPck51bGwoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmggYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lTWV0aG9kcy5oCmluZGV4IDYxZjkyNjQy
ZGI4YjJmNzU1NzYxZWUwNjIzN2RiY2E1MTllMWQzYzIuLmUxM2QzNDc0NTRjNmQ2NjdhMTY1YmEx
YWU4NDVkMTgyMWE1ZDk1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYWx1ZUlubGluZU1ldGhvZHMuaApAQCAtMjIzLDYgKzIyMywxMSBAQCBuYW1lc3Bh
Y2UgSlNDIHsKICAgICAgICAgcmV0dXJuIHUuYXNJbnQ2NCAhPSBvdGhlci51LmFzSW50NjQ7CiAg
ICAgfQogCisgICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNFbXB0eSgpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gdGFnKCkgPT0gRW1wdHlWYWx1ZVRhZzsKKyAgICB9CisKICAgICBpbmxp
bmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1
cm4gdGFnKCkgPT0gVW5kZWZpbmVkVGFnOwpAQCAtMzY4LDYgKzM3MywxMSBAQCBuYW1lc3BhY2Ug
SlNDIHsKICAgICAgICAgcmV0dXJuIHUucHRyICE9IG90aGVyLnUucHRyOwogICAgIH0KIAorICAg
IGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIHUuYXNJbnQ2NCA9PSBWYWx1ZUVtcHR5OworICAgIH0KKwogICAgIGlubGluZSBib29sIEpT
VmFsdWU6OmlzVW5kZWZpbmVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBhc1ZhbHVl
KCkgPT0gSlNWYWx1ZShKU1VuZGVmaW5lZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpp
bmRleCA4MDE1Y2NjY2I3Nzk4ODdhNDVlZGMxMzIyMGZiMjk1YjdkYWVmMmE2Li5iNWRiNjA0NjY5
NDBkZmE5NzNlMjk5ODcwZDI5NTMxMzVlOGIyMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxp
c3QuYW0KQEAgLTgyOCw3ICs4MjgsNiBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJHTFJlbmRlcmluZ0NvbnRl
eHRDdXN0b20uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01h
dHJpeEN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0
YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
V2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dl
YlNvY2tldEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNt
YWtlIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCmluZGV4IDZiZmI0Yjk0ZmI5NjkxNjQ2
NDFjOWI0NGRkNjI3NjgzNWEzN2QxMTAuLjlkODQ4NTBjMjIyMzU5NzFjMjhiYmMxNzc0NjM5YzZj
NTViNWU0Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UKQEAgLTEyMyw3ICsxMjMsNiBAQCBMSVNUKEFQUEVO
RCBXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RD
dXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcAot
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9K
U1dlYktpdFBvaW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RD
dXN0b20uY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMWY4M2RmMjY2MjIxYzk1NTI0YjJiZjZhNzU2
OWJiNTI5YTQyNmIzMC4uM2FhYWE0MzFkMDBiNWUwNGFmNTFhYTk3YmFkZjljYmNkNGJmMDdhNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTkzOSw3ICsxOTM5LDYgQEAKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwJywKICAgICAgICAgICAgICdi
aW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAnLAogICAgICAgICAg
ICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAnLAotICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCcsCiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCcs
CiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAnLAogICAg
ICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJv
CmluZGV4IDAxMzQ1OGRiYzZhODgxZjFhZGVhNzFmNDNjODAxNGNlYjU3MzczZDMuLmRkMzc5YWU0
YmM5MzczMmU5ZWIxNjliZjdlZjU0YTVjY2RkYTQ5NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zNDYs
NyArMzQ2LDYgQEAgdjggewogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdEFuaW1hdGlvbkxp
c3RDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGVDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlQ3VzdG9tLmNwcCBcCi0gICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3Vz
dG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZlckN1
c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBc
CiAgICAgICAgIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
NThkM2JhOGZiMDQ5Yjk2YmI5MzVhOGI2NzM1Njk2Njg5NGNkMmQ4Li41ZWQ0YmNhMjNiZTRhNTk3
MDE4ZDFkZDY2YjI1ODk4YTI1ZGZiM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OTUwLDcgKzQ5NTAsNiBAQAogCQlCQzI3
NEIyRjE0MEVCRUIyMDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI3NEIyRTE0MEVCRUIy
MDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmggKi87IH07CiAJCUJDMjc0QjMx
MTQwRUJFRDgwMEVBREZBNiAvKiBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyNzRCMzAxNDBFQkVEODAw
RUFERkE2IC8qIENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5jcHAgKi87IH07CiAJCUJDMjc1Qjc5
MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc1Qjc4MTFDNUQxQzMwMEM5MjA2
QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCAqLzsgfTsKLQkJQkMyNzVCN0QxMUM1RDIzNTAw
QzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAvKiBK
U1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgKi87IH07CiAJCUJDMjc1QjgxMTFDNUQyQjQwMEM5
MjA2QyAvKiBKU0V2ZW50U291cmNlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc1QjgwMTFDNUQyQjQwMEM5MjA2QyAvKiBKU0V2ZW50
U291cmNlQ3VzdG9tLmNwcCAqLzsgfTsKIAkJQkMyNzVDQjMxMUM1RTg1QzAwQzkyMDZDIC8qIEpT
QXJyYXlCdWZmZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkMyNzVDQjIxMUM1RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZmZXJDdXN0
b20uY3BwICovOyB9OwogCQlCQzJDQkY0RTE0MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRl
eHRFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkMyQ0JGNEIxNDBGMUE2NTAwMzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsK
QEAgLTEyMjA3LDcgKzEyMjA2LDYgQEAKIAkJQkMyNzRCMkUxNDBFQkVCMjAwRUFERkE2IC8qIENT
U0JvcmRlckltYWdlU2xpY2VWYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQkMyNzRCMzAxNDBFQkVEODAwRUFERkE2IC8qIENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDU1NCb3JkZXJJbWFnZVNs
aWNlVmFsdWUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI3NUI3ODExQzVE
MUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NT
TWF0cml4Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyNzVCODAxMUM1RDJCNDAwQzkyMDZDIC8qIEpTRXZlbnRTb3VyY2VDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNFdmVudFNvdXJjZUN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjc1Q0IyMTFDNUU4NUMwMEM5MjA2QyAv
KiBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTQXJyYXlCdWZmZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCQzJDQkY0QjE0MEYxQTY1MDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTY2NSw3ICsxOTY2Myw2IEBACiAJCQkJMzE5
NDYyMzExMzAyMkY2NTAwNEJCM0Y4IC8qIEpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAg
Ki8sCiAJCQkJRTFBRDE0QzQxMjk3MzU0OTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlQ3VzdG9tLmNwcCAqLywKIAkJCQlFMUFEMTRCNDEyOTczNENBMDBBQ0E5ODkgLyogSlNXZWJL
aXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCAqLywKLQkJCQlCQzI3NUI3QzExQzVEMjM1MDBD
OTIwNkMgLyogSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwICovLAogCQkJCUM2RjA5MTdFMTQz
QTJCQjkwMDY4NTg0OSAvKiBKU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwICovLAog
CQkJCUJDMjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dlYktpdFBvaW50Q3VzdG9tLmNwcCAq
LywKIAkJCQk1MThBMzRDNjEwMjZDOEM5MDAxQjY4OTYgLyogSlNXZWJTb2NrZXRDdXN0b20uY3Bw
ICovLApAQCAtMjY1NjAsNyArMjY1NTcsNiBAQAogCQkJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4
OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFB
RDE0QjUxMjk3MzRDQTAwQUNBOTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OTgzOTEzRjBGMUU3Njc1MDBDMjM3ODIgLyogSlNXZWJL
aXRDU1NNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkMyNzVCN0QxMUM1RDIzNTAwQzky
MDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMx
NjExRTVBMEUxQzRERTAwMEY2QTU3OSAvKiBKU1dlYktpdENTU1RyYW5zZm9ybVZhbHVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTg5ODc4NUI0MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU1dlYktpdEZs
YWdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjFENUMwMTJENTMzNTYwMDgzMkJFQyAvKiBK
U1dlYktpdExvc2VDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKaW5kZXggOWI0OTljZDA4Mzhi
Y2Y5MTA4MTRhNzkyYTVlYjJjYTJiZDM4ZjRjOS4uMDUwNzY4MDFiNWRhNWQyN2Y2ZTgzYjEyN2Uz
NDllNWQ1YjJkZTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Jp
bmRpbmdzQWxsSW5PbmUuY3BwCkBAIC0xNTEsNyArMTUxLDYgQEAKICNpbmNsdWRlICJKU1dlYktp
dEFuaW1hdGlvbkxpc3RDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlQ3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20u
Y3BwIgotI2luY2x1ZGUgIkpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U1dlYktpdFBvaW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYlNvY2tldEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNXb3JrZXJDb250ZXh0QmFzZS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQmluZGluZy5oCmluZGV4IDc4MGM2MzgzNjY0YTJiOTY1Zjk2ZjY5NTMwYTY0
MTg2ODYyYmYxMzUuLjIyOGIzYzY2ZWM0ZTViYzczZjZkMjNiZmRlZWFmMjMwMDJhNDczYTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC0zNyw2ICszNywx
MyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2VudW0gUGFyYW1ldGVyTWlzc2luZ1BvbGlj
eSB7CisgICAgTWlzc2luZ0lzVW5kZWZpbmVkLAorICAgIE1pc3NpbmdJc0VtcHR5Cit9OworCisj
ZGVmaW5lIE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMsIGluZGV4LCBwb2xpY3kpICgoKHBv
bGljeSkgPT0gTWlzc2luZ0lzRW1wdHkgJiYgKGluZGV4KSA+PSAoZXhlYyktPmFyZ3VtZW50Q291
bnQoKSkgPyAoSlNWYWx1ZSgpKSA6ICgoZXhlYyktPmFyZ3VtZW50KGluZGV4KSkpCisKICAgICBj
bGFzcyBGcmFtZTsKICAgICBjbGFzcyBLVVJMOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBjZmRkYTM4MjZhZmI4OTYxNDM5ZDAwYjg3OWE1ZDRlODZjZjZjZDYu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCisrKyAvZGV2L251
bGwKQEAgLTEsNDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNXZWJLaXRDU1NNYXRy
aXguaCIKLQotI2luY2x1ZGUgIldlYktpdENTU01hdHJpeC5oIgotCi11c2luZyBuYW1lc3BhY2Ug
SlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvcjo6Y29uc3RydWN0SlNXZWJLaXRDU1NNYXRy
aXgoRXhlY1N0YXRlKiBleGVjKQotewotICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3Iq
IGpzQ29uc3RydWN0b3IgPSBzdGF0aWNfY2FzdDxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9y
Kj4oZXhlYy0+Y2FsbGVlKCkpOwotICAgIFN0cmluZyBzOwotICAgIGlmIChleGVjLT5hcmd1bWVu
dENvdW50KCkgPj0gMSkKLSAgICAgICAgcyA9IHVzdHJpbmdUb1N0cmluZyhleGVjLT5hcmd1bWVu
dCgwKS50b1N0cmluZyhleGVjKSk7Ci0gICAgCi0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0g
ICAgUmVmUHRyPFdlYktpdENTU01hdHJpeD4gbWF0cml4ID0gV2ViS2l0Q1NTTWF0cml4OjpjcmVh
dGUocywgZWMpOwotICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBlYyk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShDUkVBVEVfRE9NX1dSQVBQRVIoZXhlYywganNDb25zdHJ1Y3Rvci0+Z2xv
YmFsT2JqZWN0KCksIFdlYktpdENTU01hdHJpeCwgbWF0cml4LmdldCgpKSk7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9ySlMucG0KaW5kZXggYjlkZjNkM2FiMTIxZTc4ZTYyMDFlYTBhZjRiODgx
YzVmYjVlMzhhMS4uMjNiOGNhMGYzM2JhMzJjMjIxNmM0NDQ4ZjNkYzY0NTM1YWExYTM1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG0KQEAgLTIzMzQsOSArMjMzNCwxMCBAQCBzdWIgR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2sKICAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAg
ICAgICAjIE9wdGlvbmFsIGNhbGxiYWNrcyBzaG91bGQgYmUgdHJlYXRlZCBkaWZmZXJlbnRseSwg
YmVjYXVzZSB0aGV5IGFsd2F5cyBoYXZlIGEgZGVmYXVsdCB2YWx1ZSAoMCksCiAgICAgICAgICMg
YW5kIHdlIGNhbiByZWR1Y2UgdGhlIG51bWJlciBvZiBvdmVybG9hZGVkIGZ1bmN0aW9ucyB0aGF0
IHRha2UgYSBkaWZmZXJlbnQgbnVtYmVyIG9mIHBhcmFtZXRlcnMuCi0gICAgICAgICMgT3B0aW9u
YWwgYXJndW1lbnRzIHdpdGggW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBzaG91bGQg
bm90IGdlbmVyYXRlIGFuIGVhcmx5IGNhbGwuCisgICAgICAgICMgT3B0aW9uYWwgYXJndW1lbnRz
IHdpdGggW09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBvciBbT3B0aW9uYWw9Q2FsbFdp
dGhOdWxsVmFsdWVdCisgICAgICAgICMgc2hvdWxkIG5vdCBnZW5lcmF0ZSBhbiBlYXJseSBjYWxs
LgogICAgICAgICBteSAkb3B0aW9uYWwgPSAkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiT3B0aW9uYWwifTsKLSAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAkb3B0aW9uYWwgbmUgIkNh
bGxXaXRoRGVmYXVsdFZhbHVlIiAmJiAhJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
IkNhbGxiYWNrIn0pIHsKKyAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAkb3B0aW9uYWwgbmUgIkNh
bGxXaXRoRGVmYXVsdFZhbHVlIiAmJiAkb3B0aW9uYWwgbmUgIkNhbGxXaXRoTnVsbFZhbHVlIiAm
JiAhJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNhbGxiYWNrIn0pIHsKICAgICAg
ICAgICAgICMgR2VuZXJhdGUgZWFybHkgY2FsbCBpZiB0aGVyZSBhcmUgZW5vdWdoIHBhcmFtZXRl
cnMuCiAgICAgICAgICAgICBpZiAoISRoYXNPcHRpb25hbEFyZ3VtZW50cykgewogICAgICAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIlxuICAgIHNpemVfdCBhcmdzQ291bnQgPSBleGVj
LT5hcmd1bWVudENvdW50KCk7XG4iKTsKQEAgLTIzOTQsNyArMjM5NSwxMyBAQCBzdWIgR2VuZXJh
dGVQYXJhbWV0ZXJzQ2hlY2sKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICIgLiBHZXROYXRpdmVUeXBlRnJvbVNp
Z25hdHVyZSgkcGFyYW1ldGVyKSAuICIgJG5hbWUoIiAuIEpTVmFsdWVUb05hdGl2ZSgkcGFyYW1l
dGVyLCAiZXhlYy0+YXJndW1lbnQoJGFyZ3NJbmRleCkiKSAuICIpO1xuIik7CisgICAgICAgICAg
ICBteSAkb3B0aW9uYWwgPSAkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiT3B0aW9u
YWwifTsKKyAgICAgICAgICAgIG15ICRwYXJhbWV0ZXJNaXNzaW5nUG9saWN5ID0gIk1pc3NpbmdJ
c1VuZGVmaW5lZCI7CisgICAgICAgICAgICBpZiAoJG9wdGlvbmFsICYmICRvcHRpb25hbCBlcSAi
Q2FsbFdpdGhOdWxsVmFsdWUiKSB7CisgICAgICAgICAgICAgICAgJHBhcmFtZXRlck1pc3NpbmdQ
b2xpY3kgPSAiTWlzc2luZ0lzRW1wdHkiOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRw
YXJhbWV0ZXIpIC4gIiAkbmFtZSgiIC4gSlNWYWx1ZVRvTmF0aXZlKCRwYXJhbWV0ZXIsICJNQVlC
RV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCAkYXJnc0luZGV4LCAkcGFyYW1ldGVyTWlzc2luZ1Bv
bGljeSkiKSAuICIpO1xuIik7CiAKICAgICAgICAgICAgICMgSWYgYSBwYXJhbWV0ZXIgaXMgImFu
IGluZGV4IiBhbmQgaXQncyBuZWdhdGl2ZSBpdCBzaG91bGQgdGhyb3cgYW4gSU5ERVhfU0laRV9F
UlIgZXhjZXB0aW9uLgogICAgICAgICAgICAgIyBCdXQgdGhpcyBuZWVkcyB0byBiZSBkb25lIGlu
IHRoZSBiaW5kaW5ncywgYmVjYXVzZSB0aGUgdHlwZSBpcyB1bnNpZ25lZCBhbmQgdGhlIGZhY3Qg
dGhhdCBpdApAQCAtMzI5MSw3ICszMjk4LDggQEAgc3ViIEdlbmVyYXRlQ29uc3RydWN0b3JEZWZp
bml0aW9uCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgIyBGb3Igbm93LCB3
ZSBkbyBub3Qgc3VwcG9ydCBTVkcgY29uc3RydWN0b3JzLgotICAgICAgICAgICAgICAgICMgV2Ug
ZG8gbm90IGFsc28gc3VwcG9ydCBhIGNvbnN0cnVjdG9yIFtPcHRpb25hbF0gYXJndW1lbnQgd2l0
aG91dCBDYWxsV2l0aERlZmF1bHRWYWx1ZS4KKyAgICAgICAgICAgICAgICAjIFdlIGRvIG5vdCBh
bHNvIHN1cHBvcnQgYSBjb25zdHJ1Y3RvciBbT3B0aW9uYWxdIGFyZ3VtZW50IHdpdGhvdXQgQ2Fs
bFdpdGhEZWZhdWx0VmFsdWUKKyAgICAgICAgICAgICAgICAjIG5vciBDYWxsV2l0aE51bGxWYWx1
ZS4KICAgICAgICAgICAgICAgICBteSAkbnVtUGFyYW1ldGVycyA9IEB7JGZ1bmN0aW9uLT5wYXJh
bWV0ZXJzfTsKICAgICAgICAgICAgICAgICBteSAoJGR1bW15LCAkcGFyYW1JbmRleCkgPSBHZW5l
cmF0ZVBhcmFtZXRlcnNDaGVjaygkb3V0cHV0QXJyYXksICRmdW5jdGlvbiwgJGRhdGFOb2RlLCAk
bnVtUGFyYW1ldGVycywgJGludGVyZmFjZU5hbWUsICJjb25zdHJ1Y3RvckNhbGxiYWNrIiwgdW5k
ZWYsIHVuZGVmLCB1bmRlZik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJL
aXRDU1NNYXRyaXguaWRsIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwK
aW5kZXggMjFiNzA4ZjI0ZjYxYzFjZTcwODU1NjY5YmRmMGM3NjkzMTg1MmJiZC4uZGI1NThjMjU1
MTA2MDFiOGZhYmJkMzgzZThmNDllNzY0NGQ2Y2NhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU01hdHJpeC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwKQEAgLTI4LDcgKzI4LDYgQEAgbW9kdWxlIGNzcyB7CiAgICAgLy8gSW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgPzoKICAgICBpbnRlcmZhY2UgWwogICAgICAgICBDYW5CZUNv
bnN0cnVjdGVkLAotICAgICAgICBKU0N1c3RvbUNvbnN0cnVjdG9yLAogICAgICAgICBDb25zdHJ1
Y3RvclBhcmFtZXRlcnM9MSwKICAgICAgICAgQ29uc3RydWN0b3IoaW4gW09wdGlvbmFsPUNhbGxX
aXRoTnVsbFZhbHVlXSBET01TdHJpbmcgY3NzVmFsdWUpLAogICAgICAgICBDb25zdHJ1Y3RvclJh
aXNlc0V4Y2VwdGlvbiwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111545</attachid>
            <date>2011-10-18 18:24:02 -0700</date>
            <delta_ts>2011-10-27 18:37:40 -0700</delta_ts>
            <desc>Rebased patch for review</desc>
            <filename>bug-70215-20111019102401.patch</filename>
            <type>text/plain</type>
            <size>19294</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4MTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDA4
Mjk5ZjMyMTBjM2I5OWI2ZWM3YWFhMDhhYzU3MjliZDdkM2Y2NWYuLjgxNjcwOTQwNzdhZmU4NzRi
NTc2NmUxYWM1ZGVlMWJjNjcxNDdiODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDExLTEwLTE3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBHZW5lcmF0ZSBXZWJLaXRDU1NNYXRyaXggY29uc3RydWN0b3IgZm9yIEpT
QyBieSBbQ29uc3RydWN0b3JdIElETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzAyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDdXJyZW50bHksIEpTQzo6SlNWYWx1ZTo6dG9TdHJpbmcoKSBjcmFzaGVz
IHdoZW4gd2UgcGFzcyBpdCBhbiBlbXB0eSBKU1ZhbHVlLgorICAgICAgICBUaGlzIHBhdGNoIG1h
a2VzIGEgY2hhbmdlIHNvIHRoYXQgSlNDOjpKU1ZhbHVlOjp0b1N0cmluZygpIHJldHVybnMgVVN0
cmluZygpCisgICAgICAgIHdoZW4gdGhlIGVtcHR5IEpTVmFsdWUgaXMgcGFzc2VkLgorCisgICAg
ICAgIFRlc3RzOiB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0bWwKKyAgICAgICAgICAgICAgIHRy
YW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS54aHRtbAorICAgICAgICAgICAgICAgdHJh
bnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1sCisKKyAgICAgICAgKiBydW50aW1l
L0pTU3RyaW5nLmg6CisgICAgICAgIChKU0M6OkpTVmFsdWU6OnRvU3RyaW5nKTogUmV0dXJucyBV
U3RyaW5nKCkgaWYgSlNWYWx1ZSBpcyBlbXB0eS4KKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWUu
aDoKKyAgICAgICAgKiBydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmg6CisgICAgICAgIChK
U0M6OkpTVmFsdWU6OmlzRW1wdHkpOiBKdWRnZXMgaWYgYSBnaXZlbiBKU1ZhbHVlIGlzIGVtcHR5
IG9yIG5vdC4KKwogMjAxMS0xMC0xOCAgTWFyayBIYWhuZW5iZXJnICA8bWhhaG5lbmJlcmdAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBzdGF0aWMgcHV0IHRvIHB1dEJ5SW5kZXgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA1M2RmNTI1MDNjOWZlZDE3ZTZmZWMyOWMwNmI3YzRjYzk5Njk0MTYxLi4xMDI5ZTBh
NjhiZTBiZTdhNzBiMzdmNjU0NDBkMmVlMjRhNjg2NWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTAtMTcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEdlbmVyYXRlIFdlYktpdENTU01hdHJpeCBjb25zdHJ1Y3RvciBmb3IgSlNDIGJ5
IFtDb25zdHJ1Y3Rvcl0gSURMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MDIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFs
dWVdIElETCBmb3IgSlNDLgorICAgICAgICBXaGlsZSBhIHBhcmFtZXRlciBzcGVjaWZpZWQgYXMg
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBpcworICAgICAgICBoYW5kbGVkIGFzIGEg
c3RyaW5nICJ1bmRlZmluZWQiLCBhIHBhcmFtZXRlciBzcGVjaWZpZWQgYXMKKyAgICAgICAgW09w
dGlvbmFsPUNhbGxXaXRoTnVsbFZhbHVlXSBpcyBoYW5kbGVkIGFzIGEgbnVsbCBzdHJpbmcuCisg
ICAgICAgIChOb3RlOiBub3QgYSBzdHJpbmcgIm51bGwiLCBidXQgYSBudWxsIHN0cmluZykuCisK
KyAgICAgICAgYy5mLiBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFsdWVdIGlzIGltcGxlbWVudGVk
IGluIFY4IGluIGJ1ZyA2NzQ1OC4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCisgICAgICAgICAgICAgICB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0
bWwKKyAgICAgICAgICAgICAgIHRyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS54aHRt
bAorICAgICAgICAgICAgICAgdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1s
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIEpTV2ViS2l0Q1NTTWF0
cml4Q3VzdG9tLmNwcC4KKyAgICAgICAgKiBVc2VKU0MuY21ha2U6IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IGluZGV4LCBwb2xpY3kpIHJldHVybnMgdGhlIGluZGV4LXRoIHBhcmFtZXRlciwgaWYgdGhlIHBh
cmFtZXRlciBleGlzdHMuIEl0IHJldHVybnMgYW4gdW5kZWZpbmVkIHZhbHVlLCBpZiB0aGUgaW5k
ZXgtdGggcGFyYW1ldGVyIGlzIG1pc3NpbmcgYW5kIHRoZSBwb2xpY3kgaXMgTWlzc2luZ0lzVW5k
ZWZpbmVkLiBJdCByZXR1cm5zIGFuIGVtcHR5IHZhbHVlLCBvdGhlcndpc2UgKGkuZS4gaWYgdGhl
IGluZGV4LXRoIHBhcmFtZXRlciBpcyBtaXNzaW5nIGFuZCB0aGUgcG9saWN5IGlzIE1pc3NpbmdJ
c0VtcHR5KS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6IFN1cHBvcnRlZCBbT3B0aW9u
YWw9Q2FsbFdpdGhOdWxsVmFsdWVdLgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmlu
aXRpb24pOiBTdXBwb3J0ZWQgW09wdGlvbmFsPUNhbGxXaXRoTnVsbFZhbHVlXS4KKyAgICAgICAg
KiBjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbDogUmVtb3ZlZCBbSlNDdXN0b21Db25zdHJ1Y3Rvcl0u
CisKIDIwMTEtMTAtMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29t
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5Nzc2NS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCmluZGV4IDQ2OTY1MmIwMThjNTIwZjIzMzY5OTMw
ZjE2NTA2YzhlZDcyYTk5MDkuLmVhMTliNDZjNTc5YTFmYjg0NjM3ZDc1ZWE1M2Y0OGU3ZGFjOTBj
NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaApAQCAtNzA4LDYg
KzcwOCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgaW5saW5lIFVTdHJpbmcgSlNWYWx1ZTo6
dG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIHsKKyAgICAgICAgaWYgKGlzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiBVU3RyaW5nKCk7CiAgICAgICAgIGlmIChpc1N0cmlu
ZygpKQogICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEpTU3RyaW5nKj4oYXNDZWxsKCkp
LT52YWx1ZShleGVjKTsKICAgICAgICAgaWYgKGlzSW50MzIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWUuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTVmFsdWUuaAppbmRleCA5NjI2NGU1MTU1ODVlZjM5NzI1MDNkODRjZGVlNDI0
NTI4YWQ1ZmFkLi44NjY5OGQwMDc5YWZmOGNiNGFjMDRlYzU1ZDc5YTM0OTZmMTFhMjdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZS5oCkBAIC0xNjIsNiArMTYyLDcgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGRvdWJsZSBhc051bWJlcigpIGNvbnN0OwogCiAgICAg
ICAgIC8vIFF1ZXJ5aW5nIHRoZSB0eXBlLgorICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
ICAgICAgICAgYm9vbCBpc1VuZGVmaW5lZCgpIGNvbnN0OwogICAgICAgICBib29sIGlzTnVsbCgp
IGNvbnN0OwogICAgICAgICBib29sIGlzVW5kZWZpbmVkT3JOdWxsKCkgY29uc3Q7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lTWV0aG9kcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGluZU1ldGhvZHMuaApp
bmRleCA2MWY5MjY0MmRiOGIyZjc1NTc2MWVlMDYyMzdkYmNhNTE5ZTFkM2MyLi5lMTNkMzQ3NDU0
YzZkNjY3YTE2NWJhMWFlODQ1ZDE4MjFhNWQ5NWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5lTWV0aG9kcy5oCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVmFsdWVJbmxpbmVNZXRob2RzLmgKQEAgLTIyMyw2ICsyMjMs
MTEgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiB1LmFzSW50NjQgIT0gb3RoZXIu
dS5hc0ludDY0OwogICAgIH0KIAorICAgIGlubGluZSBib29sIEpTVmFsdWU6OmlzRW1wdHkoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHRhZygpID09IEVtcHR5VmFsdWVUYWc7CisgICAg
fQorCiAgICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQoKSBjb25zdAogICAgIHsK
ICAgICAgICAgcmV0dXJuIHRhZygpID09IFVuZGVmaW5lZFRhZzsKQEAgLTM2OCw2ICszNzMsMTEg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHJldHVybiB1LnB0ciAhPSBvdGhlci51LnB0cjsK
ICAgICB9CiAKKyAgICBpbmxpbmUgYm9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKKyAgICB7
CisgICAgICAgIHJldHVybiB1LmFzSW50NjQgPT0gVmFsdWVFbXB0eTsKKyAgICB9CisKICAgICBp
bmxpbmUgYm9vbCBKU1ZhbHVlOjppc1VuZGVmaW5lZCgpIGNvbnN0CiAgICAgewogICAgICAgICBy
ZXR1cm4gYXNWYWx1ZSgpID09IEpTVmFsdWUoSlNVbmRlZmluZWQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggY2ZmYTA4M2E5MDY3MjVmNWMyYTZmOTdlZTg2MGUwNDQxMGZkNzkw
MS4uNGFlZjUwOTMxY2Y2MjFjNGIxZTI4ZDc2ZTg1NGRmMzNiNzRiMTU1ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC04NDEsNyArODQxLDYgQEAgd2ViY29yZV9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1
c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZUN1c3RvbS5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViR0xS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNXZWJTb2NrZXRDdXN0b20uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1VzZUpTQy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZUpTQy5jbWFrZQppbmRleCA2Y2M1
OTU0OTdlNGY1MDdiMjQ1ZWJhYWNjMjAzNTgxNWUyMzIyNGRhLi45MGJiNTIwMDg5NDA3ZGQ1MGY2
YTY3MDFkMzFlYjM0MzdkODg2YTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0Mu
Y21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCkBAIC0xMjMsNyArMTIzLDYg
QEAgTElTVChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRB
bmltYXRpb25MaXN0Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVs
ZUN1c3RvbS5jcHAKLSAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAK
ICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwCiAgICAg
YmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDRiZjQ3MjU4ZDhiODMz
NmVhZjM4MmNjMzI1ZjhlODA0ZjFmZjVlZWUuLjllYzJiZjFmNDFmMjJmZTJkMDM2MzkxYjdkOTRi
YWM3YjY3NDkzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTE5NDAsNyArMTk0MCw2IEBACiAgICAg
ICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCcsCiAg
ICAgICAgICAgICAnYmluZGluZ3MvanMvSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3Bw
JywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0
b20uY3BwJywKLSAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3Rv
bS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0TXV0YXRpb25PYnNlcnZl
ckN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0
b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5jcHAn
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnBybwppbmRleCBhY2Y4ZDcyMTJhZWY2ZDJmMDFjMjQwOTRiYjNiZDg1MTNmMWY0
ZTg3Li4yMTUxOGZhYjFiZTRhYWQyMWZhMjc4ZjZkZjc0MjRmZTJiODY0NWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtMzQ2LDcgKzM0Niw2IEBAIHY4IHsKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJL
aXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgXAotICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktp
dENTU01hdHJpeEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdE11dGF0
aW9uT2JzZXJ2ZXJDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRQb2lu
dEN1c3RvbS5jcHAgXAogICAgICAgICBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9t
LmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMTZhMWZiYmZkN2FiNzAyYjg2ZmY3YWQ2NjdhYzdjYjdiMmNkYzY4MS4uZmJm
MDI1MWJiYTIzMWE2MTNmM2UxMjY3MTAzZTZlNDk5OWM2ZGVhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDk1MCw3ICs0OTUw
LDYgQEAKIAkJQkMyNzRCMkYxNDBFQkVCMjAwRUFERkE2IC8qIENTU0JvcmRlckltYWdlU2xpY2VW
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMy
NzRCMkUxNDBFQkVCMjAwRUFERkE2IC8qIENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5oICovOyB9
OwogCQlCQzI3NEIzMTE0MEVCRUQ4MDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc0
QjMwMTQwRUJFRDgwMEVBREZBNiAvKiBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuY3BwICovOyB9
OwogCQlCQzI3NUI3OTExQzVEMUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI3NUI3ODEx
QzVEMUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAgKi87IH07Ci0JCUJDMjc1
QjdEMTFDNUQyMzUwMEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI3NUI3QzExQzVEMjM1
MDBDOTIwNkMgLyogSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwICovOyB9OwogCQlCQzI3NUNC
MzExQzVFODVDMDBDOTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI3NUNCMjExQzVFODVDMDBDOTIw
NkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi87IH07CiAJCUJDMkNCRjRFMTQwRjFBQkQw
MDM4NzlCRSAvKiBKU1dlYkdMQ29udGV4dEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzJDQkY0QjE0MEYxQTY1MDAzODc5QkUgLyogSlNXZWJH
TENvbnRleHRFdmVudC5oICovOyB9OwogCQlCQzJDQkY3QjE0MEYxRDU4MDAzODc5QkUgLyogSlNX
ZWJHTENvbnRleHRFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQzJDQkY3QTE0MEYxRDU4MDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVu
dC5jcHAgKi87IH07CkBAIC0xMjIwNSw3ICsxMjIwNCw2IEBACiAJCUJDMjc0QjJFMTQwRUJFQjIw
MEVBREZBNiAvKiBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUJDMjc0QjMwMTQwRUJFRDgwMEVBREZBNiAvKiBDU1NCb3JkZXJJbWFn
ZVNsaWNlVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NT
Qm9yZGVySW1hZ2VTbGljZVZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMyNzVCNzgxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRQb2ludEN1c3RvbS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAv
KiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDMjc1Q0IyMTFDNUU4NUMwMEM5MjA2QyAvKiBKU0FycmF5QnVmZmVyQ3Vz
dG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQXJyYXlCdWZm
ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJDQkY0QjE0MEYx
QTY1MDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBKU1dlYkdMQ29udGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDMkNCRjdBMTQwRjFENTgwMDM4NzlCRSAvKiBKU1dlYkdMQ29udGV4dEV2ZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViR0xDb250ZXh0
RXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk2NjEsNyArMTk2NTks
NiBAQAogCQkJCTMxOTQ2MjMxMTMwMjJGNjUwMDRCQjNGOCAvKiBKU1dlYktpdEFuaW1hdGlvbkxp
c3RDdXN0b20uY3BwICovLAogCQkJCUUxQUQxNEM0MTI5NzM1NDkwMEFDQTk4OSAvKiBKU1dlYktp
dENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgKi8sCiAJCQkJRTFBRDE0QjQxMjk3MzRDQTAwQUNB
OTg5IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAgKi8sCi0JCQkJQkMyNzVC
N0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCAqLywKIAkJ
CQlDNkYwOTE3RTE0M0EyQkI5MDA2ODU4NDkgLyogSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCQzI3NUI3ODExQzVEMUMzMDBDOTIwNkMgLyogSlNXZWJLaXRQb2lu
dEN1c3RvbS5jcHAgKi8sCiAJCQkJNTE4QTM0QzYxMDI2QzhDOTAwMUI2ODk2IC8qIEpTV2ViU29j
a2V0Q3VzdG9tLmNwcCAqLywKQEAgLTI2NTUwLDcgKzI2NTQ3LDYgQEAKIAkJCQkzMTZGRTA3MzBF
NkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxQUQxNEI1MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1l
c1J1bGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDk4MzkxM0YwRjFFNzY3NTAwQzIz
NzgyIC8qIEpTV2ViS2l0Q1NTTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDMjc1QjdE
MTFDNUQyMzUwMEM5MjA2QyAvKiBKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkzMTYxMUU1QTBFMUM0REUwMDBGNkE1NzkgLyogSlNXZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVCNDEyMkNBMkE3MDAzQUFCREEg
LyogSlNXZWJLaXRGbGFncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5M0YxRDVDMDEyRDUzMzU2
MDA4MzJCRUMgLyogSlNXZWJLaXRMb3NlQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCmluZGV4
IDU2ZjdjY2E2MWUzZTgxNDZkZmJmYWQ1NTZhNDIwOGQ1YTFkNDE5NmIuLjUyNjM2MmQ2NGZjM2U5
MDFlMmNlOWRkYWY3Yzk3ZTI3M2JiNjIyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcApAQCAtMTUwLDcgKzE1MCw2IEBACiAjaW5j
bHVkZSAiSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dlYktp
dENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlQ3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNXZWJLaXRQb2ludEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJTb2Nr
ZXRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV29ya2VyQ29udGV4dEJhc2UuY3BwIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCA3ODBjNjM4MzY2NGEyYjk2
NWY5NmY2OTUzMGE2NDE4Njg2MmJmMTM1Li4yMjhiM2M2NmVjNGU1YmM3M2Y2ZDIzYmZkZWVhZjIz
MDAyYTQ3M2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJp
bmRpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaApA
QCAtMzcsNiArMzcsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitlbnVtIFBhcmFtZXRl
ck1pc3NpbmdQb2xpY3kgeworICAgIE1pc3NpbmdJc1VuZGVmaW5lZCwKKyAgICBNaXNzaW5nSXNF
bXB0eQorfTsKKworI2RlZmluZSBNQVlCRV9NSVNTSU5HX1BBUkFNRVRFUihleGVjLCBpbmRleCwg
cG9saWN5KSAoKChwb2xpY3kpID09IE1pc3NpbmdJc0VtcHR5ICYmIChpbmRleCkgPj0gKGV4ZWMp
LT5hcmd1bWVudENvdW50KCkpID8gKEpTVmFsdWUoKSkgOiAoKGV4ZWMpLT5hcmd1bWVudChpbmRl
eCkpKQorCiAgICAgY2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgS1VSTDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwY2ZkZGEzODI2YWZiODk2MTQzOWQwMGI4Nzlh
NWQ0ZTg2Y2Y2Y2Q2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQot
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkpT
V2ViS2l0Q1NTTWF0cml4LmgiCi0KLSNpbmNsdWRlICJXZWJLaXRDU1NNYXRyaXguaCIKLQotdXNp
bmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1FbmNvZGVkSlNWYWx1
ZSBKU0NfSE9TVF9DQUxMIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6OmNvbnN0cnVjdEpT
V2ViS2l0Q1NTTWF0cml4KEV4ZWNTdGF0ZSogZXhlYykKLXsKLSAgICBKU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yKiBqc0NvbnN0cnVjdG9yID0gc3RhdGljX2Nhc3Q8SlNXZWJLaXRDU1NNYXRy
aXhDb25zdHJ1Y3Rvcio+KGV4ZWMtPmNhbGxlZSgpKTsKLSAgICBTdHJpbmcgczsKLSAgICBpZiAo
ZXhlYy0+YXJndW1lbnRDb3VudCgpID49IDEpCi0gICAgICAgIHMgPSB1c3RyaW5nVG9TdHJpbmco
ZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYykpOwotICAgIAotICAgIEV4Y2VwdGlvbkNv
ZGUgZWMgPSAwOwotICAgIFJlZlB0cjxXZWJLaXRDU1NNYXRyaXg+IG1hdHJpeCA9IFdlYktpdENT
U01hdHJpeDo6Y3JlYXRlKHMsIGVjKTsKLSAgICBzZXRET01FeGNlcHRpb24oZXhlYywgZWMpOwot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoQ1JFQVRFX0RPTV9XUkFQUEVSKGV4ZWMsIGpzQ29u
c3RydWN0b3ItPmdsb2JhbE9iamVjdCgpLCBXZWJLaXRDU1NNYXRyaXgsIG1hdHJpeC5nZXQoKSkp
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGI4MzIwNjQ1MDdiYmUwMDg2
YmUxYWFjMWIwMjA2N2RkNWNmNzNjNzEuLmZjYWQyNWRkMjI1MTM2ZWIxOTIyYTBkZWE5MjIzOWRh
MmJlNzdjNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCkBAIC0yMzM0LDkgKzIzMzQsMTAgQEAgc3ViIEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrCiAgICAgZm9yZWFjaCBteSAkcGFyYW1ldGVyIChAeyRmdW5jdGlvbi0+cGFyYW1l
dGVyc30pIHsKICAgICAgICAgIyBPcHRpb25hbCBjYWxsYmFja3Mgc2hvdWxkIGJlIHRyZWF0ZWQg
ZGlmZmVyZW50bHksIGJlY2F1c2UgdGhleSBhbHdheXMgaGF2ZSBhIGRlZmF1bHQgdmFsdWUgKDAp
LAogICAgICAgICAjIGFuZCB3ZSBjYW4gcmVkdWNlIHRoZSBudW1iZXIgb2Ygb3ZlcmxvYWRlZCBm
dW5jdGlvbnMgdGhhdCB0YWtlIGEgZGlmZmVyZW50IG51bWJlciBvZiBwYXJhbWV0ZXJzLgotICAg
ICAgICAjIE9wdGlvbmFsIGFyZ3VtZW50cyB3aXRoIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRW
YWx1ZV0gc2hvdWxkIG5vdCBnZW5lcmF0ZSBhbiBlYXJseSBjYWxsLgorICAgICAgICAjIE9wdGlv
bmFsIGFyZ3VtZW50cyB3aXRoIFtPcHRpb25hbD1DYWxsV2l0aERlZmF1bHRWYWx1ZV0gb3IgW09w
dGlvbmFsPUNhbGxXaXRoTnVsbFZhbHVlXQorICAgICAgICAjIHNob3VsZCBub3QgZ2VuZXJhdGUg
YW4gZWFybHkgY2FsbC4KICAgICAgICAgbXkgJG9wdGlvbmFsID0gJHBhcmFtZXRlci0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Ik9wdGlvbmFsIn07Ci0gICAgICAgIGlmICgkb3B0aW9uYWwgJiYgJG9w
dGlvbmFsIG5lICJDYWxsV2l0aERlZmF1bHRWYWx1ZSIgJiYgISRwYXJhbWV0ZXItPmV4dGVuZGVk
QXR0cmlidXRlcy0+eyJDYWxsYmFjayJ9KSB7CisgICAgICAgIGlmICgkb3B0aW9uYWwgJiYgJG9w
dGlvbmFsIG5lICJDYWxsV2l0aERlZmF1bHRWYWx1ZSIgJiYgJG9wdGlvbmFsIG5lICJDYWxsV2l0
aE51bGxWYWx1ZSIgJiYgISRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDYWxsYmFj
ayJ9KSB7CiAgICAgICAgICAgICAjIEdlbmVyYXRlIGVhcmx5IGNhbGwgaWYgdGhlcmUgYXJlIGVu
b3VnaCBwYXJhbWV0ZXJzLgogICAgICAgICAgICAgaWYgKCEkaGFzT3B0aW9uYWxBcmd1bWVudHMp
IHsKICAgICAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJcbiAgICBzaXplX3QgYXJn
c0NvdW50ID0gZXhlYy0+YXJndW1lbnRDb3VudCgpO1xuIik7CkBAIC0yMzk0LDcgKzIzOTUsMTMg
QEAgc3ViIEdlbmVyYXRlUGFyYW1ldGVyc0NoZWNrCiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQogCi0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAiIC4gR2V0TmF0
aXZlVHlwZUZyb21TaWduYXR1cmUoJHBhcmFtZXRlcikgLiAiICRuYW1lKCIgLiBKU1ZhbHVlVG9O
YXRpdmUoJHBhcmFtZXRlciwgImV4ZWMtPmFyZ3VtZW50KCRhcmdzSW5kZXgpIikgLiAiKTtcbiIp
OworICAgICAgICAgICAgbXkgJG9wdGlvbmFsID0gJHBhcmFtZXRlci0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Ik9wdGlvbmFsIn07CisgICAgICAgICAgICBteSAkcGFyYW1ldGVyTWlzc2luZ1BvbGlj
eSA9ICJNaXNzaW5nSXNVbmRlZmluZWQiOworICAgICAgICAgICAgaWYgKCRvcHRpb25hbCAmJiAk
b3B0aW9uYWwgZXEgIkNhbGxXaXRoTnVsbFZhbHVlIikgeworICAgICAgICAgICAgICAgICRwYXJh
bWV0ZXJNaXNzaW5nUG9saWN5ID0gIk1pc3NpbmdJc0VtcHR5IjsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICIgLiBHZXROYXRpdmVUeXBlRnJv
bVNpZ25hdHVyZSgkcGFyYW1ldGVyKSAuICIgJG5hbWUoIiAuIEpTVmFsdWVUb05hdGl2ZSgkcGFy
YW1ldGVyLCAiTUFZQkVfTUlTU0lOR19QQVJBTUVURVIoZXhlYywgJGFyZ3NJbmRleCwgJHBhcmFt
ZXRlck1pc3NpbmdQb2xpY3kpIikgLiAiKTtcbiIpOwogCiAgICAgICAgICAgICAjIElmIGEgcGFy
YW1ldGVyIGlzICJhbiBpbmRleCIgYW5kIGl0J3MgbmVnYXRpdmUgaXQgc2hvdWxkIHRocm93IGFu
IElOREVYX1NJWkVfRVJSIGV4Y2VwdGlvbi4KICAgICAgICAgICAgICMgQnV0IHRoaXMgbmVlZHMg
dG8gYmUgZG9uZSBpbiB0aGUgYmluZGluZ3MsIGJlY2F1c2UgdGhlIHR5cGUgaXMgdW5zaWduZWQg
YW5kIHRoZSBmYWN0IHRoYXQgaXQKQEAgLTMyOTEsNyArMzI5OCw4IEBAIHN1YiBHZW5lcmF0ZUNv
bnN0cnVjdG9yRGVmaW5pdGlvbgogICAgICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgICAg
ICMgRm9yIG5vdywgd2UgZG8gbm90IHN1cHBvcnQgU1ZHIGNvbnN0cnVjdG9ycy4KLSAgICAgICAg
ICAgICAgICAjIFdlIGRvIG5vdCBhbHNvIHN1cHBvcnQgYSBjb25zdHJ1Y3RvciBbT3B0aW9uYWxd
IGFyZ3VtZW50IHdpdGhvdXQgQ2FsbFdpdGhEZWZhdWx0VmFsdWUuCisgICAgICAgICAgICAgICAg
IyBXZSBkbyBub3QgYWxzbyBzdXBwb3J0IGEgY29uc3RydWN0b3IgW09wdGlvbmFsXSBhcmd1bWVu
dCB3aXRob3V0IENhbGxXaXRoRGVmYXVsdFZhbHVlCisgICAgICAgICAgICAgICAgIyBub3IgQ2Fs
bFdpdGhOdWxsVmFsdWUuCiAgICAgICAgICAgICAgICAgbXkgJG51bVBhcmFtZXRlcnMgPSBAeyRm
dW5jdGlvbi0+cGFyYW1ldGVyc307CiAgICAgICAgICAgICAgICAgbXkgKCRkdW1teSwgJHBhcmFt
SW5kZXgpID0gR2VuZXJhdGVQYXJhbWV0ZXJzQ2hlY2soJG91dHB1dEFycmF5LCAkZnVuY3Rpb24s
ICRkYXRhTm9kZSwgJG51bVBhcmFtZXRlcnMsICRpbnRlcmZhY2VOYW1lLCAiY29uc3RydWN0b3JD
YWxsYmFjayIsIHVuZGVmLCB1bmRlZiwgdW5kZWYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NNYXRyaXguaWRsCmluZGV4IDIxYjcwOGYyNGY2MWMxY2U3MDg1NTY2OWJkZjBjNzY5MzE4NTJi
YmQuLmRiNTU4YzI1NTEwNjAxYjhmYWJiZDM4M2U4ZjQ5ZTc2NDRkNmNjYWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsCkBAIC0yOCw3ICsyOCw2IEBAIG1vZHVsZSBjc3Mg
ewogICAgIC8vIEludHJvZHVjZWQgaW4gRE9NIExldmVsID86CiAgICAgaW50ZXJmYWNlIFsKICAg
ICAgICAgQ2FuQmVDb25zdHJ1Y3RlZCwKLSAgICAgICAgSlNDdXN0b21Db25zdHJ1Y3RvciwKICAg
ICAgICAgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPTEsCiAgICAgICAgIENvbnN0cnVjdG9yKGluIFtP
cHRpb25hbD1DYWxsV2l0aE51bGxWYWx1ZV0gRE9NU3RyaW5nIGNzc1ZhbHVlKSwKICAgICAgICAg
Q29uc3RydWN0b3JSYWlzZXNFeGNlcHRpb24sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112804</attachid>
            <date>2011-10-27 18:37:49 -0700</date>
            <delta_ts>2011-10-27 19:43:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70215-20111028103747.patch</filename>
            <type>text/plain</type>
            <size>19043</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1MzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDAy
ZjNjOTJjYTdlODNhODhkZmYyN2ZhMmRmOTk3MTJiMzRhNmNjMGUuLmJhNDEyMjNiMTgyMzdiMTNk
ZDIzNzJiZmIwNDMzMTlkMTM1MjQyZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDExLTEwLTI3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBHZW5lcmF0ZSBXZWJLaXRDU1NNYXRyaXggY29uc3RydWN0b3IgZm9yIEpT
QyBieSBbQ29uc3RydWN0b3JdIElETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzAyMTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBZGRlZCBhIG1ldGhvZCB0aGF0IGp1ZGdlcyBpZiBhIGdpdmVuIEpTVmFs
dWUgaXMgZW1wdHkuCisKKyAgICAgICAgVGVzdHM6IHRyYW5zZm9ybXMvc3ZnLXZzLWNzcy54aHRt
bAorICAgICAgICAgICAgICAgdHJhbnNmb3Jtcy9jc3NtYXRyaXgtMmQtaW50ZXJmYWNlLnhodG1s
CisgICAgICAgICAgICAgICB0cmFuc2Zvcm1zL2Nzc21hdHJpeC0zZC1pbnRlcmZhY2UueGh0bWwK
KworICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1ZS5oOgorICAgICAgICAqIHJ1bnRpbWUvSlNWYWx1
ZUlubGluZU1ldGhvZHMuaDoKKyAgICAgICAgKEpTQzo6SlNWYWx1ZTo6aXNFbXB0eSk6CisKIDIw
MTEtMTAtMjYgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0
b3JlIHN0cnVjdHVyZS1jbGVhcmluZyBiZWhhdmlvdXIgb2YgYWxsb2NhdGVDZWxsPD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBjZTJlMjE0OGNiODE5ZGEzNzM0MzhiYTk3NTlhMzNjOGMzOTZmNzhjLi4zMjI4OWM1
MGE5ZWQ2Yjc0ZmU0YmM2YzRhMDY4ODg1ZjI5YTk0ZjQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTEtMTAtMjcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIEdlbmVyYXRlIFdlYktpdENTU01hdHJpeCBjb25zdHJ1Y3RvciBmb3IgSlNDIGJ5
IFtDb25zdHJ1Y3Rvcl0gSURMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MDIxNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggaW1wbGVtZW50cyBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFs
dWVdIElETCBmb3IgSlNDLgorICAgICAgICBXaGlsZSBhIHBhcmFtZXRlciBzcGVjaWZpZWQgYXMg
W09wdGlvbmFsPUNhbGxXaXRoRGVmYXVsdFZhbHVlXSBpcworICAgICAgICBoYW5kbGVkIGFzIGEg
c3RyaW5nICJ1bmRlZmluZWQiLCBhIHBhcmFtZXRlciBzcGVjaWZpZWQgYXMKKyAgICAgICAgW09w
dGlvbmFsPUNhbGxXaXRoTnVsbFZhbHVlXSBpcyBoYW5kbGVkIGFzIGEgbnVsbCBzdHJpbmcuCisg
ICAgICAgIChOb3RlOiBub3QgYSBzdHJpbmcgIm51bGwiLCBidXQgYSBudWxsIHN0cmluZykuCisK
KyAgICAgICAgYy5mLiBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFsdWVdIGlzIGltcGxlbWVudGVk
IGluIFY4IGluIGJ1ZyA2NzQ1OC4KKworICAgICAgICBUZXN0czogZmFzdC9kb20vZ2xvYmFsLWNv
bnN0cnVjdG9ycy5odG1sCisgICAgICAgICAgICAgICB0cmFuc2Zvcm1zL3N2Zy12cy1jc3MueGh0
bWwKKyAgICAgICAgICAgICAgIHRyYW5zZm9ybXMvY3NzbWF0cml4LTJkLWludGVyZmFjZS54aHRt
bAorICAgICAgICAgICAgICAgdHJhbnNmb3Jtcy9jc3NtYXRyaXgtM2QtaW50ZXJmYWNlLnhodG1s
CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBSZW1vdmVkIEpTV2ViS2l0Q1NTTWF0
cml4Q3VzdG9tLmNwcC4KKyAgICAgICAgKiBVc2VKU0MuY21ha2U6IERpdHRvLgorICAgICAgICAq
IFdlYkNvcmUuZ3lwaTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS5wcm86IERpdHRvLgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAg
ICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDogRGl0dG8uCisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6IE1BWUJFX01JU1NJTkdfUEFSQU1FVEVSKGV4ZWMs
IGluZGV4LCBwb2xpY3kpIHJldHVybnMgdGhlIGluZGV4LXRoIHBhcmFtZXRlciwgaWYgdGhlIHBh
cmFtZXRlciBleGlzdHMuIEl0IHJldHVybnMgYW4gdW5kZWZpbmVkIHZhbHVlLCBpZiB0aGUgaW5k
ZXgtdGggcGFyYW1ldGVyIGlzIG1pc3NpbmcgYW5kIHRoZSBwb2xpY3kgaXMgTWlzc2luZ0lzVW5k
ZWZpbmVkLiBJdCByZXR1cm5zIGFuIGVtcHR5IHZhbHVlLCBvdGhlcndpc2UgKGkuZS4gaWYgdGhl
IGluZGV4LXRoIHBhcmFtZXRlciBpcyBtaXNzaW5nIGFuZCB0aGUgcG9saWN5IGlzIE1pc3NpbmdJ
c0VtcHR5KS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeEN1c3RvbS5j
cHA6IFJlbW92ZWQuCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMu
cG06CisgICAgICAgIChHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjayk6IFN1cHBvcnRlZCBbT3B0aW9u
YWw9Q2FsbFdpdGhOdWxsVmFsdWVdLgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmlu
aXRpb24pOiBTdXBwb3J0ZWQgW09wdGlvbmFsPUNhbGxXaXRoTnVsbFZhbHVlXS4KKyAgICAgICAg
KiBjc3MvV2ViS2l0Q1NTTWF0cml4LmlkbDogUmVtb3ZlZCBbSlNDdXN0b21Db25zdHJ1Y3Rvcl0u
CisKIDIwMTEtMTAtMjYgIFN0ZXZlIEZhbGtlbmJ1cmcgIDxzZmFsa2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXNvdXJjZUVycm9yIGRvZXNuJ3Qgc3VwcG9ydCBjdXN0b20gZG9tYWlucyBvbiBX
aW5kb3dzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVl
LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlLmgKaW5kZXggOTVkZmMy
NGEyNDViMDZkNGQ5YTY5MjM5YjI4YTI3NzU0YTczNDlhNS4uYWUyNTA2NjcwN2NmZmU2MTAxMzVm
OGIwMGVjNTQ0N2U1M2I3ODBkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1
bnRpbWUvSlNWYWx1ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVmFs
dWUuaApAQCAtMTYyLDYgKzE2Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBkb3VibGUg
YXNOdW1iZXIoKSBjb25zdDsKIAogICAgICAgICAvLyBRdWVyeWluZyB0aGUgdHlwZS4KKyAgICAg
ICAgYm9vbCBpc0VtcHR5KCkgY29uc3Q7CiAgICAgICAgIGJvb2wgaXNVbmRlZmluZWQoKSBjb25z
dDsKICAgICAgICAgYm9vbCBpc051bGwoKSBjb25zdDsKICAgICAgICAgYm9vbCBpc1VuZGVmaW5l
ZE9yTnVsbCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNWYWx1ZUlubGluZU1ldGhvZHMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0pTVmFsdWVJbmxpbmVNZXRob2RzLmgKaW5kZXggNjFmOTI2NDJkYjhiMmY3NTU3NjFlZTA2MjM3
ZGJjYTUxOWUxZDNjMi4uZTEzZDM0NzQ1NGM2ZDY2N2ExNjViYTFhZTg0NWQxODIxYTVkOTVkYiAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNWYWx1ZUlubGluZU1l
dGhvZHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1ZhbHVlSW5saW5l
TWV0aG9kcy5oCkBAIC0yMjMsNiArMjIzLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBy
ZXR1cm4gdS5hc0ludDY0ICE9IG90aGVyLnUuYXNJbnQ2NDsKICAgICB9CiAKKyAgICBpbmxpbmUg
Ym9vbCBKU1ZhbHVlOjppc0VtcHR5KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiB0YWco
KSA9PSBFbXB0eVZhbHVlVGFnOworICAgIH0KKwogICAgIGlubGluZSBib29sIEpTVmFsdWU6Omlz
VW5kZWZpbmVkKCkgY29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiB0YWcoKSA9PSBVbmRlZmlu
ZWRUYWc7CkBAIC0zNjgsNiArMzczLDExIEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICByZXR1
cm4gdS5wdHIgIT0gb3RoZXIudS5wdHI7CiAgICAgfQogCisgICAgaW5saW5lIGJvb2wgSlNWYWx1
ZTo6aXNFbXB0eSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gdS5hc0ludDY0ID09IFZh
bHVlRW1wdHk7CisgICAgfQorCiAgICAgaW5saW5lIGJvb2wgSlNWYWx1ZTo6aXNVbmRlZmluZWQo
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIGFzVmFsdWUoKSA9PSBKU1ZhbHVlKEpTVW5k
ZWZpbmVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0g
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IDM1MTE2MmQ2ZGZjMmVk
ZTc1NWYyMjExZTc2NjdiZjBmYTk5YjY1YWIuLmVhZDZiYjg3YTY3MTc2ODljNjJkMDZlYWFkNzE2
YjlkZTIxZWExOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtODUyLDcgKzg1
Miw2IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKIAlTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYkdMUmVuZGVyaW5nQ29udGV4dEN1c3RvbS5jcHAgXAotCVNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBcCiAJ
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9t
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludEN1c3RvbS5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViU29ja2V0Q3VzdG9tLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VKU0MuY21ha2UgYi9Tb3VyY2UvV2ViQ29y
ZS9Vc2VKU0MuY21ha2UKaW5kZXggNjQ5Yzc0M2Y5ZGRlODIzZTJlYjI2MWMyYTFhNzE5ODk0Y2Fk
YWQ1Zi4uZGY5YzNjMDk4NDE0NmZhMjM5YjYyM2JjMWEwOWExODM0ZWM1YjI2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvVXNlSlNDLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL1VzZUpT
Qy5jbWFrZQpAQCAtMTIxLDcgKzEyMSw2IEBAIExJU1QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUwog
ICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAKICAgICBiaW5k
aW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlv
bk9ic2VydmVyQ3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCAzN2VhZWJmOTA3ODg3ZTIxMjg3MGU1NWNhMGNmMDJjOTU4OTQ4OWMwLi5jODc4
YjA4ZjBkOTcwYWE5NjQ3OTk3ZWZlMmI4MzcyOWI3M2VkZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBA
IC0xOTQ2LDcgKzE5NDYsNiBAQAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0QW5p
bWF0aW9uTGlzdEN1c3RvbS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL2pzL0pTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlQ3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvanMvSlNX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCcsCi0gICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5kaW5ncy9q
cy9KU1dlYktpdE11dGF0aW9uT2JzZXJ2ZXJDdXN0b20uY3BwJywKICAgICAgICAgICAgICdiaW5k
aW5ncy9qcy9KU1dlYktpdFBvaW50Q3VzdG9tLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
anMvSlNXZWJTb2NrZXRDdXN0b20uY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggODIzNGRmM2EwYzdj
MzJiODFiMGE4MDliYzAzZjM5YmQwYTVmZWU1ZS4uZDk3OWE5YmMwMWRmODQ4NjRjNjQ2ZGMwNWE3
OGQ2OGQ5ODg1MWFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTM0NCw3ICszNDQsNiBAQCB2OCB7CiAg
ICAgICAgIGJpbmRpbmdzL2pzL0pTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3RvbS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lUnVsZUN1c3RvbS5jcHAgXAogICAg
ICAgICBiaW5kaW5ncy9qcy9KU1dlYktpdENTU0tleWZyYW1lc1J1bGVDdXN0b20uY3BwIFwKLSAg
ICAgICAgYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIFwKICAgICAgICAg
YmluZGluZ3MvanMvSlNXZWJLaXRNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBcCiAgICAgICAg
IGJpbmRpbmdzL2pzL0pTV2ViS2l0UG9pbnRDdXN0b20uY3BwIFwKICAgICAgICAgYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDIyMWE4OTkwNjljOTc3NTNjYjBh
YmU1OTA5MjQxOWY2MWUzNzhmMTYuLjc1Y2E4YThiYTE3MTdlZTRiMDY4ZTJjMTgzMGQ4YzQ3NDI5
NThmZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ5MTYsNyArNDkxNiw2IEBACiAJCUJDMjc0QjJGMTQwRUJFQjIwMEVBREZB
NiAvKiBDU1NCb3JkZXJJbWFnZVNsaWNlVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMjc0QjJFMTQwRUJFQjIwMEVBREZBNiAvKiBDU1NCb3Jk
ZXJJbWFnZVNsaWNlVmFsdWUuaCAqLzsgfTsKIAkJQkMyNzRCMzExNDBFQkVEODAwRUFERkE2IC8q
IENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzI3NEIzMDE0MEVCRUQ4MDBFQURGQTYgLyogQ1NTQm9yZGVy
SW1hZ2VTbGljZVZhbHVlLmNwcCAqLzsgfTsKIAkJQkMyNzVCNzkxMUM1RDFDMzAwQzkyMDZDIC8q
IEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMyNzVCNzgxMUM1RDFDMzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRD
dXN0b20uY3BwICovOyB9OwotCQlCQzI3NUI3RDExQzVEMjM1MDBDOTIwNkMgLyogSlNXZWJLaXRD
U1NNYXRyaXhDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMyNzVCN0MxMUM1RDIzNTAwQzkyMDZDIC8qIEpTV2ViS2l0Q1NTTWF0cml4Q3Vz
dG9tLmNwcCAqLzsgfTsKIAkJQkMyNzVDQjMxMUM1RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZm
ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMyNzVDQjIxMUM1RTg1QzAwQzkyMDZDIC8qIEpTQXJyYXlCdWZmZXJDdXN0b20uY3BwICov
OyB9OwogCQlCQzJDQkY0RTE0MEYxQUJEMDAzODc5QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyQ0JGNEIx
NDBGMUE2NTAwMzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuaCAqLzsgfTsKIAkJQkMyQ0JG
N0IxNDBGMUQ1ODAwMzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMyQ0JGN0ExNDBGMUQ1ODAwMzg3
OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZlbnQuY3BwICovOyB9OwpAQCAtMTIxMzcsNyArMTIxMzYs
NiBAQAogCQlCQzI3NEIyRTE0MEVCRUIyMDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0JvcmRlckltYWdlU2xp
Y2VWYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI3NEIzMDE0MEVCRUQ4
MDBFQURGQTYgLyogQ1NTQm9yZGVySW1hZ2VTbGljZVZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0JvcmRlckltYWdlU2xpY2VWYWx1ZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMjc1Qjc4MTFDNUQxQzMwMEM5MjA2QyAvKiBKU1dl
YktpdFBvaW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
QzI3NUI3QzExQzVEMjM1MDBDOTIwNkMgLyogSlNXZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRDU1NNYXRyaXhDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzI3NUNCMjExQzVFODVDMDBD
OTIwNkMgLyogSlNBcnJheUJ1ZmZlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0FycmF5QnVmZmVyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkMyQ0JGNEIxNDBGMUE2NTAwMzg3OUJFIC8qIEpTV2ViR0xDb250ZXh0RXZl
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJHTENvbnRleHRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzJDQkY3QTE0MEYxRDU4MDAzODc5
QkUgLyogSlNXZWJHTENvbnRleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBKU1dlYkdMQ29udGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE5NTc2LDcgKzE5NTc0LDYgQEAKIAkJCQkzMTk0NjIzMTEzMDIyRjY1MDA0QkIz
RjggLyogSlNXZWJLaXRBbmltYXRpb25MaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQlFMUFEMTRDNDEy
OTczNTQ5MDBBQ0E5ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwICovLAog
CQkJCUUxQUQxNEI0MTI5NzM0Q0EwMEFDQTk4OSAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGVD
dXN0b20uY3BwICovLAotCQkJCUJDMjc1QjdDMTFDNUQyMzUwMEM5MjA2QyAvKiBKU1dlYktpdENT
U01hdHJpeEN1c3RvbS5jcHAgKi8sCiAJCQkJQzZGMDkxN0UxNDNBMkJCOTAwNjg1ODQ5IC8qIEpT
V2ViS2l0TXV0YXRpb25PYnNlcnZlckN1c3RvbS5jcHAgKi8sCiAJCQkJQkMyNzVCNzgxMUM1RDFD
MzAwQzkyMDZDIC8qIEpTV2ViS2l0UG9pbnRDdXN0b20uY3BwICovLAogCQkJCTUxOEEzNEM2MTAy
NkM4QzkwMDFCNjg5NiAvKiBKU1dlYlNvY2tldEN1c3RvbS5jcHAgKi8sCkBAIC0yNjQxNCw3ICsy
NjQxMSw2IEBACiAJCQkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFMUFEMTRCNTEyOTczNENBMDBBQ0E5
ODkgLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTQ5ODM5MTNGMEYxRTc2NzUwMEMyMzc4MiAvKiBKU1dlYktpdENTU01hdHJpeC5jcHAgaW4g
U291cmNlcyAqLywKLQkJCQlCQzI3NUI3RDExQzVEMjM1MDBDOTIwNkMgLyogSlNXZWJLaXRDU1NN
YXRyaXhDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzE2MTFFNUEwRTFDNERFMDAwRjZB
NTc5IC8qIEpTV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
ODk4Nzg1QjQxMjJDQTJBNzAwM0FBQkRBIC8qIEpTV2ViS2l0RmxhZ3MuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTNGMUQ1QzAxMkQ1MzM1NjAwODMyQkVDIC8qIEpTV2ViS2l0TG9zZUNvbnRleHQu
Y3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAppbmRleCA3NmY2ZTRhMmU0ZTU0ZjgxNGMwM2YyZWYxNmFjMzVj
OGRmOWRkYmUwLi5mODYzMWUyY2Q0MDdlZmZhYjY1OGEwZWUwMTE1YWVhM2E3OTg5ZDAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAK
QEAgLTE0OCw3ICsxNDgsNiBAQAogI2luY2x1ZGUgIkpTV2ViS2l0QW5pbWF0aW9uTGlzdEN1c3Rv
bS5jcHAiCiAjaW5jbHVkZSAiSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGVDdXN0b20uY3BwIgogI2lu
Y2x1ZGUgIkpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZUN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNX
ZWJLaXRDU1NNYXRyaXhDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTV2ViS2l0UG9pbnRDdXN0b20u
Y3BwIgogI2luY2x1ZGUgIkpTV2ViU29ja2V0Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU1dvcmtl
ckNvbnRleHRCYXNlLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQmluZGluZy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5n
LmgKaW5kZXggN2Y1NGQyYTk3NDYwYjljMTQ3YjU2NDFjMDA4NTRiOGZhOWZhZjhiNi4uYWNmOTQ4
N2M3ZGYxZjc1NDBiYjA2NzE1ZWRiNzQ0YTE2Mzg0NWQ0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTQwLDYgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorZW51bSBQYXJhbWV0ZXJNaXNzaW5nUG9saWN5IHsKKyAgICBNaXNzaW5nSXNV
bmRlZmluZWQsCisgICAgTWlzc2luZ0lzRW1wdHkKK307CisKKyNkZWZpbmUgTUFZQkVfTUlTU0lO
R19QQVJBTUVURVIoZXhlYywgaW5kZXgsIHBvbGljeSkgKCgocG9saWN5KSA9PSBNaXNzaW5nSXNF
bXB0eSAmJiAoaW5kZXgpID49IChleGVjKS0+YXJndW1lbnRDb3VudCgpKSA/IChKU1ZhbHVlKCkp
IDogKChleGVjKS0+YXJndW1lbnQoaW5kZXgpKSkKKwogICAgIGNsYXNzIEZyYW1lOwogICAgIGNs
YXNzIEtVUkw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0Q1NTTWF0cml4Q3VzdG9tLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGNm
ZGRhMzgyNmFmYjg5NjE0MzlkMDBiODc5YTVkNGU4NmNmNmNkNi4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1dlYktpdENTU01hdHJpeEN1c3RvbS5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1dlYktpdENTU01hdHJpeC5oIgotCi0jaW5jbHVkZSAi
V2ViS2l0Q1NTTWF0cml4LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBKU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yOjpjb25zdHJ1Y3RKU1dlYktpdENTU01hdHJpeChFeGVjU3RhdGUqIGV4ZWMp
Ci17Ci0gICAgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcioganNDb25zdHJ1Y3RvciA9IHN0
YXRpY19jYXN0PEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IqPihleGVjLT5jYWxsZWUoKSk7
Ci0gICAgU3RyaW5nIHM7Ci0gICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQoKSA+PSAxKQotICAg
ICAgICBzID0gdXN0cmluZ1RvU3RyaW5nKGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMp
KTsKLSAgICAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBSZWZQdHI8V2ViS2l0Q1NT
TWF0cml4PiBtYXRyaXggPSBXZWJLaXRDU1NNYXRyaXg6OmNyZWF0ZShzLCBlYyk7Ci0gICAgc2V0
RE9NRXhjZXB0aW9uKGV4ZWMsIGVjKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKENSRUFU
RV9ET01fV1JBUFBFUihleGVjLCBqc0NvbnN0cnVjdG9yLT5nbG9iYWxPYmplY3QoKSwgV2ViS2l0
Q1NTTWF0cml4LCBtYXRyaXguZ2V0KCkpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
SlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQppbmRleCA3Mjg2NjU5NTNiYmI5OWNlZTZkYzViYTc5NjBkZWE5ZDFmMGI4MDM4Li43MWZlMzY1
ODM0MWQzOWE0OTllM2NjNWZiYmRjZTYyYzJkZDQ2ZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtMjI5Nyw5ICsyMjk3
LDEwIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawogICAgIGZvcmVhY2ggbXkgJHBhcmFt
ZXRlciAoQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9KSB7CiAgICAgICAgICMgT3B0aW9uYWwgY2Fs
bGJhY2tzIHNob3VsZCBiZSB0cmVhdGVkIGRpZmZlcmVudGx5LCBiZWNhdXNlIHRoZXkgYWx3YXlz
IGhhdmUgYSBkZWZhdWx0IHZhbHVlICgwKSwKICAgICAgICAgIyBhbmQgd2UgY2FuIHJlZHVjZSB0
aGUgbnVtYmVyIG9mIG92ZXJsb2FkZWQgZnVuY3Rpb25zIHRoYXQgdGFrZSBhIGRpZmZlcmVudCBu
dW1iZXIgb2YgcGFyYW1ldGVycy4KLSAgICAgICAgIyBPcHRpb25hbCBhcmd1bWVudHMgd2l0aCBb
T3B0aW9uYWw9Q2FsbFdpdGhEZWZhdWx0VmFsdWVdIHNob3VsZCBub3QgZ2VuZXJhdGUgYW4gZWFy
bHkgY2FsbC4KKyAgICAgICAgIyBPcHRpb25hbCBhcmd1bWVudHMgd2l0aCBbT3B0aW9uYWw9Q2Fs
bFdpdGhEZWZhdWx0VmFsdWVdIG9yIFtPcHRpb25hbD1DYWxsV2l0aE51bGxWYWx1ZV0KKyAgICAg
ICAgIyBzaG91bGQgbm90IGdlbmVyYXRlIGFuIGVhcmx5IGNhbGwuCiAgICAgICAgIG15ICRvcHRp
b25hbCA9ICRwYXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9OwotICAg
ICAgICBpZiAoJG9wdGlvbmFsICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhEZWZhdWx0VmFsdWUi
ICYmICEkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgeworICAg
ICAgICBpZiAoJG9wdGlvbmFsICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhEZWZhdWx0VmFsdWUi
ICYmICRvcHRpb25hbCBuZSAiQ2FsbFdpdGhOdWxsVmFsdWUiICYmICEkcGFyYW1ldGVyLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiQ2FsbGJhY2sifSkgewogICAgICAgICAgICAgIyBHZW5lcmF0ZSBl
YXJseSBjYWxsIGlmIHRoZXJlIGFyZSBlbm91Z2ggcGFyYW1ldGVycy4KICAgICAgICAgICAgIGlm
ICghJGhhc09wdGlvbmFsQXJndW1lbnRzKSB7CiAgICAgICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiXG4gICAgc2l6ZV90IGFyZ3NDb3VudCA9IGV4ZWMtPmFyZ3VtZW50Q291bnQoKTtc
biIpOwpAQCAtMjM1Nyw3ICsyMzU4LDEzIEBAIHN1YiBHZW5lcmF0ZVBhcmFtZXRlcnNDaGVjawog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgIiAuIEdldE5hdGl2ZVR5cGVGcm9tU2lnbmF0dXJlKCRwYXJhbWV0ZXIp
IC4gIiAkbmFtZSgiIC4gSlNWYWx1ZVRvTmF0aXZlKCRwYXJhbWV0ZXIsICJleGVjLT5hcmd1bWVu
dCgkYXJnc0luZGV4KSIpIC4gIik7XG4iKTsKKyAgICAgICAgICAgIG15ICRvcHRpb25hbCA9ICRw
YXJhbWV0ZXItPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJPcHRpb25hbCJ9OworICAgICAgICAgICAg
bXkgJHBhcmFtZXRlck1pc3NpbmdQb2xpY3kgPSAiTWlzc2luZ0lzVW5kZWZpbmVkIjsKKyAgICAg
ICAgICAgIGlmICgkb3B0aW9uYWwgJiYgJG9wdGlvbmFsIGVxICJDYWxsV2l0aE51bGxWYWx1ZSIp
IHsKKyAgICAgICAgICAgICAgICAkcGFyYW1ldGVyTWlzc2luZ1BvbGljeSA9ICJNaXNzaW5nSXNF
bXB0eSI7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAiIC4gR2V0TmF0aXZlVHlwZUZyb21TaWduYXR1cmUoJHBhcmFtZXRlcikgLiAiICRuYW1l
KCIgLiBKU1ZhbHVlVG9OYXRpdmUoJHBhcmFtZXRlciwgIk1BWUJFX01JU1NJTkdfUEFSQU1FVEVS
KGV4ZWMsICRhcmdzSW5kZXgsICRwYXJhbWV0ZXJNaXNzaW5nUG9saWN5KSIpIC4gIik7XG4iKTsK
IAogICAgICAgICAgICAgIyBJZiBhIHBhcmFtZXRlciBpcyAiYW4gaW5kZXgiIGFuZCBpdCdzIG5l
Z2F0aXZlIGl0IHNob3VsZCB0aHJvdyBhbiBJTkRFWF9TSVpFX0VSUiBleGNlcHRpb24uCiAgICAg
ICAgICAgICAjIEJ1dCB0aGlzIG5lZWRzIHRvIGJlIGRvbmUgaW4gdGhlIGJpbmRpbmdzLCBiZWNh
dXNlIHRoZSB0eXBlIGlzIHVuc2lnbmVkIGFuZCB0aGUgZmFjdCB0aGF0IGl0CkBAIC0yNzIzLDcg
KzI3MzAsNyBAQCBzdWIgSlNWYWx1ZVRvTmF0aXZlCiAgICAgaWYgKCR0eXBlIGVxICJET01TdHJp
bmciKSB7CiAgICAgICAgIHJldHVybiAidmFsdWVUb1N0cmluZ1dpdGhOdWxsQ2hlY2soZXhlYywg
JHZhbHVlKSIgaWYgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkNvbnZlcnROdWxs
VG9OdWxsU3RyaW5nIn0gfHwgJHNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlZmxl
Y3QifTsKICAgICAgICAgcmV0dXJuICJ2YWx1ZVRvU3RyaW5nV2l0aFVuZGVmaW5lZE9yTnVsbENo
ZWNrKGV4ZWMsICR2YWx1ZSkiIGlmICRzaWduYXR1cmUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJD
b252ZXJ0VW5kZWZpbmVkT3JOdWxsVG9OdWxsU3RyaW5nIn07Ci0gICAgICAgIHJldHVybiAidXN0
cmluZ1RvU3RyaW5nKCR2YWx1ZS50b1N0cmluZyhleGVjKSkiOworICAgICAgICByZXR1cm4gInVz
dHJpbmdUb1N0cmluZygkdmFsdWUuaXNFbXB0eSgpID8gVVN0cmluZygpIDogJHZhbHVlLnRvU3Ry
aW5nKGV4ZWMpKSI7CiAgICAgfQogCiAgICAgaWYgKCR0eXBlIGVxICJET01PYmplY3QiKSB7CkBA
IC0zMjUyLDcgKzMyNTksOCBAQCBzdWIgR2VuZXJhdGVDb25zdHJ1Y3RvckRlZmluaXRpb24KICAg
ICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICAjIEZvciBub3csIHdlIGRvIG5vdCBz
dXBwb3J0IFNWRyBjb25zdHJ1Y3RvcnMuCi0gICAgICAgICAgICAgICAgIyBXZSBkbyBub3QgYWxz
byBzdXBwb3J0IGEgY29uc3RydWN0b3IgW09wdGlvbmFsXSBhcmd1bWVudCB3aXRob3V0IENhbGxX
aXRoRGVmYXVsdFZhbHVlLgorICAgICAgICAgICAgICAgICMgV2UgZG8gbm90IGFsc28gc3VwcG9y
dCBhIGNvbnN0cnVjdG9yIFtPcHRpb25hbF0gYXJndW1lbnQgd2l0aG91dCBDYWxsV2l0aERlZmF1
bHRWYWx1ZQorICAgICAgICAgICAgICAgICMgbm9yIENhbGxXaXRoTnVsbFZhbHVlLgogICAgICAg
ICAgICAgICAgIG15ICRudW1QYXJhbWV0ZXJzID0gQHskZnVuY3Rpb24tPnBhcmFtZXRlcnN9Owog
ICAgICAgICAgICAgICAgIG15ICgkZHVtbXksICRwYXJhbUluZGV4KSA9IEdlbmVyYXRlUGFyYW1l
dGVyc0NoZWNrKCRvdXRwdXRBcnJheSwgJGZ1bmN0aW9uLCAkZGF0YU5vZGUsICRudW1QYXJhbWV0
ZXJzLCAkaW50ZXJmYWNlTmFtZSwgImNvbnN0cnVjdG9yQ2FsbGJhY2siLCB1bmRlZiwgdW5kZWYs
IHVuZGVmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01hdHJp
eC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4LmlkbAppbmRleCAyMWI3
MDhmMjRmNjFjMWNlNzA4NTU2NjliZGYwYzc2OTMxODUyYmJkLi5kYjU1OGMyNTUxMDYwMWI4ZmFi
YmQzODNlOGY0OWU3NjQ0ZDZjY2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTTWF0cml4LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWF0cml4
LmlkbApAQCAtMjgsNyArMjgsNiBAQCBtb2R1bGUgY3NzIHsKICAgICAvLyBJbnRyb2R1Y2VkIGlu
IERPTSBMZXZlbCA/OgogICAgIGludGVyZmFjZSBbCiAgICAgICAgIENhbkJlQ29uc3RydWN0ZWQs
Ci0gICAgICAgIEpTQ3VzdG9tQ29uc3RydWN0b3IsCiAgICAgICAgIENvbnN0cnVjdG9yUGFyYW1l
dGVycz0xLAogICAgICAgICBDb25zdHJ1Y3RvcihpbiBbT3B0aW9uYWw9Q2FsbFdpdGhOdWxsVmFs
dWVdIERPTVN0cmluZyBjc3NWYWx1ZSksCiAgICAgICAgIENvbnN0cnVjdG9yUmFpc2VzRXhjZXB0
aW9uLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>