<?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>70431</bug_id>
          
          <creation_ts>2011-10-19 11:02:27 -0700</creation_ts>
          <short_desc>[chromium] Fix teardown in Web*LayerImpl</short_desc>
          <delta_ts>2011-10-27 13:41:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>70892</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Antoine Labour">piman</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>486887</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-19 11:02:27 -0700</bug_when>
    <thetext>Fix teardown in Web*LayerImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486888</commentid>
    <comment_count>1</comment_count>
      <attachid>111648</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-19 11:02:58 -0700</bug_when>
    <thetext>Created attachment 111648
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486889</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-19 11:05:03 -0700</bug_when>
    <thetext>Since Web*LayerImpl inherit from LayerChromium that may call into its delegate from the destructor, we need to reset the delegate before calling that base destructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486896</commentid>
    <comment_count>3</comment_count>
      <attachid>111648</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-19 11:25:00 -0700</bug_when>
    <thetext>Comment on attachment 111648
Patch

Would it be possible to make some webkit_unit_tests that exercise creating/destroying WebLayers just to check for crashes like this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487252</commentid>
    <comment_count>4</comment_count>
      <attachid>111713</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-19 19:59:59 -0700</bug_when>
    <thetext>Created attachment 111713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487253</commentid>
    <comment_count>5</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-19 20:00:42 -0700</bug_when>
    <thetext>Added tests. Also fixed a couple of missing setNeedsCommit indicated by the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487260</commentid>
    <comment_count>6</comment_count>
      <attachid>111713</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-19 20:17:58 -0700</bug_when>
    <thetext>Comment on attachment 111713
Patch

Attachment 111713 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10180240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487263</commentid>
    <comment_count>7</comment_count>
      <attachid>111713</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-19 20:22:20 -0700</bug_when>
    <thetext>Comment on attachment 111713
Patch

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

Yay tests that find bugs! R=me, few things to address while landing.

&gt; Source/WebKit/chromium/tests/WebLayerTest.cpp:16
&gt; + *     * Redistributions of source code must retain the above copyright
&gt; + * notice, this list of conditions and the following disclaimer.
&gt; + *     * Redistributions in binary form must reproduce the above
&gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; + * in the documentation and/or other materials provided with the
&gt; + * distribution.
&gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; + * contributors may be used to endorse or promote products derived from
&gt; + * this software without specific prior written permission.

we prefer 2-clause nowadays, see Source/WebCore/LICENSE-APPLE (but put Google Inc on the top line and only include the current year)

&gt; Source/WebKit/chromium/tests/WebLayerTest.cpp:128
&gt; +    EXPECT_EQ(3, textureLayer.textureId());

use &quot;3u&quot; here or the compiler will whine about signed/unsigned mismatch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487767</commentid>
    <comment_count>8</comment_count>
      <attachid>111824</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-20 12:19:05 -0700</bug_when>
    <thetext>Created attachment 111824
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487768</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-20 12:19:29 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 111713 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111713&amp;action=review
&gt; 
&gt; Yay tests that find bugs! R=me, few things to address while landing.
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/WebLayerTest.cpp:16
&gt; &gt; + *     * Redistributions of source code must retain the above copyright
&gt; &gt; + * notice, this list of conditions and the following disclaimer.
&gt; &gt; + *     * Redistributions in binary form must reproduce the above
&gt; &gt; + * copyright notice, this list of conditions and the following disclaimer
&gt; &gt; + * in the documentation and/or other materials provided with the
&gt; &gt; + * distribution.
&gt; &gt; + *     * Neither the name of Google Inc. nor the names of its
&gt; &gt; + * contributors may be used to endorse or promote products derived from
&gt; &gt; + * this software without specific prior written permission.
&gt; 
&gt; we prefer 2-clause nowadays, see Source/WebCore/LICENSE-APPLE (but put Google Inc on the top line and only include the current year)

Done.

&gt; 
&gt; &gt; Source/WebKit/chromium/tests/WebLayerTest.cpp:128
&gt; &gt; +    EXPECT_EQ(3, textureLayer.textureId());
&gt; 
&gt; use &quot;3u&quot; here or the compiler will whine about signed/unsigned mismatch

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488692</commentid>
    <comment_count>10</comment_count>
      <attachid>112027</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-21 15:03:32 -0700</bug_when>
    <thetext>Created attachment 112027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488697</commentid>
    <comment_count>11</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-21 15:05:04 -0700</bug_when>
    <thetext>Previous patch was breaking LayerChromiumTest (testing the wrong assumption). Fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490343</commentid>
    <comment_count>12</comment_count>
      <attachid>112027</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 14:09:19 -0700</bug_when>
    <thetext>Comment on attachment 112027
Patch

Clearing flags on attachment: 112027

Committed r98393: &lt;http://trac.webkit.org/changeset/98393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490344</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-25 14:09:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491196</commentid>
    <comment_count>14</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 14:46:30 -0700</bug_when>
    <thetext>Reopenning to reland once http://codereview.chromium.org/8404008 is in (that should fix it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491269</commentid>
    <comment_count>15</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-26 16:35:57 -0700</bug_when>
    <thetext>After that lands make sure that Source/WebKit/chromium/DEPS points to a chromium rev including the change so it gets picked up on the build.webkit.org bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491329</commentid>
    <comment_count>16</comment_count>
      <attachid>112633</attachid>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 19:31:31 -0700</bug_when>
    <thetext>Created attachment 112633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491330</commentid>
    <comment_count>17</comment_count>
    <who name="Antoine Labour">piman</who>
    <bug_when>2011-10-26 19:31:55 -0700</bug_when>
    <thetext>New patch with DEPS roll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491879</commentid>
    <comment_count>18</comment_count>
      <attachid>112633</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-27 13:38:16 -0700</bug_when>
    <thetext>Comment on attachment 112633
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491884</commentid>
    <comment_count>19</comment_count>
      <attachid>112633</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-27 13:41:13 -0700</bug_when>
    <thetext>Comment on attachment 112633
Patch

Clearing flags on attachment: 112633

Committed r98630: &lt;http://trac.webkit.org/changeset/98630&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491885</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-10-27 13:41:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111648</attachid>
            <date>2011-10-19 11:02:58 -0700</date>
            <delta_ts>2011-10-19 19:59:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70431-20111019110257.patch</filename>
            <type>text/plain</type>
            <size>2583</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZGMzOWU1ODcyMmE4MGFlZjBjOGNhZGZiMWUzYTIwNjAyOTJlMzQ2Mi4uNWEyMzFiNzMxNGI3ZjBi
OTJiMzJjNGU1NTA4YzQ3YzJmMjk1ZTRhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRml4IHRlYXJkb3duIGluIFdlYipMYXllckltcGwKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDMxCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViQ29udGVudExh
eWVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRlbnRMYXllckltcGw6On5XZWJD
b250ZW50TGF5ZXJJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsOjp+
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKToKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJJbXBsOjp+V2ViTGF5ZXJJbXBsKToKKwog
MjAxMS0xMC0xOSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IG1ha2UgZXh0ZW5zaW9uIHRlc3RzIHBhc3Mgb24gY2hyb21pdW0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllcklt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5j
cHAKaW5kZXggZjY0MWU2Y2EwNzI5NGI5Nzk1NDc3ZDRlMjAyMmU4OTllYWIxYzI3YS4uMGI3MDRm
NTg2NGE0NWVmYzQyMDY3ZjBiOGEyYjFkNjA0YzYxZDY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5jcHAKQEAgLTU0LDYgKzU0LDcg
QEAgV2ViQ29udGVudExheWVySW1wbDo6V2ViQ29udGVudExheWVySW1wbChXZWJMYXllckNsaWVu
dCogY2xpZW50LCBXZWJDb250ZW50TGF5ZXIKIAogV2ViQ29udGVudExheWVySW1wbDo6fldlYkNv
bnRlbnRMYXllckltcGwoKQogeworICAgIHNldERlbGVnYXRlKDApOwogfQogCiB2b2lkIFdlYkNv
bnRlbnRMYXllckltcGw6OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllckltcGwuY3BwCmluZGV4IDVjNDc4NmUyMTBhYmU2ZjZkNzEyMDM2OTQ1NjFkMTk3NmIwNjgz
MDkuLjc0Mzc4NmY0MDE4MTE0NjI1NThkMWRlMWNlMjQzZTA5ZTEwN2E3MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXJJbXBsLmNwcApAQCAtNDgsNiArNDgsNyBAQCBXZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6
OldlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbChXZWJMYXllckNsaWVudCogY2xpZW50KQogCiBX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6On5XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwo
KQogeworICAgIHNldERlbGVnYXRlKDApOwogfQogCiBib29sIFdlYkV4dGVybmFsVGV4dHVyZUxh
eWVySW1wbDo6ZHJhd3NDb250ZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYXllckltcGwuY3BwCmluZGV4IDA5ODEzMjFlZDIwZWRkODgyYWMwNzIxMDZmMjNjM2E1
M2U1ZTI4YjEuLmUzNDYyOGZhY2QzMjdmNzQ1YTczNDI4OWFhNjAxNmEwMTQxYWUxYjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcApAQCAtNDMsNiArNDMs
NyBAQCBXZWJMYXllckltcGw6OldlYkxheWVySW1wbChXZWJMYXllckNsaWVudCogY2xpZW50KSA6
IExheWVyQ2hyb21pdW0odGhpcyksIG1fY2xpZQogCiBXZWJMYXllckltcGw6On5XZWJMYXllcklt
cGwoKQogeworICAgIHNldERlbGVnYXRlKDApOwogfQogCiBib29sIFdlYkxheWVySW1wbDo6ZHJh
d3NDb250ZW50KCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111713</attachid>
            <date>2011-10-19 19:59:59 -0700</date>
            <delta_ts>2011-10-20 12:19:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70431-20111019195958.patch</filename>
            <type>text/plain</type>
            <size>11618</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZGMzOWU1ODcyMmE4MGFlZjBjOGNhZGZiMWUzYTIwNjAyOTJlMzQ2Mi4uZDZjNzc4NTNiYzUzZmE3
MTE1ZWMwZjQ4Zjk4MDM3ZGNiMGEzMjU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRml4IHRlYXJkb3duIGluIFdlYipMYXllckltcGwsIGFuZCBhZGQg
dGVzdHMgZm9yIFdlYipMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAq
IHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6On5XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwp
OgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
YXllckltcGw6On5XZWJMYXllckltcGwpOgorCiAyMDExLTEwLTE5ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBleHRl
bnNpb24gdGVzdHMgcGFzcyBvbiBjaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDJiNjhm
NTU2NTkzNTBjMzJlNTU0MTliMmVlYTYxMDhlNjQwNjg3MDQuLjk5ZDFmZjYzMGIxZDZhOWU2ODE5
ZmNkZmNkOWM3YTYwYTAxZjU0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTk1LDEzICs5NSwx
MyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgYm91bmRzKCkgY29uc3QgeyByZXR1cm4g
bV9ib3VuZHM7IH0KICAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0IHsg
cmV0dXJuIGJvdW5kcygpOyB9CiAKLSAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNr
c1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHM7IH0KKyAgICB2b2lk
IHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9
IG1hc2tzVG9Cb3VuZHM7IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBib29sIG1hc2tzVG9Cb3Vu
ZHMoKSBjb25zdCB7IHJldHVybiBtX21hc2tzVG9Cb3VuZHM7IH0KIAogICAgIHZvaWQgc2V0TmFt
ZShjb25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KIAotICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tM
YXllcikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgfQorICAgIHZvaWQgc2V0TWFza0xheWVy
KExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgc2V0
TmVlZHNDb21taXQoKTsgfQogICAgIExheWVyQ2hyb21pdW0qIG1hc2tMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fbWFza0xheWVyLmdldCgpOyB9CiAKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheShj
b25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpp
bmRleCA5MWVkZTRhNTk3N2RmYTcwZWYzMDQ4ZWViZTRhZjU4ZGM1NzZlYmI3Li42MmU2NThiYmY2
YWVlZTk2ODU4MDc1NmU0ZTQyYTA1ZWYxOGNkYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cGkKQEAgLTgyLDYgKzgyLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9UcmVlVGVzdEhlbHBl
cnMuaCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRvckltcGxUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMv
V2ViTGF5ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViVVJMUmVxdWVzdFRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJWaWV3VGVzdC5jcHAnLAogICAgICAgICBdLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNw
cAppbmRleCBmNjQxZTZjYTA3Mjk0Yjk3OTU0NzdkNGUyMDIyZTg5OWVhYjFjMjdhLi5lNTNhY2Zk
YzU5YjE0ZTJkZjcxMGEzYTFjNjlkMjFiNjQ5YWE0NWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcApAQCAtNTQsMTEgKzU0LDEz
IEBAIFdlYkNvbnRlbnRMYXllckltcGw6OldlYkNvbnRlbnRMYXllckltcGwoV2ViTGF5ZXJDbGll
bnQqIGNsaWVudCwgV2ViQ29udGVudExheWVyCiAKIFdlYkNvbnRlbnRMYXllckltcGw6On5XZWJD
b250ZW50TGF5ZXJJbXBsKCkKIHsKKyAgICBzZXREZWxlZ2F0ZSgwKTsKIH0KIAogdm9pZCBXZWJD
b250ZW50TGF5ZXJJbXBsOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBkcmF3c0NvbnRlbnQpCiB7CiAg
ICAgbV9kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQ7CisgICAgc2V0TmVlZHNDb21taXQoKTsK
IH0KIAogYm9vbCBXZWJDb250ZW50TGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVy
ZUxheWVySW1wbC5jcHAKaW5kZXggNWM0Nzg2ZTIxMGFiZTZmNmQ3MTIwMzY5NDU2MWQxOTc2YjA2
ODMwOS4uNzQzNzg2ZjQwMTgxMTQ2MjU1OGQxZGUxY2UyNDNlMDllMTA3YTcwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllckltcGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQpCiAK
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbDo6fldlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bCgpCiB7CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVySW1wbC5jcHAKaW5kZXggMDk4MTMyMWVkMjBlZGQ4ODJhYzA3MjEwNmYyM2Mz
YTUzZTVlMjhiMS4uZTM0NjI4ZmFjZDMyN2Y3NDVhNzM0Mjg5YWE2MDE2YTAxNDFhZTFiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwCkBAIC00Myw2ICs0
Myw3IEBAIFdlYkxheWVySW1wbDo6V2ViTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQp
IDogTGF5ZXJDaHJvbWl1bSh0aGlzKSwgbV9jbGllCiAKIFdlYkxheWVySW1wbDo6fldlYkxheWVy
SW1wbCgpCiB7CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViTGF5ZXJJbXBsOjpk
cmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJMYXllclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJM
YXllclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZTRjOGY0ZjY1OGQ1ZGI0YmMwYWZiNTllYTA5NzUx
ODZlMGI1NTMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYkxheWVyVGVzdC5jcHAKQEAgLTAsMCArMSwxODggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViTGF5ZXIuaCIKKworI2luY2x1ZGUgIldlYkNvbnRlbnRMYXllci5oIgorI2lu
Y2x1ZGUgIldlYkNvbnRlbnRMYXllckNsaWVudC5oIgorI2luY2x1ZGUgIldlYkV4dGVybmFsVGV4
dHVyZUxheWVyLmgiCisjaW5jbHVkZSAiV2ViRmxvYXRQb2ludC5oIgorI2luY2x1ZGUgIldlYkxh
eWVyQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViUmVjdC5oIgorI2luY2x1ZGUgIldlYlNpemUuaCIK
KworI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Cit1
c2luZyBuYW1lc3BhY2UgdGVzdGluZzsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgTW9ja1dlYkxh
eWVyQ2xpZW50IDogcHVibGljIFdlYkxheWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBNT0NLX01F
VEhPRDAobm90aWZ5TmVlZHNDb21wb3NpdGUsIHZvaWQoKSk7Cit9OworCitjbGFzcyBNb2NrV2Vi
Q29udGVudExheWVyQ2xpZW50IDogcHVibGljIFdlYkNvbnRlbnRMYXllckNsaWVudCB7CitwdWJs
aWM6CisgICAgTU9DS19NRVRIT0QyKHBhaW50Q29udGVudHMsIHZvaWQoV2ViQ2FudmFzKiwgY29u
c3QgV2ViUmVjdCYgY2xpcCkpOworfTsKKworY2xhc3MgV2ViTGF5ZXJUZXN0IDogcHVibGljIFRl
c3QgeworcHVibGljOgorICAgIFdlYkxheWVyVGVzdCgpIHsgfQorfTsKKworLy8gVGVzdHMgdGhh
dCB0aGUgY2xpZW50IGdldHMgY2FsbGVkIHRvIGFzayBmb3IgYSBjb21wb3NpdGUgaWYgd2UgY2hh
bmdlIHRoZQorLy8gZmllbGRzLgorVEVTVF9GKFdlYkxheWVyVGVzdCwgQ2xpZW50KQoreworICAg
IC8vIEJhc2UgbGF5ZXIuCisgICAgTW9ja1dlYkxheWVyQ2xpZW50IGNsaWVudDsKKyAgICBFWFBF
Q1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEFueU51bWJlcigp
KTsKKyAgICBXZWJMYXllciBsYXllciA9IFdlYkxheWVyOjpjcmVhdGUoJmNsaWVudCk7CisgICAg
TW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisKKyAgICBXZWJGbG9h
dFBvaW50IHBvaW50KDMsIDQpOworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHND
b21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgbGF5ZXIuc2V0QW5jaG9yUG9pbnQo
cG9pbnQpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOwor
ICAgIEVYUEVDVF9FUShwb2ludCwgbGF5ZXIuYW5jaG9yUG9pbnQoKSk7CisKKyAgICBFWFBFQ1Rf
Q0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOwor
ICAgIGxheWVyLnNldEFuY2hvclBvaW50Wig1KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4
cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfRVEoNSwgbGF5ZXIuYW5jaG9yUG9pbnRa
KCkpOworCisgICAgV2ViU2l6ZSBzaXplKDcsIDgpOworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwg
bm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgbGF5ZXIuc2V0
Qm91bmRzKHNpemUpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGll
bnQpOworICAgIEVYUEVDVF9FUShzaXplLCBsYXllci5ib3VuZHMoKSk7CisKKyAgICBFWFBFQ1Rf
Q0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOwor
ICAgIGxheWVyLnNldE1hc2tzVG9Cb3VuZHModHJ1ZSk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xl
YXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIubWFza3NUb0Jv
dW5kcygpKTsKKworICAgIE1vY2tXZWJMYXllckNsaWVudCBvdGhlckNsaWVudDsKKyAgICBFWFBF
Q1RfQ0FMTChvdGhlckNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVt
YmVyKCkpOworICAgIFdlYkxheWVyIG90aGVyTGF5ZXIgPSBXZWJMYXllcjo6Y3JlYXRlKCZvdGhl
ckNsaWVudCk7CisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgp
KS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICBsYXllci5zZXRNYXNrTGF5ZXIob3RoZXJMYXllcik7
CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQ
RUNUX0VRKG90aGVyTGF5ZXIsIGxheWVyLm1hc2tMYXllcigpKTsKKworICAgIEVYUEVDVF9DQUxM
KGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAg
ZmxvYXQgb3BhY2l0eSA9IDAuMTIzOworICAgIGxheWVyLnNldE9wYWNpdHkob3BhY2l0eSk7Cisg
ICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNU
X0VRKG9wYWNpdHksIGxheWVyLm9wYWNpdHkoKSk7CisKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQs
IG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOworICAgIGxheWVyLnNl
dE9wYXF1ZSh0cnVlKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xp
ZW50KTsKKyAgICBFWFBFQ1RfVFJVRShsYXllci5vcGFxdWUoKSk7CisKKyAgICBFWFBFQ1RfQ0FM
TChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOworICAg
IGxheWVyLnNldFBvc2l0aW9uKHBvaW50KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVj
dGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfRVEocG9pbnQsIGxheWVyLnBvc2l0aW9uKCkp
OworCisgICAgLy8gVGV4dHVyZSBsYXllci4KKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlm
eU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEFueU51bWJlcigpKTsKKyAgICBXZWJFeHRlcm5hbFRl
eHR1cmVMYXllciB0ZXh0dXJlTGF5ZXIgPSBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6Y3JlYXRl
KCZjbGllbnQpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQp
OworCisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1l
cyhBdExlYXN0KDEpKTsKKyAgICB0ZXh0dXJlTGF5ZXIuc2V0VGV4dHVyZUlkKDMpOworICAgIE1v
Y2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9FUSgz
LCB0ZXh0dXJlTGF5ZXIudGV4dHVyZUlkKCkpOworCisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBu
b3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICB0ZXh0dXJlTGF5
ZXIuc2V0RmxpcHBlZCh0cnVlKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9u
cygmY2xpZW50KTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXh0dXJlTGF5ZXIuZmxpcHBlZCgpKTsKKwor
CisgICAgLy8gQ29udGVudCBsYXllci4KKyAgICBNb2NrV2ViQ29udGVudExheWVyQ2xpZW50IGNv
bnRlbnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29udGVudENsaWVudCwgcGFpbnRDb250ZW50
cyhfLCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90
aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkNvbnRlbnRM
YXllciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgmY2xpZW50LCAmY29u
dGVudENsaWVudCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVu
dCk7CisKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRp
bWVzKEF0TGVhc3QoMSkpOworICAgIGNvbnRlbnRMYXllci5zZXREcmF3c0NvbnRlbnQoZmFsc2Up
OworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVY
UEVDVF9GQUxTRShjb250ZW50TGF5ZXIuZHJhd3NDb250ZW50KCkpOworfQorCitURVNUX0YoV2Vi
TGF5ZXJUZXN0LCBIaWVyYXJjaHkpCit7CisgICAgTW9ja1dlYkxheWVyQ2xpZW50IGNsaWVudDsK
KyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEFu
eU51bWJlcigpKTsKKyAgICBXZWJMYXllciBsYXllcjEgPSBXZWJMYXllcjo6Y3JlYXRlKCZjbGll
bnQpOworICAgIFdlYkxheWVyIGxheWVyMiA9IFdlYkxheWVyOjpjcmVhdGUoJmNsaWVudCk7CisK
KyAgICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxsKCkpOworICAgIEVYUEVDVF9U
UlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBsYXllcjEuYWRkQ2hpbGQobGF5
ZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxsKCkpOworICAgIEVY
UEVDVF9FUShsYXllcjEsIGxheWVyMi5wYXJlbnQoKSk7CisKKyAgICBsYXllcjIucmVtb3ZlRnJv
bVBhcmVudCgpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisK
KyAgICBsYXllcjEuYWRkQ2hpbGQobGF5ZXIyKTsKKyAgICBFWFBFQ1RfRVEobGF5ZXIxLCBsYXll
cjIucGFyZW50KCkpOworICAgIGxheWVyMS5yZW1vdmVBbGxDaGlsZHJlbigpOworICAgIEVYUEVD
VF9UUlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBNb2NrV2ViQ29udGVudExh
eWVyQ2xpZW50IGNvbnRlbnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29udGVudENsaWVudCwg
cGFpbnRDb250ZW50cyhfLCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkNvbnRlbnRM
YXllciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgmY2xpZW50LCAmY29u
dGVudENsaWVudCk7CisgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgdGV4dHVyZUxheWVyID0g
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSgmY2xpZW50KTsKKworICAgIHRleHR1cmVM
YXllci5hZGRDaGlsZChjb250ZW50TGF5ZXIpOworICAgIGNvbnRlbnRMYXllci5hZGRDaGlsZChs
YXllcjEpOworICAgIGxheWVyMS5hZGRDaGlsZChsYXllcjIpOworCisgICAgLy8gUmVsZWFzZSBy
ZWZlcmVuY2Ugb24gYWxsIGxheWVycywgY2hlY2tpbmcgdGhhdCBkZXN0cnVjdGlvbiAod2hpY2gg
bWF5CisgICAgLy8gZ2VuZXJhdGUgY2FsbHMgdG8gdGhlIGNsaWVudCkgZG9lc24ndCBjcmFzaC4K
KyAgICBsYXllcjIucmVzZXQoKTsKKyAgICBsYXllcjEucmVzZXQoKTsKKyAgICBjb250ZW50TGF5
ZXIucmVzZXQoKTsKKyAgICB0ZXh0dXJlTGF5ZXIucmVzZXQoKTsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111824</attachid>
            <date>2011-10-20 12:19:05 -0700</date>
            <delta_ts>2011-10-21 15:03:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70431-20111020121904.patch</filename>
            <type>text/plain</type>
            <size>11444</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4NzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
ZGMzOWU1ODcyMmE4MGFlZjBjOGNhZGZiMWUzYTIwNjAyOTJlMzQ2Mi4uZDZjNzc4NTNiYzUzZmE3
MTE1ZWMwZjQ4Zjk4MDM3ZGNiMGEzMjU2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRml4IHRlYXJkb3duIGluIFdlYipMYXllckltcGwsIGFuZCBhZGQg
dGVzdHMgZm9yIFdlYipMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAq
IHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6On5XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwp
OgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
YXllckltcGw6On5XZWJMYXllckltcGwpOgorCiAyMDExLTEwLTE5ICBBbmRyZXkgS29zeWFrb3Yg
IDxjYXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogbWFrZSBleHRl
bnNpb24gdGVzdHMgcGFzcyBvbiBjaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDJiNjhm
NTU2NTkzNTBjMzJlNTU0MTliMmVlYTYxMDhlNjQwNjg3MDQuLjk5ZDFmZjYzMGIxZDZhOWU2ODE5
ZmNkZmNkOWM3YTYwYTAxZjU0MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTk1LDEzICs5NSwx
MyBAQCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgYm91bmRzKCkgY29uc3QgeyByZXR1cm4g
bV9ib3VuZHM7IH0KICAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0IHsg
cmV0dXJuIGJvdW5kcygpOyB9CiAKLSAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNr
c1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHM7IH0KKyAgICB2b2lk
IHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9
IG1hc2tzVG9Cb3VuZHM7IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBib29sIG1hc2tzVG9Cb3Vu
ZHMoKSBjb25zdCB7IHJldHVybiBtX21hc2tzVG9Cb3VuZHM7IH0KIAogICAgIHZvaWQgc2V0TmFt
ZShjb25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVy
biBtX25hbWU7IH0KIAotICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tM
YXllcikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgfQorICAgIHZvaWQgc2V0TWFza0xheWVy
KExheWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgc2V0
TmVlZHNDb21taXQoKTsgfQogICAgIExheWVyQ2hyb21pdW0qIG1hc2tMYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fbWFza0xheWVyLmdldCgpOyB9CiAKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheShj
b25zdCBGbG9hdFJlY3QmIGRpcnR5UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpp
bmRleCA5MWVkZTRhNTk3N2RmYTcwZWYzMDQ4ZWViZTRhZjU4ZGM1NzZlYmI3Li42MmU2NThiYmY2
YWVlZTk2ODU4MDc1NmU0ZTQyYTA1ZWYxOGNkYmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0
Lmd5cGkKQEAgLTgyLDYgKzgyLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9UcmVlVGVzdEhlbHBl
cnMuaCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRvckltcGxUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMv
V2ViTGF5ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViVVJMUmVxdWVzdFRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJWaWV3VGVzdC5jcHAnLAogICAgICAgICBdLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNw
cAppbmRleCBmNjQxZTZjYTA3Mjk0Yjk3OTU0NzdkNGUyMDIyZTg5OWVhYjFjMjdhLi5lNTNhY2Zk
YzU5YjE0ZTJkZjcxMGEzYTFjNjlkMjFiNjQ5YWE0NWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcApAQCAtNTQsMTEgKzU0LDEz
IEBAIFdlYkNvbnRlbnRMYXllckltcGw6OldlYkNvbnRlbnRMYXllckltcGwoV2ViTGF5ZXJDbGll
bnQqIGNsaWVudCwgV2ViQ29udGVudExheWVyCiAKIFdlYkNvbnRlbnRMYXllckltcGw6On5XZWJD
b250ZW50TGF5ZXJJbXBsKCkKIHsKKyAgICBzZXREZWxlZ2F0ZSgwKTsKIH0KIAogdm9pZCBXZWJD
b250ZW50TGF5ZXJJbXBsOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBkcmF3c0NvbnRlbnQpCiB7CiAg
ICAgbV9kcmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQ7CisgICAgc2V0TmVlZHNDb21taXQoKTsK
IH0KIAogYm9vbCBXZWJDb250ZW50TGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVy
ZUxheWVySW1wbC5jcHAKaW5kZXggNWM0Nzg2ZTIxMGFiZTZmNmQ3MTIwMzY5NDU2MWQxOTc2YjA2
ODMwOS4uNzQzNzg2ZjQwMTgxMTQ2MjU1OGQxZGUxY2UyNDNlMDllMTA3YTcwMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBs
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVM
YXllckltcGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bDo6V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQpCiAK
IFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbDo6fldlYkV4dGVybmFsVGV4dHVyZUxheWVySW1w
bCgpCiB7CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVySW1wbC5jcHAKaW5kZXggMDk4MTMyMWVkMjBlZGQ4ODJhYzA3MjEwNmYyM2Mz
YTUzZTVlMjhiMS4uZTM0NjI4ZmFjZDMyN2Y3NDVhNzM0Mjg5YWE2MDE2YTAxNDFhZTFiNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwCkBAIC00Myw2ICs0
Myw3IEBAIFdlYkxheWVySW1wbDo6V2ViTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQp
IDogTGF5ZXJDaHJvbWl1bSh0aGlzKSwgbV9jbGllCiAKIFdlYkxheWVySW1wbDo6fldlYkxheWVy
SW1wbCgpCiB7CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViTGF5ZXJJbXBsOjpk
cmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJMYXllclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJM
YXllclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NDE3YTdmMWQyMjZmYTE0ZjIyN2Y4ZjQ0MmUxYzhh
ZGIzNDJmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYkxheWVyVGVzdC5jcHAKQEAgLTAsMCArMSwxODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJMYXllci5oIgorCisjaW5jbHVkZSAiV2ViQ29u
dGVudExheWVyLmgiCisjaW5jbHVkZSAiV2ViQ29udGVudExheWVyQ2xpZW50LmgiCisjaW5jbHVk
ZSAiV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJGbG9hdFBvaW50Lmgi
CisjaW5jbHVkZSAiV2ViTGF5ZXJDbGllbnQuaCIKKyNpbmNsdWRlICJXZWJSZWN0LmgiCisjaW5j
bHVkZSAiV2ViU2l6ZS5oIgorCisjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSB0ZXN0aW5nOworCituYW1lc3BhY2Ugewor
CitjbGFzcyBNb2NrV2ViTGF5ZXJDbGllbnQgOiBwdWJsaWMgV2ViTGF5ZXJDbGllbnQgeworcHVi
bGljOgorICAgIE1PQ0tfTUVUSE9EMChub3RpZnlOZWVkc0NvbXBvc2l0ZSwgdm9pZCgpKTsKK307
CisKK2NsYXNzIE1vY2tXZWJDb250ZW50TGF5ZXJDbGllbnQgOiBwdWJsaWMgV2ViQ29udGVudExh
eWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBNT0NLX01FVEhPRDIocGFpbnRDb250ZW50cywgdm9p
ZChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBjbGlwKSk7Cit9OworCitjbGFzcyBXZWJMYXll
clRlc3QgOiBwdWJsaWMgVGVzdCB7CitwdWJsaWM6CisgICAgV2ViTGF5ZXJUZXN0KCkgeyB9Cit9
OworCisvLyBUZXN0cyB0aGF0IHRoZSBjbGllbnQgZ2V0cyBjYWxsZWQgdG8gYXNrIGZvciBhIGNv
bXBvc2l0ZSBpZiB3ZSBjaGFuZ2UgdGhlCisvLyBmaWVsZHMuCitURVNUX0YoV2ViTGF5ZXJUZXN0
LCBDbGllbnQpCit7CisgICAgLy8gQmFzZSBsYXllci4KKyAgICBNb2NrV2ViTGF5ZXJDbGllbnQg
Y2xpZW50OworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSku
VGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkxheWVyIGxheWVyID0gV2ViTGF5ZXI6OmNyZWF0
ZSgmY2xpZW50KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50
KTsKKworICAgIFdlYkZsb2F0UG9pbnQgcG9pbnQoMywgNCk7CisgICAgRVhQRUNUX0NBTEwoY2xp
ZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICBsYXll
ci5zZXRBbmNob3JQb2ludChwb2ludCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3Rh
dGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKHBvaW50LCBsYXllci5hbmNob3JQb2ludCgp
KTsKKworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGlt
ZXMoQXRMZWFzdCgxKSk7CisgICAgZmxvYXQgYW5jaG9yWiA9IDU7CisgICAgbGF5ZXIuc2V0QW5j
aG9yUG9pbnRaKGFuY2hvclopOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25z
KCZjbGllbnQpOworICAgIEVYUEVDVF9FUShhbmNob3JaLCBsYXllci5hbmNob3JQb2ludFooKSk7
CisKKyAgICBXZWJTaXplIHNpemUoNywgOCk7CisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3Rp
ZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICBsYXllci5zZXRCb3Vu
ZHMoc2l6ZSk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7
CisgICAgRVhQRUNUX0VRKHNpemUsIGxheWVyLmJvdW5kcygpKTsKKworICAgIEVYUEVDVF9DQUxM
KGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAg
bGF5ZXIuc2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4
cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfVFJVRShsYXllci5tYXNrc1RvQm91bmRz
KCkpOworCisgICAgTW9ja1dlYkxheWVyQ2xpZW50IG90aGVyQ2xpZW50OworICAgIEVYUEVDVF9D
QUxMKG90aGVyQ2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBbnlOdW1iZXIo
KSk7CisgICAgV2ViTGF5ZXIgb3RoZXJMYXllciA9IFdlYkxheWVyOjpjcmVhdGUoJm90aGVyQ2xp
ZW50KTsKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRp
bWVzKEF0TGVhc3QoMSkpOworICAgIGxheWVyLnNldE1hc2tMYXllcihvdGhlckxheWVyKTsKKyAg
ICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1Rf
RVEob3RoZXJMYXllciwgbGF5ZXIubWFza0xheWVyKCkpOworCisgICAgRVhQRUNUX0NBTEwoY2xp
ZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICBmbG9h
dCBvcGFjaXR5ID0gMC4xMjM7CisgICAgbGF5ZXIuc2V0T3BhY2l0eShvcGFjaXR5KTsKKyAgICBN
b2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfRVEo
b3BhY2l0eSwgbGF5ZXIub3BhY2l0eSgpKTsKKworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90
aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgbGF5ZXIuc2V0T3Bh
cXVlKHRydWUpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQp
OworICAgIEVYUEVDVF9UUlVFKGxheWVyLm9wYXF1ZSgpKTsKKworICAgIEVYUEVDVF9DQUxMKGNs
aWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgbGF5
ZXIuc2V0UG9zaXRpb24ocG9pbnQpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRp
b25zKCZjbGllbnQpOworICAgIEVYUEVDVF9FUShwb2ludCwgbGF5ZXIucG9zaXRpb24oKSk7CisK
KyAgICAvLyBUZXh0dXJlIGxheWVyLgorICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVl
ZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkV4dGVybmFsVGV4dHVy
ZUxheWVyIHRleHR1cmVMYXllciA9IFdlYkV4dGVybmFsVGV4dHVyZUxheWVyOjpjcmVhdGUoJmNs
aWVudCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisK
KyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0
TGVhc3QoMSkpOworICAgIHRleHR1cmVMYXllci5zZXRUZXh0dXJlSWQoMyk7CisgICAgTW9jazo6
VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKDN1LCB0
ZXh0dXJlTGF5ZXIudGV4dHVyZUlkKCkpOworCisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3Rp
ZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICB0ZXh0dXJlTGF5ZXIu
c2V0RmxpcHBlZCh0cnVlKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygm
Y2xpZW50KTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXh0dXJlTGF5ZXIuZmxpcHBlZCgpKTsKKworCisg
ICAgLy8gQ29udGVudCBsYXllci4KKyAgICBNb2NrV2ViQ29udGVudExheWVyQ2xpZW50IGNvbnRl
bnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29udGVudENsaWVudCwgcGFpbnRDb250ZW50cyhf
LCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5
TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkNvbnRlbnRMYXll
ciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgmY2xpZW50LCAmY29udGVu
dENsaWVudCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7
CisKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVz
KEF0TGVhc3QoMSkpOworICAgIGNvbnRlbnRMYXllci5zZXREcmF3c0NvbnRlbnQoZmFsc2UpOwor
ICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVD
VF9GQUxTRShjb250ZW50TGF5ZXIuZHJhd3NDb250ZW50KCkpOworfQorCitURVNUX0YoV2ViTGF5
ZXJUZXN0LCBIaWVyYXJjaHkpCit7CisgICAgTW9ja1dlYkxheWVyQ2xpZW50IGNsaWVudDsKKyAg
ICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEFueU51
bWJlcigpKTsKKyAgICBXZWJMYXllciBsYXllcjEgPSBXZWJMYXllcjo6Y3JlYXRlKCZjbGllbnQp
OworICAgIFdlYkxheWVyIGxheWVyMiA9IFdlYkxheWVyOjpjcmVhdGUoJmNsaWVudCk7CisKKyAg
ICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxsKCkpOworICAgIEVYUEVDVF9UUlVF
KGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBsYXllcjEuYWRkQ2hpbGQobGF5ZXIy
KTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxsKCkpOworICAgIEVYUEVD
VF9FUShsYXllcjEsIGxheWVyMi5wYXJlbnQoKSk7CisKKyAgICBsYXllcjIucmVtb3ZlRnJvbVBh
cmVudCgpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAg
ICBsYXllcjEuYWRkQ2hpbGQobGF5ZXIyKTsKKyAgICBFWFBFQ1RfRVEobGF5ZXIxLCBsYXllcjIu
cGFyZW50KCkpOworICAgIGxheWVyMS5yZW1vdmVBbGxDaGlsZHJlbigpOworICAgIEVYUEVDVF9U
UlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBNb2NrV2ViQ29udGVudExheWVy
Q2xpZW50IGNvbnRlbnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29udGVudENsaWVudCwgcGFp
bnRDb250ZW50cyhfLCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkNvbnRlbnRMYXll
ciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgmY2xpZW50LCAmY29udGVu
dENsaWVudCk7CisgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgdGV4dHVyZUxheWVyID0gV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSgmY2xpZW50KTsKKworICAgIHRleHR1cmVMYXll
ci5hZGRDaGlsZChjb250ZW50TGF5ZXIpOworICAgIGNvbnRlbnRMYXllci5hZGRDaGlsZChsYXll
cjEpOworICAgIGxheWVyMS5hZGRDaGlsZChsYXllcjIpOworCisgICAgLy8gUmVsZWFzZSByZWZl
cmVuY2Ugb24gYWxsIGxheWVycywgY2hlY2tpbmcgdGhhdCBkZXN0cnVjdGlvbiAod2hpY2ggbWF5
CisgICAgLy8gZ2VuZXJhdGUgY2FsbHMgdG8gdGhlIGNsaWVudCkgZG9lc24ndCBjcmFzaC4KKyAg
ICBsYXllcjIucmVzZXQoKTsKKyAgICBsYXllcjEucmVzZXQoKTsKKyAgICBjb250ZW50TGF5ZXIu
cmVzZXQoKTsKKyAgICB0ZXh0dXJlTGF5ZXIucmVzZXQoKTsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112027</attachid>
            <date>2011-10-21 15:03:32 -0700</date>
            <delta_ts>2011-10-26 19:31:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70431-20111021150331.patch</filename>
            <type>text/plain</type>
            <size>13741</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTgxMzMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
Y2ViM2M3YjdjOGY1ZWM5MjdkMzhkOWM0MDBmN2Q4NjJmNjhlMTk2Mi4uMGYwYmE1NmIwN2IzNGQy
ZDMwYWNlYjcyM2U5OGU5ZjE3MzA2NTdlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRml4IHRlYXJkb3duIGluIFdlYipMYXllckltcGwsIGFuZCBhZGQg
dGVzdHMgZm9yIFdlYipMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAq
IHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6On5XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwp
OgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
YXllckltcGw6On5XZWJMYXllckltcGwpOgorCiAyMDExLTEwLTIwICBaaGVueWFvIE1vICA8em1v
QGdvb2dsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IG1lY2hhbmlzbSB0byBlbmFibGUgcHJp
dmlsZWdlZCB3ZWJnbCBleHRlbnNpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKaW5kZXggY2VkZjJlYzUy
MDE5ZTViNWU3OGZkMjY4ZWExNWM5YmM5NjUzMThlOS4uNDRmOWU4MDE1YmJhOTBkNmRkZTBmNmY5
YmZkMThkZmUwNDliMzdkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaApAQCAtOTUsMTMgKzk1LDEzIEBA
IHB1YmxpYzoKICAgICBjb25zdCBJbnRTaXplJiBib3VuZHMoKSBjb25zdCB7IHJldHVybiBtX2Jv
dW5kczsgfQogICAgIHZpcnR1YWwgSW50U2l6ZSBjb250ZW50Qm91bmRzKCkgY29uc3QgeyByZXR1
cm4gYm91bmRzKCk7IH0KIAotICAgIHZvaWQgc2V0TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9C
b3VuZHMpIHsgbV9tYXNrc1RvQm91bmRzID0gbWFza3NUb0JvdW5kczsgfQorICAgIHZvaWQgc2V0
TWFza3NUb0JvdW5kcyhib29sIG1hc2tzVG9Cb3VuZHMpIHsgbV9tYXNrc1RvQm91bmRzID0gbWFz
a3NUb0JvdW5kczsgc2V0TmVlZHNDb21taXQoKTsgfQogICAgIGJvb2wgbWFza3NUb0JvdW5kcygp
IGNvbnN0IHsgcmV0dXJuIG1fbWFza3NUb0JvdW5kczsgfQogCiAgICAgdm9pZCBzZXROYW1lKGNv
bnN0IFN0cmluZyYpOwogICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQogCi0gICAgdm9pZCBzZXRNYXNrTGF5ZXIoTGF5ZXJDaHJvbWl1bSogbWFza0xheWVy
KSB7IG1fbWFza0xheWVyID0gbWFza0xheWVyOyB9CisgICAgdm9pZCBzZXRNYXNrTGF5ZXIoTGF5
ZXJDaHJvbWl1bSogbWFza0xheWVyKSB7IG1fbWFza0xheWVyID0gbWFza0xheWVyOyBzZXROZWVk
c0NvbW1pdCgpOyB9CiAgICAgTGF5ZXJDaHJvbWl1bSogbWFza0xheWVyKCkgY29uc3QgeyByZXR1
cm4gbV9tYXNrTGF5ZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQgc2V0TmVlZHNEaXNwbGF5KGNvbnN0
IEZsb2F0UmVjdCYgZGlydHlSZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4
IDkxZWRlNGE1OTc3ZGZhNzBlZjMwNDhlZWJlNGFmNThkYzU3NmViYjcuLjYyZTY1OGJiZjZhZWVl
OTY4NTgwNzU2ZTRlNDJhMDVlZjE4Y2RiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lw
aQpAQCAtODIsNiArODIsNyBAQAogICAgICAgICAgICAgJ3Rlc3RzL1RyZWVUZXN0SGVscGVycy5o
JywKICAgICAgICAgICAgICd0ZXN0cy9XZWJDb21wb3NpdG9ySW1wbFRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9XZWJM
YXllclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJVUkxSZXF1ZXN0VGVzdC5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL1dlYlZpZXdUZXN0LmNwcCcsCiAgICAgICAgIF0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuY3BwCmlu
ZGV4IGY2NDFlNmNhMDcyOTRiOTc5NTQ3N2Q0ZTIwMjJlODk5ZWFiMWMyN2EuLmU1M2FjZmRjNTli
MTRlMmRmNzEwYTNhMWM2OWQyMWI2NDlhYTQ1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkNvbnRlbnRMYXllckltcGwuY3BwCkBAIC01NCwxMSArNTQsMTMgQEAg
V2ViQ29udGVudExheWVySW1wbDo6V2ViQ29udGVudExheWVySW1wbChXZWJMYXllckNsaWVudCog
Y2xpZW50LCBXZWJDb250ZW50TGF5ZXIKIAogV2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRl
bnRMYXllckltcGwoKQogeworICAgIHNldERlbGVnYXRlKDApOwogfQogCiB2b2lkIFdlYkNvbnRl
bnRMYXllckltcGw6OnNldERyYXdzQ29udGVudChib29sIGRyYXdzQ29udGVudCkKIHsKICAgICBt
X2RyYXdzQ29udGVudCA9IGRyYXdzQ29udGVudDsKKyAgICBzZXROZWVkc0NvbW1pdCgpOwogfQog
CiBib29sIFdlYkNvbnRlbnRMYXllckltcGw6OmRyYXdzQ29udGVudCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllcklt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5
ZXJJbXBsLmNwcAppbmRleCA1YzQ3ODZlMjEwYWJlNmY2ZDcxMjAzNjk0NTYxZDE5NzZiMDY4MzA5
Li43NDM3ODZmNDAxODExNDYyNTU4ZDFkZTFjZTI0M2UwOWUxMDdhNzAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
SW1wbC5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsOjpX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwoV2ViTGF5ZXJDbGllbnQqIGNsaWVudCkKIAogV2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsOjp+V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKCkK
IHsKKyAgICBzZXREZWxlZ2F0ZSgwKTsKIH0KIAogYm9vbCBXZWJFeHRlcm5hbFRleHR1cmVMYXll
ckltcGw6OmRyYXdzQ29udGVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJJbXBsLmNwcAppbmRleCAwOTgxMzIxZWQyMGVkZDg4MmFjMDcyMTA2ZjIzYzNhNTNl
NWUyOGIxLi5lMzQ2MjhmYWNkMzI3Zjc0NWE3MzQyODlhYTYwMTZhMDE0MWFlMWI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVySW1wbC5jcHAKQEAgLTQzLDYgKzQzLDcg
QEAgV2ViTGF5ZXJJbXBsOjpXZWJMYXllckltcGwoV2ViTGF5ZXJDbGllbnQqIGNsaWVudCkgOiBM
YXllckNocm9taXVtKHRoaXMpLCBtX2NsaWUKIAogV2ViTGF5ZXJJbXBsOjp+V2ViTGF5ZXJJbXBs
KCkKIHsKKyAgICBzZXREZWxlZ2F0ZSgwKTsKIH0KIAogYm9vbCBXZWJMYXllckltcGw6OmRyYXdz
Q29udGVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IDA5OGZhMGY2MzFkMzFkZWM1YTRhY2Q0NmU3YmUxMjVi
YzE0MWRkNTYuLmI1ZTI2ZTVlN2MzODNiZjY5ODIwNmM3MGI2NjE0YzQ5OTg0YTUyN2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3Bw
CkBAIC02MTksOSArNjE5LDcgQEAgVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3Bl
cnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9yKQogICAgIC8vIG5vdGlmeVN5bmNSZXF1aXJl
ZCBzaG91bGQgbm90IGJlIGNhbGxlZCwgYW5kIHRoZSBkaXJ0eVJlY3Qgc2hvdWxkIHJlbWFpbiBz
dGlsbCBlbXB0eS4KICAgICBFWFBFQ1RfQ0FMTChpbml0aWFsRGVsZWdhdGUsIG5vdGlmeVN5bmNS
ZXF1aXJlZCgpKS5UaW1lcygwKTsgLy8gb2xkIGRlbGVnYXRlIHNob3VsZCBub3QgYmUgdXNlZCB3
aGVuIHNldERlbGVnYXRlIGdpdmVzIGEgbmV3IGRlbGVnYXRlLgogICAgIEVYRUNVVEVfQU5EX1ZF
UklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDAsIHRlc3RMYXllci0+c2V0
RGVsZWdhdGUoJm1vY2tEZWxlZ2F0ZSkpOwotICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllf
U1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDAsIHRlc3RMYXllci0+c2V0TWFza3NUb0JvdW5k
cyh0cnVlKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1v
Y2tEZWxlZ2F0ZSwgMCwgdGVzdExheWVyLT5zZXROYW1lKCJUZXN0IExheWVyIikpOwotICAgIEVY
RUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDAsIHRl
c3RMYXllci0+c2V0TWFza0xheWVyKGR1bW15TGF5ZXIuZ2V0KCkpKTsKICAgICBFWEVDVVRFX0FO
RF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAwLCB0ZXN0TGF5ZXIt
PnNldFZpc2libGVMYXllclJlY3QoSW50UmVjdCgwLCAwLCA0MCwgNTApKSk7CiAgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMCwgdGVzdExh
eWVyLT5zZXRTY3JvbGxQb3NpdGlvbihJbnRQb2ludCgxMCwgMTApKSk7CiAgICAgRVhFQ1VURV9B
TkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMCwgdGVzdExheWVy
LT5zZXRVc2VzTGF5ZXJTY2lzc29yKHRydWUpKTsKQEAgLTY0Miw2ICs2NDAsOCBAQCBURVNUX0Yo
TGF5ZXJDaHJvbWl1bVRlc3QsIGNoZWNrUHJvcGVydHlDaGFuZ2VDYXVzZXNDb3JyZWN0QmVoYXZp
b3IpCiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxl
Z2F0ZSwgMSwgdGVzdExheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50KDEuMjNmLCA0LjU2
ZikpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0Rl
bGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNldEFuY2hvclBvaW50WigwLjdmKSk7CiAgICAgRVhFQ1VU
RV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwgdGVzdExh
eWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3IoQ29sb3IoMC40ZiwgMC40ZiwgMC40ZikpKTsKKyAgICBF
WEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0
ZXN0TGF5ZXItPnNldE1hc2tzVG9Cb3VuZHModHJ1ZSkpOworICAgIEVYRUNVVEVfQU5EX1ZFUklG
WV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0TWFz
a0xheWVyKGR1bW15TGF5ZXIuZ2V0KCkpKTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZ
X1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNldE9wYWNpdHkoMC41
ZikpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVs
ZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0T3BhcXVlKGZhbHNlKSk7CiAgICAgRVhFQ1VURV9BTkRf
VkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5z
ZXRQb3NpdGlvbihGbG9hdFBvaW50KDQuMGYsIDkuMGYpKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDY0MTdhN2YxZDIyNmZh
MTRmMjI3ZjhmNDQyZTFjOGFkYjM0MmZlOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUZXN0LmNwcApAQCAtMCwwICsxLDE4MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICog
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkxheWVyLmgiCisK
KyNpbmNsdWRlICJXZWJDb250ZW50TGF5ZXIuaCIKKyNpbmNsdWRlICJXZWJDb250ZW50TGF5ZXJD
bGllbnQuaCIKKyNpbmNsdWRlICJXZWJFeHRlcm5hbFRleHR1cmVMYXllci5oIgorI2luY2x1ZGUg
IldlYkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJXZWJMYXllckNsaWVudC5oIgorI2luY2x1ZGUg
IldlYlJlY3QuaCIKKyNpbmNsdWRlICJXZWJTaXplLmgiCisKKyNpbmNsdWRlIDxnbW9jay9nbW9j
ay5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIHRlc3Rpbmc7
CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIE1vY2tXZWJMYXllckNsaWVudCA6IHB1YmxpYyBXZWJM
YXllckNsaWVudCB7CitwdWJsaWM6CisgICAgTU9DS19NRVRIT0QwKG5vdGlmeU5lZWRzQ29tcG9z
aXRlLCB2b2lkKCkpOworfTsKKworY2xhc3MgTW9ja1dlYkNvbnRlbnRMYXllckNsaWVudCA6IHB1
YmxpYyBXZWJDb250ZW50TGF5ZXJDbGllbnQgeworcHVibGljOgorICAgIE1PQ0tfTUVUSE9EMihw
YWludENvbnRlbnRzLCB2b2lkKFdlYkNhbnZhcyosIGNvbnN0IFdlYlJlY3QmIGNsaXApKTsKK307
CisKK2NsYXNzIFdlYkxheWVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKK3B1YmxpYzoKKyAgICBXZWJM
YXllclRlc3QoKSB7IH0KK307CisKKy8vIFRlc3RzIHRoYXQgdGhlIGNsaWVudCBnZXRzIGNhbGxl
ZCB0byBhc2sgZm9yIGEgY29tcG9zaXRlIGlmIHdlIGNoYW5nZSB0aGUKKy8vIGZpZWxkcy4KK1RF
U1RfRihXZWJMYXllclRlc3QsIENsaWVudCkKK3sKKyAgICAvLyBCYXNlIGxheWVyLgorICAgIE1v
Y2tXZWJMYXllckNsaWVudCBjbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlO
ZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBbnlOdW1iZXIoKSk7CisgICAgV2ViTGF5ZXIgbGF5ZXIg
PSBXZWJMYXllcjo6Y3JlYXRlKCZjbGllbnQpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhw
ZWN0YXRpb25zKCZjbGllbnQpOworCisgICAgV2ViRmxvYXRQb2ludCBwb2ludCgzLCA0KTsKKyAg
ICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVh
c3QoMSkpOworICAgIGxheWVyLnNldEFuY2hvclBvaW50KHBvaW50KTsKKyAgICBNb2NrOjpWZXJp
ZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfRVEocG9pbnQsIGxh
eWVyLmFuY2hvclBvaW50KCkpOworCisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVk
c0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAgICBmbG9hdCBhbmNob3JaID0gNTsK
KyAgICBsYXllci5zZXRBbmNob3JQb2ludFooYW5jaG9yWik7CisgICAgTW9jazo6VmVyaWZ5QW5k
Q2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKGFuY2hvclosIGxheWVy
LmFuY2hvclBvaW50WigpKTsKKworICAgIFdlYlNpemUgc2l6ZSg3LCA4KTsKKyAgICBFWFBFQ1Rf
Q0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOwor
ICAgIGxheWVyLnNldEJvdW5kcyhzaXplKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVj
dGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfRVEoc2l6ZSwgbGF5ZXIuYm91bmRzKCkpOwor
CisgICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhB
dExlYXN0KDEpKTsKKyAgICBsYXllci5zZXRNYXNrc1RvQm91bmRzKHRydWUpOworICAgIE1vY2s6
OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9UUlVFKGxh
eWVyLm1hc2tzVG9Cb3VuZHMoKSk7CisKKyAgICBNb2NrV2ViTGF5ZXJDbGllbnQgb3RoZXJDbGll
bnQ7CisgICAgRVhQRUNUX0NBTEwob3RoZXJDbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkp
LlRpbWVzKEFueU51bWJlcigpKTsKKyAgICBXZWJMYXllciBvdGhlckxheWVyID0gV2ViTGF5ZXI6
OmNyZWF0ZSgmb3RoZXJDbGllbnQpOworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVl
ZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgbGF5ZXIuc2V0TWFza0xheWVy
KG90aGVyTGF5ZXIpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGll
bnQpOworICAgIEVYUEVDVF9FUShvdGhlckxheWVyLCBsYXllci5tYXNrTGF5ZXIoKSk7CisKKyAg
ICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVh
c3QoMSkpOworICAgIGZsb2F0IG9wYWNpdHkgPSAwLjEyMzsKKyAgICBsYXllci5zZXRPcGFjaXR5
KG9wYWNpdHkpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQp
OworICAgIEVYUEVDVF9FUShvcGFjaXR5LCBsYXllci5vcGFjaXR5KCkpOworCisgICAgRVhQRUNU
X0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsK
KyAgICBsYXllci5zZXRPcGFxdWUodHJ1ZSk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBl
Y3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIub3BhcXVlKCkpOworCisg
ICAgRVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExl
YXN0KDEpKTsKKyAgICBsYXllci5zZXRQb3NpdGlvbihwb2ludCk7CisgICAgTW9jazo6VmVyaWZ5
QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKHBvaW50LCBsYXll
ci5wb3NpdGlvbigpKTsKKworICAgIC8vIFRleHR1cmUgbGF5ZXIuCisgICAgRVhQRUNUX0NBTEwo
Y2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBbnlOdW1iZXIoKSk7CisgICAg
V2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgdGV4dHVyZUxheWVyID0gV2ViRXh0ZXJuYWxUZXh0dXJl
TGF5ZXI6OmNyZWF0ZSgmY2xpZW50KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0
aW9ucygmY2xpZW50KTsKKworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21w
b3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgdGV4dHVyZUxheWVyLnNldFRleHR1cmVJ
ZCgzKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAg
ICBFWFBFQ1RfRVEoM3UsIHRleHR1cmVMYXllci50ZXh0dXJlSWQoKSk7CisKKyAgICBFWFBFQ1Rf
Q0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOwor
ICAgIHRleHR1cmVMYXllci5zZXRGbGlwcGVkKHRydWUpOworICAgIE1vY2s6OlZlcmlmeUFuZENs
ZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9UUlVFKHRleHR1cmVMYXllci5m
bGlwcGVkKCkpOworCisKKyAgICAvLyBDb250ZW50IGxheWVyLgorICAgIE1vY2tXZWJDb250ZW50
TGF5ZXJDbGllbnQgY29udGVudENsaWVudDsKKyAgICBFWFBFQ1RfQ0FMTChjb250ZW50Q2xpZW50
LCBwYWludENvbnRlbnRzKF8sIF8pKS5UaW1lcyhBbnlOdW1iZXIoKSk7CisgICAgRVhQRUNUX0NB
TEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBbnlOdW1iZXIoKSk7Cisg
ICAgV2ViQ29udGVudExheWVyIGNvbnRlbnRMYXllciA9IFdlYkNvbnRlbnRMYXllcjo6Y3JlYXRl
KCZjbGllbnQsICZjb250ZW50Q2xpZW50KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVj
dGF0aW9ucygmY2xpZW50KTsKKworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHND
b21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgY29udGVudExheWVyLnNldERyYXdz
Q29udGVudChmYWxzZSk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNs
aWVudCk7CisgICAgRVhQRUNUX0ZBTFNFKGNvbnRlbnRMYXllci5kcmF3c0NvbnRlbnQoKSk7Cit9
CisKK1RFU1RfRihXZWJMYXllclRlc3QsIEhpZXJhcmNoeSkKK3sKKyAgICBNb2NrV2ViTGF5ZXJD
bGllbnQgY2xpZW50OworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3Np
dGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkxheWVyIGxheWVyMSA9IFdlYkxheWVy
OjpjcmVhdGUoJmNsaWVudCk7CisgICAgV2ViTGF5ZXIgbGF5ZXIyID0gV2ViTGF5ZXI6OmNyZWF0
ZSgmY2xpZW50KTsKKworICAgIEVYUEVDVF9UUlVFKGxheWVyMS5wYXJlbnQoKS5pc051bGwoKSk7
CisgICAgRVhQRUNUX1RSVUUobGF5ZXIyLnBhcmVudCgpLmlzTnVsbCgpKTsKKworICAgIGxheWVy
MS5hZGRDaGlsZChsYXllcjIpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMS5wYXJlbnQoKS5pc051
bGwoKSk7CisgICAgRVhQRUNUX0VRKGxheWVyMSwgbGF5ZXIyLnBhcmVudCgpKTsKKworICAgIGxh
eWVyMi5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIyLnBhcmVudCgp
LmlzTnVsbCgpKTsKKworICAgIGxheWVyMS5hZGRDaGlsZChsYXllcjIpOworICAgIEVYUEVDVF9F
UShsYXllcjEsIGxheWVyMi5wYXJlbnQoKSk7CisgICAgbGF5ZXIxLnJlbW92ZUFsbENoaWxkcmVu
KCk7CisgICAgRVhQRUNUX1RSVUUobGF5ZXIyLnBhcmVudCgpLmlzTnVsbCgpKTsKKworICAgIE1v
Y2tXZWJDb250ZW50TGF5ZXJDbGllbnQgY29udGVudENsaWVudDsKKyAgICBFWFBFQ1RfQ0FMTChj
b250ZW50Q2xpZW50LCBwYWludENvbnRlbnRzKF8sIF8pKS5UaW1lcyhBbnlOdW1iZXIoKSk7Cisg
ICAgV2ViQ29udGVudExheWVyIGNvbnRlbnRMYXllciA9IFdlYkNvbnRlbnRMYXllcjo6Y3JlYXRl
KCZjbGllbnQsICZjb250ZW50Q2xpZW50KTsKKyAgICBXZWJFeHRlcm5hbFRleHR1cmVMYXllciB0
ZXh0dXJlTGF5ZXIgPSBXZWJFeHRlcm5hbFRleHR1cmVMYXllcjo6Y3JlYXRlKCZjbGllbnQpOwor
CisgICAgdGV4dHVyZUxheWVyLmFkZENoaWxkKGNvbnRlbnRMYXllcik7CisgICAgY29udGVudExh
eWVyLmFkZENoaWxkKGxheWVyMSk7CisgICAgbGF5ZXIxLmFkZENoaWxkKGxheWVyMik7CisKKyAg
ICAvLyBSZWxlYXNlIHJlZmVyZW5jZSBvbiBhbGwgbGF5ZXJzLCBjaGVja2luZyB0aGF0IGRlc3Ry
dWN0aW9uICh3aGljaCBtYXkKKyAgICAvLyBnZW5lcmF0ZSBjYWxscyB0byB0aGUgY2xpZW50KSBk
b2Vzbid0IGNyYXNoLgorICAgIGxheWVyMi5yZXNldCgpOworICAgIGxheWVyMS5yZXNldCgpOwor
ICAgIGNvbnRlbnRMYXllci5yZXNldCgpOworICAgIHRleHR1cmVMYXllci5yZXNldCgpOworfQor
Cit9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112633</attachid>
            <date>2011-10-26 19:31:31 -0700</date>
            <delta_ts>2011-10-27 13:41:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70431-20111026193130.patch</filename>
            <type>text/plain</type>
            <size>14195</size>
            <attacher name="Antoine Labour">piman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg1MzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXgg
NGY4ZjIwYjM5MDViMjE5NGVjYTRhODA5MmM1OWU3YmJkNGJkNmQ0MC4uYWI1MDNjZjQyNTkzYjNl
ZWVmNzkxMDcxN2FjN2I0MDE5ZmU4NzdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNyBAQAorMjAxMS0xMC0xOSAgQW50b2luZSBMYWJvdXIgIDxwaW1hbkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgRml4IHRlYXJkb3duIGluIFdlYipMYXllckltcGwsIGFuZCBhZGQg
dGVzdHMgZm9yIFdlYipMYXllcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzA0MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHNyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29udGVudExheWVySW1wbDo6fldlYkNvbnRlbnRMYXllckltcGwpOgorICAgICAgICAq
IHNyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGw6On5XZWJFeHRlcm5hbFRleHR1cmVMYXllckltcGwp
OgorICAgICAgICAqIHNyYy9XZWJMYXllckltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJM
YXllckltcGw6On5XZWJMYXllckltcGwpOgorCiAyMDExLTEwLTI2ICBDaHJpcyBSb2dlcnMgIDxj
cm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAgICAgQWRkIGNocm9taXVtIGJyaWRnaW5nIGZvciBB
dWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50IGFuZCBzZXRGb3JtYXQoKSBtZXRob2Qgc28gd2UgY2Fu
IGtub3cgYXVkaW8gc3RyZWFtIGZvcm1hdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJvbWl1bS5oCmluZGV4IDZmMTZiNDg2
M2Q0NGI0NGFlODNhYzJjMjYxZDIzYzY3OGZjMTc2ZTUuLmM3YWVjYmU1OGE3N2QzMThkZWU2NTVk
NTk1NDNmZmQwMTgwMzM2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVtLmgKQEAgLTk2LDEzICs5NiwxMyBA
QCBwdWJsaWM6CiAgICAgY29uc3QgSW50U2l6ZSYgYm91bmRzKCkgY29uc3QgeyByZXR1cm4gbV9i
b3VuZHM7IH0KICAgICB2aXJ0dWFsIEludFNpemUgY29udGVudEJvdW5kcygpIGNvbnN0IHsgcmV0
dXJuIGJvdW5kcygpOyB9CiAKLSAgICB2b2lkIHNldE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1Rv
Qm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1hc2tzVG9Cb3VuZHM7IH0KKyAgICB2b2lkIHNl
dE1hc2tzVG9Cb3VuZHMoYm9vbCBtYXNrc1RvQm91bmRzKSB7IG1fbWFza3NUb0JvdW5kcyA9IG1h
c2tzVG9Cb3VuZHM7IHNldE5lZWRzQ29tbWl0KCk7IH0KICAgICBib29sIG1hc2tzVG9Cb3VuZHMo
KSBjb25zdCB7IHJldHVybiBtX21hc2tzVG9Cb3VuZHM7IH0KIAogICAgIHZvaWQgc2V0TmFtZShj
b25zdCBTdHJpbmcmKTsKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7IHJldHVybiBt
X25hbWU7IH0KIAotICAgIHZvaWQgc2V0TWFza0xheWVyKExheWVyQ2hyb21pdW0qIG1hc2tMYXll
cikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgfQorICAgIHZvaWQgc2V0TWFza0xheWVyKExh
eWVyQ2hyb21pdW0qIG1hc2tMYXllcikgeyBtX21hc2tMYXllciA9IG1hc2tMYXllcjsgc2V0TmVl
ZHNDb21taXQoKTsgfQogICAgIExheWVyQ2hyb21pdW0qIG1hc2tMYXllcigpIGNvbnN0IHsgcmV0
dXJuIG1fbWFza0xheWVyLmdldCgpOyB9CiAKICAgICB2b2lkIHNldE5lZWRzRGlzcGxheShjb25z
dCBGbG9hdFJlY3QmIGRpcnR5UmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0RFUFMgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0RFUFMKaW5kZXggODRiYzI4NWIwNThi
YmU1ODBhNzZlMGE0YWEyYzJkN2ZmYTg5NDNjZS4uMWRmYWFlYWQwYjUyNGYyZGY0MDY2ZmQ1MzAx
YzQ2ZmYwOWIzNTFhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9ERVBTCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vREVQUwpAQCAtMzIsNyArMzIsNyBAQAogCiB2YXJz
ID0gewogICAnY2hyb21pdW1fc3ZuJzogJ2h0dHA6Ly9zcmMuY2hyb21pdW0ub3JnL3N2bi90cnVu
ay9zcmMnLAotICAnY2hyb21pdW1fcmV2JzogJzEwNzExMycKKyAgJ2Nocm9taXVtX3Jldic6ICcx
MDc0NTgnCiB9CiAKIGRlcHMgPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBh
NDg5MWZhYjE3OWYwMmFmZDY0ZGYxYTEwYTAxNjI3NDE0NmVjYjZiLi4xYTExMWQxYzQwNWUzMzll
MWNkZjA4Y2Q4OTA4YWUyYjcyNDcwN2VjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkK
QEAgLTgxLDYgKzgxLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9UcmVlVGVzdEhlbHBlcnMuaCcs
CiAgICAgICAgICAgICAndGVzdHMvV2ViQ29tcG9zaXRvckltcGxUZXN0LmNwcCcsCiAgICAgICAg
ICAgICAndGVzdHMvV2ViRnJhbWVUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVzdHMvV2ViTGF5
ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViVVJMUmVxdWVzdFRlc3QuY3BwJywK
ICAgICAgICAgICAgICd0ZXN0cy9XZWJWaWV3VGVzdC5jcHAnLAogICAgICAgICBdLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29udGVudExheWVySW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcAppbmRl
eCBmNjQxZTZjYTA3Mjk0Yjk3OTU0NzdkNGUyMDIyZTg5OWVhYjFjMjdhLi5lNTNhY2ZkYzU5YjE0
ZTJkZjcxMGEzYTFjNjlkMjFiNjQ5YWE0NWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcApAQCAtNTQsMTEgKzU0LDEzIEBAIFdl
YkNvbnRlbnRMYXllckltcGw6OldlYkNvbnRlbnRMYXllckltcGwoV2ViTGF5ZXJDbGllbnQqIGNs
aWVudCwgV2ViQ29udGVudExheWVyCiAKIFdlYkNvbnRlbnRMYXllckltcGw6On5XZWJDb250ZW50
TGF5ZXJJbXBsKCkKIHsKKyAgICBzZXREZWxlZ2F0ZSgwKTsKIH0KIAogdm9pZCBXZWJDb250ZW50
TGF5ZXJJbXBsOjpzZXREcmF3c0NvbnRlbnQoYm9vbCBkcmF3c0NvbnRlbnQpCiB7CiAgICAgbV9k
cmF3c0NvbnRlbnQgPSBkcmF3c0NvbnRlbnQ7CisgICAgc2V0TmVlZHNDb21taXQoKTsKIH0KIAog
Ym9vbCBXZWJDb250ZW50TGF5ZXJJbXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkV4dGVybmFsVGV4dHVyZUxheWVy
SW1wbC5jcHAKaW5kZXggNWM0Nzg2ZTIxMGFiZTZmNmQ3MTIwMzY5NDU2MWQxOTc2YjA2ODMwOS4u
NzQzNzg2ZjQwMTgxMTQ2MjU1OGQxZGUxY2UyNDNlMDllMTA3YTcwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllcklt
cGwuY3BwCkBAIC00OCw2ICs0OCw3IEBAIFdlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbDo6V2Vi
RXh0ZXJuYWxUZXh0dXJlTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQpCiAKIFdlYkV4
dGVybmFsVGV4dHVyZUxheWVySW1wbDo6fldlYkV4dGVybmFsVGV4dHVyZUxheWVySW1wbCgpCiB7
CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXJJ
bXBsOjpkcmF3c0NvbnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YkxheWVySW1wbC5jcHAKaW5kZXggMDk4MTMyMWVkMjBlZGQ4ODJhYzA3MjEwNmYyM2MzYTUzZTVl
MjhiMS4uZTM0NjI4ZmFjZDMyN2Y3NDVhNzM0Mjg5YWE2MDE2YTAxNDFhZTFiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllckltcGwuY3BwCkBAIC00Myw2ICs0Myw3IEBA
IFdlYkxheWVySW1wbDo6V2ViTGF5ZXJJbXBsKFdlYkxheWVyQ2xpZW50KiBjbGllbnQpIDogTGF5
ZXJDaHJvbWl1bSh0aGlzKSwgbV9jbGllCiAKIFdlYkxheWVySW1wbDo6fldlYkxheWVySW1wbCgp
CiB7CisgICAgc2V0RGVsZWdhdGUoMCk7CiB9CiAKIGJvb2wgV2ViTGF5ZXJJbXBsOjpkcmF3c0Nv
bnRlbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9M
YXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVy
Q2hyb21pdW1UZXN0LmNwcAppbmRleCAwOThmYTBmNjMxZDMxZGVjNWE0YWNkNDZlN2JlMTI1YmMx
NDFkZDU2Li5iNWUyNmU1ZTdjMzgzYmY2OTgyMDZjNzBiNjYxNGM0OTk4NGE1MjdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcApA
QCAtNjE5LDkgKzYxOSw3IEBAIFRFU1RfRihMYXllckNocm9taXVtVGVzdCwgY2hlY2tQcm9wZXJ0
eUNoYW5nZUNhdXNlc0NvcnJlY3RCZWhhdmlvcikKICAgICAvLyBub3RpZnlTeW5jUmVxdWlyZWQg
c2hvdWxkIG5vdCBiZSBjYWxsZWQsIGFuZCB0aGUgZGlydHlSZWN0IHNob3VsZCByZW1haW4gc3Rp
bGwgZW1wdHkuCiAgICAgRVhQRUNUX0NBTEwoaW5pdGlhbERlbGVnYXRlLCBub3RpZnlTeW5jUmVx
dWlyZWQoKSkuVGltZXMoMCk7IC8vIG9sZCBkZWxlZ2F0ZSBzaG91bGQgbm90IGJlIHVzZWQgd2hl
biBzZXREZWxlZ2F0ZSBnaXZlcyBhIG5ldyBkZWxlZ2F0ZS4KICAgICBFWEVDVVRFX0FORF9WRVJJ
RllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAwLCB0ZXN0TGF5ZXItPnNldERl
bGVnYXRlKCZtb2NrRGVsZWdhdGUpKTsKLSAgICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZ
TkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAwLCB0ZXN0TGF5ZXItPnNldE1hc2tzVG9Cb3VuZHMo
dHJ1ZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2Nr
RGVsZWdhdGUsIDAsIHRlc3RMYXllci0+c2V0TmFtZSgiVGVzdCBMYXllciIpKTsKLSAgICBFWEVD
VVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAwLCB0ZXN0
TGF5ZXItPnNldE1hc2tMYXllcihkdW1teUxheWVyLmdldCgpKSk7CiAgICAgRVhFQ1VURV9BTkRf
VkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMCwgdGVzdExheWVyLT5z
ZXRWaXNpYmxlTGF5ZXJSZWN0KEludFJlY3QoMCwgMCwgNDAsIDUwKSkpOwogICAgIEVYRUNVVEVf
QU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDAsIHRlc3RMYXll
ci0+c2V0U2Nyb2xsUG9zaXRpb24oSW50UG9pbnQoMTAsIDEwKSkpOwogICAgIEVYRUNVVEVfQU5E
X1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDAsIHRlc3RMYXllci0+
c2V0VXNlc0xheWVyU2Npc3Nvcih0cnVlKSk7CkBAIC02NDIsNiArNjQwLDggQEAgVEVTVF9GKExh
eWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3BlcnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJlaGF2aW9y
KQogICAgIEVYRUNVVEVfQU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdh
dGUsIDEsIHRlc3RMYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludCgxLjIzZiwgNC41NmYp
KSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxl
Z2F0ZSwgMSwgdGVzdExheWVyLT5zZXRBbmNob3JQb2ludFooMC43ZikpOwogICAgIEVYRUNVVEVf
QU5EX1ZFUklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXll
ci0+c2V0QmFja2dyb3VuZENvbG9yKENvbG9yKDAuNGYsIDAuNGYsIDAuNGYpKSk7CisgICAgRVhF
Q1VURV9BTkRfVkVSSUZZX05PVElGWV9TWU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwgdGVz
dExheWVyLT5zZXRNYXNrc1RvQm91bmRzKHRydWUpKTsKKyAgICBFWEVDVVRFX0FORF9WRVJJRllf
Tk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVnYXRlLCAxLCB0ZXN0TGF5ZXItPnNldE1hc2tM
YXllcihkdW1teUxheWVyLmdldCgpKSk7CiAgICAgRVhFQ1VURV9BTkRfVkVSSUZZX05PVElGWV9T
WU5DX0JFSEFWSU9SKG1vY2tEZWxlZ2F0ZSwgMSwgdGVzdExheWVyLT5zZXRPcGFjaXR5KDAuNWYp
KTsKICAgICBFWEVDVVRFX0FORF9WRVJJRllfTk9USUZZX1NZTkNfQkVIQVZJT1IobW9ja0RlbGVn
YXRlLCAxLCB0ZXN0TGF5ZXItPnNldE9wYXF1ZShmYWxzZSkpOwogICAgIEVYRUNVVEVfQU5EX1ZF
UklGWV9OT1RJRllfU1lOQ19CRUhBVklPUihtb2NrRGVsZWdhdGUsIDEsIHRlc3RMYXllci0+c2V0
UG9zaXRpb24oRmxvYXRQb2ludCg0LjBmLCA5LjBmKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9XZWJMYXllclRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2NDE3YTdmMWQyMjZmYTE0
ZjIyN2Y4ZjQ0MmUxYzhhZGIzNDJmZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKQEAgLTAsMCArMSwxODMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJMYXllci5oIgorCisj
aW5jbHVkZSAiV2ViQ29udGVudExheWVyLmgiCisjaW5jbHVkZSAiV2ViQ29udGVudExheWVyQ2xp
ZW50LmgiCisjaW5jbHVkZSAiV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIuaCIKKyNpbmNsdWRlICJX
ZWJGbG9hdFBvaW50LmgiCisjaW5jbHVkZSAiV2ViTGF5ZXJDbGllbnQuaCIKKyNpbmNsdWRlICJX
ZWJSZWN0LmgiCisjaW5jbHVkZSAiV2ViU2l6ZS5oIgorCisjaW5jbHVkZSA8Z21vY2svZ21vY2su
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKK3VzaW5nIG5hbWVzcGFjZSB0ZXN0aW5nOwor
CituYW1lc3BhY2UgeworCitjbGFzcyBNb2NrV2ViTGF5ZXJDbGllbnQgOiBwdWJsaWMgV2ViTGF5
ZXJDbGllbnQgeworcHVibGljOgorICAgIE1PQ0tfTUVUSE9EMChub3RpZnlOZWVkc0NvbXBvc2l0
ZSwgdm9pZCgpKTsKK307CisKK2NsYXNzIE1vY2tXZWJDb250ZW50TGF5ZXJDbGllbnQgOiBwdWJs
aWMgV2ViQ29udGVudExheWVyQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBNT0NLX01FVEhPRDIocGFp
bnRDb250ZW50cywgdm9pZChXZWJDYW52YXMqLCBjb25zdCBXZWJSZWN0JiBjbGlwKSk7Cit9Owor
CitjbGFzcyBXZWJMYXllclRlc3QgOiBwdWJsaWMgVGVzdCB7CitwdWJsaWM6CisgICAgV2ViTGF5
ZXJUZXN0KCkgeyB9Cit9OworCisvLyBUZXN0cyB0aGF0IHRoZSBjbGllbnQgZ2V0cyBjYWxsZWQg
dG8gYXNrIGZvciBhIGNvbXBvc2l0ZSBpZiB3ZSBjaGFuZ2UgdGhlCisvLyBmaWVsZHMuCitURVNU
X0YoV2ViTGF5ZXJUZXN0LCBDbGllbnQpCit7CisgICAgLy8gQmFzZSBsYXllci4KKyAgICBNb2Nr
V2ViTGF5ZXJDbGllbnQgY2xpZW50OworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVl
ZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdlYkxheWVyIGxheWVyID0g
V2ViTGF5ZXI6OmNyZWF0ZSgmY2xpZW50KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVj
dGF0aW9ucygmY2xpZW50KTsKKworICAgIFdlYkZsb2F0UG9pbnQgcG9pbnQoMywgNCk7CisgICAg
RVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0
KDEpKTsKKyAgICBsYXllci5zZXRBbmNob3JQb2ludChwb2ludCk7CisgICAgTW9jazo6VmVyaWZ5
QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKHBvaW50LCBsYXll
ci5hbmNob3JQb2ludCgpKTsKKworICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHND
b21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7CisgICAgZmxvYXQgYW5jaG9yWiA9IDU7Cisg
ICAgbGF5ZXIuc2V0QW5jaG9yUG9pbnRaKGFuY2hvclopOworICAgIE1vY2s6OlZlcmlmeUFuZENs
ZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9FUShhbmNob3JaLCBsYXllci5h
bmNob3JQb2ludFooKSk7CisKKyAgICBXZWJTaXplIHNpemUoNywgOCk7CisgICAgRVhQRUNUX0NB
TEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAg
ICBsYXllci5zZXRCb3VuZHMoc2l6ZSk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3Rh
dGlvbnMoJmNsaWVudCk7CisgICAgRVhQRUNUX0VRKHNpemUsIGxheWVyLmJvdW5kcygpKTsKKwor
ICAgIEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRM
ZWFzdCgxKSk7CisgICAgbGF5ZXIuc2V0TWFza3NUb0JvdW5kcyh0cnVlKTsKKyAgICBNb2NrOjpW
ZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfVFJVRShsYXll
ci5tYXNrc1RvQm91bmRzKCkpOworCisgICAgTW9ja1dlYkxheWVyQ2xpZW50IG90aGVyQ2xpZW50
OworICAgIEVYUEVDVF9DQUxMKG90aGVyQ2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5U
aW1lcyhBbnlOdW1iZXIoKSk7CisgICAgV2ViTGF5ZXIgb3RoZXJMYXllciA9IFdlYkxheWVyOjpj
cmVhdGUoJm90aGVyQ2xpZW50KTsKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRz
Q29tcG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOworICAgIGxheWVyLnNldE1hc2tMYXllcihv
dGhlckxheWVyKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50
KTsKKyAgICBFWFBFQ1RfRVEob3RoZXJMYXllciwgbGF5ZXIubWFza0xheWVyKCkpOworCisgICAg
RVhQRUNUX0NBTEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0
KDEpKTsKKyAgICBmbG9hdCBvcGFjaXR5ID0gMC4xMjM7CisgICAgbGF5ZXIuc2V0T3BhY2l0eShv
cGFjaXR5KTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVhckV4cGVjdGF0aW9ucygmY2xpZW50KTsK
KyAgICBFWFBFQ1RfRVEob3BhY2l0eSwgbGF5ZXIub3BhY2l0eSgpKTsKKworICAgIEVYUEVDVF9D
QUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFzdCgxKSk7Cisg
ICAgbGF5ZXIuc2V0T3BhcXVlKHRydWUpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0
YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9UUlVFKGxheWVyLm9wYXF1ZSgpKTsKKworICAg
IEVYUEVDVF9DQUxMKGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQXRMZWFz
dCgxKSk7CisgICAgbGF5ZXIuc2V0UG9zaXRpb24ocG9pbnQpOworICAgIE1vY2s6OlZlcmlmeUFu
ZENsZWFyRXhwZWN0YXRpb25zKCZjbGllbnQpOworICAgIEVYUEVDVF9FUShwb2ludCwgbGF5ZXIu
cG9zaXRpb24oKSk7CisKKyAgICAvLyBUZXh0dXJlIGxheWVyLgorICAgIEVYUEVDVF9DQUxMKGNs
aWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIFdl
YkV4dGVybmFsVGV4dHVyZUxheWVyIHRleHR1cmVMYXllciA9IFdlYkV4dGVybmFsVGV4dHVyZUxh
eWVyOjpjcmVhdGUoJmNsaWVudCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlv
bnMoJmNsaWVudCk7CisKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9z
aXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOworICAgIHRleHR1cmVMYXllci5zZXRUZXh0dXJlSWQo
Myk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3RhdGlvbnMoJmNsaWVudCk7CisgICAg
RVhQRUNUX0VRKDN1LCB0ZXh0dXJlTGF5ZXIudGV4dHVyZUlkKCkpOworCisgICAgRVhQRUNUX0NB
TEwoY2xpZW50LCBub3RpZnlOZWVkc0NvbXBvc2l0ZSgpKS5UaW1lcyhBdExlYXN0KDEpKTsKKyAg
ICB0ZXh0dXJlTGF5ZXIuc2V0RmxpcHBlZCh0cnVlKTsKKyAgICBNb2NrOjpWZXJpZnlBbmRDbGVh
ckV4cGVjdGF0aW9ucygmY2xpZW50KTsKKyAgICBFWFBFQ1RfVFJVRSh0ZXh0dXJlTGF5ZXIuZmxp
cHBlZCgpKTsKKworCisgICAgLy8gQ29udGVudCBsYXllci4KKyAgICBNb2NrV2ViQ29udGVudExh
eWVyQ2xpZW50IGNvbnRlbnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29udGVudENsaWVudCwg
cGFpbnRDb250ZW50cyhfLCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAgIEVYUEVDVF9DQUxM
KGNsaWVudCwgbm90aWZ5TmVlZHNDb21wb3NpdGUoKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAg
IFdlYkNvbnRlbnRMYXllciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgm
Y2xpZW50LCAmY29udGVudENsaWVudCk7CisgICAgTW9jazo6VmVyaWZ5QW5kQ2xlYXJFeHBlY3Rh
dGlvbnMoJmNsaWVudCk7CisKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29t
cG9zaXRlKCkpLlRpbWVzKEF0TGVhc3QoMSkpOworICAgIGNvbnRlbnRMYXllci5zZXREcmF3c0Nv
bnRlbnQoZmFsc2UpOworICAgIE1vY2s6OlZlcmlmeUFuZENsZWFyRXhwZWN0YXRpb25zKCZjbGll
bnQpOworICAgIEVYUEVDVF9GQUxTRShjb250ZW50TGF5ZXIuZHJhd3NDb250ZW50KCkpOworfQor
CitURVNUX0YoV2ViTGF5ZXJUZXN0LCBIaWVyYXJjaHkpCit7CisgICAgTW9ja1dlYkxheWVyQ2xp
ZW50IGNsaWVudDsKKyAgICBFWFBFQ1RfQ0FMTChjbGllbnQsIG5vdGlmeU5lZWRzQ29tcG9zaXRl
KCkpLlRpbWVzKEFueU51bWJlcigpKTsKKyAgICBXZWJMYXllciBsYXllcjEgPSBXZWJMYXllcjo6
Y3JlYXRlKCZjbGllbnQpOworICAgIFdlYkxheWVyIGxheWVyMiA9IFdlYkxheWVyOjpjcmVhdGUo
JmNsaWVudCk7CisKKyAgICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxsKCkpOwor
ICAgIEVYUEVDVF9UUlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBsYXllcjEu
YWRkQ2hpbGQobGF5ZXIyKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcjEucGFyZW50KCkuaXNOdWxs
KCkpOworICAgIEVYUEVDVF9FUShsYXllcjEsIGxheWVyMi5wYXJlbnQoKSk7CisKKyAgICBsYXll
cjIucmVtb3ZlRnJvbVBhcmVudCgpOworICAgIEVYUEVDVF9UUlVFKGxheWVyMi5wYXJlbnQoKS5p
c051bGwoKSk7CisKKyAgICBsYXllcjEuYWRkQ2hpbGQobGF5ZXIyKTsKKyAgICBFWFBFQ1RfRVEo
bGF5ZXIxLCBsYXllcjIucGFyZW50KCkpOworICAgIGxheWVyMS5yZW1vdmVBbGxDaGlsZHJlbigp
OworICAgIEVYUEVDVF9UUlVFKGxheWVyMi5wYXJlbnQoKS5pc051bGwoKSk7CisKKyAgICBNb2Nr
V2ViQ29udGVudExheWVyQ2xpZW50IGNvbnRlbnRDbGllbnQ7CisgICAgRVhQRUNUX0NBTEwoY29u
dGVudENsaWVudCwgcGFpbnRDb250ZW50cyhfLCBfKSkuVGltZXMoQW55TnVtYmVyKCkpOworICAg
IFdlYkNvbnRlbnRMYXllciBjb250ZW50TGF5ZXIgPSBXZWJDb250ZW50TGF5ZXI6OmNyZWF0ZSgm
Y2xpZW50LCAmY29udGVudENsaWVudCk7CisgICAgV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXIgdGV4
dHVyZUxheWVyID0gV2ViRXh0ZXJuYWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSgmY2xpZW50KTsKKwor
ICAgIHRleHR1cmVMYXllci5hZGRDaGlsZChjb250ZW50TGF5ZXIpOworICAgIGNvbnRlbnRMYXll
ci5hZGRDaGlsZChsYXllcjEpOworICAgIGxheWVyMS5hZGRDaGlsZChsYXllcjIpOworCisgICAg
Ly8gUmVsZWFzZSByZWZlcmVuY2Ugb24gYWxsIGxheWVycywgY2hlY2tpbmcgdGhhdCBkZXN0cnVj
dGlvbiAod2hpY2ggbWF5CisgICAgLy8gZ2VuZXJhdGUgY2FsbHMgdG8gdGhlIGNsaWVudCkgZG9l
c24ndCBjcmFzaC4KKyAgICBsYXllcjIucmVzZXQoKTsKKyAgICBsYXllcjEucmVzZXQoKTsKKyAg
ICBjb250ZW50TGF5ZXIucmVzZXQoKTsKKyAgICB0ZXh0dXJlTGF5ZXIucmVzZXQoKTsKK30KKwor
fQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>