<?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>101678</bug_id>
          
          <creation_ts>2012-11-08 18:08:44 -0800</creation_ts>
          <short_desc>WTFString::utf8() should have a mode of conversion to use replacement character</short_desc>
          <delta_ts>2012-11-11 06:18:22 -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>Text</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>101569</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kenichi Ishibashi">bashi</reporter>
          <assigned_to name="Kenichi Ishibashi">bashi</assigned_to>
          <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>mifenton</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>762393</commentid>
    <comment_count>0</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 18:08:44 -0800</bug_when>
    <thetext>WebIDL defines a way to convert a DOMString to a sequence of Unicode characters:
http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode

This algorithm is needed to fix https://bugs.webkit.org/show_bug.cgi?id=101569.

In https://bugs.webkit.org/show_bug.cgi?id=101569#c4, Alexey suggested me implementing it under WTF. I think changing String::utf8() to take mode argument is a reasonable approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762481</commentid>
    <comment_count>1</comment_count>
      <attachid>173184</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 20:16:27 -0800</bug_when>
    <thetext>Created attachment 173184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762483</commentid>
    <comment_count>2</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 20:17:56 -0800</bug_when>
    <thetext>Hi Alexey,

Could you take a look (or could you suggest a reviewer)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762491</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 20:22:53 -0800</bug_when>
    <thetext>Attachment 173184 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:753:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 12 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>762503</commentid>
    <comment_count>4</comment_count>
      <attachid>173184</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-08 20:53:28 -0800</bug_when>
    <thetext>Comment on attachment 173184
Patch

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

I haven&apos;t looked in detail yet. This approach seems much nicer than adding code to WebSocket.

&gt; Source/WTF/wtf/text/WTFString.cpp:795
&gt; +                // Conversion fails when there is an unpaired surrogate.

How did you confirm that this is the only possible reason for failure?

&gt; Source/WTF/wtf/text/WTFString.h:218
&gt; +        ReplacementConversion,

This name is not descriptive.  When exactly is the replacement character used? Is this actually StrictConversionReplacingUnpairedSurrogatesWithFFFD?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762504</commentid>
    <comment_count>5</comment_count>
      <attachid>173184</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-08 20:57:18 -0800</bug_when>
    <thetext>Comment on attachment 173184
Patch

Attachment 173184 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14775372</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762544</commentid>
    <comment_count>6</comment_count>
      <attachid>173184</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 21:46:12 -0800</bug_when>
    <thetext>Comment on attachment 173184
Patch

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

&gt;&gt; Source/WTF/wtf/text/WTFString.cpp:795
&gt;&gt; +                // Conversion fails when there is an unpaired surrogate.
&gt; 
&gt; How did you confirm that this is the only possible reason for failure?

I read the comments and implementation of convertUTF16ToUTF8(). All failures except for &quot;targetExhausted&quot; caused by an unpaired surrogate.

&gt;&gt; Source/WTF/wtf/text/WTFString.h:218
&gt;&gt; +        ReplacementConversion,
&gt; 
&gt; This name is not descriptive.  When exactly is the replacement character used? Is this actually StrictConversionReplacingUnpairedSurrogatesWithFFFD?

Will change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762546</commentid>
    <comment_count>7</comment_count>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 21:47:45 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 173184 [details])
&gt; Attachment 173184 [details] did not pass win-ews (win):
&gt; Output: http://queues.webkit.org/results/14775372

15&gt;WebKit.exp : error LNK2001: unresolved external symbol &quot;public: class WTF::CString __thiscall WTF::String::utf8(bool)const &quot; (?utf8@String@WTF@@QBE?AVCString@2@_N@Z)

It seems that I need to update Source/WebKit2/win/{WebKit2,WebKit2CFLite}.def

How can I generate the entry for &quot;CString utf8(ConversionMode = LenientConversion) const;&quot; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762564</commentid>
    <comment_count>8</comment_count>
      <attachid>173204</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-08 22:19:10 -0800</bug_when>
    <thetext>Created attachment 173204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>762566</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-08 22:24:23 -0800</bug_when>
    <thetext>Attachment 173204 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1
Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:753:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 15 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>763112</commentid>
    <comment_count>10</comment_count>
      <attachid>173204</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-11-09 09:57:19 -0800</bug_when>
    <thetext>Comment on attachment 173204
Patch

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

I would have structured this code differently, not adding a branch for StrictConversionReplacingUnpairedSurrogatesWithFFFD unless a failure is returned from convertUTF16ToUTF8(). Seems acceptable to leave as is.

&gt; Source/WTF/wtf/text/WTFString.cpp:795
&gt; +                // Conversion fails when there is an unpaired surrogate.

Can you add an ASSERT to that effect?

&gt; Source/WTF/wtf/text/WTFString.cpp:799
&gt; +                    ASSERT((buffer + 3) &lt;= (buffer + bufferVector.size()));

You can use bufferEnd at the right side.

&gt; Source/WTF/wtf/text/WTFString.cpp:809
&gt; +            // Only produced from strict conversion.

Can you add an ASSERT to that effect?

&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:753
&gt;&gt; +                                           credential.password().utf8(String::StrictConversion).data(),
&gt; 
&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]

Style bot is correct, we do not try to align source code like this. Continuation line should be just indented additional 4 spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763825</commentid>
    <comment_count>11</comment_count>
      <attachid>173498</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-11 05:27:21 -0800</bug_when>
    <thetext>Created attachment 173498
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763826</commentid>
    <comment_count>12</comment_count>
      <attachid>173204</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-11 05:28:25 -0800</bug_when>
    <thetext>Comment on attachment 173204
Patch

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

Thank you for review!

&gt;&gt; Source/WTF/wtf/text/WTFString.cpp:795
&gt;&gt; +                // Conversion fails when there is an unpaired surrogate.
&gt; 
&gt; Can you add an ASSERT to that effect?

Done.

&gt;&gt; Source/WTF/wtf/text/WTFString.cpp:799
&gt;&gt; +                    ASSERT((buffer + 3) &lt;= (buffer + bufferVector.size()));
&gt; 
&gt; You can use bufferEnd at the right side.

Done.

&gt;&gt; Source/WTF/wtf/text/WTFString.cpp:809
&gt;&gt; +            // Only produced from strict conversion.
&gt; 
&gt; Can you add an ASSERT to that effect?

Done.

&gt;&gt;&gt; Source/WebCore/platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:753
&gt;&gt;&gt; +                                           credential.password().utf8(String::StrictConversion).data(),
&gt;&gt; 
&gt;&gt; Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
&gt; 
&gt; Style bot is correct, we do not try to align source code like this. Continuation line should be just indented additional 4 spaces.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763827</commentid>
    <comment_count>13</comment_count>
      <attachid>173498</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 05:29:23 -0800</bug_when>
    <thetext>Comment on attachment 173498
Patch for landing

Rejecting attachment 173498 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

ERROR: /mnt/git/webkit-commit-queue/Source/JavaScriptCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/14810071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763828</commentid>
    <comment_count>14</comment_count>
      <attachid>173499</attachid>
    <who name="Kenichi Ishibashi">bashi</who>
    <bug_when>2012-11-11 05:31:53 -0800</bug_when>
    <thetext>Created attachment 173499
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763837</commentid>
    <comment_count>15</comment_count>
      <attachid>173499</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 06:18:18 -0800</bug_when>
    <thetext>Comment on attachment 173499
Patch for landing

Clearing flags on attachment: 173499

Committed r134173: &lt;http://trac.webkit.org/changeset/134173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763838</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-11 06:18:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173184</attachid>
            <date>2012-11-08 20:16:27 -0800</date>
            <delta_ts>2012-11-08 22:19:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101678-20121109131435.patch</filename>
            <type>text/plain</type>
            <size>16722</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NmQ4MjY2YzIyMTg3MTMzNTk2ZTdiYjI3MzEyMzU0NTdkZDg3NTQxLi5iN2M3MTVmZWMwZThiMmY5
ZTFlMzQzZGUzMmVkN2M2NzI4ZDM2MjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0xMS0wOCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9m
IGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93IHRoZSBjaGFuZ2Ugb24gU3Ry
aW5nOjp1dGY4KCkKKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOiBQYXNzIFN0cmluZzo6U3RyaWN0Q29udmVyc2lv
biBpbnN0ZWFkIG9mIHRydWUuCisKIDIwMTItMTEtMDcgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFw
cGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIG5vdCBhc3N1bWUgdGhhdCBzb21ldGhpbmcg
aXMgYSBkb3VibGUganVzdCBiZWNhdXNlIGl0IG1pZ2h0IGJlIHVuZGVmaW5lZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAyNGY2
MjExM2Q2MjE3MGU4OTYxYTVjOTQ5MDc4NmU3MmY4YjBiNjJhLi41NGE3ZjBjOGQ3MThiYjg0MzNj
YjQwODM3YTVmMDEwZGFlNzZjZWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTExLTA4ICBL
ZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBXVEZTdHJp
bmc6OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2YgY29udmVyc2lvbiB0byB1c2UgcmVwbGFj
ZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbnRyb2R1Y2UgY29udmVyc2lvbiBtb2RlIHRvIFN0cmluZzo6dXRmOCgpLgorICAg
ICAgICBUaGVyZSBhcmUgdGhyZWUgY29udmVyc2lvbiBtb2RlczsgbGVuaWVudCBtb2RlLCBzdHJp
Y3QgbW9kZSwgYW5kIHJlcGxhY2VtZW50IG1vZGUuCisgICAgICAgIExlbmllbnQgbW9kZSBjb252
ZXJ0cyB1bnBhaXJlZCBzdXJyb2dhdGVzLiBTdHJpY3QgbW9kZSBmYWlscyB3aGVuIHRoZXJlIGlz
IGFuIHVucGFpcmVkCisgICAgICAgIHN1cnJvZ2F0ZXMgYW5kIHJldHVybnMgQ1N0cmluZygpLiBS
ZXBsYWNlbWVudCBtb2RlIHJlcGxhY2VzIHVucGFpcmVkIHN1cnJvZ2F0ZXMgd2l0aAorICAgICAg
ICB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyKFUrRkZGRCkuIFJlcGxhY2VtZW50IG1vZGUgaW1w
bGVtZW50cyB0aGUgYWxnb3JpdGhtIGRlZmluZWQgYXQKKyAgICAgICAgaHR0cDovL2Rldi53My5v
cmcvMjAwNi93ZWJhcGkvV2ViSURMLyNkZm4tb2J0YWluLXVuaWNvZGUuIFdlYlNvY2tldDo6c2Vu
ZCgpIHJlcXVpcmVzCisgICAgICAgIHRoaXMgYWxnb3JpdGhtIHRvIGVuY29kZSBhIHN0cmluZyB0
byB1dGYtOC4KKworICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5jcHA6CisgICAgICAgIChX
VEY6OlN0cmluZzo6dXRmOCk6IENoYW5nZWQgdG8gdGFrZSBDb252ZXJzaW9uTW9kZSBhcyB0aGUg
YXJndW1lbnQuCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmg6CisgICAgICAgIChTdHJp
bmcpOgorCiAyMDEyLTExLTA4ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgog
CiAgICAgICAgIEhhc2hBbmRVVEY4Q2hhcmFjdGVyc1RyYW5zbGF0b3Igc2hvdWxkIGNyZWF0ZSBh
biA4IGJpdCBzdHJpbmcgaWYgcG9zc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ODFkNzYwZmQyYmMwNTQ5
ZmI5YzU4MTZkN2Q0MWU0Mjg1MTUwZTE3Li41MzZjNWU1Y2IwMjg5OTcyNjk5ZGZlNzA3Y2E2ZTZj
ZGQxYzY0NjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEtMDggIEtlbmlj
aGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdURlN0cmluZzo6
dXRmOCgpIHNob3VsZCBoYXZlIGEgbW9kZSBvZiBjb252ZXJzaW9uIHRvIHVzZSByZXBsYWNlbWVu
dCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZvbGxvdyB0aGUgY2hhbmdlIG9uIFN0cmluZzo6dXRmOCgpCisKKyAgICAgICAgTm8gbmV3
IHRlc3RzLiBObyBjaGFuZ2VzIGluIGJlaGF2aW9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNsb3Nl
KTogUGFzcyBTdHJpbmc6OlN0cmljdENvbnZlcnNpb24gaW5zdGVhZCBvZiB0cnVlIHRvIFN0cmlu
Zzo6dXRmOCgpLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQpOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6cGFyc2VGcmFnbWVudHMpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJs
YWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpub3Rp
ZnlDaGFsbGVuZ2VSZXN1bHQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSU1NG
aWx0ZXJTdHJlYW06OmNvbnZlcnRDb250ZW50VG9IdG1sKTogRGl0dG8uCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NHZW5lcmF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UlNTR2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwpOiBEaXR0by4KKwogMjAxMi0xMS0w
OCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSGF2ZSBOZXR3
b3JrUHJvY2VzcyBkbyB0aGUgYWN0dWFsIGxvYWRpbmcgb2Ygc3VicmVzb3VyY2VzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlv
bnMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5j
dGlvbnMuY3BwCmluZGV4IDdhYzc2ZDM1MGQwODEwMjAzZGIzMWM4Zjk2ODMyODZkNGRkOGJmNDQu
LjEwMTBhZDJiNzEwOWNlMzM5YzUwODdlNmZjZDI2Yzg2MjcyMjExM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9u
cy5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKIHN0YXRpYyBKU1ZhbHVl
IGVuY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IGNoYXIqIGRvTm90RXNjYXBlKQogewotICAg
IENTdHJpbmcgY3N0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKS51dGY4KHRydWUpOworICAgIENTdHJpbmcgY3N0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbik7
CiAgICAgaWYgKCFjc3RyLmRhdGEoKSkKICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXhlYywg
Y3JlYXRlVVJJRXJyb3IoZXhlYywgQVNDSUlMaXRlcmFsKCJTdHJpbmcgY29udGFpbmVkIGFuIGls
bGVnYWwgVVRGLTE2IHNlcXVlbmNlLiIpKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvV1RGU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApp
bmRleCBlMTAyODJkZTJjNDEzZTFkODIyYjZkZWViNzIzNzYzMmY2M2M4Y2Y2Li5kNDdkMzJkMzI5
YjRmMWM1MzVkOTM3ZGMyNTQ1YTBmNWMxZjIyNTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi90ZXh0L1dURlN0cmluZy5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
Y3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZHRvYS5oPgorI2luY2x1ZGUgPHd0
Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVVRGOC5o
PgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VuaWNvZGUuaD4KIApAQCAtNzUzLDcgKzc1NCw3IEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBwdXRVVEY4VHJpcGxlKGNoYXIqJiBidWZmZXIsIFVDaGFyIGNo
KQogICAgICpidWZmZXIrKyA9IHN0YXRpY19jYXN0PGNoYXI+KChjaCAmIDB4M0YpIHwgMHg4MCk7
CiB9CiAKLUNTdHJpbmcgU3RyaW5nOjp1dGY4KGJvb2wgc3RyaWN0KSBjb25zdAorQ1N0cmluZyBT
dHJpbmc6OnV0ZjgoQ29udmVyc2lvbk1vZGUgbW9kZSkgY29uc3QKIHsKICAgICB1bnNpZ25lZCBs
ZW5ndGggPSB0aGlzLT5sZW5ndGgoKTsKIApAQCAtNzg0LDI2ICs3ODUsNDUgQEAgQ1N0cmluZyBT
dHJpbmc6OnV0ZjgoYm9vbCBzdHJpY3QpIGNvbnN0CiAgICAgfSBlbHNlIHsKICAgICAgICAgY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0aGlzLT5jaGFyYWN0ZXJzMTYoKTsKIAotICAgICAgICBD
b252ZXJzaW9uUmVzdWx0IHJlc3VsdCA9IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywg
Y2hhcmFjdGVycyArIGxlbmd0aCwgJmJ1ZmZlciwgYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUo
KSwgc3RyaWN0KTsKLSAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSB0YXJnZXRFeGhhdXN0ZWQpOyAv
LyAobGVuZ3RoICogMykgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGFueSBjb252ZXJzaW9uCi0K
LSAgICAgICAgLy8gT25seSBwcm9kdWNlZCBmcm9tIHN0cmljdCBjb252ZXJzaW9uLgotICAgICAg
ICBpZiAocmVzdWx0ID09IHNvdXJjZUlsbGVnYWwpCi0gICAgICAgICAgICByZXR1cm4gQ1N0cmlu
ZygpOworICAgICAgICBpZiAobW9kZSA9PSBSZXBsYWNlbWVudENvbnZlcnNpb24pIHsKKyAgICAg
ICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzRW5kID0gY2hhcmFjdGVycyArIGxlbmd0aDsK
KyAgICAgICAgICAgIGNoYXIqIGJ1ZmZlckVuZCA9IGJ1ZmZlciArIGJ1ZmZlclZlY3Rvci5zaXpl
KCk7CisgICAgICAgICAgICB3aGlsZSAoY2hhcmFjdGVycyA8IGNoYXJhY3RlcnNFbmQpIHsKKyAg
ICAgICAgICAgICAgICAvLyBVc2Ugc3RyaWN0IGNvbnZlcnNpb24gdG8gZGV0ZWN0IHVucGFpcmVk
IHN1cnJvZ2F0ZXMuCisgICAgICAgICAgICAgICAgQ29udmVyc2lvblJlc3VsdCByZXN1bHQgPSBj
b252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMsIGNoYXJhY3RlcnNFbmQsICZidWZmZXIsIGJ1
ZmZlckVuZCwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSB0YXJnZXRF
eGhhdXN0ZWQpOworICAgICAgICAgICAgICAgIC8vIENvbnZlcnNpb24gZmFpbHMgd2hlbiB0aGVy
ZSBpcyBhbiB1bnBhaXJlZCBzdXJyb2dhdGUuCisgICAgICAgICAgICAgICAgLy8gUHV0IHJlcGxh
Y2VtZW50IGNoYXJhY3RlciAoVStGRkZEKSBpbnN0ZWFkIG9mIHRoZSB1bnBhaXJlZCBzdXJyb2dh
dGUuCisgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCAhPSBjb252ZXJzaW9uT0spIHsKKyAgICAg
ICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ugb25lIFVD
aGFyIGhhc24ndCBiZWVuIGNvbnZlcnRlZC4KKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUKChi
dWZmZXIgKyAzKSA8PSAoYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSkpOworICAgICAgICAg
ICAgICAgICAgICBwdXRVVEY4VHJpcGxlKGJ1ZmZlciwgcmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwor
ICAgICAgICAgICAgICAgICAgICArK2NoYXJhY3RlcnM7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYm9vbCBzdHJpY3QgPSBt
b2RlID09IFN0cmljdENvbnZlcnNpb247CisgICAgICAgICAgICBDb252ZXJzaW9uUmVzdWx0IHJl
c3VsdCA9IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVycyArIGxlbmd0
aCwgJmJ1ZmZlciwgYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSwgc3RyaWN0KTsKKyAgICAg
ICAgICAgIEFTU0VSVChyZXN1bHQgIT0gdGFyZ2V0RXhoYXVzdGVkKTsgLy8gKGxlbmd0aCAqIDMp
IHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lvbgogCi0gICAgICAgIC8vIENo
ZWNrIGZvciBhbiB1bmNvbnZlcnRlZCBoaWdoIHN1cnJvZ2F0ZS4KLSAgICAgICAgaWYgKHJlc3Vs
dCA9PSBzb3VyY2VFeGhhdXN0ZWQpIHsKLSAgICAgICAgICAgIGlmIChzdHJpY3QpCisgICAgICAg
ICAgICAvLyBPbmx5IHByb2R1Y2VkIGZyb20gc3RyaWN0IGNvbnZlcnNpb24uCisgICAgICAgICAg
ICBpZiAocmVzdWx0ID09IHNvdXJjZUlsbGVnYWwpCiAgICAgICAgICAgICAgICAgcmV0dXJuIENT
dHJpbmcoKTsKLSAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIG9uZSB1bnBhaXJlZCBoaWdo
IHN1cnJvZ2F0ZS4gVHJlYXQgaXQgdGhlIHNhbWUKLSAgICAgICAgICAgIC8vIHdhcyBhcyBhbiB1
bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSB3b3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBpbgotICAgICAg
ICAgICAgLy8gdGhlIG1pZGRsZSBvZiBhIHN0cmluZyB3aXRoIG5vbi1zdHJpY3QgY29udmVyc2lv
biAtIHdoaWNoIGlzCi0gICAgICAgICAgICAvLyB0byBzYXksIHNpbXBseSBlbmNvZGUgaXQgdG8g
VVRGLTguCi0gICAgICAgICAgICBBU1NFUlQoKGNoYXJhY3RlcnMgKyAxKSA9PSAodGhpcy0+Y2hh
cmFjdGVycygpICsgbGVuZ3RoKSk7Ci0gICAgICAgICAgICBBU1NFUlQoKCpjaGFyYWN0ZXJzID49
IDB4RDgwMCkgJiYgKCpjaGFyYWN0ZXJzIDw9IDB4REJGRikpOwotICAgICAgICAgICAgLy8gVGhl
cmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ugb25lIFVDaGFyIGhhc24ndCBiZWVuIGNvbnZl
cnRlZC4KLSAgICAgICAgICAgIEFTU0VSVCgoYnVmZmVyICsgMykgPD0gKGJ1ZmZlciArIGJ1ZmZl
clZlY3Rvci5zaXplKCkpKTsKLSAgICAgICAgICAgIHB1dFVURjhUcmlwbGUoYnVmZmVyLCAqY2hh
cmFjdGVycyk7CisKKyAgICAgICAgICAgIC8vIENoZWNrIGZvciBhbiB1bmNvbnZlcnRlZCBoaWdo
IHN1cnJvZ2F0ZS4KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gc291cmNlRXhoYXVzdGVkKSB7
CisgICAgICAgICAgICAgICAgaWYgKHN0cmljdCkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENTdHJpbmcoKTsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBiZSBvbmUgdW5wYWly
ZWQgaGlnaCBzdXJyb2dhdGUuIFRyZWF0IGl0IHRoZSBzYW1lCisgICAgICAgICAgICAgICAgLy8g
d2FzIGFzIGFuIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlIHdvdWxkIGhhdmUgYmVlbiBoYW5kbGVk
IGluCisgICAgICAgICAgICAgICAgLy8gdGhlIG1pZGRsZSBvZiBhIHN0cmluZyB3aXRoIG5vbi1z
dHJpY3QgY29udmVyc2lvbiAtIHdoaWNoIGlzCisgICAgICAgICAgICAgICAgLy8gdG8gc2F5LCBz
aW1wbHkgZW5jb2RlIGl0IHRvIFVURi04LgorICAgICAgICAgICAgICAgIEFTU0VSVCgoY2hhcmFj
dGVycyArIDEpID09ICh0aGlzLT5jaGFyYWN0ZXJzKCkgKyBsZW5ndGgpKTsKKyAgICAgICAgICAg
ICAgICBBU1NFUlQoKCpjaGFyYWN0ZXJzID49IDB4RDgwMCkgJiYgKCpjaGFyYWN0ZXJzIDw9IDB4
REJGRikpOworICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSByb29tIGxlZnQsIHNp
bmNlIG9uZSBVQ2hhciBoYXNuJ3QgYmVlbiBjb252ZXJ0ZWQuCisgICAgICAgICAgICAgICAgQVNT
RVJUKChidWZmZXIgKyAzKSA8PSAoYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSkpOworICAg
ICAgICAgICAgICAgIHB1dFVURjhUcmlwbGUoYnVmZmVyLCAqY2hhcmFjdGVycyk7CisgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3Rl
eHQvV1RGU3RyaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCmluZGV4IGE1
ZTMzNzg3NjM5NTMyZWM4NWE1Y2JkODM0OGNhY2YwY2NmNTFhMzQuLjRiNmFjOGFlNzY0MmMwODIw
OThjNTcyZTIzNjgwYjYxYWE5YTRkMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
V1RGU3RyaW5nLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaApAQCAtMjEx
LDcgKzIxMSwxNCBAQCBwdWJsaWM6CiAKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgQ1N0cmlu
ZyBhc2NpaSgpIGNvbnN0OwogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIGxhdGlu
MSgpIGNvbnN0OwotICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIHV0ZjgoYm9vbCBz
dHJpY3QgPSBmYWxzZSkgY29uc3Q7CisKKyAgICB0eXBlZGVmIGVudW0geworICAgICAgICBMZW5p
ZW50Q29udmVyc2lvbiwKKyAgICAgICAgU3RyaWN0Q29udmVyc2lvbiwKKyAgICAgICAgUmVwbGFj
ZW1lbnRDb252ZXJzaW9uLAorICAgIH0gQ29udmVyc2lvbk1vZGU7CisKKyAgICBXVEZfRVhQT1JU
X1NUUklOR19BUEkgQ1N0cmluZyB1dGY4KENvbnZlcnNpb25Nb2RlID0gTGVuaWVudENvbnZlcnNp
b24pIGNvbnN0OwogCiAgICAgVUNoYXIgb3BlcmF0b3JbXSh1bnNpZ25lZCBpbmRleCkgY29uc3QK
ICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCmluZGV4IDQ2ZDYyZGU4OWY0NjY4ZmU3YTE1MWZlZWQ1MzExMzgyNDczMDI3ZGEuLmMzYzcw
YTRkNDJjYjdjYTI1MGUwNzU3ODVhZTUwYWE0Y2I0ODExN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAg
dm9pZCBXZWJTb2NrZXQ6OmNsb3NlKGludCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiAgICAgICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBDU3RyaW5nIHV0ZjggPSByZWFz
b24udXRmOCh0cnVlKTsKKyAgICAgICAgQ1N0cmluZyB1dGY4ID0gcmVhc29uLnV0ZjgoU3RyaW5n
OjpTdHJpY3RDb252ZXJzaW9uKTsKICAgICAgICAgaWYgKHV0ZjgubGVuZ3RoKCkgPiBtYXhSZWFz
b25TaXplSW5CeXRlcykgewogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5h
ZGRDb25zb2xlTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1l
c3NhZ2VMZXZlbCwgIldlYlNvY2tldCBjbG9zZSBtZXNzYWdlIGlzIHRvbyBsb25nLiIpOwogICAg
ICAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDM3MWNlMmE3MTUwMTk1
ZGE4NjAxYTcwMDljYTQ3NDRiZmEwZDhiM2YuLjA2Mjg4NTcwNTFlY2M3ZmQ0ZmE0NDUyYzg0Nzg1
MDBiNDIzMDFjMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBTdHJpbmcgV2Vi
U29ja2V0Q2hhbm5lbDo6ZXh0ZW5zaW9ucygpCiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6
U2VuZFJlc3VsdCBXZWJTb2NrZXRDaGFubmVsOjpzZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgc2VuZCAlcyIsIHRoaXMs
IG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7Ci0gICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51dGY4
KHRydWUpOworICAgIENTdHJpbmcgdXRmOCA9IG1lc3NhZ2UudXRmOChTdHJpbmc6OlN0cmljdENv
bnZlcnNpb24pOwogICAgIGlmICh1dGY4LmlzTnVsbCgpICYmIG1lc3NhZ2UubGVuZ3RoKCkpCiAg
ICAgICAgIHJldHVybiBJbnZhbGlkTWVzc2FnZTsKICAgICBlbnF1ZXVlVGV4dEZyYW1lKHV0Zjgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2Vy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKaW5k
ZXggZGU3ODZmZmQ0NGNmMDMyN2EzYWU0NzJkZTE0MWFhZTViYzQ2NjI2My4uMDI4NTYxMWYxNzJk
ZWUzNmFmNTc5OTU4ODdkOTMzZmE5OTQzZDdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCkBAIC0xNDIsMTEgKzE0MiwxMSBAQCB2b2lkIE1l
ZGlhRnJhZ21lbnRVUklQYXJzZXI6OnBhcnNlRnJhZ21lbnRzKCkKICAgICAgICAgLy8gICAgIG5h
bWUgb3IgdmFsdWUgYXJlIG5vdCB2YWxpZCBVVEYtOCBzdHJpbmdzLCB0aGVuIHJlbW92ZSB0aGUg
bmFtZS12YWx1ZSBwYWlyIGZyb20gdGhlIGxpc3QuCiAgICAgICAgIGJvb2wgdmFsaWRVVEY4ID0g
dHJ1ZTsKICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgbmFtZSA9
IG5hbWUudXRmOCh0cnVlKS5kYXRhKCk7CisgICAgICAgICAgICBuYW1lID0gbmFtZS51dGY4KFN0
cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpOwogICAgICAgICAgICAgdmFsaWRVVEY4ID0g
IW5hbWUuaXNFbXB0eSgpOwogICAgICAgICB9CiAgICAgICAgIGlmICh2YWxpZFVURjggJiYgIXZh
bHVlLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS51dGY4KHRydWUpLmRh
dGEoKTsKKyAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudXRmOChTdHJpbmc6OlN0cmljdENvbnZl
cnNpb24pLmRhdGEoKTsKICAgICAgICAgICAgIHZhbGlkVVRGOCA9ICF2YWx1ZS5pc0VtcHR5KCk7
CiAgICAgICAgIH0KICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcAppbmRleCA0MzFlOTY1NDVlNDk3NGQwNjUxNmYzMWJiNjg2NGYy
YTc5NGYyNTRlLi5lY2Q4ZWRlNWQxYmViYzI1Y2ZmOGMxYzY3MGQ1ZGMyYjMwNDI3NDg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKQEAg
LTc0OSw4ICs3NDksOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bm90aWZ5Q2hhbGxlbmdl
UmVzdWx0KGNvbnN0IEtVUkwmIHVybCwgY29uc3QgUHJvdGVjdGlvbgogICAgIGlmIChyZXN1bHQg
IT0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTdWNjZXNzIHx8ICF1cmwuaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX3BsYXRmb3JtUGxheWVyLT5yZWxvYWRXaXRoQ3JlZGVudGlh
bChjcmVkZW50aWFsLnVzZXIoKS51dGY4KHRydWUpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOCh0cnVl
KS5kYXRhKCksCisgICAgbV9wbGF0Zm9ybVBsYXllci0+cmVsb2FkV2l0aENyZWRlbnRpYWwoY3Jl
ZGVudGlhbC51c2VyKCkudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsLnBhc3N3
b3JkKCkudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxNTVJBdXRoQ2hhbGxl
bmdlOjpDcmVkZW50aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSkpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHAKaW5kZXggYTdlNTA0NDZlZmYx
ZTQ3NTA5ODFmMjg2Njc0MDJkNTgxMDAzYmJmMi4uMjVkYWNhMjU4YWEzZjIzMWQ3MzgwMjllMzgx
MWZhYTIzN2E0NzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L3Jzcy9SU1NGaWx0ZXJTdHJlYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVyU3RyZWFtLmNwcApAQCAt
NTI3LDcgKzUyNyw3IEBAIGJvb2wgUlNTRmlsdGVyU3RyZWFtOjpjb252ZXJ0Q29udGVudFRvSHRt
bChzdGQ6OnN0cmluZyYgcmVzdWx0KQogCiAgICAgT3duUHRyPFJTU0dlbmVyYXRvcj4gZ2VuZXJh
dG9yID0gYWRvcHRQdHIobmV3IFJTU0dlbmVyYXRvcigpKTsKICAgICBTdHJpbmcgaHRtbCA9IGdl
bmVyYXRvci0+Z2VuZXJhdGVIdG1sKHBhcnNlci0+bV9yb290KTsKLSAgICByZXN1bHQgPSBodG1s
LnV0ZjgodHJ1ZSkuZGF0YSgpOworICAgIHJlc3VsdCA9IGh0bWwudXRmOChTdHJpbmc6OlN0cmlj
dENvbnZlcnNpb24pLmRhdGEoKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NHZW5lcmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9S
U1NHZW5lcmF0b3IuY3BwCmluZGV4IDNjMTg5OTJjM2NjOWM3MWEwYmI0MTljOWRlMzBhNDUwMTMy
YzU4YWUuLmQ5M2UwNGM5YjNlOTJlMjhkOGJmNzIxNGMyYWU0MzcyODUxYjdiMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTR2Vu
ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvcnNzL1JTU0dlbmVyYXRvci5jcHAKQEAgLTgzLDEwICs4MywxMCBAQCBTdHJpbmcgUlNTR2Vu
ZXJhdG9yOjpnZW5lcmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkKICAgICAgICAgYnVpbGRlci5hcHBl
bmQoYXJ0aWNsZU5hbWUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiIGNsYXNz
PVwiYXJ0aWNsZVwiPlxuPGEgaHJlZj1cIiIpOwogICAgICAgICBpZiAoIWl0ZW0tPm1fbGluay5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX2xpbmsudXRmOCh0
cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9saW5rLnV0
ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIlwiPjxiPiIpOwogICAgICAgICBpZiAoIWl0ZW0tPm1fdGl0bGUuaXNFbXB0
eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV90aXRsZS51dGY4KHRydWUp
LmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX3RpdGxlLnV0Zjgo
U3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChzX2RlZmF1bHRFbnRyeVRpdGxlKTsKICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8L2I+PC9hPlxuPGJyIC8+Iik7CkBAIC05NCwxMyArOTQsMTMgQEAg
U3RyaW5nIFJTU0dlbmVyYXRvcjo6Z2VuZXJhdGVIdG1sKFJTU0ZlZWQqIGZlZWQpCiAgICAgICAg
IGlmICghaXRlbS0+bV9hdXRob3IuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChpMThuKCJCeSIpKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIDxi
PiIpOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9hdXRob3IudXRmOCh0cnVl
KS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9hdXRob3IudXRm
OChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAgICAgICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIjwvYj4gIik7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBp
ZiAoIWZlZWQtPm1fYXV0aG9yLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGkxOG4oIkJ5IikpOwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiIDxiPiIpOwotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGZlZWQtPm1fYXV0aG9y
LnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChmZWVk
LT5tX2F1dGhvci51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKICAgICAg
ICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvYj4gIik7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBTdHJpbmcgUlNTR2VuZXJhdG9yOjpnZW5l
cmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkKIAogICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IGl0ZW0tPm1fY2F0ZWdvcmllcy5zaXplKCkgOyArK2kpIHsKICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxiPiIpOwotICAgICAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0ZW0tPm1fY2F0ZWdvcmllc1tpXS51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAg
ICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9jYXRlZ29yaWVzW2ldLnV0ZjgoU3RyaW5n
OjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiPC9iPiIpOwogCiAgICAgICAgICAgICAgICAgaWYgKGkgPCBpdGVtLT5tX2Nh
dGVnb3JpZXMuc2l6ZSgpIC0gMSkKQEAgLTEyMywxMSArMTIzLDExIEBAIFN0cmluZyBSU1NHZW5l
cmF0b3I6OmdlbmVyYXRlSHRtbChSU1NGZWVkKiBmZWVkKQogCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiPGJyIC8+Iik7CiAgICAgICAgIGlmICghaXRlbS0+bV9wdWJEYXRlLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fcHViRGF0ZS51dGY4KHRy
dWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX3B1YkRhdGUu
dXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAKICAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8YnIgLz4iKTsKICAgICAgICAgaWYgKCFpdGVtLT5tX2Rlc2NyaXB0
aW9uLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fZGVzY3Jp
cHRpb24udXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRl
bS0+bV9kZXNjcmlwdGlvbi51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8YnIgLz4iKTsKIAogICAgICAgICBpZiAo
aXRlbS0+bV9lbmNsb3N1cmUpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173204</attachid>
            <date>2012-11-08 22:19:10 -0800</date>
            <delta_ts>2012-11-11 05:28:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101678-20121109151717.patch</filename>
            <type>text/plain</type>
            <size>19163</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
NmQ4MjY2YzIyMTg3MTMzNTk2ZTdiYjI3MzEyMzU0NTdkZDg3NTQxLi43ZmZmMzQ0NTU5M2FjNWIx
M2JhZjFmYjEyMDI4MWIyNDZiNjkxYmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0xMS0wOCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9m
IGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93IHRoZSBjaGFuZ2Ugb24gU3Ry
aW5nOjp1dGY4KCkKKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOiBQYXNzIFN0cmluZzo6U3RyaWN0Q29udmVyc2lv
biBpbnN0ZWFkIG9mIHRydWUgdG8gU3RyaW5nOjp1dGY4KCkuCisKIDIwMTItMTEtMDcgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIG5vdCBhc3N1
bWUgdGhhdCBzb21ldGhpbmcgaXMgYSBkb3VibGUganVzdCBiZWNhdXNlIGl0IG1pZ2h0IGJlIHVu
ZGVmaW5lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0No
YW5nZUxvZwppbmRleCAyNGY2MjExM2Q2MjE3MGU4OTYxYTVjOTQ5MDc4NmU3MmY4YjBiNjJhLi4x
YTUwNTI2MGNlMmNhYmY0MDMxYjEwOWRmMjQ2Yjk2ZTdmOTc3ZDc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDEyLTExLTA4ICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXVEZTdHJpbmc6OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2YgY29udmVy
c2lvbiB0byB1c2UgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2UgY29udmVyc2lvbiBtb2RlIHRvIFN0
cmluZzo6dXRmOCgpLgorICAgICAgICBUaGVyZSBhcmUgdGhyZWUgY29udmVyc2lvbiBtb2Rlczsg
bGVuaWVudCBtb2RlLCBzdHJpY3QgbW9kZSwgYW5kCisgICAgICAgICJyZXBsYWNpbmcgdW5wYWly
ZWQgc3Vycm9nYXRlcyB3aXRoIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIiIChyZXBsYWNlbWVu
dCkgbW9kZS4KKyAgICAgICAgTGVuaWVudCBtb2RlIGNvbnZlcnRzIHVucGFpcmVkIHN1cnJvZ2F0
ZXMuIFN0cmljdCBtb2RlIGZhaWxzIHdoZW4gdGhlcmUgaXMgYW4gdW5wYWlyZWQKKyAgICAgICAg
c3Vycm9nYXRlcyBhbmQgcmV0dXJucyBDU3RyaW5nKCkuIFJlcGxhY2VtZW50IG1vZGUgcmVwbGFj
ZXMgdW5wYWlyZWQgc3Vycm9nYXRlcyB3aXRoCisgICAgICAgIHRoZSByZXBsYWNlbWVudCBjaGFy
YWN0ZXIoVStGRkZEKS4gUmVwbGFjZW1lbnQgbW9kZSBpbXBsZW1lbnRzIHRoZSBhbGdvcml0aG0g
ZGVmaW5lZCBhdAorICAgICAgICBodHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJJREwv
I2Rmbi1vYnRhaW4tdW5pY29kZS4gV2ViU29ja2V0OjpzZW5kKCkgcmVxdWlyZXMKKyAgICAgICAg
dGhpcyBhbGdvcml0aG0gdG8gZW5jb2RlIGEgc3RyaW5nIHRvIHV0Zi04LgorCisgICAgICAgICog
d3RmL3RleHQvV1RGU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nOjp1dGY4KTogQ2hh
bmdlZCB0byB0YWtlIENvbnZlcnNpb25Nb2RlIGFzIHRoZSBhcmd1bWVudC4KKyAgICAgICAgKiB3
dGYvdGV4dC9XVEZTdHJpbmcuaDoKKyAgICAgICAgKFN0cmluZyk6CisKIDIwMTItMTEtMDggIE1p
Y2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgSGFzaEFuZFVURjhD
aGFyYWN0ZXJzVHJhbnNsYXRvciBzaG91bGQgY3JlYXRlIGFuIDggYml0IHN0cmluZyBpZiBwb3Nz
aWJsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDQ4MWQ3NjBmZDJiYzA1NDlmYjljNTgxNmQ3ZDQxZTQyODUxNTBl
MTcuLjUzNmM1ZTVjYjAyODk5NzI2OTlkZmU3MDdjYTZlNmNkZDFjNjQ2NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNyBAQAorMjAxMi0xMS0wOCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBt
b2RlIG9mIGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93IHRoZSBjaGFuZ2Ug
b24gU3RyaW5nOjp1dGY4KCkKKworICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZXMgaW4g
YmVoYXZpb3IuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOiBQYXNzIFN0cmluZzo6U3RyaWN0
Q29udmVyc2lvbiBpbnN0ZWFkIG9mIHRydWUgdG8gU3RyaW5nOjp1dGY4KCkuCisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0Q2hhbm5lbDo6c2VuZCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvTWVkaWFG
cmFnbWVudFVSSVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUZyYWdtZW50VVJJ
UGFyc2VyOjpwYXJzZUZyYWdtZW50cyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdCk6IERp
dHRvLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVy
U3RyZWFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJTU0ZpbHRlclN0cmVhbTo6Y29udmVydENv
bnRlbnRUb0h0bWwpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvcnNzL1JTU0dlbmVyYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSU1NHZW5lcmF0b3I6
OmdlbmVyYXRlSHRtbCk6IERpdHRvLgorCiAyMDEyLTExLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZlIE5ldHdvcmtQcm9jZXNzIGRvIHRoZSBhY3R1
YWwgbG9hZGluZyBvZiBzdWJyZXNvdXJjZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTM3NTFkNTNhOGM3YTM4
Yzk0NmMzN2VkZjJiMTBmNjVhYTVlMjdhNC4uZTBmODZlYjc4NTM5OGRiMTg3MWI5MjI5MzE1NmQ3
NmQ3NmVlZGI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTExLTA4ICBLZW5p
Y2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBXVEZTdHJpbmc6
OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2YgY29udmVyc2lvbiB0byB1c2UgcmVwbGFjZW1l
bnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGUgdGhlIHN5bWJvbCBmb3IgU3RyaW5nOjp1dGY4KCkuCisKKyAgICAgICAgKiB3
aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEy
LTExLTA4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBIYXZl
IE5ldHdvcmtQcm9jZXNzIGRvIHRoZSBhY3R1YWwgbG9hZGluZyBvZiBzdWJyZXNvdXJjZXMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVj
dEZ1bmN0aW9ucy5jcHAKaW5kZXggN2FjNzZkMzUwZDA4MTAyMDNkYjMxYzhmOTY4MzI4NmQ0ZGQ4
YmY0NC4uMTAxMGFkMmI3MTA5Y2UzMzljNTA4N2U2ZmNkMjZjODYyNzIyMTEzYyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVu
Y3Rpb25zLmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogc3RhdGljIEpT
VmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgY2hhciogZG9Ob3RFc2NhcGUpCiB7
Ci0gICAgQ1N0cmluZyBjc3RyID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpLnV0ZjgodHJ1ZSk7CisgICAgQ1N0cmluZyBjc3RyID0gZXhlYy0+YXJndW1lbnQo
MCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJz
aW9uKTsKICAgICBpZiAoIWNzdHIuZGF0YSgpKQogICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihl
eGVjLCBjcmVhdGVVUklFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIlN0cmluZyBjb250YWluZWQg
YW4gaWxsZWdhbCBVVEYtMTYgc2VxdWVuY2UuIikpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuY3BwIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcu
Y3BwCmluZGV4IGUxMDI4MmRlMmM0MTNlMWQ4MjJiNmRlZWI3MjM3NjMyZjYzYzhjZjYuLmJiOGRh
YjYzM2JhNjg4MzEyMzFkMDFmNjU2MmM5ZTYxOGQ2NzkwNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0
cmluZy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlIDx3dGYvU3RyaW5nRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9kdG9hLmg+CisjaW5jbHVk
ZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9V
VEY4Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29kZS5oPgogCkBAIC03NTMsNyArNzU0
LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1dFVURjhUcmlwbGUoY2hhciomIGJ1ZmZlciwgVUNo
YXIgY2gpCiAgICAgKmJ1ZmZlcisrID0gc3RhdGljX2Nhc3Q8Y2hhcj4oKGNoICYgMHgzRikgfCAw
eDgwKTsKIH0KIAotQ1N0cmluZyBTdHJpbmc6OnV0ZjgoYm9vbCBzdHJpY3QpIGNvbnN0CitDU3Ry
aW5nIFN0cmluZzo6dXRmOChDb252ZXJzaW9uTW9kZSBtb2RlKSBjb25zdAogewogICAgIHVuc2ln
bmVkIGxlbmd0aCA9IHRoaXMtPmxlbmd0aCgpOwogCkBAIC03ODQsMjYgKzc4NSw0NSBAQCBDU3Ry
aW5nIFN0cmluZzo6dXRmOChib29sIHN0cmljdCkgY29uc3QKICAgICB9IGVsc2UgewogICAgICAg
ICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHRoaXMtPmNoYXJhY3RlcnMxNigpOwogCi0gICAg
ICAgIENvbnZlcnNpb25SZXN1bHQgcmVzdWx0ID0gY29udmVydFVURjE2VG9VVEY4KCZjaGFyYWN0
ZXJzLCBjaGFyYWN0ZXJzICsgbGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBidWZmZXJWZWN0b3Iu
c2l6ZSgpLCBzdHJpY3QpOwotICAgICAgICBBU1NFUlQocmVzdWx0ICE9IHRhcmdldEV4aGF1c3Rl
ZCk7IC8vIChsZW5ndGggKiAzKSBzaG91bGQgYmUgc3VmZmljaWVudCBmb3IgYW55IGNvbnZlcnNp
b24KLQotICAgICAgICAvLyBPbmx5IHByb2R1Y2VkIGZyb20gc3RyaWN0IGNvbnZlcnNpb24uCi0g
ICAgICAgIGlmIChyZXN1bHQgPT0gc291cmNlSWxsZWdhbCkKLSAgICAgICAgICAgIHJldHVybiBD
U3RyaW5nKCk7CisgICAgICAgIGlmIChtb2RlID09IFN0cmljdENvbnZlcnNpb25SZXBsYWNpbmdV
bnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCkgeworICAgICAgICAgICAgY29uc3QgVUNoYXIqIGNo
YXJhY3RlcnNFbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOworICAgICAgICAgICAgY2hhciogYnVm
ZmVyRW5kID0gYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKTsKKyAgICAgICAgICAgIHdoaWxl
IChjaGFyYWN0ZXJzIDwgY2hhcmFjdGVyc0VuZCkgeworICAgICAgICAgICAgICAgIC8vIFVzZSBz
dHJpY3QgY29udmVyc2lvbiB0byBkZXRlY3QgdW5wYWlyZWQgc3Vycm9nYXRlcy4KKyAgICAgICAg
ICAgICAgICBDb252ZXJzaW9uUmVzdWx0IHJlc3VsdCA9IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hh
cmFjdGVycywgY2hhcmFjdGVyc0VuZCwgJmJ1ZmZlciwgYnVmZmVyRW5kLCB0cnVlKTsKKyAgICAg
ICAgICAgICAgICBBU1NFUlQocmVzdWx0ICE9IHRhcmdldEV4aGF1c3RlZCk7CisgICAgICAgICAg
ICAgICAgLy8gQ29udmVyc2lvbiBmYWlscyB3aGVuIHRoZXJlIGlzIGFuIHVucGFpcmVkIHN1cnJv
Z2F0ZS4KKyAgICAgICAgICAgICAgICAvLyBQdXQgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIChVK0ZG
RkQpIGluc3RlYWQgb2YgdGhlIHVucGFpcmVkIHN1cnJvZ2F0ZS4KKyAgICAgICAgICAgICAgICBp
ZiAocmVzdWx0ICE9IGNvbnZlcnNpb25PSykgeworICAgICAgICAgICAgICAgICAgICAvLyBUaGVy
ZSBzaG91bGQgYmUgcm9vbSBsZWZ0LCBzaW5jZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVy
dGVkLgorICAgICAgICAgICAgICAgICAgICBBU1NFUlQoKGJ1ZmZlciArIDMpIDw9IChidWZmZXIg
KyBidWZmZXJWZWN0b3Iuc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgICAgIHB1dFVURjhUcmlw
bGUoYnVmZmVyLCByZXBsYWNlbWVudENoYXJhY3Rlcik7CisgICAgICAgICAgICAgICAgICAgICsr
Y2hhcmFjdGVyczsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICBib29sIHN0cmljdCA9IG1vZGUgPT0gU3RyaWN0Q29udmVyc2lv
bjsKKyAgICAgICAgICAgIENvbnZlcnNpb25SZXN1bHQgcmVzdWx0ID0gY29udmVydFVURjE2VG9V
VEY4KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzICsgbGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBi
dWZmZXJWZWN0b3Iuc2l6ZSgpLCBzdHJpY3QpOworICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCAh
PSB0YXJnZXRFeGhhdXN0ZWQpOyAvLyAobGVuZ3RoICogMykgc2hvdWxkIGJlIHN1ZmZpY2llbnQg
Zm9yIGFueSBjb252ZXJzaW9uCiAKLSAgICAgICAgLy8gQ2hlY2sgZm9yIGFuIHVuY29udmVydGVk
IGhpZ2ggc3Vycm9nYXRlLgotICAgICAgICBpZiAocmVzdWx0ID09IHNvdXJjZUV4aGF1c3RlZCkg
ewotICAgICAgICAgICAgaWYgKHN0cmljdCkKKyAgICAgICAgICAgIC8vIE9ubHkgcHJvZHVjZWQg
ZnJvbSBzdHJpY3QgY29udmVyc2lvbi4KKyAgICAgICAgICAgIGlmIChyZXN1bHQgPT0gc291cmNl
SWxsZWdhbCkKICAgICAgICAgICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotICAgICAgICAgICAg
Ly8gVGhpcyBzaG91bGQgYmUgb25lIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlLiBUcmVhdCBpdCB0
aGUgc2FtZQotICAgICAgICAgICAgLy8gd2FzIGFzIGFuIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRl
IHdvdWxkIGhhdmUgYmVlbiBoYW5kbGVkIGluCi0gICAgICAgICAgICAvLyB0aGUgbWlkZGxlIG9m
IGEgc3RyaW5nIHdpdGggbm9uLXN0cmljdCBjb252ZXJzaW9uIC0gd2hpY2ggaXMKLSAgICAgICAg
ICAgIC8vIHRvIHNheSwgc2ltcGx5IGVuY29kZSBpdCB0byBVVEYtOC4KLSAgICAgICAgICAgIEFT
U0VSVCgoY2hhcmFjdGVycyArIDEpID09ICh0aGlzLT5jaGFyYWN0ZXJzKCkgKyBsZW5ndGgpKTsK
LSAgICAgICAgICAgIEFTU0VSVCgoKmNoYXJhY3RlcnMgPj0gMHhEODAwKSAmJiAoKmNoYXJhY3Rl
cnMgPD0gMHhEQkZGKSk7Ci0gICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgcm9vbSBsZWZ0
LCBzaW5jZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVydGVkLgotICAgICAgICAgICAgQVNT
RVJUKChidWZmZXIgKyAzKSA8PSAoYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSkpOwotICAg
ICAgICAgICAgcHV0VVRGOFRyaXBsZShidWZmZXIsICpjaGFyYWN0ZXJzKTsKKworICAgICAgICAg
ICAgLy8gQ2hlY2sgZm9yIGFuIHVuY29udmVydGVkIGhpZ2ggc3Vycm9nYXRlLgorICAgICAgICAg
ICAgaWYgKHJlc3VsdCA9PSBzb3VyY2VFeGhhdXN0ZWQpIHsKKyAgICAgICAgICAgICAgICBpZiAo
c3RyaWN0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1N0cmluZygpOworICAgICAgICAg
ICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIG9uZSB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZS4gVHJl
YXQgaXQgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICAvLyB3YXMgYXMgYW4gdW5wYWlyZWQgaGln
aCBzdXJyb2dhdGUgd291bGQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4KKyAgICAgICAgICAgICAgICAv
LyB0aGUgbWlkZGxlIG9mIGEgc3RyaW5nIHdpdGggbm9uLXN0cmljdCBjb252ZXJzaW9uIC0gd2hp
Y2ggaXMKKyAgICAgICAgICAgICAgICAvLyB0byBzYXksIHNpbXBseSBlbmNvZGUgaXQgdG8gVVRG
LTguCisgICAgICAgICAgICAgICAgQVNTRVJUKChjaGFyYWN0ZXJzICsgMSkgPT0gKHRoaXMtPmNo
YXJhY3RlcnMoKSArIGxlbmd0aCkpOworICAgICAgICAgICAgICAgIEFTU0VSVCgoKmNoYXJhY3Rl
cnMgPj0gMHhEODAwKSAmJiAoKmNoYXJhY3RlcnMgPD0gMHhEQkZGKSk7CisgICAgICAgICAgICAg
ICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ugb25lIFVDaGFyIGhhc24ndCBi
ZWVuIGNvbnZlcnRlZC4KKyAgICAgICAgICAgICAgICBBU1NFUlQoKGJ1ZmZlciArIDMpIDw9IChi
dWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpKSk7CisgICAgICAgICAgICAgICAgcHV0VVRGOFRy
aXBsZShidWZmZXIsICpjaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggYTVlMzM3ODc2Mzk1MzJlYzg1YTVjYmQ4
MzQ4Y2FjZjBjY2Y1MWEzNC4uMWEwYjQ4MWY3NWU0Zjc2OTllMjJmN2Y4ZGI0MmFjNGJkOTJlZGI1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0yMTEsNyArMjExLDE0IEBAIHB1YmxpYzoK
IAogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIGFzY2lpKCkgY29uc3Q7CiAgICAg
V1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgbGF0aW4xKCkgY29uc3Q7Ci0gICAgV1RGX0VY
UE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgdXRmOChib29sIHN0cmljdCA9IGZhbHNlKSBjb25zdDsK
KworICAgIHR5cGVkZWYgZW51bSB7CisgICAgICAgIExlbmllbnRDb252ZXJzaW9uLAorICAgICAg
ICBTdHJpY3RDb252ZXJzaW9uLAorICAgICAgICBTdHJpY3RDb252ZXJzaW9uUmVwbGFjaW5nVW5w
YWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQsCisgICAgfSBDb252ZXJzaW9uTW9kZTsKKworICAgIFdU
Rl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIHV0ZjgoQ29udmVyc2lvbk1vZGUgPSBMZW5pZW50
Q29udmVyc2lvbikgY29uc3Q7CiAKICAgICBVQ2hhciBvcGVyYXRvcltdKHVuc2lnbmVkIGluZGV4
KSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHAKaW5kZXggNDZkNjJkZTg5ZjQ2NjhmZTdhMTUxZmVlZDUzMTEzODI0NzMwMjdk
YS4uYzNjNzBhNGQ0MmNiN2NhMjUwZTA3NTc4NWFlNTBhYTRjYjQ4MTE3YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAgLTM0MSw3ICsz
NDEsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1Nf
RVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIENTdHJpbmcgdXRm
OCA9IHJlYXNvbi51dGY4KHRydWUpOworICAgICAgICBDU3RyaW5nIHV0ZjggPSByZWFzb24udXRm
OChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pOwogICAgICAgICBpZiAodXRmOC5sZW5ndGgoKSA+
IG1heFJlYXNvblNpemVJbkJ5dGVzKSB7CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCAiV2ViU29ja2V0IGNsb3NlIG1lc3NhZ2UgaXMgdG9vIGxvbmcu
Iik7CiAgICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggMzcxY2Uy
YTcxNTAxOTVkYTg2MDFhNzAwOWNhNDc0NGJmYTBkOGIzZi4uMDYyODg1NzA1MWVjYzdmZDRmYTQ0
NTJjODQ3ODUwMGI0MjMwMWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIFN0
cmluZyBXZWJTb2NrZXRDaGFubmVsOjpleHRlbnNpb25zKCkKIFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpTZW5kUmVzdWx0IFdlYlNvY2tldENoYW5uZWw6OnNlbmQoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBzZW5kICVz
IiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSAgICBDU3RyaW5nIHV0ZjggPSBtZXNz
YWdlLnV0ZjgodHJ1ZSk7CisgICAgQ1N0cmluZyB1dGY4ID0gbWVzc2FnZS51dGY4KFN0cmluZzo6
U3RyaWN0Q29udmVyc2lvbik7CiAgICAgaWYgKHV0ZjguaXNOdWxsKCkgJiYgbWVzc2FnZS5sZW5n
dGgoKSkKICAgICAgICAgcmV0dXJuIEludmFsaWRNZXNzYWdlOwogICAgIGVucXVldWVUZXh0RnJh
bWUodXRmOCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRV
UklQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2Vy
LmNwcAppbmRleCBkZTc4NmZmZDQ0Y2YwMzI3YTNhZTQ3MmRlMTQxYWFlNWJjNDY2MjYzLi4wMjg1
NjExZjE3MmRlZTM2YWY1Nzk5NTg4N2Q5MzNmYTk5NDNkN2I4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKQEAgLTE0MiwxMSArMTQyLDExIEBA
IHZvaWQgTWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6cGFyc2VGcmFnbWVudHMoKQogICAgICAgICAv
LyAgICAgbmFtZSBvciB2YWx1ZSBhcmUgbm90IHZhbGlkIFVURi04IHN0cmluZ3MsIHRoZW4gcmVt
b3ZlIHRoZSBuYW1lLXZhbHVlIHBhaXIgZnJvbSB0aGUgbGlzdC4KICAgICAgICAgYm9vbCB2YWxp
ZFVURjggPSB0cnVlOwogICAgICAgICBpZiAoIW5hbWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAg
ICBuYW1lID0gbmFtZS51dGY4KHRydWUpLmRhdGEoKTsKKyAgICAgICAgICAgIG5hbWUgPSBuYW1l
LnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCk7CiAgICAgICAgICAgICB2YWxp
ZFVURjggPSAhbmFtZS5pc0VtcHR5KCk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbGlkVVRG
OCAmJiAhdmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnV0Zjgo
dHJ1ZSkuZGF0YSgpOworICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS51dGY4KFN0cmluZzo6U3Ry
aWN0Q29udmVyc2lvbikuZGF0YSgpOwogICAgICAgICAgICAgdmFsaWRVVEY4ID0gIXZhbHVlLmlz
RW1wdHkoKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJy
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlh
UGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IDQzMWU5NjU0NWU0OTc0ZDA2NTE2ZjMx
YmI2ODY0ZjJhNzk0ZjI1NGUuLmVjZDhlZGU1ZDFiZWJjMjVjZmY4YzFjNjcwZDVkYzJiMzA0Mjc0
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVy
cnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5
LmNwcApAQCAtNzQ5LDggKzc0OSw4IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpub3RpZnlD
aGFsbGVuZ2VSZXN1bHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90ZWN0aW9uCiAgICAgaWYg
KHJlc3VsdCAhPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3MgfHwgIXVybC5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGxhdGZvcm1QbGF5ZXItPnJlbG9hZFdpdGhD
cmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLnV0ZjgodHJ1ZSkuZGF0YSgpLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWwucGFzc3dvcmQoKS51
dGY4KHRydWUpLmRhdGEoKSwKKyAgICBtX3BsYXRmb3JtUGxheWVyLT5yZWxvYWRXaXRoQ3JlZGVu
dGlhbChjcmVkZW50aWFsLnVzZXIoKS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0
YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRp
YWwucGFzc3dvcmQoKS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE1NUkF1
dGhDaGFsbGVuZ2U6OkNyZWRlbnRpYWxQZXJzaXN0ZW5jZT4oY3JlZGVudGlhbC5wZXJzaXN0ZW5j
ZSgpKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVyU3RyZWFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVyU3RyZWFtLmNwcAppbmRleCBhN2U1
MDQ0NmVmZjFlNDc1MDk4MWYyODY2NzQwMmQ1ODEwMDNiYmYyLi4yNWRhY2EyNThhYTNmMjMxZDcz
ODAyOWUzODExZmFhMjM3YTQ3NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NGaWx0ZXJTdHJlYW0u
Y3BwCkBAIC01MjcsNyArNTI3LDcgQEAgYm9vbCBSU1NGaWx0ZXJTdHJlYW06OmNvbnZlcnRDb250
ZW50VG9IdG1sKHN0ZDo6c3RyaW5nJiByZXN1bHQpCiAKICAgICBPd25QdHI8UlNTR2VuZXJhdG9y
PiBnZW5lcmF0b3IgPSBhZG9wdFB0cihuZXcgUlNTR2VuZXJhdG9yKCkpOwogICAgIFN0cmluZyBo
dG1sID0gZ2VuZXJhdG9yLT5nZW5lcmF0ZUh0bWwocGFyc2VyLT5tX3Jvb3QpOwotICAgIHJlc3Vs
dCA9IGh0bWwudXRmOCh0cnVlKS5kYXRhKCk7CisgICAgcmVzdWx0ID0gaHRtbC51dGY4KFN0cmlu
Zzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JT
U0dlbmVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvcnNzL1JTU0dlbmVyYXRvci5jcHAKaW5kZXggM2MxODk5MmMzY2M5YzcxYTBiYjQxOWM5ZGUz
MGE0NTAxMzJjNThhZS4uZDkzZTA0YzliM2U5MmUyOGQ4YmY3MjE0YzJhZTQzNzI4NTFiN2IwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jz
cy9SU1NHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9yc3MvUlNTR2VuZXJhdG9yLmNwcApAQCAtODMsMTAgKzgzLDEwIEBAIFN0cmlu
ZyBSU1NHZW5lcmF0b3I6OmdlbmVyYXRlSHRtbChSU1NGZWVkKiBmZWVkKQogICAgICAgICBidWls
ZGVyLmFwcGVuZChhcnRpY2xlTmFtZSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
XCIgY2xhc3M9XCJhcnRpY2xlXCI+XG48YSBocmVmPVwiIik7CiAgICAgICAgIGlmICghaXRlbS0+
bV9saW5rLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fbGlu
ay51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5t
X2xpbmsudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCI+PGI+Iik7CiAgICAgICAgIGlmICghaXRlbS0+bV90aXRs
ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX3RpdGxlLnV0
ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fdGl0
bGUudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHNfZGVmYXVsdEVudHJ5VGl0bGUpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvYj48L2E+XG48YnIgLz4iKTsKQEAgLTk0LDEzICs5
NCwxMyBAQCBTdHJpbmcgUlNTR2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkK
ICAgICAgICAgaWYgKCFpdGVtLT5tX2F1dGhvci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGkxOG4oIkJ5IikpOwogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgPGI+Iik7Ci0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX2F1dGhvci51
dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX2F1
dGhvci51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKICAgICAgICAgICAg
IGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9iPiAiKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAg
ICAgICAgIGlmICghZmVlZC0+bV9hdXRob3IuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaTE4bigiQnkiKSk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIgPGI+Iik7Ci0gICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoZmVlZC0+
bV9hdXRob3IudXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kKGZlZWQtPm1fYXV0aG9yLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkp
OwogICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9iPiAiKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtMTEzLDcgKzExMyw3IEBAIFN0cmluZyBSU1NHZW5lcmF0
b3I6OmdlbmVyYXRlSHRtbChSU1NGZWVkKiBmZWVkKQogCiAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgaXRlbS0+bV9jYXRlZ29yaWVzLnNpemUoKSA7ICsraSkgewogICAgICAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGI+Iik7Ci0gICAgICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaXRlbS0+bV9jYXRlZ29yaWVzW2ldLnV0ZjgodHJ1ZSkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX2NhdGVnb3JpZXNbaV0udXRm
OChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCI8L2I+Iik7CiAKICAgICAgICAgICAgICAgICBpZiAoaSA8IGl0
ZW0tPm1fY2F0ZWdvcmllcy5zaXplKCkgLSAxKQpAQCAtMTIzLDExICsxMjMsMTEgQEAgU3RyaW5n
IFJTU0dlbmVyYXRvcjo6Z2VuZXJhdGVIdG1sKFJTU0ZlZWQqIGZlZWQpCiAKICAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCI8YnIgLz4iKTsKICAgICAgICAgaWYgKCFpdGVtLT5tX3B1YkRh
dGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9wdWJEYXRl
LnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1f
cHViRGF0ZS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKIAogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxiciAvPiIpOwogICAgICAgICBpZiAoIWl0ZW0tPm1f
ZGVzY3JpcHRpb24uaXNFbXB0eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+
bV9kZXNjcmlwdGlvbi51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZChpdGVtLT5tX2Rlc2NyaXB0aW9uLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5k
YXRhKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxiciAvPiIpOwogCiAgICAg
ICAgIGlmIChpdGVtLT5tX2VuY2xvc3VyZSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDk2
NjI4MmY5OGM0Zjc3ZGYxODkxY2UxZTlmMTA1M2VhYTkxMjBiZjAuLmNlNmQzNDRjM2E1ZjViZmNk
NjcyYWM5N2I3NWQ5MzdiOTVkMmQxZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTI2NSw3
ICsyNjUsNyBAQCBFWFBPUlRTCiAgICAgICAgID90cmVlU2NvcGVATm9kZUBXZWJDb3JlQEBRQkVQ
QVZUcmVlU2NvcGVAMkBYWgogICAgICAgICA/dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/dXNlclByZWZlcnJlZExh
bmd1YWdlc0BXZWJDb3JlQEBZQT9BVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBAWFoK
LSAgICAgICAgP3V0ZjhAU3RyaW5nQFdURkBAUUJFP0FWQ1N0cmluZ0AyQF9OQFoKKyAgICAgICAg
P3V0ZjhAU3RyaW5nQFdURkBAUUJFP0FWQ1N0cmluZ0AyQFc0Q29udmVyc2lvbk1vZGVAMTJAQFoK
ICAgICAgICAgP3ZpZXdARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWRnJhbWVWaWV3QDJAWFoKICAg
ICAgICAgPz8xQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBATUFFQFhaCiAgICAg
ICAgID9jb250ZXh0RGVzdHJveWVkQENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVA
QFVBRVhYWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
IGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGM3OTZiNjAxNjEx
ODZhMTE0Mzc0ZjdkMDI4ZGExMzg1ZDNkZTZhNjYuLjUwNTRjMDQzNjk4NWE4OWU5MmNiZjZkZmRi
OGMyYTZjNjNhMWVhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTI1
Niw3ICsyNTYsNyBAQCBFWFBPUlRTCiAgICAgICAgID90cmVlU2NvcGVATm9kZUBXZWJDb3JlQEBR
QkVQQVZUcmVlU2NvcGVAMkBYWgogICAgICAgICA/dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzQERvY3VtZW50QFdlYkNvcmVAQFFBRVhYWgogICAgICAgICA/dXNlclByZWZlcnJl
ZExhbmd1YWdlc0BXZWJDb3JlQEBZQT9BVj8kVmVjdG9yQFZTdHJpbmdAV1RGQEAkMEFAQFdURkBA
WFoKLSAgICAgICAgP3V0ZjhAU3RyaW5nQFdURkBAUUJFP0FWQ1N0cmluZ0AyQF9OQFoKKyAgICAg
ICAgP3V0ZjhAU3RyaW5nQFdURkBAUUJFP0FWQ1N0cmluZ0AyQFc0Q29udmVyc2lvbk1vZGVAMTJA
QFoKICAgICAgICAgP3ZpZXdARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWRnJhbWVWaWV3QDJAWFoK
ICAgICAgICAgPz8xQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBATUFFQFhaCiAg
ICAgICAgID9jb250ZXh0RGVzdHJveWVkQENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNv
cmVAQFVBRVhYWgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173498</attachid>
            <date>2012-11-11 05:27:21 -0800</date>
            <delta_ts>2012-11-11 05:31:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101678-20121111222525.patch</filename>
            <type>text/plain</type>
            <size>19507</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YTA2MWJmNDdjYWEzNjM1MzU0OGE0NWMzZjMwNDcxNDlhN2RmZGM2Li40MWRmYWQ3Y2M0NTZjZmQ2
MmZlNGU5NDYxNzYwMmQ4NmY3YTMwNmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0xMS0wOCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9m
IGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9sbG93IHRoZSBjaGFuZ2Ugb24gU3Ry
aW5nOjp1dGY4KCkKKworICAgICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMu
Y3BwOgorICAgICAgICAoSlNDOjplbmNvZGUpOiBQYXNzIFN0cmluZzo6U3RyaWN0Q29udmVyc2lv
biBpbnN0ZWFkIG9mIHRydWUgdG8gU3RyaW5nOjp1dGY4KCkuCisKIDIwMTItMTEtMTAgIEZpbGlw
IFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KIAogICAgICAgICBERkcgc2hvdWxkIG9wdGltaXpl
IG91dCB0aGUgTmFOIGNoZWNrIG9uIGxvYWRzIGZyb20gZG91YmxlIGFycmF5cyBpZiB0aGUgYXJy
YXkgcHJvdG90eXBlIGNoYWluIGlzIGhhdmluZyBhIGdyZWF0IHRpbWUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYWYzY2U3OGEw
YTFlY2FiMGMzNzQ2NDc5MjExYTk1OWE2MzlhODhiZS4uZjdhNDZhNWJhNWMzNzE0NTJhZjczOWZi
YWQ5NmUwNTNhNjkxZDNiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0xMS0xMCAgS2VuaWNo
aSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1
dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9mIGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50
IGNoYXJhY3RlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleGFuZGVyIFBhdmxvdi4KKworICAg
ICAgICBJbnRyb2R1Y2UgY29udmVyc2lvbiBtb2RlIHRvIFN0cmluZzo6dXRmOCgpLgorICAgICAg
ICBUaGVyZSBhcmUgdGhyZWUgY29udmVyc2lvbiBtb2RlczsgbGVuaWVudCBtb2RlLCBzdHJpY3Qg
bW9kZSwgYW5kCisgICAgICAgICJyZXBsYWNpbmcgdW5wYWlyZWQgc3Vycm9nYXRlcyB3aXRoIHRo
ZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIiIChyZXBsYWNlbWVudCkgbW9kZS4KKyAgICAgICAgTGVu
aWVudCBtb2RlIGNvbnZlcnRzIHVucGFpcmVkIHN1cnJvZ2F0ZXMuIFN0cmljdCBtb2RlIGZhaWxz
IHdoZW4gdGhlcmUgaXMgYW4gdW5wYWlyZWQKKyAgICAgICAgc3Vycm9nYXRlcyBhbmQgcmV0dXJu
cyBDU3RyaW5nKCkuIFJlcGxhY2VtZW50IG1vZGUgcmVwbGFjZXMgdW5wYWlyZWQgc3Vycm9nYXRl
cyB3aXRoCisgICAgICAgIHRoZSByZXBsYWNlbWVudCBjaGFyYWN0ZXIoVStGRkZEKS4gUmVwbGFj
ZW1lbnQgbW9kZSBpbXBsZW1lbnRzIHRoZSBhbGdvcml0aG0gZGVmaW5lZCBhdAorICAgICAgICBo
dHRwOi8vZGV2LnczLm9yZy8yMDA2L3dlYmFwaS9XZWJJREwvI2Rmbi1vYnRhaW4tdW5pY29kZS4g
V2ViU29ja2V0OjpzZW5kKCkgcmVxdWlyZXMKKyAgICAgICAgdGhpcyBhbGdvcml0aG0gdG8gZW5j
b2RlIGEgc3RyaW5nIHRvIHV0Zi04LgorCisgICAgICAgICogd3RmL3RleHQvV1RGU3RyaW5nLmNw
cDoKKyAgICAgICAgKFdURjo6U3RyaW5nOjp1dGY4KTogQ2hhbmdlZCB0byB0YWtlIENvbnZlcnNp
b25Nb2RlIGFzIHRoZSBhcmd1bWVudC4KKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJpbmcuaDoK
KyAgICAgICAgKFN0cmluZyk6CisKIDIwMTItMTEtMDkgIEFsZXhlaSBGaWxpcHBvdiAgPGFscGhA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEZpeCBoZWFwIHNuYXBzaG90
cyBjb3VudGVkIHNldmVyYWwgdGltZXMgYnkgTk1JCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTExMjU0YjRlMWZl
YjMxODdiMDhmMzU4Yzg3Y2FlOWVkNzFmZThiOC4uNGI0YzYxZDlhYWJlNGM2Y2VhNjlhNGE1MmQ2
N2M5ZmMyMDZkNzAyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTExLTEwICBL
ZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBXVEZTdHJp
bmc6OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2YgY29udmVyc2lvbiB0byB1c2UgcmVwbGFj
ZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292
LgorCisgICAgICAgIEZvbGxvdyB0aGUgY2hhbmdlIG9uIFN0cmluZzo6dXRmOCgpCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBObyBjaGFuZ2VzIGluIGJlaGF2aW9yLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OmNsb3NlKTogUGFzcyBTdHJpbmc6OlN0cmljdENvbnZlcnNpb24gaW5zdGVhZCBvZiB0cnVl
IHRvIFN0cmluZzo6dXRmOCgpLgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnNlbmQp
OiBEaXR0by4KKyAgICAgICAgKiBodG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6cGFyc2VGcmFnbWVudHMpOiBE
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxheWVy
UHJpdmF0ZUJsYWNrQmVycnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSU1NGaWx0ZXJTdHJlYW06OmNvbnZlcnRDb250ZW50VG9IdG1sKTogRGl0dG8uCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NHZW5lcmF0b3IuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UlNTR2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwpOiBEaXR0by4KKwog
MjAxMi0xMS0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBDb2FsZXNjZSBtYWluIHRocmVhZCBzY3JvbGwgcG9zaXRpb24gdXBkYXRlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IGM2NzU4MmM3N2Q2OTRhZmEyNmNhOTc5ZjlkMjY0YjkxYWMyZWFhNzcuLjVhZDJjMGY0
MmQyNzhmZTlkYjRhYThhZTU0MDc4NWNlYzU3Y2MxY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMi0xMS0xMCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9mIGNvbnZl
cnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBVcGRhdGUgdGhlIHN5bWJvbCBmb3IgU3Ry
aW5nOjp1dGY4KCkuCisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2lu
L1dlYktpdDJDRkxpdGUuZGVmOgorCiAyMDEyLTExLTEwICBaZW5vIEFsYmlzc2VyICA8emVub0B3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBVc2UgUUxpYnJhcnlJbmZvIHRvIHNlYXJj
aCBmb3IgZXhlY3V0YWJsZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggN2FjNzZkMzUwZDA4MTAy
MDNkYjMxYzhmOTY4MzI4NmQ0ZGQ4YmY0NC4uMTAxMGFkMmI3MTA5Y2UzMzljNTA4N2U2ZmNkMjZj
ODYyNzIyMTEzYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNH
bG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtNTIsNyArNTIsNyBAQCBuYW1lc3Bh
Y2UgSlNDIHsKIAogc3RhdGljIEpTVmFsdWUgZW5jb2RlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3Qg
Y2hhciogZG9Ob3RFc2NhcGUpCiB7Ci0gICAgQ1N0cmluZyBjc3RyID0gZXhlYy0+YXJndW1lbnQo
MCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLnV0ZjgodHJ1ZSk7CisgICAgQ1N0cmluZyBj
c3RyID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLnV0Zjgo
U3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKTsKICAgICBpZiAoIWNzdHIuZGF0YSgpKQogICAgICAg
ICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBjcmVhdGVVUklFcnJvcihleGVjLCBBU0NJSUxpdGVy
YWwoIlN0cmluZyBjb250YWluZWQgYW4gaWxsZWdhbCBVVEYtMTYgc2VxdWVuY2UuIikpKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCmluZGV4IGUxMDI4MmRlMmM0MTNlMWQ4MjJiNmRlZWI3
MjM3NjMyZjYzYzhjZjYuLjAzNzkxNjQ0OTRjMTBmMmM4YzQzZTZjY2Q3NWZlZGQyYWMwNWUyNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcAorKysgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
IDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi9kdG9hLmg+CisjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KICNp
bmNsdWRlIDx3dGYvdW5pY29kZS9VVEY4Lmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvVW5pY29k
ZS5oPgogCkBAIC03NTMsNyArNzU0LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHB1dFVURjhUcmlw
bGUoY2hhciomIGJ1ZmZlciwgVUNoYXIgY2gpCiAgICAgKmJ1ZmZlcisrID0gc3RhdGljX2Nhc3Q8
Y2hhcj4oKGNoICYgMHgzRikgfCAweDgwKTsKIH0KIAotQ1N0cmluZyBTdHJpbmc6OnV0ZjgoYm9v
bCBzdHJpY3QpIGNvbnN0CitDU3RyaW5nIFN0cmluZzo6dXRmOChDb252ZXJzaW9uTW9kZSBtb2Rl
KSBjb25zdAogewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHRoaXMtPmxlbmd0aCgpOwogCkBAIC03
ODQsMjYgKzc4NSw0OCBAQCBDU3RyaW5nIFN0cmluZzo6dXRmOChib29sIHN0cmljdCkgY29uc3QK
ICAgICB9IGVsc2UgewogICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHRoaXMtPmNo
YXJhY3RlcnMxNigpOwogCi0gICAgICAgIENvbnZlcnNpb25SZXN1bHQgcmVzdWx0ID0gY29udmVy
dFVURjE2VG9VVEY4KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzICsgbGVuZ3RoLCAmYnVmZmVyLCBi
dWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpLCBzdHJpY3QpOwotICAgICAgICBBU1NFUlQocmVz
dWx0ICE9IHRhcmdldEV4aGF1c3RlZCk7IC8vIChsZW5ndGggKiAzKSBzaG91bGQgYmUgc3VmZmlj
aWVudCBmb3IgYW55IGNvbnZlcnNpb24KLQotICAgICAgICAvLyBPbmx5IHByb2R1Y2VkIGZyb20g
c3RyaWN0IGNvbnZlcnNpb24uCi0gICAgICAgIGlmIChyZXN1bHQgPT0gc291cmNlSWxsZWdhbCkK
LSAgICAgICAgICAgIHJldHVybiBDU3RyaW5nKCk7CisgICAgICAgIGlmIChtb2RlID09IFN0cmlj
dENvbnZlcnNpb25SZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCkgeworICAgICAg
ICAgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnNFbmQgPSBjaGFyYWN0ZXJzICsgbGVuZ3RoOwor
ICAgICAgICAgICAgY2hhciogYnVmZmVyRW5kID0gYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUo
KTsKKyAgICAgICAgICAgIHdoaWxlIChjaGFyYWN0ZXJzIDwgY2hhcmFjdGVyc0VuZCkgeworICAg
ICAgICAgICAgICAgIC8vIFVzZSBzdHJpY3QgY29udmVyc2lvbiB0byBkZXRlY3QgdW5wYWlyZWQg
c3Vycm9nYXRlcy4KKyAgICAgICAgICAgICAgICBDb252ZXJzaW9uUmVzdWx0IHJlc3VsdCA9IGNv
bnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVyc0VuZCwgJmJ1ZmZlciwgYnVm
ZmVyRW5kLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBBU1NFUlQocmVzdWx0ICE9IHRhcmdldEV4
aGF1c3RlZCk7CisgICAgICAgICAgICAgICAgLy8gQ29udmVyc2lvbiBmYWlscyB3aGVuIHRoZXJl
IGlzIGFuIHVucGFpcmVkIHN1cnJvZ2F0ZS4KKyAgICAgICAgICAgICAgICAvLyBQdXQgcmVwbGFj
ZW1lbnQgY2hhcmFjdGVyIChVK0ZGRkQpIGluc3RlYWQgb2YgdGhlIHVucGFpcmVkIHN1cnJvZ2F0
ZS4KKyAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICE9IGNvbnZlcnNpb25PSykgeworICAgICAg
ICAgICAgICAgICAgICBBU1NFUlQoKDB4RDgwMCA8PSAqY2hhcmFjdGVycyAmJiAqY2hhcmFjdGVy
cyA8PSAweERGRkYpKTsKKyAgICAgICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJv
b20gbGVmdCwgc2luY2Ugb25lIFVDaGFyIGhhc24ndCBiZWVuIGNvbnZlcnRlZC4KKyAgICAgICAg
ICAgICAgICAgICAgQVNTRVJUKChidWZmZXIgKyAzKSA8PSBidWZmZXJFbmQpOworICAgICAgICAg
ICAgICAgICAgICBwdXRVVEY4VHJpcGxlKGJ1ZmZlciwgcmVwbGFjZW1lbnRDaGFyYWN0ZXIpOwor
ICAgICAgICAgICAgICAgICAgICArK2NoYXJhY3RlcnM7CisgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgfQorICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgYm9vbCBzdHJpY3QgPSBt
b2RlID09IFN0cmljdENvbnZlcnNpb247CisgICAgICAgICAgICBDb252ZXJzaW9uUmVzdWx0IHJl
c3VsdCA9IGNvbnZlcnRVVEYxNlRvVVRGOCgmY2hhcmFjdGVycywgY2hhcmFjdGVycyArIGxlbmd0
aCwgJmJ1ZmZlciwgYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSwgc3RyaWN0KTsKKyAgICAg
ICAgICAgIEFTU0VSVChyZXN1bHQgIT0gdGFyZ2V0RXhoYXVzdGVkKTsgLy8gKGxlbmd0aCAqIDMp
IHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lvbgogCi0gICAgICAgIC8vIENo
ZWNrIGZvciBhbiB1bmNvbnZlcnRlZCBoaWdoIHN1cnJvZ2F0ZS4KLSAgICAgICAgaWYgKHJlc3Vs
dCA9PSBzb3VyY2VFeGhhdXN0ZWQpIHsKLSAgICAgICAgICAgIGlmIChzdHJpY3QpCisgICAgICAg
ICAgICAvLyBPbmx5IHByb2R1Y2VkIGZyb20gc3RyaWN0IGNvbnZlcnNpb24uCisgICAgICAgICAg
ICBpZiAocmVzdWx0ID09IHNvdXJjZUlsbGVnYWwpIHsKKyAgICAgICAgICAgICAgICBBU1NFUlQo
c3RyaWN0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gQ1N0cmluZygpOwotICAgICAgICAgICAg
Ly8gVGhpcyBzaG91bGQgYmUgb25lIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRlLiBUcmVhdCBpdCB0
aGUgc2FtZQotICAgICAgICAgICAgLy8gd2FzIGFzIGFuIHVucGFpcmVkIGhpZ2ggc3Vycm9nYXRl
IHdvdWxkIGhhdmUgYmVlbiBoYW5kbGVkIGluCi0gICAgICAgICAgICAvLyB0aGUgbWlkZGxlIG9m
IGEgc3RyaW5nIHdpdGggbm9uLXN0cmljdCBjb252ZXJzaW9uIC0gd2hpY2ggaXMKLSAgICAgICAg
ICAgIC8vIHRvIHNheSwgc2ltcGx5IGVuY29kZSBpdCB0byBVVEYtOC4KLSAgICAgICAgICAgIEFT
U0VSVCgoY2hhcmFjdGVycyArIDEpID09ICh0aGlzLT5jaGFyYWN0ZXJzKCkgKyBsZW5ndGgpKTsK
LSAgICAgICAgICAgIEFTU0VSVCgoKmNoYXJhY3RlcnMgPj0gMHhEODAwKSAmJiAoKmNoYXJhY3Rl
cnMgPD0gMHhEQkZGKSk7Ci0gICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgcm9vbSBsZWZ0
LCBzaW5jZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVydGVkLgotICAgICAgICAgICAgQVNT
RVJUKChidWZmZXIgKyAzKSA8PSAoYnVmZmVyICsgYnVmZmVyVmVjdG9yLnNpemUoKSkpOwotICAg
ICAgICAgICAgcHV0VVRGOFRyaXBsZShidWZmZXIsICpjaGFyYWN0ZXJzKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgLy8gQ2hlY2sgZm9yIGFuIHVuY29udmVydGVkIGhpZ2ggc3Vycm9n
YXRlLgorICAgICAgICAgICAgaWYgKHJlc3VsdCA9PSBzb3VyY2VFeGhhdXN0ZWQpIHsKKyAgICAg
ICAgICAgICAgICBpZiAoc3RyaWN0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ1N0cmlu
ZygpOworICAgICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGJlIG9uZSB1bnBhaXJlZCBoaWdo
IHN1cnJvZ2F0ZS4gVHJlYXQgaXQgdGhlIHNhbWUKKyAgICAgICAgICAgICAgICAvLyB3YXMgYXMg
YW4gdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUgd291bGQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4KKyAg
ICAgICAgICAgICAgICAvLyB0aGUgbWlkZGxlIG9mIGEgc3RyaW5nIHdpdGggbm9uLXN0cmljdCBj
b252ZXJzaW9uIC0gd2hpY2ggaXMKKyAgICAgICAgICAgICAgICAvLyB0byBzYXksIHNpbXBseSBl
bmNvZGUgaXQgdG8gVVRGLTguCisgICAgICAgICAgICAgICAgQVNTRVJUKChjaGFyYWN0ZXJzICsg
MSkgPT0gKHRoaXMtPmNoYXJhY3RlcnMoKSArIGxlbmd0aCkpOworICAgICAgICAgICAgICAgIEFT
U0VSVCgoKmNoYXJhY3RlcnMgPj0gMHhEODAwKSAmJiAoKmNoYXJhY3RlcnMgPD0gMHhEQkZGKSk7
CisgICAgICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIHJvb20gbGVmdCwgc2luY2Ugb25l
IFVDaGFyIGhhc24ndCBiZWVuIGNvbnZlcnRlZC4KKyAgICAgICAgICAgICAgICBBU1NFUlQoKGJ1
ZmZlciArIDMpIDw9IChidWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpKSk7CisgICAgICAgICAg
ICAgICAgcHV0VVRGOFRyaXBsZShidWZmZXIsICpjaGFyYWN0ZXJzKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZT
dHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKaW5kZXggYTVlMzM3ODc2
Mzk1MzJlYzg1YTVjYmQ4MzQ4Y2FjZjBjY2Y1MWEzNC4uMWEwYjQ4MWY3NWU0Zjc2OTllMjJmN2Y4
ZGI0MmFjNGJkOTJlZGI1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJp
bmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5oCkBAIC0yMTEsNyArMjEx
LDE0IEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIGFzY2lp
KCkgY29uc3Q7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgbGF0aW4xKCkgY29u
c3Q7Ci0gICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgdXRmOChib29sIHN0cmljdCA9
IGZhbHNlKSBjb25zdDsKKworICAgIHR5cGVkZWYgZW51bSB7CisgICAgICAgIExlbmllbnRDb252
ZXJzaW9uLAorICAgICAgICBTdHJpY3RDb252ZXJzaW9uLAorICAgICAgICBTdHJpY3RDb252ZXJz
aW9uUmVwbGFjaW5nVW5wYWlyZWRTdXJyb2dhdGVzV2l0aEZGRkQsCisgICAgfSBDb252ZXJzaW9u
TW9kZTsKKworICAgIFdURl9FWFBPUlRfU1RSSU5HX0FQSSBDU3RyaW5nIHV0ZjgoQ29udmVyc2lv
bk1vZGUgPSBMZW5pZW50Q29udmVyc2lvbikgY29uc3Q7CiAKICAgICBVQ2hhciBvcGVyYXRvcltd
KHVuc2lnbmVkIGluZGV4KSBjb25zdAogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggNDZkNjJkZTg5ZjQ2NjhmZTdhMTUxZmVl
ZDUzMTEzODI0NzMwMjdkYS4uYzNjNzBhNGQ0MmNiN2NhMjUwZTA3NTc4NWFlNTBhYTRjYjQ4MTE3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5j
cHAKQEAgLTM0MSw3ICszNDEsNyBAQCB2b2lkIFdlYlNvY2tldDo6Y2xvc2UoaW50IGNvZGUsIGNv
bnN0IFN0cmluZyYgcmVhc29uLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgICAgIGVjID0g
SU5WQUxJRF9BQ0NFU1NfRVJSOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAg
ICAgIENTdHJpbmcgdXRmOCA9IHJlYXNvbi51dGY4KHRydWUpOworICAgICAgICBDU3RyaW5nIHV0
ZjggPSByZWFzb24udXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pOwogICAgICAgICBpZiAo
dXRmOC5sZW5ndGgoKSA+IG1heFJlYXNvblNpemVJbkJ5dGVzKSB7CiAgICAgICAgICAgICBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiV2ViU29ja2V0IGNsb3NlIG1lc3Nh
Z2UgaXMgdG9vIGxvbmcuIik7CiAgICAgICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKaW5kZXggMzcxY2UyYTcxNTAxOTVkYTg2MDFhNzAwOWNhNDc0NGJmYTBkOGIzZi4uMDYyODg1
NzA1MWVjYzdmZDRmYTQ0NTJjODQ3ODUwMGI0MjMwMWMyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMTM3
LDcgKzEzNyw3IEBAIFN0cmluZyBXZWJTb2NrZXRDaGFubmVsOjpleHRlbnNpb25zKCkKIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpTZW5kUmVzdWx0IFdlYlNvY2tldENoYW5uZWw6OnNlbmQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hh
bm5lbCAlcCBzZW5kICVzIiwgdGhpcywgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKLSAgICBDU3Ry
aW5nIHV0ZjggPSBtZXNzYWdlLnV0ZjgodHJ1ZSk7CisgICAgQ1N0cmluZyB1dGY4ID0gbWVzc2Fn
ZS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbik7CiAgICAgaWYgKHV0ZjguaXNOdWxsKCkg
JiYgbWVzc2FnZS5sZW5ndGgoKSkKICAgICAgICAgcmV0dXJuIEludmFsaWRNZXNzYWdlOwogICAg
IGVucXVldWVUZXh0RnJhbWUodXRmOCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZy
YWdtZW50VVJJUGFyc2VyLmNwcAppbmRleCBkZTc4NmZmZDQ0Y2YwMzI3YTNhZTQ3MmRlMTQxYWFl
NWJjNDY2MjYzLi4wMjg1NjExZjE3MmRlZTM2YWY1Nzk5NTg4N2Q5MzNmYTk5NDNkN2I4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAKQEAgLTE0
MiwxMSArMTQyLDExIEBAIHZvaWQgTWVkaWFGcmFnbWVudFVSSVBhcnNlcjo6cGFyc2VGcmFnbWVu
dHMoKQogICAgICAgICAvLyAgICAgbmFtZSBvciB2YWx1ZSBhcmUgbm90IHZhbGlkIFVURi04IHN0
cmluZ3MsIHRoZW4gcmVtb3ZlIHRoZSBuYW1lLXZhbHVlIHBhaXIgZnJvbSB0aGUgbGlzdC4KICAg
ICAgICAgYm9vbCB2YWxpZFVURjggPSB0cnVlOwogICAgICAgICBpZiAoIW5hbWUuaXNFbXB0eSgp
KSB7Ci0gICAgICAgICAgICBuYW1lID0gbmFtZS51dGY4KHRydWUpLmRhdGEoKTsKKyAgICAgICAg
ICAgIG5hbWUgPSBuYW1lLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCk7CiAg
ICAgICAgICAgICB2YWxpZFVURjggPSAhbmFtZS5pc0VtcHR5KCk7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKHZhbGlkVVRGOCAmJiAhdmFsdWUuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICB2YWx1
ZSA9IHZhbHVlLnV0ZjgodHJ1ZSkuZGF0YSgpOworICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS51
dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpOwogICAgICAgICAgICAgdmFsaWRV
VEY4ID0gIXZhbHVlLmlzRW1wdHkoKTsKICAgICAgICAgfQogICAgICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQ
cml2YXRlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9i
bGFja2JlcnJ5L01lZGlhUGxheWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCmluZGV4IGNkZjYwMDZk
NzY5NzI4MTFhMTYwZmE4MzY1MmQ0YTA0OWUwNGI5ZjcuLjc5MTYyZjk1ZTg0ZTZmY2NiYWYxNjNi
NzAyMmY4ZThlZDZhNjM1MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclBy
aXZhdGVCbGFja0JlcnJ5LmNwcApAQCAtNzQ5LDkgKzc0OSw5IEBAIHZvaWQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpub3RpZnlDaGFsbGVuZ2VSZXN1bHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBQcm90
ZWN0aW9uCiAgICAgaWYgKHJlc3VsdCAhPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVN1Y2Nlc3Mg
fHwgIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGxhdGZvcm1QbGF5
ZXItPnJlbG9hZFdpdGhDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLnV0ZjgodHJ1ZSkuZGF0
YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRp
YWwucGFzc3dvcmQoKS51dGY4KHRydWUpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxNTVJBdXRoQ2hhbGxlbmdlOjpDcmVkZW50
aWFsUGVyc2lzdGVuY2U+KGNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSkpOworICAgIG1fcGxhdGZv
cm1QbGF5ZXItPnJlbG9hZFdpdGhDcmVkZW50aWFsKGNyZWRlbnRpYWwudXNlcigpLnV0ZjgoU3Ry
aW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY3JlZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgoU3RyaW5nOjpTdHJpY3RD
b252ZXJzaW9uKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgc3RhdGljX2Nhc3Q8TU1SQXV0aENoYWxsZW5nZTo6Q3JlZGVudGlhbFBlcnNpc3RlbmNlPihj
cmVkZW50aWFsLnBlcnNpc3RlbmNlKCkpKTsKIH0KIAogdm9pZCBNZWRpYVBsYXllclByaXZhdGU6
Om9uQXV0aGVudGljYXRpb25BY2NlcHRlZChjb25zdCBNTVJBdXRoQ2hhbGxlbmdlJiBhdXRoQ2hh
bGxlbmdlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L3Jzcy9SU1NGaWx0ZXJTdHJlYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NGaWx0ZXJTdHJlYW0uY3BwCmluZGV4IGE3
ZTUwNDQ2ZWZmMWU0NzUwOTgxZjI4NjY3NDAyZDU4MTAwM2JiZjIuLjI1ZGFjYTI1OGFhM2YyMzFk
NzM4MDI5ZTM4MTFmYWEyMzdhNDc0MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVyU3RyZWFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVh
bS5jcHAKQEAgLTUyNyw3ICs1MjcsNyBAQCBib29sIFJTU0ZpbHRlclN0cmVhbTo6Y29udmVydENv
bnRlbnRUb0h0bWwoc3RkOjpzdHJpbmcmIHJlc3VsdCkKIAogICAgIE93blB0cjxSU1NHZW5lcmF0
b3I+IGdlbmVyYXRvciA9IGFkb3B0UHRyKG5ldyBSU1NHZW5lcmF0b3IoKSk7CiAgICAgU3RyaW5n
IGh0bWwgPSBnZW5lcmF0b3ItPmdlbmVyYXRlSHRtbChwYXJzZXItPm1fcm9vdCk7Ci0gICAgcmVz
dWx0ID0gaHRtbC51dGY4KHRydWUpLmRhdGEoKTsKKyAgICByZXN1bHQgPSBodG1sLnV0ZjgoU3Ry
aW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3Mv
UlNTR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9yc3MvUlNTR2VuZXJhdG9yLmNwcAppbmRleCAzYzE4OTkyYzNjYzljNzFhMGJiNDE5Yzlk
ZTMwYTQ1MDEzMmM1OGFlLi5kOTNlMDRjOWIzZTkyZTI4ZDhiZjcyMTRjMmFlNDM3Mjg1MWI3YjAx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkv
cnNzL1JTU0dlbmVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9ibGFja2JlcnJ5L3Jzcy9SU1NHZW5lcmF0b3IuY3BwCkBAIC04MywxMCArODMsMTAgQEAgU3Ry
aW5nIFJTU0dlbmVyYXRvcjo6Z2VuZXJhdGVIdG1sKFJTU0ZlZWQqIGZlZWQpCiAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGFydGljbGVOYW1lKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcIiBjbGFzcz1cImFydGljbGVcIj5cbjxhIGhyZWY9XCIiKTsKICAgICAgICAgaWYgKCFpdGVt
LT5tX2xpbmsuaXNFbXB0eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9s
aW5rLnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0t
Pm1fbGluay51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIj48Yj4iKTsKICAgICAgICAgaWYgKCFpdGVtLT5tX3Rp
dGxlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fdGl0bGUu
dXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV90
aXRsZS51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKICAgICAgICAgZWxz
ZQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc19kZWZhdWx0RW50cnlUaXRsZSk7CiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9iPjwvYT5cbjxiciAvPiIpOwpAQCAtOTQsMTMg
Kzk0LDEzIEBAIFN0cmluZyBSU1NHZW5lcmF0b3I6OmdlbmVyYXRlSHRtbChSU1NGZWVkKiBmZWVk
KQogICAgICAgICBpZiAoIWl0ZW0tPm1fYXV0aG9yLmlzRW1wdHkoKSkgewogICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmQoaTE4bigiQnkiKSk7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiA8Yj4iKTsKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fYXV0aG9y
LnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1f
YXV0aG9yLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L2I+ICIpOwogICAgICAgICB9IGVsc2UgewogICAg
ICAgICAgICAgaWYgKCFmZWVkLT5tX2F1dGhvci5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChpMThuKCJCeSIpKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIiA8Yj4iKTsKLSAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChmZWVk
LT5tX2F1dGhvci51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5h
cHBlbmQoZmVlZC0+bV9hdXRob3IudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEo
KSk7CiAgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L2I+ICIpOwogICAg
ICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMTMsNyArMTEzLDcgQEAgU3RyaW5nIFJTU0dlbmVy
YXRvcjo6Z2VuZXJhdGVIdG1sKFJTU0ZlZWQqIGZlZWQpCiAKICAgICAgICAgICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBpdGVtLT5tX2NhdGVnb3JpZXMuc2l6ZSgpIDsgKytpKSB7CiAgICAg
ICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8Yj4iKTsKLSAgICAgICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX2NhdGVnb3JpZXNbaV0udXRmOCh0cnVlKS5kYXRhKCkp
OworICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fY2F0ZWdvcmllc1tpXS51
dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbikuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvYj4iKTsKIAogICAgICAgICAgICAgICAgIGlmIChpIDwg
aXRlbS0+bV9jYXRlZ29yaWVzLnNpemUoKSAtIDEpCkBAIC0xMjMsMTEgKzEyMywxMSBAQCBTdHJp
bmcgUlNTR2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkKIAogICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIjxiciAvPiIpOwogICAgICAgICBpZiAoIWl0ZW0tPm1fcHVi
RGF0ZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVtLT5tX3B1YkRh
dGUudXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+
bV9wdWJEYXRlLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGJyIC8+Iik7CiAgICAgICAgIGlmICghaXRlbS0+
bV9kZXNjcmlwdGlvbi5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVt
LT5tX2Rlc2NyaXB0aW9uLnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgIGJ1aWxkZXIu
YXBwZW5kKGl0ZW0tPm1fZGVzY3JpcHRpb24udXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24p
LmRhdGEoKSk7CiAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGJyIC8+Iik7CiAKICAg
ICAgICAgaWYgKGl0ZW0tPm1fZW5jbG9zdXJlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXgg
NzI1NjZmZTc2MWQxMzNkMzhjNzcxNjY0ODFjYTQ5YzQ2MWE0ZDRkZS4uNDE0NTQ1YmQ3OWVkMzA3
YTU2ZTBlNDE3OWNkZThkYjc5NGJkY2EyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMjY3
LDcgKzI2Nyw3IEBAIEVYUE9SVFMKICAgICAgICAgP3RyZWVTY29wZUBOb2RlQFdlYkNvcmVAQFFC
RVBBVlRyZWVTY29wZUAyQFhaCiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID91c2VyUHJlZmVycmVk
TGFuZ3VhZ2VzQFdlYkNvcmVAQFlBP0FWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RGQEBY
WgotICAgICAgICA/dXRmOEBTdHJpbmdAV1RGQEBRQkU/QVZDU3RyaW5nQDJAX05AWgorICAgICAg
ICA/dXRmOEBTdHJpbmdAV1RGQEBRQkU/QVZDU3RyaW5nQDJAVzRDb252ZXJzaW9uTW9kZUAxMkBA
WgogICAgICAgICA/dmlld0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBYWgog
ICAgICAgICA/PzFDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBNQUVAWFoKICAg
ICAgICAgP2NvbnRleHREZXN0cm95ZWRAQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29y
ZUBAVUFFWFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5k
ZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggNGI3Y2RlZGJj
NTk3YWIzOWQ3M2Y5YjkzNjMzOWM5MzkwMGVkNzNhMi4uYjUxNzc1NmY1MWI5NjZlNDAxZTIwYmIz
MzJkMzIzMWYzNTA1NGRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJD
RkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAt
MjYwLDcgKzI2MCw3IEBAIEVYUE9SVFMKICAgICAgICAgP3RyZWVTY29wZUBOb2RlQFdlYkNvcmVA
QFFCRVBBVlRyZWVTY29wZUAyQFhaCiAgICAgICAgID91cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHNARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFhaCiAgICAgICAgID91c2VyUHJlZmVy
cmVkTGFuZ3VhZ2VzQFdlYkNvcmVAQFlBP0FWPyRWZWN0b3JAVlN0cmluZ0BXVEZAQCQwQUBAV1RG
QEBYWgotICAgICAgICA/dXRmOEBTdHJpbmdAV1RGQEBRQkU/QVZDU3RyaW5nQDJAX05AWgorICAg
ICAgICA/dXRmOEBTdHJpbmdAV1RGQEBRQkU/QVZDU3RyaW5nQDJAVzRDb252ZXJzaW9uTW9kZUAx
MkBAWgogICAgICAgICA/dmlld0BEb2N1bWVudEBXZWJDb3JlQEBRQkVQQVZGcmFtZVZpZXdAMkBY
WgogICAgICAgICA/PzFDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBNQUVAWFoK
ICAgICAgICAgP2NvbnRleHREZXN0cm95ZWRAQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2Vi
Q29yZUBAVUFFWFhaCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173499</attachid>
            <date>2012-11-11 05:31:53 -0800</date>
            <delta_ts>2012-11-11 06:18:18 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-101678-20121111222957.patch</filename>
            <type>text/plain</type>
            <size>19512</size>
            <attacher name="Kenichi Ishibashi">bashi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
YTA2MWJmNDdjYWEzNjM1MzU0OGE0NWMzZjMwNDcxNDlhN2RmZGM2Li5hMDJiMzgwY2FlMDViM2Q2
NjRjYmRiNmI0YzA5NjlmMjM1ZDJlNWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAxMi0xMS0wOCAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgV1RGU3RyaW5nOjp1dGY4KCkgc2hvdWxkIGhhdmUgYSBtb2RlIG9m
IGNvbnZlcnNpb24gdG8gdXNlIHJlcGxhY2VtZW50IGNoYXJhY3RlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxNjc4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBGb2xsb3cgdGhlIGNoYW5nZSBv
biBTdHJpbmc6OnV0ZjgoKQorCisgICAgICAgICogcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0
aW9ucy5jcHA6CisgICAgICAgIChKU0M6OmVuY29kZSk6IFBhc3MgU3RyaW5nOjpTdHJpY3RDb252
ZXJzaW9uIGluc3RlYWQgb2YgdHJ1ZSB0byBTdHJpbmc6OnV0ZjgoKS4KKwogMjAxMi0xMS0xMCAg
RmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgb3B0
aW1pemUgb3V0IHRoZSBOYU4gY2hlY2sgb24gbG9hZHMgZnJvbSBkb3VibGUgYXJyYXlzIGlmIHRo
ZSBhcnJheSBwcm90b3R5cGUgY2hhaW4gaXMgaGF2aW5nIGEgZ3JlYXQgdGltZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBhZjNj
ZTc4YTBhMWVjYWIwYzM3NDY0NzkyMTFhOTU5YTYzOWE4OGJlLi5mN2E0NmE1YmE1YzM3MTQ1MmFm
NzM5ZmJhZDk2ZTA1M2E2OTFkM2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTExLTEwICBL
ZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVtLm9yZz4KKworICAgICAgICBXVEZTdHJp
bmc6OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2YgY29udmVyc2lvbiB0byB1c2UgcmVwbGFj
ZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdlZCBieSBBbGV4YW5kZXIgUGF2bG92Lgor
CisgICAgICAgIEludHJvZHVjZSBjb252ZXJzaW9uIG1vZGUgdG8gU3RyaW5nOjp1dGY4KCkuCisg
ICAgICAgIFRoZXJlIGFyZSB0aHJlZSBjb252ZXJzaW9uIG1vZGVzOyBsZW5pZW50IG1vZGUsIHN0
cmljdCBtb2RlLCBhbmQKKyAgICAgICAgInJlcGxhY2luZyB1bnBhaXJlZCBzdXJyb2dhdGVzIHdp
dGggdGhlIHJlcGxhY2VtZW50IGNoYXJhY3RlciIgKHJlcGxhY2VtZW50KSBtb2RlLgorICAgICAg
ICBMZW5pZW50IG1vZGUgY29udmVydHMgdW5wYWlyZWQgc3Vycm9nYXRlcy4gU3RyaWN0IG1vZGUg
ZmFpbHMgd2hlbiB0aGVyZSBpcyBhbiB1bnBhaXJlZAorICAgICAgICBzdXJyb2dhdGVzIGFuZCBy
ZXR1cm5zIENTdHJpbmcoKS4gUmVwbGFjZW1lbnQgbW9kZSByZXBsYWNlcyB1bnBhaXJlZCBzdXJy
b2dhdGVzIHdpdGgKKyAgICAgICAgdGhlIHJlcGxhY2VtZW50IGNoYXJhY3RlcihVK0ZGRkQpLiBS
ZXBsYWNlbWVudCBtb2RlIGltcGxlbWVudHMgdGhlIGFsZ29yaXRobSBkZWZpbmVkIGF0CisgICAg
ICAgIGh0dHA6Ly9kZXYudzMub3JnLzIwMDYvd2ViYXBpL1dlYklETC8jZGZuLW9idGFpbi11bmlj
b2RlLiBXZWJTb2NrZXQ6OnNlbmQoKSByZXF1aXJlcworICAgICAgICB0aGlzIGFsZ29yaXRobSB0
byBlbmNvZGUgYSBzdHJpbmcgdG8gdXRmLTguCisKKyAgICAgICAgKiB3dGYvdGV4dC9XVEZTdHJp
bmcuY3BwOgorICAgICAgICAoV1RGOjpTdHJpbmc6OnV0ZjgpOiBDaGFuZ2VkIHRvIHRha2UgQ29u
dmVyc2lvbk1vZGUgYXMgdGhlIGFyZ3VtZW50LgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmlu
Zy5oOgorICAgICAgICAoU3RyaW5nKToKKwogMjAxMi0xMS0wOSAgQWxleGVpIEZpbGlwcG92ICA8
YWxwaEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogRml4IGhlYXAgc25h
cHNob3RzIGNvdW50ZWQgc2V2ZXJhbCB0aW1lcyBieSBOTUkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlMTEyNTRi
NGUxZmViMzE4N2IwOGYzNThjODdjYWU5ZWQ3MWZlOGI4Li40YjRjNjFkOWFhYmU0YzZjZWE2OWE0
YTUyZDY3YzlmYzIwNmQ3MDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTItMTEt
MTAgIEtlbmljaGkgSXNoaWJhc2hpICA8YmFzaGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdU
RlN0cmluZzo6dXRmOCgpIHNob3VsZCBoYXZlIGEgbW9kZSBvZiBjb252ZXJzaW9uIHRvIHVzZSBy
ZXBsYWNlbWVudCBjaGFyYWN0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwMTY3OAorCisgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3Vy
eWFrb3YuCisKKyAgICAgICAgRm9sbG93IHRoZSBjaGFuZ2Ugb24gU3RyaW5nOjp1dGY4KCkKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIE5vIGNoYW5nZXMgaW4gYmVoYXZpb3IuCisKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6Y2xvc2UpOiBQYXNzIFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbiBpbnN0ZWFkIG9m
IHRydWUgdG8gU3RyaW5nOjp1dGY4KCkuCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
c2VuZCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUZyYWdtZW50VVJJUGFyc2VyOjpwYXJzZUZyYWdtZW50
cyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTWVkaWFQ
bGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdCk6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVyU3RyZWFtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJTU0ZpbHRlclN0cmVhbTo6Y29udmVydENvbnRlbnRUb0h0bWwpOiBEaXR0by4K
KyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0dlbmVyYXRvci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSU1NHZW5lcmF0b3I6OmdlbmVyYXRlSHRtbCk6IERpdHRv
LgorCiAyMDEyLTExLTEwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgog
CiAgICAgICAgIENvYWxlc2NlIG1haW4gdGhyZWFkIHNjcm9sbCBwb3NpdGlvbiB1cGRhdGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggYzY3NTgyYzc3ZDY5NGFmYTI2Y2E5NzlmOWQyNjRiOTFhYzJlYWE3Ny4uNWFk
MmMwZjQyZDI3OGZlOWRiNGFhOGFlNTQwNzg1Y2VjNTdjYzFjZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDEyLTExLTEwICBLZW5pY2hpIElzaGliYXNoaSAgPGJhc2hpQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBXVEZTdHJpbmc6OnV0ZjgoKSBzaG91bGQgaGF2ZSBhIG1vZGUgb2Yg
Y29udmVyc2lvbiB0byB1c2UgcmVwbGFjZW1lbnQgY2hhcmFjdGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDE2NzgKKworICAgICAgICBSZXZpZXdl
ZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgorCisgICAgICAgIFVwZGF0ZSB0aGUgc3ltYm9sIGZv
ciBTdHJpbmc6OnV0ZjgoKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAg
KiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMTEtMTAgIFplbm8gQWxiaXNzZXIgIDx6
ZW5vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XVtXSzJdIFVzZSBRTGlicmFyeUluZm8gdG8g
c2VhcmNoIGZvciBleGVjdXRhYmxlcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcAppbmRleCA3YWM3NmQzNTBk
MDgxMDIwM2RiMzFjOGY5NjgzMjg2ZDRkZDhiZjQ0Li4xMDEwYWQyYjcxMDljZTMzOWM1MDg3ZTZm
Y2QyNmM4NjI3MjIxMTNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCkBAIC01Miw3ICs1Miw3IEBAIG5h
bWVzcGFjZSBKU0MgewogCiBzdGF0aWMgSlNWYWx1ZSBlbmNvZGUoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBjaGFyKiBkb05vdEVzY2FwZSkKIHsKLSAgICBDU3RyaW5nIGNzdHIgPSBleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykudXRmOCh0cnVlKTsKKyAgICBDU3Ry
aW5nIGNzdHIgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyku
dXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pOwogICAgIGlmICghY3N0ci5kYXRhKCkpCiAg
ICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGV4ZWMsIGNyZWF0ZVVSSUVycm9yKGV4ZWMsIEFTQ0lJ
TGl0ZXJhbCgiU3RyaW5nIGNvbnRhaW5lZCBhbiBpbGxlZ2FsIFVURi0xNiBzZXF1ZW5jZS4iKSkp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAgYi9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1dURlN0cmluZy5jcHAKaW5kZXggZTEwMjgyZGUyYzQxM2UxZDgyMmI2
ZGVlYjcyMzc2MzJmNjNjOGNmNi4uMDM3OTE2NDQ5NGMxMGYyYzhjNDNlNmNjZDc1ZmVkZDJhYzA1
ZTI0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuY3BwCisrKyBi
L1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5j
bHVkZSA8d3RmL2R0b2EuaD4KKyNpbmNsdWRlIDx3dGYvdW5pY29kZS9DaGFyYWN0ZXJOYW1lcy5o
PgogI2luY2x1ZGUgPHd0Zi91bmljb2RlL1VURjguaD4KICNpbmNsdWRlIDx3dGYvdW5pY29kZS9V
bmljb2RlLmg+CiAKQEAgLTc1Myw3ICs3NTQsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcHV0VVRG
OFRyaXBsZShjaGFyKiYgYnVmZmVyLCBVQ2hhciBjaCkKICAgICAqYnVmZmVyKysgPSBzdGF0aWNf
Y2FzdDxjaGFyPigoY2ggJiAweDNGKSB8IDB4ODApOwogfQogCi1DU3RyaW5nIFN0cmluZzo6dXRm
OChib29sIHN0cmljdCkgY29uc3QKK0NTdHJpbmcgU3RyaW5nOjp1dGY4KENvbnZlcnNpb25Nb2Rl
IG1vZGUpIGNvbnN0CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gdGhpcy0+bGVuZ3RoKCk7CiAK
QEAgLTc4NCwyNiArNzg1LDQ4IEBAIENTdHJpbmcgU3RyaW5nOjp1dGY4KGJvb2wgc3RyaWN0KSBj
b25zdAogICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gdGhp
cy0+Y2hhcmFjdGVyczE2KCk7CiAKLSAgICAgICAgQ29udmVyc2lvblJlc3VsdCByZXN1bHQgPSBj
b252ZXJ0VVRGMTZUb1VURjgoJmNoYXJhY3RlcnMsIGNoYXJhY3RlcnMgKyBsZW5ndGgsICZidWZm
ZXIsIGJ1ZmZlciArIGJ1ZmZlclZlY3Rvci5zaXplKCksIHN0cmljdCk7Ci0gICAgICAgIEFTU0VS
VChyZXN1bHQgIT0gdGFyZ2V0RXhoYXVzdGVkKTsgLy8gKGxlbmd0aCAqIDMpIHNob3VsZCBiZSBz
dWZmaWNpZW50IGZvciBhbnkgY29udmVyc2lvbgotCi0gICAgICAgIC8vIE9ubHkgcHJvZHVjZWQg
ZnJvbSBzdHJpY3QgY29udmVyc2lvbi4KLSAgICAgICAgaWYgKHJlc3VsdCA9PSBzb3VyY2VJbGxl
Z2FsKQotICAgICAgICAgICAgcmV0dXJuIENTdHJpbmcoKTsKKyAgICAgICAgaWYgKG1vZGUgPT0g
U3RyaWN0Q29udmVyc2lvblJlcGxhY2luZ1VucGFpcmVkU3Vycm9nYXRlc1dpdGhGRkZEKSB7Cisg
ICAgICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyc0VuZCA9IGNoYXJhY3RlcnMgKyBsZW5n
dGg7CisgICAgICAgICAgICBjaGFyKiBidWZmZXJFbmQgPSBidWZmZXIgKyBidWZmZXJWZWN0b3Iu
c2l6ZSgpOworICAgICAgICAgICAgd2hpbGUgKGNoYXJhY3RlcnMgPCBjaGFyYWN0ZXJzRW5kKSB7
CisgICAgICAgICAgICAgICAgLy8gVXNlIHN0cmljdCBjb252ZXJzaW9uIHRvIGRldGVjdCB1bnBh
aXJlZCBzdXJyb2dhdGVzLgorICAgICAgICAgICAgICAgIENvbnZlcnNpb25SZXN1bHQgcmVzdWx0
ID0gY29udmVydFVURjE2VG9VVEY4KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzRW5kLCAmYnVmZmVy
LCBidWZmZXJFbmQsIHRydWUpOworICAgICAgICAgICAgICAgIEFTU0VSVChyZXN1bHQgIT0gdGFy
Z2V0RXhoYXVzdGVkKTsKKyAgICAgICAgICAgICAgICAvLyBDb252ZXJzaW9uIGZhaWxzIHdoZW4g
dGhlcmUgaXMgYW4gdW5wYWlyZWQgc3Vycm9nYXRlLgorICAgICAgICAgICAgICAgIC8vIFB1dCBy
ZXBsYWNlbWVudCBjaGFyYWN0ZXIgKFUrRkZGRCkgaW5zdGVhZCBvZiB0aGUgdW5wYWlyZWQgc3Vy
cm9nYXRlLgorICAgICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gY29udmVyc2lvbk9LKSB7Cisg
ICAgICAgICAgICAgICAgICAgIEFTU0VSVCgoMHhEODAwIDw9ICpjaGFyYWN0ZXJzICYmICpjaGFy
YWN0ZXJzIDw9IDB4REZGRikpOworICAgICAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQg
YmUgcm9vbSBsZWZ0LCBzaW5jZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVydGVkLgorICAg
ICAgICAgICAgICAgICAgICBBU1NFUlQoKGJ1ZmZlciArIDMpIDw9IGJ1ZmZlckVuZCk7CisgICAg
ICAgICAgICAgICAgICAgIHB1dFVURjhUcmlwbGUoYnVmZmVyLCByZXBsYWNlbWVudENoYXJhY3Rl
cik7CisgICAgICAgICAgICAgICAgICAgICsrY2hhcmFjdGVyczsKKyAgICAgICAgICAgICAgICB9
CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBib29sIHN0cmlj
dCA9IG1vZGUgPT0gU3RyaWN0Q29udmVyc2lvbjsKKyAgICAgICAgICAgIENvbnZlcnNpb25SZXN1
bHQgcmVzdWx0ID0gY29udmVydFVURjE2VG9VVEY4KCZjaGFyYWN0ZXJzLCBjaGFyYWN0ZXJzICsg
bGVuZ3RoLCAmYnVmZmVyLCBidWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpLCBzdHJpY3QpOwor
ICAgICAgICAgICAgQVNTRVJUKHJlc3VsdCAhPSB0YXJnZXRFeGhhdXN0ZWQpOyAvLyAobGVuZ3Ro
ICogMykgc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9yIGFueSBjb252ZXJzaW9uCiAKLSAgICAgICAg
Ly8gQ2hlY2sgZm9yIGFuIHVuY29udmVydGVkIGhpZ2ggc3Vycm9nYXRlLgotICAgICAgICBpZiAo
cmVzdWx0ID09IHNvdXJjZUV4aGF1c3RlZCkgewotICAgICAgICAgICAgaWYgKHN0cmljdCkKKyAg
ICAgICAgICAgIC8vIE9ubHkgcHJvZHVjZWQgZnJvbSBzdHJpY3QgY29udmVyc2lvbi4KKyAgICAg
ICAgICAgIGlmIChyZXN1bHQgPT0gc291cmNlSWxsZWdhbCkgeworICAgICAgICAgICAgICAgIEFT
U0VSVChzdHJpY3QpOwogICAgICAgICAgICAgICAgIHJldHVybiBDU3RyaW5nKCk7Ci0gICAgICAg
ICAgICAvLyBUaGlzIHNob3VsZCBiZSBvbmUgdW5wYWlyZWQgaGlnaCBzdXJyb2dhdGUuIFRyZWF0
IGl0IHRoZSBzYW1lCi0gICAgICAgICAgICAvLyB3YXMgYXMgYW4gdW5wYWlyZWQgaGlnaCBzdXJy
b2dhdGUgd291bGQgaGF2ZSBiZWVuIGhhbmRsZWQgaW4KLSAgICAgICAgICAgIC8vIHRoZSBtaWRk
bGUgb2YgYSBzdHJpbmcgd2l0aCBub24tc3RyaWN0IGNvbnZlcnNpb24gLSB3aGljaCBpcwotICAg
ICAgICAgICAgLy8gdG8gc2F5LCBzaW1wbHkgZW5jb2RlIGl0IHRvIFVURi04LgotICAgICAgICAg
ICAgQVNTRVJUKChjaGFyYWN0ZXJzICsgMSkgPT0gKHRoaXMtPmNoYXJhY3RlcnMoKSArIGxlbmd0
aCkpOwotICAgICAgICAgICAgQVNTRVJUKCgqY2hhcmFjdGVycyA+PSAweEQ4MDApICYmICgqY2hh
cmFjdGVycyA8PSAweERCRkYpKTsKLSAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSByb29t
IGxlZnQsIHNpbmNlIG9uZSBVQ2hhciBoYXNuJ3QgYmVlbiBjb252ZXJ0ZWQuCi0gICAgICAgICAg
ICBBU1NFUlQoKGJ1ZmZlciArIDMpIDw9IChidWZmZXIgKyBidWZmZXJWZWN0b3Iuc2l6ZSgpKSk7
Ci0gICAgICAgICAgICBwdXRVVEY4VHJpcGxlKGJ1ZmZlciwgKmNoYXJhY3RlcnMpOworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAvLyBDaGVjayBmb3IgYW4gdW5jb252ZXJ0ZWQgaGlnaCBz
dXJyb2dhdGUuCisgICAgICAgICAgICBpZiAocmVzdWx0ID09IHNvdXJjZUV4aGF1c3RlZCkgewor
ICAgICAgICAgICAgICAgIGlmIChzdHJpY3QpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBD
U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgYmUgb25lIHVucGFpcmVk
IGhpZ2ggc3Vycm9nYXRlLiBUcmVhdCBpdCB0aGUgc2FtZQorICAgICAgICAgICAgICAgIC8vIHdh
cyBhcyBhbiB1bnBhaXJlZCBoaWdoIHN1cnJvZ2F0ZSB3b3VsZCBoYXZlIGJlZW4gaGFuZGxlZCBp
bgorICAgICAgICAgICAgICAgIC8vIHRoZSBtaWRkbGUgb2YgYSBzdHJpbmcgd2l0aCBub24tc3Ry
aWN0IGNvbnZlcnNpb24gLSB3aGljaCBpcworICAgICAgICAgICAgICAgIC8vIHRvIHNheSwgc2lt
cGx5IGVuY29kZSBpdCB0byBVVEYtOC4KKyAgICAgICAgICAgICAgICBBU1NFUlQoKGNoYXJhY3Rl
cnMgKyAxKSA9PSAodGhpcy0+Y2hhcmFjdGVycygpICsgbGVuZ3RoKSk7CisgICAgICAgICAgICAg
ICAgQVNTRVJUKCgqY2hhcmFjdGVycyA+PSAweEQ4MDApICYmICgqY2hhcmFjdGVycyA8PSAweERC
RkYpKTsKKyAgICAgICAgICAgICAgICAvLyBUaGVyZSBzaG91bGQgYmUgcm9vbSBsZWZ0LCBzaW5j
ZSBvbmUgVUNoYXIgaGFzbid0IGJlZW4gY29udmVydGVkLgorICAgICAgICAgICAgICAgIEFTU0VS
VCgoYnVmZmVyICsgMykgPD0gKGJ1ZmZlciArIGJ1ZmZlclZlY3Rvci5zaXplKCkpKTsKKyAgICAg
ICAgICAgICAgICBwdXRVVEY4VHJpcGxlKGJ1ZmZlciwgKmNoYXJhY3RlcnMpOworICAgICAgICAg
ICAgfQogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0
L1dURlN0cmluZy5oIGIvU291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAppbmRleCBhNWUz
Mzc4NzYzOTUzMmVjODVhNWNiZDgzNDhjYWNmMGNjZjUxYTM0Li4xYTBiNDgxZjc1ZTRmNzY5OWUy
MmY3ZjhkYjQyYWM0YmQ5MmVkYjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RGU3RyaW5nLmgKQEAgLTIxMSw3
ICsyMTEsMTQgQEAgcHVibGljOgogCiAgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcg
YXNjaWkoKSBjb25zdDsKICAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgQ1N0cmluZyBsYXRpbjEo
KSBjb25zdDsKLSAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgQ1N0cmluZyB1dGY4KGJvb2wgc3Ry
aWN0ID0gZmFsc2UpIGNvbnN0OworCisgICAgdHlwZWRlZiBlbnVtIHsKKyAgICAgICAgTGVuaWVu
dENvbnZlcnNpb24sCisgICAgICAgIFN0cmljdENvbnZlcnNpb24sCisgICAgICAgIFN0cmljdENv
bnZlcnNpb25SZXBsYWNpbmdVbnBhaXJlZFN1cnJvZ2F0ZXNXaXRoRkZGRCwKKyAgICB9IENvbnZl
cnNpb25Nb2RlOworCisgICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIENTdHJpbmcgdXRmOChDb252
ZXJzaW9uTW9kZSA9IExlbmllbnRDb252ZXJzaW9uKSBjb25zdDsKIAogICAgIFVDaGFyIG9wZXJh
dG9yW10odW5zaWduZWQgaW5kZXgpIGNvbnN0CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCA0NmQ2MmRlODlmNDY2OGZlN2Ex
NTFmZWVkNTMxMTM4MjQ3MzAyN2RhLi5jM2M3MGE0ZDQyY2I3Y2EyNTBlMDc1Nzg1YWU1MGFhNGNi
NDgxMTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcApAQCAtMzQxLDcgKzM0MSw3IEBAIHZvaWQgV2ViU29ja2V0OjpjbG9zZShpbnQgY29k
ZSwgY29uc3QgU3RyaW5nJiByZWFzb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICAgICAg
ZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
LSAgICAgICAgQ1N0cmluZyB1dGY4ID0gcmVhc29uLnV0ZjgodHJ1ZSk7CisgICAgICAgIENTdHJp
bmcgdXRmOCA9IHJlYXNvbi51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbik7CiAgICAgICAg
IGlmICh1dGY4Lmxlbmd0aCgpID4gbWF4UmVhc29uU2l6ZUluQnl0ZXMpIHsKICAgICAgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoSlNNZXNzYWdlU291
cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJXZWJTb2NrZXQgY2xvc2Ug
bWVzc2FnZSBpcyB0b28gbG9uZy4iKTsKICAgICAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmNwcAppbmRleCAzNzFjZTJhNzE1MDE5NWRhODYwMWE3MDA5Y2E0NzQ0YmZhMGQ4YjNmLi4w
NjI4ODU3MDUxZWNjN2ZkNGZhNDQ1MmM4NDc4NTAwYjQyMzAxYzI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBA
IC0xMzcsNyArMTM3LDcgQEAgU3RyaW5nIFdlYlNvY2tldENoYW5uZWw6OmV4dGVuc2lvbnMoKQog
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlNlbmRSZXN1bHQgV2ViU29ja2V0Q2hhbm5lbDo6
c2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXRDaGFubmVsICVwIHNlbmQgJXMiLCB0aGlzLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwotICAg
IENTdHJpbmcgdXRmOCA9IG1lc3NhZ2UudXRmOCh0cnVlKTsKKyAgICBDU3RyaW5nIHV0ZjggPSBt
ZXNzYWdlLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKTsKICAgICBpZiAodXRmOC5pc051
bGwoKSAmJiBtZXNzYWdlLmxlbmd0aCgpKQogICAgICAgICByZXR1cm4gSW52YWxpZE1lc3NhZ2U7
CiAgICAgZW5xdWV1ZVRleHRGcmFtZSh1dGY4KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01l
ZGlhRnJhZ21lbnRVUklQYXJzZXIuY3BwCmluZGV4IGRlNzg2ZmZkNDRjZjAzMjdhM2FlNDcyZGUx
NDFhYWU1YmM0NjYyNjMuLjAyODU2MTFmMTcyZGVlMzZhZjU3OTk1ODg3ZDkzM2ZhOTk0M2Q3Yjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFGcmFnbWVudFVSSVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYUZyYWdtZW50VVJJUGFyc2VyLmNwcApA
QCAtMTQyLDExICsxNDIsMTEgQEAgdm9pZCBNZWRpYUZyYWdtZW50VVJJUGFyc2VyOjpwYXJzZUZy
YWdtZW50cygpCiAgICAgICAgIC8vICAgICBuYW1lIG9yIHZhbHVlIGFyZSBub3QgdmFsaWQgVVRG
LTggc3RyaW5ncywgdGhlbiByZW1vdmUgdGhlIG5hbWUtdmFsdWUgcGFpciBmcm9tIHRoZSBsaXN0
LgogICAgICAgICBib29sIHZhbGlkVVRGOCA9IHRydWU7CiAgICAgICAgIGlmICghbmFtZS5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgIG5hbWUgPSBuYW1lLnV0ZjgodHJ1ZSkuZGF0YSgpOworICAg
ICAgICAgICAgbmFtZSA9IG5hbWUudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEo
KTsKICAgICAgICAgICAgIHZhbGlkVVRGOCA9ICFuYW1lLmlzRW1wdHkoKTsKICAgICAgICAgfQog
ICAgICAgICBpZiAodmFsaWRVVEY4ICYmICF2YWx1ZS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAg
IHZhbHVlID0gdmFsdWUudXRmOCh0cnVlKS5kYXRhKCk7CisgICAgICAgICAgICB2YWx1ZSA9IHZh
bHVlLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCk7CiAgICAgICAgICAgICB2
YWxpZFVURjggPSAhdmFsdWUuaXNFbXB0eSgpOwogICAgICAgICB9CiAgICAgICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBs
YXllclByaXZhdGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTWVkaWFQbGF5ZXJQcml2YXRlQmxhY2tCZXJyeS5jcHAKaW5kZXggY2Rm
NjAwNmQ3Njk3MjgxMWExNjBmYTgzNjUyZDRhMDQ5ZTA0YjlmNy4uNzkxNjJmOTVlODRlNmZjY2Jh
ZjE2M2I3MDIyZjhlOGVkNmE2MzUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9NZWRpYVBsYXllclByaXZhdGVCbGFja0JlcnJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L01lZGlhUGxh
eWVyUHJpdmF0ZUJsYWNrQmVycnkuY3BwCkBAIC03NDksOSArNzQ5LDkgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGU6Om5vdGlmeUNoYWxsZW5nZVJlc3VsdChjb25zdCBLVVJMJiB1cmwsIGNvbnN0
IFByb3RlY3Rpb24KICAgICBpZiAocmVzdWx0ICE9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU3Vj
Y2VzcyB8fCAhdXJsLmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9wbGF0Zm9y
bVBsYXllci0+cmVsb2FkV2l0aENyZWRlbnRpYWwoY3JlZGVudGlhbC51c2VyKCkudXRmOCh0cnVl
KS5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Jl
ZGVudGlhbC5wYXNzd29yZCgpLnV0ZjgodHJ1ZSkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PE1NUkF1dGhDaGFsbGVuZ2U6OkNy
ZWRlbnRpYWxQZXJzaXN0ZW5jZT4oY3JlZGVudGlhbC5wZXJzaXN0ZW5jZSgpKSk7CisgICAgbV9w
bGF0Zm9ybVBsYXllci0+cmVsb2FkV2l0aENyZWRlbnRpYWwoY3JlZGVudGlhbC51c2VyKCkudXRm
OChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjcmVkZW50aWFsLnBhc3N3b3JkKCkudXRmOChTdHJpbmc6OlN0
cmljdENvbnZlcnNpb24pLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzdGF0aWNfY2FzdDxNTVJBdXRoQ2hhbGxlbmdlOjpDcmVkZW50aWFsUGVyc2lzdGVu
Y2U+KGNyZWRlbnRpYWwucGVyc2lzdGVuY2UoKSkpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZTo6b25BdXRoZW50aWNhdGlvbkFjY2VwdGVkKGNvbnN0IE1NUkF1dGhDaGFsbGVuZ2UmIGF1
dGhDaGFsbGVuZ2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0ZpbHRlclN0cmVhbS5jcHAKaW5k
ZXggYTdlNTA0NDZlZmYxZTQ3NTA5ODFmMjg2Njc0MDJkNTgxMDAzYmJmMi4uMjVkYWNhMjU4YWEz
ZjIzMWQ3MzgwMjllMzgxMWZhYTIzN2E0NzQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L3Jzcy9SU1NGaWx0ZXJTdHJlYW0uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9yc3MvUlNTRmlsdGVy
U3RyZWFtLmNwcApAQCAtNTI3LDcgKzUyNyw3IEBAIGJvb2wgUlNTRmlsdGVyU3RyZWFtOjpjb252
ZXJ0Q29udGVudFRvSHRtbChzdGQ6OnN0cmluZyYgcmVzdWx0KQogCiAgICAgT3duUHRyPFJTU0dl
bmVyYXRvcj4gZ2VuZXJhdG9yID0gYWRvcHRQdHIobmV3IFJTU0dlbmVyYXRvcigpKTsKICAgICBT
dHJpbmcgaHRtbCA9IGdlbmVyYXRvci0+Z2VuZXJhdGVIdG1sKHBhcnNlci0+bV9yb290KTsKLSAg
ICByZXN1bHQgPSBodG1sLnV0ZjgodHJ1ZSkuZGF0YSgpOworICAgIHJlc3VsdCA9IGh0bWwudXRm
OChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKTsKIAogICAgIHJldHVybiB0cnVlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5
L3Jzcy9SU1NHZW5lcmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L3Jzcy9SU1NHZW5lcmF0b3IuY3BwCmluZGV4IDNjMTg5OTJjM2NjOWM3MWEwYmI0
MTljOWRlMzBhNDUwMTMyYzU4YWUuLmQ5M2UwNGM5YjNlOTJlMjhkOGJmNzIxNGMyYWU0MzcyODUx
YjdiMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9yc3MvUlNTR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2JsYWNrYmVycnkvcnNzL1JTU0dlbmVyYXRvci5jcHAKQEAgLTgzLDEwICs4MywxMCBA
QCBTdHJpbmcgUlNTR2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkKICAgICAg
ICAgYnVpbGRlci5hcHBlbmQoYXJ0aWNsZU5hbWUpOwogICAgICAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIlwiIGNsYXNzPVwiYXJ0aWNsZVwiPlxuPGEgaHJlZj1cIiIpOwogICAgICAgICBpZiAo
IWl0ZW0tPm1fbGluay5pc0VtcHR5KCkpCi0gICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVt
LT5tX2xpbmsudXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQo
aXRlbS0+bV9saW5rLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiPjxiPiIpOwogICAgICAgICBpZiAoIWl0ZW0t
Pm1fdGl0bGUuaXNFbXB0eSgpKQotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV90
aXRsZS51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChpdGVt
LT5tX3RpdGxlLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChzX2RlZmF1bHRFbnRyeVRpdGxlKTsK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8L2I+PC9hPlxuPGJyIC8+Iik7CkBAIC05
NCwxMyArOTQsMTMgQEAgU3RyaW5nIFJTU0dlbmVyYXRvcjo6Z2VuZXJhdGVIdG1sKFJTU0ZlZWQq
IGZlZWQpCiAgICAgICAgIGlmICghaXRlbS0+bV9hdXRob3IuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBidWlsZGVyLmFwcGVuZChpMThuKCJCeSIpKTsKICAgICAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgiIDxiPiIpOwotICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9h
dXRob3IudXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRl
bS0+bV9hdXRob3IudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAgICAg
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvYj4gIik7CiAgICAgICAgIH0gZWxzZSB7
CiAgICAgICAgICAgICBpZiAoIWZlZWQtPm1fYXV0aG9yLmlzRW1wdHkoKSkgewogICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGkxOG4oIkJ5IikpOwogICAgICAgICAgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiIDxiPiIpOwotICAgICAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGZlZWQtPm1fYXV0aG9yLnV0ZjgodHJ1ZSkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZChmZWVkLT5tX2F1dGhvci51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVyc2lvbiku
ZGF0YSgpKTsKICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjwvYj4gIik7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTExMyw3ICsxMTMsNyBAQCBTdHJpbmcgUlNT
R2VuZXJhdG9yOjpnZW5lcmF0ZUh0bWwoUlNTRmVlZCogZmVlZCkKIAogICAgICAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW0tPm1fY2F0ZWdvcmllcy5zaXplKCkgOyArK2kpIHsK
ICAgICAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjxiPiIpOwotICAgICAgICAg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1fY2F0ZWdvcmllc1tpXS51dGY4KHRydWUpLmRh
dGEoKSk7CisgICAgICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoaXRlbS0+bV9jYXRlZ29yaWVz
W2ldLnV0ZjgoU3RyaW5nOjpTdHJpY3RDb252ZXJzaW9uKS5kYXRhKCkpOwogICAgICAgICAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPC9iPiIpOwogCiAgICAgICAgICAgICAgICAgaWYg
KGkgPCBpdGVtLT5tX2NhdGVnb3JpZXMuc2l6ZSgpIC0gMSkKQEAgLTEyMywxMSArMTIzLDExIEBA
IFN0cmluZyBSU1NHZW5lcmF0b3I6OmdlbmVyYXRlSHRtbChSU1NGZWVkKiBmZWVkKQogCiAgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPGJyIC8+Iik7CiAgICAgICAgIGlmICghaXRlbS0+
bV9wdWJEYXRlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGl0ZW0tPm1f
cHViRGF0ZS51dGY4KHRydWUpLmRhdGEoKSk7CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChp
dGVtLT5tX3B1YkRhdGUudXRmOChTdHJpbmc6OlN0cmljdENvbnZlcnNpb24pLmRhdGEoKSk7CiAK
ICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8YnIgLz4iKTsKICAgICAgICAgaWYgKCFp
dGVtLT5tX2Rlc2NyaXB0aW9uLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGl0ZW0tPm1fZGVzY3JpcHRpb24udXRmOCh0cnVlKS5kYXRhKCkpOworICAgICAgICAgICAgYnVp
bGRlci5hcHBlbmQoaXRlbS0+bV9kZXNjcmlwdGlvbi51dGY4KFN0cmluZzo6U3RyaWN0Q29udmVy
c2lvbikuZGF0YSgpKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8YnIgLz4iKTsK
IAogICAgICAgICBpZiAoaXRlbS0+bV9lbmNsb3N1cmUpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpp
bmRleCA3MjU2NmZlNzYxZDEzM2QzOGM3NzE2NjQ4MWNhNDljNDYxYTRkNGRlLi40MTQ1NDViZDc5
ZWQzMDdhNTZlMGU0MTc5Y2RlOGRiNzk0YmRjYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBA
IC0yNjcsNyArMjY3LDcgQEAgRVhQT1JUUwogICAgICAgICA/dHJlZVNjb3BlQE5vZGVAV2ViQ29y
ZUBAUUJFUEFWVHJlZVNjb3BlQDJAWFoKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3VzZXJQcmVm
ZXJyZWRMYW5ndWFnZXNAV2ViQ29yZUBAWUE/QVY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBBQEBX
VEZAQFhaCi0gICAgICAgID91dGY4QFN0cmluZ0BXVEZAQFFCRT9BVkNTdHJpbmdAMkBfTkBaCisg
ICAgICAgID91dGY4QFN0cmluZ0BXVEZAQFFCRT9BVkNTdHJpbmdAMkBXNENvbnZlcnNpb25Nb2Rl
QDEyQEBaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZyYW1lVmlld0Ay
QFhaCiAgICAgICAgID8/MUNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQE1BRUBY
WgogICAgICAgICA/Y29udGV4dERlc3Ryb3llZEBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckBX
ZWJDb3JlQEBVQUVYWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZM
aXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA0Yjdj
ZGVkYmM1OTdhYjM5ZDczZjliOTM2MzM5YzkzOTAwZWQ3M2EyLi5iNTE3NzU2ZjUxYjk2NmU0MDFl
MjBiYjMzMmQzMjMxZjM1MDU0ZGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
CkBAIC0yNjAsNyArMjYwLDcgQEAgRVhQT1JUUwogICAgICAgICA/dHJlZVNjb3BlQE5vZGVAV2Vi
Q29yZUBAUUJFUEFWVHJlZVNjb3BlQDJAWFoKICAgICAgICAgP3VwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0c0BEb2N1bWVudEBXZWJDb3JlQEBRQUVYWFoKICAgICAgICAgP3VzZXJQ
cmVmZXJyZWRMYW5ndWFnZXNAV2ViQ29yZUBAWUE/QVY/JFZlY3RvckBWU3RyaW5nQFdURkBAJDBB
QEBXVEZAQFhaCi0gICAgICAgID91dGY4QFN0cmluZ0BXVEZAQFFCRT9BVkNTdHJpbmdAMkBfTkBa
CisgICAgICAgID91dGY4QFN0cmluZ0BXVEZAQFFCRT9BVkNTdHJpbmdAMkBXNENvbnZlcnNpb25N
b2RlQDEyQEBaCiAgICAgICAgID92aWV3QERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVkZyYW1lVmll
d0AyQFhaCiAgICAgICAgID8/MUNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQE1B
RUBYWgogICAgICAgICA/Y29udGV4dERlc3Ryb3llZEBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
ckBXZWJDb3JlQEBVQUVYWFoK
</data>

          </attachment>
      

    </bug>

</bugzilla>