<?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>71324</bug_id>
          
          <creation_ts>2011-11-01 14:32:20 -0700</creation_ts>
          <short_desc>Expand DragController to provide more information about the dragging session</short_desc>
          <delta_ts>2011-11-02 15:33:11 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>13897</blocked>
    
    <blocked>71325</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Lee">jonlee</reporter>
          <assigned_to name="Jon Lee">jonlee</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>494161</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 14:32:20 -0700</bug_when>
    <thetext>In addition to providing the DragOperation, DragController should provide information about whether the user&apos;s mouse is over a file element, and how many of the dragged items would be accepted upon drop.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494163</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-11-01 14:32:54 -0700</bug_when>
    <thetext>&lt;rdar://problem/10379175&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494193</commentid>
    <comment_count>2</comment_count>
      <attachid>113233</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 15:09:05 -0700</bug_when>
    <thetext>Created attachment 113233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494220</commentid>
    <comment_count>3</comment_count>
      <attachid>113233</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 15:36:35 -0700</bug_when>
    <thetext>Comment on attachment 113233
Patch

Attachment 113233 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10258070</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494229</commentid>
    <comment_count>4</comment_count>
      <attachid>113233</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 15:43:37 -0700</bug_when>
    <thetext>Comment on attachment 113233
Patch

Attachment 113233 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10259068</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494251</commentid>
    <comment_count>5</comment_count>
      <attachid>113247</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 16:00:53 -0700</bug_when>
    <thetext>Created attachment 113247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494284</commentid>
    <comment_count>6</comment_count>
      <attachid>113247</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 16:33:18 -0700</bug_when>
    <thetext>Comment on attachment 113247
Patch

Attachment 113247 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10148074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494290</commentid>
    <comment_count>7</comment_count>
      <attachid>113254</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 16:36:44 -0700</bug_when>
    <thetext>Created attachment 113254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494308</commentid>
    <comment_count>8</comment_count>
      <attachid>113254</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 16:54:38 -0700</bug_when>
    <thetext>Comment on attachment 113254
Patch

Attachment 113254 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10175095</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494310</commentid>
    <comment_count>9</comment_count>
      <attachid>113254</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 16:58:16 -0700</bug_when>
    <thetext>Comment on attachment 113254
Patch

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

&gt; Source/WebCore/page/DraggingInfo.h:33
&gt; +struct DraggingInfo {

I’m usually not such a big fan of “info” in a class name, since everything in a computer is info or data, and that suffix doesn’t add much.

&gt; Source/WebCore/page/DraggingInfo.h:39
&gt; +    bool mouseOverFileInput;

I think a verb in this phrase would help. Like “mouseIsOverFileInput”.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494326</commentid>
    <comment_count>10</comment_count>
      <attachid>113254</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-11-01 17:14:43 -0700</bug_when>
    <thetext>Comment on attachment 113254
Patch

Attachment 113254 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10259099</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494333</commentid>
    <comment_count>11</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 17:17:58 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 113254 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=113254&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/DraggingInfo.h:33
&gt; &gt; +struct DraggingInfo {
&gt; 
&gt; I’m usually not such a big fan of “info” in a class name, since everything in a computer is info or data, and that suffix doesn’t add much.

How about DragSession?

&gt; 
&gt; &gt; Source/WebCore/page/DraggingInfo.h:39
&gt; &gt; +    bool mouseOverFileInput;
&gt; 
&gt; I think a verb in this phrase would help. Like “mouseIsOverFileInput”.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494360</commentid>
    <comment_count>12</comment_count>
      <attachid>113267</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 17:47:26 -0700</bug_when>
    <thetext>Created attachment 113267
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494366</commentid>
    <comment_count>13</comment_count>
      <attachid>113269</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-01 17:53:35 -0700</bug_when>
    <thetext>Created attachment 113269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494399</commentid>
    <comment_count>14</comment_count>
      <attachid>113269</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 19:00:04 -0700</bug_when>
    <thetext>Comment on attachment 113269
Patch

Attachment 113269 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10258127

New failing tests:
editing/pasteboard/file-input-files-access.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494529</commentid>
    <comment_count>15</comment_count>
      <attachid>113269</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-11-02 03:08:19 -0700</bug_when>
    <thetext>Comment on attachment 113269
Patch

Attachment 113269 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10259202</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494823</commentid>
    <comment_count>16</comment_count>
      <attachid>113354</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 12:53:39 -0700</bug_when>
    <thetext>Created attachment 113354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494824</commentid>
    <comment_count>17</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 12:56:15 -0700</bug_when>
    <thetext>This latest patch changes a layout test. The expectation now is that dragging a file over a disabled file input does nothing-- previously it would load the file being dragged into the web view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494847</commentid>
    <comment_count>18</comment_count>
      <attachid>113358</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 13:14:03 -0700</bug_when>
    <thetext>Created attachment 113358
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494884</commentid>
    <comment_count>19</comment_count>
      <attachid>113376</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 13:59:08 -0700</bug_when>
    <thetext>Created attachment 113376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494953</commentid>
    <comment_count>20</comment_count>
      <attachid>113376</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-02 15:08:30 -0700</bug_when>
    <thetext>Comment on attachment 113376
Patch

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

Not sure I love the name DragSession, but I guess it’s OK.

&gt; Source/WebCore/page/DragController.cpp:353
&gt; +        } else
&gt; +            // We are not over a file input element. The dragged item(s) will only
&gt; +            // be loaded into the view the number of dragged items is 1.
&gt; +            dragSession.numberOfItemsToBeAccepted = numberOfFiles != 1 ? 0 : 1;

WebKit coding style says you should use braces here. It’s the number of lines that determines the braces, not the number of statements.

&gt; Source/WebCore/page/DragSession.h:37
&gt; +    DragSession()
&gt; +    : operation(DragOperationNone)
&gt; +    , mouseIsOverFileInput(false)
&gt; +    , numberOfItemsToBeAccepted(0) { }

This is not the formatting we use in WebKit code. That would be:

    DragSession()
        : operation(DragOperationNone)
        , mouseIsOverFileInput(false)
        , numberOfItemsToBeAccepted(0)
    {
    }

Also, we normally put the constructor after the data members in a separate paragraph when it’s a struct rather than a class.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:186
&gt; +    , m_currentDragSession()

You should be able to delete this line of code entirely. The default constructor is called if you don’t explicitly initialize the data member.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494956</commentid>
    <comment_count>21</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 15:09:49 -0700</bug_when>
    <thetext>Thanks, I will check the patch in with the changes you mentioned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494975</commentid>
    <comment_count>22</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2011-11-02 15:33:11 -0700</bug_when>
    <thetext>Committed r99108: &lt;http://trac.webkit.org/changeset/99108&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113233</attachid>
            <date>2011-11-01 15:09:05 -0700</date>
            <delta_ts>2011-11-01 16:00:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111101150938.patch</filename>
            <type>text/plain</type>
            <size>32277</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODM4MjlkMDY5ZDNmNDg1
ZTBlMzY4MGVmMzE5Yzk4YjBhZTFjZTYyLi5hYjFkMzA2MzU1MzVhYzY2N2QxYTViYzQ0NzEwNDgx
Zjc0ZGM1NDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzMgQEAKIDIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJZiB0aGUgbW91c2UgaXMgb3ZlciBhCisgICAgICAgIGZpbGUg
aW5wdXQgZWxlbWVudCwgd2UgZG8gc29tZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgdG8gc2VlIGhv
dyBtYW55CisgICAgICAgIGZpbGVzIHRoZSBlbGVtZW50IGNvdWxkIGFjY2VwdCAoaWYgYW55KS4g
V2UgdHJhY2sgdGhhdCBudW1iZXIgYW5kIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92
ZXIgYSBmaWxlIGlucHV0IGVsZW1lbnQgaW4gdGhlIERyYWdnaW5nSW5mbyBzdHJ1Y3QuCisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcpOgorICAgICAgICAqIHBh
Z2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0RyYWdnaW5nSW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRyYWdnaW5nSW5mbzo6RHJhZ2dpbmdJbmZvKTogVGhpcyBu
ZXcgc3RydWN0IGNvbnRhaW5zIHRoZQorICAgICAgICBkcmFnIG9wZXJhdGlvbiwgd2hldGhlciB0
aGUgbW91c2UgaXMgY3VycmVudGx5IG92ZXIgYSBmaWxlIGlucHV0IGVsZW1lbnQsCisgICAgICAg
IGFuZCBob3cgbWFueSBmaWxlcyBjYW4gYmUgZHJvcHBlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9E
cmFnRGF0YS5oOiBSZXBsYWNlIGNvbnRhaW5zRmlsZXMoKSB3aXRoIG51bWJlck9mRmlsZXMoKQor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKworMjAxMS0xMS0wMSAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4
dCB1c2VzIHNpbmd1bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MTAzNzkwMjE+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggZDE5NWMyZDcyNjA2ZDBlYWM5YWQ3ZTQ3NDFk
Mjc2MDYwNjg0NzFhZC4uYThmYzYyYmExMmFhYmNmMGE3NWNlMjBiZWE4YmRmZjZhYWNkMDA3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTExLTAxICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJv
dmlkZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTAzNzkxNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZp
ZXcgZHJhZ2dpbmdFbnRlcmVkOl0pOiBEcmFnT3BlcmF0aW9uIGlzIG5vdyBpbnNpZGUgdGhlIERy
YWdnaW5nSW5mbyBzdHJ1Y3QuCisgICAgICAgICgtW1dlYlZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0p
OgorCiAyMDExLTExLTAxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBDcmFzaCBpbiBQREYgY29kZSB3aGVuIHNjcmlwdCBoYXMgaWxsZWdhbCBVVEYtOCBvciBVVEYt
MTYgc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDRiOGJmMTUxNWY1ZjY1ODRlZGFkODFlYjVhOWRi
NjM4NGYyNWVmOS4uNzRmZWJkYjNkOTA5ODdlODg1MmI3MzE0Y2UxYmY3ODhjMTMzNWYwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDExLTExLTAxICBKb24gTGVlICA8am9ubGVlQGFw
cGxlLmNvbT4KKworICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3Jl
IGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTAzNzkxNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2Ugbm93IHBhc3MgdGhlIERyYWdnaW5nSW5mbyBzdHJ1Y3QgZnJvbSB0aGUgV2Vi
IHRvIHRoZSBVSSBwcm9jZXNzLCBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBEcmFnT3BlcmF0aW9u
IGVudW0uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6
OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkpOiBXZSBub3cgY2FjaGUgdGhlIGxhc3Qga25vd24gRHJhZ2dpbmdJ
bmZvIHN0YXRlCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZHJhZ2dpbmdJbmZvKToKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5OjpyZXNldERyYWdPcGVyYXRpb24pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24pOgorCiAyMDExLTExLTAxICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5
bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBNZXJnZSBjb21tb24gZGVza3Rv
cCBhbmQgdG91Y2ggdmlldyBBUElzIHVuZGVyIGEgYmFzZSBjbGFzcy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZjI4MTk1Yzdk
NTQ4NDk5MjliYWJkZjM0Y2NiOTAzZjM0YTc1NzljLi5iY2RhMjZhNWNhZjEwYjAyNmViMTg5Yjdk
MTViMWE5NmQxNWY1YjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NzgsNiArNzc4LDcgQEAKIAkJMzE2MTFFNjEwRTFDNEUx
NDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1RTBFMUM0RTE0MDBGNkE1Nzkg
LyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsKIAkJMzE2MTFFNjIwRTFDNEUx
NDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5
IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovOyB9OwogCQkzMTYxMUU2MzBFMUM0
RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNjAwRTFDNEUx
NDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLzsgfTsK
KwkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERyYWdnaW5nSW5mby5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2OTM3OUExNDYwOUM1QjAwQzAx
MzYyIC8qIERyYWdnaW5nSW5mby5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTMxNkZFMDcxMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tl
eWZyYW1lUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTZGRTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwICovOyB9OwogCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlm
cmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkZFMDZFMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oICov
OyB9OwogCQkzMTZGRTA3MzBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNS
dWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMx
NkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICov
OyB9OwpAQCAtNzg1NSw2ICs3ODU2LDcgQEAKIAkJMzE2MTFFNUUwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxNjExRTVGMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zv
cm1WYWx1ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkz
MTYxMUU2MDBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRDU1NUcmFu
c2Zvcm1WYWx1ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNjkz
NzlBMTQ2MDlDNUIwMEMwMTM2MiAvKiBEcmFnZ2luZ0luZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRHJhZ2dpbmdJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU0tleWZy
YW1lUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZFMEU2Q0NC
RUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTQzNyw2ICsxNTQzOSw3IEBACiAJCQkJQTdDQTU5NUMwQjI3QkQ5RTAwRkEwMjFEIC8qIERy
YWdDb250cm9sbGVyLmNwcCAqLywKIAkJCQlBN0NBNTk1QjBCMjdCRDlFMDBGQTAyMUQgLyogRHJh
Z0NvbnRyb2xsZXIuaCAqLywKIAkJCQk4MUY2NUZGNTEzNzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0
YXRlLmggKi8sCisJCQkJMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYyIC8qIERyYWdnaW5nSW5mby5o
ICovLAogCQkJCTFBRjMyNjc3MEQ3OEI5NDQwMDY4RjBDNCAvKiBFZGl0b3JDbGllbnQuaCAqLywK
IAkJCQk5M0MwOUE4MDBCMDY0RjAwMDA1QUJENEQgLyogRXZlbnRIYW5kbGVyLmNwcCAqLywKIAkJ
CQk5M0MwOUE1MjBCMDY0REIzMDA1QUJENEQgLyogRXZlbnRIYW5kbGVyLmggKi8sCkBAIC0yNDU0
MSw2ICsyNDU0NCw3IEBACiAJCQkJOUIzQTg4NzIxNDU2MzJGOTAwM0FFOEY1IC8qIERPTURPTVNl
dHRhYmxlVG9rZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDYyRjUyRTE0NTg5OEQ4MDA5
NEIwRUQgLyogQXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MkQ4RkVCREQxNDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkzMTY5Mzc5QzE0NjA5QzZDMDBDMDEzNjIgLyogRHJhZ2dpbmdJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZjA5
OTY5MGJiMGQ4ZjI1MTMwOWNjOTUyMzEzNmQ3NjIzZmE0ODVmNS4uYjc3ODAxMTg3YjM4MjJkNzcx
ZDJmMThlZDE0Mzk3YzNiYjhiYTQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgogI2luY2x1
ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgorI2luY2x1ZGUgIkRyYWdn
aW5nSW5mby5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKQEAgLTE2Miw3ICsxNjMsNyBAQCB2b2lkIERyYWdDb250
cm9sbGVyOjpkcmFnRW5kZWQoKQogICAgIG1fY2xpZW50LT5kcmFnRW5kZWQoKTsKIH0KIAotRHJh
Z09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJhZ0RhdGEqIGRyYWdEYXRh
KQorRHJhZ2dpbmdJbmZvIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZChEcmFnRGF0YSogZHJh
Z0RhdGEpCiB7CiAgICAgcmV0dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsKIH0K
QEAgLTE4Miw3ICsxODMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKERyYWdE
YXRhKiBkcmFnRGF0YSkKICAgICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KDApOwogfQogCi1EcmFn
T3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEp
CitEcmFnZ2luZ0luZm8gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhKiBkcmFn
RGF0YSkKIHsKICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJhZ0RhdGEpOwogfQpA
QCAtMjMyLDcgKzIzMyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6Om1vdXNlTW92ZWRJbnRvRG9j
dW1lbnQoRG9jdW1lbnQqIG5ld0RvY3VtZW50KQogICAgIG1fZG9jdW1lbnRVbmRlck1vdXNlID0g
bmV3RG9jdW1lbnQ7CiB9CiAKLURyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRl
cmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdnaW5nSW5mbyBEcmFnQ29udHJv
bGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIEFT
U0VSVChkcmFnRGF0YSk7CiAgICAgQVNTRVJUKG1fcGFnZS0+bWFpbkZyYW1lKCkpOyAvLyBJdCBp
cyBub3QgcG9zc2libGUgaW4gTWFjIFdlYktpdCB0byBoYXZlIGEgUGFnZSB3aXRob3V0IGEgbWFp
bkZyYW1lKCkKQEAgLTI0MSwxNCArMjQyLDE0IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICBtX2RyYWdE
ZXN0aW5hdGlvbkFjdGlvbiA9IG1fY2xpZW50LT5hY3Rpb25NYXNrRm9yRHJhZyhkcmFnRGF0YSk7
CiAgICAgaWYgKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID09IERyYWdEZXN0aW5hdGlvbkFjdGlv
bk5vbmUpIHsKICAgICAgICAgY2FuY2VsRHJhZygpOyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1v
dXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk/Ci0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9u
ZTsKKyAgICAgICAgcmV0dXJuIERyYWdnaW5nSW5mbygpOwogICAgIH0KIAotICAgIERyYWdPcGVy
YXRpb24gb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgYm9vbCBoYW5kbGVkQnlE
b2N1bWVudCA9IHRyeURvY3VtZW50RHJhZyhkcmFnRGF0YSwgbV9kcmFnRGVzdGluYXRpb25BY3Rp
b24sIG9wZXJhdGlvbik7CisgICAgRHJhZ2dpbmdJbmZvIGRyYWdnaW5nSW5mbzsKKyAgICBib29s
IGhhbmRsZWRCeURvY3VtZW50ID0gdHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0
aW5hdGlvbkFjdGlvbiwgZHJhZ2dpbmdJbmZvKTsKICAgICBpZiAoIWhhbmRsZWRCeURvY3VtZW50
ICYmIChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQp
KQotICAgICAgICByZXR1cm4gb3BlcmF0aW9uRm9yTG9hZChkcmFnRGF0YSk7Ci0gICAgcmV0dXJu
IG9wZXJhdGlvbjsKKyAgICAgICAgZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbiA9IG9wZXJhdGlvbkZv
ckxvYWQoZHJhZ0RhdGEpOworICAgIHJldHVybiBkcmFnZ2luZ0luZm87CiB9CiAKIHN0YXRpYyBI
VE1MSW5wdXRFbGVtZW50KiBhc0ZpbGVJbnB1dChOb2RlKiBub2RlKQpAQCAtMjg0LDcgKzI4NSw3
IEBAIHN0YXRpYyBFbGVtZW50KiBlbGVtZW50VW5kZXJNb3VzZShEb2N1bWVudCogZG9jdW1lbnRV
bmRlck1vdXNlLCBjb25zdCBJbnRQb2ludCYKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVu
dCo+KG4pOwogfQogCi1ib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0Rh
dGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJh
dGlvbiYgb3BlcmF0aW9uKQorYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERy
YWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdn
aW5nSW5mbyYgZHJhZ2dpbmdJbmZvKQogewogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAKQEAgLTI5
Niw3ICsyOTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0Rh
dGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogCiAgICAgbV9pc0hhbmRsaW5n
RHJhZyA9IGZhbHNlOwogICAgIGlmIChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
REhUTUwpIHsKLSAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJhZyhkcmFnRGF0
YSwgb3BlcmF0aW9uKTsKKyAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJhZyhk
cmFnRGF0YSwgZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbik7CiAgICAgICAgIC8vIERvIG5vdCBjb250
aW51ZSBpZiBtX2RvY3VtZW50VW5kZXJNb3VzZSBoYXMgYmVlbiByZXNldCBieSB0cnlESFRNTERy
YWcuCiAgICAgICAgIC8vIHRyeURIVE1MRHJhZyBmaXJlcyBkcmFnZW50ZXIgZXZlbnQuIFRoZSBl
dmVudCBsaXN0ZW5lciB0aGF0IGxpc3RlbnMKICAgICAgICAgLy8gdG8gdGhpcyBldmVudCBtYXkg
Y3JlYXRlIGEgbmVzdGVkIG1lc3NhZ2UgbG9vcCAob3BlbiBhIG1vZGFsIGRpYWxvZyksCkBAIC0z
MTcsNyArMzE4LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdE
YXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfSBlbHNlIGlmICgoYWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkVk
aXQpICYmIGNhblByb2Nlc3NEcmFnKGRyYWdEYXRhKSkgewogICAgICAgICBpZiAoZHJhZ0RhdGEt
PmNvbnRhaW5zQ29sb3IoKSkgewotICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlv
bkdlbmVyaWM7CisgICAgICAgICAgICBkcmFnZ2luZ0luZm8ub3BlcmF0aW9uID0gRHJhZ09wZXJh
dGlvbkdlbmVyaWM7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0z
MjUsMTEgKzMyNiwzMiBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJh
Z0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogICAgICAgICBFbGVtZW50
KiBlbGVtZW50ID0gZWxlbWVudFVuZGVyTW91c2UobV9kb2N1bWVudFVuZGVyTW91c2UuZ2V0KCks
IHBvaW50KTsKICAgICAgICAgaWYgKCFlbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBpZiAoIWFzRmlsZUlucHV0KGVsZW1lbnQpKQorICAgICAgICAKKyAgICAgICAg
SFRNTElucHV0RWxlbWVudCogZWxlbWVudEFzRmlsZUlucHV0ID0gYXNGaWxlSW5wdXQoZWxlbWVu
dCk7CisgICAgICAgIGlmICghZWxlbWVudEFzRmlsZUlucHV0KQogICAgICAgICAgICAgbV9wYWdl
LT5kcmFnQ2FyZXRDb250cm9sbGVyKCktPnNldENhcmV0UG9zaXRpb24obV9kb2N1bWVudFVuZGVy
TW91c2UtPmZyYW1lKCktPnZpc2libGVQb3NpdGlvbkZvclBvaW50KHBvaW50KSk7CiAKICAgICAg
ICAgRnJhbWUqIGlubmVyRnJhbWUgPSBlbGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpOwotICAg
ICAgICBvcGVyYXRpb24gPSBkcmFnSXNNb3ZlKGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFn
RGF0YSkgPyBEcmFnT3BlcmF0aW9uTW92ZSA6IERyYWdPcGVyYXRpb25Db3B5OworICAgICAgICBk
cmFnZ2luZ0luZm8ub3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24o
KSwgZHJhZ0RhdGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAg
ICAgICAgZHJhZ2dpbmdJbmZvLm1vdXNlT3ZlckZpbGVJbnB1dCA9IGVsZW1lbnRBc0ZpbGVJbnB1
dDsKKyAgICAgICAgZHJhZ2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOwor
CisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMgPSBkcmFnRGF0YS0+bnVtYmVyT2ZGaWxl
cygpOworICAgICAgICBpZiAoZWxlbWVudEFzRmlsZUlucHV0KSB7CisgICAgICAgICAgICBpZiAo
ZWxlbWVudEFzRmlsZUlucHV0LT5kaXNhYmxlZCgpKQorICAgICAgICAgICAgICAgIGRyYWdnaW5n
SW5mby5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMDsKKyAgICAgICAgICAgIGVsc2UgaWYg
KGVsZW1lbnRBc0ZpbGVJbnB1dC0+bXVsdGlwbGUoKSkKKyAgICAgICAgICAgICAgICBkcmFnZ2lu
Z0luZm8ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IG51bWJlck9mRmlsZXM7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgZHJhZ2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0Jl
QWNjZXB0ZWQgPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRyYWdnaW5nSW5m
by5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKQorICAgICAgICAgICAgICAgIGRyYWdnaW5nSW5m
by5vcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uTm9uZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICAvLyBXZSBhcmUgbm90IG92ZXIgYSBmaWxlIGlucHV0IGVsZW1lbnQuIFRoZSBkcmFnZ2Vk
IGl0ZW0ocykgd2lsbCBvbmx5CisgICAgICAgICAgICAvLyBiZSBsb2FkZWQgaW50byB0aGUgdmll
dyB0aGUgbnVtYmVyIG9mIGRyYWdnZWQgaXRlbXMgaXMgMS4KKyAgICAgICAgICAgIGRyYWdnaW5n
SW5mby5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8gMCA6
IDE7CisgICAgICAgIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgLy8gSWYgd2Un
cmUgbm90IG92ZXIgYW4gZWRpdGFibGUgcmVnaW9uLCBtYWtlIHN1cmUgd2UncmUgY2xlYXJpbmcg
YW55IHByaW9yIGRyYWcgY3Vyc29yLgpAQCAtNDE0LDcgKzQzNiw3IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgICAgICBpZiAo
ZmlsZUlucHV0LT5kaXNhYmxlZCgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
ICAgIGlmICghZHJhZ0RhdGEtPmNvbnRhaW5zRmlsZXMoKSkKKyAgICAgICAgaWYgKCFkcmFnRGF0
YS0+bnVtYmVyT2ZGaWxlcygpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lczsKQEAgLTQ5MSw3ICs1MTMsNyBAQCBib29sIERyYWdD
b250cm9sbGVyOjpjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgaWYgKCFy
ZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAg
IGlmIChkcmFnRGF0YS0+Y29udGFpbnNGaWxlcygpICYmIGFzRmlsZUlucHV0KHJlc3VsdC5pbm5l
ck5vblNoYXJlZE5vZGUoKSkpCisgICAgaWYgKGRyYWdEYXRhLT5udW1iZXJPZkZpbGVzKCkgPiAw
ICYmIGFzRmlsZUlucHV0KHJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPnJlbmRl
cmVySXNFZGl0YWJsZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDI2
MWE4ZDUzZjczNjU4YjA3MWYyMTA1NmFlNThiMjRiMWJiNDU5NjkuLmMwMjE0OTYzZmZhN2Q4Zjlj
MjhlNzU1N2FiYTljZTU4ZDdlNTc4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmgKQEAgLTM4LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERyYWdD
bGllbnQ7CiAgICAgY2xhc3MgRHJhZ0RhdGE7CiAgICAgc3RydWN0IERyYWdTdGF0ZTsKKyAgICBz
dHJ1Y3QgRHJhZ2dpbmdJbmZvOwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRnJhbWU7
CiAgICAgY2xhc3MgRnJhbWVTZWxlY3Rpb247CkBAIC01NSw5ICs1Niw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgfkRyYWdDb250cm9sbGVyKCk7CiAgICAgICAgIERyYWdDbGllbnQq
IGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9CiAKLSAgICAgICAgRHJhZ09wZXJh
dGlvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOworICAgICAgICBEcmFnZ2luZ0luZm8gZHJhZ0Vu
dGVyZWQoRHJhZ0RhdGEqKTsKICAgICAgICAgdm9pZCBkcmFnRXhpdGVkKERyYWdEYXRhKik7Ci0g
ICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEqKTsKKyAgICAgICAgRHJh
Z2dpbmdJbmZvIGRyYWdVcGRhdGVkKERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgcGVyZm9ybURy
YWcoRHJhZ0RhdGEqKTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUg
cG9zc2libGUgdG8gcmVtb3ZlIGEgbnVtYmVyIG9mIHRoZXNlIGFjY2Vzc29ycyBvbmNlIGFsbApA
QCAtOTQsOSArOTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZGlzcGF0
Y2hUZXh0SW5wdXRFdmVudEZvcihGcmFtZSosIERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgY2Fu
UHJvY2Vzc0RyYWcoRHJhZ0RhdGEqKTsKICAgICAgICAgYm9vbCBjb25jbHVkZUVkaXREcmFnKERy
YWdEYXRhKik7Ci0gICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJh
Z0RhdGEqKTsKKyAgICAgICAgRHJhZ2dpbmdJbmZvIGRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdE
YXRhKik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uRm9yTG9hZChEcmFnRGF0YSop
OwotICAgICAgICBib29sIHRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSosIERyYWdEZXN0aW5hdGlv
bkFjdGlvbiwgRHJhZ09wZXJhdGlvbiYpOworICAgICAgICBib29sIHRyeURvY3VtZW50RHJhZyhE
cmFnRGF0YSosIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ2dpbmdJbmZvJik7CiAgICAgICAg
IGJvb2wgdHJ5REhUTUxEcmFnKERyYWdEYXRhKiwgRHJhZ09wZXJhdGlvbiYpOwogICAgICAgICBE
cmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oRHJhZ0RhdGEqKTsKICAgICAgICAgdm9pZCBjYW5j
ZWxEcmFnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdnaW5nSW5mby5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnZ2luZ0luZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTNiNzkz
Y2JkZTgxYzNhMGY1MzQ1YTMzNDMyMjM0YjNhMGE1NjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnZ2luZ0luZm8uaApAQCAtMCwwICsxLDQ1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2lmbmRlZiBEcmFnZ2luZ0luZm9faAorI2RlZmluZSBEcmFnZ2luZ0luZm9faAorCisjaW5j
bHVkZSAiRHJhZ0FjdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAorc3RydWN0
IERyYWdnaW5nSW5mbyB7CisgICAgRHJhZ2dpbmdJbmZvKCkKKyAgICA6IG9wZXJhdGlvbihEcmFn
T3BlcmF0aW9uTm9uZSkKKyAgICAsIG1vdXNlT3ZlckZpbGVJbnB1dChmYWxzZSkKKyAgICAsIG51
bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoMCkgeyB9CisgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRp
b247CisgICAgYm9vbCBtb3VzZU92ZXJGaWxlSW5wdXQ7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZJ
dGVtc1RvQmVBY2NlcHRlZDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJh
Z0RhdGEuaAppbmRleCBhZmEyMTlmM2I3MjIzYmRkZDU4YzI3ZWY2NzJkOGM2Y2E3MGNmMWJjLi5l
YzY2ZmM5OTY5MjA4NTkwNzVhYTNhOTI3YjY0OTI3ZjdmMWQ2YzRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdEYXRhLmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgYWxsb3dQbGFpblRleHQsIGJvb2wm
IGNob3NlUGxhaW5UZXh0KSBjb25zdDsKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0
OwogICAgIGJvb2wgY29udGFpbnNDb2xvcigpIGNvbnN0OwotICAgIGJvb2wgY29udGFpbnNGaWxl
cygpIGNvbnN0OworICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMoKSBjb25zdDsKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkKCkgeyByZXR1cm4gbV9wYXN0
ZWJvYXJkLmdldCgpOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EcmFnRGF0YU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFn
RGF0YU1hYy5tbQppbmRleCAyY2E5NDNkZTExYjBkOWE4MGNhMzc1OGU3NDMxM2IyYTVlOTE5OWMy
Li41ZDZjMDdjODc4OTAxZjVhYzAxOTBjOTM5YmM1MDI4ZDllMDE1MDg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCkBAIC03MSw5ICs3MSwxMSBAQCBib29s
IERyYWdEYXRhOjpjb250YWluc0NvbG9yKCkgY29uc3QKICAgICByZXR1cm4gW1ttX3Bhc3RlYm9h
cmQuZ2V0KCkgdHlwZXNdIGNvbnRhaW5zT2JqZWN0Ok5TQ29sb3JQYm9hcmRUeXBlXTsKIH0KIAot
Ym9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0Cit1bnNpZ25lZCBEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdldCgp
IHR5cGVzXSBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOworICAgIGlmICgh
W1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNdIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJv
YXJkVHlwZV0pCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5n
ZXQoKSBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV0gY291bnRdOwog
fQogCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDE5Zjc0NzY5ZGU5YzM2
ODkxZWYwYTRmODhhMTU3MTc1Y2NhMTkyMmIuLmE1ZTczZDc4MzlhNTcxZmQ0MzIyZDg0NjdiODQ3
YzM5Y2MxODBhNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTExNyw2
ICsxMTcsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9EcmFnZ2luZ0luZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9y
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9F
eGNlcHRpb25IYW5kbGVycy5oPgpAQCAtMzg2NCw3ICszODY1LDcgQEAgc3RhdGljIE5TU3RyaW5n
ICogY29uc3Qgd2luZG93RGlkQ2hhbmdlUmVzb2x1dGlvbk5vdGlmaWNhdGlvbiA9IEAiTlNXaW5k
b3dEaWRDaGEKICAgICBJbnRQb2ludCBjbGllbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0
aW9uXSk7CiAgICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8gZHJh
Z2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YShk
cmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihb
ZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNh
dGlvbkZsYWdzOmRyYWdnaW5nSW5mb10pOwotICAgIHJldHVybiBjb3JlKHNlbGYpLT5kcmFnQ29u
dHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpOworICAgIHJldHVybiBjb3JlKHNlbGYp
LT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbjsKIH0K
IAogLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nVXBkYXRlZDooaWQgPE5TRHJhZ2dpbmdJbmZv
PilkcmFnZ2luZ0luZm8KQEAgLTM4NzYsNyArMzg3Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNv
bnN0IHdpbmRvd0RpZENoYW5nZVJlc29sdXRpb25Ob3RpZmljYXRpb24gPSBAIk5TV2luZG93RGlk
Q2hhCiAgICAgSW50UG9pbnQgY2xpZW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0p
OwogICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5n
TG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dp
bmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdn
aW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25G
bGFnczpkcmFnZ2luZ0luZm9dKTsKLSAgICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+
ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKTsKKyAgICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIo
KS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKS5vcGVyYXRpb247CiB9CiAKIC0gKHZvaWQpZHJhZ2dp
bmdFeGl0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0
Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggNmNjNTMxNjVhYzM2MmI1ZGE1Mzk0
MTVkOWNkYjM4ZDljODJmNTU3Yi4uN2I5Y2ExNDkwMTcyODFmY2E0NzgzNjIyNjQ1OGI3NjBjNGM5
OGE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAt
MTcwLDYgKzE3MCw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAg
ICAgICAgJ1dlYkNvcmU6OkFuaW1hdGlvbicsCiAgICAgICAgICdXZWJDb3JlOjpFZGl0b3JDb21t
YW5kc0ZvcktleUV2ZW50JywKICAgICAgICAgJ1dlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5l
JywKKyAgICAgICAgJ1dlYkNvcmU6OkRyYWdnaW5nSW5mbycsCiAgICAgICAgICdXZWJDb3JlOjpG
bG9hdFBvaW50M0QnLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncycsCiAg
ICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZjQzMTQxMGE3MDI0YTNjMWJmODAz
NjQ3MDM2MTkyNTIxYTY1NjNlOS4uNTUyMWE5MjNmYzU5ZjE4ZmI4N2Q5MjVjYjFlYWQ0NDA4MzA3
OWE0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VE
ZXRhaWxzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnZ2luZ0luZm8uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgpAQCAtNjA0LDYgKzYwNSwyNCBAQCBib29s
IEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgVGV4dENoZQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50
Q29kZXI8RHJhZ2dpbmdJbmZvPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29u
c3QgRHJhZ2dpbmdJbmZvJiByZXN1bHQpCit7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShyZXN1
bHQub3BlcmF0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzdWx0Lm1vdXNlT3ZlckZpbGVJ
bnB1dCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2Vw
dGVkKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPERyYWdnaW5nSW5mbz46OmRlY29kZShBcmd1
bWVudERlY29kZXIqIGRlY29kZXIsIERyYWdnaW5nSW5mbyYgcmVzdWx0KQoreworICAgIGlmICgh
ZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tb3VzZU92ZXJGaWxlSW5wdXQp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShRVCkKIAogdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQzRD46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEZs
b2F0UG9pbnQzRCYgZmxvYXRQb2ludDNEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IGFjZTVkOWQ2MTU5NGJmYTA3MjRiZGY3YjAxNjcyYTAy
MzE1NGM4YjQuLjgwZGViMjIwZWQ4ZDZlNmM1NTg0ODRkNmIzZWY0Yjg4ZDdkMmNmOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
ICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogICAgIHN0cnVjdCBDb21wb3NpdGlvblVuZGVy
bGluZTsKKyAgICBzdHJ1Y3QgRHJhZ2dpbmdJbmZvOwogICAgIHN0cnVjdCBGaWxlQ2hvb3NlclNl
dHRpbmdzOwogICAgIHN0cnVjdCBHcmFtbWFyRGV0YWlsOwogICAgIHN0cnVjdCBNaW1lQ2xhc3NJ
bmZvOwpAQCAtMjEzLDYgKzIxNCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShB
cmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQmKTsKICAg
ICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6VGV4dENoZWNr
aW5nUmVzdWx0Jik7CiB9OworICAgIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxX
ZWJDb3JlOjpEcmFnZ2luZ0luZm8+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRF
bmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6RHJhZ2dpbmdJbmZvJik7CisgICAgc3RhdGljIGJvb2wg
ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkRyYWdnaW5nSW5mbyYpOworfTsKIAog
I2lmIFBMQVRGT1JNKFFUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3Jl
OjpGbG9hdFBvaW50M0Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQppbmRleCBkZWIxZDA2NzUxMzAzZDc4OTljM2MwMzhhZTJjYzJiNDBhZmI5MjQ0Li45ZjQ0
OTI5YTQxNjBlZmYwNjc2NTdhOGFhOWQ1MDM5ZTE1ZDQ2MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC02MSw2ICs2MSw3IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdnaW5nSW5m
by5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50
UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CkBAIC0xNTgwLDEzICsx
NTgxLDE1IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgcmV0dXJuIE5TRHJhZ09wZXJh
dGlvbkNvcHk7CiB9CiAKLS0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxO
U0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCistIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdV
cGRhdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KXNlbmRlcgogewotICAgIEludFBvaW50IGNsaWVu
dChbc2VsZiBjb252ZXJ0UG9pbnQ6W2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSBmcm9t
VmlldzpuaWxdKTsKLSAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9pbnQoW2RyYWdnaW5nSW5m
byBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwotICAgIERyYWdEYXRhIGRyYWdE
YXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PERyYWdPcGVyYXRp
b24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSksIFtzZWxmIGFw
cGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAgX2RhdGEtPl9wYWdlLT5kcmFnVXBk
YXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0p
OwotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYWdPcGVyYXRpb24oKTsKKyAgICBJbnRQb2lu
dCBjbGllbnQoW3NlbGYgY29udmVydFBvaW50OltzZW5kZXIgZHJhZ2dpbmdMb2NhdGlvbl0gZnJv
bVZpZXc6bmlsXSk7CisgICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtzZW5kZXIgZHJh
Z2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKKyAgICBEcmFnRGF0YSBkcmFnRGF0YShz
ZW5kZXIsIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbc2VuZGVy
IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdzOnNl
bmRlcl0pOworICAgIF9kYXRhLT5fcGFnZS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhLCBbW3NlbmRl
ciBkcmFnZ2luZ1Bhc3RlYm9hcmRdIG5hbWVdKTsKKyAgICAKKyAgICBXZWJDb3JlOjpEcmFnZ2lu
Z0luZm8gZHJhZ2dpbmdJbmZvID0gX2RhdGEtPl9wYWdlLT5kcmFnZ2luZ0luZm8oKTsKKyAgICBy
ZXR1cm4gZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbjsKIH0KIAogLSAodm9pZClkcmFnZ2luZ0V4aXRl
ZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggM2M2YzMyMzc2NDM2MDY1NGM2ODVlZjQ4NTQwMTA0
ZGY3MzgyYmIzYy4uMTJjODNmNzU1NWVkNzQ4ZTFiNDU3Y2Q0YWMzNzE2ZDdkMTRmNDA4NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxLDcgKzcxLDkg
QEAKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ2dpbmdJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0xODEsNyArMTgzLDcgQEAgV2ViUGFnZVByb3h5OjpX
ZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNz
UHJveHk+IHAKICAgICAsIG1faGFzU3BlbGxEb2N1bWVudFRhZyhmYWxzZSkKICAgICAsIG1fcGVu
ZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50KDApCiAgICAgLCBtX21haW5GcmFtZUhh
c0N1c3RvbVJlcHJlc2VudGF0aW9uKGZhbHNlKQotICAgICwgbV9jdXJyZW50RHJhZ09wZXJhdGlv
bihEcmFnT3BlcmF0aW9uTm9uZSkKKyAgICAsIG1fY3VycmVudERyYWdnaW5nSW5mbygpCiAgICAg
LCBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIoZmFsc2UpCiAgICAgLCBtX21haW5G
cmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5l
ZFRvTGVmdFNpZGUoZmFsc2UpCkBAIC04NDIsOSArODQ0LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29udHJvbGxlckFjdGlvbiBhY3Rpb24s
IERyYWcKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2ViQ29yZTo6RHJhZ2dpbmdJbmZvIGRy
YWdnaW5nSW5mbykKIHsKLSAgICBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8
RHJhZ09wZXJhdGlvbj4ocmVzdWx0T3BlcmF0aW9uKTsKKyAgICBtX2N1cnJlbnREcmFnZ2luZ0lu
Zm8gPSBkcmFnZ2luZ0luZm87CiB9CiAKICNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RL
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGRlNjdkNDY2Y2I3
NGIzOWZhYmEyNzYzMjBhZGU4YmFlMWJmNTFiMzIuLjIwYjdkZDJmZjY5NjE0NmEyYzE1ZDk1OTc4
ZjhjYTQxYzBkMGIxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTU0LDYgKzU0LDcgQEAKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNp
bmNsdWRlICJXZWJVSUNsaWVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdnaW5nSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0
VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CkBAIC00NjYsNyArNDY3LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZHJhZ0V4aXRlZChXZWJDb3JlOjpEcmFnRGF0YSosIGNvbnN0IFN0cmluZyYgZHJh
Z1N0b3JhZ2VOYW1lID0gU3RyaW5nKCkpOwogICAgIHZvaWQgcGVyZm9ybURyYWcoV2ViQ29yZTo6
RHJhZ0RhdGEqLCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdlTmFtZSwgY29uc3QgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlJik7CiAKLSAgICB2b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbih1aW50NjRfdCByZXN1bHRPcGVyYXRpb24pOworICAgIHZvaWQgZGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdnaW5nSW5mbyk7CiAgICAgdm9pZCBkcmFnRW5k
ZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJbWFn
ZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKTsKQEAgLTUwNCw4ICs1MDUsOCBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzVmFsaWQoKTsKICAgICAKLSAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uIGRy
YWdPcGVyYXRpb24oKSB7IHJldHVybiBtX2N1cnJlbnREcmFnT3BlcmF0aW9uOyB9Ci0gICAgdm9p
ZCByZXNldERyYWdPcGVyYXRpb24oKSB7IG1fY3VycmVudERyYWdPcGVyYXRpb24gPSBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uTm9uZTsgfQorICAgIFdlYkNvcmU6OkRyYWdnaW5nSW5mbyBkcmFnZ2lu
Z0luZm8oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnREcmFnZ2luZ0luZm87IH0KKyAgICB2b2lk
IHJlc2V0RHJhZ09wZXJhdGlvbigpIHsgbV9jdXJyZW50RHJhZ2dpbmdJbmZvID0gV2ViQ29yZTo6
RHJhZ2dpbmdJbmZvKCk7IH0KIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIApA
QCAtOTI2LDcgKzkyNyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wZW5kaW5nTGVhcm5P
cklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAKICAgICBib29sIG1fbWFpbkZyYW1lSGFzQ3VzdG9t
UmVwcmVzZW50YXRpb247Ci0gICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBtX2N1cnJlbnREcmFn
T3BlcmF0aW9uOworICAgIFdlYkNvcmU6OkRyYWdnaW5nSW5mbyBtX2N1cnJlbnREcmFnZ2luZ0lu
Zm87CiAKICAgICBTdHJpbmcgbV9wZW5kaW5nQVBJUmVxdWVzdFVSTDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODJiOTYx
Y2E2MWE2MThlZmUxOTk3ZDdhYWVkMTM2MWM1ZmYyMjQ2Ny4uM2ZhMzcwZTAyZWY2OGZjNzViZTVi
YTdlZmVmYTU2ZGE5NjEyZGEwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMDUsNyArMjA1LDcgQEAgbWVzc2FnZXMgLT4g
V2ViUGFnZVByb3h5IHsKICAgICBJZ25vcmVXb3JkKFdURjo6U3RyaW5nIHdvcmQpOwogCiAgICAg
IyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCi0gICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikKKyAgICBEaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24oV2ViQ29yZTo6RHJhZ2dpbmdJbmZvIGRyYWdnaW5nSW5mbykKICNpZiBQTEFURk9S
TShNQUMpCiAgICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9u
LCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGRyYWdJbWFnZSwgYm9vbCBsaW5rRHJh
ZykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGMxZGRkOGRmMTg0ZWE0NGJlYWQ4ZjNiZjFjZjgzMzljYzczY2U0OTQuLjQ2NmM2
OTA4N2I5YWFiMTJkYzZjYWRiMjEzMzcyMjNmZmYyM2YxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNs
dWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9EcmFnZ2luZ0luZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFu
ZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Gb3JtU3RhdGUuaD4KQEAgLTE4MDksNyArMTgxMCw3IEBAIGJvb2wgV2ViUGFnZTo6
aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogdm9pZCBXZWJQ
YWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3Jl
OjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRp
b24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaywgY29uc3QgV2ViQ29yZTo6
RHJhZ0RhdGFNYXAmIGRhdGFNYXAsIHVpbnQzMl90IGZsYWdzKQogewogICAgIGlmICghbV9wYWdl
KSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250
cm9sbGVyOjpEcmFnZ2luZ0luZm8oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4
NDAsNyArMTg0MSw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9u
KHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpCiB2b2lkIFdlYlBhZ2U6OnBl
cmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdE
YXRhIGRyYWdEYXRhKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVy
YXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdnaW5nSW5mbygpKSk7CiAjaWYgUExBVEZPUk0o
UVQpCiAgICAgICAgIFFNaW1lRGF0YSogZGF0YSA9IGNvbnN0X2Nhc3Q8UU1pbWVEYXRhKj4oZHJh
Z0RhdGEucGxhdGZvcm1EYXRhKCkpOwogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTg4NCw3ICsx
ODg1LDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0
X3QgYWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSBkcmEKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURy
YWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xp
ZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBk
cmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1l
LCB1aW50MzJfdCBmbGFncywgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94
RXh0ZW5zaW9uSGFuZGxlKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdP
cGVyYXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdnaW5nSW5mbygpKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113247</attachid>
            <date>2011-11-01 16:00:53 -0700</date>
            <delta_ts>2011-11-01 16:36:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111101160125.patch</filename>
            <type>text/plain</type>
            <size>34362</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1ODM4MjlkMDY5ZDNmNDg1
ZTBlMzY4MGVmMzE5Yzk4YjBhZTFjZTYyLi5hMGJkMzJiYjg2MDEzZmE1YjVjZDkzMjY2YzY1NTdj
MmIwMTU0ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzggQEAKIDIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJZiB0aGUgbW91c2UgaXMgb3ZlciBhCisgICAgICAgIGZpbGUg
aW5wdXQgZWxlbWVudCwgd2UgZG8gc29tZSBhZGRpdGlvbmFsIHByb2Nlc3NpbmcgdG8gc2VlIGhv
dyBtYW55CisgICAgICAgIGZpbGVzIHRoZSBlbGVtZW50IGNvdWxkIGFjY2VwdCAoaWYgYW55KS4g
V2UgdHJhY2sgdGhhdCBudW1iZXIgYW5kIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92
ZXIgYSBmaWxlIGlucHV0IGVsZW1lbnQgaW4gdGhlIERyYWdnaW5nSW5mbyBzdHJ1Y3QuCisgICAg
ICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcpOgorICAgICAgICAqIHBh
Z2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBwYWdlL0RyYWdnaW5nSW5mby5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkRyYWdnaW5nSW5mbzo6RHJhZ2dpbmdJbmZvKTogVGhpcyBu
ZXcgc3RydWN0IGNvbnRhaW5zIHRoZQorICAgICAgICBkcmFnIG9wZXJhdGlvbiwgd2hldGhlciB0
aGUgbW91c2UgaXMgY3VycmVudGx5IG92ZXIgYSBmaWxlIGlucHV0IGVsZW1lbnQsCisgICAgICAg
IGFuZCBob3cgbWFueSBmaWxlcyBjYW4gYmUgZHJvcHBlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9E
cmFnRGF0YS5oOiBSZXBsYWNlIGNvbnRhaW5zRmlsZXMoKSB3aXRoIG51bWJlck9mRmlsZXMoKQor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0RhdGE6OmFzVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpjb250YWluc0Nv
bXBhdGlibGVDb250ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjphc0ZyYWdtZW50
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisKKzIwMTEtMTEtMDEgIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgorCiAgICAgICAgIDxpbnB1dD1maWxlIG11bHRpcGxlPiBkZWZhdWx0
IHRleHQgdXNlcyBzaW5ndWxhciBpbnN0ZWFkIG9mIHBsdXJhbAogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMTkKICAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzEwMzc5MDIxPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGQxOTVjMmQ3MjYwNmQwZWFjOWFkN2U0
NzQxZDI3NjA2MDY4NDcxYWQuLmE4ZmM2MmJhMTJhYWJjZjBhNzVjZTIwYmVhOGJkZmY2YWFjZDAw
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMS0wMSAgSm9uIExl
ZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRv
IHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtX
ZWJWaWV3IGRyYWdnaW5nRW50ZXJlZDpdKTogRHJhZ09wZXJhdGlvbiBpcyBub3cgaW5zaWRlIHRo
ZSBEcmFnZ2luZ0luZm8gc3RydWN0LgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nVXBkYXRl
ZDpdKToKKwogMjAxMS0xMS0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ3Jhc2ggaW4gUERGIGNvZGUgd2hlbiBzY3JpcHQgaGFzIGlsbGVnYWwgVVRGLTggb3Ig
VVRGLTE2IHNlcXVlbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA0YjhiZjE1MTVmNWY2NTg0ZWRhZDgxZWI1
YTlkYjYzODRmMjVlZjkuLjc0ZmViZGIzZDkwOTg3ZTg4NTJiNzMxNGNlMWJmNzg4YzEzMzVmMDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMS0wMSAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUg
bW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFdlIG5vdyBwYXNzIHRoZSBEcmFnZ2luZ0luZm8gc3RydWN0IGZyb20gdGhl
IFdlYiB0byB0aGUgVUkgcHJvY2VzcywgaW5zdGVhZCBvZiB0aGUKKyAgICAgICAgRHJhZ09wZXJh
dGlvbiBlbnVtLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5OgorICAg
ICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoQ29yZUlQ
Qzo6OjplbmNvZGUpOgorICAgICAgICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNo
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBkcmFnZ2luZ1VwZGF0ZWQ6XSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6V2ViUGFnZVByb3h5KTogV2Ugbm93IGNhY2hlIHRoZSBsYXN0IGtub3duIERyYWdn
aW5nSW5mbyBzdGF0ZQorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRyYWdnaW5nSW5mbyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXREcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURy
YWdDb250cm9sbGVyQWN0aW9uKToKKwogMjAxMS0xMS0wMSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpv
Y2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gTWVyZ2UgY29tbW9uIGRl
c2t0b3AgYW5kIHRvdWNoIHZpZXcgQVBJcyB1bmRlciBhIGJhc2UgY2xhc3MuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmYyODE5
NWM3ZDU0ODQ5OTI5YmFiZGYzNGNjYjkwM2YzNGE3NTc5Yy4uYmNkYTI2YTVjYWYxMGIwMjZlYjE4
OWI3ZDE1YjFhOTZkMTVmNWI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNzc4LDYgKzc3OCw3IEBACiAJCTMxNjExRTYxMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUUwRTFDNEUxNDAwRjZB
NTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggKi87IH07CiAJCTMxNjExRTYyMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTVGMEUxQzRFMTQwMEY2
QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSAqLzsgfTsKIAkJMzE2MTFFNjMw
RTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTYwMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi87
IH07CisJCTMxNjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnZ2luZ0luZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjkzNzlBMTQ2MDlDNUIw
MEMwMTM2MiAvKiBEcmFnZ2luZ0luZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmNwcCAqLzsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
aCAqLzsgfTsKIAkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJh
bWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNw
cCAqLzsgfTsKQEAgLTc4NTUsNiArNzg1Niw3IEBACiAJCTMxNjExRTVFMEUxQzRFMTQwMEY2QTU3
OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkzMTYxMUU1RjBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0Q1NT
VHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkz
MTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ2dpbmdJbmZvLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdnaW5nSW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkzMTZGRTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTA2RTBF
NkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTU0MzcsNiArMTU0MzksNyBAQAogCQkJCUE3Q0E1OTVDMEIyN0JEOUUwMEZBMDIxRCAv
KiBEcmFnQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJQTdDQTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8q
IERyYWdDb250cm9sbGVyLmggKi8sCiAJCQkJODFGNjVGRjUxMzc4OEZBQTAwRkY2RjJEIC8qIERy
YWdTdGF0ZS5oICovLAorCQkJCTMxNjkzNzlBMTQ2MDlDNUIwMEMwMTM2MiAvKiBEcmFnZ2luZ0lu
Zm8uaCAqLywKIAkJCQkxQUYzMjY3NzBENzhCOTQ0MDA2OEYwQzQgLyogRWRpdG9yQ2xpZW50Lmgg
Ki8sCiAJCQkJOTNDMDlBODAwQjA2NEYwMDAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5jcHAgKi8s
CiAJCQkJOTNDMDlBNTIwQjA2NERCMzAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5oICovLApAQCAt
MjQ1NDEsNiArMjQ1NDQsNyBAQAogCQkJCTlCM0E4ODcyMTQ1NjMyRjkwMDNBRThGNSAvKiBET01E
T01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2MkY1MkUxNDU4OThE
ODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1ZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERyYWdnaW5nSW5mby5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4
IGYwOTk2OTBiYjBkOGYyNTEzMDljYzk1MjMxMzZkNzYyM2ZhNDg1ZjUuLmI3NzgwMTE4N2IzODIy
ZDc3MWQyZjE4ZWQxNDM5N2MzYmI4YmE0MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNp
bmNsdWRlICJEcmFnQ2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJE
cmFnZ2luZ0luZm8uaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGll
bnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCkBAIC0xNjIsNyArMTYzLDcgQEAgdm9pZCBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VuZGVkKCkKICAgICBtX2NsaWVudC0+ZHJhZ0VuZGVkKCk7CiB9CiAK
LURyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkKERyYWdEYXRhKiBkcmFn
RGF0YSkKK0RyYWdnaW5nSW5mbyBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJhZ0RhdGEq
IGRyYWdEYXRhKQogewogICAgIHJldHVybiBkcmFnRW50ZXJlZE9yVXBkYXRlZChkcmFnRGF0YSk7
CiB9CkBAIC0xODIsNyArMTgzLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZChE
cmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKTsKIH0KIAot
RHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdE
YXRhKQorRHJhZ2dpbmdJbmZvIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSog
ZHJhZ0RhdGEpCiB7CiAgICAgcmV0dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsK
IH0KQEAgLTIzMiw3ICsyMzMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjptb3VzZU1vdmVkSW50
b0RvY3VtZW50KERvY3VtZW50KiBuZXdEb2N1bWVudCkKICAgICBtX2RvY3VtZW50VW5kZXJNb3Vz
ZSA9IG5ld0RvY3VtZW50OwogfQogCi1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFn
RW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCitEcmFnZ2luZ0luZm8gRHJhZ0Nv
bnRyb2xsZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAg
ICBBU1NFUlQoZHJhZ0RhdGEpOwogICAgIEFTU0VSVChtX3BhZ2UtPm1haW5GcmFtZSgpKTsgLy8g
SXQgaXMgbm90IHBvc3NpYmxlIGluIE1hYyBXZWJLaXQgdG8gaGF2ZSBhIFBhZ2Ugd2l0aG91dCBh
IG1haW5GcmFtZSgpCkBAIC0yNDEsMTQgKzI0MiwxNCBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250
cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgbV9k
cmFnRGVzdGluYXRpb25BY3Rpb24gPSBtX2NsaWVudC0+YWN0aW9uTWFza0ZvckRyYWcoZHJhZ0Rh
dGEpOwogICAgIGlmIChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9PSBEcmFnRGVzdGluYXRpb25B
Y3Rpb25Ob25lKSB7CiAgICAgICAgIGNhbmNlbERyYWcoKTsgLy8gRklYTUU6IFdoeSBub3QgY2Fs
bCBtb3VzZU1vdmVkSW50b0RvY3VtZW50KDApPwotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlv
bk5vbmU7CisgICAgICAgIHJldHVybiBEcmFnZ2luZ0luZm8oKTsKICAgICB9CiAKLSAgICBEcmFn
T3BlcmF0aW9uIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwotICAgIGJvb2wgaGFuZGxl
ZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uLCBvcGVyYXRpb24pOworICAgIERyYWdnaW5nSW5mbyBkcmFnZ2luZ0luZm87CisgICAg
Ym9vbCBoYW5kbGVkQnlEb2N1bWVudCA9IHRyeURvY3VtZW50RHJhZyhkcmFnRGF0YSwgbV9kcmFn
RGVzdGluYXRpb25BY3Rpb24sIGRyYWdnaW5nSW5mbyk7CiAgICAgaWYgKCFoYW5kbGVkQnlEb2N1
bWVudCAmJiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25M
b2FkKSkKLSAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEpOwotICAgIHJl
dHVybiBvcGVyYXRpb247CisgICAgICAgIGRyYWdnaW5nSW5mby5vcGVyYXRpb24gPSBvcGVyYXRp
b25Gb3JMb2FkKGRyYWdEYXRhKTsKKyAgICByZXR1cm4gZHJhZ2dpbmdJbmZvOwogfQogCiBzdGF0
aWMgSFRNTElucHV0RWxlbWVudCogYXNGaWxlSW5wdXQoTm9kZSogbm9kZSkKQEAgLTI4NCw3ICsy
ODUsNyBAQCBzdGF0aWMgRWxlbWVudCogZWxlbWVudFVuZGVyTW91c2UoRG9jdW1lbnQqIGRvY3Vt
ZW50VW5kZXJNb3VzZSwgY29uc3QgSW50UG9pbnQmCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKTsKIH0KIAotYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERy
YWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdP
cGVyYXRpb24mIG9wZXJhdGlvbikKK2Jvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJh
ZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrLCBE
cmFnZ2luZ0luZm8mIGRyYWdnaW5nSW5mbykKIHsKICAgICBBU1NFUlQoZHJhZ0RhdGEpOwogCkBA
IC0yOTYsNyArMjk3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERy
YWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKIAogICAgIG1faXNIYW5k
bGluZ0RyYWcgPSBmYWxzZTsKICAgICBpZiAoYWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFj
dGlvbkRIVE1MKSB7Ci0gICAgICAgIG1faXNIYW5kbGluZ0RyYWcgPSB0cnlESFRNTERyYWcoZHJh
Z0RhdGEsIG9wZXJhdGlvbik7CisgICAgICAgIG1faXNIYW5kbGluZ0RyYWcgPSB0cnlESFRNTERy
YWcoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5vcGVyYXRpb24pOwogICAgICAgICAvLyBEbyBub3Qg
Y29udGludWUgaWYgbV9kb2N1bWVudFVuZGVyTW91c2UgaGFzIGJlZW4gcmVzZXQgYnkgdHJ5REhU
TUxEcmFnLgogICAgICAgICAvLyB0cnlESFRNTERyYWcgZmlyZXMgZHJhZ2VudGVyIGV2ZW50LiBU
aGUgZXZlbnQgbGlzdGVuZXIgdGhhdCBsaXN0ZW5zCiAgICAgICAgIC8vIHRvIHRoaXMgZXZlbnQg
bWF5IGNyZWF0ZSBhIG5lc3RlZCBtZXNzYWdlIGxvb3AgKG9wZW4gYSBtb2RhbCBkaWFsb2cpLApA
QCAtMzE3LDcgKzMxOCw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhE
cmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0gZWxzZSBpZiAoKGFjdGlvbk1hc2sgJiBEcmFnRGVzdGluYXRpb25BY3Rp
b25FZGl0KSAmJiBjYW5Qcm9jZXNzRHJhZyhkcmFnRGF0YSkpIHsKICAgICAgICAgaWYgKGRyYWdE
YXRhLT5jb250YWluc0NvbG9yKCkpIHsKLSAgICAgICAgICAgIG9wZXJhdGlvbiA9IERyYWdPcGVy
YXRpb25HZW5lcmljOworICAgICAgICAgICAgZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbiA9IERyYWdP
cGVyYXRpb25HZW5lcmljOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApA
QCAtMzI1LDExICszMjYsMzIgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFn
KERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICAgICAgRWxl
bWVudCogZWxlbWVudCA9IGVsZW1lbnRVbmRlck1vdXNlKG1fZG9jdW1lbnRVbmRlck1vdXNlLmdl
dCgpLCBwb2ludCk7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgaWYgKCFhc0ZpbGVJbnB1dChlbGVtZW50KSkKKyAgICAgICAgCisgICAg
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnRBc0ZpbGVJbnB1dCA9IGFzRmlsZUlucHV0KGVs
ZW1lbnQpOworICAgICAgICBpZiAoIWVsZW1lbnRBc0ZpbGVJbnB1dCkKICAgICAgICAgICAgIG1f
cGFnZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5zZXRDYXJldFBvc2l0aW9uKG1fZG9jdW1lbnRV
bmRlck1vdXNlLT5mcmFtZSgpLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChwb2ludCkpOwogCiAg
ICAgICAgIEZyYW1lKiBpbm5lckZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsK
LSAgICAgICAgb3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwg
ZHJhZ0RhdGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAg
ICAgZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbiA9IGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0
aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25Nb3ZlIDogRHJhZ09wZXJhdGlvbkNvcHk7
CisgICAgICAgIGRyYWdnaW5nSW5mby5tb3VzZU92ZXJGaWxlSW5wdXQgPSBlbGVtZW50QXNGaWxl
SW5wdXQ7CisgICAgICAgIGRyYWdnaW5nSW5mby5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0g
MDsKKworICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzID0gZHJhZ0RhdGEtPm51bWJlck9m
RmlsZXMoKTsKKyAgICAgICAgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dCkgeworICAgICAgICAgICAg
aWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+ZGlzYWJsZWQoKSkKKyAgICAgICAgICAgICAgICBkcmFn
Z2luZ0luZm8ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IDA7CisgICAgICAgICAgICBlbHNl
IGlmIChlbGVtZW50QXNGaWxlSW5wdXQtPm11bHRpcGxlKCkpCisgICAgICAgICAgICAgICAgZHJh
Z2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSBudW1iZXJPZkZpbGVzOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGRyYWdnaW5nSW5mby5udW1iZXJPZkl0ZW1z
VG9CZUFjY2VwdGVkID0gMTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKCFkcmFnZ2lu
Z0luZm8ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkKKyAgICAgICAgICAgICAgICBkcmFnZ2lu
Z0luZm8ub3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7CisgICAgICAgIH0gZWxzZQorICAg
ICAgICAgICAgLy8gV2UgYXJlIG5vdCBvdmVyIGEgZmlsZSBpbnB1dCBlbGVtZW50LiBUaGUgZHJh
Z2dlZCBpdGVtKHMpIHdpbGwgb25seQorICAgICAgICAgICAgLy8gYmUgbG9hZGVkIGludG8gdGhl
IHZpZXcgdGhlIG51bWJlciBvZiBkcmFnZ2VkIGl0ZW1zIGlzIDEuCisgICAgICAgICAgICBkcmFn
Z2luZ0luZm8ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IG51bWJlck9mRmlsZXMgIT0gMSA/
IDAgOiAxOworICAgICAgICAKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIC8vIElm
IHdlJ3JlIG5vdCBvdmVyIGFuIGVkaXRhYmxlIHJlZ2lvbiwgbWFrZSBzdXJlIHdlJ3JlIGNsZWFy
aW5nIGFueSBwcmlvciBkcmFnIGN1cnNvci4KQEAgLTQxNCw3ICs0MzYsNyBAQCBib29sIERyYWdD
b250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICAgICAg
aWYgKGZpbGVJbnB1dC0+ZGlzYWJsZWQoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICBpZiAoIWRyYWdEYXRhLT5jb250YWluc0ZpbGVzKCkpCisgICAgICAgIGlmICghZHJh
Z0RhdGEtPm51bWJlck9mRmlsZXMoKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICBWZWN0b3I8U3RyaW5nPiBmaWxlbmFtZXM7CkBAIC00OTEsNyArNTEzLDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6Y2FuUHJvY2Vzc0RyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIGlm
ICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBpZiAoZHJhZ0RhdGEtPmNvbnRhaW5zRmlsZXMoKSAmJiBhc0ZpbGVJbnB1dChyZXN1bHQu
aW5uZXJOb25TaGFyZWROb2RlKCkpKQorICAgIGlmIChkcmFnRGF0YS0+bnVtYmVyT2ZGaWxlcygp
ID4gMCAmJiBhc0ZpbGVJbnB1dChyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5y
ZW5kZXJlcklzRWRpdGFibGUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRl
eCAyNjFhOGQ1M2Y3MzY1OGIwNzFmMjEwNTZhZTU4YjI0YjFiYjQ1OTY5Li5jMDIxNDk2M2ZmYTdk
OGY5YzI4ZTc1NTdhYmE5Y2U1OGQ3ZTU3ODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oCkBAIC0zOCw2ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBE
cmFnQ2xpZW50OwogICAgIGNsYXNzIERyYWdEYXRhOwogICAgIHN0cnVjdCBEcmFnU3RhdGU7Cisg
ICAgc3RydWN0IERyYWdnaW5nSW5mbzsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEZy
YW1lOwogICAgIGNsYXNzIEZyYW1lU2VsZWN0aW9uOwpAQCAtNTUsOSArNTYsOSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIH5EcmFnQ29udHJvbGxlcigpOwogICAgICAgICBEcmFnQ2xp
ZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogCi0gICAgICAgIERyYWdP
cGVyYXRpb24gZHJhZ0VudGVyZWQoRHJhZ0RhdGEqKTsKKyAgICAgICAgRHJhZ2dpbmdJbmZvIGRy
YWdFbnRlcmVkKERyYWdEYXRhKik7CiAgICAgICAgIHZvaWQgZHJhZ0V4aXRlZChEcmFnRGF0YSop
OwotICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdVcGRhdGVkKERyYWdEYXRhKik7CisgICAgICAg
IERyYWdnaW5nSW5mbyBkcmFnVXBkYXRlZChEcmFnRGF0YSopOwogICAgICAgICBib29sIHBlcmZv
cm1EcmFnKERyYWdEYXRhKik7CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogSXQgc2hvdWxk
IGJlIHBvc3NpYmxlIHRvIHJlbW92ZSBhIG51bWJlciBvZiB0aGVzZSBhY2Nlc3NvcnMgb25jZSBh
bGwKQEAgLTk0LDkgKzk1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGRp
c3BhdGNoVGV4dElucHV0RXZlbnRGb3IoRnJhbWUqLCBEcmFnRGF0YSopOwogICAgICAgICBib29s
IGNhblByb2Nlc3NEcmFnKERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgY29uY2x1ZGVFZGl0RHJh
ZyhEcmFnRGF0YSopOwotICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdFbnRlcmVkT3JVcGRhdGVk
KERyYWdEYXRhKik7CisgICAgICAgIERyYWdnaW5nSW5mbyBkcmFnRW50ZXJlZE9yVXBkYXRlZChE
cmFnRGF0YSopOwogICAgICAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbkZvckxvYWQoRHJhZ0Rh
dGEqKTsKLSAgICAgICAgYm9vbCB0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqLCBEcmFnRGVzdGlu
YXRpb25BY3Rpb24sIERyYWdPcGVyYXRpb24mKTsKKyAgICAgICAgYm9vbCB0cnlEb2N1bWVudERy
YWcoRHJhZ0RhdGEqLCBEcmFnRGVzdGluYXRpb25BY3Rpb24sIERyYWdnaW5nSW5mbyYpOwogICAg
ICAgICBib29sIHRyeURIVE1MRHJhZyhEcmFnRGF0YSosIERyYWdPcGVyYXRpb24mKTsKICAgICAg
ICAgRHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uKERyYWdEYXRhKik7CiAgICAgICAgIHZvaWQg
Y2FuY2VsRHJhZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnZ2luZ0lu
Zm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ2dpbmdJbmZvLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkz
Yjc5M2NiZGU4MWMzYTBmNTM0NWEzMzQzMjIzNGIzYTBhNTY2NAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ2dpbmdJbmZvLmgKQEAgLTAsMCArMSw0NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpZm5kZWYgRHJhZ2dpbmdJbmZvX2gKKyNkZWZpbmUgRHJhZ2dpbmdJbmZvX2gKKwor
I2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAKK3N0
cnVjdCBEcmFnZ2luZ0luZm8geworICAgIERyYWdnaW5nSW5mbygpCisgICAgOiBvcGVyYXRpb24o
RHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtb3VzZU92ZXJGaWxlSW5wdXQoZmFsc2UpCisgICAg
LCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKDApIHsgfQorICAgIERyYWdPcGVyYXRpb24gb3Bl
cmF0aW9uOworICAgIGJvb2wgbW91c2VPdmVyRmlsZUlucHV0OworICAgIHVuc2lnbmVkIG51bWJl
ck9mSXRlbXNUb0JlQWNjZXB0ZWQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdEYXRhLmgKaW5kZXggYWZhMjE5ZjNiNzIyM2JkZGQ1OGMyN2VmNjcyZDhjNmNhNzBjZjFi
Yy4uZWM2NmZjOTk2OTIwODU5MDc1YWEzYTkyN2I2NDkyN2Y3ZjFkNmM0YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9EcmFnRGF0YS5oCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkgY29uc3Q7CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2UoKSBj
b25zdDsKICAgICBib29sIGNvbnRhaW5zQ29sb3IoKSBjb25zdDsKLSAgICBib29sIGNvbnRhaW5z
RmlsZXMoKSBjb25zdDsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCgpIHsgcmV0dXJuIG1f
cGFzdGVib2FyZC5nZXQoKTsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCmluZGV4IDA5ZGE4YTRhNDBkNjcy
ZmY0Mjg2NWY4Yzg5OWM2NjY3MjVjNGY1ZTIuLjYyM2Q3ZmNlNmFjMThkMzgzN2ZiYjBiYjRhN2Fi
MmZkM2I5OWRiMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdEYXRhQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCkBAIC02MiwxNSArNjIsMTUgQEAgU3RyaW5nIERyYWdE
YXRhOjphc1VSTChGcmFtZSosIEZpbGVuYW1lQ29udmVyc2lvblBvbGljeSBmaWxlbmFtZVBvbGlj
eSwgU3RyaW5nKgogICAgICAgICB1cmwgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmdldERhdGEobWlt
ZVR5cGVVUkwsIGlnbm9yZWRTdWNjZXNzKTsKICAgICAgICAgaWYgKHRpdGxlKQogICAgICAgICAg
ICAgKnRpdGxlID0gbV9wbGF0Zm9ybURyYWdEYXRhLT51cmxUaXRsZSgpOwotICAgIH0gZWxzZSBp
ZiAoZmlsZW5hbWVQb2xpY3kgPT0gQ29udmVydEZpbGVuYW1lcyAmJiBjb250YWluc0ZpbGVzKCkp
IHsKKyAgICB9IGVsc2UgaWYgKGZpbGVuYW1lUG9saWN5ID09IENvbnZlcnRGaWxlbmFtZXMgJiYg
bnVtYmVyT2ZGaWxlcygpKSB7CiAgICAgICAgIHVybCA9IFBsYXRmb3JtU3VwcG9ydDo6ZmlsZVBh
dGhUb1VSTChQbGF0Zm9ybVN1cHBvcnQ6OmdldEFic29sdXRlUGF0aChtX3BsYXRmb3JtRHJhZ0Rh
dGEtPmZpbGVuYW1lcygpWzBdKSk7CiAgICAgfQogICAgIHJldHVybiB1cmw7CiB9CiAKLWJvb2wg
RHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJl
ck9mRmlsZXMoKSBjb25zdAogewotICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmNvbnRh
aW5zRmlsZW5hbWVzKCk7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVz
KCkuc2l6ZSgpOwogfQogCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5n
PiYgcmVzdWx0KSBjb25zdApAQCAtMTEzLDcgKzExMyw3IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zQ29tcGF0aWJsZUNvbnRlbnQoKSBjb25zdAogICAgICAgICB8fCBjb250YWluc1VSTCgwKQog
ICAgICAgICB8fCBjb250YWluc0hUTUwobV9wbGF0Zm9ybURyYWdEYXRhKQogICAgICAgICB8fCBj
b250YWluc0NvbG9yKCkKLSAgICAgICAgfHwgY29udGFpbnNGaWxlcygpOworICAgICAgICB8fCBu
dW1iZXJPZkZpbGVzKCk7CiB9CiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gRHJhZ0Rh
dGE6OmFzRnJhZ21lbnQoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPFJhbmdlPiwgYm9vbCwgYm9v
bCYpIGNvbnN0CkBAIC0xMjgsNyArMTI4LDcgQEAgUGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50
PiBEcmFnRGF0YTo6YXNGcmFnbWVudChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8UmFuZ2UKICAg
ICAgKiAqIFBJQ1QKICAgICAgKi8KIAotICAgIGlmIChjb250YWluc0ZpbGVzKCkpIHsKKyAgICBp
ZiAobnVtYmVyT2ZGaWxlcygpKSB7CiAgICAgICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4g
IFNob3VsZCBiZSBwcmV0dHkgc2ltcGxlIHRvIG1ha2Ugc29tZSBIVE1MCiAgICAgICAgIC8vIGFu
ZCBjYWxsIGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1cC4KICAgICAgICAgLy9pZiAoUmVmUHRyPERv
Y3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKGRvYywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQppbmRleCAyY2E5NDNk
ZTExYjBkOWE4MGNhMzc1OGU3NDMxM2IyYTVlOTE5OWMyLi41ZDZjMDdjODc4OTAxZjVhYzAxOTBj
OTM5YmM1MDI4ZDllMDE1MDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvRHJhZ0RhdGFNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdE
YXRhTWFjLm1tCkBAIC03MSw5ICs3MSwxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0NvbG9y
KCkgY29uc3QKICAgICByZXR1cm4gW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNdIGNvbnRhaW5z
T2JqZWN0Ok5TQ29sb3JQYm9hcmRUeXBlXTsKIH0KIAotYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNG
aWxlcygpIGNvbnN0Cit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdldCgpIHR5cGVzXSBjb250YWluc09iamVjdDpO
U0ZpbGVuYW1lc1Bib2FyZFR5cGVdOworICAgIGlmICghW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlw
ZXNdIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAgICAgIHJldHVy
biAwOworICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0eUxpc3RGb3JUeXBl
Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0gY291bnRdOwogfQogCiB2b2lkIERyYWdEYXRhOjphc0Zp
bGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCmluZGV4IDE5Zjc0NzY5ZGU5YzM2ODkxZWYwYTRmODhhMTU3MTc1Y2NhMTky
MmIuLmE1ZTczZDc4MzlhNTcxZmQ0MzIyZDg0NjdiODQ3YzM5Y2MxODBhNmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTExNyw2ICsxMTcsNyBAQAogI2ltcG9ydCA8V2Vi
Q29yZS9Eb2N1bWVudExvYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EcmFnZ2lu
Z0luZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0V2
ZW50SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FeGNlcHRpb25IYW5kbGVycy5oPgpAQCAt
Mzg2NCw3ICszODY1LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3Qgd2luZG93RGlkQ2hhbmdl
UmVzb2x1dGlvbk5vdGlmaWNhdGlvbiA9IEAiTlNXaW5kb3dEaWRDaGEKICAgICBJbnRQb2ludCBj
bGllbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSk7CiAgICAgSW50UG9pbnQgZ2xv
YmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdp
bmRvd10pKTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xv
YmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291
cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdzOmRyYWdnaW5nSW5mb10p
OwotICAgIHJldHVybiBjb3JlKHNlbGYpLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgm
ZHJhZ0RhdGEpOworICAgIHJldHVybiBjb3JlKHNlbGYpLT5kcmFnQ29udHJvbGxlcigpLT5kcmFn
RW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbjsKIH0KIAogLSAoTlNEcmFnT3BlcmF0aW9uKWRy
YWdnaW5nVXBkYXRlZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KQEAgLTM4NzYs
NyArMzg3Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJlc29s
dXRpb25Ob3RpZmljYXRpb24gPSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xpZW50
KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2JhbChn
bG9iYWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3dd
KSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwg
c3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9w
ZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKLSAg
ICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKTsK
KyAgICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRh
KS5vcGVyYXRpb247CiB9CiAKIC0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6KGlkIDxOU0RyYWdnaW5n
SW5mbz4pZHJhZ2dpbmdJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dl
YmtpdDIvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKaW5kZXggNmNjNTMxNjVhYzM2MmI1ZGE1Mzk0MTVkOWNkYjM4ZDljODJmNTU3Yi4uN2I5
Y2ExNDkwMTcyODFmY2E0NzgzNjIyNjQ1OGI3NjBjNGM5OGE3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQpAQCAtMTcwLDYgKzE3MCw3IEBAIGRlZiBzdHJ1
Y3Rfb3JfY2xhc3MobmFtZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkFuaW1hdGlv
bicsCiAgICAgICAgICdXZWJDb3JlOjpFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50JywKICAgICAg
ICAgJ1dlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJywKKyAgICAgICAgJ1dlYkNvcmU6OkRy
YWdnaW5nSW5mbycsCiAgICAgICAgICdXZWJDb3JlOjpGbG9hdFBvaW50M0QnLAogICAgICAgICAn
V2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncycsCiAgICAgICAgICdXZWJDb3JlOjpHcmFtbWFy
RGV0YWlsJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKaW5kZXggZjQzMTQxMGE3MDI0YTNjMWJmODAzNjQ3MDM2MTkyNTIxYTY1NjNlOS4uNTUy
MWE5MjNmYzU5ZjE4ZmI4N2Q5MjVjYjFlYWQ0NDA4MzA3OWE0OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNv
ci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VEZXRhaWxzLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9EcmFnZ2luZ0luZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29u
dGV4dC5oPgpAQCAtNjA0LDYgKzYwNSwyNCBAQCBib29sIEFyZ3VtZW50Q29kZXI8VGV4dENoZWNr
aW5nUmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgVGV4dENoZQogICAg
IHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29kZXI8RHJhZ2dpbmdJbmZvPjo6ZW5j
b2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgRHJhZ2dpbmdJbmZvJiByZXN1bHQp
Cit7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKTsKKyAgICBlbmNv
ZGVyLT5lbmNvZGUocmVzdWx0Lm1vdXNlT3ZlckZpbGVJbnB1dCk7CisgICAgZW5jb2Rlci0+ZW5j
b2RlKHJlc3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKTsKK30KKworYm9vbCBBcmd1bWVu
dENvZGVyPERyYWdnaW5nSW5mbz46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERy
YWdnaW5nSW5mbyYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1
bHQub3BlcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlKHJlc3VsdC5tb3VzZU92ZXJGaWxlSW5wdXQpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0
ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKICNpZiBQ
TEFURk9STShRVCkKIAogdm9pZCBBcmd1bWVudENvZGVyPEZsb2F0UG9pbnQzRD46OmVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEZsb2F0UG9pbnQzRCYgZmxvYXRQb2ludDNE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IGFjZTVkOWQ2MTU5NGJmYTA3MjRiZGY3YjAxNjcyYTAyMzE1NGM4YjQuLjgwZGViMjIwZWQ4ZDZl
NmM1NTg0ODRkNmIzZWY0Yjg4ZDdkMmNmOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAgICBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwogICAgIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKKyAgICBzdHJ1Y3QgRHJhZ2dp
bmdJbmZvOwogICAgIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwogICAgIHN0cnVjdCBHcmFt
bWFyRGV0YWlsOwogICAgIHN0cnVjdCBNaW1lQ2xhc3NJbmZvOwpAQCAtMjEzLDYgKzIxNCwxMSBA
QCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdD4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBX
ZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CiB9OworICAgIAor
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnZ2luZ0luZm8+IHsK
KyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6
RHJhZ2dpbmdJbmZvJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2Rlcios
IFdlYkNvcmU6OkRyYWdnaW5nSW5mbyYpOworfTsKIAogI2lmIFBMQVRGT1JNKFFUKQogdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBkZWIxZDA2NzUxMzAz
ZDc4OTljM2MwMzhhZTJjYzJiNDBhZmI5MjQ0Li45ZjQ0OTI5YTQxNjBlZmYwNjc2NTdhOGFhOWQ1
MDM5ZTE1ZDQ2MWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCkBAIC02MSw2ICs2MSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdnaW5nSW5mby5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9LZXlib2FyZEV2ZW50Lmg+CkBAIC0xNTgwLDEzICsxNTgxLDE1IEBAIHN0YXRpYyB2b2lkIGV4
dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9z
aXRpb25VbmRlCiAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkNvcHk7CiB9CiAKLS0gKE5TRHJh
Z09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJ
bmZvCistIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdVcGRhdGVkOihpZCA8TlNEcmFnZ2luZ0lu
Zm8+KXNlbmRlcgogewotICAgIEludFBvaW50IGNsaWVudChbc2VsZiBjb252ZXJ0UG9pbnQ6W2Ry
YWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSBmcm9tVmlldzpuaWxdKTsKLSAgICBJbnRQb2lu
dCBnbG9iYWwoZ2xvYmFsUG9pbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3Nl
bGYgd2luZG93XSkpOwotICAgIERyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50
LCBnbG9iYWwsIHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dp
bmdTb3VyY2VPcGVyYXRpb25NYXNrXSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJ
bmZvXSk7Ci0gICAgX2RhdGEtPl9wYWdlLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dp
bmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0pOwotICAgIHJldHVybiBfZGF0YS0+X3Bh
Z2UtPmRyYWdPcGVyYXRpb24oKTsKKyAgICBJbnRQb2ludCBjbGllbnQoW3NlbGYgY29udmVydFBv
aW50OltzZW5kZXIgZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZpZXc6bmlsXSk7CisgICAgSW50UG9p
bnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtzZW5kZXIgZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdp
bmRvd10pKTsKKyAgICBEcmFnRGF0YSBkcmFnRGF0YShzZW5kZXIsIGNsaWVudCwgZ2xvYmFsLCBz
dGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbc2VuZGVyIGRyYWdnaW5nU291cmNlT3BlcmF0aW9u
TWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdzOnNlbmRlcl0pOworICAgIF9kYXRhLT5fcGFn
ZS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhLCBbW3NlbmRlciBkcmFnZ2luZ1Bhc3RlYm9hcmRdIG5h
bWVdKTsKKyAgICAKKyAgICBXZWJDb3JlOjpEcmFnZ2luZ0luZm8gZHJhZ2dpbmdJbmZvID0gX2Rh
dGEtPl9wYWdlLT5kcmFnZ2luZ0luZm8oKTsKKyAgICByZXR1cm4gZHJhZ2dpbmdJbmZvLm9wZXJh
dGlvbjsKIH0KIAogLSAodm9pZClkcmFnZ2luZ0V4aXRlZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilk
cmFnZ2luZ0luZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggM2M2YzMyMzc2NDM2MDY1NGM2ODVlZjQ4NTQwMTA0ZGY3MzgyYmIzYy4uMTJjODNmNzU1NWVk
NzQ4ZTFiNDU3Y2Q0YWMzNzE2ZDdkMTRmNDA4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxLDcgKzcxLDkgQEAKICNpbmNsdWRlICJXZWJQcm90ZWN0
aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldl
YlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ2dpbmdJbmZv
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zv
Y3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBA
IC0xODEsNyArMTgzLDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCog
cGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1faGFzU3Bl
bGxEb2N1bWVudFRhZyhmYWxzZSkKICAgICAsIG1fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVz
c2FnZUNvdW50KDApCiAgICAgLCBtX21haW5GcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uKGZh
bHNlKQotICAgICwgbV9jdXJyZW50RHJhZ09wZXJhdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkKKyAg
ICAsIG1fY3VycmVudERyYWdnaW5nSW5mbygpCiAgICAgLCBtX21haW5GcmFtZUhhc0hvcml6b250
YWxTY3JvbGxiYXIoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFy
KGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUoZmFsc2UpCkBAIC04
NDIsOSArODQ0LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbihEcmFnQ29udHJvbGxlckFjdGlvbiBhY3Rpb24sIERyYWcKICNlbmRpZgogfQogCi12b2lk
IFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJl
c3VsdE9wZXJhdGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24oV2ViQ29yZTo6RHJhZ2dpbmdJbmZvIGRyYWdnaW5nSW5mbykKIHsKLSAgICBtX2N1
cnJlbnREcmFnT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4ocmVzdWx0T3Bl
cmF0aW9uKTsKKyAgICBtX2N1cnJlbnREcmFnZ2luZ0luZm8gPSBkcmFnZ2luZ0luZm87CiB9CiAK
ICNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGRlNjdkNDY2Y2I3NGIzOWZhYmEyNzYzMjBhZGU4YmFlMWJm
NTFiMzIuLjIwYjdkZDJmZjY5NjE0NmEyYzE1ZDk1OTc4ZjhjYTQxYzBkMGIxOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU0LDYgKzU0LDcgQEAKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVSUNsaWVudC5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdn
aW5nSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVz
Lmg+CkBAIC00NjYsNyArNDY3LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhZ0V4aXRlZChXZWJD
b3JlOjpEcmFnRGF0YSosIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lID0gU3RyaW5nKCkp
OwogICAgIHZvaWQgcGVyZm9ybURyYWcoV2ViQ29yZTo6RHJhZ0RhdGEqLCBjb25zdCBTdHJpbmcm
IGRyYWdTdG9yYWdlTmFtZSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CiAKLSAg
ICB2b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCByZXN1bHRPcGVy
YXRpb24pOworICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKFdlYkNvcmU6
OkRyYWdnaW5nSW5mbyk7CiAgICAgdm9pZCBkcmFnRW5kZWQoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRp
b24sIHVpbnQ2NF90IG9wZXJhdGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0
RHJhZ0ltYWdlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFn
KTsKQEAgLTUwNCw4ICs1MDUsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVmFsaWQoKTsKICAg
ICAKLSAgICBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oKSB7IHJldHVybiBt
X2N1cnJlbnREcmFnT3BlcmF0aW9uOyB9Ci0gICAgdm9pZCByZXNldERyYWdPcGVyYXRpb24oKSB7
IG1fY3VycmVudERyYWdPcGVyYXRpb24gPSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uTm9uZTsgfQor
ICAgIFdlYkNvcmU6OkRyYWdnaW5nSW5mbyBkcmFnZ2luZ0luZm8oKSBjb25zdCB7IHJldHVybiBt
X2N1cnJlbnREcmFnZ2luZ0luZm87IH0KKyAgICB2b2lkIHJlc2V0RHJhZ09wZXJhdGlvbigpIHsg
bV9jdXJyZW50RHJhZ2dpbmdJbmZvID0gV2ViQ29yZTo6RHJhZ2dpbmdJbmZvKCk7IH0KIAogICAg
IHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIApAQCAtOTI2LDcgKzkyNyw3IEBAIHByaXZh
dGU6CiAgICAgdW5zaWduZWQgbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7
CiAKICAgICBib29sIG1fbWFpbkZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb247Ci0gICAgV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbiBtX2N1cnJlbnREcmFnT3BlcmF0aW9uOworICAgIFdlYkNvcmU6
OkRyYWdnaW5nSW5mbyBtX2N1cnJlbnREcmFnZ2luZ0luZm87CiAKICAgICBTdHJpbmcgbV9wZW5k
aW5nQVBJUmVxdWVzdFVSTDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggODJiOTYxY2E2MWE2MThlZmUxOTk3ZDdhYWVkMTM2
MWM1ZmYyMjQ2Ny4uM2ZhMzcwZTAyZWY2OGZjNzViZTViYTdlZmVmYTU2ZGE5NjEyZGEwZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yMDUsNyArMjA1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBJZ25v
cmVXb3JkKFdURjo6U3RyaW5nIHdvcmQpOwogCiAgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2Vz
Ci0gICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJh
dGlvbikKKyAgICBEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2ViQ29yZTo6RHJhZ2dp
bmdJbmZvIGRyYWdnaW5nSW5mbykKICNpZiBQTEFURk9STShNQUMpCiAgICAgU2V0RHJhZ0ltYWdl
KFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1h
cDo6SGFuZGxlIGRyYWdJbWFnZSwgYm9vbCBsaW5rRHJhZykKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMxZGRkOGRmMTg0ZWE0
NGJlYWQ4ZjNiZjFjZjgzMzljYzczY2U0OTQuLjQ2NmM2OTA4N2I5YWFiMTJkYzZjYWRiMjEzMzcy
MjNmZmYyM2YxOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFy
a2VyQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnZ2luZ0lu
Zm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KQEAg
LTE4MDksNyArMTgxMCw3IEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZl
bnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlv
biwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291
cmNlT3BlcmF0aW9uTWFzaywgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGFNYXAmIGRhdGFNYXAsIHVp
bnQzMl90IGZsYWdzKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVy
YXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyOjpEcmFnZ2luZ0luZm8oKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4NDAsNyArMTg0MSw3IEBAIHZvaWQgV2Vi
UGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29y
ZTo6SW50UG9pbnQgY2xpCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlv
bih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKQogewogICAgIGlm
ICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lKSk7CisgICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9u
KERyYWdnaW5nSW5mbygpKSk7CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFNaW1lRGF0YSog
ZGF0YSA9IGNvbnN0X2Nhc3Q8UU1pbWVEYXRhKj4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwog
I2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTg4NCw3ICsxODg1LDcgQEAgdm9pZCBXZWJQYWdlOjpw
ZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpEcmFn
RGF0YSBkcmEKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2
NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6Oklu
dFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1h
c2ssIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lLCB1aW50MzJfdCBmbGFncywgY29uc3Qg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogICAg
IGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lKSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKERyYWdnaW5nSW5mbygpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113254</attachid>
            <date>2011-11-01 16:36:44 -0700</date>
            <delta_ts>2011-11-01 17:47:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111101163716.patch</filename>
            <type>text/plain</type>
            <size>35758</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi45MWQ1NzMzNWNkOGJmZTBjMzNjZTgyMDhkYTBmMjY4
NWQ0YjdhZDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdnaW5nSW5mbyBpcyB1cGRhdGVkIHdpdGggZGF0YSByZWdh
cmRpbmcgd2hldGhlciB0aGUgbW91c2UKKyAgICAgICAgaXMgb3ZlciBhIGZpbGUgaW5wdXQsIGFu
ZCB0aGUgbnVtYmVyIG9mIGl0ZW1zIHRoYXQgd291bGQgYmUgYWNjZXB0ZWQgYmFzZWQgb24KKyAg
ICAgICAgdGhlIG1vdXNlJ3MgbG9jYXRpb24uCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxl
ci5oOgorICAgICAgICAqIHBhZ2UvRHJhZ2dpbmdJbmZvLmg6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnZ2luZ0luZm86OkRyYWdnaW5nSW5mbyk6CisgICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEu
aDogQWRkZWQgbnVtYmVyT2ZGaWxlcygpCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vRHJh
Z0RhdGFDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZG
aWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvRHJhZ0RhdGFHdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9m
RmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9x
dC9EcmFnRGF0YVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZp
bGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bmNlL0RyYWdEYXRhV2luQ0UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJl
ck9mRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorCiAyMDExLTExLTAxICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJFR1JFU1NJ
T04oOTg3MzgpOiBSZW5kZXJUYWJsZVNlY3Rpb246OnJlY2FsY0NlbGxzIGRvZXMgbm90IHByb3Bl
cmx5IHNocmluayB0aGUgUm93U3RydWN0IGdyaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMTk1YzJk
NzI2MDZkMGVhYzlhZDdlNDc0MWQyNzYwNjA2ODQ3MWFkLi5hOGZjNjJiYTEyYWFiY2YwYTc1Y2Uy
MGJlYThiZGZmNmFhY2QwMDc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBE
cmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdn
aW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5t
bToKKyAgICAgICAgKC1bV2ViVmlldyBkcmFnZ2luZ0VudGVyZWQ6XSk6IERyYWdPcGVyYXRpb24g
aXMgbm93IGluc2lkZSB0aGUgRHJhZ2dpbmdJbmZvIHN0cnVjdC4KKyAgICAgICAgKC1bV2ViVmll
dyBkcmFnZ2luZ1VwZGF0ZWQ6XSk6CisKIDIwMTEtMTEtMDEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIFBERiBjb2RlIHdoZW4gc2NyaXB0IGhhcyBp
bGxlZ2FsIFVURi04IG9yIFVURi0xNiBzZXF1ZW5jZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNGI4YmYxNTE1
ZjVmNjU4NGVkYWQ4MWViNWE5ZGI2Mzg0ZjI1ZWY5Li43NGZlYmRiM2Q5MDk4N2U4ODUyYjczMTRj
ZTFiZjc4OGMxMzM1ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMTEtMDEg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJv
bGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSBub3cgcGFzcyB0aGUgRHJhZ2dpbmdJbmZv
IHN0cnVjdCBmcm9tIHRoZSBXZWIgdG8gdGhlIFVJIHByb2Nlc3MsIGluc3RlYWQgb2YgdGhlCisg
ICAgICAgIERyYWdPcGVyYXRpb24gZW51bS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9t
ZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoK
KyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAgICAgICAgKENvcmVJUEM6Ojo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dpbmdV
cGRhdGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eSk6IFdlIG5vdyBjYWNoZSB0aGUg
bGFzdCBrbm93biBEcmFnZ2luZ0luZm8gc3RhdGUKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmFnZ2lu
Z0luZm8pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0RHJhZ09wZXJhdGlv
bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6CisKIDIwMTEtMTEtMDEgIEpvY2Vs
eW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRd
IE1lcmdlIGNvbW1vbiBkZXNrdG9wIGFuZCB0b3VjaCB2aWV3IEFQSXMgdW5kZXIgYSBiYXNlIGNs
YXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDZmMjgxOTVjN2Q1NDg0OTkyOWJhYmRmMzRjY2I5MDNmMzRhNzU3OWMuLmJjZGEy
NmE1Y2FmMTBiMDI2ZWIxODliN2QxNWIxYTk2ZDE1ZjViOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTc3OCw2ICs3NzgsNyBA
QAogCQkzMTYxMUU2MTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjEx
RTVFMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9
OwogCQkzMTYxMUU2MjBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYx
MUU1RjBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gKi87
IH07CiAJCTMxNjExRTYzMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMTYxMUU2MDBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWVJbnRlcm5hbC5oICovOyB9OworCQkzMTY5Mzc5QzE0NjA5QzZDMDBDMDEzNjIgLyogRHJhZ2dp
bmdJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ2dpbmdJbmZvLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2
MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dl
YktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4
OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBK
U1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NT
S2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC03ODU1LDYgKzc4NTYsNyBAQAogCQkzMTYxMUU1
RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTMxNjExRTYwMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRD
U1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYyIC8qIERyYWdnaW5nSW5mby5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEcmFnZ2luZ0luZm8uaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0Q1NTS2V5ZnJhbWVS
dWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJG
NjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDM3LDYgKzE1NDM5LDcgQEAKIAkJCQlBN0NBNTk1QzBC
MjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3Q0E1OTVCMEIy
N0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1RkY1MTM3ODhG
QUEwMEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQkzMTY5Mzc5QTE0NjA5QzVCMDBDMDEz
NjIgLyogRHJhZ2dpbmdJbmZvLmggKi8sCiAJCQkJMUFGMzI2NzcwRDc4Qjk0NDAwNjhGMEM0IC8q
IEVkaXRvckNsaWVudC5oICovLAogCQkJCTkzQzA5QTgwMEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVu
dEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5QTUyMEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhh
bmRsZXIuaCAqLywKQEAgLTI0NTQxLDYgKzI0NTQ0LDcgQEAKIAkJCQk5QjNBODg3MjE0NTYzMkY5
MDAzQUU4RjUgLyogRE9NRE9NU2V0dGFibGVUb2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkyRDhGRUJERDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3Nm
YWRlVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMxNjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAv
KiBEcmFnZ2luZ0luZm8uaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250
cm9sbGVyLmNwcAppbmRleCBmMDk5NjkwYmIwZDhmMjUxMzA5Y2M5NTIzMTM2ZDc2MjNmYTQ4NWY1
Li5lYzM3YjEyNWVmOTMzNjRhNDc1N2JmMjcyNDc5ODA2ODg0NjdmMGZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRy
YWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0NsaWVudC5oIgogI2luY2x1ZGUgIkRyYWdEYXRh
LmgiCisjaW5jbHVkZSAiRHJhZ2dpbmdJbmZvLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5j
bHVkZSAiRWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtMTYyLDcgKzE2
Myw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbmRlZCgpCiAgICAgbV9jbGllbnQtPmRy
YWdFbmRlZCgpOwogfQogCi1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJl
ZChEcmFnRGF0YSogZHJhZ0RhdGEpCitEcmFnZ2luZ0luZm8gRHJhZ0NvbnRyb2xsZXI6OmRyYWdF
bnRlcmVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVw
ZGF0ZWQoZHJhZ0RhdGEpOwogfQpAQCAtMTgyLDcgKzE4Myw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAgIG1vdXNlTW92ZWRJbnRvRG9j
dW1lbnQoMCk7CiB9CiAKLURyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVk
KERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdnaW5nSW5mbyBEcmFnQ29udHJvbGxlcjo6ZHJhZ1Vw
ZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIHJldHVybiBkcmFnRW50ZXJlZE9yVXBk
YXRlZChkcmFnRGF0YSk7CiB9CkBAIC0yMzIsNyArMjMzLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxl
cjo6bW91c2VNb3ZlZEludG9Eb2N1bWVudChEb2N1bWVudCogbmV3RG9jdW1lbnQpCiAgICAgbV9k
b2N1bWVudFVuZGVyTW91c2UgPSBuZXdEb2N1bWVudDsKIH0KIAotRHJhZ09wZXJhdGlvbiBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQorRHJh
Z2dpbmdJbmZvIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSog
ZHJhZ0RhdGEpCiB7CiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICBBU1NFUlQobV9wYWdlLT5t
YWluRnJhbWUoKSk7IC8vIEl0IGlzIG5vdCBwb3NzaWJsZSBpbiBNYWMgV2ViS2l0IHRvIGhhdmUg
YSBQYWdlIHdpdGhvdXQgYSBtYWluRnJhbWUoKQpAQCAtMjQxLDE0ICsyNDIsMTQgQEAgRHJhZ09w
ZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRy
YWdEYXRhKQogICAgIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID0gbV9jbGllbnQtPmFjdGlvbk1h
c2tGb3JEcmFnKGRyYWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gPT0g
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTm9uZSkgewogICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJ
WE1FOiBXaHkgbm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKT8KLSAgICAgICAgcmV0
dXJuIERyYWdPcGVyYXRpb25Ob25lOworICAgICAgICByZXR1cm4gRHJhZ2dpbmdJbmZvKCk7CiAg
ICAgfQogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uTm9uZTsK
LSAgICBib29sIGhhbmRsZWRCeURvY3VtZW50ID0gdHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBt
X2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwgb3BlcmF0aW9uKTsKKyAgICBEcmFnZ2luZ0luZm8gZHJh
Z2dpbmdJbmZvOworICAgIGJvb2wgaGFuZGxlZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWco
ZHJhZ0RhdGEsIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBkcmFnZ2luZ0luZm8pOwogICAgIGlm
ICghaGFuZGxlZEJ5RG9jdW1lbnQgJiYgKG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uTG9hZCkpCi0gICAgICAgIHJldHVybiBvcGVyYXRpb25Gb3JMb2FkKGRy
YWdEYXRhKTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOworICAgICAgICBkcmFnZ2luZ0luZm8ub3Bl
cmF0aW9uID0gb3BlcmF0aW9uRm9yTG9hZChkcmFnRGF0YSk7CisgICAgcmV0dXJuIGRyYWdnaW5n
SW5mbzsKIH0KIAogc3RhdGljIEhUTUxJbnB1dEVsZW1lbnQqIGFzRmlsZUlucHV0KE5vZGUqIG5v
ZGUpCkBAIC0yODQsNyArMjg1LDcgQEAgc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNl
KERvY3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JgogICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7CiB9CiAKLWJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRy
eURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBh
Y3Rpb25NYXNrLCBEcmFnT3BlcmF0aW9uJiBvcGVyYXRpb24pCitib29sIERyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rp
b24gYWN0aW9uTWFzaywgRHJhZ2dpbmdJbmZvJiBkcmFnZ2luZ0luZm8pCiB7CiAgICAgQVNTRVJU
KGRyYWdEYXRhKTsKIApAQCAtMjk2LDcgKzI5Nyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRy
eURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBh
CiAKICAgICBtX2lzSGFuZGxpbmdEcmFnID0gZmFsc2U7CiAgICAgaWYgKGFjdGlvbk1hc2sgJiBE
cmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCkgewotICAgICAgICBtX2lzSGFuZGxpbmdEcmFnID0g
dHJ5REhUTUxEcmFnKGRyYWdEYXRhLCBvcGVyYXRpb24pOworICAgICAgICBtX2lzSGFuZGxpbmdE
cmFnID0gdHJ5REhUTUxEcmFnKGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8ub3BlcmF0aW9uKTsKICAg
ICAgICAgLy8gRG8gbm90IGNvbnRpbnVlIGlmIG1fZG9jdW1lbnRVbmRlck1vdXNlIGhhcyBiZWVu
IHJlc2V0IGJ5IHRyeURIVE1MRHJhZy4KICAgICAgICAgLy8gdHJ5REhUTUxEcmFnIGZpcmVzIGRy
YWdlbnRlciBldmVudC4gVGhlIGV2ZW50IGxpc3RlbmVyIHRoYXQgbGlzdGVucwogICAgICAgICAv
LyB0byB0aGlzIGV2ZW50IG1heSBjcmVhdGUgYSBuZXN0ZWQgbWVzc2FnZSBsb29wIChvcGVuIGEg
bW9kYWwgZGlhbG9nKSwKQEAgLTMxNyw3ICszMTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0
cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24g
YQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IGVsc2UgaWYgKChhY3Rpb25NYXNrICYgRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCkgJiYgY2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7CiAg
ICAgICAgIGlmIChkcmFnRGF0YS0+Y29udGFpbnNDb2xvcigpKSB7Ci0gICAgICAgICAgICBvcGVy
YXRpb24gPSBEcmFnT3BlcmF0aW9uR2VuZXJpYzsKKyAgICAgICAgICAgIGRyYWdnaW5nSW5mby5v
cGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uR2VuZXJpYzsKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAKQEAgLTMyNSwxMSArMzI2LDMyIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6
OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlv
biBhCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5kZXJNb3VzZShtX2RvY3Vt
ZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOwogICAgICAgICBpZiAoIWVsZW1lbnQpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghYXNGaWxlSW5wdXQoZWxlbWVudCkp
CisgICAgICAgIAorICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50QXNGaWxlSW5wdXQg
PSBhc0ZpbGVJbnB1dChlbGVtZW50KTsKKyAgICAgICAgaWYgKCFlbGVtZW50QXNGaWxlSW5wdXQp
CiAgICAgICAgICAgICBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+c2V0Q2FyZXRQb3Np
dGlvbihtX2RvY3VtZW50VW5kZXJNb3VzZS0+ZnJhbWUoKS0+dmlzaWJsZVBvc2l0aW9uRm9yUG9p
bnQocG9pbnQpKTsKIAogICAgICAgICBGcmFtZSogaW5uZXJGcmFtZSA9IGVsZW1lbnQtPmRvY3Vt
ZW50KCktPmZyYW1lKCk7Ci0gICAgICAgIG9wZXJhdGlvbiA9IGRyYWdJc01vdmUoaW5uZXJGcmFt
ZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25Nb3ZlIDogRHJhZ09wZXJh
dGlvbkNvcHk7CisgICAgICAgIGRyYWdnaW5nSW5mby5vcGVyYXRpb24gPSBkcmFnSXNNb3ZlKGlu
bmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkgPyBEcmFnT3BlcmF0aW9uTW92ZSA6IERy
YWdPcGVyYXRpb25Db3B5OworICAgICAgICBkcmFnZ2luZ0luZm8ubW91c2VPdmVyRmlsZUlucHV0
ID0gZWxlbWVudEFzRmlsZUlucHV0OworICAgICAgICBkcmFnZ2luZ0luZm8ubnVtYmVyT2ZJdGVt
c1RvQmVBY2NlcHRlZCA9IDA7CisKKyAgICAgICAgdW5zaWduZWQgbnVtYmVyT2ZGaWxlcyA9IGRy
YWdEYXRhLT5udW1iZXJPZkZpbGVzKCk7CisgICAgICAgIGlmIChlbGVtZW50QXNGaWxlSW5wdXQp
IHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50QXNGaWxlSW5wdXQtPmRpc2FibGVkKCkpCisgICAg
ICAgICAgICAgICAgZHJhZ2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOwor
ICAgICAgICAgICAgZWxzZSBpZiAoZWxlbWVudEFzRmlsZUlucHV0LT5tdWx0aXBsZSgpKQorICAg
ICAgICAgICAgICAgIGRyYWdnaW5nSW5mby5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVt
YmVyT2ZGaWxlczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkcmFnZ2luZ0lu
Zm8ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IDE7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGlmICghZHJhZ2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCisgICAgICAg
ICAgICAgICAgZHJhZ2dpbmdJbmZvLm9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOworICAg
ICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIFdlIGFyZSBub3Qgb3ZlciBhIGZpbGUgaW5wdXQg
ZWxlbWVudC4gVGhlIGRyYWdnZWQgaXRlbShzKSB3aWxsIG9ubHkKKyAgICAgICAgICAgIC8vIGJl
IGxvYWRlZCBpbnRvIHRoZSB2aWV3IHRoZSBudW1iZXIgb2YgZHJhZ2dlZCBpdGVtcyBpcyAxLgor
ICAgICAgICAgICAgZHJhZ2dpbmdJbmZvLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSBudW1i
ZXJPZkZpbGVzICE9IDEgPyAwIDogMTsKKyAgICAgICAgCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICAvLyBJZiB3ZSdyZSBub3Qgb3ZlciBhbiBlZGl0YWJsZSByZWdpb24sIG1ha2Ug
c3VyZSB3ZSdyZSBjbGVhcmluZyBhbnkgcHJpb3IgZHJhZyBjdXJzb3IuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdDb250cm9sbGVyLmgKaW5kZXggMjYxYThkNTNmNzM2NThiMDcxZjIxMDU2YWU1OGIyNGIx
YmI0NTk2OS4uYzAyMTQ5NjNmZmE3ZDhmOWMyOGU3NTU3YWJhOWNlNThkN2U1Nzg5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgY2xhc3MgRHJhZ0NsaWVudDsKICAgICBjbGFzcyBEcmFnRGF0YTsKICAg
ICBzdHJ1Y3QgRHJhZ1N0YXRlOworICAgIHN0cnVjdCBEcmFnZ2luZ0luZm87CiAgICAgY2xhc3Mg
RWxlbWVudDsKICAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBGcmFtZVNlbGVjdGlvbjsKQEAg
LTU1LDkgKzU2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+RHJhZ0NvbnRyb2xs
ZXIoKTsKICAgICAgICAgRHJhZ0NsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGll
bnQ7IH0KIAotICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdFbnRlcmVkKERyYWdEYXRhKik7Cisg
ICAgICAgIERyYWdnaW5nSW5mbyBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwogICAgICAgICB2b2lk
IGRyYWdFeGl0ZWQoRHJhZ0RhdGEqKTsKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBkcmFnVXBkYXRl
ZChEcmFnRGF0YSopOworICAgICAgICBEcmFnZ2luZ0luZm8gZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEq
KTsKICAgICAgICAgYm9vbCBwZXJmb3JtRHJhZyhEcmFnRGF0YSopOwogICAgICAgICAKICAgICAg
ICAgLy8gRklYTUU6IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byByZW1vdmUgYSBudW1iZXIgb2Yg
dGhlc2UgYWNjZXNzb3JzIG9uY2UgYWxsCkBAIC05NCw5ICs5NSw5IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgYm9vbCBkaXNwYXRjaFRleHRJbnB1dEV2ZW50Rm9yKEZyYW1lKiwgRHJh
Z0RhdGEqKTsKICAgICAgICAgYm9vbCBjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSopOwogICAgICAg
ICBib29sIGNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqKTsKLSAgICAgICAgRHJhZ09wZXJhdGlv
biBkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSopOworICAgICAgICBEcmFnZ2luZ0luZm8g
ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqKTsKICAgICAgICAgRHJhZ09wZXJhdGlvbiBv
cGVyYXRpb25Gb3JMb2FkKERyYWdEYXRhKik7Ci0gICAgICAgIGJvb2wgdHJ5RG9jdW1lbnREcmFn
KERyYWdEYXRhKiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnT3BlcmF0aW9uJik7CisgICAg
ICAgIGJvb2wgdHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
LCBEcmFnZ2luZ0luZm8mKTsKICAgICAgICAgYm9vbCB0cnlESFRNTERyYWcoRHJhZ0RhdGEqLCBE
cmFnT3BlcmF0aW9uJik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbihEcmFn
RGF0YSopOwogICAgICAgICB2b2lkIGNhbmNlbERyYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ2dpbmdJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdnaW5n
SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjk5M2I3OTNjYmRlODFjM2EwZjUzNDVhMzM0MzIyMzRiM2EwYTU2
NjQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdnaW5nSW5mby5o
CkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERyYWdnaW5nSW5mb19oCisjZGVm
aW5lIERyYWdnaW5nSW5mb19oCisKKyNpbmNsdWRlICJEcmFnQWN0aW9ucy5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgCitzdHJ1Y3QgRHJhZ2dpbmdJbmZvIHsKKyAgICBEcmFnZ2luZ0lu
Zm8oKQorICAgIDogb3BlcmF0aW9uKERyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbW91c2VPdmVy
RmlsZUlucHV0KGZhbHNlKQorICAgICwgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCgwKSB7IH0K
KyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbjsKKyAgICBib29sIG1vdXNlT3ZlckZpbGVJbnB1
dDsKKyAgICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IGFmYTIxOWYzYjcyMjNiZGRk
NThjMjdlZjY3MmQ4YzZjYTcwY2YxYmMuLmJiMjQyZjllOTE2MmE3NjllMTg2MmVmMGE5MzQ4YWQ5
NWU4NTg4YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE2LDYgKzExNiw3
IEBAIHB1YmxpYzoKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0OwogICAgIGJvb2wg
Y29udGFpbnNDb2xvcigpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNGaWxlcygpIGNvbnN0Owor
ICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAg
ICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkKCkgeyByZXR1cm4gbV9wYXN0ZWJvYXJkLmdldCgp
OyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0RyYWdEYXRhQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
RHJhZ0RhdGFDaHJvbWl1bS5jcHAKaW5kZXggMDlkYThhNGE0MGQ2NzJmZjQyODY1ZjhjODk5YzY2
NjcyNWM0ZjVlMi4uOWMzODM4NjAyNTFjNzQ3MDA5MmY5NjUzN2E2MTc3OTI4ODhiZGJiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJv
bWl1bS5jcHAKQEAgLTczLDYgKzczLDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMo
KSBjb25zdAogICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmNvbnRhaW5zRmlsZW5hbWVz
KCk7CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKS5zaXplKCk7Cit9CisKIHZv
aWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7
CiAgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyA9IG1fcGxhdGZvcm1EcmFnRGF0
YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwv
RHJhZ0RhdGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZs
LmNwcAppbmRleCBiMzViOTYzZWE5YzQ2OTg2MDE3ZjYzOTc0YjA3NWEzNDM3ZDFkNDY2Li45ZDdl
OWNhNzk1YzhmN2QxYmMzNjg4MmEzYTRhYzgxZjRiOGMwOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQxLDYgKzQxLDExIEBAIGJvb2wgRHJh
Z0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordW5z
aWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOwor
fQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBj
b25zdAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdE
YXRhR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAK
aW5kZXggY2M5YTIwODAwM2IyN2QxMGE5YzhlOGZlNmMzZGJiM2MzOGZjMDBlNC4uMDJhNDc0OWQz
M2NiYjI5OWM4ZGQ2NmUzNWMwMDkxYWIyOGYxMGFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwCkBAIC00MSw2ICs0MSwxMSBAQCBib29sIERyYWdEYXRh
Ojpjb250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5o
YXNGaWxlbmFtZXMoKTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBj
b25zdAoreworICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUo
KTsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3Vs
dCkgY29uc3QKIHsKICAgICByZXN1bHQgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCmluZGV4IDJjYTk0
M2RlMTFiMGQ5YTgwY2EzNzU4ZTc0MzEzYjJhNWU5MTk5YzIuLjI5NGVlYmJiOGNjMmU5NTMyYzhi
NzJkZmVjYWNhMGU5MjhiOGJiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9EcmFnRGF0YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0RhdGFNYWMubW0KQEAgLTc2LDYgKzc2LDEzIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmls
ZXMoKSBjb25zdAogICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSB0eXBlc10gY29udGFp
bnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6
Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIGlmICghW1ttX3Bhc3RlYm9hcmQuZ2V0KCkg
dHlwZXNdIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAgICAgIHJl
dHVybiAwOworICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0eUxpc3RGb3JU
eXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV0gY291bnRdOworfQorCiB2b2lkIERyYWdEYXRhOjph
c0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIE5TQXJyYXkg
KmZpbGVuYW1lcyA9IFttX3Bhc3RlYm9hcmQuZ2V0KCkgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0Zp
bGVuYW1lc1Bib2FyZFR5cGVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRHJhZ0RhdGFRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0
LmNwcAppbmRleCAyNTU0ZGY0MjM1MDc2OWJlYmYzY2EzMjJlNzcyNzJjZDIxMzlkMmJiLi4wMzAz
YWQ3YzkyNGExNWRkZGUyZTM0YjdmOWY4OGFlMTM3ZDhmMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcApAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBEcmFnRGF0
YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25l
ZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisK
IHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX3BsYXRmb3JtRHJhZ0RhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd2luL0RyYWdEYXRhV2luLmNwcAppbmRleCAwOGI2ZWIyZDc2ZDUzZjVhNmU3MzYxZjg4ZWE2
MWYwYWNlNGUxYjczLi45YWI2MmI5NTBmZmIwNWU5MTRjN2VkNzNlYjRlNDRjOGY0NWExN2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKQEAgLTExMCw2
ICsxMTAsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0
dXJuIChtX3BsYXRmb3JtRHJhZ0RhdGEpID8gU1VDQ0VFREVEKG1fcGxhdGZvcm1EcmFnRGF0YS0+
UXVlcnlHZXREYXRhKGNmSERyb3BGb3JtYXQoKSkpIDogbV9kcmFnRGF0YU1hcC5jb250YWlucyhj
ZkhEcm9wRm9ybWF0KCktPmNmRm9ybWF0KTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJl
ck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjph
c0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGlmIChtX3Bs
YXRmb3JtRHJhZ0RhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bmNlL0RyYWdEYXRhV2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJh
Z0RhdGFXaW5DRS5jcHAKaW5kZXggNjc5MjI5ZGQ1ZmMxN2IyNWNlN2QyN2UwYjYzYjJkZTdiMWIy
NmUwMi4uY2M1ZjdhN2FhZDMxZDc3MzEwMDdlMGE4MGRlOTcxYjkyM2JkODU0NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKQEAgLTQ3LDYg
KzQ3LDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAor
eworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8
U3RyaW5nPiYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93eC9EcmFnRGF0YVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRh
V3guY3BwCmluZGV4IGJlMjQwNDJkNDc4NmQ1OGQ0NGRlZmMzMTg4ZWQ5OTU2ZDZjYjMwNDkuLjgy
ZTQ3NDBhNGRkMDdiOTY2MDJkNDNkZWE1MWQ5OTkxYTYzMWQxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBib29sIERyYWdE
YXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Vuc2ln
bmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30K
Kwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29u
c3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxOWY3NDc2OWRl
OWMzNjg5MWVmMGE0Zjg4YTE1NzE3NWNjYTE5MjJiLi5hNWU3M2Q3ODM5YTU3MWZkNDMyMmQ4NDY3
Yjg0N2MzOWNjMTgwYTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0x
MTcsNiArMTE3LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0RhdGEu
aD4KKyNpbXBvcnQgPFdlYkNvcmUvRHJhZ2dpbmdJbmZvLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Vk
aXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRXhjZXB0aW9uSGFuZGxlcnMuaD4KQEAgLTM4NjQsNyArMzg2NSw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJlc29sdXRpb25Ob3RpZmljYXRpb24gPSBAIk5T
V2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xpZW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdM
b2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJhZ2dpbmdJbmZv
IGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0Rh
dGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlv
bj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBw
bGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKLSAgICByZXR1cm4gY29yZShzZWxmKS0+ZHJh
Z0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKTsKKyAgICByZXR1cm4gY29yZShz
ZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKS5vcGVyYXRpb247
CiB9CiAKIC0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxOU0RyYWdnaW5n
SW5mbz4pZHJhZ2dpbmdJbmZvCkBAIC0zODc2LDcgKzM4NzcsNyBAQCBzdGF0aWMgTlNTdHJpbmcg
KiBjb25zdCB3aW5kb3dEaWRDaGFuZ2VSZXNvbHV0aW9uTm90aWZpY2F0aW9uID0gQCJOU1dpbmRv
d0RpZENoYQogICAgIEludFBvaW50IGNsaWVudChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRp
b25dKTsKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9pbnQoW2RyYWdnaW5nSW5mbyBkcmFn
Z2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAgIERyYWdEYXRhIGRyYWdEYXRhKGRy
YWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KFtk
cmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSksIFtzZWxmIGFwcGxpY2F0
aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAgcmV0dXJuIHBhZ2UtPmRyYWdDb250cm9sbGVy
KCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgcmV0dXJuIHBhZ2UtPmRyYWdDb250cm9s
bGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSkub3BlcmF0aW9uOwogfQogCiAtICh2b2lkKWRy
YWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dl
YktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDZjYzUzMTY1YWMzNjJiNWRh
NTM5NDE1ZDljZGIzOGQ5YzgyZjU1N2IuLjdiOWNhMTQ5MDE3MjgxZmNhNDc4MzYyMjY0NThiNzYw
YzRjOThhN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNz
YWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkK
QEAgLTE3MCw2ICsxNzAsNyBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6
CiAgICAgICAgICdXZWJDb3JlOjpBbmltYXRpb24nLAogICAgICAgICAnV2ViQ29yZTo6RWRpdG9y
Q29tbWFuZHNGb3JLZXlFdmVudCcsCiAgICAgICAgICdXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVy
bGluZScsCisgICAgICAgICdXZWJDb3JlOjpEcmFnZ2luZ0luZm8nLAogICAgICAgICAnV2ViQ29y
ZTo6RmxvYXRQb2ludDNEJywKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3Mn
LAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGY0MzE0MTBhNzAyNGEzYzFi
ZjgwMzY0NzAzNjE5MjUyMWE2NTYzZTkuLjU1MjFhOTIzZmM1OWYxOGZiODdkOTI1Y2IxZWFkNDQw
ODMwNzlhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVkZW50aWFs
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFi
YXNlRGV0YWlscy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ2dpbmdJbmZvLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KQEAgLTYwNCw2ICs2MDUsMjQgQEAg
Ym9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3VsdD46OmRlY29kZShBcmd1bWVudERl
Y29kZXIqIGRlY29kZXIsIFRleHRDaGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAordm9pZCBBcmd1
bWVudENvZGVyPERyYWdnaW5nSW5mbz46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIs
IGNvbnN0IERyYWdnaW5nSW5mbyYgcmVzdWx0KQoreworICAgIGVuY29kZXItPmVuY29kZUVudW0o
cmVzdWx0Lm9wZXJhdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5tb3VzZU92ZXJG
aWxlSW5wdXQpOworICAgIGVuY29kZXItPmVuY29kZShyZXN1bHQubnVtYmVyT2ZJdGVtc1RvQmVB
Y2NlcHRlZCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxEcmFnZ2luZ0luZm8+OjpkZWNvZGUo
QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEcmFnZ2luZ0luZm8mIHJlc3VsdCkKK3sKKyAgICBp
ZiAoIWRlY29kZXItPmRlY29kZUVudW0ocmVzdWx0Lm9wZXJhdGlvbikpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubW91c2VPdmVyRmlsZUlu
cHV0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJl
c3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgUExBVEZPUk0oUVQpCiAKIHZvaWQgQXJndW1lbnRD
b2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25z
dCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQzRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhY2U1ZDlkNjE1OTRiZmEwNzI0YmRmN2IwMTY3
MmEwMjMxNTRjOGI0Li44MGRlYjIyMGVkOGQ2ZTZjNTU4NDg0ZDZiM2VmNGI4OGQ3ZDJjZjk5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC00
Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpb25V
bmRlcmxpbmU7CisgICAgc3RydWN0IERyYWdnaW5nSW5mbzsKICAgICBzdHJ1Y3QgRmlsZUNob29z
ZXJTZXR0aW5nczsKICAgICBzdHJ1Y3QgR3JhbW1hckRldGFpbDsKICAgICBzdHJ1Y3QgTWltZUNs
YXNzSW5mbzsKQEAgLTIxMyw2ICsyMTQsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNv
ZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7
CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OlRleHRD
aGVja2luZ1Jlc3VsdCYpOwogfTsKKyAgICAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6RHJhZ2dpbmdJbmZvPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OkRyYWdnaW5nSW5mbyYpOworICAgIHN0YXRpYyBi
b29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpEcmFnZ2luZ0luZm8mKTsKK307
CiAKICNpZiBQTEFURk9STShRVCkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6RmxvYXRQb2ludDNEPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0KaW5kZXggZGViMWQwNjc1MTMwM2Q3ODk5YzNjMDM4YWUyY2MyYjQwYWZiOTI0NC4u
OWY0NDkyOWE0MTYwZWZmMDY3NjU3YThhYTlkNTAzOWUxNWQ0NjFkYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNjEsNiArNjEsNyBAQAogI2ltcG9y
dCA8V2ViQ29yZS9Db2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EcmFnZ2lu
Z0luZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ludFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTU4MCwx
MyArMTU4MSwxNSBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRT
dHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIHJldHVybiBOU0RyYWdP
cGVyYXRpb25Db3B5OwogfQogCi0tIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdVcGRhdGVkOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdn
aW5nVXBkYXRlZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilzZW5kZXIKIHsKLSAgICBJbnRQb2ludCBj
bGllbnQoW3NlbGYgY29udmVydFBvaW50OltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0g
ZnJvbVZpZXc6bmlsXSk7Ci0gICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2lu
Z0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKLSAgICBEcmFnRGF0YSBk
cmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3Bl
cmF0aW9uPihbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2Vs
ZiBhcHBsaWNhdGlvbkZsYWdzOmRyYWdnaW5nSW5mb10pOwotICAgIF9kYXRhLT5fcGFnZS0+ZHJh
Z1VwZGF0ZWQoJmRyYWdEYXRhLCBbW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1Bhc3RlYm9hcmRdIG5h
bWVdKTsKLSAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5kcmFnT3BlcmF0aW9uKCk7CisgICAgSW50
UG9pbnQgY2xpZW50KFtzZWxmIGNvbnZlcnRQb2ludDpbc2VuZGVyIGRyYWdnaW5nTG9jYXRpb25d
IGZyb21WaWV3Om5pbF0pOworICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbc2VuZGVy
IGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CisgICAgRHJhZ0RhdGEgZHJhZ0Rh
dGEoc2VuZGVyLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW3Nl
bmRlciBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFn
czpzZW5kZXJdKTsKKyAgICBfZGF0YS0+X3BhZ2UtPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSwgW1tz
ZW5kZXIgZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSk7CisgICAgCisgICAgV2ViQ29yZTo6RHJh
Z2dpbmdJbmZvIGRyYWdnaW5nSW5mbyA9IF9kYXRhLT5fcGFnZS0+ZHJhZ2dpbmdJbmZvKCk7Cisg
ICAgcmV0dXJuIGRyYWdnaW5nSW5mby5vcGVyYXRpb247CiB9CiAKIC0gKHZvaWQpZHJhZ2dpbmdF
eGl0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNjNmMzMjM3NjQzNjA2NTRjNjg1ZWY0ODU0
MDEwNGRmNzM4MmJiM2MuLjEyYzgzZjc1NTVlZDc0OGUxYjQ1N2NkNGFjMzcxNmQ3ZDE0ZjQwODQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MSw3ICs3
MSw5IEBACiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViU2Vj
dXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0RyYWdnaW5nSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRS
ZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlvbi5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMTgxLDcgKzE4Myw3IEBAIFdlYlBhZ2VQcm94
eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsIFBhc3NSZWZQdHI8V2ViUHJv
Y2Vzc1Byb3h5PiBwCiAgICAgLCBtX2hhc1NwZWxsRG9jdW1lbnRUYWcoZmFsc2UpCiAgICAgLCBt
X3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudCgwKQogICAgICwgbV9tYWluRnJh
bWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbihmYWxzZSkKLSAgICAsIG1fY3VycmVudERyYWdPcGVy
YXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtX2N1cnJlbnREcmFnZ2luZ0luZm8oKQog
ICAgICwgbV9tYWluRnJhbWVIYXNIb3Jpem9udGFsU2Nyb2xsYmFyKGZhbHNlKQogICAgICwgbV9t
YWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhcihmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lSXNQ
aW5uZWRUb0xlZnRTaWRlKGZhbHNlKQpAQCAtODQyLDkgKzg0NCw5IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ0NvbnRyb2xsZXJBY3Rpb24gYWN0
aW9uLCBEcmFnCiAjZW5kaWYKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbih1aW50NjRfdCByZXN1bHRPcGVyYXRpb24pCit2b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdnaW5nSW5m
byBkcmFnZ2luZ0luZm8pCiB7Ci0gICAgbV9jdXJyZW50RHJhZ09wZXJhdGlvbiA9IHN0YXRpY19j
YXN0PERyYWdPcGVyYXRpb24+KHJlc3VsdE9wZXJhdGlvbik7CisgICAgbV9jdXJyZW50RHJhZ2dp
bmdJbmZvID0gZHJhZ2dpbmdJbmZvOwogfQogCiAjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JN
KEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBkZTY3ZDQ2
NmNiNzRiMzlmYWJhMjc2MzIwYWRlOGJhZTFiZjUxYjMyLi4yMGI3ZGQyZmY2OTYxNDZhMmMxNWQ5
NTk3OGY4Y2E0MWMwZDBiMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkQ2xpZW50Lmgi
CiAjaW5jbHVkZSAiV2ViVUlDbGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdBY3Rpb25z
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnZ2luZ0luZm8uaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgpAQCAtNDY2LDcgKzQ2Nyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRyYWdFeGl0ZWQoV2ViQ29yZTo6RHJhZ0RhdGEqLCBjb25zdCBTdHJpbmcm
IGRyYWdTdG9yYWdlTmFtZSA9IFN0cmluZygpKTsKICAgICB2b2lkIHBlcmZvcm1EcmFnKFdlYkNv
cmU6OkRyYWdEYXRhKiwgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUsIGNvbnN0IFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSYpOwogCi0gICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnZ2luZ0luZm8pOwogICAgIHZvaWQgZHJh
Z0VuZGVkKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBvcGVyYXRpb24pOwogI2lm
IFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFn
SW1hZ2VIYW5kbGUsIGJvb2wgaXNMaW5rRHJhZyk7CkBAIC01MDQsOCArNTA1LDggQEAgcHVibGlj
OgogCiAgICAgYm9vbCBpc1ZhbGlkKCk7CiAgICAgCi0gICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlv
biBkcmFnT3BlcmF0aW9uKCkgeyByZXR1cm4gbV9jdXJyZW50RHJhZ09wZXJhdGlvbjsgfQotICAg
IHZvaWQgcmVzZXREcmFnT3BlcmF0aW9uKCkgeyBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gV2Vi
Q29yZTo6RHJhZ09wZXJhdGlvbk5vbmU7IH0KKyAgICBXZWJDb3JlOjpEcmFnZ2luZ0luZm8gZHJh
Z2dpbmdJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RHJhZ2dpbmdJbmZvOyB9CisgICAg
dm9pZCByZXNldERyYWdPcGVyYXRpb24oKSB7IG1fY3VycmVudERyYWdnaW5nSW5mbyA9IFdlYkNv
cmU6OkRyYWdnaW5nSW5mbygpOyB9CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7
CiAKQEAgLTkyNiw3ICs5MjcsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcGVuZGluZ0xl
YXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogCiAgICAgYm9vbCBtX21haW5GcmFtZUhhc0N1
c3RvbVJlcHJlc2VudGF0aW9uOwotICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb24gbV9jdXJyZW50
RHJhZ09wZXJhdGlvbjsKKyAgICBXZWJDb3JlOjpEcmFnZ2luZ0luZm8gbV9jdXJyZW50RHJhZ2dp
bmdJbmZvOwogCiAgICAgU3RyaW5nIG1fcGVuZGluZ0FQSVJlcXVlc3RVUkw7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDgy
Yjk2MWNhNjFhNjE4ZWZlMTk5N2Q3YWFlZDEzNjFjNWZmMjI0NjcuLjNmYTM3MGUwMmVmNjhmYzc1
YmU1YmE3ZWZlZmE1NmRhOTYxMmRhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjA1LDcgKzIwNSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKIAog
ICAgICMgRHJhZyBhbmQgZHJvcCBtZXNzYWdlcwotICAgIERpZFBlcmZvcm1EcmFnQ29udHJvbGxl
ckFjdGlvbih1aW50NjRfdCByZXN1bHRPcGVyYXRpb24pCisgICAgRGlkUGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdnaW5nSW5mbyBkcmFnZ2luZ0luZm8pCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIFNldERyYWdJbWFnZShXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3Np
dGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSBkcmFnSW1hZ2UsIGJvb2wgbGlu
a0RyYWcpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBjMWRkZDhkZjE4NGVhNDRiZWFkOGYzYmYxY2Y4MzM5Y2M3M2NlNDk0Li40
NjZjNjkwODdiOWFhYjEyZGM2Y2FkYjIxMzM3MjIzZmZmMjNmMTk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03OSw2ICs3OSw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvRHJhZ2dpbmdJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVu
dEhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CkBAIC0xODA5LDcgKzE4MTAsNyBAQCBib29sIFdlYlBh
Z2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHZvaWQg
V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uLCB1aW50NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFdlYkNv
cmU6OkRyYWdEYXRhTWFwJiBkYXRhTWFwLCB1aW50MzJfdCBmbGFncykKIHsKICAgICBpZiAoIW1f
cGFnZSkgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
Q29udHJvbGxlcjo6RHJhZ2dpbmdJbmZvKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0xODQwLDcgKzE4NDEsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaQogdm9pZCBXZWJQYWdl
OjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpE
cmFnRGF0YSBkcmFnRGF0YSkKIHsKICAgICBpZiAoIW1fcGFnZSkgewotICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
T3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnZ2luZ0luZm8oKSkpOwogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICBRTWltZURhdGEqIGRhdGEgPSBjb25zdF9jYXN0PFFNaW1lRGF0YSo+
KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKQEAgLTE4ODQs
NyArMTg4NSw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVp
bnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhCiB2b2lkIFdlYlBhZ2U6OnBlcmZv
cm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50
IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWxQb3NpdGlvbiwgdWludDY0
X3QgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdl
TmFtZSwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBpZiAoIW1fcGFnZSkgewotICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihE
cmFnT3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnZ2luZ0luZm8oKSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113267</attachid>
            <date>2011-11-01 17:47:26 -0700</date>
            <delta_ts>2011-11-01 17:53:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111101174758.patch</filename>
            <type>text/plain</type>
            <size>37270</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi45OWU4MDNmODRlMjc3MWVlMWNjNDBhZGJkYjJmMDQ5
Mzc0YmZkMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdTZXNzaW9uIGlzIHVwZGF0ZWQgd2l0aCBkYXRhIHJlZ2Fy
ZGluZyB3aGV0aGVyIHRoZSBtb3VzZQorICAgICAgICBpcyBvdmVyIGEgZmlsZSBpbnB1dCwgYW5k
IHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZSBhY2NlcHRlZCBiYXNlZCBvbgorICAg
ICAgICB0aGUgbW91c2UncyBsb2NhdGlvbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
Lmg6CisgICAgICAgICogcGFnZS9EcmFnU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdTZXNzaW9uOjpEcmFnU2Vzc2lvbik6IEtlZXAgdHJhY2sgb2YgY3VycmVudCBvcGVy
YXRpb24sIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92ZXIgYSBmaWxlIGlucHV0IGVs
ZW1lbnQsIGFuZCBob3cgbWFueSBmaWxlcyB3b3VsZCBiZSBhY2NlcHRlZCBpZgorICAgICAgICBk
cm9wcGVkLgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6IEFkZGVkIG51bWJlck9mRmls
ZXMoKQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpu
dW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKwogMjAxMS0xMS0wMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFm
ZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDk4NzM4KTogUmVuZGVyVGFi
bGVTZWN0aW9uOjpyZWNhbGNDZWxscyBkb2VzIG5vdCBwcm9wZXJseSBzaHJpbmsgdGhlIFJvd1N0
cnVjdCBncmlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGU1YjRmNGZmMTMxMzIxY2Jk
MzBjMWQzMzI0YzNlYmUwZDI0NTZmNmQuLmRhNzc0NGY1YzQ0MzVkZmYyMzYxZDBiYWFmMWVlMWE2
NThmOTg5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBE
cmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdn
aW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JP
dmVyKTogVGhlIGRyYWcgb3BlcmF0aW9uIGlzIGNvbnRhaW5lZAorICAgICAgICB3aXRoaW4gdGhl
IG5ldyBEcmFnU2Vzc2lvbiBzdHJ1Y3QuIE1pbm9yIHJlZmFjdG9yLgorCiAyMDExLTExLTAxICBB
bG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgY2hy
b21pdW0gREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMTk1YzJkNzI2MDZkMGVhYzlhZDdlNDc0
MWQyNzYwNjA2ODQ3MWFkLi40YzUzYTNjMDE4MDQwZTk2MjQ3YmJjZGY5NmViYzQ3OTQ3MTBiNTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDEgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBw
cm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBkcmFnZ2luZ0VudGVyZWQ6XSk6IERyYWdPcGVyYXRpb24gaXMgbm93IGluc2lkZSB0aGUg
RHJhZ1Nlc3Npb24gc3RydWN0LgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nVXBkYXRlZDpd
KToKKwogMjAxMS0xMS0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ3Jhc2ggaW4gUERGIGNvZGUgd2hlbiBzY3JpcHQgaGFzIGlsbGVnYWwgVVRGLTggb3IgVVRG
LTE2IHNlcXVlbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDA0YjhiZjE1MTVmNWY2NTg0ZWRhZDgxZWI1YTlk
YjYzODRmMjVlZjkuLjU2MGUxMmZiZjRmNmRhZDVmMzNkOTJjZWMwNWIxOGJjNTBiMWFkMTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMS0wMSAgSm9uIExlZSAgPGpvbmxlZUBh
cHBsZS5jb20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9y
ZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIG5vdyBwYXNzIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QgZnJvbSB0aGUgV2Vi
IHRvIHRoZSBVSSBwcm9jZXNzLCBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBEcmFnT3BlcmF0aW9u
IGVudW0uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6
OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkpOiBXZSBub3cgY2FjaGUgdGhlIGxhc3Qga25vd24gRHJhZ1Nlc3Np
b24gc3RhdGUKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmFnU2Vzc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVzZXREcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKToKKwogMjAxMS0xMS0wMSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4u
dHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gTWVyZ2UgY29tbW9uIGRlc2t0b3Ag
YW5kIHRvdWNoIHZpZXcgQVBJcyB1bmRlciBhIGJhc2UgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmYyODE5NWM3ZDU0
ODQ5OTI5YmFiZGYzNGNjYjkwM2YzNGE3NTc5Yy4uMzczMjhiM2M1OTI4NmY1MzY3MmI4YTIyMDEy
M2JkM2VkMjFiOWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzc4LDYgKzc3OCw3IEBACiAJCTMxNjExRTYxMEUxQzRFMTQw
MEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUUwRTFDNEUxNDAwRjZBNTc5IC8q
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmggKi87IH07CiAJCTMxNjExRTYyMEUxQzRFMTQw
MEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTVGMEUxQzRFMTQwMEY2QTU3OSAv
KiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSAqLzsgfTsKIAkJMzE2MTFFNjMwRTFDNEUx
NDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTYwMEUxQzRFMTQw
MEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi87IH07CisJ
CTMxNjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYy
IC8qIERyYWdTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJh
bWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxNkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAg
Ki87IH07CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1l
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2
RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07
CiAJCTMxNkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUw
NkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07
CkBAIC03ODU1LDYgKzc4NTYsNyBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNjEx
RTYwMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1RyYW5zZm9y
bVZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2OTM3OUEx
NDYwOUM1QjAwQzAxMzYyIC8qIERyYWdTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERyYWdTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
NkZFMDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU0tleWZyYW1lUnVs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZFMEU2Q0NCRUUwMEJG
NjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFt
ZXNSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQz
Nyw2ICsxNTQzOSw3IEBACiAJCQkJQTdDQTU5NUMwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250
cm9sbGVyLmNwcCAqLywKIAkJCQlBN0NBNTk1QjBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRy
b2xsZXIuaCAqLywKIAkJCQk4MUY2NUZGNTEzNzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0YXRlLmgg
Ki8sCisJCQkJMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYyIC8qIERyYWdTZXNzaW9uLmggKi8sCiAJ
CQkJMUFGMzI2NzcwRDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovLAogCQkJCTkz
QzA5QTgwMEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5
QTUyMEIwNjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKQEAgLTI0NTQxLDYgKzI0
NTQ0LDcgQEAKIAkJCQk5QjNBODg3MjE0NTYzMkY5MDAzQUU4RjUgLyogRE9NRE9NU2V0dGFibGVU
b2tlbkxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAv
KiBBdWRpb1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDhGRUJE
RDE0M0UzRUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTMxNjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJ
CX07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYwOTk2OTBiYjBk
OGYyNTEzMDljYzk1MjMxMzZkNzYyM2ZhNDg1ZjUuLjE5NGQyMGQ5MjhhZmI3MDRmNDYxYjJiOThh
M2JjNGU3ZmE4MDEwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBA
IC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFn
Q2xpZW50LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJEcmFnU2Vzc2lvbi5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKQEAgLTE2Miw3ICsxNjMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpk
cmFnRW5kZWQoKQogICAgIG1fY2xpZW50LT5kcmFnRW5kZWQoKTsKIH0KIAotRHJhZ09wZXJhdGlv
biBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQorRHJhZ1Nl
c3Npb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsK
ICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJhZ0RhdGEpOwogfQpAQCAtMTgyLDcg
KzE4Myw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdE
YXRhKQogICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CiB9CiAKLURyYWdPcGVyYXRpb24g
RHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdTZXNz
aW9uIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiB7CiAg
ICAgcmV0dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsKIH0KQEAgLTIzMiw3ICsy
MzMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjptb3VzZU1vdmVkSW50b0RvY3VtZW50KERvY3Vt
ZW50KiBuZXdEb2N1bWVudCkKICAgICBtX2RvY3VtZW50VW5kZXJNb3VzZSA9IG5ld0RvY3VtZW50
OwogfQogCi1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRl
ZChEcmFnRGF0YSogZHJhZ0RhdGEpCitEcmFnU2Vzc2lvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0Vu
dGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIEFTU0VSVChkcmFnRGF0
YSk7CiAgICAgQVNTRVJUKG1fcGFnZS0+bWFpbkZyYW1lKCkpOyAvLyBJdCBpcyBub3QgcG9zc2li
bGUgaW4gTWFjIFdlYktpdCB0byBoYXZlIGEgUGFnZSB3aXRob3V0IGEgbWFpbkZyYW1lKCkKQEAg
LTI0MSwxNCArMjQyLDE0IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRl
cmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICBtX2RyYWdEZXN0aW5hdGlvbkFj
dGlvbiA9IG1fY2xpZW50LT5hY3Rpb25NYXNrRm9yRHJhZyhkcmFnRGF0YSk7CiAgICAgaWYgKG1f
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID09IERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmUpIHsKICAg
ICAgICAgY2FuY2VsRHJhZygpOyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1vdXNlTW92ZWRJbnRv
RG9jdW1lbnQoMCk/Ci0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKKyAgICAgICAg
cmV0dXJuIERyYWdTZXNzaW9uKCk7CiAgICAgfQogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRp
b24gPSBEcmFnT3BlcmF0aW9uTm9uZTsKLSAgICBib29sIGhhbmRsZWRCeURvY3VtZW50ID0gdHJ5
RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwgb3BlcmF0aW9u
KTsKKyAgICBEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbjsKKyAgICBib29sIGhhbmRsZWRCeURvY3Vt
ZW50ID0gdHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwg
ZHJhZ1Nlc3Npb24pOwogICAgIGlmICghaGFuZGxlZEJ5RG9jdW1lbnQgJiYgKG1fZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCkpCi0gICAgICAgIHJldHVy
biBvcGVyYXRpb25Gb3JMb2FkKGRyYWdEYXRhKTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOworICAg
ICAgICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBvcGVyYXRpb25Gb3JMb2FkKGRyYWdEYXRhKTsK
KyAgICByZXR1cm4gZHJhZ1Nlc3Npb247CiB9CiAKIHN0YXRpYyBIVE1MSW5wdXRFbGVtZW50KiBh
c0ZpbGVJbnB1dChOb2RlKiBub2RlKQpAQCAtMjg0LDcgKzI4NSw3IEBAIHN0YXRpYyBFbGVtZW50
KiBlbGVtZW50VW5kZXJNb3VzZShEb2N1bWVudCogZG9jdW1lbnRVbmRlck1vdXNlLCBjb25zdCBJ
bnRQb2ludCYKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOwogfQogCi1ib29s
IERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFn
RGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgb3BlcmF0aW9uKQor
Ym9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwg
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdTZXNzaW9uJiBkcmFnU2Vzc2lv
bikKIHsKICAgICBBU1NFUlQoZHJhZ0RhdGEpOwogCkBAIC0yOTYsNyArMjk3LDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uIGEKIAogICAgIG1faXNIYW5kbGluZ0RyYWcgPSBmYWxzZTsKICAgICBp
ZiAoYWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKSB7Ci0gICAgICAgIG1f
aXNIYW5kbGluZ0RyYWcgPSB0cnlESFRNTERyYWcoZHJhZ0RhdGEsIG9wZXJhdGlvbik7CisgICAg
ICAgIG1faXNIYW5kbGluZ0RyYWcgPSB0cnlESFRNTERyYWcoZHJhZ0RhdGEsIGRyYWdTZXNzaW9u
Lm9wZXJhdGlvbik7CiAgICAgICAgIC8vIERvIG5vdCBjb250aW51ZSBpZiBtX2RvY3VtZW50VW5k
ZXJNb3VzZSBoYXMgYmVlbiByZXNldCBieSB0cnlESFRNTERyYWcuCiAgICAgICAgIC8vIHRyeURI
VE1MRHJhZyBmaXJlcyBkcmFnZW50ZXIgZXZlbnQuIFRoZSBldmVudCBsaXN0ZW5lciB0aGF0IGxp
c3RlbnMKICAgICAgICAgLy8gdG8gdGhpcyBldmVudCBtYXkgY3JlYXRlIGEgbmVzdGVkIG1lc3Nh
Z2UgbG9vcCAob3BlbiBhIG1vZGFsIGRpYWxvZyksCkBAIC0zMTcsNyArMzE4LDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uIGEKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmICgo
YWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpICYmIGNhblByb2Nlc3NEcmFn
KGRyYWdEYXRhKSkgewogICAgICAgICBpZiAoZHJhZ0RhdGEtPmNvbnRhaW5zQ29sb3IoKSkgewot
ICAgICAgICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbkdlbmVyaWM7CisgICAgICAgICAg
ICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uR2VuZXJpYzsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTMyNSwxMSArMzI2LDMyIEBAIGJvb2wg
RHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdE
ZXN0aW5hdGlvbkFjdGlvbiBhCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5k
ZXJNb3VzZShtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOwogICAgICAgICBpZiAo
IWVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghYXNGaWxl
SW5wdXQoZWxlbWVudCkpCisgICAgICAgIAorICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50QXNGaWxlSW5wdXQgPSBhc0ZpbGVJbnB1dChlbGVtZW50KTsKKyAgICAgICAgaWYgKCFlbGVt
ZW50QXNGaWxlSW5wdXQpCiAgICAgICAgICAgICBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIo
KS0+c2V0Q2FyZXRQb3NpdGlvbihtX2RvY3VtZW50VW5kZXJNb3VzZS0+ZnJhbWUoKS0+dmlzaWJs
ZVBvc2l0aW9uRm9yUG9pbnQocG9pbnQpKTsKIAogICAgICAgICBGcmFtZSogaW5uZXJGcmFtZSA9
IGVsZW1lbnQtPmRvY3VtZW50KCktPmZyYW1lKCk7Ci0gICAgICAgIG9wZXJhdGlvbiA9IGRyYWdJ
c01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25N
b3ZlIDogRHJhZ09wZXJhdGlvbkNvcHk7CisgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9
IGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVy
YXRpb25Nb3ZlIDogRHJhZ09wZXJhdGlvbkNvcHk7CisgICAgICAgIGRyYWdTZXNzaW9uLm1vdXNl
SXNPdmVyRmlsZUlucHV0ID0gZWxlbWVudEFzRmlsZUlucHV0OworICAgICAgICBkcmFnU2Vzc2lv
bi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMDsKKworICAgICAgICB1bnNpZ25lZCBudW1i
ZXJPZkZpbGVzID0gZHJhZ0RhdGEtPm51bWJlck9mRmlsZXMoKTsKKyAgICAgICAgaWYgKGVsZW1l
bnRBc0ZpbGVJbnB1dCkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+ZGlz
YWJsZWQoKSkKKyAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFj
Y2VwdGVkID0gMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+bXVs
dGlwbGUoKSkKKyAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFj
Y2VwdGVkID0gbnVtYmVyT2ZGaWxlczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgaWYgKCFkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
KQorICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25O
b25lOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIFdlIGFyZSBub3Qgb3ZlciBhIGZp
bGUgaW5wdXQgZWxlbWVudC4gVGhlIGRyYWdnZWQgaXRlbShzKSB3aWxsIG9ubHkKKyAgICAgICAg
ICAgIC8vIGJlIGxvYWRlZCBpbnRvIHRoZSB2aWV3IHRoZSBudW1iZXIgb2YgZHJhZ2dlZCBpdGVt
cyBpcyAxLgorICAgICAgICAgICAgZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRl
ZCA9IG51bWJlck9mRmlsZXMgIT0gMSA/IDAgOiAxOworICAgICAgICAKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIC8vIElmIHdlJ3JlIG5vdCBvdmVyIGFuIGVkaXRhYmxlIHJlZ2lv
biwgbWFrZSBzdXJlIHdlJ3JlIGNsZWFyaW5nIGFueSBwcmlvciBkcmFnIGN1cnNvci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCAyNjFhOGQ1M2Y3MzY1OGIwNzFmMjEwNTZh
ZTU4YjI0YjFiYjQ1OTY5Li5kNTI1OTFkMTU0OWZjYmQ5MGUxMGJiMGI0ZTU2MzRkMDMwYWJkZjg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBEcmFnQ2xp
ZW50OwogICAgIGNsYXNzIERyYWdEYXRhOworICAgIHN0cnVjdCBEcmFnU2Vzc2lvbjsKICAgICBz
dHJ1Y3QgRHJhZ1N0YXRlOwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRnJhbWU7CkBA
IC01NSw5ICs1Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfkRyYWdDb250cm9s
bGVyKCk7CiAgICAgICAgIERyYWdDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xp
ZW50OyB9CiAKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwor
ICAgICAgICBEcmFnU2Vzc2lvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwogICAgICAgICB2b2lk
IGRyYWdFeGl0ZWQoRHJhZ0RhdGEqKTsKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBkcmFnVXBkYXRl
ZChEcmFnRGF0YSopOworICAgICAgICBEcmFnU2Vzc2lvbiBkcmFnVXBkYXRlZChEcmFnRGF0YSop
OwogICAgICAgICBib29sIHBlcmZvcm1EcmFnKERyYWdEYXRhKik7CiAgICAgICAgIAogICAgICAg
ICAvLyBGSVhNRTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJlbW92ZSBhIG51bWJlciBvZiB0
aGVzZSBhY2Nlc3NvcnMgb25jZSBhbGwKQEAgLTk0LDkgKzk1LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBib29sIGRpc3BhdGNoVGV4dElucHV0RXZlbnRGb3IoRnJhbWUqLCBEcmFn
RGF0YSopOwogICAgICAgICBib29sIGNhblByb2Nlc3NEcmFnKERyYWdEYXRhKik7CiAgICAgICAg
IGJvb2wgY29uY2x1ZGVFZGl0RHJhZyhEcmFnRGF0YSopOwotICAgICAgICBEcmFnT3BlcmF0aW9u
IGRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9uIGRy
YWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gb3Bl
cmF0aW9uRm9yTG9hZChEcmFnRGF0YSopOwotICAgICAgICBib29sIHRyeURvY3VtZW50RHJhZyhE
cmFnRGF0YSosIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ09wZXJhdGlvbiYpOworICAgICAg
ICBib29sIHRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSosIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwg
RHJhZ1Nlc3Npb24mKTsKICAgICAgICAgYm9vbCB0cnlESFRNTERyYWcoRHJhZ0RhdGEqLCBEcmFn
T3BlcmF0aW9uJik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbihEcmFnRGF0
YSopOwogICAgICAgICB2b2lkIGNhbmNlbERyYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ1Nlc3Npb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYjczNzFlNWVhYzk5MzA0NGNlOGY0NjI5NGEzNjYxODU3YTY3YTMwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU2Vzc2lvbi5oCkBAIC0w
LDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERyYWdTZXNzaW9uX2gKKyNkZWZpbmUgRHJh
Z1Nlc3Npb25faAorCisjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIAorc3RydWN0IERyYWdTZXNzaW9uIHsKKyAgICBEcmFnU2Vzc2lvbigpCisgICAg
OiBvcGVyYXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtb3VzZUlzT3ZlckZpbGVJbnB1
dChmYWxzZSkKKyAgICAsIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoMCkgeyB9CisgICAgRHJh
Z09wZXJhdGlvbiBvcGVyYXRpb247CisgICAgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dDsKKyAg
ICB1bnNpZ25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOworfTsKKworfQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IGFmYTIxOWYzYjcyMjNiZGRkNThjMjdl
ZjY3MmQ4YzZjYTcwY2YxYmMuLmJiMjQyZjllOTE2MmE3NjllMTg2MmVmMGE5MzQ4YWQ5NWU4NTg4
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE2LDYgKzExNiw3IEBAIHB1
YmxpYzoKICAgICBib29sIGNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0OwogICAgIGJvb2wgY29udGFp
bnNDb2xvcigpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNGaWxlcygpIGNvbnN0OworICAgIHVu
c2lnbmVkIG51bWJlck9mRmlsZXMoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNQ
YXN0ZWJvYXJkICpwYXN0ZWJvYXJkKCkgeyByZXR1cm4gbV9wYXN0ZWJvYXJkLmdldCgpOyB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdE
YXRhQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0Rh
dGFDaHJvbWl1bS5jcHAKaW5kZXggMDlkYThhNGE0MGQ2NzJmZjQyODY1ZjhjODk5YzY2NjcyNWM0
ZjVlMi4uOWMzODM4NjAyNTFjNzQ3MDA5MmY5NjUzN2E2MTc3OTI4ODhiZGJiYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5j
cHAKQEAgLTczLDYgKzczLDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25z
dAogICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmNvbnRhaW5zRmlsZW5hbWVzKCk7CiB9
CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKS5zaXplKCk7Cit9CisKIHZvaWQgRHJh
Z0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiAgICAg
Y29uc3QgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+Zmls
ZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0Rh
dGFFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcApp
bmRleCBiMzViOTYzZWE5YzQ2OTg2MDE3ZjYzOTc0YjA3NWEzNDM3ZDFkNDY2Li45ZDdlOWNhNzk1
YzhmN2QxYmMzNjg4MmEzYTRhYzgxZjRiOGMwOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQxLDYgKzQxLDExIEBAIGJvb2wgRHJhZ0RhdGE6
OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordW5zaWduZWQg
RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiB2
b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAog
ewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3Rr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKaW5kZXgg
Y2M5YTIwODAwM2IyN2QxMGE5YzhlOGZlNmMzZGJiM2MzOGZjMDBlNC4uMDJhNDc0OWQzM2NiYjI5
OWM4ZGQ2NmUzNWMwMDkxYWIyOGYxMGFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRHJhZ0RhdGFHdGsuY3BwCkBAIC00MSw2ICs0MSwxMSBAQCBib29sIERyYWdEYXRhOjpjb250
YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNGaWxl
bmFtZXMoKTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAor
eworICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKK30K
Kwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29u
c3QKIHsKICAgICByZXN1bHQgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCmluZGV4IDJjYTk0M2RlMTFi
MGQ5YTgwY2EzNzU4ZTc0MzEzYjJhNWU5MTk5YzIuLjI5NGVlYmJiOGNjMmU5NTMyYzhiNzJkZmVj
YWNhMGU5MjhiOGJiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
cmFnRGF0YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFN
YWMubW0KQEAgLTc2LDYgKzc2LDEzIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBj
b25zdAogICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSB0eXBlc10gY29udGFpbnNPYmpl
Y3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJl
ck9mRmlsZXMoKSBjb25zdAoreworICAgIGlmICghW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNd
IGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAgICAgIHJldHVybiAw
OworICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5T
RmlsZW5hbWVzUGJvYXJkVHlwZV0gY291bnRdOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVu
YW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIE5TQXJyYXkgKmZpbGVu
YW1lcyA9IFttX3Bhc3RlYm9hcmQuZ2V0KCkgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1l
c1Bib2FyZFR5cGVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJh
Z0RhdGFRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcApp
bmRleCAyNTU0ZGY0MjM1MDc2OWJlYmYzY2EzMjJlNzcyNzJjZDIxMzlkMmJiLi4wMzAzYWQ3Yzky
NGExNWRkZGUyZTM0YjdmOWY4OGFlMTM3ZDhmMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9EcmFnRGF0YVF0LmNwcApAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29u
dGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFn
RGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQg
RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3BsYXRmb3JtRHJhZ0RhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2lu
L0RyYWdEYXRhV2luLmNwcAppbmRleCAwOGI2ZWIyZDc2ZDUzZjVhNmU3MzYxZjg4ZWE2MWYwYWNl
NGUxYjczLi45YWI2MmI5NTBmZmIwNWU5MTRjN2VkNzNlYjRlNDRjOGY0NWExN2MxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKQEAgLTExMCw2ICsxMTAs
MTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuICht
X3BsYXRmb3JtRHJhZ0RhdGEpID8gU1VDQ0VFREVEKG1fcGxhdGZvcm1EcmFnRGF0YS0+UXVlcnlH
ZXREYXRhKGNmSERyb3BGb3JtYXQoKSkpIDogbV9kcmFnRGF0YU1hcC5jb250YWlucyhjZkhEcm9w
Rm9ybWF0KCktPmNmRm9ybWF0KTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmls
ZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVu
YW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3Jt
RHJhZ0RhdGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0Ry
YWdEYXRhV2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFX
aW5DRS5jcHAKaW5kZXggNjc5MjI5ZGQ1ZmMxN2IyNWNlN2QyN2UwYjYzYjJkZTdiMWIyNmUwMi4u
Y2M1ZjdhN2FhZDMxZDc3MzEwMDdlMGE4MGRlOTcxYjkyM2JkODU0NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKQEAgLTQ3LDYgKzQ3LDEx
IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5n
PiYpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9E
cmFnRGF0YVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3Bw
CmluZGV4IGJlMjQwNDJkNDc4NmQ1OGQ0NGRlZmMzMTg4ZWQ5OTU2ZDZjYjMwNDkuLjgyZTQ3NDBh
NGRkMDdiOTY2MDJkNDNkZWE1MWQ5OTkxYTYzMWQxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3d4L0RyYWdEYXRhV3guY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBib29sIERyYWdEYXRhOjpj
b250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Vuc2lnbmVkIERy
YWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA4OWE2
ZTRkMmMwYjFkMjVhNjRjMzMyNmJhN2U1MTA1M2ZjZjg1ZTQzLi5lNzhhZDY0MzA2NzUxNjljNGEz
YjUwYTMzMDM0YzY5NDllMTg5MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkRyYWdTY3JvbGxUaW1lci5oIgor
I2luY2x1ZGUgIkRyYWdTZXNzaW9uLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RXZlbnRIYW5kbGVyLmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC0yMDY3LDExICsy
MDY4LDEzIEBAIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50
ZXJPck92ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvCiAgICAgICAgIHNjcmVlblBvaW50LAog
ICAgICAgICBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihtX29wZXJhdGlvbnNBbGxvd2VkKSk7
CiAKLSAgICBEcmFnT3BlcmF0aW9uIGRyb3BFZmZlY3Q7CisgICAgRHJhZ1Nlc3Npb24gZHJhZ1Nl
c3Npb247CiAgICAgaWYgKGRyYWdBY3Rpb24gPT0gRHJhZ0VudGVyKQotICAgICAgICBkcm9wRWZm
ZWN0ID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpOwor
ICAgICAgICBkcmFnU2Vzc2lvbiA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVy
ZWQoJmRyYWdEYXRhKTsKICAgICBlbHNlCi0gICAgICAgIGRyb3BFZmZlY3QgPSBtX3BhZ2UtPmRy
YWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgICAgIGRyYWdTZXNz
aW9uID0gbV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEpOwor
CisgICAgRHJhZ09wZXJhdGlvbiBkcm9wRWZmZWN0ID0gZHJhZ1Nlc3Npb24ub3BlcmF0aW9uOwog
CiAgICAgLy8gTWFzayB0aGUgZHJvcCBlZmZlY3Qgb3BlcmF0aW9uIGFnYWluc3QgdGhlIGRyYWcg
c291cmNlJ3MgYWxsb3dlZCBvcGVyYXRpb25zLgogICAgIGlmICghKGRyb3BFZmZlY3QgJiBkcmFn
RGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KaW5kZXggMTlmNzQ3NjlkZTljMzY4OTFlZjBhNGY4OGExNTcxNzVjY2ExOTIy
Yi4uMDg2NGZhOGVlOWVhZTUyNDI3OGY3YjM2Y2EzOTM3NTMyYWRjOWIzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTE3LDYgKzExNyw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdTZXNz
aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVu
dEhhbmRsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uSGFuZGxlcnMuaD4KQEAgLTM4
NjQsNyArMzg2NSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJl
c29sdXRpb25Ob3RpZmljYXRpb24gPSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xp
ZW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2Jh
bChnbG9iYWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5k
b3ddKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2Jh
bCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJj
ZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsK
LSAgICByZXR1cm4gY29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRy
YWdEYXRhKTsKKyAgICByZXR1cm4gY29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0Vu
dGVyZWQoJmRyYWdEYXRhKS5vcGVyYXRpb247CiB9CiAKIC0gKE5TRHJhZ09wZXJhdGlvbilkcmFn
Z2luZ1VwZGF0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCkBAIC0zODc2LDcg
KzM4NzcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3aW5kb3dEaWRDaGFuZ2VSZXNvbHV0
aW9uTm90aWZpY2F0aW9uID0gQCJOU1dpbmRvd0RpZENoYQogICAgIEludFBvaW50IGNsaWVudChb
ZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dKTsKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xv
YmFsUG9pbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkp
OwogICAgIERyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0
YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVy
YXRpb25NYXNrXSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAg
cmV0dXJuIHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7Cisg
ICAgcmV0dXJuIHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSku
b3BlcmF0aW9uOwogfQogCiAtICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0lu
Zm8+KWRyYWdnaW5nSW5mbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJr
aXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2Vz
LnB5CmluZGV4IDZjYzUzMTY1YWMzNjJiNWRhNTM5NDE1ZDljZGIzOGQ5YzgyZjU1N2IuLjllOWQ2
YzNiZWU0ZDFlMmU5MDZlNzBlY2MxMGZiZjhjZmViNzA3MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
Y3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE3MCw2ICsxNzAsNyBAQCBkZWYgc3RydWN0
X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpBbmltYXRpb24n
LAogICAgICAgICAnV2ViQ29yZTo6RWRpdG9yQ29tbWFuZHNGb3JLZXlFdmVudCcsCiAgICAgICAg
ICdXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZScsCisgICAgICAgICdXZWJDb3JlOjpEcmFn
U2Vzc2lvbicsCiAgICAgICAgICdXZWJDb3JlOjpGbG9hdFBvaW50M0QnLAogICAgICAgICAnV2Vi
Q29yZTo6RmlsZUNob29zZXJTZXR0aW5ncycsCiAgICAgICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0
YWlsJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKaW5kZXggZjQzMTQxMGE3MDI0YTNjMWJmODAzNjQ3MDM2MTkyNTIxYTY1NjNlOS4uNjcwMDBl
MGUxODdjYjFmN2IyOWFlOGYxM2I4NTc4OGVlYTI5MmFiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1cnNvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VEZXRhaWxzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0
Lmg+CkBAIC02MDQsNiArNjA1LDI0IEBAIGJvb2wgQXJndW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdS
ZXN1bHQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBUZXh0Q2hlCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxEcmFnU2Vzc2lvbj46OmVuY29kZShB
cmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IERyYWdTZXNzaW9uJiByZXN1bHQpCit7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKTsKKyAgICBlbmNvZGVyLT5l
bmNvZGUocmVzdWx0Lm1vdXNlSXNPdmVyRmlsZUlucHV0KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
cmVzdWx0Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpOworfQorCitib29sIEFyZ3VtZW50Q29k
ZXI8RHJhZ1Nlc3Npb24+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBEcmFnU2Vz
c2lvbiYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlRW51bShyZXN1bHQub3Bl
cmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2Rl
KHJlc3VsdC5tb3VzZUlzT3ZlckZpbGVJbnB1dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkp
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogI2lmIFBMQVRG
T1JNKFFUKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8RmxvYXRQb2ludDNEPjo6ZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgRmxvYXRQb2ludDNEJiBmbG9hdFBvaW50M0QpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYWNl
NWQ5ZDYxNTk0YmZhMDcyNGJkZjdiMDE2NzJhMDIzMTU0YzhiNC4uZTc2ZjNhZmQ1OGQ4NzNhNDI2
NTIyY2JhYWM2MzA3ODQ2MDViMzQxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDcsNiArNDcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAgIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7
CiAgICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5lOworICAgIHN0cnVjdCBEcmFnU2Vzc2lv
bjsKICAgICBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5nczsKICAgICBzdHJ1Y3QgR3JhbW1hckRl
dGFpbDsKICAgICBzdHJ1Y3QgTWltZUNsYXNzSW5mbzsKQEAgLTIxMyw2ICsyMTQsMTEgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+
IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29y
ZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciosIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwogfTsKKyAgICAKK3RlbXBs
YXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RHJhZ1Nlc3Npb24+IHsKKyAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6RHJhZ1Nl
c3Npb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2ViQ29y
ZTo6RHJhZ1Nlc3Npb24mKTsKK307CiAKICNpZiBQTEFURk9STShRVCkKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQb2ludDNEPiB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZGViMWQwNjc1MTMwM2Q3ODk5YzNj
MDM4YWUyY2MyYjQwYWZiOTI0NC4uYmNjZjY4OWYxYTgzYTVhZmE1OGM0MWExMmNlMjBlOWIwYzU3
M2IzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAt
NjEsNiArNjEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9EcmFnQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2lt
cG9ydCA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFJlY3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2Fy
ZEV2ZW50Lmg+CkBAIC0xNTg2LDcgKzE1ODcsOSBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJs
aW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQog
ICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9j
YXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJ
bmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5n
SW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFn
czpkcmFnZ2luZ0luZm9dKTsKICAgICBfZGF0YS0+X3BhZ2UtPmRyYWdVcGRhdGVkKCZkcmFnRGF0
YSwgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSk7Ci0gICAgcmV0dXJu
IF9kYXRhLT5fcGFnZS0+ZHJhZ09wZXJhdGlvbigpOworICAgIAorICAgIFdlYkNvcmU6OkRyYWdT
ZXNzaW9uIGRyYWdTZXNzaW9uID0gX2RhdGEtPl9wYWdlLT5kcmFnU2Vzc2lvbigpOworICAgIHJl
dHVybiBkcmFnU2Vzc2lvbi5vcGVyYXRpb247CiB9CiAKIC0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6
KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNjNmMzMjM3NjQzNjA2NTRjNjg1ZWY0ODU0MDEwNGRm
NzM4MmJiM2MuLmZlNDJlNGY0MTRmOGJmMGY3NWU1N2JiMzNmZjhiNDc2ZWIxN2UwYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC03MSw3ICs3MSw5IEBA
CiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlP
cmlnaW4uaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9E
cmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
SU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0xODEsNyArMTgzLDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQ
YWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwgUGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJv
eHk+IHAKICAgICAsIG1faGFzU3BlbGxEb2N1bWVudFRhZyhmYWxzZSkKICAgICAsIG1fcGVuZGlu
Z0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50KDApCiAgICAgLCBtX21haW5GcmFtZUhhc0N1
c3RvbVJlcHJlc2VudGF0aW9uKGZhbHNlKQotICAgICwgbV9jdXJyZW50RHJhZ09wZXJhdGlvbihE
cmFnT3BlcmF0aW9uTm9uZSkKKyAgICAsIG1fY3VycmVudERyYWdTZXNzaW9uKCkKICAgICAsIG1f
bWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcihmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1l
SGFzVmVydGljYWxTY3JvbGxiYXIoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUlzUGlubmVkVG9M
ZWZ0U2lkZShmYWxzZSkKQEAgLTg0Miw5ICs4NDQsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyQWN0aW9uIGFjdGlvbiwgRHJh
ZwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKQordm9pZCBXZWJQYWdlUHJveHk6OmRp
ZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vz
c2lvbikKIHsKLSAgICBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gc3RhdGljX2Nhc3Q8RHJhZ09w
ZXJhdGlvbj4ocmVzdWx0T3BlcmF0aW9uKTsKKyAgICBtX2N1cnJlbnREcmFnU2Vzc2lvbiA9IGRy
YWdTZXNzaW9uOwogfQogCiAjaWYgUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKEdUSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBkZTY3ZDQ2NmNiNzRiMzlmYWJh
Mjc2MzIwYWRlOGJhZTFiZjUxYjMyLi4zMWQ0YjFmYzE4ZTZjYWM3NDE0YzZmNTljZmQwMDgxNzVj
MDQ0ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC01NCw2
ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAi
V2ViVUlDbGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdBY3Rpb25zLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3Vs
dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CkBAIC00NjYsNyArNDY3LDcgQEAgcHVibGljOgogICAgIHZvaWQg
ZHJhZ0V4aXRlZChXZWJDb3JlOjpEcmFnRGF0YSosIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VO
YW1lID0gU3RyaW5nKCkpOwogICAgIHZvaWQgcGVyZm9ybURyYWcoV2ViQ29yZTo6RHJhZ0RhdGEq
LCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdlTmFtZSwgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJik7CiAKLSAgICB2b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50
NjRfdCByZXN1bHRPcGVyYXRpb24pOworICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKFdlYkNvcmU6OkRyYWdTZXNzaW9uKTsKICAgICB2b2lkIGRyYWdFbmRlZChjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3BlcmF0aW9uKTsKICNpZiBQTEFURk9STShNQUMp
CiAgICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBv
c2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBi
b29sIGlzTGlua0RyYWcpOwpAQCAtNTA0LDggKzUwNSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNWYWxpZCgpOwogICAgIAotICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlv
bigpIHsgcmV0dXJuIG1fY3VycmVudERyYWdPcGVyYXRpb247IH0KLSAgICB2b2lkIHJlc2V0RHJh
Z09wZXJhdGlvbigpIHsgbV9jdXJyZW50RHJhZ09wZXJhdGlvbiA9IFdlYkNvcmU6OkRyYWdPcGVy
YXRpb25Ob25lOyB9CisgICAgV2ViQ29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb24oKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnREcmFnU2Vzc2lvbjsgfQorICAgIHZvaWQgcmVzZXREcmFnT3Bl
cmF0aW9uKCkgeyBtX2N1cnJlbnREcmFnU2Vzc2lvbiA9IFdlYkNvcmU6OkRyYWdTZXNzaW9uKCk7
IH0KIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIApAQCAtOTI2LDcgKzkyNyw3
IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wZW5kaW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNz
YWdlQ291bnQ7CiAKICAgICBib29sIG1fbWFpbkZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50YXRpb247
Ci0gICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBtX2N1cnJlbnREcmFnT3BlcmF0aW9uOworICAg
IFdlYkNvcmU6OkRyYWdTZXNzaW9uIG1fY3VycmVudERyYWdTZXNzaW9uOwogCiAgICAgU3RyaW5n
IG1fcGVuZGluZ0FQSVJlcXVlc3RVUkw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDgyYjk2MWNhNjFhNjE4ZWZlMTk5N2Q3
YWFlZDEzNjFjNWZmMjI0NjcuLjNkODUwYjkwMTVkZGFhYjQ4ZDJiZGQ2NzU5Y2Y2YzlhMDgxYTJk
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgpAQCAtMjA1LDcgKzIwNSw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAg
ICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsKIAogICAgICMgRHJhZyBhbmQgZHJvcCBt
ZXNzYWdlcwotICAgIERpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCByZXN1
bHRPcGVyYXRpb24pCisgICAgRGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKFdlYkNvcmU6
OkRyYWdTZXNzaW9uIGRyYWdTZXNzaW9uKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICBTZXREcmFn
SW1hZ2UoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYktpdDo6U2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBib29sIGxpbmtEcmFnKQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYzFkZGQ4ZGYx
ODRlYTQ0YmVhZDhmM2JmMWNmODMzOWNjNzNjZTQ5NC4uMzFiYzgwNGMyZjg4NzA2YmY3ZWViOWQ0
N2EyYjliNmIyMDFkNmU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnRNYXJrZXJDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdT
ZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+
CkBAIC0xODA5LDcgKzE4MTAsNyBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2Fy
ZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250
cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9z
aXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50NjRfdCBkcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFdlYkNvcmU6OkRyYWdEYXRhTWFwJiBkYXRhTWFw
LCB1aW50MzJfdCBmbGFncykKIHsKICAgICBpZiAoIW1fcGFnZSkgewotICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
T3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRp
ZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29udHJvbGxlcjo6RHJhZ1Nlc3Npb24o
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4NDAsNyArMTg0MSw3IEBAIHZvaWQg
V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgY2xpCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFj
dGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKQogewogICAg
IGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25lKSk7CisgICAgICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKERyYWdTZXNzaW9uKCkpKTsKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU1pbWVEYXRh
KiBkYXRhID0gY29uc3RfY2FzdDxRTWltZURhdGEqPihkcmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7
CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0xODg0LDcgKzE4ODUsNyBAQCB2b2lkIFdlYlBhZ2U6
OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRy
YWdEYXRhIGRyYQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWlu
dDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6
SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0aW9u
TWFzaywgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUsIHVpbnQzMl90IGZsYWdzLCBjb25z
dCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiB7CiAg
ICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUpKTsKKyAgICAg
ICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJB
Y3Rpb24oRHJhZ1Nlc3Npb24oKSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113269</attachid>
            <date>2011-11-01 17:53:35 -0700</date>
            <delta_ts>2011-11-02 12:53:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111101175407.patch</filename>
            <type>text/plain</type>
            <size>39631</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg5ODEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBjZjNmY2U2OTIxM2Y2Mjdi
NWFlYjUxMDc0N2ViNDU1MTFjMzE0NTdhLi45OWU4MDNmODRlMjc3MWVlMWNjNDBhZGJkYjJmMDQ5
Mzc0YmZkMTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMTEtMTEtMDEgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdTZXNzaW9uIGlzIHVwZGF0ZWQgd2l0aCBkYXRhIHJlZ2Fy
ZGluZyB3aGV0aGVyIHRoZSBtb3VzZQorICAgICAgICBpcyBvdmVyIGEgZmlsZSBpbnB1dCwgYW5k
IHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZSBhY2NlcHRlZCBiYXNlZCBvbgorICAg
ICAgICB0aGUgbW91c2UncyBsb2NhdGlvbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
Lmg6CisgICAgICAgICogcGFnZS9EcmFnU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdTZXNzaW9uOjpEcmFnU2Vzc2lvbik6IEtlZXAgdHJhY2sgb2YgY3VycmVudCBvcGVy
YXRpb24sIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92ZXIgYSBmaWxlIGlucHV0IGVs
ZW1lbnQsIGFuZCBob3cgbWFueSBmaWxlcyB3b3VsZCBiZSBhY2NlcHRlZCBpZgorICAgICAgICBk
cm9wcGVkLgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6IEFkZGVkIG51bWJlck9mRmls
ZXMoKQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpu
dW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKwogMjAxMS0xMS0wMSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFm
ZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDk4NzM4KTogUmVuZGVyVGFi
bGVTZWN0aW9uOjpyZWNhbGNDZWxscyBkb2VzIG5vdCBwcm9wZXJseSBzaHJpbmsgdGhlIFJvd1N0
cnVjdCBncmlkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGU1YjRmNGZmMTMxMzIxY2Jk
MzBjMWQzMzI0YzNlYmUwZDI0NTZmNmQuLmRhNzc0NGY1YzQ0MzVkZmYyMzYxZDBiYWFmMWVlMWE2
NThmOTg5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIw
MTEtMTEtMDEgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBE
cmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdn
aW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JP
dmVyKTogVGhlIGRyYWcgb3BlcmF0aW9uIGlzIGNvbnRhaW5lZAorICAgICAgICB3aXRoaW4gdGhl
IG5ldyBEcmFnU2Vzc2lvbiBzdHJ1Y3QuIE1pbm9yIHJlZmFjdG9yLgorCiAyMDExLTExLTAxICBB
bG9rIFByaXlhZGFyc2hpICA8YWxva3BAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJvbGwgY2hy
b21pdW0gREVQUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBkMTk1YzJkNzI2MDZkMGVhYzlhZDdlNDc0
MWQyNzYwNjA2ODQ3MWFkLi40YzUzYTNjMDE4MDQwZTk2MjQ3YmJjZGY5NmViYzQ3OTQ3MTBiNTI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDEgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBw
cm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2Vi
VmlldyBkcmFnZ2luZ0VudGVyZWQ6XSk6IERyYWdPcGVyYXRpb24gaXMgbm93IGluc2lkZSB0aGUg
RHJhZ1Nlc3Npb24gc3RydWN0LgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nVXBkYXRlZDpd
KToKKwogMjAxMS0xMS0wMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgQ3Jhc2ggaW4gUERGIGNvZGUgd2hlbiBzY3JpcHQgaGFzIGlsbGVnYWwgVVRGLTggb3IgVVRG
LTE2IHNlcXVlbmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCAzZmE3MmRhMjI2N2I5Y2QxYjdmZGYyMDgw
N2NhM2E4ZTUxYTZlYWNhLi5mYmI0MTJmMWExY2Y1MTY3Mzk4ZWQzNmRkZTUxNjgyOWQwOGJjNWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAxICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJv
dmlkZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMTAzNzkxNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQ
cml2YXRlOjpkcmFnRW50ZXJFdmVudCk6IE1pbm9yIHJlZmFjdG9yaW5nIGJlY2F1c2Ugb3BlcmF0
aW9uIGlzIHN0b3JlZCBpbgorICAgICAgICBuZXcgRHJhZ1Nlc3Npb24gc3RydWN0LgorICAgICAg
ICAoUVdlYlBhZ2VQcml2YXRlOjpkcmFnTW92ZUV2ZW50KTogRGl0dG8uCisKIDIwMTEtMTEtMDEg
IFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAgICAgIFtR
dF1bV0syXSBGaXggYnVpbGQgb2YgV2ViS2l0VGVzdFJ1bm5lciB3aXRoIEVMRiBzeW1ib2wgdmlz
aWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCmluZGV4IDA0YjhiZjE1MTVmNWY2NTg0ZWRhZDgxZWI1YTlkYjYzODRm
MjVlZjkuLjU2MGUxMmZiZjRmNmRhZDVmMzNkOTJjZWMwNWIxOGJjNTBiMWFkMTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMS0wMSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9yZSBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdlIG5vdyBwYXNzIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QgZnJvbSB0aGUgV2ViIHRvIHRo
ZSBVSSBwcm9jZXNzLCBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBEcmFnT3BlcmF0aW9uIGVudW0u
CisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6CisgICAgICAgICogU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChDb3JlSVBDOjo6OmVuY29k
ZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bToKKyAgICAgICAgKC1bV0tWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpX
ZWJQYWdlUHJveHkpOiBXZSBub3cgY2FjaGUgdGhlIGxhc3Qga25vd24gRHJhZ1Nlc3Npb24gc3Rh
dGUKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmFnU2Vzc2lvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6cmVzZXREcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVy
QWN0aW9uKToKKwogMjAxMS0xMS0wMSAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290
dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gTWVyZ2UgY29tbW9uIGRlc2t0b3AgYW5kIHRv
dWNoIHZpZXcgQVBJcyB1bmRlciBhIGJhc2UgY2xhc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmYyODE5NWM3ZDU0ODQ5OTI5
YmFiZGYzNGNjYjkwM2YzNGE3NTc5Yy4uMzczMjhiM2M1OTI4NmY1MzY3MmI4YTIyMDEyM2JkM2Vk
MjFiOWFmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtNzc4LDYgKzc3OCw3IEBACiAJCTMxNjExRTYxMEUxQzRFMTQwMEY2QTU3
OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFFNUUwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmggKi87IH07CiAJCTMxNjExRTYyMEUxQzRFMTQwMEY2QTU3
OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTVGMEUxQzRFMTQwMEY2QTU3OSAvKiBET01X
ZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbSAqLzsgfTsKIAkJMzE2MTFFNjMwRTFDNEUxNDAwRjZB
NTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTYwMEUxQzRFMTQwMEY2QTU3
OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi87IH07CisJCTMxNjkz
NzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYyIC8qIERy
YWdTZXNzaW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMzE2RkUwNzEwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZF
MDZEMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07
CiAJCTMxNkZFMDcyMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkUw
RTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMx
NkZFMDczMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkYwRTZD
Q0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC03
ODU1LDYgKzc4NTYsNyBAQAogCQkzMTYxMUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0
Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzE2MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NV2ViS2l0Q1NTVHJh
bnNmb3JtVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNjExRTYwMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMzE2OTM3OUExNDYwOUM1
QjAwQzAxMzYyIC8qIERyYWdTZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERyYWdTZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZE
MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZFMEU2Q0NCRUUwMEJGNjA4OCAv
KiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTQzNyw2ICsx
NTQzOSw3IEBACiAJCQkJQTdDQTU5NUMwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9sbGVy
LmNwcCAqLywKIAkJCQlBN0NBNTk1QjBCMjdCRDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIu
aCAqLywKIAkJCQk4MUY2NUZGNTEzNzg4RkFBMDBGRjZGMkQgLyogRHJhZ1N0YXRlLmggKi8sCisJ
CQkJMzE2OTM3OUExNDYwOUM1QjAwQzAxMzYyIC8qIERyYWdTZXNzaW9uLmggKi8sCiAJCQkJMUFG
MzI2NzcwRDc4Qjk0NDAwNjhGMEM0IC8qIEVkaXRvckNsaWVudC5oICovLAogCQkJCTkzQzA5QTgw
MEIwNjRGMDAwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuY3BwICovLAogCQkJCTkzQzA5QTUyMEIw
NjREQjMwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXIuaCAqLywKQEAgLTI0NTQxLDYgKzI0NTQ0LDcg
QEAKIAkJCQk5QjNBODg3MjE0NTYzMkY5MDAzQUU4RjUgLyogRE9NRE9NU2V0dGFibGVUb2tlbkxp
c3QuaCBpbiBIZWFkZXJzICovLAogCQkJCUZENjJGNTJFMTQ1ODk4RDgwMDk0QjBFRCAvKiBBdWRp
b1NvdXJjZVByb3ZpZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDhGRUJERDE0M0Uz
RUY3MDA3MjUwMkIgLyogQ1NTQ3Jvc3NmYWRlVmFsdWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTMx
NjkzNzlDMTQ2MDlDNkMwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYwOTk2OTBiYjBkOGYyNTEz
MDljYzk1MjMxMzZkNzYyM2ZhNDg1ZjUuLjE5NGQyMGQ5MjhhZmI3MDRmNDYxYjJiOThhM2JjNGU3
ZmE4MDEwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0zNiw2
ICszNiw3IEBACiAjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKICNpbmNsdWRlICJEcmFnQ2xpZW50
LmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJEcmFnU2Vzc2lvbi5oIgogI2lu
Y2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudC5oIgogI2luY2x1ZGUgIkVs
ZW1lbnQuaCIKQEAgLTE2Miw3ICsxNjMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFnRW5k
ZWQoKQogICAgIG1fY2xpZW50LT5kcmFnRW5kZWQoKTsKIH0KIAotRHJhZ09wZXJhdGlvbiBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQorRHJhZ1Nlc3Npb24g
RHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBy
ZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJhZ0RhdGEpOwogfQpAQCAtMTgyLDcgKzE4Myw3
IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQog
ICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQoMCk7CiB9CiAKLURyYWdPcGVyYXRpb24gRHJhZ0Nv
bnRyb2xsZXI6OmRyYWdVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdTZXNzaW9uIERy
YWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiB7CiAgICAgcmV0
dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsKIH0KQEAgLTIzMiw3ICsyMzMsNyBA
QCB2b2lkIERyYWdDb250cm9sbGVyOjptb3VzZU1vdmVkSW50b0RvY3VtZW50KERvY3VtZW50KiBu
ZXdEb2N1bWVudCkKICAgICBtX2RvY3VtZW50VW5kZXJNb3VzZSA9IG5ld0RvY3VtZW50OwogfQog
Ci1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFn
RGF0YSogZHJhZ0RhdGEpCitEcmFnU2Vzc2lvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWRP
clVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAg
ICAgQVNTRVJUKG1fcGFnZS0+bWFpbkZyYW1lKCkpOyAvLyBJdCBpcyBub3QgcG9zc2libGUgaW4g
TWFjIFdlYktpdCB0byBoYXZlIGEgUGFnZSB3aXRob3V0IGEgbWFpbkZyYW1lKCkKQEAgLTI0MSwx
NCArMjQyLDE0IEBAIERyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkT3JV
cGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKICAgICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9
IG1fY2xpZW50LT5hY3Rpb25NYXNrRm9yRHJhZyhkcmFnRGF0YSk7CiAgICAgaWYgKG1fZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uID09IERyYWdEZXN0aW5hdGlvbkFjdGlvbk5vbmUpIHsKICAgICAgICAg
Y2FuY2VsRHJhZygpOyAvLyBGSVhNRTogV2h5IG5vdCBjYWxsIG1vdXNlTW92ZWRJbnRvRG9jdW1l
bnQoMCk/Ci0gICAgICAgIHJldHVybiBEcmFnT3BlcmF0aW9uTm9uZTsKKyAgICAgICAgcmV0dXJu
IERyYWdTZXNzaW9uKCk7CiAgICAgfQogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBE
cmFnT3BlcmF0aW9uTm9uZTsKLSAgICBib29sIGhhbmRsZWRCeURvY3VtZW50ID0gdHJ5RG9jdW1l
bnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwgb3BlcmF0aW9uKTsKKyAg
ICBEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbjsKKyAgICBib29sIGhhbmRsZWRCeURvY3VtZW50ID0g
dHJ5RG9jdW1lbnREcmFnKGRyYWdEYXRhLCBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiwgZHJhZ1Nl
c3Npb24pOwogICAgIGlmICghaGFuZGxlZEJ5RG9jdW1lbnQgJiYgKG1fZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCkpCi0gICAgICAgIHJldHVybiBvcGVy
YXRpb25Gb3JMb2FkKGRyYWdEYXRhKTsKLSAgICByZXR1cm4gb3BlcmF0aW9uOworICAgICAgICBk
cmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBvcGVyYXRpb25Gb3JMb2FkKGRyYWdEYXRhKTsKKyAgICBy
ZXR1cm4gZHJhZ1Nlc3Npb247CiB9CiAKIHN0YXRpYyBIVE1MSW5wdXRFbGVtZW50KiBhc0ZpbGVJ
bnB1dChOb2RlKiBub2RlKQpAQCAtMjg0LDcgKzI4NSw3IEBAIHN0YXRpYyBFbGVtZW50KiBlbGVt
ZW50VW5kZXJNb3VzZShEb2N1bWVudCogZG9jdW1lbnRVbmRlck1vdXNlLCBjb25zdCBJbnRQb2lu
dCYKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG4pOwogfQogCi1ib29sIERyYWdD
b250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGlu
YXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJhZ09wZXJhdGlvbiYgb3BlcmF0aW9uKQorYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdTZXNzaW9uJiBkcmFnU2Vzc2lvbikKIHsK
ICAgICBBU1NFUlQoZHJhZ0RhdGEpOwogCkBAIC0yOTYsNyArMjk3LDcgQEAgYm9vbCBEcmFnQ29u
dHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uIGEKIAogICAgIG1faXNIYW5kbGluZ0RyYWcgPSBmYWxzZTsKICAgICBpZiAoYWN0
aW9uTWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkRIVE1MKSB7Ci0gICAgICAgIG1faXNIYW5k
bGluZ0RyYWcgPSB0cnlESFRNTERyYWcoZHJhZ0RhdGEsIG9wZXJhdGlvbik7CisgICAgICAgIG1f
aXNIYW5kbGluZ0RyYWcgPSB0cnlESFRNTERyYWcoZHJhZ0RhdGEsIGRyYWdTZXNzaW9uLm9wZXJh
dGlvbik7CiAgICAgICAgIC8vIERvIG5vdCBjb250aW51ZSBpZiBtX2RvY3VtZW50VW5kZXJNb3Vz
ZSBoYXMgYmVlbiByZXNldCBieSB0cnlESFRNTERyYWcuCiAgICAgICAgIC8vIHRyeURIVE1MRHJh
ZyBmaXJlcyBkcmFnZW50ZXIgZXZlbnQuIFRoZSBldmVudCBsaXN0ZW5lciB0aGF0IGxpc3RlbnMK
ICAgICAgICAgLy8gdG8gdGhpcyBldmVudCBtYXkgY3JlYXRlIGEgbmVzdGVkIG1lc3NhZ2UgbG9v
cCAob3BlbiBhIG1vZGFsIGRpYWxvZyksCkBAIC0zMTcsNyArMzE4LDcgQEAgYm9vbCBEcmFnQ29u
dHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uIGEKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmICgoYWN0aW9u
TWFzayAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQpICYmIGNhblByb2Nlc3NEcmFnKGRyYWdE
YXRhKSkgewogICAgICAgICBpZiAoZHJhZ0RhdGEtPmNvbnRhaW5zQ29sb3IoKSkgewotICAgICAg
ICAgICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbkdlbmVyaWM7CisgICAgICAgICAgICBkcmFn
U2Vzc2lvbi5vcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uR2VuZXJpYzsKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgICAgICB9CiAKQEAgLTMyNSwxMSArMzI2LDMyIEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5h
dGlvbkFjdGlvbiBhCiAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBlbGVtZW50VW5kZXJNb3Vz
ZShtX2RvY3VtZW50VW5kZXJNb3VzZS5nZXQoKSwgcG9pbnQpOwogICAgICAgICBpZiAoIWVsZW1l
bnQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghYXNGaWxlSW5wdXQo
ZWxlbWVudCkpCisgICAgICAgIAorICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50QXNG
aWxlSW5wdXQgPSBhc0ZpbGVJbnB1dChlbGVtZW50KTsKKyAgICAgICAgaWYgKCFlbGVtZW50QXNG
aWxlSW5wdXQpCiAgICAgICAgICAgICBtX3BhZ2UtPmRyYWdDYXJldENvbnRyb2xsZXIoKS0+c2V0
Q2FyZXRQb3NpdGlvbihtX2RvY3VtZW50VW5kZXJNb3VzZS0+ZnJhbWUoKS0+dmlzaWJsZVBvc2l0
aW9uRm9yUG9pbnQocG9pbnQpKTsKIAogICAgICAgICBGcmFtZSogaW5uZXJGcmFtZSA9IGVsZW1l
bnQtPmRvY3VtZW50KCktPmZyYW1lKCk7Ci0gICAgICAgIG9wZXJhdGlvbiA9IGRyYWdJc01vdmUo
aW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25Nb3ZlIDog
RHJhZ09wZXJhdGlvbkNvcHk7CisgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IGRyYWdJ
c01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSA/IERyYWdPcGVyYXRpb25N
b3ZlIDogRHJhZ09wZXJhdGlvbkNvcHk7CisgICAgICAgIGRyYWdTZXNzaW9uLm1vdXNlSXNPdmVy
RmlsZUlucHV0ID0gZWxlbWVudEFzRmlsZUlucHV0OworICAgICAgICBkcmFnU2Vzc2lvbi5udW1i
ZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMDsKKworICAgICAgICB1bnNpZ25lZCBudW1iZXJPZkZp
bGVzID0gZHJhZ0RhdGEtPm51bWJlck9mRmlsZXMoKTsKKyAgICAgICAgaWYgKGVsZW1lbnRBc0Zp
bGVJbnB1dCkgeworICAgICAgICAgICAgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+ZGlzYWJsZWQo
KSkKKyAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
ID0gMDsKKyAgICAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnRBc0ZpbGVJbnB1dC0+bXVsdGlwbGUo
KSkKKyAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
ID0gbnVtYmVyT2ZGaWxlczsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBkcmFn
U2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gMTsKKyAgICAgICAgICAgIAorICAg
ICAgICAgICAgaWYgKCFkcmFnU2Vzc2lvbi5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKQorICAg
ICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwor
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIC8vIFdlIGFyZSBub3Qgb3ZlciBhIGZpbGUgaW5w
dXQgZWxlbWVudC4gVGhlIGRyYWdnZWQgaXRlbShzKSB3aWxsIG9ubHkKKyAgICAgICAgICAgIC8v
IGJlIGxvYWRlZCBpbnRvIHRoZSB2aWV3IHRoZSBudW1iZXIgb2YgZHJhZ2dlZCBpdGVtcyBpcyAx
LgorICAgICAgICAgICAgZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IG51
bWJlck9mRmlsZXMgIT0gMSA/IDAgOiAxOworICAgICAgICAKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIC8vIElmIHdlJ3JlIG5vdCBvdmVyIGFuIGVkaXRhYmxlIHJlZ2lvbiwgbWFr
ZSBzdXJlIHdlJ3JlIGNsZWFyaW5nIGFueSBwcmlvciBkcmFnIGN1cnNvci4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCAyNjFhOGQ1M2Y3MzY1OGIwNzFmMjEwNTZhZTU4YjI0
YjFiYjQ1OTY5Li5kNTI1OTFkMTU0OWZjYmQ5MGUxMGJiMGI0ZTU2MzRkMDMwYWJkZjg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBjbGFzcyBEb2N1bWVudDsKICAgICBjbGFzcyBEcmFnQ2xpZW50Owog
ICAgIGNsYXNzIERyYWdEYXRhOworICAgIHN0cnVjdCBEcmFnU2Vzc2lvbjsKICAgICBzdHJ1Y3Qg
RHJhZ1N0YXRlOwogICAgIGNsYXNzIEVsZW1lbnQ7CiAgICAgY2xhc3MgRnJhbWU7CkBAIC01NSw5
ICs1Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfkRyYWdDb250cm9sbGVyKCk7
CiAgICAgICAgIERyYWdDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpZW50OyB9
CiAKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOworICAgICAg
ICBEcmFnU2Vzc2lvbiBkcmFnRW50ZXJlZChEcmFnRGF0YSopOwogICAgICAgICB2b2lkIGRyYWdF
eGl0ZWQoRHJhZ0RhdGEqKTsKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBkcmFnVXBkYXRlZChEcmFn
RGF0YSopOworICAgICAgICBEcmFnU2Vzc2lvbiBkcmFnVXBkYXRlZChEcmFnRGF0YSopOwogICAg
ICAgICBib29sIHBlcmZvcm1EcmFnKERyYWdEYXRhKik7CiAgICAgICAgIAogICAgICAgICAvLyBG
SVhNRTogSXQgc2hvdWxkIGJlIHBvc3NpYmxlIHRvIHJlbW92ZSBhIG51bWJlciBvZiB0aGVzZSBh
Y2Nlc3NvcnMgb25jZSBhbGwKQEAgLTk0LDkgKzk1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBib29sIGRpc3BhdGNoVGV4dElucHV0RXZlbnRGb3IoRnJhbWUqLCBEcmFnRGF0YSop
OwogICAgICAgICBib29sIGNhblByb2Nlc3NEcmFnKERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wg
Y29uY2x1ZGVFZGl0RHJhZyhEcmFnRGF0YSopOwotICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdF
bnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9uIGRyYWdFbnRl
cmVkT3JVcGRhdGVkKERyYWdEYXRhKik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9u
Rm9yTG9hZChEcmFnRGF0YSopOwotICAgICAgICBib29sIHRyeURvY3VtZW50RHJhZyhEcmFnRGF0
YSosIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ09wZXJhdGlvbiYpOworICAgICAgICBib29s
IHRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSosIERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ1Nl
c3Npb24mKTsKICAgICAgICAgYm9vbCB0cnlESFRNTERyYWcoRHJhZ0RhdGEqLCBEcmFnT3BlcmF0
aW9uJik7CiAgICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbihEcmFnRGF0YSopOwog
ICAgICAgICB2b2lkIGNhbmNlbERyYWcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ1Nlc3Npb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ1Nlc3Npb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mYjczNzFlNWVhYzk5MzA0NGNlOGY0NjI5NGEzNjYxODU3YTY3YTMwCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU2Vzc2lvbi5oCkBAIC0wLDAgKzEs
NDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIERyYWdTZXNzaW9uX2gKKyNkZWZpbmUgRHJhZ1Nlc3Np
b25faAorCisjaW5jbHVkZSAiRHJhZ0FjdGlvbnMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
ICAgIAorc3RydWN0IERyYWdTZXNzaW9uIHsKKyAgICBEcmFnU2Vzc2lvbigpCisgICAgOiBvcGVy
YXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtb3VzZUlzT3ZlckZpbGVJbnB1dChmYWxz
ZSkKKyAgICAsIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQoMCkgeyB9CisgICAgRHJhZ09wZXJh
dGlvbiBvcGVyYXRpb247CisgICAgYm9vbCBtb3VzZUlzT3ZlckZpbGVJbnB1dDsKKyAgICB1bnNp
Z25lZCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkOworfTsKKworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IGFmYTIxOWYzYjcyMjNiZGRkNThjMjdlZjY3MmQ4
YzZjYTcwY2YxYmMuLmJiMjQyZjllOTE2MmE3NjllMTg2MmVmMGE5MzQ4YWQ5NWU4NTg4YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtMTE2LDYgKzExNiw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGNhblNtYXJ0UmVwbGFjZSgpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNDb2xv
cigpIGNvbnN0OwogICAgIGJvb2wgY29udGFpbnNGaWxlcygpIGNvbnN0OworICAgIHVuc2lnbmVk
IG51bWJlck9mRmlsZXMoKSBjb25zdDsKICNpZiBQTEFURk9STShNQUMpCiAgICAgTlNQYXN0ZWJv
YXJkICpwYXN0ZWJvYXJkKCkgeyByZXR1cm4gbV9wYXN0ZWJvYXJkLmdldCgpOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJv
bWl1bS5jcHAKaW5kZXggMDlkYThhNGE0MGQ2NzJmZjQyODY1ZjhjODk5YzY2NjcyNWM0ZjVlMi4u
OWMzODM4NjAyNTFjNzQ3MDA5MmY5NjUzN2E2MTc3OTI4ODhiZGJiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAKQEAg
LTczLDYgKzczLDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAg
IHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmNvbnRhaW5zRmlsZW5hbWVzKCk7CiB9CiAKK3Vu
c2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9w
bGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKS5zaXplKCk7Cit9CisKIHZvaWQgRHJhZ0RhdGE6
OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyA9IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVz
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvRHJhZ0RhdGFFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcAppbmRleCBi
MzViOTYzZWE5YzQ2OTg2MDE3ZjYzOTc0YjA3NWEzNDM3ZDFkNDY2Li45ZDdlOWNhNzk1YzhmN2Qx
YmMzNjg4MmEzYTRhYzgxZjRiOGMwOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvRHJhZ0RhdGFFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Vm
bC9EcmFnRGF0YUVmbC5jcHAKQEAgLTQxLDYgKzQxLDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordW5zaWduZWQgRHJhZ0Rh
dGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERy
YWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKaW5kZXggY2M5YTIw
ODAwM2IyN2QxMGE5YzhlOGZlNmMzZGJiM2MzOGZjMDBlNC4uMDJhNDc0OWQzM2NiYjI5OWM4ZGQ2
NmUzNWMwMDkxYWIyOGYxMGFlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0RyYWdEYXRhR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJh
Z0RhdGFHdGsuY3BwCkBAIC00MSw2ICs0MSwxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0Zp
bGVzKCkgY29uc3QKICAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5oYXNGaWxlbmFtZXMo
KTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNpemUoKTsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
ICAgICByZXN1bHQgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCmluZGV4IDJjYTk0M2RlMTFiMGQ5YTgw
Y2EzNzU4ZTc0MzEzYjJhNWU5MTk5YzIuLjI5NGVlYmJiOGNjMmU5NTMyYzhiNzJkZmVjYWNhMGU5
MjhiOGJiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0
YU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0K
QEAgLTc2LDYgKzc2LDEzIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAog
ICAgIHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSB0eXBlc10gY29udGFpbnNPYmplY3Q6TlNG
aWxlbmFtZXNQYm9hcmRUeXBlXTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmls
ZXMoKSBjb25zdAoreworICAgIGlmICghW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNdIGNvbnRh
aW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAgICAgIHJldHVybiAwOworICAg
IHJldHVybiBbW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0eUxpc3RGb3JUeXBlOk5TRmlsZW5h
bWVzUGJvYXJkVHlwZV0gY291bnRdOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhW
ZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIE5TQXJyYXkgKmZpbGVuYW1lcyA9
IFttX3Bhc3RlYm9hcmQuZ2V0KCkgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2Fy
ZFR5cGVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0RhdGFR
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAppbmRleCAy
NTU0ZGY0MjM1MDc2OWJlYmYzY2EzMjJlNzcyNzJjZDIxMzlkMmJiLi4wMzAzYWQ3YzkyNGExNWRk
ZGUyZTM0YjdmOWY4OGFlMTM3ZDhmMGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9E
cmFnRGF0YVF0LmNwcApAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNG
aWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0Rh
dGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3BsYXRmb3JtRHJhZ0RhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vRHJhZ0RhdGFXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdE
YXRhV2luLmNwcAppbmRleCAwOGI2ZWIyZDc2ZDUzZjVhNmU3MzYxZjg4ZWE2MWYwYWNlNGUxYjcz
Li45YWI2MmI5NTBmZmIwNWU5MTRjN2VkNzNlYjRlNDRjOGY0NWExN2MxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAKQEAgLTExMCw2ICsxMTAsMTEgQEAg
Ym9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIChtX3BsYXRm
b3JtRHJhZ0RhdGEpID8gU1VDQ0VFREVEKG1fcGxhdGZvcm1EcmFnRGF0YS0+UXVlcnlHZXREYXRh
KGNmSERyb3BGb3JtYXQoKSkpIDogbV9kcmFnRGF0YU1hcC5jb250YWlucyhjZkhEcm9wRm9ybWF0
KCktPmNmRm9ybWF0KTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBj
b25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhW
ZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGlmIChtX3BsYXRmb3JtRHJhZ0Rh
dGEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRh
V2luQ0UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5j
cHAKaW5kZXggNjc5MjI5ZGQ1ZmMxN2IyNWNlN2QyN2UwYjYzYjJkZTdiMWIyNmUwMi4uY2M1Zjdh
N2FhZDMxZDc3MzEwMDdlMGE4MGRlOTcxYjkyM2JkODU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAKQEAgLTQ3LDYgKzQ3LDExIEBAIGJv
b2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVy
biAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYpIGNv
bnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9EcmFnRGF0
YVd4LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwCmluZGV4
IGJlMjQwNDJkNDc4NmQ1OGQ0NGRlZmMzMTg4ZWQ5OTU2ZDZjYjMwNDkuLjgyZTQ3NDBhNGRkMDdi
OTY2MDJkNDNkZWE1MWQ5OTkxYTYzMWQxMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3d4
L0RyYWdEYXRhV3guY3BwCkBAIC00Nyw2ICs0NywxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWlu
c0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFn
RGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA4OWE2ZTRkMmMw
YjFkMjVhNjRjMzMyNmJhN2U1MTA1M2ZjZjg1ZTQzLi5lNzhhZDY0MzA2NzUxNjljNGEzYjUwYTMz
MDM0YzY5NDllMTg5MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuY3BwCkBAIC01MCw2ICs1MCw3IEBACiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJEcmFnRGF0YS5oIgogI2luY2x1ZGUgIkRyYWdTY3JvbGxUaW1lci5oIgorI2luY2x1
ZGUgIkRyYWdTZXNzaW9uLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRXZlbnRI
YW5kbGVyLmgiCiAjaW5jbHVkZSAiRXh0ZW5zaW9uczNELmgiCkBAIC0yMDY3LDExICsyMDY4LDEz
IEBAIFdlYkRyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdUYXJnZXREcmFnRW50ZXJPck92
ZXIoY29uc3QgV2ViUG9pbnQmIGNsaWVudFBvCiAgICAgICAgIHNjcmVlblBvaW50LAogICAgICAg
ICBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihtX29wZXJhdGlvbnNBbGxvd2VkKSk7CiAKLSAg
ICBEcmFnT3BlcmF0aW9uIGRyb3BFZmZlY3Q7CisgICAgRHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb247
CiAgICAgaWYgKGRyYWdBY3Rpb24gPT0gRHJhZ0VudGVyKQotICAgICAgICBkcm9wRWZmZWN0ID0g
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpOworICAgICAg
ICBkcmFnU2Vzc2lvbiA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRy
YWdEYXRhKTsKICAgICBlbHNlCi0gICAgICAgIGRyb3BFZmZlY3QgPSBtX3BhZ2UtPmRyYWdDb250
cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgICAgIGRyYWdTZXNzaW9uID0g
bV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEpOworCisgICAg
RHJhZ09wZXJhdGlvbiBkcm9wRWZmZWN0ID0gZHJhZ1Nlc3Npb24ub3BlcmF0aW9uOwogCiAgICAg
Ly8gTWFzayB0aGUgZHJvcCBlZmZlY3Qgb3BlcmF0aW9uIGFnYWluc3QgdGhlIGRyYWcgc291cmNl
J3MgYWxsb3dlZCBvcGVyYXRpb25zLgogICAgIGlmICghKGRyb3BFZmZlY3QgJiBkcmFnRGF0YS5k
cmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KaW5kZXggMTlmNzQ3NjlkZTljMzY4OTFlZjBhNGY4OGExNTcxNzVjY2ExOTIyYi4uMDg2
NGZhOGVlOWVhZTUyNDI3OGY3YjM2Y2EzOTM3NTMyYWRjOWIzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbQpAQCAtMTE3LDYgKzExNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0Rv
Y3VtZW50TG9hZGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRs
ZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uSGFuZGxlcnMuaD4KQEAgLTM4NjQsNyAr
Mzg2NSw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJlc29sdXRp
b25Ob3RpZmljYXRpb24gPSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xpZW50KFtk
cmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2JhbChnbG9i
YWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7
CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3Rh
dGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJh
dGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKLSAgICBy
ZXR1cm4gY29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRh
KTsKKyAgICByZXR1cm4gY29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQo
JmRyYWdEYXRhKS5vcGVyYXRpb247CiB9CiAKIC0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1Vw
ZGF0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCkBAIC0zODc2LDcgKzM4Nzcs
NyBAQCBzdGF0aWMgTlNTdHJpbmcgKiBjb25zdCB3aW5kb3dEaWRDaGFuZ2VSZXNvbHV0aW9uTm90
aWZpY2F0aW9uID0gQCJOU1dpbmRvd0RpZENoYQogICAgIEludFBvaW50IGNsaWVudChbZHJhZ2dp
bmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dKTsKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9p
bnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAg
IERyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19j
YXN0PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25N
YXNrXSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAgcmV0dXJu
IHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgcmV0
dXJuIHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSkub3BlcmF0
aW9uOwogfQogCiAtICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRy
YWdnaW5nSW5mbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGJiMTQyNGY4YjViOWFh
NGMxODNhNTIyNGYzMWJhNjRkZTdkNTI0NDEuLjdlNjk2YzQzMGY4OTFjZTI3OTA4YjQxYjQ2ZDgw
NTg1YjAzZDRkYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTUxLDYgKzUxLDcg
QEAKICNpbmNsdWRlICJEcmFnQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIKICNpbmNs
dWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZv
Y3VzQ29udHJvbGxlci5oIgpAQCAtOTkxLDcgKzk5Miw3IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRl
OjpkcmFnRW50ZXJFdmVudChUKiBldikKICNpZm5kZWYgUVRfTk9fRFJBR0FORERST1AKICAgICBE
cmFnRGF0YSBkcmFnRGF0YShldi0+bWltZURhdGEoKSwgUVBvaW50Rihldi0+cG9zKCkpLnRvUG9p
bnQoKSwKICAgICAgICAgICAgIFFDdXJzb3I6OnBvcygpLCBkcm9wQWN0aW9uVG9EcmFnT3AoZXYt
PnBvc3NpYmxlQWN0aW9ucygpKSk7Ci0gICAgUXQ6OkRyb3BBY3Rpb24gYWN0aW9uID0gZHJhZ09w
VG9Ecm9wQWN0aW9uKHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkcmFnRGF0
YSkpOworICAgIFF0OjpEcm9wQWN0aW9uIGFjdGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdl
LT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAg
ICAgZXYtPnNldERyb3BBY3Rpb24oYWN0aW9uKTsKICAgICBldi0+YWNjZXB0UHJvcG9zZWRBY3Rp
b24oKTsKICNlbmRpZgpAQCAtMTAxMyw3ICsxMDE0LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6
OmRyYWdNb3ZlRXZlbnQoVCAqZXYpCiAjaWZuZGVmIFFUX05PX0RSQUdBTkREUk9QCiAgICAgRHJh
Z0RhdGEgZHJhZ0RhdGEoZXYtPm1pbWVEYXRhKCksIFFQb2ludEYoZXYtPnBvcygpKS50b1BvaW50
KCksCiAgICAgICAgICAgICBRQ3Vyc29yOjpwb3MoKSwgZHJvcEFjdGlvblRvRHJhZ09wKGV2LT5w
b3NzaWJsZUFjdGlvbnMoKSkpOwotICAgIG1fbGFzdERyb3BBY3Rpb24gPSBkcmFnT3BUb0Ryb3BB
Y3Rpb24ocGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKSk7Cisg
ICAgbV9sYXN0RHJvcEFjdGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJv
bGxlcigpLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAgICAgZXYtPnNldERy
b3BBY3Rpb24obV9sYXN0RHJvcEFjdGlvbik7CiAgICAgaWYgKG1fbGFzdERyb3BBY3Rpb24gIT0g
UXQ6Oklnbm9yZUFjdGlvbikKICAgICAgICAgZXYtPmFjY2VwdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDZjYzUzMTY1YWMzNjJiNWRhNTM5NDE1
ZDljZGIzOGQ5YzgyZjU1N2IuLjllOWQ2YzNiZWU0ZDFlMmU5MDZlNzBlY2MxMGZiZjhjZmViNzA3
MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5w
eQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAgLTE3
MCw2ICsxNzAsNyBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAgICAg
ICAgICdXZWJDb3JlOjpBbmltYXRpb24nLAogICAgICAgICAnV2ViQ29yZTo6RWRpdG9yQ29tbWFu
ZHNGb3JLZXlFdmVudCcsCiAgICAgICAgICdXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZScs
CisgICAgICAgICdXZWJDb3JlOjpEcmFnU2Vzc2lvbicsCiAgICAgICAgICdXZWJDb3JlOjpGbG9h
dFBvaW50M0QnLAogICAgICAgICAnV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncycsCiAgICAg
ICAgICdXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggZjQzMTQxMGE3MDI0YTNjMWJmODAzNjQ3
MDM2MTkyNTIxYTY1NjNlOS4uNjcwMDBlMGUxODdjYjFmN2IyOWFlOGYxM2I4NTc4OGVlYTI5MmFi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NyZWRlbnRpYWwuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0N1cnNvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VEZXRh
aWxzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRWRpdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CkBAIC02MDQsNiArNjA1LDI0IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxUZXh0Q2hlY2tpbmdSZXN1bHQ+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBk
ZWNvZGVyLCBUZXh0Q2hlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2Rl
cjxEcmFnU2Vzc2lvbj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IERy
YWdTZXNzaW9uJiByZXN1bHQpCit7CisgICAgZW5jb2Rlci0+ZW5jb2RlRW51bShyZXN1bHQub3Bl
cmF0aW9uKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzdWx0Lm1vdXNlSXNPdmVyRmlsZUlucHV0
KTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzdWx0Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQp
OworfQorCitib29sIEFyZ3VtZW50Q29kZXI8RHJhZ1Nlc3Npb24+OjpkZWNvZGUoQXJndW1lbnRE
ZWNvZGVyKiBkZWNvZGVyLCBEcmFnU2Vzc2lvbiYgcmVzdWx0KQoreworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlRW51bShyZXN1bHQub3BlcmF0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHJlc3VsdC5tb3VzZUlzT3ZlckZpbGVJbnB1dCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubnVt
YmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKwogI2lmIFBMQVRGT1JNKFFUKQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8Rmxv
YXRQb2ludDNEPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2RlciogZW5jb2RlciwgY29uc3QgRmxvYXRQ
b2ludDNEJiBmbG9hdFBvaW50M0QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKaW5kZXggYWNlNWQ5ZDYxNTk0YmZhMDcyNGJkZjdiMDE2NzJhMDIzMTU0
YzhiNC4uZTc2ZjNhZmQ1OGQ4NzNhNDI2NTIyY2JhYWM2MzA3ODQ2MDViMzQxMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtNDcsNiArNDcs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogICAg
IGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiAgICAgc3RydWN0IENvbXBvc2l0aW9uVW5kZXJsaW5l
OworICAgIHN0cnVjdCBEcmFnU2Vzc2lvbjsKICAgICBzdHJ1Y3QgRmlsZUNob29zZXJTZXR0aW5n
czsKICAgICBzdHJ1Y3QgR3JhbW1hckRldGFpbDsKICAgICBzdHJ1Y3QgTWltZUNsYXNzSW5mbzsK
QEAgLTIxMyw2ICsyMTQsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQ+IHsKICAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1l
bnRFbmNvZGVyKiwgY29uc3QgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OlRleHRDaGVja2luZ1Jl
c3VsdCYpOwogfTsKKyAgICAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6RHJhZ1Nlc3Npb24+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoQXJndW1lbnRFbmNvZGVy
KiwgY29uc3QgV2ViQ29yZTo6RHJhZ1Nlc3Npb24mKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
QXJndW1lbnREZWNvZGVyKiwgV2ViQ29yZTo6RHJhZ1Nlc3Npb24mKTsKK307CiAKICNpZiBQTEFU
Rk9STShRVCkKIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6RmxvYXRQ
b2ludDNEPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5k
ZXggZGViMWQwNjc1MTMwM2Q3ODk5YzNjMDM4YWUyY2MyYjQwYWZiOTI0NC4uYmNjZjY4OWYxYTgz
YTVhZmE1OGM0MWExMmNlMjBlOWIwYzU3M2IzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNjEsNiArNjEsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9D
b2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EcmFnRGF0YS5oPgorI2ltcG9ydCA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2lt
cG9ydCA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CkBAIC0xNTg2LDcgKzE1ODcsOSBAQCBz
dGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywg
VmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChb
ZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJh
Z0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8
RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2td
KSwgW3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKICAgICBfZGF0YS0+X3Bh
Z2UtPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSwgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJv
YXJkXSBuYW1lXSk7Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+ZHJhZ09wZXJhdGlvbigpOwor
ICAgIAorICAgIFdlYkNvcmU6OkRyYWdTZXNzaW9uIGRyYWdTZXNzaW9uID0gX2RhdGEtPl9wYWdl
LT5kcmFnU2Vzc2lvbigpOworICAgIHJldHVybiBkcmFnU2Vzc2lvbi5vcGVyYXRpb247CiB9CiAK
IC0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZv
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDNjNmMzMjM3
NjQzNjA2NTRjNjg1ZWY0ODU0MDEwNGRmNzM4MmJiM2MuLmZlNDJlNGY0MTRmOGJmMGY3NWU1N2Ji
MzNmZjhiNDc2ZWIxN2UwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCkBAIC03MSw3ICs3MSw5IEBACiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgi
CiAjaW5jbHVkZSAiV2ViU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRHJhZ0RhdGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9GbG9hdFJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzRGlyZWN0aW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CkBAIC0xODEsNyArMTgz
LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCogcGFnZUNsaWVudCwg
UGFzc1JlZlB0cjxXZWJQcm9jZXNzUHJveHk+IHAKICAgICAsIG1faGFzU3BlbGxEb2N1bWVudFRh
ZyhmYWxzZSkKICAgICAsIG1fcGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50KDAp
CiAgICAgLCBtX21haW5GcmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uKGZhbHNlKQotICAgICwg
bV9jdXJyZW50RHJhZ09wZXJhdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkKKyAgICAsIG1fY3VycmVu
dERyYWdTZXNzaW9uKCkKICAgICAsIG1fbWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhcihm
YWxzZSkKICAgICAsIG1fbWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIoZmFsc2UpCiAgICAg
LCBtX21haW5GcmFtZUlzUGlubmVkVG9MZWZ0U2lkZShmYWxzZSkKQEAgLTg0Miw5ICs4NDQsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdDb250
cm9sbGVyQWN0aW9uIGFjdGlvbiwgRHJhZwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5
OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9u
KQordm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihXZWJD
b3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbikKIHsKLSAgICBtX2N1cnJlbnREcmFnT3BlcmF0
aW9uID0gc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4ocmVzdWx0T3BlcmF0aW9uKTsKKyAgICBt
X2N1cnJlbnREcmFnU2Vzc2lvbiA9IGRyYWdTZXNzaW9uOwogfQogCiAjaWYgUExBVEZPUk0oUVQp
IHx8IFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApp
bmRleCBkZTY3ZDQ2NmNiNzRiMzlmYWJhMjc2MzIwYWRlOGJhZTFiZjUxYjMyLi4zMWQ0YjFmYzE4
ZTZjYWM3NDE0YzZmNTljZmQwMDgxNzVjMDQ0ZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC01NCw2ICs1NCw3IEBACiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VM
b2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVUlDbGllbnQuaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0RyYWdBY3Rpb25zLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1T
Y3JlZW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CkBAIC00NjYsNyArNDY3
LDcgQEAgcHVibGljOgogICAgIHZvaWQgZHJhZ0V4aXRlZChXZWJDb3JlOjpEcmFnRGF0YSosIGNv
bnN0IFN0cmluZyYgZHJhZ1N0b3JhZ2VOYW1lID0gU3RyaW5nKCkpOwogICAgIHZvaWQgcGVyZm9y
bURyYWcoV2ViQ29yZTo6RHJhZ0RhdGEqLCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdlTmFtZSwg
Y29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJik7CiAKLSAgICB2b2lkIGRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCByZXN1bHRPcGVyYXRpb24pOworICAgIHZvaWQg
ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdTZXNzaW9uKTsKICAg
ICB2b2lkIGRyYWdFbmRlZChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24s
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBnbG9iYWxQb3NpdGlvbiwgdWludDY0X3Qgb3BlcmF0
aW9uKTsKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZXREcmFnSW1hZ2UoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBjb25zdCBTaGFyZWFibGVCaXRtYXA6Okhh
bmRsZSYgZHJhZ0ltYWdlSGFuZGxlLCBib29sIGlzTGlua0RyYWcpOwpAQCAtNTA0LDggKzUwNSw4
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNWYWxpZCgpOwogICAgIAotICAgIFdlYkNvcmU6OkRy
YWdPcGVyYXRpb24gZHJhZ09wZXJhdGlvbigpIHsgcmV0dXJuIG1fY3VycmVudERyYWdPcGVyYXRp
b247IH0KLSAgICB2b2lkIHJlc2V0RHJhZ09wZXJhdGlvbigpIHsgbV9jdXJyZW50RHJhZ09wZXJh
dGlvbiA9IFdlYkNvcmU6OkRyYWdPcGVyYXRpb25Ob25lOyB9CisgICAgV2ViQ29yZTo6RHJhZ1Nl
c3Npb24gZHJhZ1Nlc3Npb24oKSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnREcmFnU2Vzc2lvbjsg
fQorICAgIHZvaWQgcmVzZXREcmFnT3BlcmF0aW9uKCkgeyBtX2N1cnJlbnREcmFnU2Vzc2lvbiA9
IFdlYkNvcmU6OkRyYWdTZXNzaW9uKCk7IH0KIAogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKTsKIApAQCAtOTI2LDcgKzkyNyw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV9wZW5k
aW5nTGVhcm5Pcklnbm9yZVdvcmRNZXNzYWdlQ291bnQ7CiAKICAgICBib29sIG1fbWFpbkZyYW1l
SGFzQ3VzdG9tUmVwcmVzZW50YXRpb247Ci0gICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBtX2N1
cnJlbnREcmFnT3BlcmF0aW9uOworICAgIFdlYkNvcmU6OkRyYWdTZXNzaW9uIG1fY3VycmVudERy
YWdTZXNzaW9uOwogCiAgICAgU3RyaW5nIG1fcGVuZGluZ0FQSVJlcXVlc3RVUkw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDgyYjk2MWNhNjFhNjE4ZWZlMTk5N2Q3YWFlZDEzNjFjNWZmMjI0NjcuLjNkODUwYjkwMTVkZGFh
YjQ4ZDJiZGQ2NzU5Y2Y2YzlhMDgxYTJkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjA1LDcgKzIwNSw3IEBAIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgSWdub3JlV29yZChXVEY6OlN0cmluZyB3b3JkKTsK
IAogICAgICMgRHJhZyBhbmQgZHJvcCBtZXNzYWdlcwotICAgIERpZFBlcmZvcm1EcmFnQ29udHJv
bGxlckFjdGlvbih1aW50NjRfdCByZXN1bHRPcGVyYXRpb24pCisgICAgRGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdTZXNzaW9uIGRyYWdTZXNzaW9uKQogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBTZXREcmFnSW1hZ2UoV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50UG9z
aXRpb24sIFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUgZHJhZ0ltYWdlLCBib29sIGxp
bmtEcmFnKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggYzFkZGQ4ZGYxODRlYTQ0YmVhZDhmM2JmMWNmODMzOWNjNzNjZTQ5NC4u
MzFiYzgwNGMyZjg4NzA2YmY3ZWViOWQ0N2EyYjliNmIyMDFkNmU4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzksNiArNzksNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVu
dEhhbmRsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRm9ybVN0YXRlLmg+CkBAIC0xODA5LDcgKzE4MTAsNyBAQCBib29sIFdlYlBh
Z2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHZvaWQg
V2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2Vi
Q29yZTo6SW50UG9pbnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBv
c2l0aW9uLCB1aW50NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFdlYkNv
cmU6OkRyYWdEYXRhTWFwJiBkYXRhTWFwLCB1aW50MzJfdCBmbGFncykKIHsKICAgICBpZiAoIW1f
cGFnZSkgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
Q29udHJvbGxlcjo6RHJhZ1Nlc3Npb24oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAg
LTE4NDAsNyArMTg0MSw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0
aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpCiB2b2lkIFdlYlBhZ2U6
OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRy
YWdEYXRhIGRyYWdEYXRhKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdP
cGVyYXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlk
UGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdTZXNzaW9uKCkpKTsKICNpZiBQTEFURk9S
TShRVCkKICAgICAgICAgUU1pbWVEYXRhKiBkYXRhID0gY29uc3RfY2FzdDxRTWltZURhdGEqPihk
cmFnRGF0YS5wbGF0Zm9ybURhdGEoKSk7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0xODg0LDcg
KzE4ODUsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50
NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYQogdm9pZCBXZWJQYWdlOjpwZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBj
bGllbnRQb3NpdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90
IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaywgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5h
bWUsIHVpbnQzMl90IGZsYWdzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRi
b3hFeHRlbnNpb25IYW5kbGUpCiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJh
Z09wZXJhdGlvbk5vbmUpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
aWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ1Nlc3Npb24oKSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113354</attachid>
            <date>2011-11-02 12:53:39 -0700</date>
            <delta_ts>2011-11-02 13:13:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111102125412.patch</filename>
            <type>text/plain</type>
            <size>44439</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkwODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWYyOGNlYzE2MTA3ZmY4
NDQ1MDljYmMxYTE4OTgwZmE5MmM5ODQwLi45OGM0NWY3YjZiMTE1OWI3NjUyNTUwMDZjMjI5OTg1
YWM5YmQ5MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDUgQEAKIDIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdTZXNzaW9uIGlzIHVwZGF0ZWQgd2l0aCBkYXRhIHJlZ2Fy
ZGluZyB3aGV0aGVyIHRoZSBtb3VzZQorICAgICAgICBpcyBvdmVyIGEgZmlsZSBpbnB1dCwgYW5k
IHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZSBhY2NlcHRlZCBiYXNlZCBvbgorICAg
ICAgICB0aGUgbW91c2UncyBsb2NhdGlvbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
Lmg6CisgICAgICAgICogcGFnZS9EcmFnU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdTZXNzaW9uOjpEcmFnU2Vzc2lvbik6IEtlZXAgdHJhY2sgb2YgY3VycmVudCBvcGVy
YXRpb24sIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92ZXIgYSBmaWxlIGlucHV0IGVs
ZW1lbnQsIGFuZCBob3cgbWFueSBmaWxlcyB3b3VsZCBiZSBhY2NlcHRlZCBpZgorICAgICAgICBk
cm9wcGVkLgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6IEFkZGVkIG51bWJlck9mRmls
ZXMoKQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpu
dW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNp
bmd1bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDU2NzBhYWIxYTZhOGU1MGVmNWE2MjMyMDQ4
ZTFmMWFlNThmNmQxNzYuLjFmMTJkM2ExNTQ3MWY4M2Y4YzZhNzhlNTkwNTk2NzU0NTk3ZmMzN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMTEtMDIg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJv
bGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKTogVGhl
IGRyYWcgb3BlcmF0aW9uIGlzIGNvbnRhaW5lZAorICAgICAgICB3aXRoaW4gdGhlIG5ldyBEcmFn
U2Vzc2lvbiBzdHJ1Y3QuIE1pbm9yIHJlZmFjdG9yLgorCisyMDExLTExLTAyICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKwogICAgICAgICA8aW5wdXQ9ZmlsZSBtdWx0aXBsZT4gZGVmYXVs
dCB0ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM3OTAyMT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyZmJiZTk1ZWRhYTg2MjFkNTZlN2Vm
NzUzYzM5YjFjMGM3NDkzNmZjLi5jNmJhODEzYjJlMWQxNTI3MmQ4ZWNiNmFiMDlmY2M2ZDYyYzZl
ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbik6IE1pbm9yIHJlZmFjdG9yaW5nLgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6IE1pbm9yIHJlZmFjdG9y
aW5nLgorCiAyMDExLTExLTAyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgW0dUS10gVmlzaXRlZCBsaW5rcyBvZiBhIHBhZ2UgZ3JvdXAgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiBjbGVhcmluZyBiYWNrL2ZvcndhcmQgbGlzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGQxOTVjMmQ3MjYwNmQwZWFjOWFkN2U0NzQxZDI3NjA2MDY4NDcxYWQuLmZjMjc5OTYyMTA0
ZDQzMjg4OGZmMmM3NzI4NjE5MjEwNTJiNTM4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nRW50ZXJlZDpdKTogRHJh
Z09wZXJhdGlvbiBpcyBub3cgaW5zaWRlIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAg
ICgtW1dlYlZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0pOgorCiAyMDExLTExLTAxICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBQREYgY29kZSB3aGVuIHNj
cmlwdCBoYXMgaWxsZWdhbCBVVEYtOCBvciBVVEYtMTYgc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDY3ZmZmMzBmNWE1YWIzNzU1ODIzYzg5YmYzZDM5OWU4NzNmMWU2NGYuLjRiMTI0MDI2ZDIy
OTc5YTY0NmI0ZmY3YzE4YjQzOTEyYjc0NDU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTggQEAKIDIwMTEtMTEtMDIgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAg
IEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2Vi
cGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdFbnRlckV2ZW50KTogTWlu
b3IgcmVmYWN0b3JpbmcgYmVjYXVzZSBvcGVyYXRpb24gaXMgc3RvcmVkIGluCisgICAgICAgIG5l
dyBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdNb3Zl
RXZlbnQpOiBEaXR0by4KKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+
CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNpbmd1
bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggODhlYmM2Zjg3MDQ4NzgyOWE5NzI2OTJkYmMyNDU1ZmNlNjA4MDFmYy4uZjk0
YmZhOWM0ZGRhMDY4YzZjMmZiNjIwY2MxM2U4ODI3ZGViOThlZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMxIEBACisyMDExLTExLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAg
ICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uIGFi
b3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkxNzU+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ugbm93
IHBhc3MgdGhlIERyYWdTZXNzaW9uIHN0cnVjdCBmcm9tIHRoZSBXZWIgdG8gdGhlIFVJIHByb2Nl
c3MsIGluc3RlYWQgb2YgdGhlCisgICAgICAgIERyYWdPcGVyYXRpb24gZW51bS4KKworICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKENvcmVJUEM6Ojo6ZW5jb2RlKToKKyAgICAg
ICAgKENvcmVJUEM6Ojo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1ZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94
eSk6IFdlIG5vdyBjYWNoZSB0aGUgbGFzdCBrbm93biBEcmFnU2Vzc2lvbiBzdGF0ZQorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbik6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRyYWdTZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZXNldERyYWdPcGVyYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24pOgor
CiAyMDExLTExLTAyICBDYWlvIE1hcmNlbG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZl
aXJhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgW1F0XSBJbXBsZW1lbnQgbWVzc2FnZSBleGNo
YW5nZSBiZXR3ZWVuIFdlYlZpZXcgYW5kIHRoZSB3ZWIgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZmMjgxOTVjN2Q1NDg0
OTkyOWJhYmRmMzRjY2I5MDNmMzRhNzU3OWMuLjM3MzI4YjNjNTkyODZmNTM2NzJiOGEyMjAxMjNi
ZDNlZDIxYjlhZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTc3OCw2ICs3NzgsNyBAQAogCQkzMTYxMUU2MTBFMUM0RTE0MDBG
NkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjExRTVFMEUxQzRFMTQwMEY2QTU3OSAvKiBE
T01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovOyB9OwogCQkzMTYxMUU2MjBFMUM0RTE0MDBG
NkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1RjBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gKi87IH07CiAJCTMxNjExRTYzMEUxQzRFMTQw
MEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZUludGVybmFsLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU2MDBFMUM0RTE0MDBG
NkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oICovOyB9OworCQkz
MTY5Mzc5QzE0NjA5QzZDMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNjkzNzlBMTQ2MDlDNUIwMEMwMTM2MiAv
KiBEcmFnU2Vzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTMxNkZFMDcxMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1l
UnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTZGRTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwICov
OyB9OwogCQkzMTZGRTA3MjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZF
MDZFMEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lUnVsZS5oICovOyB9Owog
CQkzMTZGRTA3MzBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNkZFMDZG
MEU2Q0NCRUUwMEJGNjA4OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpA
QCAtNzg1NSw2ICs3ODU2LDcgQEAKIAkJMzE2MTFFNUUwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdl
YktpdENTU1RyYW5zZm9ybVZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTMxNjExRTVGMEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVdlYktpdENT
U1RyYW5zZm9ybVZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTYxMUU2
MDBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1W
YWx1ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxNjkzNzlBMTQ2
MDlDNUIwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEcmFnU2Vzc2lvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZG
RTA2RDBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTZGRTA2RTBFNkNDQkVFMDBCRjYw
ODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMzE2RkUwNkYwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYktpdENT
U0tleWZyYW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU0Mzcs
NiArMTU0MzksNyBAQAogCQkJCUE3Q0E1OTVDMEIyN0JEOUUwMEZBMDIxRCAvKiBEcmFnQ29udHJv
bGxlci5jcHAgKi8sCiAJCQkJQTdDQTU5NUIwQjI3QkQ5RTAwRkEwMjFEIC8qIERyYWdDb250cm9s
bGVyLmggKi8sCiAJCQkJODFGNjVGRjUxMzc4OEZBQTAwRkY2RjJEIC8qIERyYWdTdGF0ZS5oICov
LAorCQkJCTMxNjkzNzlBMTQ2MDlDNUIwMEMwMTM2MiAvKiBEcmFnU2Vzc2lvbi5oICovLAogCQkJ
CTFBRjMyNjc3MEQ3OEI5NDQwMDY4RjBDNCAvKiBFZGl0b3JDbGllbnQuaCAqLywKIAkJCQk5M0Mw
OUE4MDBCMDY0RjAwMDA1QUJENEQgLyogRXZlbnRIYW5kbGVyLmNwcCAqLywKIAkJCQk5M0MwOUE1
MjBCMDY0REIzMDA1QUJENEQgLyogRXZlbnRIYW5kbGVyLmggKi8sCkBAIC0yNDU0MSw2ICsyNDU0
NCw3IEBACiAJCQkJOUIzQTg4NzIxNDU2MzJGOTAwM0FFOEY1IC8qIERPTURPTVNldHRhYmxlVG9r
ZW5MaXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDYyRjUyRTE0NTg5OEQ4MDA5NEIwRUQgLyog
QXVkaW9Tb3VyY2VQcm92aWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4RkVCREQx
NDNFM0VGNzAwNzI1MDJCIC8qIENTU0Nyb3NzZmFkZVZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkzMTY5Mzc5QzE0NjA5QzZDMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCBpbiBIZWFkZXJzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCA3MTJhZjE5MTk1NDBi
NTgzMWQyMGJhZTY4ODQ2MDczNTdiMTM3ODI3Li5mOGRlMGM1NTZmNmYxYjE5OWFhZTdjMjhjNDM2
OTg1YjBlODI3MjY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAt
MzYsNiArMzYsNyBAQAogI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCiAjaW5jbHVkZSAiRHJhZ0Ns
aWVudC5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIK
ICNpbmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCkBAIC0xNjIsNyArMTYzLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJh
Z0VuZGVkKCkKICAgICBtX2NsaWVudC0+ZHJhZ0VuZGVkKCk7CiB9CiAKLURyYWdPcGVyYXRpb24g
RHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdTZXNz
aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiB7CiAg
ICAgcmV0dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsKIH0KQEAgLTE4Miw3ICsx
ODMsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKERyYWdEYXRhKiBkcmFnRGF0
YSkKICAgICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KDApOwogfQogCi1EcmFnT3BlcmF0aW9uIERy
YWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCitEcmFnU2Vzc2lv
biBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAg
IHJldHVybiBkcmFnRW50ZXJlZE9yVXBkYXRlZChkcmFnRGF0YSk7CiB9CkBAIC0yMzIsNyArMjMz
LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6bW91c2VNb3ZlZEludG9Eb2N1bWVudChEb2N1bWVu
dCogbmV3RG9jdW1lbnQpCiAgICAgbV9kb2N1bWVudFVuZGVyTW91c2UgPSBuZXdEb2N1bWVudDsK
IH0KIAotRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQo
RHJhZ0RhdGEqIGRyYWdEYXRhKQorRHJhZ1Nlc3Npb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRl
cmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICBBU1NFUlQoZHJhZ0RhdGEp
OwogICAgIEFTU0VSVChtX3BhZ2UtPm1haW5GcmFtZSgpKTsgLy8gSXQgaXMgbm90IHBvc3NpYmxl
IGluIE1hYyBXZWJLaXQgdG8gaGF2ZSBhIFBhZ2Ugd2l0aG91dCBhIG1haW5GcmFtZSgpCkBAIC0y
NDEsMTQgKzI0MiwxNCBAQCBEcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJl
ZE9yVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgbV9kcmFnRGVzdGluYXRpb25BY3Rp
b24gPSBtX2NsaWVudC0+YWN0aW9uTWFza0ZvckRyYWcoZHJhZ0RhdGEpOwogICAgIGlmIChtX2Ry
YWdEZXN0aW5hdGlvbkFjdGlvbiA9PSBEcmFnRGVzdGluYXRpb25BY3Rpb25Ob25lKSB7CiAgICAg
ICAgIGNhbmNlbERyYWcoKTsgLy8gRklYTUU6IFdoeSBub3QgY2FsbCBtb3VzZU1vdmVkSW50b0Rv
Y3VtZW50KDApPwotICAgICAgICByZXR1cm4gRHJhZ09wZXJhdGlvbk5vbmU7CisgICAgICAgIHJl
dHVybiBEcmFnU2Vzc2lvbigpOwogICAgIH0KIAotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9u
ID0gRHJhZ09wZXJhdGlvbk5vbmU7Ci0gICAgYm9vbCBoYW5kbGVkQnlEb2N1bWVudCA9IHRyeURv
Y3VtZW50RHJhZyhkcmFnRGF0YSwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24sIG9wZXJhdGlvbik7
CisgICAgRHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb247CisgICAgYm9vbCBoYW5kbGVkQnlEb2N1bWVu
dCA9IHRyeURvY3VtZW50RHJhZyhkcmFnRGF0YSwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24sIGRy
YWdTZXNzaW9uKTsKICAgICBpZiAoIWhhbmRsZWRCeURvY3VtZW50ICYmIChtX2RyYWdEZXN0aW5h
dGlvbkFjdGlvbiAmIERyYWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQpKQotICAgICAgICByZXR1cm4g
b3BlcmF0aW9uRm9yTG9hZChkcmFnRGF0YSk7Ci0gICAgcmV0dXJuIG9wZXJhdGlvbjsKKyAgICAg
ICAgZHJhZ1Nlc3Npb24ub3BlcmF0aW9uID0gb3BlcmF0aW9uRm9yTG9hZChkcmFnRGF0YSk7Cisg
ICAgcmV0dXJuIGRyYWdTZXNzaW9uOwogfQogCiBzdGF0aWMgSFRNTElucHV0RWxlbWVudCogYXNG
aWxlSW5wdXQoTm9kZSogbm9kZSkKQEAgLTI4NCw3ICsyODUsNyBAQCBzdGF0aWMgRWxlbWVudCog
ZWxlbWVudFVuZGVyTW91c2UoRG9jdW1lbnQqIGRvY3VtZW50VW5kZXJNb3VzZSwgY29uc3QgSW50
UG9pbnQmCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKTsKIH0KIAotYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdPcGVyYXRpb24mIG9wZXJhdGlvbikKK2Jv
b2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERy
YWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrLCBEcmFnU2Vzc2lvbiYgZHJhZ1Nlc3Npb24p
CiB7CiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKIApAQCAtMjk2LDcgKzI5Nyw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0
aW5hdGlvbkFjdGlvbiBhCiAKICAgICBtX2lzSGFuZGxpbmdEcmFnID0gZmFsc2U7CiAgICAgaWYg
KGFjdGlvbk1hc2sgJiBEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCkgewotICAgICAgICBtX2lz
SGFuZGxpbmdEcmFnID0gdHJ5REhUTUxEcmFnKGRyYWdEYXRhLCBvcGVyYXRpb24pOworICAgICAg
ICBtX2lzSGFuZGxpbmdEcmFnID0gdHJ5REhUTUxEcmFnKGRyYWdEYXRhLCBkcmFnU2Vzc2lvbi5v
cGVyYXRpb24pOwogICAgICAgICAvLyBEbyBub3QgY29udGludWUgaWYgbV9kb2N1bWVudFVuZGVy
TW91c2UgaGFzIGJlZW4gcmVzZXQgYnkgdHJ5REhUTUxEcmFnLgogICAgICAgICAvLyB0cnlESFRN
TERyYWcgZmlyZXMgZHJhZ2VudGVyIGV2ZW50LiBUaGUgZXZlbnQgbGlzdGVuZXIgdGhhdCBsaXN0
ZW5zCiAgICAgICAgIC8vIHRvIHRoaXMgZXZlbnQgbWF5IGNyZWF0ZSBhIG5lc3RlZCBtZXNzYWdl
IGxvb3AgKG9wZW4gYSBtb2RhbCBkaWFsb2cpLApAQCAtMzE3LDcgKzMxOCw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0
aW5hdGlvbkFjdGlvbiBhCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0gZWxzZSBpZiAoKGFj
dGlvbk1hc2sgJiBEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0KSAmJiBjYW5Qcm9jZXNzRHJhZyhk
cmFnRGF0YSkpIHsKICAgICAgICAgaWYgKGRyYWdEYXRhLT5jb250YWluc0NvbG9yKCkpIHsKLSAg
ICAgICAgICAgIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25HZW5lcmljOworICAgICAgICAgICAg
ZHJhZ1Nlc3Npb24ub3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbkdlbmVyaWM7CiAgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogCkBAIC0zMjUsMTEgKzMyNiwzMiBAQCBib29sIERy
YWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVz
dGluYXRpb25BY3Rpb24gYQogICAgICAgICBFbGVtZW50KiBlbGVtZW50ID0gZWxlbWVudFVuZGVy
TW91c2UobV9kb2N1bWVudFVuZGVyTW91c2UuZ2V0KCksIHBvaW50KTsKICAgICAgICAgaWYgKCFl
bGVtZW50KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAoIWFzRmlsZUlu
cHV0KGVsZW1lbnQpKQorICAgICAgICAKKyAgICAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dEFzRmlsZUlucHV0ID0gYXNGaWxlSW5wdXQoZWxlbWVudCk7CisgICAgICAgIGlmICghZWxlbWVu
dEFzRmlsZUlucHV0KQogICAgICAgICAgICAgbV9wYWdlLT5kcmFnQ2FyZXRDb250cm9sbGVyKCkt
PnNldENhcmV0UG9zaXRpb24obV9kb2N1bWVudFVuZGVyTW91c2UtPmZyYW1lKCktPnZpc2libGVQ
b3NpdGlvbkZvclBvaW50KHBvaW50KSk7CiAKICAgICAgICAgRnJhbWUqIGlubmVyRnJhbWUgPSBl
bGVtZW50LT5kb2N1bWVudCgpLT5mcmFtZSgpOwotICAgICAgICBvcGVyYXRpb24gPSBkcmFnSXNN
b3ZlKGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkgPyBEcmFnT3BlcmF0aW9uTW92
ZSA6IERyYWdPcGVyYXRpb25Db3B5OworICAgICAgICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBk
cmFnSXNNb3ZlKGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkgPyBEcmFnT3BlcmF0
aW9uTW92ZSA6IERyYWdPcGVyYXRpb25Db3B5OworICAgICAgICBkcmFnU2Vzc2lvbi5tb3VzZUlz
T3ZlckZpbGVJbnB1dCA9IGVsZW1lbnRBc0ZpbGVJbnB1dDsKKyAgICAgICAgZHJhZ1Nlc3Npb24u
bnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IDA7CisKKyAgICAgICAgdW5zaWduZWQgbnVtYmVy
T2ZGaWxlcyA9IGRyYWdEYXRhLT5udW1iZXJPZkZpbGVzKCk7CisgICAgICAgIGlmIChlbGVtZW50
QXNGaWxlSW5wdXQpIHsKKyAgICAgICAgICAgIGlmIChlbGVtZW50QXNGaWxlSW5wdXQtPmRpc2Fi
bGVkKCkpCisgICAgICAgICAgICAgICAgZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2Nl
cHRlZCA9IDA7CisgICAgICAgICAgICBlbHNlIGlmIChlbGVtZW50QXNGaWxlSW5wdXQtPm11bHRp
cGxlKCkpCisgICAgICAgICAgICAgICAgZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2Nl
cHRlZCA9IG51bWJlck9mRmlsZXM7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCA9IDE7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICghZHJhZ1Nlc3Npb24ubnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZCkK
KyAgICAgICAgICAgICAgICBkcmFnU2Vzc2lvbi5vcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9uTm9u
ZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAvLyBXZSBhcmUgbm90IG92ZXIgYSBmaWxl
IGlucHV0IGVsZW1lbnQuIFRoZSBkcmFnZ2VkIGl0ZW0ocykgd2lsbCBvbmx5CisgICAgICAgICAg
ICAvLyBiZSBsb2FkZWQgaW50byB0aGUgdmlldyB0aGUgbnVtYmVyIG9mIGRyYWdnZWQgaXRlbXMg
aXMgMS4KKyAgICAgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQg
PSBudW1iZXJPZkZpbGVzICE9IDEgPyAwIDogMTsKKyAgICAgICAgCiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICAvLyBJZiB3ZSdyZSBub3Qgb3ZlciBhbiBlZGl0YWJsZSByZWdpb24s
IG1ha2Ugc3VyZSB3ZSdyZSBjbGVhcmluZyBhbnkgcHJpb3IgZHJhZyBjdXJzb3IuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKaW5kZXggMjYxYThkNTNmNzM2NThiMDcxZjIxMDU2YWU1
OGIyNGIxYmI0NTk2OS4uZDUyNTkxZDE1NDlmY2JkOTBlMTBiYjBiNGU1NjM0ZDAzMGFiZGY4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaApAQCAtMzcsNiArMzcsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRHJhZ0NsaWVu
dDsKICAgICBjbGFzcyBEcmFnRGF0YTsKKyAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CiAgICAgc3Ry
dWN0IERyYWdTdGF0ZTsKICAgICBjbGFzcyBFbGVtZW50OwogICAgIGNsYXNzIEZyYW1lOwpAQCAt
NTUsOSArNTYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIH5EcmFnQ29udHJvbGxl
cigpOwogICAgICAgICBEcmFnQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVu
dDsgfQogCi0gICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ0VudGVyZWQoRHJhZ0RhdGEqKTsKKyAg
ICAgICAgRHJhZ1Nlc3Npb24gZHJhZ0VudGVyZWQoRHJhZ0RhdGEqKTsKICAgICAgICAgdm9pZCBk
cmFnRXhpdGVkKERyYWdEYXRhKik7Ci0gICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ1VwZGF0ZWQo
RHJhZ0RhdGEqKTsKKyAgICAgICAgRHJhZ1Nlc3Npb24gZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEqKTsK
ICAgICAgICAgYm9vbCBwZXJmb3JtRHJhZyhEcmFnRGF0YSopOwogICAgICAgICAKICAgICAgICAg
Ly8gRklYTUU6IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byByZW1vdmUgYSBudW1iZXIgb2YgdGhl
c2UgYWNjZXNzb3JzIG9uY2UgYWxsCkBAIC05NCw5ICs5NSw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgYm9vbCBkaXNwYXRjaFRleHRJbnB1dEV2ZW50Rm9yKEZyYW1lKiwgRHJhZ0Rh
dGEqKTsKICAgICAgICAgYm9vbCBjYW5Qcm9jZXNzRHJhZyhEcmFnRGF0YSopOwogICAgICAgICBi
b29sIGNvbmNsdWRlRWRpdERyYWcoRHJhZ0RhdGEqKTsKLSAgICAgICAgRHJhZ09wZXJhdGlvbiBk
cmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSopOworICAgICAgICBEcmFnU2Vzc2lvbiBkcmFn
RW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSopOwogICAgICAgICBEcmFnT3BlcmF0aW9uIG9wZXJh
dGlvbkZvckxvYWQoRHJhZ0RhdGEqKTsKLSAgICAgICAgYm9vbCB0cnlEb2N1bWVudERyYWcoRHJh
Z0RhdGEqLCBEcmFnRGVzdGluYXRpb25BY3Rpb24sIERyYWdPcGVyYXRpb24mKTsKKyAgICAgICAg
Ym9vbCB0cnlEb2N1bWVudERyYWcoRHJhZ0RhdGEqLCBEcmFnRGVzdGluYXRpb25BY3Rpb24sIERy
YWdTZXNzaW9uJik7CiAgICAgICAgIGJvb2wgdHJ5REhUTUxEcmFnKERyYWdEYXRhKiwgRHJhZ09w
ZXJhdGlvbiYpOwogICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oRHJhZ0RhdGEq
KTsKICAgICAgICAgdm9pZCBjYW5jZWxEcmFnKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RyYWdTZXNzaW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdTZXNzaW9uLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZmI3MzcxZTVlYWM5OTMwNDRjZThmNDYyOTRhMzY2MTg1N2E2N2EzMAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ1Nlc3Npb24uaApAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBEcmFnU2Vzc2lvbl9oCisjZGVmaW5lIERyYWdT
ZXNzaW9uX2gKKworI2luY2x1ZGUgIkRyYWdBY3Rpb25zLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKyAgICAKK3N0cnVjdCBEcmFnU2Vzc2lvbiB7CisgICAgRHJhZ1Nlc3Npb24oKQorICAgIDog
b3BlcmF0aW9uKERyYWdPcGVyYXRpb25Ob25lKQorICAgICwgbW91c2VJc092ZXJGaWxlSW5wdXQo
ZmFsc2UpCisgICAgLCBudW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKDApIHsgfQorICAgIERyYWdP
cGVyYXRpb24gb3BlcmF0aW9uOworICAgIGJvb2wgbW91c2VJc092ZXJGaWxlSW5wdXQ7CisgICAg
dW5zaWduZWQgbnVtYmVyT2ZJdGVtc1RvQmVBY2NlcHRlZDsKK307CisKK30KKworI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCBhZmEyMTlmM2I3MjIzYmRkZDU4YzI3ZWY2
NzJkOGM2Y2E3MGNmMWJjLi5iYjI0MmY5ZTkxNjJhNzY5ZTE4NjJlZjBhOTM0OGFkOTVlODU4OGFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAgLTExNiw2ICsxMTYsNyBAQCBwdWJs
aWM6CiAgICAgYm9vbCBjYW5TbWFydFJlcGxhY2UoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5z
Q29sb3IoKSBjb25zdDsKICAgICBib29sIGNvbnRhaW5zRmlsZXMoKSBjb25zdDsKKyAgICB1bnNp
Z25lZCBudW1iZXJPZkZpbGVzKCkgY29uc3Q7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIE5TUGFz
dGVib2FyZCAqcGFzdGVib2FyZCgpIHsgcmV0dXJuIG1fcGFzdGVib2FyZC5nZXQoKTsgfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0
YUNocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRh
Q2hyb21pdW0uY3BwCmluZGV4IDA5ZGE4YTRhNDBkNjcyZmY0Mjg2NWY4Yzg5OWM2NjY3MjVjNGY1
ZTIuLjljMzgzODYwMjUxYzc0NzAwOTJmOTY1MzdhNjE3NzkyODg4YmRiYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3Bw
CkBAIC03Myw2ICs3MywxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QK
ICAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5jb250YWluc0ZpbGVuYW1lcygpOwogfQog
Cit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fcGxhdGZvcm1EcmFnRGF0YS0+ZmlsZW5hbWVzKCkuc2l6ZSgpOworfQorCiB2b2lkIERyYWdE
YXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMgPSBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVu
YW1lcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRh
RWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKaW5k
ZXggYjM1Yjk2M2VhOWM0Njk4NjAxN2Y2Mzk3NGIwNzVhMzQzN2QxZDQ2Ni4uOWQ3ZTljYTc5NWM4
ZjdkMWJjMzY4ODJhM2E0YWM4MWY0YjhjMDk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0RhdGFFZmwuY3BwCkBAIC00MSw2ICs0MSwxMSBAQCBib29sIERyYWdEYXRhOjpj
b250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3Vuc2lnbmVkIERy
YWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9p
ZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwCmluZGV4IGNj
OWEyMDgwMDNiMjdkMTBhOWM4ZThmZTZjM2RiYjNjMzhmYzAwZTQuLjAyYTQ3NDlkMzNjYmIyOTlj
OGRkNjZlMzVjMDA5MWFiMjhmMTBhZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdEYXRhR3RrLmNwcApAQCAtNDEsNiArNDEsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFp
bnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+aGFzRmlsZW5h
bWVzKCk7CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKS5zaXplKCk7Cit9CisK
IHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0
CiB7CiAgICAgcmVzdWx0ID0gbV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQppbmRleCAyY2E5NDNkZTExYjBk
OWE4MGNhMzc1OGU3NDMxM2IyYTVlOTE5OWMyLi4yOTRlZWJiYjhjYzJlOTUzMmM4YjcyZGZlY2Fj
YTBlOTI4YjhiYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJh
Z0RhdGFNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFj
Lm1tCkBAIC03Niw2ICs3NiwxMyBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29u
c3QKICAgICByZXR1cm4gW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgdHlwZXNdIGNvbnRhaW5zT2JqZWN0
Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJP
ZkZpbGVzKCkgY29uc3QKK3sKKyAgICBpZiAoIVtbbV9wYXN0ZWJvYXJkLmdldCgpIHR5cGVzXSBj
b250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdKQorICAgICAgICByZXR1cm4gMDsK
KyAgICByZXR1cm4gW1ttX3Bhc3RlYm9hcmQuZ2V0KCkgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0Zp
bGVuYW1lc1Bib2FyZFR5cGVdIGNvdW50XTsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFt
ZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsKICAgICBOU0FycmF5ICpmaWxlbmFt
ZXMgPSBbbV9wYXN0ZWJvYXJkLmdldCgpIHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQ
Ym9hcmRUeXBlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdE
YXRhUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHAKaW5k
ZXggMjU1NGRmNDIzNTA3NjliZWJmM2NhMzIyZTc3MjcyY2QyMTM5ZDJiYi4uMDMwM2FkN2M5MjRh
MTVkZGRlMmUzNGI3ZjlmODhhZTEzN2Q4ZjBjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvRHJhZ0RhdGFRdC5jcHAKQEAgLTYyLDYgKzYyLDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRh
aW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAordW5zaWduZWQgRHJhZ0Rh
dGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAgIHJldHVybiAwOworfQorCiB2b2lkIERy
YWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAg
IGlmICghbV9wbGF0Zm9ybURyYWdEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9E
cmFnRGF0YVdpbi5jcHAKaW5kZXggMDhiNmViMmQ3NmQ1M2Y1YTZlNzM2MWY4OGVhNjFmMGFjZTRl
MWI3My4uOWFiNjJiOTUwZmZiMDVlOTE0YzdlZDczZWI0ZTQ0YzhmNDVhMTdjMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCkBAIC0xMTAsNiArMTEwLDEx
IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiAobV9w
bGF0Zm9ybURyYWdEYXRhKSA/IFNVQ0NFRURFRChtX3BsYXRmb3JtRHJhZ0RhdGEtPlF1ZXJ5R2V0
RGF0YShjZkhEcm9wRm9ybWF0KCkpKSA6IG1fZHJhZ0RhdGFNYXAuY29udGFpbnMoY2ZIRHJvcEZv
cm1hdCgpLT5jZkZvcm1hdCk7CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVz
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFt
ZXMoVmVjdG9yPFN0cmluZz4mIHJlc3VsdCkgY29uc3QKIHsKICAgICBpZiAobV9wbGF0Zm9ybURy
YWdEYXRhKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9EcmFn
RGF0YVdpbkNFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2lu
Q0UuY3BwCmluZGV4IDY3OTIyOWRkNWZjMTdiMjVjZTdkMjdlMGI2M2IyZGU3YjFiMjZlMDIuLmNj
NWY3YTdhYWQzMWQ3NzMxMDA3ZTBhODBkZTk3MWI5MjNiZDg1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2luQ0UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbmNlL0RyYWdEYXRhV2luQ0UuY3BwCkBAIC00Nyw2ICs0NywxMSBA
QCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4m
KSBjb25zdAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJh
Z0RhdGFXeC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcApp
bmRleCBiZTI0MDQyZDQ3ODZkNThkNDRkZWZjMzE4OGVkOTk1NmQ2Y2IzMDQ5Li44MmU0NzQwYTRk
ZDA3Yjk2NjAyZDQzZGVhNTFkOTk5MWE2MzFkMTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93eC9EcmFnRGF0YVd4LmNwcApAQCAtNDcsNiArNDcsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29u
dGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFn
RGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQg
RHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggMWJhNWRh
ZjQ3MmE0MDY5ZmY5ODdmMmI2MzAxNWVjMDFjYWZjNjUxZS4uNDhmYjNlMGE5OGYzYWIyYWMxNTQx
NWIwNTc1ZWZhYTMwNDAwYTA4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmNwcApAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgi
CiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKICNpbmNsdWRlICJEcmFnU2Nyb2xsVGltZXIuaCIKKyNp
bmNsdWRlICJEcmFnU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkV2
ZW50SGFuZGxlci5oIgogI2luY2x1ZGUgIkV4dGVuc2lvbnMzRC5oIgpAQCAtMjA2NywxMSArMjA2
OCwxMyBAQCBXZWJEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVy
T3JPdmVyKGNvbnN0IFdlYlBvaW50JiBjbGllbnRQbwogICAgICAgICBzY3JlZW5Qb2ludCwKICAg
ICAgICAgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4obV9vcGVyYXRpb25zQWxsb3dlZCkpOwog
Ci0gICAgRHJhZ09wZXJhdGlvbiBkcm9wRWZmZWN0OworICAgIERyYWdTZXNzaW9uIGRyYWdTZXNz
aW9uOwogICAgIGlmIChkcmFnQWN0aW9uID09IERyYWdFbnRlcikKLSAgICAgICAgZHJvcEVmZmVj
dCA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKTsKKyAg
ICAgICAgZHJhZ1Nlc3Npb24gPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVk
KCZkcmFnRGF0YSk7CiAgICAgZWxzZQotICAgICAgICBkcm9wRWZmZWN0ID0gbV9wYWdlLT5kcmFn
Q29udHJvbGxlcigpLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEpOworICAgICAgICBkcmFnU2Vzc2lv
biA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKTsKKwor
ICAgIERyYWdPcGVyYXRpb24gZHJvcEVmZmVjdCA9IGRyYWdTZXNzaW9uLm9wZXJhdGlvbjsKIAog
ICAgIC8vIE1hc2sgdGhlIGRyb3AgZWZmZWN0IG9wZXJhdGlvbiBhZ2FpbnN0IHRoZSBkcmFnIHNv
dXJjZSdzIGFsbG93ZWQgb3BlcmF0aW9ucy4KICAgICBpZiAoIShkcm9wRWZmZWN0ICYgZHJhZ0Rh
dGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwCmluZGV4IDRlN2FkYTY5ODAyNzZhZjJiZDg0MGE2MTZhMmVl
ZDJjZWY1OTE2ZTMuLjgwM2ExOGJlMWNmN2NhMzc1ODZjYWJlN2RjZDgxYTI2MGViNzc2Y2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTQ3LDYgKzQ3
LDcgQEAKICNpbmNsdWRlICJEcmFnQ2xpZW50R3RrLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgorI2luY2x1ZGUgIkRyYWdTZXNzaW9uLmgiCiAj
aW5jbHVkZSAiRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgi
CiAjaW5jbHVkZSAiRWRpdG9yQ2xpZW50R3RrLmgiCkBAIC0xNDQxLDcgKzE0NDIsNyBAQCBzdGF0
aWMgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2RyYWdfbW90aW9uKEd0a1dpZGdldCogd2lkZ2V0
LCBHZGtEcmFnQ29udGV4dCogYwogICAgIGlmICghZHJhZ0RhdGEpCiAgICAgICAgIHJldHVybiBU
UlVFOwogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZpZXcpLT5kcmFn
Q29udHJvbGxlcigpLT5kcmFnVXBkYXRlZChkcmFnRGF0YS5nZXQoKSk7CisgICAgRHJhZ09wZXJh
dGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZpZXcpLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBk
YXRlZChkcmFnRGF0YS5nZXQoKSkub3BlcmF0aW9uOwogICAgIGdka19kcmFnX3N0YXR1cyhjb250
ZXh0LCBkcmFnT3BlcmF0aW9uVG9TaW5nbGVHZGtEcmFnQWN0aW9uKG9wZXJhdGlvbiksIHRpbWUp
OwogICAgIHJldHVybiBUUlVFOwogfQpAQCAtMTQ1Myw3ICsxNDU0LDcgQEAgc3RhdGljIHZvaWQg
d2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZChHdGtXaWRnZXQqIHdpZGdldCwgR2Rr
RHJhZ0NvbnRleHQKICAgICBpZiAoIWRyYWdEYXRhKQogICAgICAgICByZXR1cm47CiAKLSAgICBE
cmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IGNvcmUod2ViVmlldyktPmRyYWdDb250cm9sbGVyKCkt
PmRyYWdFbnRlcmVkKGRyYWdEYXRhLmdldCgpKTsKKyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlv
biA9IGNvcmUod2ViVmlldyktPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKGRyYWdEYXRh
LmdldCgpKS5vcGVyYXRpb247CiAgICAgZ2RrX2RyYWdfc3RhdHVzKGNvbnRleHQsIGRyYWdPcGVy
YXRpb25Ub1NpbmdsZUdka0RyYWdBY3Rpb24ob3BlcmF0aW9uKSwgdGltZSk7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxOWY3NDc2OWRlOWMzNjg5MWVmMGE0Zjg4
YTE1NzE3NWNjYTE5MjJiLi4wODY0ZmE4ZWU5ZWFlNTI0Mjc4ZjdiMzZjYTM5Mzc1MzJhZGM5YjMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMTcsNiArMTE3LDcgQEAK
ICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJh
Z0NvbnRyb2xsZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNpbXBvcnQgPFdl
YkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FeGNlcHRpb25IYW5k
bGVycy5oPgpAQCAtMzg2NCw3ICszODY1LDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3Qgd2lu
ZG93RGlkQ2hhbmdlUmVzb2x1dGlvbk5vdGlmaWNhdGlvbiA9IEAiTlNXaW5kb3dEaWRDaGEKICAg
ICBJbnRQb2ludCBjbGllbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSk7CiAgICAg
SW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlv
bl0sIFtzZWxmIHdpbmRvd10pKTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8s
IGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbZHJhZ2dpbmdJbmZv
IGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdzOmRy
YWdnaW5nSW5mb10pOwotICAgIHJldHVybiBjb3JlKHNlbGYpLT5kcmFnQ29udHJvbGxlcigpLT5k
cmFnRW50ZXJlZCgmZHJhZ0RhdGEpOworICAgIHJldHVybiBjb3JlKHNlbGYpLT5kcmFnQ29udHJv
bGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbjsKIH0KIAogLSAoTlNEcmFn
T3BlcmF0aW9uKWRyYWdnaW5nVXBkYXRlZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0lu
Zm8KQEAgLTM4NzYsNyArMzg3Nyw3IEBAIHN0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0Rp
ZENoYW5nZVJlc29sdXRpb25Ob3RpZmljYXRpb24gPSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50
UG9pbnQgY2xpZW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBv
aW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBb
c2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGll
bnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFn
Z2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2lu
Z0luZm9dKTsKLSAgICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQo
JmRyYWdEYXRhKTsKKyAgICByZXR1cm4gcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0
ZWQoJmRyYWdEYXRhKS5vcGVyYXRpb247CiB9CiAKIC0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6KGlk
IDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAK
aW5kZXggYmIxNDI0ZjhiNWI5YWE0YzE4M2E1MjI0ZjMxYmE2NGRlN2Q1MjQ0MS4uN2U2OTZjNDMw
Zjg5MWNlMjc5MDhiNDFiNDZkODA1ODViMDNkNGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcApAQCAtNTEsNiArNTEsNyBAQAogI2luY2x1ZGUgIkRyYWdDbGllbnRRdC5oIgogI2luY2x1
ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNsdWRlICJE
cmFnU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVu
dFF0LmgiCiAjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCkBAIC05OTEsNyArOTkyLDcgQEAg
dm9pZCBRV2ViUGFnZVByaXZhdGU6OmRyYWdFbnRlckV2ZW50KFQqIGV2KQogI2lmbmRlZiBRVF9O
T19EUkFHQU5ERFJPUAogICAgIERyYWdEYXRhIGRyYWdEYXRhKGV2LT5taW1lRGF0YSgpLCBRUG9p
bnRGKGV2LT5wb3MoKSkudG9Qb2ludCgpLAogICAgICAgICAgICAgUUN1cnNvcjo6cG9zKCksIGRy
b3BBY3Rpb25Ub0RyYWdPcChldi0+cG9zc2libGVBY3Rpb25zKCkpKTsKLSAgICBRdDo6RHJvcEFj
dGlvbiBhY3Rpb24gPSBkcmFnT3BUb0Ryb3BBY3Rpb24ocGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+
ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKSk7CisgICAgUXQ6OkRyb3BBY3Rpb24gYWN0aW9uID0gZHJh
Z09wVG9Ecm9wQWN0aW9uKHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkcmFn
RGF0YSkub3BlcmF0aW9uKTsKICAgICBldi0+c2V0RHJvcEFjdGlvbihhY3Rpb24pOwogICAgIGV2
LT5hY2NlcHRQcm9wb3NlZEFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDEzLDcgKzEwMTQsNyBAQCB2
b2lkIFFXZWJQYWdlUHJpdmF0ZTo6ZHJhZ01vdmVFdmVudChUICpldikKICNpZm5kZWYgUVRfTk9f
RFJBR0FORERST1AKICAgICBEcmFnRGF0YSBkcmFnRGF0YShldi0+bWltZURhdGEoKSwgUVBvaW50
Rihldi0+cG9zKCkpLnRvUG9pbnQoKSwKICAgICAgICAgICAgIFFDdXJzb3I6OnBvcygpLCBkcm9w
QWN0aW9uVG9EcmFnT3AoZXYtPnBvc3NpYmxlQWN0aW9ucygpKSk7Ci0gICAgbV9sYXN0RHJvcEFj
dGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBk
YXRlZCgmZHJhZ0RhdGEpKTsKKyAgICBtX2xhc3REcm9wQWN0aW9uID0gZHJhZ09wVG9Ecm9wQWN0
aW9uKHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSkub3BlcmF0
aW9uKTsKICAgICBldi0+c2V0RHJvcEFjdGlvbihtX2xhc3REcm9wQWN0aW9uKTsKICAgICBpZiAo
bV9sYXN0RHJvcEFjdGlvbiAhPSBRdDo6SWdub3JlQWN0aW9uKQogICAgICAgICBldi0+YWNjZXB0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKaW5kZXggNmNj
NTMxNjVhYzM2MmI1ZGE1Mzk0MTVkOWNkYjM4ZDljODJmNTU3Yi4uOWU5ZDZjM2JlZTRkMWUyZTkw
NmU3MGVjYzEwZmJmOGNmZWI3MDczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy93ZWJraXQyL21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0
Mi9tZXNzYWdlcy5weQpAQCAtMTcwLDYgKzE3MCw3IEBAIGRlZiBzdHJ1Y3Rfb3JfY2xhc3MobmFt
ZXNwYWNlLCB0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OkFuaW1hdGlvbicsCiAgICAgICAgICdX
ZWJDb3JlOjpFZGl0b3JDb21tYW5kc0ZvcktleUV2ZW50JywKICAgICAgICAgJ1dlYkNvcmU6OkNv
bXBvc2l0aW9uVW5kZXJsaW5lJywKKyAgICAgICAgJ1dlYkNvcmU6OkRyYWdTZXNzaW9uJywKICAg
ICAgICAgJ1dlYkNvcmU6OkZsb2F0UG9pbnQzRCcsCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hv
b3NlclNldHRpbmdzJywKICAgICAgICAgJ1dlYkNvcmU6OkdyYW1tYXJEZXRhaWwnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCBmNDMx
NDEwYTcwMjRhM2MxYmY4MDM2NDcwMzYxOTI1MjFhNjU2M2U5Li42NzAwMGUwZTE4N2NiMWY3YjI5
YWU4ZjEzYjg1Nzg4ZWVhMjkyYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgPFdlYkNv
cmUvQ3JlZGVudGlhbC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3Vyc29yLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EYXRhYmFzZURldGFpbHMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9u
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9FZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVD
aG9vc2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KQEAgLTYwNCw2
ICs2MDUsMjQgQEAgYm9vbCBBcmd1bWVudENvZGVyPFRleHRDaGVja2luZ1Jlc3VsdD46OmRlY29k
ZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFRleHRDaGUKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAordm9pZCBBcmd1bWVudENvZGVyPERyYWdTZXNzaW9uPjo6ZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciogZW5jb2RlciwgY29uc3QgRHJhZ1Nlc3Npb24mIHJlc3VsdCkKK3sKKyAgICBlbmNvZGVyLT5l
bmNvZGVFbnVtKHJlc3VsdC5vcGVyYXRpb24pOworICAgIGVuY29kZXItPmVuY29kZShyZXN1bHQu
bW91c2VJc092ZXJGaWxlSW5wdXQpOworICAgIGVuY29kZXItPmVuY29kZShyZXN1bHQubnVtYmVy
T2ZJdGVtc1RvQmVBY2NlcHRlZCk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxEcmFnU2Vzc2lv
bj46OmRlY29kZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIERyYWdTZXNzaW9uJiByZXN1bHQp
Cit7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGVFbnVtKHJlc3VsdC5vcGVyYXRpb24pKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1vdXNl
SXNPdmVyRmlsZUlucHV0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rl
ci0+ZGVjb2RlKHJlc3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiAjaWYgUExBVEZPUk0oUVQpCiAKIHZv
aWQgQXJndW1lbnRDb2RlcjxGbG9hdFBvaW50M0Q+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyLCBjb25zdCBGbG9hdFBvaW50M0QmIGZsb2F0UG9pbnQzRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhY2U1ZDlkNjE1OTRiZmEw
NzI0YmRmN2IwMTY3MmEwMjMxNTRjOGI0Li5lNzZmM2FmZDU4ZDg3M2E0MjY1MjJjYmFhYzYzMDc4
NDYwNWIzNDEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCkBAIC00Nyw2ICs0Nyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBS
ZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKICAgICBzdHJ1Y3Qg
Q29tcG9zaXRpb25VbmRlcmxpbmU7CisgICAgc3RydWN0IERyYWdTZXNzaW9uOwogICAgIHN0cnVj
dCBGaWxlQ2hvb3NlclNldHRpbmdzOwogICAgIHN0cnVjdCBHcmFtbWFyRGV0YWlsOwogICAgIHN0
cnVjdCBNaW1lQ2xhc3NJbmZvOwpAQCAtMjEzLDYgKzIxNCwxMSBAQCB0ZW1wbGF0ZTw+IHN0cnVj
dCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdD4gewogICAgIHN0YXRp
YyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQXJndW1lbnREZWNvZGVyKiwgV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVzdWx0Jik7CiB9OworICAgIAordGVtcGxhdGU8PiBzdHJ1Y3Qg
QXJndW1lbnRDb2RlcjxXZWJDb3JlOjpEcmFnU2Vzc2lvbj4geworICAgIHN0YXRpYyB2b2lkIGVu
Y29kZShBcmd1bWVudEVuY29kZXIqLCBjb25zdCBXZWJDb3JlOjpEcmFnU2Vzc2lvbiYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpEcmFnU2Vzc2lv
biYpOworfTsKIAogI2lmIFBMQVRGT1JNKFFUKQogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpGbG9hdFBvaW50M0Q+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQppbmRleCBkZWIxZDA2NzUxMzAzZDc4OTljM2MwMzhhZTJjYzJiNDBh
ZmI5MjQ0Li5iY2NmNjg5ZjFhODNhNWFmYTU4YzQxYTEyY2UyMGU5YjBjNTczYjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC02MSw2ICs2MSw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250
cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RyYWdTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KQEAg
LTE1ODYsNyArMTU4Nyw5IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmli
dXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgSW50UG9pbnQg
Z2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxm
IHdpbmRvd10pKTsKICAgICBEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwg
Z2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbZHJhZ2dpbmdJbmZvIGRyYWdnaW5n
U291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdzOmRyYWdnaW5nSW5m
b10pOwogICAgIF9kYXRhLT5fcGFnZS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhLCBbW2RyYWdnaW5n
SW5mbyBkcmFnZ2luZ1Bhc3RlYm9hcmRdIG5hbWVdKTsKLSAgICByZXR1cm4gX2RhdGEtPl9wYWdl
LT5kcmFnT3BlcmF0aW9uKCk7CisgICAgCisgICAgV2ViQ29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nl
c3Npb24gPSBfZGF0YS0+X3BhZ2UtPmRyYWdTZXNzaW9uKCk7CisgICAgcmV0dXJuIGRyYWdTZXNz
aW9uLm9wZXJhdGlvbjsKIH0KIAogLSAodm9pZClkcmFnZ2luZ0V4aXRlZDooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggNjRmNjAzMjljNmQ2Y2JhNTM4NTM2NmUwM2Q1Mzc4ZDQ3NTMwNDA2My4uOWQw
MDMzMzRhYzA4MDc1YTA3MjYzZjIwZmNhNzdlMzJkYjBmMjlhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTcxLDcgKzcxLDkgQEAKICNpbmNsdWRlICJX
ZWJQcm90ZWN0aW9uU3BhY2UuaCIKICNpbmNsdWRlICJXZWJTZWN1cml0eU9yaWdpbi5oIgogI2lu
Y2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdDb250cm9sbGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJh
Z1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0
cnkuaD4KQEAgLTE4MSw3ICsxODMsNyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdl
Q2xpZW50KiBwYWdlQ2xpZW50LCBQYXNzUmVmUHRyPFdlYlByb2Nlc3NQcm94eT4gcAogICAgICwg
bV9oYXNTcGVsbERvY3VtZW50VGFnKGZhbHNlKQogICAgICwgbV9wZW5kaW5nTGVhcm5Pcklnbm9y
ZVdvcmRNZXNzYWdlQ291bnQoMCkKICAgICAsIG1fbWFpbkZyYW1lSGFzQ3VzdG9tUmVwcmVzZW50
YXRpb24oZmFsc2UpCi0gICAgLCBtX2N1cnJlbnREcmFnT3BlcmF0aW9uKERyYWdPcGVyYXRpb25O
b25lKQorICAgICwgbV9jdXJyZW50RHJhZ1Nlc3Npb24oKQogICAgICwgbV9tYWluRnJhbWVIYXNI
b3Jpem9udGFsU2Nyb2xsYmFyKGZhbHNlKQogICAgICwgbV9tYWluRnJhbWVIYXNWZXJ0aWNhbFNj
cm9sbGJhcihmYWxzZSkKICAgICAsIG1fbWFpbkZyYW1lSXNQaW5uZWRUb0xlZnRTaWRlKGZhbHNl
KQpAQCAtODUwLDkgKzg1Miw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpwZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24oRHJhZ0NvbnRyb2xsZXJBY3Rpb24gYWN0aW9uLCBEcmFnCiAjZW5kaWYKIH0K
IAotdm9pZCBXZWJQYWdlUHJveHk6OmRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50
NjRfdCByZXN1bHRPcGVyYXRpb24pCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKFdlYkNvcmU6OkRyYWdTZXNzaW9uIGRyYWdTZXNzaW9uKQogewotICAg
IG1fY3VycmVudERyYWdPcGVyYXRpb24gPSBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihyZXN1
bHRPcGVyYXRpb24pOworICAgIG1fY3VycmVudERyYWdTZXNzaW9uID0gZHJhZ1Nlc3Npb247CiB9
CiAKICNpZiBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDdkZTg1YjIyN2MwNDdkN2E2OWIwOTZiZTZlZjczZDI1
MmRiYTRkNmQuLjFjZjkzOWIxMmQ5OGJmMDVlOTc5YzdkZjUzYmVhYjEyNzlhZjM3YWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTU0LDYgKzU0LDcgQEAKICNp
bmNsdWRlICJXZWJSZXNvdXJjZUxvYWRDbGllbnQuaCIKICNpbmNsdWRlICJXZWJVSUNsaWVudC5o
IgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0FjdGlvbnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0Ry
YWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9IaXRUZXN0UmVzdWx0Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVlbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsVHlw
ZXMuaD4KQEAgLTQ2Nyw3ICs0NjgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkcmFnRXhpdGVkKFdl
YkNvcmU6OkRyYWdEYXRhKiwgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUgPSBTdHJpbmco
KSk7CiAgICAgdm9pZCBwZXJmb3JtRHJhZyhXZWJDb3JlOjpEcmFnRGF0YSosIGNvbnN0IFN0cmlu
ZyYgZHJhZ1N0b3JhZ2VOYW1lLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKIAot
ICAgIHZvaWQgZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9w
ZXJhdGlvbik7CisgICAgdm9pZCBkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2ViQ29y
ZTo6RHJhZ1Nlc3Npb24pOwogICAgIHZvaWQgZHJhZ0VuZGVkKGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGdsb2JhbFBvc2l0
aW9uLCB1aW50NjRfdCBvcGVyYXRpb24pOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNl
dERyYWdJbWFnZShjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIGNvbnN0
IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBkcmFnSW1hZ2VIYW5kbGUsIGJvb2wgaXNMaW5rRHJh
Zyk7CkBAIC01MDUsOCArNTA2LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1ZhbGlkKCk7CiAg
ICAgCi0gICAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBkcmFnT3BlcmF0aW9uKCkgeyByZXR1cm4g
bV9jdXJyZW50RHJhZ09wZXJhdGlvbjsgfQotICAgIHZvaWQgcmVzZXREcmFnT3BlcmF0aW9uKCkg
eyBtX2N1cnJlbnREcmFnT3BlcmF0aW9uID0gV2ViQ29yZTo6RHJhZ09wZXJhdGlvbk5vbmU7IH0K
KyAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1f
Y3VycmVudERyYWdTZXNzaW9uOyB9CisgICAgdm9pZCByZXNldERyYWdPcGVyYXRpb24oKSB7IG1f
Y3VycmVudERyYWdTZXNzaW9uID0gV2ViQ29yZTo6RHJhZ1Nlc3Npb24oKTsgfQogCiAgICAgdm9p
ZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOwogCkBAIC05MjQsNyArOTI1LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBtX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudDsKIAog
ICAgIGJvb2wgbV9tYWluRnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbjsKLSAgICBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uIG1fY3VycmVudERyYWdPcGVyYXRpb247CisgICAgV2ViQ29yZTo6RHJh
Z1Nlc3Npb24gbV9jdXJyZW50RHJhZ1Nlc3Npb247CiAKICAgICBTdHJpbmcgbV9wZW5kaW5nQVBJ
UmVxdWVzdFVSTDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggODJiOTYxY2E2MWE2MThlZmUxOTk3ZDdhYWVkMTM2MWM1ZmYy
MjQ2Ny4uM2Q4NTBiOTAxNWRkYWFiNDhkMmJkZDY3NTljZjZjOWEwODFhMmQwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0y
MDUsNyArMjA1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBJZ25vcmVXb3Jk
KFdURjo6U3RyaW5nIHdvcmQpOwogCiAgICAgIyBEcmFnIGFuZCBkcm9wIG1lc3NhZ2VzCi0gICAg
RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlvbikK
KyAgICBEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2ViQ29yZTo6RHJhZ1Nlc3Npb24g
ZHJhZ1Nlc3Npb24pCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFNldERyYWdJbWFnZShXZWJDb3Jl
OjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSBkcmFnSW1hZ2UsIGJvb2wgbGlua0RyYWcpCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA1Mzk1ZWEzNzNmMDU4MzA1MDgxNTNk
MGJhNDhiMzc2M2I4OTU1ODc2Li5iNTc0ZGYwN2JjOTIwMzQ4YjUwYjFmMDAwZWEwMjY1YjY5Nzhl
Y2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC03OSw2ICs3OSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudE1hcmtlckNvbnRy
b2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EcmFnRGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXND
b250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb3JtU3RhdGUuaD4KQEAgLTE4MTUsNyAr
MTgxNiw3IEBAIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZ0KQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
dWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlvbiwgV2ViQ29y
ZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291cmNlT3BlcmF0
aW9uTWFzaywgY29uc3QgV2ViQ29yZTo6RHJhZ0RhdGFNYXAmIGRhdGFNYXAsIHVpbnQzMl90IGZs
YWdzKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25l
KSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKERyYWdDb250cm9sbGVyOjpEcmFnU2Vzc2lvbigpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTg0Niw3ICsxODQ3LDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2lu
dCBjbGkKIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90
IGFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhZ0RhdGEpCiB7CiAgICAgaWYgKCFtX3BhZ2Up
IHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUpKTsKKyAgICAgICAgc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ1Nlc3Np
b24oKSkpOwogI2lmIFBMQVRGT1JNKFFUKQogICAgICAgICBRTWltZURhdGEqIGRhdGEgPSBjb25z
dF9jYXN0PFFNaW1lRGF0YSo+KGRyYWdEYXRhLnBsYXRmb3JtRGF0YSgpKTsKICNlbGlmIFBMQVRG
T1JNKEdUSykKQEAgLTE4OTAsNyArMTg5MSw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhCiB2
b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24s
IFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9i
YWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBjb25zdCBT
dHJpbmcmIGRyYWdTdG9yYWdlTmFtZSwgdWludDMyX3QgZmxhZ3MsIGNvbnN0IFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSYgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKIHsKICAgICBpZiAoIW1fcGFn
ZSkgewotICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnU2Vz
c2lvbigpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNmJjNWNkMDI1OWJi
YWQwMDJkODZkZjlmNDIxYmE4MzM2NzliNGRjLi42YzA4MjA4ZWJiMGVmYzQ2MWYwYzgyYzc5MmY4
NzhjNGUwNDkyMWY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMTEtMDIgIEpvbiBMZWUg
IDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBw
cm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmls
ZS1pbnB1dC1maWxlcy1hY2Nlc3MuanM6CisgICAgICAgIChydW5UZXN0KTogQ2hhbmdlIHRoZSBl
eHBlY3RlZCBiZWhhdmlvciBvZiB0aGUgdGVzdC0tIGRyYWdnaW5nIGEgZmlsZSBvdmVyIGEgZGlz
YWJsZWQKKyAgICAgICAgY29udHJvbCBzaG91bGQgbm90IGxvYWQgdGhhdCBmaWxlLiBJbnN0ZWFk
LCB0aGUgZmlsZSBzaG91bGQgYmUgaWdub3JlZCwgYW5kIHRoZSBwYWdlCisgICAgICAgIHJlbWFp
bnMgYXMgaXMuCisKIDIwMTEtMTEtMDIgIFphbiBEb2JlcnNlayAgPHphbmRvYmVyc2VrQGdtYWls
LmNvbT4KIAogICAgICAgICBbR1RLXSBWaXNpdGVkIGxpbmtzIG9mIGEgcGFnZSBncm91cCBzaG91
bGQgYmUgcmVtb3ZlZCB3aGVuIGNsZWFyaW5nIGJhY2svZm9yd2FyZCBsaXN0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQt
ZmlsZXMtYWNjZXNzLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10
ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwppbmRleCA5N2FmZjYwZGFlMDRmYTE4MzM1
MzAyNWVlZjllNjU3OWEzODhhMTUzLi45MDQzYWIwYmRmYWMxNDAzODRkNTkyOWQwODdhODAyOTM2
ZDMxNmE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0
LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMKQEAg
LTExMCwyMiArMTEwLDEyIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogCiAgICAgZGVidWcoIkRyYWdn
aW5nIHRvIGEgZGlzYWJsZWQgZmlsZSBpbnB1dCBjb250cm9sOiIpOwogICAgIGZpbGVJbnB1dC5k
aXNhYmxlZCA9IHRydWU7Ci0gICAgd2luZG93Lm9uYmVmb3JldW5sb2FkID0gZnVuY3Rpb24oKSB7
Ci0gICAgICAgIC8vIFNpbmNlIHRoZSBkcm9wIHRyaWdnZXJlZCBhIG5hdmlnYXRpb24sIHZlcmlm
eSB0aGUgcHJvcGVydGllcyBvZiB0aGUgZmlsZSBpbnB1dCBoZXJlLgotICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImZpbGVJbnB1dC52YWx1ZSIsICIiKTsKLSAgICAgICAgZmlsZXNTaG91
bGRCZShbXSk7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7Ci0g
ICAgICAgIGRlYnVnKCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bh
bj4nKTsKLQotICAgICAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMKLSAgICAgICAgZmls
ZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0KTsKKyAgICBkcmFnZ2luZ1Bh
dGhzU2hvdWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKIAotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgLy8gQ2xlYW4gdXAgYWZ0ZXIg
b3Vyc2VsdmVzCisgICAgZmlsZUlucHV0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZmlsZUlucHV0
KTsKIAotICAgICAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBudWxsOwotICAgIH07Ci0gICAg
ZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydEUlRGYWtlRmlsZSddLCBbXSk7Ci0g
ICAgdGVzdEZhaWxlZCgiVGhlIGZpbmFsIHRlc3QgY2FzZSBzaG91bGQgaGF2ZSByZXN1bHRlZCBp
biBuYXZpZ2F0aW9uIik7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwog
fQogCiB2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113358</attachid>
            <date>2011-11-02 13:14:03 -0700</date>
            <delta_ts>2011-11-02 13:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111102131437.patch</filename>
            <type>text/plain</type>
            <size>46817</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkwODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWYyOGNlYzE2MTA3ZmY4
NDQ1MDljYmMxYTE4OTgwZmE5MmM5ODQwLi45OGM0NWY3YjZiMTE1OWI3NjUyNTUwMDZjMjI5OTg1
YWM5YmQ5MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDUgQEAKIDIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdTZXNzaW9uIGlzIHVwZGF0ZWQgd2l0aCBkYXRhIHJlZ2Fy
ZGluZyB3aGV0aGVyIHRoZSBtb3VzZQorICAgICAgICBpcyBvdmVyIGEgZmlsZSBpbnB1dCwgYW5k
IHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZSBhY2NlcHRlZCBiYXNlZCBvbgorICAg
ICAgICB0aGUgbW91c2UncyBsb2NhdGlvbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
Lmg6CisgICAgICAgICogcGFnZS9EcmFnU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdTZXNzaW9uOjpEcmFnU2Vzc2lvbik6IEtlZXAgdHJhY2sgb2YgY3VycmVudCBvcGVy
YXRpb24sIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92ZXIgYSBmaWxlIGlucHV0IGVs
ZW1lbnQsIGFuZCBob3cgbWFueSBmaWxlcyB3b3VsZCBiZSBhY2NlcHRlZCBpZgorICAgICAgICBk
cm9wcGVkLgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6IEFkZGVkIG51bWJlck9mRmls
ZXMoKQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpu
dW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNp
bmd1bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDU2NzBhYWIxYTZhOGU1MGVmNWE2MjMyMDQ4
ZTFmMWFlNThmNmQxNzYuLjFmMTJkM2ExNTQ3MWY4M2Y4YzZhNzhlNTkwNTk2NzU0NTk3ZmMzN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMTEtMDIg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJv
bGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKTogVGhl
IGRyYWcgb3BlcmF0aW9uIGlzIGNvbnRhaW5lZAorICAgICAgICB3aXRoaW4gdGhlIG5ldyBEcmFn
U2Vzc2lvbiBzdHJ1Y3QuIE1pbm9yIHJlZmFjdG9yLgorCisyMDExLTExLTAyICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKwogICAgICAgICA8aW5wdXQ9ZmlsZSBtdWx0aXBsZT4gZGVmYXVs
dCB0ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM3OTAyMT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyZmJiZTk1ZWRhYTg2MjFkNTZlN2Vm
NzUzYzM5YjFjMGM3NDkzNmZjLi5jNmJhODEzYjJlMWQxNTI3MmQ4ZWNiNmFiMDlmY2M2ZDYyYzZl
ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbik6IE1pbm9yIHJlZmFjdG9yaW5nLgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6IE1pbm9yIHJlZmFjdG9y
aW5nLgorCiAyMDExLTExLTAyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgW0dUS10gVmlzaXRlZCBsaW5rcyBvZiBhIHBhZ2UgZ3JvdXAgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiBjbGVhcmluZyBiYWNrL2ZvcndhcmQgbGlzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGQxOTVjMmQ3MjYwNmQwZWFjOWFkN2U0NzQxZDI3NjA2MDY4NDcxYWQuLmZjMjc5OTYyMTA0
ZDQzMjg4OGZmMmM3NzI4NjE5MjEwNTJiNTM4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nRW50ZXJlZDpdKTogRHJh
Z09wZXJhdGlvbiBpcyBub3cgaW5zaWRlIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAg
ICgtW1dlYlZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0pOgorCiAyMDExLTExLTAxICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBQREYgY29kZSB3aGVuIHNj
cmlwdCBoYXMgaWxsZWdhbCBVVEYtOCBvciBVVEYtMTYgc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDY3ZmZmMzBmNWE1YWIzNzU1ODIzYzg5YmYzZDM5OWU4NzNmMWU2NGYuLjRiMTI0MDI2ZDIy
OTc5YTY0NmI0ZmY3YzE4YjQzOTEyYjc0NDU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTggQEAKIDIwMTEtMTEtMDIgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAg
IEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2Vi
cGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdFbnRlckV2ZW50KTogTWlu
b3IgcmVmYWN0b3JpbmcgYmVjYXVzZSBvcGVyYXRpb24gaXMgc3RvcmVkIGluCisgICAgICAgIG5l
dyBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdNb3Zl
RXZlbnQpOiBEaXR0by4KKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+
CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNpbmd1
bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMTUxNjRhOTdkOWJmODI3YTU3ZTY2MzJkNDk0MjcwYzJkMjlkMTkx
My4uYzYyOTYyZDkxYTU0MmMyMWE1ZTA0YjIxNjRjOGE0NGYwNzM4NmFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3JlIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAzNzkxNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OkRyYWdFbnRlcik6IE1pbm9y
IHJlZmFjdG9yaW5nIGJlY2F1c2Ugb3BlcmF0aW9uIGlzIHN0b3JlZCBpbgorICAgICAgICBuZXcg
RHJhZ1Nlc3Npb24gc3RydWN0LgorICAgICAgICAoV2ViVmlldzo6RHJhZ092ZXIpOiBEaXR0by4K
KwogMjAxMS0xMC0yOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW5hbWUgYSBudW1iZXIgb2YgbWV0aG9kcyBtZW50aW9uaW5nIEphdmFTY3JpcHQg
dG8ganVzdCBTY3JpcHQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg4ZWJjNmY4NzA0ODc4MjlhOTcy
NjkyZGJjMjQ1NWZjZTYwODAxZmMuLmY5NGJmYTljNGRkYTA2OGM2YzJmYjYyMGNjMTNlODgyN2Rl
Yjk4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHBy
b3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIG5vdyBwYXNzIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QgZnJv
bSB0aGUgV2ViIHRvIHRoZSBVSSBwcm9jZXNzLCBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBEcmFn
T3BlcmF0aW9uIGVudW0uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChD
b3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOiBXZSBub3cgY2FjaGUgdGhlIGxhc3Qga25vd24g
RHJhZ1Nlc3Npb24gc3RhdGUKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmFnU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXREcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9y
bURyYWdDb250cm9sbGVyQWN0aW9uKToKKwogMjAxMS0xMS0wMiAgQ2FpbyBNYXJjZWxvIGRlIE9s
aXZlaXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtR
dF0gSW1wbGVtZW50IG1lc3NhZ2UgZXhjaGFuZ2UgYmV0d2VlbiBXZWJWaWV3IGFuZCB0aGUgd2Vi
IHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA2ZjI4MTk1YzdkNTQ4NDk5MjliYWJkZjM0Y2NiOTAzZjM0YTc1NzljLi4zNzMy
OGIzYzU5Mjg2ZjUzNjcyYjhhMjIwMTIzYmQzZWQyMWI5YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NzgsNiArNzc4LDcg
QEAKIAkJMzE2MTFFNjEwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYx
MUU1RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsg
fTsKIAkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2
MTFFNUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICov
OyB9OwogCQkzMTYxMUU2MzBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3Jt
VmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZh
bHVlSW50ZXJuYWwuaCAqLzsgfTsKKwkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERyYWdT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MTBFNkNDQkVFMDBCRjYw
ODggLyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLzsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4
IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRD
U1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpT
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NL
ZXlmcmFtZXNSdWxlLmNwcCAqLzsgfTsKQEAgLTc4NTUsNiArNzg1Niw3IEBACiAJCTMxNjExRTVF
MEUxQzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTYxMUU1RjBFMUM0RTE0MDBGNkE1NzkgLyog
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENT
U1RyYW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkzMTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ1Nlc3Npb24uaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4
OCAvKiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE1NDM3LDYgKzE1NDM5LDcgQEAKIAkJCQlBN0NBNTk1QzBCMjdC
RDlFMDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3Q0E1OTVCMEIyN0JE
OUUwMEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1RkY1MTM3ODhGQUEw
MEZGNkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQkzMTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIg
LyogRHJhZ1Nlc3Npb24uaCAqLywKIAkJCQkxQUYzMjY3NzBENzhCOTQ0MDA2OEYwQzQgLyogRWRp
dG9yQ2xpZW50LmggKi8sCiAJCQkJOTNDMDlBODAwQjA2NEYwMDAwNUFCRDREIC8qIEV2ZW50SGFu
ZGxlci5jcHAgKi8sCiAJCQkJOTNDMDlBNTIwQjA2NERCMzAwNUFCRDREIC8qIEV2ZW50SGFuZGxl
ci5oICovLApAQCAtMjQ1NDEsNiArMjQ1NDQsNyBAQAogCQkJCTlCM0E4ODcyMTQ1NjMyRjkwMDNB
RThGNSAvKiBET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2
MkY1MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVW
YWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERy
YWdTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVu
dFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxl
ci5jcHAKaW5kZXggNzEyYWYxOTE5NTQwYjU4MzFkMjBiYWU2ODg0NjA3MzU3YjEzNzgyNy4uZjhk
ZTBjNTU2ZjZmMWIxOTlhYWU3YzI4YzQzNjk4NWIwZTgyNzI2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQWN0
aW9ucy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgor
I2luY2x1ZGUgIkRyYWdTZXNzaW9uLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAi
RWRpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtMTYyLDcgKzE2Myw3IEBA
IHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbmRlZCgpCiAgICAgbV9jbGllbnQtPmRyYWdFbmRl
ZCgpOwogfQogCi1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZChEcmFn
RGF0YSogZHJhZ0RhdGEpCitEcmFnU2Vzc2lvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQo
RHJhZ0RhdGEqIGRyYWdEYXRhKQogewogICAgIHJldHVybiBkcmFnRW50ZXJlZE9yVXBkYXRlZChk
cmFnRGF0YSk7CiB9CkBAIC0xODIsNyArMTgzLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJh
Z0V4aXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgw
KTsKIH0KIAotRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0Rh
dGEqIGRyYWdEYXRhKQorRHJhZ1Nlc3Npb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKERy
YWdEYXRhKiBkcmFnRGF0YSkKIHsKICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJh
Z0RhdGEpOwogfQpAQCAtMjMyLDcgKzIzMyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6Om1vdXNl
TW92ZWRJbnRvRG9jdW1lbnQoRG9jdW1lbnQqIG5ld0RvY3VtZW50KQogICAgIG1fZG9jdW1lbnRV
bmRlck1vdXNlID0gbmV3RG9jdW1lbnQ7CiB9CiAKLURyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xs
ZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdTZXNzaW9u
IERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEp
CiB7CiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICBBU1NFUlQobV9wYWdlLT5tYWluRnJhbWUo
KSk7IC8vIEl0IGlzIG5vdCBwb3NzaWJsZSBpbiBNYWMgV2ViS2l0IHRvIGhhdmUgYSBQYWdlIHdp
dGhvdXQgYSBtYWluRnJhbWUoKQpAQCAtMjQxLDE0ICsyNDIsMTQgQEAgRHJhZ09wZXJhdGlvbiBE
cmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQog
ICAgIG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID0gbV9jbGllbnQtPmFjdGlvbk1hc2tGb3JEcmFn
KGRyYWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gPT0gRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uTm9uZSkgewogICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJWE1FOiBXaHkg
bm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKT8KLSAgICAgICAgcmV0dXJuIERyYWdP
cGVyYXRpb25Ob25lOworICAgICAgICByZXR1cm4gRHJhZ1Nlc3Npb24oKTsKICAgICB9CiAKLSAg
ICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwotICAgIGJvb2wg
aGFuZGxlZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uLCBvcGVyYXRpb24pOworICAgIERyYWdTZXNzaW9uIGRyYWdTZXNzaW9uOwor
ICAgIGJvb2wgaGFuZGxlZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1f
ZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBkcmFnU2Vzc2lvbik7CiAgICAgaWYgKCFoYW5kbGVkQnlE
b2N1bWVudCAmJiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rp
b25Mb2FkKSkKLSAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEpOwotICAg
IHJldHVybiBvcGVyYXRpb247CisgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IG9wZXJh
dGlvbkZvckxvYWQoZHJhZ0RhdGEpOworICAgIHJldHVybiBkcmFnU2Vzc2lvbjsKIH0KIAogc3Rh
dGljIEhUTUxJbnB1dEVsZW1lbnQqIGFzRmlsZUlucHV0KE5vZGUqIG5vZGUpCkBAIC0yODQsNyAr
Mjg1LDcgQEAgc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1
bWVudFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxF
bGVtZW50Kj4obik7CiB9CiAKLWJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhE
cmFnRGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrLCBEcmFn
T3BlcmF0aW9uJiBvcGVyYXRpb24pCitib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERy
YWcoRHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFzaywg
RHJhZ1Nlc3Npb24mIGRyYWdTZXNzaW9uKQogewogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAKQEAg
LTI5Niw3ICsyOTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJh
Z0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogCiAgICAgbV9pc0hhbmRs
aW5nRHJhZyA9IGZhbHNlOwogICAgIGlmIChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uREhUTUwpIHsKLSAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJhZyhkcmFn
RGF0YSwgb3BlcmF0aW9uKTsKKyAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJh
ZyhkcmFnRGF0YSwgZHJhZ1Nlc3Npb24ub3BlcmF0aW9uKTsKICAgICAgICAgLy8gRG8gbm90IGNv
bnRpbnVlIGlmIG1fZG9jdW1lbnRVbmRlck1vdXNlIGhhcyBiZWVuIHJlc2V0IGJ5IHRyeURIVE1M
RHJhZy4KICAgICAgICAgLy8gdHJ5REhUTUxEcmFnIGZpcmVzIGRyYWdlbnRlciBldmVudC4gVGhl
IGV2ZW50IGxpc3RlbmVyIHRoYXQgbGlzdGVucwogICAgICAgICAvLyB0byB0aGlzIGV2ZW50IG1h
eSBjcmVhdGUgYSBuZXN0ZWQgbWVzc2FnZSBsb29wIChvcGVuIGEgbW9kYWwgZGlhbG9nKSwKQEAg
LTMxNyw3ICszMTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJh
Z0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9IGVsc2UgaWYgKChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
RWRpdCkgJiYgY2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7CiAgICAgICAgIGlmIChkcmFnRGF0
YS0+Y29udGFpbnNDb2xvcigpKSB7Ci0gICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0
aW9uR2VuZXJpYzsKKyAgICAgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IERyYWdPcGVy
YXRpb25HZW5lcmljOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAt
MzI1LDExICszMjYsMzIgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERy
YWdEYXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICAgICAgRWxlbWVu
dCogZWxlbWVudCA9IGVsZW1lbnRVbmRlck1vdXNlKG1fZG9jdW1lbnRVbmRlck1vdXNlLmdldCgp
LCBwb2ludCk7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKCFhc0ZpbGVJbnB1dChlbGVtZW50KSkKKyAgICAgICAgCisgICAgICAg
IEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnRBc0ZpbGVJbnB1dCA9IGFzRmlsZUlucHV0KGVsZW1l
bnQpOworICAgICAgICBpZiAoIWVsZW1lbnRBc0ZpbGVJbnB1dCkKICAgICAgICAgICAgIG1fcGFn
ZS0+ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5zZXRDYXJldFBvc2l0aW9uKG1fZG9jdW1lbnRVbmRl
ck1vdXNlLT5mcmFtZSgpLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChwb2ludCkpOwogCiAgICAg
ICAgIEZyYW1lKiBpbm5lckZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAg
ICAgICAgb3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwgZHJh
Z0RhdGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAg
ZHJhZ1Nlc3Npb24ub3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24o
KSwgZHJhZ0RhdGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAg
ICAgICAgZHJhZ1Nlc3Npb24ubW91c2VJc092ZXJGaWxlSW5wdXQgPSBlbGVtZW50QXNGaWxlSW5w
dXQ7CisgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOwor
CisgICAgICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMgPSBkcmFnRGF0YS0+bnVtYmVyT2ZGaWxl
cygpOworICAgICAgICBpZiAoZWxlbWVudEFzRmlsZUlucHV0KSB7CisgICAgICAgICAgICBpZiAo
ZWxlbWVudEFzRmlsZUlucHV0LT5kaXNhYmxlZCgpKQorICAgICAgICAgICAgICAgIGRyYWdTZXNz
aW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOworICAgICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudEFzRmlsZUlucHV0LT5tdWx0aXBsZSgpKQorICAgICAgICAgICAgICAgIGRyYWdTZXNz
aW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSBudW1iZXJPZkZpbGVzOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNj
ZXB0ZWQgPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRyYWdTZXNzaW9uLm51
bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpCisgICAgICAgICAgICAgICAgZHJhZ1Nlc3Npb24ub3Bl
cmF0aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAg
Ly8gV2UgYXJlIG5vdCBvdmVyIGEgZmlsZSBpbnB1dCBlbGVtZW50LiBUaGUgZHJhZ2dlZCBpdGVt
KHMpIHdpbGwgb25seQorICAgICAgICAgICAgLy8gYmUgbG9hZGVkIGludG8gdGhlIHZpZXcgdGhl
IG51bWJlciBvZiBkcmFnZ2VkIGl0ZW1zIGlzIDEuCisgICAgICAgICAgICBkcmFnU2Vzc2lvbi5u
dW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8gMCA6IDE7Cisg
ICAgICAgIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgLy8gSWYgd2UncmUgbm90
IG92ZXIgYW4gZWRpdGFibGUgcmVnaW9uLCBtYWtlIHN1cmUgd2UncmUgY2xlYXJpbmcgYW55IHBy
aW9yIGRyYWcgY3Vyc29yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDI2
MWE4ZDUzZjczNjU4YjA3MWYyMTA1NmFlNThiMjRiMWJiNDU5NjkuLmQ1MjU5MWQxNTQ5ZmNiZDkw
ZTEwYmIwYjRlNTYzNGQwMzBhYmRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmgKQEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERvY3Vt
ZW50OwogICAgIGNsYXNzIERyYWdDbGllbnQ7CiAgICAgY2xhc3MgRHJhZ0RhdGE7CisgICAgc3Ry
dWN0IERyYWdTZXNzaW9uOwogICAgIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgY2xhc3MgRWxlbWVu
dDsKICAgICBjbGFzcyBGcmFtZTsKQEAgLTU1LDkgKzU2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgICAgICB+RHJhZ0NvbnRyb2xsZXIoKTsKICAgICAgICAgRHJhZ0NsaWVudCogY2xpZW50
KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgICAgICBEcmFnT3BlcmF0aW9uIGRy
YWdFbnRlcmVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9uIGRyYWdFbnRlcmVkKERy
YWdEYXRhKik7CiAgICAgICAgIHZvaWQgZHJhZ0V4aXRlZChEcmFnRGF0YSopOwotICAgICAgICBE
cmFnT3BlcmF0aW9uIGRyYWdVcGRhdGVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9u
IGRyYWdVcGRhdGVkKERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgcGVyZm9ybURyYWcoRHJhZ0Rh
dGEqKTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUgcG9zc2libGUg
dG8gcmVtb3ZlIGEgbnVtYmVyIG9mIHRoZXNlIGFjY2Vzc29ycyBvbmNlIGFsbApAQCAtOTQsOSAr
OTUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZGlzcGF0Y2hUZXh0SW5w
dXRFdmVudEZvcihGcmFtZSosIERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgY2FuUHJvY2Vzc0Ry
YWcoRHJhZ0RhdGEqKTsKICAgICAgICAgYm9vbCBjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhKik7
Ci0gICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqKTsK
KyAgICAgICAgRHJhZ1Nlc3Npb24gZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqKTsKICAg
ICAgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb25Gb3JMb2FkKERyYWdEYXRhKik7Ci0gICAgICAg
IGJvb2wgdHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBE
cmFnT3BlcmF0aW9uJik7CisgICAgICAgIGJvb2wgdHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiwg
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnU2Vzc2lvbiYpOwogICAgICAgICBib29sIHRyeURI
VE1MRHJhZyhEcmFnRGF0YSosIERyYWdPcGVyYXRpb24mKTsKICAgICAgICAgRHJhZ09wZXJhdGlv
biBkcmFnT3BlcmF0aW9uKERyYWdEYXRhKik7CiAgICAgICAgIHZvaWQgY2FuY2VsRHJhZygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU2Vzc2lvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNzM3MWU1ZWFjOTkzMDQ0Y2U4
ZjQ2Mjk0YTM2NjE4NTdhNjdhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RyYWdTZXNzaW9uLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRHJh
Z1Nlc3Npb25faAorI2RlZmluZSBEcmFnU2Vzc2lvbl9oCisKKyNpbmNsdWRlICJEcmFnQWN0aW9u
cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdHJ1Y3QgRHJhZ1Nlc3Npb24gewor
ICAgIERyYWdTZXNzaW9uKCkKKyAgICA6IG9wZXJhdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkKKyAg
ICAsIG1vdXNlSXNPdmVyRmlsZUlucHV0KGZhbHNlKQorICAgICwgbnVtYmVyT2ZJdGVtc1RvQmVB
Y2NlcHRlZCgwKSB7IH0KKyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbjsKKyAgICBib29sIG1v
dXNlSXNPdmVyRmlsZUlucHV0OworICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0
ZWQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXgg
YWZhMjE5ZjNiNzIyM2JkZGQ1OGMyN2VmNjcyZDhjNmNhNzBjZjFiYy4uYmIyNDJmOWU5MTYyYTc2
OWUxODYyZWYwYTkzNDhhZDk1ZTg1ODhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5o
CkBAIC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlKCkg
Y29uc3Q7CiAgICAgYm9vbCBjb250YWluc0NvbG9yKCkgY29uc3Q7CiAgICAgYm9vbCBjb250YWlu
c0ZpbGVzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZGaWxlcygpIGNvbnN0OwogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQoKSB7IHJldHVybiBt
X3Bhc3RlYm9hcmQuZ2V0KCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAwOWRhOGE0YTQwZDY3
MmZmNDI4NjVmOGM4OTljNjY2NzI1YzRmNWUyLi45YzM4Mzg2MDI1MWM3NDcwMDkyZjk2NTM3YTYx
Nzc5Mjg4OGJkYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EcmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNzMsNiArNzMsMTEgQEAgYm9vbCBEcmFnRGF0
YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+
Y29udGFpbnNGaWxlbmFtZXMoKTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmls
ZXMoKSBjb25zdAoreworICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygp
LnNpemUoKTsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4m
IHJlc3VsdCkgY29uc3QKIHsKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzID0g
bV9wbGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9lZmwvRHJhZ0RhdGFFZmwuY3BwCmluZGV4IGIzNWI5NjNlYTljNDY5ODYwMTdmNjM5NzRiMDc1
YTM0MzdkMWQ0NjYuLjlkN2U5Y2E3OTVjOGY3ZDFiYzM2ODgyYTNhNGFjODFmNGI4YzA5NzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcApAQCAtNDEsNiAr
NDEsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJu
IGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxT
dHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0RyYWdEYXRhR3RrLmNwcAppbmRleCBjYzlhMjA4MDAzYjI3ZDEwYTljOGU4ZmU2YzNkYmIzYzM4
ZmMwMGU0Li4wMmE0NzQ5ZDMzY2JiMjk5YzhkZDY2ZTM1YzAwOTFhYjI4ZjEwYWU3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKQEAgLTQxLDYgKzQxLDEx
IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3Bs
YXRmb3JtRHJhZ0RhdGEtPmhhc0ZpbGVuYW1lcygpOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+
ZmlsZW5hbWVzKCkuc2l6ZSgpOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0
b3I8U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIHJlc3VsdCA9IG1fcGxhdGZvcm1EcmFn
RGF0YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvRHJhZ0RhdGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFN
YWMubW0KaW5kZXggMmNhOTQzZGUxMWIwZDlhODBjYTM3NThlNzQzMTNiMmE1ZTkxOTljMi4uMjk0
ZWViYmI4Y2MyZTk1MzJjOGI3MmRmZWNhY2EwZTkyOGI4YmI3NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQpAQCAtNzYsNiArNzYsMTMgQEAgYm9vbCBEcmFn
RGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdl
dCgpIHR5cGVzXSBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOwogfQogCit1
bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgaWYgKCFbW21f
cGFzdGVib2FyZC5nZXQoKSB0eXBlc10gY29udGFpbnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRU
eXBlXSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdldCgp
IHByb3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSBjb3VudF07Cit9CisK
IHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0
CiB7CiAgICAgTlNBcnJheSAqZmlsZW5hbWVzID0gW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0
eUxpc3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L0RyYWdEYXRhUXQuY3BwCmluZGV4IDI1NTRkZjQyMzUwNzY5YmViZjNjYTMyMmU3NzI3
MmNkMjEzOWQyYmIuLjAzMDNhZDdjOTI0YTE1ZGRkZTJlMzRiN2Y5Zjg4YWUxMzdkOGYwY2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3BwCkBAIC02Miw2ICs2Miwx
MSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmlu
Zz4mIHJlc3VsdCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxhdGZvcm1EcmFnRGF0YSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCmluZGV4IDA4YjZlYjJkNzZk
NTNmNWE2ZTczNjFmODhlYTYxZjBhY2U0ZTFiNzMuLjlhYjYyYjk1MGZmYjA1ZTkxNGM3ZWQ3M2Vi
NGU0NGM4ZjQ1YTE3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9E
cmFnRGF0YVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdEYXRh
V2luLmNwcApAQCAtMTEwLDYgKzExMCwxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVz
KCkgY29uc3QKICAgICByZXR1cm4gKG1fcGxhdGZvcm1EcmFnRGF0YSkgPyBTVUNDRUVERUQobV9w
bGF0Zm9ybURyYWdEYXRhLT5RdWVyeUdldERhdGEoY2ZIRHJvcEZvcm1hdCgpKSkgOiBtX2RyYWdE
YXRhTWFwLmNvbnRhaW5zKGNmSERyb3BGb3JtYXQoKS0+Y2ZGb3JtYXQpOwogfQogCit1bnNpZ25l
ZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisK
IHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0
CiB7CiAgICAgaWYgKG1fcGxhdGZvcm1EcmFnRGF0YSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNwcAppbmRleCA2NzkyMjlkZDVmYzE3YjI1Y2U3
ZDI3ZTBiNjNiMmRlN2IxYjI2ZTAyLi5jYzVmN2E3YWFkMzFkNzczMTAwN2UwYTgwZGU5NzFiOTIz
YmQ4NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0
YVdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdp
bkNFLmNwcApAQCAtNDcsNiArNDcsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVy
T2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFz
RmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKaW5kZXggYmUyNDA0MmQ0Nzg2ZDU4ZDQ0ZGVmYzMxODhl
ZDk5NTZkNmNiMzA0OS4uODJlNDc0MGE0ZGQwN2I5NjYwMmQ0M2RlYTUxZDk5OTFhNjMxZDEwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKQEAgLTQ3LDYgKzQ3
LDExIEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAorewor
ICAgIHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3Ry
aW5nPiYgcmVzdWx0KSBjb25zdAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCmluZGV4IDFiYTVkYWY0NzJhNDA2OWZmOTg3ZjJiNjMwMTVlYzAxY2FmYzY1
MWUuLjQ4ZmIzZTBhOThmM2FiMmFjMTU0MTViMDU3NWVmYWEzMDQwMGEwODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNp
bmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVk
ZSAiRHJhZ1Njcm9sbFRpbWVyLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIKICNpbmNsdWRl
ICJFZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFeHRlbnNp
b25zM0QuaCIKQEAgLTIwNjcsMTEgKzIwNjgsMTMgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3
SW1wbDo6ZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG8K
ICAgICAgICAgc2NyZWVuUG9pbnQsCiAgICAgICAgIHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+
KG1fb3BlcmF0aW9uc0FsbG93ZWQpKTsKIAotICAgIERyYWdPcGVyYXRpb24gZHJvcEVmZmVjdDsK
KyAgICBEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbjsKICAgICBpZiAoZHJhZ0FjdGlvbiA9PSBEcmFn
RW50ZXIpCi0gICAgICAgIGRyb3BFZmZlY3QgPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRy
YWdFbnRlcmVkKCZkcmFnRGF0YSk7CisgICAgICAgIGRyYWdTZXNzaW9uID0gbV9wYWdlLT5kcmFn
Q29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpOwogICAgIGVsc2UKLSAgICAgICAg
ZHJvcEVmZmVjdCA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdE
YXRhKTsKKyAgICAgICAgZHJhZ1Nlc3Npb24gPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRy
YWdVcGRhdGVkKCZkcmFnRGF0YSk7CisKKyAgICBEcmFnT3BlcmF0aW9uIGRyb3BFZmZlY3QgPSBk
cmFnU2Vzc2lvbi5vcGVyYXRpb247CiAKICAgICAvLyBNYXNrIHRoZSBkcm9wIGVmZmVjdCBvcGVy
YXRpb24gYWdhaW5zdCB0aGUgZHJhZyBzb3VyY2UncyBhbGxvd2VkIG9wZXJhdGlvbnMuCiAgICAg
aWYgKCEoZHJvcEVmZmVjdCAmIGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygp
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA0ZTdh
ZGE2OTgwMjc2YWYyYmQ4NDBhNjE2YTJlZWQyY2VmNTkxNmUzLi44MDNhMThiZTFjZjdjYTM3NTg2
Y2FiZTdkY2Q4MWEyNjBlYjc3NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJr
aXQvd2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtp
dHdlYnZpZXcuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudEd0ay5o
IgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNp
bmNsdWRlICJEcmFnU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudEd0ay5oIgpA
QCAtMTQ0MSw3ICsxNDQyLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19kcmFn
X21vdGlvbihHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGMKICAgICBpZiAoIWRy
YWdEYXRhKQogICAgICAgICByZXR1cm4gVFJVRTsKIAotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0
aW9uID0gY29yZSh3ZWJWaWV3KS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoZHJhZ0Rh
dGEuZ2V0KCkpOworICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gY29yZSh3ZWJWaWV3KS0+
ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEuZ2V0KCkpLm9wZXJhdGlvbjsK
ICAgICBnZGtfZHJhZ19zdGF0dXMoY29udGV4dCwgZHJhZ09wZXJhdGlvblRvU2luZ2xlR2RrRHJh
Z0FjdGlvbihvcGVyYXRpb24pLCB0aW1lKTsKICAgICByZXR1cm4gVFJVRTsKIH0KQEAgLTE0NTMs
NyArMTQ1NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfcmVjZWl2
ZWQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0CiAgICAgaWYgKCFkcmFnRGF0YSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdl
YlZpZXcpLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZChkcmFnRGF0YS5nZXQoKSk7Cisg
ICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZpZXcpLT5kcmFnQ29udHJvbGxl
cigpLT5kcmFnRW50ZXJlZChkcmFnRGF0YS5nZXQoKSkub3BlcmF0aW9uOwogICAgIGdka19kcmFn
X3N0YXR1cyhjb250ZXh0LCBkcmFnT3BlcmF0aW9uVG9TaW5nbGVHZGtEcmFnQWN0aW9uKG9wZXJh
dGlvbiksIHRpbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXgg
MTlmNzQ3NjlkZTljMzY4OTFlZjBhNGY4OGExNTcxNzVjY2ExOTIyYi4uMDg2NGZhOGVlOWVhZTUy
NDI3OGY3YjM2Y2EzOTM3NTMyYWRjOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQpAQCAtMTE3LDYgKzExNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVy
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RyYWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRXhjZXB0aW9uSGFuZGxlcnMuaD4KQEAgLTM4NjQsNyArMzg2NSw3IEBAIHN0
YXRpYyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJlc29sdXRpb25Ob3RpZmljYXRp
b24gPSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xpZW50KFtkcmFnZ2luZ0luZm8g
ZHJhZ2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJh
Z2dpbmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0Rh
dGEgZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJh
Z09wZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwg
W3NlbGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKLSAgICByZXR1cm4gY29yZShz
ZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKTsKKyAgICByZXR1
cm4gY29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKS5v
cGVyYXRpb247CiB9CiAKIC0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxO
U0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCkBAIC0zODc2LDcgKzM4NzcsNyBAQCBzdGF0aWMg
TlNTdHJpbmcgKiBjb25zdCB3aW5kb3dEaWRDaGFuZ2VSZXNvbHV0aW9uTm90aWZpY2F0aW9uID0g
QCJOU1dpbmRvd0RpZENoYQogICAgIEludFBvaW50IGNsaWVudChbZHJhZ2dpbmdJbmZvIGRyYWdn
aW5nTG9jYXRpb25dKTsKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9pbnQoW2RyYWdnaW5n
SW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAgIERyYWdEYXRhIGRy
YWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PERyYWdPcGVy
YXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSksIFtzZWxm
IGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAgcmV0dXJuIHBhZ2UtPmRyYWdD
b250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgcmV0dXJuIHBhZ2UtPmRy
YWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSkub3BlcmF0aW9uOwogfQogCiAt
ICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGJiMTQyNGY4YjViOWFhNGMxODNhNTIyNGYz
MWJhNjRkZTdkNTI0NDEuLjdlNjk2YzQzMGY4OTFjZTI3OTA4YjQxYjQ2ZDgwNTg1YjAzZDRkYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRl
ICJEcmFnQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkRyYWdEYXRhLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxl
ci5oIgpAQCAtOTkxLDcgKzk5Miw3IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpkcmFnRW50ZXJF
dmVudChUKiBldikKICNpZm5kZWYgUVRfTk9fRFJBR0FORERST1AKICAgICBEcmFnRGF0YSBkcmFn
RGF0YShldi0+bWltZURhdGEoKSwgUVBvaW50Rihldi0+cG9zKCkpLnRvUG9pbnQoKSwKICAgICAg
ICAgICAgIFFDdXJzb3I6OnBvcygpLCBkcm9wQWN0aW9uVG9EcmFnT3AoZXYtPnBvc3NpYmxlQWN0
aW9ucygpKSk7Ci0gICAgUXQ6OkRyb3BBY3Rpb24gYWN0aW9uID0gZHJhZ09wVG9Ecm9wQWN0aW9u
KHBhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkcmFnRGF0YSkpOworICAgIFF0
OjpEcm9wQWN0aW9uIGFjdGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJv
bGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAgICAgZXYtPnNldERy
b3BBY3Rpb24oYWN0aW9uKTsKICAgICBldi0+YWNjZXB0UHJvcG9zZWRBY3Rpb24oKTsKICNlbmRp
ZgpAQCAtMTAxMyw3ICsxMDE0LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmRyYWdNb3ZlRXZl
bnQoVCAqZXYpCiAjaWZuZGVmIFFUX05PX0RSQUdBTkREUk9QCiAgICAgRHJhZ0RhdGEgZHJhZ0Rh
dGEoZXYtPm1pbWVEYXRhKCksIFFQb2ludEYoZXYtPnBvcygpKS50b1BvaW50KCksCiAgICAgICAg
ICAgICBRQ3Vyc29yOjpwb3MoKSwgZHJvcEFjdGlvblRvRHJhZ09wKGV2LT5wb3NzaWJsZUFjdGlv
bnMoKSkpOwotICAgIG1fbGFzdERyb3BBY3Rpb24gPSBkcmFnT3BUb0Ryb3BBY3Rpb24ocGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKSk7CisgICAgbV9sYXN0RHJv
cEFjdGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFn
VXBkYXRlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAgICAgZXYtPnNldERyb3BBY3Rpb24obV9s
YXN0RHJvcEFjdGlvbik7CiAgICAgaWYgKG1fbGFzdERyb3BBY3Rpb24gIT0gUXQ6Oklnbm9yZUFj
dGlvbikKICAgICAgICAgZXYtPmFjY2VwdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3YmQ3
N2YwYjAyMjdhZGFjY2E4NTJkZjM5MDJkYWFhODNlNzJkOGY3Li44OWY1YTlkNTExNDkzOTgzMDM0
ZDA5NzMyYzllMjQ4MzkyOGE4ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNzgsNiArNzgs
NyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0Rh
dGEuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9FZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvRXZlbnROYW1lcy5oPgpAQCAtNTA4NCw3ICs1MDg1LDcgQEAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpEcmFnRW50ZXIoCiAgICAgOjpTY3JlZW5Ub0NsaWVudCht
X3ZpZXdXaW5kb3csIChMUFBPSU5UKSZsb2NhbHB0KTsKICAgICBEcmFnRGF0YSBkYXRhKHBEYXRh
T2JqZWN0LCBJbnRQb2ludChsb2NhbHB0LngsIGxvY2FscHQueSksIAogICAgICAgICBJbnRQb2lu
dChwdC54LCBwdC55KSwga2V5U3RhdGVUb0RyYWdPcGVyYXRpb24oZ3JmS2V5U3RhdGUpKTsKLSAg
ICAqcGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRvRHJhZ0N1cnNvcihtX3BhZ2UtPmRyYWdDb250
cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkYXRhKSk7CisgICAgKnBkd0VmZmVjdCA9IGRyYWdPcGVy
YXRpb25Ub0RyYWdDdXJzb3IobV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgm
ZGF0YSkub3BlcmF0aW9uKTsKIAogICAgIG1fbGFzdERyb3BFZmZlY3QgPSAqcGR3RWZmZWN0Owog
ICAgIG1fZHJhZ0RhdGEgPSBwRGF0YU9iamVjdDsKQEAgLTUxMDMsNyArNTEwNCw3IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6RHJhZ092ZXIoCiAgICAgICAgIDo6U2NyZWVu
VG9DbGllbnQobV92aWV3V2luZG93LCAoTFBQT0lOVCkmbG9jYWxwdCk7CiAgICAgICAgIERyYWdE
YXRhIGRhdGEobV9kcmFnRGF0YS5nZXQoKSwgSW50UG9pbnQobG9jYWxwdC54LCBsb2NhbHB0Lnkp
LCAKICAgICAgICAgICAgIEludFBvaW50KHB0LngsIHB0LnkpLCBrZXlTdGF0ZVRvRHJhZ09wZXJh
dGlvbihncmZLZXlTdGF0ZSkpOwotICAgICAgICAqcGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRv
RHJhZ0N1cnNvcihtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkYXRhKSk7
CisgICAgICAgICpwZHdFZmZlY3QgPSBkcmFnT3BlcmF0aW9uVG9EcmFnQ3Vyc29yKG1fcGFnZS0+
ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRhdGEpLm9wZXJhdGlvbik7CiAgICAgfSBl
bHNlCiAgICAgICAgICpwZHdFZmZlY3QgPSBEUk9QRUZGRUNUX05PTkU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCA2Y2M1MzE2NWFjMzYyYjVkYTUz
OTQxNWQ5Y2RiMzhkOWM4MmY1NTdiLi45ZTlkNmMzYmVlNGQxZTJlOTA2ZTcwZWNjMTBmYmY4Y2Zl
YjcwNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2Fn
ZXMucHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBA
IC0xNzAsNiArMTcwLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUpOgog
ICAgICAgICAnV2ViQ29yZTo6QW5pbWF0aW9uJywKICAgICAgICAgJ1dlYkNvcmU6OkVkaXRvckNv
bW1hbmRzRm9yS2V5RXZlbnQnLAogICAgICAgICAnV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxp
bmUnLAorICAgICAgICAnV2ViQ29yZTo6RHJhZ1Nlc3Npb24nLAogICAgICAgICAnV2ViQ29yZTo6
RmxvYXRQb2ludDNEJywKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnLAog
ICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGY0MzE0MTBhNzAyNGEzYzFiZjgw
MzY0NzAzNjE5MjUyMWE2NTYzZTkuLjY3MDAwZTBlMTg3Y2IxZjdiMjlhZThmMTNiODU3ODhlZWEy
OTJhYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNl
RGV0YWlscy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgpAQCAtNjA0LDYgKzYwNSwyNCBAQCBib29s
IEFyZ3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgVGV4dENoZQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50
Q29kZXI8RHJhZ1Nlc3Npb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25z
dCBEcmFnU2Vzc2lvbiYgcmVzdWx0KQoreworICAgIGVuY29kZXItPmVuY29kZUVudW0ocmVzdWx0
Lm9wZXJhdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5tb3VzZUlzT3ZlckZpbGVJ
bnB1dCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2Vw
dGVkKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPERyYWdTZXNzaW9uPjo6ZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciogZGVjb2RlciwgRHJhZ1Nlc3Npb24mIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRl
Y29kZXItPmRlY29kZUVudW0ocmVzdWx0Lm9wZXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubW91c2VJc092ZXJGaWxlSW5wdXQp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0
Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShRVCkKIAogdm9pZCBBcmd1bWVudENvZGVy
PEZsb2F0UG9pbnQzRD46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEZs
b2F0UG9pbnQzRCYgZmxvYXRQb2ludDNEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oCmluZGV4IGFjZTVkOWQ2MTU5NGJmYTA3MjRiZGY3YjAxNjcyYTAy
MzE1NGM4YjQuLmU3NmYzYWZkNThkODczYTQyNjUyMmNiYWFjNjMwNzg0NjA1YjM0MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ3LDYg
KzQ3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsK
ICAgICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogICAgIHN0cnVjdCBDb21wb3NpdGlvblVuZGVy
bGluZTsKKyAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CiAgICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0
dGluZ3M7CiAgICAgc3RydWN0IEdyYW1tYXJEZXRhaWw7CiAgICAgc3RydWN0IE1pbWVDbGFzc0lu
Zm87CkBAIC0yMTMsNiArMjE0LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFy
Z3VtZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwogICAg
IHN0YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpUZXh0Q2hlY2tp
bmdSZXN1bHQmKTsKIH07CisgICAgCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdl
YkNvcmU6OkRyYWdTZXNzaW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5j
b2RlciosIGNvbnN0IFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7Cit9OwogCiAjaWYg
UExBVEZPUk0oUVQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZs
b2F0UG9pbnQzRD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CmluZGV4IGRlYjFkMDY3NTEzMDNkNzg5OWMzYzAzOGFlMmNjMmI0MGFmYjkyNDQuLmJjY2Y2ODlm
MWE4M2E1YWZhNThjNDFhMTJjZTIwZTliMGM1NzNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvQ29sb3JNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbXBv
cnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3Qu
aD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTU4Niw3ICsxNTg3LDkg
QEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJp
bmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9p
bnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAg
IERyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19j
YXN0PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25N
YXNrXSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7CiAgICAgX2RhdGEt
Pl9wYWdlLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFz
dGVib2FyZF0gbmFtZV0pOwotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYWdPcGVyYXRpb24o
KTsKKyAgICAKKyAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbiA9IF9kYXRhLT5f
cGFnZS0+ZHJhZ1Nlc3Npb24oKTsKKyAgICByZXR1cm4gZHJhZ1Nlc3Npb24ub3BlcmF0aW9uOwog
fQogCiAtICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5n
SW5mbwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2NGY2
MDMyOWM2ZDZjYmE1Mzg1MzY2ZTAzZDUzNzhkNDc1MzA0MDYzLi45ZDAwMzMzNGFjMDgwNzVhMDcy
NjNmMjBmY2E3N2UzMmRiMGYyOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNzEsNyArNzEsOSBAQAogI2luY2x1ZGUgIldlYlByb3RlY3Rpb25TcGFj
ZS5oIgogI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVx
dWVzdC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0RyYWdEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVj
dGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMTgxLDcg
KzE4Myw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGll
bnQsIFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX2hhc1NwZWxsRG9jdW1l
bnRUYWcoZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3Vu
dCgwKQogICAgICwgbV9tYWluRnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbihmYWxzZSkKLSAg
ICAsIG1fY3VycmVudERyYWdPcGVyYXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtX2N1
cnJlbnREcmFnU2Vzc2lvbigpCiAgICAgLCBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxi
YXIoZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKQog
ICAgICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUoZmFsc2UpCkBAIC04NTAsOSArODUy
LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFn
Q29udHJvbGxlckFjdGlvbiBhY3Rpb24sIERyYWcKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQ
cm94eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJh
dGlvbikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
V2ViQ29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb24pCiB7Ci0gICAgbV9jdXJyZW50RHJhZ09w
ZXJhdGlvbiA9IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KHJlc3VsdE9wZXJhdGlvbik7Cisg
ICAgbV9jdXJyZW50RHJhZ1Nlc3Npb24gPSBkcmFnU2Vzc2lvbjsKIH0KIAogI2lmIFBMQVRGT1JN
KFFUKSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggN2RlODViMjI3YzA0N2Q3YTY5YjA5NmJlNmVmNzNkMjUyZGJhNGQ2ZC4uMWNmOTM5
YjEyZDk4YmYwNWU5NzljN2RmNTNiZWFiMTI3OWFmMzdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYlJlc291
cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYlVJQ2xpZW50LmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9EcmFnQWN0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgpAQCAtNDY3LDcg
KzQ2OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYWdFeGl0ZWQoV2ViQ29yZTo6RHJhZ0RhdGEq
LCBjb25zdCBTdHJpbmcmIGRyYWdTdG9yYWdlTmFtZSA9IFN0cmluZygpKTsKICAgICB2b2lkIHBl
cmZvcm1EcmFnKFdlYkNvcmU6OkRyYWdEYXRhKiwgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5h
bWUsIGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogCi0gICAgdm9pZCBkaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKTsKKyAgICB2
b2lkIGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbik7
CiAgICAgdm9pZCBkcmFnRW5kZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0
aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9w
ZXJhdGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKTsKQEAgLTUwNSw4ICs1
MDYsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVmFsaWQoKTsKICAgICAKLSAgICBXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oKSB7IHJldHVybiBtX2N1cnJlbnREcmFnT3Bl
cmF0aW9uOyB9Ci0gICAgdm9pZCByZXNldERyYWdPcGVyYXRpb24oKSB7IG1fY3VycmVudERyYWdP
cGVyYXRpb24gPSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uTm9uZTsgfQorICAgIFdlYkNvcmU6OkRy
YWdTZXNzaW9uIGRyYWdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RHJhZ1Nlc3Np
b247IH0KKyAgICB2b2lkIHJlc2V0RHJhZ09wZXJhdGlvbigpIHsgbV9jdXJyZW50RHJhZ1Nlc3Np
b24gPSBXZWJDb3JlOjpEcmFnU2Vzc2lvbigpOyB9CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlk
Q2hhbmdlKCk7CiAKQEAgLTkyNCw3ICs5MjUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
cGVuZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogCiAgICAgYm9vbCBtX21haW5G
cmFtZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uOwotICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb24g
bV9jdXJyZW50RHJhZ09wZXJhdGlvbjsKKyAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBtX2N1cnJl
bnREcmFnU2Vzc2lvbjsKIAogICAgIFN0cmluZyBtX3BlbmRpbmdBUElSZXF1ZXN0VVJMOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCA4MmI5NjFjYTYxYTYxOGVmZTE5OTdkN2FhZWQxMzYxYzVmZjIyNDY3Li4zZDg1MGI5MDE1
ZGRhYWI0OGQyYmRkNjc1OWNmNmM5YTA4MWEyZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIwNSw3ICsyMDUsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIElnbm9yZVdvcmQoV1RGOjpTdHJpbmcgd29y
ZCk7CiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKLSAgICBEaWRQZXJmb3JtRHJhZ0Nv
bnRyb2xsZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKQorICAgIERpZFBlcmZvcm1E
cmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbikKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVu
dFBvc2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGRyYWdJbWFnZSwgYm9v
bCBsaW5rRHJhZykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDUzOTVlYTM3M2YwNTgzMDUwODE1M2QwYmE0OGIzNzYzYjg5NTU4
NzYuLmI1NzRkZjA3YmM5MjAzNDhiNTBiMWYwMDBlYTAyNjViNjk3OGVjZWQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc5LDYgKzc5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnRIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Zvcm1TdGF0ZS5oPgpAQCAtMTgxNSw3ICsxODE2LDcgQEAgYm9vbCBX
ZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB2
b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24s
IFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9i
YWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBjb25zdCBX
ZWJDb3JlOjpEcmFnRGF0YU1hcCYgZGF0YU1hcCwgdWludDMyX3QgZmxhZ3MpCiB7CiAgICAgaWYg
KCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUpKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
RHJhZ0NvbnRyb2xsZXI6OkRyYWdTZXNzaW9uKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xODQ2LDcgKzE4NDcsNyBAQCB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxl
ckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkludFBvaW50IGNsaQogdm9pZCBXZWJQ
YWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3Jl
OjpEcmFnRGF0YSBkcmFnRGF0YSkKIHsKICAgICBpZiAoIW1fcGFnZSkgewotICAgICAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihE
cmFnT3BlcmF0aW9uTm9uZSkpOworICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnU2Vzc2lvbigpKSk7CiAjaWYgUExB
VEZPUk0oUVQpCiAgICAgICAgIFFNaW1lRGF0YSogZGF0YSA9IGNvbnN0X2Nhc3Q8UU1pbWVEYXRh
Kj4oZHJhZ0RhdGEucGxhdGZvcm1EYXRhKCkpOwogI2VsaWYgUExBVEZPUk0oR1RLKQpAQCAtMTg5
MCw3ICsxODkxLDcgQEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
dWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpEcmFnRGF0YSBkcmEKIHZvaWQgV2ViUGFnZTo6cGVy
Zm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9p
bnQgY2xpZW50UG9zaXRpb24sIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbFBvc2l0aW9uLCB1aW50
NjRfdCBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2ssIGNvbnN0IFN0cmluZyYgZHJhZ1N0b3Jh
Z2VOYW1lLCB1aW50MzJfdCBmbGFncywgY29uc3QgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiBz
YW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9u
KERyYWdPcGVyYXRpb25Ob25lKSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdTZXNzaW9uKCkpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGU2YmM1Y2QwMjU5YmJhZDAwMmQ4NmRmOWY0MjFi
YTgzMzY3OWI0ZGMuLjZjMDgyMDhlYmIwZWZjNDYxZjBjODJjNzkyZjg3OGM0ZTA0OTIxZjYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9yZSBpbmZv
cm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFj
Y2Vzcy5qczoKKyAgICAgICAgKHJ1blRlc3QpOiBDaGFuZ2UgdGhlIGV4cGVjdGVkIGJlaGF2aW9y
IG9mIHRoZSB0ZXN0LS0gZHJhZ2dpbmcgYSBmaWxlIG92ZXIgYSBkaXNhYmxlZAorICAgICAgICBj
b250cm9sIHNob3VsZCBub3QgbG9hZCB0aGF0IGZpbGUuIEluc3RlYWQsIHRoZSBmaWxlIHNob3Vs
ZCBiZSBpZ25vcmVkLCBhbmQgdGhlIHBhZ2UKKyAgICAgICAgcmVtYWlucyBhcyBpcy4KKwogMjAx
MS0xMS0wMiAgWmFuIERvYmVyc2VrICA8emFuZG9iZXJzZWtAZ21haWwuY29tPgogCiAgICAgICAg
IFtHVEtdIFZpc2l0ZWQgbGlua3Mgb2YgYSBwYWdlIGdyb3VwIHNob3VsZCBiZSByZW1vdmVkIHdo
ZW4gY2xlYXJpbmcgYmFjay9mb3J3YXJkIGxpc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQt
ZmlsZXMtYWNjZXNzLmpzCmluZGV4IDk3YWZmNjBkYWUwNGZhMTgzMzUzMDI1ZWVmOWU2NTc5YTM4
OGExNTMuLjkwNDNhYjBiZGZhYzE0MDM4NGQ1OTI5ZDA4N2E4MDI5MzZkMzE2YTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1
dC1maWxlcy1hY2Nlc3MuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3Nj
cmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcwpAQCAtMTEwLDIyICsxMTAsMTIg
QEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAKICAgICBkZWJ1ZygiRHJhZ2dpbmcgdG8gYSBkaXNhYmxl
ZCBmaWxlIGlucHV0IGNvbnRyb2w6Iik7CiAgICAgZmlsZUlucHV0LmRpc2FibGVkID0gdHJ1ZTsK
LSAgICB3aW5kb3cub25iZWZvcmV1bmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgLy8gU2lu
Y2UgdGhlIGRyb3AgdHJpZ2dlcmVkIGEgbmF2aWdhdGlvbiwgdmVyaWZ5IHRoZSBwcm9wZXJ0aWVz
IG9mIHRoZSBmaWxlIGlucHV0IGhlcmUuCi0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
ZmlsZUlucHV0LnZhbHVlIiwgIiIpOwotICAgICAgICBmaWxlc1Nob3VsZEJlKFtdKTsKLSAgICAg
ICAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKLSAgICAgICAgZGVidWcoJzxi
ciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOwotCi0gICAgICAg
IC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcwotICAgICAgICBmaWxlSW5wdXQucGFyZW50Tm9k
ZS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOworICAgIGRyYWdnaW5nUGF0aHNTaG91bGRSZXN1bHRJ
bkZpbGVzKFsnRFJURmFrZUZpbGUnXSwgW10pOwogCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAvLyBDbGVhbiB1cCBhZnRlciBvdXJzZWx2ZXMKKyAgICBm
aWxlSW5wdXQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChmaWxlSW5wdXQpOwogCi0gICAgICAgIHdp
bmRvdy5vbmJlZm9yZXVubG9hZCA9IG51bGw7Ci0gICAgfTsKLSAgICBkcmFnZ2luZ1BhdGhzU2hv
dWxkUmVzdWx0SW5GaWxlcyhbJ0RSVEZha2VGaWxlJ10sIFtdKTsKLSAgICB0ZXN0RmFpbGVkKCJU
aGUgZmluYWwgdGVzdCBjYXNlIHNob3VsZCBoYXZlIHJlc3VsdGVkIGluIG5hdmlnYXRpb24iKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CiAKIHZhciBzdWNjZXNz
ZnVsbHlQYXJzZWQgPSB0cnVlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113376</attachid>
            <date>2011-11-02 13:59:08 -0700</date>
            <delta_ts>2011-11-02 15:08:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71324-20111102135942.patch</filename>
            <type>text/plain</type>
            <size>49081</size>
            <attacher name="Jon Lee">jonlee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkwODMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0OWYyOGNlYzE2MTA3ZmY4
NDQ1MDljYmMxYTE4OTgwZmE5MmM5ODQwLi45OGM0NWY3YjZiMTE1OWI3NjUyNTUwMDZjMjI5OTg1
YWM5YmQ5MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDUgQEAKIDIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29u
dHJvbGxlcjo6ZHJhZ1VwZGF0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVy
Ojp0cnlEb2N1bWVudERyYWcpOiBJbiBhZGRpdGlvbiB0byBkZXRlcm1pbmluZyB0aGUKKyAgICAg
ICAgZHJhZyBvcGVyYXRpb24sIERyYWdTZXNzaW9uIGlzIHVwZGF0ZWQgd2l0aCBkYXRhIHJlZ2Fy
ZGluZyB3aGV0aGVyIHRoZSBtb3VzZQorICAgICAgICBpcyBvdmVyIGEgZmlsZSBpbnB1dCwgYW5k
IHRoZSBudW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZSBhY2NlcHRlZCBiYXNlZCBvbgorICAg
ICAgICB0aGUgbW91c2UncyBsb2NhdGlvbi4KKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVy
Lmg6CisgICAgICAgICogcGFnZS9EcmFnU2Vzc2lvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdTZXNzaW9uOjpEcmFnU2Vzc2lvbik6IEtlZXAgdHJhY2sgb2YgY3VycmVudCBvcGVy
YXRpb24sIHdoZXRoZXIKKyAgICAgICAgdGhlIG1vdXNlIGlzIG92ZXIgYSBmaWxlIGlucHV0IGVs
ZW1lbnQsIGFuZCBob3cgbWFueSBmaWxlcyB3b3VsZCBiZSBhY2NlcHRlZCBpZgorICAgICAgICBk
cm9wcGVkLgorICAgICAgICAqIHBsYXRmb3JtL0RyYWdEYXRhLmg6IEFkZGVkIG51bWJlck9mRmls
ZXMoKQorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0RyYWdEYXRhQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RHJhZ0RhdGE6Om51bWJlck9mRmlsZXMpOgorICAgICAgICAqIHBs
YXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0RyYWdEYXRhR3RrLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6
bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxhdGZvcm0vcXQvRHJhZ0RhdGFRdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcyk6CisgICAgICAgICogcGxh
dGZvcm0vd2luL0RyYWdEYXRhV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpu
dW1iZXJPZkZpbGVzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRhOjpudW1iZXJPZkZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS93eC9EcmFnRGF0YVd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdEYXRh
OjpudW1iZXJPZkZpbGVzKToKKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNp
bmd1bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDU2NzBhYWIxYTZhOGU1MGVmNWE2MjMyMDQ4
ZTFmMWFlNThmNmQxNzYuLjFmMTJkM2ExNTQ3MWY4M2Y4YzZhNzhlNTkwNTk2NzU0NTk3ZmMzN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTEtMTEtMDIg
IEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJv
bGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Np
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnVGFyZ2V0RHJhZ0VudGVyT3JPdmVyKTogVGhl
IGRyYWcgb3BlcmF0aW9uIGlzIGNvbnRhaW5lZAorICAgICAgICB3aXRoaW4gdGhlIG5ldyBEcmFn
U2Vzc2lvbiBzdHJ1Y3QuIE1pbm9yIHJlZmFjdG9yLgorCisyMDExLTExLTAyICBKb24gTGVlICA8
am9ubGVlQGFwcGxlLmNvbT4KKwogICAgICAgICA8aW5wdXQ9ZmlsZSBtdWx0aXBsZT4gZGVmYXVs
dCB0ZXh0IHVzZXMgc2luZ3VsYXIgaW5zdGVhZCBvZiBwbHVyYWwKICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE5CiAgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8xMDM3OTAyMT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyZmJiZTk1ZWRhYTg2MjFkNTZlN2Vm
NzUzYzM5YjFjMGM3NDkzNmZjLi5jNmJhODEzYjJlMWQxNTI3MmQ4ZWNiNmFiMDlmY2M2ZDYyYzZl
ODY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMTEtMDIgIEpvbiBM
ZWUgIDxqb25sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEV4cGFuZCBEcmFnQ29udHJvbGxlciB0
byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGRyYWdnaW5nIHNlc3Npb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzI0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAg
ICAgKHdlYmtpdF93ZWJfdmlld19kcmFnX21vdGlvbik6IE1pbm9yIHJlZmFjdG9yaW5nLgorICAg
ICAgICAod2Via2l0X3dlYl92aWV3X2RyYWdfZGF0YV9yZWNlaXZlZCk6IE1pbm9yIHJlZmFjdG9y
aW5nLgorCiAyMDExLTExLTAyICBaYW4gRG9iZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+
CiAKICAgICAgICAgW0dUS10gVmlzaXRlZCBsaW5rcyBvZiBhIHBhZ2UgZ3JvdXAgc2hvdWxkIGJl
IHJlbW92ZWQgd2hlbiBjbGVhcmluZyBiYWNrL2ZvcndhcmQgbGlzdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGQxOTVjMmQ3MjYwNmQwZWFjOWFkN2U0NzQxZDI3NjA2MDY4NDcxYWQuLmZjMjc5OTYyMTA0
ZDQzMjg4OGZmMmM3NzI4NjE5MjEwNTJiNTM4YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAg
ICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHByb3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91
dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IGRyYWdnaW5nRW50ZXJlZDpdKTogRHJh
Z09wZXJhdGlvbiBpcyBub3cgaW5zaWRlIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAg
ICgtW1dlYlZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0pOgorCiAyMDExLTExLTAxICBEYXJpbiBBZGxl
ciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDcmFzaCBpbiBQREYgY29kZSB3aGVuIHNj
cmlwdCBoYXMgaWxsZWdhbCBVVEYtOCBvciBVVEYtMTYgc2VxdWVuY2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDY3ZmZmMzBmNWE1YWIzNzU1ODIzYzg5YmYzZDM5OWU4NzNmMWU2NGYuLjRiMTI0MDI2ZDIy
OTc5YTY0NmI0ZmY3YzE4YjQzOTEyYjc0NDU0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDUgKzEs
MTggQEAKIDIwMTEtMTEtMDIgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29tPgogCisgICAgICAg
IEV4cGFuZCBEcmFnQ29udHJvbGxlciB0byBwcm92aWRlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQg
dGhlIGRyYWdnaW5nIHNlc3Npb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTcxMzI0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDM3OTE3NT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2Vi
cGFnZS5jcHA6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdFbnRlckV2ZW50KTogTWlu
b3IgcmVmYWN0b3JpbmcgYmVjYXVzZSBvcGVyYXRpb24gaXMgc3RvcmVkIGluCisgICAgICAgIG5l
dyBEcmFnU2Vzc2lvbiBzdHJ1Y3QuCisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OmRyYWdNb3Zl
RXZlbnQpOiBEaXR0by4KKworMjAxMS0xMS0wMiAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+
CisKICAgICAgICAgPGlucHV0PWZpbGUgbXVsdGlwbGU+IGRlZmF1bHQgdGV4dCB1c2VzIHNpbmd1
bGFyIGluc3RlYWQgb2YgcGx1cmFsCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MTMxOQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkwMjE+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKaW5kZXggMTUxNjRhOTdkOWJmODI3YTU3ZTY2MzJkNDk0MjcwYzJkMjlkMTkx
My4uYzYyOTYyZDkxYTU0MmMyMWE1ZTA0YjIxNjRjOGE0NGYwNzM4NmFiYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTExLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxl
LmNvbT4KKworICAgICAgICBFeHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3JlIGlu
Zm9ybWF0aW9uIGFib3V0IHRoZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTAzNzkxNzU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6OkRyYWdFbnRlcik6IE1pbm9y
IHJlZmFjdG9yaW5nIGJlY2F1c2Ugb3BlcmF0aW9uIGlzIHN0b3JlZCBpbgorICAgICAgICBuZXcg
RHJhZ1Nlc3Npb24gc3RydWN0LgorICAgICAgICAoV2ViVmlldzo6RHJhZ092ZXIpOiBEaXR0by4K
KwogMjAxMS0xMC0yOCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZW5hbWUgYSBudW1iZXIgb2YgbWV0aG9kcyBtZW50aW9uaW5nIEphdmFTY3JpcHQg
dG8ganVzdCBTY3JpcHQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg4ZWJjNmY4NzA0ODc4MjlhOTcy
NjkyZGJjMjQ1NWZjZTYwODAxZmMuLmFhNTc3ZjkwMWE2ZGUyNjE1YjhhZjE1N2U4MTg0YTJlMzY5
Y2E4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMS0xMS0wMiAgSm9uIExlZSAg
PGpvbmxlZUBhcHBsZS5jb20+CisKKyAgICAgICAgRXhwYW5kIERyYWdDb250cm9sbGVyIHRvIHBy
b3ZpZGUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZHJhZ2dpbmcgc2Vzc2lvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzEzMjQKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzEwMzc5MTc1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFdlIG5vdyBwYXNzIHRoZSBEcmFnU2Vzc2lvbiBzdHJ1Y3QgZnJv
bSB0aGUgV2ViIHRvIHRoZSBVSSBwcm9jZXNzLCBpbnN0ZWFkIG9mIHRoZQorICAgICAgICBEcmFn
T3BlcmF0aW9uIGVudW0uCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHk6
CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHA6CisgICAgICAgIChD
b3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBDOjo6OmRlY29kZSk6CisgICAgICAg
ICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOiBXZSBub3cgY2FjaGUgdGhlIGxhc3Qga25vd24g
RHJhZ1Nlc3Npb24gc3RhdGUKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkcmFnU2Vzc2lvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXREcmFnT3BlcmF0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy93aW4vV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXc6OmtleVN0YXRlVG9E
cmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlldzo6RHJhZ0VudGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlldzo6RHJhZ092ZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURy
YWdDb250cm9sbGVyQWN0aW9uKToKKwogMjAxMS0xMS0wMiAgQ2FpbyBNYXJjZWxvIGRlIE9saXZl
aXJhIEZpbGhvICA8Y2Fpby5vbGl2ZWlyYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFtRdF0g
SW1wbGVtZW50IG1lc3NhZ2UgZXhjaGFuZ2UgYmV0d2VlbiBXZWJWaWV3IGFuZCB0aGUgd2ViIHBh
Z2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCA2ZjI4MTk1YzdkNTQ4NDk5MjliYWJkZjM0Y2NiOTAzZjM0YTc1NzljLi4zNzMyOGIz
YzU5Mjg2ZjUzNjcyYjhhMjIwMTIzYmQzZWQyMWI5YWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03NzgsNiArNzc4LDcgQEAK
IAkJMzE2MTFFNjEwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTYxMUU1
RTBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUuaCAqLzsgfTsK
IAkJMzE2MTFFNjIwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2MTFF
NUYwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVlLm1tICovOyB9
OwogCQkzMTYxMUU2MzBFMUM0RTE0MDBGNkE1NzkgLyogRE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1RyYW5zZm9ybVZhbHVl
SW50ZXJuYWwuaCAqLzsgfTsKKwkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERyYWdTZXNz
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTY5
Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzMTZGRTA3MTBFNkNDQkVFMDBCRjYwODgg
LyogSlNXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLzsgfTsKIAkJMzE2RkUwNzIwRTZDQ0JFRTAwQkY2MDg4IC8q
IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTZGRTA2RTBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzE2RkUwNzMwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2Vi
S2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzMTZGRTA2RjBFNkNDQkVFMDBCRjYwODggLyogSlNXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmNwcCAqLzsgfTsKQEAgLTc4NTUsNiArNzg1Niw3IEBACiAJCTMxNjExRTVFMEUx
QzRFMTQwMEY2QTU3OSAvKiBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTYxMUU1RjBFMUM0RTE0MDBGNkE1NzkgLyogRE9N
V2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMzE2MTFFNjAwRTFDNEUxNDAwRjZBNTc5IC8qIERPTVdlYktpdENTU1Ry
YW5zZm9ybVZhbHVlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NV2ViS2l0Q1NTVHJhbnNmb3JtVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkzMTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyogRHJhZ1Nlc3Npb24uaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ1Nlc3Npb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMzE2RkUwNkQwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpT
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MzE2RkUwNkUwRTZDQ0JFRTAwQkY2MDg4IC8qIEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNkZFMDZGMEU2Q0NCRUUwMEJGNjA4OCAv
KiBKU1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTE1NDM3LDYgKzE1NDM5LDcgQEAKIAkJCQlBN0NBNTk1QzBCMjdCRDlF
MDBGQTAyMUQgLyogRHJhZ0NvbnRyb2xsZXIuY3BwICovLAogCQkJCUE3Q0E1OTVCMEIyN0JEOUUw
MEZBMDIxRCAvKiBEcmFnQ29udHJvbGxlci5oICovLAogCQkJCTgxRjY1RkY1MTM3ODhGQUEwMEZG
NkYyRCAvKiBEcmFnU3RhdGUuaCAqLywKKwkJCQkzMTY5Mzc5QTE0NjA5QzVCMDBDMDEzNjIgLyog
RHJhZ1Nlc3Npb24uaCAqLywKIAkJCQkxQUYzMjY3NzBENzhCOTQ0MDA2OEYwQzQgLyogRWRpdG9y
Q2xpZW50LmggKi8sCiAJCQkJOTNDMDlBODAwQjA2NEYwMDAwNUFCRDREIC8qIEV2ZW50SGFuZGxl
ci5jcHAgKi8sCiAJCQkJOTNDMDlBNTIwQjA2NERCMzAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5o
ICovLApAQCAtMjQ1NDEsNiArMjQ1NDQsNyBAQAogCQkJCTlCM0E4ODcyMTQ1NjMyRjkwMDNBRThG
NSAvKiBET01ET01TZXR0YWJsZVRva2VuTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2MkY1
MkUxNDU4OThEODAwOTRCMEVEIC8qIEF1ZGlvU291cmNlUHJvdmlkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJEOEZFQkREMTQzRTNFRjcwMDcyNTAyQiAvKiBDU1NDcm9zc2ZhZGVWYWx1
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMzE2OTM3OUMxNDYwOUM2QzAwQzAxMzYyIC8qIERyYWdT
ZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKaW5kZXggNzEyYWYxOTE5NTQwYjU4MzFkMjBiYWU2ODg0NjA3MzU3YjEzNzgyNy4uZjhkZTBj
NTU2ZjZmMWIxOTlhYWU3YzI4YzQzNjk4NWIwZTgyNzI2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
cmFnQ29udHJvbGxlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEcmFnQWN0aW9u
cy5oIgogI2luY2x1ZGUgIkRyYWdDbGllbnQuaCIKICNpbmNsdWRlICJEcmFnRGF0YS5oIgorI2lu
Y2x1ZGUgIkRyYWdTZXNzaW9uLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCiAjaW5jbHVkZSAiRWRp
dG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgpAQCAtMTYyLDcgKzE2Myw3IEBAIHZv
aWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFbmRlZCgpCiAgICAgbV9jbGllbnQtPmRyYWdFbmRlZCgp
OwogfQogCi1EcmFnT3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZChEcmFnRGF0
YSogZHJhZ0RhdGEpCitEcmFnU2Vzc2lvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVyZWQoRHJh
Z0RhdGEqIGRyYWdEYXRhKQogewogICAgIHJldHVybiBkcmFnRW50ZXJlZE9yVXBkYXRlZChkcmFn
RGF0YSk7CiB9CkBAIC0xODIsNyArMTgzLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4
aXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKTsK
IH0KIAotRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ1VwZGF0ZWQoRHJhZ0RhdGEq
IGRyYWdEYXRhKQorRHJhZ1Nlc3Npb24gRHJhZ0NvbnRyb2xsZXI6OmRyYWdVcGRhdGVkKERyYWdE
YXRhKiBkcmFnRGF0YSkKIHsKICAgICByZXR1cm4gZHJhZ0VudGVyZWRPclVwZGF0ZWQoZHJhZ0Rh
dGEpOwogfQpAQCAtMjMyLDcgKzIzMyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6Om1vdXNlTW92
ZWRJbnRvRG9jdW1lbnQoRG9jdW1lbnQqIG5ld0RvY3VtZW50KQogICAgIG1fZG9jdW1lbnRVbmRl
ck1vdXNlID0gbmV3RG9jdW1lbnQ7CiB9CiAKLURyYWdPcGVyYXRpb24gRHJhZ0NvbnRyb2xsZXI6
OmRyYWdFbnRlcmVkT3JVcGRhdGVkKERyYWdEYXRhKiBkcmFnRGF0YSkKK0RyYWdTZXNzaW9uIERy
YWdDb250cm9sbGVyOjpkcmFnRW50ZXJlZE9yVXBkYXRlZChEcmFnRGF0YSogZHJhZ0RhdGEpCiB7
CiAgICAgQVNTRVJUKGRyYWdEYXRhKTsKICAgICBBU1NFUlQobV9wYWdlLT5tYWluRnJhbWUoKSk7
IC8vIEl0IGlzIG5vdCBwb3NzaWJsZSBpbiBNYWMgV2ViS2l0IHRvIGhhdmUgYSBQYWdlIHdpdGhv
dXQgYSBtYWluRnJhbWUoKQpAQCAtMjQxLDE0ICsyNDIsMTQgQEAgRHJhZ09wZXJhdGlvbiBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqIGRyYWdEYXRhKQogICAg
IG1fZHJhZ0Rlc3RpbmF0aW9uQWN0aW9uID0gbV9jbGllbnQtPmFjdGlvbk1hc2tGb3JEcmFnKGRy
YWdEYXRhKTsKICAgICBpZiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gPT0gRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uTm9uZSkgewogICAgICAgICBjYW5jZWxEcmFnKCk7IC8vIEZJWE1FOiBXaHkgbm90
IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudCgwKT8KLSAgICAgICAgcmV0dXJuIERyYWdPcGVy
YXRpb25Ob25lOworICAgICAgICByZXR1cm4gRHJhZ1Nlc3Npb24oKTsKICAgICB9CiAKLSAgICBE
cmFnT3BlcmF0aW9uIG9wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwotICAgIGJvb2wgaGFu
ZGxlZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uLCBvcGVyYXRpb24pOworICAgIERyYWdTZXNzaW9uIGRyYWdTZXNzaW9uOworICAg
IGJvb2wgaGFuZGxlZEJ5RG9jdW1lbnQgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uLCBkcmFnU2Vzc2lvbik7CiAgICAgaWYgKCFoYW5kbGVkQnlEb2N1
bWVudCAmJiAobV9kcmFnRGVzdGluYXRpb25BY3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25M
b2FkKSkKLSAgICAgICAgcmV0dXJuIG9wZXJhdGlvbkZvckxvYWQoZHJhZ0RhdGEpOwotICAgIHJl
dHVybiBvcGVyYXRpb247CisgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IG9wZXJhdGlv
bkZvckxvYWQoZHJhZ0RhdGEpOworICAgIHJldHVybiBkcmFnU2Vzc2lvbjsKIH0KIAogc3RhdGlj
IEhUTUxJbnB1dEVsZW1lbnQqIGFzRmlsZUlucHV0KE5vZGUqIG5vZGUpCkBAIC0yODQsNyArMjg1
LDcgQEAgc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1bWVu
dFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxFbGVt
ZW50Kj4obik7CiB9CiAKLWJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURvY3VtZW50RHJhZyhEcmFn
RGF0YSogZHJhZ0RhdGEsIERyYWdEZXN0aW5hdGlvbkFjdGlvbiBhY3Rpb25NYXNrLCBEcmFnT3Bl
cmF0aW9uJiBvcGVyYXRpb24pCitib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWco
RHJhZ0RhdGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFzaywgRHJh
Z1Nlc3Npb24mIGRyYWdTZXNzaW9uKQogewogICAgIEFTU0VSVChkcmFnRGF0YSk7CiAKQEAgLTI5
Niw3ICsyOTcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0Rh
dGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogCiAgICAgbV9pc0hhbmRsaW5n
RHJhZyA9IGZhbHNlOwogICAgIGlmIChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
REhUTUwpIHsKLSAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJhZyhkcmFnRGF0
YSwgb3BlcmF0aW9uKTsKKyAgICAgICAgbV9pc0hhbmRsaW5nRHJhZyA9IHRyeURIVE1MRHJhZyhk
cmFnRGF0YSwgZHJhZ1Nlc3Npb24ub3BlcmF0aW9uKTsKICAgICAgICAgLy8gRG8gbm90IGNvbnRp
bnVlIGlmIG1fZG9jdW1lbnRVbmRlck1vdXNlIGhhcyBiZWVuIHJlc2V0IGJ5IHRyeURIVE1MRHJh
Zy4KICAgICAgICAgLy8gdHJ5REhUTUxEcmFnIGZpcmVzIGRyYWdlbnRlciBldmVudC4gVGhlIGV2
ZW50IGxpc3RlbmVyIHRoYXQgbGlzdGVucwogICAgICAgICAvLyB0byB0aGlzIGV2ZW50IG1heSBj
cmVhdGUgYSBuZXN0ZWQgbWVzc2FnZSBsb29wIChvcGVuIGEgbW9kYWwgZGlhbG9nKSwKQEAgLTMx
Nyw3ICszMTgsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVudERyYWcoRHJhZ0Rh
dGEqIGRyYWdEYXRhLCBEcmFnRGVzdGluYXRpb25BY3Rpb24gYQogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9IGVsc2UgaWYgKChhY3Rpb25NYXNrICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRp
dCkgJiYgY2FuUHJvY2Vzc0RyYWcoZHJhZ0RhdGEpKSB7CiAgICAgICAgIGlmIChkcmFnRGF0YS0+
Y29udGFpbnNDb2xvcigpKSB7Ci0gICAgICAgICAgICBvcGVyYXRpb24gPSBEcmFnT3BlcmF0aW9u
R2VuZXJpYzsKKyAgICAgICAgICAgIGRyYWdTZXNzaW9uLm9wZXJhdGlvbiA9IERyYWdPcGVyYXRp
b25HZW5lcmljOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KIApAQCAtMzI1
LDExICszMjYsMzIgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5RG9jdW1lbnREcmFnKERyYWdE
YXRhKiBkcmFnRGF0YSwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGEKICAgICAgICAgRWxlbWVudCog
ZWxlbWVudCA9IGVsZW1lbnRVbmRlck1vdXNlKG1fZG9jdW1lbnRVbmRlck1vdXNlLmdldCgpLCBw
b2ludCk7CiAgICAgICAgIGlmICghZWxlbWVudCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICAgICAgaWYgKCFhc0ZpbGVJbnB1dChlbGVtZW50KSkKKyAgICAgICAgCisgICAgICAgIEhU
TUxJbnB1dEVsZW1lbnQqIGVsZW1lbnRBc0ZpbGVJbnB1dCA9IGFzRmlsZUlucHV0KGVsZW1lbnQp
OworICAgICAgICBpZiAoIWVsZW1lbnRBc0ZpbGVJbnB1dCkKICAgICAgICAgICAgIG1fcGFnZS0+
ZHJhZ0NhcmV0Q29udHJvbGxlcigpLT5zZXRDYXJldFBvc2l0aW9uKG1fZG9jdW1lbnRVbmRlck1v
dXNlLT5mcmFtZSgpLT52aXNpYmxlUG9zaXRpb25Gb3JQb2ludChwb2ludCkpOwogCiAgICAgICAg
IEZyYW1lKiBpbm5lckZyYW1lID0gZWxlbWVudC0+ZG9jdW1lbnQoKS0+ZnJhbWUoKTsKLSAgICAg
ICAgb3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwgZHJhZ0Rh
dGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAgICAgZHJh
Z1Nlc3Npb24ub3BlcmF0aW9uID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwg
ZHJhZ0RhdGEpID8gRHJhZ09wZXJhdGlvbk1vdmUgOiBEcmFnT3BlcmF0aW9uQ29weTsKKyAgICAg
ICAgZHJhZ1Nlc3Npb24ubW91c2VJc092ZXJGaWxlSW5wdXQgPSBlbGVtZW50QXNGaWxlSW5wdXQ7
CisgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOworCisg
ICAgICAgIHVuc2lnbmVkIG51bWJlck9mRmlsZXMgPSBkcmFnRGF0YS0+bnVtYmVyT2ZGaWxlcygp
OworICAgICAgICBpZiAoZWxlbWVudEFzRmlsZUlucHV0KSB7CisgICAgICAgICAgICBpZiAoZWxl
bWVudEFzRmlsZUlucHV0LT5kaXNhYmxlZCgpKQorICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9u
Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSAwOworICAgICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudEFzRmlsZUlucHV0LT5tdWx0aXBsZSgpKQorICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9u
Lm51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQgPSBudW1iZXJPZkZpbGVzOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIGRyYWdTZXNzaW9uLm51bWJlck9mSXRlbXNUb0JlQWNjZXB0
ZWQgPSAxOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAoIWRyYWdTZXNzaW9uLm51bWJl
ck9mSXRlbXNUb0JlQWNjZXB0ZWQpCisgICAgICAgICAgICAgICAgZHJhZ1Nlc3Npb24ub3BlcmF0
aW9uID0gRHJhZ09wZXJhdGlvbk5vbmU7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgLy8g
V2UgYXJlIG5vdCBvdmVyIGEgZmlsZSBpbnB1dCBlbGVtZW50LiBUaGUgZHJhZ2dlZCBpdGVtKHMp
IHdpbGwgb25seQorICAgICAgICAgICAgLy8gYmUgbG9hZGVkIGludG8gdGhlIHZpZXcgdGhlIG51
bWJlciBvZiBkcmFnZ2VkIGl0ZW1zIGlzIDEuCisgICAgICAgICAgICBkcmFnU2Vzc2lvbi5udW1i
ZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8gMCA6IDE7CisgICAg
ICAgIAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgLy8gSWYgd2UncmUgbm90IG92
ZXIgYW4gZWRpdGFibGUgcmVnaW9uLCBtYWtlIHN1cmUgd2UncmUgY2xlYXJpbmcgYW55IHByaW9y
IGRyYWcgY3Vyc29yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCmluZGV4IDI2MWE4
ZDUzZjczNjU4YjA3MWYyMTA1NmFlNThiMjRiMWJiNDU5NjkuLmQ1MjU5MWQxNTQ5ZmNiZDkwZTEw
YmIwYjRlNTYzNGQwMzBhYmRmODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgK
QEAgLTM3LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIERvY3VtZW50
OwogICAgIGNsYXNzIERyYWdDbGllbnQ7CiAgICAgY2xhc3MgRHJhZ0RhdGE7CisgICAgc3RydWN0
IERyYWdTZXNzaW9uOwogICAgIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgY2xhc3MgRWxlbWVudDsK
ICAgICBjbGFzcyBGcmFtZTsKQEAgLTU1LDkgKzU2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICB+RHJhZ0NvbnRyb2xsZXIoKTsKICAgICAgICAgRHJhZ0NsaWVudCogY2xpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAotICAgICAgICBEcmFnT3BlcmF0aW9uIGRyYWdF
bnRlcmVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9uIGRyYWdFbnRlcmVkKERyYWdE
YXRhKik7CiAgICAgICAgIHZvaWQgZHJhZ0V4aXRlZChEcmFnRGF0YSopOwotICAgICAgICBEcmFn
T3BlcmF0aW9uIGRyYWdVcGRhdGVkKERyYWdEYXRhKik7CisgICAgICAgIERyYWdTZXNzaW9uIGRy
YWdVcGRhdGVkKERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgcGVyZm9ybURyYWcoRHJhZ0RhdGEq
KTsKICAgICAgICAgCiAgICAgICAgIC8vIEZJWE1FOiBJdCBzaG91bGQgYmUgcG9zc2libGUgdG8g
cmVtb3ZlIGEgbnVtYmVyIG9mIHRoZXNlIGFjY2Vzc29ycyBvbmNlIGFsbApAQCAtOTQsOSArOTUs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZGlzcGF0Y2hUZXh0SW5wdXRF
dmVudEZvcihGcmFtZSosIERyYWdEYXRhKik7CiAgICAgICAgIGJvb2wgY2FuUHJvY2Vzc0RyYWco
RHJhZ0RhdGEqKTsKICAgICAgICAgYm9vbCBjb25jbHVkZUVkaXREcmFnKERyYWdEYXRhKik7Ci0g
ICAgICAgIERyYWdPcGVyYXRpb24gZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqKTsKKyAg
ICAgICAgRHJhZ1Nlc3Npb24gZHJhZ0VudGVyZWRPclVwZGF0ZWQoRHJhZ0RhdGEqKTsKICAgICAg
ICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb25Gb3JMb2FkKERyYWdEYXRhKik7Ci0gICAgICAgIGJv
b2wgdHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiwgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFn
T3BlcmF0aW9uJik7CisgICAgICAgIGJvb2wgdHJ5RG9jdW1lbnREcmFnKERyYWdEYXRhKiwgRHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uLCBEcmFnU2Vzc2lvbiYpOwogICAgICAgICBib29sIHRyeURIVE1M
RHJhZyhEcmFnRGF0YSosIERyYWdPcGVyYXRpb24mKTsKICAgICAgICAgRHJhZ09wZXJhdGlvbiBk
cmFnT3BlcmF0aW9uKERyYWdEYXRhKik7CiAgICAgICAgIHZvaWQgY2FuY2VsRHJhZygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnU2Vzc2lvbi5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9EcmFnU2Vzc2lvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiNzM3MWU1ZWFjOTkzMDQ0Y2U4ZjQ2
Mjk0YTM2NjE4NTdhNjdhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RyYWdTZXNzaW9uLmgKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgRHJhZ1Nl
c3Npb25faAorI2RlZmluZSBEcmFnU2Vzc2lvbl9oCisKKyNpbmNsdWRlICJEcmFnQWN0aW9ucy5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgCitzdHJ1Y3QgRHJhZ1Nlc3Npb24geworICAg
IERyYWdTZXNzaW9uKCkKKyAgICA6IG9wZXJhdGlvbihEcmFnT3BlcmF0aW9uTm9uZSkKKyAgICAs
IG1vdXNlSXNPdmVyRmlsZUlucHV0KGZhbHNlKQorICAgICwgbnVtYmVyT2ZJdGVtc1RvQmVBY2Nl
cHRlZCgwKSB7IH0KKyAgICBEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbjsKKyAgICBib29sIG1vdXNl
SXNPdmVyRmlsZUlucHV0OworICAgIHVuc2lnbmVkIG51bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQ7
Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggYWZh
MjE5ZjNiNzIyM2JkZGQ1OGMyN2VmNjcyZDhjNmNhNzBjZjFiYy4uYmIyNDJmOWU5MTYyYTc2OWUx
ODYyZWYwYTkzNDhhZDk1ZTg1ODhhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vRHJhZ0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCkBA
IC0xMTYsNiArMTE2LDcgQEAgcHVibGljOgogICAgIGJvb2wgY2FuU21hcnRSZXBsYWNlKCkgY29u
c3Q7CiAgICAgYm9vbCBjb250YWluc0NvbG9yKCkgY29uc3Q7CiAgICAgYm9vbCBjb250YWluc0Zp
bGVzKCkgY29uc3Q7CisgICAgdW5zaWduZWQgbnVtYmVyT2ZGaWxlcygpIGNvbnN0OwogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQoKSB7IHJldHVybiBtX3Bh
c3RlYm9hcmQuZ2V0KCk7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vRHJhZ0RhdGFDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jaHJvbWl1bS9EcmFnRGF0YUNocm9taXVtLmNwcAppbmRleCAwOWRhOGE0YTQwZDY3MmZm
NDI4NjVmOGM4OTljNjY2NzI1YzRmNWUyLi45YzM4Mzg2MDI1MWM3NDcwMDkyZjk2NTM3YTYxNzc5
Mjg4OGJkYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9E
cmFnRGF0YUNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9EcmFnRGF0YUNocm9taXVtLmNwcApAQCAtNzMsNiArNzMsMTEgQEAgYm9vbCBEcmFnRGF0YTo6
Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+Y29u
dGFpbnNGaWxlbmFtZXMoKTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMo
KSBjb25zdAoreworICAgIHJldHVybiBtX3BsYXRmb3JtRHJhZ0RhdGEtPmZpbGVuYW1lcygpLnNp
emUoKTsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4mIHJl
c3VsdCkgY29uc3QKIHsKICAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzID0gbV9w
bGF0Zm9ybURyYWdEYXRhLT5maWxlbmFtZXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9l
ZmwvRHJhZ0RhdGFFZmwuY3BwCmluZGV4IGIzNWI5NjNlYTljNDY5ODYwMTdmNjM5NzRiMDc1YTM0
MzdkMWQ0NjYuLjlkN2U5Y2E3OTVjOGY3ZDFiYzM2ODgyYTNhNGFjODFmNGI4YzA5NzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9EcmFnRGF0YUVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0RyYWdEYXRhRWZsLmNwcApAQCAtNDEsNiArNDEs
MTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJp
bmc+JiByZXN1bHQpIGNvbnN0CiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0Ry
YWdEYXRhR3RrLmNwcAppbmRleCBjYzlhMjA4MDAzYjI3ZDEwYTljOGU4ZmU2YzNkYmIzYzM4ZmMw
MGU0Li4wMmE0NzQ5ZDMzY2JiMjk5YzhkZDY2ZTM1YzAwOTFhYjI4ZjEwYWU3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRHJhZ0RhdGFHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9EcmFnRGF0YUd0ay5jcHAKQEAgLTQxLDYgKzQxLDExIEBA
IGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBtX3BsYXRm
b3JtRHJhZ0RhdGEtPmhhc0ZpbGVuYW1lcygpOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVt
YmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGxhdGZvcm1EcmFnRGF0YS0+Zmls
ZW5hbWVzKCkuc2l6ZSgpOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8
U3RyaW5nPiYgcmVzdWx0KSBjb25zdAogewogICAgIHJlc3VsdCA9IG1fcGxhdGZvcm1EcmFnRGF0
YS0+ZmlsZW5hbWVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
RHJhZ0RhdGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMu
bW0KaW5kZXggMmNhOTQzZGUxMWIwZDlhODBjYTM3NThlNzQzMTNiMmE1ZTkxOTljMi4uMjk0ZWVi
YmI4Y2MyZTk1MzJjOGI3MmRmZWNhY2EwZTkyOGI4YmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQpAQCAtNzYsNiArNzYsMTMgQEAgYm9vbCBEcmFnRGF0
YTo6Y29udGFpbnNGaWxlcygpIGNvbnN0CiAgICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdldCgp
IHR5cGVzXSBjb250YWluc09iamVjdDpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOwogfQogCit1bnNp
Z25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgaWYgKCFbW21fcGFz
dGVib2FyZC5nZXQoKSB0eXBlc10gY29udGFpbnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBl
XSkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIFtbbV9wYXN0ZWJvYXJkLmdldCgpIHBy
b3BlcnR5TGlzdEZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSBjb3VudF07Cit9CisKIHZv
aWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7
CiAgICAgTlNBcnJheSAqZmlsZW5hbWVzID0gW21fcGFzdGVib2FyZC5nZXQoKSBwcm9wZXJ0eUxp
c3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9EcmFnRGF0YVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3F0L0RyYWdEYXRhUXQuY3BwCmluZGV4IDI1NTRkZjQyMzUwNzY5YmViZjNjYTMyMmU3NzI3MmNk
MjEzOWQyYmIuLjAzMDNhZDdjOTI0YTE1ZGRkZTJlMzRiN2Y5Zjg4YWUxMzdkOGYwY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L0RyYWdEYXRhUXQuY3BwCkBAIC02Miw2ICs2MiwxMSBA
QCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK3Vuc2lnbmVkIERyYWdEYXRhOjpudW1iZXJPZkZpbGVzKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gMDsKK30KKwogdm9pZCBEcmFnRGF0YTo6YXNGaWxlbmFtZXMoVmVjdG9yPFN0cmluZz4m
IHJlc3VsdCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGxhdGZvcm1EcmFnRGF0YSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFnRGF0YVdpbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vRHJhZ0RhdGFXaW4uY3BwCmluZGV4IDA4YjZlYjJkNzZkNTNm
NWE2ZTczNjFmODhlYTYxZjBhY2U0ZTFiNzMuLjlhYjYyYjk1MGZmYjA1ZTkxNGM3ZWQ3M2ViNGU0
NGM4ZjQ1YTE3YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9EcmFn
RGF0YVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0RyYWdEYXRhV2lu
LmNwcApAQCAtMTEwLDYgKzExMCwxMSBAQCBib29sIERyYWdEYXRhOjpjb250YWluc0ZpbGVzKCkg
Y29uc3QKICAgICByZXR1cm4gKG1fcGxhdGZvcm1EcmFnRGF0YSkgPyBTVUNDRUVERUQobV9wbGF0
Zm9ybURyYWdEYXRhLT5RdWVyeUdldERhdGEoY2ZIRHJvcEZvcm1hdCgpKSkgOiBtX2RyYWdEYXRh
TWFwLmNvbnRhaW5zKGNmSERyb3BGb3JtYXQoKS0+Y2ZGb3JtYXQpOwogfQogCit1bnNpZ25lZCBE
cmFnRGF0YTo6bnVtYmVyT2ZGaWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZv
aWQgRHJhZ0RhdGE6OmFzRmlsZW5hbWVzKFZlY3RvcjxTdHJpbmc+JiByZXN1bHQpIGNvbnN0CiB7
CiAgICAgaWYgKG1fcGxhdGZvcm1EcmFnRGF0YSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luY2UvRHJhZ0RhdGFXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNFLmNwcAppbmRleCA2NzkyMjlkZDVmYzE3YjI1Y2U3ZDI3
ZTBiNjNiMmRlN2IxYjI2ZTAyLi5jYzVmN2E3YWFkMzFkNzczMTAwN2UwYTgwZGU5NzFiOTIzYmQ4
NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdp
bkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW5jZS9EcmFnRGF0YVdpbkNF
LmNwcApAQCAtNDcsNiArNDcsMTEgQEAgYm9vbCBEcmFnRGF0YTo6Y29udGFpbnNGaWxlcygpIGNv
bnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit1bnNpZ25lZCBEcmFnRGF0YTo6bnVtYmVyT2ZG
aWxlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgRHJhZ0RhdGE6OmFzRmls
ZW5hbWVzKFZlY3RvcjxTdHJpbmc+JikgY29uc3QKIHsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3d4L0RyYWdEYXRhV3guY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3gvRHJhZ0RhdGFXeC5jcHAKaW5kZXggYmUyNDA0MmQ0Nzg2ZDU4ZDQ0ZGVmYzMxODhlZDk5
NTZkNmNiMzA0OS4uODJlNDc0MGE0ZGQwN2I5NjYwMmQ0M2RlYTUxZDk5OTFhNjMxZDEwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3gvRHJhZ0RhdGFXeC5jcHAKQEAgLTQ3LDYgKzQ3LDEx
IEBAIGJvb2wgRHJhZ0RhdGE6OmNvbnRhaW5zRmlsZXMoKSBjb25zdAogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAordW5zaWduZWQgRHJhZ0RhdGE6Om51bWJlck9mRmlsZXMoKSBjb25zdAoreworICAg
IHJldHVybiAwOworfQorCiB2b2lkIERyYWdEYXRhOjphc0ZpbGVuYW1lcyhWZWN0b3I8U3RyaW5n
PiYgcmVzdWx0KSBjb25zdAogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCmluZGV4IDFiYTVkYWY0NzJhNDA2OWZmOTg3ZjJiNjMwMTVlYzAxY2FmYzY1MWUu
LjQ4ZmIzZTBhOThmM2FiMmFjMTU0MTViMDU3NWVmYWEzMDQwMGEwODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTUwLDYgKzUwLDcgQEAKICNpbmNs
dWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRyYWdEYXRhLmgiCiAjaW5jbHVkZSAi
RHJhZ1Njcm9sbFRpbWVyLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIKICNpbmNsdWRlICJF
ZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKICNpbmNsdWRlICJFeHRlbnNpb25z
M0QuaCIKQEAgLTIwNjcsMTEgKzIwNjgsMTMgQEAgV2ViRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1w
bDo6ZHJhZ1RhcmdldERyYWdFbnRlck9yT3Zlcihjb25zdCBXZWJQb2ludCYgY2xpZW50UG8KICAg
ICAgICAgc2NyZWVuUG9pbnQsCiAgICAgICAgIHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KG1f
b3BlcmF0aW9uc0FsbG93ZWQpKTsKIAotICAgIERyYWdPcGVyYXRpb24gZHJvcEVmZmVjdDsKKyAg
ICBEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbjsKICAgICBpZiAoZHJhZ0FjdGlvbiA9PSBEcmFnRW50
ZXIpCi0gICAgICAgIGRyb3BFZmZlY3QgPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdF
bnRlcmVkKCZkcmFnRGF0YSk7CisgICAgICAgIGRyYWdTZXNzaW9uID0gbV9wYWdlLT5kcmFnQ29u
dHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpOwogICAgIGVsc2UKLSAgICAgICAgZHJv
cEVmZmVjdCA9IG1fcGFnZS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRh
KTsKKyAgICAgICAgZHJhZ1Nlc3Npb24gPSBtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdV
cGRhdGVkKCZkcmFnRGF0YSk7CisKKyAgICBEcmFnT3BlcmF0aW9uIGRyb3BFZmZlY3QgPSBkcmFn
U2Vzc2lvbi5vcGVyYXRpb247CiAKICAgICAvLyBNYXNrIHRoZSBkcm9wIGVmZmVjdCBvcGVyYXRp
b24gYWdhaW5zdCB0aGUgZHJhZyBzb3VyY2UncyBhbGxvd2VkIG9wZXJhdGlvbnMuCiAgICAgaWYg
KCEoZHJvcEVmZmVjdCAmIGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAppbmRleCA0ZTdhZGE2
OTgwMjc2YWYyYmQ4NDBhNjE2YTJlZWQyY2VmNTkxNmUzLi44MDNhMThiZTFjZjdjYTM3NTg2Y2Fi
ZTdkY2Q4MWEyNjBlYjc3NmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCkBAIC00Nyw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiRHJhZ0NsaWVudEd0ay5oIgog
I2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ0RhdGEuaCIKKyNpbmNs
dWRlICJEcmFnU2Vzc2lvbi5oIgogI2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
IgogI2luY2x1ZGUgIkVkaXRvci5oIgogI2luY2x1ZGUgIkVkaXRvckNsaWVudEd0ay5oIgpAQCAt
MTQ0MSw3ICsxNDQyLDcgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19kcmFnX21v
dGlvbihHdGtXaWRnZXQqIHdpZGdldCwgR2RrRHJhZ0NvbnRleHQqIGMKICAgICBpZiAoIWRyYWdE
YXRhKQogICAgICAgICByZXR1cm4gVFJVRTsKIAotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9u
ID0gY29yZSh3ZWJWaWV3KS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEu
Z2V0KCkpOworICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gY29yZSh3ZWJWaWV3KS0+ZHJh
Z0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEuZ2V0KCkpLm9wZXJhdGlvbjsKICAg
ICBnZGtfZHJhZ19zdGF0dXMoY29udGV4dCwgZHJhZ09wZXJhdGlvblRvU2luZ2xlR2RrRHJhZ0Fj
dGlvbihvcGVyYXRpb24pLCB0aW1lKTsKICAgICByZXR1cm4gVFJVRTsKIH0KQEAgLTE0NTMsNyAr
MTQ1NCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19kcmFnX2RhdGFfcmVjZWl2ZWQo
R3RrV2lkZ2V0KiB3aWRnZXQsIEdka0RyYWdDb250ZXh0CiAgICAgaWYgKCFkcmFnRGF0YSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZp
ZXcpLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZChkcmFnRGF0YS5nZXQoKSk7CisgICAg
RHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBjb3JlKHdlYlZpZXcpLT5kcmFnQ29udHJvbGxlcigp
LT5kcmFnRW50ZXJlZChkcmFnRGF0YS5nZXQoKSkub3BlcmF0aW9uOwogICAgIGdka19kcmFnX3N0
YXR1cyhjb250ZXh0LCBkcmFnT3BlcmF0aW9uVG9TaW5nbGVHZGtEcmFnQWN0aW9uKG9wZXJhdGlv
biksIHRpbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMTlm
NzQ3NjlkZTljMzY4OTFlZjBhNGY4OGExNTcxNzVjY2ExOTIyYi4uMDg2NGZhOGVlOWVhZTUyNDI3
OGY3YjM2Y2EzOTM3NTMyYWRjOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQpAQCAtMTE3LDYgKzExNyw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Ry
YWdEYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0VkaXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudEhhbmRsZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRXhjZXB0aW9uSGFuZGxlcnMuaD4KQEAgLTM4NjQsNyArMzg2NSw3IEBAIHN0YXRp
YyBOU1N0cmluZyAqIGNvbnN0IHdpbmRvd0RpZENoYW5nZVJlc29sdXRpb25Ob3RpZmljYXRpb24g
PSBAIk5TV2luZG93RGlkQ2hhCiAgICAgSW50UG9pbnQgY2xpZW50KFtkcmFnZ2luZ0luZm8gZHJh
Z2dpbmdMb2NhdGlvbl0pOwogICAgIEludFBvaW50IGdsb2JhbChnbG9iYWxQb2ludChbZHJhZ2dp
bmdJbmZvIGRyYWdnaW5nTG9jYXRpb25dLCBbc2VsZiB3aW5kb3ddKSk7CiAgICAgRHJhZ0RhdGEg
ZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8RHJhZ09w
ZXJhdGlvbj4oW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2tdKSwgW3Nl
bGYgYXBwbGljYXRpb25GbGFnczpkcmFnZ2luZ0luZm9dKTsKLSAgICByZXR1cm4gY29yZShzZWxm
KS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKTsKKyAgICByZXR1cm4g
Y29yZShzZWxmKS0+ZHJhZ0NvbnRyb2xsZXIoKS0+ZHJhZ0VudGVyZWQoJmRyYWdEYXRhKS5vcGVy
YXRpb247CiB9CiAKIC0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxOU0Ry
YWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCkBAIC0zODc2LDcgKzM4NzcsNyBAQCBzdGF0aWMgTlNT
dHJpbmcgKiBjb25zdCB3aW5kb3dEaWRDaGFuZ2VSZXNvbHV0aW9uTm90aWZpY2F0aW9uID0gQCJO
U1dpbmRvd0RpZENoYQogICAgIEludFBvaW50IGNsaWVudChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5n
TG9jYXRpb25dKTsKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9pbnQoW2RyYWdnaW5nSW5m
byBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAgIERyYWdEYXRhIGRyYWdE
YXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PERyYWdPcGVyYXRp
b24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrXSksIFtzZWxmIGFw
cGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0gICAgcmV0dXJuIHBhZ2UtPmRyYWdDb250
cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSk7CisgICAgcmV0dXJuIHBhZ2UtPmRyYWdD
b250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkcmFnRGF0YSkub3BlcmF0aW9uOwogfQogCiAtICh2
b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuY3BwCmluZGV4IGJiMTQyNGY4YjViOWFhNGMxODNhNTIyNGYzMWJh
NjRkZTdkNTI0NDEuLjdlNjk2YzQzMGY4OTFjZTI3OTA4YjQxYjQ2ZDgwNTg1YjAzZDRkYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJE
cmFnQ2xpZW50UXQuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRy
YWdEYXRhLmgiCisjaW5jbHVkZSAiRHJhZ1Nlc3Npb24uaCIKICNpbmNsdWRlICJFZGl0b3IuaCIK
ICNpbmNsdWRlICJFZGl0b3JDbGllbnRRdC5oIgogI2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5o
IgpAQCAtOTkxLDcgKzk5Miw3IEBAIHZvaWQgUVdlYlBhZ2VQcml2YXRlOjpkcmFnRW50ZXJFdmVu
dChUKiBldikKICNpZm5kZWYgUVRfTk9fRFJBR0FORERST1AKICAgICBEcmFnRGF0YSBkcmFnRGF0
YShldi0+bWltZURhdGEoKSwgUVBvaW50Rihldi0+cG9zKCkpLnRvUG9pbnQoKSwKICAgICAgICAg
ICAgIFFDdXJzb3I6OnBvcygpLCBkcm9wQWN0aW9uVG9EcmFnT3AoZXYtPnBvc3NpYmxlQWN0aW9u
cygpKSk7Ci0gICAgUXQ6OkRyb3BBY3Rpb24gYWN0aW9uID0gZHJhZ09wVG9Ecm9wQWN0aW9uKHBh
Z2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdFbnRlcmVkKCZkcmFnRGF0YSkpOworICAgIFF0OjpE
cm9wQWN0aW9uIGFjdGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJvbGxl
cigpLT5kcmFnRW50ZXJlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAgICAgZXYtPnNldERyb3BB
Y3Rpb24oYWN0aW9uKTsKICAgICBldi0+YWNjZXB0UHJvcG9zZWRBY3Rpb24oKTsKICNlbmRpZgpA
QCAtMTAxMyw3ICsxMDE0LDcgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmRyYWdNb3ZlRXZlbnQo
VCAqZXYpCiAjaWZuZGVmIFFUX05PX0RSQUdBTkREUk9QCiAgICAgRHJhZ0RhdGEgZHJhZ0RhdGEo
ZXYtPm1pbWVEYXRhKCksIFFQb2ludEYoZXYtPnBvcygpKS50b1BvaW50KCksCiAgICAgICAgICAg
ICBRQ3Vyc29yOjpwb3MoKSwgZHJvcEFjdGlvblRvRHJhZ09wKGV2LT5wb3NzaWJsZUFjdGlvbnMo
KSkpOwotICAgIG1fbGFzdERyb3BBY3Rpb24gPSBkcmFnT3BUb0Ryb3BBY3Rpb24ocGFnZS0+ZHJh
Z0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRyYWdEYXRhKSk7CisgICAgbV9sYXN0RHJvcEFj
dGlvbiA9IGRyYWdPcFRvRHJvcEFjdGlvbihwYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnVXBk
YXRlZCgmZHJhZ0RhdGEpLm9wZXJhdGlvbik7CiAgICAgZXYtPnNldERyb3BBY3Rpb24obV9sYXN0
RHJvcEFjdGlvbik7CiAgICAgaWYgKG1fbGFzdERyb3BBY3Rpb24gIT0gUXQ6Oklnbm9yZUFjdGlv
bikKICAgICAgICAgZXYtPmFjY2VwdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA3YmQ3N2Yw
YjAyMjdhZGFjY2E4NTJkZjM5MDJkYWFhODNlNzJkOGY3Li44OWY1YTlkNTExNDkzOTgzMDM0ZDA5
NzMyYzllMjQ4MzkyOGE4ZWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNzgsNiArNzgsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRNYXJrZXJDb250cm9sbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EcmFnQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL0RyYWdTZXNzaW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9F
ZGl0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50SGFuZGxlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRXZlbnROYW1lcy5oPgpAQCAtNTA4NCw3ICs1MDg1LDcgQEAgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJWaWV3OjpEcmFnRW50ZXIoCiAgICAgOjpTY3JlZW5Ub0NsaWVudChtX3Zp
ZXdXaW5kb3csIChMUFBPSU5UKSZsb2NhbHB0KTsKICAgICBEcmFnRGF0YSBkYXRhKHBEYXRhT2Jq
ZWN0LCBJbnRQb2ludChsb2NhbHB0LngsIGxvY2FscHQueSksIAogICAgICAgICBJbnRQb2ludChw
dC54LCBwdC55KSwga2V5U3RhdGVUb0RyYWdPcGVyYXRpb24oZ3JmS2V5U3RhdGUpKTsKLSAgICAq
cGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRvRHJhZ0N1cnNvcihtX3BhZ2UtPmRyYWdDb250cm9s
bGVyKCktPmRyYWdFbnRlcmVkKCZkYXRhKSk7CisgICAgKnBkd0VmZmVjdCA9IGRyYWdPcGVyYXRp
b25Ub0RyYWdDdXJzb3IobV9wYWdlLT5kcmFnQ29udHJvbGxlcigpLT5kcmFnRW50ZXJlZCgmZGF0
YSkub3BlcmF0aW9uKTsKIAogICAgIG1fbGFzdERyb3BFZmZlY3QgPSAqcGR3RWZmZWN0OwogICAg
IG1fZHJhZ0RhdGEgPSBwRGF0YU9iamVjdDsKQEAgLTUxMDMsNyArNTEwNCw3IEBAIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6RHJhZ092ZXIoCiAgICAgICAgIDo6U2NyZWVuVG9D
bGllbnQobV92aWV3V2luZG93LCAoTFBQT0lOVCkmbG9jYWxwdCk7CiAgICAgICAgIERyYWdEYXRh
IGRhdGEobV9kcmFnRGF0YS5nZXQoKSwgSW50UG9pbnQobG9jYWxwdC54LCBsb2NhbHB0LnkpLCAK
ICAgICAgICAgICAgIEludFBvaW50KHB0LngsIHB0LnkpLCBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlv
bihncmZLZXlTdGF0ZSkpOwotICAgICAgICAqcGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRvRHJh
Z0N1cnNvcihtX3BhZ2UtPmRyYWdDb250cm9sbGVyKCktPmRyYWdVcGRhdGVkKCZkYXRhKSk7Cisg
ICAgICAgICpwZHdFZmZlY3QgPSBkcmFnT3BlcmF0aW9uVG9EcmFnQ3Vyc29yKG1fcGFnZS0+ZHJh
Z0NvbnRyb2xsZXIoKS0+ZHJhZ1VwZGF0ZWQoJmRhdGEpLm9wZXJhdGlvbik7CiAgICAgfSBlbHNl
CiAgICAgICAgICpwZHdFZmZlY3QgPSBEUk9QRUZGRUNUX05PTkU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weQppbmRleCA2Y2M1MzE2NWFjMzYyYjVkYTUzOTQx
NWQ5Y2RiMzhkOWM4MmY1NTdiLi45ZTlkNmMzYmVlNGQxZTJlOTA2ZTcwZWNjMTBmYmY4Y2ZlYjcw
NzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CkBAIC0x
NzAsNiArMTcwLDcgQEAgZGVmIHN0cnVjdF9vcl9jbGFzcyhuYW1lc3BhY2UsIHR5cGUpOgogICAg
ICAgICAnV2ViQ29yZTo6QW5pbWF0aW9uJywKICAgICAgICAgJ1dlYkNvcmU6OkVkaXRvckNvbW1h
bmRzRm9yS2V5RXZlbnQnLAogICAgICAgICAnV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUn
LAorICAgICAgICAnV2ViQ29yZTo6RHJhZ1Nlc3Npb24nLAogICAgICAgICAnV2ViQ29yZTo6Rmxv
YXRQb2ludDNEJywKICAgICAgICAgJ1dlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3MnLAogICAg
ICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IGY0MzE0MTBhNzAyNGEzYzFiZjgwMzY0
NzAzNjE5MjUyMWE2NTYzZTkuLjY3MDAwZTBlMTg3Y2IxZjdiMjlhZThmMTNiODU3ODhlZWEyOTJh
YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9DcmVkZW50aWFsLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9DdXJzb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RhdGFiYXNlRGV0
YWlscy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZUNob29zZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgpAQCAtNjA0LDYgKzYwNSwyNCBAQCBib29sIEFy
Z3VtZW50Q29kZXI8VGV4dENoZWNraW5nUmVzdWx0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rlciog
ZGVjb2RlciwgVGV4dENoZQogICAgIHJldHVybiB0cnVlOwogfQogCit2b2lkIEFyZ3VtZW50Q29k
ZXI8RHJhZ1Nlc3Npb24+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBE
cmFnU2Vzc2lvbiYgcmVzdWx0KQoreworICAgIGVuY29kZXItPmVuY29kZUVudW0ocmVzdWx0Lm9w
ZXJhdGlvbik7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5tb3VzZUlzT3ZlckZpbGVJbnB1
dCk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc3VsdC5udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVk
KTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPERyYWdTZXNzaW9uPjo6ZGVjb2RlKEFyZ3VtZW50
RGVjb2RlciogZGVjb2RlciwgRHJhZ1Nlc3Npb24mIHJlc3VsdCkKK3sKKyAgICBpZiAoIWRlY29k
ZXItPmRlY29kZUVudW0ocmVzdWx0Lm9wZXJhdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubW91c2VJc092ZXJGaWxlSW5wdXQpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm51
bWJlck9mSXRlbXNUb0JlQWNjZXB0ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIHRydWU7Cit9CisKICNpZiBQTEFURk9STShRVCkKIAogdm9pZCBBcmd1bWVudENvZGVyPEZs
b2F0UG9pbnQzRD46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IEZsb2F0
UG9pbnQzRCYgZmxvYXRQb2ludDNEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5oCmluZGV4IGFjZTVkOWQ2MTU5NGJmYTA3MjRiZGY3YjAxNjcyYTAyMzE1
NGM4YjQuLmU3NmYzYWZkNThkODczYTQyNjUyMmNiYWFjNjMwNzg0NjA1YjM0MTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTQ3LDYgKzQ3
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKICAg
ICBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogICAgIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGlu
ZTsKKyAgICBzdHJ1Y3QgRHJhZ1Nlc3Npb247CiAgICAgc3RydWN0IEZpbGVDaG9vc2VyU2V0dGlu
Z3M7CiAgICAgc3RydWN0IEdyYW1tYXJEZXRhaWw7CiAgICAgc3RydWN0IE1pbWVDbGFzc0luZm87
CkBAIC0yMTMsNiArMjE0LDExIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVzdWx0PiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3Vt
ZW50RW5jb2RlciosIGNvbnN0IFdlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCYpOwogICAgIHN0
YXRpYyBib29sIGRlY29kZShBcmd1bWVudERlY29kZXIqLCBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdS
ZXN1bHQmKTsKIH07CisgICAgCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNv
cmU6OkRyYWdTZXNzaW9uPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2Rl
ciosIGNvbnN0IFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KEFyZ3VtZW50RGVjb2RlciosIFdlYkNvcmU6OkRyYWdTZXNzaW9uJik7Cit9OwogCiAjaWYgUExB
VEZPUk0oUVQpCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkZsb2F0
UG9pbnQzRD4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmlu
ZGV4IGRlYjFkMDY3NTEzMDNkNzg5OWMzYzAzOGFlMmNjMmI0MGFmYjkyNDQuLmJjY2Y2ODlmMWE4
M2E1YWZhNThjNDFhMTJjZTIwZTliMGM1NzNiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNpbXBvcnQgPFdlYkNvcmUv
Q29sb3JNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRHJhZ0RhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNp
bXBvcnQgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTU4Niw3ICsxNTg3LDkgQEAg
c3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcs
IFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICBJbnRQb2ludCBnbG9iYWwoZ2xvYmFsUG9pbnQo
W2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93XSkpOwogICAgIERy
YWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0
PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNr
XSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7CiAgICAgX2RhdGEtPl9w
YWdlLT5kcmFnVXBkYXRlZCgmZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVi
b2FyZF0gbmFtZV0pOwotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYWdPcGVyYXRpb24oKTsK
KyAgICAKKyAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbiA9IF9kYXRhLT5fcGFn
ZS0+ZHJhZ1Nlc3Npb24oKTsKKyAgICByZXR1cm4gZHJhZ1Nlc3Npb24ub3BlcmF0aW9uOwogfQog
CiAtICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5m
bwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2NGY2MDMy
OWM2ZDZjYmE1Mzg1MzY2ZTAzZDUzNzhkNDc1MzA0MDYzLi45ZDAwMzMzNGFjMDgwNzVhMDcyNjNm
MjBmY2E3N2UzMmRiMGYyOWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNzEsNyArNzEsOSBAQAogI2luY2x1ZGUgIldlYlByb3RlY3Rpb25TcGFjZS5o
IgogI2luY2x1ZGUgIldlYlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV2ViVVJMUmVxdWVz
dC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0RyYWdEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0RpcmVjdGlv
bi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgpAQCAtMTgxLDcgKzE4
Myw3IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQs
IFBhc3NSZWZQdHI8V2ViUHJvY2Vzc1Byb3h5PiBwCiAgICAgLCBtX2hhc1NwZWxsRG9jdW1lbnRU
YWcoZmFsc2UpCiAgICAgLCBtX3BlbmRpbmdMZWFybk9ySWdub3JlV29yZE1lc3NhZ2VDb3VudCgw
KQogICAgICwgbV9tYWluRnJhbWVIYXNDdXN0b21SZXByZXNlbnRhdGlvbihmYWxzZSkKLSAgICAs
IG1fY3VycmVudERyYWdPcGVyYXRpb24oRHJhZ09wZXJhdGlvbk5vbmUpCisgICAgLCBtX2N1cnJl
bnREcmFnU2Vzc2lvbigpCiAgICAgLCBtX21haW5GcmFtZUhhc0hvcml6b250YWxTY3JvbGxiYXIo
ZmFsc2UpCiAgICAgLCBtX21haW5GcmFtZUhhc1ZlcnRpY2FsU2Nyb2xsYmFyKGZhbHNlKQogICAg
ICwgbV9tYWluRnJhbWVJc1Bpbm5lZFRvTGVmdFNpZGUoZmFsc2UpCkBAIC04NTAsOSArODUyLDkg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihEcmFnQ29u
dHJvbGxlckFjdGlvbiBhY3Rpb24sIERyYWcKICNlbmRpZgogfQogCi12b2lkIFdlYlBhZ2VQcm94
eTo6ZGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90IHJlc3VsdE9wZXJhdGlv
bikKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oV2Vi
Q29yZTo6RHJhZ1Nlc3Npb24gZHJhZ1Nlc3Npb24pCiB7Ci0gICAgbV9jdXJyZW50RHJhZ09wZXJh
dGlvbiA9IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KHJlc3VsdE9wZXJhdGlvbik7CisgICAg
bV9jdXJyZW50RHJhZ1Nlc3Npb24gPSBkcmFnU2Vzc2lvbjsKIH0KIAogI2lmIFBMQVRGT1JNKFFU
KSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
aW5kZXggN2RlODViMjI3YzA0N2Q3YTY5YjA5NmJlNmVmNzNkMjUyZGJhNGQ2ZC4uMWNmOTM5YjEy
ZDk4YmYwNWU5NzljN2RmNTNiZWFiMTI3OWFmMzdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtNTQsNiArNTQsNyBAQAogI2luY2x1ZGUgIldlYlJlc291cmNl
TG9hZENsaWVudC5oIgogI2luY2x1ZGUgIldlYlVJQ2xpZW50LmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9EcmFnQWN0aW9ucy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNs
dWRlIDxXZWJDb3JlL0hpdFRlc3RSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
U2NyZWVuLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgpAQCAtNDY3LDcgKzQ2
OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRyYWdFeGl0ZWQoV2ViQ29yZTo6RHJhZ0RhdGEqLCBj
b25zdCBTdHJpbmcmIGRyYWdTdG9yYWdlTmFtZSA9IFN0cmluZygpKTsKICAgICB2b2lkIHBlcmZv
cm1EcmFnKFdlYkNvcmU6OkRyYWdEYXRhKiwgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUs
IGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYpOwogCi0gICAgdm9pZCBkaWRQZXJmb3Jt
RHJhZ0NvbnRyb2xsZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKTsKKyAgICB2b2lk
IGRpZFBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbik7CiAg
ICAgdm9pZCBkcmFnRW5kZWQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIGNsaWVudFBvc2l0aW9u
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IG9wZXJh
dGlvbik7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0RHJhZ0ltYWdlKGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmIGRyYWdJbWFnZUhhbmRsZSwgYm9vbCBpc0xpbmtEcmFnKTsKQEAgLTUwNSw4ICs1MDYs
OCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVmFsaWQoKTsKICAgICAKLSAgICBXZWJDb3JlOjpE
cmFnT3BlcmF0aW9uIGRyYWdPcGVyYXRpb24oKSB7IHJldHVybiBtX2N1cnJlbnREcmFnT3BlcmF0
aW9uOyB9Ci0gICAgdm9pZCByZXNldERyYWdPcGVyYXRpb24oKSB7IG1fY3VycmVudERyYWdPcGVy
YXRpb24gPSBXZWJDb3JlOjpEcmFnT3BlcmF0aW9uTm9uZTsgfQorICAgIFdlYkNvcmU6OkRyYWdT
ZXNzaW9uIGRyYWdTZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9jdXJyZW50RHJhZ1Nlc3Npb247
IH0KKyAgICB2b2lkIHJlc2V0RHJhZ09wZXJhdGlvbigpIHsgbV9jdXJyZW50RHJhZ1Nlc3Npb24g
PSBXZWJDb3JlOjpEcmFnU2Vzc2lvbigpOyB9CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hh
bmdlKCk7CiAKQEAgLTkyNCw3ICs5MjUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fcGVu
ZGluZ0xlYXJuT3JJZ25vcmVXb3JkTWVzc2FnZUNvdW50OwogCiAgICAgYm9vbCBtX21haW5GcmFt
ZUhhc0N1c3RvbVJlcHJlc2VudGF0aW9uOwotICAgIFdlYkNvcmU6OkRyYWdPcGVyYXRpb24gbV9j
dXJyZW50RHJhZ09wZXJhdGlvbjsKKyAgICBXZWJDb3JlOjpEcmFnU2Vzc2lvbiBtX2N1cnJlbnRE
cmFnU2Vzc2lvbjsKIAogICAgIFN0cmluZyBtX3BlbmRpbmdBUElSZXF1ZXN0VVJMOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCA4MmI5NjFjYTYxYTYxOGVmZTE5OTdkN2FhZWQxMzYxYzVmZjIyNDY3Li4zZDg1MGI5MDE1ZGRh
YWI0OGQyYmRkNjc1OWNmNmM5YTA4MWEyZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTIwNSw3ICsyMDUsNyBAQCBtZXNz
YWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIElnbm9yZVdvcmQoV1RGOjpTdHJpbmcgd29yZCk7
CiAKICAgICAjIERyYWcgYW5kIGRyb3AgbWVzc2FnZXMKLSAgICBEaWRQZXJmb3JtRHJhZ0NvbnRy
b2xsZXJBY3Rpb24odWludDY0X3QgcmVzdWx0T3BlcmF0aW9uKQorICAgIERpZFBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbihXZWJDb3JlOjpEcmFnU2Vzc2lvbiBkcmFnU2Vzc2lvbikKICNpZiBQ
TEFURk9STShNQUMpCiAgICAgU2V0RHJhZ0ltYWdlKFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBv
c2l0aW9uLCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlIGRyYWdJbWFnZSwgYm9vbCBs
aW5rRHJhZykKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViVmlldy5jcHAK
aW5kZXggYTA3YWU3NjFjODBlNTMyMDJhM2RjMTYyM2FmOGUzNjVlNTU0MjYxNy4uYThkMTViMzI5
OTgyMWUwZmIzMjQ0NmQ1MGUwOTNmZTNiODA2ZWM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3Mvd2luL1dlYlZpZXcuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8Q29tbWN0cmwu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0JpdG1hcEluZm8uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0N1
cnNvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ1Nlc3Npb24uaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0VkaXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaWYgVVNFKENH
KQpAQCAtMTY0MSw3ICsxNjQyLDcgQEAgV2ViQ29yZTo6RHJhZ09wZXJhdGlvbiBXZWJWaWV3Ojpr
ZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihEV09SRCBncmZLZXlTdGF0ZSkgY29uc3QKICAgICAvLyBJ
RHJvcFRhcmdldDo6RHJhZ092ZXIuIE5vdGUsIGdyZktleVN0YXRlIGlzIHRoZSBjdXJyZW50IAog
ICAgIC8vIHN0YXRlIG9mIHRoZSBrZXlib2FyZCBtb2RpZmllciBrZXlzIG9uIHRoZSBrZXlib2Fy
ZC4gU2VlOgogICAgIC8vIDxodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkv
bXM2ODAxMjkoVlMuODUpLmFzcHg+LgotICAgIERyYWdPcGVyYXRpb24gb3BlcmF0aW9uID0gbV9w
YWdlLT5kcmFnT3BlcmF0aW9uKCk7CisgICAgRHJhZ09wZXJhdGlvbiBvcGVyYXRpb24gPSBtX3Bh
Z2UtPmRyYWdTZXNzaW9uKCkub3BlcmF0aW9uOwogCiAgICAgaWYgKChncmZLZXlTdGF0ZSAmIChN
S19DT05UUk9MIHwgTUtfU0hJRlQpKSA9PSAoTUtfQ09OVFJPTCB8IE1LX1NISUZUKSkKICAgICAg
ICAgb3BlcmF0aW9uID0gRHJhZ09wZXJhdGlvbkxpbms7CkBAIC0xNjY1LDcgKzE2NjYsNyBAQCBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OkRyYWdFbnRlcihJRGF0YU9iamVjdCog
cERhdGFPYmplY3QsIERXT1JEIGdyZgogICAgIDo6U2NyZWVuVG9DbGllbnQobV93aW5kb3csIChM
UFBPSU5UKSZsb2NhbHB0KTsKICAgICBEcmFnRGF0YSBkYXRhKHBEYXRhT2JqZWN0LCBJbnRQb2lu
dChsb2NhbHB0LngsIGxvY2FscHQueSksIEludFBvaW50KHB0LngsIHB0LnkpLCBrZXlTdGF0ZVRv
RHJhZ09wZXJhdGlvbihncmZLZXlTdGF0ZSkpOwogICAgIG1fcGFnZS0+ZHJhZ0VudGVyZWQoJmRh
dGEpOwotICAgICpwZHdFZmZlY3QgPSBkcmFnT3BlcmF0aW9uVG9EcmFnQ3Vyc29yKG1fcGFnZS0+
ZHJhZ09wZXJhdGlvbigpKTsKKyAgICAqcGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRvRHJhZ0N1
cnNvcihtX3BhZ2UtPmRyYWdTZXNzaW9uKCkub3BlcmF0aW9uKTsKIAogICAgIG1fbGFzdERyb3BF
ZmZlY3QgPSAqcGR3RWZmZWN0OwogICAgIG1fZHJhZ0RhdGEgPSBwRGF0YU9iamVjdDsKQEAgLTE2
ODMsNyArMTY4NCw3IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6RHJhZ092
ZXIoRFdPUkQgZ3JmS2V5U3RhdGUsIFBPSU5UTCBwdCwgRFdPUkQqCiAgICAgICAgIDo6U2NyZWVu
VG9DbGllbnQobV93aW5kb3csIChMUFBPSU5UKSZsb2NhbHB0KTsKICAgICAgICAgRHJhZ0RhdGEg
ZGF0YShtX2RyYWdEYXRhLmdldCgpLCBJbnRQb2ludChsb2NhbHB0LngsIGxvY2FscHQueSksIElu
dFBvaW50KHB0LngsIHB0LnkpLCBrZXlTdGF0ZVRvRHJhZ09wZXJhdGlvbihncmZLZXlTdGF0ZSkp
OwogICAgICAgICBtX3BhZ2UtPmRyYWdVcGRhdGVkKCZkYXRhKTsKLSAgICAgICAgKnBkd0VmZmVj
dCA9IGRyYWdPcGVyYXRpb25Ub0RyYWdDdXJzb3IobV9wYWdlLT5kcmFnT3BlcmF0aW9uKCkpOwor
ICAgICAgICAqcGR3RWZmZWN0ID0gZHJhZ09wZXJhdGlvblRvRHJhZ0N1cnNvcihtX3BhZ2UtPmRy
YWdTZXNzaW9uKCkub3BlcmF0aW9uKTsKICAgICB9IGVsc2UKICAgICAgICAgKnBkd0VmZmVjdCA9
IERST1BFRkZFQ1RfTk9ORTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCmluZGV4IDUzOTVlYTM3M2YwNTgzMDUwODE1M2QwYmE0OGIzNzYzYjg5NTU4
NzYuLmI5ZjdjNjZlZDFkZTc4Mjg2ZmU5NmU2NGFhYWIwZmRiYzJmMTFlNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTc5LDYgKzc5LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50TWFya2VyQ29udHJvbGxlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRHJhZ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdEYXRh
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9EcmFnU2Vzc2lvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnRIYW5kbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0Zvcm1TdGF0ZS5oPgpAQCAtMTgxNSw3ICsxODE2LDcgQEAgYm9vbCBX
ZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldnQpCiB2
b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24s
IFdlYkNvcmU6OkludFBvaW50IGNsaWVudFBvc2l0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBnbG9i
YWxQb3NpdGlvbiwgdWludDY0X3QgZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrLCBjb25zdCBX
ZWJDb3JlOjpEcmFnRGF0YU1hcCYgZGF0YU1hcCwgdWludDMyX3QgZmxhZ3MpCiB7CiAgICAgaWYg
KCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJm
b3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5vbmUpKTsKKyAgICAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24o
RHJhZ1Nlc3Npb24oKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTE4NDYsNyArMTg0
Nyw3IEBAIHZvaWQgV2ViUGFnZTo6cGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKHVpbnQ2NF90
IGFjdGlvbiwgV2ViQ29yZTo6SW50UG9pbnQgY2xpCiB2b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFn
Q29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdE
YXRhKQogewogICAgIGlmICghbV9wYWdlKSB7Ci0gICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkUGVyZm9ybURyYWdDb250cm9sbGVyQWN0aW9uKERyYWdPcGVyYXRpb25Ob25l
KSk7CisgICAgICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybURyYWdD
b250cm9sbGVyQWN0aW9uKERyYWdTZXNzaW9uKCkpKTsKICNpZiBQTEFURk9STShRVCkKICAgICAg
ICAgUU1pbWVEYXRhKiBkYXRhID0gY29uc3RfY2FzdDxRTWltZURhdGEqPihkcmFnRGF0YS5wbGF0
Zm9ybURhdGEoKSk7CiAjZWxpZiBQTEFURk9STShHVEspCkBAIC0xODkwLDcgKzE4OTEsNyBAQCB2
b2lkIFdlYlBhZ2U6OnBlcmZvcm1EcmFnQ29udHJvbGxlckFjdGlvbih1aW50NjRfdCBhY3Rpb24s
IFdlYkNvcmU6OkRyYWdEYXRhIGRyYQogdm9pZCBXZWJQYWdlOjpwZXJmb3JtRHJhZ0NvbnRyb2xs
ZXJBY3Rpb24odWludDY0X3QgYWN0aW9uLCBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnRQb3NpdGlv
biwgV2ViQ29yZTo6SW50UG9pbnQgZ2xvYmFsUG9zaXRpb24sIHVpbnQ2NF90IGRyYWdnaW5nU291
cmNlT3BlcmF0aW9uTWFzaywgY29uc3QgU3RyaW5nJiBkcmFnU3RvcmFnZU5hbWUsIHVpbnQzMl90
IGZsYWdzLCBjb25zdCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25I
YW5kbGUpCiB7CiAgICAgaWYgKCFtX3BhZ2UpIHsKLSAgICAgICAgc2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRQZXJmb3JtRHJhZ0NvbnRyb2xsZXJBY3Rpb24oRHJhZ09wZXJhdGlvbk5v
bmUpKTsKKyAgICAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtRHJh
Z0NvbnRyb2xsZXJBY3Rpb24oRHJhZ1Nlc3Npb24oKSkpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggZTZiYzVjZDAyNTliYmFkMDAyZDg2ZGY5ZjQyMWJhODMzNjc5YjRkYy4uNmMw
ODIwOGViYjBlZmM0NjFmMGM4MmM3OTJmODc4YzRlMDQ5MjFmNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDExLTExLTAyICBKb24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KKworICAgICAgICBF
eHBhbmQgRHJhZ0NvbnRyb2xsZXIgdG8gcHJvdmlkZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRo
ZSBkcmFnZ2luZyBzZXNzaW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTMyNAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTAzNzkxNzU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bh
c3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLmpzOgorICAgICAg
ICAocnVuVGVzdCk6IENoYW5nZSB0aGUgZXhwZWN0ZWQgYmVoYXZpb3Igb2YgdGhlIHRlc3QtLSBk
cmFnZ2luZyBhIGZpbGUgb3ZlciBhIGRpc2FibGVkCisgICAgICAgIGNvbnRyb2wgc2hvdWxkIG5v
dCBsb2FkIHRoYXQgZmlsZS4gSW5zdGVhZCwgdGhlIGZpbGUgc2hvdWxkIGJlIGlnbm9yZWQsIGFu
ZCB0aGUgcGFnZQorICAgICAgICByZW1haW5zIGFzIGlzLgorCiAyMDExLTExLTAyICBaYW4gRG9i
ZXJzZWsgIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CiAKICAgICAgICAgW0dUS10gVmlzaXRlZCBs
aW5rcyBvZiBhIHBhZ2UgZ3JvdXAgc2hvdWxkIGJlIHJlbW92ZWQgd2hlbiBjbGVhcmluZyBiYWNr
L2ZvcndhcmQgbGlzdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
L3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9zY3JpcHQtdGVzdHMvZmlsZS1pbnB1dC1maWxlcy1hY2Nlc3MuanMK
aW5kZXggOTdhZmY2MGRhZTA0ZmExODMzNTMwMjVlZWY5ZTY1NzlhMzg4YTE1My4uOTA0M2FiMGJk
ZmFjMTQwMzg0ZDU5MjlkMDg3YTgwMjkzNmQzMTZhNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NjcmlwdC10ZXN0cy9maWxlLWlucHV0LWZpbGVzLWFjY2Vzcy5q
cworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc2NyaXB0LXRlc3RzL2ZpbGUt
aW5wdXQtZmlsZXMtYWNjZXNzLmpzCkBAIC0xMTAsMjIgKzExMCwxMiBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkKIAogICAgIGRlYnVnKCJEcmFnZ2luZyB0byBhIGRpc2FibGVkIGZpbGUgaW5wdXQgY29u
dHJvbDoiKTsKICAgICBmaWxlSW5wdXQuZGlzYWJsZWQgPSB0cnVlOwotICAgIHdpbmRvdy5vbmJl
Zm9yZXVubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICAvLyBTaW5jZSB0aGUgZHJvcCB0cmln
Z2VyZWQgYSBuYXZpZ2F0aW9uLCB2ZXJpZnkgdGhlIHByb3BlcnRpZXMgb2YgdGhlIGZpbGUgaW5w
dXQgaGVyZS4KLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJmaWxlSW5wdXQudmFsdWUi
LCAiIik7Ci0gICAgICAgIGZpbGVzU2hvdWxkQmUoW10pOwotICAgICAgICBzaG91bGRCZVRydWUo
InN1Y2Nlc3NmdWxseVBhcnNlZCIpOwotICAgICAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9
InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Ci0KLSAgICAgICAgLy8gQ2xlYW4gdXAgYWZ0
ZXIgb3Vyc2VsdmVzCi0gICAgICAgIGZpbGVJbnB1dC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGZp
bGVJbnB1dCk7CisgICAgZHJhZ2dpbmdQYXRoc1Nob3VsZFJlc3VsdEluRmlsZXMoWydEUlRGYWtl
RmlsZSddLCBbXSk7CiAKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIC8vIENsZWFuIHVwIGFmdGVyIG91cnNlbHZlcworICAgIGZpbGVJbnB1dC5wYXJlbnRO
b2RlLnJlbW92ZUNoaWxkKGZpbGVJbnB1dCk7CiAKLSAgICAgICAgd2luZG93Lm9uYmVmb3JldW5s
b2FkID0gbnVsbDsKLSAgICB9OwotICAgIGRyYWdnaW5nUGF0aHNTaG91bGRSZXN1bHRJbkZpbGVz
KFsnRFJURmFrZUZpbGUnXSwgW10pOwotICAgIHRlc3RGYWlsZWQoIlRoZSBmaW5hbCB0ZXN0IGNh
c2Ugc2hvdWxkIGhhdmUgcmVzdWx0ZWQgaW4gbmF2aWdhdGlvbiIpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRy
dWU7Cg==
</data>
<flag name="review"
          id="111720"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>