<?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>118582</bug_id>
          
          <creation_ts>2013-07-11 19:10:02 -0700</creation_ts>
          <short_desc>Introduce toHTMLVideoElement</short_desc>
          <delta_ts>2013-07-14 01:56:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kangil Han">kangil.han</reporter>
          <assigned_to name="Kangil Han">kangil.han</assigned_to>
          <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>907804</commentid>
    <comment_count>0</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-11 19:10:02 -0700</bug_when>
    <thetext>Introduce isHTMLVideoElement and toHTMLVideoElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907805</commentid>
    <comment_count>1</comment_count>
      <attachid>206502</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-11 19:13:46 -0700</bug_when>
    <thetext>Created attachment 206502
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907807</commentid>
    <comment_count>2</comment_count>
      <attachid>206502</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-07-11 19:38:08 -0700</bug_when>
    <thetext>Comment on attachment 206502
Patch

Attachment 206502 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/962237</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907809</commentid>
    <comment_count>3</comment_count>
      <attachid>206502</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-07-11 19:50:48 -0700</bug_when>
    <thetext>Comment on attachment 206502
Patch

Attachment 206502 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/970277</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907811</commentid>
    <comment_count>4</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-11 20:06:42 -0700</bug_when>
    <thetext>@kling: Would you please give me a hint how I can fix below build error? :)

[Build error log]
/Volumes/Data/EWS/WebKit/Source/WebKit/mac/WebCoreSupport/WebChromeClient.mm:71:9: fatal error: &apos;WebCore/HTMLVideoElement.h&apos; file not found
#import &lt;WebCore/HTMLVideoElement.h&gt;
        ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907812</commentid>
    <comment_count>5</comment_count>
      <attachid>206502</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-11 20:09:04 -0700</bug_when>
    <thetext>Comment on attachment 206502
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.h:109
&gt; +inline bool isHTMLVideoElement(const Node* node)
&gt; +{
&gt; +    return node-&gt;hasTagName(HTMLNames::videoTag);
&gt; +}
&gt; +
&gt; +inline bool isHTMLVideoElement(const Element* element)
&gt; +{
&gt; +    return element-&gt;hasTagName(HTMLNames::videoTag);
&gt; +}

I don&apos;t think adding these helper functions is a good idea.
We don&apos;t do that for most of other elements at least.

&gt; Source/WebCore/html/HTMLVideoElement.h:115
&gt; +inline HTMLVideoElement* toHTMLVideoElement(Node* node)
&gt; +{
&gt; +    ASSERT_WITH_SECURITY_IMPLICATION(!node || isHTMLVideoElement(node));
&gt; +    return static_cast&lt;HTMLVideoElement*&gt;(node);
&gt; +}

We certainly do this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907821</commentid>
    <comment_count>6</comment_count>
      <attachid>206502</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-11 23:01:18 -0700</bug_when>
    <thetext>Comment on attachment 206502
Patch

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

&gt; Source/WebCore/html/HTMLVideoElement.h:106
&gt; +inline bool isHTMLVideoElement(const Element* element)

When I tried to add this function to svg, Benjamin and I noticed that we don&apos;t need to add this function. Is Element a child class which inherits Node ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907831</commentid>
    <comment_count>7</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-11 23:37:44 -0700</bug_when>
    <thetext>Hi rniwa!
FOA, thx for the review. :)

(In reply to comment #5)
&gt; (From update of attachment 206502 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206502&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLVideoElement.h:109
&gt; &gt; +inline bool isHTMLVideoElement(const Node* node)
&gt; &gt; +{
&gt; &gt; +    return node-&gt;hasTagName(HTMLNames::videoTag);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +inline bool isHTMLVideoElement(const Element* element)
&gt; &gt; +{
&gt; &gt; +    return element-&gt;hasTagName(HTMLNames::videoTag);
&gt; &gt; +}
&gt; 
&gt; I don&apos;t think adding these helper functions is a good idea.
&gt; We don&apos;t do that for most of other elements at least.
&gt; 

I&apos;ve adopted isFooElement for some time and several patches have been landed. Actually, introducing isFooElement and toFooElement are agreed with anttik and kling. Therefore, if you wouldn&apos;t have strong objection for this, I would like to proceed adoption in WebKit. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907832</commentid>
    <comment_count>8</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-11 23:39:24 -0700</bug_when>
    <thetext>Hi gyuyoung!

(In reply to comment #6)
&gt; (From update of attachment 206502 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206502&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/html/HTMLVideoElement.h:106
&gt; &gt; +inline bool isHTMLVideoElement(const Element* element)
&gt; 
&gt; When I tried to add this function to svg, Benjamin and I noticed that we don&apos;t need to add this function. Is Element a child class which inherits Node ?

Node::hasTagName includes Node::isElementNode check and this is not necessary for Element. This is why we need overloading isFooElement(Element*) function. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907834</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2013-07-12 00:10:18 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Hi gyuyoung!
&gt; 
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 206502 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206502&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/HTMLVideoElement.h:106
&gt; &gt; &gt; +inline bool isHTMLVideoElement(const Element* element)
&gt; &gt; 
&gt; &gt; When I tried to add this function to svg, Benjamin and I noticed that we don&apos;t need to add this function. Is Element a child class which inherits Node ?
&gt; 
&gt; Node::hasTagName includes Node::isElementNode check and this is not necessary for Element. This is why we need overloading isFooElement(Element*) function. :)

Though I don&apos;t know how much we can get benefit from it, looks make sense to me. BTW, do you have any number about it ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907843</commentid>
    <comment_count>10</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-12 00:37:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; 
&gt; Though I don&apos;t know how much we can get benefit from it, looks make sense to me. BTW, do you have any number about it ?

I don&apos;t have any profile data. :)
But, I can tell you about review history on this.

During isFooElement(Node*) adoption, anttik, kling and I had found a regression in code.

[before]
element-&gt;hasTagName(fooTag)
[after]
isFooElement(element)
means,
element-&gt;isElementNode() &amp;&amp; element-&gt;hasTagName(fooTag)
so redundant &apos;element-&gt;isElementNode()&apos; call had happened.
then, we&apos;ve concluded to use isFooElement(Node*) and overloading isFooElement(Element*).

That&apos;s where we are so far. ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907844</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-12 00:39:35 -0700</bug_when>
    <thetext>Can&apos;t we auto-generate these is&lt;tagName&gt; functions instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907866</commentid>
    <comment_count>12</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-12 01:41:51 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Can&apos;t we auto-generate these is&lt;tagName&gt; functions instead?

Would you please point out an example for reference? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>907878</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-07-12 02:38:17 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; Can&apos;t we auto-generate these is&lt;tagName&gt; functions instead?
&gt; 
&gt; Would you please point out an example for reference? :)

http://trac.webkit.org/browser/trunk/Source/WebCore/html/HTMLTagNames.in</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908223</commentid>
    <comment_count>14</comment_count>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-13 23:07:11 -0700</bug_when>
    <thetext>Alright. :)

Summing up,
  1. toFooElement is recommended
  2. isFooElement wouldn&apos;t be because every element cannot adopt this. Nevertheless, if we want, let&apos;s use automation like HTMLTagNames.in

and I would like to focus what I can do now. So I am going to introduce toHTMLVideoElement in this bug and will do the same for other elements. During these introductions, I will think about necessity of isFooElement. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908229</commentid>
    <comment_count>15</comment_count>
      <attachid>206625</attachid>
    <who name="Kangil Han">kangil.han</who>
    <bug_when>2013-07-13 23:13:34 -0700</bug_when>
    <thetext>Created attachment 206625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908241</commentid>
    <comment_count>16</comment_count>
      <attachid>206625</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-14 01:56:19 -0700</bug_when>
    <thetext>Comment on attachment 206625
Patch

Clearing flags on attachment: 206625

Committed r152614: &lt;http://trac.webkit.org/changeset/152614&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>908242</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-14 01:56:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206502</attachid>
            <date>2013-07-11 19:13:46 -0700</date>
            <delta_ts>2013-07-13 23:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118582-20130712111129.patch</filename>
            <type>text/plain</type>
            <size>34359</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjlkNDY0ZmZmY2E5NGYw
MTc4YTBhMzVmMTJmN2Q0Nzk2NTNmNGIzNy4uYWM0NTM1MDAwOTI1YzU4OWFiNGEyZjM0ODIzMjM5
NTE5YTVjNTNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ5IEBACiAyMDEzLTA3LTExICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAorICAgICAgICBJbnRyb2R1Y2UgaXNI
VE1MVmlkZW9FbGVtZW50IGFuZCB0b0hUTUxWaWRlb0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODU4MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRo
aXMgcGF0Y2ggaW50cm9kdWNlcyBpc0hUTUxWaWRlb0VsZW1lbnQgYW5kIHRvSFRNTFZpZGVvRWxl
bWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1
c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAgKiBjc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZW5zdXJlRGVm
YXVsdFN0eWxlU2hlZXRzRm9yRWxlbWVudCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6Y2FuU2hhcmVTdHlsZVdpdGhF
bGVtZW50KToKKyAgICAgICAgKiBodG1sL0hUTUxJbWFnZUxvYWRlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MSW1hZ2VMb2FkZXI6OmRpc3BhdGNoTG9hZEV2ZW50KToKKyAgICAgICAgKiBo
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxl
bWVudDo6Z2V0UGx1Z2luUHJveHlQYXJhbXMpOgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxl
bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6aXNIVE1MVmlkZW9FbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OnRvSFRNTFZpZGVvRWxlbWVudCk6CisgICAgICAgICogaHRtbC9NZWRpYURvY3Vt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZURv
Y3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2NlbmRlbnRWaWRlb0VsZW1l
bnQpOgorICAgICAgICAoV2ViQ29yZTo6YW5jZXN0b3JWaWRlb0VsZW1lbnQpOgorICAgICAgICAq
IGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkpOgor
ICAgICAgICAqIGxvYWRlci9TdWJmcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlhUGxheWVyUHJveHlQbHVnaW4pOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZUVmbDo6cGFpbnRNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKToKKyAgICAgICAg
KiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0OjptZWRpYVN1cHBvcnRzRnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpIaXRU
ZXN0UmVzdWx0OjptZWRpYUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdDo6bWVkaWFJc1ZpZGVvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6cmVx
dWlyZXNDb21wb3NpdGluZ0ZvclZpZGVvKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYU11
dGVCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBhaW50TWVkaWFQ
bGF5QnV0dG9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86OnZpZGVvRWxlbWVudCk6CisKKzIwMTMtMDctMTEgIEth
bmdpbCBIYW4gIDxrYW5naWwuaGFuQHNhbXN1bmcuY29tPgorCiAgICAgICAgIEludHJvZHVjZSBp
c0hUTUxUaXRsZUVsZW1lbnQgYW5kIHRvSFRNTFRpdGxlRWxlbWVudAogICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NTU4CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCmluZGV4IDk1YTExNGJiZDVkNTYwN2NiMzdmNTU5YmI2MzFkMjNmZmRkY2M1
MjMuLmY1ZjFlODUzMGEwMzBkMTdjMjlkMTJmYjZhNzY3YzE5OTU3NjZhNmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA3LTExICBLYW5naWwg
SGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgaXNIVE1M
VmlkZW9FbGVtZW50IGFuZCB0b0hUTUxWaWRlb0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODU4MgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMg
cGF0Y2ggaW50cm9kdWNlcyBpc0hUTUxWaWRlb0VsZW1lbnQgYW5kIHRvSFRNTFZpZGVvRWxlbWVu
dC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ug
b2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAgKiBBcGkvV2ViUGFnZS5jcHA6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2U6Om5vdGlmeUZ1bGxTY3JlZW5WaWRlb0V4aXRlZCk6
CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxz
Y3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZh
dGU6OmV4aXRGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6
OldlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KToKKyAgICAgICAgKEJs
YWNrQmVycnk6OldlYktpdDo6V2ViUGFnZVByaXZhdGU6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpzdXBwb3J0c0Z1bGxz
Y3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wNy0wOCAgSmFja3kgSmlhbmcgIDx6aGFqaWFuZ0BibGFj
a2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gQmxvY2sgWm9vbSBkb2VzIG5vdCB6
b29tIGluIG9uIG5hcnJvdyBwYXJhZ3JhcGhzIHByb3Blcmx5CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
Y2E2YTQ1ZjJiN2UzYzY3ZWE2MGE0Yzk3NWQ5YzIwYTM3NDNkNTJkMy4uZTAxYmM2NjU0YzQ2Zjgx
N2I2NWRmZmVmZDllNTk2NDU0MzA3YjVmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDEzLTA3LTExICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKwor
ICAgICAgICBJbnRyb2R1Y2UgaXNIVE1MVmlkZW9FbGVtZW50IGFuZCB0b0hUTUxWaWRlb0VsZW1l
bnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODU4
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIGVu
aGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBpc0hUTUxWaWRlb0VsZW1l
bnQgYW5kIHRvSFRNTFZpZGVvRWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNvIGhlbHBzIG91dCB0
byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzRnVsbHNjcmVlbkZvck5vZGUpOgorCiAyMDEzLTA3LTA5ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LiBVcGRhdGUgTkVXUyBhbmQgVmVyc2lvbnMubTQgZm9yIDIuMS4zIHJlbGVhc2UuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cKaW5kZXggMjE0YjAzZjMyMjY1MDQ3NmZjOWQ4MWYzZjE2MGM0ZmNjZmY3MzdiNy4uODU4
N2E4ZjhhMWM5NmU2ZThjMmJmOWJlYjRiNGVhNDIwMjBmODM5MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDEzLTA3LTExICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1z
dW5nLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgaXNIVE1MVmlkZW9FbGVtZW50IGFuZCB0b0hU
TUxWaWRlb0VsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExODU4MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRvIGVuaGFuY2UgcmVhZGFiaWxpdHksIHRoaXMgcGF0Y2ggaW50cm9kdWNlcyBpc0hU
TUxWaWRlb0VsZW1lbnQgYW5kIHRvSFRNTFZpZGVvRWxlbWVudC4KKyAgICAgICAgVGhpcyBhbHNv
IGhlbHBzIG91dCB0byByZWR1Y2UgZHVwbGljYXRlZCB1c2Ugb2Ygc3RhdGljX2Nhc3QuCisKKyAg
ICAgICAgKiBQbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW06CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX2VudGVyRnVsbHNjcmVlbkZvck5vZGU6V2ViQ29yZTo6XSk6
CisKIDIwMTMtMDctMTAgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgc29tZSBkZWFkIGNvZGUgZnJvbSBXZWJOU1VSTEV4dHJhcyBfd2ViX2hvc3RT
dHJpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9xdC9DaGFuZ2VMb2cKaW5kZXggY2M5YWQxNWQzM2U0ZThlOTNhYjNjZmU4ZWVhMzIxYmJm
NTU4MzMzMS4uYWE5OWIxYWNjZDk5ZmQyMWNhODEyNDZkYWQzZjA2Nzk5ZWM3MzU2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wNy0xMSAgS2FuZ2lsIEhhbiAgPGthbmdp
bC5oYW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGlzSFRNTFZpZGVvRWxlbWVu
dCBhbmQgdG9IVE1MVmlkZW9FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTg1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlzIHBhdGNoIGludHJv
ZHVjZXMgaXNIVE1MVmlkZW9FbGVtZW50IGFuZCB0b0hUTUxWaWRlb0VsZW1lbnQuCisgICAgICAg
IFRoaXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19j
YXN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjptZWRpYUNvbnRlbnRVcmxCeUVsZW1lbnRJZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnVsbFNjcmVlblZpZGVvUXQ6OmV4aXRGdWxsU2NyZWVuRm9yTm9k
ZSk6CisKIDIwMTMtMDctMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIGNvbnN1bWFibGUgdXNlciBnZXN0dXJlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGU4MDg3YTBmMzI5ODkxMzY2OWE0NmMyNWYwZTU5NDhiNzYxZTAz
MzUuLmIzZGI2MGRlZTYzNzM2NTM2ODZhMTM2OTBjM2ZkM2NkZGQ0MGExMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMy0wNy0xMSAgS2FuZ2lsIEhhbiAgPGthbmdpbC5o
YW5Ac2Ftc3VuZy5jb20+CisKKyAgICAgICAgSW50cm9kdWNlIGlzSFRNTFZpZGVvRWxlbWVudCBh
bmQgdG9IVE1MVmlkZW9FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMTg1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUbyBlbmhhbmNlIHJlYWRhYmlsaXR5LCB0aGlzIHBhdGNoIGludHJvZHVj
ZXMgaXNIVE1MVmlkZW9FbGVtZW50IGFuZCB0b0hUTUxWaWRlb0VsZW1lbnQuCisgICAgICAgIFRo
aXMgYWxzbyBoZWxwcyBvdXQgdG8gcmVkdWNlIGR1cGxpY2F0ZWQgdXNlIG9mIHN0YXRpY19jYXN0
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZSk6CisgICAgICAg
ICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2Rl
KToKKwogMjAxMy0wNy0wOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRGVmYXVsdFN0eWxlU2hlZXRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NE
ZWZhdWx0U3R5bGVTaGVldHMuY3BwCmluZGV4IDQ4NzM1ZDY2N2E2Yjg1MzQ5YTc2MTMzNzZhODJh
Mjk5ZGVlNzI2ZWIuLjlkNWI0NTJhMmI1YzAxMmY1NjM0ZWE3MWE0ZWIyNTAwNjFiNWQ5NzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NEZWZhdWx0U3R5bGVTaGVldHMuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRNTEFuY2hv
ckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MQXVkaW9FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRN
TFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0b3IuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKQEAgLTE4Myw3ICsxODQsNyBA
QCB2b2lkIENTU0RlZmF1bHRTdHlsZVNoZWV0czo6ZW5zdXJlRGVmYXVsdFN0eWxlU2hlZXRzRm9y
RWxlbWVudChFbGVtZW50KiBlbGVtZW50LAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU8pCi0g
ICAgaWYgKCFtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCAmJiAoZWxlbWVudC0+aGFzVGFnTmFtZSh2
aWRlb1RhZykgfHwgaXNIVE1MQXVkaW9FbGVtZW50KGVsZW1lbnQpKSkgeworICAgIGlmICghbWVk
aWFDb250cm9sc1N0eWxlU2hlZXQgJiYgKGlzSFRNTFZpZGVvRWxlbWVudChlbGVtZW50KSB8fCBp
c0hUTUxBdWRpb0VsZW1lbnQoZWxlbWVudCkpKSB7CiAgICAgICAgIFN0cmluZyBtZWRpYVJ1bGVz
ID0gU3RyaW5nKG1lZGlhQ29udHJvbHNVc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVkaWFD
b250cm9sc1VzZXJBZ2VudFN0eWxlU2hlZXQpKSArIFJlbmRlclRoZW1lOjp0aGVtZUZvclBhZ2Uo
ZWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKS0+ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpOwogICAgICAgICBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCA9IHBhcnNlVUFTaGVldChtZWRp
YVJ1bGVzKTsKICAgICAgICAgZGVmYXVsdFN0eWxlLT5hZGRSdWxlc0Zyb21TaGVldChtZWRpYUNv
bnRyb2xzU3R5bGVTaGVldCwgc2NyZWVuRXZhbCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAppbmRleCA2ZDQxMzM0YjU3MTYyOWRlZjNmMzM3ZTcxNzUzYTYyMWI0NGM4NWJiLi4y
OWYxYjA4Y2I2YmNjYWJjMjJiYTY0YzNlYTI1MzRjY2RiNDVkNjM3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCkBAIC03NCw2ICs3NCw3IEBACiAjaW5jbHVkZSAiSFRNTFN0eWxl
RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
VGV4dEFyZWFFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1
ZGUgIkluc2VydGlvblBvaW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
LmgiCiAjaW5jbHVkZSAiS2V5ZnJhbWVMaXN0LmgiCkBAIC02ODEsNyArNjgyLDcgQEAgYm9vbCBT
dHlsZVJlc29sdmVyOjpjYW5TaGFyZVN0eWxlV2l0aEVsZW1lbnQoU3R5bGVkRWxlbWVudCogZWxl
bWVudCkgY29uc3QKICAgICBpZiAoZWxlbWVudC0+aGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IGVs
ZW1lbnQtPmhhc1RhZ05hbWUoZnJhbWVUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRU
YWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdO
YW1lKGFwcGxldFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShjYW52YXNUYWcpCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9YWV9GT1JfVklERU8pCiAgICAgICAgIC8vIFdpdGggcHJveHlpbmcsIHRo
ZSBtZWRpYSBlbGVtZW50cyBhcmUgYmFja2VkIGJ5IGEgUmVuZGVyRW1iZWRkZWRPYmplY3QuCi0g
ICAgICAgIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IGlzSFRNTEF1ZGlvRWxl
bWVudChlbGVtZW50KQorICAgICAgICB8fCBpc0hUTUxWaWRlb0VsZW1lbnQoZWxlbWVudCkgfHwg
aXNIVE1MQXVkaW9FbGVtZW50KGVsZW1lbnQpCiAjZW5kaWYKICAgICAgICAgKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUxvYWRlci5jcHAKaW5kZXgg
ZTkyOGRmMjJjNGViNjMxYTFlMjkxYzkxMDI3NmRkNzFkMGRiMjA5Yy4uN2VjOWVlNTUyZWNiMThj
Nzg3ZGM2ZjljMjNhMWNkMzVjNzA3NDBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
TG9hZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5o
IgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgog
CiAjaW5jbHVkZSAiSlNET01XaW5kb3dCYXNlLmgiCkBAIC00OSw3ICs1MCw3IEBAIEhUTUxJbWFn
ZUxvYWRlcjo6fkhUTUxJbWFnZUxvYWRlcigpCiB2b2lkIEhUTUxJbWFnZUxvYWRlcjo6ZGlzcGF0
Y2hMb2FkRXZlbnQoKQogewogICAgIC8vIEhUTUxWaWRlb0VsZW1lbnQgdXNlcyB0aGlzIGNsYXNz
IHRvIGxvYWQgdGhlIHBvc3RlciBpbWFnZSwgYnV0IGl0IHNob3VsZCBub3QgZmlyZSBldmVudHMg
Zm9yIGxvYWRpbmcgb3IgZmFpbHVyZS4KLSAgICBpZiAoZWxlbWVudCgpLT5oYXNUYWdOYW1lKEhU
TUxOYW1lczo6dmlkZW9UYWcpKQorICAgIGlmIChpc0hUTUxWaWRlb0VsZW1lbnQoZWxlbWVudCgp
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBlcnJvck9jY3VycmVkID0gaW1hZ2UoKS0+
ZXJyb3JPY2N1cnJlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAK
aW5kZXggYzJhMDM5OTRhMjhkZDA1MTUzMmM0MGVhMjBlODJkNmJhZDY5YTUwYS4uYjhlYmNmYmJm
OTk3ZmY2OThjYWU3YjIwNmY4MzdhZWI2NDVlMDE0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwCkBAIC00MzA4LDcgKzQzMDgsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OmdldFBsdWdpblByb3h5UGFyYW1zKEtVUkwmIHVybCwgVmVjdG9yPFN0cmluZz4mIG5h
bWVzLCBWZQogICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCktPmZyYW1lKCk7CiAKICAgICBp
ZiAoaXNWaWRlbygpKSB7Ci0gICAgICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvID0gc3RhdGlj
X2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KHRoaXMpOworICAgICAgICBIVE1MVmlkZW9FbGVtZW50
KiB2aWRlbyA9IHRvSFRNTFZpZGVvRWxlbWVudCh0aGlzKTsKICAgICAgICAgS1VSTCBwb3N0ZXJV
UkwgPSB2aWRlby0+cG9zdGVySW1hZ2VVUkwoKTsKICAgICAgICAgaWYgKCFwb3N0ZXJVUkwuaXNF
bXB0eSgpICYmIGZyYW1lICYmIGZyYW1lLT5sb2FkZXIoKS0+d2lsbExvYWRNZWRpYUVsZW1lbnRV
UkwocG9zdGVyVVJMKSkgewogICAgICAgICAgICAgbmFtZXMuYXBwZW5kKEFTQ0lJTGl0ZXJhbCgi
X21lZGlhX2VsZW1lbnRfcG9zdGVyXyIpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVt
ZW50LmgKaW5kZXggZDgyNDE1NjU2MzUwNzcwNDQyMWIyZjEwODNmMGZhMTQ2MWQwYTExYy4uMWQ5
NWQzNDg0ZjQ5M2E4Y2RlY2M4NzhmZTIzOTZkMGU1NmQ2ZWI5NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MVmlkZW9FbGVtZW50LmgKQEAgLTk4LDYgKzk4LDIyIEBAIHByaXZhdGU6CiAgICAgQXRv
bWljU3RyaW5nIG1fZGVmYXVsdFBvc3RlclVSTDsKIH07CiAKK2lubGluZSBib29sIGlzSFRNTFZp
ZGVvRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQoreworICAgIHJldHVybiBub2RlLT5oYXNUYWdO
YW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpOworfQorCitpbmxpbmUgYm9vbCBpc0hUTUxWaWRlb0Vs
ZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKK3sKKyAgICByZXR1cm4gZWxlbWVudC0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKTsKK30KKworaW5saW5lIEhUTUxWaWRlb0VsZW1l
bnQqIHRvSFRNTFZpZGVvRWxlbWVudChOb2RlKiBub2RlKQoreworICAgIEFTU0VSVF9XSVRIX1NF
Q1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IGlzSFRNTFZpZGVvRWxlbWVudChub2RlKSk7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQqPihub2RlKTsKK30KKwogfSAv
L25hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVk
aWFEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCmlu
ZGV4IDkzZGY4ZGVlYWMxMzJlMTdhZTljMTljNWU4ZDVkYjRmMTA5ODM0MDEuLmIxZjRhODVlZDli
MTA0NzQ2ZGRhMDcwMGY1OGNmY2M0Mzk0NGFiMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9NZWRpYURv
Y3VtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCB2b2lkIE1lZGlhRG9jdW1lbnRQYXJzZXI6OmNy
ZWF0ZURvY3VtZW50U3RydWN0dXJlKCkKIAogICAgIFJlZlB0cjxFbGVtZW50PiBtZWRpYUVsZW1l
bnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KHZpZGVvVGFnLCBmYWxzZSk7CiAKLSAgICBt
X21lZGlhRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQqPihtZWRpYUVsZW1l
bnQuZ2V0KCkpOworICAgIG1fbWVkaWFFbGVtZW50ID0gdG9IVE1MVmlkZW9FbGVtZW50KG1lZGlh
RWxlbWVudC5nZXQoKSk7CiAgICAgbV9tZWRpYUVsZW1lbnQtPnNldEF0dHJpYnV0ZShjb250cm9s
c0F0dHIsICIiKTsKICAgICBtX21lZGlhRWxlbWVudC0+c2V0QXR0cmlidXRlKGF1dG9wbGF5QXR0
ciwgIiIpOwogCkBAIC0xMzksMjMgKzEzOSwyMyBAQCBzdGF0aWMgaW5saW5lIEhUTUxWaWRlb0Vs
ZW1lbnQqIGRlc2NlbmRlbnRWaWRlb0VsZW1lbnQoTm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQo
bm9kZSk7CiAKLSAgICBpZiAobm9kZS0+aGFzVGFnTmFtZSh2aWRlb1RhZykpCi0gICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obm9kZSk7CisgICAgaWYgKGlzSFRN
TFZpZGVvRWxlbWVudChub2RlKSkKKyAgICAgICAgcmV0dXJuIHRvSFRNTFZpZGVvRWxlbWVudChu
b2RlKTsKIAogICAgIFJlZlB0cjxOb2RlTGlzdD4gbm9kZUxpc3QgPSBub2RlLT5nZXRFbGVtZW50
c0J5VGFnTmFtZU5TKHZpZGVvVGFnLm5hbWVzcGFjZVVSSSgpLCB2aWRlb1RhZy5sb2NhbE5hbWUo
KSk7Ci0gICAKKwogICAgIGlmIChub2RlTGlzdC5nZXQoKS0+bGVuZ3RoKCkgPiAwKQotICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGVMaXN0LmdldCgpLT5p
dGVtKDApKTsKKyAgICAgICAgcmV0dXJuIHRvSFRNTFZpZGVvRWxlbWVudChub2RlTGlzdC5nZXQo
KS0+aXRlbSgwKSk7CiAKICAgICByZXR1cm4gMDsKIH0KIAogc3RhdGljIGlubGluZSBIVE1MVmlk
ZW9FbGVtZW50KiBhbmNlc3RvclZpZGVvRWxlbWVudChOb2RlKiBub2RlKQogewotICAgIHdoaWxl
IChub2RlICYmICFub2RlLT5oYXNUYWdOYW1lKHZpZGVvVGFnKSkKKyAgICB3aGlsZSAobm9kZSAm
JiAhaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKQogICAgICAgICBub2RlID0gbm9kZS0+cGFyZW50
T3JTaGFkb3dIb3N0Tm9kZSgpOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxWaWRlb0Vs
ZW1lbnQqPihub2RlKTsKKyAgICByZXR1cm4gdG9IVE1MVmlkZW9FbGVtZW50KG5vZGUpOwogfQog
CiB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCmluZGV4IDAwNTFmY2Y2NGQ0NmNiZDdkODBmYThiNDM4ZmY4OGY5OTM5NDIwNjguLmU3ODNh
NWI2OGUxYmFiMjU2NWRhNWQ5MDc4OTA2ZTE1OGZlMDBjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTEyNDAsNyAr
MTI0MCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDo6dXBk
YXRlRGlzcGxheSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIDIuIExldCB2aWRlbyBiZSB0
aGUgbWVkaWEgZWxlbWVudCBvciBvdGhlciBwbGF5YmFjayBtZWNoYW5pc20uCi0gICAgSFRNTFZp
ZGVvRWxlbWVudCogdmlkZW8gPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4obWVkaWFF
bGVtZW50KTsKKyAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbyA9IHRvSFRNTFZpZGVvRWxlbWVu
dChtZWRpYUVsZW1lbnQpOwogCiAgICAgLy8gMy4gTGV0IG91dHB1dCBiZSBhbiBlbXB0eSBsaXN0
IG9mIGFic29sdXRlbHkgcG9zaXRpb25lZCBDU1MgYmxvY2sgYm94ZXMuCiAgICAgVmVjdG9yPFJl
ZlB0cjxIVE1MRGl2RWxlbWVudD4gPiBvdXRwdXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1N1YmZy
YW1lTG9hZGVyLmNwcAppbmRleCAyNDIwZGU2YWZhOWYxYzZiNTE1ZDBkMjE5ZDZjNWMwNTU2MjBi
YmM3Li43MmU1YjRkOTY5ZTllNTFjZmFhNDNkZDkyMWU3ZDg1OGY2YWUzZjIyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvU3ViZnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9TdWJmcmFtZUxvYWRlci5jcHAKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNs
dWRlICJIVE1MRnJhbWVFbGVtZW50QmFzZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2lu
Y2x1ZGUgIkhUTUxQbHVnSW5JbWFnZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVt
ZW50LmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
ICNpbmNsdWRlICJQbHVnaW5EYXRhLmgiCkBAIC0yNDcsNyArMjQ4LDcgQEAgYm9vbCBTdWJmcmFt
ZUxvYWRlcjo6cmVxdWVzdE9iamVjdChIVE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBvd25lckVsZW1l
bnQsIGNvbnN0IFMKIFBhc3NSZWZQdHI8V2lkZ2V0PiBTdWJmcmFtZUxvYWRlcjo6bG9hZE1lZGlh
UGxheWVyUHJveHlQbHVnaW4oTm9kZSogbm9kZSwgY29uc3QgS1VSTCYgdXJsLAogICAgIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBwYXJhbU5hbWVzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGFyYW1W
YWx1ZXMpCiB7Ci0gICAgQVNTRVJUKG5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcpIHx8IGlzSFRN
TEF1ZGlvRWxlbWVudChub2RlKSk7CisgICAgQVNTRVJUKGlzSFRNTFZpZGVvRWxlbWVudChub2Rl
KSB8fCBpc0hUTUxBdWRpb0VsZW1lbnQobm9kZSkpOwogCiAgICAgS1VSTCBjb21wbGV0ZWRVUkw7
CiAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9SZW5kZXJUaGVtZUVmbC5jcHAKaW5kZXggYjIyYmY3Y2YxOWRmMDk2MzVkMGJmNWIxNWZhYWU0
OTQ2M2Y2ZTEzYS4uMDIwZjc0NjgyYjRmMmI5Yjc4NjJiMTIwOGRkNjM1MmRlMWM4Zjc5ZSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL1JlbmRlclRoZW1lRWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCkBAIC0z
Myw2ICszMyw3IEBACiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1ZGUg
IkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1
ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpAQCAtMTI4Myw3ICsxMjg0
LDcgQEAgYm9vbCBSZW5kZXJUaGVtZUVmbDo6cGFpbnRNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LAogICAgIE5vZGUqIG1lZGlhTm9kZSA9IG9iamVj
dC0+bm9kZSgpID8gb2JqZWN0LT5ub2RlKCktPnNoYWRvd0hvc3QoKSA6IDA7CiAgICAgaWYgKCFt
ZWRpYU5vZGUpCiAgICAgICAgIG1lZGlhTm9kZSA9IG9iamVjdC0+bm9kZSgpOwotICAgIGlmICgh
bWVkaWFOb2RlIHx8ICghbWVkaWFOb2RlLT5oYXNUYWdOYW1lKHZpZGVvVGFnKSkpCisgICAgaWYg
KCFtZWRpYU5vZGUgfHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFOb2RlKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHN0
YXRpY19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihtZWRpYU5vZGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4IDE0ZDg5OTRmZDQ0OTliMmNjNzdkY2Jk
MGQ2ZjgzYTdjYzhjYjFhNGEuLjBkMGY0MjRiM2U4ZjI0ZTJmODYzYmUyMzFmNmZlMzYzYTk3OTZh
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTM2
Niw3ICszNjYsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhU3VwcG9ydHNGdWxsc2NyZWVu
KCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbHQobWVkaWFFbGVtZW50KCkpOwotICAgIHJldHVybiAobWVkaWFFbHQgJiYgbWVkaWFFbHQt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgbWVkaWFFbHQtPnN1cHBvcnRzRnVs
bHNjcmVlbigpKTsKKyAgICByZXR1cm4gKG1lZGlhRWx0ICYmIGlzSFRNTFZpZGVvRWxlbWVudCht
ZWRpYUVsdCkgJiYgbWVkaWFFbHQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCkBAIC0zODEsNyArMzgxLDcgQEAgSFRNTE1lZGlhRWxlbWVu
dCogSGl0VGVzdFJlc3VsdDo6bWVkaWFFbGVtZW50KCkgY29uc3QKICAgICBpZiAoIShtX2lubmVy
Tm9uU2hhcmVkTm9kZS0+cmVuZGVyZXIoKSAmJiBtX2lubmVyTm9uU2hhcmVkTm9kZS0+cmVuZGVy
ZXIoKS0+aXNNZWRpYSgpKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobV9pbm5lck5v
blNoYXJlZE5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZykgfHwgaXNIVE1MQXVk
aW9FbGVtZW50KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKSkKKyAgICBpZiAoaXNIVE1MVmlk
ZW9FbGVtZW50KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKSB8fCBpc0hUTUxBdWRpb0VsZW1l
bnQobV9pbm5lck5vblNoYXJlZE5vZGUuZ2V0KCkpKQogICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8SFRNTE1lZGlhRWxlbWVudCo+KG1faW5uZXJOb25TaGFyZWROb2RlLmdldCgpKTsKICAgICBy
ZXR1cm4gMDsKIH0KQEAgLTQyOCw4ICs0MjgsOCBAQCB2b2lkIEhpdFRlc3RSZXN1bHQ6OmVudGVy
RnVsbHNjcmVlbkZvclZpZGVvKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU8pCiAgICAgSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbHQobWVkaWFFbGVtZW50KCkpOwotICAgIGlmIChtZWRpYUVs
dCAmJiBtZWRpYUVsdC0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkgewotICAgICAg
ICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsdCA9IHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1l
bnQqPihtZWRpYUVsdCk7CisgICAgaWYgKG1lZGlhRWx0ICYmIGlzSFRNTFZpZGVvRWxlbWVudCht
ZWRpYUVsdCkpIHsKKyAgICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbHQgPSB0b0hUTUxW
aWRlb0VsZW1lbnQobWVkaWFFbHQpOwogICAgICAgICBpZiAoIXZpZGVvRWx0LT5pc0Z1bGxzY3Jl
ZW4oKSAmJiBtZWRpYUVsdC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgIFVz
ZXJHZXN0dXJlSW5kaWNhdG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKTsKICAgICAgICAgICAgIHZpZGVvRWx0LT5lbnRlckZ1bGxzY3JlZW4oKTsKQEAgLTQ4Niw3
ICs0ODYsNyBAQCBib29sIEhpdFRlc3RSZXN1bHQ6Om1lZGlhSXNWaWRlbygpIGNvbnN0CiB7CiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIGlmIChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsdCA9IG1l
ZGlhRWxlbWVudCgpKQotICAgICAgICByZXR1cm4gbWVkaWFFbHQtPmhhc1RhZ05hbWUoSFRNTE5h
bWVzOjp2aWRlb1RhZyk7CisgICAgICAgIHJldHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFF
bHQpOwogI2VuZGlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBlYTM1YjQ5Y2RiNmZh
OWJhOTBhZWYxNjg3NzUyMzI3MDY1NmEzMjgyLi5jYzAwZTJiNzk0YjViYzhkOTQ1ZWExNWQ4Yzlj
NmVjYTdkYzM2OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIkhUTUxDYW52
YXNFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJI
VE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVmlkZW9FbGVtZW50LmgiCiAjaW5jbHVkZSAiSGl0
VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKQEAgLTIwNjcsNyArMjA2OCw3IEBAIGJvb2wgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjpyZXF1aXJlc0NvbXBvc2l0aW5nRm9yVmlkZW8oUmVuZGVyT2JqZWN0KiByZW5k
ZXJlcikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBOb2RlKiBub2RlID0g
cmVuZGVyZXItPm5vZGUoKTsKLSAgICAgICAgaWYgKCFub2RlIHx8ICghbm9kZS0+aGFzVGFnTmFt
ZShIVE1MTmFtZXM6OnZpZGVvVGFnKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50KG5vZGUpKSkKKyAg
ICAgICAgaWYgKCFub2RlIHx8ICghaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpICYmICFpc0hUTUxB
dWRpb0VsZW1lbnQobm9kZSkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAg
IEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IGYzM2ZkMmQ5
MGMyYzE4YTQ3MDE5ZTM1NmM1YzBjM2IwZGY3N2I0M2UuLjczZWUyYWYzODBmMzJiMjI1MWQ4ZjM5
ZDdmZjBmMzJmZWYzM2I3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KQEAgLTM1LDYgKzM1LDcgQEAKICNpbXBvcnQgIkhUTUxNZWRpYUVsZW1lbnQuaCIK
ICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSFRNTFBsdWdJbkltYWdlRWxlbWVudC5o
IgorI2ltcG9ydCAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2ltcG9ydCAiSW1hZ2UuaCIKICNpbXBv
cnQgIkltYWdlQnVmZmVyLmgiCiAjaW1wb3J0ICJMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQu
aCIKQEAgLTI5MCw3ICsyOTEsNyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludE1lZGlhTXV0
ZUJ1dHRvbihSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbgogewogICAgIE5v
ZGUqIG5vZGUgPSBvLT5ub2RlKCk7CiAgICAgTm9kZSogbWVkaWFOb2RlID0gbm9kZSA/IG5vZGUt
PnNoYWRvd0hvc3QoKSA6IDA7Ci0gICAgaWYgKCFtZWRpYU5vZGUgfHwgKCFtZWRpYU5vZGUtPmhh
c1RhZ05hbWUodmlkZW9UYWcpICYmICFpc0hUTUxBdWRpb0VsZW1lbnQobWVkaWFOb2RlKSkpCisg
ICAgaWYgKCFtZWRpYU5vZGUgfHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFOb2RlKSAmJiAh
aXNIVE1MQXVkaW9FbGVtZW50KG1lZGlhTm9kZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBpZiAobm9kZS0+aXNNZWRpYUNvbnRyb2xFbGVtZW50KCkpIHsKQEAgLTMwNCw3ICszMDUs
NyBAQCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbgogewogICAgIE5vZGUqIG5vZGUgPSBvLT5ub2Rl
KCk7CiAgICAgTm9kZSogbWVkaWFOb2RlID0gbm9kZSA/IG5vZGUtPnNoYWRvd0hvc3QoKSA6IDA7
Ci0gICAgaWYgKCFtZWRpYU5vZGUgfHwgKCFtZWRpYU5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcp
ICYmICFpc0hUTUxBdWRpb0VsZW1lbnQobWVkaWFOb2RlKSkpCisgICAgaWYgKCFtZWRpYU5vZGUg
fHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobWVkaWFOb2RlKSAmJiAhaXNIVE1MQXVkaW9FbGVtZW50
KG1lZGlhTm9kZSkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobm9kZS0+aXNN
ZWRpYUNvbnRyb2xFbGVtZW50KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlk
ZW8uY3BwCmluZGV4IDYyZjRlNDQxZTJhZDBiYjVkOWU3MDQzMjlhNmU3YzZkZjM2MDRlYzAuLjQw
ZWUwMjYxMDFlOTE2ZTcxNzI2NDYzMTczMGJiNTBjMGJiMGQ4MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtMjI3LDExICsyMjcsMTEgQEAgdm9pZCBSZW5k
ZXJWaWRlbzo6bGF5b3V0KCkKICAgICBSZW5kZXJNZWRpYTo6bGF5b3V0KCk7CiAgICAgdXBkYXRl
UGxheWVyKCk7CiB9Ci0gICAgCisKIEhUTUxWaWRlb0VsZW1lbnQqIFJlbmRlclZpZGVvOjp2aWRl
b0VsZW1lbnQoKSBjb25zdAogewotICAgIEFTU0VSVChub2RlKCktPmhhc1RhZ05hbWUodmlkZW9U
YWcpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUoKSk7
IAorICAgIEFTU0VSVChpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSgpKSk7CisgICAgcmV0dXJuIHRv
SFRNTFZpZGVvRWxlbWVudChub2RlKCkpOwogfQogCiB2b2lkIFJlbmRlclZpZGVvOjp1cGRhdGVG
cm9tRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcAppbmRl
eCA1NDQ1NmJlODExNzY0YzMzNjZiMWM2NmI0NjIzMWJiYjdkYmQzMDY4Li5hODc2NzE4ZjUzZGRl
NGMxNzY5MTFiNWMwYjc5OGU5OTZhNTZhNmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Js
YWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9B
cGkvV2ViUGFnZS5jcHAKQEAgLTY5LDYgKzY5LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSAiSFRNTFRleHRBcmVhRWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVFRQUGFy
c2Vycy5oIgogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiSWNvbkRhdGFiYXNl
Q2xpZW50QmxhY2tCZXJyeS5oIgpAQCAtNDk4NSw3ICs0OTg2LDcgQEAgdm9pZCBXZWJQYWdlOjpu
b3RpZnlGdWxsU2NyZWVuVmlkZW9FeGl0ZWQoYm9vbCBkb25lKQogICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSB0b0VsZW1lbnQoZC0+bV9mdWxsc2NyZWVuTm9kZS5nZXQoKSk7CiAgICAgaWYgKCFlbGVt
ZW50KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGQtPm1fd2ViU2V0dGluZ3MtPmZ1bGxTY3Jl
ZW5WaWRlb0NhcGFibGUoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9U
YWcpKQorICAgIGlmIChkLT5tX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkg
JiYgaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBzdGF0aWNfY2FzdDxIVE1M
TWVkaWFFbGVtZW50Kj4oZWxlbWVudCktPmV4aXRGdWxsc2NyZWVuKCk7CiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogICAgIGVsc2UKQEAgLTU2MTIsNyArNTYxMyw3IEBAIHZvaWQgV2ViUGFn
ZVByaXZhdGU6Om5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopCiB2b2lk
IFdlYlBhZ2VQcml2YXRlOjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiB7CiAj
aWYgRU5BQkxFKFZJREVPKQotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+aGFzVGFnTmFtZShIVE1M
TmFtZXM6OnZpZGVvVGFnKSkKKyAgICBpZiAoIW5vZGUgfHwgIWlzSFRNTFZpZGVvRWxlbWVudChu
b2RlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllciA9IHN0YXRp
Y19jYXN0PEhUTUxNZWRpYUVsZW1lbnQqPihub2RlKS0+cGxheWVyKCk7CkBAIC01NjQ1LDcgKzU2
NDYsNyBAQCB2b2lkIFdlYlBhZ2VQcml2YXRlOjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSog
bm9kZSkKICAgICAgICAgbV9mdWxsc2NyZWVuTm9kZSA9IDA7CiAgICAgfQogCi0gICAgaWYgKCFu
b2RlIHx8ICFub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKQorICAgIGlmICgh
bm9kZSB8fCAhaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBNZWRpYVBsYXllciogcGxheWVyID0gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KG5v
ZGUpLT5wbGF5ZXIoKTsKQEAgLTU2NjcsNyArNTY2OCw3IEBAIHZvaWQgV2ViUGFnZVByaXZhdGU6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKICNpZiBFTkFCTEUo
VklERU8pCiAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKG1fd2Vi
U2V0dGluZ3MtPmZ1bGxTY3JlZW5WaWRlb0NhcGFibGUoKSAmJiBlbGVtZW50LT5oYXNUYWdOYW1l
KEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7CisgICAgaWYgKG1fd2ViU2V0dGluZ3MtPmZ1bGxTY3Jl
ZW5WaWRlb0NhcGFibGUoKSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQoZWxlbWVudCkpIHsKICAgICAg
ICAgLy8gVGhlIEJyb3dzZXIgY2hyb21lIGhhcyBpdHMgb3duIGZ1bGxzY3JlZW4gdmlkZW8gd2lk
Z2V0IGl0IHdhbnRzIHRvCiAgICAgICAgIC8vIHVzZSwgYW5kIHRoaXMgaXMgYSB2aWRlbyBlbGVt
ZW50LiBUaGUgb25seSByZWFzb24gdGhhdAogICAgICAgICAvLyB3ZWJraXRXaWxsRW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudCgpIGFuZApAQCAtNTcwOSw3ICs1NzEwLDcgQEAgdm9pZCBXZWJQYWdl
UHJpdmF0ZTo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiAjaWYg
RU5BQkxFKFZJREVPKQogICAgIGlmICghZWxlbWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGlm
IChtX3dlYlNldHRpbmdzLT5mdWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgZWxlbWVudC0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSkgeworICAgIGlmIChtX3dlYlNldHRpbmdzLT5m
dWxsU2NyZWVuVmlkZW9DYXBhYmxlKCkgJiYgaXNIVE1MVmlkZW9FbGVtZW50KGVsZW1lbnQpKSB7
CiAgICAgICAgIC8vIFRoZSBCcm93c2VyIGNocm9tZSBoYXMgaXRzIG93biBmdWxsc2NyZWVuIHZp
ZGVvIHdpZGdldC4KICAgICAgICAgZXhpdEZ1bGxzY3JlZW5Gb3JOb2RlKGVsZW1lbnQpOwogICAg
IH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggMWRlOTEy
NzM0MjBjMjhjNGExOTM5NjVjZTgzZmNjZWZmZDU0MTI0Yi4uNTQ3Mzk1ODZkZTVlY2ZhZjk2OTBm
MTQ3NzI3MTJhODE5YmUzM2FhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRCbGFja0JlcnJ5LmNw
cApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXIuaCIKICNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAi
SFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRl
ICJJY29uLmgiCiAjaW5jbHVkZSAiSW5wdXRIYW5kbGVyLmgiCkBAIC02OTcsNyArNjk4LDcgQEAg
dm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5OjpjaG9vc2VJY29uRm9yRmlsZXMoY29uc3QgVmVj
dG9yPFN0cmluZz4mLCBGaWxlQ2hvb3MKIAogYm9vbCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojpz
dXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJu
IG5vZGUtPmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRN
TFZpZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRCbGFja0JlcnJ5Ojpl
bnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCA4MzMyNjMzN2Nl
ZWU0YTBmMzQxZmQ1MjdkYzYzNDcyMjkxYmY4NzI4Li5hNTg1ZjViYzMzNjA3NjNjMTU1NmE2NGYw
NzRlMGYyZmQzYjE3NDhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJH
dGtVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTFZpZGVvRWxlbWVudC5oIgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKICNpbmNsdWRlICJJY29uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJv
bGxlci5oIgpAQCAtOTI4LDcgKzkyOSw3IEBAIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51PiBDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoTkFUSVZFX0ZVTExTQ1JFRU5fVklERU8pCiBib29sIENocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuRm9yTm9kZShjb25zdCBOb2RlKiBub2RlKQogewot
ICAgIHJldHVybiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpOworICAgIHJl
dHVybiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50Ojpl
bnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9QbHVnaW5zL1dlYlBsdWdpbkNvbnRyb2xsZXIubW0KaW5kZXggYmQ0NzE5NGI0ZDZhNzg2Mzlk
ZTJiODk2N2FmN2VkYTNkYjM0MWZlMi4uM2U0NzE1ZjE0ZWRkZjBlOWI1OTRhNzE4OTcyYTg4Njg0
ZTI1NWY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvUGx1Z2lucy9XZWJQbHVnaW5D
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1BsdWdpbnMvV2ViUGx1Z2luQ29u
dHJvbGxlci5tbQpAQCAtNTQsNiArNTQsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRl
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0hUTUxOYW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL01lZGlhUGxheWVyUHJveHkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVz
b3VyY2VSZXF1ZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NjcmlwdENvbnRyb2xsZXIuaD4KQEAg
LTQ5OSw3ICs1MDAsNyBAQCBzdGF0aWMgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudCogbWVkaWFQ
cm94eUNsaWVudChET01FbGVtZW50KiBlbGVtZW50KQogICAgIH0KIAogICAgIEVsZW1lbnQqIG5v
ZGUgPSBjb3JlKGVsZW1lbnQpOwotICAgIGlmICghbm9kZSB8fCAoIW5vZGUtPmhhc1RhZ05hbWUo
SFRNTE5hbWVzOjp2aWRlb1RhZykgJiYgIWlzSFRNTEF1ZGlvRWxlbWVudChub2RlKSkpIHsKKyAg
ICBpZiAoIW5vZGUgfHwgKCFpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkgJiYgIWlzSFRNTEF1ZGlv
RWxlbWVudChub2RlKSkpIHsKICAgICAgICAgTE9HX0VSUk9SKCJpbnZhbGlkIG1lZGlhIGVsZW1l
bnQgcGFzc2VkIik7CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDNmMGIw
NTM4NWJhM2E2OTM1YmNmZmEzNWM3NDY2ZDliMTk5ODE4MWEuLmVmYTc2Yjk4YzgwYTkxYWQxZDU1
NWQ1NmQ5N2M0N2EyYjY3ZjI3MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTY4LDYgKzY4LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTmFtZXMu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oPgorI2ltcG9ydCA8
V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpdFRlc3RSZXN1
bHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSWNvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9JbnRQb2lu
dC5oPgpAQCAtODkwLDcgKzg5MSw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUtPmhh
c1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRN
TFZpZGVvRWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVs
bHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQppbmRleCA3NTk2NzBiNjRlMjg1NmE1OWUyMmE3ZmY3YWM1M2U1ZjU2NDA2YWVlLi5hNTJhYjJj
NGNmNmIwYTUyNGQwY2NmOTk0ZmQyODdiYWFiY2QyMzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0xMzksNiArMTM5LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvR2VvbG9j
YXRpb25FcnJvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9IVE1MTWVkaWFFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0hUTUxOYW1lcy5oPgorI2ltcG9ydCA8V2ViQ29yZS9IVE1MVmlkZW9FbGVt
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0hpc3RvcnlJdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ljb25EYXRhYmFzZS5oPgpA
QCAtNjQ3Nyw3ICs2NDc4LDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxlcjo6Zmx1c2hMYXll
cnMoKQogCiAtICh2b2lkKV9lbnRlckZ1bGxzY3JlZW5Gb3JOb2RlOihXZWJDb3JlOjpOb2RlKilu
b2RlCiB7Ci0gICAgQVNTRVJUKG5vZGUtPmhhc1RhZ05hbWUoV2ViQ29yZTo6SFRNTE5hbWVzOjp2
aWRlb1RhZykpOworICAgIEFTU0VSVChpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpOwogICAgIEhU
TUxNZWRpYUVsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHRvTWVkaWFFbGVtZW50KG5vZGUpOwogCiAg
ICAgaWYgKF9wcml2YXRlLT5mdWxsc2NyZWVuQ29udHJvbGxlcikgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAppbmRleCBhYmEwMzdj
YzZlOTdlNTIyNzc4MWI2NDcyMzUxNzc5YmZmODViYjdmLi5jNWUzYTRiNjQ1NDM1ZmE5ZjIyZDY1
ZTQ5N2JjNTFhMTYxMGY0ZTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcApAQCAtNDcsNiArNDcsNyBAQAogI2luY2x1ZGUgIkdy
YXBoaWNzTGF5ZXIuaCIKICNlbmRpZgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxWaWRlb0VsZW1lbnQuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiSWNvbi5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25BY3Rpb24uaCIKQEAgLTY5MCw3
ICs2OTEsNyBAQCBGdWxsU2NyZWVuVmlkZW9RdCogQ2hyb21lQ2xpZW50UXQ6OmZ1bGxTY3JlZW5W
aWRlbygpCiBib29sIENocm9tZUNsaWVudFF0OjpzdXBwb3J0c0Z1bGxzY3JlZW5Gb3JOb2RlKGNv
bnN0IE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKG5vZGUpOwotICAgIHJldHVybiBub2RlLT5o
YXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpICYmIGZ1bGxTY3JlZW5WaWRlbygpLT5pc1Zh
bGlkKCk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVvRWxlbWVudChub2RlKSAmJiBmdWxsU2NyZWVu
VmlkZW8oKS0+aXNWYWxpZCgpOwogfQogCiBib29sIENocm9tZUNsaWVudFF0OjpyZXF1aXJlc0Z1
bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKQEAgLTcwMCwxNCArNzAxLDE0IEBAIGJvb2wgQ2hy
b21lQ2xpZW50UXQ6OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQogCiB2b2lk
IENocm9tZUNsaWVudFF0OjplbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKE5vZGUqIG5vZGUpCiB7Ci0g
ICAgQVNTRVJUKG5vZGUgJiYgbm9kZS0+aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSk7
CisgICAgQVNTRVJUKG5vZGUgJiYgaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpKTsKIAogICAgIGZ1
bGxTY3JlZW5WaWRlbygpLT5lbnRlckZ1bGxTY3JlZW5Gb3JOb2RlKG5vZGUpOwogfQogCiB2b2lk
IENocm9tZUNsaWVudFF0OjpleGl0RnVsbHNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsKLSAg
ICBBU1NFUlQobm9kZSAmJiBub2RlLT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKTsK
KyAgICBBU1NFUlQobm9kZSAmJiBpc0hUTUxWaWRlb0VsZW1lbnQobm9kZSkpOwogCiAgICAgZnVs
bFNjcmVlblZpZGVvKCktPmV4aXRGdWxsU2NyZWVuRm9yTm9kZShub2RlKTsKIH0gCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCmluZGV4IDg4ODRlNDk1Mzk0ODA0OThjMjFiODdmMTM1N2RjZTNhMzA2NzY0
NWMuLjg4ZDI5NzcxMmVmZDIzOGM3NjE0YWQzNjQ5N2U0NWJlZWJlZmFlNzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwCkBAIC03MjAsNyArNzIwLDcgQEAgUVVybCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6bWVkaWFDb250ZW50VXJsQnlFbGVtZW50SWQoUVdlYkZyYW1lQWRhcHRlciogYWRhcHQK
ICAgICBpZiAoIWNvcmVOb2RlKQogICAgICAgICByZXR1cm4gcmVzOwogCi0gICAgSFRNTFZpZGVv
RWxlbWVudCogdmlkZW9FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KGNv
cmVOb2RlKTsKKyAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQgPSB0b0hUTUxWaWRl
b0VsZW1lbnQoY29yZU5vZGUpOwogICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSA9IHZp
ZGVvRWxlbWVudC0+cGxhdGZvcm1NZWRpYSgpOwogICAgIGlmIChwbGF0Zm9ybU1lZGlhLnR5cGUg
IT0gUGxhdGZvcm1NZWRpYTo6UXRNZWRpYVBsYXllclR5cGUpCiAgICAgICAgIHJldHVybiByZXM7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5W
aWRlb1F0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZp
ZGVvUXQuY3BwCmluZGV4IDRmMDNhNjQzYWY3ODM5YWRiODRmNDRlMmJhZDkwYTYwOThhYzhiMzgu
LmJkNTc4ZTk3YmEzYWQ0ZTRkNTczNDJmOTAyMTZhMjZmOGZjYmFkMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCkBA
IC0xMTMsMTEgKzExMywxMSBAQCBGdWxsU2NyZWVuVmlkZW9RdDo6fkZ1bGxTY3JlZW5WaWRlb1F0
KCkKIHZvaWQgRnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUoTm9kZSog
bm9kZSkKIHsKICAgICBRX0FTU0VSVChub2RlKTsKLSAgICBtX3ZpZGVvRWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxWaWRlb0VsZW1lbnQqPihub2RlKTsKKyAgICBtX3ZpZGVvRWxlbWVudCA9IHRv
SFRNTFZpZGVvRWxlbWVudChub2RlKTsKIAogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogICAgIFFf
QVNTRVJUKG1fRnVsbFNjcmVlblZpZGVvSGFuZGxlcik7Ci0gICAgSFRNTFZpZGVvRWxlbWVudCog
dmlkZW9FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOworICAg
IEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHRvSFRNTFZpZGVvRWxlbWVudChub2Rl
KTsKICAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1lbnQtPnBsYXRm
b3JtTWVkaWEoKTsKIAogICAgIEFTU0VSVChwbGF0Zm9ybU1lZGlhLnR5cGUgPT0gUGxhdGZvcm1N
ZWRpYTo6UXRNZWRpYVBsYXllclR5cGUpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgRnVsbFNj
cmVlblZpZGVvUXQ6OmV4aXRGdWxsU2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogICAgIFFfQVNT
RVJUKG5vZGUpOwogCiAjaWYgVVNFKFFUX01VTFRJTUVESUEpCi0gICAgSFRNTFZpZGVvRWxlbWVu
dCogdmlkZW9FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOwor
ICAgIEhUTUxWaWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHRvSFRNTFZpZGVvRWxlbWVudChu
b2RlKTsKICAgICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1lbnQtPnBs
YXRmb3JtTWVkaWEoKTsKIAogICAgIEFTU0VSVChwbGF0Zm9ybU1lZGlhLnR5cGUgPT0gUGxhdGZv
cm1NZWRpYTo6UXRNZWRpYVBsYXllclR5cGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggMTA0NDVhYjNhNTI1ZDI1
YWIwNWY5MDQ2YmI5OGYyNzUzM2VhODkwZC4uOGM5NzkwZjE4YmRjYzY1NWE0YmZmMTUyMjZmYWQx
MDFjYTg0M2I3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Z1bGxTY3JlZW5Db250cm9sbGVyLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9IVE1MTmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0hUTUxW
aWRlb0VsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ljb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0xvY2FsV2luZG93c0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0
cmluZ3MuaD4KQEAgLTc3Miw3ICs3NzMsNyBAQCBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IFdlYkNo
cm9tZUNsaWVudDo6dWlEZWxlZ2F0ZSgpCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0
c0Z1bGxzY3JlZW5Gb3JOb2RlKGNvbnN0IE5vZGUqIG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGUt
Pmhhc1RhZ05hbWUoSFRNTE5hbWVzOjp2aWRlb1RhZyk7CisgICAgcmV0dXJuIGlzSFRNTFZpZGVv
RWxlbWVudChub2RlKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbHNjcmVl
bkZvck5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggYWEyNGZjZDkyOWU3
YmM4ZDQwNjZkY2I3MzBiNTkwNGVmNDk0M2NkOC4uZWI5YzFhMTJmMDIyNDQ0NzM5OGZiODBmODVk
ZWI3YTJhMTNjZDJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTk5LDYgKzk5LDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRN
TE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE5hbWVzLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IV25kREMu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0hpc3RvcnlDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9IaXN0b3J5SXRlbS5oPgpAQCAtNjIzNyw3ICs2MjM4LDcgQEAgSFJFU1VMVCBXZWJWaWV3
OjpzZXRDYW5TdGFydFBsdWdpbnMoQk9PTCBjYW5TdGFydFBsdWdpbnMpCiAKIHZvaWQgV2ViVmll
dzo6ZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZS0+
aGFzVGFnTmFtZShIVE1MTmFtZXM6OnZpZGVvVGFnKSB8fCAhbm9kZS0+aXNFbGVtZW50Tm9kZSgp
KQorICAgIGlmICghaXNIVE1MVmlkZW9FbGVtZW50KG5vZGUpIHx8ICFub2RlLT5pc0VsZW1lbnRO
b2RlKCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEVOQUJMRShWSURFTykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206625</attachid>
            <date>2013-07-13 23:13:34 -0700</date>
            <delta_ts>2013-07-14 01:56:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118582-20130714151142.patch</filename>
            <type>text/plain</type>
            <size>9539</size>
            <attacher name="Kangil Han">kangil.han</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUyNjExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmZjY2VlNjdlMzI3Zjg3
ZjJiMTlhZDQ5YzI0ZGQ4OTBjNzhmOWI5Mi4uOWRjZjFlMGQ4MDdlMDA5YTkyNmQwNjk4Nzk0YTI2
OWEzYjY0YzAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTA3LTEzICBLYW5n
aWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgdG9I
VE1MVmlkZW9FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTg1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUbyBhdm9pZCBkaXJlY3QgdXNlIG9mIHN0YXRpY19jYXN0LCB0aGlzIHBhdGNoIGlu
dHJvZHVjZXMgdG9IVE1MVmlkZW9FbGVtZW50LgorCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmdldFBsdWdp
blByb3h5UGFyYW1zKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OnRvSFRNTFZpZGVvRWxlbWVudCk6CisgICAgICAgICogaHRtbC9NZWRpYURv
Y3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhRG9jdW1lbnRQYXJzZXI6OmNyZWF0
ZURvY3VtZW50U3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2NlbmRlbnRWaWRlb0Vs
ZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6YW5jZXN0b3JWaWRlb0VsZW1lbnQpOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OnVwZGF0ZURpc3BsYXkp
OgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhpdFRlc3RSZXN1bHQ6OmVudGVyRnVsbHNjcmVlbkZvclZpZGVvKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlkZW8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlkZW86
OnZpZGVvRWxlbWVudCk6CisKIDIwMTMtMDctMTMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgQXZvaWQgdXBjb252ZXJ0aW5nIHN0cmluZ3MgaW4gdmFyaW91cyBw
bGFjZXMgaW4gV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCBjYzlhZDE1ZDMzZTRlOGU5M2FiM2Nm
ZThlZWEzMjFiYmY1NTgzMzMxLi40MDliNDQyMzkyMzEzY2Y4ZTc5MTlmNzkyYTIxZDA4ZDg0ODI5
MDM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTA3LTEzICBLYW5naWwg
SGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KKworICAgICAgICBJbnRyb2R1Y2UgdG9IVE1M
VmlkZW9FbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMTg1ODIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUbyBhdm9pZCBkaXJlY3QgdXNlIG9mIHN0YXRpY19jYXN0LCB0aGlzIHBhdGNoIGludHJv
ZHVjZXMgdG9IVE1MVmlkZW9FbGVtZW50LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6Om1lZGlhQ29udGVudFVybEJ5RWxlbWVudElkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GdWxsU2NyZWVuVmlkZW9RdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2NyZWVuVmlk
ZW9RdDo6ZW50ZXJGdWxsU2NyZWVuRm9yTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpGdWxsU2Ny
ZWVuVmlkZW9RdDo6ZXhpdEZ1bGxTY3JlZW5Gb3JOb2RlKToKKwogMjAxMy0wNy0wMSAgSm9jaGVu
IEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW1vdmUgc3VwcG9y
dCBmb3IgY29uc3VtYWJsZSB1c2VyIGdlc3R1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAppbmRleCBjMmEwMzk5NGEyOGRkMDUxNTMyYzQwZWEyMGU4MmQ2YmFkNjlh
NTBhLi5iOGViY2ZiYmY5OTdmZjY5OGNhZTdiMjA2ZjgzN2FlYjY0NWUwMTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTQzMDgsNyArNDMwOCw3IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6Z2V0UGx1Z2luUHJveHlQYXJhbXMoS1VSTCYgdXJsLCBWZWN0
b3I8U3RyaW5nPiYgbmFtZXMsIFZlCiAgICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS0+ZnJh
bWUoKTsKIAogICAgIGlmIChpc1ZpZGVvKCkpIHsKLSAgICAgICAgSFRNTFZpZGVvRWxlbWVudCog
dmlkZW8gPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVtZW50Kj4odGhpcyk7CisgICAgICAgIEhU
TUxWaWRlb0VsZW1lbnQqIHZpZGVvID0gdG9IVE1MVmlkZW9FbGVtZW50KHRoaXMpOwogICAgICAg
ICBLVVJMIHBvc3RlclVSTCA9IHZpZGVvLT5wb3N0ZXJJbWFnZVVSTCgpOwogICAgICAgICBpZiAo
IXBvc3RlclVSTC5pc0VtcHR5KCkgJiYgZnJhbWUgJiYgZnJhbWUtPmxvYWRlcigpLT53aWxsTG9h
ZE1lZGlhRWxlbWVudFVSTChwb3N0ZXJVUkwpKSB7CiAgICAgICAgICAgICBuYW1lcy5hcHBlbmQo
QVNDSUlMaXRlcmFsKCJfbWVkaWFfZWxlbWVudF9wb3N0ZXJfIikpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxWaWRlb0VsZW1lbnQuaAppbmRleCBkODI0MTU2NTYzNTA3NzA0NDIxYjJmMTA4M2YwZmEx
NDYxZDBhMTFjLi44ZjUwMTdhZWNmNjQ3YmE0YWRiOGY4ZWI0ODViYWI3N2IzMjJjN2I5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuaApAQCAtOTgsNiArOTgsMTIgQEAgcHJp
dmF0ZToKICAgICBBdG9taWNTdHJpbmcgbV9kZWZhdWx0UG9zdGVyVVJMOwogfTsKIAoraW5saW5l
IEhUTUxWaWRlb0VsZW1lbnQqIHRvSFRNTFZpZGVvRWxlbWVudChOb2RlKiBub2RlKQoreworICAg
IEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFub2RlIHx8IG5vZGUtPmhhc1RhZ05h
bWUoSFRNTE5hbWVzOjp2aWRlb1RhZykpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MVmlk
ZW9FbGVtZW50Kj4obm9kZSk7Cit9CisKIH0gLy9uYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9NZWRpYURvY3VtZW50LmNwcAppbmRleCA5M2RmOGRlZWFjMTMyZTE3YWU5YzE5YzVl
OGQ1ZGI0ZjEwOTgzNDAxLi41OTcyYWYyYjdiYmNkZGFkNmFiMDQ3MmM5MTFlOGE1NjA2NDU0ZDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01lZGlhRG9jdW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTWVkaWFEb2N1bWVudC5jcHAKQEAgLTg1LDcgKzg1LDcgQEAg
dm9pZCBNZWRpYURvY3VtZW50UGFyc2VyOjpjcmVhdGVEb2N1bWVudFN0cnVjdHVyZSgpCiAKICAg
ICBSZWZQdHI8RWxlbWVudD4gbWVkaWFFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVu
dCh2aWRlb1RhZywgZmFsc2UpOwogCi0gICAgbV9tZWRpYUVsZW1lbnQgPSBzdGF0aWNfY2FzdDxI
VE1MVmlkZW9FbGVtZW50Kj4obWVkaWFFbGVtZW50LmdldCgpKTsKKyAgICBtX21lZGlhRWxlbWVu
dCA9IHRvSFRNTFZpZGVvRWxlbWVudChtZWRpYUVsZW1lbnQuZ2V0KCkpOwogICAgIG1fbWVkaWFF
bGVtZW50LT5zZXRBdHRyaWJ1dGUoY29udHJvbHNBdHRyLCAiIik7CiAgICAgbV9tZWRpYUVsZW1l
bnQtPnNldEF0dHJpYnV0ZShhdXRvcGxheUF0dHIsICIiKTsKIApAQCAtMTQwLDEyICsxNDAsMTIg
QEAgc3RhdGljIGlubGluZSBIVE1MVmlkZW9FbGVtZW50KiBkZXNjZW5kZW50VmlkZW9FbGVtZW50
KE5vZGUqIG5vZGUpCiAgICAgQVNTRVJUKG5vZGUpOwogCiAgICAgaWYgKG5vZGUtPmhhc1RhZ05h
bWUodmlkZW9UYWcpKQotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVu
dCo+KG5vZGUpOworICAgICAgICByZXR1cm4gdG9IVE1MVmlkZW9FbGVtZW50KG5vZGUpOwogCiAg
ICAgUmVmUHRyPE5vZGVMaXN0PiBub2RlTGlzdCA9IG5vZGUtPmdldEVsZW1lbnRzQnlUYWdOYW1l
TlModmlkZW9UYWcubmFtZXNwYWNlVVJJKCksIHZpZGVvVGFnLmxvY2FsTmFtZSgpKTsKICAgIAog
ICAgIGlmIChub2RlTGlzdC5nZXQoKS0+bGVuZ3RoKCkgPiAwKQotICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGVMaXN0LmdldCgpLT5pdGVtKDApKTsKKyAg
ICAgICAgcmV0dXJuIHRvSFRNTFZpZGVvRWxlbWVudChub2RlTGlzdC5nZXQoKS0+aXRlbSgwKSk7
CiAKICAgICByZXR1cm4gMDsKIH0KQEAgLTE1NSw3ICsxNTUsNyBAQCBzdGF0aWMgaW5saW5lIEhU
TUxWaWRlb0VsZW1lbnQqIGFuY2VzdG9yVmlkZW9FbGVtZW50KE5vZGUqIG5vZGUpCiAgICAgd2hp
bGUgKG5vZGUgJiYgIW5vZGUtPmhhc1RhZ05hbWUodmlkZW9UYWcpKQogICAgICAgICBub2RlID0g
bm9kZS0+cGFyZW50T3JTaGFkb3dIb3N0Tm9kZSgpOwogCi0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PEhUTUxWaWRlb0VsZW1lbnQqPihub2RlKTsKKyAgICByZXR1cm4gdG9IVE1MVmlkZW9FbGVtZW50
KG5vZGUpOwogfQogCiB2b2lkIE1lZGlhRG9jdW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqIGV2ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCmluZGV4IGQ5ZmY0MzZkZTVhNDUwNGY5MzRkNjAyYmYzNTRjMzIyODVj
NGFhNDIuLjM0MTNiMGEwMTdlZDg5Y2NmMzEwNTY0YjA0NDg4MjdmZTZjYjJjMDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAK
QEAgLTEyMzgsNyArMTIzOCw3IEBAIHZvaWQgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVy
RWxlbWVudDo6dXBkYXRlRGlzcGxheSgpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIDIuIExl
dCB2aWRlbyBiZSB0aGUgbWVkaWEgZWxlbWVudCBvciBvdGhlciBwbGF5YmFjayBtZWNoYW5pc20u
Ci0gICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW8gPSBzdGF0aWNfY2FzdDxIVE1MVmlkZW9FbGVt
ZW50Kj4obWVkaWFFbGVtZW50KTsKKyAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlbyA9IHRvSFRN
TFZpZGVvRWxlbWVudChtZWRpYUVsZW1lbnQpOwogCiAgICAgLy8gMy4gTGV0IG91dHB1dCBiZSBh
biBlbXB0eSBsaXN0IG9mIGFic29sdXRlbHkgcG9zaXRpb25lZCBDU1MgYmxvY2sgYm94ZXMuCiAg
ICAgVmVjdG9yPFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gPiBvdXRwdXQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKaW5kZXggMTRkODk5NGZkNDQ5OWIyY2M3N2Rj
YmQwZDZmODNhN2NjOGNiMWE0YS4uOThjODE3YWQyMjViYjA4MWI3MjgxMWJhM2YwZTk2YmM5ZDg0
NGNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAt
NDI5LDcgKzQyOSw3IEBAIHZvaWQgSGl0VGVzdFJlc3VsdDo6ZW50ZXJGdWxsc2NyZWVuRm9yVmlk
ZW8oKSBjb25zdAogI2lmIEVOQUJMRShWSURFTykKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsdChtZWRpYUVsZW1lbnQoKSk7CiAgICAgaWYgKG1lZGlhRWx0ICYmIG1lZGlhRWx0LT5oYXNU
YWdOYW1lKEhUTUxOYW1lczo6dmlkZW9UYWcpKSB7Ci0gICAgICAgIEhUTUxWaWRlb0VsZW1lbnQq
IHZpZGVvRWx0ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG1lZGlhRWx0KTsKKyAg
ICAgICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbHQgPSB0b0hUTUxWaWRlb0VsZW1lbnQobWVk
aWFFbHQpOwogICAgICAgICBpZiAoIXZpZGVvRWx0LT5pc0Z1bGxzY3JlZW4oKSAmJiBtZWRpYUVs
dC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgIFVzZXJHZXN0dXJlSW5kaWNh
dG9yIGluZGljYXRvcihEZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKICAgICAgICAg
ICAgIHZpZGVvRWx0LT5lbnRlckZ1bGxzY3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlkZW8uY3BwCmluZGV4IDYyZjRlNDQxZTJhZDBiYjVkOWU3MDQzMjlhNmU3YzZkZjM2
MDRlYzAuLjYxZWM2ZjI0NDViZTRiNDU2YTlhZDAxODY5ZmQyM2ZjZjNhY2Q1NmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWRlby5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZGVvLmNwcApAQCAtMjMwLDggKzIzMCw3IEBAIHZv
aWQgUmVuZGVyVmlkZW86OmxheW91dCgpCiAgICAgCiBIVE1MVmlkZW9FbGVtZW50KiBSZW5kZXJW
aWRlbzo6dmlkZW9FbGVtZW50KCkgY29uc3QKIHsKLSAgICBBU1NFUlQobm9kZSgpLT5oYXNUYWdO
YW1lKHZpZGVvVGFnKSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxWaWRlb0VsZW1lbnQq
Pihub2RlKCkpOyAKKyAgICByZXR1cm4gdG9IVE1MVmlkZW9FbGVtZW50KG5vZGUoKSk7IAogfQog
CiB2b2lkIFJlbmRlclZpZGVvOjp1cGRhdGVGcm9tRWxlbWVudCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCmluZGV4IDg4ODRlNDk1Mzk0ODA0OThjMjFiODdmMTM1N2RjZTNhMzA2NzY0NWMuLjg4ZDI5
NzcxMmVmZDIzOGM3NjE0YWQzNjQ5N2U0NWJlZWJlZmFlNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCkBAIC03MjAsNyArNzIwLDcgQEAgUVVybCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6bWVk
aWFDb250ZW50VXJsQnlFbGVtZW50SWQoUVdlYkZyYW1lQWRhcHRlciogYWRhcHQKICAgICBpZiAo
IWNvcmVOb2RlKQogICAgICAgICByZXR1cm4gcmVzOwogCi0gICAgSFRNTFZpZGVvRWxlbWVudCog
dmlkZW9FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KGNvcmVOb2RlKTsK
KyAgICBIVE1MVmlkZW9FbGVtZW50KiB2aWRlb0VsZW1lbnQgPSB0b0hUTUxWaWRlb0VsZW1lbnQo
Y29yZU5vZGUpOwogICAgIFBsYXRmb3JtTWVkaWEgcGxhdGZvcm1NZWRpYSA9IHZpZGVvRWxlbWVu
dC0+cGxhdGZvcm1NZWRpYSgpOwogICAgIGlmIChwbGF0Zm9ybU1lZGlhLnR5cGUgIT0gUGxhdGZv
cm1NZWRpYTo6UXRNZWRpYVBsYXllclR5cGUpCiAgICAgICAgIHJldHVybiByZXM7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Z1bGxTY3JlZW5WaWRlb1F0LmNw
cCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3Bw
CmluZGV4IDRmMDNhNjQzYWY3ODM5YWRiODRmNDRlMmJhZDkwYTYwOThhYzhiMzguLmJkNTc4ZTk3
YmEzYWQ0ZTRkNTczNDJmOTAyMTZhMjZmOGZjYmFkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvUXQuY3BwCkBAIC0xMTMsMTEg
KzExMywxMSBAQCBGdWxsU2NyZWVuVmlkZW9RdDo6fkZ1bGxTY3JlZW5WaWRlb1F0KCkKIHZvaWQg
RnVsbFNjcmVlblZpZGVvUXQ6OmVudGVyRnVsbFNjcmVlbkZvck5vZGUoTm9kZSogbm9kZSkKIHsK
ICAgICBRX0FTU0VSVChub2RlKTsKLSAgICBtX3ZpZGVvRWxlbWVudCA9IHN0YXRpY19jYXN0PEhU
TUxWaWRlb0VsZW1lbnQqPihub2RlKTsKKyAgICBtX3ZpZGVvRWxlbWVudCA9IHRvSFRNTFZpZGVv
RWxlbWVudChub2RlKTsKIAogI2lmIFVTRShRVF9NVUxUSU1FRElBKQogICAgIFFfQVNTRVJUKG1f
RnVsbFNjcmVlblZpZGVvSGFuZGxlcik7Ci0gICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9FbGVt
ZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOworICAgIEhUTUxWaWRl
b0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHRvSFRNTFZpZGVvRWxlbWVudChub2RlKTsKICAgICBQ
bGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1lbnQtPnBsYXRmb3JtTWVkaWEo
KTsKIAogICAgIEFTU0VSVChwbGF0Zm9ybU1lZGlhLnR5cGUgPT0gUGxhdGZvcm1NZWRpYTo6UXRN
ZWRpYVBsYXllclR5cGUpOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHZvaWQgRnVsbFNjcmVlblZpZGVv
UXQ6OmV4aXRGdWxsU2NyZWVuRm9yTm9kZShOb2RlKiBub2RlKQogICAgIFFfQVNTRVJUKG5vZGUp
OwogCiAjaWYgVVNFKFFUX01VTFRJTUVESUEpCi0gICAgSFRNTFZpZGVvRWxlbWVudCogdmlkZW9F
bGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFZpZGVvRWxlbWVudCo+KG5vZGUpOworICAgIEhUTUxW
aWRlb0VsZW1lbnQqIHZpZGVvRWxlbWVudCA9IHRvSFRNTFZpZGVvRWxlbWVudChub2RlKTsKICAg
ICBQbGF0Zm9ybU1lZGlhIHBsYXRmb3JtTWVkaWEgPSB2aWRlb0VsZW1lbnQtPnBsYXRmb3JtTWVk
aWEoKTsKIAogICAgIEFTU0VSVChwbGF0Zm9ybU1lZGlhLnR5cGUgPT0gUGxhdGZvcm1NZWRpYTo6
UXRNZWRpYVBsYXllclR5cGUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>