<?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>71792</bug_id>
          
          <creation_ts>2011-11-08 03:36:24 -0800</creation_ts>
          <short_desc>Internals.markerRangeForNode should be able to take markers by specifying a marker type.</short_desc>
          <delta_ts>2011-12-03 21:14:55 -0800</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>72015</dependson>
          <blocked>70299</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>morrita</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>497909</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 03:36:24 -0800</bug_when>
    <thetext>Internals.markerCountForNode and Internals.markerRangeForNode does not take marker type.
This sometimes bothered us when checking marker count or so, especially a new marker is introduced.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497910</commentid>
    <comment_count>1</comment_count>
      <attachid>114030</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 03:37:07 -0800</bug_when>
    <thetext>Created attachment 114030
Patch

This won&apos;t build on Win.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497912</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-08 03:39:14 -0800</bug_when>
    <thetext>Attachment 114030 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/editing/spelling/markers.html&apos;...&quot; exit_code: 1

Source/WebCore/testing/Internals.cpp:67:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>497943</commentid>
    <comment_count>3</comment_count>
      <attachid>114039</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 04:35:04 -0800</bug_when>
    <thetext>Created attachment 114039
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498129</commentid>
    <comment_count>4</comment_count>
      <attachid>114090</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 09:15:17 -0800</bug_when>
    <thetext>Created attachment 114090
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498560</commentid>
    <comment_count>5</comment_count>
      <attachid>114183</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 17:38:03 -0800</bug_when>
    <thetext>Created attachment 114183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498670</commentid>
    <comment_count>6</comment_count>
      <attachid>114211</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 22:55:47 -0800</bug_when>
    <thetext>Created attachment 114211
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498683</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-08 23:38:24 -0800</bug_when>
    <thetext>OK, now this patch builds even in Win.
It&apos;s time to review.

morrita-san, could you take a look this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498685</commentid>
    <comment_count>8</comment_count>
      <attachid>114211</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-08 23:51:34 -0800</bug_when>
    <thetext>Comment on attachment 114211
Patch

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

&gt; Source/WebCore/testing/Internals.cpp:87
&gt; +    

Could you propagate error to the caller and throw an exception for this?
Ignoring error here will make the troubleshooting hard.

Also, I want some way to specify &quot;all&quot;. An empty string would be sufficient.

&gt; LayoutTests/ChangeLog:10
&gt; +        * platform/chromium/test_expectations.txt: Skipped chromium tests.

Could you add skip entries for other ports?
I guess almost all other port uses test_expectations.txt. Only Apple windows port uses Skipped file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498947</commentid>
    <comment_count>9</comment_count>
      <attachid>114276</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-09 07:38:29 -0800</bug_when>
    <thetext>Created attachment 114276
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498948</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-09 07:39:53 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Could you propagate error to the caller and throw an exception for this?
&gt; Ignoring error here will make the troubleshooting hard.
&gt; 
&gt; Also, I want some way to specify &quot;all&quot;. An empty string would be sufficient.

Done.

&gt; &gt; LayoutTests/ChangeLog:10
&gt; &gt; +        * platform/chromium/test_expectations.txt: Skipped chromium tests.
&gt; 
&gt; Could you add skip entries for other ports?
&gt; I guess almost all other port uses test_expectations.txt. Only Apple windows port uses Skipped file.

Skipped all platforms but mac.
It seems mac and chromium are using test_expectations.txt, but the other platforms use Skipped file...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498960</commentid>
    <comment_count>11</comment_count>
      <attachid>114276</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-09 07:55:36 -0800</bug_when>
    <thetext>Comment on attachment 114276
Patch

Attachment 114276 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10365456</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498974</commentid>
    <comment_count>12</comment_count>
      <attachid>114276</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 08:11:23 -0800</bug_when>
    <thetext>Comment on attachment 114276
Patch

Attachment 114276 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10370458</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499276</commentid>
    <comment_count>13</comment_count>
      <attachid>114276</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-11-09 12:59:15 -0800</bug_when>
    <thetext>Comment on attachment 114276
Patch

Attachment 114276 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10399061</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499596</commentid>
    <comment_count>14</comment_count>
      <attachid>114420</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-09 19:23:58 -0800</bug_when>
    <thetext>Created attachment 114420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499601</commentid>
    <comment_count>15</comment_count>
      <attachid>114422</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-09 19:32:54 -0800</bug_when>
    <thetext>Created attachment 114422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499602</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 19:34:15 -0800</bug_when>
    <thetext>Attachment 114422 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;La...&quot; exit_code: 1

Last 3072 characters of output:
 not exist. svg/as-image/animated-svg-as-image-same-image.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3897:  Path does not exist. svg/as-image/animated-svg-as-image-same-image.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3898:  Path does not exist. svg/zoom/page/zoom-coords-viewattr-01-b.svg  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3899:  Path does not exist. fast/backgrounds/svg-as-mask.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3900:  Path does not exist. fast/backgrounds/size/contain-and-cover.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3901:  Path does not exist. svg/as-background-image/svg-as-background-5.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3902:  Path does not exist. svg/custom/embedding-external-svgs.xhtml  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3904:  Path does not exist. svg/as-border-image/svg-as-border-image.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3905:  Path does not exist. svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3906:  Path does not exist. svg/as-background-image/svg-as-background-1.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3907:  Path does not exist. svg/as-background-image/svg-as-background-3.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3909:  Path does not exist. svg/zoom/page/zoom-svg-as-relative-image.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3910:  Path does not exist. svg/zoom/page/relative-sized-document-scrollbars.svg  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3912:  Path does not exist. storage/indexeddb/key-type-array.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3914:  Path does not exist. fast/js/array-functions-non-arrays.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3915:  Path does not exist. fast/js/eval-cross-window.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3916:  Path does not exist. fast/js/regexp-caching.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3917:  Path does not exist. fast/js/toString-overrides.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3918:  Path does not exist. fast/js/toString-recursion.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3919:  Path does not exist. http/tests/security/xss-eval.html  [test/expectations] [2]
LayoutTests/platform/chromium/test_expectations.txt:3921:  Path does not exist. fast/dom/rtl-scroll-to-leftmost-and-resize.html  [test/expectations] [2]
Total errors found: 2166 in 19 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499623</commentid>
    <comment_count>17</comment_count>
      <attachid>114422</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-09 21:00:08 -0800</bug_when>
    <thetext>Comment on attachment 114422
Patch

The style error looks an intermittent trouble on the bot. Let&apos;s land it and see what happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499646</commentid>
    <comment_count>18</comment_count>
      <attachid>114422</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 22:11:14 -0800</bug_when>
    <thetext>Comment on attachment 114422
Patch

Clearing flags on attachment: 114422

Committed r99814: &lt;http://trac.webkit.org/changeset/99814&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499647</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-09 22:11:20 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508455</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-23 15:21:06 -0800</bug_when>
    <thetext>Why there&apos;s no markers-expected.txt? Also this test isn&apos;t skipped on Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509251</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-25 12:35:07 -0800</bug_when>
    <thetext>editing/spelling/markers.html is still missing the result on Mac. Could you either skip the test or add an appropriate expectation? It&apos;s not great to leave a test with missing result in the tree for such a long time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509525</commentid>
    <comment_count>22</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-27 18:14:47 -0800</bug_when>
    <thetext>Oops, sorry, I didn&apos;t notice this...
I&apos;ll work it soon.

(In reply to comment #21)
&gt; editing/spelling/markers.html is still missing the result on Mac. Could you either skip the test or add an appropriate expectation? It&apos;s not great to leave a test with missing result in the tree for such a long time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509548</commentid>
    <comment_count>23</comment_count>
      <attachid>116694</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-11-27 20:31:41 -0800</bug_when>
    <thetext>Created attachment 116694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514046</commentid>
    <comment_count>24</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-02 13:07:23 -0800</bug_when>
    <thetext>This test appears to be missing results for Lion/mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514627</commentid>
    <comment_count>25</comment_count>
    <who name="Vincent Scheib">scheib</who>
    <bug_when>2011-12-03 21:14:55 -0800</bug_when>
    <thetext>Chromium bots are failing to produce the expected results for editing/spelling/markers.html. I have added FAIL to the test_expectations.txt.

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&amp;showLargeExpectations=true&amp;tests=editing%2Fspelling%2Fmarkers.html

&quot;&quot;&quot;
Grammar Error Only
PASS internals.markerCountForNode(e.firstChild, &quot;spelling&quot;) is 0
FAIL internals.markerCountForNode(e.firstChild, &quot;grammar&quot;) should be 1. Was 0.
FAIL range.toString() should be a. Threw exception TypeError: Cannot call method &apos;toString&apos; of null
Spelling Error Only
PASS internals.markerCountForNode(e.firstChild, &quot;spelling&quot;) is 1
PASS range.toString() is &quot;zz&quot;
PASS internals.markerCountForNode(e.firstChild, &quot;grammar&quot;) is 0
Grammar and Spelling Error
PASS internals.markerCountForNode(e.firstChild, &quot;spelling&quot;) is 1
PASS range.toString() is &quot;zz&quot;
FAIL internals.markerCountForNode(e.firstChild, &quot;grammar&quot;) should be 1. Was 0.
FAIL range.toString() should be orange,zz,apple.. Threw exception TypeError: Cannot call method &apos;toString&apos; of null
PASS successfullyParsed is true

TEST COMPLETE
I have a issue.
zz.
orange,zz,apple.
&quot;&quot;&quot;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114030</attachid>
            <date>2011-11-08 03:37:07 -0800</date>
            <delta_ts>2011-11-08 04:35:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>11540</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzA5NDNiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3Jk
ZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwvZGl2PgorCis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgcGFyZW50
KSB7CisgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNl
dEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9
ICdlZGl0aW5nJzsKKyAgICBlLmlkID0gaWQ7CisKKyAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZSk7
CisgICAgcmV0dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHR5cGVUZXh0KGVsZW0sIHRleHQpIHsKKyAg
ICBlbGVtLmZvY3VzKCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgKytp
KSB7CisgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKHRleHRbaV0pOworICAgIH0KK30KKwor
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK3Zh
ciByYW5nZTsKKworZGVidWcoIkdyYW1tYXIgRXJyb3IgT25seSIpOwordmFyIGlkID0gJ2lkMScK
K3ZhciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwordHlwZVRleHQo
ZSwgJ0kgaGF2ZSBhIGlzc3VlLicpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGlu
ZyIpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShl
LmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1h
cmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxk
QmUoInJhbmdlLnRvU3RyaW5nKCkiLCAnImEiJyk7Cit9CisKK2RlYnVnKCJTcGVsbGluZyBFcnJv
ciBPbmx5Iik7Cit2YXIgaWQgPSAnaWQyJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQo
aWQsIGNvbnRhaW5lcik7Cit0eXBlVGV4dChlLCAnenouJyk7CitpZiAod2luZG93LmludGVybmFs
cykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RD
aGlsZCwgInNwZWxsaW5nIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJh
bmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdy
YW5nZS50b1N0cmluZygpJywgJyJ6eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtl
ckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMCcpOworfQorCitkZWJ1
ZygiR3JhbW1hciBhbmQgU3BlbGxpbmcgRXJyb3IiKTsKK3ZhciBpZCA9ICdpZDMnCit2YXIgZSA9
IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICdvcmFu
Z2UsenosYXBwbGUuJyk7CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiknLCAn
MScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hp
bGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0cmluZygpJywgJyJ6
eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0
Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJh
bmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxkQmUoJ3Jh
bmdlLnRvU3RyaW5nKCknLCAnIm9yYW5nZSx6eixhcHBsZS4iJyk7Cit9CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0
LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0
LWh0bWwuaHRtbAppbmRleCBiZGY0ZGFhLi44M2M3Yzk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCkBAIC0yNiw3
ICsyNiw3IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdmFyIHRleHRzID0gZGVzdGlu
YXRpb24uY2hpbGROb2RlczsKICAgICB2YXIgbWFya2VkVGV4dCA9ICIiOwogICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGV4dHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG1hcmtlZCA9IGlu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUodGV4dHNbaV0sIDApOworICAgICAgICB2YXIgbWFy
a2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwg
MCk7CiAgICAgICAgIGlmIChtYXJrZWQpCiAgICAgICAgICAgICBtYXJrZWRUZXh0ICs9IG1hcmtl
ZC50b1N0cmluZygpCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiNzI1OGQ4Li40Njlj
MTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9fWk43V2ViQ29y
ZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZTdHJpbmdFTlMw
XzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRl
UHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlMTFz
ZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0RG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50
TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQogX19a
TjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVjdHNGb3JNYXJr
ZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmUyNGNvbnRl
eHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMuLmIwZWIxZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC0zMTgsMTUgKzMx
OCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjptYXJrZXJD
b250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJldHVybiAwOwogfQogCi1WZWN0
b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6Om1hcmtlcnNGb3Io
Tm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERvY3VtZW50TWFya2VyQ29udHJv
bGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMg
bWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gcmVzdWx0OwogICAg
IE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUpOwogICAgIGlmICghbGlzdCkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlz
dC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJihsaXN0LT5hdChpKSkpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
aWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5cGUoKSkpCisgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVz
dWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
CmluZGV4IDgxMGZiYTAuLjM2YzBkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVu
ZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFpbmluZ1Bv
aW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwotICAg
IFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9kZSopOworICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9kZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJU
eXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCkpOwogICAgIFZlY3RvcjxEb2N1bWVu
dE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdlKiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsK
ICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IGNhZTZlOGUuLjQ2YjAxYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0
LDI5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlcyBtYXJrZXJUeXBlc0Zyb20oY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlKSB7Cisg
ICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJTcGVsbGluZyIpKQorICAgICAg
ICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShtYXJrZXJUeXBlLCAiR3JhbW1hciIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJr
ZXI6OkdyYW1tYXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJUZXh0
TWF0Y2giKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2g7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJSZXBsYWNlbWVudCIpKQorICAgICAg
ICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50OworICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShtYXJrZXJUeXBlLCAiQ29ycmVjdGlvbkluZGljYXRvciIpKQorICAgICAgICByZXR1
cm4gRG9jdW1lbnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRpY2F0b3I7CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG1hcmtlclR5cGUsICJSZWplY3RlZENvcnJlY3Rpb24iKSkKKyAgICAgICAgcmV0
dXJuIERvY3VtZW50TWFya2VyOjpSZWplY3RlZENvcnJlY3Rpb247CisgICAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG1hcmtlclR5cGUsICJBdXRvY29ycmVjdGVkIikpCisgICAgICAgIHJldHVybiBE
b2N1bWVudE1hcmtlcjo6QXV0b2NvcnJlY3RlZDsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
bWFya2VyVHlwZSwgIlNwZWxsQ2hlY2tpbmdFeGVtcHRpb24iKSkKKyAgICAgICAgcmV0dXJuIERv
Y3VtZW50TWFya2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uOworICAgIGlmIChlcXVhbElnbm9y
aW5nQ2FzZShtYXJrZXJUeXBlLCAiRGVsZXRlZEF1dG9jb3JyZWN0aW9uIikpCisgICAgICAgIHJl
dHVybiBEb2N1bWVudE1hcmtlcjo6RGVsZXRlZEF1dG9jb3JyZWN0aW9uOworICAgIAorICAgIHJl
dHVybiBEb2N1bWVudE1hcmtlcjo6QWxsTWFya2VycygpOworfQorCiBjb25zdCBjaGFyKiBJbnRl
cm5hbHM6OmludGVybmFsc0lkID0gImludGVybmFscyI7CiAKIFBhc3NSZWZQdHI8SW50ZXJuYWxz
PiBJbnRlcm5hbHM6OmNyZWF0ZSgpCkBAIC0yMTAsMjQgKzIzNCwyNCBAQCBQYXNzUmVmUHRyPENs
aWVudFJlY3Q+IEludGVybmFsczo6Ym91bmRpbmdCb3goRWxlbWVudCogZWxlbWVudCwgRXhjZXB0
aW9uQ29kZSYgZQogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVuZGVyZXItPmFic29s
dXRlQm91bmRpbmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCkpOwogfQogCi11bnNpZ25lZCBJ
bnRlcm5hbHM6Om1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBl
YykKK3Vuc2lnbmVkIEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUqIG5vZGUsIGNv
bnN0IFN0cmluZyYgbWFya2VyVHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFu
b2RlKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKLSAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJr
ZXJzRm9yKG5vZGUpLnNpemUoKTsKKyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2Vy
cygpLT5tYXJrZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzRnJvbShtYXJrZXJUeXBlKSkuc2l6ZSgp
OwogfQogCi1QYXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShO
b2RlKiBub2RlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRy
PFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBT
dHJpbmcmIG1hcmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsK
ICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KICAgICAKLSAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBt
YXJrZXJzID0gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUpOwor
ICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBub2RlLT5kb2N1bWVudCgpLT5t
YXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSwgbWFya2VyVHlwZXNGcm9tKG1hcmtlclR5cGUpKTsK
ICAgICBpZiAobWFya2Vycy5zaXplKCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogICAg
IHJldHVybiBSYW5nZTo6Y3JlYXRlKG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIG1hcmtlcnNbaW5k
ZXhdLT5zdGFydE9mZnNldCgpLCBub2RlLCBtYXJrZXJzW2luZGV4XS0+ZW5kT2Zmc2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNWRmYzExMi4uNzk1N2EwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03MSw4ICs3MSw4IEBAIHB1YmxpYzoKIAogICAg
IFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwg
dW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBtYXJrZXJDb3VudEZvck5v
ZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRy
PFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzZGI2
NTA4Li5mYzc4Nzc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC00NSw4
ICs0NSw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEluc3BlY3RvclJlc291
cmNlc0RhdGFTaXplTGltaXRzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25nIG1heGltdW1S
ZXNvdXJjZXNDb250ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50
U2l6ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgQ2xpZW50UmVjdCBib3VuZGlu
Z0JveChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICB1
bnNpZ25lZCBsb25nIG1hcmtlckNvdW50Rm9yTm9kZShpbiBOb2RlIG5vZGUpIHJhaXNlcyhET01F
eGNlcHRpb24pOwotICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBub2Rl
LCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
dW5zaWduZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJp
bmcgbWFya2VyVHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFJhbmdlIG1hcmtl
clJhbmdlRm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJrZXJUeXBlLCBpbiB1
bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICB2b2lk
IHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRv
dG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmlu
ZGV4IGEzMTEzOTYuLmJlYTBmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTUsNyAr
NTUsNyBAQCBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwogX1pON1dlYkNv
cmUyMFNoYWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJD
b3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pT
QzlDbGFzc0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdF
bGVtZW50RWo7Ci1fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJz
Rm9yRVBOU180Tm9kZUU7CitfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBt
YXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CiBf
Wk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElk
ZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNv
cmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9a
TjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114039</attachid>
            <date>2011-11-08 04:35:04 -0800</date>
            <delta_ts>2011-11-08 09:15:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>13471</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYzA5NDNiYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3Jk
ZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0
cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJK
YXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwvZGl2PgorCis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgcGFyZW50
KSB7CisgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNl
dEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9
ICdlZGl0aW5nJzsKKyAgICBlLmlkID0gaWQ7CisKKyAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZSk7
CisgICAgcmV0dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHR5cGVUZXh0KGVsZW0sIHRleHQpIHsKKyAg
ICBlbGVtLmZvY3VzKCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgKytp
KSB7CisgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKHRleHRbaV0pOworICAgIH0KK30KKwor
dmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK3Zh
ciByYW5nZTsKKworZGVidWcoIkdyYW1tYXIgRXJyb3IgT25seSIpOwordmFyIGlkID0gJ2lkMScK
K3ZhciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwordHlwZVRleHQo
ZSwgJ0kgaGF2ZSBhIGlzc3VlLicpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91
bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGlu
ZyIpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShl
LmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1h
cmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxk
QmUoInJhbmdlLnRvU3RyaW5nKCkiLCAnImEiJyk7Cit9CisKK2RlYnVnKCJTcGVsbGluZyBFcnJv
ciBPbmx5Iik7Cit2YXIgaWQgPSAnaWQyJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQo
aWQsIGNvbnRhaW5lcik7Cit0eXBlVGV4dChlLCAnenouJyk7CitpZiAod2luZG93LmludGVybmFs
cykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RD
aGlsZCwgInNwZWxsaW5nIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJh
bmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdy
YW5nZS50b1N0cmluZygpJywgJyJ6eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtl
ckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMCcpOworfQorCitkZWJ1
ZygiR3JhbW1hciBhbmQgU3BlbGxpbmcgRXJyb3IiKTsKK3ZhciBpZCA9ICdpZDMnCit2YXIgZSA9
IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICdvcmFu
Z2UsenosYXBwbGUuJyk7CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHNob3VsZEJlKCdp
bnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiknLCAn
MScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hp
bGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0cmluZygpJywgJyJ6
eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0
Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJh
bmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxkQmUoJ3Jh
bmdlLnRvU3RyaW5nKCknLCAnIm9yYW5nZSx6eixhcHBsZS4iJyk7Cit9CisKK3ZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0
LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0
LWh0bWwuaHRtbAppbmRleCBiZGY0ZGFhLi44M2M3Yzk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCkBAIC0yNiw3
ICsyNiw3IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdmFyIHRleHRzID0gZGVzdGlu
YXRpb24uY2hpbGROb2RlczsKICAgICB2YXIgbWFya2VkVGV4dCA9ICIiOwogICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGV4dHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG1hcmtlZCA9IGlu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUodGV4dHNbaV0sIDApOworICAgICAgICB2YXIgbWFy
a2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwg
MCk7CiAgICAgICAgIGlmIChtYXJrZWQpCiAgICAgICAgICAgICBtYXJrZWRUZXh0ICs9IG1hcmtl
ZC50b1N0cmluZygpCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiNzI1OGQ4Li40Njlj
MTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9fWk43V2ViQ29y
ZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZTdHJpbmdFTlMw
XzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJLTjNX
VEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dyaXRl
UHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlMTFz
ZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0RG9jdW1lbnRN
YXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2ViQ29yZTI0RG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50
TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQogX19a
TjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVjdHNGb3JNYXJr
ZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmUyNGNvbnRl
eHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1h
cmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMuLmIwZWIxZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBAIC0zMTgsMTUgKzMx
OCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjptYXJrZXJD
b250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJldHVybiAwOwogfQogCi1WZWN0
b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6Om1hcmtlcnNGb3Io
Tm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERvY3VtZW50TWFya2VyQ29udHJv
bGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMg
bWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gcmVzdWx0OwogICAg
IE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUpOwogICAgIGlmICghbGlzdCkK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlz
dC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJihsaXN0LT5hdChpKSkpOwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
aWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5cGUoKSkpCisgICAgICAgICAg
ICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVz
dWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5o
CmluZGV4IDgxMGZiYTAuLjM2YzBkNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWduZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVu
ZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVudE1hcmtlciogbWFya2VyQ29udGFpbmluZ1Bv
aW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwotICAg
IFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9kZSopOworICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9kZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJU
eXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCkpOwogICAgIFZlY3RvcjxEb2N1bWVu
dE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdlKiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5
cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsK
ICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVyZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRN
YXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IGNhZTZlOGUuLjJkYjM1ZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1
ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5j
bHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0
LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIERvY3VtZW50TWFya2VyOjpN
YXJrZXJUeXBlcyBtYXJrZXJUeXBlc0Zyb20oY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlKQorewor
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiU3BlbGxpbmciKSkKKyAgICAg
ICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UobWFya2VyVHlwZSwgIkdyYW1tYXIiKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFy
a2VyOjpHcmFtbWFyOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiVGV4
dE1hdGNoIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoOworICAg
IGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiUmVwbGFjZW1lbnQiKSkKKyAgICAg
ICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpSZXBsYWNlbWVudDsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UobWFya2VyVHlwZSwgIkNvcnJlY3Rpb25JbmRpY2F0b3IiKSkKKyAgICAgICAgcmV0
dXJuIERvY3VtZW50TWFya2VyOjpDb3JyZWN0aW9uSW5kaWNhdG9yOworICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiUmVqZWN0ZWRDb3JyZWN0aW9uIikpCisgICAgICAgIHJl
dHVybiBEb2N1bWVudE1hcmtlcjo6UmVqZWN0ZWRDb3JyZWN0aW9uOworICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiQXV0b2NvcnJlY3RlZCIpKQorICAgICAgICByZXR1cm4g
RG9jdW1lbnRNYXJrZXI6OkF1dG9jb3JyZWN0ZWQ7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG1hcmtlclR5cGUsICJTcGVsbENoZWNraW5nRXhlbXB0aW9uIikpCisgICAgICAgIHJldHVybiBE
b2N1bWVudE1hcmtlcjo6U3BlbGxDaGVja2luZ0V4ZW1wdGlvbjsKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UobWFya2VyVHlwZSwgIkRlbGV0ZWRBdXRvY29ycmVjdGlvbiIpKQorICAgICAgICBy
ZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkRlbGV0ZWRBdXRvY29ycmVjdGlvbjsKKyAgICAKKyAgICBy
ZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKTsKK30KKwogY29uc3QgY2hhciogSW50
ZXJuYWxzOjppbnRlcm5hbHNJZCA9ICJpbnRlcm5hbHMiOwogCiBQYXNzUmVmUHRyPEludGVybmFs
cz4gSW50ZXJuYWxzOjpjcmVhdGUoKQpAQCAtMjEwLDI0ICsyMzUsMjQgQEAgUGFzc1JlZlB0cjxD
bGllbnRSZWN0PiBJbnRlcm5hbHM6OmJvdW5kaW5nQm94KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGUKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKHJlbmRlcmVyLT5hYnNv
bHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3JtcygpKTsKIH0KIAotdW5zaWduZWQg
SW50ZXJuYWxzOjptYXJrZXJDb3VudEZvck5vZGUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit1bnNpZ25lZCBJbnRlcm5hbHM6Om1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiBub2RlLCBj
b25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
bm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQogCi0gICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFy
a2Vyc0Zvcihub2RlKS5zaXplKCk7CisgICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50KCktPm1hcmtl
cnMoKS0+bWFya2Vyc0Zvcihub2RlLCBtYXJrZXJUeXBlc0Zyb20obWFya2VyVHlwZSkpLnNpemUo
KTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjptYXJrZXJSYW5nZUZvck5vZGUo
Tm9kZSogbm9kZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0
cjxSYW5nZT4gSW50ZXJuYWxzOjptYXJrZXJSYW5nZUZvck5vZGUoTm9kZSogbm9kZSwgY29uc3Qg
U3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgaWYgKCFub2RlKSB7CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCi0gICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4g
bWFya2VycyA9IG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlKTsK
KyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0gbm9kZS0+ZG9jdW1lbnQoKS0+
bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzRnJvbShtYXJrZXJUeXBlKSk7
CiAgICAgaWYgKG1hcmtlcnMuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKICAg
ICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXJzW2lu
ZGV4XS0+c3RhcnRPZmZzZXQoKSwgbm9kZSwgbWFya2Vyc1tpbmRleF0tPmVuZE9mZnNldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDVkZmMxMTIuLjc5NTdhMGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzEsOCArNzEsOCBAQCBwdWJsaWM6CiAKICAg
ICBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IGJvdW5kaW5nQm94KEVsZW1lbnQqLCBFeGNlcHRpb25D
b2RlJik7CiAKLSAgICB1bnNpZ25lZCBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSosIEV4Y2VwdGlv
bkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSos
IHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CisgICAgdW5zaWduZWQgbWFya2VyQ291bnRGb3JO
b2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0
cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25l
ZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShE
b2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5h
YmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBF
eGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggM2Ri
NjUwOC4uZmM3ODc3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDUs
OCArNDUsOCBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNv
dXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBtYXhpbXVt
UmVzb3VyY2VzQ29udGVudFNpemUsIGluIGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVu
dFNpemUpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIENsaWVudFJlY3QgYm91bmRp
bmdCb3goaW4gRWxlbWVudCBlbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
dW5zaWduZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKLSAgICAgICAgUmFuZ2UgbWFya2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9k
ZSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAg
IHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3Ry
aW5nIG1hcmtlclR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBSYW5nZSBtYXJr
ZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4g
dW5zaWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9p
ZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVh
biBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVD
b21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5k
ZXggMTc2OTMwNS4uMWJkNDMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTYyLDcgKzE2
Miw2IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJlbG9hZGVkQENhY2hlZFJlc291cmNlTG9hZGVy
QFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2pzU3RyaW5nU2xvd0Nh
c2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAQUFWPyRIYXNoTWFw
QFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQFVTdHJpbmdI
YXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdURkBAQDJAVT8kSGFzaFRyYWl0c0BW
PyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZAQFBBVlN0cmluZ0ltcGxANkBAWgog
ICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50
QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21hcmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVA
QCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBA
UUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2Vi
Q29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRl
cmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBB
VkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
Q0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCBl
YzMxZDhkLi45NTUzYWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNG
TGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0x
NTMsNyArMTUzLDYgQEAgRVhQT1JUUwogICAgICAgICA/aXNQcmVsb2FkZWRAQ2FjaGVkUmVzb3Vy
Y2VMb2FkZXJAV2ViQ29yZUBAUUJFX05BQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/anNTdHJp
bmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BBQVY/
JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBXVEZAQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BA
VVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJhaXRzQFBBVlN0cmluZ0ltcGxAV1RGQEBAMkBVPyRIYXNo
VHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAQDJAQFdURkBAUEFWU3RyaW5nSW1w
bEA2QEBaCiAgICAgICAgID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRASFRNTFRleHRGb3JtQ29udHJv
bEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgotICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1h
cmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJA
V2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBAWgogICAgICAgICA/cGFnZUBEb2N1bWVudEBX
ZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1l
Vmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3Ro
QFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBA
QFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9z
eW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYTMx
MTM5Ni4uYmVhMGYwMiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC01NSw3ICs1NSw3IEBA
IF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEQxRXY7CiBfWk43V2ViQ29yZTIwU2hh
ZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFOwogX1pON1dlYkNvcmUyMWdl
dENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04zSlNDOUNsYXNz
SW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfN0VsZW1lbnRF
ajsKLV9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5T
XzROb2RlRTsKK19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNG
b3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRTsKIF9aTjdXZWJD
b3JlNkpTTm9kZTEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmll
ckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTZKU05v
ZGUyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0b3JFOwogX1pON1dlYkNv
cmU2SlNOb2RlNnNfaW5mb0U7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114090</attachid>
            <date>2011-11-08 09:15:17 -0800</date>
            <delta_ts>2011-11-08 17:37:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111109021515.patch</filename>
            <type>text/plain</type>
            <size>28565</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1MDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjViOTZkZjNkYjFkNzg5
YjIxODliZGIxZmE5MDY0NGIwNDVjZDNkLi40OTljMTMzMzkzMTZlMGQ5MGU0NzkwNTUyZTI1Yjkz
MDc4ZjBkZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA3ICBEbWl0cnkgTG9tb3YgIDxk
c2xvbW92QGdvb2dsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxNTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTAwYThiYTM1NjEyOWY3MDE3MDJmZjA4
MDdjOGZjY2I0NThiMzE4OS4uZjUxZDdmYjA4ZWEyZGJiMTVjYWE5N2M4YzkwNWZkODY5ZGExYjRk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTExLTA4ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWluZyBhIG1h
cmtlciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzE3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi9XZWJLaXQyLmRlZjogRXhwb3NlZCBuZWNlc3NhcnkgcmVmZXJlbmNlcy4KKyAgICAg
ICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6IGRpdHRvLgorCiAyMDExLTExLTA3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzE0OTAKQEAgLTIzMSw3ICsyNDEsNyBAQAogCiAgICAgICAgIFtR
dF0gTWFrZSBpdCBwb3NzaWJsZSB0byBpbmNsdWRlIHFkZXNrdG9wd2Vidmlldy5oIGZyb20gYXBw
cwogCi0gICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Riw7guCisgICAgICAgIFJldmll
d2VkIGJ5IFRvciBBcm5lIFZlc3Ri776D7724LgogCiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9x
dC9xZGVza3RvcHdlYnZpZXcuaDogRG9uJ3QgaW5jbHVkZSBDIEFQSSBoZWFkZXJzLCBmb3J3YXJk
CiAgICAgICAgIGRlY2xhcmUgdGhlIHN0cnVjdHMgbWFudWFsbHkuCkBAIC0yNDEsNyArMjUxLDcg
QEAKICAgICAgICAgW1F0XSBGaXggZmFpbGluZyBpbnNwZWN0b3IgdGVzdHMgYWZ0ZXIgYnVpbGQg
c3lzdGVtIGNoYW5nZXMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNjc3CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgRW5zdXJl
IHN5bWJvbHMgZnJvbSB0aGUgcXQgcmVzb3VyY2Ugc3lzdGVtIGFyZSByZWZlcmVuY2VkCiAgICAg
ICAgIGZyb20gb3V0c2lkZSB0aGUgc3RhdGljIHdlYmNvcmUgbGlicmFyeS4gT25lIHdheSBvZiBk
b2luZyB0aGF0IGlzCkBAIC0yNzUsNyArMjg1LDcgQEAKICAgICAgICAgVXNlIGNvbnZlcnRGcm9t
Um9vdFZpZXcgaW5zdGVhZCBvZiBzdWJ0cmFjdGluZyBtX2ZyYW1lUmVjdEluV2luZG93Q29vcmRp
bmF0ZXMubG9jYXRpb24oKSBmcm9tIHRoZQogICAgICAgICBldmVudCBwb3NpdGlvbiAod2hpY2gg
aXMgaW4gcm9vdCB2aWV3IGNvb3JkaW5hdGVzKS4KIAotMjAxMS0xMS0wNCAgVG9yIEFybmUgVmVz
dGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisyMDExLTExLTA0ICBUb3IgQXJuZSBW
ZXN0Yu++g++9uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBS
ZWZhY3RvciBhbmQgY2xlYW4gdXAgdGhlIHFtYWtlIGJ1aWxkIHN5c3RlbQogCkBAIC0xMTI4LDcg
KzExMzgsNyBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCiAKLSAgICAgICAg
VGhpcyBhdm9pZHMgY2FsbGluZyBpbnRvIHRoZSBwbHVnLWluwqB3aGVuIG9ubHkgdGhlIHBsdWct
aW4gcG9zaXRpb24gcmVsYXRpdmUgdG8gdGhlIHdpbmRvdyBjaGFuZ2VzLgorICAgICAgICBUaGlz
IGF2b2lkcyBjYWxsaW5nIGludG8gdGhlIHBsdWctaW7vvoKgd2hlbiBvbmx5IHRoZSBwbHVnLWlu
IHBvc2l0aW9uIHJlbGF0aXZlIHRvIHRoZSB3aW5kb3cgY2hhbmdlcy4KICAgICAKICAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uY3BwOgogICAgICAg
ICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6Z2VvbWV0cnlEaWRDaGFuZ2UpOgpAQCAtMjI3Nyw3
ICsyMjg3LDcgQEAKICAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CiAg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKIAotMjAxMS0xMC0y
OCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorMjAxMS0xMC0yOCAgQ3Nh
YmEgT3N6dHJvZ29u776D772hYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIEFk
YXB0IHRvIFFTRyogdG8gUVF1aWNrKiBBUEkgY2hhbmdlIGluIHF0ZGVjbGFyYXRpdmUKICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDk0CkBAIC0zMDgy
LDcgKzMwOTIsNyBAQAogICAgICAgICBQYXRjaCBieSBKb2NlbHluIFR1cmNvdHRlIDxqb2NlbHlu
LnR1cmNvdHRlQG5va2lhLmNvbT4sCiAgICAgICAgICAgICAgICAgIFplbm8gQWxiaXNzZXIgPHpl
bm8uYWxiaXNzZXJAbm9raWEuY29tPgogCi0gICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZl
c3Riw7guCisgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Ri776D7724LgogCiAgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9xdC9xZGVza3RvcHdlYnZpZXcuY3BwOgogICAgICAgICAoUURl
c2t0b3BXZWJWaWV3Ojptb3VzZVByZXNzRXZlbnQpOgpAQCAtNDAwNCw3ICs0MDE0LDcgQEAKICAg
ICAgICAgRGlzYWJsZSBwYWludGluZyB3aGlsZSBzZXR0aW5nIHVwIHRoZSB3ZWIgcGFnZSwgb3Ro
ZXJ3aXNlIHdlJ2xsIGdldCBwYWludCByZXF1ZXN0cyB3aGVuIHdlIHNldCB0aGUKICAgICAgICAg
YWN0aXZlIHN0YXRlIG9mIHRoZSB3ZWIgcGFnZS4KIAotMjAxMS0xMC0yMSAgQ3NhYmEgT3N6dHJv
Z29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorMjAxMS0xMC0yMSAgQ3NhYmEgT3N6dHJvZ29u776D
772hYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dLMl0gQnVpbGRmaXggZm9y
IG5ld2VyIFF0NS4gUmVtb3ZlIGR1cGxpY2F0ZWQgZGVmaW5lcy4KIApAQCAtNDAzOSw3ICs0MDQ5
LDcgQEAKIAogICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgog
Ci0yMDExLTEwLTIxICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisyMDEx
LTEwLTIxICBDc2FiYSBPc3p0cm9nb27vvoPvvaFjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFtRdF1bV0syXSBVbnJldmlld2VkIGJ1aWxkZml4IGZvciBuZXdlciBRdDUuIFJlbW92ZSBk
dXBsaWNhdGVkIGRlZmluZXMuCiAKQEAgLTQ3MTksNyArNDcyOSw3IEBACiAKICAgICAgICAgKiBD
b25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzoKIAotMjAxMS0xMC0xOCAgVG9y
IEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisyMDExLTEwLTE4ICBU
b3IgQXJuZSBWZXN0Yu++g++9uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBNZXJnZSBRTUwgcGx1Z2luIGZvciBXZWJLaXQyIHdpdGggdGhlIG9yaWdpbmFsIFdl
YktpdDEgcGx1Z2luCiAKQEAgLTY1MjMsNyArNjUzMyw3IEBACiAgICAgICAgICogV2ViUHJvY2Vz
cy9xdC9XZWJQcm9jZXNzTWFpblF0LmNwcDoKICAgICAgICAgKFdlYktpdDo6RW52SHR0cFByb3h5
RmFjdG9yeTo6cXVlcnlQcm94eSk6CiAKLTIwMTEtMTAtMTEgIFRvciBBcm5lIFZlc3Riw7ggIDx0
b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgorMjAxMS0xMC0xMSAgVG9yIEFybmUgVmVzdGLvvoPv
vbggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gUmVtb3ZlIGFs
bCByZWZlcmVuY2VzIHRvIFFURElSX2J1aWxkIGFuZCBzdGFuZGFsb25lX3BhY2thZ2UKIApAQCAt
NzY3Miw3ICs3NjgyLDcgQEAKICAgICAgICAgW1F0XSBBZGQgbWlzc2luZyBpbmNsdWRlIGZvciBR
TWltZURhdGEKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTY5MTc4CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAg
UmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgVGhpcyB3YXMgaW1w
bGljaXRseSBpbmNsdWRlZCBieSBvdGhlciBoZWFkZXJzLCBidXQgZHVlIHRvIGNoYW5nZXMgaW4K
ICAgICAgICAgUXQ1IHdlIG5lZWQgdG8gaW5jbHVkZSBleHBsaWNpdGx5LgpAQCAtNzY4MCw3ICs3
NjkwLDcgQEAKICAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwOgogICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKIAotMjAxMS0wOS0zMCAgVG9y
IEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisyMDExLTA5LTMwICBU
b3IgQXJuZSBWZXN0Yu++g++9uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAg
ICAgW1F0XSBQcmV2ZW50IHFEZWJ1ZygpIG91dHB1dCBmcm9tIERSVCBhbmQgV1RSIHVubGVzcyAt
LXZlcmJvc2UKIApAQCAtNzgyMiw3ICs3ODMyLDcgQEAKICAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwpOiBSZXR1cm4gdGhlIGxvY2F0aW9uIHdoZXJl
IGluc3BlY3RvciByZXNvdXJjZXMgYXJlIHByZXNlbnQuCiAgICAgICAgIFdlYlByb2Nlc3MgaXMg
Z2l2ZW4gcmVhZCBhY2Nlc3MgdG8gdGhpcyBmb2xkZXIgb25seSBmb3IgbG9hZGluZyBmaWxlIFVS
THMgYnkgc2FuZGJveGVkIGV4dGVuc2lvbi4KIAotMjAxMS0wOS0yMyAgVG9yIEFybmUgVmVzdGLD
uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CisyMDExLTA5LTIzICBUb3IgQXJuZSBWZXN0
Yu++g++9uCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXgg
YnVpbGQgYWdhaW5zdCBRdDUgYWZ0ZXIgcmVmYWN0b3Igb2Ygd2lkZ2V0cyBvdXQgb2YgUXRHVWkK
IApAQCAtODE0Miw3ICs4MTUyLDcgQEAKICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay93ZWJr
aXQyLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay93ZWJr
aXQvd2Via2l0LmguCiAgICAgICAgICogd2Via2l0Mmd0ay5wYy5pbjogVXNlIHdlYmtpdGd0ay08
YXBpLXZlcnNpb24+IGFzIGluY2x1ZGUgZGlyLgogCi0yMDExLTA5LTI3ICBUb3IgQXJuZSBWZXN0
YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KKzIwMTEtMDktMjcgIFRvciBBcm5lIFZl
c3Ri776D7724ICA8dG9yLmFybmUudmVzdGJvQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIEZp
eCBidWlsZCBvZiBXZWJLaXQyIHVuaXQtdGVzdHMgYWZ0ZXIgcjk2MTA4CiAKQEAgLTgxNTAsNyAr
ODE2MCw3IEBACiAKICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3Rlc3RzLnByaToK
IAotMjAxMS0wOS0yMyAgVG9yIEFybmUgVmVzdGLDuCAgPHRvci5hcm5lLnZlc3Rib0Bub2tpYS5j
b20+CisyMDExLTA5LTIzICBUb3IgQXJuZSBWZXN0Yu++g++9uCAgPHRvci5hcm5lLnZlc3Rib0Bu
b2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBGaXggYnVpbGQgYWdhaW5zdCBRdDUgYWZ0ZXIgcmVm
YWN0b3Igb2Ygd2lkZ2V0cyBvdXQgb2YgUXRHVWkKIApAQCAtODMyMiw3ICs4MzMyLDcgQEAKICAg
ICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CiAgICAgICAgICogd2luL1dlYktpdDJHZW5lcmF0
ZWQubWFrZToKIAotMjAxMS0wOS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQu
b3JnPgorMjAxMS0wOS0yNiAgQ3NhYmEgT3N6dHJvZ29u776D772hYyAgPG9zc3lAd2Via2l0Lm9y
Zz4KIAogICAgICAgICBbUXRdW1dLMl1VbnJldmlld2VkIHNwZWN1bGF0aXZlIGJ1aWxkZml4IGFm
dGVyIHI5NTk2OC4KIApAQCAtODcyMSw3ICs4NzMxLDcgQEAKICAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL3F0L3F3ZWJlcnJvci5jcHA6CiAgICAgICAgIChRV2ViRXJyb3I6OnR5cGUpOgogCi0yMDEx
LTA5LTIyICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CisyMDExLTA5LTIy
ICBDc2FiYSBPc3p0cm9nb27vvoPvvaFjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJF
R1JFU1NJT04ocjk1Njc5KTogSXQgYnJva2UgZXZlcnl0aGluZy4KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4NjExCkBAIC04OTk0LDcgKzkwMDQsNyBA
QAogICAgICAgICBbUXRdIFJlbW92ZSBRdCBzcGVjaWZpYyBjb2RlIGZyb20gY3NzL1NlbGVjdG9y
Q2hlY2tlci5jcHAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY3NzAyCiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgorICAg
ICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27vvoPvvaFjLgogCiAgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOiBNb2RpZnkg
dG8gbWF0Y2ggbmV3IHByb3RvdHlwZS4KICAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjppc0xpbmtWaXNpdGVkKToKQEAgLTkxMjgsNyArOTEzOCw3IEBACiAgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC90ZXN0cy9xbWx0ZXN0cy9EZXNrdG9wV2ViVmlldy90c3RfbG9hZEZh
aWwucW1sOiBBZGRlZC4KICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3Rlc3RzL3FtbHRlc3Rz
L1RvdWNoV2ViVmlldy90c3RfbG9hZEZhaWwucW1sOiBBZGRlZC4KIAotMjAxMS0wOS0yMCAgQ3Nh
YmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgorMjAxMS0wOS0yMCAgQ3NhYmEgT3N6
dHJvZ29u776D772hYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW01hY10gQnVp
bGRmaXggYWZ0ZXIgcjk1NTEzLgogCkBAIC05MjA4LDcgKzkyMTgsNyBAQAogICAgICAgICBbUXRd
W1dLMl0gTWFrZSBsb2FkaW5nIGVycm9ycyBBUEkgZWFzaWVyIHRvIHVzZS4KICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4MzU3CiAKLSAgICAgICAgUmV2
aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUg
VmVzdGLvvoPvvbguCiAKICAgICAgICAgTWFrZSB0aGUgQVBJIHRvIGdldCBsb2FkaW5nIGVycm9y
cyBlYXNpZXIgdG8gdXNlLiA5NTE5NyBpbnRyb2R1Y2VkCiAgICAgICAgIGEgUUpTVmFsdWUgQVBJ
IHRoYXQgaXMgYSBiaXQgb3BhcXVlIGZvciB0aGUgY2xpZW50IGNvZGUuIFJhdGhlciB0aGFuCkBA
IC05MzgxLDcgKzkzOTEsNyBAQAogCiAyMDExLTA5LTE2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8
YXBAYXBwbGUuY29tPgogCi0gICAgICAgIEdpdmUgbG9jYWwgYnVpbGRzIG9mIFdlYlByb2Nlc3Mg
ZGlmZmVyZW50IGljb24gdG8gZGlzdGluZ3Vpc2ggdGhlbSBmcm9tIGJ1aWx0LWluIFNhZmFyaeKA
mXMgV2ViUHJvY2VzcworICAgICAgICBHaXZlIGxvY2FsIGJ1aWxkcyBvZiBXZWJQcm9jZXNzIGRp
ZmZlcmVudCBpY29uIHRvIGRpc3Rpbmd1aXNoIHRoZW0gZnJvbSBidWlsdC1pbiBTYWZhcmnnqrbl
hrEgV2ViUHJvY2VzcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjgyNjgKIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KQEAgLTEwMDQx
LDcgKzEwMDUxLDcgQEAKICAgICAgICAgVGlsZWREcmF3aW5nQXJlYTogRml4IGlzc3VlcyB3aGVy
ZSB0aGUgdGlsZXMgb2YgdGhlIHByZXZpb3VzIHNjYWxlIHdvdWxkIGJlIHJlbW92ZWQgdG9vIGVh
cmx5LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njcz
OTAKIAotICAgICAgICBSZXZpZXdlZCBieSBUb3IgQXJuZSBWZXN0YsO4LgorICAgICAgICBSZXZp
ZXdlZCBieSBUb3IgQXJuZSBWZXN0Yu++g++9uC4KIAogICAgICAgICBUaGUgdHdvIGlzc3VlcyBh
ZGRyZXNzc2VkIGFyZToKICAgICAgICAgLSBUaGUgcHJldmlvdXMgaW5zdGFuY2Ugb2YgdGhlIHRp
bGUgYmFja2luZyBzdG9yZSB3b3VsZCBiZSBkZXN0cm95ZWQgaW4gY3JlYXRlVGlsZSB3aGljaApA
QCAtMTAwNTgsNyArMTAwNjgsNyBAQAogICAgICAgICBbUXRdW1dLMl0gVGhlIHNjZW5lIGdyYXBo
IGlzIHJlbmRlcmVkIGNvbnRpbnVvdXNseSBldmVuIHdoZW4gdGhlIHBhZ2UgaXMgaWRsZS4KICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3MTk1CiAKLSAg
ICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAgUmV2aWV3ZWQgYnkg
VG9yIEFybmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgU2luY2UgdGlsZWRCYWNraW5nU3RvcmVQ
YWludEVuZCBpcyBjYWxsZWQgZXZlbiB3aGVuIG5vIHRpbGUgaXMgZGlydHksIHRoZSBUaWxlZERy
YXdpbmdBcmVhCiAgICAgICAgIGFuZCBpdHMgcHJveHkgYXJlIGxvb3Bpbmcgb3ZlciBEaWRSZW5k
ZXJGcmFtZSBhbmQgUmVuZGVyTmV4dEZyYW1lIG1lc3NhZ2VzLgpAQCAtMTAxMjYsNyArMTAxMzYs
NyBAQAogICAgICAgICBbUXRdW1dLMl0gUmVuYW1lIFNHQWdlbnQgdG8gU0dVcGRhdGVRdWV1ZSB0
byBzaGFycGVuIGl0J3MgcmVzcG9uc2FiaWxpdHkuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzEyMgogCi0gICAgICAgIFJldmlld2VkIGJ5IFRvciBB
cm5lIFZlc3Riw7guCisgICAgICAgIFJldmlld2VkIGJ5IFRvciBBcm5lIFZlc3Ri776D7724Lgog
CiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9xdC9xdG91Y2h3ZWJwYWdlLmNwcDoKICAgICAgICAg
KFFUb3VjaFdlYlBhZ2U6OnVwZGF0ZVBhaW50Tm9kZSk6CkBAIC0xMDMwNCw3ICsxMDMxNCw3IEBA
CiAKICAgICAgICAgW1F0XVtXSzJdIEZpeCB0aGUgYnVpbGQKIAotICAgICAgICBSdWJiZXItc3Rh
bXBlZCBieSBDc2FiYSBPc3p0cm9nb27DoWMuCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENz
YWJhIE9zenRyb2dvbu++g++9oWMuCiAKICAgICAgICAgKiBEZXJpdmVkU291cmNlcy5wcm86IEFk
ZCBtaXNzaW5nIFBsdWdpblByb2Nlc3NDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGFmdGVyIHI5NDQ1
Ni4KIApAQCAtMTA0OTQsNyArMTA1MDQsNyBAQAogICAgICAgICBbUXRdW1dLMl0gQ2Fubm90IGdh
dGhlcmluZyBnbHlwaCBwYWdlIHN0YXRpc3RpY3MKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTY3NDc1CiAKLSAgICAgICAgUnViYmVyIHN0YW1wZWQgYnkg
Q3NhYmEgT3N6dHJvZ29uw6FjLgorICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBDc2FiYSBPc3p0
cm9nb27vvoPvvaFjLgogCiAgICAgICAgIEZpeCBRdCBXSzIgYnVpbGQgd2l0aG91dCBoYXZpbmcg
UVJBV0ZPTlQuCiAKQEAgLTExNDExLDcgKzExNDIxLDcgQEAKICAgICAgICAgW1F0XVtXSzJdIERy
aXZlIHRpbGluZyBmcm9tIHRoZSBXZWJQcm9jZXNzIGFuZCByZXVzZSBUaWxlZEJhY2tpbmdTdG9y
ZS4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2Nzcx
CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgVG9yIEFybmUgVmVzdGLDuC4KKyAgICAgICAgUmV2aWV3
ZWQgYnkgVG9yIEFybmUgVmVzdGLvvoPvvbguCiAKICAgICAgICAgV2UgbmVlZCB0aGUgdGlsaW5n
IGxvZ2ljIHRvIGJlIG1vdmVkIHRvIHRoZSB3ZWIgcHJvY2VzcyB0byBhbGxvdyBpbnZhbGlkYXRl
ZCB0aWxlIHJlY3RzIHRvIGJlCiAgICAgICAgIHJlbmRlcmVkIHdpdGggdGhlIHNhbWUgbGF5b3V0
LiBUaGlzIGFsc28gYWxsb3dzIHRoZSB3ZWIgcHJvY2VzcyB0byByZW5kZXIgdGlsZXMgaW50bwpA
QCAtMTI2MzcsNyArMTI2NDcsNyBAQAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CiAKICAgICAgICAgV2hlbiBsYXllciBmbHVzaCBzY2hlZHVsaW5nIGlzIHJlLWVuYWJsZWQsIHNj
aGVkdWxlIGEgbGF5ZXIgZmx1c2gsIGp1c3QgaW4gY2FzZSBvbmUgd2FzIHJlcXVlc3RlZCB3aGls
ZQotICAgICAgICBzY2hlZHVsaW5nIHdhcyBkaXNhYmxlZC4gSXQgZG9lc27igJl0IHNlZW0gd29y
dGh3aGlsZSB0byB0cmFjayB3aGV0aGVyIHRoYXQgaW4gZmFjdCBoYXBwZW5lZCwgc28gZG8gc28K
KyAgICAgICAgc2NoZWR1bGluZyB3YXMgZGlzYWJsZWQuIEl0IGRvZXNu56q25YayIHNlZW0gd29y
dGh3aGlsZSB0byB0cmFjayB3aGV0aGVyIHRoYXQgaW4gZmFjdCBoYXBwZW5lZCwgc28gZG8gc28K
ICAgICAgICAgdW5jb25kaXRpb25hbGx5LgogCiAgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L2NhL21hYy9MYXllclRyZWVIb3N0Q0FNYWMubW06CkBAIC0xMzY0NCw3ICsxMzY1NCw3IEBACiAg
ICAgICAgIFtRdF0gW1dLMl0gRGlzYWJsZSB0aGUgYnVpbGQgd2l0aCBRdCB2ZXJzaW9ucyBvbGRl
ciB0aGFuIDUuMCAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY1MTg5CiAKLSAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgorICAg
ICAgICBSZXZpZXdlZCBieSBDc2FiYSBPc3p0cm9nb27vvoPvvaFjLgogCiAgICAgICAgICogUGxh
dGZvcm0vcXQvTW9kdWxlUXQuY3BwOgogICAgICAgICAoV2ViS2l0OjpNb2R1bGU6OnBsYXRmb3Jt
RnVuY3Rpb25Qb2ludGVyKTogRml4IHRoZSBidWlsZCBmb3IgUXQ1LgpAQCAtMTM2ODgsNyArMTM2
OTgsNyBAQAogCiAyMDExLTA3LTIyICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+
CiAKLSAgICAgICAgW1dlYktpdDJdIENoYW5naW5nIHRoZSBjb29raWUgYWNjZXB0IHBvbGljeSBp
biBQcml2YXRlIEJyb3dzaW5nIGRvZXNu4oCZdCB3b3JrLgorICAgICAgICBbV2ViS2l0Ml0gQ2hh
bmdpbmcgdGhlIGNvb2tpZSBhY2NlcHQgcG9saWN5IGluIFByaXZhdGUgQnJvd3NpbmcgZG9lc27n
qrblhrIgd29yay4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTY0OTk3CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhIENoYW4uCkBAIC0xNDEzOCw3ICsx
NDE0OCw3IEBACiAKIDIwMTEtMDctMTUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4K
IAotICAgICAgICBSRUdSRVNTSU9OOiBNb3VzZSBjdXJzb3IgZG9lc27igJl0IGhpZGUgd2hlbiBm
dWxsIHNjcmVlbiB2aWRlbyBIVUQgaGlkZXMKKyAgICAgICAgUkVHUkVTU0lPTjogTW91c2UgY3Vy
c29yIGRvZXNu56q25YayIGhpZGUgd2hlbiBmdWxsIHNjcmVlbiB2aWRlbyBIVUQgaGlkZXMKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NjE1CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgpAQCAtMTcxNTgsNyArMTcxNjgsNyBA
QAogICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvV2ViUGFnZVByb3h5RWZsLmNwcDoKICAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudCk6CiAKLTIwMTEtMDYtMTUg
IENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KKzIwMTEtMDYtMTUgIENzYWJh
IE9zenRyb2dvbu++g++9oWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJd
IFVucmV2aWV3ZWQgcm9sbGluZyBvdXQgcjg4Nzk5LCBiZWNhdXNlIGl0IG1hZGUgd2ViIHByb2Nl
c3MgY3Jhc2guCiAKQEAgLTE4NjI3LDcgKzE4NjM3LDcgQEAKIAogICAgICAgICA8aHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYyMTY1PgogICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTU1NTgzNT4KLSAgICAgICAgV2ViS2l0MiBmaW5kLW9uLXBhZ2UgY2FsbGJhY2sgZG9l
c27igJl0IGhhbmRsZSBrV0tNb3JlVGhhbk1heGltdW1NYXRjaENvdW50IG9uIFBERiBwYWdlcwor
ICAgICAgICBXZWJLaXQyIGZpbmQtb24tcGFnZSBjYWxsYmFjayBkb2VzbueqtuWGsiBoYW5kbGUg
a1dLTW9yZVRoYW5NYXhpbXVtTWF0Y2hDb3VudCBvbiBQREYgcGFnZXMKIAogICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1BERlZpZXdDb250cm9sbGVyLm1tOgogICAgICAgICAoV2ViS2l0OjpQ
REZWaWV3Q29udHJvbGxlcjo6ZmluZFN0cmluZyk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IGI3
MjU4ZDhhMWYyMjUxMjg3MWE1MzExYjI4MWFiM2U2NDZhNDJjZjguLjQ2OWMxNGI0YWQzNGE2ODg0
OTAxNGQxNDYzYjBhMjQyN2RkYmM4MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC02MzYsNyAr
NjM2LDcgQEAgX19aTjdXZWJDb3JlMjNnZXRIb3N0bmFtZXNXaXRoQ29va2llc0VSTjNXVEY3SGFz
aFNldElOUzBfNlN0cmluZ0VOUzBfMTBTdHJpbmdIYXMKIF9fWk43V2ViQ29yZTIzb3ZlcnJpZGVE
ZWZhdWx0TGFuZ3VhZ2VFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmUyNEJpbmFyeVByb3Bl
cnR5TGlzdFdyaXRlcjE3d3JpdGVQcm9wZXJ0eUxpc3RFdgogX19aTjdXZWJDb3JlMjRDYWNoZWRS
ZXNvdXJjZUhhbmRsZUJhc2UxMXNldFJlc291cmNlRVBOU18xNENhY2hlZFJlc291cmNlRQotX19a
TjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5TXzROb2Rl
RQorX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5T
XzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQogX19aTjdXZWJDb3JlMjRE
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIxM3JlbW92ZU1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtl
cjExTWFya2VyVHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjIz
cmVuZGVyZWRSZWN0c0Zvck1hcmtlcnNFTlNfMTREb2N1bWVudE1hcmtlcjEwTWFya2VyVHlwZUUK
IF9fWk43V2ViQ29yZTI0Y29udGV4dE1lbnVJdGVtVGFnSXRhbGljRXYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAKaW5kZXggMmZkMmI4MzFlYzhi
MGNhM2VmOGZjM2JhODYxODg1ZTRhYzcyMTk2ZS4uYjBlYjFlMTYyZDA1YTM5NDMyYTMxZDAzZDRi
M2EwZjM3MTgxMTg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5jcHAKQEAgLTMxOCwxNSArMzE4LDE3IEBAIERvY3VtZW50TWFya2VyKiBEb2N1
bWVudE1hcmtlckNvbnRyb2xsZXI6Om1hcmtlckNvbnRhaW5pbmdQb2ludChjb25zdCBMYXlvdXRQ
b2luCiAgICAgcmV0dXJuIDA7CiB9CiAKLVZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERvY3VtZW50
TWFya2VyQ29udHJvbGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlKQorVmVjdG9yPERvY3VtZW50
TWFya2VyKj4gRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyOjptYXJrZXJzRm9yKE5vZGUqIG5vZGUs
IERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBtYXJrZXJUeXBlcykKIHsKICAgICBWZWN0b3I8
RG9jdW1lbnRNYXJrZXIqPiByZXN1bHQ7CiAgICAgTWFya2VyTGlzdCogbGlzdCA9IG1fbWFya2Vy
cy5nZXQobm9kZSk7CiAgICAgaWYgKCFsaXN0KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCi0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBsaXN0LT5zaXplKCk7ICsraSkKLSAgICAgICAgcmVz
dWx0LmFwcGVuZCgmKGxpc3QtPmF0KGkpKSk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBs
aXN0LT5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobWFya2VyVHlwZXMuY29udGFpbnMobGlz
dC0+YXQoaSkudHlwZSgpKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoJihsaXN0LT5hdChp
KSkpOworICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKaW5kZXggODEwZmJhMDdmMWU3NWU0MGM4OWI4
Y2ZmMzlmYWFhMDBhYjI5MTg4OS4uMzZjMGQ0MzIzNmQ4YmE0NGQ5MDg1NmQzNzdkZjMyYWI1YTAz
OTAyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
aApAQCAtNjksNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRNYXJrZXJzQWN0aXZlKE5v
ZGUqLCB1bnNpZ25lZCBzdGFydE9mZnNldCwgdW5zaWduZWQgZW5kT2Zmc2V0LCBib29sKTsKIAog
ICAgIERvY3VtZW50TWFya2VyKiBtYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9p
bnQmLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSk7Ci0gICAgVmVjdG9yPERvY3VtZW50TWFy
a2VyKj4gbWFya2Vyc0ZvcihOb2RlKik7CisgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gbWFy
a2Vyc0ZvcihOb2RlKiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzID0gRG9jdW1lbnRNYXJr
ZXI6OkFsbE1hcmtlcnMoKSk7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gbWFya2Vyc0lu
UmFuZ2UoUmFuZ2UqLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMpOwogICAgIFZlY3RvcjxE
b2N1bWVudE1hcmtlcj4gbWFya2Vyc0Zvck5vZGUoTm9kZSopOwogICAgIFZlY3RvcjxMYXlvdXRS
ZWN0PiByZW5kZXJlZFJlY3RzRm9yTWFya2VycyhEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggY2FlNmU4ZWI3MTU5NDJhZjM4
YjZjMTNhNGM3Y2M2NGQyZTg4MmQwYy4uMmRiMzVkZTQ0MTM0OThmNTcwNTg2Mzg2OWY0YjU2N2Zm
MjNlYjhmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMjksNiArMjks
NyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiQ2xpZW50
UmVjdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRNYXJrZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpAQCAtNjMsNiArNjQsMzAgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitzdGF0aWMgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVz
IG1hcmtlclR5cGVzRnJvbShjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUpCit7CisgICAgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJTcGVsbGluZyIpKQorICAgICAgICByZXR1cm4g
RG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5nOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJr
ZXJUeXBlLCAiR3JhbW1hciIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkdyYW1t
YXI7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJUZXh0TWF0Y2giKSkK
KyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2g7CisgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJSZXBsYWNlbWVudCIpKQorICAgICAgICByZXR1cm4g
RG9jdW1lbnRNYXJrZXI6OlJlcGxhY2VtZW50OworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSht
YXJrZXJUeXBlLCAiQ29ycmVjdGlvbkluZGljYXRvciIpKQorICAgICAgICByZXR1cm4gRG9jdW1l
bnRNYXJrZXI6OkNvcnJlY3Rpb25JbmRpY2F0b3I7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG1hcmtlclR5cGUsICJSZWplY3RlZENvcnJlY3Rpb24iKSkKKyAgICAgICAgcmV0dXJuIERvY3Vt
ZW50TWFya2VyOjpSZWplY3RlZENvcnJlY3Rpb247CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG1hcmtlclR5cGUsICJBdXRvY29ycmVjdGVkIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1h
cmtlcjo6QXV0b2NvcnJlY3RlZDsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlw
ZSwgIlNwZWxsQ2hlY2tpbmdFeGVtcHRpb24iKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFy
a2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSht
YXJrZXJUeXBlLCAiRGVsZXRlZEF1dG9jb3JyZWN0aW9uIikpCisgICAgICAgIHJldHVybiBEb2N1
bWVudE1hcmtlcjo6RGVsZXRlZEF1dG9jb3JyZWN0aW9uOworICAgIAorICAgIHJldHVybiBEb2N1
bWVudE1hcmtlcjo6QWxsTWFya2VycygpOworfQorCiBjb25zdCBjaGFyKiBJbnRlcm5hbHM6Omlu
dGVybmFsc0lkID0gImludGVybmFscyI7CiAKIFBhc3NSZWZQdHI8SW50ZXJuYWxzPiBJbnRlcm5h
bHM6OmNyZWF0ZSgpCkBAIC0yMTAsMjQgKzIzNSwyNCBAQCBQYXNzUmVmUHRyPENsaWVudFJlY3Q+
IEludGVybmFsczo6Ym91bmRpbmdCb3goRWxlbWVudCogZWxlbWVudCwgRXhjZXB0aW9uQ29kZSYg
ZQogICAgIHJldHVybiBDbGllbnRSZWN0OjpjcmVhdGUocmVuZGVyZXItPmFic29sdXRlQm91bmRp
bmdCb3hSZWN0SWdub3JpbmdUcmFuc2Zvcm1zKCkpOwogfQogCi11bnNpZ25lZCBJbnRlcm5hbHM6
Om1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiBub2RlLCBFeGNlcHRpb25Db2RlJiBlYykKK3Vuc2ln
bmVkIEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmlu
ZyYgbWFya2VyVHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFub2RlKSB7CiAg
ICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9
CiAKLSAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5v
ZGUpLnNpemUoKTsKKyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJr
ZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzRnJvbShtYXJrZXJUeXBlKSkuc2l6ZSgpOwogfQogCi1Q
YXNzUmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2Rl
LCB1bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPFJhbmdlPiBJ
bnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1h
cmtlclR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAo
IW5vZGUpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVy
biAwOwogICAgIH0KICAgICAKLSAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0g
bm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUpOworICAgIFZlY3Rv
cjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCkt
Pm1hcmtlcnNGb3Iobm9kZSwgbWFya2VyVHlwZXNGcm9tKG1hcmtlclR5cGUpKTsKICAgICBpZiAo
bWFya2Vycy5zaXplKCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBS
YW5nZTo6Y3JlYXRlKG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5zdGFy
dE9mZnNldCgpLCBub2RlLCBtYXJrZXJzW2luZGV4XS0+ZW5kT2Zmc2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNWRmYzExMmRiNWZkNDlmZjg2MzkyMjZlMGI4N2IyOTAw
OTg4OGZjNS4uNzk1N2EwZjkwZjc2MWI5YzU2MGIwYWIzNmUwYWVhZTZjNmI2MGM4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC03MSw4ICs3MSw4IEBAIHB1YmxpYzoKIAogICAg
IFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gYm91bmRpbmdCb3goRWxlbWVudCosIEV4Y2VwdGlvbkNv
ZGUmKTsKIAotICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOwotICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwg
dW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB1bnNpZ25lZCBtYXJrZXJDb3VudEZvck5v
ZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICBQYXNzUmVmUHRy
PFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSosIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVk
LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRFbmFi
bGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4
Y2VwdGlvbkNvZGUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCAzZGI2
NTA4ZGExN2NhOWQxZWVjMzhlYTBkZjNhMmIxZDczMjRkZDBhLi5mYzc4Nzc3ZGZkYzRjYzNmOTMw
M2Y2ZDIxYzdlMTg0ZDUyYmM0ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CkBAIC00NSw4ICs0NSw4IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICB2b2lkIHNldEluc3Bl
Y3RvclJlc291cmNlc0RhdGFTaXplTGltaXRzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBsb25n
IG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwgaW4gbG9uZyBtYXhpbXVtU2luZ2xlUmVzb3Vy
Y2VDb250ZW50U2l6ZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgQ2xpZW50UmVj
dCBib3VuZGluZ0JveChpbiBFbGVtZW50IGVsZW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwot
ICAgICAgICB1bnNpZ25lZCBsb25nIG1hcmtlckNvdW50Rm9yTm9kZShpbiBOb2RlIG5vZGUpIHJh
aXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUoaW4g
Tm9kZSBub2RlLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsK
KyAgICAgICAgdW5zaWduZWQgbG9uZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2RlLCBp
biBET01TdHJpbmcgbWFya2VyVHlwZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIFJh
bmdlIG1hcmtlclJhbmdlRm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJrZXJU
eXBlLCBpbiB1bnNpZ25lZCBsb25nIGluZGV4KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAg
ICAgICB2b2lkIHNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGluIERvY3VtZW50IGRvY3VtZW50LCBp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihpbiBEb2N1bWVudCBkb2N1bWVudCwg
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
LmRlZgppbmRleCAxNzY5MzA1NjQ4OWJiYWU2NTc1MDdiOWQ1MWExMWE1NjY3NmJlMTIxLi4zOTRh
ZmFhZDU5YWMwNGRkMjdkYWJjYWEzMWM4YjZiNGNhMjU3NTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIu
ZGVmCkBAIC0xNTQsNiArMTU0LDcgQEAgRVhQT1JUUwogICAgICAgICA/Y3JlYXRlV3JhcHBlckBX
ZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9i
amVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93Um9vdEBFbGVtZW50QFdl
YkNvcmVAQFFBRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJW
U3RyaW5nSW1wbEAxQFBCRUBaCisgICAgICAgID9lcXVhbElnbm9yaW5nQ2FzZUBXVEZAQFlBX05Q
QVZTdHJpbmdJbXBsQDFAUEJFQFoKICAgICAgICAgP2V4dGVybmFsUmVwcmVzZW50YXRpb25AV2Vi
Q29yZUBAWUE/QVZTdHJpbmdAV1RGQEBQQVZFbGVtZW50QDFASUBaCiAgICAgICAgID9nZXRDYWNo
ZWRET01TdHJ1Y3R1cmVAV2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBCVUNsYXNzSW5mb0AzQEBaCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBT
dHJpbmdJbXBsQFdURkBAQUJFUEJfV1haCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYK
aW5kZXggZWMzMWQ4ZGMxNWMwZWRjN2ZlNzViY2FlNTQxMGNiMGUxNmZhNGE4Yy4uNjJmOTI1ZDVm
MGM3YTUyODQxZWZhMTgzMTJmOWJjYjY2Nzk5NWQxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
Q0ZMaXRlLmRlZgpAQCAtMTQ2LDYgKzE0Niw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0ZVdy
YXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01H
bG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxl
bWVudEBXZWJDb3JlQEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBA
WUFfTlBCVlN0cmluZ0ltcGxAMUBQQkRAWgorICAgICAgICA/ZXF1YWxJZ25vcmluZ0Nhc2VAV1RG
QEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBCRUBaCiAgICAgICAgID9leHRlcm5hbFJlcHJlc2VudGF0
aW9uQFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAUEFWRWxlbWVudEAxQElAWgogICAgICAgICA/
Z2V0Q2FjaGVkRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNE
T01HbG9iYWxPYmplY3RAMUBQQlVDbGFzc0luZm9AM0BAWgogICAgICAgICA/Z2V0RWxlbWVudEJ5
SWRAVHJlZVNjb3BlQFdlYkNvcmVAQFFCRVBBVkVsZW1lbnRAMkBBQlZBdG9taWNTdHJpbmdAV1RG
QEBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggYTMxMTM5NjEyMjE0YjhlNTAyMTMwNDM1
N2MwZTdjZjQwYTkyYzk3ZS4uYmVhMGYwMjFmZjRlMDhhOWNmYWU5Y2QwNWRkOWNhNTA1ZmU0ODRh
NSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC01NSw3ICs1NSw3IEBAIF9aTjdXZWJDb3Jl
MjBOb2RlUmVuZGVyaW5nQ29udGV4dEQxRXY7CiBfWk43V2ViQ29yZTIwU2hhZG93Q29udGVudEVs
ZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFOwogX1pON1dlYkNvcmUyMWdldENhY2hlZERPTVN0
cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04zSlNDOUNsYXNzSW5mb0U7CiBfWk43
V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfN0VsZW1lbnRFajsKLV9aTjdXZWJD
b3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRTsKK19a
TjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5TXzROb2Rl
RU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRTsKIF9aTjdXZWJDb3JlNkpTTm9kZTEw
cHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFs
dWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTZKU05vZGUyMHZpc2l0Q2hp
bGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0b3JFOwogX1pON1dlYkNvcmU2SlNOb2RlNnNf
aW5mb0U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggNjg2YzQ4ODFjNjQxMzFkZjA3MWZkMDJlMTFjMjIzODQyNzRlYzQxZS4u
NDNkOGI2N2E1NDVkN2JkMWY0YmUyZWJjMWFhZmY4NDMwYWE0NTcyNyAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDExLTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+
CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0
byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWluZyBhIG1hcmtlciB0eXBlLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3OTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWlu
c2VydC1odG1sLmh0bWw6IEZpeGVkIGZ1bmN0aW9uIHVzYWdlLgorCiAyMDExLTExLTA3ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViV29ya2VycyBmYWlsIHdp
dGggZG9jdW1lbnQuZG9tYWluIHNldCB3aGVuIGFjY2Vzc2luZyBmcm9tIHN1YmRvbWFpbgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDk0M2Jh
ZTQ1MWU4OWQzM2M4MTAwOTMzZjk5YmUyYTM0YjAwNzJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKQEAgLTAsMCArMSw4MyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmVkaXRpbmcgeworICAg
IGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4OworICAgIGZvbnQtc2l6
ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyIgbGFuZ3Vh
Z2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJlPgorPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorPC9kaXY+CisKKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBw
YXJlbnQpIHsKKyAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIpOworICAgIGUuY2xhc3NO
YW1lID0gJ2VkaXRpbmcnOworICAgIGUuaWQgPSBpZDsKKworICAgIHBhcmVudC5hcHBlbmRDaGls
ZChlKTsKKyAgICByZXR1cm4gZTsKK30KKworZnVuY3Rpb24gdHlwZVRleHQoZWxlbSwgdGV4dCkg
eworICAgIGVsZW0uZm9jdXMoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHQubGVuZ3Ro
OyArK2kpIHsKKyAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQodGV4dFtpXSk7CisgICAgfQor
fQorCit2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicp
OwordmFyIHJhbmdlOworCitkZWJ1ZygiR3JhbW1hciBFcnJvciBPbmx5Iik7Cit2YXIgaWQgPSAn
aWQxJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoaWQsIGNvbnRhaW5lcik7Cit0eXBl
VGV4dChlLCAnSSBoYXZlIGEgaXNzdWUuJyk7CitpZiAod2luZG93LmludGVybmFscykgeworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNw
ZWxsaW5nIiknLCAnMCcpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JO
b2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5h
bHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiLCAwKTsKKyAgICBz
aG91bGRCZSgicmFuZ2UudG9TdHJpbmcoKSIsICciYSInKTsKK30KKworZGVidWcoIlNwZWxsaW5n
IEVycm9yIE9ubHkiKTsKK3ZhciBpZCA9ICdpZDInCit2YXIgZSA9IGNyZWF0ZUVkaXRhYmxlRWxl
bWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICd6ei4nKTsKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5m
aXJzdENoaWxkLCAic3BlbGxpbmciKScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiwgMCk7CisgICAgc2hvdWxk
QmUoJ3JhbmdlLnRvU3RyaW5nKCknLCAnInp6IicpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcwJyk7Cit9CisK
K2RlYnVnKCJHcmFtbWFyIGFuZCBTcGVsbGluZyBFcnJvciIpOwordmFyIGlkID0gJ2lkMycKK3Zh
ciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwordHlwZVRleHQoZSwg
J29yYW5nZSx6eixhcHBsZS4nKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgc2hvdWxk
QmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmci
KScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmly
c3RDaGlsZCwgInNwZWxsaW5nIiwgMCk7CisgICAgc2hvdWxkQmUoJ3JhbmdlLnRvU3RyaW5nKCkn
LCAnInp6IicpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUu
Zmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiLCAwKTsKKyAgICBzaG91bGRC
ZSgncmFuZ2UudG9TdHJpbmcoKScsICcib3JhbmdlLHp6LGFwcGxlLiInKTsKK30KKwordmFyIHN1
Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1p
bnNlcnQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1p
bnNlcnQtaHRtbC5odG1sCmluZGV4IGJkZjRkYWE5NTY5MjEwZmY4MzAyZTI5NDg2NzgyMjkwMmFk
NDM5YTguLjgzYzdjOTZkOWZhZmUwMzM2MGFmYTIwYTVlYmE0NjI1Y2JkZjFjNmMgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWluc2VydC1odG1s
Lmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICB2YXIg
dGV4dHMgPSBkZXN0aW5hdGlvbi5jaGlsZE5vZGVzOwogICAgIHZhciBtYXJrZWRUZXh0ID0gIiI7
CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0cy5sZW5ndGg7ICsraSkgewotICAgICAgICB2
YXIgbWFya2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0c1tpXSwgMCk7Cisg
ICAgICAgIHZhciBtYXJrZWQgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKHRleHRzW2ld
LCAic3BlbGxpbmciLCAwKTsKICAgICAgICAgaWYgKG1hcmtlZCkKICAgICAgICAgICAgIG1hcmtl
ZFRleHQgKz0gbWFya2VkLnRvU3RyaW5nKCkKICAgICB9CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cg
Yi9DaGFuZ2VMb2cKaW5kZXggMTY3OTFhYjY4NTk4NmQwYjQ1ZTRlMGRlNzI4NjQyOGY2NDFiNzFi
ZC4uMTQ5ZTQ5OWE1YzU1YThkYzNjOWJmNDVhZTM4YmIzOTk3YTgzMWIzYyAxMDA2NDQKLS0tIGEv
Q2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTExLTA4ICBT
aGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxz
Lm1hcmtlclJhbmdlRm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3Bl
Y2lmeWluZyBhIG1hcmtlciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzE3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6IEV4cG9zZWQg
bmVjZXNzYXJ5IHN5bWJvbHMuCisKIDIwMTEtMTEtMDcgIENoYW5nU2VvayBPaCAgPHNoaXZhbWlk
b3dAZ21haWwuY29tPgogCiAgICAgICAgIFtFRkxdIFN1cHBvcnQgcmVxdWVzdEFuaW1hdGlvbkZy
YW1lIEFQSQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114183</attachid>
            <date>2011-11-08 17:38:03 -0800</date>
            <delta_ts>2011-11-08 22:55:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111109103802.patch</filename>
            <type>text/plain</type>
            <size>18831</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1MDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2YjViOTZkZjNkYjFkNzg5
YjIxODliZGIxZmE5MDY0NGIwNDVjZDNkLi40OTljMTMzMzkzMTZlMGQ5MGU0NzkwNTUyZTI1Yjkz
MDc4ZjBkZTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA3ICBEbWl0cnkgTG9tb3YgIDxk
c2xvbW92QGdvb2dsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxNTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTAwYThiYTM1NjEyOWY3MDE3MDJmZjA4
MDdjOGZjY2I0NThiMzE4OS4uMjU1YjU1Njk5Zjk2ZWFjOGM2MTU2NDU1M2M3MGViMTAyMzZhMzNl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDExLTExLTA4ICBTaGlueWEgS2F3YW5h
a2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWluZyBhIG1h
cmtlciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzE3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIHdpbi9XZWJLaXQyLmRlZjogRXhwb3NlZCBuZWNlc3NhcnkgcmVmZXJlbmNlcy4KKyAgICAg
ICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6IGRpdHRvLgorCiAyMDExLTExLTA3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzE0OTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggYjcyNThkOGEx
ZjIyNTEyODcxYTUzMTFiMjgxYWIzZTY0NmE0MmNmOC4uNDY5YzE0YjRhZDM0YTY4ODQ5MDE0ZDE0
NjNiMGEyNDI3ZGRiYzgyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAu
aW4KKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTYzNiw3ICs2MzYsNyBA
QCBfX1pON1dlYkNvcmUyM2dldEhvc3RuYW1lc1dpdGhDb29raWVzRVJOM1dURjdIYXNoU2V0SU5T
MF82U3RyaW5nRU5TMF8xMFN0cmluZ0hhcwogX19aTjdXZWJDb3JlMjNvdmVycmlkZURlZmF1bHRM
YW5ndWFnZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZTI0QmluYXJ5UHJvcGVydHlMaXN0
V3JpdGVyMTd3cml0ZVByb3BlcnR5TGlzdEV2CiBfX1pON1dlYkNvcmUyNENhY2hlZFJlc291cmNl
SGFuZGxlQmFzZTExc2V0UmVzb3VyY2VFUE5TXzE0Q2FjaGVkUmVzb3VyY2VFCi1fX1pON1dlYkNv
cmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVFCitfX1pO
N1dlYkNvcmUyNERvY3VtZW50TWFya2VyQ29udHJvbGxlcjEwbWFya2Vyc0ZvckVQTlNfNE5vZGVF
TlNfMTREb2N1bWVudE1hcmtlcjExTWFya2VyVHlwZXNFCiBfX1pON1dlYkNvcmUyNERvY3VtZW50
TWFya2VyQ29udHJvbGxlcjEzcmVtb3ZlTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTFNYXJr
ZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMjNyZW5kZXJl
ZFJlY3RzRm9yTWFya2Vyc0VOU18xNERvY3VtZW50TWFya2VyMTBNYXJrZXJUeXBlRQogX19aTjdX
ZWJDb3JlMjRjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWNFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcAppbmRleCAyZmQyYjgzMWVjOGIwY2EzZWY4
ZmMzYmE4NjE4ODVlNGFjNzIxOTZlLi5iMGViMWUxNjJkMDVhMzk0MzJhMzFkMDNkNGIzYTBmMzcx
ODExODk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyLmNwcApAQCAtMzE4LDE1ICszMTgsMTcgQEAgRG9jdW1lbnRNYXJrZXIqIERvY3VtZW50TWFy
a2VyQ29udHJvbGxlcjo6bWFya2VyQ29udGFpbmluZ1BvaW50KGNvbnN0IExheW91dFBvaW4KICAg
ICByZXR1cm4gMDsKIH0KIAotVmVjdG9yPERvY3VtZW50TWFya2VyKj4gRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyOjptYXJrZXJzRm9yKE5vZGUqIG5vZGUpCitWZWN0b3I8RG9jdW1lbnRNYXJrZXIq
PiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6Om1hcmtlcnNGb3IoTm9kZSogbm9kZSwgRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzKQogewogICAgIFZlY3RvcjxEb2N1bWVu
dE1hcmtlcio+IHJlc3VsdDsKICAgICBNYXJrZXJMaXN0KiBsaXN0ID0gbV9tYXJrZXJzLmdldChu
b2RlKTsKICAgICBpZiAoIWxpc3QpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKLSAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGxpc3QtPnNpemUoKTsgKytpKQotICAgICAgICByZXN1bHQuYXBw
ZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpc3QtPnNp
emUoKTsgKytpKSB7CisgICAgICAgIGlmIChtYXJrZXJUeXBlcy5jb250YWlucyhsaXN0LT5hdChp
KS50eXBlKCkpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgmKGxpc3QtPmF0KGkpKSk7Cisg
ICAgfQogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE1hcmtlckNvbnRyb2xsZXIuaAppbmRleCA4MTBmYmEwN2YxZTc1ZTQwYzg5YjhjZmYzOWZh
YWEwMGFiMjkxODg5Li4zNmMwZDQzMjM2ZDhiYTQ0ZDkwODU2ZDM3N2RmMzJhYjVhMDM5MDI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oCkBAIC02
OSw3ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldE1hcmtlcnNBY3RpdmUoTm9kZSosIHVu
c2lnbmVkIHN0YXJ0T2Zmc2V0LCB1bnNpZ25lZCBlbmRPZmZzZXQsIGJvb2wpOwogCiAgICAgRG9j
dW1lbnRNYXJrZXIqIG1hcmtlckNvbnRhaW5pbmdQb2ludChjb25zdCBMYXlvdXRQb2ludCYsIERv
Y3VtZW50TWFya2VyOjpNYXJrZXJUeXBlKTsKLSAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBt
YXJrZXJzRm9yKE5vZGUqKTsKKyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzRm9y
KE5vZGUqLCBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgPSBEb2N1bWVudE1hcmtlcjo6QWxs
TWFya2VycygpKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzSW5SYW5nZShS
YW5nZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyk7CiAgICAgVmVjdG9yPERvY3VtZW50
TWFya2VyPiBtYXJrZXJzRm9yTm9kZShOb2RlKik7CiAgICAgVmVjdG9yPExheW91dFJlY3Q+IHJl
bmRlcmVkUmVjdHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBjYWU2ZThlYjcxNTk0MmFmMzhiNmMxM2E0
YzdjYzY0ZDJlODgyZDBjLi4yZGIzNWRlNDQxMzQ5OGY1NzA1ODYzODY5ZjRiNTY3ZmYyM2ViOGY5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDbGllbnRSZWN0Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudE1hcmtlci5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCkBAIC02Myw2ICs2NCwzMCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBEb2N1bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgbWFya2Vy
VHlwZXNGcm9tKGNvbnN0IFN0cmluZyYgbWFya2VyVHlwZSkKK3sKKyAgICBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2UobWFya2VyVHlwZSwgIlNwZWxsaW5nIikpCisgICAgICAgIHJldHVybiBEb2N1bWVu
dE1hcmtlcjo6U3BlbGxpbmc7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUs
ICJHcmFtbWFyIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcjsKKyAg
ICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIlRleHRNYXRjaCIpKQorICAgICAg
ICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OlRleHRNYXRjaDsKKyAgICBpZiAoZXF1YWxJZ25vcmlu
Z0Nhc2UobWFya2VyVHlwZSwgIlJlcGxhY2VtZW50IikpCisgICAgICAgIHJldHVybiBEb2N1bWVu
dE1hcmtlcjo6UmVwbGFjZW1lbnQ7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5
cGUsICJDb3JyZWN0aW9uSW5kaWNhdG9yIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1hcmtl
cjo6Q29ycmVjdGlvbkluZGljYXRvcjsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2Vy
VHlwZSwgIlJlamVjdGVkQ29ycmVjdGlvbiIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJr
ZXI6OlJlamVjdGVkQ29ycmVjdGlvbjsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2Vy
VHlwZSwgIkF1dG9jb3JyZWN0ZWQiKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpB
dXRvY29ycmVjdGVkOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiU3Bl
bGxDaGVja2luZ0V4ZW1wdGlvbiIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OlNw
ZWxsQ2hlY2tpbmdFeGVtcHRpb247CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5
cGUsICJEZWxldGVkQXV0b2NvcnJlY3Rpb24iKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFy
a2VyOjpEZWxldGVkQXV0b2NvcnJlY3Rpb247CisgICAgCisgICAgcmV0dXJuIERvY3VtZW50TWFy
a2VyOjpBbGxNYXJrZXJzKCk7Cit9CisKIGNvbnN0IGNoYXIqIEludGVybmFsczo6aW50ZXJuYWxz
SWQgPSAiaW50ZXJuYWxzIjsKIAogUGFzc1JlZlB0cjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3Jl
YXRlKCkKQEAgLTIxMCwyNCArMjM1LDI0IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJu
YWxzOjpib3VuZGluZ0JveChFbGVtZW50KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlCiAgICAg
cmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZShyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3RJZ25vcmluZ1RyYW5zZm9ybXMoKSk7CiB9CiAKLXVuc2lnbmVkIEludGVybmFsczo6bWFya2Vy
Q291bnRGb3JOb2RlKE5vZGUqIG5vZGUsIEV4Y2VwdGlvbkNvZGUmIGVjKQordW5zaWduZWQgSW50
ZXJuYWxzOjptYXJrZXJDb3VudEZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJr
ZXJUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAg
IHJldHVybiBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSkuc2l6
ZSgpOworICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Io
bm9kZSwgbWFya2VyVHlwZXNGcm9tKG1hcmtlclR5cGUpKS5zaXplKCk7CiB9CiAKLVBhc3NSZWZQ
dHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8UmFuZ2U+IEludGVybmFs
czo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFya2VyVHlw
ZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghbm9kZSkg
ewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAg
ICAgfQogICAgIAotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBub2RlLT5k
b2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSk7CisgICAgVmVjdG9yPERvY3Vt
ZW50TWFya2VyKj4gbWFya2VycyA9IG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vy
c0Zvcihub2RlLCBtYXJrZXJUeXBlc0Zyb20obWFya2VyVHlwZSkpOwogICAgIGlmIChtYXJrZXJz
LnNpemUoKSA8PSBpbmRleCkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFJhbmdlOjpj
cmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSwgbWFya2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0
KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5lbmRPZmZzZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCA1ZGZjMTEyZGI1ZmQ0OWZmODYzOTIyNmUwYjg3YjI5MDA5ODg4ZmM1
Li43OTU3YTBmOTBmNzYxYjljNTYwYjBhYjM2ZTBhZWFlNmM2YjYwYzhlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTcxLDggKzcxLDggQEAgcHVibGljOgogCiAgICAgUGFzc1Jl
ZlB0cjxDbGllbnRSZWN0PiBib3VuZGluZ0JveChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwog
Ci0gICAgdW5zaWduZWQgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCB1bnNpZ25l
ZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2Rl
KiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8UmFuZ2U+
IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKIAogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQq
LCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBv
c2l0aW5nRm9yRml4ZWRQb3NpdGlvbihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDNkYjY1MDhkYTE3
Y2E5ZDFlZWMzOGVhMGRmM2EyYjFkNzMyNGRkMGEuLmZjNzg3NzdkZmRjNGNjM2Y5MzAzZjZkMjFj
N2UxODRkNTJiYzQ4MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ1
LDggKzQ1LDggQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVz
b3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11
bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbiBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRl
bnRTaXplKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKIAogICAgICAgICBDbGllbnRSZWN0IGJvdW5k
aW5nQm94KGluIEVsZW1lbnQgZWxlbWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgICAgIFJhbmdlIG1hcmtlclJhbmdlRm9yTm9kZShpbiBOb2RlIG5v
ZGUsIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAg
ICB1bnNpZ25lZCBsb25nIG1hcmtlckNvdW50Rm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0
cmluZyBtYXJrZXJUeXBlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgUmFuZ2UgbWFy
a2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUsIGlu
IHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZv
aWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxl
Q29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmlu
ZGV4IDE3NjkzMDU2NDg5YmJhZTY1NzUwN2I5ZDUxYTExYTU2Njc2YmUxMjEuLmUzZWQ4YzVhNzFi
MzIwM2YzNWNlNzQzZmQ2MmM0ZTYwZjVhMzllMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAg
LTE1NCw2ICsxNTQsNyBAQCBFWFBPUlRTCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVA
QFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFA
UEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBA
UUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJ
bXBsQDFAUEJFQFoKKyAgICAgICAgP2VxdWFsSWdub3JpbmdDYXNlQFdURkBAWUFfTlBBVlN0cmlu
Z0ltcGxAMUBQQkVAWgogICAgICAgICA/ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkBXZWJDb3JlQEBZ
QT9BVlN0cmluZ0BXVEZAQFBBVkVsZW1lbnRAMUBJQFoKICAgICAgICAgP2dldENhY2hlZERPTVN0
cnVjdHVyZUBXZWJDb3JlQEBZQVBBVlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0
QDFAUEJVQ2xhc3NJbmZvQDNAQFoKICAgICAgICAgP2dldERhdGExNlNsb3dDYXNlQFN0cmluZ0lt
cGxAV1RGQEBBQkVQQl9XWFoKQEAgLTE2Miw3ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9p
c1ByZWxvYWRlZEBDYWNoZWRSZXNvdXJjZUxvYWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BX
VEZAQEBaCiAgICAgICAgID9qc1N0cmluZ1Nsb3dDYXNlQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBK
U0NAQFBBVkV4ZWNTdGF0ZUAzQEFBVj8kSGFzaE1hcEBQQVZTdHJpbmdJbXBsQFdURkBAVj8kV2Vh
a0BWSlNTdHJpbmdASlNDQEBASlNDQEBVU3RyaW5nSGFzaEAyQFU/JEhhc2hUcmFpdHNAUEFWU3Ry
aW5nSW1wbEBXVEZAQEAyQFU/JEhhc2hUcmFpdHNAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlND
QEBAMkBAV1RGQEBQQVZTdHJpbmdJbXBsQDZAQFoKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2Vy
RWRpdEBIVE1MVGV4dEZvcm1Db250cm9sRWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCi0gICAgICAg
ID9tYXJrZXJzRm9yQERvY3VtZW50TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZl
Y3RvckBQQVZEb2N1bWVudE1hcmtlckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQEBaCisg
ICAgICAgID9tYXJrZXJzRm9yQERvY3VtZW50TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/
QVY/JFZlY3RvckBQQVZEb2N1bWVudE1hcmtlckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAy
QFZNYXJrZXJUeXBlc0BEb2N1bWVudE1hcmtlckAyQEBaCiAgICAgICAgID9wYWdlQERvY3VtZW50
QFdlYkNvcmVAQFFCRVBBVlBhZ2VAMkBYWgogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJh
bWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5n
dGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3Jl
QEBAV1RGQEBQQVZFbGVtZW50QDJASEhfTkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKaW5kZXggZWMzMWQ4ZGMxNWMwZWRjN2ZlNzViY2FlNTQxMGNiMGUxNmZhNGE4Yy4uYzcxZGU0
NGQxZWMxNTlkM2YwNDVlMWJkODRhNzA1ZmJiMTFhMzRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyQ0ZMaXRlLmRlZgpAQCAtMTQ2LDYgKzE0Niw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0
ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNE
T01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RA
RWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdU
RkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkRAWgorICAgICAgICA/ZXF1YWxJZ25vcmluZ0Nhc2VA
V1RGQEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBCRUBaCiAgICAgICAgID9leHRlcm5hbFJlcHJlc2Vu
dGF0aW9uQFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAUEFWRWxlbWVudEAxQElAWgogICAgICAg
ICA/Z2V0Q2FjaGVkRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFW
SlNET01HbG9iYWxPYmplY3RAMUBQQlVDbGFzc0luZm9AM0BAWgogICAgICAgICA/Z2V0RWxlbWVu
dEJ5SWRAVHJlZVNjb3BlQFdlYkNvcmVAQFFCRVBBVkVsZW1lbnRAMkBBQlZBdG9taWNTdHJpbmdA
V1RGQEBAWgpAQCAtMTUzLDcgKzE1NCw3IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJlbG9hZGVk
QENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAg
ICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhl
Y1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmlu
Z0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdU
RkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZA
QFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21hcmtlcnNG
b3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRv
Y3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKKyAgICAgICAgP21h
cmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9y
QFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5
cGVzQERvY3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBA
UUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2Vi
Q29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRl
cmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBB
VkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGEzMTEzOTYxMjIx
NGI4ZTUwMjEzMDQzNTdjMGU3Y2Y0MGE5MmM5N2UuLmJlYTBmMDIxZmY0ZTA4YTljZmFlOWNkMDVk
ZDljYTUwNWZlNDg0YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTUsNyArNTUsNyBA
QCBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwogX1pON1dlYkNvcmUyMFNo
YWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3JlMjFn
ZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlDbGFz
c0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50
RWo7Ci1fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBO
U180Tm9kZUU7CitfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJz
Rm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CiBfWk43V2Vi
Q29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZp
ZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU2SlNO
b2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9aTjdXZWJD
b3JlNkpTTm9kZTZzX2luZm9FOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY4NmM0ODgxYzY0MTMxZGYwNzFmZDAyZTExYzIy
Mzg0Mjc0ZWM0MWUuLjQzZDhiNjdhNTQ1ZDdiZDFmNGJlMmViYzFhYWZmODQzMGFhNDU3MjcgMTAw
NzU1Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUgc2hv
dWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcgYSBtYXJrZXIgdHlwZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL21hcmtlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sOiBGaXhlZCBmdW5jdGlvbiB1c2FnZS4KKwogMjAx
MS0xMS0wNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYldv
cmtlcnMgZmFpbCB3aXRoIGRvY3VtZW50LmRvbWFpbiBzZXQgd2hlbiBhY2Nlc3NpbmcgZnJvbSBz
dWJkb21haW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vy
cy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzA5NDNiYWU0NTFlODlkMzNjODEwMDkzM2Y5OWJlMmEzNGIwMDcyZgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCkBAIC0w
LDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5l
ZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBzb2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsK
KyAgICBmb250LXNpemU6IDI0cHg7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRp
bmcuanMiIGxhbmd1YWdlPSJKYXZhU2NyaXB0IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3Nj
cmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9uIj48L3By
ZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwvZGl2
PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxl
RWxlbWVudChpZCwgcGFyZW50KSB7CisgICAgdmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICBlLnNldEF0dHJpYnV0ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsK
KyAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5nJzsKKyAgICBlLmlkID0gaWQ7CisKKyAgICBwYXJl
bnQuYXBwZW5kQ2hpbGQoZSk7CisgICAgcmV0dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHR5cGVUZXh0
KGVsZW0sIHRleHQpIHsKKyAgICBlbGVtLmZvY3VzKCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCB0ZXh0Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKHRleHRb
aV0pOworICAgIH0KK30KKwordmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb250YWluZXInKTsKK3ZhciByYW5nZTsKKworZGVidWcoIkdyYW1tYXIgRXJyb3IgT25seSIp
OwordmFyIGlkID0gJ2lkMScKK3ZhciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250
YWluZXIpOwordHlwZVRleHQoZSwgJ0kgaGF2ZSBhIGlzc3VlLicpOworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZp
cnN0Q2hpbGQsICJzcGVsbGluZyIpJywgJzAnKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1h
cmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJh
bmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFy
IiwgMCk7CisgICAgc2hvdWxkQmUoInJhbmdlLnRvU3RyaW5nKCkiLCAnImEiJyk7Cit9CisKK2Rl
YnVnKCJTcGVsbGluZyBFcnJvciBPbmx5Iik7Cit2YXIgaWQgPSAnaWQyJwordmFyIGUgPSBjcmVh
dGVFZGl0YWJsZUVsZW1lbnQoaWQsIGNvbnRhaW5lcik7Cit0eXBlVGV4dChlLCAnenouJyk7Citp
ZiAod2luZG93LmludGVybmFscykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiknLCAnMScpOworICAgIHJhbmdlID0g
aW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIDAp
OworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0cmluZygpJywgJyJ6eiInKTsKKyAgICBzaG91bGRC
ZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIikn
LCAnMCcpOworfQorCitkZWJ1ZygiR3JhbW1hciBhbmQgU3BlbGxpbmcgRXJyb3IiKTsKK3ZhciBp
ZCA9ICdpZDMnCit2YXIgZSA9IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsK
K3R5cGVUZXh0KGUsICdvcmFuZ2UsenosYXBwbGUuJyk7CitpZiAod2luZG93LmludGVybmFscykg
eworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGls
ZCwgInNwZWxsaW5nIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdyYW5n
ZS50b1N0cmluZygpJywgJyJ6eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNv
dW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0g
aW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7
CisgICAgc2hvdWxkQmUoJ3JhbmdlLnRvU3RyaW5nKCknLCAnIm9yYW5nZSx6eixhcHBsZS4iJyk7
Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRtbAppbmRleCBiZGY0ZGFhOTU2OTIxMGZmODMwMmUy
OTQ4Njc4MjI5MDJhZDQzOWE4Li44M2M3Yzk2ZDlmYWZlMDMzNjBhZmEyMGE1ZWJhNDYyNWNiZGYx
YzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWlu
c2VydC1odG1sLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1pbnNlcnQtaHRtbC5odG1sCkBAIC0yNiw3ICsyNiw3IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CiAgICAgdmFyIHRleHRzID0gZGVzdGluYXRpb24uY2hpbGROb2RlczsKICAgICB2YXIgbWFy
a2VkVGV4dCA9ICIiOwogICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGV4dHMubGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgdmFyIG1hcmtlZCA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUodGV4
dHNbaV0sIDApOworICAgICAgICB2YXIgbWFya2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9y
Tm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwgMCk7CiAgICAgICAgIGlmIChtYXJrZWQpCiAgICAg
ICAgICAgICBtYXJrZWRUZXh0ICs9IG1hcmtlZC50b1N0cmluZygpCiAgICAgfQpkaWZmIC0tZ2l0
IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDE2NzkxYWI2ODU5ODZkMGI0NWU0ZTBkZTcy
ODY0MjhmNjQxYjcxYmQuLjE0OWU0OTlhNWM1NWE4ZGMzYzliZjQ1YWUzOGJiMzk5N2E4MzFiM2Mg
MTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAor
MjAxMS0xMS0wOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAg
ICAgIEludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBt
YXJrZXJzIGJ5IHNwZWNpZnlpbmcgYSBtYXJrZXIgdHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmls
dGVyOiBFeHBvc2VkIG5lY2Vzc2FyeSBzeW1ib2xzLgorCiAyMDExLTExLTA3ICBDaGFuZ1Nlb2sg
T2ggIDxzaGl2YW1pZG93QGdtYWlsLmNvbT4KIAogICAgICAgICBbRUZMXSBTdXBwb3J0IHJlcXVl
c3RBbmltYXRpb25GcmFtZSBBUEkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114211</attachid>
            <date>2011-11-08 22:55:47 -0800</date>
            <delta_ts>2011-11-09 07:38:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111109155545.patch</filename>
            <type>text/plain</type>
            <size>19604</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2NDgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NDgwZDIzZTk0YmFhZmJk
Y2ZiMzU1YTVkODU3NzlkZGU2N2Q4NGI1Li5lNzlhNjIyMTZkOTM0Mjc5NzQ2NGUxZGVkMGE3MmIw
YjZhNmE4ZDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA4ICBBZGFtIEtsZWluICA8YWRh
bWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVzZSBhIHR5cGVkZWYgZm9yIEV4Y2VwdGlvbkNv
ZGUgaW4gYWxsIGhlYWRlciBmaWxlcyBpbnN0ZWFkIG9mIGluY2x1ZGluZyBFeGNlcHRpb25Db2Rl
LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCAyNTU5M2YwYzIxOTY2ZjlkZTBjNDY1MzNkNjM0NWE2Njc0MzM3NzZh
Li42ZGZkNmQyNzZlNzhkNzQxNDVkNjRiODIzZmFiYTc1ZWE0NDY0MzI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTEtMTEtMDggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29v
Z2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBi
ZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5aW5nIGEgbWFya2VyIHR5cGUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTc5MgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2luL1dlYktpdDIu
ZGVmOiBFeHBvc2VkIG5lY2Vzc2FyeSByZWZlcmVuY2VzLgorICAgICAgICAqIHdpbi9XZWJLaXQy
Q0ZMaXRlLmRlZjogZGl0dG8uCisKIDIwMTEtMTEtMDggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtXaW5DYWlyb10gVW5yZXZpZXdlZCBidWlsZCBmaXgg
YWZ0ZXIgcjk5NjEzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4g
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBiNGFmOGM3NjJkMTNlOTk0MDI4
OTE3MTVjMjkxNWUyMjUwYzY2ZjJjLi4zZmFkMTBjM2UxM2IwNzMzNzU0NDE4YWFiZGFlMDEzMTBh
NTMwNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9fWk43V2Vi
Q29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZTdHJpbmdF
TlMwXzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1YWdlRVJL
TjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0ZXIxN3dy
aXRlUHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNl
MTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0RG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3Vt
ZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250
cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQog
X19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVjdHNGb3JN
YXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNvcmUyNGNv
bnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMxZWM4YjBjYTNlZjhmYzNiYTg2MTg4
NWU0YWM3MjE5NmUuLmIwZWIxZTE2MmQwNWEzOTQzMmEzMWQwM2Q0YjNhMGYzNzE4MTE4OTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCkBA
IC0zMTgsMTUgKzMxOCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJDb250cm9s
bGVyOjptYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJldHVybiAw
OwogfQogCi1WZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXI6
Om1hcmtlcnNGb3IoTm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERvY3VtZW50
TWFya2VyQ29udHJvbGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1hcmtlcjo6
TWFya2VyVHlwZXMgbWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4g
cmVzdWx0OwogICAgIE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUpOwogICAg
IGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQoJihsaXN0
LT5hdChpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgaWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5cGUoKSkp
CisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9CiAKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50TWFya2Vy
Q29udHJvbGxlci5oCmluZGV4IDgxMGZiYTA3ZjFlNzVlNDBjODliOGNmZjM5ZmFhYTAwYWIyOTE4
ODkuLjM2YzBkNDMyMzZkOGJhNDRkOTA4NTZkMzc3ZGYzMmFiNWEwMzkwMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcgKzY5LDcg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWduZWQgc3Rh
cnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVudE1hcmtl
ciogbWFya2VyQ29udGFpbmluZ1BvaW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGUpOwotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3Io
Tm9kZSopOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9kZSosIERv
Y3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCkp
OwogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdlKiwgRG9j
dW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXI+IG1h
cmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVyZWRSZWN0
c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCmluZGV4IDc1OThjNWFlZGEyNDI4YzQ4NzU1ZjI0ZWEyNTc0N2E5ODcz
MjkyYmQuLjlkZjkxMzFlMTMzYjNjZjI1YjllMGJlNTNiNjhhZjY0ODBiZTg0M2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJD
YWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNpbmNsdWRl
ICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVkZSAiRG9j
dW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0LDMwIEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAorc3RhdGljIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyBtYXJrZXJUeXBlc0Zyb20o
Y29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlKQoreworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSht
YXJrZXJUeXBlLCAiU3BlbGxpbmciKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpT
cGVsbGluZzsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIkdyYW1tYXIi
KSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgIGlmIChlcXVh
bElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiVGV4dE1hdGNoIikpCisgICAgICAgIHJldHVybiBE
b2N1bWVudE1hcmtlcjo6VGV4dE1hdGNoOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJr
ZXJUeXBlLCAiUmVwbGFjZW1lbnQiKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpS
ZXBsYWNlbWVudDsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIkNvcnJl
Y3Rpb25JbmRpY2F0b3IiKSkKKyAgICAgICAgcmV0dXJuIERvY3VtZW50TWFya2VyOjpDb3JyZWN0
aW9uSW5kaWNhdG9yOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiUmVq
ZWN0ZWRDb3JyZWN0aW9uIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1hcmtlcjo6UmVqZWN0
ZWRDb3JyZWN0aW9uOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiQXV0
b2NvcnJlY3RlZCIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkF1dG9jb3JyZWN0
ZWQ7CisgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJTcGVsbENoZWNraW5n
RXhlbXB0aW9uIikpCisgICAgICAgIHJldHVybiBEb2N1bWVudE1hcmtlcjo6U3BlbGxDaGVja2lu
Z0V4ZW1wdGlvbjsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIkRlbGV0
ZWRBdXRvY29ycmVjdGlvbiIpKQorICAgICAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkRlbGV0
ZWRBdXRvY29ycmVjdGlvbjsKKyAgICAKKyAgICByZXR1cm4gRG9jdW1lbnRNYXJrZXI6OkFsbE1h
cmtlcnMoKTsKK30KKwogY29uc3QgY2hhciogSW50ZXJuYWxzOjppbnRlcm5hbHNJZCA9ICJpbnRl
cm5hbHMiOwogCiBQYXNzUmVmUHRyPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoKQpAQCAt
MjEwLDI0ICsyMzUsMjQgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRlcm5hbHM6OmJvdW5k
aW5nQm94KEVsZW1lbnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGUKICAgICByZXR1cm4gQ2xp
ZW50UmVjdDo6Y3JlYXRlKHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5n
VHJhbnNmb3JtcygpKTsKIH0KIAotdW5zaWduZWQgSW50ZXJuYWxzOjptYXJrZXJDb3VudEZvck5v
ZGUoTm9kZSogbm9kZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit1bnNpZ25lZCBJbnRlcm5hbHM6Om1h
cmtlckNvdW50Rm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghbm9kZSkgewogICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIG5v
ZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlKS5zaXplKCk7CisgICAg
cmV0dXJuIG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlLCBtYXJr
ZXJUeXBlc0Zyb20obWFya2VyVHlwZSkpLnNpemUoKTsKIH0KIAotUGFzc1JlZlB0cjxSYW5nZT4g
SW50ZXJuYWxzOjptYXJrZXJSYW5nZUZvck5vZGUoTm9kZSogbm9kZSwgdW5zaWduZWQgaW5kZXgs
IEV4Y2VwdGlvbkNvZGUmIGVjKQorUGFzc1JlZlB0cjxSYW5nZT4gSW50ZXJuYWxzOjptYXJrZXJS
YW5nZUZvck5vZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCB1bnNpZ25l
ZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgaWYgKCFub2RlKSB7CiAgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAg
Ci0gICAgVmVjdG9yPERvY3VtZW50TWFya2VyKj4gbWFya2VycyA9IG5vZGUtPmRvY3VtZW50KCkt
Pm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlKTsKKyAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIq
PiBtYXJrZXJzID0gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUs
IG1hcmtlclR5cGVzRnJvbShtYXJrZXJUeXBlKSk7CiAgICAgaWYgKG1hcmtlcnMuc2l6ZSgpIDw9
IGluZGV4KQogICAgICAgICByZXR1cm4gMDsKICAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShub2Rl
LT5kb2N1bWVudCgpLCBub2RlLCBtYXJrZXJzW2luZGV4XS0+c3RhcnRPZmZzZXQoKSwgbm9kZSwg
bWFya2Vyc1tpbmRleF0tPmVuZE9mZnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5o
CmluZGV4IDg0MjA5NzE3OTRjNTRmNzBhZTE0ZDViMWI0Y2Q2OTIzNmI1MDkxY2QuLmU3ZTAyYTk3
NTk3YzM0OTk1YjlmNDUxYjZkODk5NDBiYTk3NDk3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaApAQCAtNzIsOCArNzIsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPENsaWVu
dFJlY3Q+IGJvdW5kaW5nQm94KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB1bnNp
Z25lZCBtYXJrZXJDb3VudEZvck5vZGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNz
UmVmUHRyPFJhbmdlPiBtYXJrZXJSYW5nZUZvck5vZGUoTm9kZSosIHVuc2lnbmVkLCBFeGNlcHRp
b25Db2RlJik7CisgICAgdW5zaWduZWQgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUqLCBjb25zdCBT
dHJpbmcmLCBFeGNlcHRpb25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFya2VyUmFu
Z2VGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYp
OwogCiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1bWVudCosIGJvb2wgZW5h
YmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JG
aXhlZFBvc2l0aW9uKERvY3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggYjY5ZTE5YWY1N2EwNjZjM2QzN2Y5
MmFlMzQ5ZDMwNDQzYjMyZjlhZi4uN2M4MzRhOTFmOTExZWZhODQ3OGExMzNkNzNhMGEwZDFjODUz
ZGFjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDUsOCArNDUsOCBA
QCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRh
U2l6ZUxpbWl0cyhpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBtYXhpbXVtUmVzb3VyY2Vz
Q29udGVudFNpemUsIGluIGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIENsaWVudFJlY3QgYm91bmRpbmdCb3goaW4g
RWxlbWVudCBlbGVtZW50KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdW5zaWduZWQg
bG9uZyBtYXJrZXJDb3VudEZvck5vZGUoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKLSAgICAgICAgUmFuZ2UgbWFya2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gdW5z
aWduZWQgbG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHVuc2lnbmVk
IGxvbmcgbWFya2VyQ291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtl
clR5cGUpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZv
ck5vZGUoaW4gTm9kZSBub2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4gdW5zaWduZWQg
bG9uZyBpbmRleCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVk
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxl
ZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggZDk4NjZi
ZjczMzliOGUyZDA1YmY5NWJkOWVkZTgwYzk0ZmRjYjdiZC4uYTViNWYwYmU0MjdkNDQ2MDRiMTVh
MDI0N2VmN2JmYWU4Y2ExMDcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktp
dDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTU0LDYgKzE1
NCw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1Zh
bHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFA
QFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFk
b3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkVA
WgorICAgICAgICA/ZXF1YWxJZ25vcmluZ0Nhc2VAV1RGQEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBC
RUBaCiAgICAgICAgID9leHRlcm5hbFJlcHJlc2VudGF0aW9uQFdlYkNvcmVAQFlBP0FWU3RyaW5n
QFdURkBAUEFWRWxlbWVudEAxQElAWgogICAgICAgICA/Z2V0Q2FjaGVkRE9NU3RydWN0dXJlQFdl
YkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQlVDbGFz
c0luZm9AM0BAWgogICAgICAgICA/Z2V0RGF0YTE2U2xvd0Nhc2VAU3RyaW5nSW1wbEBXVEZAQEFC
RVBCX1dYWgpAQCAtMTYyLDcgKzE2Myw3IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJlbG9hZGVk
QENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAg
ICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhl
Y1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmlu
Z0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdU
RkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZA
QFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21hcmtlcnNG
b3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRv
Y3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKKyAgICAgICAgP21h
cmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9y
QFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5
cGVzQERvY3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBA
UUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2Vi
Q29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRl
cmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBB
VkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQy
Q0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA2
YTYyMGYwOTRiZGVmYWFjNjZkM2NmODNkMWUyNTc4Nzk4NzkxZDYxLi42Yjk4Mzg3MmNiMTM2ZjJk
YzhkYzRjZDk4ODJhN2I5M2EzNmQxZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4v
V2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUu
ZGVmCkBAIC0xNDcsNiArMTQ3LDcgQEAgRVhQT1JUUwogICAgICAgICA/Y3JlYXRlV3JhcHBlckBX
ZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9i
amVjdEAxQFBBVk5vZGVAMUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93Um9vdEBFbGVtZW50QFdl
YkNvcmVAQFFBRVBBVlNoYWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJW
U3RyaW5nSW1wbEAxQFBCRUBaCisgICAgICAgID9lcXVhbElnbm9yaW5nQ2FzZUBXVEZAQFlBX05Q
QVZTdHJpbmdJbXBsQDFAUEJFQFoKICAgICAgICAgP2V4dGVybmFsUmVwcmVzZW50YXRpb25AV2Vi
Q29yZUBAWUE/QVZTdHJpbmdAV1RGQEBQQVZFbGVtZW50QDFASUBaCiAgICAgICAgID9nZXRDYWNo
ZWRET01TdHJ1Y3R1cmVAV2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2Jh
bE9iamVjdEAxQFBCVUNsYXNzSW5mb0AzQEBaCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBT
dHJpbmdJbXBsQFdURkBAQUJFUEJfV1haCkBAIC0xNTUsNyArMTU2LDcgQEAgRVhQT1JUUwogICAg
ICAgICA/aXNQcmVsb2FkZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUJFX05BQlZT
dHJpbmdAV1RGQEBAWgogICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9BVkpT
VmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBXVEZA
QFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJhaXRz
QFBBVlN0cmluZ0ltcGxAV1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5nQEpT
Q0BAQEpTQ0BAQDJAQFdURkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAgID9sYXN0Q2hhbmdl
V2FzVXNlckVkaXRASFRNTFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgot
ICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFF
P0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVA
MkBAWgorICAgICAgICA/bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29y
ZUBAUUFFP0FWPyRWZWN0b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBB
Vk5vZGVAMkBWTWFya2VyVHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgogICAgICAgICA/cGFnZUBE
b2N1bWVudEBXZWJDb3JlQEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRp
bnRzQEZyYW1lVmlld0BXZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9u
QW5kTGVuZ3RoQFRleHRJdGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VA
V2ViQ29yZUBAQFdURkBAUEFWRWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIK
aW5kZXggMjQwN2FhMGExNjYxOWM5MmI5ODY1OGMyY2E1ZTJiNDM0NWE4ZjBlMS4uODRmYWIyN2Rh
YzFlNzcxOTNlZDkxODcwZGEyZWNkY2JlMzRlNjI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVy
CkBAIC01Niw3ICs1Niw3IEBAIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEQxRXY7
CiBfWk43V2ViQ29yZTIwU2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRF
OwogX1pON1dlYkNvcmUyMWdldENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9i
amVjdEVQS04zSlNDOUNsYXNzSW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbkVQTlNfN0VsZW1lbnRFajsKLV9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRTsKK19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNv
bnRyb2xsZXIxMG1hcmtlcnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtl
clR5cGVzRTsKIF9aTjdXZWJDb3JlNkpTTm9kZTEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRl
RVJLTlMxXzEwSWRlbnRpZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7
CiBfWk43V2ViQ29yZTZKU05vZGUyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZp
c2l0b3JFOwogX1pON1dlYkNvcmU2SlNOb2RlNnNfaW5mb0U7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjBjNDU3OTM0OTE0
ZjAwNDI3YTkwN2MyNjMzNTUxZmNiMTgxMjFmZS4uMzE0MzFkN2I0YjE3NTAyMmZkMzhlZjI3OTRh
NTk0ZjZhMzEwMDdkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTExLTA4ICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtl
clJhbmdlRm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWlu
ZyBhIG1hcmtlciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzE3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWw6IEZpeGVkIGZ1bmN0
aW9uIHVzYWdlLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25z
LnR4dDogU2tpcHBlZCBjaHJvbWl1bSB0ZXN0cy4KKwogMjAxMS0xMS0wOCAgQnJlbnQgRnVsZ2hh
bSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1dpbkNhaXJvXSBVbnJldmlld2Vk
IHNraXBsaXN0IHVwZGF0ZSB0byBtYXRjaCBtYWluIFdpbmRvd3MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5NDNiYWU0NTFlODlkMzNjODEw
MDkzM2Y5OWJlMmEzNGIwMDcyZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy5lZGl0aW5nIHsKKyAgICBib3JkZXI6IDJweCBz
b2xpZCByZWQ7CisgICAgcGFkZGluZzogMTJweDsKKyAgICBmb250LXNpemU6IDI0cHg7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2VkaXRpbmcuanMiIGxhbmd1YWdlPSJKYXZhU2NyaXB0
IiB0eXBlPSJ0ZXh0L0phdmFTY3JpcHQiID48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwcmUgaWQ9ImRlc2NyaXB0aW9uIj48L3ByZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwvZGl2PgorCis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisKK2Z1bmN0aW9uIGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgcGFyZW50KSB7CisgICAg
dmFyIGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBlLnNldEF0dHJpYnV0
ZSgiY29udGVudEVkaXRhYmxlIiwgInRydWUiKTsKKyAgICBlLmNsYXNzTmFtZSA9ICdlZGl0aW5n
JzsKKyAgICBlLmlkID0gaWQ7CisKKyAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoZSk7CisgICAgcmV0
dXJuIGU7Cit9CisKK2Z1bmN0aW9uIHR5cGVUZXh0KGVsZW0sIHRleHQpIHsKKyAgICBlbGVtLmZv
Y3VzKCk7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0Lmxlbmd0aDsgKytpKSB7CisgICAg
ICAgIHR5cGVDaGFyYWN0ZXJDb21tYW5kKHRleHRbaV0pOworICAgIH0KK30KKwordmFyIGNvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKTsKK3ZhciByYW5nZTsK
KworZGVidWcoIkdyYW1tYXIgRXJyb3IgT25seSIpOwordmFyIGlkID0gJ2lkMScKK3ZhciBlID0g
Y3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwordHlwZVRleHQoZSwgJ0kgaGF2
ZSBhIGlzc3VlLicpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91bGRCZSgnaW50
ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIpJywgJzAn
KTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hp
bGQsICJncmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdl
Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxkQmUoInJhbmdl
LnRvU3RyaW5nKCkiLCAnImEiJyk7Cit9CisKK2RlYnVnKCJTcGVsbGluZyBFcnJvciBPbmx5Iik7
Cit2YXIgaWQgPSAnaWQyJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoaWQsIGNvbnRh
aW5lcik7Cit0eXBlVGV4dChlLCAnenouJyk7CitpZiAod2luZG93LmludGVybmFscykgeworICAg
IHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNw
ZWxsaW5nIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9k
ZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIsIDApOworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0
cmluZygpJywgJyJ6eiInKTsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9y
Tm9kZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiknLCAnMCcpOworfQorCitkZWJ1ZygiR3JhbW1h
ciBhbmQgU3BlbGxpbmcgRXJyb3IiKTsKK3ZhciBpZCA9ICdpZDMnCit2YXIgZSA9IGNyZWF0ZUVk
aXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICdvcmFuZ2UsenosYXBw
bGUuJyk7CitpZiAod2luZG93LmludGVybmFscykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMu
bWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiknLCAnMScpOworICAg
IHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVs
bGluZyIsIDApOworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0cmluZygpJywgJyJ6eiInKTsKKyAg
ICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJn
cmFtbWFyIiknLCAnMScpOworICAgIHJhbmdlID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9k
ZShlLmZpcnN0Q2hpbGQsICJncmFtbWFyIiwgMCk7CisgICAgc2hvdWxkQmUoJ3JhbmdlLnRvU3Ry
aW5nKCknLCAnIm9yYW5nZSx6eixhcHBsZS4iJyk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRt
bCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5zZXJ0LWh0bWwuaHRt
bAppbmRleCBiZGY0ZGFhOTU2OTIxMGZmODMwMmUyOTQ4Njc4MjI5MDJhZDQzOWE4Li44M2M3Yzk2
ZDlmYWZlMDMzNjBhZmEyMGE1ZWJhNDYyNWNiZGYxYzZjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCkBAIC0yNiw3
ICsyNiw3IEBAIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgdmFyIHRleHRzID0gZGVzdGlu
YXRpb24uY2hpbGROb2RlczsKICAgICB2YXIgbWFya2VkVGV4dCA9ICIiOwogICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGV4dHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG1hcmtlZCA9IGlu
dGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUodGV4dHNbaV0sIDApOworICAgICAgICB2YXIgbWFy
a2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0c1tpXSwgInNwZWxsaW5nIiwg
MCk7CiAgICAgICAgIGlmIChtYXJrZWQpCiAgICAgICAgICAgICBtYXJrZWRUZXh0ICs9IG1hcmtl
ZC50b1N0cmluZygpCiAgICAgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDU2YTczY2QyMzI3ZWFlOWJhZDk4N2UyMDVj
ZWE4ZWJjOTAwMGQzOTYuLjk4NTRhOTdmYmViNWFjMmI0MzMwNjEyY2I1ODYyMzcxZDc5NjQ3MDkg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTY2OSw2ICs2NjksOCBAQCBCVUdXSzU1NTYwIDogZWRpdGluZy9pbnB1dC9z
ZXR0aW5nLWlucHV0LXZhbHVlLWNhbmNlbC1pbWUtY29tcG9zaXRpb24uaHRtbCA9IFRFWAogLy8g
TmV3IHRlc3QgYWRkZWQgaW4gcjgyMTU5CiBCVUdDUjc3NzA2IDogZWRpdGluZy9zcGVsbGluZy9n
cmFtbWFyLmh0bWwgPSBGQUlMCiAKK0JVR0NSNzE3OTIgOiBlZGl0aW5nL3NwZWxsaW5nL21hcmtl
cnMuaHRtbCA9IEZBSUwKKwogLy8gRmxha3kKIEJVR0NSNzk4NTQgOiBlZGl0aW5nL2V4ZWNDb21t
YW5kL2RlbGV0ZS1lbXB0eS1jb250YWluZXIuaHRtbCA9IFBBU1MgVEVYVAogCmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggM2I4ZDkxNDBjYTFiM2QwYWRjNDVlZmVjNWI5
NmExMjgwMTM5ZTBmMi4uYjhiZmE1NWZlZTEyZTY2MDU0ZTU3MmY2NmZjZWFkMDJkNTRhYjU0MCAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisy
MDExLTExLTA4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgSW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1h
cmtlcnMgYnkgc3BlY2lmeWluZyBhIG1hcmtlciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3OTIKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXI6IEV4cG9zZWQgbmVjZXNzYXJ5IHN5bWJvbHMuCisKIDIwMTEtMTEtMDggIERhbmllbCBCYXRl
cyAgPGRiYXRlc0B3ZWJraXQub3JnPgogCiAgICAgICAgIEF0dGVtcHQgdG8gZml4IHRoZSBHVEsg
YnVpbGQgYWZ0ZXIgPGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk5NjEzPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114276</attachid>
            <date>2011-11-09 07:38:29 -0800</date>
            <delta_ts>2011-11-09 19:23:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111110003827.patch</filename>
            <type>text/plain</type>
            <size>21929</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjZiODIxZmVkNWQ2MGE2
ZTY1OWFhNWQwYmYwOTQ4MzBhOTBkOGU2Li40MmUyNjc0ZDdlMjcwODQ5NzllNDlkYWI5ZjE0Yjc0
YmY2ZTBiNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA4ICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIENTU1ByaW1pdGl2ZVZhbHVlIGJpdGZp
ZWxkcyB1cCBpbnRvIENTU1ZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcyZjIyYzQxNmJlN2I1YzZmYzRl
ZDgwOWY5NjMyNDJjMDA3NmJhYWIuLmZkMjdhYTQ1MDgxNDAzNTc5ZmI3MGJmZTkxMDlhZmQzNjA0
YjhkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wOCAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJS
YW5nZUZvck5vZGUgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcg
YSBtYXJrZXIgdHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6IEV4cG9zZWQgbmVjZXNzYXJ5IHJlZmVyZW5jZXMuCisg
ICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOiBkaXR0by4KKwogMjAxMS0xMS0wOSAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBC
dWlsZCBzeXN0ZW0gY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwMzQwOWNjMTQ0MTMz
MDUxYjA2MzNkMjMwNWI1NTJmOGE1OGE2MDQ2Li4xYTBmOTAyMjY0NDk5NzhjN2EzNDY3Y2Y5M2Mz
OTdmNjNkZWQ1MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9f
Wk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZT
dHJpbmdFTlMwXzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1
YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0
ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5k
bGVCYXNlMTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18x
NERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5
cGVzRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVj
dHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNv
cmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMxZWM4YjBjYTNlZjhmYzNi
YTg2MTg4NWU0YWM3MjE5NmUuLmIwZWIxZTE2MmQwNWEzOTQzMmEzMWQwM2Q0YjNhMGYzNzE4MTE4
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
Y3BwCkBAIC0zMTgsMTUgKzMxOCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyOjptYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJl
dHVybiAwOwogfQogCi1WZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXI6Om1hcmtlcnNGb3IoTm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFy
a2VyKj4gcmVzdWx0OwogICAgIE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUp
OwogICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
JihsaXN0LT5hdChpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5
cGUoKSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9
CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDgxMGZiYTA3ZjFlNzVlNDBjODliOGNmZjM5ZmFhYTAw
YWIyOTE4ODkuLjM2YzBkNDMyMzZkOGJhNDRkOTA4NTZkMzc3ZGYzMmFiNWEwMzkwMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcg
KzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVu
dE1hcmtlciogbWFya2VyQ29udGFpbmluZ1BvaW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGUpOwotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtl
cnNGb3IoTm9kZSopOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9k
ZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJr
ZXJzKCkpOwogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdl
KiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJr
ZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVy
ZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc1OThjNWFlZGEyNDI4YzQ4NzU1ZjI0ZWEyNTc0
N2E5ODczMjkyYmQuLjA1ZDI0NzI4YTE4MTAwOTY5ZjJhOTUzZDRmNTljMmNiYTRkOWM5ZWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0LDM0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgbWFya2VyVHlwZXNGcm9tKGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzJiByZXN1bHQpCit7CisgICAgaWYg
KG1hcmtlclR5cGUuZW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiYWxs
IikpCisgICAgICAgIHJlc3VsdCA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJrZXJzKCk7CisgICAg
ZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIlNwZWxsaW5nIikpCisgICAg
ICAgIHJlc3VsdCA9ICBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmc7CisgICAgZWxzZSBpZiAoZXF1
YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIkdyYW1tYXIiKSkKKyAgICAgICAgcmVzdWx0ID0g
IERvY3VtZW50TWFya2VyOjpHcmFtbWFyOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG1hcmtlclR5cGUsICJUZXh0TWF0Y2giKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFy
a2VyOjpUZXh0TWF0Y2g7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlw
ZSwgIlJlcGxhY2VtZW50IikpCisgICAgICAgIHJlc3VsdCA9ICBEb2N1bWVudE1hcmtlcjo6UmVw
bGFjZW1lbnQ7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFya2VyVHlwZSwgIkNv
cnJlY3Rpb25JbmRpY2F0b3IiKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpD
b3JyZWN0aW9uSW5kaWNhdG9yOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1hcmtl
clR5cGUsICJSZWplY3RlZENvcnJlY3Rpb24iKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50
TWFya2VyOjpSZWplY3RlZENvcnJlY3Rpb247CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWFya2VyVHlwZSwgIkF1dG9jb3JyZWN0ZWQiKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3Vt
ZW50TWFya2VyOjpBdXRvY29ycmVjdGVkOworICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNl
KG1hcmtlclR5cGUsICJTcGVsbENoZWNraW5nRXhlbXB0aW9uIikpCisgICAgICAgIHJlc3VsdCA9
ICBEb2N1bWVudE1hcmtlcjo6U3BlbGxDaGVja2luZ0V4ZW1wdGlvbjsKKyAgICBlbHNlIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiRGVsZXRlZEF1dG9jb3JyZWN0aW9uIikpCisg
ICAgICAgIHJlc3VsdCA9ICBEb2N1bWVudE1hcmtlcjo6RGVsZXRlZEF1dG9jb3JyZWN0aW9uOwor
ICAgIGVsc2UKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
IGNvbnN0IGNoYXIqIEludGVybmFsczo6aW50ZXJuYWxzSWQgPSAiaW50ZXJuYWxzIjsKIAogUGFz
c1JlZlB0cjxJbnRlcm5hbHM+IEludGVybmFsczo6Y3JlYXRlKCkKQEAgLTIxMCwyNCArMjM5LDM2
IEBAIFBhc3NSZWZQdHI8Q2xpZW50UmVjdD4gSW50ZXJuYWxzOjpib3VuZGluZ0JveChFbGVtZW50
KiBlbGVtZW50LCBFeGNlcHRpb25Db2RlJiBlCiAgICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0
ZShyZW5kZXJlci0+YWJzb2x1dGVCb3VuZGluZ0JveFJlY3RJZ25vcmluZ1RyYW5zZm9ybXMoKSk7
CiB9CiAKLXVuc2lnbmVkIEludGVybmFsczo6bWFya2VyQ291bnRGb3JOb2RlKE5vZGUqIG5vZGUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQordW5zaWduZWQgSW50ZXJuYWxzOjptYXJrZXJDb3VudEZvck5v
ZGUoTm9kZSogbm9kZSwgY29uc3QgU3RyaW5nJiBtYXJrZXJUeXBlLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBpZiAoIW5vZGUpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgp
LT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSkuc2l6ZSgpOworICAgIERvY3VtZW50TWFya2Vy
OjpNYXJrZXJUeXBlcyBtYXJrZXJUeXBlczsKKyAgICBpZiAoIW1hcmtlclR5cGVzRnJvbShtYXJr
ZXJUeXBlLCBtYXJrZXJUeXBlcykpIHsKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+bWFya2Vy
cygpLT5tYXJrZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzRnJvbSkuc2l6ZSgpOwogfQogCi1QYXNz
UmVmUHRyPFJhbmdlPiBJbnRlcm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCB1
bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMpCitQYXNzUmVmUHRyPFJhbmdlPiBJbnRl
cm5hbHM6Om1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtl
clR5cGUsIHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIW5v
ZGUpIHsKICAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAw
OwogICAgIH0KLSAgICAKLSAgICBWZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBtYXJrZXJzID0gbm9k
ZS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUpOworCisgICAgRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzOworICAgIGlmICghbWFya2VyVHlwZXNG
cm9tKG1hcmtlclR5cGUsIG1hcmtlclR5cGVzKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7
CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+
IG1hcmtlcnMgPSBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSwg
bWFya2VyVHlwZXMpOwogICAgIGlmIChtYXJrZXJzLnNpemUoKSA8PSBpbmRleCkKICAgICAgICAg
cmV0dXJuIDA7CiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQoKSwgbm9k
ZSwgbWFya2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtlcnNbaW5kZXhdLT5l
bmRPZmZzZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA4NDIwOTcxNzk0
YzU0ZjcwYWUxNGQ1YjFiNGNkNjkyMzZiNTA5MWNkLi5lN2UwMmE5NzU5N2MzNDk5NWI5ZjQ1MWI2
ZDg5OTQwYmE5NzQ5NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTcyLDgg
KzcyLDggQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBib3VuZGluZ0Jv
eChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdW5zaWduZWQgbWFya2VyQ291bnRG
b3JOb2RlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFy
a2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOworICAgIHVu
c2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShOb2RlKiwg
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZvaWQgc2V0
Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihEb2N1
bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IGI2OWUxOWFmNTdhMDY2YzNkMzdmOTJhZTM0OWQzMDQ0M2IzMmY5
YWYuLjdjODM0YTkxZjkxMWVmYTg0NzhhMTMzZDczYTBhMGQxYzg1M2RhYzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ1LDggKzQ1LDggQEAgbW9kdWxlIHdpbmRvdyB7
CiAgICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbiBs
b25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIAogICAgICAgICBDbGllbnRSZWN0IGJvdW5kaW5nQm94KGluIEVsZW1lbnQgZWxlbWVudCkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291bnRG
b3JOb2RlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIFJhbmdl
IG1hcmtlclJhbmdlRm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
IHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB1bnNpZ25lZCBsb25nIG1hcmtlckNvdW50
Rm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJrZXJUeXBlKSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgUmFuZ2UgbWFya2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9k
ZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUsIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgpIHJhaXNl
cyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
aW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9u
KGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNl
cHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IGQ5ODY2YmY3MzM5YjhlMmQwNWJmOTVi
ZDllZGU4MGM5NGZkY2I3YmQuLmE1YjVmMGJlNDI3ZDQ0NjA0YjE1YTAyNDdlZjdiZmFlOGNhMTA3
MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE1NCw2ICsxNTQsNyBAQCBFWFBPUlRTCiAg
ICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNT
dGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAgID9lbnN1
cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFhaCiAgICAg
ICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKKyAgICAgICAgP2VxdWFs
SWdub3JpbmdDYXNlQFdURkBAWUFfTlBBVlN0cmluZ0ltcGxAMUBQQkVAWgogICAgICAgICA/ZXh0
ZXJuYWxSZXByZXNlbnRhdGlvbkBXZWJDb3JlQEBZQT9BVlN0cmluZ0BXVEZAQFBBVkVsZW1lbnRA
MUBJQFoKICAgICAgICAgP2dldENhY2hlZERPTVN0cnVjdHVyZUBXZWJDb3JlQEBZQVBBVlN0cnVj
dHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEJVQ2xhc3NJbmZvQDNAQFoKICAgICAg
ICAgP2dldERhdGExNlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQQl9XWFoKQEAgLTE2Miw3
ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9pc1ByZWxvYWRlZEBDYWNoZWRSZXNvdXJjZUxv
YWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9qc1N0cmluZ1Ns
b3dDYXNlQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQEFBVj8kSGFz
aE1hcEBQQVZTdHJpbmdJbXBsQFdURkBAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBVU3Ry
aW5nSGFzaEAyQFU/JEhhc2hUcmFpdHNAUEFWU3RyaW5nSW1wbEBXVEZAQEAyQFU/JEhhc2hUcmFp
dHNAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBAMkBAV1RGQEBQQVZTdHJpbmdJbXBsQDZA
QFoKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2VyRWRpdEBIVE1MVGV4dEZvcm1Db250cm9sRWxl
bWVudEBXZWJDb3JlQEBRQkVfTlhaCi0gICAgICAgID9tYXJrZXJzRm9yQERvY3VtZW50TWFya2Vy
Q29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVudE1hcmtlckBXZWJD
b3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQEBaCisgICAgICAgID9tYXJrZXJzRm9yQERvY3VtZW50
TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVudE1hcmtl
ckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQFZNYXJrZXJUeXBlc0BEb2N1bWVudE1hcmtl
ckAyQEBaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VAMkBYWgog
ICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhYWgogICAg
ICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNvcmVAQFNB
P0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJASEhfTkBa
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3Vy
Y2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggNmE2MjBmMDk0YmRlZmFhYzY2
ZDNjZjgzZDFlMjU3ODc5ODc5MWQ2MS4uNmI5ODM4NzJjYjEzNmYyZGM4ZGM0Y2Q5ODgyYTdiOTNh
MzZkMWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
CisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTQ3LDYgKzE0
Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1Zh
bHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFA
QFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFk
b3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkVA
WgorICAgICAgICA/ZXF1YWxJZ25vcmluZ0Nhc2VAV1RGQEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBC
RUBaCiAgICAgICAgID9leHRlcm5hbFJlcHJlc2VudGF0aW9uQFdlYkNvcmVAQFlBP0FWU3RyaW5n
QFdURkBAUEFWRWxlbWVudEAxQElAWgogICAgICAgICA/Z2V0Q2FjaGVkRE9NU3RydWN0dXJlQFdl
YkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQlVDbGFz
c0luZm9AM0BAWgogICAgICAgICA/Z2V0RGF0YTE2U2xvd0Nhc2VAU3RyaW5nSW1wbEBXVEZAQEFC
RVBCX1dYWgpAQCAtMTU1LDcgKzE1Niw3IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJlbG9hZGVk
QENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAg
ICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhl
Y1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmlu
Z0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdU
RkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZA
QFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxU
ZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21hcmtlcnNG
b3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRv
Y3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKKyAgICAgICAgP21h
cmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9y
QFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5
cGVzQERvY3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBA
UUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2Vi
Q29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRl
cmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBB
VkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5m
aWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDMyYTRkOGY3Y2U4
YjI2ODA2MDllNGQyOTAxNGM4N2E1NmVmOTQ2MjQuLjE5YTY3ZTc5NGIzMDQ0NzAxMmEyYjNkODAw
ODdkMDBlM2I1ODZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0
ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTYsNyArNTYsNyBA
QCBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwogX1pON1dlYkNvcmUyMFNo
YWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJDb3JlMjFn
ZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pTQzlDbGFz
c0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdFbGVtZW50
RWo7Ci1fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBO
U180Tm9kZUU7CitfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJz
Rm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CiBfWk43V2Vi
Q29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZp
ZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNvcmU2SlNO
b2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9aTjdXZWJD
b3JlNkpTTm9kZTZzX2luZm9FOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5ZjFkMzIwNjc0MzgxOTVmM2FlMTU1NWE2Nzkw
NmRmY2Q5ZGMxNGIuLmZiOWI0YzdhZmIzZjVjYzZjNTM0MTQxNzUxNjRkYWMwMDlkNmE5ZTAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0wOSAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUgc2hv
dWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcgYSBtYXJrZXIgdHlwZS4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzkyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL21hcmtlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sOiBGaXhlZCBmdW5jdGlvbiB1c2FnZS4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6IFNraXBwZWQgY2hy
b21pdW0gdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogU2tpcHBlZCBndGsg
dGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOiBTa2lwcGVkIHF0IHRlc3QuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFNrZWlwcGVkIHdpbiB0ZXN0LgorCiAyMDEx
LTExLTA5ICBHYWJvciBSYXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KIAogICAgICAgICBb
UXRdIFVucmV2aWV3ZWQuIFVwZGF0ZSBwbGF0Zm9ybSBzcGVjaWZpYyBleHBlY3RlZCByZXN1bHRz
IGFnYWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMDk0M2JhZTQ1MWU4OWQzM2M4MTAwOTMzZjk5YmUyYTM0YjAwNzJmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwKQEAgLTAs
MCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLmVk
aXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAxMnB4Owor
ICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4vZWRpdGlu
Zy5qcyIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHByZSBpZD0iZGVzY3JpcHRpb24iPjwvcHJl
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorPC9kaXY+
CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY3JlYXRlRWRpdGFibGVF
bGVtZW50KGlkLCBwYXJlbnQpIHsKKyAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2RpdicpOworICAgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1ZSIpOwor
ICAgIGUuY2xhc3NOYW1lID0gJ2VkaXRpbmcnOworICAgIGUuaWQgPSBpZDsKKworICAgIHBhcmVu
dC5hcHBlbmRDaGlsZChlKTsKKyAgICByZXR1cm4gZTsKK30KKworZnVuY3Rpb24gdHlwZVRleHQo
ZWxlbSwgdGV4dCkgeworICAgIGVsZW0uZm9jdXMoKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHRleHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQodGV4dFtp
XSk7CisgICAgfQorfQorCit2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnRhaW5lcicpOwordmFyIHJhbmdlOworCitkZWJ1ZygiR3JhbW1hciBFcnJvciBPbmx5Iik7
Cit2YXIgaWQgPSAnaWQxJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoaWQsIGNvbnRh
aW5lcik7Cit0eXBlVGV4dChlLCAnSSBoYXZlIGEgaXNzdWUuJyk7CitpZiAod2luZG93LmludGVy
bmFscykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmly
c3RDaGlsZCwgInNwZWxsaW5nIiknLCAnMCcpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFy
a2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7CisgICAgcmFu
Z2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIi
LCAwKTsKKyAgICBzaG91bGRCZSgicmFuZ2UudG9TdHJpbmcoKSIsICciYSInKTsKK30KKworZGVi
dWcoIlNwZWxsaW5nIEVycm9yIE9ubHkiKTsKK3ZhciBpZCA9ICdpZDInCit2YXIgZSA9IGNyZWF0
ZUVkaXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICd6ei4nKTsKK2lm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3Vu
dEZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmciKScsICcxJyk7CisgICAgcmFuZ2UgPSBp
bnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiwgMCk7
CisgICAgc2hvdWxkQmUoJ3JhbmdlLnRvU3RyaW5nKCknLCAnInp6IicpOworICAgIHNob3VsZEJl
KCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScs
ICcwJyk7Cit9CisKK2RlYnVnKCJHcmFtbWFyIGFuZCBTcGVsbGluZyBFcnJvciIpOwordmFyIGlk
ID0gJ2lkMycKK3ZhciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwor
dHlwZVRleHQoZSwgJ29yYW5nZSx6eixhcHBsZS4nKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxk
LCAic3BlbGxpbmciKScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VG
b3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiwgMCk7CisgICAgc2hvdWxkQmUoJ3Jhbmdl
LnRvU3RyaW5nKCknLCAnInp6IicpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291
bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7CisgICAgcmFuZ2UgPSBp
bnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiLCAwKTsK
KyAgICBzaG91bGRCZSgncmFuZ2UudG9TdHJpbmcoKScsICcib3JhbmdlLHp6LGFwcGxlLiInKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCmluZGV4IGJkZjRkYWE5NTY5MjEwZmY4MzAyZTI5
NDg2NzgyMjkwMmFkNDM5YTguLjgzYzdjOTZkOWZhZmUwMzM2MGFmYTIwYTVlYmE0NjI1Y2JkZjFj
NmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctaW5z
ZXJ0LWh0bWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWluc2VydC1odG1sLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICB2YXIgdGV4dHMgPSBkZXN0aW5hdGlvbi5jaGlsZE5vZGVzOwogICAgIHZhciBtYXJr
ZWRUZXh0ID0gIiI7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0cy5sZW5ndGg7ICsraSkg
ewotICAgICAgICB2YXIgbWFya2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSh0ZXh0
c1tpXSwgMCk7CisgICAgICAgIHZhciBtYXJrZWQgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JO
b2RlKHRleHRzW2ldLCAic3BlbGxpbmciLCAwKTsKICAgICAgICAgaWYgKG1hcmtlZCkKICAgICAg
ICAgICAgIG1hcmtlZFRleHQgKz0gbWFya2VkLnRvU3RyaW5nKCkKICAgICB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXgg
MTM5ZDBhMmFlMWY5ODk0NWY5MDRlMTYxMjFjZWRiNWVhYzZjMmJlNi4uZjA1NzhmNDU5MjJiN2Nk
OWUzYmZlZWU0OGI3ZjJlODgxZmY1MDE1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNjY5LDYgKzY2OSw5IEBAIEJV
R1dLNTU1NjAgOiBlZGl0aW5nL2lucHV0L3NldHRpbmctaW5wdXQtdmFsdWUtY2FuY2VsLWltZS1j
b21wb3NpdGlvbi5odG1sID0gVEVYCiAvLyBOZXcgdGVzdCBhZGRlZCBpbiByODIxNTkKIEJVR0NS
Nzc3MDYgOiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbCA9IEZBSUwKIAorLy8gTmVlZHMg
Z3JhbW1hciBjaGVja2luZy4KK0JVR1dLNzE3OTIgOiBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMu
aHRtbCA9IEZBSUwKKwogLy8gRmxha3kKIEJVR0NSNzk4NTQgOiBlZGl0aW5nL2V4ZWNDb21tYW5k
L2RlbGV0ZS1lbXB0eS1jb250YWluZXIuaHRtbCA9IFBBU1MgVEVYVAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9Ta2lwcGVkCmluZGV4IDEyNDQxN2IxYzc2OGE4NmYzZjk5NmUzYzVmZWIyNzc0NmNkY2IyNTku
LjhlMjU3MzVlNWM0YzZkYTNmZDU0OTBlYTI2YTNmZjU3NTI2MjRmNDYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCkBAIC0yOTMsNiArMjkzLDkgQEAgbWVkaWEvbWVkaWEtY2FwdGlvbnMuaHRt
bAogIyBEYXRhVHJhbnNmZXJJdGVtcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLgogZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogCisjIE5lZWRzIGdyYW1tYXIgY2hl
Y2tpbmcuCitlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAorCiAjIExlZ2FjeSBmdWxsIHNj
cmVlbiBBUEkgdGVzdHMgYXJlIG5vdyBvYnNvbGV0ZS4KIG1lZGlhL2NvbnRleHQtbWVudS1hY3Rp
b25zLmh0bWwKIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4taW5saW5lLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCmluZGV4IGY2MTIwYzJhZjgzMWQ0NWFhY2E2ODY1YzYyM2I3MTBmM2E2ZTY3ZmMu
LmNjNWE4YzQwYTc0MDE2NjZiMWM1OTVkZGI1MjExZGQ2NjIyOTk5NGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZApAQCAtMTAzMCw2ICsxMDMwLDkgQEAgZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1oYXNzcGVsbGluZ21hcmtlci5odG1sCiAjIHRleHRJbnB1dENvbnRyb2xsZXIuaGFzR3JhbW1h
ck1hcmtlcnMoKSBpcyBub3QgaW1wbGVtZW50ZWQuCiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIu
aHRtbAogCisjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCitlZGl0aW5nL3NwZWxsaW5nL21hcmtl
cnMuaHRtbAorCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQz
NQogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1s
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNWRkOTc5YzA5NTgyYjhiMzcxNzAwODYw
MGJmZWFiMjBiMmM3Y2FmOC4uZDUwYjdkMTZmYTM4YTczZGJkYjY2NDE1MDk2NjRjODYwZWY3MDE0
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEwMjQsNiArMTAyNCw5IEBAIHN2Zy90
ZXh0L2NhcmV0LWluLXN2Zy10ZXh0LnhodG1sCiAjIHRleHRJbnB1dENvbnRyb2xsZXIuaGFzR3Jh
bW1hck1hcmtlcnMoKSBpcyBub3QgaW1wbGVtZW50ZWQuCiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1t
YXIuaHRtbAogCisjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCitlZGl0aW5nL3NwZWxsaW5nL21h
cmtlcnMuaHRtbAorCiAjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoKSBp
cyBub3QgaW1wbGVtZW50ZWQKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0ZS5odG1s
CiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjZWRhMzk4OWE0OWNl
YmUwZGQ3NTIyODZjNjQwMDY4YzI2M2I4N2NlLi5hMjdmYzQ0NTY5MjFmYWE0NjVkZTU2YmRiZjU5
YTcwOTc3NWM1OWNiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTEtMTEtMDggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xl
LmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBh
YmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTc5MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcjogRXhwb3NlZCBuZWNlc3Nhcnkgc3ltYm9scy4KKwogMjAxMS0xMS0w
OCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgVGFr
ZSBhbm90aGVyIHN0YWIgYXQgZml4aW5nIHRoZSBHVEsrIGJ1aWxkLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114420</attachid>
            <date>2011-11-09 19:23:58 -0800</date>
            <delta_ts>2011-11-09 19:32:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111110122356.patch</filename>
            <type>text/plain</type>
            <size>21931</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjZiODIxZmVkNWQ2MGE2
ZTY1OWFhNWQwYmYwOTQ4MzBhOTBkOGU2Li40MmUyNjc0ZDdlMjcwODQ5NzllNDlkYWI5ZjE0Yjc0
YmY2ZTBiNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA4ICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIENTU1ByaW1pdGl2ZVZhbHVlIGJpdGZp
ZWxkcyB1cCBpbnRvIENTU1ZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcyZjIyYzQxNmJlN2I1YzZmYzRl
ZDgwOWY5NjMyNDJjMDA3NmJhYWIuLmZkMjdhYTQ1MDgxNDAzNTc5ZmI3MGJmZTkxMDlhZmQzNjA0
YjhkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wOCAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJS
YW5nZUZvck5vZGUgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcg
YSBtYXJrZXIgdHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6IEV4cG9zZWQgbmVjZXNzYXJ5IHJlZmVyZW5jZXMuCisg
ICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOiBkaXR0by4KKwogMjAxMS0xMS0wOSAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBC
dWlsZCBzeXN0ZW0gY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwMzQwOWNjMTQ0MTMz
MDUxYjA2MzNkMjMwNWI1NTJmOGE1OGE2MDQ2Li4xYTBmOTAyMjY0NDk5NzhjN2EzNDY3Y2Y5M2Mz
OTdmNjNkZWQ1MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9f
Wk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZT
dHJpbmdFTlMwXzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1
YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0
ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5k
bGVCYXNlMTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18x
NERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5
cGVzRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVj
dHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNv
cmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMxZWM4YjBjYTNlZjhmYzNi
YTg2MTg4NWU0YWM3MjE5NmUuLmIwZWIxZTE2MmQwNWEzOTQzMmEzMWQwM2Q0YjNhMGYzNzE4MTE4
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
Y3BwCkBAIC0zMTgsMTUgKzMxOCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyOjptYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJl
dHVybiAwOwogfQogCi1WZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXI6Om1hcmtlcnNGb3IoTm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFy
a2VyKj4gcmVzdWx0OwogICAgIE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUp
OwogICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
JihsaXN0LT5hdChpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5
cGUoKSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9
CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDgxMGZiYTA3ZjFlNzVlNDBjODliOGNmZjM5ZmFhYTAw
YWIyOTE4ODkuLjM2YzBkNDMyMzZkOGJhNDRkOTA4NTZkMzc3ZGYzMmFiNWEwMzkwMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcg
KzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVu
dE1hcmtlciogbWFya2VyQ29udGFpbmluZ1BvaW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGUpOwotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtl
cnNGb3IoTm9kZSopOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9k
ZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJr
ZXJzKCkpOwogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdl
KiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJr
ZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVy
ZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc1OThjNWFlZGEyNDI4YzQ4NzU1ZjI0ZWEyNTc0
N2E5ODczMjkyYmQuLmRkMTgxYmFiZjdmNzcxM2JkOGMwYzk5NzNmNWY1NDMzYzdjMGQ2MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0LDM0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgbWFya2VyVHlwZXNGcm9tKGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzJiByZXN1bHQpCit7CisgICAgaWYg
KG1hcmtlclR5cGUuSXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJh
bGwiKSkKKyAgICAgICAgcmVzdWx0ID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKTsKKyAg
ICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiU3BlbGxpbmciKSkKKyAg
ICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKKyAgICBlbHNlIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiR3JhbW1hciIpKQorICAgICAgICByZXN1bHQg
PSAgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXI7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWFya2VyVHlwZSwgIlRleHRNYXRjaCIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1lbnRN
YXJrZXI6OlRleHRNYXRjaDsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJU
eXBlLCAiUmVwbGFjZW1lbnQiKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpS
ZXBsYWNlbWVudDsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAi
Q29ycmVjdGlvbkluZGljYXRvciIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1lbnRNYXJrZXI6
OkNvcnJlY3Rpb25JbmRpY2F0b3I7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFy
a2VyVHlwZSwgIlJlamVjdGVkQ29ycmVjdGlvbiIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1l
bnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbjsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShtYXJrZXJUeXBlLCAiQXV0b2NvcnJlY3RlZCIpKQorICAgICAgICByZXN1bHQgPSAgRG9j
dW1lbnRNYXJrZXI6OkF1dG9jb3JyZWN0ZWQ7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWFya2VyVHlwZSwgIlNwZWxsQ2hlY2tpbmdFeGVtcHRpb24iKSkKKyAgICAgICAgcmVzdWx0
ID0gIERvY3VtZW50TWFya2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uOworICAgIGVsc2UgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJEZWxldGVkQXV0b2NvcnJlY3Rpb24iKSkK
KyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpEZWxldGVkQXV0b2NvcnJlY3Rpb247
CisgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogY29uc3QgY2hhciogSW50ZXJuYWxzOjppbnRlcm5hbHNJZCA9ICJpbnRlcm5hbHMiOwogCiBQ
YXNzUmVmUHRyPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoKQpAQCAtMjEwLDI0ICsyMzks
MzYgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRlcm5hbHM6OmJvdW5kaW5nQm94KEVsZW1l
bnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGUKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3Jl
YXRlKHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3Jtcygp
KTsKIH0KIAotdW5zaWduZWQgSW50ZXJuYWxzOjptYXJrZXJDb3VudEZvck5vZGUoTm9kZSogbm9k
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit1bnNpZ25lZCBJbnRlcm5hbHM6Om1hcmtlckNvdW50Rm9y
Tm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGlmICghbm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlKS5zaXplKCk7CisgICAgRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzOworICAgIGlmICghbWFya2VyVHlwZXNGcm9tKG1h
cmtlclR5cGUsIG1hcmtlclR5cGVzKSkgeworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAg
ICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBub2RlLT5kb2N1bWVudCgpLT5tYXJr
ZXJzKCktPm1hcmtlcnNGb3Iobm9kZSwgbWFya2VyVHlwZXNGcm9tKS5zaXplKCk7CiB9CiAKLVBh
c3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUs
IHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8UmFuZ2U+IElu
dGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
bm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQotICAgIAotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBu
b2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSk7CisKKyAgICBEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXM7CisgICAgaWYgKCFtYXJrZXJUeXBl
c0Zyb20obWFya2VyVHlwZSwgbWFya2VyVHlwZXMpKSB7CisgICAgICAgIGVjID0gU1lOVEFYX0VS
UjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgVmVjdG9yPERvY3VtZW50TWFya2Vy
Kj4gbWFya2VycyA9IG5vZGUtPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2Rl
LCBtYXJrZXJUeXBlcyk7CiAgICAgaWYgKG1hcmtlcnMuc2l6ZSgpIDw9IGluZGV4KQogICAgICAg
ICByZXR1cm4gMDsKICAgICByZXR1cm4gUmFuZ2U6OmNyZWF0ZShub2RlLT5kb2N1bWVudCgpLCBu
b2RlLCBtYXJrZXJzW2luZGV4XS0+c3RhcnRPZmZzZXQoKSwgbm9kZSwgbWFya2Vyc1tpbmRleF0t
PmVuZE9mZnNldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDg0MjA5NzE3
OTRjNTRmNzBhZTE0ZDViMWI0Y2Q2OTIzNmI1MDkxY2QuLmU3ZTAyYTk3NTk3YzM0OTk1YjlmNDUx
YjZkODk5NDBiYTk3NDk3MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtNzIs
OCArNzIsOCBAQCBwdWJsaWM6CiAKICAgICBQYXNzUmVmUHRyPENsaWVudFJlY3Q+IGJvdW5kaW5n
Qm94KEVsZW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CiAKLSAgICB1bnNpZ25lZCBtYXJrZXJDb3Vu
dEZvck5vZGUoTm9kZSosIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBQYXNzUmVmUHRyPFJhbmdlPiBt
YXJrZXJSYW5nZUZvck5vZGUoTm9kZSosIHVuc2lnbmVkLCBFeGNlcHRpb25Db2RlJik7CisgICAg
dW5zaWduZWQgbWFya2VyQ291bnRGb3JOb2RlKE5vZGUqLCBjb25zdCBTdHJpbmcmLCBFeGNlcHRp
b25Db2RlJik7CisgICAgUGFzc1JlZlB0cjxSYW5nZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUq
LCBjb25zdCBTdHJpbmcmLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBz
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKaW5kZXggYjY5ZTE5YWY1N2EwNjZjM2QzN2Y5MmFlMzQ5ZDMwNDQzYjMy
ZjlhZi4uN2M4MzRhOTFmOTExZWZhODQ3OGExMzNkNzNhMGEwZDFjODUzZGFjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNDUsOCArNDUsOCBAQCBtb2R1bGUgd2luZG93
IHsKICAgICAgICAgdm9pZCBzZXRJbnNwZWN0b3JSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0cyhpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyBtYXhpbXVtUmVzb3VyY2VzQ29udGVudFNpemUsIGlu
IGxvbmcgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogCiAgICAgICAgIENsaWVudFJlY3QgYm91bmRpbmdCb3goaW4gRWxlbWVudCBlbGVtZW50
KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgdW5zaWduZWQgbG9uZyBtYXJrZXJDb3Vu
dEZvck5vZGUoaW4gTm9kZSBub2RlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAgUmFu
Z2UgbWFya2VyUmFuZ2VGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gdW5zaWduZWQgbG9uZyBpbmRl
eCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHVuc2lnbmVkIGxvbmcgbWFya2VyQ291
bnRGb3JOb2RlKGluIE5vZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUpIHJhaXNlcyhE
T01FeGNlcHRpb24pOworICAgICAgICBSYW5nZSBtYXJrZXJSYW5nZUZvck5vZGUoaW4gTm9kZSBu
b2RlLCBpbiBET01TdHJpbmcgbWFya2VyVHlwZSwgaW4gdW5zaWduZWQgbG9uZyBpbmRleCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAKICAgICAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRp
b24oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggZDk4NjZiZjczMzliOGUyZDA1YmY5
NWJkOWVkZTgwYzk0ZmRjYjdiZC4uYTViNWYwYmU0MjdkNDQ2MDRiMTVhMDI0N2VmN2JmYWU4Y2Ex
MDcwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTU0LDYgKzE1NCw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhl
Y1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZOb2RlQDFAQFoKICAgICAgICAgP2Vu
c3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQQVZTaGFkb3dSb290QDJAWFoKICAg
ICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxAMUBQQkVAWgorICAgICAgICA/ZXF1
YWxJZ25vcmluZ0Nhc2VAV1RGQEBZQV9OUEFWU3RyaW5nSW1wbEAxQFBCRUBaCiAgICAgICAgID9l
eHRlcm5hbFJlcHJlc2VudGF0aW9uQFdlYkNvcmVAQFlBP0FWU3RyaW5nQFdURkBAUEFWRWxlbWVu
dEAxQElAWgogICAgICAgICA/Z2V0Q2FjaGVkRE9NU3RydWN0dXJlQFdlYkNvcmVAQFlBUEFWU3Ry
dWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQlVDbGFzc0luZm9AM0BAWgogICAg
ICAgICA/Z2V0RGF0YTE2U2xvd0Nhc2VAU3RyaW5nSW1wbEBXVEZAQEFCRVBCX1dYWgpAQCAtMTYy
LDcgKzE2Myw3IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJlbG9hZGVkQENhY2hlZFJlc291cmNl
TG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP2pzU3RyaW5n
U2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAQUFWPyRI
YXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQFVT
dHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJbXBsQFdURkBAQDJAVT8kSGFzaFRy
YWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAyQEBXVEZAQFBBVlN0cmluZ0ltcGxA
NkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0QEhUTUxUZXh0Rm9ybUNvbnRyb2xF
bGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21hcmtlcnNGb3JARG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRvY3VtZW50TWFya2VyQFdl
YkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKKyAgICAgICAgP21hcmtlcnNGb3JARG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9yQFBBVkRvY3VtZW50TWFy
a2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1hcmtlclR5cGVzQERvY3VtZW50TWFy
a2VyQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWUGFnZUAyQFha
CiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZpZXdAV2ViQ29yZUBAQUFFWFhaCiAg
ICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBUZXh0SXRlcmF0b3JAV2ViQ29yZUBA
U0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBXVEZAQFBBVkVsZW1lbnRAMkBISF9O
QFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA2YTYyMGYwOTRiZGVmYWFj
NjZkM2NmODNkMWUyNTc4Nzk4NzkxZDYxLi42Yjk4Mzg3MmNiMTM2ZjJkYzhkYzRjZDk4ODJhN2I5
M2EzNmQxZmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNDcsNiAr
MTQ3LDcgQEAgRVhQT1JUUwogICAgICAgICA/Y3JlYXRlV3JhcHBlckBXZWJDb3JlQEBZQT9BVkpT
VmFsdWVASlNDQEBQQVZFeGVjU3RhdGVAM0BQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBBVk5vZGVA
MUBAWgogICAgICAgICA/ZW5zdXJlU2hhZG93Um9vdEBFbGVtZW50QFdlYkNvcmVAQFFBRVBBVlNo
YWRvd1Jvb3RAMkBYWgogICAgICAgICA/ZXF1YWxAV1RGQEBZQV9OUEJWU3RyaW5nSW1wbEAxQFBC
RUBaCisgICAgICAgID9lcXVhbElnbm9yaW5nQ2FzZUBXVEZAQFlBX05QQVZTdHJpbmdJbXBsQDFA
UEJFQFoKICAgICAgICAgP2V4dGVybmFsUmVwcmVzZW50YXRpb25AV2ViQ29yZUBAWUE/QVZTdHJp
bmdAV1RGQEBQQVZFbGVtZW50QDFASUBaCiAgICAgICAgID9nZXRDYWNoZWRET01TdHJ1Y3R1cmVA
V2ViQ29yZUBAWUFQQVZTdHJ1Y3R1cmVASlNDQEBQQVZKU0RPTUdsb2JhbE9iamVjdEAxQFBCVUNs
YXNzSW5mb0AzQEBaCiAgICAgICAgID9nZXREYXRhMTZTbG93Q2FzZUBTdHJpbmdJbXBsQFdURkBA
QUJFUEJfV1haCkBAIC0xNTUsNyArMTU2LDcgQEAgRVhQT1JUUwogICAgICAgICA/aXNQcmVsb2Fk
ZWRAQ2FjaGVkUmVzb3VyY2VMb2FkZXJAV2ViQ29yZUBAUUJFX05BQlZTdHJpbmdAV1RGQEBAWgog
ICAgICAgICA/anNTdHJpbmdTbG93Q2FzZUBXZWJDb3JlQEBZQT9BVkpTVmFsdWVASlNDQEBQQVZF
eGVjU3RhdGVAM0BBQVY/JEhhc2hNYXBAUEFWU3RyaW5nSW1wbEBXVEZAQFY/JFdlYWtAVkpTU3Ry
aW5nQEpTQ0BAQEpTQ0BAVVN0cmluZ0hhc2hAMkBVPyRIYXNoVHJhaXRzQFBBVlN0cmluZ0ltcGxA
V1RGQEBAMkBVPyRIYXNoVHJhaXRzQFY/JFdlYWtAVkpTU3RyaW5nQEpTQ0BAQEpTQ0BAQDJAQFdU
RkBAUEFWU3RyaW5nSW1wbEA2QEBaCiAgICAgICAgID9sYXN0Q2hhbmdlV2FzVXNlckVkaXRASFRN
TFRleHRGb3JtQ29udHJvbEVsZW1lbnRAV2ViQ29yZUBAUUJFX05YWgotICAgICAgICA/bWFya2Vy
c0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0b3JAUEFW
RG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBAWgorICAgICAgICA/
bWFya2Vyc0ZvckBEb2N1bWVudE1hcmtlckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFP0FWPyRWZWN0
b3JAUEFWRG9jdW1lbnRNYXJrZXJAV2ViQ29yZUBAJDBBQEBXVEZAQFBBVk5vZGVAMkBWTWFya2Vy
VHlwZXNARG9jdW1lbnRNYXJrZXJAMkBAWgogICAgICAgICA/cGFnZUBEb2N1bWVudEBXZWJDb3Jl
QEBRQkVQQVZQYWdlQDJAWFoKICAgICAgICAgP3BhaW50Q29udHJvbFRpbnRzQEZyYW1lVmlld0BX
ZWJDb3JlQEBBQUVYWFoKICAgICAgICAgP3JhbmdlRnJvbUxvY2F0aW9uQW5kTGVuZ3RoQFRleHRJ
dGVyYXRvckBXZWJDb3JlQEBTQT9BVj8kUGFzc1JlZlB0ckBWUmFuZ2VAV2ViQ29yZUBAQFdURkBA
UEFWRWxlbWVudEAyQEhIX05AWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xz
LmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggMzJhNGQ4Zjdj
ZThiMjY4MDYwOWU0ZDI5MDE0Yzg3YTU2ZWY5NDYyNC4uMTlhNjdlNzk0YjMwNDQ3MDEyYTJiM2Q4
MDA4N2QwMGUzYjU4NmI1MiAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZp
bHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC01Niw3ICs1Niw3
IEBAIF9aTjdXZWJDb3JlMjBOb2RlUmVuZGVyaW5nQ29udGV4dEQxRXY7CiBfWk43V2ViQ29yZTIw
U2hhZG93Q29udGVudEVsZW1lbnQ2Y3JlYXRlRVBOU184RG9jdW1lbnRFOwogX1pON1dlYkNvcmUy
MWdldENhY2hlZERPTVN0cnVjdHVyZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQS04zSlNDOUNs
YXNzSW5mb0U7CiBfWk43V2ViQ29yZTIyZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkVQTlNfN0VsZW1l
bnRFajsKLV9aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtlcnNGb3JF
UE5TXzROb2RlRTsKK19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIxMG1hcmtl
cnNGb3JFUE5TXzROb2RlRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRTsKIF9aTjdX
ZWJDb3JlNkpTTm9kZTEwcHV0VmlydHVhbEVQTjNKU0M5RXhlY1N0YXRlRVJLTlMxXzEwSWRlbnRp
ZmllckVOUzFfN0pTVmFsdWVFUk5TMV8xNVB1dFByb3BlcnR5U2xvdEU7CiBfWk43V2ViQ29yZTZK
U05vZGUyMHZpc2l0Q2hpbGRyZW5WaXJ0dWFsRVJOM0pTQzExU2xvdFZpc2l0b3JFOwogX1pON1dl
YkNvcmU2SlNOb2RlNnNfaW5mb0U7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjlmMWQzMjA2NzQzODE5NWYzYWUxNTU1YTY3
OTA2ZGZjZDlkYzE0Yi4uZmI5YjRjN2FmYjNmNWNjNmM1MzQxNDE3NTE2NGRhYzAwOWQ2YTllMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTExLTA5ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlu
eWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9kZSBz
aG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWluZyBhIG1hcmtlciB0eXBl
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3OTIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRp
bmcvc3BlbGxpbmcvbWFya2Vycy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWw6IEZpeGVkIGZ1bmN0aW9uIHVzYWdlLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDogU2tpcHBlZCBj
aHJvbWl1bSB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOiBTa2lwcGVkIGd0
ayB0ZXN0LgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6IFNraXBwZWQgcXQgdGVzdC4K
KyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDogU2tlaXBwZWQgd2luIHRlc3QuCisKIDIw
MTEtMTEtMDkgIEdhYm9yIFJhcGNzYW55aSAgPHJnYWJvckB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtRdF0gVW5yZXZpZXdlZC4gVXBkYXRlIHBsYXRmb3JtIHNwZWNpZmljIGV4cGVjdGVkIHJlc3Vs
dHMgYWdhaW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtl
cnMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwOTQzYmFlNDUxZTg5ZDMzYzgxMDA5MzNmOTliZTJhMzRiMDA3MmYKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApAQCAt
MCwwICsxLDgzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisu
ZWRpdGluZyB7CisgICAgYm9yZGVyOiAycHggc29saWQgcmVkOworICAgIHBhZGRpbmc6IDEycHg7
CisgICAgZm9udC1zaXplOiAyNHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9lZGl0
aW5nLmpzIiBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cHJlIGlkPSJkZXNjcmlwdGlvbiI+PC9w
cmU+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+Cis8L2Rp
dj4KKworPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBjcmVhdGVFZGl0YWJs
ZUVsZW1lbnQoaWQsIHBhcmVudCkgeworICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgnZGl2Jyk7CisgICAgZS5zZXRBdHRyaWJ1dGUoImNvbnRlbnRFZGl0YWJsZSIsICJ0cnVlIik7
CisgICAgZS5jbGFzc05hbWUgPSAnZWRpdGluZyc7CisgICAgZS5pZCA9IGlkOworCisgICAgcGFy
ZW50LmFwcGVuZENoaWxkKGUpOworICAgIHJldHVybiBlOworfQorCitmdW5jdGlvbiB0eXBlVGV4
dChlbGVtLCB0ZXh0KSB7CisgICAgZWxlbS5mb2N1cygpOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGV4dC5sZW5ndGg7ICsraSkgeworICAgICAgICB0eXBlQ2hhcmFjdGVyQ29tbWFuZCh0ZXh0
W2ldKTsKKyAgICB9Cit9CisKK3ZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJyk7Cit2YXIgcmFuZ2U7CisKK2RlYnVnKCJHcmFtbWFyIEVycm9yIE9ubHki
KTsKK3ZhciBpZCA9ICdpZDEnCit2YXIgZSA9IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgY29u
dGFpbmVyKTsKK3R5cGVUZXh0KGUsICdJIGhhdmUgYSBpc3N1ZS4nKTsKK2lmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5m
aXJzdENoaWxkLCAic3BlbGxpbmciKScsICcwJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5t
YXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIpJywgJzEnKTsKKyAgICBy
YW5nZSA9IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1h
ciIsIDApOworICAgIHNob3VsZEJlKCJyYW5nZS50b1N0cmluZygpIiwgJyJhIicpOworfQorCitk
ZWJ1ZygiU3BlbGxpbmcgRXJyb3IgT25seSIpOwordmFyIGlkID0gJ2lkMicKK3ZhciBlID0gY3Jl
YXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWluZXIpOwordHlwZVRleHQoZSwgJ3p6LicpOwor
aWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNv
dW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIpJywgJzEnKTsKKyAgICByYW5nZSA9
IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmciLCAw
KTsKKyAgICBzaG91bGRCZSgncmFuZ2UudG9TdHJpbmcoKScsICcienoiJyk7CisgICAgc2hvdWxk
QmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIp
JywgJzAnKTsKK30KKworZGVidWcoIkdyYW1tYXIgYW5kIFNwZWxsaW5nIEVycm9yIik7Cit2YXIg
aWQgPSAnaWQzJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoaWQsIGNvbnRhaW5lcik7
Cit0eXBlVGV4dChlLCAnb3JhbmdlLHp6LGFwcGxlLicpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICBzaG91bGRCZSgnaW50ZXJuYWxzLm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hp
bGQsICJzcGVsbGluZyIpJywgJzEnKTsKKyAgICByYW5nZSA9IGludGVybmFscy5tYXJrZXJSYW5n
ZUZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmciLCAwKTsKKyAgICBzaG91bGRCZSgncmFu
Z2UudG9TdHJpbmcoKScsICcienoiJyk7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJD
b3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIpJywgJzEnKTsKKyAgICByYW5nZSA9
IGludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIsIDAp
OworICAgIHNob3VsZEJlKCdyYW5nZS50b1N0cmluZygpJywgJyJvcmFuZ2UsenosYXBwbGUuIicp
OworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWluc2VydC1odG1sLmh0bWwKaW5kZXggYmRmNGRhYTk1NjkyMTBmZjgzMDJl
Mjk0ODY3ODIyOTAyYWQ0MzlhOC4uODNjN2M5NmQ5ZmFmZTAzMzYwYWZhMjBhNWViYTQ2MjVjYmRm
MWM2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1p
bnNlcnQtaHRtbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctaW5zZXJ0LWh0bWwuaHRtbApAQCAtMjYsNyArMjYsNyBAQCBpZiAod2luZG93LmludGVybmFs
cykgewogICAgIHZhciB0ZXh0cyA9IGRlc3RpbmF0aW9uLmNoaWxkTm9kZXM7CiAgICAgdmFyIG1h
cmtlZFRleHQgPSAiIjsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRleHRzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIHZhciBtYXJrZWQgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKHRl
eHRzW2ldLCAwKTsKKyAgICAgICAgdmFyIG1hcmtlZCA9IGludGVybmFscy5tYXJrZXJSYW5nZUZv
ck5vZGUodGV4dHNbaV0sICJzcGVsbGluZyIsIDApOwogICAgICAgICBpZiAobWFya2VkKQogICAg
ICAgICAgICAgbWFya2VkVGV4dCArPSBtYXJrZWQudG9TdHJpbmcoKQogICAgIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRl
eCAxMzlkMGEyYWUxZjk4OTQ1ZjkwNGUxNjEyMWNlZGI1ZWFjNmMyYmU2Li5mMDU3OGY0NTkyMmI3
Y2Q5ZTNiZmVlZTQ4YjdmMmU4ODFmZjUwMTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC02NjksNiArNjY5LDkgQEAg
QlVHV0s1NTU2MCA6IGVkaXRpbmcvaW5wdXQvc2V0dGluZy1pbnB1dC12YWx1ZS1jYW5jZWwtaW1l
LWNvbXBvc2l0aW9uLmh0bWwgPSBURVgKIC8vIE5ldyB0ZXN0IGFkZGVkIGluIHI4MjE1OQogQlVH
Q1I3NzcwNiA6IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sID0gRkFJTAogCisvLyBOZWVk
cyBncmFtbWFyIGNoZWNraW5nLgorQlVHV0s3MTc5MiA6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vy
cy5odG1sID0gRkFJTAorCiAvLyBGbGFreQogQlVHQ1I3OTg1NCA6IGVkaXRpbmcvZXhlY0NvbW1h
bmQvZGVsZXRlLWVtcHR5LWNvbnRhaW5lci5odG1sID0gUEFTUyBURVhUCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKaW5kZXggMTI0NDE3YjFjNzY4YTg2ZjNmOTk2ZTNjNWZlYjI3NzQ2Y2RjYjI1
OS4uOGUyNTczNWU1YzRjNmRhM2ZkNTQ5MGVhMjZhM2ZmNTc1MjYyNGY0NiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL1NraXBwZWQKQEAgLTI5Myw2ICsyOTMsOSBAQCBtZWRpYS9tZWRpYS1jYXB0aW9ucy5o
dG1sCiAjIERhdGFUcmFuc2Zlckl0ZW1zIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCiBlZGl0aW5n
L3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCiAKKyMgTmVlZHMgZ3JhbW1hciBj
aGVja2luZy4KK2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKICMgTGVnYWN5IGZ1bGwg
c2NyZWVuIEFQSSB0ZXN0cyBhcmUgbm93IG9ic29sZXRlLgogbWVkaWEvY29udGV4dC1tZW51LWFj
dGlvbnMuaHRtbAogbWVkaWEvbWVkaWEtZnVsbHNjcmVlbi1pbmxpbmUuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKaW5kZXggZjYxMjBjMmFmODMxZDQ1YWFjYTY4NjVjNjIzYjcxMGYzYTZlNjdm
Yy4uY2M1YThjNDBhNzQwMTY2NmIxYzU5NWRkYjUyMTFkZDY2MjI5OTk0ZCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkCkBAIC0xMDMwLDYgKzEwMzAsOSBAQCBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWhhc3NwZWxsaW5nbWFya2VyLmh0bWwKICMgdGV4dElucHV0Q29udHJvbGxlci5oYXNHcmFt
bWFyTWFya2VycygpIGlzIG5vdCBpbXBsZW1lbnRlZC4KIGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1h
ci5odG1sCiAKKyMgTmVlZHMgZ3JhbW1hciBjaGVja2luZy4KK2VkaXRpbmcvc3BlbGxpbmcvbWFy
a2Vycy5odG1sCisKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1
NDM1CiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0
bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA1ZGQ5NzljMDk1ODJiOGIzNzE3MDA4
NjAwYmZlYWIyMGIyYzdjYWY4Li5kNTBiN2QxNmZhMzhhNzNkYmRiNjY0MTUwOTY2NGM4NjBlZjcw
MTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTAyNCw2ICsxMDI0LDkgQEAgc3Zn
L3RleHQvY2FyZXQtaW4tc3ZnLXRleHQueGh0bWwKICMgdGV4dElucHV0Q29udHJvbGxlci5oYXNH
cmFtbWFyTWFya2VycygpIGlzIG5vdCBpbXBsZW1lbnRlZC4KIGVkaXRpbmcvc3BlbGxpbmcvZ3Jh
bW1hci5odG1sCiAKKyMgTmVlZHMgZ3JhbW1hciBjaGVja2luZy4KK2VkaXRpbmcvc3BlbGxpbmcv
bWFya2Vycy5odG1sCisKICMgRWRpdG9yQ2xpZW50OjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZygp
IGlzIG5vdCBpbXBsZW1lbnRlZAogZWRpdGluZy9zcGVsbGluZy9zcGVsbGNoZWNrLXBhc3RlLmh0
bWwKIApkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGNlZGEzOTg5YTQ5
Y2ViZTBkZDc1MjI4NmM2NDAwNjhjMjYzYjg3Y2UuLmEyN2ZjNDQ1NjkyMWZhYTQ2NWRlNTZiZGJm
NTlhNzA5Nzc1YzU5Y2IgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxMiBAQAorMjAxMS0xMS0wOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29n
bGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJSYW5nZUZvck5vZGUgc2hvdWxkIGJl
IGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcgYSBtYXJrZXIgdHlwZS4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzkyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rv
b2xzL3N5bWJvbHMuZmlsdGVyOiBFeHBvc2VkIG5lY2Vzc2FyeSBzeW1ib2xzLgorCiAyMDExLTEx
LTA4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBU
YWtlIGFub3RoZXIgc3RhYiBhdCBmaXhpbmcgdGhlIEdUSysgYnVpbGQuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114422</attachid>
            <date>2011-11-09 19:32:54 -0800</date>
            <delta_ts>2011-11-27 20:31:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111110123252.patch</filename>
            <type>text/plain</type>
            <size>21935</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk2ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0NjZiODIxZmVkNWQ2MGE2
ZTY1OWFhNWQwYmYwOTQ4MzBhOTBkOGU2Li40MmUyNjc0ZDdlMjcwODQ5NzllNDlkYWI5ZjE0Yjc0
YmY2ZTBiNjMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMTEtMDggIFNoaW55
YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFy
a2VyUmFuZ2VGb3JOb2RlIHNob3VsZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5
aW5nIGEgbWFya2VyIHR5cGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTc5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3Q6IGVkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy5odG1sCisKKyAgICAgICAg
KiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBkb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vy
c0Zvcik6CisgICAgICAgICAgVGFrZXMgbWFya2VyIHR5cGVzIHRvIGdldCBvbmx5IG5lY2Vzc2Fy
eSBtYXJrZXJzLgorICAgICAgICAqIGRvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYXJrZXJU
eXBlc0Zyb20pOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6bWFya2VyQ291
bnRGb3JOb2RlKToKKyAgICAgICAgICBUYWtlcyBtYXJrZXIgdHlwZXMgdG8gZ2V0IG9ubHkgbmVj
ZXNzYXJ5IG1hcmtlcnMuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6Om1hcmtlclJhbmdl
Rm9yTm9kZSk6IGRpdHRvLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAg
ICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAyMDExLTExLTA4ICBBbmRyZWFzIEtsaW5nICA8
a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIENTU1ByaW1pdGl2ZVZhbHVlIGJpdGZp
ZWxkcyB1cCBpbnRvIENTU1ZhbHVlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDcyZjIyYzQxNmJlN2I1YzZmYzRl
ZDgwOWY5NjMyNDJjMDA3NmJhYWIuLmZkMjdhYTQ1MDgxNDAzNTc5ZmI3MGJmZTkxMDlhZmQzNjA0
YjhkMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMS0wOCAgU2hpbnlhIEth
d2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJS
YW5nZUZvck5vZGUgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcg
YSBtYXJrZXIgdHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6IEV4cG9zZWQgbmVjZXNzYXJ5IHJlZmVyZW5jZXMuCisg
ICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOiBkaXR0by4KKwogMjAxMS0xMS0wOSAgU2lt
b24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBC
dWlsZCBzeXN0ZW0gY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5l
eHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCAwMzQwOWNjMTQ0MTMz
MDUxYjA2MzNkMjMwNWI1NTJmOGE1OGE2MDQ2Li4xYTBmOTAyMjY0NDk5NzhjN2EzNDY3Y2Y5M2Mz
OTdmNjNkZWQ1MjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtNjM2LDcgKzYzNiw3IEBAIF9f
Wk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUk4zV1RGN0hhc2hTZXRJTlMwXzZT
dHJpbmdFTlMwXzEwU3RyaW5nSGFzCiBfX1pON1dlYkNvcmUyM292ZXJyaWRlRGVmYXVsdExhbmd1
YWdlRVJLTjNXVEY2U3RyaW5nRQogX19aTjdXZWJDb3JlMjRCaW5hcnlQcm9wZXJ0eUxpc3RXcml0
ZXIxN3dyaXRlUHJvcGVydHlMaXN0RXYKIF9fWk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5k
bGVCYXNlMTFzZXRSZXNvdXJjZUVQTlNfMTRDYWNoZWRSZXNvdXJjZUUKLV9fWk43V2ViQ29yZTI0
RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUUKK19fWk43V2Vi
Q29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJzRm9yRVBOU180Tm9kZUVOU18x
NERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJr
ZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5
cGVzRQogX19aTjdXZWJDb3JlMjREb2N1bWVudE1hcmtlckNvbnRyb2xsZXIyM3JlbmRlcmVkUmVj
dHNGb3JNYXJrZXJzRU5TXzE0RG9jdW1lbnRNYXJrZXIxME1hcmtlclR5cGVFCiBfX1pON1dlYkNv
cmUyNGNvbnRleHRNZW51SXRlbVRhZ0l0YWxpY0V2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudE1hcmtlckNvbnRyb2xsZXIuY3BwCmluZGV4IDJmZDJiODMxZWM4YjBjYTNlZjhmYzNi
YTg2MTg4NWU0YWM3MjE5NmUuLmIwZWIxZTE2MmQwNWEzOTQzMmEzMWQwM2Q0YjNhMGYzNzE4MTE4
OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIu
Y3BwCkBAIC0zMTgsMTUgKzMxOCwxNyBAQCBEb2N1bWVudE1hcmtlciogRG9jdW1lbnRNYXJrZXJD
b250cm9sbGVyOjptYXJrZXJDb250YWluaW5nUG9pbnQoY29uc3QgTGF5b3V0UG9pbgogICAgIHJl
dHVybiAwOwogfQogCi1WZWN0b3I8RG9jdW1lbnRNYXJrZXIqPiBEb2N1bWVudE1hcmtlckNvbnRy
b2xsZXI6Om1hcmtlcnNGb3IoTm9kZSogbm9kZSkKK1ZlY3RvcjxEb2N1bWVudE1hcmtlcio+IERv
Y3VtZW50TWFya2VyQ29udHJvbGxlcjo6bWFya2Vyc0ZvcihOb2RlKiBub2RlLCBEb2N1bWVudE1h
cmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXMpCiB7CiAgICAgVmVjdG9yPERvY3VtZW50TWFy
a2VyKj4gcmVzdWx0OwogICAgIE1hcmtlckxpc3QqIGxpc3QgPSBtX21hcmtlcnMuZ2V0KG5vZGUp
OwogICAgIGlmICghbGlzdCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKIAotICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
JihsaXN0LT5hdChpKSkpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGlzdC0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgaWYgKG1hcmtlclR5cGVzLmNvbnRhaW5zKGxpc3QtPmF0KGkpLnR5
cGUoKSkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCYobGlzdC0+YXQoaSkpKTsKKyAgICB9
CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
TWFya2VyQ29udHJvbGxlci5oCmluZGV4IDgxMGZiYTA3ZjFlNzVlNDBjODliOGNmZjM5ZmFhYTAw
YWIyOTE4ODkuLjM2YzBkNDMyMzZkOGJhNDRkOTA4NTZkMzc3ZGYzMmFiNWEwMzkwMjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgKQEAgLTY5LDcg
KzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TWFya2Vyc0FjdGl2ZShOb2RlKiwgdW5zaWdu
ZWQgc3RhcnRPZmZzZXQsIHVuc2lnbmVkIGVuZE9mZnNldCwgYm9vbCk7CiAKICAgICBEb2N1bWVu
dE1hcmtlciogbWFya2VyQ29udGFpbmluZ1BvaW50KGNvbnN0IExheW91dFBvaW50JiwgRG9jdW1l
bnRNYXJrZXI6Ok1hcmtlclR5cGUpOwotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtl
cnNGb3IoTm9kZSopOworICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNGb3IoTm9k
ZSosIERvY3VtZW50TWFya2VyOjpNYXJrZXJUeXBlcyA9IERvY3VtZW50TWFya2VyOjpBbGxNYXJr
ZXJzKCkpOwogICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnNJblJhbmdlKFJhbmdl
KiwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzKTsKICAgICBWZWN0b3I8RG9jdW1lbnRNYXJr
ZXI+IG1hcmtlcnNGb3JOb2RlKE5vZGUqKTsKICAgICBWZWN0b3I8TGF5b3V0UmVjdD4gcmVuZGVy
ZWRSZWN0c0Zvck1hcmtlcnMoRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDc1OThjNWFlZGEyNDI4YzQ4NzU1ZjI0ZWEyNTc0
N2E5ODczMjkyYmQuLjY3MmRiNTk1ZTgyN2Y1ZGE0YTM2YmVhMTBiZDVhMGNhN2FhZDk3YmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNs
dWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkRvY3VtZW50TWFya2VyLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKQEAgLTYzLDYgKzY0LDM0IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorc3RhdGljIGJvb2wgbWFya2VyVHlwZXNGcm9tKGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgRG9jdW1lbnRNYXJrZXI6Ok1hcmtlclR5cGVzJiByZXN1bHQpCit7CisgICAgaWYg
KG1hcmtlclR5cGUuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJh
bGwiKSkKKyAgICAgICAgcmVzdWx0ID0gRG9jdW1lbnRNYXJrZXI6OkFsbE1hcmtlcnMoKTsKKyAg
ICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiU3BlbGxpbmciKSkKKyAg
ICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpTcGVsbGluZzsKKyAgICBlbHNlIGlmIChl
cXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAiR3JhbW1hciIpKQorICAgICAgICByZXN1bHQg
PSAgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXI7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWFya2VyVHlwZSwgIlRleHRNYXRjaCIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1lbnRN
YXJrZXI6OlRleHRNYXRjaDsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJU
eXBlLCAiUmVwbGFjZW1lbnQiKSkKKyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpS
ZXBsYWNlbWVudDsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtYXJrZXJUeXBlLCAi
Q29ycmVjdGlvbkluZGljYXRvciIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1lbnRNYXJrZXI6
OkNvcnJlY3Rpb25JbmRpY2F0b3I7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWFy
a2VyVHlwZSwgIlJlamVjdGVkQ29ycmVjdGlvbiIpKQorICAgICAgICByZXN1bHQgPSAgRG9jdW1l
bnRNYXJrZXI6OlJlamVjdGVkQ29ycmVjdGlvbjsKKyAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShtYXJrZXJUeXBlLCAiQXV0b2NvcnJlY3RlZCIpKQorICAgICAgICByZXN1bHQgPSAgRG9j
dW1lbnRNYXJrZXI6OkF1dG9jb3JyZWN0ZWQ7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWFya2VyVHlwZSwgIlNwZWxsQ2hlY2tpbmdFeGVtcHRpb24iKSkKKyAgICAgICAgcmVzdWx0
ID0gIERvY3VtZW50TWFya2VyOjpTcGVsbENoZWNraW5nRXhlbXB0aW9uOworICAgIGVsc2UgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKG1hcmtlclR5cGUsICJEZWxldGVkQXV0b2NvcnJlY3Rpb24iKSkK
KyAgICAgICAgcmVzdWx0ID0gIERvY3VtZW50TWFya2VyOjpEZWxldGVkQXV0b2NvcnJlY3Rpb247
CisgICAgZWxzZQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KwogY29uc3QgY2hhciogSW50ZXJuYWxzOjppbnRlcm5hbHNJZCA9ICJpbnRlcm5hbHMiOwogCiBQ
YXNzUmVmUHRyPEludGVybmFscz4gSW50ZXJuYWxzOjpjcmVhdGUoKQpAQCAtMjEwLDI0ICsyMzks
MzYgQEAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBJbnRlcm5hbHM6OmJvdW5kaW5nQm94KEVsZW1l
bnQqIGVsZW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGUKICAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3Jl
YXRlKHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdElnbm9yaW5nVHJhbnNmb3Jtcygp
KTsKIH0KIAotdW5zaWduZWQgSW50ZXJuYWxzOjptYXJrZXJDb3VudEZvck5vZGUoTm9kZSogbm9k
ZSwgRXhjZXB0aW9uQ29kZSYgZWMpCit1bnNpZ25lZCBJbnRlcm5hbHM6Om1hcmtlckNvdW50Rm9y
Tm9kZShOb2RlKiBub2RlLCBjb25zdCBTdHJpbmcmIG1hcmtlclR5cGUsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGlmICghbm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VS
UjsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogCi0gICAgcmV0dXJuIG5vZGUtPmRvY3VtZW50
KCktPm1hcmtlcnMoKS0+bWFya2Vyc0Zvcihub2RlKS5zaXplKCk7CisgICAgRG9jdW1lbnRNYXJr
ZXI6Ok1hcmtlclR5cGVzIG1hcmtlclR5cGVzID0gMDsKKyAgICBpZiAoIW1hcmtlclR5cGVzRnJv
bShtYXJrZXJUeXBlLCBtYXJrZXJUeXBlcykpIHsKKyAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gbm9kZS0+ZG9jdW1lbnQoKS0+
bWFya2VycygpLT5tYXJrZXJzRm9yKG5vZGUsIG1hcmtlclR5cGVzKS5zaXplKCk7CiB9CiAKLVBh
c3NSZWZQdHI8UmFuZ2U+IEludGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUs
IHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKK1Bhc3NSZWZQdHI8UmFuZ2U+IElu
dGVybmFsczo6bWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqIG5vZGUsIGNvbnN0IFN0cmluZyYgbWFy
a2VyVHlwZSwgdW5zaWduZWQgaW5kZXgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICgh
bm9kZSkgewogICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQotICAgIAotICAgIFZlY3RvcjxEb2N1bWVudE1hcmtlcio+IG1hcmtlcnMgPSBu
b2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Iobm9kZSk7CisKKyAgICBEb2N1
bWVudE1hcmtlcjo6TWFya2VyVHlwZXMgbWFya2VyVHlwZXMgPSAwOworICAgIGlmICghbWFya2Vy
VHlwZXNGcm9tKG1hcmtlclR5cGUsIG1hcmtlclR5cGVzKSkgeworICAgICAgICBlYyA9IFNZTlRB
WF9FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIFZlY3RvcjxEb2N1bWVudE1h
cmtlcio+IG1hcmtlcnMgPSBub2RlLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPm1hcmtlcnNGb3Io
bm9kZSwgbWFya2VyVHlwZXMpOwogICAgIGlmIChtYXJrZXJzLnNpemUoKSA8PSBpbmRleCkKICAg
ICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuIFJhbmdlOjpjcmVhdGUobm9kZS0+ZG9jdW1lbnQo
KSwgbm9kZSwgbWFya2Vyc1tpbmRleF0tPnN0YXJ0T2Zmc2V0KCksIG5vZGUsIG1hcmtlcnNbaW5k
ZXhdLT5lbmRPZmZzZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCA4NDIw
OTcxNzk0YzU0ZjcwYWUxNGQ1YjFiNGNkNjkyMzZiNTA5MWNkLi5lN2UwMmE5NzU5N2MzNDk5NWI5
ZjQ1MWI2ZDg5OTQwYmE5NzQ5NzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAg
LTcyLDggKzcyLDggQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxDbGllbnRSZWN0PiBib3Vu
ZGluZ0JveChFbGVtZW50KiwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdW5zaWduZWQgbWFya2Vy
Q291bnRGb3JOb2RlKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgUGFzc1JlZlB0cjxSYW5n
ZT4gbWFya2VyUmFuZ2VGb3JOb2RlKE5vZGUqLCB1bnNpZ25lZCwgRXhjZXB0aW9uQ29kZSYpOwor
ICAgIHVuc2lnbmVkIG1hcmtlckNvdW50Rm9yTm9kZShOb2RlKiwgY29uc3QgU3RyaW5nJiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIFBhc3NSZWZQdHI8UmFuZ2U+IG1hcmtlclJhbmdlRm9yTm9kZShO
b2RlKiwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHZv
aWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlv
bihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGI2OWUxOWFmNTdhMDY2YzNkMzdmOTJhZTM0OWQzMDQ0
M2IzMmY5YWYuLjdjODM0YTkxZjkxMWVmYTg0NzhhMTMzZDczYTBhMGQxYzg1M2RhYzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTQ1LDggKzQ1LDggQEAgbW9kdWxlIHdp
bmRvdyB7CiAgICAgICAgIHZvaWQgc2V0SW5zcGVjdG9yUmVzb3VyY2VzRGF0YVNpemVMaW1pdHMo
aW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGxvbmcgbWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXpl
LCBpbiBsb25nIG1heGltdW1TaW5nbGVSZXNvdXJjZUNvbnRlbnRTaXplKSByYWlzZXMoRE9NRXhj
ZXB0aW9uKTsKIAogICAgICAgICBDbGllbnRSZWN0IGJvdW5kaW5nQm94KGluIEVsZW1lbnQgZWxl
bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIHVuc2lnbmVkIGxvbmcgbWFya2Vy
Q291bnRGb3JOb2RlKGluIE5vZGUgbm9kZSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAg
IFJhbmdlIG1hcmtlclJhbmdlRm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIHVuc2lnbmVkIGxvbmcg
aW5kZXgpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB1bnNpZ25lZCBsb25nIG1hcmtl
ckNvdW50Rm9yTm9kZShpbiBOb2RlIG5vZGUsIGluIERPTVN0cmluZyBtYXJrZXJUeXBlKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgUmFuZ2UgbWFya2VyUmFuZ2VGb3JOb2RlKGluIE5v
ZGUgbm9kZSwgaW4gRE9NU3RyaW5nIG1hcmtlclR5cGUsIGluIHVuc2lnbmVkIGxvbmcgaW5kZXgp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGlu
Z01vZGUoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBv
c2l0aW9uKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IGQ5ODY2YmY3MzM5YjhlMmQw
NWJmOTViZDllZGU4MGM5NGZkY2I3YmQuLmE1YjVmMGJlNDI3ZDQ0NjA0YjE1YTAyNDdlZjdiZmFl
OGNhMTA3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE1NCw2ICsxNTQsNyBAQCBFWFBP
UlRTCiAgICAgICAgID9jcmVhdGVXcmFwcGVyQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBB
VkV4ZWNTdGF0ZUAzQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEFWTm9kZUAxQEBaCiAgICAgICAg
ID9lbnN1cmVTaGFkb3dSb290QEVsZW1lbnRAV2ViQ29yZUBAUUFFUEFWU2hhZG93Um9vdEAyQFha
CiAgICAgICAgID9lcXVhbEBXVEZAQFlBX05QQlZTdHJpbmdJbXBsQDFAUEJFQFoKKyAgICAgICAg
P2VxdWFsSWdub3JpbmdDYXNlQFdURkBAWUFfTlBBVlN0cmluZ0ltcGxAMUBQQkVAWgogICAgICAg
ICA/ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbkBXZWJDb3JlQEBZQT9BVlN0cmluZ0BXVEZAQFBBVkVs
ZW1lbnRAMUBJQFoKICAgICAgICAgP2dldENhY2hlZERPTVN0cnVjdHVyZUBXZWJDb3JlQEBZQVBB
VlN0cnVjdHVyZUBKU0NAQFBBVkpTRE9NR2xvYmFsT2JqZWN0QDFAUEJVQ2xhc3NJbmZvQDNAQFoK
ICAgICAgICAgP2dldERhdGExNlNsb3dDYXNlQFN0cmluZ0ltcGxAV1RGQEBBQkVQQl9XWFoKQEAg
LTE2Miw3ICsxNjMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9pc1ByZWxvYWRlZEBDYWNoZWRSZXNv
dXJjZUxvYWRlckBXZWJDb3JlQEBRQkVfTkFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9qc1N0
cmluZ1Nsb3dDYXNlQFdlYkNvcmVAQFlBP0FWSlNWYWx1ZUBKU0NAQFBBVkV4ZWNTdGF0ZUAzQEFB
Vj8kSGFzaE1hcEBQQVZTdHJpbmdJbXBsQFdURkBAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlND
QEBVU3RyaW5nSGFzaEAyQFU/JEhhc2hUcmFpdHNAUEFWU3RyaW5nSW1wbEBXVEZAQEAyQFU/JEhh
c2hUcmFpdHNAVj8kV2Vha0BWSlNTdHJpbmdASlNDQEBASlNDQEBAMkBAV1RGQEBQQVZTdHJpbmdJ
bXBsQDZAQFoKICAgICAgICAgP2xhc3RDaGFuZ2VXYXNVc2VyRWRpdEBIVE1MVGV4dEZvcm1Db250
cm9sRWxlbWVudEBXZWJDb3JlQEBRQkVfTlhaCi0gICAgICAgID9tYXJrZXJzRm9yQERvY3VtZW50
TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVudE1hcmtl
ckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQEBaCisgICAgICAgID9tYXJrZXJzRm9yQERv
Y3VtZW50TWFya2VyQ29udHJvbGxlckBXZWJDb3JlQEBRQUU/QVY/JFZlY3RvckBQQVZEb2N1bWVu
dE1hcmtlckBXZWJDb3JlQEAkMEFAQFdURkBAUEFWTm9kZUAyQFZNYXJrZXJUeXBlc0BEb2N1bWVu
dE1hcmtlckAyQEBaCiAgICAgICAgID9wYWdlQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlBhZ2VA
MkBYWgogICAgICAgICA/cGFpbnRDb250cm9sVGludHNARnJhbWVWaWV3QFdlYkNvcmVAQEFBRVhY
WgogICAgICAgICA/cmFuZ2VGcm9tTG9jYXRpb25BbmRMZW5ndGhAVGV4dEl0ZXJhdG9yQFdlYkNv
cmVAQFNBP0FWPyRQYXNzUmVmUHRyQFZSYW5nZUBXZWJDb3JlQEBAV1RGQEBQQVZFbGVtZW50QDJA
SEhfTkBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYg
Yi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggNmE2MjBmMDk0YmRl
ZmFhYzY2ZDNjZjgzZDFlMjU3ODc5ODc5MWQ2MS4uNmI5ODM4NzJjYjEzNmYyZGM4ZGM0Y2Q5ODgy
YTdiOTNhMzZkMWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxp
dGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTQ3
LDYgKzE0Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP2NyZWF0ZVdyYXBwZXJAV2ViQ29yZUBAWUE/
QVZKU1ZhbHVlQEpTQ0BAUEFWRXhlY1N0YXRlQDNAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQQVZO
b2RlQDFAQFoKICAgICAgICAgP2Vuc3VyZVNoYWRvd1Jvb3RARWxlbWVudEBXZWJDb3JlQEBRQUVQ
QVZTaGFkb3dSb290QDJAWFoKICAgICAgICAgP2VxdWFsQFdURkBAWUFfTlBCVlN0cmluZ0ltcGxA
MUBQQkVAWgorICAgICAgICA/ZXF1YWxJZ25vcmluZ0Nhc2VAV1RGQEBZQV9OUEFWU3RyaW5nSW1w
bEAxQFBCRUBaCiAgICAgICAgID9leHRlcm5hbFJlcHJlc2VudGF0aW9uQFdlYkNvcmVAQFlBP0FW
U3RyaW5nQFdURkBAUEFWRWxlbWVudEAxQElAWgogICAgICAgICA/Z2V0Q2FjaGVkRE9NU3RydWN0
dXJlQFdlYkNvcmVAQFlBUEFWU3RydWN0dXJlQEpTQ0BAUEFWSlNET01HbG9iYWxPYmplY3RAMUBQ
QlVDbGFzc0luZm9AM0BAWgogICAgICAgICA/Z2V0RGF0YTE2U2xvd0Nhc2VAU3RyaW5nSW1wbEBX
VEZAQEFCRVBCX1dYWgpAQCAtMTU1LDcgKzE1Niw3IEBAIEVYUE9SVFMKICAgICAgICAgP2lzUHJl
bG9hZGVkQENhY2hlZFJlc291cmNlTG9hZGVyQFdlYkNvcmVAQFFCRV9OQUJWU3RyaW5nQFdURkBA
QFoKICAgICAgICAgP2pzU3RyaW5nU2xvd0Nhc2VAV2ViQ29yZUBAWUE/QVZKU1ZhbHVlQEpTQ0BA
UEFWRXhlY1N0YXRlQDNAQUFWPyRIYXNoTWFwQFBBVlN0cmluZ0ltcGxAV1RGQEBWPyRXZWFrQFZK
U1N0cmluZ0BKU0NAQEBKU0NAQFVTdHJpbmdIYXNoQDJAVT8kSGFzaFRyYWl0c0BQQVZTdHJpbmdJ
bXBsQFdURkBAQDJAVT8kSGFzaFRyYWl0c0BWPyRXZWFrQFZKU1N0cmluZ0BKU0NAQEBKU0NAQEAy
QEBXVEZAQFBBVlN0cmluZ0ltcGxANkBAWgogICAgICAgICA/bGFzdENoYW5nZVdhc1VzZXJFZGl0
QEhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50QFdlYkNvcmVAQFFCRV9OWFoKLSAgICAgICAgP21h
cmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8kVmVjdG9y
QFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAQFoKKyAgICAg
ICAgP21hcmtlcnNGb3JARG9jdW1lbnRNYXJrZXJDb250cm9sbGVyQFdlYkNvcmVAQFFBRT9BVj8k
VmVjdG9yQFBBVkRvY3VtZW50TWFya2VyQFdlYkNvcmVAQCQwQUBAV1RGQEBQQVZOb2RlQDJAVk1h
cmtlclR5cGVzQERvY3VtZW50TWFya2VyQDJAQFoKICAgICAgICAgP3BhZ2VARG9jdW1lbnRAV2Vi
Q29yZUBAUUJFUEFWUGFnZUAyQFhaCiAgICAgICAgID9wYWludENvbnRyb2xUaW50c0BGcmFtZVZp
ZXdAV2ViQ29yZUBAQUFFWFhaCiAgICAgICAgID9yYW5nZUZyb21Mb2NhdGlvbkFuZExlbmd0aEBU
ZXh0SXRlcmF0b3JAV2ViQ29yZUBAU0E/QVY/JFBhc3NSZWZQdHJAVlJhbmdlQFdlYkNvcmVAQEBX
VEZAQFBBVkVsZW1lbnRAMkBISF9OQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3lt
Ym9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDMyYTRk
OGY3Y2U4YjI2ODA2MDllNGQyOTAxNGM4N2E1NmVmOTQ2MjQuLjE5YTY3ZTc5NGIzMDQ0NzAxMmEy
YjNkODAwODdkMDBlM2I1ODZiNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9s
cy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtNTYsNyAr
NTYsNyBAQCBfWk43V2ViQ29yZTIwTm9kZVJlbmRlcmluZ0NvbnRleHREMUV2OwogX1pON1dlYkNv
cmUyMFNoYWRvd0NvbnRlbnRFbGVtZW50NmNyZWF0ZUVQTlNfOERvY3VtZW50RTsKIF9aTjdXZWJD
b3JlMjFnZXRDYWNoZWRET01TdHJ1Y3R1cmVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUEtOM0pT
QzlDbGFzc0luZm9FOwogX1pON1dlYkNvcmUyMmV4dGVybmFsUmVwcmVzZW50YXRpb25FUE5TXzdF
bGVtZW50RWo7Ci1fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBtYXJrZXJz
Rm9yRVBOU180Tm9kZUU7CitfWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBt
YXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0U7CiBf
Wk43V2ViQ29yZTZKU05vZGUxMHB1dFZpcnR1YWxFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElk
ZW50aWZpZXJFTlMxXzdKU1ZhbHVlRVJOUzFfMTVQdXRQcm9wZXJ0eVNsb3RFOwogX1pON1dlYkNv
cmU2SlNOb2RlMjB2aXNpdENoaWxkcmVuVmlydHVhbEVSTjNKU0MxMVNsb3RWaXNpdG9yRTsKIF9a
TjdXZWJDb3JlNkpTTm9kZTZzX2luZm9FOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGY5ZjFkMzIwNjc0MzgxOTVmM2FlMTU1
NWE2NzkwNmRmY2Q5ZGMxNGIuLmZiOWI0YzdhZmIzZjVjYzZjNTM0MTQxNzUxNjRkYWMwMDlkNmE5
ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0wOSAgU2hpbnlhIEthd2FuYWthICA8
c2hpbnlha0Bnb29nbGUuY29tPgorCisgICAgICAgIEludGVybmFscy5tYXJrZXJSYW5nZUZvck5v
ZGUgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBtYXJrZXJzIGJ5IHNwZWNpZnlpbmcgYSBtYXJrZXIg
dHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcx
NzkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBl
ZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sOiBGaXhlZCBmdW5jdGlvbiB1c2FnZS4K
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6IFNraXBw
ZWQgY2hyb21pdW0gdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDogU2tpcHBl
ZCBndGsgdGVzdC4KKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOiBTa2lwcGVkIHF0IHRl
c3QuCisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6IFNrZWlwcGVkIHdpbiB0ZXN0Lgor
CiAyMDExLTExLTA5ICBHYWJvciBSYXBjc2FueWkgIDxyZ2Fib3JAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBbUXRdIFVucmV2aWV3ZWQuIFVwZGF0ZSBwbGF0Zm9ybSBzcGVjaWZpYyBleHBlY3RlZCBy
ZXN1bHRzIGFnYWluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9t
YXJrZXJzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMDk0M2JhZTQ1MWU4OWQzM2M4MTAwOTMzZjk5YmUyYTM0YjAwNzJmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwK
QEAgLTAsMCArMSw4MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxl
PgorLmVkaXRpbmcgeworICAgIGJvcmRlcjogMnB4IHNvbGlkIHJlZDsKKyAgICBwYWRkaW5nOiAx
MnB4OworICAgIGZvbnQtc2l6ZTogMjRweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0IHNyYz0iLi4v
ZWRpdGluZy5qcyIgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIg
Pjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHByZSBpZD0iZGVzY3JpcHRpb24i
PjwvcHJlPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8ZGl2IGlkPSJjb250YWluZXIiPgor
PC9kaXY+CisKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKworZnVuY3Rpb24gY3JlYXRlRWRp
dGFibGVFbGVtZW50KGlkLCBwYXJlbnQpIHsKKyAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgIGUuc2V0QXR0cmlidXRlKCJjb250ZW50RWRpdGFibGUiLCAidHJ1
ZSIpOworICAgIGUuY2xhc3NOYW1lID0gJ2VkaXRpbmcnOworICAgIGUuaWQgPSBpZDsKKworICAg
IHBhcmVudC5hcHBlbmRDaGlsZChlKTsKKyAgICByZXR1cm4gZTsKK30KKworZnVuY3Rpb24gdHlw
ZVRleHQoZWxlbSwgdGV4dCkgeworICAgIGVsZW0uZm9jdXMoKTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRleHQubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHlwZUNoYXJhY3RlckNvbW1hbmQo
dGV4dFtpXSk7CisgICAgfQorfQorCit2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnRhaW5lcicpOwordmFyIHJhbmdlOworCitkZWJ1ZygiR3JhbW1hciBFcnJvciBP
bmx5Iik7Cit2YXIgaWQgPSAnaWQxJwordmFyIGUgPSBjcmVhdGVFZGl0YWJsZUVsZW1lbnQoaWQs
IGNvbnRhaW5lcik7Cit0eXBlVGV4dChlLCAnSSBoYXZlIGEgaXNzdWUuJyk7CitpZiAod2luZG93
LmludGVybmFscykgeworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2Rl
KGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiknLCAnMCcpOworICAgIHNob3VsZEJlKCdpbnRlcm5h
bHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7Cisg
ICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdy
YW1tYXIiLCAwKTsKKyAgICBzaG91bGRCZSgicmFuZ2UudG9TdHJpbmcoKSIsICciYSInKTsKK30K
KworZGVidWcoIlNwZWxsaW5nIEVycm9yIE9ubHkiKTsKK3ZhciBpZCA9ICdpZDInCit2YXIgZSA9
IGNyZWF0ZUVkaXRhYmxlRWxlbWVudChpZCwgY29udGFpbmVyKTsKK3R5cGVUZXh0KGUsICd6ei4n
KTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJr
ZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmciKScsICcxJyk7CisgICAgcmFu
Z2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5n
IiwgMCk7CisgICAgc2hvdWxkQmUoJ3JhbmdlLnRvU3RyaW5nKCknLCAnInp6IicpOworICAgIHNo
b3VsZEJlKCdpbnRlcm5hbHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1t
YXIiKScsICcwJyk7Cit9CisKK2RlYnVnKCJHcmFtbWFyIGFuZCBTcGVsbGluZyBFcnJvciIpOwor
dmFyIGlkID0gJ2lkMycKK3ZhciBlID0gY3JlYXRlRWRpdGFibGVFbGVtZW50KGlkLCBjb250YWlu
ZXIpOwordHlwZVRleHQoZSwgJ29yYW5nZSx6eixhcHBsZS4nKTsKK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgc2hvdWxkQmUoJ2ludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJz
dENoaWxkLCAic3BlbGxpbmciKScsICcxJyk7CisgICAgcmFuZ2UgPSBpbnRlcm5hbHMubWFya2Vy
UmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgInNwZWxsaW5nIiwgMCk7CisgICAgc2hvdWxkQmUo
J3JhbmdlLnRvU3RyaW5nKCknLCAnInp6IicpOworICAgIHNob3VsZEJlKCdpbnRlcm5hbHMubWFy
a2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKScsICcxJyk7CisgICAgcmFu
Z2UgPSBpbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIi
LCAwKTsKKyAgICBzaG91bGRCZSgncmFuZ2UudG9TdHJpbmcoKScsICcib3JhbmdlLHp6LGFwcGxl
LiInKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1pbnNlcnQtaHRtbC5odG1sCmluZGV4IGJkZjRkYWE5NTY5MjEwZmY4
MzAyZTI5NDg2NzgyMjkwMmFkNDM5YTguLjgzYzdjOTZkOWZhZmUwMzM2MGFmYTIwYTVlYmE0NjI1
Y2JkZjFjNmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctaW5zZXJ0LWh0bWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWluc2VydC1odG1sLmh0bWwKQEAgLTI2LDcgKzI2LDcgQEAgaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKICAgICB2YXIgdGV4dHMgPSBkZXN0aW5hdGlvbi5jaGlsZE5vZGVzOwogICAgIHZh
ciBtYXJrZWRUZXh0ID0gIiI7CiAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXh0cy5sZW5ndGg7
ICsraSkgewotICAgICAgICB2YXIgbWFya2VkID0gaW50ZXJuYWxzLm1hcmtlclJhbmdlRm9yTm9k
ZSh0ZXh0c1tpXSwgMCk7CisgICAgICAgIHZhciBtYXJrZWQgPSBpbnRlcm5hbHMubWFya2VyUmFu
Z2VGb3JOb2RlKHRleHRzW2ldLCAic3BlbGxpbmciLCAwKTsKICAgICAgICAgaWYgKG1hcmtlZCkK
ICAgICAgICAgICAgIG1hcmtlZFRleHQgKz0gbWFya2VkLnRvU3RyaW5nKCkKICAgICB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggMTM5ZDBhMmFlMWY5ODk0NWY5MDRlMTYxMjFjZWRiNWVhYzZjMmJlNi4uZjA1NzhmNDU5
MjJiN2NkOWUzYmZlZWU0OGI3ZjJlODgxZmY1MDE1YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtNjY5LDYgKzY2OSw5
IEBAIEJVR1dLNTU1NjAgOiBlZGl0aW5nL2lucHV0L3NldHRpbmctaW5wdXQtdmFsdWUtY2FuY2Vs
LWltZS1jb21wb3NpdGlvbi5odG1sID0gVEVYCiAvLyBOZXcgdGVzdCBhZGRlZCBpbiByODIxNTkK
IEJVR0NSNzc3MDYgOiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXIuaHRtbCA9IEZBSUwKIAorLy8g
TmVlZHMgZ3JhbW1hciBjaGVja2luZy4KK0JVR1dLNzE3OTIgOiBlZGl0aW5nL3NwZWxsaW5nL21h
cmtlcnMuaHRtbCA9IEZBSUwKKwogLy8gRmxha3kKIEJVR0NSNzk4NTQgOiBlZGl0aW5nL2V4ZWND
b21tYW5kL2RlbGV0ZS1lbXB0eS1jb250YWluZXIuaHRtbCA9IFBBU1MgVEVYVAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCmluZGV4IDEyNDQxN2IxYzc2OGE4NmYzZjk5NmUzYzVmZWIyNzc0NmNk
Y2IyNTkuLjhlMjU3MzVlNWM0YzZkYTNmZDU0OTBlYTI2YTNmZjU3NTI2MjRmNDYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC0yOTMsNiArMjkzLDkgQEAgbWVkaWEvbWVkaWEtY2FwdGlv
bnMuaHRtbAogIyBEYXRhVHJhbnNmZXJJdGVtcyBpcyBub3QgeWV0IGltcGxlbWVudGVkLgogZWRp
dGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogCisjIE5lZWRzIGdyYW1t
YXIgY2hlY2tpbmcuCitlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAorCiAjIExlZ2FjeSBm
dWxsIHNjcmVlbiBBUEkgdGVzdHMgYXJlIG5vdyBvYnNvbGV0ZS4KIG1lZGlhL2NvbnRleHQtbWVu
dS1hY3Rpb25zLmh0bWwKIG1lZGlhL21lZGlhLWZ1bGxzY3JlZW4taW5saW5lLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IGY2MTIwYzJhZjgzMWQ0NWFhY2E2ODY1YzYyM2I3MTBmM2E2
ZTY3ZmMuLmNjNWE4YzQwYTc0MDE2NjZiMWM1OTVkZGI1MjExZGQ2NjIyOTk5NGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZApAQCAtMTAzMCw2ICsxMDMwLDkgQEAgZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1oYXNzcGVsbGluZ21hcmtlci5odG1sCiAjIHRleHRJbnB1dENvbnRyb2xsZXIuaGFz
R3JhbW1hck1hcmtlcnMoKSBpcyBub3QgaW1wbGVtZW50ZWQuCiBlZGl0aW5nL3NwZWxsaW5nL2dy
YW1tYXIuaHRtbAogCisjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCitlZGl0aW5nL3NwZWxsaW5n
L21hcmtlcnMuaHRtbAorCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00NTQzNQogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5l
cy5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNWRkOTc5YzA5NTgyYjhiMzcx
NzAwODYwMGJmZWFiMjBiMmM3Y2FmOC4uZDUwYjdkMTZmYTM4YTczZGJkYjY2NDE1MDk2NjRjODYw
ZWY3MDE0NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEwMjQsNiArMTAyNCw5IEBA
IHN2Zy90ZXh0L2NhcmV0LWluLXN2Zy10ZXh0LnhodG1sCiAjIHRleHRJbnB1dENvbnRyb2xsZXIu
aGFzR3JhbW1hck1hcmtlcnMoKSBpcyBub3QgaW1wbGVtZW50ZWQuCiBlZGl0aW5nL3NwZWxsaW5n
L2dyYW1tYXIuaHRtbAogCisjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCitlZGl0aW5nL3NwZWxs
aW5nL21hcmtlcnMuaHRtbAorCiAjIEVkaXRvckNsaWVudDo6cmVxdWVzdENoZWNraW5nT2ZTdHJp
bmcoKSBpcyBub3QgaW1wbGVtZW50ZWQKIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxjaGVjay1wYXN0
ZS5odG1sCiAKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBjZWRhMzk4
OWE0OWNlYmUwZGQ3NTIyODZjNjQwMDY4YzI2M2I4N2NlLi5hMjdmYzQ0NTY5MjFmYWE0NjVkZTU2
YmRiZjU5YTcwOTc3NWM1OWNiIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTEtMTEtMDggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtA
Z29vZ2xlLmNvbT4KKworICAgICAgICBJbnRlcm5hbHMubWFya2VyUmFuZ2VGb3JOb2RlIHNob3Vs
ZCBiZSBhYmxlIHRvIHRha2UgbWFya2VycyBieSBzcGVjaWZ5aW5nIGEgbWFya2VyIHR5cGUuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTc5MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcjogRXhwb3NlZCBuZWNlc3Nhcnkgc3ltYm9scy4KKwogMjAx
MS0xMS0wOCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVGFrZSBhbm90aGVyIHN0YWIgYXQgZml4aW5nIHRoZSBHVEsrIGJ1aWxkLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116694</attachid>
            <date>2011-11-27 20:31:41 -0800</date>
            <delta_ts>2011-11-27 21:06:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71792-20111128133139.patch</filename>
            <type>text/plain</type>
            <size>1726</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMjE4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWJjNWEzMzAyNzMwMTNlNDQzODBi
OTQ2YWE0ZDk4Y2NjNjU5YjdmOS4uMTY1ZWJmODMzZTQ3NGI0YmQ4MWFlNDdhODZlZjIyMDhlYmZl
NGU4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTExLTI3ICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgSW50ZXJuYWxzLm1hcmtlclJhbmdlRm9y
Tm9kZSBzaG91bGQgYmUgYWJsZSB0byB0YWtlIG1hcmtlcnMgYnkgc3BlY2lmeWluZyBhIG1hcmtl
ciB0eXBlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzE3OTIKKworICAgICAgICBBZGRlZCBtaXNzaW5nIHRlc3QgcmVzdWx0LgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9t
YXJrZXJzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMTEtMTEtMjcgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBhIHRlc3QgYmFzZWxp
bmUgdGhhdCBkb2VzIG5vdCBkaWZmZXIgb24gR1RLKyBub3cgdGhhdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjlj
ZjE4MGVhODM3OWZmN2Y2ZmNjNmZiNTJmNTA3MDFiZjAwYzJhMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvbWFya2Vycy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwxOSBAQAorR3JhbW1hciBFcnJvciBPbmx5CitQQVNTIGludGVybmFscy5tYXJrZXJDb3Vu
dEZvck5vZGUoZS5maXJzdENoaWxkLCAic3BlbGxpbmciKSBpcyAwCitQQVNTIGludGVybmFscy5t
YXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIpIGlzIDEKK1BBU1MgcmFu
Z2UudG9TdHJpbmcoKSBpcyAiYSIKK1NwZWxsaW5nIEVycm9yIE9ubHkKK1BBU1MgaW50ZXJuYWxz
Lm1hcmtlckNvdW50Rm9yTm9kZShlLmZpcnN0Q2hpbGQsICJzcGVsbGluZyIpIGlzIDEKK1BBU1Mg
cmFuZ2UudG9TdHJpbmcoKSBpcyAienoiCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5v
ZGUoZS5maXJzdENoaWxkLCAiZ3JhbW1hciIpIGlzIDAKK0dyYW1tYXIgYW5kIFNwZWxsaW5nIEVy
cm9yCitQQVNTIGludGVybmFscy5tYXJrZXJDb3VudEZvck5vZGUoZS5maXJzdENoaWxkLCAic3Bl
bGxpbmciKSBpcyAxCitQQVNTIHJhbmdlLnRvU3RyaW5nKCkgaXMgInp6IgorUEFTUyBpbnRlcm5h
bHMubWFya2VyQ291bnRGb3JOb2RlKGUuZmlyc3RDaGlsZCwgImdyYW1tYXIiKSBpcyAxCitQQVNT
IHJhbmdlLnRvU3RyaW5nKCkgaXMgIm9yYW5nZSx6eixhcHBsZS4iCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0kgaGF2ZSBhIGlzc3VlLgorenouCitv
cmFuZ2UsenosYXBwbGUuCg==
</data>
<flag name="review"
          id="115928"
          type_id="1"
          status="+"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="115929"
          type_id="3"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>