<?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>70299</bug_id>
          
          <creation_ts>2011-10-17 19:45:41 -0700</creation_ts>
          <short_desc>Implement legacy text check emulation in unified text check interface.</short_desc>
          <delta_ts>2012-05-21 05:09:01 -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>HTML Editing</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>71031</dependson>
    
    <dependson>71792</dependson>
    
    <dependson>72251</dependson>
          <blocked>65849</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>jiapu.mail</cc>
    
    <cc>kkristof</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>485751</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-17 19:45:41 -0700</bug_when>
    <thetext>Editor class has two difference code paths for spell-checking:
(1) checkTextOfParagraph() for Snow Leopard or later
(2) checkSpellingOfString() and checkGrammarOfString() for other platforms.
These paths should be unified so that improving spell-checking code is easy.

To achieve the goal, checkTextOfParagraph() interface should be available even if its implementation cannot be used.
In such a case, checkTextOfParagraph() should be implemented using checkSpellingOfString() and checkGrammarOfString().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485838</commentid>
    <comment_count>1</comment_count>
      <attachid>111389</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-17 23:30:17 -0700</bug_when>
    <thetext>Created attachment 111389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486572</commentid>
    <comment_count>2</comment_count>
      <attachid>111389</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-18 23:05:38 -0700</bug_when>
    <thetext>Comment on attachment 111389
Patch

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

&gt; Source/WebCore/page/Settings.cpp:199
&gt; +#if USE(UNIFIED_TEXT_CHECKING) || PLATFORM(CHROMIUM)

Let&apos;s do this at a separate change to allow revert easily
because this can cause some unexpected, hard-to-fix regression. (I hope not though.)

At this point, I recommend
- to add WebCore::Internals API to flip the flag, and
- to add some tests for our emulating code, especially with enabling this flag. The test would have
-- a test case for some non-whitespace segmentation
-- a test case containing multiple bad words
-- a test case containing a bad word which located at the beginning, middle, end of the paragraph.
-- a test case containing a valid word which contains a bad word as a substring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486707</commentid>
    <comment_count>3</comment_count>
      <attachid>111601</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-19 05:51:06 -0700</bug_when>
    <thetext>Created attachment 111601
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486746</commentid>
    <comment_count>4</comment_count>
      <attachid>111601</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-10-19 07:00:25 -0700</bug_when>
    <thetext>Comment on attachment 111601
Patch

Attachment 111601 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10145415</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487312</commentid>
    <comment_count>5</comment_count>
      <attachid>111722</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-19 21:40:37 -0700</bug_when>
    <thetext>Created attachment 111722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487314</commentid>
    <comment_count>6</comment_count>
      <attachid>111722</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-19 21:41:44 -0700</bug_when>
    <thetext>Comment on attachment 111722
Patch

Trying to build fix win &amp; gtk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487315</commentid>
    <comment_count>7</comment_count>
      <attachid>111724</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-19 21:44:45 -0700</bug_when>
    <thetext>Created attachment 111724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489905</commentid>
    <comment_count>8</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-25 00:15:07 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created an attachment (id=111724) [details]
&gt; Patch

morrita-san,
Could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490084</commentid>
    <comment_count>9</comment_count>
      <attachid>111724</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-25 10:02:03 -0700</bug_when>
    <thetext>Comment on attachment 111724
Patch

The code look good in general. in test, could you use unit testing framework if possible ?
It makes the test expectation readable.
You can see an example in existing tests like:
http://trac.webkit.org/browser/trunk/LayoutTests/editing/spelling/spelling-insert-html.html for example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490545</commentid>
    <comment_count>10</comment_count>
      <attachid>112444</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-25 20:47:23 -0700</bug_when>
    <thetext>Created attachment 112444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490546</commentid>
    <comment_count>11</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-25 20:57:20 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=112444) [details]
&gt; Patch

Hi, I&apos;ve change the test.
Could you review it again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490547</commentid>
    <comment_count>12</comment_count>
      <attachid>112445</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-10-25 21:08:34 -0700</bug_when>
    <thetext>Created attachment 112445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>490777</commentid>
    <comment_count>13</comment_count>
      <attachid>112445</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-10-26 06:03:31 -0700</bug_when>
    <thetext>Comment on attachment 112445
Patch

Thanks for the update.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491488</commentid>
    <comment_count>14</comment_count>
      <attachid>112445</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 05:52:32 -0700</bug_when>
    <thetext>Comment on attachment 112445
Patch

Clearing flags on attachment: 112445

Committed r98556: &lt;http://trac.webkit.org/changeset/98556&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491489</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-27 05:52:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491622</commentid>
    <comment_count>16</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 08:55:53 -0700</bug_when>
    <thetext>This patch appears to have broken editing/spelling/spelling-unified-emulation.html on SL:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r98564%20(34231)/results.html

Blame list: http://trac.webkit.org/log/?action=stop_on_copy&amp;mode=stop_on_copy&amp;rev=98563&amp;stop_rev=98534&amp;limit=100&amp;verbose=on</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491666</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 10:10:09 -0700</bug_when>
    <thetext>Oops, I didn&apos;t realize but the failing test was added by this patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491675</commentid>
    <comment_count>18</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 10:17:11 -0700</bug_when>
    <thetext>I&apos;m going to rollout the patch for now because it&apos;s failing at least on Mac and GTK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>491694</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-27 10:32:14 -0700</bug_when>
    <thetext>Reopen the bug since the patch was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500409</commentid>
    <comment_count>20</comment_count>
      <attachid>114600</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-10 16:41:08 -0800</bug_when>
    <thetext>Created attachment 114600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500438</commentid>
    <comment_count>21</comment_count>
      <attachid>114600</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-10 17:34:23 -0800</bug_when>
    <thetext>Comment on attachment 114600
Patch

Basically OK. But Source/WebKit2/ChangeLog is broken. Please check the character encoding setting of your editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500446</commentid>
    <comment_count>22</comment_count>
      <attachid>114610</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-10 17:55:09 -0800</bug_when>
    <thetext>Created attachment 114610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500447</commentid>
    <comment_count>23</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-10 17:56:13 -0800</bug_when>
    <thetext>morrita-san,

sorry for bothering you...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501253</commentid>
    <comment_count>24</comment_count>
      <attachid>114610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 17:21:59 -0800</bug_when>
    <thetext>Comment on attachment 114610
Patch

Clearing flags on attachment: 114610

Committed r100050: &lt;http://trac.webkit.org/changeset/100050&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501254</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 17:22:05 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501716</commentid>
    <comment_count>26</comment_count>
    <who name="Kristóf Kosztyó">kkristof</who>
    <bug_when>2011-11-14 01:25:50 -0800</bug_when>
    <thetext>Hi, 
the new test what is added by the patch (editing/spelling/spelling-unified-emulation.html) is failng on GTK and Qt.

Please look at this bug: https://bugs.webkit.org/show_bug.cgi?id=72251</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111389</attachid>
            <date>2011-10-17 23:30:17 -0700</date>
            <delta_ts>2011-10-19 05:50:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111018153015.patch</filename>
            <type>text/plain</type>
            <size>8651</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc2OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZjkwZmZjMjc4MGEwY2Y1
MDdjMmJmNzE0MGVhMGUyNWMwN2VmN2VkLi4xMjJlZTQ4ZmVhN2U1MTMwMGQ3Y2U1NDllMjEzMDM2
N2QzMWU0OWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTEtMTAtMTcgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIENocm9taXVtIHVzZXMgdGhlIGVtdWxhdGVkIHZlcnNpb24gb2YgV2ViQ29y
ZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBieSBkZWZhdWx0LgorICAgICAgICBUaGUgb3RoZXIg
cG9ydHMgd2lsbCBub3QgYmUgYWZmZWN0ZWQgYnkgdGhpcyBjaGFuZ2UuCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzIGJlY2F1c2UgdGhpcyBjaGFuZ2Ugc2hvdWxkIGJlIGNvdmVyZWQgYnkgdGhlIGV4
aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZmluZEJhZEdyYW1tYXJzKTogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpmaW5kTWlzc3BlbGxpbmdzKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpjaGVj
a1RleHRPZlBhcmFncmFwaCk6CisgICAgICAgICAgRW11bGF0ZXMgVGV4dENoZWNrZXJDbGllbnRz
OjpjaGVja1RleHRPZlBhcmFncmFwaCBpZiBVTklGSUVEX1RFWFRfQ0hFQ0tJTkcgaXMgb2ZmLgor
ICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6
OlNldHRpbmdzKTogTWFkZSB1bmlmaXRlZFRleHRDaGVja2VyRW5hbGJlZCB0cnVlIGluIGNocm9t
aXVtIHBvcnQuCisKIDIwMTEtMTAtMTcgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIE1lc3NhZ2VFdmVudC5kYXRhIGNhbiBiZSBzdG9yZWQgYXMgU2NyaXB0
VmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hl
bHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAK
aW5kZXggMDQ3NjkxZTViYTBmYjY5NDAwNjczMTBmM2IwZmEzZDMzMzhiMmQ4Mi4uZTI1NGYyNGU2
OWYyZTUwYTk3Nzk0ZmU5MDRmY2UyOGExNDNjNWM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgorI2lu
Y2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJDbGllbnQu
aCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJWaXNpYmxlUG9zaXRpb24u
aCIKQEAgLTM5LDYgKzQwLDY1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorI2lmICFVU0Uo
VU5JRklFRF9URVhUX0NIRUNLSU5HKQorc3RhdGljIHZvaWQgZmluZEJhZEdyYW1tYXJzKFRleHRD
aGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgc3RhcnQsIGludCBs
ZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIEFTU0VS
VChXVEZfVVNFX0dSQU1NQVJfQ0hFQ0tJTkcpOworCisgICAgaW50IGNoZWNrTG9jYXRpb24gPSBz
dGFydDsKKyAgICBpbnQgY2hlY2tMZW5ndGggPSBsZW5ndGg7CisKKyAgICB3aGlsZSAoMCA8IGNo
ZWNrTGVuZ3RoKSB7CisgICAgICAgIGludCBiYWRHcmFtbWFyTG9jYXRpb24gPSAtMTsKKyAgICAg
ICAgaW50IGJhZEdyYW1tYXJMZW5ndGggPSAwOworICAgICAgICBWZWN0b3I8R3JhbW1hckRldGFp
bD4gYmFkR3JhbW1hckRldGFpbHM7CisgICAgICAgIGNsaWVudC0+Y2hlY2tHcmFtbWFyT2ZTdHJp
bmcodGV4dCArIGNoZWNrTG9jYXRpb24sIGNoZWNrTGVuZ3RoLCBiYWRHcmFtbWFyRGV0YWlscywg
JmJhZEdyYW1tYXJMb2NhdGlvbiwgJmJhZEdyYW1tYXJMZW5ndGgpOworICAgICAgICBpZiAoIWJh
ZEdyYW1tYXJMZW5ndGgpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgQVNTRVJUKDAgPD0g
YmFkR3JhbW1hckxvY2F0aW9uICYmIGJhZEdyYW1tYXJMb2NhdGlvbiA8PSBjaGVja0xlbmd0aCk7
CisgICAgICAgIEFTU0VSVCgwIDwgYmFkR3JhbW1hckxlbmd0aCAmJiBiYWRHcmFtbWFyTG9jYXRp
b24gKyBiYWRHcmFtbWFyTGVuZ3RoIDw9IGNoZWNrTGVuZ3RoKTsKKyAgICAgICAgVGV4dENoZWNr
aW5nUmVzdWx0IGJhZEdyYW1tYXI7CisgICAgICAgIGJhZEdyYW1tYXIudHlwZSA9IFRleHRDaGVj
a2luZ1R5cGVHcmFtbWFyOworICAgICAgICBiYWRHcmFtbWFyLmxvY2F0aW9uID0gY2hlY2tMb2Nh
dGlvbiArIGJhZEdyYW1tYXJMb2NhdGlvbjsKKyAgICAgICAgYmFkR3JhbW1hci5sZW5ndGggPSBi
YWRHcmFtbWFyTGVuZ3RoOworICAgICAgICBiYWRHcmFtbWFyLmRldGFpbHMuc3dhcChiYWRHcmFt
bWFyRGV0YWlscyk7CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKGJhZEdyYW1tYXIpOworCisgICAg
ICAgIGNoZWNrTG9jYXRpb24gKz0gKGJhZEdyYW1tYXJMb2NhdGlvbiArIGJhZEdyYW1tYXJMZW5n
dGgpOworICAgICAgICBjaGVja0xlbmd0aCAtPSAoYmFkR3JhbW1hckxvY2F0aW9uICsgYmFkR3Jh
bW1hckxlbmd0aCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBmaW5kTWlzc3BlbGxpbmdzKFRl
eHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgc3RhcnQsIGlu
dCBsZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1bHRzKQoreworICAgIFRl
eHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciA9IHdvcmRCcmVha0l0ZXJhdG9yKHRleHQgKyBzdGFy
dCwgbGVuZ3RoKTsKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAgICByZXR1cm47CisgICAgaW50
IHdvcmRTdGFydCA9IHRleHRCcmVha0N1cnJlbnQoaXRlcmF0b3IpOworICAgIHdoaWxlICgwIDw9
IHdvcmRTdGFydCkgeworICAgICAgICBpbnQgd29yZEVuZCA9IHRleHRCcmVha05leHQoaXRlcmF0
b3IpOworICAgICAgICBpZiAod29yZEVuZCA8IDApCisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgaW50IHdvcmRMZW5ndGggPSB3b3JkRW5kIC0gd29yZFN0YXJ0OworICAgICAgICBpbnQgbWlz
c3BlbGxpbmdMb2NhdGlvbiA9IC0xOworICAgICAgICBpbnQgbWlzc3BlbGxpbmdMZW5ndGggPSAw
OworICAgICAgICBjbGllbnQtPmNoZWNrU3BlbGxpbmdPZlN0cmluZyh0ZXh0ICsgc3RhcnQgKyB3
b3JkU3RhcnQsIHdvcmRMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0aW9uLCAmbWlzc3BlbGxpbmdM
ZW5ndGgpOworICAgICAgICBpZiAoMCA8IG1pc3NwZWxsaW5nTGVuZ3RoKSB7CisgICAgICAgICAg
ICBBU1NFUlQoMCA8PSBtaXNzcGVsbGluZ0xvY2F0aW9uICYmIG1pc3NwZWxsaW5nTG9jYXRpb24g
PD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBBU1NFUlQoMCA8IG1pc3NwZWxsaW5nTGVuZ3Ro
ICYmIG1pc3NwZWxsaW5nTG9jYXRpb24gKyBtaXNzcGVsbGluZ0xlbmd0aCA8PSB3b3JkTGVuZ3Ro
KTsKKyAgICAgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCBtaXNzcGVsbGluZzsKKyAgICAgICAg
ICAgIG1pc3NwZWxsaW5nLnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7CisgICAgICAg
ICAgICBtaXNzcGVsbGluZy5sb2NhdGlvbiA9IHN0YXJ0ICsgd29yZFN0YXJ0ICsgbWlzc3BlbGxp
bmdMb2NhdGlvbjsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLmxlbmd0aCA9IG1pc3NwZWxsaW5n
TGVuZ3RoOworICAgICAgICAgICAgbWlzc3BlbGxpbmcucmVwbGFjZW1lbnQgPSBjbGllbnQtPmdl
dEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKFN0cmluZyh0ZXh0ICsgbWlz
c3BlbGxpbmcubG9jYXRpb24sIG1pc3NwZWxsaW5nLmxlbmd0aCkpOworICAgICAgICAgICAgcmVz
dWx0cy5hcHBlbmQobWlzc3BlbGxpbmcpOworICAgICAgICB9CisKKyAgICAgICAgd29yZFN0YXJ0
ID0gd29yZEVuZDsKKyAgICB9Cit9CisjZW5kaWYKKwogc3RhdGljIFBhc3NSZWZQdHI8UmFuZ2U+
IGV4cGFuZFRvUGFyYWdyYXBoQm91bmRhcnkoUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCiB7CiAg
ICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC01OTksMTQgKzY1OSwzMSBAQCB2b2lkIGNoZWNr
VGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0
ZXh0LCBpbnQgbGVuZwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCiAgICAgY2xpZW50
LT5jaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0LCBsZW5ndGgsIGNoZWNraW5nVHlwZXMsIHJlc3Vs
dHMpOwogI2Vsc2UKLSAgICAvLyBTaG91bGQgaW1wbGVtZW50IGxhdGVyIHRvIHVuaWZ5IHVuaWZp
ZWQgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoIGFuZAotICAgIC8vIGxlZ2FjeSBzcGVsbC1jaGVj
a2luZyBjb2RlIHBhdGguCi0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgVU5VU0VEX1BB
UkFNKGNsaWVudCk7Ci0gICAgVU5VU0VEX1BBUkFNKHRleHQpOwotICAgIFVOVVNFRF9QQVJBTShs
ZW5ndGgpOwotICAgIFVOVVNFRF9QQVJBTShjaGVja2luZ1R5cGVzKTsKLSAgICBVTlVTRURfUEFS
QU0ocmVzdWx0cyk7CisgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gc3BlbGxpbmdSZXN1
bHQ7CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmcpCisg
ICAgICAgIGZpbmRNaXNzcGVsbGluZ3MoY2xpZW50LCB0ZXh0LCAwLCBsZW5ndGgsIHNwZWxsaW5n
UmVzdWx0KTsKKworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+IGdyYW1tYXJSZXN1bHQ7
CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcikgeworICAg
ICAgICAvLyBPbmx5IGNoZWNrcyBncmFtbWFydGljYWwgZXJyb3IgYmVmb3JlIHRoZSBmaXJzdCBt
aXNzcGVsbGluZ3MKKyAgICAgICAgaW50IGdyYW1tYXJDaGVja0xlbmd0aCA9IGxlbmd0aDsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzcGVsbGluZ1Jlc3VsdC5zaXplKCk7ICsraSkg
eworICAgICAgICAgICAgaWYgKHNwZWxsaW5nUmVzdWx0W2ldLmxvY2F0aW9uIDwgZ3JhbW1hckNo
ZWNrTGVuZ3RoKQorICAgICAgICAgICAgICAgIGdyYW1tYXJDaGVja0xlbmd0aCA9IHNwZWxsaW5n
UmVzdWx0W2ldLmxvY2F0aW9uOworICAgICAgICB9CisKKyAgICAgICAgZmluZEJhZEdyYW1tYXJz
KGNsaWVudCwgdGV4dCwgMCwgZ3JhbW1hckNoZWNrTGVuZ3RoLCBncmFtbWFyUmVzdWx0KTsKKyAg
ICB9CisKKyAgICBpZiAoZ3JhbW1hclJlc3VsdC5zaXplKCkpCisgICAgICAgIHJlc3VsdHMuc3dh
cChncmFtbWFyUmVzdWx0KTsKKworICAgIGlmIChzcGVsbGluZ1Jlc3VsdC5zaXplKCkpIHsKKyAg
ICAgICAgaWYgKHJlc3VsdHMuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmVzdWx0cy5zd2FwKHNw
ZWxsaW5nUmVzdWx0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQo
c3BlbGxpbmdSZXN1bHQpOworICAgIH0KICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
Y3BwCmluZGV4IGM1MzQxM2U0YjU3YjEwYzQxNmE0NjZhOWEzZjI2MDgwNjI5Mzg1NmQuLjJkMjdh
MjY0ZWM4OTYxNGM4NmY4MWNiOTJhOTZkNGNlOGRhMWQ1ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCkBAIC0xOTYsNyArMTk2LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2Up
CiAgICAgLCBtX2Z1bGxTY3JlZW5BUElFbmFibGVkKGZhbHNlKQogI2VuZGlmCiAgICAgLCBtX2Fz
eW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKQotI2lmIFVTRShVTklGSUVEX1RF
WFRfQ0hFQ0tJTkcpCisjaWYgVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykgfHwgUExBVEZPUk0o
Q0hST01JVU0pCiAgICAgLCBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSkKICNlbHNl
CiAgICAgLCBtX3VuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoZmFsc2UpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGEwYjc5
MmYyOGZmOTUxNjg2Mzk5ZDYxZTc2ZWYwNGU4YzQ0ZjU3NS4uMDVkMDhlMGYwYjI4OWM0MzhlYjdk
Y2NkMmNkZTdlNzIzNDVkODU4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE3ICBT
aGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50
IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJm
YWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAy
OTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
cyB3aGljaCBuZWVkIHJlYmFzZWxpbmluZyBhcmUgc2tpcHBlZC4KKyAgICAgICAgRWFjaCBvZiB0
aGVtIGNvbnRhaW5zIGEgd3JvbmcgbWFya2VyLCB3aGljaCBubyBsb25nZXIgYXBwZWFycyB3aXRo
IHRoaXMgZml4LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlv
bnMudHh0OgorCiAyMDExLTEwLTE3ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNZXNzYWdlRXZlbnQuZGF0YSBjYW4gYmUgc3RvcmVkIGFzIFNjcmlwdFZh
bHVlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBl
Y3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3Rh
dGlvbnMudHh0CmluZGV4IGJmNmU3ZWFkZTM5ZjZjMzVmNjMxZjkxZDFlMjllMGFlOGI3ZGIwNjYu
LmJmYzdkMzIwOTBlZmQwNWMwMzI1MDk3ZTYwNjRlMDU3MmY4MDUwYmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM0
ODAsNiArMzQ4MCwxMiBAQCBCVUdXSzY3MTIxIERFQlVHIFNMT1cgOiBlZGl0aW5nL3NlbGVjdGlv
bi9tb3ZlLWJ5LXdvcmQtdmlzdWFsbHktbXVsdGktc3BhY2UuaHRtbAogQlVHV0s2NjU2OSBXSU4g
UkVMRUFTRSA6IGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvbmV0d29yay1pZnJhbWUtbG9h
ZC1hbmQtZGVsZXRlLmh0bWwgPSBUSU1FT1VUIFBBU1MKIEJVR1dLNjY1NjkgU0xPVyBMSU5VWCBX
SU4gREVCVUcgOiBodHRwL3Rlc3RzL2luc3BlY3Rvci9uZXR3b3JrL25ldHdvcmstaWZyYW1lLWxv
YWQtYW5kLWRlbGV0ZS5odG1sID0gUEFTUwogCisvLyBOZWVkcyByZWJhc2VsaW5lCitCVUdXSzcw
Mjk5IDogZWRpdGluZy9wYXN0ZWJvYXJkL21lcmdlLWFmdGVyLWRlbGV0ZS0xLmh0bWwgPSBJTUFH
RQorQlVHV0s3MDI5OSA6IGVkaXRpbmcvcGFzdGVib2FyZC9tZXJnZS1hZnRlci1kZWxldGUtMi5o
dG1sID0gSU1BR0UKK0JVR1dLNzAyOTkgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvbWVyZ2UtYWZ0ZXIt
ZGVsZXRlLmh0bWwgPSBJTUFHRQorQlVHV0s3MDI5OSA6IGVkaXRpbmcvcGFzdGVib2FyZC9tZXJn
ZS1lbmQtYmxvY2txdW90ZS5odG1sID0gSU1BR0UKKwogQlVHV0s2NjU3NyBMRU9QQVJEIDogZmFz
dC9ldmVudHMvdG91Y2gvYmFzaWMtc2luZ2xlLXRvdWNoLWV2ZW50cy5odG1sID0gVElNRU9VVAog
QlVHV0s2NjU3NyBMRU9QQVJEIDogZmFzdC9ldmVudHMvdG91Y2gvbXVsdGktdG91Y2gtZ3JvdXBl
ZC10YXJnZXRzLmh0bWwgPSBUSU1FT1VUCiBCVUdXSzY2NTc3IExFT1BBUkQgOiBmYXN0L2V2ZW50
cy90b3VjaC90b3VjaC1nZXN0dXJlLXNjcm9sbC5odG1sID0gVElNRU9VVAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111601</attachid>
            <date>2011-10-19 05:51:06 -0700</date>
            <delta_ts>2011-10-19 21:40:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111019215105.patch</filename>
            <type>text/plain</type>
            <size>12818</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc4MTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjcyZDI3MDFhNjgxOTEy
MDMyZTQ3NWVjMWFjOGM0MWFhNmEyYTc1Li41ZmVjNjBhZjNkNmFiOWIyOGFiNWM0N2I4MWY5YzEw
NjkyNmQ1Zjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTAtMTgg
IE1hcmsgSGFobmVuYmVyZyAgPG1oYWhuZW5iZXJnQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW5h
bWUgc3RhdGljIHB1dCB0byBwdXRCeUluZGV4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Rl
eHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXggMDQ3NjkxZTViYTBmYjY5NDAwNjczMTBmM2IwZmEz
ZDMzMzhiMmQ4Mi4uZTI1NGYyNGU2OWYyZTUwYTk3Nzk0ZmU5MDRmY2UyOGExNDNjNWM4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNs
dWRlICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiVGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNs
dWRlICJWaXNpYmxlUG9zaXRpb24uaCIKQEAgLTM5LDYgKzQwLDY1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorI2lmICFVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQorc3RhdGljIHZvaWQg
ZmluZEJhZEdyYW1tYXJzKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0
ZXh0LCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiBy
ZXN1bHRzKQoreworICAgIEFTU0VSVChXVEZfVVNFX0dSQU1NQVJfQ0hFQ0tJTkcpOworCisgICAg
aW50IGNoZWNrTG9jYXRpb24gPSBzdGFydDsKKyAgICBpbnQgY2hlY2tMZW5ndGggPSBsZW5ndGg7
CisKKyAgICB3aGlsZSAoMCA8IGNoZWNrTGVuZ3RoKSB7CisgICAgICAgIGludCBiYWRHcmFtbWFy
TG9jYXRpb24gPSAtMTsKKyAgICAgICAgaW50IGJhZEdyYW1tYXJMZW5ndGggPSAwOworICAgICAg
ICBWZWN0b3I8R3JhbW1hckRldGFpbD4gYmFkR3JhbW1hckRldGFpbHM7CisgICAgICAgIGNsaWVu
dC0+Y2hlY2tHcmFtbWFyT2ZTdHJpbmcodGV4dCArIGNoZWNrTG9jYXRpb24sIGNoZWNrTGVuZ3Ro
LCBiYWRHcmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJMb2NhdGlvbiwgJmJhZEdyYW1tYXJMZW5n
dGgpOworICAgICAgICBpZiAoIWJhZEdyYW1tYXJMZW5ndGgpCisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgQVNTRVJUKDAgPD0gYmFkR3JhbW1hckxvY2F0aW9uICYmIGJhZEdyYW1tYXJMb2Nh
dGlvbiA8PSBjaGVja0xlbmd0aCk7CisgICAgICAgIEFTU0VSVCgwIDwgYmFkR3JhbW1hckxlbmd0
aCAmJiBiYWRHcmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoIDw9IGNoZWNrTGVuZ3Ro
KTsKKyAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0IGJhZEdyYW1tYXI7CisgICAgICAgIGJhZEdy
YW1tYXIudHlwZSA9IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyOworICAgICAgICBiYWRHcmFtbWFy
LmxvY2F0aW9uID0gY2hlY2tMb2NhdGlvbiArIGJhZEdyYW1tYXJMb2NhdGlvbjsKKyAgICAgICAg
YmFkR3JhbW1hci5sZW5ndGggPSBiYWRHcmFtbWFyTGVuZ3RoOworICAgICAgICBiYWRHcmFtbWFy
LmRldGFpbHMuc3dhcChiYWRHcmFtbWFyRGV0YWlscyk7CisgICAgICAgIHJlc3VsdHMuYXBwZW5k
KGJhZEdyYW1tYXIpOworCisgICAgICAgIGNoZWNrTG9jYXRpb24gKz0gKGJhZEdyYW1tYXJMb2Nh
dGlvbiArIGJhZEdyYW1tYXJMZW5ndGgpOworICAgICAgICBjaGVja0xlbmd0aCAtPSAoYmFkR3Jh
bW1hckxvY2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCk7CisgICAgfQorfQorCitzdGF0aWMgdm9p
ZCBmaW5kTWlzc3BlbGxpbmdzKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFy
KiB0ZXh0LCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
JiByZXN1bHRzKQoreworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciA9IHdvcmRCcmVh
a0l0ZXJhdG9yKHRleHQgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAg
ICAgICByZXR1cm47CisgICAgaW50IHdvcmRTdGFydCA9IHRleHRCcmVha0N1cnJlbnQoaXRlcmF0
b3IpOworICAgIHdoaWxlICgwIDw9IHdvcmRTdGFydCkgeworICAgICAgICBpbnQgd29yZEVuZCA9
IHRleHRCcmVha05leHQoaXRlcmF0b3IpOworICAgICAgICBpZiAod29yZEVuZCA8IDApCisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgaW50IHdvcmRMZW5ndGggPSB3b3JkRW5kIC0gd29yZFN0
YXJ0OworICAgICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOworICAgICAgICBpbnQg
bWlzc3BlbGxpbmdMZW5ndGggPSAwOworICAgICAgICBjbGllbnQtPmNoZWNrU3BlbGxpbmdPZlN0
cmluZyh0ZXh0ICsgc3RhcnQgKyB3b3JkU3RhcnQsIHdvcmRMZW5ndGgsICZtaXNzcGVsbGluZ0xv
Y2F0aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOworICAgICAgICBpZiAoMCA8IG1pc3NwZWxsaW5n
TGVuZ3RoKSB7CisgICAgICAgICAgICBBU1NFUlQoMCA8PSBtaXNzcGVsbGluZ0xvY2F0aW9uICYm
IG1pc3NwZWxsaW5nTG9jYXRpb24gPD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBBU1NFUlQo
MCA8IG1pc3NwZWxsaW5nTGVuZ3RoICYmIG1pc3NwZWxsaW5nTG9jYXRpb24gKyBtaXNzcGVsbGlu
Z0xlbmd0aCA8PSB3b3JkTGVuZ3RoKTsKKyAgICAgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCBt
aXNzcGVsbGluZzsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLnR5cGUgPSBUZXh0Q2hlY2tpbmdU
eXBlU3BlbGxpbmc7CisgICAgICAgICAgICBtaXNzcGVsbGluZy5sb2NhdGlvbiA9IHN0YXJ0ICsg
d29yZFN0YXJ0ICsgbWlzc3BlbGxpbmdMb2NhdGlvbjsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5n
Lmxlbmd0aCA9IG1pc3NwZWxsaW5nTGVuZ3RoOworICAgICAgICAgICAgbWlzc3BlbGxpbmcucmVw
bGFjZW1lbnQgPSBjbGllbnQtPmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRX
b3JkKFN0cmluZyh0ZXh0ICsgbWlzc3BlbGxpbmcubG9jYXRpb24sIG1pc3NwZWxsaW5nLmxlbmd0
aCkpOworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobWlzc3BlbGxpbmcpOworICAgICAgICB9
CisKKyAgICAgICAgd29yZFN0YXJ0ID0gd29yZEVuZDsKKyAgICB9Cit9CisjZW5kaWYKKwogc3Rh
dGljIFBhc3NSZWZQdHI8UmFuZ2U+IGV4cGFuZFRvUGFyYWdyYXBoQm91bmRhcnkoUGFzc1JlZlB0
cjxSYW5nZT4gcmFuZ2UpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC01OTksMTQg
KzY1OSwzMSBAQCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50KiBj
bGllbnQsIGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZwogI2lmIFVTRShVTklGSUVEX1RFWFRf
Q0hFQ0tJTkcpCiAgICAgY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0LCBsZW5ndGgs
IGNoZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogI2Vsc2UKLSAgICAvLyBTaG91bGQgaW1wbGVtZW50
IGxhdGVyIHRvIHVuaWZ5IHVuaWZpZWQgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoIGFuZAotICAg
IC8vIGxlZ2FjeSBzcGVsbC1jaGVja2luZyBjb2RlIHBhdGguCi0gICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7Ci0gICAgVU5VU0VEX1BBUkFNKHRleHQp
OwotICAgIFVOVVNFRF9QQVJBTShsZW5ndGgpOwotICAgIFVOVVNFRF9QQVJBTShjaGVja2luZ1R5
cGVzKTsKLSAgICBVTlVTRURfUEFSQU0ocmVzdWx0cyk7CisgICAgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4gc3BlbGxpbmdSZXN1bHQ7CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hl
Y2tpbmdUeXBlU3BlbGxpbmcpCisgICAgICAgIGZpbmRNaXNzcGVsbGluZ3MoY2xpZW50LCB0ZXh0
LCAwLCBsZW5ndGgsIHNwZWxsaW5nUmVzdWx0KTsKKworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+IGdyYW1tYXJSZXN1bHQ7CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tp
bmdUeXBlR3JhbW1hcikgeworICAgICAgICAvLyBPbmx5IGNoZWNrcyBncmFtbWFydGljYWwgZXJy
b3IgYmVmb3JlIHRoZSBmaXJzdCBtaXNzcGVsbGluZ3MKKyAgICAgICAgaW50IGdyYW1tYXJDaGVj
a0xlbmd0aCA9IGxlbmd0aDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzcGVsbGlu
Z1Jlc3VsdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNwZWxsaW5nUmVzdWx0W2ld
LmxvY2F0aW9uIDwgZ3JhbW1hckNoZWNrTGVuZ3RoKQorICAgICAgICAgICAgICAgIGdyYW1tYXJD
aGVja0xlbmd0aCA9IHNwZWxsaW5nUmVzdWx0W2ldLmxvY2F0aW9uOworICAgICAgICB9CisKKyAg
ICAgICAgZmluZEJhZEdyYW1tYXJzKGNsaWVudCwgdGV4dCwgMCwgZ3JhbW1hckNoZWNrTGVuZ3Ro
LCBncmFtbWFyUmVzdWx0KTsKKyAgICB9CisKKyAgICBpZiAoZ3JhbW1hclJlc3VsdC5zaXplKCkp
CisgICAgICAgIHJlc3VsdHMuc3dhcChncmFtbWFyUmVzdWx0KTsKKworICAgIGlmIChzcGVsbGlu
Z1Jlc3VsdC5zaXplKCkpIHsKKyAgICAgICAgaWYgKHJlc3VsdHMuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmVzdWx0cy5zd2FwKHNwZWxsaW5nUmVzdWx0KTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgcmVzdWx0cy5hcHBlbmQoc3BlbGxpbmdSZXN1bHQpOworICAgIH0KICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggY2MxNDVkMDA0Y2YyM2ZlOGQy
MDZkNmZkNDg4ZjA2ODgyMGJiZDEyMi4uYWYyMzM4ODBlZjEyNTg5M2M4NDBmZGVmZjBkMTlkZDky
NzJlYjViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNDc0LDQgKzQ3
NCwyNCBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29w
ZSwgY29uc3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogICAgIHJldHVybiBsZW5ndGg7CiB9CiAK
K3ZvaWQgSW50ZXJuYWxzOjpzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCog
ZG9jdW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFk
b2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgpLT5zZXR0
aW5ncygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnNldFVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjp1bmlm
aWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUm
IGVjKQoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1
bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNT
X0VSUjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBkb2N1bWVu
dC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+dW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCgpOworfQor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA0N2ZkODlkYTE5YWQzODRkYWVh
ODUyMDU2YjIwNmI1NWVmNTU0MWQzLi4wYTRlNTI4NjQzYzQ5MGNjOGM0YzQ2ODBlY2U1OGMyODg5
ZjdiYTM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTk4LDYgKzk4LDkgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVsZW1lbnQqIHNjb3BlLCBj
b25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBsZW5ndGhGcm9tUmFu
Z2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAg
dm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIGJvb2wsIEV4Y2Vw
dGlvbkNvZGUmKTsKKyAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50
KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lk
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDE2MDQx
N2ZjMzZkZmIxNDM2NWUzNjQ0NWRjNDZmY2UzNmZhNTg5ODguLjdlYjliM2UxMGRiN2U5YzE1YWVl
OWQ3NjY2NzhiZmY0MmFhOTVjZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTcxLDYgKzcxLDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFJhbmdlIHJhbmdlRnJv
bUxvY2F0aW9uQW5kTGVuZ3RoKGluIEVsZW1lbnQgc2NvcGUsIGluIGxvbmcgcmFuZ2VMb2NhdGlv
biwgaW4gbG9uZyByYW5nZUxlbmd0aCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB1
bnNpZ25lZCBsb25nIGxvY2F0aW9uRnJvbVJhbmdlKGluIEVsZW1lbnQgc2NvcGUsIGluIFJhbmdl
IHJhbmdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbGVu
Z3RoRnJvbVJhbmdlKGluIEVsZW1lbnQgc2NvcGUsIGluIFJhbmdlIHJhbmdlKSByYWlzZXMgKERP
TUV4Y2VwdGlvbik7CisKKyAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxl
ZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4g
RG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMTY0NzM4YzIxZjBlNzQ5NTcwYjk4YjI3MTRlNjVjOTE2OTM2ODg5Yy4uM2Q4MmQ0MjAx
M2E2MWFiZGRlMmZhOTcyYWZkYTQ3ODMyZTgyOWM5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQg
Y2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCB0ZXN0cyBmb3IgdGhlIGNhc2UgdW5pZmllZCB0ZXh0IGNoZWNrZXIgaXMg
dXNlZCB3aGVuIFdlYkNvcmU6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKCkgaXMgbm90IHN1cHBvcnRl
ZC4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRp
b24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTE4ICBEaXJrIFBy
YW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIE1hcmsgc3RvcmFnZS9kb21z
dG9yYWdlL2V2ZW50cy9kb2N1bWVudFVSSSBhcyBhIGZsYWt5IGNyYXNoCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmll
ZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhZTMzODgxMzlkMjBjOTgyMDhk
ZDdmNzE4OGYxMzMxNGExYzQ4MWUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIyIEBACit6ei4KKzE6IHp6CithcHBsZSx6eixvcmFuZ2UuCisxOiB6egorenosenou
CisyOiB6eiwgenoKK3p6IHp6IHp6LgorMzogenosIHp6LCB6egorenoga2lzYXJhZ2kgeWF5b2ku
CisxOiB6egora2lzYXJhZ2kgenogeWF5b2kuCisxOiB6egora2lzYXJhZ2kgeWF5b2kgenouCisx
OiB6egora2lzYXJhZ2kKK3lheW9pCit6ei4KKzA6Cit6enouCiswOgorSSB3b3VsZCBsaWtlIHRv
IHNsZWVwLCB6enouCiswOgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBiZmVj
MWUyNDEwZGY1MjMzMzI4MmFhMmFiZDBhZjk0YzU4YjM2ZjUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0
bWwKQEAgLTAsMCArMSw5MCBAQAorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT48L3RpdGxlPgorPGxp
bmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0
LXN0eWxlLmNzcyI+Cis8c3R5bGU+CisuZWRpdGluZyB7CisgIGJvcmRlcjogMnB4IHNvbGlkIHJl
ZDsKKyAgcGFkZGluZzogNnB4OworICBmb250LXNpemU6IDE4cHg7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9K
YXZhU2NyaXB0IiA+PC9zY3JpcHQ+Cis8c2NyaXB0IGxhbmd1YWdlPSJqYXZhc2NyaXB0IiB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgaW50ZXJuYWxzLnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVl
KTsKKwordmFyIGRhdGEgPSBbCisgICAgeyB0ZXh0OiAnenonIH0sCisgICAgeyB0ZXh0OiAnYXBw
bGUsenosb3JhbmdlJyB9LAorICAgIHsgdGV4dDogJ3p6LHp6JyB9LAorICAgIHsgdGV4dDogJ3p6
IHp6IHp6JyB9LAorICAgIHsgdGV4dDogJ3p6IGtpc2FyYWdpIHlheW9pJyB9LAorICAgIHsgdGV4
dDogJ2tpc2FyYWdpIHp6IHlheW9pJyB9LAorICAgIHsgdGV4dDogJ2tpc2FyYWdpIHlheW9pIHp6
JyB9LAorICAgIHsgdGV4dDogJ2tpc2FyYWdpXG55YXlvaVxuenonIH0sCisgICAgeyB0ZXh0OiAn
enp6JyB9LAorICAgIHsgdGV4dDogJ0kgd291bGQgbGlrZSB0byBzbGVlcCwgenp6JyB9CitdOwor
CisKK2Z1bmN0aW9uIHdyaXRlVGV4dChpZCwgd29yZCkgeworICB2YXIgZSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICBlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwg
InRydWUiKTsKKyAgZS5jbGFzc05hbWUgPSAnZWRpdGluZyc7CisgIGUuaWQgPSBpZDsKKyAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKS5hcHBlbmRDaGlsZChlKTsKKworICBlLmZvY3Vz
KCk7CisgIGZvciAodmFyIGkgPSAwOyBpIDwgd29yZC5sZW5ndGg7ICsraSkgeworICAgIHR5cGVD
aGFyYWN0ZXJDb21tYW5kKHdvcmRbaV0pOworICB9CisgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcu
Jyk7Cit9CisKK2Z1bmN0aW9uIHZlcmlmeVRleHQoaWQsIG1hcmtlcnMpIHsKKyAgICBpZiAoIXdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJldHVybjsKKworICAgIHZhciBlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoaWQpOworICAgIHZhciBudW1NYXJrZWQgPSBpbnRlcm5hbHMubWFya2Vy
Q291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCk7CisgICAgdmFyIHN0ciA9ICcnICsgbnVtTWFya2Vk
ICsgJzogJyA7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1NYXJrZWQ7ICsraSkgeworICAg
ICAgICB2YXIgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGls
ZCwgaSk7CisgICAgICAgIGlmIChpKQorICAgICAgICAgICAgc3RyICs9ICcsICc7CisgICAgICAg
IGlmIChyYW5nZSkKKyAgICAgICAgICAgIHN0ciArPSByYW5nZS50b1N0cmluZygpOworICAgIH0K
KyAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgcmVz
dWx0LmlubmVySFRNTCA9IHN0cjsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyb290
JykuaW5zZXJ0QmVmb3JlKHJlc3VsdCwgZS5uZXh0U2libGluZyk7Cit9CisKK2Z1bmN0aW9uIGNo
ZWNrU3BlbGxpbmcoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytp
KSB7CisgICAgICAgIHdyaXRlVGV4dCgncm9vdCcgKyBpLCBkYXRhW2ldLnRleHQpOworICAgIH0K
KworICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZGF0YS5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgdmVyaWZ5VGV4dCgncm9vdCcgKyBp
LCBudWxsKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iY2hlY2tTcGVs
bGluZygpIj4KKzxkaXYgaWQ9InJvb3QiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111722</attachid>
            <date>2011-10-19 21:40:37 -0700</date>
            <delta_ts>2011-10-19 21:44:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111020134036.patch</filename>
            <type>text/plain</type>
            <size>16634</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTEzMmM3ZjU3MTBmYWEx
YTViNWU0MmRmNDFhYTVlY2YwMTYyMzJlLi42MDc4YWUyM2NiNWQxMGQzNmQyZGQyNDc5YzQ0Y2Jh
NTQ1NzUwNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTAtMTkg
IEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgogCiAgICAgICAg
IFVwZGF0ZSBNZWRpYVN0cmVhbSB0byB1c2UgV2ViQ29yZSBwbGF0Zm9ybSBpbnRlcmZhY2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggODI4NTIzOWM2NDQxN2M2ZmQwYTdmZjQ1ZDZlNmVmMGEzMTdmNTFiNC4uM2Fi
NTNiNDFmYzdhZGNlOWVjYzBhNTgyMzkxYzE3Y2VlMTY2MTJlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1
bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2Vi
S2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEtMTAtMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGl0ZSBmbGFzaCB3aGVuIHBhaW50aW5nIGEgcHJldmlv
dXNseSBjcmFzaGVkIFdLVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwCmluZGV4IDA0NzY5MWU1YmEwZmI2OTQwMDY3MzEwZjNiMGZhM2QzMzM4YjJk
ODIuLmUyNTRmMjRlNjlmMmU1MGE5Nzc5NGZlOTA0ZmNlMjhhMTQzYzVjODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRD
aGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVBvc2l0aW9uLmgiCkBAIC0zOSw2ICs0MCw2NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKKyNpZiAhVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKK3N0YXRpYyB2b2lkIGZpbmRCYWRH
cmFtbWFycyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciogdGV4dCwgaW50
IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykK
K3sKKyAgICBBU1NFUlQoV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HKTsKKworICAgIGludCBjaGVj
a0xvY2F0aW9uID0gc3RhcnQ7CisgICAgaW50IGNoZWNrTGVuZ3RoID0gbGVuZ3RoOworCisgICAg
d2hpbGUgKDAgPCBjaGVja0xlbmd0aCkgeworICAgICAgICBpbnQgYmFkR3JhbW1hckxvY2F0aW9u
ID0gLTE7CisgICAgICAgIGludCBiYWRHcmFtbWFyTGVuZ3RoID0gMDsKKyAgICAgICAgVmVjdG9y
PEdyYW1tYXJEZXRhaWw+IGJhZEdyYW1tYXJEZXRhaWxzOworICAgICAgICBjbGllbnQtPmNoZWNr
R3JhbW1hck9mU3RyaW5nKHRleHQgKyBjaGVja0xvY2F0aW9uLCBjaGVja0xlbmd0aCwgYmFkR3Jh
bW1hckRldGFpbHMsICZiYWRHcmFtbWFyTG9jYXRpb24sICZiYWRHcmFtbWFyTGVuZ3RoKTsKKyAg
ICAgICAgaWYgKCFiYWRHcmFtbWFyTGVuZ3RoKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IEFTU0VSVCgwIDw9IGJhZEdyYW1tYXJMb2NhdGlvbiAmJiBiYWRHcmFtbWFyTG9jYXRpb24gPD0g
Y2hlY2tMZW5ndGgpOworICAgICAgICBBU1NFUlQoMCA8IGJhZEdyYW1tYXJMZW5ndGggJiYgYmFk
R3JhbW1hckxvY2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCA8PSBjaGVja0xlbmd0aCk7CisgICAg
ICAgIFRleHRDaGVja2luZ1Jlc3VsdCBiYWRHcmFtbWFyOworICAgICAgICBiYWRHcmFtbWFyLnR5
cGUgPSBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICAgICAgYmFkR3JhbW1hci5sb2NhdGlv
biA9IGNoZWNrTG9jYXRpb24gKyBiYWRHcmFtbWFyTG9jYXRpb247CisgICAgICAgIGJhZEdyYW1t
YXIubGVuZ3RoID0gYmFkR3JhbW1hckxlbmd0aDsKKyAgICAgICAgYmFkR3JhbW1hci5kZXRhaWxz
LnN3YXAoYmFkR3JhbW1hckRldGFpbHMpOworICAgICAgICByZXN1bHRzLmFwcGVuZChiYWRHcmFt
bWFyKTsKKworICAgICAgICBjaGVja0xvY2F0aW9uICs9IChiYWRHcmFtbWFyTG9jYXRpb24gKyBi
YWRHcmFtbWFyTGVuZ3RoKTsKKyAgICAgICAgY2hlY2tMZW5ndGggLT0gKGJhZEdyYW1tYXJMb2Nh
dGlvbiArIGJhZEdyYW1tYXJMZW5ndGgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZmluZE1p
c3NwZWxsaW5ncyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciogdGV4dCwg
aW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0
cykKK3sKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IgPSB3b3JkQnJlYWtJdGVyYXRv
cih0ZXh0ICsgc3RhcnQsIGxlbmd0aCk7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0
dXJuOworICAgIGludCB3b3JkU3RhcnQgPSB0ZXh0QnJlYWtDdXJyZW50KGl0ZXJhdG9yKTsKKyAg
ICB3aGlsZSAoMCA8PSB3b3JkU3RhcnQpIHsKKyAgICAgICAgaW50IHdvcmRFbmQgPSB0ZXh0QnJl
YWtOZXh0KGl0ZXJhdG9yKTsKKyAgICAgICAgaWYgKHdvcmRFbmQgPCAwKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGludCB3b3JkTGVuZ3RoID0gd29yZEVuZCAtIHdvcmRTdGFydDsKKyAg
ICAgICAgaW50IG1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKKyAgICAgICAgaW50IG1pc3NwZWxs
aW5nTGVuZ3RoID0gMDsKKyAgICAgICAgY2xpZW50LT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcodGV4
dCArIHN0YXJ0ICsgd29yZFN0YXJ0LCB3b3JkTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwg
Jm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICAgICAgaWYgKDAgPCBtaXNzcGVsbGluZ0xlbmd0aCkg
eworICAgICAgICAgICAgQVNTRVJUKDAgPD0gbWlzc3BlbGxpbmdMb2NhdGlvbiAmJiBtaXNzcGVs
bGluZ0xvY2F0aW9uIDw9IHdvcmRMZW5ndGgpOworICAgICAgICAgICAgQVNTRVJUKDAgPCBtaXNz
cGVsbGluZ0xlbmd0aCAmJiBtaXNzcGVsbGluZ0xvY2F0aW9uICsgbWlzc3BlbGxpbmdMZW5ndGgg
PD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgbWlzc3BlbGxp
bmc7CisgICAgICAgICAgICBtaXNzcGVsbGluZy50eXBlID0gVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOworICAgICAgICAgICAgbWlzc3BlbGxpbmcubG9jYXRpb24gPSBzdGFydCArIHdvcmRTdGFy
dCArIG1pc3NwZWxsaW5nTG9jYXRpb247CisgICAgICAgICAgICBtaXNzcGVsbGluZy5sZW5ndGgg
PSBtaXNzcGVsbGluZ0xlbmd0aDsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLnJlcGxhY2VtZW50
ID0gY2xpZW50LT5nZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChTdHJp
bmcodGV4dCArIG1pc3NwZWxsaW5nLmxvY2F0aW9uLCBtaXNzcGVsbGluZy5sZW5ndGgpKTsKKyAg
ICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1pc3NwZWxsaW5nKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHdvcmRTdGFydCA9IHdvcmRFbmQ7CisgICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyBQYXNz
UmVmUHRyPFJhbmdlPiBleHBhbmRUb1BhcmFncmFwaEJvdW5kYXJ5KFBhc3NSZWZQdHI8UmFuZ2U+
IHJhbmdlKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtNTk5LDE0ICs2NTksMzEg
QEAgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBj
b25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmcKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5H
KQogICAgIGNsaWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4dCwgbGVuZ3RoLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKICNlbHNlCi0gICAgLy8gU2hvdWxkIGltcGxlbWVudCBsYXRlciB0
byB1bmlmeSB1bmlmaWVkIHNwZWxsLWNoZWNraW5nIGNvZGUgcGF0aCBhbmQKLSAgICAvLyBsZWdh
Y3kgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOwotICAgIFVOVVNFRF9QQVJBTSh0ZXh0KTsKLSAgICBV
TlVTRURfUEFSQU0obGVuZ3RoKTsKLSAgICBVTlVTRURfUEFSQU0oY2hlY2tpbmdUeXBlcyk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHJlc3VsdHMpOworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHNwZWxsaW5nUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVzICYgVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nKQorICAgICAgICBmaW5kTWlzc3BlbGxpbmdzKGNsaWVudCwgdGV4dCwgMCwgbGVu
Z3RoLCBzcGVsbGluZ1Jlc3VsdCk7CisKKyAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBn
cmFtbWFyUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVzICYgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIpIHsKKyAgICAgICAgLy8gT25seSBjaGVja3MgZ3JhbW1hcnRpY2FsIGVycm9yIGJlZm9y
ZSB0aGUgZmlyc3QgbWlzc3BlbGxpbmdzCisgICAgICAgIGludCBncmFtbWFyQ2hlY2tMZW5ndGgg
PSBsZW5ndGg7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3BlbGxpbmdSZXN1bHQu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzcGVsbGluZ1Jlc3VsdFtpXS5sb2NhdGlv
biA8IGdyYW1tYXJDaGVja0xlbmd0aCkKKyAgICAgICAgICAgICAgICBncmFtbWFyQ2hlY2tMZW5n
dGggPSBzcGVsbGluZ1Jlc3VsdFtpXS5sb2NhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZp
bmRCYWRHcmFtbWFycyhjbGllbnQsIHRleHQsIDAsIGdyYW1tYXJDaGVja0xlbmd0aCwgZ3JhbW1h
clJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGdyYW1tYXJSZXN1bHQuc2l6ZSgpKQorICAgICAg
ICByZXN1bHRzLnN3YXAoZ3JhbW1hclJlc3VsdCk7CisKKyAgICBpZiAoc3BlbGxpbmdSZXN1bHQu
c2l6ZSgpKSB7CisgICAgICAgIGlmIChyZXN1bHRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
c3VsdHMuc3dhcChzcGVsbGluZ1Jlc3VsdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
c3VsdHMuYXBwZW5kKHNwZWxsaW5nUmVzdWx0KTsKKyAgICB9CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNjMTQ1ZDAwNGNmMjNmZThkMjA2ZDZmZDQ4
OGYwNjg4MjBiYmQxMjIuLmFmMjMzODgwZWYxMjU4OTNjODQwZmRlZmYwZDE5ZGQ5MjcyZWI1YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ3NCw0ICs0NzQsMjQgQEAg
dW5zaWduZWQgSW50ZXJuYWxzOjpsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0
IFJhbmdlKiByYW5nZSwgRXhjZXB0aW8KICAgICByZXR1cm4gbGVuZ3RoOwogfQogCit2b2lkIElu
dGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50
LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkg
eworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENo
ZWNrZXJFbmFibGVkKGVuYWJsZWQpOworfQorCitib29sIEludGVybmFsczo6dW5pZmllZFRleHRD
aGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZy
YW1lKCktPnNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1l
KCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKK30KKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDdmZDg5ZGExOWFkMzg0ZGFlYTg1MjA1NmIy
MDZiNTVlZjU1NDFkMy4uMGE0ZTUyODY0M2M0OTBjYzhjNGM0NjgwZWNlNThjMjg4OWY3YmEzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBsb2NhdGlvbkZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFu
Z2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGVuZ3RoRnJvbVJhbmdlKEVsZW1l
bnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0
VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAxNjA0MTdmYzM2ZGZi
MTQzNjVlMzY0NDVkYzQ2ZmNlMzZmYTU4OTg4Li43ZWI5YjNlMTBkYjdlOWMxNWFlZTlkNzY2Njc4
YmZmNDJhYTk1Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03MSw2
ICs3MSw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBSYW5nZSByYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aChpbiBFbGVtZW50IHNjb3BlLCBpbiBsb25nIHJhbmdlTG9jYXRpb24sIGluIGxv
bmcgcmFuZ2VMZW5ndGgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQg
bG9uZyBsb2NhdGlvbkZyb21SYW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB1bnNpZ25lZCBsb25nIGxlbmd0aEZyb21S
YW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01FeGNlcHRp
b24pOworCisgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIERvY3VtZW50
IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCmluZGV4IDE5YzQ1NDMwZWUzZDY0NGQxZmY2Mzk3YTg4NGI0ZTcxM2M2N2MxZjIu
LmZiMzYwNTIyNjk4MzgyNTQxNWY1N2I5NjJhNjNjYTU2NGVhOGM5NzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKQEAgLTE3MiwxMCArMTcyLDExIEBAIEVYUE9SVFMKICAgICAgICAgP3NldFNjcm9s
bE9mZnNldEZyb21JbnRlcm5hbHNAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUFFWEFCVkludFBv
aW50QDJAQFoKICAgICAgICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2Vi
Q29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBX
ZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCisgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJD
b3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2Vi
Q29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9zdWdnZXN0ZWRWYWx1ZUBIVE1M
SW5wdXRFbGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZAQFhaCiAgICAgICAgID90b0Rv
Y3VtZW50QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCi0gICAgICAg
ID90b0VsZW1lbnRAV2ViQ29yZUBAWUFQQVZFbGVtZW50QDFAVkpTVmFsdWVASlNDQEBAWgorICAg
ICAgICA/dG9FbGVtZW50QFdlYkNvcmVAQFlBUEFWRWxlbWVudEAxQFZKU1ZhbHVlQEpTQ3FAQEBa
CiAgICAgICAgID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAz
QFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWQ2xpZW50UmVjdEAxQEBaCiAgICAgICAgID90b0pT
QFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFs
T2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID90b0pTQFdlYkNvcmVAQFlBP0FWSlNWYWx1
ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWUmFuZ2VAMUBA
WgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDdkNzQ2MjkwZTNiM2E5MDNm
NDNmNTYwODljN2Y0ZDk5MDFiNmJiOWYuLjM2OTc2N2NlY2JjYjA0YmUwNzc4NmE1Yjg4MDI1MGRl
NDY1NjUyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRl
ZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2NCw2ICsx
NjQsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzQFNj
cm9sbGFibGVBcmVhQFdlYkNvcmVAQFFBRVhBQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9zZXRT
dWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RG
QEBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NA
MkBYWgorICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBY
WgogICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RA
MkBYWgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBR
QkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRv
Y3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYTMx
MTM5NjEyMjE0YjhlNTAyMTMwNDM1N2MwZTdjZjQwYTkyYzk3ZS4uYWMxZThkNDZlOWFlY2ExZDYw
YjgwNGNjMjkzZTA4YTRmZTQxZDM5MSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC03MCw2
ICs3MCw3IEBAIF9aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94
UmVjdEViOwogX1pOSzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTRzdWdnZXN0ZWRWYWx1ZUV2
OwogX1pOSzdXZWJDb3JlMjBDYWNoZWRSZXNvdXJjZUxvYWRlcjExaXNQcmVsb2FkZWRFUktOM1dU
RjZTdHJpbmdFOwogX1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIxbGFz
dENoYW5nZVdhc1VzZXJFZGl0RXY7CitfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9a
Tks3V2ViQ29yZTZKU05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRl
RVBOUzFfMTRTY29wZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9v
dEV2OwogX1pOSzdXZWJDb3JlOERvY3VtZW50NHBhZ2VFdjsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NDZiNGFmZTA5NGJk
OGE4YTA5OTk3YmVmY2M2ZDFiMDg1MjU3MDM4Li4wN2U3ZGU0NGZiMDk1NTUzMzQ3NDlmOWQ3NTk3
Y2UzOGU2MDYzMDE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTkgIFNoaW55YSBL
YXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVnYWN5
IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3Rz
IGZvciB0aGUgY2FzZSB1bmlmaWVkIHRleHQgY2hlY2tlciBpcyB1c2VkIHdoZW4gV2ViQ29yZTo6
Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgoKSBpcyBub3Qgc3VwcG9ydGVkLgorCisgICAgICAgICogZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRp
b24uaHRtbDogQWRkZWQuCisKIDIwMTEtMTAtMTkgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBGaXggdGVzdCBicmVha2FnZSBhZnRlciByOTc4ODEKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVs
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy11bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFlMzM4ODEzOWQy
MGM5ODIwOGRkN2Y3MTg4ZjEzMzE0YTFjNDgxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjIgQEAKK3p6LgorMTogenoKK2FwcGxlLHp6LG9yYW5nZS4KKzE6IHp6
Cit6eix6ei4KKzI6IHp6LCB6egorenogenogenouCiszOiB6eiwgenosIHp6Cit6eiBraXNhcmFn
aSB5YXlvaS4KKzE6IHp6CitraXNhcmFnaSB6eiB5YXlvaS4KKzE6IHp6CitraXNhcmFnaSB5YXlv
aSB6ei4KKzE6IHp6CitraXNhcmFnaQoreWF5b2kKK3p6LgorMDoKK3p6ei4KKzA6CitJIHdvdWxk
IGxpa2UgdG8gc2xlZXAsIHp6ei4KKzA6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMGJmZWMxZTI0MTBkZjUyMzMzMjgyYWEyYWJkMGFmOTRjNThiMzZmNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVs
YXRpb24uaHRtbApAQCAtMCwwICsxLDkwIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPjwvdGl0
bGU+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2Vz
L2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgYm9yZGVyOiAycHgg
c29saWQgcmVkOworICBwYWRkaW5nOiA2cHg7CisgIGZvbnQtc2l6ZTogMThweDsKK30KKzwvc3R5
bGU+Cis8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBl
PSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3Jp
cHQiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1l
bnQsIHRydWUpOworCit2YXIgZGF0YSA9IFsKKyAgICB7IHRleHQ6ICd6eicgfSwKKyAgICB7IHRl
eHQ6ICdhcHBsZSx6eixvcmFuZ2UnIH0sCisgICAgeyB0ZXh0OiAnenosenonIH0sCisgICAgeyB0
ZXh0OiAnenogenogenonIH0sCisgICAgeyB0ZXh0OiAnenoga2lzYXJhZ2kgeWF5b2knIH0sCisg
ICAgeyB0ZXh0OiAna2lzYXJhZ2kgenogeWF5b2knIH0sCisgICAgeyB0ZXh0OiAna2lzYXJhZ2kg
eWF5b2kgenonIH0sCisgICAgeyB0ZXh0OiAna2lzYXJhZ2lcbnlheW9pXG56eicgfSwKKyAgICB7
IHRleHQ6ICd6enonIH0sCisgICAgeyB0ZXh0OiAnSSB3b3VsZCBsaWtlIHRvIHNsZWVwLCB6enon
IH0KK107CisKKworZnVuY3Rpb24gd3JpdGVUZXh0KGlkLCB3b3JkKSB7CisgIHZhciBlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRp
dGFibGUiLCAidHJ1ZSIpOworICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsKKyAgZS5pZCA9IGlk
OworICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncm9vdCcpLmFwcGVuZENoaWxkKGUpOworCisg
IGUuZm9jdXMoKTsKKyAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JkLmxlbmd0aDsgKytpKSB7Cisg
ICAgdHlwZUNoYXJhY3RlckNvbW1hbmQod29yZFtpXSk7CisgIH0KKyAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoJy4nKTsKK30KKworZnVuY3Rpb24gdmVyaWZ5VGV4dChpZCwgbWFya2VycykgeworICAg
IGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIGUgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgdmFyIG51bU1hcmtlZCA9IGludGVybmFs
cy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkKTsKKyAgICB2YXIgc3RyID0gJycgKyBu
dW1NYXJrZWQgKyAnOiAnIDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bU1hcmtlZDsgKytp
KSB7CisgICAgICAgIHZhciByYW5nZSA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZS5m
aXJzdENoaWxkLCBpKTsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBzdHIgKz0gJywgJzsK
KyAgICAgICAgaWYgKHJhbmdlKQorICAgICAgICAgICAgc3RyICs9IHJhbmdlLnRvU3RyaW5nKCk7
CisgICAgfQorICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICByZXN1bHQuaW5uZXJIVE1MID0gc3RyOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jvb3QnKS5pbnNlcnRCZWZvcmUocmVzdWx0LCBlLm5leHRTaWJsaW5nKTsKK30KKworZnVu
Y3Rpb24gY2hlY2tTcGVsbGluZygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVu
Z3RoOyArK2kpIHsKKyAgICAgICAgd3JpdGVUZXh0KCdyb290JyArIGksIGRhdGFbaV0udGV4dCk7
CisgICAgfQorCisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2ZXJpZnlUZXh0KCdy
b290JyArIGksIG51bGwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICB9LCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJj
aGVja1NwZWxsaW5nKCkiPgorPGRpdiBpZD0icm9vdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOWUyMmE5NWYzYzE2YTNl
Y2MzMzQ4MDdiMjZkZjkwOGM5NmVlZjQ1ZC4uZTgwOWY0MTVkNmFhOTg5ODQ0MzhkZjYzNDI3N2Yw
OWZmYjI1ZTA0ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEyIEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1
bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisK
IDIwMTEtMTAtMTkgIEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAg
ICAgICAgW0dUS10gU3RyZWFtbGluZSB3azEgZG9jdW1lbnRhdGlvbiBidWlsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111724</attachid>
            <date>2011-10-19 21:44:45 -0700</date>
            <delta_ts>2011-10-25 20:47:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111020134444.patch</filename>
            <type>text/plain</type>
            <size>16223</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc5MDQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMTEzMmM3ZjU3MTBmYWEx
YTViNWU0MmRmNDFhYTVlY2YwMTYyMzJlLi42MDc4YWUyM2NiNWQxMGQzNmQyZGQyNDc5YzQ0Y2Jh
NTQ1NzUwNmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTAtMTkg
IEFkYW0gQmVyZ2t2aXN0ICA8YWRhbS5iZXJna3Zpc3RAZXJpY3Nzb24uY29tPgogCiAgICAgICAg
IFVwZGF0ZSBNZWRpYVN0cmVhbSB0byB1c2UgV2ViQ29yZSBwbGF0Zm9ybSBpbnRlcmZhY2VzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggODI4NTIzOWM2NDQxN2M2ZmQwYTdmZjQ1ZDZlNmVmMGEzMTdmNTFiNC4uM2Fi
NTNiNDFmYzdhZGNlOWVjYzBhNTgyMzkxYzE3Y2VlMTY2MTJlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5j
b20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1
bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2Vi
S2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEtMTAtMTkgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2Nh
QGFwcGxlLmNvbT4KIAogICAgICAgICBXaGl0ZSBmbGFzaCB3aGVuIHBhaW50aW5nIGEgcHJldmlv
dXNseSBjcmFzaGVkIFdLVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
ZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tp
bmdIZWxwZXIuY3BwCmluZGV4IDA0NzY5MWU1YmEwZmI2OTQwMDY3MzEwZjNiMGZhM2QzMzM4YjJk
ODIuLmUyNTRmMjRlNjlmMmU1MGE5Nzc5NGZlOTA0ZmNlMjhhMTQzYzVjODcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRD
aGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVBvc2l0aW9uLmgiCkBAIC0zOSw2ICs0MCw2NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKKyNpZiAhVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKK3N0YXRpYyB2b2lkIGZpbmRCYWRH
cmFtbWFycyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciogdGV4dCwgaW50
IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0cykK
K3sKKyAgICBBU1NFUlQoV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5HKTsKKworICAgIGludCBjaGVj
a0xvY2F0aW9uID0gc3RhcnQ7CisgICAgaW50IGNoZWNrTGVuZ3RoID0gbGVuZ3RoOworCisgICAg
d2hpbGUgKDAgPCBjaGVja0xlbmd0aCkgeworICAgICAgICBpbnQgYmFkR3JhbW1hckxvY2F0aW9u
ID0gLTE7CisgICAgICAgIGludCBiYWRHcmFtbWFyTGVuZ3RoID0gMDsKKyAgICAgICAgVmVjdG9y
PEdyYW1tYXJEZXRhaWw+IGJhZEdyYW1tYXJEZXRhaWxzOworICAgICAgICBjbGllbnQtPmNoZWNr
R3JhbW1hck9mU3RyaW5nKHRleHQgKyBjaGVja0xvY2F0aW9uLCBjaGVja0xlbmd0aCwgYmFkR3Jh
bW1hckRldGFpbHMsICZiYWRHcmFtbWFyTG9jYXRpb24sICZiYWRHcmFtbWFyTGVuZ3RoKTsKKyAg
ICAgICAgaWYgKCFiYWRHcmFtbWFyTGVuZ3RoKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IEFTU0VSVCgwIDw9IGJhZEdyYW1tYXJMb2NhdGlvbiAmJiBiYWRHcmFtbWFyTG9jYXRpb24gPD0g
Y2hlY2tMZW5ndGgpOworICAgICAgICBBU1NFUlQoMCA8IGJhZEdyYW1tYXJMZW5ndGggJiYgYmFk
R3JhbW1hckxvY2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCA8PSBjaGVja0xlbmd0aCk7CisgICAg
ICAgIFRleHRDaGVja2luZ1Jlc3VsdCBiYWRHcmFtbWFyOworICAgICAgICBiYWRHcmFtbWFyLnR5
cGUgPSBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICAgICAgYmFkR3JhbW1hci5sb2NhdGlv
biA9IGNoZWNrTG9jYXRpb24gKyBiYWRHcmFtbWFyTG9jYXRpb247CisgICAgICAgIGJhZEdyYW1t
YXIubGVuZ3RoID0gYmFkR3JhbW1hckxlbmd0aDsKKyAgICAgICAgYmFkR3JhbW1hci5kZXRhaWxz
LnN3YXAoYmFkR3JhbW1hckRldGFpbHMpOworICAgICAgICByZXN1bHRzLmFwcGVuZChiYWRHcmFt
bWFyKTsKKworICAgICAgICBjaGVja0xvY2F0aW9uICs9IChiYWRHcmFtbWFyTG9jYXRpb24gKyBi
YWRHcmFtbWFyTGVuZ3RoKTsKKyAgICAgICAgY2hlY2tMZW5ndGggLT0gKGJhZEdyYW1tYXJMb2Nh
dGlvbiArIGJhZEdyYW1tYXJMZW5ndGgpOworICAgIH0KK30KKworc3RhdGljIHZvaWQgZmluZE1p
c3NwZWxsaW5ncyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciogdGV4dCwg
aW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiYgcmVzdWx0
cykKK3sKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3IgPSB3b3JkQnJlYWtJdGVyYXRv
cih0ZXh0ICsgc3RhcnQsIGxlbmd0aCk7CisgICAgaWYgKCFpdGVyYXRvcikKKyAgICAgICAgcmV0
dXJuOworICAgIGludCB3b3JkU3RhcnQgPSB0ZXh0QnJlYWtDdXJyZW50KGl0ZXJhdG9yKTsKKyAg
ICB3aGlsZSAoMCA8PSB3b3JkU3RhcnQpIHsKKyAgICAgICAgaW50IHdvcmRFbmQgPSB0ZXh0QnJl
YWtOZXh0KGl0ZXJhdG9yKTsKKyAgICAgICAgaWYgKHdvcmRFbmQgPCAwKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGludCB3b3JkTGVuZ3RoID0gd29yZEVuZCAtIHdvcmRTdGFydDsKKyAg
ICAgICAgaW50IG1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKKyAgICAgICAgaW50IG1pc3NwZWxs
aW5nTGVuZ3RoID0gMDsKKyAgICAgICAgY2xpZW50LT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcodGV4
dCArIHN0YXJ0ICsgd29yZFN0YXJ0LCB3b3JkTGVuZ3RoLCAmbWlzc3BlbGxpbmdMb2NhdGlvbiwg
Jm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICAgICAgaWYgKDAgPCBtaXNzcGVsbGluZ0xlbmd0aCkg
eworICAgICAgICAgICAgQVNTRVJUKDAgPD0gbWlzc3BlbGxpbmdMb2NhdGlvbiAmJiBtaXNzcGVs
bGluZ0xvY2F0aW9uIDw9IHdvcmRMZW5ndGgpOworICAgICAgICAgICAgQVNTRVJUKDAgPCBtaXNz
cGVsbGluZ0xlbmd0aCAmJiBtaXNzcGVsbGluZ0xvY2F0aW9uICsgbWlzc3BlbGxpbmdMZW5ndGgg
PD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgbWlzc3BlbGxp
bmc7CisgICAgICAgICAgICBtaXNzcGVsbGluZy50eXBlID0gVGV4dENoZWNraW5nVHlwZVNwZWxs
aW5nOworICAgICAgICAgICAgbWlzc3BlbGxpbmcubG9jYXRpb24gPSBzdGFydCArIHdvcmRTdGFy
dCArIG1pc3NwZWxsaW5nTG9jYXRpb247CisgICAgICAgICAgICBtaXNzcGVsbGluZy5sZW5ndGgg
PSBtaXNzcGVsbGluZ0xlbmd0aDsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLnJlcGxhY2VtZW50
ID0gY2xpZW50LT5nZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JNaXNzcGVsbGVkV29yZChTdHJp
bmcodGV4dCArIG1pc3NwZWxsaW5nLmxvY2F0aW9uLCBtaXNzcGVsbGluZy5sZW5ndGgpKTsKKyAg
ICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1pc3NwZWxsaW5nKTsKKyAgICAgICAgfQorCisgICAg
ICAgIHdvcmRTdGFydCA9IHdvcmRFbmQ7CisgICAgfQorfQorI2VuZGlmCisKIHN0YXRpYyBQYXNz
UmVmUHRyPFJhbmdlPiBleHBhbmRUb1BhcmFncmFwaEJvdW5kYXJ5KFBhc3NSZWZQdHI8UmFuZ2U+
IHJhbmdlKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpAQCAtNTk5LDE0ICs2NTksMzEg
QEAgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBj
b25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmcKICNpZiBVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5H
KQogICAgIGNsaWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4dCwgbGVuZ3RoLCBjaGVja2lu
Z1R5cGVzLCByZXN1bHRzKTsKICNlbHNlCi0gICAgLy8gU2hvdWxkIGltcGxlbWVudCBsYXRlciB0
byB1bmlmeSB1bmlmaWVkIHNwZWxsLWNoZWNraW5nIGNvZGUgcGF0aCBhbmQKLSAgICAvLyBsZWdh
Y3kgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoLgotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOwotICAgIFVOVVNFRF9QQVJBTSh0ZXh0KTsKLSAgICBV
TlVTRURfUEFSQU0obGVuZ3RoKTsKLSAgICBVTlVTRURfUEFSQU0oY2hlY2tpbmdUeXBlcyk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHJlc3VsdHMpOworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHNwZWxsaW5nUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVzICYgVGV4dENoZWNraW5nVHlw
ZVNwZWxsaW5nKQorICAgICAgICBmaW5kTWlzc3BlbGxpbmdzKGNsaWVudCwgdGV4dCwgMCwgbGVu
Z3RoLCBzcGVsbGluZ1Jlc3VsdCk7CisKKyAgICBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBn
cmFtbWFyUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVzICYgVGV4dENoZWNraW5nVHlwZUdy
YW1tYXIpIHsKKyAgICAgICAgLy8gT25seSBjaGVja3MgZ3JhbW1hcnRpY2FsIGVycm9yIGJlZm9y
ZSB0aGUgZmlyc3QgbWlzc3BlbGxpbmdzCisgICAgICAgIGludCBncmFtbWFyQ2hlY2tMZW5ndGgg
PSBsZW5ndGg7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3BlbGxpbmdSZXN1bHQu
c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzcGVsbGluZ1Jlc3VsdFtpXS5sb2NhdGlv
biA8IGdyYW1tYXJDaGVja0xlbmd0aCkKKyAgICAgICAgICAgICAgICBncmFtbWFyQ2hlY2tMZW5n
dGggPSBzcGVsbGluZ1Jlc3VsdFtpXS5sb2NhdGlvbjsKKyAgICAgICAgfQorCisgICAgICAgIGZp
bmRCYWRHcmFtbWFycyhjbGllbnQsIHRleHQsIDAsIGdyYW1tYXJDaGVja0xlbmd0aCwgZ3JhbW1h
clJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGdyYW1tYXJSZXN1bHQuc2l6ZSgpKQorICAgICAg
ICByZXN1bHRzLnN3YXAoZ3JhbW1hclJlc3VsdCk7CisKKyAgICBpZiAoc3BlbGxpbmdSZXN1bHQu
c2l6ZSgpKSB7CisgICAgICAgIGlmIChyZXN1bHRzLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJl
c3VsdHMuc3dhcChzcGVsbGluZ1Jlc3VsdCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHJl
c3VsdHMuYXBwZW5kKHNwZWxsaW5nUmVzdWx0KTsKKyAgICB9CiAjZW5kaWYKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNjMTQ1ZDAwNGNmMjNmZThkMjA2ZDZmZDQ4
OGYwNjg4MjBiYmQxMjIuLmFmMjMzODgwZWYxMjU4OTNjODQwZmRlZmYwZDE5ZGQ5MjcyZWI1YjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTQ3NCw0ICs0NzQsMjQgQEAg
dW5zaWduZWQgSW50ZXJuYWxzOjpsZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0
IFJhbmdlKiByYW5nZSwgRXhjZXB0aW8KICAgICByZXR1cm4gbGVuZ3RoOwogfQogCit2b2lkIElu
dGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50
LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkg
eworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT5zZXRVbmlmaWVkVGV4dENo
ZWNrZXJFbmFibGVkKGVuYWJsZWQpOworfQorCitib29sIEludGVybmFsczo6dW5pZmllZFRleHRD
aGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sK
KyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZy
YW1lKCktPnNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1l
KCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKK30KKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNDdmZDg5ZGExOWFkMzg0ZGFlYTg1MjA1NmIy
MDZiNTVlZjU1NDFkMy4uMGE0ZTUyODY0M2M0OTBjYzhjNGM0NjgwZWNlNThjMjg4OWY3YmEzNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC05OCw2ICs5OCw5IEBAIHB1YmxpYzoK
ICAgICB1bnNpZ25lZCBsb2NhdGlvbkZyb21SYW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFu
Z2UqLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdW5zaWduZWQgbGVuZ3RoRnJvbVJhbmdlKEVsZW1l
bnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKIAorICAgIHZvaWQgc2V0
VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKKwogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcm5hbHNJZDsKIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAxNjA0MTdmYzM2ZGZi
MTQzNjVlMzY0NDVkYzQ2ZmNlMzZmYTU4OTg4Li43ZWI5YjNlMTBkYjdlOWMxNWFlZTlkNzY2Njc4
YmZmNDJhYTk1Y2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC03MSw2
ICs3MSw5IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBSYW5nZSByYW5nZUZyb21Mb2NhdGlv
bkFuZExlbmd0aChpbiBFbGVtZW50IHNjb3BlLCBpbiBsb25nIHJhbmdlTG9jYXRpb24sIGluIGxv
bmcgcmFuZ2VMZW5ndGgpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQg
bG9uZyBsb2NhdGlvbkZyb21SYW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkg
cmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICB1bnNpZ25lZCBsb25nIGxlbmd0aEZyb21S
YW5nZShpbiBFbGVtZW50IHNjb3BlLCBpbiBSYW5nZSByYW5nZSkgcmFpc2VzIChET01FeGNlcHRp
b24pOworCisgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzIChET01FeGNlcHRpb24p
OworICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGluIERvY3VtZW50
IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dl
YktpdDIuZGVmCmluZGV4IDE5YzQ1NDMwZWUzZDY0NGQxZmY2Mzk3YTg4NGI0ZTcxM2M2N2MxZjIu
LjVmZmU2ODcxZDM2OGZhMDQ0NDVlYzQ1YzgyZmFjMzVlZWNkZGJlZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKQEAgLTE3Miw2ICsxNzIsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTY3JvbGxP
ZmZzZXRGcm9tSW50ZXJuYWxzQFNjcm9sbGFibGVBcmVhQFdlYkNvcmVAQFFBRVhBQlZJbnRQb2lu
dEAyQEBaCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNv
cmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2Vi
Q29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgorICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29y
ZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/c2hhZG93Um9vdEBFbGVtZW50QFdlYkNv
cmVAQFFCRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/c3VnZ2VzdGVkVmFsdWVASFRNTElu
cHV0RWxlbWVudEBXZWJDb3JlQEBRQkVBQlZTdHJpbmdAV1RGQEBYWgogICAgICAgICA/dG9Eb2N1
bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpTVmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IDdkNzQ2MjkwZTNiM2E5MDNmNDNmNTYwODljN2Y0
ZDk5MDFiNmJiOWYuLjM2OTc2N2NlY2JjYjA0YmUwNzc4NmE1Yjg4MDI1MGRlNDY1NjUyMjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2NCw2ICsxNjQsNyBAQCBFWFBP
UlRTCiAgICAgICAgID9zZXRTY3JvbGxPZmZzZXRGcm9tSW50ZXJuYWxzQFNjcm9sbGFibGVBcmVh
QFdlYkNvcmVAQFFBRVhBQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1
ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAg
ICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgorICAgICAg
ICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NAMkBYWgogICAgICAgICA/
c2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFCRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAg
ICA/c3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQkVBQlZTdHJpbmdA
V1RGQEBYWgogICAgICAgICA/dG9Eb2N1bWVudEBXZWJDb3JlQEBZQVBBVkRvY3VtZW50QDFAVkpT
VmFsdWVASlNDQEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
ciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYTMxMTM5NjEyMjE0Yjhl
NTAyMTMwNDM1N2MwZTdjZjQwYTkyYzk3ZS4uYWMxZThkNDZlOWFlY2ExZDYwYjgwNGNjMjkzZTA4
YTRmZTQxZDM5MSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgor
KysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC03MCw2ICs3MCw3IEBAIF9a
Tks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjNhYnNvbHV0ZUJvdW5kaW5nQm94UmVjdEViOwogX1pO
SzdXZWJDb3JlMTZIVE1MSW5wdXRFbGVtZW50MTRzdWdnZXN0ZWRWYWx1ZUV2OwogX1pOSzdXZWJD
b3JlMjBDYWNoZWRSZXNvdXJjZUxvYWRlcjExaXNQcmVsb2FkZWRFUktOM1dURjZTdHJpbmdFOwog
X1pOSzdXZWJDb3JlMjZIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudDIxbGFzdENoYW5nZVdhc1Vz
ZXJFZGl0RXY7CitfWk5LN1dlYkNvcmU1RnJhbWU4c2V0dGluZ3NFdjsKIF9aTks3V2ViQ29yZTZK
U05vZGUyMXB1c2hFdmVudEhhbmRsZXJTY29wZUVQTjNKU0M5RXhlY1N0YXRlRVBOUzFfMTRTY29w
ZUNoYWluTm9kZUU7CiBfWk5LN1dlYkNvcmU3RWxlbWVudDEwc2hhZG93Um9vdEV2OwogX1pOSzdX
ZWJDb3JlOERvY3VtZW50NHBhZ2VFdjsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3NDZiNGFmZTA5NGJkOGE4YTA5OTk3YmVm
Y2M2ZDFiMDg1MjU3MDM4Li4wN2U3ZGU0NGZiMDk1NTUzMzQ3NDlmOWQ3NTk3Y2UzOGU2MDYzMDE5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTAtMTkgIFNoaW55YSBLYXdhbmFrYSAgPHNo
aW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVnYWN5IHRleHQgY2hlY2sg
ZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2UuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHRlc3RzIGZvciB0aGUgY2Fz
ZSB1bmlmaWVkIHRleHQgY2hlY2tlciBpcyB1c2VkIHdoZW4gV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQ
YXJhZ3JhcGgoKSBpcyBub3Qgc3VwcG9ydGVkLgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbDogQWRk
ZWQuCisKIDIwMTEtMTAtMTkgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBGaXggdGVzdCBicmVha2FnZSBhZnRlciByOTc4ODEKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVt
dWxhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWFlMzM4ODEzOWQyMGM5ODIwOGRkN2Y3
MTg4ZjEzMzE0YTFjNDgxZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjIgQEAKK3p6LgorMTogenoKK2FwcGxlLHp6LG9yYW5nZS4KKzE6IHp6Cit6eix6ei4KKzI6
IHp6LCB6egorenogenogenouCiszOiB6eiwgenosIHp6Cit6eiBraXNhcmFnaSB5YXlvaS4KKzE6
IHp6CitraXNhcmFnaSB6eiB5YXlvaS4KKzE6IHp6CitraXNhcmFnaSB5YXlvaSB6ei4KKzE6IHp6
CitraXNhcmFnaQoreWF5b2kKK3p6LgorMDoKK3p6ei4KKzA6CitJIHdvdWxkIGxpa2UgdG8gc2xl
ZXAsIHp6ei4KKzA6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGJmZWMxZTI0
MTBkZjUyMzMzMjgyYWEyYWJkMGFmOTRjNThiMzZmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbApA
QCAtMCwwICsxLDkwIEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPjwvdGl0bGU+Cis8bGluayBy
ZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5
bGUuY3NzIj4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgYm9yZGVyOiAycHggc29saWQgcmVkOwor
ICBwYWRkaW5nOiA2cHg7CisgIGZvbnQtc2l6ZTogMThweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0
IHNyYz0uLi9lZGl0aW5nLmpzIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFT
Y3JpcHQiID48L3NjcmlwdD4KKzxzY3JpcHQgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+CisKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitpZiAod2luZG93LmludGVybmFscykKKyAgICBp
bnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoZG9jdW1lbnQsIHRydWUpOwor
Cit2YXIgZGF0YSA9IFsKKyAgICB7IHRleHQ6ICd6eicgfSwKKyAgICB7IHRleHQ6ICdhcHBsZSx6
eixvcmFuZ2UnIH0sCisgICAgeyB0ZXh0OiAnenosenonIH0sCisgICAgeyB0ZXh0OiAnenogenog
enonIH0sCisgICAgeyB0ZXh0OiAnenoga2lzYXJhZ2kgeWF5b2knIH0sCisgICAgeyB0ZXh0OiAn
a2lzYXJhZ2kgenogeWF5b2knIH0sCisgICAgeyB0ZXh0OiAna2lzYXJhZ2kgeWF5b2kgenonIH0s
CisgICAgeyB0ZXh0OiAna2lzYXJhZ2lcbnlheW9pXG56eicgfSwKKyAgICB7IHRleHQ6ICd6enon
IH0sCisgICAgeyB0ZXh0OiAnSSB3b3VsZCBsaWtlIHRvIHNsZWVwLCB6enonIH0KK107CisKKwor
ZnVuY3Rpb24gd3JpdGVUZXh0KGlkLCB3b3JkKSB7CisgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1
ZSIpOworICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsKKyAgZS5pZCA9IGlkOworICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgncm9vdCcpLmFwcGVuZENoaWxkKGUpOworCisgIGUuZm9jdXMoKTsK
KyAgZm9yICh2YXIgaSA9IDA7IGkgPCB3b3JkLmxlbmd0aDsgKytpKSB7CisgICAgdHlwZUNoYXJh
Y3RlckNvbW1hbmQod29yZFtpXSk7CisgIH0KKyAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJy4nKTsK
K30KKworZnVuY3Rpb24gdmVyaWZ5VGV4dChpZCwgbWFya2VycykgeworICAgIGlmICghd2luZG93
LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAgdmFyIGUgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChpZCk7CisgICAgdmFyIG51bU1hcmtlZCA9IGludGVybmFscy5tYXJrZXJDb3Vu
dEZvck5vZGUoZS5maXJzdENoaWxkKTsKKyAgICB2YXIgc3RyID0gJycgKyBudW1NYXJrZWQgKyAn
OiAnIDsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IG51bU1hcmtlZDsgKytpKSB7CisgICAgICAg
IHZhciByYW5nZSA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZS5maXJzdENoaWxkLCBp
KTsKKyAgICAgICAgaWYgKGkpCisgICAgICAgICAgICBzdHIgKz0gJywgJzsKKyAgICAgICAgaWYg
KHJhbmdlKQorICAgICAgICAgICAgc3RyICs9IHJhbmdlLnRvU3RyaW5nKCk7CisgICAgfQorICAg
IHZhciByZXN1bHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICByZXN1bHQu
aW5uZXJIVE1MID0gc3RyOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKS5p
bnNlcnRCZWZvcmUocmVzdWx0LCBlLm5leHRTaWJsaW5nKTsKK30KKworZnVuY3Rpb24gY2hlY2tT
cGVsbGluZygpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyArK2kpIHsK
KyAgICAgICAgd3JpdGVUZXh0KCdyb290JyArIGksIGRhdGFbaV0udGV4dCk7CisgICAgfQorCisg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBk
YXRhLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2ZXJpZnlUZXh0KCdyb290JyArIGksIG51
bGwpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9
LCAwKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJjaGVja1NwZWxsaW5n
KCkiPgorPGRpdiBpZD0icm9vdCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggOWUyMmE5NWYzYzE2YTNlY2MzMzQ4MDdiMjZk
ZjkwOGM5NmVlZjQ1ZC4uZTgwOWY0MTVkNmFhOTg5ODQ0MzhkZjYzNDI3N2YwOWZmYjI1ZTA0ZiAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQg
Y2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTEtMTAtMTkg
IEd1c3Rhdm8gTm9yb25oYSBTaWx2YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10g
U3RyZWFtbGluZSB3azEgZG9jdW1lbnRhdGlvbiBidWlsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112444</attachid>
            <date>2011-10-25 20:47:23 -0700</date>
            <delta_ts>2011-10-25 21:06:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111026124721.patch</filename>
            <type>text/plain</type>
            <size>16939</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0MTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNTYwODRiOTA5ZGYzODRl
OTNlNTBiMmNkYTg4MjEyOTAwMzJiOGE0Li5iMTZiZjQyOWNkNDFkMjJlOTJiNmI1YzhmOTYxNTAx
M2ZlZjMwZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTAtMjUg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmVudFRhcmdldEZh
Y3RvcnkuaW4gaXMgbm90IHNvcnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZiOWZhZmVkZTYyNjY4OTY0N2U3
MjA4MmJlN2FiN2IwYzVlYmQ4MjguLjRhOWE2NGUwZjQ0NWI2NDczNTYwY2NiYmQyMDkyMGE5YWUx
YWI3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMC0xOSAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBsZWdhY3kg
dGV4dCBjaGVjayBlbXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVyZmFjZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDExLTEwLTI1ICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCAwNDc2OTFlNWJhMGZiNjk0MDA2NzMxMGYzYjBm
YTNkMzMzOGIyZDgyLi5lMjU0ZjI0ZTY5ZjJlNTBhOTc3OTRmZTkwNGZjZTI4YTE0M2M1Yzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgpAQCAtMzksNiArNDAsNjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCisjaWYgIVVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgdm9p
ZCBmaW5kQmFkR3JhbW1hcnMoVGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVUNoYXIq
IHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdHMpCit7CisgICAgQVNTRVJUKFdURl9VU0VfR1JBTU1BUl9DSEVDS0lORyk7CisKKyAg
ICBpbnQgY2hlY2tMb2NhdGlvbiA9IHN0YXJ0OworICAgIGludCBjaGVja0xlbmd0aCA9IGxlbmd0
aDsKKworICAgIHdoaWxlICgwIDwgY2hlY2tMZW5ndGgpIHsKKyAgICAgICAgaW50IGJhZEdyYW1t
YXJMb2NhdGlvbiA9IC0xOworICAgICAgICBpbnQgYmFkR3JhbW1hckxlbmd0aCA9IDA7CisgICAg
ICAgIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiBiYWRHcmFtbWFyRGV0YWlsczsKKyAgICAgICAgY2xp
ZW50LT5jaGVja0dyYW1tYXJPZlN0cmluZyh0ZXh0ICsgY2hlY2tMb2NhdGlvbiwgY2hlY2tMZW5n
dGgsIGJhZEdyYW1tYXJEZXRhaWxzLCAmYmFkR3JhbW1hckxvY2F0aW9uLCAmYmFkR3JhbW1hckxl
bmd0aCk7CisgICAgICAgIGlmICghYmFkR3JhbW1hckxlbmd0aCkKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBBU1NFUlQoMCA8PSBiYWRHcmFtbWFyTG9jYXRpb24gJiYgYmFkR3JhbW1hckxv
Y2F0aW9uIDw9IGNoZWNrTGVuZ3RoKTsKKyAgICAgICAgQVNTRVJUKDAgPCBiYWRHcmFtbWFyTGVu
Z3RoICYmIGJhZEdyYW1tYXJMb2NhdGlvbiArIGJhZEdyYW1tYXJMZW5ndGggPD0gY2hlY2tMZW5n
dGgpOworICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgYmFkR3JhbW1hcjsKKyAgICAgICAgYmFk
R3JhbW1hci50eXBlID0gVGV4dENoZWNraW5nVHlwZUdyYW1tYXI7CisgICAgICAgIGJhZEdyYW1t
YXIubG9jYXRpb24gPSBjaGVja0xvY2F0aW9uICsgYmFkR3JhbW1hckxvY2F0aW9uOworICAgICAg
ICBiYWRHcmFtbWFyLmxlbmd0aCA9IGJhZEdyYW1tYXJMZW5ndGg7CisgICAgICAgIGJhZEdyYW1t
YXIuZGV0YWlscy5zd2FwKGJhZEdyYW1tYXJEZXRhaWxzKTsKKyAgICAgICAgcmVzdWx0cy5hcHBl
bmQoYmFkR3JhbW1hcik7CisKKyAgICAgICAgY2hlY2tMb2NhdGlvbiArPSAoYmFkR3JhbW1hckxv
Y2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCk7CisgICAgICAgIGNoZWNrTGVuZ3RoIC09IChiYWRH
cmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2
b2lkIGZpbmRNaXNzcGVsbGluZ3MoVGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVUNo
YXIqIHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3Vs
dD4mIHJlc3VsdHMpCit7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yID0gd29yZEJy
ZWFrSXRlcmF0b3IodGV4dCArIHN0YXJ0LCBsZW5ndGgpOworICAgIGlmICghaXRlcmF0b3IpCisg
ICAgICAgIHJldHVybjsKKyAgICBpbnQgd29yZFN0YXJ0ID0gdGV4dEJyZWFrQ3VycmVudChpdGVy
YXRvcik7CisgICAgd2hpbGUgKDAgPD0gd29yZFN0YXJ0KSB7CisgICAgICAgIGludCB3b3JkRW5k
ID0gdGV4dEJyZWFrTmV4dChpdGVyYXRvcik7CisgICAgICAgIGlmICh3b3JkRW5kIDwgMCkKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBpbnQgd29yZExlbmd0aCA9IHdvcmRFbmQgLSB3b3Jk
U3RhcnQ7CisgICAgICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CisgICAgICAgIGlu
dCBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7CisgICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09m
U3RyaW5nKHRleHQgKyBzdGFydCArIHdvcmRTdGFydCwgd29yZExlbmd0aCwgJm1pc3NwZWxsaW5n
TG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgIGlmICgwIDwgbWlzc3BlbGxp
bmdMZW5ndGgpIHsKKyAgICAgICAgICAgIEFTU0VSVCgwIDw9IG1pc3NwZWxsaW5nTG9jYXRpb24g
JiYgbWlzc3BlbGxpbmdMb2NhdGlvbiA8PSB3b3JkTGVuZ3RoKTsKKyAgICAgICAgICAgIEFTU0VS
VCgwIDwgbWlzc3BlbGxpbmdMZW5ndGggJiYgbWlzc3BlbGxpbmdMb2NhdGlvbiArIG1pc3NwZWxs
aW5nTGVuZ3RoIDw9IHdvcmRMZW5ndGgpOworICAgICAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0
IG1pc3NwZWxsaW5nOworICAgICAgICAgICAgbWlzc3BlbGxpbmcudHlwZSA9IFRleHRDaGVja2lu
Z1R5cGVTcGVsbGluZzsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLmxvY2F0aW9uID0gc3RhcnQg
KyB3b3JkU3RhcnQgKyBtaXNzcGVsbGluZ0xvY2F0aW9uOworICAgICAgICAgICAgbWlzc3BlbGxp
bmcubGVuZ3RoID0gbWlzc3BlbGxpbmdMZW5ndGg7CisgICAgICAgICAgICBtaXNzcGVsbGluZy5y
ZXBsYWNlbWVudCA9IGNsaWVudC0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxl
ZFdvcmQoU3RyaW5nKHRleHQgKyBtaXNzcGVsbGluZy5sb2NhdGlvbiwgbWlzc3BlbGxpbmcubGVu
Z3RoKSk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtaXNzcGVsbGluZyk7CisgICAgICAg
IH0KKworICAgICAgICB3b3JkU3RhcnQgPSB3b3JkRW5kOworICAgIH0KK30KKyNlbmRpZgorCiBz
dGF0aWMgUGFzc1JlZlB0cjxSYW5nZT4gZXhwYW5kVG9QYXJhZ3JhcGhCb3VuZGFyeShQYXNzUmVm
UHRyPFJhbmdlPiByYW5nZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTU5OSwx
NCArNjU5LDMxIEBAIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoVGV4dENoZWNrZXJDbGllbnQq
IGNsaWVudCwgY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5nCiAjaWYgVVNFKFVOSUZJRURfVEVY
VF9DSEVDS0lORykKICAgICBjbGllbnQtPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHRleHQsIGxlbmd0
aCwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CiAjZWxzZQotICAgIC8vIFNob3VsZCBpbXBsZW1l
bnQgbGF0ZXIgdG8gdW5pZnkgdW5pZmllZCBzcGVsbC1jaGVja2luZyBjb2RlIHBhdGggYW5kCi0g
ICAgLy8gbGVnYWN5IHNwZWxsLWNoZWNraW5nIGNvZGUgcGF0aC4KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKLSAgICBVTlVTRURfUEFSQU0odGV4
dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGxlbmd0aCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNoZWNraW5n
VHlwZXMpOwotICAgIFVOVVNFRF9QQVJBTShyZXN1bHRzKTsKKyAgICBWZWN0b3I8VGV4dENoZWNr
aW5nUmVzdWx0PiBzcGVsbGluZ1Jlc3VsdDsKKyAgICBpZiAoY2hlY2tpbmdUeXBlcyAmIFRleHRD
aGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAgZmluZE1pc3NwZWxsaW5ncyhjbGllbnQsIHRl
eHQsIDAsIGxlbmd0aCwgc3BlbGxpbmdSZXN1bHQpOworCisgICAgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4gZ3JhbW1hclJlc3VsdDsKKyAgICBpZiAoY2hlY2tpbmdUeXBlcyAmIFRleHRDaGVj
a2luZ1R5cGVHcmFtbWFyKSB7CisgICAgICAgIC8vIE9ubHkgY2hlY2tzIGdyYW1tYXJ0aWNhbCBl
cnJvciBiZWZvcmUgdGhlIGZpcnN0IG1pc3NwZWxsaW5ncworICAgICAgICBpbnQgZ3JhbW1hckNo
ZWNrTGVuZ3RoID0gbGVuZ3RoOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNwZWxs
aW5nUmVzdWx0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3BlbGxpbmdSZXN1bHRb
aV0ubG9jYXRpb24gPCBncmFtbWFyQ2hlY2tMZW5ndGgpCisgICAgICAgICAgICAgICAgZ3JhbW1h
ckNoZWNrTGVuZ3RoID0gc3BlbGxpbmdSZXN1bHRbaV0ubG9jYXRpb247CisgICAgICAgIH0KKwor
ICAgICAgICBmaW5kQmFkR3JhbW1hcnMoY2xpZW50LCB0ZXh0LCAwLCBncmFtbWFyQ2hlY2tMZW5n
dGgsIGdyYW1tYXJSZXN1bHQpOworICAgIH0KKworICAgIGlmIChncmFtbWFyUmVzdWx0LnNpemUo
KSkKKyAgICAgICAgcmVzdWx0cy5zd2FwKGdyYW1tYXJSZXN1bHQpOworCisgICAgaWYgKHNwZWxs
aW5nUmVzdWx0LnNpemUoKSkgeworICAgICAgICBpZiAocmVzdWx0cy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXN1bHRzLnN3YXAoc3BlbGxpbmdSZXN1bHQpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChzcGVsbGluZ1Jlc3VsdCk7CisgICAgfQogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjYzE0NWQwMDRjZjIzZmU4
ZDIwNmQ2ZmQ0ODhmMDY4ODIwYmJkMTIyLi5hZjIzMzg4MGVmMTI1ODkzYzg0MGZkZWZmMGQxOWRk
OTI3MmViNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NzQsNCAr
NDc0LDI0IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQqIHNj
b3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0K
IAordm9pZCBJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNl
dHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0VW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZChlbmFibGVkKTsKK30KKworYm9vbCBJbnRlcm5hbHM6OnVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRv
Y3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGRvY3Vt
ZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQ3ZmQ4OWRhMTlhZDM4NGRh
ZWE4NTIwNTZiMjA2YjU1ZWY1NTQxZDMuLjBhNGU1Mjg2NDNjNDkwY2M4YzRjNDY4MGVjZTU4YzI4
ODlmN2JhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtOTgsNiArOTgsOSBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbG9jYXRpb25Gcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUs
IGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxlbmd0aEZyb21S
YW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7CiAKKyAg
ICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgYm9vbCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJuYWxz
SWQ7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMTYw
NDE3ZmMzNmRmYjE0MzY1ZTM2NDQ1ZGM0NmZjZTM2ZmE1ODk4OC4uN2ViOWIzZTEwZGI3ZTljMTVh
ZWU5ZDc2NjY3OGJmZjQyYWE5NWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtNzEsNiArNzEsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgUmFuZ2UgcmFuZ2VG
cm9tTG9jYXRpb25BbmRMZW5ndGgoaW4gRWxlbWVudCBzY29wZSwgaW4gbG9uZyByYW5nZUxvY2F0
aW9uLCBpbiBsb25nIHJhbmdlTGVuZ3RoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHVuc2lnbmVkIGxvbmcgbG9jYXRpb25Gcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFu
Z2UgcmFuZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBs
ZW5ndGhGcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChp
biBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxOWM0NTQzMGVlM2Q2NDRkMWZmNjM5N2E4ODRiNGU3
MTNjNjdjMWYyLi41ZmZlNjg3MWQzNjhmYTA0NDQ1ZWM0NWM4MmZhYzM1ZWVjZGRiZWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNzIsNiArMTcyLDcgQEAgRVhQT1JUUwogICAgICAgICA/
c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVY
QUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxl
bWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldHRpbmdzQERv
Y3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKKyAgICAgICAgP3NldHRpbmdzQEZy
YW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NoYWRvd1Jvb3RARWxl
bWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZh
bHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAg
ICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA3ZDc0NjI5MGUzYjNhOTAzZjQz
ZjU2MDg5YzdmNGQ5OTAxYjZiYjlmLi4zNjk3NjdjZWNiY2IwNGJlMDc3ODZhNWI4ODAyNTBkZTQ2
NTY1MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjQsNiArMTY0
LDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3Jv
bGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3Vn
Z2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBA
QFoKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJA
WFoKKyAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoK
ICAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJA
WFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJF
QUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1
bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGEzMTEz
OTYxMjIxNGI4ZTUwMjEzMDQzNTdjMGU3Y2Y0MGE5MmM5N2UuLmFjMWU4ZDQ2ZTlhZWNhMWQ2MGI4
MDRjYzI5M2UwOGE0ZmU0MWQzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNzAsNiAr
NzAsNyBAQCBfWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3RFYjsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsK
IF9aTks3V2ViQ29yZTIwQ2FjaGVkUmVzb3VyY2VMb2FkZXIxMWlzUHJlbG9hZGVkRVJLTjNXVEY2
U3RyaW5nRTsKIF9aTks3V2ViQ29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyMWxhc3RD
aGFuZ2VXYXNVc2VyRWRpdEV2OworX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7CiBfWk5L
N1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQ
TlMxXzE0U2NvcGVDaGFpbk5vZGVFOwogX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RF
djsKIF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQ5ZGQxZGRjOTExMGJk
ZWU2NGRkYWQ4MTJjODRhNWQ1ZmJiZmFiZi4uMTFlNWJiN2UwZDU3N2Y0ZDI0ZDcwY2ZmZGUwZTAx
MzY5ZjkxMTAzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3
YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0
ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBm
b3IgdGhlIGNhc2UgdW5pZmllZCB0ZXh0IGNoZWNrZXIgaXMgdXNlZCB3aGVuIFdlYkNvcmU6OmNo
ZWNrVGV4dE9mUGFyYWdyYXBoKCkgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9u
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTI1ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1hZGUgVGFibGUgdGVzdHMgZm9yIEJ1ZyA3MDY3OCBQbGF0Zm9y
bSBJbmRlcGVuZGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OTBlNDA5MWQxMzQ4Njg5M2IwMDI4OTFlMDQzZGU0NDlmNWM2OGFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVk
LWVtdWxhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGhlIHNwZWxsY2hlY2tl
ciBzaG91bGQgd29yayBjb3JyZWN0bHkgaWYgdW5pZmllZCBzcGVsbGNoZWNrIHBhdGggaXMgdXNl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIG51bU1hcmtlZCBpcyBsZW5n
dGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNT
IHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdHIgaXMg
bWFya2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0
aAorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1Mgc3Ry
IGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJr
ZWRTdHIKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNT
IG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJr
ZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxl
bmd0aAorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BB
U1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitJIHdvdWxkIGxpa2UgdG8gc2xlZXAsIHp6ei4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVs
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmRlMDU2ZWU5ODg1ZDkxN2I2NDcxYjU0NTg2YTk5MzA0
OTA2NmU5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBi
b3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogNnB4OworICAgIGZvbnQtc2l6ZTog
MThweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9u
Ij48L3ByZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48
L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGUgc3BlbGxjaGVja2VyIHNob3VsZCB3
b3JrIGNvcnJlY3RseSBpZiB1bmlmaWVkIHNwZWxsY2hlY2sgcGF0aCBpcyB1c2VkLiIpOworCit2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOworZnVu
Y3Rpb24gcmVtb3ZlQ2hpbGRyZW4obm9kZSkgeworICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQp
CisgICAgICAgIG5vZGUucmVtb3ZlQ2hpbGQobm9kZS5maXJzdENoaWxkKTsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIC8vIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxz
LnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKwordmFyIHRl
c3REYXRhID0gWworICAgIHsgdGV4dDogJ3p6JywgbWFya2VkOiBbJ3p6J10gfSwKKyAgICB7IHRl
eHQ6ICdhcHBsZSx6eixvcmFuZ2UnLCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ3p6
LHp6JywgbWFya2VkOiBbJ3p6JywnenonXSB9LAorICAgIHsgdGV4dDogJ3p6IHp6IHp6JywgbWFy
a2VkOiBbJ3p6JywgJ3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICcgenogenogenogJywgbWFy
a2VkOiBbJ3p6JywgJ3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICd6eiBhcHBsZSBvcmFuZ2Un
LCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ2FwcGxlIHp6IG9yYW5nZScsIG1hcmtl
ZDogWyd6eiddIH0sCisgICAgeyB0ZXh0OiAnYXBwbGUgb3JhbmdlIHp6JywgbWFya2VkOiBbJ3p6
J10gfSwKKyAgICB7IHRleHQ6ICd6enonLCBtYXJrZWQ6IFtdIH0sCisgICAgeyB0ZXh0OiAnSSB3
b3VsZCBsaWtlIHRvIHNsZWVwLCB6enonLCBtYXJrZWQ6IFtdIH0KK107CisKK3ZhciBudW1NYXJr
ZWQ7Cit2YXIgbGVuOwordmFyIHN0cjsKK3ZhciBtYXJrZWRTdHI7CitmdW5jdGlvbiBwZXJmb3Jt
VGVzdChpZCwgZGF0YSkgeworICAgIHJlbW92ZUNoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgdmFy
IGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNldEF0dHJpYnV0ZSgi
Y29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsK
KyAgICBlLmlkID0gaWQ7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworCisgICAgZS5m
b2N1cygpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS50ZXh0Lmxlbmd0aDsgKytpKSB7
CisgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKGRhdGEudGV4dFtpXSk7CisgICAgfQorICAg
IHR5cGVDaGFyYWN0ZXJDb21tYW5kKCcuJyk7CisKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMp
CisgICAgICAgIHJldHVybjsKKworICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
aWQpOworICAgIG51bU1hcmtlZCA9IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJz
dENoaWxkKTsKKyAgICBsZW5ndGggPSBkYXRhLm1hcmtlZC5sZW5ndGg7CisgICAgc2hvdWxkQmUo
J251bU1hcmtlZCcsICdsZW5ndGgnKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtTWFy
a2VkOyArK2kpIHsKKyAgICAgICAgdmFyIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9y
Tm9kZShlLmZpcnN0Q2hpbGQsIGkpOworICAgICAgICBzdHIgPSByYW5nZS50b1N0cmluZygpOwor
ICAgICAgICBtYXJrZWRTdHIgPSBkYXRhLm1hcmtlZFtpXTsKKyAgICAgICAgc2hvdWxkQmUoJ3N0
cicsICdtYXJrZWRTdHInKTsKKyAgICB9Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgdGVzdERh
dGEubGVuZ3RoOyArK2kpIHsKKyAgICBwZXJmb3JtVGVzdCgndGVzdCcsIHRlc3REYXRhW2ldKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4
IDdhNDMyODc1Nzk4ZTMzODZmMDVlOGYxZDFiN2E1YzFlZTIxZGU5MDMuLjdkNDMzZTkzMmVhYjVl
ZTJiYmY4YzZiNjFhZDg0Zjk3ZWMyYzlkODkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMC0xOSAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBsZWdhY3kgdGV4dCBjaGVj
ayBlbXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVyZmFjZS4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyOgorCiAyMDExLTEwLTIxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNt
YW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZW1vdmUgUXRTY3JpcHQgc291cmNlIGNvZGUgZnJv
bSBXZWJLaXQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112445</attachid>
            <date>2011-10-25 21:08:34 -0700</date>
            <delta_ts>2011-11-10 16:40:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111026130832.patch</filename>
            <type>text/plain</type>
            <size>16936</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg0MTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlNTYwODRiOTA5ZGYzODRl
OTNlNTBiMmNkYTg4MjEyOTAwMzJiOGE0Li5iMTZiZjQyOWNkNDFkMjJlOTJiNmI1YzhmOTYxNTAx
M2ZlZjMwZGViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTAtMjUg
IEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBFdmVudFRhcmdldEZh
Y3RvcnkuaW4gaXMgbm90IHNvcnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGZiOWZhZmVkZTYyNjY4OTY0N2U3
MjA4MmJlN2FiN2IwYzVlYmQ4MjguLjRhOWE2NGUwZjQ0NWI2NDczNTYwY2NiYmQyMDkyMGE5YWUx
YWI3Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMC0xOSAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBsZWdhY3kg
dGV4dCBjaGVjayBlbXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVyZmFjZS4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0
Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDExLTEwLTI1ICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzA4NTIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCAwNDc2OTFlNWJhMGZiNjk0MDA2NzMxMGYzYjBm
YTNkMzMzOGIyZDgyLi5lMjU0ZjI0ZTY5ZjJlNTBhOTc3OTRmZTkwNGZjZTI4YTE0M2M1Yzg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBAIC0z
Miw2ICszMiw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGV4dEJyZWFrSXRlcmF0b3IuaCIKICNpbmNs
dWRlICJUZXh0Q2hlY2tlckNsaWVudC5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2lu
Y2x1ZGUgIlZpc2libGVQb3NpdGlvbi5oIgpAQCAtMzksNiArNDAsNjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCisjaWYgIVVTRShVTklGSUVEX1RFWFRfQ0hFQ0tJTkcpCitzdGF0aWMgdm9p
ZCBmaW5kQmFkR3JhbW1hcnMoVGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVUNoYXIq
IHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4m
IHJlc3VsdHMpCit7CisgICAgQVNTRVJUKFdURl9VU0VfR1JBTU1BUl9DSEVDS0lORyk7CisKKyAg
ICBpbnQgY2hlY2tMb2NhdGlvbiA9IHN0YXJ0OworICAgIGludCBjaGVja0xlbmd0aCA9IGxlbmd0
aDsKKworICAgIHdoaWxlICgwIDwgY2hlY2tMZW5ndGgpIHsKKyAgICAgICAgaW50IGJhZEdyYW1t
YXJMb2NhdGlvbiA9IC0xOworICAgICAgICBpbnQgYmFkR3JhbW1hckxlbmd0aCA9IDA7CisgICAg
ICAgIFZlY3RvcjxHcmFtbWFyRGV0YWlsPiBiYWRHcmFtbWFyRGV0YWlsczsKKyAgICAgICAgY2xp
ZW50LT5jaGVja0dyYW1tYXJPZlN0cmluZyh0ZXh0ICsgY2hlY2tMb2NhdGlvbiwgY2hlY2tMZW5n
dGgsIGJhZEdyYW1tYXJEZXRhaWxzLCAmYmFkR3JhbW1hckxvY2F0aW9uLCAmYmFkR3JhbW1hckxl
bmd0aCk7CisgICAgICAgIGlmICghYmFkR3JhbW1hckxlbmd0aCkKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBBU1NFUlQoMCA8PSBiYWRHcmFtbWFyTG9jYXRpb24gJiYgYmFkR3JhbW1hckxv
Y2F0aW9uIDw9IGNoZWNrTGVuZ3RoKTsKKyAgICAgICAgQVNTRVJUKDAgPCBiYWRHcmFtbWFyTGVu
Z3RoICYmIGJhZEdyYW1tYXJMb2NhdGlvbiArIGJhZEdyYW1tYXJMZW5ndGggPD0gY2hlY2tMZW5n
dGgpOworICAgICAgICBUZXh0Q2hlY2tpbmdSZXN1bHQgYmFkR3JhbW1hcjsKKyAgICAgICAgYmFk
R3JhbW1hci50eXBlID0gVGV4dENoZWNraW5nVHlwZUdyYW1tYXI7CisgICAgICAgIGJhZEdyYW1t
YXIubG9jYXRpb24gPSBjaGVja0xvY2F0aW9uICsgYmFkR3JhbW1hckxvY2F0aW9uOworICAgICAg
ICBiYWRHcmFtbWFyLmxlbmd0aCA9IGJhZEdyYW1tYXJMZW5ndGg7CisgICAgICAgIGJhZEdyYW1t
YXIuZGV0YWlscy5zd2FwKGJhZEdyYW1tYXJEZXRhaWxzKTsKKyAgICAgICAgcmVzdWx0cy5hcHBl
bmQoYmFkR3JhbW1hcik7CisKKyAgICAgICAgY2hlY2tMb2NhdGlvbiArPSAoYmFkR3JhbW1hckxv
Y2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCk7CisgICAgICAgIGNoZWNrTGVuZ3RoIC09IChiYWRH
cmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoKTsKKyAgICB9Cit9CisKK3N0YXRpYyB2
b2lkIGZpbmRNaXNzcGVsbGluZ3MoVGV4dENoZWNrZXJDbGllbnQqIGNsaWVudCwgY29uc3QgVUNo
YXIqIHRleHQsIGludCBzdGFydCwgaW50IGxlbmd0aCwgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3Vs
dD4mIHJlc3VsdHMpCit7CisgICAgVGV4dEJyZWFrSXRlcmF0b3IqIGl0ZXJhdG9yID0gd29yZEJy
ZWFrSXRlcmF0b3IodGV4dCArIHN0YXJ0LCBsZW5ndGgpOworICAgIGlmICghaXRlcmF0b3IpCisg
ICAgICAgIHJldHVybjsKKyAgICBpbnQgd29yZFN0YXJ0ID0gdGV4dEJyZWFrQ3VycmVudChpdGVy
YXRvcik7CisgICAgd2hpbGUgKDAgPD0gd29yZFN0YXJ0KSB7CisgICAgICAgIGludCB3b3JkRW5k
ID0gdGV4dEJyZWFrTmV4dChpdGVyYXRvcik7CisgICAgICAgIGlmICh3b3JkRW5kIDwgMCkKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBpbnQgd29yZExlbmd0aCA9IHdvcmRFbmQgLSB3b3Jk
U3RhcnQ7CisgICAgICAgIGludCBtaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7CisgICAgICAgIGlu
dCBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7CisgICAgICAgIGNsaWVudC0+Y2hlY2tTcGVsbGluZ09m
U3RyaW5nKHRleHQgKyBzdGFydCArIHdvcmRTdGFydCwgd29yZExlbmd0aCwgJm1pc3NwZWxsaW5n
TG9jYXRpb24sICZtaXNzcGVsbGluZ0xlbmd0aCk7CisgICAgICAgIGlmICgwIDwgbWlzc3BlbGxp
bmdMZW5ndGgpIHsKKyAgICAgICAgICAgIEFTU0VSVCgwIDw9IG1pc3NwZWxsaW5nTG9jYXRpb24g
JiYgbWlzc3BlbGxpbmdMb2NhdGlvbiA8PSB3b3JkTGVuZ3RoKTsKKyAgICAgICAgICAgIEFTU0VS
VCgwIDwgbWlzc3BlbGxpbmdMZW5ndGggJiYgbWlzc3BlbGxpbmdMb2NhdGlvbiArIG1pc3NwZWxs
aW5nTGVuZ3RoIDw9IHdvcmRMZW5ndGgpOworICAgICAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0
IG1pc3NwZWxsaW5nOworICAgICAgICAgICAgbWlzc3BlbGxpbmcudHlwZSA9IFRleHRDaGVja2lu
Z1R5cGVTcGVsbGluZzsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLmxvY2F0aW9uID0gc3RhcnQg
KyB3b3JkU3RhcnQgKyBtaXNzcGVsbGluZ0xvY2F0aW9uOworICAgICAgICAgICAgbWlzc3BlbGxp
bmcubGVuZ3RoID0gbWlzc3BlbGxpbmdMZW5ndGg7CisgICAgICAgICAgICBtaXNzcGVsbGluZy5y
ZXBsYWNlbWVudCA9IGNsaWVudC0+Z2V0QXV0b0NvcnJlY3RTdWdnZXN0aW9uRm9yTWlzc3BlbGxl
ZFdvcmQoU3RyaW5nKHRleHQgKyBtaXNzcGVsbGluZy5sb2NhdGlvbiwgbWlzc3BlbGxpbmcubGVu
Z3RoKSk7CisgICAgICAgICAgICByZXN1bHRzLmFwcGVuZChtaXNzcGVsbGluZyk7CisgICAgICAg
IH0KKworICAgICAgICB3b3JkU3RhcnQgPSB3b3JkRW5kOworICAgIH0KK30KKyNlbmRpZgorCiBz
dGF0aWMgUGFzc1JlZlB0cjxSYW5nZT4gZXhwYW5kVG9QYXJhZ3JhcGhCb3VuZGFyeShQYXNzUmVm
UHRyPFJhbmdlPiByYW5nZSkKIHsKICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKQEAgLTU5OSwx
NCArNjU5LDMxIEBAIHZvaWQgY2hlY2tUZXh0T2ZQYXJhZ3JhcGgoVGV4dENoZWNrZXJDbGllbnQq
IGNsaWVudCwgY29uc3QgVUNoYXIqIHRleHQsIGludCBsZW5nCiAjaWYgVVNFKFVOSUZJRURfVEVY
VF9DSEVDS0lORykKICAgICBjbGllbnQtPmNoZWNrVGV4dE9mUGFyYWdyYXBoKHRleHQsIGxlbmd0
aCwgY2hlY2tpbmdUeXBlcywgcmVzdWx0cyk7CiAjZWxzZQotICAgIC8vIFNob3VsZCBpbXBsZW1l
bnQgbGF0ZXIgdG8gdW5pZnkgdW5pZmllZCBzcGVsbC1jaGVja2luZyBjb2RlIHBhdGggYW5kCi0g
ICAgLy8gbGVnYWN5IHNwZWxsLWNoZWNraW5nIGNvZGUgcGF0aC4KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICBVTlVTRURfUEFSQU0oY2xpZW50KTsKLSAgICBVTlVTRURfUEFSQU0odGV4
dCk7Ci0gICAgVU5VU0VEX1BBUkFNKGxlbmd0aCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNoZWNraW5n
VHlwZXMpOwotICAgIFVOVVNFRF9QQVJBTShyZXN1bHRzKTsKKyAgICBWZWN0b3I8VGV4dENoZWNr
aW5nUmVzdWx0PiBzcGVsbGluZ1Jlc3VsdDsKKyAgICBpZiAoY2hlY2tpbmdUeXBlcyAmIFRleHRD
aGVja2luZ1R5cGVTcGVsbGluZykKKyAgICAgICAgZmluZE1pc3NwZWxsaW5ncyhjbGllbnQsIHRl
eHQsIDAsIGxlbmd0aCwgc3BlbGxpbmdSZXN1bHQpOworCisgICAgVmVjdG9yPFRleHRDaGVja2lu
Z1Jlc3VsdD4gZ3JhbW1hclJlc3VsdDsKKyAgICBpZiAoY2hlY2tpbmdUeXBlcyAmIFRleHRDaGVj
a2luZ1R5cGVHcmFtbWFyKSB7CisgICAgICAgIC8vIE9ubHkgY2hlY2tzIGdyYW1tYXJ0aWNhbCBl
cnJvciBiZWZvcmUgdGhlIGZpcnN0IG1pc3NwZWxsaW5ncworICAgICAgICBpbnQgZ3JhbW1hckNo
ZWNrTGVuZ3RoID0gbGVuZ3RoOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNwZWxs
aW5nUmVzdWx0LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBpZiAoc3BlbGxpbmdSZXN1bHRb
aV0ubG9jYXRpb24gPCBncmFtbWFyQ2hlY2tMZW5ndGgpCisgICAgICAgICAgICAgICAgZ3JhbW1h
ckNoZWNrTGVuZ3RoID0gc3BlbGxpbmdSZXN1bHRbaV0ubG9jYXRpb247CisgICAgICAgIH0KKwor
ICAgICAgICBmaW5kQmFkR3JhbW1hcnMoY2xpZW50LCB0ZXh0LCAwLCBncmFtbWFyQ2hlY2tMZW5n
dGgsIGdyYW1tYXJSZXN1bHQpOworICAgIH0KKworICAgIGlmIChncmFtbWFyUmVzdWx0LnNpemUo
KSkKKyAgICAgICAgcmVzdWx0cy5zd2FwKGdyYW1tYXJSZXN1bHQpOworCisgICAgaWYgKHNwZWxs
aW5nUmVzdWx0LnNpemUoKSkgeworICAgICAgICBpZiAocmVzdWx0cy5pc0VtcHR5KCkpCisgICAg
ICAgICAgICByZXN1bHRzLnN3YXAoc3BlbGxpbmdSZXN1bHQpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICByZXN1bHRzLmFwcGVuZChzcGVsbGluZ1Jlc3VsdCk7CisgICAgfQogI2VuZGlmCiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjYzE0NWQwMDRjZjIzZmU4
ZDIwNmQ2ZmQ0ODhmMDY4ODIwYmJkMTIyLi5hZjIzMzg4MGVmMTI1ODkzYzg0MGZkZWZmMGQxOWRk
OTI3MmViNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC00NzQsNCAr
NDc0LDI0IEBAIHVuc2lnbmVkIEludGVybmFsczo6bGVuZ3RoRnJvbVJhbmdlKEVsZW1lbnQqIHNj
b3BlLCBjb25zdCBSYW5nZSogcmFuZ2UsIEV4Y2VwdGlvCiAgICAgcmV0dXJuIGxlbmd0aDsKIH0K
IAordm9pZCBJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50
KiBkb2N1bWVudCwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUoKSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNl
dHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c2V0VW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZChlbmFibGVkKTsKK30KKworYm9vbCBJbnRlcm5hbHM6OnVu
aWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRv
Y3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIGRvY3Vt
ZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT51bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKCk7Cit9
CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDQ3ZmQ4OWRhMTlhZDM4NGRh
ZWE4NTIwNTZiMjA2YjU1ZWY1NTQxZDMuLjBhNGU1Mjg2NDNjNDkwY2M4YzRjNDY4MGVjZTU4YzI4
ODlmN2JhMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtOTgsNiArOTgsOSBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbG9jYXRpb25Gcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUs
IGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxlbmd0aEZyb21S
YW5nZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7CiAKKyAg
ICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgYm9vbCwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1l
bnQqLCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJuYWxz
SWQ7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMTYw
NDE3ZmMzNmRmYjE0MzY1ZTM2NDQ1ZGM0NmZjZTM2ZmE1ODk4OC4uN2ViOWIzZTEwZGI3ZTljMTVh
ZWU5ZDc2NjY3OGJmZjQyYWE5NWNlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlk
bApAQCAtNzEsNiArNzEsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgUmFuZ2UgcmFuZ2VG
cm9tTG9jYXRpb25BbmRMZW5ndGgoaW4gRWxlbWVudCBzY29wZSwgaW4gbG9uZyByYW5nZUxvY2F0
aW9uLCBpbiBsb25nIHJhbmdlTGVuZ3RoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHVuc2lnbmVkIGxvbmcgbG9jYXRpb25Gcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFu
Z2UgcmFuZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBs
ZW5ndGhGcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAo
RE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChp
biBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCAxOWM0NTQzMGVlM2Q2NDRkMWZmNjM5N2E4ODRiNGU3
MTNjNjdjMWYyLi41ZmZlNjg3MWQzNjhmYTA0NDQ1ZWM0NWM4MmZhYzM1ZWVjZGRiZWY4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmCkBAIC0xNzIsNiArMTcyLDcgQEAgRVhQT1JUUwogICAgICAgICA/
c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVY
QUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxl
bWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldHRpbmdzQERv
Y3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKKyAgICAgICAgP3NldHRpbmdzQEZy
YW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NoYWRvd1Jvb3RARWxl
bWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZh
bHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAg
ICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA3ZDc0NjI5MGUzYjNhOTAzZjQz
ZjU2MDg5YzdmNGQ5OTAxYjZiYjlmLi4zNjk3NjdjZWNiY2IwNGJlMDc3ODZhNWI4ODAyNTBkZTQ2
NTY1MjI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYK
KysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjQsNiArMTY0
LDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3Jv
bGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3Vn
Z2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBA
QFoKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJA
WFoKKyAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoK
ICAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJA
WFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJF
QUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1
bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGEzMTEz
OTYxMjIxNGI4ZTUwMjEzMDQzNTdjMGU3Y2Y0MGE5MmM5N2UuLmFjMWU4ZDQ2ZTlhZWNhMWQ2MGI4
MDRjYzI5M2UwOGE0ZmU0MWQzOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNzAsNiAr
NzAsNyBAQCBfWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3RFYjsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsK
IF9aTks3V2ViQ29yZTIwQ2FjaGVkUmVzb3VyY2VMb2FkZXIxMWlzUHJlbG9hZGVkRVJLTjNXVEY2
U3RyaW5nRTsKIF9aTks3V2ViQ29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyMWxhc3RD
aGFuZ2VXYXNVc2VyRWRpdEV2OworX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7CiBfWk5L
N1dlYkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQ
TlMxXzE0U2NvcGVDaGFpbk5vZGVFOwogX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RF
djsKIF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDQ5ZGQxZGRjOTExMGJk
ZWU2NGRkYWQ4MTJjODRhNWQ1ZmJiZmFiZi4uMTFlNWJiN2UwZDU3N2Y0ZDI0ZDcwY2ZmZGUwZTAx
MzY5ZjkxMTAzNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3
YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0
ZXh0IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBm
b3IgdGhlIGNhc2UgdW5pZmllZCB0ZXh0IGNoZWNrZXIgaXMgdXNlZCB3aGVuIFdlYkNvcmU6OmNo
ZWNrVGV4dE9mUGFyYWdyYXBoKCkgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGVkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9u
Lmh0bWw6IEFkZGVkLgorCiAyMDExLTEwLTI1ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1hZGUgVGFibGUgdGVzdHMgZm9yIEJ1ZyA3MDY3OCBQbGF0Zm9y
bSBJbmRlcGVuZGVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40OTBlNDA5MWQxMzQ4Njg5M2IwMDI4OTFlMDQzZGU0NDlmNWM2OGFiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVk
LWVtdWxhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGhlIHNwZWxsY2hlY2tl
ciBzaG91bGQgd29yayBjb3JyZWN0bHkgaWYgdW5pZmllZCBzcGVsbGNoZWNrIHBhdGggaXMgdXNl
ZC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIG51bU1hcmtlZCBpcyBsZW5n
dGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNT
IHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdHIgaXMg
bWFya2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0
aAorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1Mgc3Ry
IGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJr
ZWRTdHIKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNT
IG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJr
ZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxl
bmd0aAorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BB
U1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitJIHdvdWxkIGxpa2UgdG8gc2xlZXAsIHp6ei4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVs
YXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNDliMjI5ODU3OGM1NGMwN2VjZGFjM2E4MTYzYWJlNzY5
MzhjZDczCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
Li4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9lZGl0aW5nLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBi
b3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogNnB4OworICAgIGZvbnQtc2l6ZTog
MThweDsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9u
Ij48L3ByZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48
L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGUgc3BlbGxjaGVja2VyIHNob3VsZCB3
b3JrIGNvcnJlY3RseSBpZiB1bmlmaWVkIHNwZWxsY2hlY2sgcGF0aCBpcyB1c2VkLiIpOworCit2
YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOworZnVu
Y3Rpb24gcmVtb3ZlQ2hpbGRyZW4obm9kZSkgeworICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQp
CisgICAgICAgIG5vZGUucmVtb3ZlQ2hpbGQobm9kZS5maXJzdENoaWxkKTsKK30KKworaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNl
dFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKwordmFyIHRlc3RE
YXRhID0gWworICAgIHsgdGV4dDogJ3p6JywgbWFya2VkOiBbJ3p6J10gfSwKKyAgICB7IHRleHQ6
ICdhcHBsZSx6eixvcmFuZ2UnLCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ3p6LHp6
JywgbWFya2VkOiBbJ3p6JywnenonXSB9LAorICAgIHsgdGV4dDogJ3p6IHp6IHp6JywgbWFya2Vk
OiBbJ3p6JywgJ3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICcgenogenogenogJywgbWFya2Vk
OiBbJ3p6JywgJ3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICd6eiBhcHBsZSBvcmFuZ2UnLCBt
YXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ2FwcGxlIHp6IG9yYW5nZScsIG1hcmtlZDog
Wyd6eiddIH0sCisgICAgeyB0ZXh0OiAnYXBwbGUgb3JhbmdlIHp6JywgbWFya2VkOiBbJ3p6J10g
fSwKKyAgICB7IHRleHQ6ICd6enonLCBtYXJrZWQ6IFtdIH0sCisgICAgeyB0ZXh0OiAnSSB3b3Vs
ZCBsaWtlIHRvIHNsZWVwLCB6enonLCBtYXJrZWQ6IFtdIH0KK107CisKK3ZhciBudW1NYXJrZWQ7
Cit2YXIgbGVuOwordmFyIHN0cjsKK3ZhciBtYXJrZWRTdHI7CitmdW5jdGlvbiBwZXJmb3JtVGVz
dChpZCwgZGF0YSkgeworICAgIHJlbW92ZUNoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgdmFyIGUg
PSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNldEF0dHJpYnV0ZSgiY29u
dGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsKKyAg
ICBlLmlkID0gaWQ7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworCisgICAgZS5mb2N1
cygpOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS50ZXh0Lmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKGRhdGEudGV4dFtpXSk7CisgICAgfQorICAgIHR5
cGVDaGFyYWN0ZXJDb21tYW5kKCcuJyk7CisKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisg
ICAgICAgIHJldHVybjsKKworICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQp
OworICAgIG51bU1hcmtlZCA9IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENo
aWxkKTsKKyAgICBsZW5ndGggPSBkYXRhLm1hcmtlZC5sZW5ndGg7CisgICAgc2hvdWxkQmUoJ251
bU1hcmtlZCcsICdsZW5ndGgnKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtTWFya2Vk
OyArK2kpIHsKKyAgICAgICAgdmFyIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9k
ZShlLmZpcnN0Q2hpbGQsIGkpOworICAgICAgICBzdHIgPSByYW5nZS50b1N0cmluZygpOworICAg
ICAgICBtYXJrZWRTdHIgPSBkYXRhLm1hcmtlZFtpXTsKKyAgICAgICAgc2hvdWxkQmUoJ3N0cics
ICdtYXJrZWRTdHInKTsKKyAgICB9Cit9CisKK2ZvciAodmFyIGkgPSAwOyBpIDwgdGVzdERhdGEu
bGVuZ3RoOyArK2kpIHsKKyAgICBwZXJmb3JtVGVzdCgndGVzdCcsIHRlc3REYXRhW2ldKTsKK30K
KwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDdh
NDMyODc1Nzk4ZTMzODZmMDVlOGYxZDFiN2E1YzFlZTIxZGU5MDMuLjdkNDMzZTkzMmVhYjVlZTJi
YmY4YzZiNjFhZDg0Zjk3ZWMyYzlkODkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMC0xOSAgU2hpbnlhIEthd2FuYWthICA8c2hp
bnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBsZWdhY3kgdGV4dCBjaGVjayBl
bXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVyZmFjZS4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk5CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyOgorCiAyMDExLTEwLTIxICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBSZW1vdmUgUXRTY3JpcHQgc291cmNlIGNvZGUgZnJvbSBX
ZWJLaXQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114600</attachid>
            <date>2011-11-10 16:41:08 -0800</date>
            <delta_ts>2011-11-10 17:54:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111111094106.patch</filename>
            <type>text/plain</type>
            <size>27583</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjYxNGYzNjFkMWJjNTg5
YWY2YmE0N2YzNzI1MDkxOGI3ZjQ2NDhiLi5mNTIyMDM5MWQ3OGQxNTUwMzk5MjlhNTI4MzNiNDZi
ODYyNzNhODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTEtMTAg
IEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiB3cm9uZyBKU09OLnN0cmluZ2lmeSB1c2VkIGluIHdlYkluc3BlY3Rvci5pbnNwZWN0
ZWRXaW5kb3cuZXZhbCgpIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1ZWZiY2IwNDY1MTAzN2NiYzQy
NDQxYzlmODUwNThmZWZlZTk2MmU2Li43Njg1NjgyYzYxYjc5NzYzZGQ5YWEwMzI2NTJkNjlmMDBj
ZjY1NzM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTkgIFNoaW55YSBL
YXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVnYWN5
IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktp
dDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMS0xMS0xMCAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
W1dlYktpdDJdIEZpeCByZW1haW5pbmcgZ3RrZG9jIGVycm9ycwpAQCAtMTg5MCw3ICsxOTAwLDcg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIFJvYmVuLgogCi0gICAgICAgIFRoaXMgYXZv
aWRzIGNhbGxpbmcgaW50byB0aGUgcGx1Zy1pbsKgd2hlbiBvbmx5IHRoZSBwbHVnLWluIHBvc2l0
aW9uIHJlbGF0aXZlIHRvIHRoZSB3aW5kb3cgY2hhbmdlcy4KKyAgICAgICAgVGhpcyBhdm9pZHMg
Y2FsbGluZyBpbnRvIHRoZSBwbHVnLWlu776CoHdoZW4gb25seSB0aGUgcGx1Zy1pbiBwb3NpdGlv
biByZWxhdGl2ZSB0byB0aGUgd2luZG93IGNoYW5nZXMuCiAgICAgCiAgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmNwcDoKICAgICAgICAgKFdlYktp
dDo6TmV0c2NhcGVQbHVnaW46Omdlb21ldHJ5RGlkQ2hhbmdlKToKQEAgLTMwMzksNyArMzA0OSw3
IEBACiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgogICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CiAKLTIwMTEtMTAtMjggIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKzIwMTEtMTAtMjggIENzYWJhIE9zenRy
b2dvbu++g++9oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBBZGFwdCB0byBR
U0cqIHRvIFFRdWljayogQVBJIGNoYW5nZSBpbiBxdGRlY2xhcmF0aXZlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDQ5NApAQCAtMzg0NCw3ICszODU0
LDcgQEAKICAgICAgICAgUGF0Y2ggYnkgSm9jZWx5biBUdXJjb3R0ZSA8am9jZWx5bi50dXJjb3R0
ZUBub2tpYS5jb20+LAogICAgICAgICAgICAgICAgICBaZW5vIEFsYmlzc2VyIDx6ZW5vLmFsYmlz
c2VyQG5va2lhLmNvbT4KIAotICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4Lgor
ICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0Yu++g++9uC4KIAogICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvcXQvcWRlc2t0b3B3ZWJ2aWV3LmNwcDoKICAgICAgICAgKFFEZXNrdG9wV2Vi
Vmlldzo6bW91c2VQcmVzc0V2ZW50KToKQEAgLTQ3NjYsNyArNDc3Niw3IEBACiAgICAgICAgIERp
c2FibGUgcGFpbnRpbmcgd2hpbGUgc2V0dGluZyB1cCB0aGUgd2ViIHBhZ2UsIG90aGVyd2lzZSB3
ZSdsbCBnZXQgcGFpbnQgcmVxdWVzdHMgd2hlbiB3ZSBzZXQgdGhlCiAgICAgICAgIGFjdGl2ZSBz
dGF0ZSBvZiB0aGUgd2ViIHBhZ2UuCiAKLTIwMTEtMTAtMjEgIENzYWJhIE9zenRyb2dvbsOhYyAg
PG9zc3lAd2Via2l0Lm9yZz4KKzIwMTEtMTAtMjEgIENzYWJhIE9zenRyb2dvbu++g++9oWMgIDxv
c3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIEJ1aWxkZml4IGZvciBuZXdlciBR
dDUuIFJlbW92ZSBkdXBsaWNhdGVkIGRlZmluZXMuCiAKQEAgLTQ4MDEsNyArNDgxMSw3IEBACiAK
ICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKIAotMjAxMS0x
MC0yMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorMjAxMS0xMC0yMSAg
Q3NhYmEgT3N6dHJvZ29u776D772hYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRd
W1dLMl0gVW5yZXZpZXdlZCBidWlsZGZpeCBmb3IgbmV3ZXIgUXQ1LiBSZW1vdmUgZHVwbGljYXRl
ZCBkZWZpbmVzLgogCkBAIC01NDgxLDcgKzU0OTEsNyBAQAogCiAgICAgICAgICogQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6CiAKLTIwMTEtMTAtMTggIFRvciBBcm5lIFZl
c3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorMjAxMS0xMC0xOCAgVG9yIEFybmUg
VmVzdGLvvoPvvbggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0g
TWVyZ2UgUU1MIHBsdWdpbiBmb3IgV2ViS2l0MiB3aXRoIHRoZSBvcmlnaW5hbCBXZWJLaXQxIHBs
dWdpbgogCkBAIC03Mjg1LDcgKzcyOTUsNyBAQAogICAgICAgICAqIFdlYlByb2Nlc3MvcXQvV2Vi
UHJvY2Vzc01haW5RdC5jcHA6CiAgICAgICAgIChXZWJLaXQ6OkVudkh0dHBQcm94eUZhY3Rvcnk6
OnF1ZXJ5UHJveHkpOgogCi0yMDExLTEwLTExICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUu
dmVzdGJvQG5va2lhLmNvbT4KKzIwMTEtMTAtMTEgIFRvciBBcm5lIFZlc3Ri776D7724ICA8dG9y
LmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSBhbGwgcmVmZXJl
bmNlcyB0byBRVERJUl9idWlsZCBhbmQgc3RhbmRhbG9uZV9wYWNrYWdlCiAKQEAgLTg0MzQsNyAr
ODQ0NCw3IEBACiAgICAgICAgIFtRdF0gQWRkIG1pc3NpbmcgaW5jbHVkZSBmb3IgUU1pbWVEYXRh
CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02OTE3OAog
Ci0gICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCisgICAgICAgIFJldmlld2Vk
IGJ5IFRvciBBcm5lIFZlc3Ri776D7724LgogCiAgICAgICAgIFRoaXMgd2FzIGltcGxpY2l0bHkg
aW5jbHVkZWQgYnkgb3RoZXIgaGVhZGVycywgYnV0IGR1ZSB0byBjaGFuZ2VzIGluCiAgICAgICAg
IFF0NSB3ZSBuZWVkIHRvIGluY2x1ZGUgZXhwbGljaXRseS4KQEAgLTg0NDIsNyArODQ1Miw3IEBA
CiAgICAgICAgICogVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcDoKICAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CiAKLTIwMTEtMDktMzAgIFRvciBBcm5lIFZl
c3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorMjAxMS0wOS0zMCAgVG9yIEFybmUg
VmVzdGLvvoPvvbggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0g
UHJldmVudCBxRGVidWcoKSBvdXRwdXQgZnJvbSBEUlQgYW5kIFdUUiB1bmxlc3MgLS12ZXJib3Nl
CiAKQEAgLTg1ODQsNyArODU5NCw3IEBACiAgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclBy
b3h5OjppbnNwZWN0b3JCYXNlVVJMKTogUmV0dXJuIHRoZSBsb2NhdGlvbiB3aGVyZSBpbnNwZWN0
b3IgcmVzb3VyY2VzIGFyZSBwcmVzZW50LgogICAgICAgICBXZWJQcm9jZXNzIGlzIGdpdmVuIHJl
YWQgYWNjZXNzIHRvIHRoaXMgZm9sZGVyIG9ubHkgZm9yIGxvYWRpbmcgZmlsZSBVUkxzIGJ5IHNh
bmRib3hlZCBleHRlbnNpb24uCiAKLTIwMTEtMDktMjMgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3Iu
YXJuZS52ZXN0Ym9Abm9raWEuY29tPgorMjAxMS0wOS0yMyAgVG9yIEFybmUgVmVzdGLvvoPvvbgg
IDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFn
YWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9mIHdpZGdldHMgb3V0IG9mIFF0R1VpCiAKQEAgLTg5
MDQsNyArODkxNCw3IEBACiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0Mi5oOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvd2Via2l0L3dlYmtp
dC5oLgogICAgICAgICAqIHdlYmtpdDJndGsucGMuaW46IFVzZSB3ZWJraXRndGstPGFwaS12ZXJz
aW9uPiBhcyBpbmNsdWRlIGRpci4KIAotMjAxMS0wOS0yNyAgVG9yIEFybmUgVmVzdGLDuCAgPHRv
ci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisyMDExLTA5LTI3ICBUb3IgQXJuZSBWZXN0Yu++g++9
uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggYnVpbGQg
b2YgV2ViS2l0MiB1bml0LXRlc3RzIGFmdGVyIHI5NjEwOAogCkBAIC04OTEyLDcgKzg5MjIsNyBA
QAogCiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy90ZXN0cy5wcmk6CiAKLTIwMTEt
MDktMjMgIFRvciBBcm5lIFZlc3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorMjAx
MS0wOS0yMyAgVG9yIEFybmUgVmVzdGLvvoPvvbggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29t
PgogCiAgICAgICAgIFtRdF0gRml4IGJ1aWxkIGFnYWluc3QgUXQ1IGFmdGVyIHJlZmFjdG9yIG9m
IHdpZGdldHMgb3V0IG9mIFF0R1VpCiAKQEAgLTkwODQsNyArOTA5NCw3IEBACiAgICAgICAgICog
d2luL1dlYktpdDIudmNwcm9qOgogICAgICAgICAqIHdpbi9XZWJLaXQyR2VuZXJhdGVkLm1ha2U6
CiAKLTIwMTEtMDktMjYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKzIw
MTEtMDktMjYgIENzYWJhIE9zenRyb2dvbu++g++9oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgW1F0XVtXSzJdVW5yZXZpZXdlZCBzcGVjdWxhdGl2ZSBidWlsZGZpeCBhZnRlciByOTU5
NjguCiAKQEAgLTk0ODMsNyArOTQ5Myw3IEBACiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9x
d2ViZXJyb3IuY3BwOgogICAgICAgICAoUVdlYkVycm9yOjp0eXBlKToKIAotMjAxMS0wOS0yMiAg
Q3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorMjAxMS0wOS0yMiAgQ3NhYmEg
T3N6dHJvZ29u776D772hYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9O
KHI5NTY3OSk6IEl0IGJyb2tlIGV2ZXJ5dGhpbmcuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODYxMQpAQCAtOTc1Niw3ICs5NzY2LDcgQEAKICAgICAg
ICAgW1F0XSBSZW1vdmUgUXQgc3BlY2lmaWMgY29kZSBmcm9tIGNzcy9TZWxlY3RvckNoZWNrZXIu
Y3BwCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzcw
MgogCi0gICAgICAgIFJldmlld2VkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29u776D772hYy4KIAogICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDogTW9kaWZ5IHRvIG1hdGNo
IG5ldyBwcm90b3R5cGUuCiAgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6
aXNMaW5rVmlzaXRlZCk6CkBAIC05ODkwLDcgKzk5MDAsNyBAQAogICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvcXQvdGVzdHMvcW1sdGVzdHMvRGVza3RvcFdlYlZpZXcvdHN0X2xvYWRGYWlsLnFtbDog
QWRkZWQuCiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9Ub3VjaFdl
YlZpZXcvdHN0X2xvYWRGYWlsLnFtbDogQWRkZWQuCiAKLTIwMTEtMDktMjAgIENzYWJhIE9zenRy
b2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKzIwMTEtMDktMjAgIENzYWJhIE9zenRyb2dvbu++
g++9oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtNYWNdIEJ1aWxkZml4IGFm
dGVyIHI5NTUxMy4KIApAQCAtOTk3MCw3ICs5OTgwLDcgQEAKICAgICAgICAgW1F0XVtXSzJdIE1h
a2UgbG9hZGluZyBlcnJvcnMgQVBJIGVhc2llciB0byB1c2UuCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODM1NwogCi0gICAgICAgIFJldmlld2VkIGJ5
IFRvciBBcm5lIFZlc3Riw7guCisgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Ri776D
7724LgogCiAgICAgICAgIE1ha2UgdGhlIEFQSSB0byBnZXQgbG9hZGluZyBlcnJvcnMgZWFzaWVy
IHRvIHVzZS4gOTUxOTcgaW50cm9kdWNlZAogICAgICAgICBhIFFKU1ZhbHVlIEFQSSB0aGF0IGlz
IGEgYml0IG9wYXF1ZSBmb3IgdGhlIGNsaWVudCBjb2RlLiBSYXRoZXIgdGhhbgpAQCAtMTAxNDMs
NyArMTAxNTMsNyBAQAogCiAyMDExLTA5LTE2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCi0gICAgICAgIEdpdmUgbG9jYWwgYnVpbGRzIG9mIFdlYlByb2Nlc3MgZGlmZmVy
ZW50IGljb24gdG8gZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIGJ1aWx0LWluIFNhZmFyaeKAmXMgV2Vi
UHJvY2VzcworICAgICAgICBHaXZlIGxvY2FsIGJ1aWxkcyBvZiBXZWJQcm9jZXNzIGRpZmZlcmVu
dCBpY29uIHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBidWlsdC1pbiBTYWZhcmnnqrblhrEgV2Vi
UHJvY2VzcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjgyNjgKIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KQEAgLTEwODAzLDcgKzEw
ODEzLDcgQEAKICAgICAgICAgVGlsZWREcmF3aW5nQXJlYTogRml4IGlzc3VlcyB3aGVyZSB0aGUg
dGlsZXMgb2YgdGhlIHByZXZpb3VzIHNjYWxlIHdvdWxkIGJlIHJlbW92ZWQgdG9vIGVhcmx5Lgog
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjczOTAKIAot
ICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgorICAgICAgICBSZXZpZXdlZCBi
eSBUb3IgQXJuZSBWZXN0Yu++g++9uC4KIAogICAgICAgICBUaGUgdHdvIGlzc3VlcyBhZGRyZXNz
c2VkIGFyZToKICAgICAgICAgLSBUaGUgcHJldmlvdXMgaW5zdGFuY2Ugb2YgdGhlIHRpbGUgYmFj
a2luZyBzdG9yZSB3b3VsZCBiZSBkZXN0cm95ZWQgaW4gY3JlYXRlVGlsZSB3aGljaApAQCAtMTA4
MjAsNyArMTA4MzAsNyBAQAogICAgICAgICBbUXRdW1dLMl0gVGhlIHNjZW5lIGdyYXBoIGlzIHJl
bmRlcmVkIGNvbnRpbnVvdXNseSBldmVuIHdoZW4gdGhlIHBhZ2UgaXMgaWRsZS4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTk1CiAKLSAgICAgICAg
UmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFy
bmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgU2luY2UgdGlsZWRCYWNraW5nU3RvcmVQYWludEVu
ZCBpcyBjYWxsZWQgZXZlbiB3aGVuIG5vIHRpbGUgaXMgZGlydHksIHRoZSBUaWxlZERyYXdpbmdB
cmVhCiAgICAgICAgIGFuZCBpdHMgcHJveHkgYXJlIGxvb3Bpbmcgb3ZlciBEaWRSZW5kZXJGcmFt
ZSBhbmQgUmVuZGVyTmV4dEZyYW1lIG1lc3NhZ2VzLgpAQCAtMTA4ODgsNyArMTA4OTgsNyBAQAog
ICAgICAgICBbUXRdW1dLMl0gUmVuYW1lIFNHQWdlbnQgdG8gU0dVcGRhdGVRdWV1ZSB0byBzaGFy
cGVuIGl0J3MgcmVzcG9uc2FiaWxpdHkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD02NzEyMgogCi0gICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZl
c3Riw7guCisgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Ri776D7724LgogCiAgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcDoKICAgICAgICAgKFFUb3Vj
aFdlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSk6CkBAIC0xMTA2Niw3ICsxMTA3Niw3IEBACiAKICAg
ICAgICAgW1F0XVtXSzJdIEZpeCB0aGUgYnVpbGQKIAotICAgICAgICBSdWJiZXItc3RhbXBlZCBi
eSBDc2FiYSBPc3p0cm9nb27DoWMuCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9z
enRyb2dvbu++g++9oWMuCiAKICAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IEFkZCBtaXNz
aW5nIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGFmdGVyIHI5NDQ1Ni4KIApA
QCAtMTEyNTYsNyArMTEyNjYsNyBAQAogICAgICAgICBbUXRdW1dLMl0gQ2Fubm90IGdhdGhlcmlu
ZyBnbHlwaCBwYWdlIHN0YXRpc3RpY3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY3NDc1CiAKLSAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkgQ3NhYmEg
T3N6dHJvZ29uw6FjLgorICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBDc2FiYSBPc3p0cm9nb27v
voPvvaFjLgogCiAgICAgICAgIEZpeCBRdCBXSzIgYnVpbGQgd2l0aG91dCBoYXZpbmcgUVJBV0ZP
TlQuCiAKQEAgLTEyMTczLDcgKzEyMTgzLDcgQEAKICAgICAgICAgW1F0XVtXSzJdIERyaXZlIHRp
bGluZyBmcm9tIHRoZSBXZWJQcm9jZXNzIGFuZCByZXVzZSBUaWxlZEJhY2tpbmdTdG9yZS4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NzcxCiAKLSAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAgUmV2aWV3ZWQgYnkg
VG9yIEFybmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgV2UgbmVlZCB0aGUgdGlsaW5nIGxvZ2lj
IHRvIGJlIG1vdmVkIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byBhbGxvdyBpbnZhbGlkYXRlZCB0aWxl
IHJlY3RzIHRvIGJlCiAgICAgICAgIHJlbmRlcmVkIHdpdGggdGhlIHNhbWUgbGF5b3V0LiBUaGlz
IGFsc28gYWxsb3dzIHRoZSB3ZWIgcHJvY2VzcyB0byByZW5kZXIgdGlsZXMgaW50bwpAQCAtMTMz
OTksNyArMTM0MDksNyBAQAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCiAKICAg
ICAgICAgV2hlbiBsYXllciBmbHVzaCBzY2hlZHVsaW5nIGlzIHJlLWVuYWJsZWQsIHNjaGVkdWxl
IGEgbGF5ZXIgZmx1c2gsIGp1c3QgaW4gY2FzZSBvbmUgd2FzIHJlcXVlc3RlZCB3aGlsZQotICAg
ICAgICBzY2hlZHVsaW5nIHdhcyBkaXNhYmxlZC4gSXQgZG9lc27igJl0IHNlZW0gd29ydGh3aGls
ZSB0byB0cmFjayB3aGV0aGVyIHRoYXQgaW4gZmFjdCBoYXBwZW5lZCwgc28gZG8gc28KKyAgICAg
ICAgc2NoZWR1bGluZyB3YXMgZGlzYWJsZWQuIEl0IGRvZXNu56q25YayIHNlZW0gd29ydGh3aGls
ZSB0byB0cmFjayB3aGV0aGVyIHRoYXQgaW4gZmFjdCBoYXBwZW5lZCwgc28gZG8gc28KICAgICAg
ICAgdW5jb25kaXRpb25hbGx5LgogCiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL2NhL21h
Yy9MYXllclRyZWVIb3N0Q0FNYWMubW06CkBAIC0xNDQwNiw3ICsxNDQxNiw3IEBACiAgICAgICAg
IFtRdF0gW1dLMl0gRGlzYWJsZSB0aGUgYnVpbGQgd2l0aCBRdCB2ZXJzaW9ucyBvbGRlciB0aGFu
IDUuMCAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1
MTg5CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgorICAgICAgICBS
ZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27vvoPvvaFjLgogCiAgICAgICAgICogUGxhdGZvcm0v
cXQvTW9kdWxlUXQuY3BwOgogICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OnBsYXRmb3JtRnVuY3Rp
b25Qb2ludGVyKTogRml4IHRoZSBidWlsZCBmb3IgUXQ1LgpAQCAtMTQ0NTAsNyArMTQ0NjAsNyBA
QAogCiAyMDExLTA3LTIyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKLSAg
ICAgICAgW1dlYktpdDJdIENoYW5naW5nIHRoZSBjb29raWUgYWNjZXB0IHBvbGljeSBpbiBQcml2
YXRlIEJyb3dzaW5nIGRvZXNu4oCZdCB3b3JrLgorICAgICAgICBbV2ViS2l0Ml0gQ2hhbmdpbmcg
dGhlIGNvb2tpZSBhY2NlcHQgcG9saWN5IGluIFByaXZhdGUgQnJvd3NpbmcgZG9lc27nqrblhrIg
d29yay4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0
OTk3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhIENoYW4uCkBAIC0xNDkwMCw3ICsxNDkxMCw3
IEBACiAKIDIwMTEtMDctMTUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAotICAg
ICAgICBSRUdSRVNTSU9OOiBNb3VzZSBjdXJzb3IgZG9lc27igJl0IGhpZGUgd2hlbiBmdWxsIHNj
cmVlbiB2aWRlbyBIVUQgaGlkZXMKKyAgICAgICAgUkVHUkVTU0lPTjogTW91c2UgY3Vyc29yIGRv
ZXNu56q25YayIGhpZGUgd2hlbiBmdWxsIHNjcmVlbiB2aWRlbyBIVUQgaGlkZXMKICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjE1CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpAQCAtMTc5MjAsNyArMTc5MzAsNyBAQAogICAg
ICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcDoKICAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CiAKLTIwMTEtMDYtMTUgIENzYWJh
IE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKzIwMTEtMDYtMTUgIENzYWJhIE9zenRy
b2dvbu++g++9oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIFVucmV2
aWV3ZWQgcm9sbGluZyBvdXQgcjg4Nzk5LCBiZWNhdXNlIGl0IG1hZGUgd2ViIHByb2Nlc3MgY3Jh
c2guCiAKQEAgLTE5Mzg5LDcgKzE5Mzk5LDcgQEAKIAogICAgICAgICA8aHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTY1PgogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
OTU1NTgzNT4KLSAgICAgICAgV2ViS2l0MiBmaW5kLW9uLXBhZ2UgY2FsbGJhY2sgZG9lc27igJl0
IGhhbmRsZSBrV0tNb3JlVGhhbk1heGltdW1NYXRjaENvdW50IG9uIFBERiBwYWdlcworICAgICAg
ICBXZWJLaXQyIGZpbmQtb24tcGFnZSBjYWxsYmFjayBkb2VzbueqtuWGsiBoYW5kbGUga1dLTW9y
ZVRoYW5NYXhpbXVtTWF0Y2hDb3VudCBvbiBQREYgcGFnZXMKIAogICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tOgogICAgICAgICAoV2ViS2l0OjpQREZWaWV3
Q29udHJvbGxlcjo6ZmluZFN0cmluZyk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRD
aGVja2luZ0hlbHBlci5jcHAKaW5kZXggMDQ3NjkxZTViYTBmYjY5NDAwNjczMTBmM2IwZmEzZDMz
MzhiMmQ4Mi4uZTI1NGYyNGU2OWYyZTUwYTk3Nzk0ZmU5MDRmY2UyOGExNDNjNWM4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtMzIsNiAr
MzIsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgorI2luY2x1ZGUgIlRleHRCcmVha0l0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
VGV4dENoZWNrZXJDbGllbnQuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRl
ICJWaXNpYmxlUG9zaXRpb24uaCIKQEAgLTM5LDYgKzQwLDY1IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorI2lmICFVU0UoVU5JRklFRF9URVhUX0NIRUNLSU5HKQorc3RhdGljIHZvaWQgZmlu
ZEJhZEdyYW1tYXJzKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0ZXh0
LCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiByZXN1
bHRzKQoreworICAgIEFTU0VSVChXVEZfVVNFX0dSQU1NQVJfQ0hFQ0tJTkcpOworCisgICAgaW50
IGNoZWNrTG9jYXRpb24gPSBzdGFydDsKKyAgICBpbnQgY2hlY2tMZW5ndGggPSBsZW5ndGg7CisK
KyAgICB3aGlsZSAoMCA8IGNoZWNrTGVuZ3RoKSB7CisgICAgICAgIGludCBiYWRHcmFtbWFyTG9j
YXRpb24gPSAtMTsKKyAgICAgICAgaW50IGJhZEdyYW1tYXJMZW5ndGggPSAwOworICAgICAgICBW
ZWN0b3I8R3JhbW1hckRldGFpbD4gYmFkR3JhbW1hckRldGFpbHM7CisgICAgICAgIGNsaWVudC0+
Y2hlY2tHcmFtbWFyT2ZTdHJpbmcodGV4dCArIGNoZWNrTG9jYXRpb24sIGNoZWNrTGVuZ3RoLCBi
YWRHcmFtbWFyRGV0YWlscywgJmJhZEdyYW1tYXJMb2NhdGlvbiwgJmJhZEdyYW1tYXJMZW5ndGgp
OworICAgICAgICBpZiAoIWJhZEdyYW1tYXJMZW5ndGgpCisgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgQVNTRVJUKDAgPD0gYmFkR3JhbW1hckxvY2F0aW9uICYmIGJhZEdyYW1tYXJMb2NhdGlv
biA8PSBjaGVja0xlbmd0aCk7CisgICAgICAgIEFTU0VSVCgwIDwgYmFkR3JhbW1hckxlbmd0aCAm
JiBiYWRHcmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoIDw9IGNoZWNrTGVuZ3RoKTsK
KyAgICAgICAgVGV4dENoZWNraW5nUmVzdWx0IGJhZEdyYW1tYXI7CisgICAgICAgIGJhZEdyYW1t
YXIudHlwZSA9IFRleHRDaGVja2luZ1R5cGVHcmFtbWFyOworICAgICAgICBiYWRHcmFtbWFyLmxv
Y2F0aW9uID0gY2hlY2tMb2NhdGlvbiArIGJhZEdyYW1tYXJMb2NhdGlvbjsKKyAgICAgICAgYmFk
R3JhbW1hci5sZW5ndGggPSBiYWRHcmFtbWFyTGVuZ3RoOworICAgICAgICBiYWRHcmFtbWFyLmRl
dGFpbHMuc3dhcChiYWRHcmFtbWFyRGV0YWlscyk7CisgICAgICAgIHJlc3VsdHMuYXBwZW5kKGJh
ZEdyYW1tYXIpOworCisgICAgICAgIGNoZWNrTG9jYXRpb24gKz0gKGJhZEdyYW1tYXJMb2NhdGlv
biArIGJhZEdyYW1tYXJMZW5ndGgpOworICAgICAgICBjaGVja0xlbmd0aCAtPSAoYmFkR3JhbW1h
ckxvY2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCk7CisgICAgfQorfQorCitzdGF0aWMgdm9pZCBm
aW5kTWlzc3BlbGxpbmdzKFRleHRDaGVja2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IFVDaGFyKiB0
ZXh0LCBpbnQgc3RhcnQsIGludCBsZW5ndGgsIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+JiBy
ZXN1bHRzKQoreworICAgIFRleHRCcmVha0l0ZXJhdG9yKiBpdGVyYXRvciA9IHdvcmRCcmVha0l0
ZXJhdG9yKHRleHQgKyBzdGFydCwgbGVuZ3RoKTsKKyAgICBpZiAoIWl0ZXJhdG9yKQorICAgICAg
ICByZXR1cm47CisgICAgaW50IHdvcmRTdGFydCA9IHRleHRCcmVha0N1cnJlbnQoaXRlcmF0b3Ip
OworICAgIHdoaWxlICgwIDw9IHdvcmRTdGFydCkgeworICAgICAgICBpbnQgd29yZEVuZCA9IHRl
eHRCcmVha05leHQoaXRlcmF0b3IpOworICAgICAgICBpZiAod29yZEVuZCA8IDApCisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgaW50IHdvcmRMZW5ndGggPSB3b3JkRW5kIC0gd29yZFN0YXJ0
OworICAgICAgICBpbnQgbWlzc3BlbGxpbmdMb2NhdGlvbiA9IC0xOworICAgICAgICBpbnQgbWlz
c3BlbGxpbmdMZW5ndGggPSAwOworICAgICAgICBjbGllbnQtPmNoZWNrU3BlbGxpbmdPZlN0cmlu
Zyh0ZXh0ICsgc3RhcnQgKyB3b3JkU3RhcnQsIHdvcmRMZW5ndGgsICZtaXNzcGVsbGluZ0xvY2F0
aW9uLCAmbWlzc3BlbGxpbmdMZW5ndGgpOworICAgICAgICBpZiAoMCA8IG1pc3NwZWxsaW5nTGVu
Z3RoKSB7CisgICAgICAgICAgICBBU1NFUlQoMCA8PSBtaXNzcGVsbGluZ0xvY2F0aW9uICYmIG1p
c3NwZWxsaW5nTG9jYXRpb24gPD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBBU1NFUlQoMCA8
IG1pc3NwZWxsaW5nTGVuZ3RoICYmIG1pc3NwZWxsaW5nTG9jYXRpb24gKyBtaXNzcGVsbGluZ0xl
bmd0aCA8PSB3b3JkTGVuZ3RoKTsKKyAgICAgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCBtaXNz
cGVsbGluZzsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBl
U3BlbGxpbmc7CisgICAgICAgICAgICBtaXNzcGVsbGluZy5sb2NhdGlvbiA9IHN0YXJ0ICsgd29y
ZFN0YXJ0ICsgbWlzc3BlbGxpbmdMb2NhdGlvbjsKKyAgICAgICAgICAgIG1pc3NwZWxsaW5nLmxl
bmd0aCA9IG1pc3NwZWxsaW5nTGVuZ3RoOworICAgICAgICAgICAgbWlzc3BlbGxpbmcucmVwbGFj
ZW1lbnQgPSBjbGllbnQtPmdldEF1dG9Db3JyZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3Jk
KFN0cmluZyh0ZXh0ICsgbWlzc3BlbGxpbmcubG9jYXRpb24sIG1pc3NwZWxsaW5nLmxlbmd0aCkp
OworICAgICAgICAgICAgcmVzdWx0cy5hcHBlbmQobWlzc3BlbGxpbmcpOworICAgICAgICB9CisK
KyAgICAgICAgd29yZFN0YXJ0ID0gd29yZEVuZDsKKyAgICB9Cit9CisjZW5kaWYKKwogc3RhdGlj
IFBhc3NSZWZQdHI8UmFuZ2U+IGV4cGFuZFRvUGFyYWdyYXBoQm91bmRhcnkoUGFzc1JlZlB0cjxS
YW5nZT4gcmFuZ2UpCiB7CiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CkBAIC01OTksMTQgKzY1
OSwzMSBAQCB2b2lkIGNoZWNrVGV4dE9mUGFyYWdyYXBoKFRleHRDaGVja2VyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IFVDaGFyKiB0ZXh0LCBpbnQgbGVuZwogI2lmIFVTRShVTklGSUVEX1RFWFRfQ0hF
Q0tJTkcpCiAgICAgY2xpZW50LT5jaGVja1RleHRPZlBhcmFncmFwaCh0ZXh0LCBsZW5ndGgsIGNo
ZWNraW5nVHlwZXMsIHJlc3VsdHMpOwogI2Vsc2UKLSAgICAvLyBTaG91bGQgaW1wbGVtZW50IGxh
dGVyIHRvIHVuaWZ5IHVuaWZpZWQgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoIGFuZAotICAgIC8v
IGxlZ2FjeSBzcGVsbC1jaGVja2luZyBjb2RlIHBhdGguCi0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgVU5VU0VEX1BBUkFNKGNsaWVudCk7Ci0gICAgVU5VU0VEX1BBUkFNKHRleHQpOwot
ICAgIFVOVVNFRF9QQVJBTShsZW5ndGgpOwotICAgIFVOVVNFRF9QQVJBTShjaGVja2luZ1R5cGVz
KTsKLSAgICBVTlVTRURfUEFSQU0ocmVzdWx0cyk7CisgICAgVmVjdG9yPFRleHRDaGVja2luZ1Jl
c3VsdD4gc3BlbGxpbmdSZXN1bHQ7CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tp
bmdUeXBlU3BlbGxpbmcpCisgICAgICAgIGZpbmRNaXNzcGVsbGluZ3MoY2xpZW50LCB0ZXh0LCAw
LCBsZW5ndGgsIHNwZWxsaW5nUmVzdWx0KTsKKworICAgIFZlY3RvcjxUZXh0Q2hlY2tpbmdSZXN1
bHQ+IGdyYW1tYXJSZXN1bHQ7CisgICAgaWYgKGNoZWNraW5nVHlwZXMgJiBUZXh0Q2hlY2tpbmdU
eXBlR3JhbW1hcikgeworICAgICAgICAvLyBPbmx5IGNoZWNrcyBncmFtbWFydGljYWwgZXJyb3Ig
YmVmb3JlIHRoZSBmaXJzdCBtaXNzcGVsbGluZ3MKKyAgICAgICAgaW50IGdyYW1tYXJDaGVja0xl
bmd0aCA9IGxlbmd0aDsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzcGVsbGluZ1Jl
c3VsdC5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgaWYgKHNwZWxsaW5nUmVzdWx0W2ldLmxv
Y2F0aW9uIDwgZ3JhbW1hckNoZWNrTGVuZ3RoKQorICAgICAgICAgICAgICAgIGdyYW1tYXJDaGVj
a0xlbmd0aCA9IHNwZWxsaW5nUmVzdWx0W2ldLmxvY2F0aW9uOworICAgICAgICB9CisKKyAgICAg
ICAgZmluZEJhZEdyYW1tYXJzKGNsaWVudCwgdGV4dCwgMCwgZ3JhbW1hckNoZWNrTGVuZ3RoLCBn
cmFtbWFyUmVzdWx0KTsKKyAgICB9CisKKyAgICBpZiAoZ3JhbW1hclJlc3VsdC5zaXplKCkpCisg
ICAgICAgIHJlc3VsdHMuc3dhcChncmFtbWFyUmVzdWx0KTsKKworICAgIGlmIChzcGVsbGluZ1Jl
c3VsdC5zaXplKCkpIHsKKyAgICAgICAgaWYgKHJlc3VsdHMuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmVzdWx0cy5zd2FwKHNwZWxsaW5nUmVzdWx0KTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgcmVzdWx0cy5hcHBlbmQoc3BlbGxpbmdSZXN1bHQpOworICAgIH0KICNlbmRpZgogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggNjcyZGI1OTVlODI3ZjVkYTRhMzZi
ZWExMGJkNWEwY2E3YWFkOTdiZi4uNTdhM2M4ZTU4MzUyODIwNmQ0MWY2YWM4ZmZiZWE2YTkzYjhm
MGZjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNTY3LDQgKzU2Nywy
NCBAQCB1bnNpZ25lZCBJbnRlcm5hbHM6Omxlbmd0aEZyb21SYW5nZShFbGVtZW50KiBzY29wZSwg
Y29uc3QgUmFuZ2UqIHJhbmdlLCBFeGNlcHRpbwogICAgIHJldHVybiBsZW5ndGg7CiB9CiAKK3Zv
aWQgSW50ZXJuYWxzOjpzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9j
dW1lbnQsIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFkb2N1
bWVudCB8fCAhZG9jdW1lbnQtPmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5n
cygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnNldFVuaWZpZWRU
ZXh0Q2hlY2tlckVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK2Jvb2wgSW50ZXJuYWxzOjp1bmlmaWVk
VGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVj
KQoreworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1bWVu
dC0+ZnJhbWUoKS0+c2V0dGluZ3MoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiBkb2N1bWVudC0+
ZnJhbWUoKS0+c2V0dGluZ3MoKS0+dW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCgpOworfQorCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlN2UwMmE5NzU5N2MzNDk5NWI5ZjQ1
MWI2ZDg5OTQwYmE5NzQ5NzM3Li5lMTM2Y2QyNTM2NmJlODgwZDBlN2MyZWJlMjdjODQyYzRmNjM5
MDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTEwMyw2ICsxMDMsOSBAQCBw
dWJsaWM6CiAgICAgdW5zaWduZWQgbG9jYXRpb25Gcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNv
bnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHVuc2lnbmVkIGxlbmd0aEZyb21SYW5n
ZShFbGVtZW50KiBzY29wZSwgY29uc3QgUmFuZ2UqLCBFeGNlcHRpb25Db2RlJik7CiAKKyAgICB2
b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiwgYm9vbCwgRXhjZXB0
aW9uQ29kZSYpOworICAgIGJvb2wgdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQq
LCBFeGNlcHRpb25Db2RlJik7CisKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJuYWxzSWQ7
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggN2M4MzRh
OTFmOTExZWZhODQ3OGExMzNkNzNhMGEwZDFjODUzZGFjOS4uZTAyNjA3ZDYyZDI4NDRjZWIwZjQ2
YzliNDUyNGMzMWVkNGYwOTU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApA
QCAtNzUsNiArNzUsOSBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgUmFuZ2UgcmFuZ2VGcm9t
TG9jYXRpb25BbmRMZW5ndGgoaW4gRWxlbWVudCBzY29wZSwgaW4gbG9uZyByYW5nZUxvY2F0aW9u
LCBpbiBsb25nIHJhbmdlTGVuZ3RoKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVu
c2lnbmVkIGxvbmcgbG9jYXRpb25Gcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2Ug
cmFuZ2UpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsZW5n
dGhGcm9tUmFuZ2UoaW4gRWxlbWVudCBzY29wZSwgaW4gUmFuZ2UgcmFuZ2UpIHJhaXNlcyAoRE9N
RXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKKyAgICAgICAgYm9vbGVhbiB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBE
b2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgppbmRleCBhNWI1ZjBiZTQyN2Q0NDYwNGIxNWEwMjQ3ZWY3YmZhZThj
YTEwNzBlLi5kMWQ5NGMxMDcxNGZjNDRhNTQ1ZmUwNDExNjg2ODUyMGM5NDQ4ZDJjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmCkBAIC0xNzYsNiArMTc2LDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0
U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxhYmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJW
SW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVu
dEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldHRpbmdzQERvY3Vt
ZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKKyAgICAgICAgP3NldHRpbmdzQEZyYW1l
QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NoYWRvd1Jvb3RARWxlbWVu
dEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP3N1Z2dlc3RlZFZhbHVl
QEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJWU3RyaW5nQFdURkBAWFoKICAgICAgICAg
P3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVudEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA2Yjk4Mzg3MmNiMTM2ZjJkYzhkYzRj
ZDk4ODJhN2I5M2EzNmQxZmYyLi5kNDY5OWJjNmM1YmMzMzU4MTljNmU3ODA5ZDViYjE3ZTY5ZDY3
NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysr
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjksNiArMTY5LDcg
QEAgRVhQT1JUUwogICAgICAgICA/c2V0U2Nyb2xsT2Zmc2V0RnJvbUludGVybmFsc0BTY3JvbGxh
YmxlQXJlYUBXZWJDb3JlQEBRQUVYQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0U3VnZ2Vz
dGVkVmFsdWVASFRNTElucHV0RWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoK
ICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoK
KyAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAg
ICAgICAgP3NoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQkVQQVZTaGFkb3dSb290QDJAWFoK
ICAgICAgICAgP3N1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUJFQUJW
U3RyaW5nQFdURkBAWFoKICAgICAgICAgP3RvRG9jdW1lbnRAV2ViQ29yZUBAWUFQQVZEb2N1bWVu
dEAxQFZKU1ZhbHVlQEpTQ0BAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDE5YTY3ZTc5
NGIzMDQ0NzAxMmEyYjNkODAwODdkMDBlM2I1ODZiNTIuLmM1OTIxMThjZGRlODJlYWI5MjZiNjA3
NTM2ZDdlMjc3MTA2YTRkOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNzEsNiArNzEs
NyBAQCBfWk5LN1dlYkNvcmUxMlJlbmRlck9iamVjdDIzYWJzb2x1dGVCb3VuZGluZ0JveFJlY3RF
YjsKIF9aTks3V2ViQ29yZTE2SFRNTElucHV0RWxlbWVudDE0c3VnZ2VzdGVkVmFsdWVFdjsKIF9a
Tks3V2ViQ29yZTIwQ2FjaGVkUmVzb3VyY2VMb2FkZXIxMWlzUHJlbG9hZGVkRVJLTjNXVEY2U3Ry
aW5nRTsKIF9aTks3V2ViQ29yZTI2SFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnQyMWxhc3RDaGFu
Z2VXYXNVc2VyRWRpdEV2OworX1pOSzdXZWJDb3JlNUZyYW1lOHNldHRpbmdzRXY7CiBfWk5LN1dl
YkNvcmU2SlNOb2RlMjFwdXNoRXZlbnRIYW5kbGVyU2NvcGVFUE4zSlNDOUV4ZWNTdGF0ZUVQTlMx
XzE0U2NvcGVDaGFpbk5vZGVFOwogX1pOSzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RFdjsK
IF9aTks3V2ViQ29yZThEb2N1bWVudDRwYWdlRXY7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTEwOWZiM2M1YTYwYzk2OWI0
YTIyZDc4MWI4Y2VkNTNhZTNjMGM5OC4uNmM3NWRhYjJkZTAxNjBlMjI4NDIxZDZmYjMxNmQzNTk0
Y2IyZTIzMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0
IGNoZWNrIGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCB0ZXN0cyBmb3Ig
dGhlIGNhc2UgdW5pZmllZCB0ZXh0IGNoZWNrZXIgaXMgdXNlZCB3aGVuIFdlYkNvcmU6OmNoZWNr
VGV4dE9mUGFyYWdyYXBoKCkgaXMgbm90IHN1cHBvcnRlZC4KKworICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0
bWw6IEFkZGVkLgorCiAyMDExLTExLTEwICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjogd3JvbmcgSlNPTi5zdHJpbmdpZnkgdXNl
ZCBpbiB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoKSBiYWNrZW5kCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0
aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
dW5pZmllZC1lbXVsYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MGU0MDkxZDEzNDg2
ODkzYjAwMjg5MWUwNDNkZTQ0OWY1YzY4YWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMxIEBACitUaGUgc3BlbGxjaGVja2VyIHNob3VsZCB3b3JrIGNvcnJlY3Rs
eSBpZiB1bmlmaWVkIHNwZWxsY2hlY2sgcGF0aCBpcyB1c2VkLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdHIgaXMgbWFya2Vk
U3RyCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFT
UyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1Mgc3RyIGlz
IG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJrZWRT
dHIKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51
bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBzdHIgaXMgbWFy
a2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAor
UEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mgc3Ry
IGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJr
ZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3Ro
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0kgd291
bGQgbGlrZSB0byBzbGVlcCwgenp6LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlvbi5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUyZjk5N2IxOTE3YWY3ZGJhOThlYTc5MGM2NmZkNTRiNDczZjRhN2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0
aW9uLmh0bWwKQEAgLTAsMCArMSw5MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiPjwv
c2NyaXB0PgorPHN0eWxlPgorLmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsK
KyAgICBwYWRkaW5nOiA2cHg7CisgICAgZm9udC1zaXplOiAxOHB4OworfQorPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8ZGl2IGlkPSJjb250YWluZXIiPjwvZGl2PgorCis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRoZSBzcGVsbGNoZWNrZXIgc2hvdWxkIHdvcmsgY29ycmVjdGx5IGlmIHVuaWZp
ZWQgc3BlbGxjaGVjayBwYXRoIGlzIHVzZWQuIik7CisKK3ZhciBjb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyk7CitmdW5jdGlvbiByZW1vdmVDaGlsZHJlbihu
b2RlKSB7CisgICAgd2hpbGUgKG5vZGUuZmlyc3RDaGlsZCkKKyAgICAgICAgbm9kZS5yZW1vdmVD
aGlsZChub2RlLmZpcnN0Q2hpbGQpOworfQorCitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworfQorCitpZiAo
d2luZG93LmludGVybmFscykKKyAgICBpbnRlcm5hbHMuc2V0VW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQoZG9jdW1lbnQsIHRydWUpOworCit2YXIgdGVzdERhdGEgPSBbCisgICAgeyB0ZXh0OiAn
enonLCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ2FwcGxlLHp6LG9yYW5nZScsIG1h
cmtlZDogWyd6eiddIH0sCisgICAgeyB0ZXh0OiAnenosenonLCBtYXJrZWQ6IFsnenonLCd6eidd
IH0sCisgICAgeyB0ZXh0OiAnenogenogenonLCBtYXJrZWQ6IFsnenonLCAnenonLCAnenonXSB9
LAorICAgIHsgdGV4dDogJyB6eiB6eiB6eiAnLCBtYXJrZWQ6IFsnenonLCAnenonLCAnenonXSB9
LAorICAgIHsgdGV4dDogJ3p6IGFwcGxlIG9yYW5nZScsIG1hcmtlZDogWyd6eiddIH0sCisgICAg
eyB0ZXh0OiAnYXBwbGUgenogb3JhbmdlJywgbWFya2VkOiBbJ3p6J10gfSwKKyAgICB7IHRleHQ6
ICdhcHBsZSBvcmFuZ2UgenonLCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ3p6eics
IG1hcmtlZDogW10gfSwKKyAgICB7IHRleHQ6ICdJIHdvdWxkIGxpa2UgdG8gc2xlZXAsIHp6eics
IG1hcmtlZDogW10gfQorXTsKKwordmFyIG51bU1hcmtlZDsKK3ZhciBsZW47Cit2YXIgc3RyOwor
dmFyIG1hcmtlZFN0cjsKK2Z1bmN0aW9uIHBlcmZvcm1UZXN0KGlkLCBkYXRhKSB7CisgICAgcmVt
b3ZlQ2hpbGRyZW4oY29udGFpbmVyKTsKKyAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIp
OworICAgIGUuY2xhc3NOYW1lID0gJ2VkaXRpbmcnOworICAgIGUuaWQgPSBpZDsKKyAgICBjb250
YWluZXIuYXBwZW5kQ2hpbGQoZSk7CisKKyAgICBlLmZvY3VzKCk7CisgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCBkYXRhLnRleHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHlwZUNoYXJhY3RlckNv
bW1hbmQoZGF0YS50ZXh0W2ldKTsKKyAgICB9CisgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQoJy4n
KTsKKworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAgICAgICAgcmV0dXJuOworCisgICAg
dmFyIGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgbnVtTWFya2VkID0gaW50
ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIpOworICAg
IGxlbmd0aCA9IGRhdGEubWFya2VkLmxlbmd0aDsKKyAgICBzaG91bGRCZSgnbnVtTWFya2VkJywg
J2xlbmd0aCcpOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBudW1NYXJrZWQ7ICsraSkgewor
ICAgICAgICB2YXIgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RD
aGlsZCwgInNwZWxsaW5nIiwgaSk7CisgICAgICAgIHN0ciA9IHJhbmdlLnRvU3RyaW5nKCk7Cisg
ICAgICAgIG1hcmtlZFN0ciA9IGRhdGEubWFya2VkW2ldOworICAgICAgICBzaG91bGRCZSgnc3Ry
JywgJ21hcmtlZFN0cicpOworICAgIH0KK30KKworZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RGF0
YS5sZW5ndGg7ICsraSkgeworICAgIHBlcmZvcm1UZXN0KCd0ZXN0JywgdGVzdERhdGFbaV0pOwor
fQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXgg
MWU0OWZlZTQwNDhjMjU2Y2VmMDA2MjdiMjQ3NGU4ODhhYTNmNDllYi4uYjBmZmNmY2VlMDE1ODQ0
OThhYjI4MTFjYTFkMTBjMGE5ZWZkMjI2ZiAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTEwLTE5ICBTaGlueWEgS2F3YW5ha2EgIDxz
aGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IGxlZ2FjeSB0ZXh0IGNoZWNr
IGVtdWxhdGlvbiBpbiB1bmlmaWVkIHRleHQgY2hlY2sgaW50ZXJmYWNlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzAyOTkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXI6CisKIDIwMTEtMTEtMTAgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21h
bm5Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gQ2xlYW4gdXAgYnVpbGQgc3lzdGVtCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114610</attachid>
            <date>2011-11-10 17:55:09 -0800</date>
            <delta_ts>2011-11-11 17:21:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70299-20111111105507.patch</filename>
            <type>text/plain</type>
            <size>17051</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4NjQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjYxNGYzNjFkMWJjNTg5
YWY2YmE0N2YzNzI1MDkxOGI3ZjQ2NDhiLi5mNTIyMDM5MWQ3OGQxNTUwMzk5MjlhNTI4MzNiNDZi
ODYyNzNhODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMTAtMTkgIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVn
YWN5IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2Uu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoZW4gVU5J
RklFRF9URVhUX0NIRUNLSU5HIGlzIG9mZiwgV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgo
KSBlbXVsYXRlcworICAgICAgICBUZXh0Q2hlY2tlckNsaWVudDo6Y2hlY2tUZXh0T2ZQYXJhZ3Jh
cGgoKSB1c2luZyBjaGVja1NwZWxsaW5nT2ZTdHJpbmcgYW5kIGNoZWNrR3JhbW1hck9mU3RyaW5n
LgorCisgICAgICAgIFRoaXMgZW11bGF0aW9uIGNhbiBiZSB1c2VkIGJ5IHNldHRpbmcgdGhlIGZs
YWcgb24uCisgICAgICAgIFRoaXMgY2FuIGJlIGRvbmUgYnkgV2ViQ29yZTo6SW50ZXJuYWxzOjpz
ZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZC4KKworICAgICAgICBUZXN0OiBlZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLmh0bWwKKworICAgICAgICAqIGVkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZpbmRCYWRHcmFt
bWFycyk6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6ZmluZE1pc3NwZWxsaW5ncyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAgIEVt
dWxhdGVzIFRleHRDaGVja2VyQ2xpZW50czo6Y2hlY2tUZXh0T2ZQYXJhZ3JhcGggaWYgVU5JRklF
RF9URVhUX0NIRUNLSU5HIGlzIG9mZi4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKTogZmxhZyBzZXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKTogZmxhZyBnZXR0ZXIuCisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTEtMTEtMTAg
IEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5z
cGVjdG9yOiB3cm9uZyBKU09OLnN0cmluZ2lmeSB1c2VkIGluIHdlYkluc3BlY3Rvci5pbnNwZWN0
ZWRXaW5kb3cuZXZhbCgpIGJhY2tlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1ZWZiY2IwNDY1MTAzN2NiYzQy
NDQxYzlmODUwNThmZWZlZTk2MmU2Li5hZDA5ZDllNzUwNWNlYmU1NDU3Nzc2NTU3YjViZWVlNDVj
NTNlZTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAtMTkgIFNoaW55YSBL
YXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgbGVnYWN5
IHRleHQgY2hlY2sgZW11bGF0aW9uIGluIHVuaWZpZWQgdGV4dCBjaGVjayBpbnRlcmZhY2UuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDI5OQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktp
dDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoKKwogMjAxMS0xMS0xMCAg
TWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
W1dlYktpdDJdIEZpeCByZW1haW5pbmcgZ3RrZG9jIGVycm9ycwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCmluZGV4IDA0NzY5MWU1YmEwZmI2OTQwMDY3
MzEwZjNiMGZhM2QzMzM4YjJkODIuLmUyNTRmMjRlNjlmMmU1MGE5Nzc5NGZlOTA0ZmNlMjhhMTQz
YzVjODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVs
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIlJhbmdl
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJUZXh0QnJlYWtJdGVyYXRvci5o
IgogI2luY2x1ZGUgIlRleHRDaGVja2VyQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9y
LmgiCiAjaW5jbHVkZSAiVmlzaWJsZVBvc2l0aW9uLmgiCkBAIC0zOSw2ICs0MCw2NSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhVVNFKFVOSUZJRURfVEVYVF9DSEVDS0lORykKK3N0
YXRpYyB2b2lkIGZpbmRCYWRHcmFtbWFycyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBjb25z
dCBVQ2hhciogdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNraW5n
UmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBBU1NFUlQoV1RGX1VTRV9HUkFNTUFSX0NIRUNLSU5H
KTsKKworICAgIGludCBjaGVja0xvY2F0aW9uID0gc3RhcnQ7CisgICAgaW50IGNoZWNrTGVuZ3Ro
ID0gbGVuZ3RoOworCisgICAgd2hpbGUgKDAgPCBjaGVja0xlbmd0aCkgeworICAgICAgICBpbnQg
YmFkR3JhbW1hckxvY2F0aW9uID0gLTE7CisgICAgICAgIGludCBiYWRHcmFtbWFyTGVuZ3RoID0g
MDsKKyAgICAgICAgVmVjdG9yPEdyYW1tYXJEZXRhaWw+IGJhZEdyYW1tYXJEZXRhaWxzOworICAg
ICAgICBjbGllbnQtPmNoZWNrR3JhbW1hck9mU3RyaW5nKHRleHQgKyBjaGVja0xvY2F0aW9uLCBj
aGVja0xlbmd0aCwgYmFkR3JhbW1hckRldGFpbHMsICZiYWRHcmFtbWFyTG9jYXRpb24sICZiYWRH
cmFtbWFyTGVuZ3RoKTsKKyAgICAgICAgaWYgKCFiYWRHcmFtbWFyTGVuZ3RoKQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIEFTU0VSVCgwIDw9IGJhZEdyYW1tYXJMb2NhdGlvbiAmJiBiYWRH
cmFtbWFyTG9jYXRpb24gPD0gY2hlY2tMZW5ndGgpOworICAgICAgICBBU1NFUlQoMCA8IGJhZEdy
YW1tYXJMZW5ndGggJiYgYmFkR3JhbW1hckxvY2F0aW9uICsgYmFkR3JhbW1hckxlbmd0aCA8PSBj
aGVja0xlbmd0aCk7CisgICAgICAgIFRleHRDaGVja2luZ1Jlc3VsdCBiYWRHcmFtbWFyOworICAg
ICAgICBiYWRHcmFtbWFyLnR5cGUgPSBUZXh0Q2hlY2tpbmdUeXBlR3JhbW1hcjsKKyAgICAgICAg
YmFkR3JhbW1hci5sb2NhdGlvbiA9IGNoZWNrTG9jYXRpb24gKyBiYWRHcmFtbWFyTG9jYXRpb247
CisgICAgICAgIGJhZEdyYW1tYXIubGVuZ3RoID0gYmFkR3JhbW1hckxlbmd0aDsKKyAgICAgICAg
YmFkR3JhbW1hci5kZXRhaWxzLnN3YXAoYmFkR3JhbW1hckRldGFpbHMpOworICAgICAgICByZXN1
bHRzLmFwcGVuZChiYWRHcmFtbWFyKTsKKworICAgICAgICBjaGVja0xvY2F0aW9uICs9IChiYWRH
cmFtbWFyTG9jYXRpb24gKyBiYWRHcmFtbWFyTGVuZ3RoKTsKKyAgICAgICAgY2hlY2tMZW5ndGgg
LT0gKGJhZEdyYW1tYXJMb2NhdGlvbiArIGJhZEdyYW1tYXJMZW5ndGgpOworICAgIH0KK30KKwor
c3RhdGljIHZvaWQgZmluZE1pc3NwZWxsaW5ncyhUZXh0Q2hlY2tlckNsaWVudCogY2xpZW50LCBj
b25zdCBVQ2hhciogdGV4dCwgaW50IHN0YXJ0LCBpbnQgbGVuZ3RoLCBWZWN0b3I8VGV4dENoZWNr
aW5nUmVzdWx0PiYgcmVzdWx0cykKK3sKKyAgICBUZXh0QnJlYWtJdGVyYXRvciogaXRlcmF0b3Ig
PSB3b3JkQnJlYWtJdGVyYXRvcih0ZXh0ICsgc3RhcnQsIGxlbmd0aCk7CisgICAgaWYgKCFpdGVy
YXRvcikKKyAgICAgICAgcmV0dXJuOworICAgIGludCB3b3JkU3RhcnQgPSB0ZXh0QnJlYWtDdXJy
ZW50KGl0ZXJhdG9yKTsKKyAgICB3aGlsZSAoMCA8PSB3b3JkU3RhcnQpIHsKKyAgICAgICAgaW50
IHdvcmRFbmQgPSB0ZXh0QnJlYWtOZXh0KGl0ZXJhdG9yKTsKKyAgICAgICAgaWYgKHdvcmRFbmQg
PCAwKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGludCB3b3JkTGVuZ3RoID0gd29yZEVu
ZCAtIHdvcmRTdGFydDsKKyAgICAgICAgaW50IG1pc3NwZWxsaW5nTG9jYXRpb24gPSAtMTsKKyAg
ICAgICAgaW50IG1pc3NwZWxsaW5nTGVuZ3RoID0gMDsKKyAgICAgICAgY2xpZW50LT5jaGVja1Nw
ZWxsaW5nT2ZTdHJpbmcodGV4dCArIHN0YXJ0ICsgd29yZFN0YXJ0LCB3b3JkTGVuZ3RoLCAmbWlz
c3BlbGxpbmdMb2NhdGlvbiwgJm1pc3NwZWxsaW5nTGVuZ3RoKTsKKyAgICAgICAgaWYgKDAgPCBt
aXNzcGVsbGluZ0xlbmd0aCkgeworICAgICAgICAgICAgQVNTRVJUKDAgPD0gbWlzc3BlbGxpbmdM
b2NhdGlvbiAmJiBtaXNzcGVsbGluZ0xvY2F0aW9uIDw9IHdvcmRMZW5ndGgpOworICAgICAgICAg
ICAgQVNTRVJUKDAgPCBtaXNzcGVsbGluZ0xlbmd0aCAmJiBtaXNzcGVsbGluZ0xvY2F0aW9uICsg
bWlzc3BlbGxpbmdMZW5ndGggPD0gd29yZExlbmd0aCk7CisgICAgICAgICAgICBUZXh0Q2hlY2tp
bmdSZXN1bHQgbWlzc3BlbGxpbmc7CisgICAgICAgICAgICBtaXNzcGVsbGluZy50eXBlID0gVGV4
dENoZWNraW5nVHlwZVNwZWxsaW5nOworICAgICAgICAgICAgbWlzc3BlbGxpbmcubG9jYXRpb24g
PSBzdGFydCArIHdvcmRTdGFydCArIG1pc3NwZWxsaW5nTG9jYXRpb247CisgICAgICAgICAgICBt
aXNzcGVsbGluZy5sZW5ndGggPSBtaXNzcGVsbGluZ0xlbmd0aDsKKyAgICAgICAgICAgIG1pc3Nw
ZWxsaW5nLnJlcGxhY2VtZW50ID0gY2xpZW50LT5nZXRBdXRvQ29ycmVjdFN1Z2dlc3Rpb25Gb3JN
aXNzcGVsbGVkV29yZChTdHJpbmcodGV4dCArIG1pc3NwZWxsaW5nLmxvY2F0aW9uLCBtaXNzcGVs
bGluZy5sZW5ndGgpKTsKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKG1pc3NwZWxsaW5nKTsK
KyAgICAgICAgfQorCisgICAgICAgIHdvcmRTdGFydCA9IHdvcmRFbmQ7CisgICAgfQorfQorI2Vu
ZGlmCisKIHN0YXRpYyBQYXNzUmVmUHRyPFJhbmdlPiBleHBhbmRUb1BhcmFncmFwaEJvdW5kYXJ5
KFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQogewogICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwpA
QCAtNTk5LDE0ICs2NTksMzEgQEAgdm9pZCBjaGVja1RleHRPZlBhcmFncmFwaChUZXh0Q2hlY2tl
ckNsaWVudCogY2xpZW50LCBjb25zdCBVQ2hhciogdGV4dCwgaW50IGxlbmcKICNpZiBVU0UoVU5J
RklFRF9URVhUX0NIRUNLSU5HKQogICAgIGNsaWVudC0+Y2hlY2tUZXh0T2ZQYXJhZ3JhcGgodGV4
dCwgbGVuZ3RoLCBjaGVja2luZ1R5cGVzLCByZXN1bHRzKTsKICNlbHNlCi0gICAgLy8gU2hvdWxk
IGltcGxlbWVudCBsYXRlciB0byB1bmlmeSB1bmlmaWVkIHNwZWxsLWNoZWNraW5nIGNvZGUgcGF0
aCBhbmQKLSAgICAvLyBsZWdhY3kgc3BlbGwtY2hlY2tpbmcgY29kZSBwYXRoLgotICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgIFVOVVNFRF9QQVJBTShjbGllbnQpOwotICAgIFVOVVNFRF9Q
QVJBTSh0ZXh0KTsKLSAgICBVTlVTRURfUEFSQU0obGVuZ3RoKTsKLSAgICBVTlVTRURfUEFSQU0o
Y2hlY2tpbmdUeXBlcyk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlc3VsdHMpOworICAgIFZlY3RvcjxU
ZXh0Q2hlY2tpbmdSZXN1bHQ+IHNwZWxsaW5nUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVz
ICYgVGV4dENoZWNraW5nVHlwZVNwZWxsaW5nKQorICAgICAgICBmaW5kTWlzc3BlbGxpbmdzKGNs
aWVudCwgdGV4dCwgMCwgbGVuZ3RoLCBzcGVsbGluZ1Jlc3VsdCk7CisKKyAgICBWZWN0b3I8VGV4
dENoZWNraW5nUmVzdWx0PiBncmFtbWFyUmVzdWx0OworICAgIGlmIChjaGVja2luZ1R5cGVzICYg
VGV4dENoZWNraW5nVHlwZUdyYW1tYXIpIHsKKyAgICAgICAgLy8gT25seSBjaGVja3MgZ3JhbW1h
cnRpY2FsIGVycm9yIGJlZm9yZSB0aGUgZmlyc3QgbWlzc3BlbGxpbmdzCisgICAgICAgIGludCBn
cmFtbWFyQ2hlY2tMZW5ndGggPSBsZW5ndGg7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgc3BlbGxpbmdSZXN1bHQuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzcGVsbGlu
Z1Jlc3VsdFtpXS5sb2NhdGlvbiA8IGdyYW1tYXJDaGVja0xlbmd0aCkKKyAgICAgICAgICAgICAg
ICBncmFtbWFyQ2hlY2tMZW5ndGggPSBzcGVsbGluZ1Jlc3VsdFtpXS5sb2NhdGlvbjsKKyAgICAg
ICAgfQorCisgICAgICAgIGZpbmRCYWRHcmFtbWFycyhjbGllbnQsIHRleHQsIDAsIGdyYW1tYXJD
aGVja0xlbmd0aCwgZ3JhbW1hclJlc3VsdCk7CisgICAgfQorCisgICAgaWYgKGdyYW1tYXJSZXN1
bHQuc2l6ZSgpKQorICAgICAgICByZXN1bHRzLnN3YXAoZ3JhbW1hclJlc3VsdCk7CisKKyAgICBp
ZiAoc3BlbGxpbmdSZXN1bHQuc2l6ZSgpKSB7CisgICAgICAgIGlmIChyZXN1bHRzLmlzRW1wdHko
KSkKKyAgICAgICAgICAgIHJlc3VsdHMuc3dhcChzcGVsbGluZ1Jlc3VsdCk7CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIHJlc3VsdHMuYXBwZW5kKHNwZWxsaW5nUmVzdWx0KTsKKyAgICB9CiAj
ZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDY3MmRiNTk1
ZTgyN2Y1ZGE0YTM2YmVhMTBiZDVhMGNhN2FhZDk3YmYuLjU3YTNjOGU1ODM1MjgyMDZkNDFmNmFj
OGZmYmVhNmE5M2I4ZjBmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTU2Nyw0ICs1NjcsMjQgQEAgdW5zaWduZWQgSW50ZXJuYWxzOjpsZW5ndGhGcm9tUmFuZ2UoRWxl
bWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiByYW5nZSwgRXhjZXB0aW8KICAgICByZXR1cm4gbGVu
Z3RoOwogfQogCit2b2lkIEludGVybmFsczo6c2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQo
RG9jdW1lbnQqIGRvY3VtZW50LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQorewor
ICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5mcmFtZSgpIHx8ICFkb2N1bWVudC0+ZnJh
bWUoKS0+c2V0dGluZ3MoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygp
LT5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKGVuYWJsZWQpOworfQorCitib29sIEludGVy
bmFsczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNl
cHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+ZnJhbWUo
KSB8fCAhZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCkpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICByZXR1
cm4gZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJs
ZWQoKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggZTdlMDJhOTc1
OTdjMzQ5OTViOWY0NTFiNmQ4OTk0MGJhOTc0OTczNy4uZTEzNmNkMjUzNjZiZTg4MGQwZTdjMmVi
ZTI3Yzg0MmM0ZjYzOTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMDMs
NiArMTAzLDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvY2F0aW9uRnJvbVJhbmdlKEVsZW1l
bnQqIHNjb3BlLCBjb25zdCBSYW5nZSosIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB1bnNpZ25lZCBs
ZW5ndGhGcm9tUmFuZ2UoRWxlbWVudCogc2NvcGUsIGNvbnN0IFJhbmdlKiwgRXhjZXB0aW9uQ29k
ZSYpOwogCisgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCos
IGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBib29sIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYpOworCiAgICAgc3RhdGljIGNvbnN0IGNoYXIq
IGludGVybmFsc0lkOwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CmluZGV4IDdjODM0YTkxZjkxMWVmYTg0NzhhMTMzZDczYTBhMGQxYzg1M2RhYzkuLmUwMjYwN2Q2
MmQyODQ0Y2ViMGY0NmM5YjQ1MjRjMzFlZDRmMDk1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKQEAgLTc1LDYgKzc1LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIFJh
bmdlIHJhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoKGluIEVsZW1lbnQgc2NvcGUsIGluIGxvbmcg
cmFuZ2VMb2NhdGlvbiwgaW4gbG9uZyByYW5nZUxlbmd0aCkgcmFpc2VzIChET01FeGNlcHRpb24p
OwogICAgICAgICB1bnNpZ25lZCBsb25nIGxvY2F0aW9uRnJvbVJhbmdlKGluIEVsZW1lbnQgc2Nv
cGUsIGluIFJhbmdlIHJhbmdlKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoRnJvbVJhbmdlKGluIEVsZW1lbnQgc2NvcGUsIGluIFJhbmdlIHJhbmdl
KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSBy
YWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2lu
Z0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAg
ICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggYTViNWYwYmU0MjdkNDQ2MDRiMTVh
MDI0N2VmN2JmYWU4Y2ExMDcwZS4uZDFkOTRjMTA3MTRmYzQ0YTU0NWZlMDQxMTY4Njg1MjBjOTQ0
OGQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTc2LDYgKzE3Niw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP3NldFNjcm9sbE9mZnNldEZyb21JbnRlcm5hbHNAU2Nyb2xsYWJsZUFyZWFAV2Vi
Q29yZUBAUUFFWEFCVkludFBvaW50QDJAQFoKICAgICAgICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhU
TUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9z
ZXR0aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCisgICAgICAgID9z
ZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zaGFk
b3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9z
dWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZA
QFhaCiAgICAgICAgID90b0RvY3VtZW50QFdlYkNvcmVAQFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1
ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggNmI5ODM4NzJj
YjEzNmYyZGM4ZGM0Y2Q5ODgyYTdiOTNhMzZkMWZmMi4uZDQ2OTliYzZjNWJjMzM1ODE5YzZlNzgw
OWQ1YmIxN2U2OWQ2NzY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAt
MTY5LDYgKzE2OSw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFNjcm9sbE9mZnNldEZyb21JbnRl
cm5hbHNAU2Nyb2xsYWJsZUFyZWFAV2ViQ29yZUBAUUFFWEFCVkludFBvaW50QDJAQFoKICAgICAg
ICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0
cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZT
ZXR0aW5nc0AyQFhaCisgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJDb3JlQEBRQkVQQVZTZXR0
aW5nc0AyQFhaCiAgICAgICAgID9zaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUJFUEFWU2hh
ZG93Um9vdEAyQFhaCiAgICAgICAgID9zdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdl
YkNvcmVAQFFCRUFCVlN0cmluZ0BXVEZAQFhaCiAgICAgICAgID90b0RvY3VtZW50QFdlYkNvcmVA
QFlBUEFWRG9jdW1lbnRAMUBWSlNWYWx1ZUBKU0NAQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpp
bmRleCAxOWE2N2U3OTRiMzA0NDcwMTJhMmIzZDgwMDg3ZDAwZTNiNTg2YjUyLi5jNTkyMTE4Y2Rk
ZTgyZWFiOTI2YjYwNzUzNmQ3ZTI3NzEwNmE0ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
QEAgLTcxLDYgKzcxLDcgQEAgX1pOSzdXZWJDb3JlMTJSZW5kZXJPYmplY3QyM2Fic29sdXRlQm91
bmRpbmdCb3hSZWN0RWI7CiBfWk5LN1dlYkNvcmUxNkhUTUxJbnB1dEVsZW1lbnQxNHN1Z2dlc3Rl
ZFZhbHVlRXY7CiBfWk5LN1dlYkNvcmUyMENhY2hlZFJlc291cmNlTG9hZGVyMTFpc1ByZWxvYWRl
ZEVSS04zV1RGNlN0cmluZ0U7CiBfWk5LN1dlYkNvcmUyNkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVt
ZW50MjFsYXN0Q2hhbmdlV2FzVXNlckVkaXRFdjsKK19aTks3V2ViQ29yZTVGcmFtZThzZXR0aW5n
c0V2OwogX1pOSzdXZWJDb3JlNkpTTm9kZTIxcHVzaEV2ZW50SGFuZGxlclNjb3BlRVBOM0pTQzlF
eGVjU3RhdGVFUE5TMV8xNFNjb3BlQ2hhaW5Ob2RlRTsKIF9aTks3V2ViQ29yZTdFbGVtZW50MTBz
aGFkb3dSb290RXY7CiBfWk5LN1dlYkNvcmU4RG9jdW1lbnQ0cGFnZUV2OwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDExMDlm
YjNjNWE2MGM5NjliNGEyMmQ3ODFiOGNlZDUzYWUzYzBjOTguLjZjNzVkYWIyZGUwMTYwZTIyODQy
MWQ2ZmIzMTZkMzU5NGNiMmUyMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMC0xOSAg
U2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVu
dCBsZWdhY3kgdGV4dCBjaGVjayBlbXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVy
ZmFjZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcw
Mjk5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
ZWQgdGVzdHMgZm9yIHRoZSBjYXNlIHVuaWZpZWQgdGV4dCBjaGVja2VyIGlzIHVzZWQgd2hlbiBX
ZWJDb3JlOjpjaGVja1RleHRPZlBhcmFncmFwaCgpIGlzIG5vdCBzdXBwb3J0ZWQuCisKKyAgICAg
ICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVk
LWVtdWxhdGlvbi5odG1sOiBBZGRlZC4KKwogMjAxMS0xMS0xMCAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IHdyb25nIEpTT04u
c3RyaW5naWZ5IHVzZWQgaW4gd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5ldmFsKCkgYmFj
a2VuZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11
bmlmaWVkLWVtdWxhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLXVuaWZpZWQtZW11bGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
OTBlNDA5MWQxMzQ4Njg5M2IwMDI4OTFlMDQzZGU0NDlmNWM2OGFiCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11bmlmaWVkLWVtdWxhdGlv
bi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzMSBAQAorVGhlIHNwZWxsY2hlY2tlciBzaG91bGQg
d29yayBjb3JyZWN0bHkgaWYgdW5pZmllZCBzcGVsbGNoZWNrIHBhdGggaXMgdXNlZC4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1Mg
c3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBt
YXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBzdHIgaXMgbWFya2VkU3Ry
CitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFTUyBz
dHIgaXMgbWFya2VkU3RyCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1Mgc3RyIGlzIG1hcmtl
ZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVuZ3RoCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BB
U1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51bU1hcmtl
ZCBpcyBsZW5ndGgKK1BBU1Mgc3RyIGlzIG1hcmtlZFN0cgorUEFTUyBudW1NYXJrZWQgaXMgbGVu
Z3RoCitQQVNTIHN0ciBpcyBtYXJrZWRTdHIKK1BBU1MgbnVtTWFya2VkIGlzIGxlbmd0aAorUEFT
UyBzdHIgaXMgbWFya2VkU3RyCitQQVNTIG51bU1hcmtlZCBpcyBsZW5ndGgKK1BBU1MgbnVtTWFy
a2VkIGlzIGxlbmd0aAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENP
TVBMRVRFCitJIHdvdWxkIGxpa2UgdG8gc2xlZXAsIHp6ei4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctdW5pZmllZC1lbXVsYXRpb24uaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41MmY5OTdiMTkxN2FmN2RiYTk4ZWE3OTBjNjZmZDU0YjQ3M2Y0YTdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy11
bmlmaWVkLWVtdWxhdGlvbi5odG1sCkBAIC0wLDAgKzEsOTEgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9l
ZGl0aW5nLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJw
eCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogNnB4OworICAgIGZvbnQtc2l6ZTogMThweDsKK30K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4K
KzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj4KKwor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUaGUgc3BlbGxjaGVja2VyIHNob3VsZCB3b3JrIGNvcnJl
Y3RseSBpZiB1bmlmaWVkIHNwZWxsY2hlY2sgcGF0aCBpcyB1c2VkLiIpOworCit2YXIgY29udGFp
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpOworZnVuY3Rpb24gcmVt
b3ZlQ2hpbGRyZW4obm9kZSkgeworICAgIHdoaWxlIChub2RlLmZpcnN0Q2hpbGQpCisgICAgICAg
IG5vZGUucmVtb3ZlQ2hpbGQobm9kZS5maXJzdENoaWxkKTsKK30KKworaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKK30KKworaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaW50ZXJuYWxzLnNldFVuaWZpZWRU
ZXh0Q2hlY2tpbmdFbmFibGVkKGRvY3VtZW50LCB0cnVlKTsKKwordmFyIHRlc3REYXRhID0gWwor
ICAgIHsgdGV4dDogJ3p6JywgbWFya2VkOiBbJ3p6J10gfSwKKyAgICB7IHRleHQ6ICdhcHBsZSx6
eixvcmFuZ2UnLCBtYXJrZWQ6IFsnenonXSB9LAorICAgIHsgdGV4dDogJ3p6LHp6JywgbWFya2Vk
OiBbJ3p6JywnenonXSB9LAorICAgIHsgdGV4dDogJ3p6IHp6IHp6JywgbWFya2VkOiBbJ3p6Jywg
J3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICcgenogenogenogJywgbWFya2VkOiBbJ3p6Jywg
J3p6JywgJ3p6J10gfSwKKyAgICB7IHRleHQ6ICd6eiBhcHBsZSBvcmFuZ2UnLCBtYXJrZWQ6IFsn
enonXSB9LAorICAgIHsgdGV4dDogJ2FwcGxlIHp6IG9yYW5nZScsIG1hcmtlZDogWyd6eiddIH0s
CisgICAgeyB0ZXh0OiAnYXBwbGUgb3JhbmdlIHp6JywgbWFya2VkOiBbJ3p6J10gfSwKKyAgICB7
IHRleHQ6ICd6enonLCBtYXJrZWQ6IFtdIH0sCisgICAgeyB0ZXh0OiAnSSB3b3VsZCBsaWtlIHRv
IHNsZWVwLCB6enonLCBtYXJrZWQ6IFtdIH0KK107CisKK3ZhciBudW1NYXJrZWQ7Cit2YXIgbGVu
OwordmFyIHN0cjsKK3ZhciBtYXJrZWRTdHI7CitmdW5jdGlvbiBwZXJmb3JtVGVzdChpZCwgZGF0
YSkgeworICAgIHJlbW92ZUNoaWxkcmVuKGNvbnRhaW5lcik7CisgICAgdmFyIGUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRh
YmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsKKyAgICBlLmlkID0g
aWQ7CisgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworCisgICAgZS5mb2N1cygpOworICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZGF0YS50ZXh0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHR5
cGVDaGFyYWN0ZXJDb21tYW5kKGRhdGEudGV4dFtpXSk7CisgICAgfQorICAgIHR5cGVDaGFyYWN0
ZXJDb21tYW5kKCcuJyk7CisKKyAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHJl
dHVybjsKKworICAgIHZhciBlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaWQpOworICAgIG51
bU1hcmtlZCA9IGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAic3Bl
bGxpbmciKTsKKyAgICBsZW5ndGggPSBkYXRhLm1hcmtlZC5sZW5ndGg7CisgICAgc2hvdWxkQmUo
J251bU1hcmtlZCcsICdsZW5ndGgnKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbnVtTWFy
a2VkOyArK2kpIHsKKyAgICAgICAgdmFyIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9y
Tm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIGkpOworICAgICAgICBzdHIgPSByYW5nZS50
b1N0cmluZygpOworICAgICAgICBtYXJrZWRTdHIgPSBkYXRhLm1hcmtlZFtpXTsKKyAgICAgICAg
c2hvdWxkQmUoJ3N0cicsICdtYXJrZWRTdHInKTsKKyAgICB9Cit9CisKK2ZvciAodmFyIGkgPSAw
OyBpIDwgdGVzdERhdGEubGVuZ3RoOyArK2kpIHsKKyAgICBwZXJmb3JtVGVzdCgndGVzdCcsIHRl
c3REYXRhW2ldKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hh
bmdlTG9nCmluZGV4IDFlNDlmZWU0MDQ4YzI1NmNlZjAwNjI3YjI0NzRlODg4YWEzZjQ5ZWIuLmIw
ZmZjZmNlZTAxNTg0NDk4YWIyODExY2ExZDEwYzBhOWVmZDIyNmYgMTAwNjQ0Ci0tLSBhL0NoYW5n
ZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMC0xOSAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBsZWdh
Y3kgdGV4dCBjaGVjayBlbXVsYXRpb24gaW4gdW5pZmllZCB0ZXh0IGNoZWNrIGludGVyZmFjZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjk5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2Uv
YXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgorCiAyMDExLTExLTEwICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIENsZWFuIHVwIGJ1aWxk
IHN5c3RlbQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>