<?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>82154</bug_id>
          
          <creation_ts>2012-03-25 17:32:47 -0700</creation_ts>
          <short_desc>[chromium] Route monotonic clock up from compositor</short_desc>
          <delta_ts>2012-03-27 20:16:20 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>81479</blocked>
    
    <blocked>81740</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Nat Duca">nduca</reporter>
          <assigned_to name="Nat Duca">nduca</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>587383</commentid>
    <comment_count>0</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 17:32:47 -0700</bug_when>
    <thetext>[chromium] Route monotonic clock and willBeginFrame notification up from compositor</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587384</commentid>
    <comment_count>1</comment_count>
      <attachid>133704</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 17:33:10 -0700</bug_when>
    <thetext>Created attachment 133704
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587386</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-25 17:36:28 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587387</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-25 17:36:51 -0700</bug_when>
    <thetext>Attachment 133704 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebCore/ChangeLog:8:  You should remove the &apos;No new tests&apos; and either add and list tests, or explain why no new tests were possible.  [changelog/nonewtests] [5]
Total errors found: 1 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587390</commentid>
    <comment_count>4</comment_count>
      <attachid>133706</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 17:46:20 -0700</bug_when>
    <thetext>Created attachment 133706
oops</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587391</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 17:49:19 -0700</bug_when>
    <thetext>This patch provides infrastructure for two bugfixes:
1. It has the WebViewImpl tick fling animations with the monotonic clock. This allows b81479 to then do fling transfer without having to convert the timestamp. This in turn makes the unit test for that that feature easier.

2. It adds a notification to the WebViewImpl for willBeginFrame. This provides infrastructure to fix PDF rendering in threaded mode.

As part of doing this, I made WebLayerTreeHostImpl stop deriving from CCLayerTreeHost and instead (a) own a CCLayerTreeHost and (b) use an adapter class for its callbacks. While this requires more typing, it is I think more maintainable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587480</commentid>
    <comment_count>6</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 23:30:31 -0700</bug_when>
    <thetext>Moving willBeginFrame changes to standalone cl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587491</commentid>
    <comment_count>7</comment_count>
      <attachid>133735</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-25 23:38:09 -0700</bug_when>
    <thetext>Created attachment 133735
Remove willBeginFrame code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588129</commentid>
    <comment_count>8</comment_count>
      <attachid>133735</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-26 14:30:35 -0700</bug_when>
    <thetext>Comment on attachment 133735
Remove willBeginFrame code

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

Left various comments inline, but I think overall our lives will be simpler if we keep wall clock time concerns out of the compositor where possible (for example the CSS animation API doesn&apos;t let us do that, but RAF would I think).

&gt; Source/Platform/chromium/public/WebLayerTreeView.h:145
&gt; +    // FIXME: remove default arugment on monotonicFrameBeginTime when upstream dependencies are resolved.

there aren&apos;t any upstream dependencies or upstream implementations of WebLayerTreeView, so you don&apos;t need a default param or anything like that

&gt; Source/Platform/chromium/public/WebLayerTreeViewClient.h:41
&gt; +    virtual void updateAnimations(double frameBeginTime) { }
&gt; +    virtual void updateAnimations(double wallClockFrameBeginTime, double monotonicFrameBeginTime) { }

instead of having 2 versions can we just change the parameter value to be the monotonic clock and have WebViewImpl get a currentTime()-based value for RAF? we aren&apos;t doing anything terribly clever with the time value (like adjusting it for latency or expected frame delivery timer or anything)

&gt; Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp:402
&gt; +    m_pendingBeginFrameRequest-&gt;wallClockFrameBeginTime = currentTime();

should the proxy have to know about the wall clock time at all? it seems equally valid to say that wall clock time for RAF is a WebViewImpl-specific thing and make it deal with generating the right time value. the overall direction we want to go in is to pass a monotonic clock into WebCore and have it figure out what the correct value for each Frame is, right?

&gt; Source/WebKit/chromium/src/WebLayerTreeViewImpl.cpp:193
&gt; +    // FIXME: Remove this once upstream embedders pass monotonicFrameBeginTime
&gt; +    if (!monotonicFrameBeginTime)
&gt; +        monotonicFrameBeginTime = monotonicallyIncreasingTime();

don&apos;t need this, the only implementation of WebLayerTreeView is this one

&gt; Source/WebKit/chromium/src/WebLayerTreeViewImpl.h:37
&gt; +class CCLayerTreeHostClientToWebLayerTreeViewClientAdapter;

i think if you make this a private inner class you can use a shorter class name and put the forward decl next to the use in the private section instead of up here

&gt; Source/WebKit/chromium/src/WebLayerTreeViewImpl.h:41
&gt; +    virtual ~WebLayerTreeViewImpl();

it looks like this class doesn&apos;t need a vtable, so do we need a virtual d&apos;tor?

&gt; Source/WebKit/chromium/src/WebLayerTreeViewImpl.h:62
&gt; +    WebLayerTreeViewImpl(WebLayerTreeViewClient*);

explicit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589462</commentid>
    <comment_count>9</comment_count>
      <attachid>133735</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-27 17:02:25 -0700</bug_when>
    <thetext>Comment on attachment 133735
Remove willBeginFrame code

(r- just to take this out of the pending-review queue, I think Nat and I are in agreement to go another round on this)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589487</commentid>
    <comment_count>10</comment_count>
      <attachid>134178</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-27 17:24:53 -0700</bug_when>
    <thetext>Created attachment 134178
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589488</commentid>
    <comment_count>11</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-27 17:25:10 -0700</bug_when>
    <thetext>Moved WLTVI refactoring to another patch. This is the newer and lighter routing change. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589505</commentid>
    <comment_count>12</comment_count>
      <attachid>134178</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-27 17:37:13 -0700</bug_when>
    <thetext>Comment on attachment 134178
Patch

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

Me likey

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1338
&gt; +    dobule monotonicFrameBeginTime;

nit: can you initialize this explicitly to make the behavior more predictable if someone accidentally refactors the code below to no longer set the value? local variables of primitive types have bitten us a few times before

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1341
&gt; +    else {

pretty sure there are no callers to this function with a non-zero value, so this is a bit theoretical. rather than shifting might be simpler to just grab monotonicallyIncreasingTime() here no matter what</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589531</commentid>
    <comment_count>13</comment_count>
      <attachid>134178</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 18:13:24 -0700</bug_when>
    <thetext>Comment on attachment 134178
Patch

Attachment 134178 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12145862</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589532</commentid>
    <comment_count>14</comment_count>
      <attachid>134178</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-03-27 18:14:26 -0700</bug_when>
    <thetext>Comment on attachment 134178
Patch

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

&gt;&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:1338
&gt;&gt; +    dobule monotonicFrameBeginTime;
&gt; 
&gt; nit: can you initialize this explicitly to make the behavior more predictable if someone accidentally refactors the code below to no longer set the value? local variables of primitive types have bitten us a few times before

also dobule -&gt; double</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589603</commentid>
    <comment_count>15</comment_count>
      <attachid>134202</attachid>
    <who name="Nat Duca">nduca</who>
    <bug_when>2012-03-27 19:36:17 -0700</bug_when>
    <thetext>Created attachment 134202
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589626</commentid>
    <comment_count>16</comment_count>
      <attachid>134202</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 20:16:14 -0700</bug_when>
    <thetext>Comment on attachment 134202
Patch for landing

Clearing flags on attachment: 134202

Committed r112360: &lt;http://trac.webkit.org/changeset/112360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>589627</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 20:16:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133704</attachid>
            <date>2012-03-25 17:33:10 -0700</date>
            <delta_ts>2012-03-25 17:46:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82154-20120325173309.patch</filename>
            <type>text/plain</type>
            <size>30963</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwMzRkYTRhYTU1MzA5
MmFlNTdkOTIzZWI3YjQyYTA0NjQ4ZjNiYTc0Li5mYTVlZWZjYTY2YTZjODI4ODNiOTM4MjU5Y2Iw
YTQzODAxYTU2YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMy0yNSAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0
ZSBtb25vdG9uaWMgY2xvY2sgYW5kIHdpbGxCZWdpbkZyYW1lIG5vdGlmaWNhdGlvbiB1cCBmcm9t
IGNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXcpOgorICAgICAgICAqIGNocm9taXVtL3B1Ymxp
Yy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3Q2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbEJlZ2lu
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50Ojp1cGRhdGVB
bmltYXRpb25zKToKKwogMjAxMi0wMy0yMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gcmVuYW1lIG5ld3d0ZiB0YXJnZXQgYmFjayB0byB3dGYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDhjYWM4ZTRjMzJjNWNmMGM0OGVhODdiMzAxMDY5MTU5MGIzNTIwLi5l
YmRkOTczZDViNGM0MzQ1OTEyZjUzNmY0NWQ0ODI0NGI1YjlmN2RhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjYgQEAKKzIwMTItMDMtMjUgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gUm91dGUgbW9ub3RvbmljIGNsb2NrIGFuZCB3aWxsQmVnaW5G
cmFtZSBub3RpZmljYXRpb24gdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6d2lsbEJlZ2luRnJhbWUpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0
ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXllclRyZWVIb3N0Q2xpZW50KToKKyAgICAg
ICAgKENDTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RocmVhZFByb3h5
OjpzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFk
UHJveHk6OmJlZ2luRnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OkJl
Z2luRnJhbWVBbmRDb21taXRTdGF0ZTo6QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlKToKKyAgICAg
ICAgKEJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZSk6CisKIDIwMTItMDMtMjQgIEplc3VzIFNhbmNo
ZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVuYm9zc2Eub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIGJ1aWxkIGZpeCBzaW5jZSB3ZSB1c2UgIi1XZXJyb3I9dW51c2VkLWJ1dC1zZXQt
dmFyaWFibGUiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAwYzcwZDNjZTkwNmViYzMx
NTgxMmI1MTk3MzFmNWE3MjA5ZGVkZTMxLi5lOTYxYjNjNTE4YmM5NTRiYWI2MTM5MmIxZTEwYTg0
NDMwNzRkNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisy
MDEyLTAzLTI1ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hy
b21pdW1dIFJvdXRlIG1vbm90b25pYyBjbG9jayBhbmQgd2lsbEJlZ2luRnJhbWUgbm90aWZpY2F0
aW9uIHVwIGZyb20gY29tcG9zaXRvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODIxNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRDbGllbnQuaDoKKyAgICAgICAgKFdlYldp
ZGdldENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldENsaWVudDo6d2lsbEJlZ2lu
RnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogc3Jj
L1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdENsaWVu
dFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXIpOgorICAgICAgICAoV2ViS2l0OjpDQ0xh
eWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjpjcmVhdGUp
OgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZp
ZXdDbGllbnRBZGFwdGVyOjp3aWxsQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5
ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxh
eWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjpsYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpDQ0xh
eWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjphcHBseVNj
cm9sbEFuZFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9X
ZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6Y3JlYXRlQ29udGV4dCk6CisgICAgICAgIChX
ZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0
ZXI6OmRpZFJlY3JlYXRlQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9z
dENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OmRpZENvbW1pdEFuZERyYXdG
cmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJU
cmVlVmlld0NsaWVudEFkYXB0ZXI6OmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMpOgorICAgICAgICAo
V2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFw
dGVyOjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9z
dENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OkNDTGF5ZXJUcmVlSG9zdENs
aWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXIpOgorICAgICAgICAoV2ViS2l0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpXZWJMYXllclRyZWVWaWV3SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjppbml0aWFsaXplKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldFJvb3RMYXllcik6CisgICAgICAg
IChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdG9ySWRlbnRpZmllcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXRWaWV3cG9ydFNpemUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6dmlld3BvcnRTaXplKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldFZpc2libGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGlt
aXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnN0YXJ0UGFnZVNj
YWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNl
dE5lZWRzQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNl
dE5lZWRzQW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpz
ZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpj
b21wb3NpdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6dXBkYXRl
QW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpjb21w
b3NpdGVBbmRSZWFkYmFjayk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBs
OjpmaW5pc2hBbGxSZW5kZXJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3
SW1wbDo6Y29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjps
b3NlQ29udGV4dCk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmg6CisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlld0ltcGwpOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aWxs
QmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVBbmlt
YXRpb25zKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYlZpZXdJ
bXBsKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcDoKKyAgICAgICAg
KFdURjo6VGVzdEhvb2tzOjp1cGRhdGVBbmltYXRpb25zKToKKyAgICAgICAgKFdURjo6TW9ja0xh
eWVyVHJlZUhvc3RDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAgKE1vY2tMYXllclRy
ZWVIb3N0Q2xpZW50KToKKyAgICAgICAgKFdURjo6TW9ja0xheWVyVHJlZUhvc3RDbGllbnQ6OnVw
ZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2V0TmVl
ZHNBbmltYXRlSW5zaWRlQW5pbWF0aW9uQ2FsbGJhY2s6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAg
ICAgICAqIHRlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6OndpbGxCZWdpbkZyYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6OnVwZGF0ZUFuaW1hdGlvbnMpOgor
CiAyMDEyLTAzLTIzICBTaGF3biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFtjaHJvbWl1bV0gSW5jb3JyZWN0IHJlcGxpY2Egb3JpZ2luVHJhbnNmb3JtIHVzZWQg
aW4gQ0NEYW1hZ2VUcmFja2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IDNlZjI5NWQ5NDU1OTgzMTk3M2NjYWI1ZWMyNTBj
MjcwMTg4ZDQwNGUuLjIxOWJmYzI2MzhkZTA0ZDk0ZTBiODMyMGRlOGNmMWE0ODNkZmVmOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiV2ViUHJpdmF0ZVB0ci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQ0xheWVyVHJlZUhvc3Q7CiBzdHJ1Y3QgQ0NTZXR0aW5n
czsKIH0KIApAQCAtMzgsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdy
YXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViTGF5ZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3
Q2xpZW50OworY2xhc3MgV2ViTGF5ZXJUcmVlVmlld0ltcGw7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiBz
dHJ1Y3QgV2ViUmVjdDsKIHN0cnVjdCBXZWJTaXplOwpAQCAtMTQxLDcgKzE0MSw5IEBAIHB1Ymxp
YzoKICAgICAvLyBJbW1lZGlhdGVseSB1cGRhdGUgYW5pbWF0aW9ucy4gVGhpcyBzaG91bGQgb25s
eSBiZSB1c2VkIHdoZW4gZnJhbWUgc2NoZWR1bGluZyBpcyBoYW5kbGVkIGJ5CiAgICAgLy8gdGhl
IFdlYkxheWVyVHJlZVZpZXcgdXNlciBhbmQgbm90IGludGVybmFsbHkgYnkgdGhlIGNvbXBvc2l0
b3IsIG1lYW5pbmcgb25seSBpbiBzaW5nbGUtdGhyZWFkZWQKICAgICAvLyBtb2RlLgotICAgIFdF
QktJVF9FWFBPUlQgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7
CisgICAgLy8KKyAgICAvLyBGSVhNRTogcmVtb3ZlIGRlZmF1bHQgYXJ1Z21lbnQgb24gbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUgd2hlbiB1cHN0cmVhbSBkZXBlbmRlbmNpZXMgYXJlIHJlc29sdmVk
LgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xv
Y2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gMCk7CiAK
ICAgICAvLyBDb21wb3NpdGVzIGFuZCBhdHRlbXB0cyB0byByZWFkIGJhY2sgdGhlIHJlc3VsdCBp
bnRvIHRoZSBwcm92aWRlZAogICAgIC8vIGJ1ZmZlci4gSWYgaXQgd2Fzbid0IHBvc3NpYmxlLCBl
LmcuIGR1ZSB0byBjb250ZXh0IGxvc3QsIHdpbGwgcmV0dXJuCkBAIC0xNjYsNyArMTY4LDcgQEAg
cHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBsb3NlQ29tcG9zaXRvckNvbnRleHQoaW50
IG51bVRpbWVzKTsKIAogcHJvdGVjdGVkOgotICAgIFdlYlByaXZhdGVQdHI8V2ViQ29yZTo6Q0NM
YXllclRyZWVIb3N0PiBtX3ByaXZhdGU7CisgICAgV2ViUHJpdmF0ZVB0cjxXZWJMYXllclRyZWVW
aWV3SW1wbD4gbV9wcml2YXRlOwogfTsKIAogaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBX
ZWJMYXllclRyZWVWaWV3JiBhLCBjb25zdCBXZWJMYXllclRyZWVWaWV3JiBiKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50
LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGll
bnQuaAppbmRleCA1YzBiOWVmOWEyYTJjNjEzYjExOTAwYzEzZjg5OGYyMjgzOWI0NjViLi40YTQ1
MjVlYzRkNGRiZmU2NzkzYzBiODM2MGIxNWFiMDQ2YjFkYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApA
QCAtMzMsOSArMzMsMTkgQEAgY2xhc3MgV2ViVGhyZWFkOwogCiBjbGFzcyBXZWJMYXllclRyZWVW
aWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAgICAvLyBVcGRhdGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0
LiBUaGVzZSBhcmUgY2FsbGVkIGJlZm9yZSB0aGUgY29tcG9zaXRpbmcKKyAgICAvLyBJbmRpY2F0
ZXMgdG8gdGhlIGVtYmVkZGVyIHRoYXQgdGhlIGNvbXBvc2l0b3IgaXMgYWJvdXQgdG8gYmVnaW4g
YQorICAgIC8vIGZyYW1lLiBUaGlzIGlzIGlzIGEgc2lnbmFsIHRvIGZsb3cgY29udHJvbCBtZWNo
YW5pc21zIHRoYXQgYSBmcmFtZSBpcworICAgIC8vIGJlZ2lubmluZy4gVGhpcyBjYWxsIHdpbGwg
YmUgZm9sbG93ZWQgYnkgdXBkYXRlQW5pbWF0aW9ucyBhbmQgdGhlbiBsYXlvdXQsIHdoaWNoIHNo
b3VsZAorICAgIC8vIGJlIHVzZWQgZm9yIGFjdHVhbCBhbmltYXRpb24gb3IgdHJlZSBtYW5pcHVs
YXRpb24gdGFza3MuCisgICAgLy8gRklYTUU6IG1ha2UgcHVyZSB2aXJ0dWFsIG9uY2UgdXBzdHJl
YW0gZGVwcyBhcmUgc2F0aXNmaWVkLgorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgp
IHsgfQorCisgICAgLy8gVXBkYXRlcyBhbmltYXRpb24gYW5kIGxheW91dC4gQm90aCBmbGF2b3Jz
IGFyZSBjYWxsZWQgYmVmb3JlIHRoZSBjb21wb3NpdGluZwogICAgIC8vIHBhc3Mgc28gdGhhdCBs
YXllcnMgY2FuIGJlIHVwZGF0ZWQgYXQgdGhlIGdpdmVuIGZyYW1lIHRpbWUuCi0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7CisgICAg
Ly8gVGhlIG9uZSBhcmd1bWVudCB2ZXJzaW9uIGlzIERFUFJFQ0FURUQuIFVzZSB0aGUgdHdvLWFy
Z3VtZW50IHZlcnNpb24uCisgICAgLy8gRklYTUU6IHJlbW92ZSB0aGUgb25lIGFyZ3VtZW50IHZl
cnNpb24uCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVn
aW5UaW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2Fs
bENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsKIAogICAgIC8vIEFwcGxpZXMgYSBzY3Jv
bGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5ZXIsIHdoaWNoIGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmluZGV4IDAyOTBhNzUzOTRlNjY1Mjg3ODdh
M2JjZDQ5YzhlNmZmNzk2YTRmOGMuLjgzM2QxNjY1ZDFmMjNiZDc4MGZlMDVkMTIyYTAxYThhZWQ4
OWJjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcApAQCAtMTc5LDExICsxNzks
MTYgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRlbGV0ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxU
aHJlYWQoVGV4dHVyZUFsbG9jYXRvciogYWxsb2MKICAgICAgICAgbV9jb250ZW50c1RleHR1cmVN
YW5hZ2VyLT5ldmljdEFuZERlbGV0ZUFsbFRleHR1cmVzKGFsbG9jYXRvcik7CiB9CiAKLXZvaWQg
Q0NMYXllclRyZWVIb3N0Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tUaW1lKQor
dm9pZCBDQ0xheWVyVHJlZUhvc3Q6OndpbGxCZWdpbkZyYW1lKCkKK3sKKyAgICBtX2NsaWVudC0+
d2lsbEJlZ2luRnJhbWUoKTsKK30KKwordm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUFuaW1h
dGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpCiB7CiAgICAgbV9hbmltYXRpbmcgPSB0cnVlOwotICAgIG1fY2xpZW50LT51
cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja1RpbWUpOwotICAgIGFuaW1hdGVMYXllcnMobW9ub3Rv
bmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAgIG1fY2xpZW50LT51cGRhdGVBbmltYXRpb25z
KHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CisgICAg
YW5pbWF0ZUxheWVycyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgbV9hbmltYXRpbmcg
PSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAppbmRleCA3MzkwZWMzNGE5
ZTdiOGQwMzA2YjNkNjY5NDYxMWUwMGE0ZDcyNzY0Li44NWZjMmFkMDg5N2U3Y2E1YzZlMGQ3ZmVl
MWVjYTk1YmJlN2U4YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaApAQCAtNTIsNyAr
NTIsMTAgQEAgY2xhc3MgVGV4dHVyZU1hbmFnZXI7CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdENs
aWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91Ymxl
IGZyYW1lQmVnaW5UaW1lKSA9IDA7CisgICAgLy8gQ2FsbGVkIG9ubHkgaW4gdGhyZWFkZWQgbW9k
ZS4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKSA9IDA7CisKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRv
dWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBsYXlv
dXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkgPSAwOwogICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlQ29udGV4dCgpID0gMDsKQEAgLTEyOSw3
ICsxMzIsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgYW55TGF5ZXJUcmVlSG9zdEluc3Rh
bmNlRXhpc3RzKCk7CiAKICAgICAvLyBDQ0xheWVyVHJlZUhvc3QgaW50ZXJmYWNlIHRvIENDUHJv
eHkuCi0gICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tUaW1lKTsKKyAg
ICB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7CisgICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJs
ZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1l
KTsKICAgICB2b2lkIGxheW91dCgpOwogICAgIHZvaWQgYmVnaW5Db21taXRPbkltcGxUaHJlYWQo
Q0NMYXllclRyZWVIb3N0SW1wbCopOwogICAgIHZvaWQgZmluaXNoQ29tbWl0T25JbXBsVGhyZWFk
KENDTGF5ZXJUcmVlSG9zdEltcGwqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXgg
ZGNmYTNiZDM1ZWY4NTE3NjgxNjY5MTRmNDNkZWEzMDhjZWVmYmFhNS4uNTNiNzA0M2UzNTczMjFm
ZmJiYjM3MjhjMTYyZGYxZGFiMzlkY2U4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAK
QEAgLTM5OSw3ICszOTksOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkJl
Z2luRnJhbWUoKQogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NUaHJlYWRQcm94eTo6c2NoZWR1
bGVkQWN0aW9uQmVnaW5GcmFtZSIpOwogICAgIEFTU0VSVCghbV9wZW5kaW5nQmVnaW5GcmFtZVJl
cXVlc3QpOwogICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0ID0gYWRvcHRQdHIobmV3IEJl
Z2luRnJhbWVBbmRDb21taXRTdGF0ZSgpKTsKLSAgICBtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVz
dC0+ZnJhbWVCZWdpblRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIG1fcGVuZGluZ0JlZ2luRnJh
bWVSZXF1ZXN0LT53YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAg
bV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVl
c3QtPnNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFz
KCk7CiAKICAgICBtX21haW5UaHJlYWRQcm94eS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNr
KHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKSk7CkBAIC00NDAsOCArNDQxLDEwIEBA
IHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZSgpCiAgICAgLy8gUmUtZG8gdGhlIGNvbW1p
dCBmbG93IHNvIHRoYXQgd2UgZG9uJ3Qgc2VuZCB0aGUgc2Nyb2xsSW5mbyBvbiB0aGUgQkZBQyBt
ZXNzYWdlLgogICAgIG1fbGF5ZXJUcmVlSG9zdC0+YXBwbHlTY3JvbGxBbmRTY2FsZSgqcmVxdWVz
dC0+c2Nyb2xsSW5mbyk7CiAKKyAgICBtX2xheWVyVHJlZUhvc3QtPndpbGxCZWdpbkZyYW1lKCk7
CisKICAgICAvLyBGSVhNRTogcmVjcmVhdGUgdGhlIGNvbnRleHQgaWYgaXQgd2FzIHJlcXVlc3Rl
ZCBieSB0aGUgaW1wbCB0aHJlYWQuCi0gICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVBbmltYXRp
b25zKHJlcXVlc3QtPmZyYW1lQmVnaW5UaW1lKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0
ZUFuaW1hdGlvbnMocmVxdWVzdC0+d2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIHJlcXVlc3QtPm1v
bm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAgICBtX2xheWVyVHJlZUhvc3QtPmxheW91dCgpOwog
CiAgICAgLy8gQ2xlYXIgdGhlIGNvbW1pdCBmbGFnIGFmdGVyIHVwZGF0aW5nIGFuaW1hdGlvbnMg
YW5kIGxheW91dCBoZXJlIC0tLSBvYmplY3RzIHRoYXQgb25seQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5oCmluZGV4IDQ4NjFmNzkwOTI2MDFjMDA1YTA1MDUyMGQ1NDdlZDIxY2RmOWQ3YTAuLjZiNTQx
ZTE4ZTlkOWNlNjE4N2Y0NWFkMTE4ZWNmNTcyNGIwYzRkMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmgKQEAgLTkzLDggKzkzLDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIFNldCBvbiBpbXBsIHRo
cmVhZCwgcmVhZCBvbiBtYWluIHRocmVhZC4KICAgICBzdHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1p
dFN0YXRlIHsKLSAgICAgICAgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlKCkgOiBmcmFtZUJlZ2lu
VGltZSgpIHsgfQotICAgICAgICBkb3VibGUgZnJhbWVCZWdpblRpbWU7CisgICAgICAgIEJlZ2lu
RnJhbWVBbmRDb21taXRTdGF0ZSgpIDogd2FsbENsb2NrRnJhbWVCZWdpblRpbWUoMCksIG1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lKDApIHsgfQorICAgICAgICBkb3VibGUgd2FsbENsb2NrRnJhbWVC
ZWdpblRpbWU7CisgICAgICAgIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZTsKICAgICAg
ICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNjcm9sbEluZm87CiAgICAgfTsKICAgICBP
d25QdHI8QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlPiBtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVz
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldENs
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgK
aW5kZXggNDZiNWQ5ZTJiYTQyNzdiOGRmOTU3YWFlNjBkNGJiZWU0MDc2MmUyMy4uYjhmYmM0OTk2
ZjY5ZDliNTMzYWM0ZTA0ZGZlOTY3MzhlZDEwZGE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKQEAgLTQ1LDYgKzQ1LDEwIEBAIHN0cnVj
dCBXZWJTaXplOwogCiBjbGFzcyBXZWJXaWRnZXRDbGllbnQgewogcHVibGljOgorICAgIC8vIENh
bGxlZCB3aGVuIHRoZSBXZWJXaWRnZXQgd2lsbCBiZWdpbiB1cGRhdGluZyB0aGUgc2NyZWVuLiBP
bmx5IGNhbGxlZAorICAgIC8vIHdoZW4gdGhlIFdlYldpZGdldCBpcyBzZWxmLXNjaGVkdWxlZCAo
dGhyZWFkZWQgbW9kZSwgYnV0IG1vcmUgc29vbikuCisgICAgdmlydHVhbCB2b2lkIHdpbGxCZWdp
bkZyYW1lKCkgeyB9CisKICAgICAvLyBDYWxsZWQgd2hlbiBhIHJlZ2lvbiBvZiB0aGUgV2ViV2lk
Z2V0IG5lZWRzIHRvIGJlIHJlLXBhaW50ZWQuCiAgICAgdmlydHVhbCB2b2lkIGRpZEludmFsaWRh
dGVSZWN0KGNvbnN0IFdlYlJlY3QmKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAppbmRleCAzMzE0ZGMyZjU0NGMxY2E4YzU5YzQ3MmJj
MDI1ZThjMDA3ZjcwMWYwLi5iOTlkYTZlOGY1M2RmYWYzNjdhNjdlZjJhOWJhMDVmNWNkODQxOTg2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNw
cApAQCAtMTMwLDkgKzEzMCw5IEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6Y29tcG9zaXRlKCkK
ICAgICAgICAgbV9wcml2YXRlLT5jb21wb3NpdGUoKTsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVW
aWV3Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKK3ZvaWQgV2ViTGF5
ZXJUcmVlVmlldzo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRp
bWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKIHsKLSAgICBtX3ByaXZhdGUtPnVw
ZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUpOworICAgIG1fcHJpdmF0ZS0+dXBkYXRlQW5p
bWF0aW9ucyh3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUp
OwogfQogCiBib29sIFdlYkxheWVyVHJlZVZpZXc6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQg
KnBpeGVscywgY29uc3QgV2ViUmVjdCYgcmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAppbmRleCAzMzU4NzliNjYwNTM0YTRi
Yzc1N2U1MTc3NGYzMmZmZGM2N2U3ZmVjLi5jYzBiNDU2YzgyNWVmZTdhMTllNGZkZjBlNWM0YmY3
NjhhMDgwNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXll
clRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5
ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC0zNiw4MSArMzYsMTg3IEBACiAjaW5jbHVkZSAicGxhdGZv
cm0vV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlNpemUu
aCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Cit1c2luZyBuYW1lc3BhY2UgV1RG
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50VG9X
ZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlciA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RDbGll
bnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3duUHRyPENDTGF5ZXJUcmVlSG9zdENsaWVu
dFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI+IGNyZWF0ZShXZWJMYXllclRyZWVWaWV3
Q2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IENDTGF5
ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXIoY2xpZW50KSk7
CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbkZyYW1lKCkKKyAgICB7CisgICAg
ICAgIG1fY2xpZW50LT53aWxsQmVnaW5GcmFtZSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91Ymxl
IG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPnVwZGF0
ZUFuaW1hdGlvbnMod2FsbENsb2NrRnJhbWVCZWdpblRpbWUpOworICAgICAgICBtX2NsaWVudC0+
dXBkYXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgbW9ub3RvbmljRnJhbWVC
ZWdpblRpbWUpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPmxheW91dCgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBhcHBs
eVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBmbG9h
dCBwYWdlU2NhbGUpCisgICAgeworICAgICAgICBtX2NsaWVudC0+YXBwbHlTY3JvbGxBbmRTY2Fs
ZShXZWJTaXplKHNjcm9sbERlbHRhKSwgcGFnZVNjYWxlKTsKKyAgICB9CisKKyAgICB2aXJ0dWFs
IFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKQorICAgIHsKKyAg
ICAgICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNEPiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIo
bV9jbGllbnQtPmNyZWF0ZUNvbnRleHQzRCgpKTsKKyAgICAgICAgaWYgKCF3ZWJDb250ZXh0KQor
ICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAgcmV0dXJuIEdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJvbVdlYkNvbnRleHQod2ViQ29udGV4dC5y
ZWxlYXNlKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdywg
ZmFsc2UgLyogcHJlc2VydmVEcmF3aW5nQnVmZmVyICovICk7CisgICAgfQorCisgICAgdmlydHVh
bCB2b2lkIGRpZFJlY3JlYXRlQ29udGV4dChib29sIHN1Y2Nlc3MpCisgICAgeworICAgICAgICBt
X2NsaWVudC0+ZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKQorICAgIHsKKyAgICAgICAgbV9j
bGllbnQtPmRpZENvbW1pdEFuZERyYXdGcmFtZSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRD
b21wbGV0ZVN3YXBCdWZmZXJzKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRlKCkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgp
OworICAgIH0KKworcHJpdmF0ZToKKyAgICBDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVy
VHJlZVZpZXdDbGllbnRBZGFwdGVyKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCkKKyAg
ICAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgeworICAgICAgICBBU1NFUlQobV9jbGllbnQp
OworICAgIH0KKworICAgIFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIG1fY2xpZW50OworfTsKKwog
UGFzc1JlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNy
ZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkxheWVyJiByb290
LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYgc2V0dGluZ3MpCiB7Ci0gICAgUmVm
UHRyPFdlYkxheWVyVHJlZVZpZXdJbXBsPiBob3N0ID0gYWRvcHRSZWYobmV3IFdlYkxheWVyVHJl
ZVZpZXdJbXBsKGNsaWVudCwgc2V0dGluZ3MpKTsKLSAgICBpZiAoIWhvc3QtPmluaXRpYWxpemUo
KSkKKyAgICBSZWZQdHI8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IGltcGwgPSBhZG9wdFJlZihuZXcg
V2ViTGF5ZXJUcmVlVmlld0ltcGwoY2xpZW50KSk7CisgICAgaWYgKCFpbXBsLT5pbml0aWFsaXpl
KHJvb3QsIHNldHRpbmdzKSkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgaG9zdC0+c2V0Um9vdExh
eWVyKHJvb3QpOwotICAgIHJldHVybiBob3N0OworICAgIHJldHVybiBpbXBsOwogfQogCi1XZWJM
YXllclRyZWVWaWV3SW1wbDo6V2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0Ns
aWVudCogY2xpZW50LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYgc2V0dGluZ3Mp
IAotICAgIDogQ0NMYXllclRyZWVIb3N0KHRoaXMsIHNldHRpbmdzKQotICAgICwgbV9jbGllbnQo
Y2xpZW50KQorV2ViTGF5ZXJUcmVlVmlld0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKFdlYkxh
eWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50QWRhcHRlcihDQ0xheWVy
VHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjpjcmVhdGUoY2xp
ZW50KSkKIHsKIH0KIAorYm9vbCBXZWJMYXllclRyZWVWaWV3SW1wbDo6aW5pdGlhbGl6ZShjb25z
dCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmIHNldHRp
bmdzKQoreworICAgIG1faG9zdCA9IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fY2xpZW50QWRh
cHRlci5nZXQoKSwgc2V0dGluZ3MpOworICAgIGlmICghbV9ob3N0KQorICAgICAgICByZXR1cm4g
MDsKKyAgICBtX2hvc3QtPnNldFJvb3RMYXllcihyb290KTsKKyAgICByZXR1cm4gbV9ob3N0Owor
fQorCiBXZWJMYXllclRyZWVWaWV3SW1wbDo6fldlYkxheWVyVHJlZVZpZXdJbXBsKCkKIHsKIH0K
IAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJh
bWVCZWdpblRpbWUpCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXRSb290TGF5ZXIoUGFz
c1JlZlB0cjxMYXllckNocm9taXVtPiBsYXllcikKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAg
ICAgIG1fY2xpZW50LT51cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICBtX2hv
c3QtPnNldFJvb3RMYXllcihsYXllcik7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6
OmxheW91dCgpCitpbnQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNvbXBvc2l0b3JJZGVudGlmaWVy
KCkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5sYXlvdXQoKTsKKyAg
ICByZXR1cm4gbV9ob3N0LT5jb21wb3NpdG9ySWRlbnRpZmllcigpOwogfQogCi12b2lkIFdlYkxh
eWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJ
bXBsOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKLSAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hcHBseVNjcm9sbEFuZFNjYWxlKFdlYlNpemUoc2Ny
b2xsRGVsdGEpLCBwYWdlU2NhbGUpOworICAgIG1faG9zdC0+c2V0Vmlld3BvcnRTaXplKHNpemUp
OwogfQogCi1QYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJMYXllclRyZWVWaWV3SW1w
bDo6Y3JlYXRlQ29udGV4dCgpCitJbnRTaXplIFdlYkxheWVyVHJlZVZpZXdJbXBsOjp2aWV3cG9y
dFNpemUoKSBjb25zdAogewotICAgIGlmICghbV9jbGllbnQpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIE93blB0cjxXZWJHcmFwaGljc0NvbnRleHQzRD4gd2ViQ29udGV4dCA9IGFkb3B0UHRyKG1f
Y2xpZW50LT5jcmVhdGVDb250ZXh0M0QoKSk7Ci0gICAgaWYgKCF3ZWJDb250ZXh0KQotICAgICAg
ICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9ob3N0LT52aWV3cG9ydFNpemUoKTsKK30KIAotICAg
IHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZy
b21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBHcmFwaGljc0NvbnRleHQzRDo6UmVu
ZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3csIGZhbHNlIC8qIHByZXNlcnZlRHJhd2luZ0J1ZmZlciAq
LyApOwordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0VmlzaWJsZShib29sIHZpc2libGUp
Cit7CisgICAgbV9ob3N0LT5zZXRWaXNpYmxlKHZpc2libGUpOwogfQogCi12b2lkIFdlYkxheWVy
VHJlZVZpZXdJbXBsOjpkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKQordm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKGZsb2F0IHBhZ2VT
Y2FsZUZhY3RvciwgZmxvYXQgbWluaW11bSwgZmxvYXQgbWF4aW11bSkKIHsKLSAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWJpbmRHcmFwaGljc0NvbnRleHQoc3VjY2Vz
cyk7CisgICAgbV9ob3N0LT5zZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMocGFnZVNjYWxlRmFj
dG9yLCBtaW5pbXVtLCBtYXhpbXVtKTsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6
ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnN0YXJ0
UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFNpemUmIHRhcmdldFBvc2l0aW9uLCBib29sIHVz
ZUFuY2hvciwgZmxvYXQgc2NhbGUsIGRvdWJsZSBkdXJhdGlvblNlYykKIHsKLSAgICBpZiAobV9j
bGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDb21taXRBbmREcmF3RnJhbWUoKTsKKyAgICBt
X2hvc3QtPnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKHRhcmdldFBvc2l0aW9uLCB1c2VBbmNob3Is
IHNjYWxlLCBkdXJhdGlvblNlYyk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmRp
ZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKQordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0TmVl
ZHNDb21taXQoKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZENv
bXBsZXRlU3dhcEJ1ZmZlcnMoKTsKKyAgICBtX2hvc3QtPnNldE5lZWRzQ29tbWl0KCk7CiB9CiAK
LXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNjaGVkdWxlQ29tcG9zaXRlKCkKK3ZvaWQgV2Vi
TGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzQW5pbWF0ZSgpCiB7Ci0gICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKKyAgICBtX2hvc3QtPnNl
dE5lZWRzQW5pbWF0ZSgpOworfQorCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXROZWVk
c1JlZHJhdygpCit7CisgICAgbV9ob3N0LT5zZXROZWVkc1JlZHJhdygpOworfQorCit2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGUoKQoreworICAgIG1faG9zdC0+Y29tcG9zaXRl
KCk7Cit9CisKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91
YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRp
bWUpCit7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG9uY2UgdXBzdHJlYW0gZW1iZWRkZXJz
IHBhc3MgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUKKyAgICBpZiAoIW1vbm90b25pY0ZyYW1lQmVn
aW5UaW1lKQorICAgICAgICBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSA9IG1vbm90b25pY2FsbHlJ
bmNyZWFzaW5nVGltZSgpOworICAgIG1faG9zdC0+dXBkYXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tG
cmFtZUJlZ2luVGltZSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOworfQorCitib29sIFdlYkxh
eWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGVBbmRSZWFkYmFjayh2b2lkICpwaXhlbHMsIGNvbnN0
IEludFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIG1faG9zdC0+Y29tcG9zaXRlQW5kUmVhZGJh
Y2socGl4ZWxzLCByZWN0KTsKK30KKwordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6ZmluaXNo
QWxsUmVuZGVyaW5nKCkKK3sKKyAgICBtX2hvc3QtPmZpbmlzaEFsbFJlbmRlcmluZygpOworfQor
CitHcmFwaGljc0NvbnRleHQzRCogV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNvbnRleHQoKQorewor
ICAgIHJldHVybiBtX2hvc3QtPmNvbnRleHQoKTsKK30KKwordm9pZCBXZWJMYXllclRyZWVWaWV3
SW1wbDo6bG9zZUNvbnRleHQoaW50IG51bVRpbWVzKQoreworICAgIG1faG9zdC0+bG9zZUNvbnRl
eHQobnVtVGltZXMpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oCmluZGV4IGIxYjI2ZDBm
YzMzODYwNGZlNWNmMzgwNzFmNTBhOGMzNTg2NDUyZmIuLjljZjRkNWQ5MTk1OTlhNTBiN2VkNTBk
Zjk0NmYyNjA5ZTlkMDg2ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViTGF5ZXJUcmVlVmlld0ltcGwuaApAQCAtMzQsMjUgKzM0LDM1IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgV2ViTGF5ZXI7CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OwogCi1j
bGFzcyBXZWJMYXllclRyZWVWaWV3SW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3QsIHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RDbGllbnQgeworY2xhc3MgQ0NMYXll
clRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjsKK2NsYXNzIFdl
YkxheWVyVHJlZVZpZXdJbXBsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViTGF5ZXJUcmVlVmlld0lt
cGw+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1w
bD4gY3JlYXRlKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqLCBjb25zdCBXZWJMYXllciYgcm9vdCwg
Y29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmKTsKKyAgICB2aXJ0dWFsIH5XZWJMYXll
clRyZWVWaWV3SW1wbCgpOworCisgICAgYm9vbCBpbml0aWFsaXplKGNvbnN0IFdlYkxheWVyJiBy
b290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYpOworICAgIHZvaWQgc2V0Um9v
dExheWVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6TGF5ZXJDaHJvbWl1bT4pOworICAgIGludCBjb21w
b3NpdG9ySWRlbnRpZmllcigpOworICAgIHZvaWQgc2V0Vmlld3BvcnRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmKTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0
OworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKKyAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3Rv
ckFuZExpbWl0cyhmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGZsb2F0IG1pbmltdW0sIGZsb2F0IG1h
eGltdW0pOworICAgIHZvaWQgc3RhcnRQYWdlU2NhbGVBbmltYXRpb24oY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgdGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNlQW5jaG9yLCBmbG9hdCBzY2FsZSwgZG91
YmxlIGR1cmF0aW9uU2VjKTsKKyAgICB2b2lkIHNldE5lZWRzQ29tbWl0KCk7CisgICAgdm9pZCBz
ZXROZWVkc0FuaW1hdGUoKTsKKyAgICB2b2lkIHNldE5lZWRzUmVkcmF3KCk7CisgICAgdm9pZCBj
b21wb3NpdGUoKTsKKyAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0Zy
YW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOworICAgIGJvb2wg
Y29tcG9zaXRlQW5kUmVhZGJhY2sodm9pZCAqcGl4ZWxzLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
Jik7CisgICAgdm9pZCBmaW5pc2hBbGxSZW5kZXJpbmcoKTsKKyAgICBXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRCogY29udGV4dCgpOworICAgIHZvaWQgbG9zZUNvbnRleHQoaW50IG51bVRpbWVz
KTsKIAogcHJpdmF0ZToKLSAgICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3
Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmKTsKLSAgICB2aXJ0dWFs
IH5XZWJMYXllclRyZWVWaWV3SW1wbCgpOwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRp
b25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAgdmlydHVhbCB2b2lkIGxheW91dCgpOwot
ICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpOwotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlQ29udGV4dCgpOwotICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBzdWNjZXNzKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMoKTsKLQotICAgIC8vIE9ubHkgdXNlZCBpbiB0aGUgc2luZ2xlIHRocmVhZGVk
IHBhdGguCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCk7Ci0KLSAgICBXZWJM
YXllclRyZWVWaWV3Q2xpZW50KiBtX2NsaWVudDsKKyAgICBXZWJMYXllclRyZWVWaWV3SW1wbChX
ZWJMYXllclRyZWVWaWV3Q2xpZW50Kik7CisKKyAgICBPd25QdHI8Q0NMYXllclRyZWVIb3N0Q2xp
ZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcj4gbV9jbGllbnRBZGFwdGVyOworICAg
IFJlZlB0cjxXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q+IG1faG9zdDsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CmluZGV4IGM0N2ZkZGFhZWU2ZTVmYTUwMjBjYTU5MjAxZWY2ZTlmY2I3ZjQzMTguLjFjYzFhN2I5
MzZiZDMwMGIwYTA2OGFiNTA4NTJkMTIwYTIwN2QwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEzMzAsNiArMTMzMCwxMSBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjppbnN0cnVtZW50Q2FuY2VsRnJhbWUoKQogICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6ZGlkQ2FuY2VsRnJhbWUobV9wYWdlLmdldCgpKTsKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6d2lsbEJlZ2luRnJhbWUoKQoreworICAgIG1fY2xpZW50LT53aWxsQmVnaW5GcmFtZSgpOwor
fQorCiB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKIHsK
ICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCkBAIC0xMzM3LDE5ICsxMzQyLDIw
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQogICAg
IC8vIHBhc3MgaW4gYSBmcmFtZUJlZ2luVGltZS4KICAgICBpZiAoIWZyYW1lQmVnaW5UaW1lKQog
ICAgICAgICBmcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgZG91YmxlIG1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAKICNp
ZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gSW4gY29tcG9zaXRlZCBtb2Rl
LCB3ZSBhbHdheXMgZ28gdGhyb3VnaCB0aGUgY29tcG9zaXRvciBzbyBpdCBjYW4gYXBwbHkKICAg
ICAvLyBhcHByb3ByaWF0ZSBmbG93LWNvbnRyb2wgbWVjaGFuaXNtcy4KICAgICBpZiAoaXNBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCi0gICAgICAgIG1fbGF5ZXJUcmVlVmlldy51cGRh
dGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICAgICAgbV9sYXllclRyZWVWaWV3LnVw
ZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUsIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsK
ICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgdXBkYXRlQW5pbWF0aW9ucyhmcmFtZUJlZ2luVGlt
ZSk7CisgICAgICAgIHVwZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUsIG1vbm90b25pY0Zy
YW1lQmVnaW5UaW1lKTsKICNlbmRpZgogfQogCi12b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmlt
YXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFu
aW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpCiB7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQog
ICAgIFRSQUNFX0VWRU5UKCJXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyIsIHRoaXMsIDAp
OwpAQCAtMTM2MywxMyArMTM2OSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRp
b25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKIAogICAgIC8vIENyZWF0ZSBzeW50aGV0aWMgd2hl
ZWwgZXZlbnRzIGFzIG5lY2Vzc2FyeSBmb3IgZmxpbmcuCiAgICAgaWYgKG1fZ2VzdHVyZUFuaW1h
dGlvbikgewotICAgICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uLT5hbmltYXRlKGZyYW1lQmVn
aW5UaW1lKSkKKyAgICAgICAgaWYgKG1fZ2VzdHVyZUFuaW1hdGlvbi0+YW5pbWF0ZShtb25vdG9u
aWNGcmFtZUJlZ2luVGltZSkpCiAgICAgICAgICAgICBzY2hlZHVsZUFuaW1hdGlvbigpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBtX2dlc3R1cmVBbmltYXRpb24uY2xlYXIoKTsKICAgICB9
CiAKLSAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9E
T01UaW1lU3RhbXAoZnJhbWVCZWdpblRpbWUpKTsKKyAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAod2FsbENsb2NrRnJhbWVCZWdp
blRpbWUpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAppbmRleCAyMjkzOGFkNmJkNmM0OTc1Zjc0ZmUzN2U0MTU0ODdmZWVjYTEyMTViLi4zMTlj
ZTYzMWY2YzgwMzdlZGQ2MmRjYWJjMDNmNzQxODIxZGI1YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTI1NCw3ICsyNTQsOCBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlbW92ZVBhZ2VPdmVybGF5KFdlYlBhZ2VPdmVybGF5Kik7CiAKICAgICAv
LyBXZWJMYXllclRyZWVWaWV3Q2xpZW50Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlv
bnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJh
bWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2Nr
RnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgdmly
dHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KTsKICAg
ICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBjcmVhdGVDb250ZXh0M0QoKTsKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0KGJvb2wpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXgg
YzcyMzgzNzAyYzExM2UyMTBjMzQ0MjY3OTc3ZDk1YTg5MzFiNGVlMi4uN2Q5Y2Y3NDE0MmNmNmJi
ZDZiYjNkODczMjRlMzk1ZDQ1ZjU2ZWY5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVI
b3N0SW1wbCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlTGF5ZXJzKENDTGF5ZXJUcmVl
SG9zdEltcGwqLCBkb3VibGUgbW9ub3RvbmljVGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFw
cGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYsIGZsb2F0KSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkgeyB9CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1l
LCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBs
YXlvdXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KGJvb2wgc3Vj
Y2VkZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSB7IH0K
QEAgLTIyMCw5ICsyMjAsMTMgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IE1vY2tMYXllclRyZWVIb3N0Q2xpZW50KHRlc3RIb29rcykpOwogICAgIH0KIAotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNUaW1lKQorICAgIHZpcnR1
YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgpCiAgICAgewotICAgICAgICBtX3Rlc3RIb29rcy0+dXBk
YXRlQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBt
b25vdG9uaWNGcmFtZUJlZ2luVGltZSkKKyAgICB7CisgICAgICAgIG1fdGVzdEhvb2tzLT51cGRh
dGVBbmltYXRpb25zKHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpCkBAIC04NjksNyArODcz
LDcgQEAgcHVibGljOgogICAgICAgICBwb3N0U2V0TmVlZHNBbmltYXRlVG9NYWluVGhyZWFkKCk7
CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlKQorICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSwgZG91YmxlKQogICAgIHsKICAg
ICAgICAgaWYgKCFtX251bUFuaW1hdGVzKSB7CiAgICAgICAgICAgICBtX2xheWVyVHJlZUhvc3Qt
PnNldE5lZWRzQW5pbWF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaAppbmRleCAzODg3NmQ3MzdmYjUyYWE2
ZDAzYzcxYmZmZTQxNzI4YzhjY2NmMGI1Li4yMmE0N2EwODU2NTFiNWY5YTc0Yzg4OWEzNWVhM2Ew
OGQ4ODMzMjZiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VD
Q0xheWVyVHJlZUhvc3RDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaApAQCAtMzQsNyArMzQsOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQgOiBwdWJsaWMgQ0NM
YXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5p
bWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB3aWxs
QmVnaW5GcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJs
ZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1l
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFw
cGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VT
Y2FsZSkgeyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVh
dGVDb250ZXh0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133706</attachid>
            <date>2012-03-25 17:46:20 -0700</date>
            <delta_ts>2012-03-25 23:38:05 -0700</delta_ts>
            <desc>oops</desc>
            <filename>bug-82154-20120325174619.patch</filename>
            <type>text/plain</type>
            <size>30930</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwMzRkYTRhYTU1MzA5
MmFlNTdkOTIzZWI3YjQyYTA0NjQ4ZjNiYTc0Li5mYTVlZWZjYTY2YTZjODI4ODNiOTM4MjU5Y2Iw
YTQzODAxYTU2YTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMy0yNSAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0
ZSBtb25vdG9uaWMgY2xvY2sgYW5kIHdpbGxCZWdpbkZyYW1lIG5vdGlmaWNhdGlvbiB1cCBmcm9t
IGNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXcpOgorICAgICAgICAqIGNocm9taXVtL3B1Ymxp
Yy9XZWJMYXllclRyZWVWaWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3Q2xp
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0NsaWVudDo6d2lsbEJlZ2lu
RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3Q2xpZW50Ojp1cGRhdGVB
bmltYXRpb25zKToKKwogMjAxMi0wMy0yMyAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFtjaHJvbWl1bV0gcmVuYW1lIG5ld3d0ZiB0YXJnZXQgYmFjayB0byB3dGYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NDhjYWM4ZTRjMzJjNWNmMGM0OGVhODdiMzAxMDY5MTU5MGIzNTIwLi4w
MTAzOTBjMWViNGM5ODVkNDZjNWMyYzRhYjg2YWYzZDU4NjY0NWVkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjQgQEAKKzIwMTItMDMtMjUgIE5hdCBEdWNhICA8bmR1Y2FAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gUm91dGUgbW9ub3RvbmljIGNsb2NrIGFuZCB3aWxsQmVnaW5G
cmFtZSBub3RpZmljYXRpb24gdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9z
dDo6d2lsbEJlZ2luRnJhbWUpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVyVHJlZUhvc3Q6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oOgorICAgICAgICAoQ0NMYXll
clRyZWVIb3N0Q2xpZW50KToKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OmJlZ2luRnJhbWUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkNDVGhyZWFkUHJveHk6OkJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZTo6QmVnaW5GcmFt
ZUFuZENvbW1pdFN0YXRlKToKKyAgICAgICAgKEJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZSk6CisK
IDIwMTItMDMtMjQgIEplc3VzIFNhbmNoZXotUGFsZW5jaWEgIDxqZXN1cy5wYWxlbmNpYUBvcGVu
Ym9zc2Eub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBzaW5jZSB3ZSB1c2Ug
Ii1XZXJyb3I9dW51c2VkLWJ1dC1zZXQtdmFyaWFibGUiLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAwYzcwZDNjZTkwNmViYzMxNTgxMmI1MTk3MzFmNWE3MjA5ZGVkZTMxLi5lOTYxYjNj
NTE4YmM5NTRiYWI2MTM5MmIxZTEwYTg0NDMwNzRkNDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDEyLTAzLTI1ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJvdXRlIG1vbm90b25pYyBjbG9jayBhbmQg
d2lsbEJlZ2luRnJhbWUgbm90aWZpY2F0aW9uIHVwIGZyb20gY29tcG9zaXRvcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxNTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJXaWRnZXRD
bGllbnQuaDoKKyAgICAgICAgKFdlYldpZGdldENsaWVudCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YldpZGdldENsaWVudDo6d2lsbEJlZ2luRnJhbWUpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRy
ZWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6dXBkYXRlQW5p
bWF0aW9ucyk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAg
ICAgKENDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXIp
OgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZp
ZXdDbGllbnRBZGFwdGVyOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhv
c3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjp3aWxsQmVnaW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmll
d0NsaWVudEFkYXB0ZXI6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV2ViS2l0OjpDQ0xh
eWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjpsYXlvdXQp
OgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZp
ZXdDbGllbnRBZGFwdGVyOjphcHBseVNjcm9sbEFuZFNjYWxlKToKKyAgICAgICAgKFdlYktpdDo6
Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6Y3Jl
YXRlQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2Vi
TGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OmRpZFJlY3JlYXRlQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFk
YXB0ZXI6OmRpZENvbW1pdEFuZERyYXdGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJU
cmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OmRpZENvbXBsZXRl
U3dhcEJ1ZmZlcnMpOgorICAgICAgICAoV2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dl
YkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyOjpzY2hlZHVsZUNvbXBvc2l0ZSk6CisgICAgICAg
IChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFk
YXB0ZXI6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0
ZXIpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmll
d0ltcGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpX
ZWJMYXllclRyZWVWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJ
bXBsOjppbml0aWFsaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6
OnNldFJvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpj
b21wb3NpdG9ySWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJ
bXBsOjpzZXRWaWV3cG9ydFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3
SW1wbDo6dmlld3BvcnRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0lt
cGw6OnNldFZpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6
c2V0UGFnZVNjYWxlRmFjdG9yQW5kTGltaXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzQ29tbWl0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzQW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJM
YXllclRyZWVWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGVBbmRSZWFkYmFjayk6CisgICAgICAgIChXZWJL
aXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpmaW5pc2hBbGxSZW5kZXJpbmcpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6Y29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6
OldlYkxheWVyVHJlZVZpZXdJbXBsOjpsb3NlQ29udGV4dCk6CisgICAgICAgICogc3JjL1dlYkxh
eWVyVHJlZVZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViTGF5ZXJU
cmVlVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp3aWxsQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YW5pbWF0ZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKToKKyAgICAgICAgKiBzcmMvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJl
ZUhvc3RUZXN0LmNwcDoKKyAgICAgICAgKFdURjo6VGVzdEhvb2tzOjp1cGRhdGVBbmltYXRpb25z
KToKKyAgICAgICAgKFdURjo6TW9ja0xheWVyVHJlZUhvc3RDbGllbnQ6OndpbGxCZWdpbkZyYW1l
KToKKyAgICAgICAgKE1vY2tMYXllclRyZWVIb3N0Q2xpZW50KToKKyAgICAgICAgKFdURjo6TW9j
a0xheWVyVHJlZUhvc3RDbGllbnQ6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoV1RGOjpD
Q0xheWVyVHJlZUhvc3RUZXN0U2V0TmVlZHNBbmltYXRlSW5zaWRlQW5pbWF0aW9uQ2FsbGJhY2s6
OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHRlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RD
bGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6Ondp
bGxCZWdpbkZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGll
bnQ6OnVwZGF0ZUFuaW1hdGlvbnMpOgorCiAyMDEyLTAzLTIzICBTaGF3biBTaW5naCAgPHNoYXdu
c2luZ2hAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gSW5jb3JyZWN0IHJlcGxp
Y2Egb3JpZ2luVHJhbnNmb3JtIHVzZWQgaW4gQ0NEYW1hZ2VUcmFja2VyCmRpZmYgLS1naXQgYS9T
b3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaCBiL1NvdXJj
ZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCmluZGV4IDNlZjI5
NWQ5NDU1OTgzMTk3M2NjYWI1ZWMyNTBjMjcwMTg4ZDQwNGUuLjIxOWJmYzI2MzhkZTA0ZDk0ZTBi
ODMyMGRlOGNmMWE0ODNkZmVmOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlldy5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
V2ViUHJpdmF0ZVB0ci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBDQ0xheWVyVHJl
ZUhvc3Q7CiBzdHJ1Y3QgQ0NTZXR0aW5nczsKIH0KIApAQCAtMzgsNiArMzcsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIGNsYXNzIFdlYkdyYXBoaWNzQ29udGV4dDNEOwogY2xhc3MgV2ViTGF5ZXI7
CiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50OworY2xhc3MgV2ViTGF5ZXJUcmVlVmlld0lt
cGw7CiBzdHJ1Y3QgV2ViUG9pbnQ7CiBzdHJ1Y3QgV2ViUmVjdDsKIHN0cnVjdCBXZWJTaXplOwpA
QCAtMTQxLDcgKzE0MSw5IEBAIHB1YmxpYzoKICAgICAvLyBJbW1lZGlhdGVseSB1cGRhdGUgYW5p
bWF0aW9ucy4gVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIHdoZW4gZnJhbWUgc2NoZWR1bGluZyBp
cyBoYW5kbGVkIGJ5CiAgICAgLy8gdGhlIFdlYkxheWVyVHJlZVZpZXcgdXNlciBhbmQgbm90IGlu
dGVybmFsbHkgYnkgdGhlIGNvbXBvc2l0b3IsIG1lYW5pbmcgb25seSBpbiBzaW5nbGUtdGhyZWFk
ZWQKICAgICAvLyBtb2RlLgotICAgIFdFQktJVF9FWFBPUlQgdm9pZCB1cGRhdGVBbmltYXRpb25z
KGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7CisgICAgLy8KKyAgICAvLyBGSVhNRTogcmVtb3ZlIGRl
ZmF1bHQgYXJ1Z21lbnQgb24gbW9ub3RvbmljRnJhbWVCZWdpblRpbWUgd2hlbiB1cHN0cmVhbSBk
ZXBlbmRlbmNpZXMgYXJlIHJlc29sdmVkLgorICAgIFdFQktJVF9FWFBPUlQgdm9pZCB1cGRhdGVB
bmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25p
Y0ZyYW1lQmVnaW5UaW1lID0gMCk7CiAKICAgICAvLyBDb21wb3NpdGVzIGFuZCBhdHRlbXB0cyB0
byByZWFkIGJhY2sgdGhlIHJlc3VsdCBpbnRvIHRoZSBwcm92aWRlZAogICAgIC8vIGJ1ZmZlci4g
SWYgaXQgd2Fzbid0IHBvc3NpYmxlLCBlLmcuIGR1ZSB0byBjb250ZXh0IGxvc3QsIHdpbGwgcmV0
dXJuCkBAIC0xNjYsNyArMTY4LDcgQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBs
b3NlQ29tcG9zaXRvckNvbnRleHQoaW50IG51bVRpbWVzKTsKIAogcHJvdGVjdGVkOgotICAgIFdl
YlByaXZhdGVQdHI8V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0PiBtX3ByaXZhdGU7CisgICAgV2Vi
UHJpdmF0ZVB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4gbV9wcml2YXRlOwogfTsKIAogaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBXZWJMYXllclRyZWVWaWV3JiBhLCBjb25zdCBXZWJMYXll
clRyZWVWaWV3JiBiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1Ymxp
Yy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCA1YzBiOWVmOWEyYTJjNjEzYjExOTAw
YzEzZjg5OGYyMjgzOWI0NjViLi40YTQ1MjVlYzRkNGRiZmU2NzkzYzBiODM2MGIxNWFiMDQ2YjFk
YzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVy
VHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtMzMsOSArMzMsMTkgQEAgY2xhc3MgV2ViVGhyZWFk
OwogCiBjbGFzcyBXZWJMYXllclRyZWVWaWV3Q2xpZW50IHsKIHB1YmxpYzoKLSAgICAvLyBVcGRh
dGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0LiBUaGVzZSBhcmUgY2FsbGVkIGJlZm9yZSB0aGUgY29t
cG9zaXRpbmcKKyAgICAvLyBJbmRpY2F0ZXMgdG8gdGhlIGVtYmVkZGVyIHRoYXQgdGhlIGNvbXBv
c2l0b3IgaXMgYWJvdXQgdG8gYmVnaW4gYQorICAgIC8vIGZyYW1lLiBUaGlzIGlzIGlzIGEgc2ln
bmFsIHRvIGZsb3cgY29udHJvbCBtZWNoYW5pc21zIHRoYXQgYSBmcmFtZSBpcworICAgIC8vIGJl
Z2lubmluZy4gVGhpcyBjYWxsIHdpbGwgYmUgZm9sbG93ZWQgYnkgdXBkYXRlQW5pbWF0aW9ucyBh
bmQgdGhlbiBsYXlvdXQsIHdoaWNoIHNob3VsZAorICAgIC8vIGJlIHVzZWQgZm9yIGFjdHVhbCBh
bmltYXRpb24gb3IgdHJlZSBtYW5pcHVsYXRpb24gdGFza3MuCisgICAgLy8gRklYTUU6IG1ha2Ug
cHVyZSB2aXJ0dWFsIG9uY2UgdXBzdHJlYW0gZGVwcyBhcmUgc2F0aXNmaWVkLgorICAgIHZpcnR1
YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgpIHsgfQorCisgICAgLy8gVXBkYXRlcyBhbmltYXRpb24g
YW5kIGxheW91dC4gQm90aCBmbGF2b3JzIGFyZSBjYWxsZWQgYmVmb3JlIHRoZSBjb21wb3NpdGlu
ZwogICAgIC8vIHBhc3Mgc28gdGhhdCBsYXllcnMgY2FuIGJlIHVwZGF0ZWQgYXQgdGhlIGdpdmVu
IGZyYW1lIHRpbWUuCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZy
YW1lQmVnaW5UaW1lKSA9IDA7CisgICAgLy8gVGhlIG9uZSBhcmd1bWVudCB2ZXJzaW9uIGlzIERF
UFJFQ0FURUQuIFVzZSB0aGUgdHdvLWFyZ3VtZW50IHZlcnNpb24uCisgICAgLy8gRklYTUU6IHJl
bW92ZSB0aGUgb25lIGFyZ3VtZW50IHZlcnNpb24uCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFu
aW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpID0gMDsK
IAogICAgIC8vIEFwcGxpZXMgYSBzY3JvbGwgZGVsdGEgdG8gdGhlIHJvb3QgbGF5ZXIsIHdoaWNo
IGlzIGJ1bmRsZWQgd2l0aCBhIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCmlu
ZGV4IDAyOTBhNzUzOTRlNjY1Mjg3ODdhM2JjZDQ5YzhlNmZmNzk2YTRmOGMuLjgzM2QxNjY1ZDFm
MjNiZDc4MGZlMDVkMTIyYTAxYThhZWQ4OWJjYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmNwcApAQCAtMTc5LDExICsxNzksMTYgQEAgdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRlbGV0
ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxUaHJlYWQoVGV4dHVyZUFsbG9jYXRvciogYWxsb2MKICAg
ICAgICAgbV9jb250ZW50c1RleHR1cmVNYW5hZ2VyLT5ldmljdEFuZERlbGV0ZUFsbFRleHR1cmVz
KGFsbG9jYXRvcik7CiB9CiAKLXZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVBbmltYXRpb25z
KGRvdWJsZSB3YWxsQ2xvY2tUaW1lKQordm9pZCBDQ0xheWVyVHJlZUhvc3Q6OndpbGxCZWdpbkZy
YW1lKCkKK3sKKyAgICBtX2NsaWVudC0+d2lsbEJlZ2luRnJhbWUoKTsKK30KKwordm9pZCBDQ0xh
eWVyVHJlZUhvc3Q6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5U
aW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7CiAgICAgbV9hbmltYXRpbmcg
PSB0cnVlOwotICAgIG1fY2xpZW50LT51cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja1RpbWUpOwot
ICAgIGFuaW1hdGVMYXllcnMobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpOworICAgIG1f
Y2xpZW50LT51cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBtb25vdG9u
aWNGcmFtZUJlZ2luVGltZSk7CisgICAgYW5pbWF0ZUxheWVycyhtb25vdG9uaWNGcmFtZUJlZ2lu
VGltZSk7CiAgICAgbV9hbmltYXRpbmcgPSBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuaAppbmRleCA3MzkwZWMzNGE5ZTdiOGQwMzA2YjNkNjY5NDYxMWUwMGE0ZDcyNzY0Li44
NWZjMmFkMDg5N2U3Y2E1YzZlMGQ3ZmVlMWVjYTk1YmJlN2U4YjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuaApAQCAtNTIsNyArNTIsMTAgQEAgY2xhc3MgVGV4dHVyZU1hbmFnZXI7CiAK
IGNsYXNzIENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKSA9IDA7CisgICAgLy8gQ2Fs
bGVkIG9ubHkgaW4gdGhyZWFkZWQgbW9kZS4KKyAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJh
bWUoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2Fs
bENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2Fs
ZSkgPSAwOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRl
Q29udGV4dCgpID0gMDsKQEAgLTEyOSw3ICsxMzIsOCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJv
b2wgYW55TGF5ZXJUcmVlSG9zdEluc3RhbmNlRXhpc3RzKCk7CiAKICAgICAvLyBDQ0xheWVyVHJl
ZUhvc3QgaW50ZXJmYWNlIHRvIENDUHJveHkuCi0gICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSB3YWxsQ2xvY2tUaW1lKTsKKyAgICB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7CisgICAgdm9p
ZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91Ymxl
IG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAgICB2b2lkIGxheW91dCgpOwogICAgIHZvaWQg
YmVnaW5Db21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopOwogICAgIHZvaWQg
ZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZGNmYTNiZDM1ZWY4NTE3NjgxNjY5MTRmNDNkZWEzMDhj
ZWVmYmFhNS4uNTNiNzA0M2UzNTczMjFmZmJiYjM3MjhjMTYyZGYxZGFiMzlkY2U4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJl
YWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM5OSw3ICszOTksOCBAQCB2b2lkIENDVGhyZWFk
UHJveHk6OnNjaGVkdWxlZEFjdGlvbkJlZ2luRnJhbWUoKQogICAgIFRSQUNFX0VWRU5UMCgiY2Mi
LCAiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSIpOwogICAgIEFTU0VS
VCghbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QpOwogICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVS
ZXF1ZXN0ID0gYWRvcHRQdHIobmV3IEJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZSgpKTsKLSAgICBt
X3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdC0+ZnJhbWVCZWdpblRpbWUgPSBjdXJyZW50VGltZSgp
OworICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0LT53YWxsQ2xvY2tGcmFtZUJlZ2luVGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAg
bV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPnNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJ
bXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAKICAgICBtX21haW5UaHJlYWRQcm94eS0+cG9z
dFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
KSk7CkBAIC00NDAsOCArNDQxLDEwIEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6YmVnaW5GcmFtZSgp
CiAgICAgLy8gUmUtZG8gdGhlIGNvbW1pdCBmbG93IHNvIHRoYXQgd2UgZG9uJ3Qgc2VuZCB0aGUg
c2Nyb2xsSW5mbyBvbiB0aGUgQkZBQyBtZXNzYWdlLgogICAgIG1fbGF5ZXJUcmVlSG9zdC0+YXBw
bHlTY3JvbGxBbmRTY2FsZSgqcmVxdWVzdC0+c2Nyb2xsSW5mbyk7CiAKKyAgICBtX2xheWVyVHJl
ZUhvc3QtPndpbGxCZWdpbkZyYW1lKCk7CisKICAgICAvLyBGSVhNRTogcmVjcmVhdGUgdGhlIGNv
bnRleHQgaWYgaXQgd2FzIHJlcXVlc3RlZCBieSB0aGUgaW1wbCB0aHJlYWQuCi0gICAgbV9sYXll
clRyZWVIb3N0LT51cGRhdGVBbmltYXRpb25zKHJlcXVlc3QtPmZyYW1lQmVnaW5UaW1lKTsKKyAg
ICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUFuaW1hdGlvbnMocmVxdWVzdC0+d2FsbENsb2NrRnJh
bWVCZWdpblRpbWUsIHJlcXVlc3QtPm1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAgICBtX2xh
eWVyVHJlZUhvc3QtPmxheW91dCgpOwogCiAgICAgLy8gQ2xlYXIgdGhlIGNvbW1pdCBmbGFnIGFm
dGVyIHVwZGF0aW5nIGFuaW1hdGlvbnMgYW5kIGxheW91dCBoZXJlIC0tLSBvYmplY3RzIHRoYXQg
b25seQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCmluZGV4IDQ4NjFmNzkwOTI2MDFjMDA1YTA1MDUy
MGQ1NDdlZDIxY2RmOWQ3YTAuLjZiNTQxZTE4ZTlkOWNlNjE4N2Y0NWFkMTE4ZWNmNTcyNGIwYzRk
MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVGhyZWFkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKQEAgLTkzLDggKzkzLDkgQEAgcHJpdmF0ZToK
IAogICAgIC8vIFNldCBvbiBpbXBsIHRocmVhZCwgcmVhZCBvbiBtYWluIHRocmVhZC4KICAgICBz
dHJ1Y3QgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlIHsKLSAgICAgICAgQmVnaW5GcmFtZUFuZENv
bW1pdFN0YXRlKCkgOiBmcmFtZUJlZ2luVGltZSgpIHsgfQotICAgICAgICBkb3VibGUgZnJhbWVC
ZWdpblRpbWU7CisgICAgICAgIEJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZSgpIDogd2FsbENsb2Nr
RnJhbWVCZWdpblRpbWUoMCksIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKDApIHsgfQorICAgICAg
ICBkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWU7CisgICAgICAgIGRvdWJsZSBtb25vdG9u
aWNGcmFtZUJlZ2luVGltZTsKICAgICAgICAgT3duUHRyPENDU2Nyb2xsQW5kU2NhbGVTZXQ+IHNj
cm9sbEluZm87CiAgICAgfTsKICAgICBPd25QdHI8QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlPiBt
X3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYldpZGdldENsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgKaW5kZXggNDZiNWQ5ZTJiYTQyNzdiOGRmOTU3YWFlNjBk
NGJiZWU0MDc2MmUyMy4uYjhmYmM0OTk2ZjY5ZDliNTMzYWM0ZTA0ZGZlOTY3MzhlZDEwZGE5NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0Q2xpZW50LmgK
QEAgLTQ1LDYgKzQ1LDEwIEBAIHN0cnVjdCBXZWJTaXplOwogCiBjbGFzcyBXZWJXaWRnZXRDbGll
bnQgewogcHVibGljOgorICAgIC8vIENhbGxlZCB3aGVuIHRoZSBXZWJXaWRnZXQgd2lsbCBiZWdp
biB1cGRhdGluZyB0aGUgc2NyZWVuLiBPbmx5IGNhbGxlZAorICAgIC8vIHdoZW4gdGhlIFdlYldp
ZGdldCBpcyBzZWxmLXNjaGVkdWxlZCAodGhyZWFkZWQgbW9kZSwgYnV0IG1vcmUgc29vbikuCisg
ICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbkZyYW1lKCkgeyB9CisKICAgICAvLyBDYWxsZWQgd2hl
biBhIHJlZ2lvbiBvZiB0aGUgV2ViV2lkZ2V0IG5lZWRzIHRvIGJlIHJlLXBhaW50ZWQuCiAgICAg
dmlydHVhbCB2b2lkIGRpZEludmFsaWRhdGVSZWN0KGNvbnN0IFdlYlJlY3QmKSB7IH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAppbmRleCAz
MzE0ZGMyZjU0NGMxY2E4YzU5YzQ3MmJjMDI1ZThjMDA3ZjcwMWYwLi5iOTlkYTZlOGY1M2RmYWYz
NjdhNjdlZjJhOWJhMDVmNWNkODQxOTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcApAQCAtMTMwLDkgKzEzMCw5IEBAIHZvaWQgV2ViTGF5
ZXJUcmVlVmlldzo6Y29tcG9zaXRlKCkKICAgICAgICAgbV9wcml2YXRlLT5jb21wb3NpdGUoKTsK
IH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFt
ZUJlZ2luVGltZSkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6dXBkYXRlQW5pbWF0aW9ucyhkb3Vi
bGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGlt
ZSkKIHsKLSAgICBtX3ByaXZhdGUtPnVwZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUpOwor
ICAgIG1fcHJpdmF0ZS0+dXBkYXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwg
bW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogfQogCiBib29sIFdlYkxheWVyVHJlZVZpZXc6OmNv
bXBvc2l0ZUFuZFJlYWRiYWNrKHZvaWQgKnBpeGVscywgY29uc3QgV2ViUmVjdCYgcmVjdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNw
cAppbmRleCAzMzU4NzliNjYwNTM0YTRiYzc1N2U1MTc3NGYzMmZmZGM2N2U3ZmVjLi5jYzBiNDU2
YzgyNWVmZTdhMTllNGZkZjBlNWM0YmY3NjhhMDgwNzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC0zNiw4MSArMzYs
MTg3IEBACiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlNpemUuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJUaHJlYWQu
aCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Cit1c2luZyBuYW1lc3BhY2UgV1RGOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3Mg
Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlciA6IHB1
YmxpYyBDQ0xheWVyVHJlZUhvc3RDbGllbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzT3du
UHRyPENDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI+
IGNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xpZW50KiBjbGllbnQpCisgICAgeworICAgICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IENDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmll
d0NsaWVudEFkYXB0ZXIoY2xpZW50KSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHdpbGxC
ZWdpbkZyYW1lKCkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT53aWxsQmVnaW5GcmFtZSgpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xv
Y2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQorICAgIHsK
KyAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUFuaW1hdGlvbnMod2FsbENsb2NrRnJhbWVCZWdpblRp
bWUpOworICAgICAgICBtX2NsaWVudC0+dXBkYXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tGcmFtZUJl
Z2luVGltZSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOworICAgIH0KKworICAgIHZpcnR1YWwg
dm9pZCBsYXlvdXQoKQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmxheW91dCgpOworICAgIH0K
KworICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpCisgICAgeworICAgICAgICBtX2Ns
aWVudC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKHNjcm9sbERlbHRhKSwgcGFnZVNjYWxl
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNy
ZWF0ZUNvbnRleHQoKQorICAgIHsKKyAgICAgICAgT3duUHRyPFdlYkdyYXBoaWNzQ29udGV4dDNE
PiB3ZWJDb250ZXh0ID0gYWRvcHRQdHIobV9jbGllbnQtPmNyZWF0ZUNvbnRleHQzRCgpKTsKKyAg
ICAgICAgaWYgKCF3ZWJDb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuIDA7CisKKyAgICAgICAg
cmV0dXJuIEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3NDb250ZXh0RnJv
bVdlYkNvbnRleHQod2ViQ29udGV4dC5yZWxlYXNlKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5k
ZXJEaXJlY3RseVRvSG9zdFdpbmRvdywgZmFsc2UgLyogcHJlc2VydmVEcmF3aW5nQnVmZmVyICov
ICk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGRpZFJlY3JlYXRlQ29udGV4dChib29sIHN1
Y2Nlc3MpCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0
KHN1Y2Nlc3MpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJh
bWUoKQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZENvbW1pdEFuZERyYXdGcmFtZSgpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkKKyAgICB7
CisgICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7CisgICAgfQorCisg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRlKCkKKyAgICB7CisgICAgICAgIG1fY2xp
ZW50LT5zY2hlZHVsZUNvbXBvc2l0ZSgpOworICAgIH0KKworcHJpdmF0ZToKKyAgICBDQ0xheWVy
VHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyKFdlYkxheWVyVHJl
ZVZpZXdDbGllbnQqIGNsaWVudCkKKyAgICAgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgewor
ICAgICAgICBBU1NFUlQobV9jbGllbnQpOworICAgIH0KKworICAgIFdlYkxheWVyVHJlZVZpZXdD
bGllbnQqIG1fY2xpZW50OworfTsKKwogUGFzc1JlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4g
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZShXZWJMYXllclRyZWVWaWV3Q2xpZW50KiBjbGll
bnQsIGNvbnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5n
cyYgc2V0dGluZ3MpCiB7Ci0gICAgUmVmUHRyPFdlYkxheWVyVHJlZVZpZXdJbXBsPiBob3N0ID0g
YWRvcHRSZWYobmV3IFdlYkxheWVyVHJlZVZpZXdJbXBsKGNsaWVudCwgc2V0dGluZ3MpKTsKLSAg
ICBpZiAoIWhvc3QtPmluaXRpYWxpemUoKSkKKyAgICBSZWZQdHI8V2ViTGF5ZXJUcmVlVmlld0lt
cGw+IGltcGwgPSBhZG9wdFJlZihuZXcgV2ViTGF5ZXJUcmVlVmlld0ltcGwoY2xpZW50KSk7Cisg
ICAgaWYgKCFpbXBsLT5pbml0aWFsaXplKHJvb3QsIHNldHRpbmdzKSkKICAgICAgICAgcmV0dXJu
IDA7Ci0gICAgaG9zdC0+c2V0Um9vdExheWVyKHJvb3QpOwotICAgIHJldHVybiBob3N0OworICAg
IHJldHVybiBpbXBsOwogfQogCi1XZWJMYXllclRyZWVWaWV3SW1wbDo6V2ViTGF5ZXJUcmVlVmll
d0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogY2xpZW50LCBjb25zdCBXZWJMYXllclRyZWVW
aWV3OjpTZXR0aW5ncyYgc2V0dGluZ3MpIAotICAgIDogQ0NMYXllclRyZWVIb3N0KHRoaXMsIHNl
dHRpbmdzKQotICAgICwgbV9jbGllbnQoY2xpZW50KQorV2ViTGF5ZXJUcmVlVmlld0ltcGw6Oldl
YkxheWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCkKKyAgICA6
IG1fY2xpZW50QWRhcHRlcihDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdD
bGllbnRBZGFwdGVyOjpjcmVhdGUoY2xpZW50KSkKIHsKIH0KIAorYm9vbCBXZWJMYXllclRyZWVW
aWV3SW1wbDo6aW5pdGlhbGl6ZShjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJU
cmVlVmlldzo6U2V0dGluZ3MmIHNldHRpbmdzKQoreworICAgIG1faG9zdCA9IENDTGF5ZXJUcmVl
SG9zdDo6Y3JlYXRlKG1fY2xpZW50QWRhcHRlci5nZXQoKSwgc2V0dGluZ3MpOworICAgIGlmICgh
bV9ob3N0KQorICAgICAgICByZXR1cm4gMDsKKyAgICBtX2hvc3QtPnNldFJvb3RMYXllcihyb290
KTsKKyAgICByZXR1cm4gbV9ob3N0OworfQorCiBXZWJMYXllclRyZWVWaWV3SW1wbDo6fldlYkxh
eWVyVHJlZVZpZXdJbXBsKCkKIHsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6dXBk
YXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpCit2b2lkIFdlYkxheWVyVHJlZVZp
ZXdJbXBsOjpzZXRSb290TGF5ZXIoUGFzc1JlZlB0cjxMYXllckNocm9taXVtPiBsYXllcikKIHsK
LSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT51cGRhdGVBbmltYXRpb25zKGZy
YW1lQmVnaW5UaW1lKTsKKyAgICBtX2hvc3QtPnNldFJvb3RMYXllcihsYXllcik7CiB9CiAKLXZv
aWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmxheW91dCgpCitpbnQgV2ViTGF5ZXJUcmVlVmlld0lt
cGw6OmNvbXBvc2l0b3JJZGVudGlmaWVyKCkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAg
IG1fY2xpZW50LT5sYXlvdXQoKTsKKyAgICByZXR1cm4gbV9ob3N0LT5jb21wb3NpdG9ySWRlbnRp
ZmllcigpOwogfQogCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjphcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUp
Cit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5hcHBseVNj
cm9sbEFuZFNjYWxlKFdlYlNpemUoc2Nyb2xsRGVsdGEpLCBwYWdlU2NhbGUpOworICAgIG1faG9z
dC0+c2V0Vmlld3BvcnRTaXplKHNpemUpOwogfQogCi1QYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4
dDNEPiBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y3JlYXRlQ29udGV4dCgpCitJbnRTaXplIFdlYkxh
eWVyVHJlZVZpZXdJbXBsOjp2aWV3cG9ydFNpemUoKSBjb25zdAogewotICAgIGlmICghbV9jbGll
bnQpCi0gICAgICAgIHJldHVybiAwOwotICAgIE93blB0cjxXZWJHcmFwaGljc0NvbnRleHQzRD4g
d2ViQ29udGV4dCA9IGFkb3B0UHRyKG1fY2xpZW50LT5jcmVhdGVDb250ZXh0M0QoKSk7Ci0gICAg
aWYgKCF3ZWJDb250ZXh0KQotICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9ob3N0LT52
aWV3cG9ydFNpemUoKTsKK30KIAotICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6
OmNyZWF0ZUdyYXBoaWNzQ29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgp
LCBHcmFwaGljc0NvbnRleHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3csIGZhbHNlIC8q
IHByZXNlcnZlRHJhd2luZ0J1ZmZlciAqLyApOwordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6
c2V0VmlzaWJsZShib29sIHZpc2libGUpCit7CisgICAgbV9ob3N0LT5zZXRWaXNpYmxlKHZpc2li
bGUpOwogfQogCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpkaWRSZWNyZWF0ZUNvbnRleHQo
Ym9vbCBzdWNjZXNzKQordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0UGFnZVNjYWxlRmFj
dG9yQW5kTGltaXRzKGZsb2F0IHBhZ2VTY2FsZUZhY3RvciwgZmxvYXQgbWluaW11bSwgZmxvYXQg
bWF4aW11bSkKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWJp
bmRHcmFwaGljc0NvbnRleHQoc3VjY2Vzcyk7CisgICAgbV9ob3N0LT5zZXRQYWdlU2NhbGVGYWN0
b3JBbmRMaW1pdHMocGFnZVNjYWxlRmFjdG9yLCBtaW5pbXVtLCBtYXhpbXVtKTsKIH0KIAotdm9p
ZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCkKK3ZvaWQgV2Vi
TGF5ZXJUcmVlVmlld0ltcGw6OnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IEludFNpemUm
IHRhcmdldFBvc2l0aW9uLCBib29sIHVzZUFuY2hvciwgZmxvYXQgc2NhbGUsIGRvdWJsZSBkdXJh
dGlvblNlYykKIHsKLSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDb21t
aXRBbmREcmF3RnJhbWUoKTsKKyAgICBtX2hvc3QtPnN0YXJ0UGFnZVNjYWxlQW5pbWF0aW9uKHRh
cmdldFBvc2l0aW9uLCB1c2VBbmNob3IsIHNjYWxlLCBkdXJhdGlvblNlYyk7CiB9CiAKLXZvaWQg
V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKQordm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6c2V0TmVlZHNDb21taXQoKQogewotICAgIGlmIChtX2NsaWVudCkK
LSAgICAgICAgbV9jbGllbnQtPmRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsKKyAgICBtX2hvc3Qt
PnNldE5lZWRzQ29tbWl0KCk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNjaGVk
dWxlQ29tcG9zaXRlKCkKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzQW5pbWF0
ZSgpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21w
b3NpdGUoKTsKKyAgICBtX2hvc3QtPnNldE5lZWRzQW5pbWF0ZSgpOworfQorCit2b2lkIFdlYkxh
eWVyVHJlZVZpZXdJbXBsOjpzZXROZWVkc1JlZHJhdygpCit7CisgICAgbV9ob3N0LT5zZXROZWVk
c1JlZHJhdygpOworfQorCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGUoKQor
eworICAgIG1faG9zdC0+Y29tcG9zaXRlKCk7Cit9CisKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0lt
cGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCit7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlz
IG9uY2UgdXBzdHJlYW0gZW1iZWRkZXJzIHBhc3MgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUKKyAg
ICBpZiAoIW1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQorICAgICAgICBtb25vdG9uaWNGcmFtZUJl
Z2luVGltZSA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpOworICAgIG1faG9zdC0+dXBk
YXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgbW9ub3RvbmljRnJhbWVCZWdp
blRpbWUpOworfQorCitib29sIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpjb21wb3NpdGVBbmRSZWFk
YmFjayh2b2lkICpwaXhlbHMsIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIG1f
aG9zdC0+Y29tcG9zaXRlQW5kUmVhZGJhY2socGl4ZWxzLCByZWN0KTsKK30KKwordm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6ZmluaXNoQWxsUmVuZGVyaW5nKCkKK3sKKyAgICBtX2hvc3QtPmZp
bmlzaEFsbFJlbmRlcmluZygpOworfQorCitHcmFwaGljc0NvbnRleHQzRCogV2ViTGF5ZXJUcmVl
Vmlld0ltcGw6OmNvbnRleHQoKQoreworICAgIHJldHVybiBtX2hvc3QtPmNvbnRleHQoKTsKK30K
Kwordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6bG9zZUNvbnRleHQoaW50IG51bVRpbWVzKQor
eworICAgIG1faG9zdC0+bG9zZUNvbnRleHQobnVtVGltZXMpOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3SW1wbC5oCmluZGV4IGIxYjI2ZDBmYzMzODYwNGZlNWNmMzgwNzFmNTBhOGMzNTg2NDUyZmIu
LjljZjRkNWQ5MTk1OTlhNTBiN2VkNTBkZjk0NmYyNjA5ZTlkMDg2ODMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaApAQCAtMzQsMjUg
KzM0LDM1IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViTGF5ZXI7CiBjbGFzcyBXZWJM
YXllclRyZWVWaWV3Q2xpZW50OwogCi1jbGFzcyBXZWJMYXllclRyZWVWaWV3SW1wbCA6IHB1Ymxp
YyBXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3QsIHB1YmxpYyBXZWJDb3JlOjpDQ0xheWVyVHJlZUhv
c3RDbGllbnQgeworY2xhc3MgQ0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3
Q2xpZW50QWRhcHRlcjsKK2NsYXNzIFdlYkxheWVyVHJlZVZpZXdJbXBsIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxXZWJMYXllclRyZWVWaWV3SW1wbD4gY3JlYXRlKFdlYkxheWVyVHJlZVZpZXdDbGllbnQq
LCBjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3Mm
KTsKKyAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3SW1wbCgpOworCisgICAgYm9vbCBpbml0
aWFsaXplKGNvbnN0IFdlYkxheWVyJiByb290LCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0
aW5ncyYpOworICAgIHZvaWQgc2V0Um9vdExheWVyKFBhc3NSZWZQdHI8V2ViQ29yZTo6TGF5ZXJD
aHJvbWl1bT4pOworICAgIGludCBjb21wb3NpdG9ySWRlbnRpZmllcigpOworICAgIHZvaWQgc2V0
Vmlld3BvcnRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsKKyAgICBXZWJDb3JlOjpJbnRT
aXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0VmlzaWJsZShib29sKTsKKyAg
ICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvckFuZExpbWl0cyhmbG9hdCBwYWdlU2NhbGVGYWN0b3Is
IGZsb2F0IG1pbmltdW0sIGZsb2F0IG1heGltdW0pOworICAgIHZvaWQgc3RhcnRQYWdlU2NhbGVB
bmltYXRpb24oY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdGFyZ2V0UG9zaXRpb24sIGJvb2wgdXNl
QW5jaG9yLCBmbG9hdCBzY2FsZSwgZG91YmxlIGR1cmF0aW9uU2VjKTsKKyAgICB2b2lkIHNldE5l
ZWRzQ29tbWl0KCk7CisgICAgdm9pZCBzZXROZWVkc0FuaW1hdGUoKTsKKyAgICB2b2lkIHNldE5l
ZWRzUmVkcmF3KCk7CisgICAgdm9pZCBjb21wb3NpdGUoKTsKKyAgICB2b2lkIHVwZGF0ZUFuaW1h
dGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpOworICAgIGJvb2wgY29tcG9zaXRlQW5kUmVhZGJhY2sodm9pZCAqcGl4ZWxz
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CisgICAgdm9pZCBmaW5pc2hBbGxSZW5kZXJpbmco
KTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRCogY29udGV4dCgpOworICAgIHZvaWQg
bG9zZUNvbnRleHQoaW50IG51bVRpbWVzKTsKIAogcHJpdmF0ZToKLSAgICBXZWJMYXllclRyZWVW
aWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXJUcmVlVmlldzo6
U2V0dGluZ3MmKTsKLSAgICB2aXJ0dWFsIH5XZWJMYXllclRyZWVWaWV3SW1wbCgpOwotICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSk7Ci0gICAg
dmlydHVhbCB2b2lkIGxheW91dCgpOwotICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNj
YWxlKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUp
OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3Jl
YXRlQ29udGV4dCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUNvbnRleHQoYm9vbCBz
dWNjZXNzKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7Ci0gICAg
dmlydHVhbCB2b2lkIGRpZENvbXBsZXRlU3dhcEJ1ZmZlcnMoKTsKLQotICAgIC8vIE9ubHkgdXNl
ZCBpbiB0aGUgc2luZ2xlIHRocmVhZGVkIHBhdGguCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRlKCk7Ci0KLSAgICBXZWJMYXllclRyZWVWaWV3Q2xpZW50KiBtX2NsaWVudDsKKyAg
ICBXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50Kik7CisKKyAgICBP
d25QdHI8Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRl
cj4gbV9jbGllbnRBZGFwdGVyOworICAgIFJlZlB0cjxXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q+
IG1faG9zdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGM0N2ZkZGFhZWU2ZTVmYTUwMjBjYTU5MjAx
ZWY2ZTlmY2I3ZjQzMTguLjFjYzFhN2I5MzZiZDMwMGIwYTA2OGFiNTA4NTJkMTIwYTIwN2QwNWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTEzMzAs
NiArMTMzMCwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjppbnN0cnVtZW50Q2FuY2VsRnJhbWUoKQog
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2FuY2VsRnJhbWUobV9wYWdlLmdldCgp
KTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6d2lsbEJlZ2luRnJhbWUoKQoreworICAgIG1fY2xp
ZW50LT53aWxsQmVnaW5GcmFtZSgpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjphbmltYXRlKGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkKIHsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpCkBAIC0xMzM3LDE5ICsxMzQyLDIwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91
YmxlIGZyYW1lQmVnaW5UaW1lKQogICAgIC8vIHBhc3MgaW4gYSBmcmFtZUJlZ2luVGltZS4KICAg
ICBpZiAoIWZyYW1lQmVnaW5UaW1lKQogICAgICAgICBmcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRU
aW1lKCk7CisgICAgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAg
ICAgLy8gSW4gY29tcG9zaXRlZCBtb2RlLCB3ZSBhbHdheXMgZ28gdGhyb3VnaCB0aGUgY29tcG9z
aXRvciBzbyBpdCBjYW4gYXBwbHkKICAgICAvLyBhcHByb3ByaWF0ZSBmbG93LWNvbnRyb2wgbWVj
aGFuaXNtcy4KICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCi0gICAg
ICAgIG1fbGF5ZXJUcmVlVmlldy51cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAg
ICAgICAgbV9sYXllclRyZWVWaWV3LnVwZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUsIG1v
bm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgdXBkYXRl
QW5pbWF0aW9ucyhmcmFtZUJlZ2luVGltZSk7CisgICAgICAgIHVwZGF0ZUFuaW1hdGlvbnMoZnJh
bWVCZWdpblRpbWUsIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICNlbmRpZgogfQogCi12b2lk
IFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKK3Zv
aWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVn
aW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7CiAjaWYgRU5BQkxFKFJF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIFRSQUNFX0VWRU5UKCJXZWJWaWV3SW1wbDo6dXBk
YXRlQW5pbWF0aW9ucyIsIHRoaXMsIDApOwpAQCAtMTM2MywxMyArMTM2OSwxMyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKIAogICAg
IC8vIENyZWF0ZSBzeW50aGV0aWMgd2hlZWwgZXZlbnRzIGFzIG5lY2Vzc2FyeSBmb3IgZmxpbmcu
CiAgICAgaWYgKG1fZ2VzdHVyZUFuaW1hdGlvbikgewotICAgICAgICBpZiAobV9nZXN0dXJlQW5p
bWF0aW9uLT5hbmltYXRlKGZyYW1lQmVnaW5UaW1lKSkKKyAgICAgICAgaWYgKG1fZ2VzdHVyZUFu
aW1hdGlvbi0+YW5pbWF0ZShtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkpCiAgICAgICAgICAgICBz
Y2hlZHVsZUFuaW1hdGlvbigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2dlc3R1cmVB
bmltYXRpb24uY2xlYXIoKTsKICAgICB9CiAKLSAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmlt
YXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoZnJhbWVCZWdpblRpbWUpKTsKKyAg
ICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1l
U3RhbXAod2FsbENsb2NrRnJhbWVCZWdpblRpbWUpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCAyMjkzOGFkNmJkNmM0OTc1Zjc0ZmUz
N2U0MTU0ODdmZWVjYTEyMTViLi4zMTljZTYzMWY2YzgwMzdlZGQ2MmRjYWJjMDNmNzQxODIxZGI1
YzkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTI1NCw3
ICsyNTQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVBhZ2VPdmVybGF5KFdl
YlBhZ2VPdmVybGF5Kik7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xpZW50Ci0gICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICB2
aXJ0dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5p
bWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNG
cmFtZUJlZ2luVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29u
c3QgV2ViU2l6ZSYsIGZsb2F0KTsKICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4dDNEKiBj
cmVhdGVDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmViaW5kR3JhcGhpY3NDb250
ZXh0KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXll
clRyZWVIb3N0VGVzdC5jcHAKaW5kZXggYzcyMzgzNzAyYzExM2UyMTBjMzQ0MjY3OTc3ZDk1YTg5
MzFiNGVlMi4uN2Q5Y2Y3NDE0MmNmNmJiZDZiYjNkODczMjRlMzk1ZDQ1ZjU2ZWY5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3Qu
Y3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVy
c09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQogICAgIHZpcnR1YWwgdm9pZCBh
bmltYXRlTGF5ZXJzKENDTGF5ZXJUcmVlSG9zdEltcGwqLCBkb3VibGUgbW9ub3RvbmljVGltZSkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYs
IGZsb2F0KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9u
b3RvbmljVGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91Ymxl
IHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmVjcmVhdGVDb250ZXh0KGJvb2wgc3VjY2VkZWQpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRD
b21taXRBbmREcmF3RnJhbWUoKSB7IH0KQEAgLTIyMCw5ICsyMjAsMTMgQEAgcHVibGljOgogICAg
ICAgICByZXR1cm4gYWRvcHRQdHIobmV3IE1vY2tMYXllclRyZWVIb3N0Q2xpZW50KHRlc3RIb29r
cykpOwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBt
b25vdG9uaWNUaW1lKQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgpCiAgICAgewot
ICAgICAgICBtX3Rlc3RIb29rcy0+dXBkYXRlQW5pbWF0aW9ucyhtb25vdG9uaWNUaW1lKTsKKyAg
ICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2Nr
RnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKKyAgICB7Cisg
ICAgICAgIG1fdGVzdEhvb2tzLT51cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja0ZyYW1lQmVnaW5U
aW1lLCBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB2b2lk
IGxheW91dCgpCkBAIC04NjksNyArODczLDcgQEAgcHVibGljOgogICAgICAgICBwb3N0U2V0TmVl
ZHNBbmltYXRlVG9NYWluVGhyZWFkKCk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFuaW1hdGlvbnMoZG91YmxlKQorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSwgZG91YmxlKQogICAgIHsKICAgICAgICAgaWYgKCFtX251bUFuaW1hdGVzKSB7CiAgICAg
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5lZWRzQW5pbWF0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQu
aAppbmRleCAzODg3NmQ3MzdmYjUyYWE2ZDAzYzcxYmZmZTQxNzI4YzhjY2NmMGI1Li4yMmE0N2Ew
ODU2NTFiNWY5YTc0Yzg4OWEzNWVhM2EwOGQ4ODMzMjZiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaApAQCAt
MzQsNyArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZha2VDQ0xheWVyVHJl
ZUhvc3RDbGllbnQgOiBwdWJsaWMgQ0NMYXllclRyZWVIb3N0Q2xpZW50IHsKIHB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCB3aWxsQmVnaW5GcmFtZSgpIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91Ymxl
IG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkgeyB9CiAgICAgdmlydHVhbCBQYXNzUmVmUHRy
PEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133735</attachid>
            <date>2012-03-25 23:38:09 -0700</date>
            <delta_ts>2012-03-27 17:24:43 -0700</delta_ts>
            <desc>Remove willBeginFrame code</desc>
            <filename>bug-82154-20120325233808.patch</filename>
            <type>text/plain</type>
            <size>28349</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExOTk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAwMzRkYTRhYTU1MzA5
MmFlNTdkOTIzZWI3YjQyYTA0NjQ4ZjNiYTc0Li42MGY0OWZkZTM1YjU1ZTMzZTA2NDkyMzc1MDZm
ODU5MzExOTEzYmYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMy0yNSAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0
ZSBtb25vdG9uaWMgY2xvY2sgdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXcuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToK
KyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oOgorICAg
ICAgICAoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdDbGllbnQ6OnVwZGF0ZUFuaW1hdGlvbnMpOgorCiAyMDEyLTAzLTIzICBUb255IENo
YW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZW5hbWUgbmV3
d3RmIHRhcmdldCBiYWNrIHRvIHd0ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDc0OGNhYzhlNGMzMmM1Y2YwYzQ4
ZWE4N2IzMDEwNjkxNTkwYjM1MjAuLmI0YzkzYjA4NzY1M2M2MWRiNGFjNWI5MDBjZGI1NjQxNTFl
Nzg5MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wMy0yNSAgTmF0IER1Y2Eg
IDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0ZSBtb25vdG9u
aWMgY2xvY2sgdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Q0NM
YXllclRyZWVIb3N0Ojp1cGRhdGVBbmltYXRpb25zKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVl
SG9zdENsaWVudCk6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlOjpCZWdp
bkZyYW1lQW5kQ29tbWl0U3RhdGUpOgorICAgICAgICAoQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRl
KToKKwogMjAxMi0wMy0yNCAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzLnBhbGVuY2lh
QG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYnVpbGQgZml4IHNpbmNlIHdl
IHVzZSAiLVdlcnJvcj11bnVzZWQtYnV0LXNldC12YXJpYWJsZSIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCmluZGV4IDBjNzBkM2NlOTA2ZWJjMzE1ODEyYjUxOTczMWY1YTcyMDlkZWRlMzEuLjA3
YjJhODQyZWViNWVlMGE3YzZlMjc4Nzc2MzE2ZGIzMWRhNjliZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMTItMDMtMjUgIE5hdCBEdWNhICA8bmR1Y2FA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gUm91dGUgbW9ub3RvbmljIGNsb2Nr
IG5vdGlmaWNhdGlvbiB1cCBmcm9tIGNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHA6CisgICAgICAgIChDQ0xheWVyVHJlZUhv
c3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyKToKKyAgICAgICAgKFdlYktp
dDo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXll
clRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJL
aXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6
OmxheW91dCk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5
ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OmFwcGx5U2Nyb2xsQW5kU2NhbGUpOgorICAgICAgICAo
V2ViS2l0OjpDQ0xheWVyVHJlZUhvc3RDbGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFw
dGVyOjpjcmVhdGVDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0Q2xp
ZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6ZGlkUmVjcmVhdGVDb250ZXh0KToK
KyAgICAgICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3
Q2xpZW50QWRhcHRlcjo6ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6ZGlk
Q29tcGxldGVTd2FwQnVmZmVycyk6CisgICAgICAgIChXZWJLaXQ6OkNDTGF5ZXJUcmVlSG9zdENs
aWVudFRvV2ViTGF5ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI6OnNjaGVkdWxlQ29tcG9zaXRlKToK
KyAgICAgICAgKFdlYktpdDo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3
Q2xpZW50QWRhcHRlcjo6Q0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xp
ZW50QWRhcHRlcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3SW1wbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmll
d0ltcGw6OldlYkxheWVyVHJlZVZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OmluaXRpYWxpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRyZWVW
aWV3SW1wbDo6c2V0Um9vdExheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmll
d0ltcGw6OmNvbXBvc2l0b3JJZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJU
cmVlVmlld0ltcGw6OnNldFZpZXdwb3J0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVy
VHJlZVZpZXdJbXBsOjp2aWV3cG9ydFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXllclRy
ZWVWaWV3SW1wbDo6c2V0VmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZp
ZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJMYXllclRyZWVWaWV3SW1wbDo6c3RhcnRQYWdlU2NhbGVBbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0TmVlZHNDb21taXQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0TmVlZHNBbmltYXRlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzUmVkcmF3KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKToKKyAgICAgICAgKFdl
YktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNvbXBvc2l0ZUFuZFJlYWRiYWNrKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OmZpbmlzaEFsbFJlbmRlcmluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYkxheWVyVHJlZVZpZXdJbXBsOjpjb250ZXh0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6Omxvc2VDb250ZXh0KToKKyAgICAgICAgKiBz
cmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJMYXllclRyZWVWaWV3SW1wbCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbmltYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorICAgICAgICAq
IHRlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwOgorICAgICAgICAoV1RGOjpUZXN0SG9va3M6
OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAoTW9ja0xheWVyVHJlZUhvc3RDbGllbnQpOgor
ICAgICAgICAoV1RGOjpNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6dXBkYXRlQW5pbWF0aW9ucyk6
CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RTZXROZWVkc0FuaW1hdGVJbnNpZGVB
bmltYXRpb25DYWxsYmFjazo6dXBkYXRlQW5pbWF0aW9ucyk6CisgICAgICAgICogdGVzdHMvRmFr
ZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudDo6dXBkYXRlQW5pbWF0aW9ucyk6CisKIDIwMTItMDMtMjMgIFNoYXduIFNp
bmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBJbmNv
cnJlY3QgcmVwbGljYSBvcmlnaW5UcmFuc2Zvcm0gdXNlZCBpbiBDQ0RhbWFnZVRyYWNrZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmll
dy5oIGIvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgK
aW5kZXggM2VmMjk1ZDk0NTU5ODMxOTczY2NhYjVlYzI1MGMyNzAxODhkNDA0ZS4uMjE5YmZjMjYz
OGRlMDRkOTRlMGI4MzIwZGU4Y2YxYTQ4M2RmZWY5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKKysrIGIvU291cmNlL1BsYXRm
b3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTMwLDcgKzMwLDYgQEAK
ICNpbmNsdWRlICJXZWJQcml2YXRlUHRyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNz
IENDTGF5ZXJUcmVlSG9zdDsKIHN0cnVjdCBDQ1NldHRpbmdzOwogfQogCkBAIC0zOCw2ICszNyw3
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7CiBjbGFz
cyBXZWJMYXllcjsKIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQ7CitjbGFzcyBXZWJMYXll
clRyZWVWaWV3SW1wbDsKIHN0cnVjdCBXZWJQb2ludDsKIHN0cnVjdCBXZWJSZWN0Owogc3RydWN0
IFdlYlNpemU7CkBAIC0xNDEsNyArMTQxLDkgQEAgcHVibGljOgogICAgIC8vIEltbWVkaWF0ZWx5
IHVwZGF0ZSBhbmltYXRpb25zLiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgd2hlbiBmcmFtZSBz
Y2hlZHVsaW5nIGlzIGhhbmRsZWQgYnkKICAgICAvLyB0aGUgV2ViTGF5ZXJUcmVlVmlldyB1c2Vy
IGFuZCBub3QgaW50ZXJuYWxseSBieSB0aGUgY29tcG9zaXRvciwgbWVhbmluZyBvbmx5IGluIHNp
bmdsZS10aHJlYWRlZAogICAgIC8vIG1vZGUuCi0gICAgV0VCS0lUX0VYUE9SVCB2b2lkIHVwZGF0
ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICAvLworICAgIC8vIEZJWE1F
OiByZW1vdmUgZGVmYXVsdCBhcnVnbWVudCBvbiBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSB3aGVu
IHVwc3RyZWFtIGRlcGVuZGVuY2llcyBhcmUgcmVzb2x2ZWQuCisgICAgV0VCS0lUX0VYUE9SVCB2
b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUgPSAwKTsKIAogICAgIC8vIENvbXBvc2l0ZXMgYW5k
IGF0dGVtcHRzIHRvIHJlYWQgYmFjayB0aGUgcmVzdWx0IGludG8gdGhlIHByb3ZpZGVkCiAgICAg
Ly8gYnVmZmVyLiBJZiBpdCB3YXNuJ3QgcG9zc2libGUsIGUuZy4gZHVlIHRvIGNvbnRleHQgbG9z
dCwgd2lsbCByZXR1cm4KQEAgLTE2Niw3ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgV0VCS0lUX0VY
UE9SVCB2b2lkIGxvc2VDb21wb3NpdG9yQ29udGV4dChpbnQgbnVtVGltZXMpOwogCiBwcm90ZWN0
ZWQ6Ci0gICAgV2ViUHJpdmF0ZVB0cjxXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q+IG1fcHJpdmF0
ZTsKKyAgICBXZWJQcml2YXRlUHRyPFdlYkxheWVyVHJlZVZpZXdJbXBsPiBtX3ByaXZhdGU7CiB9
OwogCiBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFdlYkxheWVyVHJlZVZpZXcmIGEsIGNv
bnN0IFdlYkxheWVyVHJlZVZpZXcmIGIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaCBiL1NvdXJjZS9QbGF0Zm9ybS9j
aHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCmluZGV4IDVjMGI5ZWY5YTJh
MmM2MTNiMTE5MDBjMTNmODk4ZjIyODM5YjQ2NWIuLjAxZmZjOGI2MDIxM2VmNTI0ZmZjNjdhNWVl
MTEwYTRiOGE2YmU0NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJs
aWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1
bS9wdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oCkBAIC0zMyw5ICszMywxMiBAQCBjbGFz
cyBXZWJUaHJlYWQ7CiAKIGNsYXNzIFdlYkxheWVyVHJlZVZpZXdDbGllbnQgewogcHVibGljOgot
ICAgIC8vIFVwZGF0ZXMgYW5pbWF0aW9uIGFuZCBsYXlvdXQuIFRoZXNlIGFyZSBjYWxsZWQgYmVm
b3JlIHRoZSBjb21wb3NpdGluZworICAgIC8vIFVwZGF0ZXMgYW5pbWF0aW9uIGFuZCBsYXlvdXQu
IEJvdGggZmxhdm9ycyBhcmUgY2FsbGVkIGJlZm9yZSB0aGUgY29tcG9zaXRpbmcKICAgICAvLyBw
YXNzIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0aW1l
LgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGlt
ZSkgPSAwOworICAgIC8vIFRoZSBvbmUgYXJndW1lbnQgdmVyc2lvbiBpcyBERVBSRUNBVEVELiBV
c2UgdGhlIHR3by1hcmd1bWVudCB2ZXJzaW9uLgorICAgIC8vIEZJWE1FOiByZW1vdmUgdGhlIG9u
ZSBhcmd1bWVudCB2ZXJzaW9uLgorICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlv
bnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVC
ZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7CiAKICAgICAvLyBB
cHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5kbGVk
IHdpdGggYSBwYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAwMjkwYTc1
Mzk0ZTY2NTI4Nzg3YTNiY2Q0OWM4ZTZmZjc5NmE0ZjhjLi43MjU5YTMwZWEyOTNkODE2MTI4NTg1
ODE3NjE0OWRjY2UxODQ5MzE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAg
LTE3OSwxMSArMTc5LDExIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkZWxldGVDb250ZW50c1Rl
eHR1cmVzT25JbXBsVGhyZWFkKFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jCiAgICAgICAgIG1fY29u
dGVudHNUZXh0dXJlTWFuYWdlci0+ZXZpY3RBbmREZWxldGVBbGxUZXh0dXJlcyhhbGxvY2F0b3Ip
OwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2Fs
bENsb2NrVGltZSkKK3ZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJs
ZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1l
KQogewogICAgIG1fYW5pbWF0aW5nID0gdHJ1ZTsKLSAgICBtX2NsaWVudC0+dXBkYXRlQW5pbWF0
aW9ucyh3YWxsQ2xvY2tUaW1lKTsKLSAgICBhbmltYXRlTGF5ZXJzKG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpKTsKKyAgICBtX2NsaWVudC0+dXBkYXRlQW5pbWF0aW9ucyh3YWxsQ2xvY2tG
cmFtZUJlZ2luVGltZSwgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOworICAgIGFuaW1hdGVMYXll
cnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIG1fYW5pbWF0aW5nID0gZmFsc2U7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKaW5kZXggNzM5MGVjMzRhOWU3YjhkMDMwNmIz
ZDY2OTQ2MTFlMDBhNGQ3Mjc2NC4uNDZhNmZjYTQxNGRjYTNhOWQ3MWY5YzZkMmJmNTA2OTNlMjJl
YjFlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKQEAgLTUyLDcgKzUyLDcgQEAgY2xh
c3MgVGV4dHVyZU1hbmFnZXI7CiAKIGNsYXNzIENDTGF5ZXJUcmVlSG9zdENsaWVudCB7CiBwdWJs
aWM6Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5U
aW1lKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxD
bG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbEFuZFNjYWxlKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUp
ID0gMDsKICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNv
bnRleHQoKSA9IDA7CkBAIC0xMjksNyArMTI5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29s
IGFueUxheWVyVHJlZUhvc3RJbnN0YW5jZUV4aXN0cygpOwogCiAgICAgLy8gQ0NMYXllclRyZWVI
b3N0IGludGVyZmFjZSB0byBDQ1Byb3h5LgotICAgIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3Vi
bGUgd2FsbENsb2NrVGltZSk7CisgICAgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxs
Q2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAg
ICB2b2lkIGxheW91dCgpOwogICAgIHZvaWQgYmVnaW5Db21taXRPbkltcGxUaHJlYWQoQ0NMYXll
clRyZWVIb3N0SW1wbCopOwogICAgIHZvaWQgZmluaXNoQ29tbWl0T25JbXBsVGhyZWFkKENDTGF5
ZXJUcmVlSG9zdEltcGwqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggZGNmYTNi
ZDM1ZWY4NTE3NjgxNjY5MTRmNDNkZWEzMDhjZWVmYmFhNS4uMDM3MmJiZjE4ZDhhYzc5MmQ3YmEz
N2QxN2Q4Nzk4M2FjNDZjNGU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTM5
OSw3ICszOTksOCBAQCB2b2lkIENDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkJlZ2luRnJh
bWUoKQogICAgIFRSQUNFX0VWRU5UMCgiY2MiLCAiQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0
aW9uQmVnaW5GcmFtZSIpOwogICAgIEFTU0VSVCghbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3Qp
OwogICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0ID0gYWRvcHRQdHIobmV3IEJlZ2luRnJh
bWVBbmRDb21taXRTdGF0ZSgpKTsKLSAgICBtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdC0+ZnJh
bWVCZWdpblRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1
ZXN0LT53YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9wZW5k
aW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3Rvbmlj
YWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPnNj
cm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAK
ICAgICBtX21haW5UaHJlYWRQcm94eS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMs
ICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKSk7CkBAIC00NDEsNyArNDQyLDcgQEAgdm9pZCBD
Q1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICBtX2xheWVyVHJlZUhvc3QtPmFwcGx5U2Ny
b2xsQW5kU2NhbGUoKnJlcXVlc3QtPnNjcm9sbEluZm8pOwogCiAgICAgLy8gRklYTUU6IHJlY3Jl
YXRlIHRoZSBjb250ZXh0IGlmIGl0IHdhcyByZXF1ZXN0ZWQgYnkgdGhlIGltcGwgdGhyZWFkLgot
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+dXBkYXRlQW5pbWF0aW9ucyhyZXF1ZXN0LT5mcmFtZUJlZ2lu
VGltZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVBbmltYXRpb25zKHJlcXVlc3QtPndh
bGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCByZXF1ZXN0LT5tb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7
CiAgICAgbV9sYXllclRyZWVIb3N0LT5sYXlvdXQoKTsKIAogICAgIC8vIENsZWFyIHRoZSBjb21t
aXQgZmxhZyBhZnRlciB1cGRhdGluZyBhbmltYXRpb25zIGFuZCBsYXlvdXQgaGVyZSAtLS0gb2Jq
ZWN0cyB0aGF0IG9ubHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaAppbmRleCA0ODYxZjc5MDkyNjAx
YzAwNWEwNTA1MjBkNTQ3ZWQyMWNkZjlkN2EwLi42YjU0MWUxOGU5ZDljZTYxODdmNDVhZDExOGVj
ZjU3MjRiMGM0ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCkBAIC05Myw4ICs5Myw5IEBA
IHByaXZhdGU6CiAKICAgICAvLyBTZXQgb24gaW1wbCB0aHJlYWQsIHJlYWQgb24gbWFpbiB0aHJl
YWQuCiAgICAgc3RydWN0IEJlZ2luRnJhbWVBbmRDb21taXRTdGF0ZSB7Ci0gICAgICAgIEJlZ2lu
RnJhbWVBbmRDb21taXRTdGF0ZSgpIDogZnJhbWVCZWdpblRpbWUoKSB7IH0KLSAgICAgICAgZG91
YmxlIGZyYW1lQmVnaW5UaW1lOworICAgICAgICBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUoKSA6
IHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lKDApLCBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSgwKSB7
IH0KKyAgICAgICAgZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lOworICAgICAgICBkb3Vi
bGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWU7CiAgICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNj
YWxlU2V0PiBzY3JvbGxJbmZvOwogICAgIH07CiAgICAgT3duUHRyPEJlZ2luRnJhbWVBbmRDb21t
aXRTdGF0ZT4gbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCmluZGV4IDMzMTRkYzJmNTQ0YzFjYThj
NTljNDcyYmMwMjVlOGMwMDdmNzAxZjAuLmI5OWRhNmU4ZjUzZGZhZjM2N2E2N2VmMmE5YmEwNWY1
Y2Q4NDE5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJl
ZVZpZXcuY3BwCkBAIC0xMzAsOSArMTMwLDkgQEAgdm9pZCBXZWJMYXllclRyZWVWaWV3Ojpjb21w
b3NpdGUoKQogICAgICAgICBtX3ByaXZhdGUtPmNvbXBvc2l0ZSgpOwogfQogCi12b2lkIFdlYkxh
eWVyVHJlZVZpZXc6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQordm9p
ZCBXZWJMYXllclRyZWVWaWV3Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFt
ZUJlZ2luVGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQogewotICAgIG1fcHJp
dmF0ZS0+dXBkYXRlQW5pbWF0aW9ucyhmcmFtZUJlZ2luVGltZSk7CisgICAgbV9wcml2YXRlLT51
cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBtb25vdG9uaWNGcmFtZUJl
Z2luVGltZSk7CiB9CiAKIGJvb2wgV2ViTGF5ZXJUcmVlVmlldzo6Y29tcG9zaXRlQW5kUmVhZGJh
Y2sodm9pZCAqcGl4ZWxzLCBjb25zdCBXZWJSZWN0JiByZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCmluZGV4IDMzNTg3OWI2
NjA1MzRhNGJjNzU3ZTUxNzc0ZjMyZmZkYzY3ZTdmZWMuLjE2ODM1MDJiNzUzMzFiNTVlNGU3Mjgx
NWRjZTE5NGE3NWRlNDliN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKQEAgLTM2LDgxICszNiwxODIgQEAKICNpbmNsdWRl
ICJwbGF0Zm9ybS9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0v
V2ViU2l6ZS5oIgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlRocmVhZC5oIgorI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVz
cGFjZSBXVEY7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBDQ0xheWVyVHJlZUhvc3RD
bGllbnRUb1dlYkxheWVyVHJlZVZpZXdDbGllbnRBZGFwdGVyIDogcHVibGljIENDTGF5ZXJUcmVl
SG9zdENsaWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8Q0NMYXllclRyZWVI
b3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcj4gY3JlYXRlKFdlYkxheWVy
VHJlZVZpZXdDbGllbnQqIGNsaWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgQ0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcihj
bGllbnQpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3Vi
bGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGlt
ZSkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT51cGRhdGVBbmltYXRpb25zKHdhbGxDbG9ja0Zy
YW1lQmVnaW5UaW1lKTsKKyAgICAgICAgbV9jbGllbnQtPnVwZGF0ZUFuaW1hdGlvbnMod2FsbENs
b2NrRnJhbWVCZWdpblRpbWUsIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKKyAgICB9CisKKyAg
ICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5sYXlvdXQo
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKQorICAgIHsKKyAg
ICAgICAgbV9jbGllbnQtPmFwcGx5U2Nyb2xsQW5kU2NhbGUoV2ViU2l6ZShzY3JvbGxEZWx0YSks
IHBhZ2VTY2FsZSk7CisgICAgfQorCisgICAgdmlydHVhbCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29u
dGV4dDNEPiBjcmVhdGVDb250ZXh0KCkKKyAgICB7CisgICAgICAgIE93blB0cjxXZWJHcmFwaGlj
c0NvbnRleHQzRD4gd2ViQ29udGV4dCA9IGFkb3B0UHRyKG1fY2xpZW50LT5jcmVhdGVDb250ZXh0
M0QoKSk7CisgICAgICAgIGlmICghd2ViQ29udGV4dCkKKyAgICAgICAgICAgIHJldHVybiAwOwor
CisgICAgICAgIHJldHVybiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNz
Q29udGV4dEZyb21XZWJDb250ZXh0KHdlYkNvbnRleHQucmVsZWFzZSgpLCBHcmFwaGljc0NvbnRl
eHQzRDo6UmVuZGVyRGlyZWN0bHlUb0hvc3RXaW5kb3csIGZhbHNlIC8qIHByZXNlcnZlRHJhd2lu
Z0J1ZmZlciAqLyApOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNyZWF0ZUNvbnRl
eHQoYm9vbCBzdWNjZXNzKQorICAgIHsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlYmluZEdyYXBo
aWNzQ29udGV4dChzdWNjZXNzKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0
QW5kRHJhd0ZyYW1lKCkKKyAgICB7CisgICAgICAgIG1fY2xpZW50LT5kaWRDb21taXRBbmREcmF3
RnJhbWUoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVTd2FwQnVmZmVy
cygpCisgICAgeworICAgICAgICBtX2NsaWVudC0+ZGlkQ29tcGxldGVTd2FwQnVmZmVycygpOwor
ICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0ZSgpCisgICAgeworICAg
ICAgICBtX2NsaWVudC0+c2NoZWR1bGVDb21wb3NpdGUoKTsKKyAgICB9CisKK3ByaXZhdGU6Cisg
ICAgQ0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXllclRyZWVWaWV3Q2xpZW50QWRhcHRlcihX
ZWJMYXllclRyZWVWaWV3Q2xpZW50KiBjbGllbnQpCisgICAgICAgIDogbV9jbGllbnQoY2xpZW50
KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fY2xpZW50KTsKKyAgICB9CisKKyAgICBXZWJMYXll
clRyZWVWaWV3Q2xpZW50KiBtX2NsaWVudDsKK307CisKIFBhc3NSZWZQdHI8V2ViTGF5ZXJUcmVl
Vmlld0ltcGw+IFdlYkxheWVyVHJlZVZpZXdJbXBsOjpjcmVhdGUoV2ViTGF5ZXJUcmVlVmlld0Ns
aWVudCogY2xpZW50LCBjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVlVmll
dzo6U2V0dGluZ3MmIHNldHRpbmdzKQogewotICAgIFJlZlB0cjxXZWJMYXllclRyZWVWaWV3SW1w
bD4gaG9zdCA9IGFkb3B0UmVmKG5ldyBXZWJMYXllclRyZWVWaWV3SW1wbChjbGllbnQsIHNldHRp
bmdzKSk7Ci0gICAgaWYgKCFob3N0LT5pbml0aWFsaXplKCkpCisgICAgUmVmUHRyPFdlYkxheWVy
VHJlZVZpZXdJbXBsPiBpbXBsID0gYWRvcHRSZWYobmV3IFdlYkxheWVyVHJlZVZpZXdJbXBsKGNs
aWVudCkpOworICAgIGlmICghaW1wbC0+aW5pdGlhbGl6ZShyb290LCBzZXR0aW5ncykpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIGhvc3QtPnNldFJvb3RMYXllcihyb290KTsKLSAgICByZXR1cm4g
aG9zdDsKKyAgICByZXR1cm4gaW1wbDsKIH0KIAotV2ViTGF5ZXJUcmVlVmlld0ltcGw6OldlYkxh
eWVyVHJlZVZpZXdJbXBsKFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCwgY29uc3QgV2Vi
TGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MmIHNldHRpbmdzKSAKLSAgICA6IENDTGF5ZXJUcmVlSG9z
dCh0aGlzLCBzZXR0aW5ncykKLSAgICAsIG1fY2xpZW50KGNsaWVudCkKK1dlYkxheWVyVHJlZVZp
ZXdJbXBsOjpXZWJMYXllclRyZWVWaWV3SW1wbChXZWJMYXllclRyZWVWaWV3Q2xpZW50KiBjbGll
bnQpCisgICAgOiBtX2NsaWVudEFkYXB0ZXIoQ0NMYXllclRyZWVIb3N0Q2xpZW50VG9XZWJMYXll
clRyZWVWaWV3Q2xpZW50QWRhcHRlcjo6Y3JlYXRlKGNsaWVudCkpCiB7CiB9CiAKK2Jvb2wgV2Vi
TGF5ZXJUcmVlVmlld0ltcGw6OmluaXRpYWxpemUoY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0
IFdlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzJiBzZXR0aW5ncykKK3sKKyAgICBtX2hvc3QgPSBD
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZShtX2NsaWVudEFkYXB0ZXIuZ2V0KCksIHNldHRpbmdzKTsK
KyAgICBpZiAoIW1faG9zdCkKKyAgICAgICAgcmV0dXJuIDA7CisgICAgbV9ob3N0LT5zZXRSb290
TGF5ZXIocm9vdCk7CisgICAgcmV0dXJuIG1faG9zdDsKK30KKwogV2ViTGF5ZXJUcmVlVmlld0lt
cGw6On5XZWJMYXllclRyZWVWaWV3SW1wbCgpCiB7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmll
d0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQordm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6c2V0Um9vdExheWVyKFBhc3NSZWZQdHI8TGF5ZXJDaHJvbWl1bT4g
bGF5ZXIpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dXBkYXRlQW5p
bWF0aW9ucyhmcmFtZUJlZ2luVGltZSk7CisgICAgbV9ob3N0LT5zZXRSb290TGF5ZXIobGF5ZXIp
OwogfQogCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpsYXlvdXQoKQoraW50IFdlYkxheWVy
VHJlZVZpZXdJbXBsOjpjb21wb3NpdG9ySWRlbnRpZmllcigpCiB7Ci0gICAgaWYgKG1fY2xpZW50
KQotICAgICAgICBtX2NsaWVudC0+bGF5b3V0KCk7CisgICAgcmV0dXJuIG1faG9zdC0+Y29tcG9z
aXRvcklkZW50aWZpZXIoKTsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6YXBwbHlT
Y3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQg
cGFnZVNjYWxlKQordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0Vmlld3BvcnRTaXplKGNv
bnN0IEludFNpemUmIHNpemUpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVu
dC0+YXBwbHlTY3JvbGxBbmRTY2FsZShXZWJTaXplKHNjcm9sbERlbHRhKSwgcGFnZVNjYWxlKTsK
KyAgICBtX2hvc3QtPnNldFZpZXdwb3J0U2l6ZShzaXplKTsKIH0KIAotUGFzc1JlZlB0cjxHcmFw
aGljc0NvbnRleHQzRD4gV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmNyZWF0ZUNvbnRleHQoKQorSW50
U2l6ZSBXZWJMYXllclRyZWVWaWV3SW1wbDo6dmlld3BvcnRTaXplKCkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gMDsKLSAgICBPd25QdHI8V2ViR3JhcGhpY3ND
b250ZXh0M0Q+IHdlYkNvbnRleHQgPSBhZG9wdFB0cihtX2NsaWVudC0+Y3JlYXRlQ29udGV4dDNE
KCkpOwotICAgIGlmICghd2ViQ29udGV4dCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgcmV0dXJu
IG1faG9zdC0+dmlld3BvcnRTaXplKCk7Cit9CiAKLSAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0
M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRleHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0
LnJlbGVhc2UoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0V2luZG93
LCBmYWxzZSAvKiBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgKi8gKTsKK3ZvaWQgV2ViTGF5ZXJUcmVl
Vmlld0ltcGw6OnNldFZpc2libGUoYm9vbCB2aXNpYmxlKQoreworICAgIG1faG9zdC0+c2V0Vmlz
aWJsZSh2aXNpYmxlKTsKIH0KIAotdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6ZGlkUmVjcmVh
dGVDb250ZXh0KGJvb2wgc3VjY2VzcykKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldFBh
Z2VTY2FsZUZhY3RvckFuZExpbWl0cyhmbG9hdCBwYWdlU2NhbGVGYWN0b3IsIGZsb2F0IG1pbmlt
dW0sIGZsb2F0IG1heGltdW0pCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVu
dC0+ZGlkUmViaW5kR3JhcGhpY3NDb250ZXh0KHN1Y2Nlc3MpOworICAgIG1faG9zdC0+c2V0UGFn
ZVNjYWxlRmFjdG9yQW5kTGltaXRzKHBhZ2VTY2FsZUZhY3RvciwgbWluaW11bSwgbWF4aW11bSk7
CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmRpZENvbW1pdEFuZERyYXdGcmFtZSgp
Cit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpzdGFydFBhZ2VTY2FsZUFuaW1hdGlvbihjb25z
dCBJbnRTaXplJiB0YXJnZXRQb3NpdGlvbiwgYm9vbCB1c2VBbmNob3IsIGZsb2F0IHNjYWxlLCBk
b3VibGUgZHVyYXRpb25TZWMpCiB7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVu
dC0+ZGlkQ29tbWl0QW5kRHJhd0ZyYW1lKCk7CisgICAgbV9ob3N0LT5zdGFydFBhZ2VTY2FsZUFu
aW1hdGlvbih0YXJnZXRQb3NpdGlvbiwgdXNlQW5jaG9yLCBzY2FsZSwgZHVyYXRpb25TZWMpOwog
fQogCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCkK
K3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OnNldE5lZWRzQ29tbWl0KCkKIHsKLSAgICBpZiAo
bV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7Cisg
ICAgbV9ob3N0LT5zZXROZWVkc0NvbW1pdCgpOwogfQogCi12b2lkIFdlYkxheWVyVHJlZVZpZXdJ
bXBsOjpzY2hlZHVsZUNvbXBvc2l0ZSgpCit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjpzZXRO
ZWVkc0FuaW1hdGUoKQogewotICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPnNj
aGVkdWxlQ29tcG9zaXRlKCk7CisgICAgbV9ob3N0LT5zZXROZWVkc0FuaW1hdGUoKTsKK30KKwor
dm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6c2V0TmVlZHNSZWRyYXcoKQoreworICAgIG1faG9z
dC0+c2V0TmVlZHNSZWRyYXcoKTsKK30KKwordm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y29t
cG9zaXRlKCkKK3sKKyAgICBtX2hvc3QtPmNvbXBvc2l0ZSgpOworfQorCit2b2lkIFdlYkxheWVy
VHJlZVZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2lu
VGltZSwgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKQoreworICAgIC8vIEZJWE1FOiBS
ZW1vdmUgdGhpcyBvbmNlIHVwc3RyZWFtIGVtYmVkZGVycyBwYXNzIG1vbm90b25pY0ZyYW1lQmVn
aW5UaW1lCisgICAgaWYgKCFtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKKyAgICAgICAgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBt
X2hvc3QtPnVwZGF0ZUFuaW1hdGlvbnMod2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIG1vbm90b25p
Y0ZyYW1lQmVnaW5UaW1lKTsKK30KKworYm9vbCBXZWJMYXllclRyZWVWaWV3SW1wbDo6Y29tcG9z
aXRlQW5kUmVhZGJhY2sodm9pZCAqcGl4ZWxzLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAg
IHJldHVybiBtX2hvc3QtPmNvbXBvc2l0ZUFuZFJlYWRiYWNrKHBpeGVscywgcmVjdCk7Cit9CisK
K3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OmZpbmlzaEFsbFJlbmRlcmluZygpCit7CisgICAg
bV9ob3N0LT5maW5pc2hBbGxSZW5kZXJpbmcoKTsKK30KKworR3JhcGhpY3NDb250ZXh0M0QqIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjpjb250ZXh0KCkKK3sKKyAgICByZXR1cm4gbV9ob3N0LT5jb250
ZXh0KCk7Cit9CisKK3ZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6Omxvc2VDb250ZXh0KGludCBu
dW1UaW1lcykKK3sKKyAgICBtX2hvc3QtPmxvc2VDb250ZXh0KG51bVRpbWVzKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJMYXllclRyZWVWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
TGF5ZXJUcmVlVmlld0ltcGwuaAppbmRleCBiMWIyNmQwZmMzMzg2MDRmZTVjZjM4MDcxZjUwYThj
MzU4NjQ1MmZiLi45Y2Y0ZDVkOTE5NTk5YTUwYjdlZDUwZGY5NDZmMjYwOWU5ZDA4NjgzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgK
QEAgLTM0LDI1ICszNCwzNSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkxheWVyOwog
Y2xhc3MgV2ViTGF5ZXJUcmVlVmlld0NsaWVudDsKIAotY2xhc3MgV2ViTGF5ZXJUcmVlVmlld0lt
cGwgOiBwdWJsaWMgV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0LCBwdWJsaWMgV2ViQ29yZTo6Q0NM
YXllclRyZWVIb3N0Q2xpZW50IHsKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5
ZXJUcmVlVmlld0NsaWVudEFkYXB0ZXI7CitjbGFzcyBXZWJMYXllclRyZWVWaWV3SW1wbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYkxheWVyVHJlZVZpZXdJbXBsPiB7CiBwdWJsaWM6CiAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViTGF5ZXJUcmVlVmlld0ltcGw+IGNyZWF0ZShXZWJMYXllclRyZWVW
aWV3Q2xpZW50KiwgY29uc3QgV2ViTGF5ZXImIHJvb3QsIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6
OlNldHRpbmdzJik7CisgICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKKworICAg
IGJvb2wgaW5pdGlhbGl6ZShjb25zdCBXZWJMYXllciYgcm9vdCwgY29uc3QgV2ViTGF5ZXJUcmVl
Vmlldzo6U2V0dGluZ3MmKTsKKyAgICB2b2lkIHNldFJvb3RMYXllcihQYXNzUmVmUHRyPFdlYkNv
cmU6OkxheWVyQ2hyb21pdW0+KTsKKyAgICBpbnQgY29tcG9zaXRvcklkZW50aWZpZXIoKTsKKyAg
ICB2b2lkIHNldFZpZXdwb3J0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgV2Vi
Q29yZTo6SW50U2l6ZSB2aWV3cG9ydFNpemUoKSBjb25zdDsKKyAgICB2b2lkIHNldFZpc2libGUo
Ym9vbCk7CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JBbmRMaW1pdHMoZmxvYXQgcGFnZVNj
YWxlRmFjdG9yLCBmbG9hdCBtaW5pbXVtLCBmbG9hdCBtYXhpbXVtKTsKKyAgICB2b2lkIHN0YXJ0
UGFnZVNjYWxlQW5pbWF0aW9uKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRhcmdldFBvc2l0aW9u
LCBib29sIHVzZUFuY2hvciwgZmxvYXQgc2NhbGUsIGRvdWJsZSBkdXJhdGlvblNlYyk7CisgICAg
dm9pZCBzZXROZWVkc0NvbW1pdCgpOworICAgIHZvaWQgc2V0TmVlZHNBbmltYXRlKCk7CisgICAg
dm9pZCBzZXROZWVkc1JlZHJhdygpOworICAgIHZvaWQgY29tcG9zaXRlKCk7CisgICAgdm9pZCB1
cGRhdGVBbmltYXRpb25zKGRvdWJsZSB3YWxsQ2xvY2tGcmFtZUJlZ2luVGltZSwgZG91YmxlIG1v
bm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKKyAgICBib29sIGNvbXBvc2l0ZUFuZFJlYWRiYWNrKHZv
aWQgKnBpeGVscywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZvaWQgZmluaXNoQWxs
UmVuZGVyaW5nKCk7CisgICAgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQoKTsK
KyAgICB2b2lkIGxvc2VDb250ZXh0KGludCBudW1UaW1lcyk7CiAKIHByaXZhdGU6Ci0gICAgV2Vi
TGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCosIGNvbnN0IFdlYkxheWVy
VHJlZVZpZXc6OlNldHRpbmdzJik7Ci0gICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRp
bWUpOwotICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwbHlT
Y3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQg
cGFnZVNjYWxlKTsKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250
ZXh0KGJvb2wgc3VjY2Vzcyk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdEFuZERyYXdGcmFt
ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVN3YXBCdWZmZXJzKCk7Ci0KLSAgICAv
LyBPbmx5IHVzZWQgaW4gdGhlIHNpbmdsZSB0aHJlYWRlZCBwYXRoLgotICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0ZSgpOwotCi0gICAgV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogbV9j
bGllbnQ7CisgICAgV2ViTGF5ZXJUcmVlVmlld0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCop
OworCisgICAgT3duUHRyPENDTGF5ZXJUcmVlSG9zdENsaWVudFRvV2ViTGF5ZXJUcmVlVmlld0Ns
aWVudEFkYXB0ZXI+IG1fY2xpZW50QWRhcHRlcjsKKyAgICBSZWZQdHI8V2ViQ29yZTo6Q0NMYXll
clRyZWVIb3N0PiBtX2hvc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBjNDdmZGRhYWVlNmU1ZmE1
MDIwY2E1OTIwMWVmNmU5ZmNiN2Y0MzE4Li42YWM5YjE1NWUwMTIyNjg5NDUwMWUxZjY1NTI4YWJk
ZWJkMzJmNTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
CkBAIC0xMzM3LDE5ICsxMzM3LDIwIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91Ymxl
IGZyYW1lQmVnaW5UaW1lKQogICAgIC8vIHBhc3MgaW4gYSBmcmFtZUJlZ2luVGltZS4KICAgICBp
ZiAoIWZyYW1lQmVnaW5UaW1lKQogICAgICAgICBmcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1l
KCk7CisgICAgZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAg
Ly8gSW4gY29tcG9zaXRlZCBtb2RlLCB3ZSBhbHdheXMgZ28gdGhyb3VnaCB0aGUgY29tcG9zaXRv
ciBzbyBpdCBjYW4gYXBwbHkKICAgICAvLyBhcHByb3ByaWF0ZSBmbG93LWNvbnRyb2wgbWVjaGFu
aXNtcy4KICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCi0gICAgICAg
IG1fbGF5ZXJUcmVlVmlldy51cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICAg
ICAgbV9sYXllclRyZWVWaWV3LnVwZGF0ZUFuaW1hdGlvbnMoZnJhbWVCZWdpblRpbWUsIG1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAgICBlbHNlCiAjZW5kaWYKLSAgICAgICAgdXBkYXRlQW5p
bWF0aW9ucyhmcmFtZUJlZ2luVGltZSk7CisgICAgICAgIHVwZGF0ZUFuaW1hdGlvbnMoZnJhbWVC
ZWdpblRpbWUsIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICNlbmRpZgogfQogCi12b2lkIFdl
YlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKK3ZvaWQg
V2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5U
aW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpCiB7CiAjaWYgRU5BQkxFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FKQogICAgIFRSQUNFX0VWRU5UKCJXZWJWaWV3SW1wbDo6dXBkYXRl
QW5pbWF0aW9ucyIsIHRoaXMsIDApOwpAQCAtMTM2MywxMyArMTM2NCwxMyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkKIAogICAgIC8v
IENyZWF0ZSBzeW50aGV0aWMgd2hlZWwgZXZlbnRzIGFzIG5lY2Vzc2FyeSBmb3IgZmxpbmcuCiAg
ICAgaWYgKG1fZ2VzdHVyZUFuaW1hdGlvbikgewotICAgICAgICBpZiAobV9nZXN0dXJlQW5pbWF0
aW9uLT5hbmltYXRlKGZyYW1lQmVnaW5UaW1lKSkKKyAgICAgICAgaWYgKG1fZ2VzdHVyZUFuaW1h
dGlvbi0+YW5pbWF0ZShtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkpCiAgICAgICAgICAgICBzY2hl
ZHVsZUFuaW1hdGlvbigpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2dlc3R1cmVBbmlt
YXRpb24uY2xlYXIoKTsKICAgICB9CiAKLSAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRp
b25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoZnJhbWVCZWdpblRpbWUpKTsKKyAgICB2
aWV3LT5zZXJ2aWNlU2NyaXB0ZWRBbmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3Rh
bXAod2FsbENsb2NrRnJhbWVCZWdpblRpbWUpKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCAyMjkzOGFkNmJkNmM0OTc1Zjc0ZmUzN2U0
MTU0ODdmZWVjYTEyMTViLi45MjVkZTZjNWIwYjY4OGM3ZjRkZTI1MTMzZTJjNzYyMzQ4MWVhNWM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTI1NCw3ICsy
NTQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVBhZ2VPdmVybGF5KFdlYlBh
Z2VPdmVybGF5Kik7CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xpZW50Ci0gICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrRnJhbWVCZWdpblRpbWUs
IGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5
U2Nyb2xsQW5kU2NhbGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KTsKICAgICB2aXJ0dWFsIFdlYkdy
YXBoaWNzQ29udGV4dDNEKiBjcmVhdGVDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
UmViaW5kR3JhcGhpY3NDb250ZXh0KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHAKaW5kZXggYzcyMzgzNzAyYzExM2Uy
MTBjMzQ0MjY3OTc3ZDk1YTg5MzFiNGVlMi4uNjQwNTRlMWE0MWE1NzdmNWQ2ZmU5ZmNiMWUyM2I5
MzgwZTRmMTZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xh
eWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0ND
TGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZHJhd0xheWVyc09uQ0NUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlTGF5ZXJzKENDTGF5ZXJUcmVlSG9zdEltcGwqLCBkb3Vi
bGUgbW9ub3RvbmljVGltZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2Nh
bGUoY29uc3QgSW50U2l6ZSYsIGZsb2F0KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5p
bWF0aW9ucyhkb3VibGUgbW9ub3RvbmljVGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjcmVhdGVDb250ZXh0KGJvb2wgc3VjY2VkZWQpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaWRDb21taXRBbmREcmF3RnJhbWUoKSB7IH0KQEAgLTIyMCw5ICsyMjAs
OSBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9ja0xheWVyVHJlZUhv
c3RDbGllbnQodGVzdEhvb2tzKSk7CiAgICAgfQogCi0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFu
aW1hdGlvbnMoZG91YmxlIG1vbm90b25pY1RpbWUpCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFu
aW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3Rvbmlj
RnJhbWVCZWdpblRpbWUpCiAgICAgewotICAgICAgICBtX3Rlc3RIb29rcy0+dXBkYXRlQW5pbWF0
aW9ucyhtb25vdG9uaWNUaW1lKTsKKyAgICAgICAgbV90ZXN0SG9va3MtPnVwZGF0ZUFuaW1hdGlv
bnMod2FsbENsb2NrRnJhbWVCZWdpblRpbWUsIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKICAg
ICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkKQEAgLTg2OSw3ICs4NjksNyBAQCBwdWJs
aWM6CiAgICAgICAgIHBvc3RTZXROZWVkc0FuaW1hdGVUb01haW5UaHJlYWQoKTsKICAgICB9CiAK
LSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUpCisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlLCBkb3VibGUpCiAgICAgewogICAgICAgICBpZiAo
IW1fbnVtQW5pbWF0ZXMpIHsKICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0TmVlZHNB
bmltYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VD
Q0xheWVyVHJlZUhvc3RDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFr
ZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oCmluZGV4IDM4ODc2ZDczN2ZiNTJhYTZkMDNjNzFiZmZl
NDE3MjhjOGNjY2YwYjUuLmE2OWQwNTUwZjlhMDFkNWZlNzcwM2E0YWZlNDQ5YTAwNTIwZjMxMjgg
MTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZUNDTGF5ZXJUcmVl
SG9zdENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvRmFrZUNDTGF5
ZXJUcmVlSG9zdENsaWVudC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogY2xhc3MgRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudCA6IHB1YmxpYyBDQ0xheWVyVHJlZUhv
c3RDbGllbnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlv
bnMoZG91YmxlIHdhbGxDbG9ja0ZyYW1lQmVnaW5UaW1lLCBkb3VibGUgbW9ub3RvbmljRnJhbWVC
ZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSB7IH0KICAgICB2aXJ0dWFs
IHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgZmxv
YXQgcGFnZVNjYWxlKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3JhcGhpY3NDb250ZXh0
M0Q+IGNyZWF0ZUNvbnRleHQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134178</attachid>
            <date>2012-03-27 17:24:53 -0700</date>
            <delta_ts>2012-03-27 19:36:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82154-20120327172452.patch</filename>
            <type>text/plain</type>
            <size>13769</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyOWZkZGYwZDUxYzA5
ZWRkMTI2MTZiYWU2ZTI4ZjY1NmFmODVmOTNkLi41ZjkxOWI5OTRkNTMxZTI5ZWUyMjA2Y2VkMGE1
OWQ4NThkOTc0ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0yNyAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0
ZSBtb25vdG9uaWMgY2xvY2sgdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXdDbGllbnQpOgorCiAyMDEy
LTAzLTI2ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIEFkZCBpc0lucHV0VGhyb3R0bGVkL2RpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0
IHRvIFdlYldpZGdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjZGMyZTVjZGQ0MTc0YmJhMGU4M2U1MTBiYTVi
YmYzOGEyYTNjZmIuLmZkOTFjODU0NWZjOThlNGNiOGJhNGE0NDA2YWU0YmU1YzNmMmNmZTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wMy0yNyAgTmF0IER1Y2EgIDxuZHVjYUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0ZSBtb25vdG9uaWMgY2xvY2sg
dXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQW5pbWF0aW9u
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Lmg6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1Ro
cmVhZFByb3h5OjpCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGU6OkJlZ2luRnJhbWVBbmRDb21taXRT
dGF0ZSk6CisgICAgICAgIChCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUpOgorCiAyMDEyLTAzLTI3
ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTEyMjAxLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCBjYmQyNmUwNjgwMTVlOTNiYWEyMTY0YzBhYjA4ODA1ZDBhOWU1MTAyLi4zZDhhZjU1NzBk
MjE2YjRkNTk3MDczZWY0YjViOTgxMzJlY2VjNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTI3ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIFJvdXRlIG1vbm90b25pYyBjbG9jayB1cCBmcm9t
IGNvbXBvc2l0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgyMTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6YW5p
bWF0ZSk6CisgICAgICAgICogc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHNyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5oOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmll
d0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVw
ZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAo
V2ViVmlld0ltcGwpOgorICAgICAgICAqIHRlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6OnVwZGF0ZUFu
aW1hdGlvbnMpOgorCiAyMDEyLTAzLTI2ICBTdGVwaGVuIFdoaXRlICA8c2Vub3JibGFuY29AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIERpc2FibGUgQ0NMYXllclRyZWVIb3N0VGVzdFNldFNpbmds
ZUxvc3RDb250ZXh0LnJ1bk11bHRpVGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3Jt
L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZv
cm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCAxOTAzZmZm
YTllMTJjOTYyMWE4YjNlYTZmM2ViODUyNDBiMjNlMzZlLi5mZDI0NDg3YzU5YTg3NWRiZWZiNDZk
OWI1MTdiYzNjNDI2ZTQ3MTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXdDbGllbnQuaApAQCAtNDIsNyArNDIsNyBAQCBw
dWJsaWM6CiAKICAgICAvLyBVcGRhdGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0LiBUaGVzZSBhcmUg
Y2FsbGVkIGJlZm9yZSB0aGUgY29tcG9zaXRpbmcKICAgICAvLyBwYXNzIHNvIHRoYXQgbGF5ZXJz
IGNhbiBiZSB1cGRhdGVkIGF0IHRoZSBnaXZlbiBmcmFtZSB0aW1lLgotICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSA9IDA7CiAKICAgICAvLyBBcHBsaWVzIGEg
c2Nyb2xsIGRlbHRhIHRvIHRoZSByb290IGxheWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBw
YWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmNwcAppbmRleCBhNTVkYWM2N2QxYWM5YjI2
ZmRmMDhlZDY0MGJjMmNiZGEzMTYwMmY1Li41NzZmYzJiMzE5MGEyZDYzMDk1NzU5ODE3NWM0M2Vl
ZjRlNzg4YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTE4MSwxMSAr
MTgxLDExIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpkZWxldGVDb250ZW50c1RleHR1cmVzT25J
bXBsVGhyZWFkKFRleHR1cmVBbGxvY2F0b3IqIGFsbG9jCiAgICAgICAgIG1fY29udGVudHNUZXh0
dXJlTWFuYWdlci0+ZXZpY3RBbmREZWxldGVBbGxUZXh0dXJlcyhhbGxvY2F0b3IpOwogfQogCi12
b2lkIENDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrVGlt
ZSkKK3ZvaWQgQ0NMYXllclRyZWVIb3N0Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9u
aWNGcmFtZUJlZ2luVGltZSkKIHsKICAgICBtX2FuaW1hdGluZyA9IHRydWU7Ci0gICAgbV9jbGll
bnQtPnVwZGF0ZUFuaW1hdGlvbnMod2FsbENsb2NrVGltZSk7Ci0gICAgYW5pbWF0ZUxheWVycyht
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSk7CisgICAgbV9jbGllbnQtPnVwZGF0ZUFuaW1h
dGlvbnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOworICAgIGFuaW1hdGVMYXllcnMobW9ub3Rv
bmljRnJhbWVCZWdpblRpbWUpOwogICAgIG1fYW5pbWF0aW5nID0gZmFsc2U7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5
ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllclRyZWVIb3N0LmgKaW5kZXggYzE1ZWFjYmRlMWQ4Y2FmZjYxZTQ0NDI4YWI2N2Q0
ZDgxMDM5MTVlNy4uODE2MjFmODQzZTA1MWVlNzYyZjI4YzBkYTljNzMyZDMxMDkwODE0NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NM
YXllclRyZWVIb3N0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAK
ICAgICAvLyBDQ0xheWVyVHJlZUhvc3QgaW50ZXJmYWNlIHRvIENDUHJveHkuCiAgICAgdm9pZCB3
aWxsQmVnaW5GcmFtZSgpIHsgbV9jbGllbnQtPndpbGxCZWdpbkZyYW1lKCk7IH0KLSAgICB2b2lk
IHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIHdhbGxDbG9ja1RpbWUpOworICAgIHZvaWQgdXBkYXRl
QW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIHZvaWQgbGF5
b3V0KCk7CiAgICAgdm9pZCBiZWdpbkNvbW1pdE9uSW1wbFRocmVhZChDQ0xheWVyVHJlZUhvc3RJ
bXBsKik7CiAgICAgdm9pZCBmaW5pc2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0
SW1wbCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCA0Yzk4OGJmNGEyNDI3MmI4
ZGUxMDkxZmExNzFkOWRjODIwZWM5YWQ4Li4xOGNjZjU3MDc2MDBkN2EzN2JlYzc0MTM5YjZhMThm
MDdkMTcwZjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNDEwLDcgKzQxMCw3
IEBAIHZvaWQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpCiAgICAg
VFJBQ0VfRVZFTlQwKCJjYyIsICJDQ1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25CZWdpbkZy
YW1lIik7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdCk7CiAgICAgbV9w
ZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QgPSBhZG9wdFB0cihuZXcgQmVnaW5GcmFtZUFuZENvbW1p
dFN0YXRlKCkpOwotICAgIG1fcGVuZGluZ0JlZ2luRnJhbWVSZXF1ZXN0LT5mcmFtZUJlZ2luVGlt
ZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90
b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAg
bV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPnNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJ
bXBsLT5wcm9jZXNzU2Nyb2xsRGVsdGFzKCk7CiAKICAgICBtX21haW5UaHJlYWRQcm94eS0+cG9z
dFRhc2soY3JlYXRlQ0NUaHJlYWRUYXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1l
KSk7CkBAIC00NTcsNyArNDU3LDcgQEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkK
ICAgICBtX2xheWVyVHJlZUhvc3QtPndpbGxCZWdpbkZyYW1lKCk7CiAKICAgICAvLyBGSVhNRTog
cmVjcmVhdGUgdGhlIGNvbnRleHQgaWYgaXQgd2FzIHJlcXVlc3RlZCBieSB0aGUgaW1wbCB0aHJl
YWQuCi0gICAgbV9sYXllclRyZWVIb3N0LT51cGRhdGVBbmltYXRpb25zKHJlcXVlc3QtPmZyYW1l
QmVnaW5UaW1lKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnVwZGF0ZUFuaW1hdGlvbnMocmVxdWVz
dC0+bW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+bGF5b3V0
KCk7CiAKICAgICAvLyBDbGVhciB0aGUgY29tbWl0IGZsYWcgYWZ0ZXIgdXBkYXRpbmcgYW5pbWF0
aW9ucyBhbmQgbGF5b3V0IGhlcmUgLS0tIG9iamVjdHMgdGhhdCBvbmx5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVh
ZFByb3h5LmgKaW5kZXggNjE0MzRhNmE5Y2Y2M2U4MjljZGJjNWI3YjI1MTcwNWU4YWY5NTVlNi4u
YTVjNGIzMTIzMzdhOWQxZGJjOGYwMGExYjA3OTcwMGE4ZmVkODJlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhy
ZWFkUHJveHkuaApAQCAtOTQsOCArOTQsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gU2V0IG9uIGlt
cGwgdGhyZWFkLCByZWFkIG9uIG1haW4gdGhyZWFkLgogICAgIHN0cnVjdCBCZWdpbkZyYW1lQW5k
Q29tbWl0U3RhdGUgewotICAgICAgICBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUoKSA6IGZyYW1l
QmVnaW5UaW1lKCkgeyB9Ci0gICAgICAgIGRvdWJsZSBmcmFtZUJlZ2luVGltZTsKKyAgICAgICAg
QmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlKCkgOiBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSgpIHsg
fQorICAgICAgICBkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWU7CiAgICAgICAgIE93blB0
cjxDQ1Njcm9sbEFuZFNjYWxlU2V0PiBzY3JvbGxJbmZvOwogICAgIH07CiAgICAgT3duUHRyPEJl
Z2luRnJhbWVBbmRDb21taXRTdGF0ZT4gbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3Q7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCmluZGV4IGZjMDExY2I4Zjg2MGNk
ZjQ0YmY3NjFkYzk5NTM0YjY3YThiMmZmZmEuLjJhY2I2MzljYWNjODk1M2RjZjM3OGQ5ZDBjOGNl
MjU1MTUxYWM0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YldpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5o
CkBAIC04Miw3ICs4Miw3IEBAIHB1YmxpYzoKICAgICAvLyBwYWludCwgYWx0aG91Z2ggdGhlIGNs
aWVudCBjYW4gcmF0ZS1saW1pdCB0aGVzZSBjYWxscy4gV2hlbgogICAgIC8vIGZyYW1lQmVnaW5U
aW1lIGlzIDAuMCwgdGhlIFdlYldpZGdldCB3aWxsIGRldGVybWluZSB0aGUgZnJhbWUgYmVnaW4g
dGltZQogICAgIC8vIGl0c2VsZi4KLSAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUgZnJh
bWVCZWdpblRpbWUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBtb25vdG9u
aWNGcmFtZUJlZ2luVGltZSkgeyB9CiAKICAgICAvLyBDYWxsZWQgdG8gbGF5b3V0IHRoZSBXZWJX
aWRnZXQuIFRoaXMgTVVTVCBiZSBjYWxsZWQgYmVmb3JlIFBhaW50LAogICAgIC8vIGFuZCBpdCBt
YXkgcmVzdWx0IGluIGNhbGxzIHRvIFdlYldpZGdldENsaWVudDo6ZGlkSW52YWxpZGF0ZVJlY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1w
bC5jcHAKaW5kZXggYjhlZjVhOTIwODQwYzY3ODBhMWJlOGJmZjYyMGY3OTAyYzNmYTE0Yi4uNjhj
ZmRiZTFkZGRhODI5NjgyY2I1MzNjODhjNzI4YzZhNzM0ZDY4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApAQCAtNjYsMTAg
KzY2LDEwIEBAIHZvaWQgV2ViTGF5ZXJUcmVlVmlld0ltcGw6OndpbGxCZWdpbkZyYW1lKCkKICAg
ICAgICAgbV9jbGllbnQtPndpbGxCZWdpbkZyYW1lKCk7CiB9CiAKLXZvaWQgV2ViTGF5ZXJUcmVl
Vmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQordm9pZCBX
ZWJMYXllclRyZWVWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9ub3RvbmljRnJh
bWVCZWdpblRpbWUpCiB7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+dXBk
YXRlQW5pbWF0aW9ucyhmcmFtZUJlZ2luVGltZSk7CisgICAgICAgIG1fY2xpZW50LT51cGRhdGVB
bmltYXRpb25zKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKTsKIH0KIAogdm9pZCBXZWJMYXllclRy
ZWVWaWV3SW1wbDo6bGF5b3V0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJMYXllclRyZWVWaWV3SW1wbC5oCmluZGV4IDQzZDRjYzFlYmRjMGYwM2VkZGM1ZjI1NTU5MGMz
ZGE2ZDhlZDNkNmIuLmFmMDRhMzViZGMwNWVhNWVhNWZhYzAzYmIzMTZiYTI2Mjc2NDVlY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBs
LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwu
aApAQCAtNDIsNyArNDIsNyBAQCBwcml2YXRlOgogICAgIFdlYkxheWVyVHJlZVZpZXdJbXBsKFdl
YkxheWVyVHJlZVZpZXdDbGllbnQqLCBjb25zdCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncyYp
OwogICAgIHZpcnR1YWwgfldlYkxheWVyVHJlZVZpZXdJbXBsKCk7CiAgICAgdmlydHVhbCB2b2lk
IHdpbGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91
YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhk
b3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKTsKICAgICB2aXJ0dWFsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCBjMDYyMWE4MDYxMDQx
MDJkOTAyZTc2NWY0YmQ0ZWRiMThiNDBjZTc5Li40MGRiYTRkNWEzYjU2ZjY0OGE5Zjk1MzA2MGI0
NjhiOWQxNDEyMWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCkBAIC0xMzM1LDE3ICsxMzM1LDIyIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUoZG91
YmxlIGZyYW1lQmVnaW5UaW1lKQogI2lmIEVOQUJMRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkK
ICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgemVyby1jaGVjayBvbmNlIHJlbmRlcl93aWRnZXQg
aGFzIGJlZW4gbW9kaWZpZWQgdG8KICAgICAvLyBwYXNzIGluIGEgZnJhbWVCZWdpblRpbWUuCisg
ICAgZG9idWxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lOwogICAgIGlmICghZnJhbWVCZWdpblRp
bWUpCi0gICAgICAgIGZyYW1lQmVnaW5UaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICAgICAgbW9u
b3RvbmljRnJhbWVCZWdpblRpbWUgPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgZG91YmxlIHRpbWVTaGlmdCA9IGN1cnJlbnRUaW1lKCkgLSBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICAgICAgbW9ub3RvbmljRnJhbWVCZWdpblRp
bWUgPSBmcmFtZUJlZ2luVGltZSAtIHRpbWVTaGlmdDsKKyAgICB9CiAKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gSW4gY29tcG9zaXRlZCBtb2RlLCB3ZSBhbHdheXMg
Z28gdGhyb3VnaCB0aGUgY29tcG9zaXRvciBzbyBpdCBjYW4gYXBwbHkKICAgICAvLyBhcHByb3By
aWF0ZSBmbG93LWNvbnRyb2wgbWVjaGFuaXNtcy4KICAgICBpZiAoaXNBY2NlbGVyYXRlZENvbXBv
c2l0aW5nQWN0aXZlKCkpCi0gICAgICAgIG1fbGF5ZXJUcmVlVmlldy51cGRhdGVBbmltYXRpb25z
KGZyYW1lQmVnaW5UaW1lKTsKKyAgICAgICAgbV9sYXllclRyZWVWaWV3LnVwZGF0ZUFuaW1hdGlv
bnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIGVsc2UKICNlbmRpZgotICAgICAgICB1
cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICAgICAgdXBkYXRlQW5pbWF0aW9u
cyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAjZW5kaWYKIH0KIApAQCAtMTM1NCw3ICsxMzU5
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6d2lsbEJlZ2luRnJhbWUoKQogICAgIG1fY2xpZW50LT53
aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRl
QW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRh
dGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKIHsKICNpZiBFTkFC
TEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgVFJBQ0VfRVZFTlQoIldlYlZpZXdJbXBs
Ojp1cGRhdGVBbmltYXRpb25zIiwgdGhpcywgMCk7CkBAIC0xMzY4LDEzICsxMzczLDE0IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKQog
CiAgICAgLy8gQ3JlYXRlIHN5bnRoZXRpYyB3aGVlbCBldmVudHMgYXMgbmVjZXNzYXJ5IGZvciBm
bGluZy4KICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uKSB7Ci0gICAgICAgIGlmIChtX2dlc3R1
cmVBbmltYXRpb24tPmFuaW1hdGUoZnJhbWVCZWdpblRpbWUpKQorICAgICAgICBpZiAobV9nZXN0
dXJlQW5pbWF0aW9uLT5hbmltYXRlKG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKSkKICAgICAgICAg
ICAgIHNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fZ2Vz
dHVyZUFuaW1hdGlvbi5jbGVhcigpOwogICAgIH0KIAotICAgIHZpZXctPnNlcnZpY2VTY3JpcHRl
ZEFuaW1hdGlvbnMoY29udmVydFNlY29uZHNUb0RPTVRpbWVTdGFtcChmcmFtZUJlZ2luVGltZSkp
OworICAgIGRvdWJsZSB0aW1lU2hpZnQgPSBjdXJyZW50VGltZSgpIC0gbW9ub3RvbmljYWxseUlu
Y3JlYXNpbmdUaW1lKCk7CisgICAgdmlldy0+c2VydmljZVNjcmlwdGVkQW5pbWF0aW9ucyhjb252
ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSArIHRp
bWVTaGlmdCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCmluZGV4IDM4YmU2YWRjMzM1ZGQyNTc3M2Y2ODNmZTQ5YWJlNWZmNGUwZWM2NjYuLmM5
YjkzNWRkNDM1MzU0MTQ4NWJmZDJiZTQ4NjhiYmFkOGRiYWQ1YzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtMjU2LDcgKzI1Niw3IEBAIHB1YmxpYzoKIAog
ICAgIC8vIFdlYkxheWVyVHJlZVZpZXdDbGllbnQKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlZ2lu
RnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVC
ZWdpblRpbWUpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2Nh
bGUoY29uc3QgV2ViU2l6ZSYsIGZsb2F0KTsKICAgICB2aXJ0dWFsIFdlYkdyYXBoaWNzQ29udGV4
dDNEKiBjcmVhdGVDb250ZXh0M0QoKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmViaW5kR3JhcGhp
Y3NDb250ZXh0KGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaAppbmRleCA2NTAyZjgyYTNhZDBiOTFiOWQw
NjdjYjNlZDU4ZmMwYTg0ZTBjMzFlLi42ZDJmNWQzM2MzN2QzNjhkY2U3MjJlY2ZiZDkzMGJkN2I0
MTE1NGI0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zha2VDQ0xh
eWVyVHJlZUhvc3RDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0Zh
a2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaApAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50IDogcHVibGljIENDTGF5ZXJU
cmVlSG9zdENsaWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZWdpbkZyYW1l
KCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91YmxlIGZyYW1lQmVn
aW5UaW1lKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9u
b3RvbmljRnJhbWVCZWdpblRpbWUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlTY3JvbGxBbmRTY2FsZShjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSwgZmxvYXQgcGFnZVNjYWxlKSB7IH0KICAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8R3Jh
cGhpY3NDb250ZXh0M0Q+IGNyZWF0ZUNvbnRleHQoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>134202</attachid>
            <date>2012-03-27 19:36:17 -0700</date>
            <delta_ts>2012-03-27 20:16:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-82154-20120327193616.patch</filename>
            <type>text/plain</type>
            <size>14412</size>
            <attacher name="Nat Duca">nduca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCAyOWZkZGYwZDUxYzA5
ZWRkMTI2MTZiYWU2ZTI4ZjY1NmFmODVmOTNkLi43OGIwNTZjYjhhMmY4MWYxY2Q0YjM2MTgwZTdi
NWFhYzEwYTk4ZDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0yNyAg
TmF0IER1Y2EgIDxuZHVjYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0
ZSBtb25vdG9uaWMgY2xvY2sgdXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5
IEphbWVzIFJvYmluc29uLgorCisgICAgICAgICogY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXdDbGllbnQuaDoKKyAgICAgICAgKFdlYkxheWVyVHJlZVZpZXdDbGllbnQpOgorCiAyMDEy
LTAzLTI2ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21p
dW1dIEFkZCBpc0lucHV0VGhyb3R0bGVkL2RpZEJlY29tZVJlYWR5Rm9yQWRkaXRpb25hbElucHV0
IHRvIFdlYldpZGdldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDlhN2M4NTMyYmZhZDBiYjU5MTNlMmI5MGU0N2Fh
MmJhMjU2MWZiYzUuLmU3OWVkYWVlODRmOTZhMGU0ZTgxMWZjZmQxOWZmMDJjNTE5MDdhMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wMy0yNyAgTmF0IER1Y2EgIDxuZHVjYUBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBSb3V0ZSBtb25vdG9uaWMgY2xvY2sg
dXAgZnJvbSBjb21wb3NpdG9yCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjE1NAorCisgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmluc29uLgor
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6dXBkYXRlQW5pbWF0aW9u
cyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0Lmg6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1Ro
cmVhZFByb3h5OjpCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGU6OkJlZ2luRnJhbWVBbmRDb21taXRT
dGF0ZSk6CisgICAgICAgIChCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUpOgorCiAyMDEyLTAzLTI3
ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUmVuYW1lIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKCkgdG8gdmlzaWJsZUNvbnRlbnRPcGFxdWVS
ZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA5OGZmZjk0ZWFiMzFmMGIwMmFm
OGU2ODI4NTVjNTIyZmNjZGY1MmUzLi4wNGExYjQxNjY1NzY1ZWU1ZTUwYTM4Yjk4ZTU5YTA0YjJi
YTNhYzJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEy
LTAzLTI3ICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIFJvdXRlIG1vbm90b25pYyBjbG9jayB1cCBmcm9tIGNvbXBvc2l0b3IKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyMTU0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgSmFtZXMgUm9iaW5zb24uCisKKyAgICAgICAgKiBwdWJsaWMvV2ViV2lkZ2V0Lmg6
CisgICAgICAgIChXZWJLaXQ6OldlYldpZGdldDo6YW5pbWF0ZSk6CisgICAgICAgICogc3JjL1dl
YkxheWVyVHJlZVZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmll
d0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAgICAqIHNyYy9XZWJMYXllclRyZWVWaWV3
SW1wbC5oOgorICAgICAgICAoV2ViTGF5ZXJUcmVlVmlld0ltcGwpOgorICAgICAgICAqIHNyYy9X
ZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbmltYXRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMpOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViVmlld0ltcGwpOgorICAgICAgICAq
IHRlc3RzL0Zha2VDQ0xheWVyVHJlZUhvc3RDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZh
a2VDQ0xheWVyVHJlZUhvc3RDbGllbnQ6OnVwZGF0ZUFuaW1hdGlvbnMpOgorCiAyMDEyLTAzLTI3
ICBEYW5hIEphbnNlbnMgIDxkYW5ha2pAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gUmVuYW1lIG9wYXF1ZUNvbnRlbnRzUmVnaW9uKCkgdG8gdmlzaWJsZUNvbnRlbnRPcGFxdWVS
ZWdpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Q2xpZW50LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dl
YkxheWVyVHJlZVZpZXdDbGllbnQuaAppbmRleCAxOTAzZmZmYTllMTJjOTYyMWE4YjNlYTZmM2Vi
ODUyNDBiMjNlMzZlLi5mZDI0NDg3YzU5YTg3NWRiZWZiNDZkOWI1MTdiYzNjNDI2ZTQ3MTg3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZp
ZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVy
VHJlZVZpZXdDbGllbnQuaApAQCAtNDIsNyArNDIsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBVcGRh
dGVzIGFuaW1hdGlvbiBhbmQgbGF5b3V0LiBUaGVzZSBhcmUgY2FsbGVkIGJlZm9yZSB0aGUgY29t
cG9zaXRpbmcKICAgICAvLyBwYXNzIHNvIHRoYXQgbGF5ZXJzIGNhbiBiZSB1cGRhdGVkIGF0IHRo
ZSBnaXZlbiBmcmFtZSB0aW1lLgotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25zKGRv
dWJsZSBmcmFtZUJlZ2luVGltZSkgPSAwOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRp
b25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBsYXlvdXQoKSA9IDA7CiAKICAgICAvLyBBcHBsaWVzIGEgc2Nyb2xsIGRlbHRhIHRvIHRoZSBy
b290IGxheWVyLCB3aGljaCBpcyBidW5kbGVkIHdpdGggYSBwYWdlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0LmNwcAppbmRleCBhNTVkYWM2N2QxYWM5YjI2ZmRmMDhlZDY0MGJjMmNiZGEzMTYw
MmY1Li41NzZmYzJiMzE5MGEyZDYzMDk1NzU5ODE3NWM0M2VlZjRlNzg4YzI3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTE4MSwxMSArMTgxLDExIEBAIHZvaWQgQ0NMYXll
clRyZWVIb3N0OjpkZWxldGVDb250ZW50c1RleHR1cmVzT25JbXBsVGhyZWFkKFRleHR1cmVBbGxv
Y2F0b3IqIGFsbG9jCiAgICAgICAgIG1fY29udGVudHNUZXh0dXJlTWFuYWdlci0+ZXZpY3RBbmRE
ZWxldGVBbGxUZXh0dXJlcyhhbGxvY2F0b3IpOwogfQogCi12b2lkIENDTGF5ZXJUcmVlSG9zdDo6
dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgd2FsbENsb2NrVGltZSkKK3ZvaWQgQ0NMYXllclRyZWVI
b3N0Ojp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSkKIHsK
ICAgICBtX2FuaW1hdGluZyA9IHRydWU7Ci0gICAgbV9jbGllbnQtPnVwZGF0ZUFuaW1hdGlvbnMo
d2FsbENsb2NrVGltZSk7Ci0gICAgYW5pbWF0ZUxheWVycyhtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSk7CisgICAgbV9jbGllbnQtPnVwZGF0ZUFuaW1hdGlvbnMobW9ub3RvbmljRnJhbWVC
ZWdpblRpbWUpOworICAgIGFuaW1hdGVMYXllcnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwog
ICAgIG1fYW5pbWF0aW5nID0gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgK
aW5kZXggZGQyNjg5ZjgwOTU5YWZmYzgwMWJjODI0MTMzMTljNzIyNzg1ZDg2Yy4uOWNhMTRmYzA0
NDg4M2FiMGMzMTA5YTk3ZmI4YmUxYjJiYTIzNzE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVI
b3N0LmgKQEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBDQ0xheWVyVHJlZUhv
c3QgaW50ZXJmYWNlIHRvIENDUHJveHkuCiAgICAgdm9pZCB3aWxsQmVnaW5GcmFtZSgpIHsgbV9j
bGllbnQtPndpbGxCZWdpbkZyYW1lKCk7IH0KLSAgICB2b2lkIHVwZGF0ZUFuaW1hdGlvbnMoZG91
YmxlIHdhbGxDbG9ja1RpbWUpOworICAgIHZvaWQgdXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgbW9u
b3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIHZvaWQgbGF5b3V0KCk7CiAgICAgdm9pZCBiZWdp
bkNvbW1pdE9uSW1wbFRocmVhZChDQ0xheWVyVHJlZUhvc3RJbXBsKik7CiAgICAgdm9pZCBmaW5p
c2hDb21taXRPbkltcGxUaHJlYWQoQ0NMYXllclRyZWVIb3N0SW1wbCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Ro
cmVhZFByb3h5LmNwcAppbmRleCAyMGE1MGJiYWQ3MWJhMzQyNGU1Y2EyNzY5N2I3NjhlMTk0NzM5
NTFmLi43NzVmZDk5NTY5ODIzYmYyNDg2NTBjZWM2M2E0ODUzM2QyOTUzNzllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNDExLDcgKzQxMSw3IEBAIHZvaWQgQ0NUaHJlYWRQcm94
eTo6c2NoZWR1bGVkQWN0aW9uQmVnaW5GcmFtZSgpCiAgICAgVFJBQ0VfRVZFTlQwKCJjYyIsICJD
Q1RocmVhZFByb3h5OjpzY2hlZHVsZWRBY3Rpb25CZWdpbkZyYW1lIik7CiAgICAgQVNTRVJUKCFt
X3BlbmRpbmdCZWdpbkZyYW1lUmVxdWVzdCk7CiAgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVl
c3QgPSBhZG9wdFB0cihuZXcgQmVnaW5GcmFtZUFuZENvbW1pdFN0YXRlKCkpOwotICAgIG1fcGVu
ZGluZ0JlZ2luRnJhbWVSZXF1ZXN0LT5mcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1lKCk7Cisg
ICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3QtPm1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0g
bW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CiAgICAgbV9wZW5kaW5nQmVnaW5GcmFtZVJl
cXVlc3QtPnNjcm9sbEluZm8gPSBtX2xheWVyVHJlZUhvc3RJbXBsLT5wcm9jZXNzU2Nyb2xsRGVs
dGFzKCk7CiAKICAgICBtX21haW5UaHJlYWRQcm94eS0+cG9zdFRhc2soY3JlYXRlQ0NUaHJlYWRU
YXNrKHRoaXMsICZDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKSk7CkBAIC00NTgsNyArNDU4LDcg
QEAgdm9pZCBDQ1RocmVhZFByb3h5OjpiZWdpbkZyYW1lKCkKICAgICBtX2xheWVyVHJlZUhvc3Qt
PndpbGxCZWdpbkZyYW1lKCk7CiAKICAgICAvLyBGSVhNRTogcmVjcmVhdGUgdGhlIGNvbnRleHQg
aWYgaXQgd2FzIHJlcXVlc3RlZCBieSB0aGUgaW1wbCB0aHJlYWQuCi0gICAgbV9sYXllclRyZWVI
b3N0LT51cGRhdGVBbmltYXRpb25zKHJlcXVlc3QtPmZyYW1lQmVnaW5UaW1lKTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnVwZGF0ZUFuaW1hdGlvbnMocmVxdWVzdC0+bW9ub3RvbmljRnJhbWVCZWdp
blRpbWUpOwogICAgIG1fbGF5ZXJUcmVlSG9zdC0+bGF5b3V0KCk7CiAKICAgICAvLyBDbGVhciB0
aGUgY29tbWl0IGZsYWcgYWZ0ZXIgdXBkYXRpbmcgYW5pbWF0aW9ucyBhbmQgbGF5b3V0IGhlcmUg
LS0tIG9iamVjdHMgdGhhdCBvbmx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmgKaW5kZXggNjE0MzRh
NmE5Y2Y2M2U4MjljZGJjNWI3YjI1MTcwNWU4YWY5NTVlNi4uYTVjNGIzMTIzMzdhOWQxZGJjOGYw
MGExYjA3OTcwMGE4ZmVkODJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuaApAQCAtOTQsOCAr
OTQsOCBAQCBwcml2YXRlOgogCiAgICAgLy8gU2V0IG9uIGltcGwgdGhyZWFkLCByZWFkIG9uIG1h
aW4gdGhyZWFkLgogICAgIHN0cnVjdCBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUgewotICAgICAg
ICBCZWdpbkZyYW1lQW5kQ29tbWl0U3RhdGUoKSA6IGZyYW1lQmVnaW5UaW1lKCkgeyB9Ci0gICAg
ICAgIGRvdWJsZSBmcmFtZUJlZ2luVGltZTsKKyAgICAgICAgQmVnaW5GcmFtZUFuZENvbW1pdFN0
YXRlKCkgOiBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSgpIHsgfQorICAgICAgICBkb3VibGUgbW9u
b3RvbmljRnJhbWVCZWdpblRpbWU7CiAgICAgICAgIE93blB0cjxDQ1Njcm9sbEFuZFNjYWxlU2V0
PiBzY3JvbGxJbmZvOwogICAgIH07CiAgICAgT3duUHRyPEJlZ2luRnJhbWVBbmRDb21taXRTdGF0
ZT4gbV9wZW5kaW5nQmVnaW5GcmFtZVJlcXVlc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYldpZGdldC5oCmluZGV4IGZjMDExY2I4Zjg2MGNkZjQ0YmY3NjFkYzk5NTM0YjY3YThi
MmZmZmEuLmNiY2Y3NDY0MWFjOTEyZjJmM2M4MTFkOTIwMjgyM2RmZWU5NjFkZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCkBAIC03OSwxMCArNzksMTAgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbFNjcmVlbigpIHsgfQogCiAgICAg
Ly8gQ2FsbGVkIHRvIHVwZGF0ZSBpbXBlcmF0aXZlIGFuaW1hdGlvbiBzdGF0ZS4gVGhpcyBzaG91
bGQgYmUgY2FsbGVkIGJlZm9yZQotICAgIC8vIHBhaW50LCBhbHRob3VnaCB0aGUgY2xpZW50IGNh
biByYXRlLWxpbWl0IHRoZXNlIGNhbGxzLiBXaGVuCi0gICAgLy8gZnJhbWVCZWdpblRpbWUgaXMg
MC4wLCB0aGUgV2ViV2lkZ2V0IHdpbGwgZGV0ZXJtaW5lIHRoZSBmcmFtZSBiZWdpbiB0aW1lCi0g
ICAgLy8gaXRzZWxmLgotICAgIHZpcnR1YWwgdm9pZCBhbmltYXRlKGRvdWJsZSBmcmFtZUJlZ2lu
VGltZSkgeyB9CisgICAgLy8gcGFpbnQsIGFsdGhvdWdoIHRoZSBjbGllbnQgY2FuIHJhdGUtbGlt
aXQgdGhlc2UgY2FsbHMuCisgICAgLy8KKyAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgZnVuY3Rp
b24gZW50aXJlbHkgd2hlbiBpbnZlcnNpb24gcGF0Y2hlcyBsYW5kLgorICAgIHZpcnR1YWwgdm9p
ZCBhbmltYXRlKGRvdWJsZSBpZ25vcmVkKSB7IH0KIAogICAgIC8vIENhbGxlZCB0byBsYXlvdXQg
dGhlIFdlYldpZGdldC4gVGhpcyBNVVNUIGJlIGNhbGxlZCBiZWZvcmUgUGFpbnQsCiAgICAgLy8g
YW5kIGl0IG1heSByZXN1bHQgaW4gY2FsbHMgdG8gV2ViV2lkZ2V0Q2xpZW50OjpkaWRJbnZhbGlk
YXRlUmVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVy
VHJlZVZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJl
ZVZpZXdJbXBsLmNwcAppbmRleCBiOGVmNWE5MjA4NDBjNjc4MGExYmU4YmZmNjIwZjc5MDJjM2Zh
MTRiLi42OGNmZGJlMWRkZGE4Mjk2ODJjYjUzM2M4OGM3MjhjNmE3MzRkNjg5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBA
IC02NiwxMCArNjYsMTAgQEAgdm9pZCBXZWJMYXllclRyZWVWaWV3SW1wbDo6d2lsbEJlZ2luRnJh
bWUoKQogICAgICAgICBtX2NsaWVudC0+d2lsbEJlZ2luRnJhbWUoKTsKIH0KIAotdm9pZCBXZWJM
YXllclRyZWVWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUp
Cit2b2lkIFdlYkxheWVyVHJlZVZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25v
dG9uaWNGcmFtZUJlZ2luVGltZSkKIHsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT51cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICAgICAgbV9jbGllbnQt
PnVwZGF0ZUFuaW1hdGlvbnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogfQogCiB2b2lkIFdl
YkxheWVyVHJlZVZpZXdJbXBsOjpsYXlvdXQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmgKaW5kZXggNDNkNGNjMWViZGMwZjAzZWRkYzVm
MjU1NTkwYzNkYTZkOGVkM2Q2Yi4uYWYwNGEzNWJkYzA1ZWE1ZWE1ZmFjMDNiYjMxNmJhMjYyNzY0
NWVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVl
Vmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVW
aWV3SW1wbC5oCkBAIC00Miw3ICs0Miw3IEBAIHByaXZhdGU6CiAgICAgV2ViTGF5ZXJUcmVlVmll
d0ltcGwoV2ViTGF5ZXJUcmVlVmlld0NsaWVudCosIGNvbnN0IFdlYkxheWVyVHJlZVZpZXc6OlNl
dHRpbmdzJik7CiAgICAgdmlydHVhbCB+V2ViTGF5ZXJUcmVlVmlld0ltcGwoKTsKICAgICB2aXJ0
dWFsIHZvaWQgd2lsbEJlZ2luRnJhbWUoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0
aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmlt
YXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAgICAgdmlydHVhbCB2b2lk
IGxheW91dCgpOwogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBmbG9hdCBwYWdlU2NhbGUpOwogICAgIHZpcnR1
YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRD4gY3JlYXRlQ29udGV4dCgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGMwNjIx
YTgwNjEwNDEwMmQ5MDJlNzY1ZjRiZDRlZGIxOGI0MGNlNzkuLjYzYTQyMWIwYmI3ZWUxMzc3ZTA0
YWE1NTkzYmY0ODRiN2U2ZGZmMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAKQEAgLTEzMzAsMjIgKzEzMzAsMTkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5z
dHJ1bWVudENhbmNlbEZyYW1lKCkKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENh
bmNlbEZyYW1lKG1fcGFnZS5nZXQoKSk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmFuaW1hdGUo
ZG91YmxlIGZyYW1lQmVnaW5UaW1lKQordm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZShkb3VibGUp
CiB7CiAjaWYgRU5BQkxFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKQotICAgIC8vIEZJWE1FOiBy
ZW1vdmUgdGhpcyB6ZXJvLWNoZWNrIG9uY2UgcmVuZGVyX3dpZGdldCBoYXMgYmVlbiBtb2RpZmll
ZCB0bwotICAgIC8vIHBhc3MgaW4gYSBmcmFtZUJlZ2luVGltZS4KLSAgICBpZiAoIWZyYW1lQmVn
aW5UaW1lKQotICAgICAgICBmcmFtZUJlZ2luVGltZSA9IGN1cnJlbnRUaW1lKCk7CisgICAgZG91
YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lID0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1l
KCk7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gSW4gY29tcG9z
aXRlZCBtb2RlLCB3ZSBhbHdheXMgZ28gdGhyb3VnaCB0aGUgY29tcG9zaXRvciBzbyBpdCBjYW4g
YXBwbHkKICAgICAvLyBhcHByb3ByaWF0ZSBmbG93LWNvbnRyb2wgbWVjaGFuaXNtcy4KICAgICBp
ZiAoaXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpCi0gICAgICAgIG1fbGF5ZXJUcmVl
Vmlldy51cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAgICAgICAgbV9sYXllclRy
ZWVWaWV3LnVwZGF0ZUFuaW1hdGlvbnMobW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIGVs
c2UKICNlbmRpZgotICAgICAgICB1cGRhdGVBbmltYXRpb25zKGZyYW1lQmVnaW5UaW1lKTsKKyAg
ICAgICAgdXBkYXRlQW5pbWF0aW9ucyhtb25vdG9uaWNGcmFtZUJlZ2luVGltZSk7CiAjZW5kaWYK
IH0KIApAQCAtMTM1NCw3ICsxMzUxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6d2lsbEJlZ2luRnJh
bWUoKQogICAgIG1fY2xpZW50LT53aWxsQmVnaW5Db21wb3NpdG9yRnJhbWUoKTsKIH0KIAotdm9p
ZCBXZWJWaWV3SW1wbDo6dXBkYXRlQW5pbWF0aW9ucyhkb3VibGUgZnJhbWVCZWdpblRpbWUpCit2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zKGRvdWJsZSBtb25vdG9uaWNGcmFtZUJl
Z2luVGltZSkKIHsKICNpZiBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpCiAgICAgVFJB
Q0VfRVZFTlQoIldlYlZpZXdJbXBsOjp1cGRhdGVBbmltYXRpb25zIiwgdGhpcywgMCk7CkBAIC0x
MzY4LDEzICsxMzY1LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUFuaW1hdGlvbnMoZG91
YmxlIGZyYW1lQmVnaW5UaW1lKQogCiAgICAgLy8gQ3JlYXRlIHN5bnRoZXRpYyB3aGVlbCBldmVu
dHMgYXMgbmVjZXNzYXJ5IGZvciBmbGluZy4KICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uKSB7
Ci0gICAgICAgIGlmIChtX2dlc3R1cmVBbmltYXRpb24tPmFuaW1hdGUoZnJhbWVCZWdpblRpbWUp
KQorICAgICAgICBpZiAobV9nZXN0dXJlQW5pbWF0aW9uLT5hbmltYXRlKG1vbm90b25pY0ZyYW1l
QmVnaW5UaW1lKSkKICAgICAgICAgICAgIHNjaGVkdWxlQW5pbWF0aW9uKCk7CiAgICAgICAgIGVs
c2UKICAgICAgICAgICAgIG1fZ2VzdHVyZUFuaW1hdGlvbi5jbGVhcigpOwogICAgIH0KIAotICAg
IHZpZXctPnNlcnZpY2VTY3JpcHRlZEFuaW1hdGlvbnMoY29udmVydFNlY29uZHNUb0RPTVRpbWVT
dGFtcChmcmFtZUJlZ2luVGltZSkpOworICAgIGRvdWJsZSB0aW1lU2hpZnQgPSBjdXJyZW50VGlt
ZSgpIC0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgdmlldy0+c2VydmljZVNj
cmlwdGVkQW5pbWF0aW9ucyhjb252ZXJ0U2Vjb25kc1RvRE9NVGltZVN0YW1wKG1vbm90b25pY0Zy
YW1lQmVnaW5UaW1lICsgdGltZVNoaWZ0KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggMzhiZTZhZGMzMzVkZDI1NzczZjY4M2ZlNDlh
YmU1ZmY0ZTBlYzY2Ni4uYjI1ZGRkZTA2MjhiZTMxZWViNGYzYzg3NDdiZGZjZTcxOTAyNTVjZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC0xMTYsNyArMTE2
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAg
ICB2aXJ0dWFsIHZvaWQgd2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZEV4aXRGdWxsU2NyZWVuKCk7Ci0gICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIGZyYW1l
QmVnaW5UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0ZShkb3VibGUpOwogICAgIHZpcnR1
YWwgdm9pZCBsYXlvdXQoKTsgLy8gQWxzbyBpbXBsZW1lbnRzIENDTGF5ZXJUcmVlSG9zdENsaWVu
dDo6bGF5b3V0KCkKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnQoV2ViQ2FudmFzKiwgY29uc3QgV2Vi
UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCB0aGVtZUNoYW5nZWQoKTsKQEAgLTI1Niw3ICsyNTYs
NyBAQCBwdWJsaWM6CiAKICAgICAvLyBXZWJMYXllclRyZWVWaWV3Q2xpZW50CiAgICAgdmlydHVh
bCB2b2lkIHdpbGxCZWdpbkZyYW1lKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1hdGlv
bnMoZG91YmxlIGZyYW1lQmVnaW5UaW1lKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQW5pbWF0
aW9ucyhkb3VibGUgbW9ub3RvbmljRnJhbWVCZWdpblRpbWUpOwogICAgIHZpcnR1YWwgdm9pZCBh
cHBseVNjcm9sbEFuZFNjYWxlKGNvbnN0IFdlYlNpemUmLCBmbG9hdCk7CiAgICAgdmlydHVhbCBX
ZWJHcmFwaGljc0NvbnRleHQzRCogY3JlYXRlQ29udGV4dDNEKCk7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlYmluZEdyYXBoaWNzQ29udGV4dChib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudC5oIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKaW5kZXggNjUw
MmY4MmEzYWQwYjkxYjlkMDY3Y2IzZWQ1OGZjMGE4NGUwYzMxZS4uNmQyZjVkMzNjMzdkMzY4ZGNl
NzIyZWNmYmQ5MzBiZDdiNDExNTRiNCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9GYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgKQEAgLTM1LDcgKzM1LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmFrZUNDTGF5ZXJUcmVlSG9zdENsaWVudCA6
IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RDbGllbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQmVnaW5GcmFtZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBbmltYXRpb25z
KGRvdWJsZSBmcmFtZUJlZ2luVGltZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFuaW1h
dGlvbnMoZG91YmxlIG1vbm90b25pY0ZyYW1lQmVnaW5UaW1lKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbGF5b3V0KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5U2Nyb2xsQW5kU2NhbGUoY29u
c3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGZsb2F0IHBhZ2VTY2FsZSkgeyB9CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjcmVhdGVDb250ZXh0KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>