<?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>103092</bug_id>
          
          <creation_ts>2012-11-22 14:34:51 -0800</creation_ts>
          <short_desc>[chromium] Allow plugins to opt-in to receive synthetic mouse events out of touch events.</short_desc>
          <delta_ts>2013-04-10 10:02:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sadrul Habib Chowdhury">sadrul</reporter>
          <assigned_to name="Sadrul Habib Chowdhury">sadrul</assigned_to>
          <cc>abarth</cc>
    
    <cc>brettw</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rbyers</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>774103</commentid>
    <comment_count>0</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-22 14:34:51 -0800</bug_when>
    <thetext>[chromium] Allow plugins to opt-in to receive synthetic mouse events out of touch events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774105</commentid>
    <comment_count>1</comment_count>
      <attachid>175712</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-22 14:39:18 -0800</bug_when>
    <thetext>Created attachment 175712
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774107</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-22 14:41:21 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774108</commentid>
    <comment_count>3</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-22 14:42:05 -0800</bug_when>
    <thetext>Hi! Does this approach look reasonable? I can add tests if so. The corresponding chromium change is: https://codereview.chromium.org/11418134/

A subsequent webkit CL will remove the deprecated WebPluginContainer::setIsAcceptingTouchEvents()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774229</commentid>
    <comment_count>4</comment_count>
      <attachid>175712</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-22 22:58:05 -0800</bug_when>
    <thetext>Comment on attachment 175712
Patch

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

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:53
&gt; +        TOUCH_EVENT_REQUEST_NONE,
&gt; +        TOUCH_EVENT_REQUEST_RAW,
&gt; +        TOUCH_EVENT_REQUEST_SYNTHESIZED_MOUSE

This is the wrong style for enums.  Take a look at how we do other enums in the API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774558</commentid>
    <comment_count>5</comment_count>
      <attachid>175809</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-23 07:46:50 -0800</bug_when>
    <thetext>Created attachment 175809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>774560</commentid>
    <comment_count>6</comment_count>
      <attachid>175712</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-23 07:48:24 -0800</bug_when>
    <thetext>Comment on attachment 175712
Patch

Added a new test for the synthesized mouse events.

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

&gt;&gt; Source/WebKit/chromium/public/WebPluginContainer.h:53
&gt;&gt; +        TOUCH_EVENT_REQUEST_SYNTHESIZED_MOUSE
&gt; 
&gt; This is the wrong style for enums.  Take a look at how we do other enums in the API.

Whoops, my bad. Sorry. Fixed.

(I almost expected webkit-patch/style EWS bot to catch this)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775628</commentid>
    <comment_count>7</comment_count>
      <attachid>175809</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-26 10:31:04 -0800</bug_when>
    <thetext>Comment on attachment 175809
Patch

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

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:53
&gt; +        TouchEventRequestNone,
&gt; +        TouchEventRequestRaw,
&gt; +        TouchEventRequestSynthesizedMouse,

TouchEventRequestNone -&gt; TouchEventRequestTypeNone

We reiterate the name of the enum in the values.  See, for example, MovieLoadType.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775632</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-26 10:33:58 -0800</bug_when>
    <thetext>Other than the nit above, the API change LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775645</commentid>
    <comment_count>9</comment_count>
      <attachid>176032</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-26 10:46:11 -0800</bug_when>
    <thetext>Created attachment 176032
Renamed the enum members. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775748</commentid>
    <comment_count>10</comment_count>
      <attachid>176032</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-11-26 11:59:29 -0800</bug_when>
    <thetext>Comment on attachment 176032
Renamed the enum members. Thanks!

Attachment 176032 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/14987796</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775805</commentid>
    <comment_count>11</comment_count>
      <attachid>176032</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 13:10:11 -0800</bug_when>
    <thetext>Comment on attachment 176032
Renamed the enum members. Thanks!

Attachment 176032 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14989738</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775857</commentid>
    <comment_count>12</comment_count>
      <attachid>176057</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-26 13:56:44 -0800</bug_when>
    <thetext>Created attachment 176057
Build fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776315</commentid>
    <comment_count>13</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-26 21:37:20 -0800</bug_when>
    <thetext>Hi Tony! Would you please review this patch? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776910</commentid>
    <comment_count>14</comment_count>
      <attachid>176057</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-27 10:02:13 -0800</bug_when>
    <thetext>Comment on attachment 176057
Build fix!

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

&gt; Source/WebKit/chromium/public/WebPluginContainer.h:121
&gt; +    // Notifies when the plugin starts/stops accepting touch events. This is deprecated, use requestTouchEventType instead.
&gt;      virtual void setIsAcceptingTouchEvents(bool) = 0;

The plan is to remove this after updating all the callers on the Chromium side, right?

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:527
&gt;  void WebPluginContainerImpl::setIsAcceptingTouchEvents(bool acceptingTouchEvents)
&gt;  {
&gt; -    if (m_isAcceptingTouchEvents == acceptingTouchEvents)
&gt; +    requestTouchEventType(acceptingTouchEvents ? TouchEventRequestTypeRaw : TouchEventRequestTypeNone);
&gt; +}

Do tests still call this?  Could you replace the body with a NOT_REACHED()?

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:124
&gt; +    static const WebString kPrimitiveTrue = WebString::fromUTF8(&quot;true&quot;);
&gt; +    static const WebString kPrimitiveSynthetic = WebString::fromUTF8(&quot;synthetic&quot;);

I would update the old tests to use &quot;raw&quot; instead of &quot;true&quot;.  It&apos;s confusing that the valid values for the attribute are &quot;true&quot; or &quot;synthetic&quot;.

Also, this should probably just be const char* to avoid initialization (operator== is defined for String, const char* so you can still use == below).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776951</commentid>
    <comment_count>15</comment_count>
      <attachid>176295</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-27 10:38:45 -0800</bug_when>
    <thetext>Created attachment 176295
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776953</commentid>
    <comment_count>16</comment_count>
      <attachid>176057</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-27 10:39:15 -0800</bug_when>
    <thetext>Comment on attachment 176057
Build fix!

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

&gt;&gt; Source/WebKit/chromium/public/WebPluginContainer.h:121
&gt;&gt;      virtual void setIsAcceptingTouchEvents(bool) = 0;
&gt; 
&gt; The plan is to remove this after updating all the callers on the Chromium side, right?

Correct. Once this change is gardened for chromium, and the chromium CL can land, and once the chromium CL is gardened for webkit, I will put up the CL to remove this function.

&gt;&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:527
&gt;&gt; +}
&gt; 
&gt; Do tests still call this?  Could you replace the body with a NOT_REACHED()?

This is still called by chromium. So when this patch is gardened in for chromium, replacing this function with NOT_REACHED will cause crash/misbehaviour.

&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:124
&gt;&gt; +    static const WebString kPrimitiveSynthetic = WebString::fromUTF8(&quot;synthetic&quot;);
&gt; 
&gt; I would update the old tests to use &quot;raw&quot; instead of &quot;true&quot;.  It&apos;s confusing that the valid values for the attribute are &quot;true&quot; or &quot;synthetic&quot;.
&gt; 
&gt; Also, this should probably just be const char* to avoid initialization (operator== is defined for String, const char* so you can still use == below).

I tried doing that. Looks like == is overloaded for String, but not for WebString. I also tried converting the WebString into a WTF::String first, but the WebString -&gt; WTF::String conversion doesn&apos;t seem to be available for the test. So I have kept this unchanged (this is also the pattern used in other such parsing functions in this file). Does that sound reasonable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776961</commentid>
    <comment_count>17</comment_count>
      <attachid>176057</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-27 10:42:24 -0800</bug_when>
    <thetext>Comment on attachment 176057
Build fix!

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

&gt;&gt;&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:124
&gt;&gt;&gt; +    static const WebString kPrimitiveSynthetic = WebString::fromUTF8(&quot;synthetic&quot;);
&gt;&gt; 
&gt;&gt; I would update the old tests to use &quot;raw&quot; instead of &quot;true&quot;.  It&apos;s confusing that the valid values for the attribute are &quot;true&quot; or &quot;synthetic&quot;.
&gt;&gt; 
&gt;&gt; Also, this should probably just be const char* to avoid initialization (operator== is defined for String, const char* so you can still use == below).
&gt; 
&gt; I tried doing that. Looks like == is overloaded for String, but not for WebString. I also tried converting the WebString into a WTF::String first, but the WebString -&gt; WTF::String conversion doesn&apos;t seem to be available for the test. So I have kept this unchanged (this is also the pattern used in other such parsing functions in this file). Does that sound reasonable?

Oh, and I have changed &quot;true&quot; to &quot;raw&quot; for this. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777080</commentid>
    <comment_count>18</comment_count>
      <attachid>176295</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-27 12:02:47 -0800</bug_when>
    <thetext>Comment on attachment 176295
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestWebPlugin.cpp:124
&gt; +    static const WebString kPrimitiveRaw = WebString::fromUTF8(&quot;raw&quot;);
&gt; +    static const WebString kPrimitiveSynthetic = WebString::fromUTF8(&quot;synthetic&quot;);

Please use DEFINE_STATIC_LOCAL or use a const char* and convert it to a WebString during the if condition.  I&apos;m pretty sure clang will complain about this as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777107</commentid>
    <comment_count>19</comment_count>
      <attachid>176324</attachid>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-27 12:20:57 -0800</bug_when>
    <thetext>Created attachment 176324
Used DEFINE_STATIC_LOCAL. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777460</commentid>
    <comment_count>20</comment_count>
    <who name="Sadrul Habib Chowdhury">sadrul</who>
    <bug_when>2012-11-27 19:08:34 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; Created an attachment (id=176324) [details]
&gt; Used DEFINE_STATIC_LOCAL. Thanks!

Requesting cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777933</commentid>
    <comment_count>21</comment_count>
      <attachid>176324</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 08:29:40 -0800</bug_when>
    <thetext>Comment on attachment 176324
Used DEFINE_STATIC_LOCAL. Thanks!

Clearing flags on attachment: 176324

Committed r136013: &lt;http://trac.webkit.org/changeset/136013&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175712</attachid>
            <date>2012-11-22 14:39:18 -0800</date>
            <delta_ts>2012-11-23 07:48:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103092-20121122173703.patch</filename>
            <type>text/plain</type>
            <size>11440</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDUzZDYyZGIwOGNhN2Q5NTcwYTZmN2IxZTMzMDg0Mjk3MmIyNTIzYWYuLmEzYWEyMDBlMzBhYjcy
NzcwNWYwYzA2OTdkNmZmMGZjNTBhMGM2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjIgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBs
dWdpbiBjYW4gbm93IHJlcXVlc3QgdG8gcmVjZWl2ZSByYXcgdG91Y2ggZXZlbnRzLCBvciB0byBy
ZWNlaXZlIG1vdXNlIGV2ZW50cyBzeW50aGVzaXplZAorICAgICAgICBmcm9tIHRoZSB0b3VjaCBl
dmVudHMsIG9yIHRvIG5vdCByZWNlaXZlIGFueSB0b3VjaCBldmVudHMgYXQgYWxsLgorCisgICAg
ICAgICogcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViUGx1Z2luQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmg6CisgICAgICAgIChXZWJNb3VzZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3Vj
aEV2ZW50VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAy
MDEyLTExLTIyICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXTogUmVtb3ZpbmcgZ3lwIGZsYWdzIGNvbnRyb2xsaW5nIFNraWEgZmVh
dHVyZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW5Db250YWluZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNv
bnRhaW5lci5oCmluZGV4IDEyMjkwMTRkYWI3NTVjZDMzM2QyZTE0OWU1NThkMjE0OTliZTdkMmEu
LjJjNGZkOGI2ZDdhOGJlNjY4NGY2ZThmZDcwOTMzNjhjYzEwZTMxYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCkBAIC00Nyw2
ICs0NywxMiBAQCBzdHJ1Y3QgV2ViUmVjdDsKIAogY2xhc3MgV2ViUGx1Z2luQ29udGFpbmVyIHsK
IHB1YmxpYzoKKyAgICBlbnVtIFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSB7CisgICAgICAgIFRPVUNI
X0VWRU5UX1JFUVVFU1RfTk9ORSwKKyAgICAgICAgVE9VQ0hfRVZFTlRfUkVRVUVTVF9SQVcsCisg
ICAgICAgIFRPVUNIX0VWRU5UX1JFUVVFU1RfU1lOVEhFU0laRURfTU9VU0UKKyAgICB9OworCiAg
ICAgLy8gUmV0dXJucyB0aGUgZWxlbWVudCBjb250YWluaW5nIHRoaXMgcGx1Z2luLgogICAgIHZp
cnR1YWwgV2ViRWxlbWVudCBlbGVtZW50KCkgPSAwOwogCkBAIC0xMTEsOSArMTE3LDEyIEBAIHB1
YmxpYzoKICAgICAvLyBjb250ZW50LiBUaGUgcmVjdGFuZ2xlIGlzIGluIHRoZSBwbHVnaW4ncyBj
b29yZGluYXRlIHN5c3RlbS4KICAgICB2aXJ0dWFsIGJvb2wgaXNSZWN0VG9wbW9zdChjb25zdCBX
ZWJSZWN0JikgPSAwOwogCi0gICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIHN0YXJ0cy9z
dG9wcyBhY2NlcHRpbmcgdG91Y2ggZXZlbnRzLgorICAgIC8vIE5vdGlmaWVzIHdoZW4gdGhlIHBs
dWdpbiBzdGFydHMvc3RvcHMgYWNjZXB0aW5nIHRvdWNoIGV2ZW50cy4gVGhpcyBpcyBkZXByZWNh
dGVkLCB1c2UgcmVxdWVzdFRvdWNoRXZlbnRUeXBlIGluc3RlYWQuCiAgICAgdmlydHVhbCB2b2lk
IHNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCkgPSAwOwogCisgICAgLy8gTm90aWZpZXMg
d2hlbiB0aGUgcGx1Z2luIGNoYW5nZXMgdGhlIGtpbmQgb2YgdG91Y2gtZXZlbnRzIGl0IGFjY2Vw
dHMuCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShUb3VjaEV2ZW50UmVx
dWVzdFR5cGUpID0gMDsKKwogICAgIC8vIE5vdGlmaWVzIHdoZW4gdGhlIHBsdWdpbiBzdGFydHMv
c3RvcHMgYWNjZXB0aW5nIHdoZWVsIGV2ZW50cy4gV2l0aG91dAogICAgIC8vIGNhbGxpbmcgdGhl
IGZ1bmN0aW9uIHdpdGggdHJ1ZSwgdGhlIGNvbnRhaW5lciBtaWdodCBub3QgYWx3YXlzIGFibGUg
dG8KICAgICAvLyByZWNlaXZlIHdoZWVsIGV2ZW50cyBpbiBzb21lIGNhc2VzIChzdWNoIGFzIHdo
ZW4gdGhyZWFkZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA1Y2YyNGQwYzFhYTM3ZWVh
NmYzODJiMGIyOTEwM2Y3NTk2YjJlMzllLi5kY2RlNDBmMzIwZDcyNTMyYTM0MGYyMTIyYWU5ZTJl
Njk4YmFjYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1
dEV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIEludFBv
aW50IGNvbnZlcnRMb2NhdGlvbkZvclJlbmRlck9iamVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9j
YXRpb24sIGNvbnMKICAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRlck9iamVjdC5hYnNv
bHV0ZVRvTG9jYWwobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNm
b3JtcykpOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVN
b3VzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnQmIGV2ZW50LCBjb25zdCBXaWRnZXQmIHdpZGdldCwg
Y29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIFdlYk1vdXNlRXZlbnQm
IHdlYkV2ZW50KQorc3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21XZWJDb3JlTW91
c2VFdmVudChjb25zdCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lk
Z2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VF
dmVudCYgd2ViRXZlbnQpCiB7CiAgICAgd2ViRXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGV2ZW50
LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdlYkV2ZW50Lm1vZGlmaWVycyA9
IGdldFdlYklucHV0TW9kaWZpZXJzKGV2ZW50KTsKQEAgLTQ3Myw2ICs0NzMsMzcgQEAgV2ViTW91
c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdldCogd2lkZ2V0
LCBjb25zdCBXZWJDb3JlOjoKICAgICBjbGlja0NvdW50ID0gZXZlbnQuZGV0YWlsKCk7CiB9CiAK
K1dlYk1vdXNlRXZlbnRCdWlsZGVyOjpXZWJNb3VzZUV2ZW50QnVpbGRlcihjb25zdCBXaWRnZXQq
IHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0
IFRvdWNoRXZlbnQmIGV2ZW50KQoreworICAgIGlmIChldmVudC50b3VjaGVzKCktPmxlbmd0aCgp
ICE9IDEpIHsKKyAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVuZ3RoKCkgfHwgZXZlbnQu
dHlwZSgpICE9IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50IHx8IGV2ZW50LmNoYW5nZWRUb3Vj
aGVzKCktPmxlbmd0aCgpICE9IDEpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
Y29uc3QgVG91Y2gqIHRvdWNoID0gZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSA9PSAxID8gZXZl
bnQudG91Y2hlcygpLT5pdGVtKDApIDogZXZlbnQuY2hhbmdlZFRvdWNoZXMoKS0+aXRlbSgwKTsK
KyAgICBpZiAodG91Y2gtPmlkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50KQorICAgICAgICB0
eXBlID0gTW91c2VEb3duOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkudG91Y2htb3ZlRXZlbnQpCisgICAgICAgIHR5cGUgPSBNb3VzZU1vdmU7CisgICAgZWxzZSBp
ZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50KQorICAgICAgICB0
eXBlID0gTW91c2VVcDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybjsKKworICAgIHVwZGF0ZVdl
Yk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQoZXZlbnQsICp3aWRnZXQsICpyZW5kZXJP
YmplY3QsICp0aGlzKTsKKworICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbkxlZnQ7
CisgICAgbW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OkxlZnRCdXR0b25Eb3duOworICAgIGNs
aWNrQ291bnQgPSAodHlwZSA9PSBNb3VzZURvd24gfHwgdHlwZSA9PSBNb3VzZVVwKTsKKworICAg
IEludFBvaW50IGxvY2FsUG9pbnQgPSBjb252ZXJ0TG9jYXRpb25Gb3JSZW5kZXJPYmplY3QoTGF5
b3V0UG9pbnQodG91Y2gtPnBhZ2VYKCksIHRvdWNoLT5wYWdlWSgpKSwgKnJlbmRlck9iamVjdCk7
CisgICAgeCA9IGxvY2FsUG9pbnQueCgpOworICAgIHkgPSBsb2NhbFBvaW50LnkoKTsKK30KKwog
V2ViTW91c2VXaGVlbEV2ZW50QnVpbGRlcjo6V2ViTW91c2VXaGVlbEV2ZW50QnVpbGRlcihjb25z
dCBXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmpl
Y3QsIGNvbnN0IFdoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChldmVudC50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCmluZGV4IDM1MTI2NDZlYjNkMmM1
MmIxZWExYWM3OWQ3YTU4ODQyYzhmNWM2MDQuLjE4MWQxZTVjMjI0ZmVkM2U3NThiYzQ0NWU4NjNm
YWNhMTBmOTA4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklu
cHV0RXZlbnRDb252ZXJzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
SW5wdXRFdmVudENvbnZlcnNpb24uaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKIGNsYXNz
IFdlYk1vdXNlRXZlbnRCdWlsZGVyIDogcHVibGljIFdlYk1vdXNlRXZlbnQgewogcHVibGljOgog
ICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdl
YkNvcmU6OlJlbmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6Ok1vdXNlRXZlbnQmKTsKKyAgICBX
ZWJNb3VzZUV2ZW50QnVpbGRlcihjb25zdCBXZWJDb3JlOjpXaWRnZXQqLCBjb25zdCBXZWJDb3Jl
OjpSZW5kZXJPYmplY3QqLCBjb25zdCBXZWJDb3JlOjpUb3VjaEV2ZW50Jik7CiB9OwogCiAvLyBD
b252ZXJ0cyBhIFdlYkNvcmU6OldoZWVsRXZlbnQgdG8gYSBjb3JyZXNwb25kaW5nIFdlYk1vdXNl
V2hlZWxFdmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMDc1ZmMwNTQ4NmQ0NTljMGNkYTlhZWM0MDQyZWQ1
YWQ5N2Q2MWUzNy4uYzA1M2FmYmE3NDU5MjgzNmNhNmIzOTU1MmY5YzBiNDdkODk3MmFiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVy
SW1wbC5jcHAKQEAgLTUyMywxMCArNTIzLDE1IEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6aXNSZWN0VG9wbW9zdChjb25zdCBXZWJSZWN0JiByZWN0KQogCiB2b2lkIFdlYlBsdWdpbkNv
bnRhaW5lckltcGw6OnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCBhY2NlcHRpbmdUb3Vj
aEV2ZW50cykKIHsKLSAgICBpZiAobV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzID09IGFjY2VwdGlu
Z1RvdWNoRXZlbnRzKQorICAgIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShhY2NlcHRpbmdUb3VjaEV2
ZW50cyA/IFRPVUNIX0VWRU5UX1JFUVVFU1RfUkFXIDogVE9VQ0hfRVZFTlRfUkVRVUVTVF9OT05F
KTsKK30KKwordm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpyZXF1ZXN0VG91Y2hFdmVudFR5
cGUoVG91Y2hFdmVudFJlcXVlc3RUeXBlIHJlcXVlc3RUeXBlKQoreworICAgIGlmIChtX3RvdWNo
RXZlbnRSZXF1ZXN0VHlwZSA9PSByZXF1ZXN0VHlwZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1f
aXNBY2NlcHRpbmdUb3VjaEV2ZW50cyA9IGFjY2VwdGluZ1RvdWNoRXZlbnRzOwotICAgIGlmICht
X2lzQWNjZXB0aW5nVG91Y2hFdmVudHMpCisgICAgbV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgPSBy
ZXF1ZXN0VHlwZTsKKyAgICBpZiAobV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgIT0gVE9VQ0hfRVZF
TlRfUkVRVUVTVF9OT05FKQogICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFkZFRv
dWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgZWxzZQogICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50
KCktPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCk7CkBAIC02NjcsNyArNjcyLDcgQEAgV2Vi
UGx1Z2luQ29udGFpbmVySW1wbDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbChXZWJDb3JlOjpIVE1M
UGx1Z0luRWxlbWVudCogZWxlbWUKICAgICAsIG1fdGV4dHVyZUlkKDApCiAgICAgLCBtX2lvU3Vy
ZmFjZUlkKDApCiAjZW5kaWYKLSAgICAsIG1faXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhmYWxzZSkK
KyAgICAsIG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlKFRPVUNIX0VWRU5UX1JFUVVFU1RfTk9ORSkK
ICAgICAsIG1fd2FudHNXaGVlbEV2ZW50cyhmYWxzZSkKIHsKIH0KQEAgLTY4MSw3ICs2ODYsNyBA
QCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCgpCiAgICAg
ICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9pb1N1
cmZhY2VMYXllci0+bGF5ZXIoKSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91
Y2hFdmVudHMpCisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRPVUNIX0VWRU5U
X1JFUVVFU1RfTk9ORSkKICAgICAgICAgbV9lbGVtZW50LT5kb2N1bWVudCgpLT5kaWRSZW1vdmVU
b3VjaEV2ZW50SGFuZGxlcigpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BsdWdp
bkxvYWRPYnNlcnZlcnMuc2l6ZSgpOyArK2kpCkBAIC04MTksOSArODI0LDI4IEBAIHZvaWQgV2Vi
UGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBl
dmVudCkKIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVUb3VjaEV2ZW50KFRv
dWNoRXZlbnQqIGV2ZW50KQogewotICAgIGlmICghbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQor
ICAgIHN3aXRjaCAobV90b3VjaEV2ZW50UmVxdWVzdFR5cGUpIHsKKyAgICBjYXNlIFRPVUNIX0VW
RU5UX1JFUVVFU1RfTk9ORToKKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgVE9VQ0hfRVZFTlRf
UkVRVUVTVF9SQVc6IHsKKyAgICAgICAgV2ViVG91Y2hFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhp
cywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOworICAgICAgICBpZiAod2ViRXZlbnQu
dHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIFdlYkN1cnNvckluZm8gY3Vyc29ySW5mbzsKKyAgICAgICAgaWYgKG1fd2ViUGx1Z2lu
LT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50LCBjdXJzb3JJbmZvKSkKKyAgICAgICAgICAgIGV2
ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2lu
IGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBjYXNlIFRPVUNIX0VWRU5UX1JFUVVFU1RfU1lOVEhFU0laRURf
TU9VU0U6CisgICAgICAgIHN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJsZShldmVudCk7CiAg
ICAgICAgIHJldHVybjsKLSAgICBXZWJUb3VjaEV2ZW50QnVpbGRlciB3ZWJFdmVudCh0aGlzLCBt
X2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CisgICAgfQorfQorCit2b2lkIFdlYlBsdWdp
bkNvbnRhaW5lckltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChHZXN0dXJlRXZlbnQqIGV2ZW50KQor
eworICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5y
ZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVudC50eXBlID09IFdlYklucHV0RXZl
bnQ6OlVuZGVmaW5lZCkKICAgICAgICAgcmV0dXJuOwogICAgIFdlYkN1cnNvckluZm8gY3Vyc29y
SW5mbzsKQEAgLTgzMCwxNSArODU0LDE1IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTogQ2FuIGEg
cGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0K
IAotdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVy
ZUV2ZW50KiBldmVudCkKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3ludGhlc2l6ZU1v
dXNlRXZlbnRJZlBvc3NpYmxlKFRvdWNoRXZlbnQqIGV2ZW50KQogewotICAgIFdlYkdlc3R1cmVF
dmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQp
OworICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVudC0+cmVu
ZGVyZXIoKSwgKmV2ZW50KTsKICAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50
OjpVbmRlZmluZWQpCiAgICAgICAgIHJldHVybjsKKwogICAgIFdlYkN1cnNvckluZm8gY3Vyc29y
SW5mbzsKICAgICBpZiAobV93ZWJQbHVnaW4tPmhhbmRsZUlucHV0RXZlbnQod2ViRXZlbnQsIGN1
cnNvckluZm8pKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAgICAvLyBG
SVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBj
YWxsYmFjaz8KIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjYWxjdWxhdGVHZW9t
ZXRyeShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggYjQ5NThmZTE5NTU3MDJk
MjRmN2MxMGNjNDMyNTQ0ZjA1YTc5MTYxOS4uODQ0NjM2ZTRhNTE3MjllNzVhNTY5NzQwZjQ3ZWY1
MGI3M2ZmZGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBs
dWdpbkNvbnRhaW5lckltcGwuaApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RUb3Btb3N0
KGNvbnN0IFdlYlJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY2NlcHRpbmdUb3VjaEV2
ZW50cyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKFRvdWNo
RXZlbnRSZXF1ZXN0VHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFdhbnRzV2hlZWxFdmVudHMo
Ym9vbCk7CiAgICAgdmlydHVhbCBXZWJQb2ludCB3aW5kb3dUb0xvY2FsUG9pbnQoY29uc3QgV2Vi
UG9pbnQmKTsKIApAQCAtMTc1LDYgKzE3Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBoYW5kbGVU
b3VjaEV2ZW50KFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZUdlc3R1cmVF
dmVudChXZWJDb3JlOjpHZXN0dXJlRXZlbnQqKTsKIAorICAgIHZvaWQgc3ludGhlc2l6ZU1vdXNl
RXZlbnRJZlBvc3NpYmxlKFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKKwogICAgIHZvaWQgY2FsY3Vs
YXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0LApAQCAtMjAxLDcg
KzIwNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gc2Nyb2xsYmFycy4KICAgICBPd25QdHI8U2Nyb2xs
YmFyR3JvdXA+IG1fc2Nyb2xsYmFyR3JvdXA7CiAKLSAgICBib29sIG1faXNBY2NlcHRpbmdUb3Vj
aEV2ZW50czsKKyAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90b3VjaEV2ZW50UmVxdWVzdFR5
cGU7CiAgICAgYm9vbCBtX3dhbnRzV2hlZWxFdmVudHM7CiB9OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175809</attachid>
            <date>2012-11-23 07:46:50 -0800</date>
            <delta_ts>2012-11-26 10:46:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103092-20121123104434.patch</filename>
            <type>text/plain</type>
            <size>18339</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NTI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDUzZDYyZGIwOGNhN2Q5NTcwYTZmN2IxZTMzMDg0Mjk3MmIyNTIzYWYuLmEzYWEyMDBlMzBhYjcy
NzcwNWYwYzA2OTdkNmZmMGZjNTBhMGM2YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjIgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBs
dWdpbiBjYW4gbm93IHJlcXVlc3QgdG8gcmVjZWl2ZSByYXcgdG91Y2ggZXZlbnRzLCBvciB0byBy
ZWNlaXZlIG1vdXNlIGV2ZW50cyBzeW50aGVzaXplZAorICAgICAgICBmcm9tIHRoZSB0b3VjaCBl
dmVudHMsIG9yIHRvIG5vdCByZWNlaXZlIGFueSB0b3VjaCBldmVudHMgYXQgYWxsLgorCisgICAg
ICAgICogcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViUGx1Z2luQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmg6CisgICAgICAgIChXZWJNb3VzZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3Vj
aEV2ZW50VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAy
MDEyLTExLTIyICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0Nocm9taXVtXTogUmVtb3ZpbmcgZ3lwIGZsYWdzIGNvbnRyb2xsaW5nIFNraWEgZmVh
dHVyZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJQbHVn
aW5Db250YWluZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNv
bnRhaW5lci5oCmluZGV4IDEyMjkwMTRkYWI3NTVjZDMzM2QyZTE0OWU1NThkMjE0OTliZTdkMmEu
LmMwOTBjMzlhMTllYzYxYWM3Nzg4MzkzNDE1NzI1M2Q0MTU2ZGExYzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCkBAIC00Nyw2
ICs0NywxMiBAQCBzdHJ1Y3QgV2ViUmVjdDsKIAogY2xhc3MgV2ViUGx1Z2luQ29udGFpbmVyIHsK
IHB1YmxpYzoKKyAgICBlbnVtIFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSB7CisgICAgICAgIFRvdWNo
RXZlbnRSZXF1ZXN0Tm9uZSwKKyAgICAgICAgVG91Y2hFdmVudFJlcXVlc3RSYXcsCisgICAgICAg
IFRvdWNoRXZlbnRSZXF1ZXN0U3ludGhlc2l6ZWRNb3VzZSwKKyAgICB9OworCiAgICAgLy8gUmV0
dXJucyB0aGUgZWxlbWVudCBjb250YWluaW5nIHRoaXMgcGx1Z2luLgogICAgIHZpcnR1YWwgV2Vi
RWxlbWVudCBlbGVtZW50KCkgPSAwOwogCkBAIC0xMTEsOSArMTE3LDEyIEBAIHB1YmxpYzoKICAg
ICAvLyBjb250ZW50LiBUaGUgcmVjdGFuZ2xlIGlzIGluIHRoZSBwbHVnaW4ncyBjb29yZGluYXRl
IHN5c3RlbS4KICAgICB2aXJ0dWFsIGJvb2wgaXNSZWN0VG9wbW9zdChjb25zdCBXZWJSZWN0Jikg
PSAwOwogCi0gICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIHN0YXJ0cy9zdG9wcyBhY2Nl
cHRpbmcgdG91Y2ggZXZlbnRzLgorICAgIC8vIE5vdGlmaWVzIHdoZW4gdGhlIHBsdWdpbiBzdGFy
dHMvc3RvcHMgYWNjZXB0aW5nIHRvdWNoIGV2ZW50cy4gVGhpcyBpcyBkZXByZWNhdGVkLCB1c2Ug
cmVxdWVzdFRvdWNoRXZlbnRUeXBlIGluc3RlYWQuCiAgICAgdmlydHVhbCB2b2lkIHNldElzQWNj
ZXB0aW5nVG91Y2hFdmVudHMoYm9vbCkgPSAwOwogCisgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUg
cGx1Z2luIGNoYW5nZXMgdGhlIGtpbmQgb2YgdG91Y2gtZXZlbnRzIGl0IGFjY2VwdHMuCisgICAg
dmlydHVhbCB2b2lkIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShUb3VjaEV2ZW50UmVxdWVzdFR5cGUp
ID0gMDsKKwogICAgIC8vIE5vdGlmaWVzIHdoZW4gdGhlIHBsdWdpbiBzdGFydHMvc3RvcHMgYWNj
ZXB0aW5nIHdoZWVsIGV2ZW50cy4gV2l0aG91dAogICAgIC8vIGNhbGxpbmcgdGhlIGZ1bmN0aW9u
IHdpdGggdHJ1ZSwgdGhlIGNvbnRhaW5lciBtaWdodCBub3QgYWx3YXlzIGFibGUgdG8KICAgICAv
LyByZWNlaXZlIHdoZWVsIGV2ZW50cyBpbiBzb21lIGNhc2VzIChzdWNoIGFzIHdoZW4gdGhyZWFk
ZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA1Y2YyNGQwYzFhYTM3ZWVhNmYzODJiMGIy
OTEwM2Y3NTk2YjJlMzllLi5kY2RlNDBmMzIwZDcyNTMyYTM0MGYyMTIyYWU5ZTJlNjk4YmFjYTRl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29u
dmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAgc3RhdGljIEludFBvaW50IGNvbnZl
cnRMb2NhdGlvbkZvclJlbmRlck9iamVjdChjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24sIGNv
bnMKICAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRlck9iamVjdC5hYnNvbHV0ZVRvTG9j
YWwobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0Rm9yVHJhbnNmb3JtcykpOwog
fQogCi1zdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50
KGNvbnN0IE1vdXNlRXZlbnQmIGV2ZW50LCBjb25zdCBXaWRnZXQmIHdpZGdldCwgY29uc3QgV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIFdlYk1vdXNlRXZlbnQmIHdlYkV2ZW50
KQorc3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21XZWJDb3JlTW91c2VFdmVudChj
b25zdCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lkZ2V0LCBjb25z
dCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VFdmVudCYgd2Vi
RXZlbnQpCiB7CiAgICAgd2ViRXZlbnQudGltZVN0YW1wU2Vjb25kcyA9IGV2ZW50LnRpbWVTdGFt
cCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdlYkV2ZW50Lm1vZGlmaWVycyA9IGdldFdlYklu
cHV0TW9kaWZpZXJzKGV2ZW50KTsKQEAgLTQ3Myw2ICs0NzMsMzcgQEAgV2ViTW91c2VFdmVudEJ1
aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdldCogd2lkZ2V0LCBjb25zdCBX
ZWJDb3JlOjoKICAgICBjbGlja0NvdW50ID0gZXZlbnQuZGV0YWlsKCk7CiB9CiAKK1dlYk1vdXNl
RXZlbnRCdWlsZGVyOjpXZWJNb3VzZUV2ZW50QnVpbGRlcihjb25zdCBXaWRnZXQqIHdpZGdldCwg
Y29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0IFRvdWNoRXZl
bnQmIGV2ZW50KQoreworICAgIGlmIChldmVudC50b3VjaGVzKCktPmxlbmd0aCgpICE9IDEpIHsK
KyAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVuZ3RoKCkgfHwgZXZlbnQudHlwZSgpICE9
IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50IHx8IGV2ZW50LmNoYW5nZWRUb3VjaGVzKCktPmxl
bmd0aCgpICE9IDEpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY29uc3QgVG91
Y2gqIHRvdWNoID0gZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSA9PSAxID8gZXZlbnQudG91Y2hl
cygpLT5pdGVtKDApIDogZXZlbnQuY2hhbmdlZFRvdWNoZXMoKS0+aXRlbSgwKTsKKyAgICBpZiAo
dG91Y2gtPmlkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGV2ZW50LnR5
cGUoKSA9PSBldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50KQorICAgICAgICB0eXBlID0gTW91
c2VEb3duOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkudG91Y2ht
b3ZlRXZlbnQpCisgICAgICAgIHR5cGUgPSBNb3VzZU1vdmU7CisgICAgZWxzZSBpZiAoZXZlbnQu
dHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50KQorICAgICAgICB0eXBlID0gTW91
c2VVcDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybjsKKworICAgIHVwZGF0ZVdlYk1vdXNlRXZl
bnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQoZXZlbnQsICp3aWRnZXQsICpyZW5kZXJPYmplY3QsICp0
aGlzKTsKKworICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbkxlZnQ7CisgICAgbW9k
aWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OkxlZnRCdXR0b25Eb3duOworICAgIGNsaWNrQ291bnQg
PSAodHlwZSA9PSBNb3VzZURvd24gfHwgdHlwZSA9PSBNb3VzZVVwKTsKKworICAgIEludFBvaW50
IGxvY2FsUG9pbnQgPSBjb252ZXJ0TG9jYXRpb25Gb3JSZW5kZXJPYmplY3QoTGF5b3V0UG9pbnQo
dG91Y2gtPnBhZ2VYKCksIHRvdWNoLT5wYWdlWSgpKSwgKnJlbmRlck9iamVjdCk7CisgICAgeCA9
IGxvY2FsUG9pbnQueCgpOworICAgIHkgPSBsb2NhbFBvaW50LnkoKTsKK30KKwogV2ViTW91c2VX
aGVlbEV2ZW50QnVpbGRlcjo6V2ViTW91c2VXaGVlbEV2ZW50QnVpbGRlcihjb25zdCBXaWRnZXQq
IHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmplY3QsIGNvbnN0
IFdoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChldmVudC50eXBlKCkgIT0gZXZlbnROYW1l
cygpLm1vdXNld2hlZWxFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCmluZGV4IDM1MTI2NDZlYjNkMmM1MmIxZWExYWM3
OWQ3YTU4ODQyYzhmNWM2MDQuLjE4MWQxZTVjMjI0ZmVkM2U3NThiYzQ0NWU4NjNmYWNhMTBmOTA4
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRD
b252ZXJzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVu
dENvbnZlcnNpb24uaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKIGNsYXNzIFdlYk1vdXNl
RXZlbnRCdWlsZGVyIDogcHVibGljIFdlYk1vdXNlRXZlbnQgewogcHVibGljOgogICAgIFdlYk1v
dXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdlYkNvcmU6OlJl
bmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6Ok1vdXNlRXZlbnQmKTsKKyAgICBXZWJNb3VzZUV2
ZW50QnVpbGRlcihjb25zdCBXZWJDb3JlOjpXaWRnZXQqLCBjb25zdCBXZWJDb3JlOjpSZW5kZXJP
YmplY3QqLCBjb25zdCBXZWJDb3JlOjpUb3VjaEV2ZW50Jik7CiB9OwogCiAvLyBDb252ZXJ0cyBh
IFdlYkNvcmU6OldoZWVsRXZlbnQgdG8gYSBjb3JyZXNwb25kaW5nIFdlYk1vdXNlV2hlZWxFdmVu
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRh
aW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFp
bmVySW1wbC5jcHAKaW5kZXggMDc1ZmMwNTQ4NmQ0NTljMGNkYTlhZWM0MDQyZWQ1YWQ5N2Q2MWUz
Ny4uNGYwZTUxYmFhZGIyZmNlZjNkNWNhZDdkMTA0NWM2MzFjOGEyN2FjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAK
QEAgLTUyMywxMCArNTIzLDE1IEBAIGJvb2wgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aXNSZWN0
VG9wbW9zdChjb25zdCBXZWJSZWN0JiByZWN0KQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lcklt
cGw6OnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCBhY2NlcHRpbmdUb3VjaEV2ZW50cykK
IHsKLSAgICBpZiAobV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzID09IGFjY2VwdGluZ1RvdWNoRXZl
bnRzKQorICAgIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShhY2NlcHRpbmdUb3VjaEV2ZW50cyA/IFRv
dWNoRXZlbnRSZXF1ZXN0UmF3IDogVG91Y2hFdmVudFJlcXVlc3ROb25lKTsKK30KKwordm9pZCBX
ZWJQbHVnaW5Db250YWluZXJJbXBsOjpyZXF1ZXN0VG91Y2hFdmVudFR5cGUoVG91Y2hFdmVudFJl
cXVlc3RUeXBlIHJlcXVlc3RUeXBlKQoreworICAgIGlmIChtX3RvdWNoRXZlbnRSZXF1ZXN0VHlw
ZSA9PSByZXF1ZXN0VHlwZSkKICAgICAgICAgcmV0dXJuOwotICAgIG1faXNBY2NlcHRpbmdUb3Vj
aEV2ZW50cyA9IGFjY2VwdGluZ1RvdWNoRXZlbnRzOwotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91
Y2hFdmVudHMpCisgICAgbV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgPSByZXF1ZXN0VHlwZTsKKyAg
ICBpZiAobV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgIT0gVG91Y2hFdmVudFJlcXVlc3ROb25lKQog
ICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7
CiAgICAgZWxzZQogICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50KCktPmRpZFJlbW92ZVRvdWNo
RXZlbnRIYW5kbGVyKCk7CkBAIC02NjcsNyArNjcyLDcgQEAgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbChXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxl
bWUKICAgICAsIG1fdGV4dHVyZUlkKDApCiAgICAgLCBtX2lvU3VyZmFjZUlkKDApCiAjZW5kaWYK
LSAgICAsIG1faXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhmYWxzZSkKKyAgICAsIG1fdG91Y2hFdmVu
dFJlcXVlc3RUeXBlKFRvdWNoRXZlbnRSZXF1ZXN0Tm9uZSkKICAgICAsIG1fd2FudHNXaGVlbEV2
ZW50cyhmYWxzZSkKIHsKIH0KQEAgLTY4MSw3ICs2ODYsNyBAQCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCgpCiAgICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJv
bWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9pb1N1cmZhY2VMYXllci0+bGF5ZXIoKSk7
CiAjZW5kaWYKIAotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91Y2hFdmVudHMpCisgICAgaWYgKG1f
dG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRvdWNoRXZlbnRSZXF1ZXN0Tm9uZSkKICAgICAgICAg
bV9lbGVtZW50LT5kb2N1bWVudCgpLT5kaWRSZW1vdmVUb3VjaEV2ZW50SGFuZGxlcigpOwogCiAg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BsdWdpbkxvYWRPYnNlcnZlcnMuc2l6ZSgpOyAr
K2kpCkBAIC04MTksOSArODI0LDI4IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFu
ZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIAogdm9pZCBXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpoYW5kbGVUb3VjaEV2ZW50KFRvdWNoRXZlbnQqIGV2ZW50KQogewotICAg
IGlmICghbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIHN3aXRjaCAobV90b3VjaEV2ZW50
UmVxdWVzdFR5cGUpIHsKKyAgICBjYXNlIFRvdWNoRXZlbnRSZXF1ZXN0Tm9uZToKKyAgICAgICAg
cmV0dXJuOworICAgIGNhc2UgVG91Y2hFdmVudFJlcXVlc3RSYXc6IHsKKyAgICAgICAgV2ViVG91
Y2hFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZl
bnQpOworICAgICAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmlu
ZWQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIFdlYkN1cnNvckluZm8gY3Vyc29ySW5m
bzsKKyAgICAgICAgaWYgKG1fd2ViUGx1Z2luLT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50LCBj
dXJzb3JJbmZvKSkKKyAgICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAg
ICAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3Vj
aC1ldmVudCBjYWxsYmFjaz8KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIFRvdWNo
RXZlbnRSZXF1ZXN0U3ludGhlc2l6ZWRNb3VzZToKKyAgICAgICAgc3ludGhlc2l6ZU1vdXNlRXZl
bnRJZlBvc3NpYmxlKGV2ZW50KTsKICAgICAgICAgcmV0dXJuOwotICAgIFdlYlRvdWNoRXZlbnRC
dWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVudC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKKyAg
ICB9Cit9CisKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlR2VzdHVyZUV2ZW50
KEdlc3R1cmVFdmVudCogZXZlbnQpCit7CisgICAgV2ViR2VzdHVyZUV2ZW50QnVpbGRlciB3ZWJF
dmVudCh0aGlzLCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CiAgICAgaWYgKHdlYkV2
ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkKQogICAgICAgICByZXR1cm47CiAg
ICAgV2ViQ3Vyc29ySW5mbyBjdXJzb3JJbmZvOwpAQCAtODMwLDE1ICs4NTQsMTUgQEAgdm9pZCBX
ZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVUb3VjaEV2ZW50KFRvdWNoRXZlbnQqIGV2ZW50
KQogICAgIC8vIEZJWE1FOiBDYW4gYSBwbHVnaW4gY2hhbmdlIHRoZSBjdXJzb3IgZnJvbSBhIHRv
dWNoLWV2ZW50IGNhbGxiYWNrPwogfQogCi12b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6Omhh
bmRsZUdlc3R1cmVFdmVudChHZXN0dXJlRXZlbnQqIGV2ZW50KQordm9pZCBXZWJQbHVnaW5Db250
YWluZXJJbXBsOjpzeW50aGVzaXplTW91c2VFdmVudElmUG9zc2libGUoVG91Y2hFdmVudCogZXZl
bnQpCiB7Ci0gICAgV2ViR2VzdHVyZUV2ZW50QnVpbGRlciB3ZWJFdmVudCh0aGlzLCBtX2VsZW1l
bnQtPnJlbmRlcmVyKCksICpldmVudCk7CisgICAgV2ViTW91c2VFdmVudEJ1aWxkZXIgd2ViRXZl
bnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVu
dC50eXBlID09IFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZCkKICAgICAgICAgcmV0dXJuOworCiAg
ICAgV2ViQ3Vyc29ySW5mbyBjdXJzb3JJbmZvOwogICAgIGlmIChtX3dlYlBsdWdpbi0+aGFuZGxl
SW5wdXRFdmVudCh3ZWJFdmVudCwgY3Vyc29ySW5mbykpCiAgICAgICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOwotICAgIC8vIEZJWE1FOiBDYW4gYSBwbHVnaW4gY2hhbmdlIHRoZSBjdXJz
b3IgZnJvbSBhIHRvdWNoLWV2ZW50IGNhbGxiYWNrPwogfQogCiB2b2lkIFdlYlBsdWdpbkNvbnRh
aW5lckltcGw6OmNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IEludFJlY3QmIGZyYW1lUmVjdCwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lcklt
cGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwu
aAppbmRleCBiNDk1OGZlMTk1NTcwMmQyNGY3YzEwY2M0MzI1NDRmMDVhNzkxNjE5Li44NDQ2MzZl
NGE1MTcyOWU3NWE1Njk3NDBmNDdlZjUwYjczZmZkYWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCkBAIC0xMTQsNiArMTE0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRPcGFxdWUoYm9vbCk7CiAgICAgdmly
dHVhbCBib29sIGlzUmVjdFRvcG1vc3QoY29uc3QgV2ViUmVjdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0VG91Y2hFdmVudFR5cGUoVG91Y2hFdmVudFJlcXVlc3RUeXBlKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0V2FudHNXaGVlbEV2ZW50cyhib29sKTsKICAgICB2aXJ0dWFsIFdlYlBvaW50IHdpbmRv
d1RvTG9jYWxQb2ludChjb25zdCBXZWJQb2ludCYpOwogCkBAIC0xNzUsNiArMTc2LDggQEAgcHJp
dmF0ZToKICAgICB2b2lkIGhhbmRsZVRvdWNoRXZlbnQoV2ViQ29yZTo6VG91Y2hFdmVudCopOwog
ICAgIHZvaWQgaGFuZGxlR2VzdHVyZUV2ZW50KFdlYkNvcmU6Okdlc3R1cmVFdmVudCopOwogCisg
ICAgdm9pZCBzeW50aGVzaXplTW91c2VFdmVudElmUG9zc2libGUoV2ViQ29yZTo6VG91Y2hFdmVu
dCopOworCiAgICAgdm9pZCBjYWxjdWxhdGVHZW9tZXRyeShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiBmcmFtZVJlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0
JiB3aW5kb3dSZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVj
dCYgY2xpcFJlY3QsCkBAIC0yMDEsNyArMjA0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBzY3JvbGxi
YXJzLgogICAgIE93blB0cjxTY3JvbGxiYXJHcm91cD4gbV9zY3JvbGxiYXJHcm91cDsKIAotICAg
IGJvb2wgbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzOworICAgIFRvdWNoRXZlbnRSZXF1ZXN0VHlw
ZSBtX3RvdWNoRXZlbnRSZXF1ZXN0VHlwZTsKICAgICBib29sIG1fd2FudHNXaGVlbEV2ZW50czsK
IH07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAxM2I3Yzk3OTQ0NThkNGQ4MzFiN2YwOWJkYmQ2ODBjZjlkN2JmOTZiLi4yNWExZjhmN2I0Yzk5
ZDYwOWIyNmE4OTcyYzRmNTRkMTA3MDYzY2FiIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTItMTEtMjMgIFNhZHJ1
bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJv
bWl1bV0gQWxsb3cgcGx1Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2Ug
ZXZlbnRzIG91dCBvZiB0b3VjaCBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIHRlc3Qgd2ViLXBsdWdpbiB0byBiZSBhYmxl
IHRvIG9wdC1pbiB0byByZWNlaXZlIHN5bnRoZXNpemVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkCisg
ICAgICAgIGZyb20gdG91Y2ggZXZlbnRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFdlYlBsdWdpbi5jcHA6CisgICAgICAgIChwYXJzZVRvdWNoRXZlbnRSZXF1ZXN0
VHlwZSk6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpUZXN0V2ViUGx1Z2luKToKKyAgICAgICAg
KFRlc3RXZWJQbHVnaW46OmluaXRpYWxpemUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uaDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW4pOgorCiAyMDEy
LTExLTIyICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4sIFBpZXJy
ZSBSb3NzaSA8cGllcnJlLnJvc3NpQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIFNlcGFyYXRl
IFFXaWRnZXQgZGVwZW5kYW50IGNvZGUgaW50byBzZXBhcmF0ZSBXZWJLaXRXaWRnZXRzIHN0YXRp
YyBsaWJyYXJ5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
V2ViUGx1Z2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwCmluZGV4IDI5NjBkYzBiZGQ2MjZlN2IzOTE2YTEyMDYwM2M3ZmU3YjdkOGJlMTUuLjI2
NzRhZWFhYmFmMzk3YjcwYTRhOThjMzhmMmM4YTU4ZmIxOTZlMzMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCkBAIC0xMTgsMTIgKzExOCwy
NCBAQCBzdGF0aWMgdm9pZCBwcmludEV2ZW50RGV0YWlscyhjb25zdCBXZWJLaXQ6OldlYklucHV0
RXZlbnQmIGV2ZW50KQogICAgIH0KIH0KIAorc3RhdGljIFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5cGUgcGFyc2VUb3VjaEV2ZW50UmVxdWVzdFR5cGUoY29u
c3QgV2ViU3RyaW5nJiBzdHJpbmcpCit7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJp
bWl0aXZlVHJ1ZSA9IFdlYlN0cmluZzo6ZnJvbVVURjgoInRydWUiKTsKKyAgICBzdGF0aWMgY29u
c3QgV2ViU3RyaW5nIGtQcmltaXRpdmVTeW50aGV0aWMgPSBXZWJTdHJpbmc6OmZyb21VVEY4KCJz
eW50aGV0aWMiKTsKKworICAgIGlmIChzdHJpbmcgPT0ga1ByaW1pdGl2ZVRydWUpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RSYXc7
CisgICAgaWYgKHN0cmluZyA9PSBrUHJpbWl0aXZlU3ludGhldGljKQorICAgICAgICByZXR1cm4g
V2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0U3ludGhlc2l6ZWRN
b3VzZTsKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRS
ZXF1ZXN0Tm9uZTsKK30KKwogVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbihXZWJLaXQ6Oldl
YkZyYW1lKiBmcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0
OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBt
X2NvbnRhaW5lcigwKQogICAgICwgbV9jb250ZXh0KDApCi0gICAgLCBtX2FjY2VwdHNUb3VjaEV2
ZW50KGZhbHNlKQorICAgICwgbV90b3VjaEV2ZW50UmVxdWVzdChXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3ROb25lKQogICAgICwgbV9wcmludEV2ZW50RGV0YWls
cyhmYWxzZSkKICAgICAsIG1fY2FuUHJvY2Vzc0RyYWcoZmFsc2UpCiB7CkBAIC0xNTAsNyArMTYy
LDcgQEAgVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFt
ZSwKICAgICAgICAgZWxzZSBpZiAoYXR0cmlidXRlTmFtZSA9PSBrQXR0cmlidXRlT3BhY2l0eSkK
ICAgICAgICAgICAgIG1fc2NlbmUub3BhY2l0eSA9IHBhcnNlT3BhY2l0eShhdHRyaWJ1dGVWYWx1
ZSk7CiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZUFjY2VwdHNU
b3VjaCkKLSAgICAgICAgICAgIG1fYWNjZXB0c1RvdWNoRXZlbnQgPSBwYXJzZUJvb2xlYW4oYXR0
cmlidXRlVmFsdWUpOworICAgICAgICAgICAgbV90b3VjaEV2ZW50UmVxdWVzdCA9IHBhcnNlVG91
Y2hFdmVudFJlcXVlc3RUeXBlKGF0dHJpYnV0ZVZhbHVlKTsKICAgICAgICAgZWxzZSBpZiAoYXR0
cmlidXRlTmFtZSA9PSBrQXR0cmlidXRlUHJpbnRFdmVudERldGFpbHMpCiAgICAgICAgICAgICBt
X3ByaW50RXZlbnREZXRhaWxzID0gcGFyc2VCb29sZWFuKGF0dHJpYnV0ZVZhbHVlKTsKICAgICAg
ICAgZWxzZSBpZiAoYXR0cmlidXRlTmFtZSA9PSBrQXR0cmlidXRlQ2FuUHJvY2Vzc0RyYWcpCkBA
IC0xODMsNyArMTk1LDcgQEAgYm9vbCBUZXN0V2ViUGx1Z2luOjppbml0aWFsaXplKFdlYlBsdWdp
bkNvbnRhaW5lciogY29udGFpbmVyKQogCiAgICAgbV9jb250YWluZXIgPSBjb250YWluZXI7CiAg
ICAgbV9jb250YWluZXItPnNldEJhY2tpbmdUZXh0dXJlSWQobV9jb2xvclRleHR1cmUpOwotICAg
IG1fY29udGFpbmVyLT5zZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKG1fYWNjZXB0c1RvdWNoRXZl
bnQpOworICAgIG1fY29udGFpbmVyLT5yZXF1ZXN0VG91Y2hFdmVudFR5cGUobV90b3VjaEV2ZW50
UmVxdWVzdCk7CiAgICAgbV9jb250YWluZXItPnNldFdhbnRzV2hlZWxFdmVudHModHJ1ZSk7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0V2ViUGx1Z2luLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
V2ViUGx1Z2luLmgKaW5kZXggNDlmZGU4NWFhZGMxZTMxMzkwYzZmMzA2OTY5ZGRkYjhlMmViMTFk
NS4uZTZmNWI0N2E0ZjI3NzhmYTA4ZTZjZTJjZmMxYTc2YmU1Mjk0Nzg3OSAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaApAQCAtMjcsNiArMjcsNyBA
QAogI2RlZmluZSBUZXN0V2ViUGx1Z2luX2gKIAogI2luY2x1ZGUgIldlYlBsdWdpbi5oIgorI2lu
Y2x1ZGUgIldlYlBsdWdpbkNvbnRhaW5lci5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlJlY3Qu
aCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xMzEsNyArMTMyLDcgQEAgcHJpdmF0ZToKICAg
ICB1bnNpZ25lZCBtX2ZyYW1lYnVmZmVyOwogICAgIFNjZW5lIG1fc2NlbmU7CiAKLSAgICBib29s
IG1fYWNjZXB0c1RvdWNoRXZlbnQ7CisgICAgV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRv
dWNoRXZlbnRSZXF1ZXN0VHlwZSBtX3RvdWNoRXZlbnRSZXF1ZXN0OwogICAgIGJvb2wgbV9wcmlu
dEV2ZW50RGV0YWlsczsKICAgICBib29sIG1fY2FuUHJvY2Vzc0RyYWc7CiB9OwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGUx
YTdkNTE0ZGY3NGJmOTc2NzMxMWZjYWVmOTJmOTg2YzdmMWY0MmQuLjhjNThjMjRhYzZjZGZhYTk0
YmI0OTEzYTJiZGQ0OTgwZmZiMzcxODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0xMS0y
MyAgU2FkcnVsIEhhYmliIENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgW2Nocm9taXVtXSBBbGxvdyBwbHVnaW5zIHRvIG9wdC1pbiB0byByZWNlaXZlIHN5bnRoZXRp
YyBtb3VzZSBldmVudHMgb3V0IG9mIHRvdWNoIGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzA5MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0ZXN0IGZvciBzeW50aGVzaXplZCBtb3Vz
ZSBldmVudHMgZnJvbSB0b3VjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdp
bnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQuaHRt
bDogQWRkZWQuCisKIDIwMTItMTEtMjIgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBbQ2hyb21pdW1dIFRlc3QgZXhwZWN0YXRpb25zIHVwZGF0ZSBh
ZnRlciBlbmFibGluZyBTa2lhIGNoYW5nZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1z
eW50aGVzaXplZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2MmZiMjBhNWY1ZDdmZTYxM2M3
MGE3MzVkZmU2YjRkMzc0OGFkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDcgQEAKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91c2VEb3duCisqIDEw
LCAxMAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3VzZU1vdmUKKyogMjAsIDE1CitQbHVnaW4g
cmVjZWl2ZWQgZXZlbnQ6IE1vdXNlVXAKKyogMjAsIDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLmh0
bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1z
eW50aGVzaXplZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYTA1MzM0OTQ1MmYxZGYwZGM1NzhiMzQwZmFh
Zjg5MzBmMDAzOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICNwbHVnaW4geworICAgIHdpZHRoOiAxNTBw
eDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4K
KzxlbWJlZCBpZD0idG91Y2hfcGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0
LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0ic3ludGhldGljIiBwcmludC1ldmVudC1kZXRhaWxz
PSJ0cnVlIj48L2VtYmVkPjxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdl
YmtpdC10ZXN0LXdlYnBsdWdpbiI+PC9lbWJlZD4KKzxzY3JpcHQ+CisKKyAgICBpZiAoIXdpbmRv
dy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgZG9jdW1lbnQu
d3JpdGUoIlRoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIG1hbnVhbCBtb2RlLiIpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgIHZhciBw
b3NpdGlvblggPSBwbHVnaW4ub2Zmc2V0TGVmdCArIDEwOworICAgICAgICB2YXIgcG9zaXRpb25Z
ID0gcGx1Z2luLm9mZnNldFRvcCArIDEwOworICAgICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBv
aW50KHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsKKyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFy
dCgpOworICAgICAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgICAgICBwb3NpdGlvblggPSB0b3VjaF9wbHVn
aW4ub2Zmc2V0TGVmdCArIDEwOworICAgICAgICBwb3NpdGlvblkgPSB0b3VjaF9wbHVnaW4ub2Zm
c2V0VG9wICsgMTA7CisgICAgICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQocG9zaXRpb25Y
LCBwb3NpdGlvblkpOworICAgICAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7CisgICAgICAg
IGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgcG9zaXRpb25YICsgMTAsIHBvc2l0aW9u
WSArIDUpOworICAgICAgICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKyAgICAgICAgZXZlbnRT
ZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5k
KCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176032</attachid>
            <date>2012-11-26 10:46:11 -0800</date>
            <delta_ts>2012-11-26 13:56:40 -0800</delta_ts>
            <desc>Renamed the enum members. Thanks!</desc>
            <filename>bug-103092-20121126134350.patch</filename>
            <type>text/plain</type>
            <size>18309</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQxY2Y1ZTBmOGUzMmQ1MTlmNzRiZTg0NDkyMjVmZTU4ZjNmOTc4N2QuLmZiOWMwNGIyY2ZlOWFl
ZDRhN2U0NDc5MDdlZmIzOGQzYjEwOGU3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjYgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBs
dWdpbiBjYW4gbm93IHJlcXVlc3QgdG8gcmVjZWl2ZSByYXcgdG91Y2ggZXZlbnRzLCBvciB0byBy
ZWNlaXZlIG1vdXNlIGV2ZW50cyBzeW50aGVzaXplZAorICAgICAgICBmcm9tIHRoZSB0b3VjaCBl
dmVudHMsIG9yIHRvIG5vdCByZWNlaXZlIGFueSB0b3VjaCBldmVudHMgYXQgYWxsLgorCisgICAg
ICAgICogcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViUGx1Z2luQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmg6CisgICAgICAgIChXZWJNb3VzZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3Vj
aEV2ZW50VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAy
MDEyLTExLTIzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEZpeCBDaHJvbWl1bSBXaW4gY29tcGlsYXRpb24gYWZ0ZXIgcjEzNTU4
MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNv
bnRhaW5lci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFp
bmVyLmgKaW5kZXggMTIyOTAxNGRhYjc1NWNkMzMzZDJlMTQ5ZTU1OGQyMTQ5OWJlN2QyYS4uYWFk
NjMxZjY3NjI0MDUxNmRkZjNkMzk1MDU4NTNjYjk2MGEwMzIyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKQEAgLTQ3LDYgKzQ3
LDEyIEBAIHN0cnVjdCBXZWJSZWN0OwogCiBjbGFzcyBXZWJQbHVnaW5Db250YWluZXIgewogcHVi
bGljOgorICAgIGVudW0gVG91Y2hFdmVudFJlcXVlc3RUeXBlIHsKKyAgICAgICAgVG91Y2hFdmVu
dFJlcXVlc3RUeXBlTm9uZSwKKyAgICAgICAgVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3LAorICAg
ICAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGVTeW50aGVzaXplZE1vdXNlLAorICAgIH07CisKICAg
ICAvLyBSZXR1cm5zIHRoZSBlbGVtZW50IGNvbnRhaW5pbmcgdGhpcyBwbHVnaW4uCiAgICAgdmly
dHVhbCBXZWJFbGVtZW50IGVsZW1lbnQoKSA9IDA7CiAKQEAgLTExMSw5ICsxMTcsMTIgQEAgcHVi
bGljOgogICAgIC8vIGNvbnRlbnQuIFRoZSByZWN0YW5nbGUgaXMgaW4gdGhlIHBsdWdpbidzIGNv
b3JkaW5hdGUgc3lzdGVtLgogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RUb3Btb3N0KGNvbnN0IFdl
YlJlY3QmKSA9IDA7CiAKLSAgICAvLyBOb3RpZmllcyB3aGVuIHRoZSBwbHVnaW4gc3RhcnRzL3N0
b3BzIGFjY2VwdGluZyB0b3VjaCBldmVudHMuCisgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1
Z2luIHN0YXJ0cy9zdG9wcyBhY2NlcHRpbmcgdG91Y2ggZXZlbnRzLiBUaGlzIGlzIGRlcHJlY2F0
ZWQsIHVzZSByZXF1ZXN0VG91Y2hFdmVudFR5cGUgaW5zdGVhZC4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAKKyAgICAvLyBOb3RpZmllcyB3
aGVuIHRoZSBwbHVnaW4gY2hhbmdlcyB0aGUga2luZCBvZiB0b3VjaC1ldmVudHMgaXQgYWNjZXB0
cy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKFRvdWNoRXZlbnRSZXF1
ZXN0VHlwZSkgPSAwOworCiAgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIHN0YXJ0cy9z
dG9wcyBhY2NlcHRpbmcgd2hlZWwgZXZlbnRzLiBXaXRob3V0CiAgICAgLy8gY2FsbGluZyB0aGUg
ZnVuY3Rpb24gd2l0aCB0cnVlLCB0aGUgY29udGFpbmVyIG1pZ2h0IG5vdCBhbHdheXMgYWJsZSB0
bwogICAgIC8vIHJlY2VpdmUgd2hlZWwgZXZlbnRzIGluIHNvbWUgY2FzZXMgKHN1Y2ggYXMgd2hl
biB0aHJlYWRlZCBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDVjZjI0ZDBjMWFhMzdlZWE2
ZjM4MmIwYjI5MTAzZjc1OTZiMmUzOWUuLmRjZGU0MGYzMjBkNzI1MzJhMzQwZjIxMjJhZTllMmU2
OThiYWNhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTQwNyw3ICs0MDcsNyBAQCBzdGF0aWMgSW50UG9p
bnQgY29udmVydExvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2Nh
dGlvbiwgY29ucwogICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyT2JqZWN0LmFic29s
dXRlVG9Mb2NhbChsb2NhdGlvbiwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1v
dXNlRXZlbnQoY29uc3QgTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lkZ2V0LCBj
b25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VFdmVudCYg
d2ViRXZlbnQpCitzdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3Vz
ZUV2ZW50KGNvbnN0IE1vdXNlUmVsYXRlZEV2ZW50JiBldmVudCwgY29uc3QgV2lkZ2V0JiB3aWRn
ZXQsIGNvbnN0IFdlYkNvcmU6OlJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBXZWJNb3VzZUV2
ZW50JiB3ZWJFdmVudCkKIHsKICAgICB3ZWJFdmVudC50aW1lU3RhbXBTZWNvbmRzID0gZXZlbnQu
dGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7CiAgICAgd2ViRXZlbnQubW9kaWZpZXJzID0g
Z2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwpAQCAtNDczLDYgKzQ3MywzNyBAQCBXZWJNb3Vz
ZUV2ZW50QnVpbGRlcjo6V2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQs
IGNvbnN0IFdlYkNvcmU6OgogICAgIGNsaWNrQ291bnQgPSBldmVudC5kZXRhaWwoKTsKIH0KIAor
V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdldCog
d2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3Qg
VG91Y2hFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVuZ3RoKCkg
IT0gMSkgeworICAgICAgICBpZiAoZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSB8fCBldmVudC50
eXBlKCkgIT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQgfHwgZXZlbnQuY2hhbmdlZFRvdWNo
ZXMoKS0+bGVuZ3RoKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
b25zdCBUb3VjaCogdG91Y2ggPSBldmVudC50b3VjaGVzKCktPmxlbmd0aCgpID09IDEgPyBldmVu
dC50b3VjaGVzKCktPml0ZW0oMCkgOiBldmVudC5jaGFuZ2VkVG91Y2hlcygpLT5pdGVtKDApOwor
ICAgIGlmICh0b3VjaC0+aWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQpCisgICAgICAgIHR5
cGUgPSBNb3VzZURvd247CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMo
KS50b3VjaG1vdmVFdmVudCkKKyAgICAgICAgdHlwZSA9IE1vdXNlTW92ZTsKKyAgICBlbHNlIGlm
IChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQpCisgICAgICAgIHR5
cGUgPSBNb3VzZVVwOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlV2Vi
TW91c2VFdmVudEZyb21XZWJDb3JlTW91c2VFdmVudChldmVudCwgKndpZGdldCwgKnJlbmRlck9i
amVjdCwgKnRoaXMpOworCisgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTGVmdDsK
KyAgICBtb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6TGVmdEJ1dHRvbkRvd247CisgICAgY2xp
Y2tDb3VudCA9ICh0eXBlID09IE1vdXNlRG93biB8fCB0eXBlID09IE1vdXNlVXApOworCisgICAg
SW50UG9pbnQgbG9jYWxQb2ludCA9IGNvbnZlcnRMb2NhdGlvbkZvclJlbmRlck9iamVjdChMYXlv
dXRQb2ludCh0b3VjaC0+cGFnZVgoKSwgdG91Y2gtPnBhZ2VZKCkpLCAqcmVuZGVyT2JqZWN0KTsK
KyAgICB4ID0gbG9jYWxQb2ludC54KCk7CisgICAgeSA9IGxvY2FsUG9pbnQueSgpOworfQorCiBX
ZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVyOjpXZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVyKGNvbnN0
IFdpZGdldCogd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVj
dCwgY29uc3QgV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBl
dmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKaW5kZXggMzUxMjY0NmViM2QyYzUy
YjFlYTFhYzc5ZDdhNTg4NDJjOGY1YzYwNC4uMTgxZDFlNWMyMjRmZWQzZTc1OGJjNDQ1ZTg2M2Zh
Y2ExMGY5MDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEV2ZW50Q29udmVyc2lvbi5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogY2xhc3Mg
V2ViTW91c2VFdmVudEJ1aWxkZXIgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CiBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lkZ2V0KiwgY29uc3QgV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0KiwgY29uc3QgV2ViQ29yZTo6TW91c2VFdmVudCYpOworICAgIFdl
Yk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdlYkNvcmU6
OlJlbmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6OlRvdWNoRXZlbnQmKTsKIH07CiAKIC8vIENv
bnZlcnRzIGEgV2ViQ29yZTo6V2hlZWxFdmVudCB0byBhIGNvcnJlc3BvbmRpbmcgV2ViTW91c2VX
aGVlbEV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAppbmRleCAwNzVmYzA1NDg2ZDQ1OWMwY2RhOWFlYzQwNDJlZDVh
ZDk3ZDYxZTM3Li4xMDU5ZGY3NDg3MDJiM2U3OWMzMWRmZWQwYjY1ZmU4NjczNGM0ZDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmNwcApAQCAtNTIzLDEwICs1MjMsMTUgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBs
Ojppc1JlY3RUb3Btb3N0KGNvbnN0IFdlYlJlY3QmIHJlY3QpCiAKIHZvaWQgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbDo6c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sIGFjY2VwdGluZ1RvdWNo
RXZlbnRzKQogewotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPT0gYWNjZXB0aW5n
VG91Y2hFdmVudHMpCisgICAgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKGFjY2VwdGluZ1RvdWNoRXZl
bnRzID8gVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3IDogVG91Y2hFdmVudFJlcXVlc3RUeXBlTm9u
ZSk7Cit9CisKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cmVxdWVzdFRvdWNoRXZlbnRU
eXBlKFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSkKK3sKKyAgICBpZiAobV90b3Vj
aEV2ZW50UmVxdWVzdFR5cGUgPT0gcmVxdWVzdFR5cGUpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPSBhY2NlcHRpbmdUb3VjaEV2ZW50czsKLSAgICBpZiAo
bV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlID0g
cmVxdWVzdFR5cGU7CisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRvdWNoRXZl
bnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkQWRk
VG91Y2hFdmVudEhhbmRsZXIoKTsKICAgICBlbHNlCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKQEAgLTY2Nyw3ICs2NzIsNyBAQCBX
ZWJQbHVnaW5Db250YWluZXJJbXBsOjpXZWJQbHVnaW5Db250YWluZXJJbXBsKFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50KiBlbGVtZQogICAgICwgbV90ZXh0dXJlSWQoMCkKICAgICAsIG1faW9T
dXJmYWNlSWQoMCkKICNlbmRpZgotICAgICwgbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKGZhbHNl
KQorICAgICwgbV90b3VjaEV2ZW50UmVxdWVzdFR5cGUoVG91Y2hFdmVudFJlcXVlc3RUeXBlTm9u
ZSkKICAgICAsIG1fd2FudHNXaGVlbEV2ZW50cyhmYWxzZSkKIHsKIH0KQEAgLTY4MSw3ICs2ODYs
NyBAQCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCgpCiAg
ICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9p
b1N1cmZhY2VMYXllci0+bGF5ZXIoKSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2lzQWNjZXB0aW5n
VG91Y2hFdmVudHMpCisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRvdWNoRXZl
bnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkUmVt
b3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9w
bHVnaW5Mb2FkT2JzZXJ2ZXJzLnNpemUoKTsgKytpKQpAQCAtODE5LDkgKzgyNCwyOCBAQCB2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVu
dChUb3VjaEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIW1faXNBY2NlcHRpbmdUb3VjaEV2ZW50
cykKKyAgICBzd2l0Y2ggKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlKSB7CisgICAgY2FzZSBUb3Vj
aEV2ZW50UmVxdWVzdFR5cGVOb25lOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBUb3VjaEV2
ZW50UmVxdWVzdFR5cGVSYXc6IHsKKyAgICAgICAgV2ViVG91Y2hFdmVudEJ1aWxkZXIgd2ViRXZl
bnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOworICAgICAgICBpZiAod2Vi
RXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIFdlYkN1cnNvckluZm8gY3Vyc29ySW5mbzsKKyAgICAgICAgaWYgKG1fd2Vi
UGx1Z2luLT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50LCBjdXJzb3JJbmZvKSkKKyAgICAgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAvLyBGSVhNRTogQ2FuIGEg
cGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIFRvdWNoRXZlbnRSZXF1ZXN0VHlwZVN5bnRo
ZXNpemVkTW91c2U6CisgICAgICAgIHN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJsZShldmVu
dCk7CiAgICAgICAgIHJldHVybjsKLSAgICBXZWJUb3VjaEV2ZW50QnVpbGRlciB3ZWJFdmVudCh0
aGlzLCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CisgICAgfQorfQorCit2b2lkIFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChHZXN0dXJlRXZlbnQqIGV2
ZW50KQoreworICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVt
ZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVudC50eXBlID09IFdlYklu
cHV0RXZlbnQ6OlVuZGVmaW5lZCkKICAgICAgICAgcmV0dXJuOwogICAgIFdlYkN1cnNvckluZm8g
Y3Vyc29ySW5mbzsKQEAgLTgzMCwxNSArODU0LDE1IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTog
Q2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFj
az8KIH0KIAotdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQo
R2VzdHVyZUV2ZW50KiBldmVudCkKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3ludGhl
c2l6ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFRvdWNoRXZlbnQqIGV2ZW50KQogewotICAgIFdlYkdl
c3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAq
ZXZlbnQpOworICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVu
dC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKICAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1
dEV2ZW50OjpVbmRlZmluZWQpCiAgICAgICAgIHJldHVybjsKKwogICAgIFdlYkN1cnNvckluZm8g
Y3Vyc29ySW5mbzsKICAgICBpZiAobV93ZWJQbHVnaW4tPmhhbmRsZUlucHV0RXZlbnQod2ViRXZl
bnQsIGN1cnNvckluZm8pKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAg
ICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1l
dmVudCBjYWxsYmFjaz8KIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjYWxjdWxh
dGVHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggYjQ5NThmZTE5
NTU3MDJkMjRmN2MxMGNjNDMyNTQ0ZjA1YTc5MTYxOS4uODQ0NjM2ZTRhNTE3MjllNzVhNTY5NzQw
ZjQ3ZWY1MGI3M2ZmZGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RU
b3Btb3N0KGNvbnN0IFdlYlJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY2NlcHRpbmdU
b3VjaEV2ZW50cyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBl
KFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFdhbnRzV2hlZWxF
dmVudHMoYm9vbCk7CiAgICAgdmlydHVhbCBXZWJQb2ludCB3aW5kb3dUb0xvY2FsUG9pbnQoY29u
c3QgV2ViUG9pbnQmKTsKIApAQCAtMTc1LDYgKzE3Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBo
YW5kbGVUb3VjaEV2ZW50KFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZUdl
c3R1cmVFdmVudChXZWJDb3JlOjpHZXN0dXJlRXZlbnQqKTsKIAorICAgIHZvaWQgc3ludGhlc2l6
ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKKwogICAgIHZvaWQg
Y2FsY3VsYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0LApAQCAt
MjAxLDcgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gc2Nyb2xsYmFycy4KICAgICBPd25QdHI8
U2Nyb2xsYmFyR3JvdXA+IG1fc2Nyb2xsYmFyR3JvdXA7CiAKLSAgICBib29sIG1faXNBY2NlcHRp
bmdUb3VjaEV2ZW50czsKKyAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90b3VjaEV2ZW50UmVx
dWVzdFR5cGU7CiAgICAgYm9vbCBtX3dhbnRzV2hlZWxFdmVudHM7CiB9OwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDZkMWNjYjI3MThkZjE0
NTMyZDU4ODU0YWU3YmZiYjgzZGUyYmI1Yy4uNjY1NDhkNGFmNDdlNzIzOGQ4MjlmNGM4OWM4MGE2
ODA5NTJiYzFhNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTI2ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5
ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFsbG93IHBsdWdp
bnMgdG8gb3B0LWluIHRvIHJlY2VpdmUgc3ludGhldGljIG1vdXNlIGV2ZW50cyBvdXQgb2YgdG91
Y2ggZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIHRoZSB0ZXN0IHdlYi1wbHVnaW4gdG8gYmUgYWJsZSB0byBvcHQtaW4gdG8gcmVj
ZWl2ZSBzeW50aGVzaXplZCBtb3VzZSBldmVudHMgY3JlYXRlZAorICAgICAgICBmcm9tIHRvdWNo
IGV2ZW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwOgorICAgICAgICAocGFyc2VUb3VjaEV2ZW50UmVxdWVzdFR5cGUpOgorICAgICAgICAo
VGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbik6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpp
bml0aWFsaXplKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmg6CisgICAgICAgIChUZXN0V2ViUGx1Z2luKToKKwogMjAxMi0xMS0yMyAgTWF0ZXVzeiBM
ZXN6a28gIDxtLmxlc3prb0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtHVEtdIEFkYXB0
IGFjY2Vzc2liaWxpdHkgZmVhdHVyZSB0byBXZWJLaXRUZXN0UnVubmVyLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAppbmRleCAyOTYwZGMwYmRk
NjI2ZTdiMzkxNmExMjA2MDNjN2ZlN2I3ZDhiZTE1Li4yNjc0YWVhYWJhZjM5N2I3MGE0YTk4YzM4
ZjJjOGE1OGZiMTk2ZTMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0V2ViUGx1Z2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcApAQCAtMTE4LDEyICsxMTgsMjQgQEAgc3RhdGljIHZvaWQgcHJpbnRF
dmVudERldGFpbHMoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCkKICAgICB9CiB9
CiAKK3N0YXRpYyBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RU
eXBlIHBhcnNlVG91Y2hFdmVudFJlcXVlc3RUeXBlKGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKQor
eworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga1ByaW1pdGl2ZVRydWUgPSBXZWJTdHJpbmc6
OmZyb21VVEY4KCJ0cnVlIik7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJpbWl0aXZl
U3ludGhldGljID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgic3ludGhldGljIik7CisKKyAgICBpZiAo
c3RyaW5nID09IGtQcmltaXRpdmVUcnVlKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbHVn
aW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0UmF3OworICAgIGlmIChzdHJpbmcgPT0ga1By
aW1pdGl2ZVN5bnRoZXRpYykKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVyOjpUb3VjaEV2ZW50UmVxdWVzdFN5bnRoZXNpemVkTW91c2U7CisgICAgcmV0dXJuIFdlYktp
dDo6V2ViUGx1Z2luQ29udGFpbmVyOjpUb3VjaEV2ZW50UmVxdWVzdE5vbmU7Cit9CisKIFRlc3RX
ZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJiBwYXJh
bXMpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9jb250YWluZXIoMCkKICAgICAsIG1f
Y29udGV4dCgwKQotICAgICwgbV9hY2NlcHRzVG91Y2hFdmVudChmYWxzZSkKKyAgICAsIG1fdG91
Y2hFdmVudFJlcXVlc3QoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1
ZXN0Tm9uZSkKICAgICAsIG1fcHJpbnRFdmVudERldGFpbHMoZmFsc2UpCiAgICAgLCBtX2NhblBy
b2Nlc3NEcmFnKGZhbHNlKQogewpAQCAtMTUwLDcgKzE2Miw3IEBAIFRlc3RXZWJQbHVnaW46OlRl
c3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsCiAgICAgICAgIGVsc2UgaWYgKGF0
dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZU9wYWNpdHkpCiAgICAgICAgICAgICBtX3NjZW5lLm9w
YWNpdHkgPSBwYXJzZU9wYWNpdHkoYXR0cmlidXRlVmFsdWUpOwogICAgICAgICBlbHNlIGlmIChh
dHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVBY2NlcHRzVG91Y2gpCi0gICAgICAgICAgICBtX2Fj
Y2VwdHNUb3VjaEV2ZW50ID0gcGFyc2VCb29sZWFuKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAg
ICAgIG1fdG91Y2hFdmVudFJlcXVlc3QgPSBwYXJzZVRvdWNoRXZlbnRSZXF1ZXN0VHlwZShhdHRy
aWJ1dGVWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0
ZVByaW50RXZlbnREZXRhaWxzKQogICAgICAgICAgICAgbV9wcmludEV2ZW50RGV0YWlscyA9IHBh
cnNlQm9vbGVhbihhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5h
bWUgPT0ga0F0dHJpYnV0ZUNhblByb2Nlc3NEcmFnKQpAQCAtMTgzLDcgKzE5NSw3IEBAIGJvb2wg
VGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZShXZWJQbHVnaW5Db250YWluZXIqIGNvbnRhaW5lcikK
IAogICAgIG1fY29udGFpbmVyID0gY29udGFpbmVyOwogICAgIG1fY29udGFpbmVyLT5zZXRCYWNr
aW5nVGV4dHVyZUlkKG1fY29sb3JUZXh0dXJlKTsKLSAgICBtX2NvbnRhaW5lci0+c2V0SXNBY2Nl
cHRpbmdUb3VjaEV2ZW50cyhtX2FjY2VwdHNUb3VjaEV2ZW50KTsKKyAgICBtX2NvbnRhaW5lci0+
cmVxdWVzdFRvdWNoRXZlbnRUeXBlKG1fdG91Y2hFdmVudFJlcXVlc3QpOwogICAgIG1fY29udGFp
bmVyLT5zZXRXYW50c1doZWVsRXZlbnRzKHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCmluZGV4IDQ5ZmRl
ODVhYWRjMWUzMTM5MGM2ZjMwNjk2OWRkZGI4ZTJlYjExZDUuLmU2ZjViNDdhNGYyNzc4ZmEwOGU2
Y2UyY2ZjMWE3NmJlNTI5NDc4NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RXZWJQbHVnaW4uaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0V2ViUGx1Z2luLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgVGVzdFdlYlBsdWdp
bl9oCiAKICNpbmNsdWRlICJXZWJQbHVnaW4uaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWlu
ZXIuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewpAQCAtMTMxLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9mcmFtZWJ1ZmZl
cjsKICAgICBTY2VuZSBtX3NjZW5lOwogCi0gICAgYm9vbCBtX2FjY2VwdHNUb3VjaEV2ZW50Owor
ICAgIFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90
b3VjaEV2ZW50UmVxdWVzdDsKICAgICBib29sIG1fcHJpbnRFdmVudERldGFpbHM7CiAgICAgYm9v
bCBtX2NhblByb2Nlc3NEcmFnOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2ZjRhMjAxZmNhYjk0MTYyYzMwOGI5NTUx
ZTBiNTFiMGRiZWY3NmZiLi4wNDQyYzQyZTE5MDE3ZDE3YmI4ODFjZDY0NzAzNzg5MzYxZmFjN2Uz
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMTEtMjYgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1
cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1
Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0
b3VjaCBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDMwOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgdGVzdCBmb3Igc3ludGhlc2l6ZWQgbW91c2UgZXZlbnRzIGZyb20gdG91Y2guCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVz
aXplZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Bs
dWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLmh0bWw6IEFkZGVkLgorCiAyMDEyLTExLTIz
ICBNYXRldXN6IExlc3prbyAgPG0ubGVzemtvQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxd
W0dUS10gQWRhcHQgYWNjZXNzaWJpbGl0eSBmZWF0dXJlIHRvIFdlYktpdFRlc3RSdW5uZXIuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2
ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uM2I2MmZiMjBhNWY1ZDdmZTYxM2M3MGE3MzVkZmU2YjRkMzc0OGFkYgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZl
bnRzLXN5bnRoZXNpemVkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BsdWdpbiByZWNl
aXZlZCBldmVudDogTW91c2VEb3duCisqIDEwLCAxMAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBN
b3VzZU1vdmUKKyogMjAsIDE1CitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlVXAKKyogMjAs
IDE1CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMv
dG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQy
YTA1MzM0OTQ1MmYxZGYwZGM1NzhiMzQwZmFhZjg5MzBmMDAzOWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50
aGVzaXplZC5odG1sCkBAIC0wLDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisg
ICNwbHVnaW4geworICAgIHdpZHRoOiAxNTBweDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9Cis8
L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKzxlbWJlZCBpZD0idG91Y2hfcGx1Z2luIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0ic3lu
dGhldGljIiBwcmludC1ldmVudC1kZXRhaWxzPSJ0cnVlIj48L2VtYmVkPjxlbWJlZCBpZD0icGx1
Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiI+PC9lbWJlZD4K
KzxzY3JpcHQ+CisKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgZG9jdW1lbnQud3JpdGUoIlRoaXMgdGVzdCBkb2VzIG5vdCB3b3Jr
IGluIG1hbnVhbCBtb2RlLiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworCisgICAgICAgIHZhciBwb3NpdGlvblggPSBwbHVnaW4ub2Zmc2V0TGVmdCAr
IDEwOworICAgICAgICB2YXIgcG9zaXRpb25ZID0gcGx1Z2luLm9mZnNldFRvcCArIDEwOworICAg
ICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgICAgICBldmVudFNlbmRlci5yZWxl
YXNlVG91Y2hQb2ludCgwKTsKKyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAg
ICAgICBwb3NpdGlvblggPSB0b3VjaF9wbHVnaW4ub2Zmc2V0TGVmdCArIDEwOworICAgICAgICBw
b3NpdGlvblkgPSB0b3VjaF9wbHVnaW4ub2Zmc2V0VG9wICsgMTA7CisgICAgICAgIGV2ZW50U2Vu
ZGVyLmFkZFRvdWNoUG9pbnQocG9zaXRpb25YLCBwb3NpdGlvblkpOworICAgICAgICBldmVudFNl
bmRlci50b3VjaFN0YXJ0KCk7CisgICAgICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQo
MCwgcG9zaXRpb25YICsgMTAsIHBvc2l0aW9uWSArIDUpOworICAgICAgICBldmVudFNlbmRlci50
b3VjaE1vdmUoKTsKKyAgICAgICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoRW5kKCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176057</attachid>
            <date>2012-11-26 13:56:44 -0800</date>
            <delta_ts>2012-11-27 10:42:24 -0800</delta_ts>
            <desc>Build fix!</desc>
            <filename>bug-103092-20121126165422.patch</filename>
            <type>text/plain</type>
            <size>18325</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NjIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGQxY2Y1ZTBmOGUzMmQ1MTlmNzRiZTg0NDkyMjVmZTU4ZjNmOTc4N2QuLmZiOWMwNGIyY2ZlOWFl
ZDRhN2U0NDc5MDdlZmIzOGQzYjEwOGU3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjYgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBs
dWdpbiBjYW4gbm93IHJlcXVlc3QgdG8gcmVjZWl2ZSByYXcgdG91Y2ggZXZlbnRzLCBvciB0byBy
ZWNlaXZlIG1vdXNlIGV2ZW50cyBzeW50aGVzaXplZAorICAgICAgICBmcm9tIHRoZSB0b3VjaCBl
dmVudHMsIG9yIHRvIG5vdCByZWNlaXZlIGFueSB0b3VjaCBldmVudHMgYXQgYWxsLgorCisgICAg
ICAgICogcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViUGx1Z2luQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmg6CisgICAgICAgIChXZWJNb3VzZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3Vj
aEV2ZW50VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAy
MDEyLTExLTIzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQuIEZpeCBDaHJvbWl1bSBXaW4gY29tcGlsYXRpb24gYWZ0ZXIgcjEzNTU4
MC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNv
bnRhaW5lci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFp
bmVyLmgKaW5kZXggMTIyOTAxNGRhYjc1NWNkMzMzZDJlMTQ5ZTU1OGQyMTQ5OWJlN2QyYS4uYWFk
NjMxZjY3NjI0MDUxNmRkZjNkMzk1MDU4NTNjYjk2MGEwMzIyZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKQEAgLTQ3LDYgKzQ3
LDEyIEBAIHN0cnVjdCBXZWJSZWN0OwogCiBjbGFzcyBXZWJQbHVnaW5Db250YWluZXIgewogcHVi
bGljOgorICAgIGVudW0gVG91Y2hFdmVudFJlcXVlc3RUeXBlIHsKKyAgICAgICAgVG91Y2hFdmVu
dFJlcXVlc3RUeXBlTm9uZSwKKyAgICAgICAgVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3LAorICAg
ICAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGVTeW50aGVzaXplZE1vdXNlLAorICAgIH07CisKICAg
ICAvLyBSZXR1cm5zIHRoZSBlbGVtZW50IGNvbnRhaW5pbmcgdGhpcyBwbHVnaW4uCiAgICAgdmly
dHVhbCBXZWJFbGVtZW50IGVsZW1lbnQoKSA9IDA7CiAKQEAgLTExMSw5ICsxMTcsMTIgQEAgcHVi
bGljOgogICAgIC8vIGNvbnRlbnQuIFRoZSByZWN0YW5nbGUgaXMgaW4gdGhlIHBsdWdpbidzIGNv
b3JkaW5hdGUgc3lzdGVtLgogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RUb3Btb3N0KGNvbnN0IFdl
YlJlY3QmKSA9IDA7CiAKLSAgICAvLyBOb3RpZmllcyB3aGVuIHRoZSBwbHVnaW4gc3RhcnRzL3N0
b3BzIGFjY2VwdGluZyB0b3VjaCBldmVudHMuCisgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1
Z2luIHN0YXJ0cy9zdG9wcyBhY2NlcHRpbmcgdG91Y2ggZXZlbnRzLiBUaGlzIGlzIGRlcHJlY2F0
ZWQsIHVzZSByZXF1ZXN0VG91Y2hFdmVudFR5cGUgaW5zdGVhZC4KICAgICB2aXJ0dWFsIHZvaWQg
c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAKKyAgICAvLyBOb3RpZmllcyB3
aGVuIHRoZSBwbHVnaW4gY2hhbmdlcyB0aGUga2luZCBvZiB0b3VjaC1ldmVudHMgaXQgYWNjZXB0
cy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKFRvdWNoRXZlbnRSZXF1
ZXN0VHlwZSkgPSAwOworCiAgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIHN0YXJ0cy9z
dG9wcyBhY2NlcHRpbmcgd2hlZWwgZXZlbnRzLiBXaXRob3V0CiAgICAgLy8gY2FsbGluZyB0aGUg
ZnVuY3Rpb24gd2l0aCB0cnVlLCB0aGUgY29udGFpbmVyIG1pZ2h0IG5vdCBhbHdheXMgYWJsZSB0
bwogICAgIC8vIHJlY2VpdmUgd2hlZWwgZXZlbnRzIGluIHNvbWUgY2FzZXMgKHN1Y2ggYXMgd2hl
biB0aHJlYWRlZCBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDVjZjI0ZDBjMWFhMzdlZWE2
ZjM4MmIwYjI5MTAzZjc1OTZiMmUzOWUuLmRjZGU0MGYzMjBkNzI1MzJhMzQwZjIxMjJhZTllMmU2
OThiYWNhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0
RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTQwNyw3ICs0MDcsNyBAQCBzdGF0aWMgSW50UG9p
bnQgY29udmVydExvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50JiBsb2Nh
dGlvbiwgY29ucwogICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyT2JqZWN0LmFic29s
dXRlVG9Mb2NhbChsb2NhdGlvbiwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JUcmFuc2Zv
cm1zKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1v
dXNlRXZlbnQoY29uc3QgTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lkZ2V0LCBj
b25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VFdmVudCYg
d2ViRXZlbnQpCitzdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3Vz
ZUV2ZW50KGNvbnN0IE1vdXNlUmVsYXRlZEV2ZW50JiBldmVudCwgY29uc3QgV2lkZ2V0JiB3aWRn
ZXQsIGNvbnN0IFdlYkNvcmU6OlJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBXZWJNb3VzZUV2
ZW50JiB3ZWJFdmVudCkKIHsKICAgICB3ZWJFdmVudC50aW1lU3RhbXBTZWNvbmRzID0gZXZlbnQu
dGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7CiAgICAgd2ViRXZlbnQubW9kaWZpZXJzID0g
Z2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwpAQCAtNDczLDYgKzQ3MywzNyBAQCBXZWJNb3Vz
ZUV2ZW50QnVpbGRlcjo6V2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3aWRnZXQs
IGNvbnN0IFdlYkNvcmU6OgogICAgIGNsaWNrQ291bnQgPSBldmVudC5kZXRhaWwoKTsKIH0KIAor
V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdldCog
d2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwgY29uc3Qg
VG91Y2hFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVuZ3RoKCkg
IT0gMSkgeworICAgICAgICBpZiAoZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSB8fCBldmVudC50
eXBlKCkgIT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQgfHwgZXZlbnQuY2hhbmdlZFRvdWNo
ZXMoKS0+bGVuZ3RoKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBj
b25zdCBUb3VjaCogdG91Y2ggPSBldmVudC50b3VjaGVzKCktPmxlbmd0aCgpID09IDEgPyBldmVu
dC50b3VjaGVzKCktPml0ZW0oMCkgOiBldmVudC5jaGFuZ2VkVG91Y2hlcygpLT5pdGVtKDApOwor
ICAgIGlmICh0b3VjaC0+aWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
ZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQpCisgICAgICAgIHR5
cGUgPSBNb3VzZURvd247CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMo
KS50b3VjaG1vdmVFdmVudCkKKyAgICAgICAgdHlwZSA9IE1vdXNlTW92ZTsKKyAgICBlbHNlIGlm
IChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQpCisgICAgICAgIHR5
cGUgPSBNb3VzZVVwOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBkYXRlV2Vi
TW91c2VFdmVudEZyb21XZWJDb3JlTW91c2VFdmVudChldmVudCwgKndpZGdldCwgKnJlbmRlck9i
amVjdCwgKnRoaXMpOworCisgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9uTGVmdDsK
KyAgICBtb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6TGVmdEJ1dHRvbkRvd247CisgICAgY2xp
Y2tDb3VudCA9ICh0eXBlID09IE1vdXNlRG93biB8fCB0eXBlID09IE1vdXNlVXApOworCisgICAg
SW50UG9pbnQgbG9jYWxQb2ludCA9IGNvbnZlcnRMb2NhdGlvbkZvclJlbmRlck9iamVjdChMYXlv
dXRQb2ludCh0b3VjaC0+cGFnZVgoKSwgdG91Y2gtPnBhZ2VZKCkpLCAqcmVuZGVyT2JqZWN0KTsK
KyAgICB4ID0gbG9jYWxQb2ludC54KCk7CisgICAgeSA9IGxvY2FsUG9pbnQueSgpOworfQorCiBX
ZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVyOjpXZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVyKGNvbnN0
IFdpZGdldCogd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVj
dCwgY29uc3QgV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBl
dmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKaW5kZXggMzUxMjY0NmViM2QyYzUy
YjFlYTFhYzc5ZDdhNTg4NDJjOGY1YzYwNC4uMTgxZDFlNWMyMjRmZWQzZTc1OGJjNDQ1ZTg2M2Zh
Y2ExMGY5MDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSW5w
dXRFdmVudENvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJ
bnB1dEV2ZW50Q29udmVyc2lvbi5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogY2xhc3Mg
V2ViTW91c2VFdmVudEJ1aWxkZXIgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CiBwdWJsaWM6CiAg
ICAgV2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lkZ2V0KiwgY29uc3QgV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0KiwgY29uc3QgV2ViQ29yZTo6TW91c2VFdmVudCYpOworICAgIFdl
Yk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdlYkNvcmU6
OlJlbmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6OlRvdWNoRXZlbnQmKTsKIH07CiAKIC8vIENv
bnZlcnRzIGEgV2ViQ29yZTo6V2hlZWxFdmVudCB0byBhIGNvcnJlc3BvbmRpbmcgV2ViTW91c2VX
aGVlbEV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1
Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAppbmRleCAwNzVmYzA1NDg2ZDQ1OWMwY2RhOWFlYzQwNDJlZDVh
ZDk3ZDYxZTM3Li4xMDU5ZGY3NDg3MDJiM2U3OWMzMWRmZWQwYjY1ZmU4NjczNGM0ZDQ1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJ
bXBsLmNwcApAQCAtNTIzLDEwICs1MjMsMTUgQEAgYm9vbCBXZWJQbHVnaW5Db250YWluZXJJbXBs
Ojppc1JlY3RUb3Btb3N0KGNvbnN0IFdlYlJlY3QmIHJlY3QpCiAKIHZvaWQgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbDo6c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sIGFjY2VwdGluZ1RvdWNo
RXZlbnRzKQogewotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPT0gYWNjZXB0aW5n
VG91Y2hFdmVudHMpCisgICAgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKGFjY2VwdGluZ1RvdWNoRXZl
bnRzID8gVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3IDogVG91Y2hFdmVudFJlcXVlc3RUeXBlTm9u
ZSk7Cit9CisKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cmVxdWVzdFRvdWNoRXZlbnRU
eXBlKFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSkKK3sKKyAgICBpZiAobV90b3Vj
aEV2ZW50UmVxdWVzdFR5cGUgPT0gcmVxdWVzdFR5cGUpCiAgICAgICAgIHJldHVybjsKLSAgICBt
X2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPSBhY2NlcHRpbmdUb3VjaEV2ZW50czsKLSAgICBpZiAo
bV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlID0g
cmVxdWVzdFR5cGU7CisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRvdWNoRXZl
bnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkQWRk
VG91Y2hFdmVudEhhbmRsZXIoKTsKICAgICBlbHNlCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1l
bnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKQEAgLTY2Nyw3ICs2NzIsNyBAQCBX
ZWJQbHVnaW5Db250YWluZXJJbXBsOjpXZWJQbHVnaW5Db250YWluZXJJbXBsKFdlYkNvcmU6OkhU
TUxQbHVnSW5FbGVtZW50KiBlbGVtZQogICAgICwgbV90ZXh0dXJlSWQoMCkKICAgICAsIG1faW9T
dXJmYWNlSWQoMCkKICNlbmRpZgotICAgICwgbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKGZhbHNl
KQorICAgICwgbV90b3VjaEV2ZW50UmVxdWVzdFR5cGUoVG91Y2hFdmVudFJlcXVlc3RUeXBlTm9u
ZSkKICAgICAsIG1fd2FudHNXaGVlbEV2ZW50cyhmYWxzZSkKIHsKIH0KQEAgLTY4MSw3ICs2ODYs
NyBAQCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCgpCiAg
ICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9p
b1N1cmZhY2VMYXllci0+bGF5ZXIoKSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2lzQWNjZXB0aW5n
VG91Y2hFdmVudHMpCisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRvdWNoRXZl
bnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZGlkUmVt
b3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9w
bHVnaW5Mb2FkT2JzZXJ2ZXJzLnNpemUoKTsgKytpKQpAQCAtODE5LDkgKzgyNCwyOCBAQCB2b2lk
IFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpCiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVu
dChUb3VjaEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIW1faXNBY2NlcHRpbmdUb3VjaEV2ZW50
cykKKyAgICBzd2l0Y2ggKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlKSB7CisgICAgY2FzZSBUb3Vj
aEV2ZW50UmVxdWVzdFR5cGVOb25lOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBUb3VjaEV2
ZW50UmVxdWVzdFR5cGVSYXc6IHsKKyAgICAgICAgV2ViVG91Y2hFdmVudEJ1aWxkZXIgd2ViRXZl
bnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOworICAgICAgICBpZiAod2Vi
RXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCisgICAgICAgICAgICByZXR1
cm47CisgICAgICAgIFdlYkN1cnNvckluZm8gY3Vyc29ySW5mbzsKKyAgICAgICAgaWYgKG1fd2Vi
UGx1Z2luLT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50LCBjdXJzb3JJbmZvKSkKKyAgICAgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAvLyBGSVhNRTogQ2FuIGEg
cGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFjaz8KKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIFRvdWNoRXZlbnRSZXF1ZXN0VHlwZVN5bnRo
ZXNpemVkTW91c2U6CisgICAgICAgIHN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJsZShldmVu
dCk7CiAgICAgICAgIHJldHVybjsKLSAgICBXZWJUb3VjaEV2ZW50QnVpbGRlciB3ZWJFdmVudCh0
aGlzLCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CisgICAgfQorfQorCit2b2lkIFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChHZXN0dXJlRXZlbnQqIGV2
ZW50KQoreworICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVt
ZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVudC50eXBlID09IFdlYklu
cHV0RXZlbnQ6OlVuZGVmaW5lZCkKICAgICAgICAgcmV0dXJuOwogICAgIFdlYkN1cnNvckluZm8g
Y3Vyc29ySW5mbzsKQEAgLTgzMCwxNSArODU0LDE1IEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVy
SW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBGSVhNRTog
Q2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFj
az8KIH0KIAotdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQo
R2VzdHVyZUV2ZW50KiBldmVudCkKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6c3ludGhl
c2l6ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFRvdWNoRXZlbnQqIGV2ZW50KQogewotICAgIFdlYkdl
c3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAq
ZXZlbnQpOworICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVu
dC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKICAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1
dEV2ZW50OjpVbmRlZmluZWQpCiAgICAgICAgIHJldHVybjsKKwogICAgIFdlYkN1cnNvckluZm8g
Y3Vyc29ySW5mbzsKICAgICBpZiAobV93ZWJQbHVnaW4tPmhhbmRsZUlucHV0RXZlbnQod2ViRXZl
bnQsIGN1cnNvckluZm8pKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKLSAg
ICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1l
dmVudCBjYWxsYmFjaz8KIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpjYWxjdWxh
dGVHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggYjQ5NThmZTE5
NTU3MDJkMjRmN2MxMGNjNDMyNTQ0ZjA1YTc5MTYxOS4uODQ0NjM2ZTRhNTE3MjllNzVhNTY5NzQw
ZjQ3ZWY1MGI3M2ZmZGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RU
b3Btb3N0KGNvbnN0IFdlYlJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY2NlcHRpbmdU
b3VjaEV2ZW50cyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBl
KFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFdhbnRzV2hlZWxF
dmVudHMoYm9vbCk7CiAgICAgdmlydHVhbCBXZWJQb2ludCB3aW5kb3dUb0xvY2FsUG9pbnQoY29u
c3QgV2ViUG9pbnQmKTsKIApAQCAtMTc1LDYgKzE3Niw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBo
YW5kbGVUb3VjaEV2ZW50KFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKICAgICB2b2lkIGhhbmRsZUdl
c3R1cmVFdmVudChXZWJDb3JlOjpHZXN0dXJlRXZlbnQqKTsKIAorICAgIHZvaWQgc3ludGhlc2l6
ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKKwogICAgIHZvaWQg
Y2FsY3VsYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVjdCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0LApAQCAt
MjAxLDcgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gc2Nyb2xsYmFycy4KICAgICBPd25QdHI8
U2Nyb2xsYmFyR3JvdXA+IG1fc2Nyb2xsYmFyR3JvdXA7CiAKLSAgICBib29sIG1faXNBY2NlcHRp
bmdUb3VjaEV2ZW50czsKKyAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90b3VjaEV2ZW50UmVx
dWVzdFR5cGU7CiAgICAgYm9vbCBtX3dhbnRzV2hlZWxFdmVudHM7CiB9OwogCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDZkMWNjYjI3MThkZjE0
NTMyZDU4ODU0YWU3YmZiYjgzZGUyYmI1Yy4uNjY1NDhkNGFmNDdlNzIzOGQ4MjlmNGM4OWM4MGE2
ODA5NTJiYzFhNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTI2ICBTYWRydWwgSGFiaWIgQ2hvd2RodXJ5
ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFsbG93IHBsdWdp
bnMgdG8gb3B0LWluIHRvIHJlY2VpdmUgc3ludGhldGljIG1vdXNlIGV2ZW50cyBvdXQgb2YgdG91
Y2ggZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAzMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlIHRoZSB0ZXN0IHdlYi1wbHVnaW4gdG8gYmUgYWJsZSB0byBvcHQtaW4gdG8gcmVj
ZWl2ZSBzeW50aGVzaXplZCBtb3VzZSBldmVudHMgY3JlYXRlZAorICAgICAgICBmcm9tIHRvdWNo
IGV2ZW50cy4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uY3BwOgorICAgICAgICAocGFyc2VUb3VjaEV2ZW50UmVxdWVzdFR5cGUpOgorICAgICAgICAo
VGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbik6CisgICAgICAgIChUZXN0V2ViUGx1Z2luOjpp
bml0aWFsaXplKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmg6CisgICAgICAgIChUZXN0V2ViUGx1Z2luKToKKwogMjAxMi0xMS0yMyAgTWF0ZXVzeiBM
ZXN6a28gIDxtLmxlc3prb0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXVtHVEtdIEFkYXB0
IGFjY2Vzc2liaWxpdHkgZmVhdHVyZSB0byBXZWJLaXRUZXN0UnVubmVyLgpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAppbmRleCAyOTYwZGMwYmRk
NjI2ZTdiMzkxNmExMjA2MDNjN2ZlN2I3ZDhiZTE1Li4zM2E1OTllYzFiODVmZTcwNDAyYTJkMWZl
MzA2ZmZmNzJlOTA2MzJmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0V2ViUGx1Z2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcApAQCAtMTE4LDEyICsxMTgsMjQgQEAgc3RhdGljIHZvaWQgcHJpbnRF
dmVudERldGFpbHMoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCkKICAgICB9CiB9
CiAKK3N0YXRpYyBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RU
eXBlIHBhcnNlVG91Y2hFdmVudFJlcXVlc3RUeXBlKGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKQor
eworICAgIHN0YXRpYyBjb25zdCBXZWJTdHJpbmcga1ByaW1pdGl2ZVRydWUgPSBXZWJTdHJpbmc6
OmZyb21VVEY4KCJ0cnVlIik7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJpbWl0aXZl
U3ludGhldGljID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgic3ludGhldGljIik7CisKKyAgICBpZiAo
c3RyaW5nID09IGtQcmltaXRpdmVUcnVlKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbHVn
aW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0VHlwZVJhdzsKKyAgICBpZiAoc3RyaW5nID09
IGtQcmltaXRpdmVTeW50aGV0aWMpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlU3ludGhlc2l6ZWRNb3VzZTsKKyAgICByZXR1
cm4gV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRvdWNoRXZlbnRSZXF1ZXN0VHlwZU5vbmU7
Cit9CisKIFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJh
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2lu
UGFyYW1zJiBwYXJhbXMpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQogICAgICwgbV9jb250YWluZXIo
MCkKICAgICAsIG1fY29udGV4dCgwKQotICAgICwgbV9hY2NlcHRzVG91Y2hFdmVudChmYWxzZSkK
KyAgICAsIG1fdG91Y2hFdmVudFJlcXVlc3QoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXI6OlRv
dWNoRXZlbnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgLCBtX3ByaW50RXZlbnREZXRhaWxzKGZhbHNl
KQogICAgICwgbV9jYW5Qcm9jZXNzRHJhZyhmYWxzZSkKIHsKQEAgLTE1MCw3ICsxNjIsNyBAQCBU
ZXN0V2ViUGx1Z2luOjpUZXN0V2ViUGx1Z2luKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLAogICAg
ICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVPcGFjaXR5KQogICAgICAg
ICAgICAgbV9zY2VuZS5vcGFjaXR5ID0gcGFyc2VPcGFjaXR5KGF0dHJpYnV0ZVZhbHVlKTsKICAg
ICAgICAgZWxzZSBpZiAoYXR0cmlidXRlTmFtZSA9PSBrQXR0cmlidXRlQWNjZXB0c1RvdWNoKQot
ICAgICAgICAgICAgbV9hY2NlcHRzVG91Y2hFdmVudCA9IHBhcnNlQm9vbGVhbihhdHRyaWJ1dGVW
YWx1ZSk7CisgICAgICAgICAgICBtX3RvdWNoRXZlbnRSZXF1ZXN0ID0gcGFyc2VUb3VjaEV2ZW50
UmVxdWVzdFR5cGUoYXR0cmlidXRlVmFsdWUpOwogICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVO
YW1lID09IGtBdHRyaWJ1dGVQcmludEV2ZW50RGV0YWlscykKICAgICAgICAgICAgIG1fcHJpbnRF
dmVudERldGFpbHMgPSBwYXJzZUJvb2xlYW4oYXR0cmlidXRlVmFsdWUpOwogICAgICAgICBlbHNl
IGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVDYW5Qcm9jZXNzRHJhZykKQEAgLTE4Myw3
ICsxOTUsNyBAQCBib29sIFRlc3RXZWJQbHVnaW46OmluaXRpYWxpemUoV2ViUGx1Z2luQ29udGFp
bmVyKiBjb250YWluZXIpCiAKICAgICBtX2NvbnRhaW5lciA9IGNvbnRhaW5lcjsKICAgICBtX2Nv
bnRhaW5lci0+c2V0QmFja2luZ1RleHR1cmVJZChtX2NvbG9yVGV4dHVyZSk7Ci0gICAgbV9jb250
YWluZXItPnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMobV9hY2NlcHRzVG91Y2hFdmVudCk7Cisg
ICAgbV9jb250YWluZXItPnJlcXVlc3RUb3VjaEV2ZW50VHlwZShtX3RvdWNoRXZlbnRSZXF1ZXN0
KTsKICAgICBtX2NvbnRhaW5lci0+c2V0V2FudHNXaGVlbEV2ZW50cyh0cnVlKTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RXZWJQbHVnaW4uaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVn
aW4uaAppbmRleCA0OWZkZTg1YWFkYzFlMzEzOTBjNmYzMDY5NjlkZGRiOGUyZWIxMWQ1Li5lNmY1
YjQ3YTRmMjc3OGZhMDhlNmNlMmNmYzFhNzZiZTUyOTQ3ODc5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIFRlc3RXZWJQbHVnaW5faAogCiAjaW5jbHVkZSAiV2ViUGx1Z2luLmgiCisjaW5jbHVkZSAi
V2ViUGx1Z2luQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViUmVjdC5oIgogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKQEAgLTEzMSw3ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fZnJhbWVidWZmZXI7CiAgICAgU2NlbmUgbV9zY2VuZTsKIAotICAgIGJvb2wgbV9hY2Nl
cHRzVG91Y2hFdmVudDsKKyAgICBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVu
dFJlcXVlc3RUeXBlIG1fdG91Y2hFdmVudFJlcXVlc3Q7CiAgICAgYm9vbCBtX3ByaW50RXZlbnRE
ZXRhaWxzOwogICAgIGJvb2wgbV9jYW5Qcm9jZXNzRHJhZzsKIH07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmY0YTIwMWZj
YWI5NDE2MmMzMDhiOTU1MWUwYjUxYjBkYmVmNzZmYi4uMDQ0MmM0MmUxOTAxN2QxN2JiODgxY2Q2
NDcwMzc4OTM2MWZhYzdlMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTI2ICBTYWRy
dWwgSGFiaWIgQ2hvd2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIEFsbG93IHBsdWdpbnMgdG8gb3B0LWluIHRvIHJlY2VpdmUgc3ludGhldGljIG1vdXNl
IGV2ZW50cyBvdXQgb2YgdG91Y2ggZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgZm9yIHN5bnRoZXNpemVkIG1vdXNlIGV2ZW50
cyBmcm9tIHRvdWNoLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3Vj
aC1ldmVudHMtc3ludGhlc2l6ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sOiBBZGRl
ZC4KKwogMjAxMi0xMS0yMyAgTWF0ZXVzeiBMZXN6a28gIDxtLmxlc3prb0BzYW1zdW5nLmNvbT4K
IAogICAgICAgICBbRUZMXVtHVEtdIEFkYXB0IGFjY2Vzc2liaWxpdHkgZmVhdHVyZSB0byBXZWJL
aXRUZXN0UnVubmVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
cGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjJmYjIwYTVmNWQ3ZmU2MTNjNzBhNzM1ZGZlNmI0ZDM3
NDhhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9w
bHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3
IEBACitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRG93bgorKiAxMCwgMTAKK1BsdWdpbiBy
ZWNlaXZlZCBldmVudDogTW91c2VNb3ZlCisqIDIwLCAxNQorUGx1Z2luIHJlY2VpdmVkIGV2ZW50
OiBNb3VzZVVwCisqIDIwLCAxNQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMmEwNTMzNDk0NTJmMWRmMGRjNTc4YjM0MGZhYWY4OTMwZjAwMzlkCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90
b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7CisgICAgaGVpZ2h0
OiAxNTBweDsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZW1iZWQgaWQ9InRv
dWNoX3BsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iIGFj
Y2VwdHMtdG91Y2g9InN5bnRoZXRpYyIgcHJpbnQtZXZlbnQtZGV0YWlscz0idHJ1ZSI+PC9lbWJl
ZD48ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJw
bHVnaW4iPjwvZW1iZWQ+Cis8c2NyaXB0PgorCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8
fCAhd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlzIHRl
c3QgZG9lcyBub3Qgd29yayBpbiBtYW51YWwgbW9kZS4iKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICB2YXIgcG9zaXRpb25YID0gcGx1
Z2luLm9mZnNldExlZnQgKyAxMDsKKyAgICAgICAgdmFyIHBvc2l0aW9uWSA9IHBsdWdpbi5vZmZz
ZXRUb3AgKyAxMDsKKyAgICAgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludChwb3NpdGlvblgs
IHBvc2l0aW9uWSk7CisgICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICAgICAg
ZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgICAgIGV2ZW50U2VuZGVyLnRv
dWNoRW5kKCk7CisKKyAgICAgICAgcG9zaXRpb25YID0gdG91Y2hfcGx1Z2luLm9mZnNldExlZnQg
KyAxMDsKKyAgICAgICAgcG9zaXRpb25ZID0gdG91Y2hfcGx1Z2luLm9mZnNldFRvcCArIDEwOwor
ICAgICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgICAgICBldmVudFNlbmRlci51
cGRhdGVUb3VjaFBvaW50KDAsIHBvc2l0aW9uWCArIDEwLCBwb3NpdGlvblkgKyA1KTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLnJlbGVhc2VU
b3VjaFBvaW50KDApOworICAgICAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworICAgIH0KKwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="191732"
          type_id="1"
          status="+"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176295</attachid>
            <date>2012-11-27 10:38:45 -0800</date>
            <delta_ts>2012-11-27 12:02:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103092-20121127133621.patch</filename>
            <type>text/plain</type>
            <size>20852</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNlYmQ5N2NkNTk4ZTlkOGJhYzIxYTY4NmY1ZGE3NjI4ZThkYTE4YTkuLjFhZmNmNDc0ODIyZTA5
YzhkNzk4Mjg4NjgyODgxODgyNTcwMGI3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjcgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIHBs
dWdpbiBjYW4gbm93IHJlcXVlc3QgdG8gcmVjZWl2ZSByYXcgdG91Y2ggZXZlbnRzLCBvciB0byBy
ZWNlaXZlIG1vdXNlIGV2ZW50cyBzeW50aGVzaXplZAorICAgICAgICBmcm9tIHRoZSB0b3VjaCBl
dmVudHMsIG9yIHRvIG5vdCByZWNlaXZlIGFueSB0b3VjaCBldmVudHMgYXQgYWxsLgorCisgICAg
ICAgICogcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oOgorICAgICAgICAoV2ViUGx1Z2luQ29u
dGFpbmVyKToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0Ojp1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNvcmVNb3VzZUV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYklucHV0RXZlbnRDb252
ZXJzaW9uLmg6CisgICAgICAgIChXZWJNb3VzZUV2ZW50QnVpbGRlcik6CisgICAgICAgICogc3Jj
L1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5D
b250YWluZXJJbXBsOjpzZXRJc0FjY2VwdGluZ1RvdWNoRXZlbnRzKToKKyAgICAgICAgKFdlYktp
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RUb3Vj
aEV2ZW50VHlwZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6Oldl
YlBsdWdpbkNvbnRhaW5lckltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgICogc3JjL1dlYlBsdWdp
bkNvbnRhaW5lckltcGwuaDoKKyAgICAgICAgKFdlYlBsdWdpbkNvbnRhaW5lckltcGwpOgorCiAy
MDEyLTExLTI2ICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtj
aHJvbWl1bV0gTWFrZSB1c2VfZGVmYXVsdF9yZW5kZXJfdGhlbWUgY29tcGlsZSB0aGUgcmlnaHQg
c2V0IG9mIGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJQbHVnaW5Db250YWluZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBs
dWdpbkNvbnRhaW5lci5oCmluZGV4IDEyMjkwMTRkYWI3NTVjZDMzM2QyZTE0OWU1NThkMjE0OTli
ZTdkMmEuLmFhZDYzMWY2NzYyNDA1MTZkZGYzZDM5NTA1ODUzY2I5NjBhMDMyMmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBsdWdpbkNvbnRhaW5lci5oCkBA
IC00Nyw2ICs0NywxMiBAQCBzdHJ1Y3QgV2ViUmVjdDsKIAogY2xhc3MgV2ViUGx1Z2luQ29udGFp
bmVyIHsKIHB1YmxpYzoKKyAgICBlbnVtIFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSB7CisgICAgICAg
IFRvdWNoRXZlbnRSZXF1ZXN0VHlwZU5vbmUsCisgICAgICAgIFRvdWNoRXZlbnRSZXF1ZXN0VHlw
ZVJhdywKKyAgICAgICAgVG91Y2hFdmVudFJlcXVlc3RUeXBlU3ludGhlc2l6ZWRNb3VzZSwKKyAg
ICB9OworCiAgICAgLy8gUmV0dXJucyB0aGUgZWxlbWVudCBjb250YWluaW5nIHRoaXMgcGx1Z2lu
LgogICAgIHZpcnR1YWwgV2ViRWxlbWVudCBlbGVtZW50KCkgPSAwOwogCkBAIC0xMTEsOSArMTE3
LDEyIEBAIHB1YmxpYzoKICAgICAvLyBjb250ZW50LiBUaGUgcmVjdGFuZ2xlIGlzIGluIHRoZSBw
bHVnaW4ncyBjb29yZGluYXRlIHN5c3RlbS4KICAgICB2aXJ0dWFsIGJvb2wgaXNSZWN0VG9wbW9z
dChjb25zdCBXZWJSZWN0JikgPSAwOwogCi0gICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2lu
IHN0YXJ0cy9zdG9wcyBhY2NlcHRpbmcgdG91Y2ggZXZlbnRzLgorICAgIC8vIE5vdGlmaWVzIHdo
ZW4gdGhlIHBsdWdpbiBzdGFydHMvc3RvcHMgYWNjZXB0aW5nIHRvdWNoIGV2ZW50cy4gVGhpcyBp
cyBkZXByZWNhdGVkLCB1c2UgcmVxdWVzdFRvdWNoRXZlbnRUeXBlIGluc3RlYWQuCiAgICAgdmly
dHVhbCB2b2lkIHNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCkgPSAwOwogCisgICAgLy8g
Tm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIGNoYW5nZXMgdGhlIGtpbmQgb2YgdG91Y2gtZXZlbnRz
IGl0IGFjY2VwdHMuCisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShUb3Vj
aEV2ZW50UmVxdWVzdFR5cGUpID0gMDsKKwogICAgIC8vIE5vdGlmaWVzIHdoZW4gdGhlIHBsdWdp
biBzdGFydHMvc3RvcHMgYWNjZXB0aW5nIHdoZWVsIGV2ZW50cy4gV2l0aG91dAogICAgIC8vIGNh
bGxpbmcgdGhlIGZ1bmN0aW9uIHdpdGggdHJ1ZSwgdGhlIGNvbnRhaW5lciBtaWdodCBub3QgYWx3
YXlzIGFibGUgdG8KICAgICAvLyByZWNlaXZlIHdoZWVsIGV2ZW50cyBpbiBzb21lIGNhc2VzIChz
dWNoIGFzIHdoZW4gdGhyZWFkZWQgY29tcG9zaXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAppbmRleCA1Y2YyNGQw
YzFhYTM3ZWVhNmYzODJiMGIyOTEwM2Y3NTk2YjJlMzllLi5kY2RlNDBmMzIwZDcyNTMyYTM0MGYy
MTIyYWU5ZTJlNjk4YmFjYTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCkBAIC00MDcsNyArNDA3LDcgQEAgc3Rh
dGljIEludFBvaW50IGNvbnZlcnRMb2NhdGlvbkZvclJlbmRlck9iamVjdChjb25zdCBMYXlvdXRQ
b2ludCYgbG9jYXRpb24sIGNvbnMKICAgICByZXR1cm4gcm91bmRlZEludFBvaW50KHJlbmRlck9i
amVjdC5hYnNvbHV0ZVRvTG9jYWwobG9jYXRpb24sIFVzZVRyYW5zZm9ybXMgfCBTbmFwT2Zmc2V0
Rm9yVHJhbnNmb3JtcykpOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJv
bVdlYkNvcmVNb3VzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnQmIGV2ZW50LCBjb25zdCBXaWRnZXQm
IHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0JiByZW5kZXJPYmplY3QsIFdlYk1v
dXNlRXZlbnQmIHdlYkV2ZW50KQorc3RhdGljIHZvaWQgdXBkYXRlV2ViTW91c2VFdmVudEZyb21X
ZWJDb3JlTW91c2VFdmVudChjb25zdCBNb3VzZVJlbGF0ZWRFdmVudCYgZXZlbnQsIGNvbnN0IFdp
ZGdldCYgd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwg
V2ViTW91c2VFdmVudCYgd2ViRXZlbnQpCiB7CiAgICAgd2ViRXZlbnQudGltZVN0YW1wU2Vjb25k
cyA9IGV2ZW50LnRpbWVTdGFtcCgpIC8gbWlsbGlzUGVyU2Vjb25kOwogICAgIHdlYkV2ZW50Lm1v
ZGlmaWVycyA9IGdldFdlYklucHV0TW9kaWZpZXJzKGV2ZW50KTsKQEAgLTQ3Myw2ICs0NzMsMzcg
QEAgV2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdpZGdl
dCogd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjoKICAgICBjbGlja0NvdW50ID0gZXZlbnQuZGV0YWls
KCk7CiB9CiAKK1dlYk1vdXNlRXZlbnRCdWlsZGVyOjpXZWJNb3VzZUV2ZW50QnVpbGRlcihjb25z
dCBXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiByZW5kZXJPYmpl
Y3QsIGNvbnN0IFRvdWNoRXZlbnQmIGV2ZW50KQoreworICAgIGlmIChldmVudC50b3VjaGVzKCkt
Pmxlbmd0aCgpICE9IDEpIHsKKyAgICAgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVuZ3RoKCkg
fHwgZXZlbnQudHlwZSgpICE9IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50IHx8IGV2ZW50LmNo
YW5nZWRUb3VjaGVzKCktPmxlbmd0aCgpICE9IDEpCisgICAgICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgY29uc3QgVG91Y2gqIHRvdWNoID0gZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSA9
PSAxID8gZXZlbnQudG91Y2hlcygpLT5pdGVtKDApIDogZXZlbnQuY2hhbmdlZFRvdWNoZXMoKS0+
aXRlbSgwKTsKKyAgICBpZiAodG91Y2gtPmlkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkudG91Y2hzdGFydEV2ZW50KQor
ICAgICAgICB0eXBlID0gTW91c2VEb3duOworICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkudG91Y2htb3ZlRXZlbnQpCisgICAgICAgIHR5cGUgPSBNb3VzZU1vdmU7Cisg
ICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaGVuZEV2ZW50KQor
ICAgICAgICB0eXBlID0gTW91c2VVcDsKKyAgICBlbHNlCisgICAgICAgIHJldHVybjsKKworICAg
IHVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQoZXZlbnQsICp3aWRnZXQs
ICpyZW5kZXJPYmplY3QsICp0aGlzKTsKKworICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OkJ1
dHRvbkxlZnQ7CisgICAgbW9kaWZpZXJzIHw9IFdlYklucHV0RXZlbnQ6OkxlZnRCdXR0b25Eb3du
OworICAgIGNsaWNrQ291bnQgPSAodHlwZSA9PSBNb3VzZURvd24gfHwgdHlwZSA9PSBNb3VzZVVw
KTsKKworICAgIEludFBvaW50IGxvY2FsUG9pbnQgPSBjb252ZXJ0TG9jYXRpb25Gb3JSZW5kZXJP
YmplY3QoTGF5b3V0UG9pbnQodG91Y2gtPnBhZ2VYKCksIHRvdWNoLT5wYWdlWSgpKSwgKnJlbmRl
ck9iamVjdCk7CisgICAgeCA9IGxvY2FsUG9pbnQueCgpOworICAgIHkgPSBsb2NhbFBvaW50Lnko
KTsKK30KKwogV2ViTW91c2VXaGVlbEV2ZW50QnVpbGRlcjo6V2ViTW91c2VXaGVlbEV2ZW50QnVp
bGRlcihjb25zdCBXaWRnZXQqIHdpZGdldCwgY29uc3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiBy
ZW5kZXJPYmplY3QsIGNvbnN0IFdoZWVsRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChldmVudC50
eXBlKCkgIT0gZXZlbnROYW1lcygpLm1vdXNld2hlZWxFdmVudCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCmluZGV4IDM1MTI2
NDZlYjNkMmM1MmIxZWExYWM3OWQ3YTU4ODQyYzhmNWM2MDQuLjE4MWQxZTVjMjI0ZmVkM2U3NThi
YzQ0NWU4NjNmYWNhMTBmOTA4YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaApAQCAtMTA1LDYgKzEwNSw3IEBAIHB1Ymxp
YzoKIGNsYXNzIFdlYk1vdXNlRXZlbnRCdWlsZGVyIDogcHVibGljIFdlYk1vdXNlRXZlbnQgewog
cHVibGljOgogICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCos
IGNvbnN0IFdlYkNvcmU6OlJlbmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6Ok1vdXNlRXZlbnQm
KTsKKyAgICBXZWJNb3VzZUV2ZW50QnVpbGRlcihjb25zdCBXZWJDb3JlOjpXaWRnZXQqLCBjb25z
dCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqLCBjb25zdCBXZWJDb3JlOjpUb3VjaEV2ZW50Jik7CiB9
OwogCiAvLyBDb252ZXJ0cyBhIFdlYkNvcmU6OldoZWVsRXZlbnQgdG8gYSBjb3JyZXNwb25kaW5n
IFdlYk1vdXNlV2hlZWxFdmVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAKaW5kZXggMDc1ZmMwNTQ4NmQ0NTljMGNkYTlh
ZWM0MDQyZWQ1YWQ5N2Q2MWUzNy4uMTA1OWRmNzQ4NzAyYjNlNzljMzFkZmVkMGI2NWZlODY3MzRj
NGQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2lu
Q29udGFpbmVySW1wbC5jcHAKQEAgLTUyMywxMCArNTIzLDE1IEBAIGJvb2wgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbDo6aXNSZWN0VG9wbW9zdChjb25zdCBXZWJSZWN0JiByZWN0KQogCiB2b2lkIFdl
YlBsdWdpbkNvbnRhaW5lckltcGw6OnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCBhY2Nl
cHRpbmdUb3VjaEV2ZW50cykKIHsKLSAgICBpZiAobV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzID09
IGFjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIHJlcXVlc3RUb3VjaEV2ZW50VHlwZShhY2NlcHRp
bmdUb3VjaEV2ZW50cyA/IFRvdWNoRXZlbnRSZXF1ZXN0VHlwZVJhdyA6IFRvdWNoRXZlbnRSZXF1
ZXN0VHlwZU5vbmUpOworfQorCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OnJlcXVlc3RU
b3VjaEV2ZW50VHlwZShUb3VjaEV2ZW50UmVxdWVzdFR5cGUgcmVxdWVzdFR5cGUpCit7CisgICAg
aWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlID09IHJlcXVlc3RUeXBlKQogICAgICAgICByZXR1
cm47Ci0gICAgbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzID0gYWNjZXB0aW5nVG91Y2hFdmVudHM7
Ci0gICAgaWYgKG1faXNBY2NlcHRpbmdUb3VjaEV2ZW50cykKKyAgICBtX3RvdWNoRXZlbnRSZXF1
ZXN0VHlwZSA9IHJlcXVlc3RUeXBlOworICAgIGlmIChtX3RvdWNoRXZlbnRSZXF1ZXN0VHlwZSAh
PSBUb3VjaEV2ZW50UmVxdWVzdFR5cGVOb25lKQogICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50
KCktPmRpZEFkZFRvdWNoRXZlbnRIYW5kbGVyKCk7CiAgICAgZWxzZQogICAgICAgICBtX2VsZW1l
bnQtPmRvY3VtZW50KCktPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCk7CkBAIC02NjcsNyAr
NjcyLDcgQEAgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbChX
ZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogZWxlbWUKICAgICAsIG1fdGV4dHVyZUlkKDApCiAg
ICAgLCBtX2lvU3VyZmFjZUlkKDApCiAjZW5kaWYKLSAgICAsIG1faXNBY2NlcHRpbmdUb3VjaEV2
ZW50cyhmYWxzZSkKKyAgICAsIG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlKFRvdWNoRXZlbnRSZXF1
ZXN0VHlwZU5vbmUpCiAgICAgLCBtX3dhbnRzV2hlZWxFdmVudHMoZmFsc2UpCiB7CiB9CkBAIC02
ODEsNyArNjg2LDcgQEAgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6fldlYlBsdWdpbkNvbnRhaW5l
ckltcGwoKQogICAgICAgICBHcmFwaGljc0xheWVyQ2hyb21pdW06OnVucmVnaXN0ZXJDb250ZW50
c0xheWVyKG1faW9TdXJmYWNlTGF5ZXItPmxheWVyKCkpOwogI2VuZGlmCiAKLSAgICBpZiAobV9p
c0FjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIGlmIChtX3RvdWNoRXZlbnRSZXF1ZXN0VHlwZSAh
PSBUb3VjaEV2ZW50UmVxdWVzdFR5cGVOb25lKQogICAgICAgICBtX2VsZW1lbnQtPmRvY3VtZW50
KCktPmRpZFJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCk7CiAKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fcGx1Z2luTG9hZE9ic2VydmVycy5zaXplKCk7ICsraSkKQEAgLTgxOSw5ICs4MjQs
MjggQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2ZW50KQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRs
ZVRvdWNoRXZlbnQoVG91Y2hFdmVudCogZXZlbnQpCiB7Ci0gICAgaWYgKCFtX2lzQWNjZXB0aW5n
VG91Y2hFdmVudHMpCisgICAgc3dpdGNoIChtX3RvdWNoRXZlbnRSZXF1ZXN0VHlwZSkgeworICAg
IGNhc2UgVG91Y2hFdmVudFJlcXVlc3RUeXBlTm9uZToKKyAgICAgICAgcmV0dXJuOworICAgIGNh
c2UgVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3OiB7CisgICAgICAgIFdlYlRvdWNoRXZlbnRCdWls
ZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVudC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKKyAgICAg
ICAgaWYgKHdlYkV2ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkKQorICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICBXZWJDdXJzb3JJbmZvIGN1cnNvckluZm87CisgICAgICAg
IGlmIChtX3dlYlBsdWdpbi0+aGFuZGxlSW5wdXRFdmVudCh3ZWJFdmVudCwgY3Vyc29ySW5mbykp
CisgICAgICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgLy8gRklY
TUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9tIGEgdG91Y2gtZXZlbnQgY2Fs
bGJhY2s/CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FzZSBUb3VjaEV2ZW50UmVxdWVz
dFR5cGVTeW50aGVzaXplZE1vdXNlOgorICAgICAgICBzeW50aGVzaXplTW91c2VFdmVudElmUG9z
c2libGUoZXZlbnQpOwogICAgICAgICByZXR1cm47Ci0gICAgV2ViVG91Y2hFdmVudEJ1aWxkZXIg
d2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOworICAgIH0KK30K
Kwordm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJlRXZlbnQoR2VzdHVy
ZUV2ZW50KiBldmVudCkKK3sKKyAgICBXZWJHZXN0dXJlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRo
aXMsIG1fZWxlbWVudC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKICAgICBpZiAod2ViRXZlbnQudHlw
ZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCiAgICAgICAgIHJldHVybjsKICAgICBXZWJD
dXJzb3JJbmZvIGN1cnNvckluZm87CkBAIC04MzAsMTUgKzg1NCwxNSBAQCB2b2lkIFdlYlBsdWdp
bkNvbnRhaW5lckltcGw6OmhhbmRsZVRvdWNoRXZlbnQoVG91Y2hFdmVudCogZXZlbnQpCiAgICAg
Ly8gRklYTUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9tIGEgdG91Y2gtZXZl
bnQgY2FsbGJhY2s/CiB9CiAKLXZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlR2Vz
dHVyZUV2ZW50KEdlc3R1cmVFdmVudCogZXZlbnQpCit2b2lkIFdlYlBsdWdpbkNvbnRhaW5lcklt
cGw6OnN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJsZShUb3VjaEV2ZW50KiBldmVudCkKIHsK
LSAgICBXZWJHZXN0dXJlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1fZWxlbWVudC0+cmVu
ZGVyZXIoKSwgKmV2ZW50KTsKKyAgICBXZWJNb3VzZUV2ZW50QnVpbGRlciB3ZWJFdmVudCh0aGlz
LCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CiAgICAgaWYgKHdlYkV2ZW50LnR5cGUg
PT0gV2ViSW5wdXRFdmVudDo6VW5kZWZpbmVkKQogICAgICAgICByZXR1cm47CisKICAgICBXZWJD
dXJzb3JJbmZvIGN1cnNvckluZm87CiAgICAgaWYgKG1fd2ViUGx1Z2luLT5oYW5kbGVJbnB1dEV2
ZW50KHdlYkV2ZW50LCBjdXJzb3JJbmZvKSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5k
bGVkKCk7Ci0gICAgLy8gRklYTUU6IENhbiBhIHBsdWdpbiBjaGFuZ2UgdGhlIGN1cnNvciBmcm9t
IGEgdG91Y2gtZXZlbnQgY2FsbGJhY2s/CiB9CiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6Y2FsY3VsYXRlR2VvbWV0cnkoY29uc3QgSW50UmVjdCYgZnJhbWVSZWN0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCmluZGV4
IGI0OTU4ZmUxOTU1NzAyZDI0ZjdjMTBjYzQzMjU0NGYwNWE3OTE2MTkuLjg0NDYzNmU0YTUxNzI5
ZTc1YTU2OTc0MGY0N2VmNTBiNzNmZmRhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKQEAgLTExNCw2ICsxMTQsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9wYXF1ZShib29sKTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNSZWN0VG9wbW9zdChjb25zdCBXZWJSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHNldElz
QWNjZXB0aW5nVG91Y2hFdmVudHMoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RUb3Vj
aEV2ZW50VHlwZShUb3VjaEV2ZW50UmVxdWVzdFR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRX
YW50c1doZWVsRXZlbnRzKGJvb2wpOwogICAgIHZpcnR1YWwgV2ViUG9pbnQgd2luZG93VG9Mb2Nh
bFBvaW50KGNvbnN0IFdlYlBvaW50Jik7CiAKQEAgLTE3NSw2ICsxNzYsOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgaGFuZGxlVG91Y2hFdmVudChXZWJDb3JlOjpUb3VjaEV2ZW50Kik7CiAgICAgdm9p
ZCBoYW5kbGVHZXN0dXJlRXZlbnQoV2ViQ29yZTo6R2VzdHVyZUV2ZW50Kik7CiAKKyAgICB2b2lk
IHN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJsZShXZWJDb3JlOjpUb3VjaEV2ZW50Kik7CisK
ICAgICB2b2lkIGNhbGN1bGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGZyYW1l
UmVjdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIHdpbmRv
d1JlY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCwKQEAgLTIwMSw3ICsyMDQsNyBAQCBwcml2YXRlOgogICAgIC8vIHNjcm9sbGJhcnMuCiAg
ICAgT3duUHRyPFNjcm9sbGJhckdyb3VwPiBtX3Njcm9sbGJhckdyb3VwOwogCi0gICAgYm9vbCBt
X2lzQWNjZXB0aW5nVG91Y2hFdmVudHM7CisgICAgVG91Y2hFdmVudFJlcXVlc3RUeXBlIG1fdG91
Y2hFdmVudFJlcXVlc3RUeXBlOwogICAgIGJvb2wgbV93YW50c1doZWVsRXZlbnRzOwogfTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDNjYzlj
NzgwN2MwYWQ1Yjg0MGQ0ZDI2YTIxZjVjZThlMWJkNjlhZWMuLjJlMDZjYWVkNDI5MWM3NTMzYjFh
MTU5NGI2OThjMjVjMTQ5M2VjM2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0xMS0yNyAgU2FkcnVsIEhhYmli
IENob3dkaHVyeSAgPHNhZHJ1bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBB
bGxvdyBwbHVnaW5zIHRvIG9wdC1pbiB0byByZWNlaXZlIHN5bnRoZXRpYyBtb3VzZSBldmVudHMg
b3V0IG9mIHRvdWNoIGV2ZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMzA5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVwZGF0ZSB0aGUgdGVzdCB3ZWItcGx1Z2luIHRvIGJlIGFibGUgdG8gb3B0
LWluIHRvIHJlY2VpdmUgc3ludGhlc2l6ZWQgbW91c2UgZXZlbnRzIGNyZWF0ZWQKKyAgICAgICAg
ZnJvbSB0b3VjaCBldmVudHMuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0V2ViUGx1Z2luLmNwcDoKKyAgICAgICAgKHBhcnNlVG91Y2hFdmVudFJlcXVlc3RUeXBlKToK
KyAgICAgICAgKFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4pOgorICAgICAgICAoVGVzdFdl
YlBsdWdpbjo6aW5pdGlhbGl6ZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFdlYlBsdWdpbi5oOgorICAgICAgICAoVGVzdFdlYlBsdWdpbik6CisKIDIwMTItMTEtMjYg
IEphZWh1biBMaW0gIDxsamFlaHVuLmxpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBUZXh0IEF1
dG9zaXppbmc6IEFkZCBUZXh0IEF1dG9zaXppbmcgQVBJcyBmb3IgV0syCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uY3BwCmluZGV4IDI5NjBkYzBiZGQ2
MjZlN2IzOTE2YTEyMDYwM2M3ZmU3YjdkOGJlMTUuLmNmMDIyMzU0MDE5YjVkYWU3NzkxMTQ1YTkx
NDRmNzY0MWJiOGRmYjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RXZWJQbHVnaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RXZWJQbHVnaW4uY3BwCkBAIC0xMTgsMTIgKzExOCwyNCBAQCBzdGF0aWMgdm9pZCBwcmludEV2
ZW50RGV0YWlscyhjb25zdCBXZWJLaXQ6OldlYklucHV0RXZlbnQmIGV2ZW50KQogICAgIH0KIH0K
IAorc3RhdGljIFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5
cGUgcGFyc2VUb3VjaEV2ZW50UmVxdWVzdFR5cGUoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCit7
CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJpbWl0aXZlUmF3ID0gV2ViU3RyaW5nOjpm
cm9tVVRGOCgicmF3Iik7CisgICAgc3RhdGljIGNvbnN0IFdlYlN0cmluZyBrUHJpbWl0aXZlU3lu
dGhldGljID0gV2ViU3RyaW5nOjpmcm9tVVRGOCgic3ludGhldGljIik7CisKKyAgICBpZiAoc3Ry
aW5nID09IGtQcmltaXRpdmVSYXcpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3OworICAgIGlmIChzdHJpbmcgPT0ga1By
aW1pdGl2ZVN5bnRoZXRpYykKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGx1Z2luQ29udGFp
bmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5cGVTeW50aGVzaXplZE1vdXNlOworICAgIHJldHVybiBX
ZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlTm9uZTsKK30K
KwogVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJh
bXMmIHBhcmFtcykKICAgICA6IG1fZnJhbWUoZnJhbWUpCiAgICAgLCBtX2NvbnRhaW5lcigwKQog
ICAgICwgbV9jb250ZXh0KDApCi0gICAgLCBtX2FjY2VwdHNUb3VjaEV2ZW50KGZhbHNlKQorICAg
ICwgbV90b3VjaEV2ZW50UmVxdWVzdChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hF
dmVudFJlcXVlc3RUeXBlTm9uZSkKICAgICAsIG1fcHJpbnRFdmVudERldGFpbHMoZmFsc2UpCiAg
ICAgLCBtX2NhblByb2Nlc3NEcmFnKGZhbHNlKQogewpAQCAtMTUwLDcgKzE2Miw3IEBAIFRlc3RX
ZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsCiAgICAgICAg
IGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZU9wYWNpdHkpCiAgICAgICAgICAg
ICBtX3NjZW5lLm9wYWNpdHkgPSBwYXJzZU9wYWNpdHkoYXR0cmlidXRlVmFsdWUpOwogICAgICAg
ICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRyaWJ1dGVBY2NlcHRzVG91Y2gpCi0gICAg
ICAgICAgICBtX2FjY2VwdHNUb3VjaEV2ZW50ID0gcGFyc2VCb29sZWFuKGF0dHJpYnV0ZVZhbHVl
KTsKKyAgICAgICAgICAgIG1fdG91Y2hFdmVudFJlcXVlc3QgPSBwYXJzZVRvdWNoRXZlbnRSZXF1
ZXN0VHlwZShhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUg
PT0ga0F0dHJpYnV0ZVByaW50RXZlbnREZXRhaWxzKQogICAgICAgICAgICAgbV9wcmludEV2ZW50
RGV0YWlscyA9IHBhcnNlQm9vbGVhbihhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAgIGVsc2UgaWYg
KGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZUNhblByb2Nlc3NEcmFnKQpAQCAtMTgzLDcgKzE5
NSw3IEBAIGJvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlhbGl6ZShXZWJQbHVnaW5Db250YWluZXIq
IGNvbnRhaW5lcikKIAogICAgIG1fY29udGFpbmVyID0gY29udGFpbmVyOwogICAgIG1fY29udGFp
bmVyLT5zZXRCYWNraW5nVGV4dHVyZUlkKG1fY29sb3JUZXh0dXJlKTsKLSAgICBtX2NvbnRhaW5l
ci0+c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhtX2FjY2VwdHNUb3VjaEV2ZW50KTsKKyAgICBt
X2NvbnRhaW5lci0+cmVxdWVzdFRvdWNoRXZlbnRUeXBlKG1fdG91Y2hFdmVudFJlcXVlc3QpOwog
ICAgIG1fY29udGFpbmVyLT5zZXRXYW50c1doZWVsRXZlbnRzKHRydWUpOwogICAgIHJldHVybiB0
cnVlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdl
YlBsdWdpbi5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5o
CmluZGV4IDQ5ZmRlODVhYWRjMWUzMTM5MGM2ZjMwNjk2OWRkZGI4ZTJlYjExZDUuLmU2ZjViNDdh
NGYyNzc4ZmEwOGU2Y2UyY2ZjMWE3NmJlNTI5NDc4NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4uaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUg
VGVzdFdlYlBsdWdpbl9oCiAKICNpbmNsdWRlICJXZWJQbHVnaW4uaCIKKyNpbmNsdWRlICJXZWJQ
bHVnaW5Db250YWluZXIuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJSZWN0LmgiCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewpAQCAtMTMxLDcgKzEzMiw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQg
bV9mcmFtZWJ1ZmZlcjsKICAgICBTY2VuZSBtX3NjZW5lOwogCi0gICAgYm9vbCBtX2FjY2VwdHNU
b3VjaEV2ZW50OworICAgIFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVyOjpUb3VjaEV2ZW50UmVx
dWVzdFR5cGUgbV90b3VjaEV2ZW50UmVxdWVzdDsKICAgICBib29sIG1fcHJpbnRFdmVudERldGFp
bHM7CiAgICAgYm9vbCBtX2NhblByb2Nlc3NEcmFnOwogfTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzOGY5NDhkOGU4ZjA4
YmFmYWU1NzkxNzk1OGY0MjkwNTQzODY5NTUzLi44NjMwYzJhMjRlYzUxY2MzMzQzZWY2NDE1MGE5
MGYxZmJiYTI0ODE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMTEtMjcgIFNhZHJ1bCBI
YWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gQWxsb3cgcGx1Z2lucyB0byBvcHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZl
bnRzIG91dCBvZiB0b3VjaCBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDMwOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgdGVzdCBmb3Igc3ludGhlc2l6ZWQgbW91c2UgZXZlbnRzIGZy
b20gdG91Y2ggKGFuZCB1cGRhdGUgZXhpc3RpbmcgdGVzdHMpLgorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtZGV0YWlscy5odG1sOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3Vj
aC1ldmVudHMtc3ludGhlc2l6ZWQuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMuaHRtbC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL3BsdWdpbnMvdHJhbnNmb3JtZWQtZXZlbnRzLmh0bWw6CisKIDIwMTItMTEtMjYg
IFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIElu
c3BlY3Rvcjogb2JqZWN0IHByZXZpZXcgZG9lcyBub3QgcmVuZGVyIG5vZGUgaWQsIGNsYXNzTmFt
ZTsgbG9ncyB0b28gbWFueSBmdW5jdGlvbnMgZm9yIGpRdWVyeS4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLWRldGFpbHMuaHRt
bCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLWRl
dGFpbHMuaHRtbAppbmRleCA1MmY0N2ExNjc5NDNhMWQzNGIyZTY0NWVlNTJkMDhmMmRlNzY4ODRi
Li4wM2YxYjA3Mjc3ZTNiZmYzYzU3NzA0NDAwODdjNmVmZGE1NmVkNjAwIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1kZXRhaWxz
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1l
dmVudHMtZGV0YWlscy5odG1sCkBAIC05LDcgKzksNyBAQAogPC9oZWFkPgogCiA8Ym9keT4KLTxl
bWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdp
biIgYWNjZXB0cy10b3VjaD0idHJ1ZSIgcHJpbnQtZXZlbnQtZGV0YWlscz0idHJ1ZSI+PC9lbWJl
ZD4KKzxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdl
YnBsdWdpbiIgYWNjZXB0cy10b3VjaD0icmF3IiBwcmludC1ldmVudC1kZXRhaWxzPSJ0cnVlIj48
L2VtYmVkPgogPHNjcmlwdD4KIAogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRv
dy5ldmVudFNlbmRlcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiNjJmYjIwYTVmNWQ3ZmU2MTNjNzBhNzM1ZGZlNmI0
ZDM3NDhhZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw3IEBACitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlRG93bgorKiAxMCwgMTAKK1BsdWdp
biByZWNlaXZlZCBldmVudDogTW91c2VNb3ZlCisqIDIwLCAxNQorUGx1Z2luIHJlY2VpdmVkIGV2
ZW50OiBNb3VzZVVwCisqIDIwLCAxNQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMmEwNTMzNDk0NTJmMWRmMGRjNTc4YjM0MGZhYWY4OTMwZjAwMzlk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lu
cy90b3VjaC1ldmVudHMtc3ludGhlc2l6ZWQuaHRtbApAQCAtMCwwICsxLDM5IEBACis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorICAjcGx1Z2luIHsKKyAgICB3aWR0aDogMTUwcHg7CisgICAgaGVp
Z2h0OiAxNTBweDsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKworPGJvZHk+Cis8ZW1iZWQgaWQ9
InRvdWNoX3BsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4i
IGFjY2VwdHMtdG91Y2g9InN5bnRoZXRpYyIgcHJpbnQtZXZlbnQtZGV0YWlscz0idHJ1ZSI+PC9l
bWJlZD48ZW1iZWQgaWQ9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13
ZWJwbHVnaW4iPjwvZW1iZWQ+Cis8c2NyaXB0PgorCisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5l
ciB8fCAhd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGRvY3VtZW50LndyaXRlKCJUaGlz
IHRlc3QgZG9lcyBub3Qgd29yayBpbiBtYW51YWwgbW9kZS4iKTsKKyAgICB9IGVsc2UgeworICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgICAgICB2YXIgcG9zaXRpb25YID0g
cGx1Z2luLm9mZnNldExlZnQgKyAxMDsKKyAgICAgICAgdmFyIHBvc2l0aW9uWSA9IHBsdWdpbi5v
ZmZzZXRUb3AgKyAxMDsKKyAgICAgICAgZXZlbnRTZW5kZXIuYWRkVG91Y2hQb2ludChwb3NpdGlv
blgsIHBvc2l0aW9uWSk7CisgICAgICAgIGV2ZW50U2VuZGVyLnRvdWNoU3RhcnQoKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgICAgIGV2ZW50U2VuZGVy
LnRvdWNoRW5kKCk7CisKKyAgICAgICAgcG9zaXRpb25YID0gdG91Y2hfcGx1Z2luLm9mZnNldExl
ZnQgKyAxMDsKKyAgICAgICAgcG9zaXRpb25ZID0gdG91Y2hfcGx1Z2luLm9mZnNldFRvcCArIDEw
OworICAgICAgICBldmVudFNlbmRlci5hZGRUb3VjaFBvaW50KHBvc2l0aW9uWCwgcG9zaXRpb25Z
KTsKKyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hTdGFydCgpOworICAgICAgICBldmVudFNlbmRl
ci51cGRhdGVUb3VjaFBvaW50KDAsIHBvc2l0aW9uWCArIDEwLCBwb3NpdGlvblkgKyA1KTsKKyAg
ICAgICAgZXZlbnRTZW5kZXIudG91Y2hNb3ZlKCk7CisgICAgICAgIGV2ZW50U2VuZGVyLnJlbGVh
c2VUb3VjaFBvaW50KDApOworICAgICAgICBldmVudFNlbmRlci50b3VjaEVuZCgpOworICAgIH0K
KworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMuaHRtbAppbmRleCBmN2IwN2Iy
ZmQ3NGRhODJmZjQzNjE0ZTU1MWQ5OTUxNTNhZjk3OWM4Li5jNDc0YTA0Y2Q4ODg3NTM5OTFjMWE0
MDQ3OTQ0NWYzYzRlY2NiZDJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLmh0bWwKQEAgLTksNyArOSw3IEBACiA8L2hl
YWQ+CiAKIDxib2R5PgotPGVtYmVkIGlkPSJ0b3VjaF9wbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9u
L3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIiBhY2NlcHRzLXRvdWNoPSJ0cnVlIj48L2VtYmVkPjxl
bWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdp
biI+PC9lbWJlZD4KKzxlbWJlZCBpZD0idG91Y2hfcGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94
LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0icmF3Ij48L2VtYmVkPjxlbWJl
ZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiI+
PC9lbWJlZD4KIDxzY3JpcHQ+CiAKICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3BsdWdpbnMvdHJhbnNmb3JtZWQtZXZlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9wbHVnaW5zL3RyYW5zZm9ybWVkLWV2ZW50cy5odG1sCmluZGV4IDY0OTk1MzVl
ZmViYjIyMWVmNDEzZjBjZDllZTJhOGY1NWY5NDU3ZDEuLjJhNjNmMDM1MWJkZThkNDAwYWY5OGU4
YmYxYzIxMzJiZmI3Y2E4MzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL3BsdWdpbnMvdHJhbnNmb3JtZWQtZXZlbnRzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vcGx1Z2lucy90cmFuc2Zvcm1lZC1ldmVudHMuaHRtbApAQCAtMTAsNyAr
MTAsNyBAQAogPC9oZWFkPgogCiA8Ym9keT4KLTxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBs
aWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0idHJ1ZSIgcHJp
bnQtZXZlbnQtZGV0YWlscz0idHJ1ZSI+PC9lbWJlZD4KKzxlbWJlZCBpZD0icGx1Z2luIiB0eXBl
PSJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0icmF3
IiBwcmludC1ldmVudC1kZXRhaWxzPSJ0cnVlIj48L2VtYmVkPgogPHNjcmlwdD4KIAogICAgIGlm
ICghd2luZG93LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5ldmVudFNlbmRlcikgewo=
</data>
<flag name="review"
          id="192020"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="192022"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176324</attachid>
            <date>2012-11-27 12:20:57 -0800</date>
            <delta_ts>2012-11-28 08:29:40 -0800</delta_ts>
            <desc>Used DEFINE_STATIC_LOCAL. Thanks!</desc>
            <filename>bug-103092-20121127151833.patch</filename>
            <type>text/plain</type>
            <size>20872</size>
            <attacher name="Sadrul Habib Chowdhury">sadrul</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDNlYmQ5N2NkNTk4ZTlkOGJhYzIxYTY4NmY1ZGE3NjI4ZThkYTE4YTkuLjhkZDZiNWUzOTQzNmI4
MWVhOGQ3ZTJiMzEwNDVkZjA4YTc2MjZiYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMTEtMjcgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRy
dWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBv
cHQtaW4gdG8gcmVjZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVu
dHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMw
OTIKKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgIEEgcGx1Z2lu
IGNhbiBub3cgcmVxdWVzdCB0byByZWNlaXZlIHJhdyB0b3VjaCBldmVudHMsIG9yIHRvIHJlY2Vp
dmUgbW91c2UgZXZlbnRzIHN5bnRoZXNpemVkCisgICAgICAgIGZyb20gdGhlIHRvdWNoIGV2ZW50
cywgb3IgdG8gbm90IHJlY2VpdmUgYW55IHRvdWNoIGV2ZW50cyBhdCBhbGwuCisKKyAgICAgICAg
KiBwdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmg6CisgICAgICAgIChXZWJQbHVnaW5Db250YWlu
ZXIpOgorICAgICAgICAqIHNyYy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHA6CisgICAgICAg
IChXZWJLaXQ6OnVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2ViQ29yZU1vdXNlRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJNb3VzZUV2ZW50QnVpbGRlcjo6V2ViTW91c2VFdmVudEJ1aWxkZXIp
OgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViSW5wdXRFdmVudENvbnZlcnNp
b24uaDoKKyAgICAgICAgKFdlYk1vdXNlRXZlbnRCdWlsZGVyKToKKyAgICAgICAgKiBzcmMvV2Vi
UGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRh
aW5lckltcGw6OnNldElzQWNjZXB0aW5nVG91Y2hFdmVudHMpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cmVxdWVzdFRvdWNoRXZl
bnRUeXBlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVySW1wbDo6V2ViUGx1
Z2luQ29udGFpbmVySW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcklt
cGw6On5XZWJQbHVnaW5Db250YWluZXJJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5oOgorICAgICAgICAoV2ViUGx1Z2luQ29udGFpbmVySW1wbCk6CisKIDIwMTIt
MTEtMjYgIFNjb3R0IFZpb2xldCAgPHNreUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9t
aXVtXSBNYWtlIHVzZV9kZWZhdWx0X3JlbmRlcl90aGVtZSBjb21waWxlIHRoZSByaWdodCBzZXQg
b2YgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlBs
dWdpbkNvbnRhaW5lci5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2lu
Q29udGFpbmVyLmgKaW5kZXggMTIyOTAxNGRhYjc1NWNkMzMzZDJlMTQ5ZTU1OGQyMTQ5OWJlN2Qy
YS4uYWFkNjMxZjY3NjI0MDUxNmRkZjNkMzk1MDU4NTNjYjk2MGEwMzIyZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViUGx1Z2luQ29udGFpbmVyLmgKQEAgLTQ3
LDYgKzQ3LDEyIEBAIHN0cnVjdCBXZWJSZWN0OwogCiBjbGFzcyBXZWJQbHVnaW5Db250YWluZXIg
ewogcHVibGljOgorICAgIGVudW0gVG91Y2hFdmVudFJlcXVlc3RUeXBlIHsKKyAgICAgICAgVG91
Y2hFdmVudFJlcXVlc3RUeXBlTm9uZSwKKyAgICAgICAgVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3
LAorICAgICAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGVTeW50aGVzaXplZE1vdXNlLAorICAgIH07
CisKICAgICAvLyBSZXR1cm5zIHRoZSBlbGVtZW50IGNvbnRhaW5pbmcgdGhpcyBwbHVnaW4uCiAg
ICAgdmlydHVhbCBXZWJFbGVtZW50IGVsZW1lbnQoKSA9IDA7CiAKQEAgLTExMSw5ICsxMTcsMTIg
QEAgcHVibGljOgogICAgIC8vIGNvbnRlbnQuIFRoZSByZWN0YW5nbGUgaXMgaW4gdGhlIHBsdWdp
bidzIGNvb3JkaW5hdGUgc3lzdGVtLgogICAgIHZpcnR1YWwgYm9vbCBpc1JlY3RUb3Btb3N0KGNv
bnN0IFdlYlJlY3QmKSA9IDA7CiAKLSAgICAvLyBOb3RpZmllcyB3aGVuIHRoZSBwbHVnaW4gc3Rh
cnRzL3N0b3BzIGFjY2VwdGluZyB0b3VjaCBldmVudHMuCisgICAgLy8gTm90aWZpZXMgd2hlbiB0
aGUgcGx1Z2luIHN0YXJ0cy9zdG9wcyBhY2NlcHRpbmcgdG91Y2ggZXZlbnRzLiBUaGlzIGlzIGRl
cHJlY2F0ZWQsIHVzZSByZXF1ZXN0VG91Y2hFdmVudFR5cGUgaW5zdGVhZC4KICAgICB2aXJ0dWFs
IHZvaWQgc2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sKSA9IDA7CiAKKyAgICAvLyBOb3Rp
ZmllcyB3aGVuIHRoZSBwbHVnaW4gY2hhbmdlcyB0aGUga2luZCBvZiB0b3VjaC1ldmVudHMgaXQg
YWNjZXB0cy4KKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKFRvdWNoRXZl
bnRSZXF1ZXN0VHlwZSkgPSAwOworCiAgICAgLy8gTm90aWZpZXMgd2hlbiB0aGUgcGx1Z2luIHN0
YXJ0cy9zdG9wcyBhY2NlcHRpbmcgd2hlZWwgZXZlbnRzLiBXaXRob3V0CiAgICAgLy8gY2FsbGlu
ZyB0aGUgZnVuY3Rpb24gd2l0aCB0cnVlLCB0aGUgY29udGFpbmVyIG1pZ2h0IG5vdCBhbHdheXMg
YWJsZSB0bwogICAgIC8vIHJlY2VpdmUgd2hlZWwgZXZlbnRzIGluIHNvbWUgY2FzZXMgKHN1Y2gg
YXMgd2hlbiB0aHJlYWRlZCBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uY3BwCmluZGV4IDVjZjI0ZDBjMWFh
MzdlZWE2ZjM4MmIwYjI5MTAzZjc1OTZiMmUzOWUuLmRjZGU0MGYzMjBkNzI1MzJhMzQwZjIxMjJh
ZTllMmU2OThiYWNhNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklucHV0RXZlbnRDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5jcHAKQEAgLTQwNyw3ICs0MDcsNyBAQCBzdGF0aWMg
SW50UG9pbnQgY29udmVydExvY2F0aW9uRm9yUmVuZGVyT2JqZWN0KGNvbnN0IExheW91dFBvaW50
JiBsb2NhdGlvbiwgY29ucwogICAgIHJldHVybiByb3VuZGVkSW50UG9pbnQocmVuZGVyT2JqZWN0
LmFic29sdXRlVG9Mb2NhbChsb2NhdGlvbiwgVXNlVHJhbnNmb3JtcyB8IFNuYXBPZmZzZXRGb3JU
cmFuc2Zvcm1zKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHVwZGF0ZVdlYk1vdXNlRXZlbnRGcm9tV2Vi
Q29yZU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudCYgZXZlbnQsIGNvbnN0IFdpZGdldCYgd2lk
Z2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgV2ViTW91c2VF
dmVudCYgd2ViRXZlbnQpCitzdGF0aWMgdm9pZCB1cGRhdGVXZWJNb3VzZUV2ZW50RnJvbVdlYkNv
cmVNb3VzZUV2ZW50KGNvbnN0IE1vdXNlUmVsYXRlZEV2ZW50JiBldmVudCwgY29uc3QgV2lkZ2V0
JiB3aWRnZXQsIGNvbnN0IFdlYkNvcmU6OlJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBXZWJN
b3VzZUV2ZW50JiB3ZWJFdmVudCkKIHsKICAgICB3ZWJFdmVudC50aW1lU3RhbXBTZWNvbmRzID0g
ZXZlbnQudGltZVN0YW1wKCkgLyBtaWxsaXNQZXJTZWNvbmQ7CiAgICAgd2ViRXZlbnQubW9kaWZp
ZXJzID0gZ2V0V2ViSW5wdXRNb2RpZmllcnMoZXZlbnQpOwpAQCAtNDczLDYgKzQ3MywzNyBAQCBX
ZWJNb3VzZUV2ZW50QnVpbGRlcjo6V2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2lkZ2V0KiB3
aWRnZXQsIGNvbnN0IFdlYkNvcmU6OgogICAgIGNsaWNrQ291bnQgPSBldmVudC5kZXRhaWwoKTsK
IH0KIAorV2ViTW91c2VFdmVudEJ1aWxkZXI6OldlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdp
ZGdldCogd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRlck9iamVjdCwg
Y29uc3QgVG91Y2hFdmVudCYgZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LnRvdWNoZXMoKS0+bGVu
Z3RoKCkgIT0gMSkgeworICAgICAgICBpZiAoZXZlbnQudG91Y2hlcygpLT5sZW5ndGgoKSB8fCBl
dmVudC50eXBlKCkgIT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQgfHwgZXZlbnQuY2hhbmdl
ZFRvdWNoZXMoKS0+bGVuZ3RoKCkgIT0gMSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBjb25zdCBUb3VjaCogdG91Y2ggPSBldmVudC50b3VjaGVzKCktPmxlbmd0aCgpID09IDEg
PyBldmVudC50b3VjaGVzKCktPml0ZW0oMCkgOiBldmVudC5jaGFuZ2VkVG91Y2hlcygpLT5pdGVt
KDApOworICAgIGlmICh0b3VjaC0+aWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMoKS50b3VjaHN0YXJ0RXZlbnQpCisgICAg
ICAgIHR5cGUgPSBNb3VzZURvd247CisgICAgZWxzZSBpZiAoZXZlbnQudHlwZSgpID09IGV2ZW50
TmFtZXMoKS50b3VjaG1vdmVFdmVudCkKKyAgICAgICAgdHlwZSA9IE1vdXNlTW92ZTsKKyAgICBl
bHNlIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLnRvdWNoZW5kRXZlbnQpCisgICAg
ICAgIHR5cGUgPSBNb3VzZVVwOworICAgIGVsc2UKKyAgICAgICAgcmV0dXJuOworCisgICAgdXBk
YXRlV2ViTW91c2VFdmVudEZyb21XZWJDb3JlTW91c2VFdmVudChldmVudCwgKndpZGdldCwgKnJl
bmRlck9iamVjdCwgKnRoaXMpOworCisgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6QnV0dG9u
TGVmdDsKKyAgICBtb2RpZmllcnMgfD0gV2ViSW5wdXRFdmVudDo6TGVmdEJ1dHRvbkRvd247Cisg
ICAgY2xpY2tDb3VudCA9ICh0eXBlID09IE1vdXNlRG93biB8fCB0eXBlID09IE1vdXNlVXApOwor
CisgICAgSW50UG9pbnQgbG9jYWxQb2ludCA9IGNvbnZlcnRMb2NhdGlvbkZvclJlbmRlck9iamVj
dChMYXlvdXRQb2ludCh0b3VjaC0+cGFnZVgoKSwgdG91Y2gtPnBhZ2VZKCkpLCAqcmVuZGVyT2Jq
ZWN0KTsKKyAgICB4ID0gbG9jYWxQb2ludC54KCk7CisgICAgeSA9IGxvY2FsUG9pbnQueSgpOwor
fQorCiBXZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVyOjpXZWJNb3VzZVdoZWVsRXZlbnRCdWlsZGVy
KGNvbnN0IFdpZGdldCogd2lkZ2V0LCBjb25zdCBXZWJDb3JlOjpSZW5kZXJPYmplY3QqIHJlbmRl
ck9iamVjdCwgY29uc3QgV2hlZWxFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKGV2ZW50LnR5cGUo
KSAhPSBldmVudE5hbWVzKCkubW91c2V3aGVlbEV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViSW5wdXRFdmVudENvbnZlcnNpb24uaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYklucHV0RXZlbnRDb252ZXJzaW9uLmgKaW5kZXggMzUxMjY0NmVi
M2QyYzUyYjFlYTFhYzc5ZDdhNTg4NDJjOGY1YzYwNC4uMTgxZDFlNWMyMjRmZWQzZTc1OGJjNDQ1
ZTg2M2ZhY2ExMGY5MDhjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSW5wdXRFdmVudENvbnZlcnNpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJJbnB1dEV2ZW50Q29udmVyc2lvbi5oCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgog
Y2xhc3MgV2ViTW91c2VFdmVudEJ1aWxkZXIgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CiBwdWJs
aWM6CiAgICAgV2ViTW91c2VFdmVudEJ1aWxkZXIoY29uc3QgV2ViQ29yZTo6V2lkZ2V0KiwgY29u
c3QgV2ViQ29yZTo6UmVuZGVyT2JqZWN0KiwgY29uc3QgV2ViQ29yZTo6TW91c2VFdmVudCYpOwor
ICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyKGNvbnN0IFdlYkNvcmU6OldpZGdldCosIGNvbnN0IFdl
YkNvcmU6OlJlbmRlck9iamVjdCosIGNvbnN0IFdlYkNvcmU6OlRvdWNoRXZlbnQmKTsKIH07CiAK
IC8vIENvbnZlcnRzIGEgV2ViQ29yZTo6V2hlZWxFdmVudCB0byBhIGNvcnJlc3BvbmRpbmcgV2Vi
TW91c2VXaGVlbEV2ZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAppbmRleCAwNzVmYzA1NDg2ZDQ1OWMwY2RhOWFlYzQw
NDJlZDVhZDk3ZDYxZTM3Li4xMDU5ZGY3NDg3MDJiM2U3OWMzMWRmZWQwYjY1ZmU4NjczNGM0ZDQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWlu
ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250
YWluZXJJbXBsLmNwcApAQCAtNTIzLDEwICs1MjMsMTUgQEAgYm9vbCBXZWJQbHVnaW5Db250YWlu
ZXJJbXBsOjppc1JlY3RUb3Btb3N0KGNvbnN0IFdlYlJlY3QmIHJlY3QpCiAKIHZvaWQgV2ViUGx1
Z2luQ29udGFpbmVySW1wbDo6c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhib29sIGFjY2VwdGlu
Z1RvdWNoRXZlbnRzKQogewotICAgIGlmIChtX2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPT0gYWNj
ZXB0aW5nVG91Y2hFdmVudHMpCisgICAgcmVxdWVzdFRvdWNoRXZlbnRUeXBlKGFjY2VwdGluZ1Rv
dWNoRXZlbnRzID8gVG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3IDogVG91Y2hFdmVudFJlcXVlc3RU
eXBlTm9uZSk7Cit9CisKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6cmVxdWVzdFRvdWNo
RXZlbnRUeXBlKFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSByZXF1ZXN0VHlwZSkKK3sKKyAgICBpZiAo
bV90b3VjaEV2ZW50UmVxdWVzdFR5cGUgPT0gcmVxdWVzdFR5cGUpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX2lzQWNjZXB0aW5nVG91Y2hFdmVudHMgPSBhY2NlcHRpbmdUb3VjaEV2ZW50czsKLSAg
ICBpZiAobV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRzKQorICAgIG1fdG91Y2hFdmVudFJlcXVlc3RU
eXBlID0gcmVxdWVzdFR5cGU7CisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRv
dWNoRXZlbnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
ZGlkQWRkVG91Y2hFdmVudEhhbmRsZXIoKTsKICAgICBlbHNlCiAgICAgICAgIG1fZWxlbWVudC0+
ZG9jdW1lbnQoKS0+ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKQEAgLTY2Nyw3ICs2NzIs
NyBAQCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpXZWJQbHVnaW5Db250YWluZXJJbXBsKFdlYkNv
cmU6OkhUTUxQbHVnSW5FbGVtZW50KiBlbGVtZQogICAgICwgbV90ZXh0dXJlSWQoMCkKICAgICAs
IG1faW9TdXJmYWNlSWQoMCkKICNlbmRpZgotICAgICwgbV9pc0FjY2VwdGluZ1RvdWNoRXZlbnRz
KGZhbHNlKQorICAgICwgbV90b3VjaEV2ZW50UmVxdWVzdFR5cGUoVG91Y2hFdmVudFJlcXVlc3RU
eXBlTm9uZSkKICAgICAsIG1fd2FudHNXaGVlbEV2ZW50cyhmYWxzZSkKIHsKIH0KQEAgLTY4MSw3
ICs2ODYsNyBAQCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjp+V2ViUGx1Z2luQ29udGFpbmVySW1w
bCgpCiAgICAgICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bTo6dW5yZWdpc3RlckNvbnRlbnRzTGF5
ZXIobV9pb1N1cmZhY2VMYXllci0+bGF5ZXIoKSk7CiAjZW5kaWYKIAotICAgIGlmIChtX2lzQWNj
ZXB0aW5nVG91Y2hFdmVudHMpCisgICAgaWYgKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlICE9IFRv
dWNoRXZlbnRSZXF1ZXN0VHlwZU5vbmUpCiAgICAgICAgIG1fZWxlbWVudC0+ZG9jdW1lbnQoKS0+
ZGlkUmVtb3ZlVG91Y2hFdmVudEhhbmRsZXIoKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgbV9wbHVnaW5Mb2FkT2JzZXJ2ZXJzLnNpemUoKTsgKytpKQpAQCAtODE5LDkgKzgyNCwyOCBA
QCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZlbnQpCiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aGFuZGxlVG91
Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKIHsKLSAgICBpZiAoIW1faXNBY2NlcHRpbmdUb3Vj
aEV2ZW50cykKKyAgICBzd2l0Y2ggKG1fdG91Y2hFdmVudFJlcXVlc3RUeXBlKSB7CisgICAgY2Fz
ZSBUb3VjaEV2ZW50UmVxdWVzdFR5cGVOb25lOgorICAgICAgICByZXR1cm47CisgICAgY2FzZSBU
b3VjaEV2ZW50UmVxdWVzdFR5cGVSYXc6IHsKKyAgICAgICAgV2ViVG91Y2hFdmVudEJ1aWxkZXIg
d2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOworICAgICAgICBp
ZiAod2ViRXZlbnQudHlwZSA9PSBXZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIFdlYkN1cnNvckluZm8gY3Vyc29ySW5mbzsKKyAgICAgICAgaWYg
KG1fd2ViUGx1Z2luLT5oYW5kbGVJbnB1dEV2ZW50KHdlYkV2ZW50LCBjdXJzb3JJbmZvKSkKKyAg
ICAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICAvLyBGSVhNRTog
Q2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBjYWxsYmFj
az8KKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYXNlIFRvdWNoRXZlbnRSZXF1ZXN0VHlw
ZVN5bnRoZXNpemVkTW91c2U6CisgICAgICAgIHN5bnRoZXNpemVNb3VzZUV2ZW50SWZQb3NzaWJs
ZShldmVudCk7CiAgICAgICAgIHJldHVybjsKLSAgICBXZWJUb3VjaEV2ZW50QnVpbGRlciB3ZWJF
dmVudCh0aGlzLCBtX2VsZW1lbnQtPnJlbmRlcmVyKCksICpldmVudCk7CisgICAgfQorfQorCit2
b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmhhbmRsZUdlc3R1cmVFdmVudChHZXN0dXJlRXZl
bnQqIGV2ZW50KQoreworICAgIFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywg
bV9lbGVtZW50LT5yZW5kZXJlcigpLCAqZXZlbnQpOwogICAgIGlmICh3ZWJFdmVudC50eXBlID09
IFdlYklucHV0RXZlbnQ6OlVuZGVmaW5lZCkKICAgICAgICAgcmV0dXJuOwogICAgIFdlYkN1cnNv
ckluZm8gY3Vyc29ySW5mbzsKQEAgLTgzMCwxNSArODU0LDE1IEBAIHZvaWQgV2ViUGx1Z2luQ29u
dGFpbmVySW1wbDo6aGFuZGxlVG91Y2hFdmVudChUb3VjaEV2ZW50KiBldmVudCkKICAgICAvLyBG
SVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0b3VjaC1ldmVudCBj
YWxsYmFjaz8KIH0KIAotdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpoYW5kbGVHZXN0dXJl
RXZlbnQoR2VzdHVyZUV2ZW50KiBldmVudCkKK3ZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6
c3ludGhlc2l6ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFRvdWNoRXZlbnQqIGV2ZW50KQogewotICAg
IFdlYkdlc3R1cmVFdmVudEJ1aWxkZXIgd2ViRXZlbnQodGhpcywgbV9lbGVtZW50LT5yZW5kZXJl
cigpLCAqZXZlbnQpOworICAgIFdlYk1vdXNlRXZlbnRCdWlsZGVyIHdlYkV2ZW50KHRoaXMsIG1f
ZWxlbWVudC0+cmVuZGVyZXIoKSwgKmV2ZW50KTsKICAgICBpZiAod2ViRXZlbnQudHlwZSA9PSBX
ZWJJbnB1dEV2ZW50OjpVbmRlZmluZWQpCiAgICAgICAgIHJldHVybjsKKwogICAgIFdlYkN1cnNv
ckluZm8gY3Vyc29ySW5mbzsKICAgICBpZiAobV93ZWJQbHVnaW4tPmhhbmRsZUlucHV0RXZlbnQo
d2ViRXZlbnQsIGN1cnNvckluZm8pKQogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKLSAgICAvLyBGSVhNRTogQ2FuIGEgcGx1Z2luIGNoYW5nZSB0aGUgY3Vyc29yIGZyb20gYSB0
b3VjaC1ldmVudCBjYWxsYmFjaz8KIH0KIAogdm9pZCBXZWJQbHVnaW5Db250YWluZXJJbXBsOjpj
YWxjdWxhdGVHZW9tZXRyeShjb25zdCBJbnRSZWN0JiBmcmFtZVJlY3QsCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmgKaW5kZXggYjQ5
NThmZTE5NTU3MDJkMjRmN2MxMGNjNDMyNTQ0ZjA1YTc5MTYxOS4uODQ0NjM2ZTRhNTE3MjllNzVh
NTY5NzQwZjQ3ZWY1MGI3M2ZmZGFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuaApAQCAtMTE0LDYgKzExNCw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0T3BhcXVlKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBp
c1JlY3RUb3Btb3N0KGNvbnN0IFdlYlJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXNBY2Nl
cHRpbmdUb3VjaEV2ZW50cyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFRvdWNoRXZl
bnRUeXBlKFRvdWNoRXZlbnRSZXF1ZXN0VHlwZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFdhbnRz
V2hlZWxFdmVudHMoYm9vbCk7CiAgICAgdmlydHVhbCBXZWJQb2ludCB3aW5kb3dUb0xvY2FsUG9p
bnQoY29uc3QgV2ViUG9pbnQmKTsKIApAQCAtMTc1LDYgKzE3Niw4IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBoYW5kbGVUb3VjaEV2ZW50KFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKICAgICB2b2lkIGhh
bmRsZUdlc3R1cmVFdmVudChXZWJDb3JlOjpHZXN0dXJlRXZlbnQqKTsKIAorICAgIHZvaWQgc3lu
dGhlc2l6ZU1vdXNlRXZlbnRJZlBvc3NpYmxlKFdlYkNvcmU6OlRvdWNoRXZlbnQqKTsKKwogICAg
IHZvaWQgY2FsY3VsYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJhbWVSZWN0
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViQ29yZTo6SW50UmVjdCYgd2luZG93UmVj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
LApAQCAtMjAxLDcgKzIwNCw3IEBAIHByaXZhdGU6CiAgICAgLy8gc2Nyb2xsYmFycy4KICAgICBP
d25QdHI8U2Nyb2xsYmFyR3JvdXA+IG1fc2Nyb2xsYmFyR3JvdXA7CiAKLSAgICBib29sIG1faXNB
Y2NlcHRpbmdUb3VjaEV2ZW50czsKKyAgICBUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90b3VjaEV2
ZW50UmVxdWVzdFR5cGU7CiAgICAgYm9vbCBtX3dhbnRzV2hlZWxFdmVudHM7CiB9OwogCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2NjOWM3ODA3
YzBhZDViODQwZDRkMjZhMjFmNWNlOGUxYmQ2OWFlYy4uOTU4MGFiZmE0YjU5ZTUzMDkwYjE4Njg5
YTAyM2RlODc3YjI0NjdkNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTI3ICBTYWRydWwgSGFiaWIgQ2hv
d2RodXJ5ICA8c2FkcnVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFsbG93
IHBsdWdpbnMgdG8gb3B0LWluIHRvIHJlY2VpdmUgc3ludGhldGljIG1vdXNlIGV2ZW50cyBvdXQg
b2YgdG91Y2ggZXZlbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzMDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4KKworICAg
ICAgICBVcGRhdGUgdGhlIHRlc3Qgd2ViLXBsdWdpbiB0byBiZSBhYmxlIHRvIG9wdC1pbiB0byBy
ZWNlaXZlIHN5bnRoZXNpemVkIG1vdXNlIGV2ZW50cyBjcmVhdGVkCisgICAgICAgIGZyb20gdG91
Y2ggZXZlbnRzLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBs
dWdpbi5jcHA6CisgICAgICAgIChwYXJzZVRvdWNoRXZlbnRSZXF1ZXN0VHlwZSk6CisgICAgICAg
IChUZXN0V2ViUGx1Z2luOjpUZXN0V2ViUGx1Z2luKToKKyAgICAgICAgKFRlc3RXZWJQbHVnaW46
OmluaXRpYWxpemUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQ
bHVnaW4uaDoKKyAgICAgICAgKFRlc3RXZWJQbHVnaW4pOgorCiAyMDEyLTExLTI2ICBKYWVodW4g
TGltICA8bGphZWh1bi5saW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgVGV4dCBBdXRvc2l6aW5n
OiBBZGQgVGV4dCBBdXRvc2l6aW5nIEFQSXMgZm9yIFdLMgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmNwcAppbmRleCAyOTYwZGMwYmRkNjI2ZTdiMzkx
NmExMjA2MDNjN2ZlN2I3ZDhiZTE1Li5lYTJmZGVkMThmZjAxNThjNWY3ZTBkNTYxN2Q4NTk1NWFh
YzU2NzdjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2Vi
UGx1Z2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1
Z2luLmNwcApAQCAtMTE4LDEyICsxMTgsMjQgQEAgc3RhdGljIHZvaWQgcHJpbnRFdmVudERldGFp
bHMoY29uc3QgV2ViS2l0OjpXZWJJbnB1dEV2ZW50JiBldmVudCkKICAgICB9CiB9CiAKK3N0YXRp
YyBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlIHBhcnNl
VG91Y2hFdmVudFJlcXVlc3RUeXBlKGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKQoreworICAgIERF
RklORV9TVEFUSUNfTE9DQUwoY29uc3QgV2ViU3RyaW5nLCBrUHJpbWl0aXZlUmF3LCAoV2ViU3Ry
aW5nOjpmcm9tVVRGOCgicmF3IikpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFdl
YlN0cmluZywga1ByaW1pdGl2ZVN5bnRoZXRpYywgKFdlYlN0cmluZzo6ZnJvbVVURjgoInN5bnRo
ZXRpYyIpKSk7CisKKyAgICBpZiAoc3RyaW5nID09IGtQcmltaXRpdmVSYXcpCisgICAgICAgIHJl
dHVybiBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlUmF3
OworICAgIGlmIChzdHJpbmcgPT0ga1ByaW1pdGl2ZVN5bnRoZXRpYykKKyAgICAgICAgcmV0dXJu
IFdlYktpdDo6V2ViUGx1Z2luQ29udGFpbmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5cGVTeW50aGVz
aXplZE1vdXNlOworICAgIHJldHVybiBXZWJLaXQ6OldlYlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hF
dmVudFJlcXVlc3RUeXBlTm9uZTsKK30KKwogVGVzdFdlYlBsdWdpbjo6VGVzdFdlYlBsdWdpbihX
ZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmIHBhcmFtcykKICAgICA6IG1fZnJhbWUoZnJhbWUp
CiAgICAgLCBtX2NvbnRhaW5lcigwKQogICAgICwgbV9jb250ZXh0KDApCi0gICAgLCBtX2FjY2Vw
dHNUb3VjaEV2ZW50KGZhbHNlKQorICAgICwgbV90b3VjaEV2ZW50UmVxdWVzdChXZWJLaXQ6Oldl
YlBsdWdpbkNvbnRhaW5lcjo6VG91Y2hFdmVudFJlcXVlc3RUeXBlTm9uZSkKICAgICAsIG1fcHJp
bnRFdmVudERldGFpbHMoZmFsc2UpCiAgICAgLCBtX2NhblByb2Nlc3NEcmFnKGZhbHNlKQogewpA
QCAtMTUwLDcgKzE2Miw3IEBAIFRlc3RXZWJQbHVnaW46OlRlc3RXZWJQbHVnaW4oV2ViS2l0OjpX
ZWJGcmFtZSogZnJhbWUsCiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJp
YnV0ZU9wYWNpdHkpCiAgICAgICAgICAgICBtX3NjZW5lLm9wYWNpdHkgPSBwYXJzZU9wYWNpdHko
YXR0cmlidXRlVmFsdWUpOwogICAgICAgICBlbHNlIGlmIChhdHRyaWJ1dGVOYW1lID09IGtBdHRy
aWJ1dGVBY2NlcHRzVG91Y2gpCi0gICAgICAgICAgICBtX2FjY2VwdHNUb3VjaEV2ZW50ID0gcGFy
c2VCb29sZWFuKGF0dHJpYnV0ZVZhbHVlKTsKKyAgICAgICAgICAgIG1fdG91Y2hFdmVudFJlcXVl
c3QgPSBwYXJzZVRvdWNoRXZlbnRSZXF1ZXN0VHlwZShhdHRyaWJ1dGVWYWx1ZSk7CiAgICAgICAg
IGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZVByaW50RXZlbnREZXRhaWxzKQog
ICAgICAgICAgICAgbV9wcmludEV2ZW50RGV0YWlscyA9IHBhcnNlQm9vbGVhbihhdHRyaWJ1dGVW
YWx1ZSk7CiAgICAgICAgIGVsc2UgaWYgKGF0dHJpYnV0ZU5hbWUgPT0ga0F0dHJpYnV0ZUNhblBy
b2Nlc3NEcmFnKQpAQCAtMTgzLDcgKzE5NSw3IEBAIGJvb2wgVGVzdFdlYlBsdWdpbjo6aW5pdGlh
bGl6ZShXZWJQbHVnaW5Db250YWluZXIqIGNvbnRhaW5lcikKIAogICAgIG1fY29udGFpbmVyID0g
Y29udGFpbmVyOwogICAgIG1fY29udGFpbmVyLT5zZXRCYWNraW5nVGV4dHVyZUlkKG1fY29sb3JU
ZXh0dXJlKTsKLSAgICBtX2NvbnRhaW5lci0+c2V0SXNBY2NlcHRpbmdUb3VjaEV2ZW50cyhtX2Fj
Y2VwdHNUb3VjaEV2ZW50KTsKKyAgICBtX2NvbnRhaW5lci0+cmVxdWVzdFRvdWNoRXZlbnRUeXBl
KG1fdG91Y2hFdmVudFJlcXVlc3QpOwogICAgIG1fY29udGFpbmVyLT5zZXRXYW50c1doZWVsRXZl
bnRzKHRydWUpOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFdlYlBsdWdpbi5oCmluZGV4IDQ5ZmRlODVhYWRjMWUzMTM5MGM2ZjMwNjk2
OWRkZGI4ZTJlYjExZDUuLmU2ZjViNDdhNGYyNzc4ZmEwOGU2Y2UyY2ZjMWE3NmJlNTI5NDc4Nzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RXZWJQbHVnaW4u
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgKQEAg
LTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgVGVzdFdlYlBsdWdpbl9oCiAKICNpbmNsdWRlICJXZWJQ
bHVnaW4uaCIKKyNpbmNsdWRlICJXZWJQbHVnaW5Db250YWluZXIuaCIKICNpbmNsdWRlICJwbGF0
Zm9ybS9XZWJSZWN0LmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTMxLDcgKzEzMiw3IEBA
IHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9mcmFtZWJ1ZmZlcjsKICAgICBTY2VuZSBtX3NjZW5l
OwogCi0gICAgYm9vbCBtX2FjY2VwdHNUb3VjaEV2ZW50OworICAgIFdlYktpdDo6V2ViUGx1Z2lu
Q29udGFpbmVyOjpUb3VjaEV2ZW50UmVxdWVzdFR5cGUgbV90b3VjaEV2ZW50UmVxdWVzdDsKICAg
ICBib29sIG1fcHJpbnRFdmVudERldGFpbHM7CiAgICAgYm9vbCBtX2NhblByb2Nlc3NEcmFnOwog
fTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCAzOGY5NDhkOGU4ZjA4YmFmYWU1NzkxNzk1OGY0MjkwNTQzODY5NTUzLi5jZjY3
YTIwZjlmOGRiZjM3ZWViYTJkODg4ZTBkMzIxYWM5ODRlNjMwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMTItMTEtMjcgIFNhZHJ1bCBIYWJpYiBDaG93ZGh1cnkgIDxzYWRydWxAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWxsb3cgcGx1Z2lucyB0byBvcHQtaW4gdG8gcmVj
ZWl2ZSBzeW50aGV0aWMgbW91c2UgZXZlbnRzIG91dCBvZiB0b3VjaCBldmVudHMuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMwOTIKKworICAgICAg
ICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisgICAgICAgIEFkZCB0ZXN0IGZvciBzeW50aGVz
aXplZCBtb3VzZSBldmVudHMgZnJvbSB0b3VjaCAoYW5kIHVwZGF0ZSBleGlzdGluZyB0ZXN0cyku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1kZXRh
aWxzLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVu
dHMtc3ludGhlc2l6ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9j
aHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy5odG1s
LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLmh0bWw6
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90cmFuc2Zvcm1lZC1ldmVudHMu
aHRtbDoKKwogMjAxMi0xMS0yNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBvYmplY3QgcHJldmlldyBkb2VzIG5vdCByZW5k
ZXIgbm9kZSBpZCwgY2xhc3NOYW1lOyBsb2dzIHRvbyBtYW55IGZ1bmN0aW9ucyBmb3IgalF1ZXJ5
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3Vj
aC1ldmVudHMtZGV0YWlscy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1
Z2lucy90b3VjaC1ldmVudHMtZGV0YWlscy5odG1sCmluZGV4IDUyZjQ3YTE2Nzk0M2ExZDM0YjJl
NjQ1ZWU1MmQwOGYyZGU3Njg4NGIuLjAzZjFiMDcyNzdlM2JmZjNjNTc3MDQ0MDA4N2M2ZWZkYTU2
ZWQ2MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMv
dG91Y2gtZXZlbnRzLWRldGFpbHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1kZXRhaWxzLmh0bWwKQEAgLTksNyArOSw3IEBACiA8
L2hlYWQ+CiAKIDxib2R5PgotPGVtYmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gt
d2Via2l0LXRlc3Qtd2VicGx1Z2luIiBhY2NlcHRzLXRvdWNoPSJ0cnVlIiBwcmludC1ldmVudC1k
ZXRhaWxzPSJ0cnVlIj48L2VtYmVkPgorPGVtYmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0
aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIiBhY2NlcHRzLXRvdWNoPSJyYXciIHByaW50LWV2
ZW50LWRldGFpbHM9InRydWUiPjwvZW1iZWQ+CiA8c2NyaXB0PgogCiAgICAgaWYgKCF3aW5kb3cu
dGVzdFJ1bm5lciB8fCAhd2luZG93LmV2ZW50U2VuZGVyKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNo
LWV2ZW50cy1zeW50aGVzaXplZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2I2MmZiMjBhNWY1
ZDdmZTYxM2M3MGE3MzVkZmU2YjRkMzc0OGFkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRoZXNpemVkLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1BsdWdpbiByZWNlaXZlZCBldmVudDogTW91c2VE
b3duCisqIDEwLCAxMAorUGx1Z2luIHJlY2VpdmVkIGV2ZW50OiBNb3VzZU1vdmUKKyogMjAsIDE1
CitQbHVnaW4gcmVjZWl2ZWQgZXZlbnQ6IE1vdXNlVXAKKyogMjAsIDE1CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLXN5bnRo
ZXNpemVkLmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNo
LWV2ZW50cy1zeW50aGVzaXplZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQyYTA1MzM0OTQ1MmYxZGYwZGM1
NzhiMzQwZmFhZjg5MzBmMDAzOWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50cy1zeW50aGVzaXplZC5odG1sCkBAIC0w
LDAgKzEsMzkgQEAKKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICNwbHVnaW4geworICAgIHdp
ZHRoOiAxNTBweDsKKyAgICBoZWlnaHQ6IDE1MHB4OworICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
Cis8Ym9keT4KKzxlbWJlZCBpZD0idG91Y2hfcGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdl
YmtpdC10ZXN0LXdlYnBsdWdpbiIgYWNjZXB0cy10b3VjaD0ic3ludGhldGljIiBwcmludC1ldmVu
dC1kZXRhaWxzPSJ0cnVlIj48L2VtYmVkPjxlbWJlZCBpZD0icGx1Z2luIiB0eXBlPSJhcHBsaWNh
dGlvbi94LXdlYmtpdC10ZXN0LXdlYnBsdWdpbiI+PC9lbWJlZD4KKzxzY3JpcHQ+CisKKyAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyIHx8ICF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAg
ZG9jdW1lbnQud3JpdGUoIlRoaXMgdGVzdCBkb2VzIG5vdCB3b3JrIGluIG1hbnVhbCBtb2RlLiIp
OworICAgIH0gZWxzZSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAg
ICAgIHZhciBwb3NpdGlvblggPSBwbHVnaW4ub2Zmc2V0TGVmdCArIDEwOworICAgICAgICB2YXIg
cG9zaXRpb25ZID0gcGx1Z2luLm9mZnNldFRvcCArIDEwOworICAgICAgICBldmVudFNlbmRlci5h
ZGRUb3VjaFBvaW50KHBvc2l0aW9uWCwgcG9zaXRpb25ZKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
dG91Y2hTdGFydCgpOworICAgICAgICBldmVudFNlbmRlci5yZWxlYXNlVG91Y2hQb2ludCgwKTsK
KyAgICAgICAgZXZlbnRTZW5kZXIudG91Y2hFbmQoKTsKKworICAgICAgICBwb3NpdGlvblggPSB0
b3VjaF9wbHVnaW4ub2Zmc2V0TGVmdCArIDEwOworICAgICAgICBwb3NpdGlvblkgPSB0b3VjaF9w
bHVnaW4ub2Zmc2V0VG9wICsgMTA7CisgICAgICAgIGV2ZW50U2VuZGVyLmFkZFRvdWNoUG9pbnQo
cG9zaXRpb25YLCBwb3NpdGlvblkpOworICAgICAgICBldmVudFNlbmRlci50b3VjaFN0YXJ0KCk7
CisgICAgICAgIGV2ZW50U2VuZGVyLnVwZGF0ZVRvdWNoUG9pbnQoMCwgcG9zaXRpb25YICsgMTAs
IHBvc2l0aW9uWSArIDUpOworICAgICAgICBldmVudFNlbmRlci50b3VjaE1vdmUoKTsKKyAgICAg
ICAgZXZlbnRTZW5kZXIucmVsZWFzZVRvdWNoUG9pbnQoMCk7CisgICAgICAgIGV2ZW50U2VuZGVy
LnRvdWNoRW5kKCk7CisgICAgfQorCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RvdWNoLWV2ZW50
cy5odG1sCmluZGV4IGY3YjA3YjJmZDc0ZGE4MmZmNDM2MTRlNTUxZDk5NTE1M2FmOTc5YzguLmM0
NzRhMDRjZDg4ODc1Mzk5MWMxYTQwNDc5NDQ1ZjNjNGVjY2JkMmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdG91Y2gtZXZlbnRzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90b3VjaC1ldmVudHMuaHRtbApA
QCAtOSw3ICs5LDcgQEAKIDwvaGVhZD4KIAogPGJvZHk+Ci08ZW1iZWQgaWQ9InRvdWNoX3BsdWdp
biIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC13ZWJwbHVnaW4iIGFjY2VwdHMtdG91
Y2g9InRydWUiPjwvZW1iZWQ+PGVtYmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gt
d2Via2l0LXRlc3Qtd2VicGx1Z2luIj48L2VtYmVkPgorPGVtYmVkIGlkPSJ0b3VjaF9wbHVnaW4i
IHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIiBhY2NlcHRzLXRvdWNo
PSJyYXciPjwvZW1iZWQ+PGVtYmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Vi
a2l0LXRlc3Qtd2VicGx1Z2luIj48L2VtYmVkPgogPHNjcmlwdD4KIAogICAgIGlmICghd2luZG93
LnRlc3RSdW5uZXIgfHwgIXdpbmRvdy5ldmVudFNlbmRlcikgewpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90cmFuc2Zvcm1lZC1ldmVudHMuaHRtbCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3BsdWdpbnMvdHJhbnNmb3JtZWQtZXZlbnRz
Lmh0bWwKaW5kZXggNjQ5OTUzNWVmZWJiMjIxZWY0MTNmMGNkOWVlMmE4ZjU1Zjk0NTdkMS4uMmE2
M2YwMzUxYmRlOGQ0MDBhZjk4ZThiZjFjMjEzMmJmYjdjYTgzOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGx1Z2lucy90cmFuc2Zvcm1lZC1ldmVudHMuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wbHVnaW5zL3RyYW5zZm9ybWVkLWV2
ZW50cy5odG1sCkBAIC0xMCw3ICsxMCw3IEBACiA8L2hlYWQ+CiAKIDxib2R5PgotPGVtYmVkIGlk
PSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2luIiBhY2Nl
cHRzLXRvdWNoPSJ0cnVlIiBwcmludC1ldmVudC1kZXRhaWxzPSJ0cnVlIj48L2VtYmVkPgorPGVt
YmVkIGlkPSJwbHVnaW4iIHR5cGU9ImFwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3Qtd2VicGx1Z2lu
IiBhY2NlcHRzLXRvdWNoPSJyYXciIHByaW50LWV2ZW50LWRldGFpbHM9InRydWUiPjwvZW1iZWQ+
CiA8c2NyaXB0PgogCiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93LmV2ZW50
U2VuZGVyKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>