<?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>88724</bug_id>
          
          <creation_ts>2012-06-10 00:10:20 -0700</creation_ts>
          <short_desc>Update the time display of Chromium media controls</short_desc>
          <delta_ts>2013-04-27 01:03:12 -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>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>87683</dependson>
    
    <dependson>87835</dependson>
    
    <dependson>88297</dependson>
    
    <dependson>88623</dependson>
          <blocked>84672</blocked>
    
    <blocked>88743</blocked>
    
    <blocked>88818</blocked>
    
    <blocked>89050</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Silvia Pfeiffer">silviapf</reporter>
          <assigned_to name="Silvia Pfeiffer">silviapf</assigned_to>
          <cc>annacc</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>scherkus</cc>
    
    <cc>silviapfeiffer1</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>645455</commentid>
    <comment_count>0</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-10 00:10:20 -0700</bug_when>
    <thetext>This is a fifth patch for the introduction of the new Chromium video controls, master bug at https://bugs.webkit.org/show_bug.cgi?id=84672 .

This changes the format of the time digits that are displayed. They are different for media files of different duration. For non-autoplaying videos, the duration is shown before playback is started.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645468</commentid>
    <comment_count>1</comment_count>
      <attachid>146727</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-10 01:38:44 -0700</bug_when>
    <thetext>Created attachment 146727
Full patch for layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645469</commentid>
    <comment_count>2</comment_count>
      <attachid>146728</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-10 01:50:42 -0700</bug_when>
    <thetext>Created attachment 146728
Use this for review

This is the difference to the previous patch. It will not pass the test - refer to the full patch for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645702</commentid>
    <comment_count>3</comment_count>
      <attachid>146774</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-10 21:14:51 -0700</bug_when>
    <thetext>Created attachment 146774
Full patch for layout tests - rebased to TOT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645703</commentid>
    <comment_count>4</comment_count>
      <attachid>146728</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-10 21:15:25 -0700</bug_when>
    <thetext>Comment on attachment 146728
Use this for review

Still the correct diff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645728</commentid>
    <comment_count>5</comment_count>
      <attachid>146774</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-10 22:13:05 -0700</bug_when>
    <thetext>Comment on attachment 146774
Full patch for layout tests - rebased to TOT

Attachment 146774 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12939268</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645930</commentid>
    <comment_count>6</comment_count>
      <attachid>146840</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-11 06:04:22 -0700</bug_when>
    <thetext>Created attachment 146840
Full patch for layout tests - with skia fixes from test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645934</commentid>
    <comment_count>7</comment_count>
      <attachid>146842</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-11 06:11:30 -0700</bug_when>
    <thetext>Created attachment 146842
Review this, including the fixes for skia.

Review this, including the fixes for skia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646039</commentid>
    <comment_count>8</comment_count>
      <attachid>146842</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-06-11 09:43:41 -0700</bug_when>
    <thetext>Comment on attachment 146842
Review this, including the fixes for skia.

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

r=me with the suggested changes.

&gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:357
&gt; +    int seconds = (int)fabsf(time);

WebKit C++ code should use C++-style casts rather than C-style cast

&gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:363
&gt; +    int durationSecs = (int)fabsf(duration);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646721</commentid>
    <comment_count>9</comment_count>
      <attachid>147032</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-12 01:19:01 -0700</bug_when>
    <thetext>Created attachment 147032
full patch with int cast fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646723</commentid>
    <comment_count>10</comment_count>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-12 01:20:15 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 146842 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=146842&amp;action=review
&gt; 
&gt; r=me with the suggested changes.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:357
&gt; &gt; +    int seconds = (int)fabsf(time);
&gt; 
&gt; WebKit C++ code should use C++-style casts rather than C-style cast
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:363
&gt; &gt; +    int durationSecs = (int)fabsf(duration);
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>646733</commentid>
    <comment_count>11</comment_count>
      <attachid>147032</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-12 01:40:23 -0700</bug_when>
    <thetext>Comment on attachment 147032
full patch with int cast fix

Attachment 147032 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/12941574</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648587</commentid>
    <comment_count>12</comment_count>
      <attachid>147444</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-13 16:54:20 -0700</bug_when>
    <thetext>Created attachment 147444
patch for cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648669</commentid>
    <comment_count>13</comment_count>
      <attachid>147444</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-13 18:48:10 -0700</bug_when>
    <thetext>Comment on attachment 147444
patch for cq

unfortunately introduced a bug in skia - gotta re-upload</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648675</commentid>
    <comment_count>14</comment_count>
      <attachid>147464</attachid>
    <who name="Silvia Pfeiffer">silviapf</who>
    <bug_when>2012-06-13 18:53:04 -0700</bug_when>
    <thetext>Created attachment 147464
patch for cq</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649142</commentid>
    <comment_count>15</comment_count>
      <attachid>147464</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 07:01:53 -0700</bug_when>
    <thetext>Comment on attachment 147464
patch for cq

Clearing flags on attachment: 147464

Committed r120322: &lt;http://trac.webkit.org/changeset/120322&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649143</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-14 07:02:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>880195</commentid>
    <comment_count>17</comment_count>
      <attachid>147464</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2013-04-23 17:29:13 -0700</bug_when>
    <thetext>Comment on attachment 147464
patch for cq

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

&gt; Source/WebCore/rendering/RenderThemeChromiumMac.mm:239
&gt; +    return RenderThemeChromiumMac::formatMediaControlsRemainingTime(currentTime, duration);

Do you mean RenderMediaControlsChromium::formatMediaControlsRemainingTime() here? As is, this is an infinite recursion, right? (Is this not covered by tests?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>882159</commentid>
    <comment_count>18</comment_count>
    <who name="Silvia Pfeiffer">silviapfeiffer1</who>
    <bug_when>2013-04-27 01:03:12 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 147464 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147464&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeChromiumMac.mm:239
&gt; &gt; +    return RenderThemeChromiumMac::formatMediaControlsRemainingTime(currentTime, duration);
&gt; 
&gt; Do you mean RenderMediaControlsChromium::formatMediaControlsRemainingTime() here? As is, this is an infinite recursion, right? (Is this not covered by tests?)

Right, nice find. This was in preparation for a feature where we would toggle between current time and remaining time, but wasn&apos;t ever used. Thanks for taking care of it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146727</attachid>
            <date>2012-06-10 01:38:44 -0700</date>
            <delta_ts>2012-06-10 21:14:37 -0700</delta_ts>
            <desc>Full patch for layout tests</desc>
            <filename>bug-88724-20120610183841.patch</filename>
            <type>text/plain</type>
            <size>75928</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5ODk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjUxYWU5NzA1ODExMDUy
ZjIwYzhlNDRhMWVkZDVjZWRjNDdmNmNlMS4uNmEyNTgzNGRiYzZkZmM4NmI2NmYwYzM5NmZjMTM1
NzhjYzcxNWM4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4NyBAQAorMjAxMi0wNi0xMCAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSB0
aGUgdGltZSBkaXNwbGF5IG9mIHRoZSBuZXcgQ2hyb21pdW0gbWVkaWEgY29udHJvbHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODcyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
ZmluYWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAg
ICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRl
LiBUaGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdp
dHMgdGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAg
ICAgIGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRl
b3MsIHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3Rh
cnRlZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAg
ICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6Cisg
ICAgICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1
cnJlbnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAg
ICAgIEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAg
ICAgICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxs
eSBoaWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAg
IEFkZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAg
QWRkIHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhl
IGR1cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAg
ICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9u
IGRpc3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0
aW9uIG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJl
bWFpbmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRp
YUNvbnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBj
b25kaXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBX
aGVuIGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0
aGUgZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAg
Rm9ybWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUg
Y3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgor
ICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRp
bWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFD
b250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0
aGUgdGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAg
ICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgor
ICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3Ig
Q2hyb21pdW0gU2tpYS4KKworMjAxMi0wNi0wOSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSByYW5nZSBzbGlkZXJzIHJlbmRlcmluZyBm
b3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBvZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRy
b2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGluZWQgdGVzdHMu
CisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlz
dWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1cGRhdGVzIHRvIHRoZQorICAgICAgICBy
ZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9yIHRoZSBwbGF5YmFjayBwb3NpdGlvbiBh
bmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAgICAgICAgY3JlYXRpb24gb2YgYSBz
aGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxlIHRoZSByYW5nZSBzbGlkZXJzIHZpYSBD
U1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhlIHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0
aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNs
aWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRl
ciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjot
d2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAgIEFkanVzdCB0aGUgc3R5bGluZyBv
ZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIHNsaWRlciB0aHVtYiBz
aGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIG1lZGlh
IHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NT
IHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBB
ZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIg
dGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250YWluZXIuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRv
IGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMgaW4gYSBkYXJrIGNvbG9yLgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodCk6CisgICAgICAgIEFkZCBm
dW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSByZWdpb24gb24gdGhlIHNsaWRlcnMs
IHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBpdHMgZW5kcy4KKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQg
YW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHBsYXliYWNrIHBvc2l0aW9uIHNs
aWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXIpOgorICAgICAgICBVcGRh
dGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZv
bHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5j
dGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcgb2YgdGhlIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODgyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChmaW5hbCBwYXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVk
IHRlc3RzKQorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2Vpdmlu
ZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMgcGF0Y2ggaW5jbHVkZXMgQ1NTIGNoYW5nZXMsCisgICAg
ICAgIHRoZSByZW1vdmFsIG9mIHRoZSBub3cgbm8gbG9uZ2VyIG5lZWRlZCBjb250cm9scyBiYWNr
Z3JvdW5kIGRpdiwgYW5kIHRoZSBpbnRyb2R1Y3Rpb24gb2YKKyAgICAgICAgbmV3IGltYWdlcyBm
b3IgdGhlIGJ1dHRvbnMuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
czoKKyAgICAgICAgKGF1ZGlvKToKKyAgICAgICAgQWRqdXN0IGhlaWdodCBvZiBhdWRpbyBjb250
cm9scy4KKyAgICAgICAgKDo6LXdlYmtpdC1tZWRpYS1jb250cm9scyk6CisgICAgICAgIFVzZSBm
bGV4Ym94IG9uIG1lZGlhIGNvbnRyb2xzIHNoYWRvdyBET00uCisgICAgICAgIChhdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWVuY2xvc3VyZSk6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIG1heC13aWR0aCwgdGV4dC1p
bmRlbnQgYW5kIGJveC1zaXppbmcsIGFuZCByZXNldCBwYWRkaW5nIHRvIDAuCisgICAgICAgICh2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUpOgorICAgICAgICBVc2UgNXB4
IHBhZGRpbmcgb25seSBmb3IgdmlkZW8gY29udHJvbHMgYW5kIGFkanVzdCBoZWlnaHQgYWNjb3Jk
aW5nbHkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICBVc2UgZmxleGJveCBv
biBwYW5lbCwgYWRqdXN0IGJvdHRvbSBhbGlnbm1lbnQsIGhlaWdodCwgYmFja2dyb3VuZCBjb2xv
ciBhbmQgYm9yZGVyIHJhZGl1cy4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
bik6CisgICAgICAgIERpc3BsYXkgYnV0dG9ucyBpbmxpbmUgd2l0aCBmaXhlZCB3aWR0aCBhbmQg
aGVpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLCBubyBwYWRkaW5nIGFuZAorICAgICAgICA2cHgg
c3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50ICh0aGlzIHdpbGwgYmUgMTVweCBpbmNsIHRo
ZSBzcGFjZSBpbiB0aGUgaW1hZ2UpLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0
dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlubGluZSB3aXRoIGZpeGVkIHdpZHRoIGFu
ZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5vIHBhZGRpbmcgYW5kCisgICAgICAgIDlw
eCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGluY2wg
dGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBEaXNwbGF5IHRleHQgYXMgYmxvY2ss
IHdpdGhvdXQgYnJvZGVyLCBhZGp1c3RlZCBoZWlnaHQsIGZvbnQtZmFtaWx5LCBmb250LXNpemUg
YW5kIDlweCBzcGFjZQorICAgICAgICB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2ls
bCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUpOgorICAgICAgICBBZGp1c3QgaGVpZ2h0LCBwYWRkaW5nLCBiYWNrZ3Jv
dW5kLWNvbG9yLCBtaW4td2RpdGggYW5kIDE1cHggc3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVt
ZW50LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlcik6CisgICAgICAg
IEFkanVzdCBoZWlnaHQsIG1heC0gYW5kIG1pbi13aWR0aCwgYmFja2dyb3VuZC1jb2xvciBhbmQg
MTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQuCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMg
bm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94Lgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vz
c2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5l
Y2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAg
ICAgICBTaG93IHRoZSB0aW1lbGluZSBpbnN0ZWFkIG9mIHRoZSB0aW1lbGluZSBjb250YWluZXIg
d2hlbiByZXNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgSGlkZSB0aGUgdGltZWxpbmUgaW5z
dGVhZCBvZiB0aGUgdGltZWxpbmUgY29udGFpbmVyIHdoZW4gcnVubmluZyBpbnRvIGFuIGVycm9y
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU11dGVCdXR0b24pOgorICAgICAgICBJbnRyb2R1
Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIG11dGUgYnV0dG9uIGFuZCBhZGp1c3QgaXQg
YmFzZWQgb24gdm9sdW1lIGxldmVscy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFQbGF5
QnV0dG9uKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBpbWFnZSByZXNvdXJjZXMgZm9yIHRoZSBw
bGF5IGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhU2xpZGVyVGh1bWIpOgorICAg
ICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIHBvc2l0aW9uIHNsaWRl
ciB0aHVtYi4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6
CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgdm9sdW1lIHNs
aWRlciB0aHVtYi4KKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVk
aWFDb250cm9sc1BhcnQpOgorICAgICAgICBBZGQgdGltZWxpbmUgY29udGFpbmVyIHBhaW50aW5n
IHRvIHRoZSAibm90IHJlYWNoZWQiIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIFByb3ZpZGUgc2l6ZSBzZXR0aW5ncyBmb3IgdGhlIHBvc2l0aW9uIGFuZCB2b2x1bWUgc2xp
ZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICBDYWxjdWxhdGUgY29ycmVjdCB3aWR0
aCBhbmQgaGVpZ2h0IHNldHRpbmdzIGZvciB0aGUgbmV3IGltYWdlIHJlc291cmNlcyBvZiB0aGUg
cG9zaXRpb24gYW5kIHZvbHVtZQorICAgICAgICBzbGlkZXIgdGh1bWJzLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgIChSZW5kZXJUaGVtZUNo
cm9taXVtTWFjKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcg
KGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29u
dGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
UmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRy
b2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
U2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAgICAgICBSZW1v
dmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMg
YmFja2dyb3VuZCkuCisKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpv
bnRhbCByZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAodmlzdWFsIHVw
ZGF0ZSB3aWxsIGNvbnRhaW4gcmViYXNlbGluZWQgdGVzdHMpCisKKyAgICAgICAgVGhlIENocm9t
ZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhlIHZvbHVt
ZSBzbGlkZXIgaXMgaW5jbHVkZWQgaW50bworICAgICAgICB0aGUgY29udHJvbHMgd2l0aCBob3Jp
em9udGFsIHJlbmRlcmluZywgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFpbmVyIGlzIHJlbW92ZWQu
IFRoZSB2aXN1YWwKKyAgICAgICAgdXBkYXRlIGl0c2VsZiBpcyBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAgICAgICBSZW1vdmVkIHJlbGF0aXZlIHBv
c2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1YWxseSBpbiBET00g
b3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAgICBS
ZW1vdmVkIGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVu
dHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgIFJlbW92ZWQgYWJzb2x1dGUgcG9zaXRpb25p
bmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50cyBlcXVhbGx5IGluIERPTSBvcmRlci4K
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRh
aW5lcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5v
dCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBSZW1vdmUgZmxleGJveCBhbmQgaW50cm9k
dWNlIGlubGluZSBkaXNwbGF5IHRvIGFsd2F5cyBkaXNwbGF5IHRoaXMgZmllbGQuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyKToKKyAgICAgICAgUmVtb3ZlZCBhYnNv
bHV0ZSBwb3NpdGlvbmluZyB0byByZW5kZXIgYWxsIGNvbnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkg
aW4gRE9NIG9yZGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIFJl
bW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55IG1v
cmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBBcHBlbmRlZCB0aGUgdm9sdW1lIHNsaWRlciBhbmQgdGhlIG11dGUg
YnV0dG9uIGRpcmVjdGx5IHRvIHRoZSBwYW5lbCwgcmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRh
aW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250
YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5l
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNo
b3dWb2x1bWVTbGlkZXIpOgorICAgICAgICBSZW1vdmVkIHZvbHVtZSBzbGlkZXIgY29udGFpbmVy
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5jZSk6CisgICAgICAgIEFsbG93IHVzZSBvZiBob3Jpem9u
dGFsIG1lZGlhIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJU
aHVtYjo6bGF5b3V0KToKKyAgICAgICAgUmV1c2UgaGFzVmVydGljYWxBcHBlYXJhbmNlIGZ1bmN0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1l
ZGlhVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQ2hhbmdlIGxpbmUgZHJhd2luZyBmcm9tIHZlcnRp
Y2FsIHRvIGhvcml6b250YWwuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKToK
KyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlciBmdW5jdGlvbiB0byBhbGxvdyBo
b3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisg
ICAgICAgIEFkZCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9y
aXpvbnRhbCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lh
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisK
KzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIHRlc3RzLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJl
IHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIEEgbmV3IGVuY2xvc3VyZSBkaXYgaXMgcmVxdWly
ZWQKKyAgICAgICAgdG8gcHJvdmlkZSBmb3IgYSBvZmZzZXQgc3BhY2UgZnJvbSB0aGUgdmlkZW8n
cyBib3VuZGFyaWVzLiBUaGUgdmlzdWFsIHVwZGF0ZSBpdHNlbGYgaXMgaW4KKyAgICAgICAgYSBz
ZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Nz
OgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlKToKKyAg
ICAgICAgSW50cm9kdWNlIENTUyBmb3IgZW5jbG9zdXJlIGRpdiBzbyBpdCBkb2Vzbid0IHNob3cg
eWV0LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICBE
ZWZpbml0aW9uIG9mIHRoZSBuZXcgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IERlZmluaXRpb24gb2YgYSBjcmVhdGUgb3BlcmF0b3IgZm9yIHRoZSBuZXcgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgRGVmaW5pdGlvbiBvZiB0aGUgc2hhZG93
UHNldWRvSWQgb2YgLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgZm9yIHRoZSBlbmNs
b3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEluaXRpYWxp
emUgbWVtYmVyIGVsZW1lbnQgZm9yIGVuY2xvc3VyZSBkaXYuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICBJbnN0YW50
aWF0ZSBlbmNsb3N1cmUgZGl2IGFuZCBhZGQgaW50byBET00gYmV0d2VlbiBjb250cm9scyBhbmQg
cGFuZWwgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICBTZXQgbWVkaWEgY29udHJv
bGxlciBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICBJbnNl
cnQgdGV4dCB0cmFjayBkaXNwbGF5IGNvbnRhaW5lciB0byBlbmNsb3N1cmUgcmF0aGVyIHRoYW4g
cGFuZWwuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjptZWRpYUNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
Ojppc01lZGlhQ29udHJvbEVsZW1lbnQpOgorICAgICAgICBBZGQgZGVjbGFyYXRpb24gb2YgdGhl
IG5ldyBlbmNsb3N1cmUgZWxlbWVudCBhbmQgaXRzIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgQWRkIG1lbWJlciB2
YXJpYWJsZSB0byBjb250cm9scyByb290IGVsZW1lbnQgdG8gaG9sZCB0aGUgZW5jbG9zdXJlIGVs
ZW1lbnQuCisKIDIwMTItMDYtMDggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIFJlbmRlckxheWVyOjpwYWludENoaWxkTGF5ZXJJbnRvQ29sdW1ucyBkb2Vz
bid0IHByb3Blcmx5IHBpeGVsIHNuYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNDaHJvbWl1bS5jc3MKaW5kZXggNDA5Mzk4YzVkMGNjZjBjOWQ2M2Y2MGU5YjY5MzcyZTlhMzky
NGQyNi4uMzk2ZjY2MWVmMDQxNzgyZTIzNTlkYTcwMzNkOWM1NGI0OTFjMWE2MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKQEAgLTMxLDcgKzMxLDcg
QEAgYm9keTotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYSB7CiAKIGF1ZGlvIHsKICAgICB3aWR0aDog
MzAwcHg7Ci0gICAgaGVpZ2h0OiAzMnB4OworICAgIGhlaWdodDogMzBweDsKIH0KIAogYXVkaW86
LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEsIHZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsK
QEAgLTM5LDkwICszOSw3OSBAQCBhdWRpbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYSwgdmlkZW86
LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEgewogICAgIG1heC13aWR0aDogMTAwJTsKIH0KIAotYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXBhbmVsIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOworOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0
LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogICAgIC13ZWJraXQtYm94LXBhY2s6IGVuZDsKLSAgICBw
b3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgb3ZlcmZsb3c6IHZpc2libGU7Ci0gICAgYm90dG9tOiAw
OworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5j
bG9zdXJlIHsKICAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDMycHg7Ci0gICAgei1pbmRl
eDogMDsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNik7CisgICAgbWF4
LXdpZHRoOiA4MDBweDsKKyAgICBoZWlnaHQ6IDMwcHg7CisgICAgYm90dG9tOiAwOworICAgIHRl
eHQtaW5kZW50OiAwOworICAgIHBhZGRpbmc6IDA7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJv
eDsKIH0KIAotdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGFuZWwgewotICAgIGJvdHRvbTogMHB4OwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZW5jbG9zdXJlIHsKKyAgICBwYWRkaW5nOiAwcHggNXB4IDVweCA1cHg7CisgICAgaGVp
Z2h0OiAzNXB4OwogfQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgewotICAgIC13ZWJraXQtYm94LWFsaWdu
OiBlbmQ7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50
OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CisgICAgLXdlYmtp
dC1ib3gtcGFjazogY2VudGVyOworICAgIGJvdHRvbTogYXV0bzsKKyAgICBoZWlnaHQ6IDMwcHg7
CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMCwgMjAsIDIwLCAwLjgpOworICAgIGJvcmRl
ci1yYWRpdXM6IDVweDsKIH0KIAogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1i
dXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uIHsKICAgICAt
d2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW11dGUtYnV0dG9uOwotICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90dG9tOiAwOwotICAgIHJpZ2h0OiAwOwotICAg
IGxlZnQ6IGF1dG87Ci0KLSAgICB3aWR0aDogMzRweDsKLSAgICBoZWlnaHQ6IDMycHg7CisgICAg
ZGlzcGxheTogaW5saW5lOworICAgIGJvcmRlcjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3Jk
ZXItYm94OworICAgIHdpZHRoOiAzNXB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBsaW5lLWhl
aWdodDogMzBweDsKKyAgICBtYXJnaW46IDAgNnB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOwogfQog
CiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTog
bWVkaWEtcGxheS1idXR0b247Ci0KLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgdG9wOiBh
dXRvOwotICAgIGJvdHRvbTogN3B4OwotICAgIGxlZnQ6IDdweDsKLSAgICByaWdodDogNnB4Owot
Ci0gICAgd2lkdGg6IDE4cHg7Ci0gICAgaGVpZ2h0OiAxOXB4OwotfQotCi1hdWRpbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciB7Ci0gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS10aW1lbGluZS1jb250YWluZXI7Ci0gICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsK
LSAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7Ci0gICAgLXdlYmtpdC1ib3gtYWxp
Z246IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7Ci0gICAgLXdlYmtpdC1i
b3gtZmxleDogMTsKLQotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0g
ICAgYm90dG9tOiAwOwotICAgIGxlZnQ6IDMwcHg7Ci0gICAgcmlnaHQ6IDM0cHg7Ci0KLSAgICB3
aWR0aDogYXV0bzsKLSAgICBoZWlnaHQ6IDMycHg7Ci0KLSAgICBib3JkZXItbGVmdDogMXB4IHNv
bGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAgICBib3JkZXItcmlnaHQ6IDFweCBzb2xp
ZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7CisgICAgZGlzcGxheTogaW5saW5lOworICAgIGJv
cmRlcjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHdpZHRoOiAzMHB4
OworICAgIGhlaWdodDogMzBweDsKKyAgICBsaW5lLWhlaWdodDogMzBweDsKKyAgICBtYXJnaW4t
bGVmdDogOXB4OworICAgIG1hcmdpbi1yaWdodDogOXB4OworICAgIHBhZGRpbmc6IDA7CiB9CiAK
LWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CithdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCithdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6
IG5vbmU7Ci0gICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gICAgLXdlYmtpdC1ib3gtZmxleDog
MDsKLSAgICAtd2Via2l0LWJveC1wYWNrOiBjZW50ZXI7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246
IGNlbnRlcjsKLQotICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgZGlzcGxheTogYmxvY2s7Cisg
ICAgYm9yZGVyOiBub25lOwogICAgIGN1cnNvcjogZGVmYXVsdDsKIAotICAgIGxpbmUtaGVpZ2h0
OiAyMXB4OwotICAgIGhlaWdodDogMjBweDsKLSAgICB3aWR0aDogNThweDsKKyAgICBoZWlnaHQ6
IDMwcHg7CisgICAgbWFyZ2luOiAwIDlweCAwIDA7CisgICAgcGFkZGluZzogMDsKIAotICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKLSAgICBmb250LWZhbWlseTogQXJpYWw7Ci0gICAgZm9udC1zaXpl
OiAxNnB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwg
SGVsdmV0aWNhLCBzYW5zLXNlcmlmOworICAgIGZvbnQtc2l6ZTogMTNweDsKICAgICBmb250LXdl
aWdodDogYm9sZDsKICAgICBjb2xvcjogd2hpdGU7CiAKQEAgLTEzNyw0MCArMTI2LDQ4IEBAIGF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9sCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1l
bGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUgewogICAgIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVkaWEtc2xpZGVyOwogICAgIGRpc3BsYXk6IC13ZWJraXQtYm94Owot
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKLQot
ICAgIHBhZGRpbmc6IDBweDsKLSAgICBtYXJnaW46IDBweCA2cHg7Ci0gICAgaGVpZ2h0OiAxOHB4
OwotCi0gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7Ci0gICAgYm9y
ZGVyLXN0eWxlOiBzb2xpZDsKLSAgICBib3JkZXItd2lkdGg6IDFweDsKLSAgICBib3JkZXItcmFk
aXVzOiAycHg7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjA4
KTsKLSAgICBjb2xvcjogcmdiKDUwLCAxNDAsIDIyMyk7Ci19Ci0KLWF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7Ci0gICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKLSAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0gICAgYm90dG9tOiAzMnB4OwotCi0gICAgd2lkdGg6IDM0cHg7Ci0gICAgaGVpZ2h0OiAx
MDBweDsKLQotICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsKKyAgICBo
ZWlnaHQ6IDhweDsKKyAgICBtYXJnaW46IDAgMTVweCAwIDA7CisgICAgcGFkZGluZzogMDsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBtaW4td2lkdGg6IDI1cHg7CiB9
CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIgewogICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtdm9sdW1lLXNsaWRlcjsKLSAgICBkaXNwbGF5OiBpbmxpbmU7Ci0gICAgcG9z
aXRpb246IGFic29sdXRlOwotCi0gICAgdG9wOiAxMHB4OwotICAgIGxlZnQ6IDEycHg7CisgICAg
ZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtZmxleDogMTsKKyAgICBoZWln
aHQ6IDhweDsKKyAgICBtYXgtd2lkdGg6IDcwcHg7CisgICAgbWFyZ2luOiAwIDE1cHggMCAwOwor
ICAgIHBhZGRpbmc6IDA7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7CisgICAg
bWluLXdpZHRoOiAxNXB4OworfQogCi0gICAgd2lkdGg6IDEwcHg7Ci0gICAgaGVpZ2h0OiA4MHB4
OworLyogRklYTUUgdGhlc2Ugc2hvdWxkbid0IHVzZSBzcGVjaWFsIHBzZXVkb1NoYWRvd0lkcywg
YnV0IG5pY2VyIHJ1bGVzLgorICAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWl1bS9p
c3N1ZXMvZGV0YWlsP2lkPTExMjUwOAorICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTYyMjE4CisqLworaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1z
bGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0
LWJveC1hbGlnbjogY2VudGVyOworICAgIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsg
LyogVGhpcyBwcm9wZXJ0eSBpcyB1cGRhdGVkIGJ5IEMrKyBjb2RlLiAqLworICAgIC13ZWJraXQt
Ym94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBoZWlnaHQ6IDEwMCU7CisgICAgd2lkdGg6IDEw
MCU7CisgICAgYm9yZGVyOiAxcHggc29saWQgcmdiKDEzMCwgMTMwLCAxMzApOworICAgIGJvcmRl
ci1yYWRpdXM6IDRweDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsgLyogQmFj
a2dyb3VuZCBkcmF3aW5nIGlzIG1hbmFnZWQgYnkgQysrIGNvZGUgdG8gZHJhdyByYW5nZXMuICov
CiB9CisKK2lucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLXRodW1iIHsK
KyAgICBkaXNwbGF5OiBibG9jazsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IHNsaWRlcnRodW1i
LWhvcml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHBv
c2l0aW9uOiByZWxhdGl2ZTsKKyAgICBib3R0b206IDFweDsKKyAgICBtYXJnaW4tbGVmdDogLTdw
eDsKKyAgICBtYXJnaW4tcmlnaHQ6IC03cHg7Cit9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCBiZGNkOTE2NGQ4OWRhZDRiN2ZkNzg4
ZGFhMjJiMzM5NjhmOWUwMGE1Li5iMjU1YzE2ZDQ1MDBkMDkyNDJkNjYyMWM2NDljMjRkZDZiYmY0
NTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtMjksNiArMjksNyBAQAogI2lm
IEVOQUJMRShWSURFTykKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
LmgiCiAKKyNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxNZWRpYUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJNZWRpYUNvbnRyb2xF
bGVtZW50cy5oIgpAQCAtNDUsMTcgKzQ2LDM0IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50LT5kb2N1
bWVudCgpKQorICAgICwgbV9tZWRpYUNvbnRyb2xsZXIoMCkKK3sKK30KKworUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbENocm9taXVt
RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1
bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENocm9taXVtRW5j
bG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xv
c3VyZSIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqIGRvY3VtZW50
KQogICAgIDogTWVkaWFDb250cm9scyhkb2N1bWVudCkKICAgICAsIG1fbWVkaWFDb250cm9sbGVy
KDApCiAgICAgLCBtX3BsYXlCdXR0b24oMCkKICAgICAsIG1fY3VycmVudFRpbWVEaXNwbGF5KDAp
CisgICAgLCBtX2R1cmF0aW9uRGlzcGxheSgwKQogICAgICwgbV90aW1lbGluZSgwKQotICAgICwg
bV90aW1lbGluZUNvbnRhaW5lcigwKQogICAgICwgbV9wYW5lbE11dGVCdXR0b24oMCkKICAgICAs
IG1fdm9sdW1lU2xpZGVyKDApCi0gICAgLCBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcigwKQogICAg
ICwgbV9wYW5lbCgwKQorICAgICwgbV9lbmNsb3N1cmUoMCkKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgLCBtX3RleHREaXNwbGF5Q29udGFpbmVyKDApCiAgICAgLCBtX3RleHRUcmFja0Rp
c3BsYXkoMCkKQEAgLTc3LDYgKzk1LDkgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmUKIAogICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBjb250cm9scyA9IGFkb3B0
UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKGRvY3VtZW50KSk7CiAKKyAg
ICAvLyBDcmVhdGUgYW4gZW5jbG9zaW5nIGVsZW1lbnQgZm9yIHRoZSBwYW5lbCBzbyB3ZSBjYW4g
dmlzdWFsbHkgb2Zmc2V0IHRoZSBjb250cm9scyBjb3JyZWN0bHkuCisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudD4gZW5jbG9zdXJlID0gTWVkaWFDb250cm9s
Q2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworCiAgICAgUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjOwpAQCAtODcsNTIg
KzEwOCw0NCBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogICAgIGlmIChlYykKICAgICAgICAg
cmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGlu
ZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRp
bWVsaW5lLmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lbGlu
ZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUu
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAog
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50
VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJl
bnRUaW1lRGlzcGxheS5nZXQoKTsKLSAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQo
Y3VycmVudFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwotICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7Ci0KLSAgICBjb250cm9scy0+bV90aW1lbGluZUNvbnRhaW5lciA9IHRp
bWVsaW5lQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZUNv
bnRhaW5lci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXktPmhpZGUoKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNw
bGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBSZWZQdHI8SFRNTERpdkVsZW1lbnQ+IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5l
ciA9IEhUTUxEaXZFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotCi0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5l
ciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1
bWVudCk7Ci0KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xp
ZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgdm9sdW1l
U2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGNvbnRyb2xzLT5tX3ZvbHVt
ZVNsaWRlckNvbnRhaW5lciA9IHZvbHVtZVNsaWRlckNvbnRhaW5lci5nZXQoKTsKLSAgICBwYW5l
bFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHZvbHVtZVNsaWRlckNvbnRhaW5l
ci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1f
ZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOworICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9s
cy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7Ci0gICAgcGFuZWxW
b2x1bWVDb250cm9sQ29udGFpbmVyLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lciwgZWMsIHRy
dWUpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIg
PSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKKyAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIDA7CiAKICAgICBjb250cm9scy0+bV9wYW5lbCA9IHBhbmVsLmdldCgpOwotICAg
IGNvbnRyb2xzLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBl
bmNsb3N1cmUtPmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlm
IChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb250cm9scy0+bV9lbmNsb3N1cmUgPSBl
bmNsb3N1cmUuZ2V0KCk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0x
NDksMTggKzE2MiwxOCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNl
dE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhYwogICAgICAgICBtX3BsYXlC
dXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV9jdXJyZW50
VGltZURpc3BsYXkpCiAgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRNZWRpYUNvbnRy
b2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fZHVyYXRpb25EaXNwbGF5KQorICAgICAgICBt
X2R1cmF0aW9uRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlm
IChtX3RpbWVsaW5lKQogICAgICAgICBtX3RpbWVsaW5lLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29u
dHJvbGxlcik7Ci0gICAgaWYgKG1fdGltZWxpbmVDb250YWluZXIpCi0gICAgICAgIG1fdGltZWxp
bmVDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV9w
YW5lbE11dGVCdXR0b24pCiAgICAgICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5zZXRNZWRpYUNvbnRy
b2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQogICAgICAgICBtX3Zv
bHVtZVNsaWRlci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX3Zv
bHVtZVNsaWRlckNvbnRhaW5lcikKLSAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNl
dE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV9wYW5lbCkKICAgICAgICAg
bV9wYW5lbC0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgIGlmIChtX2VuY2xv
c3VyZSkKKyAgICAgICAgbV9lbmNsb3N1cmUtPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVy
KTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKG1fdGV4dERpc3BsYXlDb250YWlu
ZXIpCiAgICAgICAgIG1fdGV4dERpc3BsYXlDb250YWluZXItPnNldE1lZGlhQ29udHJvbGxlcihj
b250cm9sbGVyKTsKQEAgLTE3OCw3ICsxOTEsNiBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06OmhpZGUoKQogewogICAgIG1fcGFuZWwtPnNldElzRGlzcGxheWVkKGZhbHNl
KTsKICAgICBtX3BhbmVsLT5oaWRlKCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmhp
ZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjptYWtlT3Bh
cXVlKCkKQEAgLTE4OSw3ICsyMDEsNiBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06Om1ha2VPcGFxdWUoKQogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjptYWtlVHJhbnNwYXJlbnQoKQogewogICAgIG1fcGFuZWwtPm1ha2VUcmFuc3BhcmVudCgpOwot
ICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQpAQCAtMjAyLDcgKzIxMywxMSBAQCB2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KCkKIAogICAgIGZsb2F0IGR1
cmF0aW9uID0gbV9tZWRpYUNvbnRyb2xsZXItPmR1cmF0aW9uKCk7CiAgICAgbV90aW1lbGluZS0+
c2V0RHVyYXRpb24oZHVyYXRpb24pOwotICAgIG1fdGltZWxpbmVDb250YWluZXItPnNob3coKTsK
KyAgICBtX3RpbWVsaW5lLT5zaG93KCk7CisKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0SW5u
ZXJUZXh0KHBhZ2UtPnRoZW1lKCktPmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGR1cmF0aW9uKSwg
QVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldEN1cnJlbnRW
YWx1ZShkdXJhdGlvbik7CisKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhQ29u
dHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKIApAQCAt
MjE4LDYgKzIzMyw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxh
eWJhY2tTdGFydGVkKCkKIHsKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7
CiAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRU
aW1lKCkpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgbV9kdXJhdGlv
bkRpc3BsYXktPmhpZGUoKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogfQogCkBAIC0yNDcs
NiArMjY0LDEyIEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRl
VGltZURpc3BsYXkoKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8g
QWZ0ZXIgc2VlaywgaGlkZSBkdXJhdGlvbiBkaXNwbGF5IGFuZCBzaG93IGN1cnJlbnQgdGltZS4K
KyAgICBpZiAobm93ID4gMCkgeworICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2hvdygp
OworICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOworICAgIH0KKwogICAgIC8vIEFs
bG93IHRoZSB0aGVtZSB0byBmb3JtYXQgdGhlIHRpbWUuCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsK
ICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0SW5uZXJUZXh0KHBhZ2UtPnRoZW1lKCktPmZv
cm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShub3csIGR1cmF0aW9uKSwgZWMpOwpAQCAtMjU5
LDkgKzI4Miw5IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVwb3J0
ZWRFcnJvcigpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3RpbWVs
aW5lQ29udGFpbmVyLT5oaWRlKCk7CisgICAgbV90aW1lbGluZS0+aGlkZSgpOwogICAgIG1fcGFu
ZWxNdXRlQnV0dG9uLT5oaWRlKCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPmhpZGUo
KTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+aGlkZSgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVN0YXR1c0Rpc3BsYXkoKQpAQCAtMzMxLDcgKzM1NCw3
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hvd1ZvbHVtZVNsaWRl
cigpCiAgICAgaWYgKCFtX21lZGlhQ29udHJvbGxlci0+aGFzQXVkaW8oKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNob3coKTsKKyAgICBtX3ZvbHVt
ZVNsaWRlci0+c2hvdygpOwogfQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQpAQCAtMzQ1LDcg
KzM2OCw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlVGV4
dFRyYWNrRGlzcGxheSgpCiAKICAgICAvLyBJbnNlcnQgaXQgYmVmb3JlIHRoZSBmaXJzdCBjb250
cm9sbGVyIGVsZW1lbnQgc28gaXQgYWx3YXlzIGRpc3BsYXlzIGJlaGluZCB0aGUgY29udHJvbHMu
CiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKLSAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250
YWluZXIucmVsZWFzZSgpLCBtX3BhbmVsLCBlYywgdHJ1ZSk7CisgICAgaW5zZXJ0QmVmb3JlKHRl
eHREaXNwbGF5Q29udGFpbmVyLnJlbGVhc2UoKSwgbV9lbmNsb3N1cmUsIGVjLCB0cnVlKTsKIH0K
IAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzaG93VGV4dFRyYWNrRGlz
cGxheSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggMzY2MTg2YjY1ZTFmODI1NTViYjFm
NTcxYzU2OWIzN2Y5NDdlMDFjOS4uYjM2NWNjMzNjNjNhMDNlZWMwOWFkMjk4MjQ5ZTU5ZjU3OWM1
ZDMyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNDAsNiArNDAsNyBAQCBjbGFzcyBF
dmVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ7CiBjbGFzcyBNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW1lbnQ7CkBAIC00Nyw4ICs0OCw4IEBAIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVu
dDsKIGNsYXNzIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKLWNsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ7CitjbGFzcyBN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xs
ZXJJbnRlcmZhY2U7CiBjbGFzcyBNZWRpYVBsYXllcjsKIApAQCAtNjAsNiArNjEsMjQgQEAgY2xh
c3MgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29u
dHJvbFRleHRUcmFja0Rpc3BsYXlFbGVtZW50OwogI2VuZGlmCiAKK2NsYXNzIE1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCisgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xs
ZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBjb250cm9sbGVyKSB7IG1fbWVkaWFDb250cm9s
bGVyID0gY29udHJvbGxlcjsgfQorICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbWVkaWFD
b250cm9sbGVyKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNvbnRyb2xsZXI7IH0KKworcHJvdGVj
dGVkOgorICAgIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCop
OworCitwcml2YXRlOgorICAgIHZpcnR1YWwgYm9vbCBpc01lZGlhQ29udHJvbEVsZW1lbnQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CisKKyAgICBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIG1f
bWVkaWFDb250cm9sbGVyOworfTsKKwogY2xhc3MgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bSA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBjcmVhdGUoRG9jdW1lbnQqKTsK
QEAgLTExNiwxMiArMTM1LDEzIEBAIHByaXZhdGU6CiAKICAgICBNZWRpYUNvbnRyb2xQbGF5QnV0
dG9uRWxlbWVudCogbV9wbGF5QnV0dG9uOwogICAgIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnQqIG1fY3VycmVudFRpbWVEaXNwbGF5OworICAgIE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudCogbV9kdXJhdGlvbkRpc3BsYXk7CiAgICAgTWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50KiBtX3RpbWVsaW5lOwogICAgIE1lZGlhQ29udHJvbFRpbWVsaW5l
Q29udGFpbmVyRWxlbWVudCogbV90aW1lbGluZUNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKICAgICBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKLSAgICBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcjsKICAg
ICBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQqIG1fcGFuZWw7CisgICAgTWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50KiBtX2VuY2xvc3VyZTsKICNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCiAgICAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCogbV90ZXh0RGlz
cGxheUNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudCog
bV90ZXh0VHJhY2tEaXNwbGF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Ns
aWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggMzA4M2E3NTAwMmM2MmFhMjljMWJmODIxMzc2MTJi
ZDEzNDk2OWRlOC4uOGY4YzZjOThkNDA3ZmFhMzRjNDE3MTkyODQ2MTBhOTEwNGQ1NTI3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3Bw
CkBAIC02Miw3ICs2MiwxMCBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaGFzVmVydGljYWxBcHBlYXJh
bmNlKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dC0+cmVuZGVy
ZXIoKSk7CiAgICAgUmVuZGVyU3R5bGUqIHNsaWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCkt
PnN0eWxlKCk7Ci0gICAgcmV0dXJuIHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVy
VmVydGljYWxQYXJ0IHx8IHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1bWVT
bGlkZXJQYXJ0OworICAgIFJlbmRlclRoZW1lKiBzbGlkZXJUaGVtZSA9IGlucHV0LT5yZW5kZXJl
cigpLT50aGVtZSgpOworCisgICAgcmV0dXJuIHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0g
U2xpZGVyVmVydGljYWxQYXJ0CisgICAgICAgIHx8IChzbGlkZXJTdHlsZS0+YXBwZWFyYW5jZSgp
ID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCAmJiBzbGlkZXJUaGVtZS0+dXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyKCkpOwogfQogCiBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxlbWVu
dE9mKE5vZGUqIG5vZGUpCkBAIC0xMDgsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJUaHVt
Yjo6bGF5b3V0KCkKICAgICAvLyBEbyBub3QgY2FzdCBub2RlKCkgdG8gU2xpZGVyVGh1bWJFbGVt
ZW50LiBUaGlzIHJlbmRlcmVyIGlzIHVzZWQgZm9yCiAgICAgLy8gVHJhY2tMaW1pdEVsZW1lbnQg
dG9vLgogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gbm9kZSgpLT5zaGFkb3dBbmNlc3Rv
ck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKLSAgICBib29sIGlzVmVydGljYWwgPSBzdHlsZSgp
LT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+YXBw
ZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OworICAgIGJvb2wgaXNWZXJ0
aWNhbCA9IGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShpbnB1dCk7CiAKICAgICBkb3VibGUgZnJhY3Rp
b24gPSBjb252ZXJ0SW5wdXROdW1iZXJUb0RvdWJsZShzbGlkZXJQb3NpdGlvbihpbnB1dCkgKiAx
MDApOwogICAgIGlmIChpc1ZlcnRpY2FsKQpAQCAtMzIxLDEyICszMjQsMzggQEAgSFRNTElucHV0
RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAogICAgIHJldHVy
biBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKIH0KIAotY29uc3QgQXRv
bWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3N0
YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQogewot
ICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Vi
a2l0LXNsaWRlci10aHVtYiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0b21p
Y1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7CiAgICAgcmV0
dXJuIHNsaWRlclRodW1iOwogfQogCitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYVNs
aWRlclRodW1iU2hhZG93UHNldWRvSWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29u
c3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVy
LXRodW1iIikpOworICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIFNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorewor
ICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgaWYgKCFpbnB1
dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKworICAgIFJl
bmRlclN0eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAg
IHN3aXRjaCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlk
ZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZv
bHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAg
ICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1
bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRl
clRodW1iU2hhZG93UHNldWRvSWQoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xp
ZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAogaW5saW5lIFRyYWNrTGltaXRlckVsZW1lbnQ6OlRyYWNrTGlt
aXRlckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMzUxLDggKzM4MCwyMiBAQCBSZW5k
ZXJPYmplY3QqIFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFyZW5h
KiBhcmVuYSwgUmVuZGVyU3R5bAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRlckVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FM
KEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7Ci0g
ICAgcmV0dXJuIHNsaWRlclRodW1iOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gc2hh
ZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFpbnB1dCkKKyAg
ICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKworICAgIFJlbmRlclN0
eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRj
aCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0
OgorICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNs
aWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNl
IE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3Jl
ZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1i
U2hhZG93UHNldWRvSWQoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyVGh1
bWJTaGFkb3dQc2V1ZG9JZCgpOworICAgIH0KIH0KIAogVHJhY2tMaW1pdGVyRWxlbWVudCogdHJh
Y2tMaW1pdGVyRWxlbWVudE9mKE5vZGUqIG5vZGUpCkBAIC0zODUsOCArNDI4LDI1IEBAIFJlbmRl
ck9iamVjdCogU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJl
bmEqIGFyZW5hLCBSZW5kZXJTCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFpbmVy
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9D
QUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIi
KSk7Ci0gICAgcmV0dXJuIHNsaWRlclRodW1iOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRv
bWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRlci1j
b250YWluZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRl
ckNvbnRhaW5lciwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiKSk7CisKKyAgICBIVE1MSW5w
dXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgp
OworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisKKyAg
ICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsK
KyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkpIHsKKyAgICBjYXNlIE1lZGlh
U2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVk
aWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ6
CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVk
aWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICByZXR1cm4gbWVkaWFT
bGlkZXJDb250YWluZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlckNvbnRh
aW5lcjsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggNzJlMTJjODgxYmM3M2Zk
MDVlOTY1YTk4YjBkYjliZjZiMDhlZThmZi4uY2FlNGRiZmI3NTJiZTUzNDU2YmZjYWM3NzdkZDc5
YTRkNzAxODExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTc0LDE0ICs3NCwyMSBAQCBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgc3RhdGljIEltYWdlKiBzb3VuZEZ1bGwgPSBwbGF0Zm9ybVJlc291cmNlKCJt
ZWRpYVNvdW5kRnVsbCIpOwotICAgIHN0YXRpYyBJbWFnZSogc291bmROb25lID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFTb3VuZE5vbmUiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIHNvdW5kRGlzYWJs
ZWQgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNvdW5kRGlzYWJsZWQiKTsKKyAgICBzdGF0aWMg
SW1hZ2UqIHNvdW5kTGV2ZWwzID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3VuZExl
dmVsMyIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRMZXZlbDIgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYXBsYXllclNvdW5kTGV2ZWwyIik7CisgICAgc3RhdGljIEltYWdlKiBzb3VuZExldmVs
MSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmRMZXZlbDEiKTsKKyAgICBzdGF0
aWMgSW1hZ2UqIHNvdW5kRGlzYWJsZWQgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNv
dW5kRGlzYWJsZWQiKTsKIAotICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1l
ZGlhRWxlbWVudC0+aGFzQXVkaW8oKSkKKyAgICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1lbnQp
IHx8ICFtZWRpYUVsZW1lbnQtPmhhc0F1ZGlvKCkgfHwgbWVkaWFFbGVtZW50LT5tdXRlZCgpIHx8
IG1lZGlhRWxlbWVudC0+dm9sdW1lKCkgPD0gMCkKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFC
dXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kRGlzYWJsZWQpOwogCi0gICAgcmV0
dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhRWxlbWVu
dC0+bXV0ZWQoKSA/IHNvdW5kTm9uZTogc291bmRGdWxsKTsKKyAgICBpZiAobWVkaWFFbGVtZW50
LT52b2x1bWUoKSA8PSAwLjMzKQorICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWlu
dEluZm8uY29udGV4dCwgcmVjdCwgc291bmRMZXZlbDEpOworCisgICAgaWYgKG1lZGlhRWxlbWVu
dC0+dm9sdW1lKCkgPD0gMC42NikKKyAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFp
bnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kTGV2ZWwyKTsKKworICAgIHJldHVybiBwYWludE1l
ZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBzb3VuZExldmVsMyk7CiB9CiAKIHN0
YXRpYyBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25z
dCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTkwLDkgKzk3
LDkgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICBpZiAoIW1lZGlhRWxlbWVudCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXkgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYVBsYXkiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGF1c2Ug
PSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVBhdXNlIik7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRp
YVBsYXlEaXNhYmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhUGxheURpc2FibGVkIik7Cisg
ICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXkgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXll
clBsYXkiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGF1c2UgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYXBsYXllclBhdXNlIik7CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXlEaXNhYmxl
ZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGxheURpc2FibGVkIik7CiAKICAgICBp
ZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpKQogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1
dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFQbGF5RGlzYWJsZWQpOwpAQCAtMTAy
LDEwICsxMDksNzUgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKIAogc3RhdGljIEltYWdlKiBn
ZXRNZWRpYVNsaWRlclRodW1iKCkKIHsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1
bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNsaWRlclRodW1iIik7CisgICAgc3RhdGljIElt
YWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlk
ZXJUaHVtYiIpOwogICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOwogfQogCitzdGF0aWMgdm9p
ZCBwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0
IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAgIGlu
dCBib3JkZXJSYWRpdXMgPSByZWN0LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJv
cmRlclJhZGl1cywgYm9yZGVyUmFkaXVzKTsKKyAgICBDb2xvciBzbGlkZXJCYWNrZ3JvdW5kQ29s
b3IgPSBDb2xvcigyOSwgMjksIDI5KTsKKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgY29udGV4
dC0+ZmlsbFJvdW5kZWRSZWN0KHJlY3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzbGlk
ZXJCYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGNvbnRleHQtPnJl
c3RvcmUoKTsKK30KKworc3RhdGljIHZvaWQgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChjb25z
dCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgZmxvYXQgc3RhcnRGcmFjdGlvbiwgZmxvYXQgd2lkdGhGcmFjdGlvbikKK3sK
KyAgICBpZiAoc3RhcnRGcmFjdGlvbiA8IDApCisgICAgICAgIHN0YXJ0RnJhY3Rpb24gPSAwOwor
ICAgIGlmICh3aWR0aEZyYWN0aW9uID4gMSkKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IDE7Cisg
ICAgZmxvYXQgZW5kRnJhY3Rpb24gPSBzdGFydEZyYWN0aW9uICsgd2lkdGhGcmFjdGlvbjsKKyAg
ICBpZiAoZW5kRnJhY3Rpb24gPiAxKSB7CisgICAgICAgIHdpZHRoRnJhY3Rpb24gPSB3aWR0aEZy
YWN0aW9uIC0gc3RhcnRGcmFjdGlvbjsKKyAgICAgICAgZW5kRnJhY3Rpb24gPSBzdGFydEZyYWN0
aW9uICsgd2lkdGhGcmFjdGlvbjsKKyAgICB9CisKKyAgICAvLyBTZXQgcmVjdGFuZ2xlIHRvIGhp
Z2hsaWdodCByYW5nZS4KKyAgICBJbnRSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0OworICAgIGlu
dCBzdGFydE9mZnNldCA9IHN0YXJ0RnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaW50IGVu
ZE9mZnNldCA9IHJlY3Qud2lkdGgoKSAtIGVuZEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAg
IGludCByYW5nZVdpZHRoID0gd2lkdGhGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBoaWdo
bGlnaHRSZWN0Lm1vdmUoc3RhcnRPZmZzZXQsIDApOworICAgIGhpZ2hsaWdodFJlY3Quc2V0V2lk
dGgocmFuZ2VXaWR0aCk7CisKKyAgICAvLyBEb24ndCBib3RoZXIgZHJhd2luZyBhbiBlbXB0eSBh
cmVhLgorICAgIGlmIChoaWdobGlnaHRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gQ2FsY3VsYXRlIGJvcmRlciByYWRpdXM7IG5lZWQgdG8gYXZvaWQgYmVpbmcgc21h
bGxlciB0aGFuIGhhbGYgdGhlIHNsaWRlciBoZWlnaHQKKyAgICAvLyBiZWNhdXNlIG9mIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDE0My4KKyAgICBpbnQgYm9yZGVy
UmFkaXVzID0gcmVjdC5oZWlnaHQoKSAvIDI7CisgICAgSW50U2l6ZSByYWRpaShib3JkZXJSYWRp
dXMsIGJvcmRlclJhZGl1cyk7CisKKyAgICAvLyBDYWxjdWxhdGUgd2hpdGUtZ3JleSBncmFkaWVu
dC4KKyAgICBJbnRQb2ludCBzbGlkZXJUb3BMZWZ0ID0gaGlnaGxpZ2h0UmVjdC5sb2NhdGlvbigp
OworICAgIEludFBvaW50IHNsaWRlckJvdHRvbUxlZnQgPSBzbGlkZXJUb3BMZWZ0OworICAgIHNs
aWRlckJvdHRvbUxlZnQubW92ZSgwLCBoaWdobGlnaHRSZWN0LmhlaWdodCgpKTsKKyAgICBDb2xv
ciBzdGFydENvbG9yID0gQ29sb3IoMjIwLCAyMjAsIDIyMCk7CisgICAgQ29sb3IgZW5kQ29sb3Ig
PSBDb2xvcigyNDAsIDI0MCwgMjQwKTsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IGdyYWRpZW50ID0g
R3JhZGllbnQ6OmNyZWF0ZShzbGlkZXJUb3BMZWZ0LCBzbGlkZXJCb3R0b21MZWZ0KTsKKyAgICBn
cmFkaWVudC0+YWRkQ29sb3JTdG9wKDAuMCwgc3RhcnRDb2xvcik7CisgICAgZ3JhZGllbnQtPmFk
ZENvbG9yU3RvcCgxLjAsIGVuZENvbG9yKTsKKworICAgIC8vIEZpbGwgaGlnaGxpZ2h0IHJlY3Rh
bmdsZSB3aXRoIGdyYWRpZW50LCBwb3RlbnRpYWxseSByb3VuZGVkIGlmIG9uIGxlZnQgb3Igcmln
aHQgZWRnZS4KKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgY29udGV4dC0+c2V0RmlsbEdyYWRp
ZW50KGdyYWRpZW50KTsKKworICAgIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJhZGl1cyAmJiBl
bmRPZmZzZXQgPCBib3JkZXJSYWRpdXMpCisgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVj
dChoaWdobGlnaHRSZWN0LCByYWRpaSwgcmFkaWksIHJhZGlpLCByYWRpaSwgc3RhcnRDb2xvciwg
Q29sb3JTcGFjZURldmljZVJHQik7CisgICAgZWxzZSBpZiAoc3RhcnRPZmZzZXQgPCBib3JkZXJS
YWRpdXMpCisgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChoaWdobGlnaHRSZWN0LCBy
YWRpaSwgSW50U2l6ZSgwLCAwKSwgcmFkaWksIEludFNpemUoMCwgMCksIHN0YXJ0Q29sb3IsIENv
bG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGVsc2UgaWYgKGVuZE9mZnNldCA8IGJvcmRlclJhZGl1
cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIEludFNp
emUoMCwgMCksIHJhZGlpLCBJbnRTaXplKDAsIDApLCByYWRpaSwgc3RhcnRDb2xvciwgQ29sb3JT
cGFjZURldmljZVJHQik7CisgICAgZWxzZQorICAgICAgICBjb250ZXh0LT5maWxsUmVjdChoaWdo
bGlnaHRSZWN0KTsKKworICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKK30KKwogc3RhdGljIGJvb2wg
cGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKQEAgLTExNSwyMyAr
MTg3LDEwIEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjCiAgICAgUmVuZGVyU3R5bGUqIHN0eWxl
ID0gb2JqZWN0LT5zdHlsZSgpOwogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50
SW5mby5jb250ZXh0OwogCi0gICAgLy8gRHJhdyB0aGUgYm9yZGVyIG9mIHRoZSB0aW1lIGJhci4K
LSAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSByb3VuZGVkIHJlY3QgYnV0IG5lZWQgdG8g
Zml4IEdyYXBoaWNzQ29udGV4dFNraWEgZmlyc3QuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzCi0gICAgY29udGV4dC0+c2F2ZSgpOwotICAgIGNv
bnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh0cnVlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VT
dHlsZShTb2xpZFN0cm9rZSk7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Ioc3R5bGUtPnZp
c2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvciksIENvbG9yU3Bh
Y2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhzdHlsZS0+Ym9y
ZGVyTGVmdFdpZHRoKCkpOwotICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihzdHlsZS0+dmlzaXRl
ZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSwgQ29sb3JTcGFjZURl
dmljZVJHQik7Ci0gICAgY29udGV4dC0+ZHJhd1JlY3QocmVjdCk7Ci0gICAgY29udGV4dC0+cmVz
dG9yZSgpOworICAgIHBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQocmVjdCwgc3R5bGUsIGNv
bnRleHQpOwogCiAgICAgLy8gRHJhdyB0aGUgYnVmZmVyZWQgcmFuZ2UuIFNpbmNlIHRoZSBlbGVt
ZW50IG1heSBoYXZlIG11bHRpcGxlIGJ1ZmZlcmVkIHJhbmdlcyBhbmQgaXQnZCBiZQogICAgIC8v
IGRpc3RyYWN0aW5nLydidXN5JyB0byBzaG93IGFsbCBvZiB0aGVtLCBzaG93IG9ubHkgdGhlIGJ1
ZmZlcmVkIHJhbmdlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcGxheSBoZWFkLgotICAgIEludFJl
Y3QgYnVmZmVyZWRSZWN0ID0gcmVjdDsKLSAgICBidWZmZXJlZFJlY3QuaW5mbGF0ZSgtc3R5bGUt
PmJvcmRlckxlZnRXaWR0aCgpKTsKLQogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZFRp
bWVSYW5nZXMgPSBtZWRpYUVsZW1lbnQtPmJ1ZmZlcmVkKCk7CiAgICAgZmxvYXQgZHVyYXRpb24g
PSBtZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CiAgICAgZmxvYXQgY3VycmVudFRpbWUgPSBtZWRp
YUVsZW1lbnQtPmN1cnJlbnRUaW1lKCk7CkBAIC0xNDYsMjcgKzIwNSw4IEBAIHN0YXRpYyBib29s
IHBhaW50TWVkaWFTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjCiAgICAgICAgIGZsb2F0IHN0YXJ0RnJhY3Rpb24gPSBzdGFydCAvIGR1cmF0
aW9uOwogICAgICAgICBmbG9hdCBlbmRGcmFjdGlvbiA9IGVuZCAvIGR1cmF0aW9uOwogICAgICAg
ICBmbG9hdCB3aWR0aEZyYWN0aW9uID0gZW5kRnJhY3Rpb24gLSBzdGFydEZyYWN0aW9uOwotICAg
ICAgICBidWZmZXJlZFJlY3QubW92ZShzdGFydEZyYWN0aW9uICogYnVmZmVyZWRSZWN0LndpZHRo
KCksIDApOwotICAgICAgICBidWZmZXJlZFJlY3Quc2V0V2lkdGgod2lkdGhGcmFjdGlvbiAqIGJ1
ZmZlcmVkUmVjdC53aWR0aCgpKTsKLQotICAgICAgICAvLyBEb24ndCBib3RoZXIgZHJhd2luZyBh
biBlbXB0eSBhcmVhLgotICAgICAgICBpZiAoYnVmZmVyZWRSZWN0LmlzRW1wdHkoKSkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIEludFBvaW50IHNsaWRlclRvcExlZnQgPSBi
dWZmZXJlZFJlY3QubG9jYXRpb24oKTsKLSAgICAgICAgSW50UG9pbnQgc2xpZGVyQm90dG9tTGVm
dCA9IHNsaWRlclRvcExlZnQ7Ci0gICAgICAgIHNsaWRlckJvdHRvbUxlZnQubW92ZSgwLCBidWZm
ZXJlZFJlY3QuaGVpZ2h0KCkpOwotCi0gICAgICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQg
PSBHcmFkaWVudDo6Y3JlYXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOwotICAg
ICAgICBDb2xvciBzdGFydENvbG9yID0gb2JqZWN0LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50
Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7Ci0gICAgICAgIGdyYWRpZW50LT5hZGRDb2xvclN0b3Ao
MC4wLCBzdGFydENvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgxLjAsIENv
bG9yKHN0YXJ0Q29sb3IucmVkKCkgLyAyLCBzdGFydENvbG9yLmdyZWVuKCkgLyAyLCBzdGFydENv
bG9yLmJsdWUoKSAvIDIsIHN0YXJ0Q29sb3IuYWxwaGEoKSkpOwotCi0gICAgICAgIGNvbnRleHQt
PnNhdmUoKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoTm9TdHJva2UpOwotICAg
ICAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQpOwotICAgICAgICBjb250ZXh0
LT5maWxsUmVjdChidWZmZXJlZFJlY3QpOwotICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisK
KyAgICAgICAgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChyZWN0LCBzdHlsZSwgY29udGV4dCwg
c3RhcnRGcmFjdGlvbiwgd2lkdGhGcmFjdGlvbik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtMTg5LDYgKzIyOSw4IEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXJUaHVt
YihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluCiAgICAgcmV0
dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhU2xpZGVy
VGh1bWIpOwogfQogCitjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoID0gMjQ7
CisKIHN0YXRpYyBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQogewog
ICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50
KG9iamVjdCk7CkBAIC0xOTYsNTcgKzIzOCwzNCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhVm9s
dW1lU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBw
YWludEluZm8uY29udGV4dDsKLSAgICBDb2xvciBvcmlnaW5hbENvbG9yID0gY29udGV4dC0+c3Ry
b2tlQ29sb3IoKTsKLSAgICBpZiAob3JpZ2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0gICAg
ICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yOjp3aGl0ZSwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOworCisgICAg
cGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CisKKyAg
ICAvLyBDYWxjdWxhdGUgdm9sdW1lIHBvc2l0aW9uIGZvciB3aGl0ZSBiYWNrZ3JvdW5kIHJlY3Rh
bmdsZS4KKyAgICBmbG9hdCB2b2x1bWUgPSBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpOworICAgIGlm
IChpc25hbih2b2x1bWUpIHx8IHZvbHVtZSA8IDApCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IGlmICh2b2x1bWUgPiAxKQorICAgICAgICB2b2x1bWUgPSAxOworCisgICAgLy8gQ2FsY3VsYXRl
IHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSB0aHVtYi4KKyAgICBm
bG9hdCB0aHVtYkNlbnRlciA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aCAvIDI7CisgICAg
ZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBmbG9hdCBwb3Np
dGlvbldpZHRoID0gdm9sdW1lICogKHJlY3Qud2lkdGgoKSAtICh6b29tTGV2ZWwgKiB0aHVtYkNl
bnRlcikpOworICAgIGZsb2F0IGZpbGxXaWR0aCA9IHBvc2l0aW9uV2lkdGggKyAoem9vbUxldmVs
ICogdGh1bWJDZW50ZXIgLyAyKTsKIAotICAgIGludCB4ID0gcmVjdC54KCkgKyByZWN0LndpZHRo
KCkgLyAyOwotICAgIGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHgsIHJlY3QueSgpKSwgIElu
dFBvaW50KHgsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOworICAgIHBhaW50U2xpZGVyUmFu
Z2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIDAuMCwgZmlsbFdpZHRoIC8gcmVjdC53
aWR0aCgpKTsKIAotICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAgICAg
ICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob3JpZ2luYWxDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIHBhaW50TWVkaWFWb2x1
bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRpYVZv
bHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJUaHVt
YiIpOworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3Jt
UmVzb3VyY2UoIm1lZGlhcGxheWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKICAgICByZXR1cm4gcGFp
bnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFWb2x1bWVTbGlkZXJU
aHVtYik7CiB9CiAKLXN0YXRpYyBib29sIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJl
Y3QmIHJlY3QpCi17Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJl
bnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKLSAgICBpZiAoIW1lZGlhRWxlbWVudCkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKLSAgICAgICAgQ29sb3Ig
b3JpZ2luYWxDb2xvciA9IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGZsb2F0IG9y
aWdpbmFsVGhpY2tuZXNzID0gY29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCk7Ci0gICAgICAgIFN0
cm9rZVN0eWxlIG9yaWdpbmFsU3R5bGUgPSBjb250ZXh0LT5zdHJva2VTdHlsZSgpOwotCi0gICAg
ICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsKLQotICAgICAgICAvLyBE
cmF3IHRoZSBsZWZ0IGJvcmRlciB1c2luZyBDU1MgZGVmaW5lZCB3aWR0aCBhbmQgY29sb3IuCi0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvYmplY3QtPnN0eWxlKCktPmJvcmRl
ckxlZnRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob2JqZWN0LT5z
dHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29sb3Ip
LnJnYigpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0xpbmUo
SW50UG9pbnQocmVjdC54KCkgKyAxLCByZWN0LnkoKSksCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgIEludFBvaW50KHJlY3QueCgpICsgMSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSk7Ci0K
LSAgICAgICAgLy8gRHJhdyB0aGUgcmlnaHQgYm9yZGVyIHVzaW5nIENTUyBkZWZpbmVkIHdpZHRo
IGFuZCBjb2xvci4KLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG9iamVjdC0+
c3R5bGUoKS0+Ym9yZGVyUmlnaHRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tl
Q29sb3Iob2JqZWN0LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlC
b3JkZXJSaWdodENvbG9yKS5yZ2IoKSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNv
bnRleHQtPmRyYXdMaW5lKEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gMSwgcmVj
dC55KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChyZWN0LngoKSArIHJl
Y3Qud2lkdGgoKSAtIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOwotCi0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZUNvbG9yKG9yaWdpbmFsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0Ip
OwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Mob3JpZ2luYWxUaGlja25lc3Mp
OwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShvcmlnaW5hbFN0eWxlKTsKLSAgICB9
Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIHBhaW50TWVkaWFGdWxsc2NyZWVu
QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMjc0LDggKzI5Myw2IEBAIGJv
b2wgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xp
ZGVyKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVy
VGh1bWI6CiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIob2JqZWN0
LCBwYWludEluZm8sIHJlY3QpOwotICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoKLSAg
ICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihvYmplY3QsIHBhaW50SW5m
bywgcmVjdCk7CiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjoKICAgICBjYXNl
IE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b246CiAgICAgICAgIHJldHVybiBwYWludE1lZGlhRnVs
bHNjcmVlbkJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CkBAIC0yODMsNiArMzAwLDcg
QEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1Bh
cnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0b246
CiAgICAgY2FzZSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOgogICAgIGNhc2UgTWVkaWFWb2x1bWVT
bGlkZXJDb250YWluZXI6CisgICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOgogICAgIGNh
c2UgTWVkaWFDdXJyZW50VGltZURpc3BsYXk6CiAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5pbmdE
aXNwbGF5OgogICAgIGNhc2UgTWVkaWFDb250cm9sc1BhbmVsOgpAQCAtMzAxLDI0ICszMTksNzQg
QEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1Bh
cnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2NvbnN0
IGludCBtZWRpYVNsaWRlclRodW1iV2lkdGggPSAzMjsKK2NvbnN0IGludCBtZWRpYVNsaWRlclRo
dW1iSGVpZ2h0ID0gMjQ7Citjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYkhlaWdodCA9
IDI0OworCiB2b2lkIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlk
ZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIHN0YXRpYyBJbWFnZSogbWVk
aWFTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKLSAg
ICBzdGF0aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYVZvbHVtZVNsaWRlclRodW1iIik7CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRl
clRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlkZXJUaHVtYiIpOworICAg
IHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2Uo
Im1lZGlhcGxheWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKKyAgICBpbnQgd2lkdGggPSAwOworICAg
IGludCBoZWlnaHQgPSAwOwogCiAgICAgSW1hZ2UqIHRodW1iSW1hZ2UgPSAwOwotICAgIGlmIChz
dHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KQorICAgIGlmIChzdHls
ZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSB7CiAgICAgICAgIHRodW1i
SW1hZ2UgPSBtZWRpYVNsaWRlclRodW1iOwotICAgIGVsc2UgaWYgKHN0eWxlLT5hcHBlYXJhbmNl
KCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpCisgICAgICAgIHdpZHRoID0gbWVkaWFT
bGlkZXJUaHVtYldpZHRoOworICAgICAgICBoZWlnaHQgPSBtZWRpYVNsaWRlclRodW1iSGVpZ2h0
OworICAgIH0gZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRl
clRodW1iUGFydCkgewogICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVt
YjsKKyAgICAgICAgd2lkdGggPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGg7CisgICAgICAg
IGhlaWdodCA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJIZWlnaHQ7CisgICAgfQogCiAgICAgZmxv
YXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAodGh1bWJJbWFn
ZSkgewotICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1
bWJJbWFnZS0+d2lkdGgoKSAqIHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgICAgIHN0eWxlLT5z
ZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+aGVpZ2h0KCkgKiB6
b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRp
Y19jYXN0PGludD4od2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+
c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCksIEZp
eGVkKSk7CiAgICAgfQogfQogCitzdGF0aWMgU3RyaW5nIGZvcm1hdENocm9taXVtTWVkaWFDb250
cm9sc1RpbWUoZmxvYXQgdGltZSwgZmxvYXQgZHVyYXRpb24pCit7CisgICAgaWYgKCFpc2Zpbml0
ZSh0aW1lKSkKKyAgICAgICAgdGltZSA9IDA7CisgICAgaWYgKCFpc2Zpbml0ZShkdXJhdGlvbikp
CisgICAgICAgIGR1cmF0aW9uID0gMDsKKyAgICBpbnQgc2Vjb25kcyA9IChpbnQpZmFic2YodGlt
ZSk7CisgICAgaW50IGhvdXJzID0gc2Vjb25kcyAvICg2MCAqIDYwKTsKKyAgICBpbnQgbWludXRl
cyA9IChzZWNvbmRzIC8gNjApICUgNjA7CisgICAgc2Vjb25kcyAlPSA2MDsKKworICAgIC8vIGR1
cmF0aW9uIGRlZmluZXMgdGhlIGZvcm1hdCBvZiBob3cgdGhlIHRpbWUgaXMgcmVuZGVyZWQKKyAg
ICBpbnQgZHVyYXRpb25TZWNzID0gKGludClmYWJzZihkdXJhdGlvbik7CisgICAgaW50IGR1cmF0
aW9uSG91cnMgPSBkdXJhdGlvblNlY3MgLyAoNjAgKiA2MCk7CisgICAgaW50IGR1cmF0aW9uTWlu
cyA9IChkdXJhdGlvblNlY3MgLyA2MCkgJSA2MDsKKworICAgIGlmIChkdXJhdGlvbkhvdXJzIHx8
IGhvdXJzKQorICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAxZDolMDJkOiUwMmQi
LCAodGltZSA8IDAgPyAiLSIgOiAiIiksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBp
ZiAoZHVyYXRpb25NaW5zID4gOSkKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlcyUw
MmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIiKSwgbWludXRlcywgc2Vjb25kcyk7CisKKyAg
ICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAxZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDog
IiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKK30KKworU3RyaW5nIFJlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkKK3sKKyAgICByZXR1
cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZSh0aW1lLCB0aW1lKTsKK30KKworU3Ry
aW5nIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJl
bnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4g
Zm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShjdXJyZW50VGltZSwgZHVyYXRpb24pOwor
fQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRy
b2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pCit7Cisg
ICAgcmV0dXJuIGZvcm1hdENocm9taXVtTWVkaWFDb250cm9sc1RpbWUoY3VycmVudFRpbWUgLSBk
dXJhdGlvbiwgZHVyYXRpb24pOworfQorCiAjZW5kaWYgIC8vICNpZiBFTkFCTEUoVklERU8pCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaAppbmRleCA5YWY5Mzk2MGZmZWZjY2U5
OWFmMTI2NDM4NGVkMzM0MTZhMmQ5ZjYxLi5hNjdhNDEzOWE2ZDQwYTNkMzY0Mjk5Njg1ZjIxOGYz
ZTBiNjc3ZmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCkBAIC0zOCw2ICszOCwxMCBAQCBjbGFzcyBSZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW0gewogcHVibGljOgogICAgIHN0YXRpYyBib29sIHBhaW50TWVk
aWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUsIFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RN
ZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSopOworICAgIHN0YXRpYyBTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSk7CisgICAgc3RhdGljIFN0cmluZyBmb3Jt
YXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0
aW9uKTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1l
KGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbik7CisKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggODE2
N2JhODJmOGZjMTZkMGY4ODk3MTFlNDJmZmZhYzRlOTQ1ODk5OS4uNWU1NmI2ZGY1MGVjZmIwM2U1
ZDExMjlhZGY5Njc3NDdmM2EzZTcyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKQEAgLTE5OCw2ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGhhc093
bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihDb250cm9sUGFydCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXkoKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1YWwgYm9vbCB1c2VzVmVy
dGljYWxWb2x1bWVTbGlkZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBk
b3VibGUgbWVkaWFDb250cm9sc0ZhZGVJbkR1cmF0aW9uKCkgeyByZXR1cm4gMC4xOyB9CiAgICAg
dmlydHVhbCBkb3VibGUgbWVkaWFDb250cm9sc0ZhZGVPdXREdXJhdGlvbigpIHsgcmV0dXJuIDAu
MzsgfQogICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRp
bWUpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTWFjLmgKaW5kZXggMmI0YzhjNjM1Y2MyMjNjMTgzYjUxOGIxMmNlYWVlZjUyZmFiMGM0
My4uZDNiMzYwMTA3MjdmNzk3ZTU4NTU2NjkwMTU1ODU5OWVkMTg5MzIwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCkBAIC00Miw3
ICs0Miw2IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0
b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFT
bGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7Ci0gICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwg
U3RyaW5nIGV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKTsKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFGdWxsU2NyZWVuU3R5bGVTaGVldCgp
OwpAQCAtNTUsNiArNTQsMTAgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgSW50UG9pbnQgdm9s
dW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVyQm94KiwgY29uc3QgSW50U2l6ZSYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVz
RGlzcGxheSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc093bkRpc2Fi
bGVkU3RhdGVIYW5kbGluZ0ZvcihDb250cm9sUGFydCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZs
b2F0IHRpbWUpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHND
dXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0OworICAg
IHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1
cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwg
Ym9vbCB1c2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQppbmRleCBhNzc4MjI4
YzU1MjJkNmMwMjk0MjcxZWYzN2E5YjQ2YzQwY2VkNTRmLi45ZjRhYTkxMDdhZjk3OTVkMDAzZjVl
Mzc5ZGE0ODNiZDU0MTEzZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQpAQCAtMTczLDExICsxNzMsNiBAQCBib29sIFJlbmRl
clRoZW1lQ2hyb21pdW1NYWM6OnBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUAogICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBh
aW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFTbGlkZXIsIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0
KTsKIH0KIAotYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lZGlhQ29udHJvbHNC
YWNrZ3JvdW5kKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsKLSAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhVGltZWxpbmVDb250YWluZXIs
IG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKLX0KLQogU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQogewogICAgIHJldHVybiBTdHJp
bmcobWVkaWFDb250cm9sc0Nocm9taXVtVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1lZGlh
Q29udHJvbHNDaHJvbWl1bVVzZXJBZ2VudFN0eWxlU2hlZXQpKTsKQEAgLTIyOCw2ICsyMjMsMjEg
QEAgSW50UG9pbnQgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJv
bU11dGVCdXR0b24oUmVuZGVyQm94KiBtdXQKIHsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnZv
bHVtZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKG11dGVCdXR0b25Cb3gsIHNpemUpOwogfQor
CitTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUo
ZmxvYXQgdGltZSkgY29uc3QKK3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZSh0aW1lKTsKK30KKworU3RyaW5nIFJlbmRlclRo
ZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJy
ZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGN1cnJlbnRU
aW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVy
YXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1h
dE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CiAj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKaW5kZXggN2FkMmMxMmMzNTA0
MWQ4MTllMzdlM2FkOWI2NWFiZDI3ZGI2M2I4NS4uY2UxY2VlMDg5NGNiM2E2MjIxOTQ3N2RkNGZh
NTA5YmRiNWU5NmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC0zNzgsMTggKzM3OCw2IEBAIGJvb2wgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OnBhaW50U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uKFJlbmRlck9i
amVjdCogbWFnbmlmCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhOjpwYWludE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsK
LSNpZiBFTkFCTEUoVklERU8pCi0gICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYVRpbWVsaW5lQ29udGFpbmVyLCBvYmplY3Qs
IHBhaW50SW5mbywgcmVjdCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOwotICAg
IFVOVVNFRF9QQVJBTShwYWludEluZm8pOwotICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6
cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICNpZiBFTkFCTEUoVklERU8p
CkBAIC00NzEsNiArNDU5LDM1IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50
TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQCiAjZW5kaWYKIH0K
IAorU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Cit7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0
TWVkaWFDb250cm9sc1RpbWUodGltZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsK
KyNlbmRpZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0
IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8p
CisgICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3Vy
cmVudFRpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGN1cnJlbnRUaW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZHVyYXRpb24pOworI2VuZGlmCit9CisK
K1N0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGlt
ZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUo
Y3VycmVudFRpbWUsIGR1cmF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGN1cnJlbnRU
aW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZHVyYXRpb24pOworI2VuZGlmCit9CisKIHZvaWQgUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdE1lbnVMaXN0U3R5bGUoU3R5bGVSZXNvbHZlcios
IFJlbmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVudCopIGNvbnN0CiB7CiAgICAgLy8g
SGVpZ2h0IGlzIGxvY2tlZCB0byBhdXRvIG9uIGFsbCBicm93c2Vycy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXggMjg5ODkz
ZTMxMzE3ODIwMTRmMTM1MGI3NDY1NjA5ODZmNmRmM2NiNy4uNDU3YjEwNWYzOGZhNzk4ZDc1OTYy
ZmRlZjRiYWM1Njg2ZmU4ODlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKQEAgLTkxLDcgKzkxLDYgQEAgY2xhc3MgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWEgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0U2VhcmNoRmllbGRSZXN1bHRzQnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlcios
IFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogCi0gICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhQ29u
dHJvbHNCYWNrZ3JvdW5kKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiwgY29u
c3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgYWRq
dXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0OwpAQCAtOTks
NiArOTgsOSBAQCBjbGFzcyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSA6IHB1YmxpYyBSZW5kZXJU
aGVtZSB7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIo
UmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYU11dGVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpOworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShm
bG9hdCB0aW1lKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7
CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1l
KGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CiAKICAgICAgICAgLy8g
TWVudUxpc3QgcmVmZXJzIHRvIGFuIHVuc3R5bGVkIG1lbnVsaXN0IChtZWFuaW5nIGEgbWVudWxp
c3Qgd2l0aG91dAogICAgICAgICAvLyBiYWNrZ3JvdW5kLWNvbG9yIG9yIGJvcmRlciBzZXQpIGFu
ZCBNZW51TGlzdEJ1dHRvbiByZWZlcnMgdG8gYSBzdHlsZWQKQEAgLTEyNyw2ICsxMjksNyBAQCBj
bGFzcyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAjaWYg
RU5BQkxFKFZJREVPKQogICAgICAgICAvLyBNZWRpYSBjb250cm9scwogICAgICAgICB2aXJ0dWFs
IGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7
IHJldHVybiB0cnVlOyB9CisgICAgICAgIHZpcnR1YWwgYm9vbCB1c2VzVmVydGljYWxWb2x1bWVT
bGlkZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICAgICAgLy8gUHJv
dmlkZSBhIHdheSB0byBwYXNzIHRoZSBkZWZhdWx0IGZvbnQgc2l6ZSBmcm9tIHRoZSBTZXR0aW5n
cyBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCAyNDdlZjFiMGNiYmQ3NWJhMGVmMmNlZDM0YjgxOTI5ZDg0NGJkNjJl
Li5mY2I2M2NkYzk2NjEzMjM5Mjg5NDgwYTcxZGE1MTc5MGQ3MGUzZWU5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMzUgQEAKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpvbnRhbCBy
ZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFy
ZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRlLiBUaGUgdm9sdW1lIHNsaWRlciBpcyBpbmNsdWRl
ZCBpbnRvCisgICAgICAgIHRoZSBjb250cm9scyB3aXRoIGhvcml6b250YWwgcmVuZGVyaW5nLCB0
aGUgdm9sdW1lIHNsaWRlciBjb250YWluZXIgaXMgcmVtb3ZlZC4gVGhlIHZpc3VhbAorICAgICAg
ICB1cGRhdGUgaXRzZWxmIGlzIGluIGEgc2VwYXJhdGUgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBUZW1wb3JhcmlseSBza2lw
IHRlc3RzIHJlbGF0ZWQgdG8gdm9sdW1lIGNvbnRyb2xzIHJlbmRlcmluZyBmb3IgQ2hyb21pdW0u
CisKKzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZp
ZGVvIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBDaGFuZ2UgZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sLCBtZWRp
YS9tZWRpYS1jb250cm9scy1pbnZhbGlkLXVybC5odG1sIGFuZAorICAgICAgICBtZWRpYS90cmFj
ay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5odG1sIHRvIGRlYWwg
d2l0aCB0aGUgbmV3IGVuY2xvc3VyZQorICAgICAgICBkaXYgaW4gQ2hyb21pdW0gY29udHJvbHMg
YW5kIHVzZSB0aGUgbWVkaWFDb250cm9sc0VsZW1lbnQoKSBoZWxwZXIgZnVuY3Rpb24gdG8gZmlu
ZCBlbGVtZW50cworICAgICAgICBpbnNpZGUgdGhlIGNvbnRyb2xzLgorICAgICAgICBGYWlsIHZp
ZGVvIGNvbnRyb2xzIHRlc3RzIGluIHRlc3QgZXhwZWN0YXRpb25zLgorCisgICAgICAgICogZnVs
bHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisg
ICAgICAgICogZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sOiBVc2UgbWVk
aWFDb250cm9sc0VsZW1lbnQgaGVscGVyIGZ1bmN0aW9uLgorICAgICAgICAqIG1lZGlhL21lZGlh
LWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWw6IFVzZSBtZWRpYUNvbnRyb2xzRWxlbWVudCBoZWxw
ZXIgZnVuY3Rpb24uCisgICAgICAgICogbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1z
bmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbDogSGVpZ2h0IGlzIHByb3ZpZGVkIGJ5IGVuY2xvc3Vy
ZSBlbGVtZW50LgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6
IEZhaWwgdmlkZW8gY29udHJvbHMgdGVzdHMuCisKIDIwMTItMDYtMDggIExldmkgV2VpbnRyYXVi
ICA8bGV2aXdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbmRlckxheWVyOjpwYWludENoaWxk
TGF5ZXJJbnRvQ29sdW1ucyBkb2Vzbid0IHByb3Blcmx5IHBpeGVsIHNuYXAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBl
Y3RlZC50eHQKaW5kZXggZjE5MmEzOTE3M2Q1NGQxZDlmNTFiMTQxZGFhNDFlYmVhMWYyOGYyYS4u
MjYzNDhiYjdlOWJlODVkZDQ3ZTM4OWI1MGU2NGMzYTBjNGUwNzIzMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBlY3RlZC50eHQK
KysrIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS1leHBl
Y3RlZC50eHQKQEAgLTIsNyArMiw3IEBAIFRoaXMgdGVzdHMgdGhhdCB0aGUgdmlkZW8gZWxlbWVu
dCdzICJjb250cm9scyIgYXR0cmlidXRlIGlzIG92ZXJyaWRkZW4gaW4gZnVsbCBzCiAKIEVWRU5U
KHdlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UpCiBFWFBFQ1RFRCAoc2hhZG93Um9vdCA9IGludGVybmFs
cy5zaGFkb3dSb290KHZpZGVvKSAhPSAnbnVsbCcpIE9LCi1FWFBFQ1RFRCAocGFuZWwgPSBzaGFk
b3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCAhPSAnbnVsbCcpIE9LCitFWFBFQ1RFRCAocGFu
ZWwgPSBtZWRpYUNvbnRyb2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQsICctd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsJykgIT0gJ251bGwnKSBPSwogRVhQRUNURUQgKGludGVybmFs
cy5zaGFkb3dQc2V1ZG9JZChwYW5lbCkgPT0gJy13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwn
KSBPSwogRVhQRUNURUQgKGRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocGFu
ZWwpWydkaXNwbGF5J10gIT0gJ25vbmUnKSBPSwogRVhQRUNURUQgKGRvY3VtZW50LmRlZmF1bHRW
aWV3LmdldENvbXB1dGVkU3R5bGUocGFuZWwpWydoZWlnaHQnXSA+PSAnMjBweCcpIE9LCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwK
aW5kZXggNzIxNGJiYTA3ZmQzMDdjMTIyNWYyZmU1YWYxYjM4YTU3ZGIyMDQyMS4uNDdmYTRmZTQx
YjQ5MDEwODEyY2FjNmEyMDY5NmFkYTRiYmJmMmU5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUuaHRtbApAQCAtMiw2ICsyLDcgQEAK
ICAgICA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIHZpZGVvIGVsZW1lbnQncyAiY29udHJvbHMiIGF0
dHJpYnV0ZSBpcyBvdmVycmlkZGVuIGluIGZ1bGwgc2NyZWVuIG1vZGUsIGFuZCB0aGF0IHRoZSBj
b250cm9scyBhcmUgY29ycmVjdGx5IGhpZGRlbiB1cG9uIGV4aXRpbmcgZnVsbCBzY3JlZW4uICBQ
cmVzcyBhbnkga2V5IHRvIGNvbnRpbnVlLjwvcD4KICAgICA8dmlkZW8gaWQ9InZpZGVvIiB3aWR0
aD0iMzAwIj48L3ZpZGVvPgogICAgIDxzY3JpcHQgc3JjPSJmdWxsLXNjcmVlbi10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vbWVkaWEvbWVkaWEtY29udHJvbHMuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQ+CiAgICAgICAgIHZhciBjYWxsYmFjazsKICAgICAgICAgdmFy
IHNoYWRvd1Jvb3Q7CkBAIC0xOSw3ICsyMCw3IEBACiAgICAgICAgIHZhciB2aWRlb0VudGVyZWRG
dWxsU2NyZWVuID0gZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykgewogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgic2hhZG93Um9vdCA9IGludGVybmFs
cy5zaGFkb3dSb290KHZpZGVvKSIsIG51bGwsICIhPSIpOwotICAgICAgICAgICAgICAgIHRlc3RF
eHBlY3RlZCgicGFuZWwgPSBzaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCIsIG51bGws
ICIhPSIpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgicGFuZWwgPSBtZWRpYUNvbnRy
b2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsJykiLCBudWxsLCAiIT0iKTsKICAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoImlu
dGVybmFscy5zaGFkb3dQc2V1ZG9JZChwYW5lbCkiLCAiLXdlYmtpdC1tZWRpYS1jb250cm9scy1w
YW5lbCIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgiZG9jdW1lbnQuZGVmYXVsdFZp
ZXcuZ2V0Q29tcHV0ZWRTdHlsZShwYW5lbClbJ2Rpc3BsYXknXSIsICdub25lJywgIiE9Iik7CiAg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21w
dXRlZFN0eWxlKHBhbmVsKVsnaGVpZ2h0J10iLCAnMjBweCcsICI+PSIpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11cmwuaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwKaW5kZXggODI4NjVl
ZGRlZTcyY2IyMTUwZGE4OTE2ODY2NjIyMDMwYmFkZWQ3NC4uY2RmNjRjZmQ0YzVjMTNiY2VmZjZm
OGYyM2JjNjc0ZWEyZjlkNTNkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEt
Y29udHJvbHMtaW52YWxpZC11cmwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1j
b250cm9scy1pbnZhbGlkLXVybC5odG1sCkBAIC0zLDYgKzMsNyBAQAogICAgIDxoZWFkPgogICAg
ICAgICA8c2NyaXB0IHNyYz1tZWRpYS1maWxlLmpzPjwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0
IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz1tZWRpYS1j
b250cm9scy5qcz48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgIHZhciB2
aWRlbzsKIApAQCAtMTgsMjkgKzE5LDE1IEBACiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGdldFRp
bWVMaW5lVmFsdWUoKQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHZhciB0aW1lbGlu
ZUNvbnRhaW5lcjsKLSAgICAgICAgICAgICAgICB2YXIgdGltZWxpbmVWYWx1ZTsKKyAgICAgICAg
ICAgICAgICB2YXIgdGltZWxpbmU7CisgICAgICAgICAgICAgICAgdmFyIHNoYWRvd1Jvb3QgPSBp
bnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbyk7CiAKLSAgICAgICAgICAgICAgICB2YXIgY29udHJv
bHNTaGFkb3cgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZC5maXJzdENo
aWxkOwotICAgICAgICAgICAgICAgIGZvciAoY2hpbGQgPSBjb250cm9sc1NoYWRvdy5maXJzdENo
aWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGludGVybmFscy5zaGFkb3dQc2V1ZG9JZChjaGlsZCkgPT0gIi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZWxpbmUtY29udGFpbmVyIikgewotICAgICAgICAgICAgICAgICAgICAgICAg
dGltZWxpbmVDb250YWluZXIgPSBjaGlsZDsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdGltZWxpbmUgPSBtZWRp
YUNvbnRyb2xzRWxlbWVudChzaGFkb3dSb290LmZpcnN0Q2hpbGQuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUnKTsKIAotICAgICAgICAgICAgICAgIGlmKCF0aW1l
bGluZUNvbnRhaW5lcikKLSAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxkIHRvIGZpbmQg
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS1jb250YWluZXIiOwotCi0gICAgICAgICAg
ICAgICAgZm9yIChjaGlsZCA9IHRpbWVsaW5lQ29udGFpbmVyLmZpcnN0Q2hpbGQ7IGNoaWxkOyBj
aGlsZCA9IGNoaWxkLm5leHRTaWJsaW5nKQotICAgICAgICAgICAgICAgICAgICBpZiAoaW50ZXJu
YWxzLnNoYWRvd1BzZXVkb0lkKGNoaWxkKSA9PSAiLXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1l
bGluZSIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVsaW5lVmFsdWUgPSBjaGlsZC52
YWx1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0KLSAgICAgICAgICAgICAgICBpZighdGltZWxpbmVDb250YWluZXIpCisgICAgICAgICAg
ICAgICAgaWYoIXRpbWVsaW5lKQogICAgICAgICAgICAgICAgICAgICB0aHJvdyAiRmFpbGQgdG8g
ZmluZCAtd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lIjsKIAotICAgICAgICAgICAgICAg
IHJldHVybiB0aW1lbGluZVZhbHVlOworICAgICAgICAgICAgICAgIHJldHVybiB0aW1lbGluZS52
YWx1ZTsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgZnVuY3Rpb24gZXJyb3IoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1zbmFw
LXRvLWxpbmVzLW5vdC1zZXQuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1
ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwKaW5kZXggMjlkNWM4NTcxZjY4
Njg3NTNkOWI1MjAzYjFlMTJlOTNhMjQ1NjE4NS4uMjJlYWZlM2U5NTQ0NjM1NTMxZTBkMjM5YWU0
YWI3M2EzM2UyNzE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2st
Y3VlLXJlbmRlcmluZy1zbmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNldC5o
dG1sCkBAIC04OSw3ICs4OSwxMCBAQAogICAgICAgICAgICAgZmluZE1lZGlhRWxlbWVudCgpOwog
ICAgICAgICAgICAgdGVzdFRyYWNrID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigndHJhY2snKTsK
ICAgICAgICAgICAgIHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJy4uL2NvbnRl
bnQvdGVzdCcpOwotICAgICAgICAgICAgY29udHJvbHNQYW5lbEVsZW1lbnQgPSBtZWRpYUNvbnRy
b2xzRWxlbWVudChpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykuZmlyc3RDaGlsZCwgJy13ZWJr
aXQtbWVkaWEtY29udHJvbHMtcGFuZWwnKTsKKworICAgICAgICAgICAgLy8gSW4gQ2hyb21pdW0g
aXQgaXMgdGhlIGVuY2xvc3VyZSBlbGVtZW50LCB3aGljaCBwcm92aWRlcyB0aGUgY29udHJvbHMg
aGVpZ2h0LCBvdGhlcndpc2UgdGhlIHBhbmVsOworICAgICAgICAgICAgLy8gYm90aCBhcmUgdGhl
IHNlY29uZCBjaGlsZCBpbiB0aGUgc2hhZG93IERPTS4KKyAgICAgICAgICAgIGNvbnRyb2xzUGFu
ZWxFbGVtZW50ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQuZmlyc3RD
aGlsZDsKIAogICAgICAgICAgICAgd2FpdEZvckV2ZW50KCdjYW5wbGF5dGhyb3VnaCcsIGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgICAgIGN1ZURpc3BsYXlDb250YWluZXIgPSB0ZXh0VHJhY2tE
aXNwbGF5RWxlbWVudCh2aWRlbyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAyZGNiYThlNGU4MmI0MDhjZjhmMWEwMGJiNTdjZmQ5Yjg5
ZDExMjE4Li5hMzRjMWQyZGNhYjlkOTg3ZDNhZjg0Y2MzYjg1ZWM4MWE2MGRjODIyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc3Myw2
ICs3NzMsMTEgQEAgV09OVEZJWCBTS0lQIDogbWVkaWEvdmlkZW8tc2l6ZS1pbnRyaW5zaWMtc2Nh
bGUuaHRtbCA9IFBBU1MKIC8vIERvZXNuJ3QgYXBwbHkgdG8gQ2hyb21pdW0gKFF1aWNrVGltZS1z
cGVjaWZpYyBiZWhhdmlvcikKIFdPTlRGSVggU0tJUCA6IG1lZGlhL3ZpZGVvLWRvZXMtbm90LWxv
b3AuaHRtbCA9IFRJTUVPVVQKIAorLy8gRG9lc24ndCBhcHBseSB0byBDaHJvbWl1bSBhbnkgbG9u
Z2VyIC0gdm9sdW1lIHNsaWRlciBpcyBpbmxpbmUgd2l0aCB2aWRlbyBjb250cm9scy4KK1dPTlRG
SVggU0tJUCA6IG1lZGlhL3ZpZGVvLXZvbHVtZS1zbGlkZXIuaHRtbCA9IEZBSUwKK1dPTlRGSVgg
U0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtYmVsb3cuaHRtbCA9IEZB
SUwKK1dPTlRGSVggU0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtbm9y
bWFsLmh0bWwgPSBGQUlMCisKIC8vIFF1aWNrVGltZSByZWZlcmVuY2UgbW92aWVzIG5vdCBzdXBw
b3J0ZWQuCiBXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNyb3NzLXNpdGUu
aHRtbCA9IFBBU1MKIApAQCAtMzAxMSw2ICszMDE2LDI2IEBAIEJVR1dLNzM4NjUgOiBtZWRpYS90
cmFjay90ZXh0LXRyYWNrLWlzLXJlYWNoYWJsZS5odG1sID0gVEVYVCBDUkFTSAogQlVHV0s4MTQw
MiBXSU4gOiBtZWRpYS90cmFjay90cmFjay1hY3RpdmUtY3Vlcy5odG1sID0gUEFTUyBUSU1FT1VU
CiBCVUdXSzgzODgyIDogbWVkaWEvdHJhY2svdHJhY2stbW9kZS5odG1sID0gUEFTUyBURVhUIFRJ
TUVPVVQKIAorLy8gTmVlZCByZWJhc2VsaW5lLgorQlVHV0s4NzY4MyA6IGZhc3QvbGF5ZXJzL3Zp
ZGVvLWxheWVyLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogZnVsbHNjcmVlbi9mdWxsLXNjcmVl
bi1zdGFja2luZy1jb250ZXh0Lmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvYXVkaW8t
Y29udHJvbHMtcmVuZGVyaW5nLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvYXVkaW8t
cmVwYWludC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLWFmdGVyLXJl
bG9hZC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLWxheW91dC1kaXJl
Y3Rpb24uaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9jb250cm9scy1zdHJpY3QuaHRt
bCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS9jb250cm9scy1zdHlsaW5nLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvY29udHJvbHMtd2l0aG91dC1wcmVsb2FkLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvbWVkaWEtY29udHJvbHMtY2xvbmUuaHRtbCA9IEZBSUwKK0JV
R1dLODc2ODMgOiBtZWRpYS9tZWRpYS1kb2N1bWVudC1hdWRpby1yZXBhaW50Lmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLmh0bWwgPSBGQUlM
CitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tZGlzcGxheS10b2dnbGUuaHRtbCA9IEZBSUwKK0JV
R1dLODc2ODMgOiBtZWRpYS92aWRlby1lbXB0eS1zb3VyY2UuaHRtbCA9IEZBSUwKK0JVR1dLODc2
ODMgOiBtZWRpYS92aWRlby1uby1hdWRpby5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlh
L3ZpZGVvLXBsYXlpbmctYW5kLXBhdXNlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEv
dmlkZW8tem9vbS1jb250cm9scy5odG1sID0gRkFJTAorQlVHV0s4NzgzNSA6IGh0dHAvdGVzdHMv
bWVkaWEvdmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29udGFpbnMtY3VycmVudFRpbWUuaHRtbCA9IEZB
SUwKKwogQlVHV0s3MjI3MSBTTk9XTEVPUEFSRCBERUJVRyA6IGZhc3QvZG9tL25vZGUtaXRlcmF0
b3ItcmVmZXJlbmNlLW5vZGUtbW92ZWQtY3Jhc2guaHRtbCA9IFBBU1MgQ1JBU0gKIAogQlVHV0s3
MjM3NiBXSU4gOiBmYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1sYWJlbC5odG1sID0gVEVYVCBQ
QVNTCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146728</attachid>
            <date>2012-06-10 01:50:42 -0700</date>
            <delta_ts>2012-06-11 06:04:00 -0700</delta_ts>
            <desc>Use this for review</desc>
            <filename>patch5.diff</filename>
            <type>text/plain</type>
            <size>16246</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjYmI0MmEzLi42YTI1ODM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcg
QEAKKzIwMTItMDYtMTAgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVcGRhdGUgdGhlIHRpbWUgZGlzcGxheSBvZiB0aGUgbmV3IENocm9taXVtIG1l
ZGlhIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODg3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGlu
ZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2
aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjaGFuZ2VzCisgICAgICAgIHRoZSBmb3Jt
YXQgb2YgdGhlIHRpbWUgZGlnaXRzIHRoYXQgYXJlIGRpc3BsYXllZC4gVGhleSBhcmUgZGlmZmVy
ZW50IGZvciBtZWRpYQorICAgICAgICBmaWxlcyBvZiBkaWZmZXJlbnQgZHVyYXRpb24uIEZvciBu
b24tYXV0b3BsYXlpbmcgdmlkZW9zLCB0aGUgZHVyYXRpb24gaXMgc2hvd24KKyAgICAgICAgYmVm
b3JlIHBsYXliYWNrIGlzIHN0YXJ0ZWQuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0No
cm9taXVtLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUt
cmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVt
YWluaW5nLWRpc3BsYXkpOgorICAgICAgICBGb3JtYXQgdGhlIG5ldyBkdXJhdGlvbiBkaXNwbGF5
IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0pOgorICAgICAgICBBZGQgYSBtZW1iZXIgZmllbGQgZm9yIHRoZSBkdXJhdGlv
biBkaXNwbGF5LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6Y3JlYXRlKToKKyAgICAgICAgQWRkIGFuIGVsZW1lbnQgZm9yIHRoZSBkdXJhdGlvbiBk
aXNwbGF5IGFuZCBpbml0aWFsbHkgaGlkZSB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNv
bnRyb2xsZXIpOgorICAgICAgICBBZGQgdGhlIGR1cmF0aW9uIGRpc3BsYXkgdG8gdGhlIGNvbnRy
b2xsZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXNldCk6CisgICAgICAgIEFkZCByZXNldCBmdW5jdGlvbmFsaXR5IGZvciB0aGUgZHVyYXRp
b24gZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OnBsYXliYWNrU3RhcnRlZCk6CisgICAgICAgIFNob3cgdGhlIGN1cnJlbnQgdGltZSBk
aXNwbGF5IGFuZCBoaWRlIHRoZSBkdXJhdGlvbiBkaXNwbGF5IHVwb24gcGxheWJhY2sgc3RhcnQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRh
dGVUaW1lRGlzcGxheSk6CisgICAgICAgIFNob3cgdGhlIGN1cnJlbnQgdGltZSBkaXNwbGF5IGFu
ZCBoaWRlIHRoZSBkdXJhdGlvbiBkaXNwbGF5IHdoZW4gY3VycmVudCB0aW1lIGlzIG5vbi16ZXJv
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICBBZGQgdGhlIE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudCB3aGljaCBwcm92aWRlcyB1c2Ugd2l0aCB0aGUgZHVyYXRp
b24gZGlzcGxheS4KKyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgor
ICAgICAgICBBZGQgYSBkdXJhdGlvbiBtZW1iZXIgZmllbGQsIHJldXNpbmcgdGhlIGV4aXN0aW5n
IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZvcm1hdENocm9taXVtTWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBGb3JtYXRzIGEgZ2l2
ZW4gdGltZSB1bmRlciB0aGUgY29uZGl0aW9uIG9mIGEgZ2l2ZW4gZHVyYXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJv
bHNUaW1lKToKKyAgICAgICAgV2hlbiBmb3JtYXR0aW5nIGEgc2luZ2xlIHRpbWUsIGFzc3VtZSBp
dCB0byBhbHNvIHByb3ZpZGUgdGhlIGR1cmF0aW9uIGNvbmRpdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJy
ZW50VGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgY3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJh
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9y
bWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUpOgorICAgICAgICBGb3JtYXQgdGhlIHJlbWFp
bmluZyB0aW1lIGZyb20gdGhlIGN1cnJlbnQgdGltZSBnaXZlbiB0aGUgZHVyYXRpb24uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oOgorICAgICAgICAo
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtKToKKyAgICAgICAgRGVjbGFyZSB0aGUgdGltZSBm
b3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMuaDoKKyAgICAgICAgKFJlbmRlclRoZW1lQ2hyb21pdW1NYWMpOgorICAg
ICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3IgQ2hy
b21pdW0gb24gdGhlIE1hYy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1h
dE1lZGlhQ29udHJvbHNUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGlt
ZSk6CisgICAgICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9m
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSBvbiB0aGUgTWFjLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRy
b2xzQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TWVkaWFDb250cm9sc1Jl
bWFpbmluZ1RpbWUpOgorICAgICAgICBDYWxsIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucyBvZiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0gb24gU2tpYS4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFJlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhKToKKyAgICAgICAgRGVjbGFyZSB0aGUgdGltZSBmb3JtYXR0aW5nIG1l
bWJlciBmdW5jdGlvbnMgZm9yIENocm9taXVtIFNraWEuCisKIDIwMTItMDYtMDkgIFNpbHZpYSBQ
ZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgcmFuZ2Ug
c2xpZGVycyByZW5kZXJpbmcgZm9yIHZvbHVtZSBhbmQgcGxheWJhY2sgcG9zaXRpb24gb2YgbmV3
IENocm9tZSB2aWRlbyBjb250cm9scy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNDaHJvbWl1bS5jc3MKaW5kZXggMmQ5N2VkNC4uMzk2ZjY2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKQEAgLTk3LDcgKzk3LDggQEAgYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnUKICAgICBwYWRkaW5nOiAwOwogfQogCi1hdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkgeworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWN1cnJlbnQtdGltZS1kaXNwbGF5LAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1y
ZW1haW5pbmctZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50
LXRpbWUtZGlzcGxheTsKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgIGRpc3Bs
YXk6IGJsb2NrOwpAQCAtMTExLDYgKzExMiw3IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9sCiAg
ICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2Es
IHNhbnMtc2VyaWY7CiAgICAgZm9udC1zaXplOiAxM3B4OworICAgIGZvbnQtd2VpZ2h0OiBib2xk
OwogICAgIGNvbG9yOiB3aGl0ZTsKIAogICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGM3NDVkNjMuLmIyNTVjMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uY3BwCkBAIC02OCw2ICs2OCw3IEBAIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqIGRv
Y3VtCiAgICAgLCBtX21lZGlhQ29udHJvbGxlcigwKQogICAgICwgbV9wbGF5QnV0dG9uKDApCiAg
ICAgLCBtX2N1cnJlbnRUaW1lRGlzcGxheSgwKQorICAgICwgbV9kdXJhdGlvbkRpc3BsYXkoMCkK
ICAgICAsIG1fdGltZWxpbmUoMCkKICAgICAsIG1fcGFuZWxNdXRlQnV0dG9uKDApCiAgICAgLCBt
X3ZvbHVtZVNsaWRlcigwKQpAQCAtMTE1LDEwICsxMTYsMTcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpjcmUKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxh
eSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXktPmhpZGUoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNw
bGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBk
dXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZHVyYXRpb25EaXNwbGF5ID0gZHVy
YXRpb25EaXNwbGF5LmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3Bs
YXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsK
KwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11
dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24g
PSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0
ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKQEAgLTE1NCw2ICsxNjIsOCBAQCB2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhYwogICAgICAgICBtX3BsYXlCdXR0b24tPnNldE1lZGlhQ29udHJvbGxl
cihjb250cm9sbGVyKTsKICAgICBpZiAobV9jdXJyZW50VGltZURpc3BsYXkpCiAgICAgICAgIG1f
Y3VycmVudFRpbWVEaXNwbGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAg
aWYgKG1fZHVyYXRpb25EaXNwbGF5KQorICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0TWVk
aWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBt
X3RpbWVsaW5lLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fcGFu
ZWxNdXRlQnV0dG9uKQpAQCAtMjA0LDYgKzIxNCwxMCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OnJlc2V0KCkKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFDb250
cm9sbGVyLT5kdXJhdGlvbigpOwogICAgIG1fdGltZWxpbmUtPnNldER1cmF0aW9uKGR1cmF0aW9u
KTsKICAgICBtX3RpbWVsaW5lLT5zaG93KCk7CisKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0
SW5uZXJUZXh0KHBhZ2UtPnRoZW1lKCktPmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGR1cmF0aW9u
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldEN1cnJl
bnRWYWx1ZShkdXJhdGlvbik7CisKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlh
Q29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKIApA
QCAtMjE5LDYgKzIzMyw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
cGxheWJhY2tTdGFydGVkKCkKIHsKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBl
KCk7CiAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUNvbnRyb2xsZXItPmN1cnJl
bnRUaW1lKCkpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgbV9kdXJh
dGlvbkRpc3BsYXktPmhpZGUoKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogfQogCkBAIC0y
NDgsNiArMjY0LDEyIEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBk
YXRlVGltZURpc3BsYXkoKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gQWZ0ZXIgc2VlaywgaGlkZSBkdXJhdGlvbiBkaXNwbGF5IGFuZCBzaG93IGN1cnJlbnQgdGlt
ZS4KKyAgICBpZiAobm93ID4gMCkgeworICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2hv
dygpOworICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOworICAgIH0KKwogICAgIC8v
IEFsbG93IHRoZSB0aGVtZSB0byBmb3JtYXQgdGhlIHRpbWUuCiAgICAgRXhjZXB0aW9uQ29kZSBl
YzsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0SW5uZXJUZXh0KHBhZ2UtPnRoZW1lKCkt
PmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShub3csIGR1cmF0aW9uKSwgZWMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IGM3ZmIzOWMuLmIzNjVjYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRXZlbnQ7CiBjbGFzcyBNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50Owor
Y2xhc3MgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sVGltZWxpbmVFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OwpAQCAt
MTM0LDYgKzEzNSw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudCogbV9wbGF5QnV0dG9uOwogICAgIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQqIG1fY3VycmVudFRpbWVEaXNwbGF5OworICAgIE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudCogbV9kdXJhdGlvbkRpc3BsYXk7CiAgICAgTWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50KiBtX3RpbWVsaW5lOwogICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudCogbV90aW1lbGluZUNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXgg
YjZiNDRmOC4uY2FlNGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTM0OCw2ICszNDgsNDUgQEAg
dm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJT
aXplKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICB9CiB9CiAKK3N0YXRpYyBTdHJpbmcgZm9ybWF0
Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lLCBmbG9hdCBkdXJhdGlvbikKK3sK
KyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICB0aW1lID0gMDsKKyAgICBpZiAoIWlz
ZmluaXRlKGR1cmF0aW9uKSkKKyAgICAgICAgZHVyYXRpb24gPSAwOworICAgIGludCBzZWNvbmRz
ID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjAp
OworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9
IDYwOworCisgICAgLy8gZHVyYXRpb24gZGVmaW5lcyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGlt
ZSBpcyByZW5kZXJlZAorICAgIGludCBkdXJhdGlvblNlY3MgPSAoaW50KWZhYnNmKGR1cmF0aW9u
KTsKKyAgICBpbnQgZHVyYXRpb25Ib3VycyA9IGR1cmF0aW9uU2VjcyAvICg2MCAqIDYwKTsKKyAg
ICBpbnQgZHVyYXRpb25NaW5zID0gKGR1cmF0aW9uU2VjcyAvIDYwKSAlIDYwOworCisgICAgaWYg
KGR1cmF0aW9uSG91cnMgfHwgaG91cnMpCisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
JXMlMDFkOiUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIiKSwgaG91cnMsIG1pbnV0ZXMs
IHNlY29uZHMpOworICAgIGlmIChkdXJhdGlvbk1pbnMgPiA5KQorICAgICAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIiVzJTAyZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVz
LCBzZWNvbmRzKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQiLCAo
dGltZSA8IDAgPyAiLSIgOiAiIiksIG1pbnV0ZXMsIHNlY29uZHMpOworfQorCitTdHJpbmcgUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0
aW1lKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJvbHNUaW1lKHRpbWUs
IHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRN
ZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9u
KQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJvbHNUaW1lKGN1cnJlbnRU
aW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06
OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGlt
ZShjdXJyZW50VGltZSAtIGR1cmF0aW9uLCBkdXJhdGlvbik7Cit9CisKICNlbmRpZiAgLy8gI2lm
IEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCmluZGV4
IDlhZjkzOTYuLmE2N2E0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKQEAgLTM4LDYgKzM4LDEwIEBAIGNsYXNz
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwgUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHN0YXRpYyB2b2lk
IGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKik7CisgICAgc3RhdGljIFN0
cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKTsKKyAgICBzdGF0aWMgU3Ry
aW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxv
YXQgZHVyYXRpb24pOworICAgIHN0YXRpYyBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFp
bmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKTsKKwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTWFjLmgKaW5kZXggYWE5NGE0Mi4uZDNiMzYwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCkBAIC01NSw2
ICs1NSw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXkoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25E
aXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGlt
ZShmbG9hdCB0aW1lKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRy
b2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9h
dCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0
dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KaW5kZXggNWE1
YWY0ZC4uOWY0YWE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KQEAgLTIyMyw2ICsyMjMsMjEgQEAgSW50UG9pbnQgUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYzo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVy
Qm94KiBtdXQKIHsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZy
b21NdXRlQnV0dG9uKG11dGVCdXR0b25Cb3gsIHNpemUpOwogfQorCitTdHJpbmcgUmVuZGVyVGhl
bWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNv
bnRyb2xzVGltZSh0aW1lKTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZv
cm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVy
YXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9
CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1h
aW5pbmdUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5jcHAKaW5kZXggZjk5OTVjMy4uY2UxY2VlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBA
IC00NTksNiArNDU5LDM1IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVk
aWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQCiAjZW5kaWYKIH0KIAor
U3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Cit7CisjaWYg
RU5BQkxFKFZJREVPKQorICAgIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVk
aWFDb250cm9sc1RpbWUodGltZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyNl
bmRpZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1
cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisg
ICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVu
dFRpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGN1
cnJlbnRUaW1lKTsKKyAgICBVTlVTRURfUEFSQU0oZHVyYXRpb24pOworI2VuZGlmCit9CisKK1N0
cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwg
ZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoY3Vy
cmVudFRpbWUsIGR1cmF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGN1cnJlbnRUaW1l
KTsKKyAgICBVTlVTRURfUEFSQU0oZHVyYXRpb24pOworI2VuZGlmCit9CisKIHZvaWQgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdE1lbnVMaXN0U3R5bGUoU3R5bGVSZXNvbHZlciosIFJl
bmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVudCopIGNvbnN0CiB7CiAgICAgLy8gSGVp
Z2h0IGlzIGxvY2tlZCB0byBhdXRvIG9uIGFsbCBicm93c2Vycy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXggMWU3MTNlMC4u
NDU3YjEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmgKQEAgLTk4LDYgKzk4LDkgQEAgY2xhc3MgUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9u
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CisgICAgICAgIHZpcnR1YWwg
U3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwg
ZmxvYXQgZHVyYXRpb24pIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRp
YUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24p
IGNvbnN0OwogCiAgICAgICAgIC8vIE1lbnVMaXN0IHJlZmVycyB0byBhbiB1bnN0eWxlZCBtZW51
bGlzdCAobWVhbmluZyBhIG1lbnVsaXN0IHdpdGhvdXQKICAgICAgICAgLy8gYmFja2dyb3VuZC1j
b2xvciBvciBib3JkZXIgc2V0KSBhbmQgTWVudUxpc3RCdXR0b24gcmVmZXJzIHRvIGEgc3R5bGVk
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146774</attachid>
            <date>2012-06-10 21:14:51 -0700</date>
            <delta_ts>2012-06-11 06:04:15 -0700</delta_ts>
            <desc>Full patch for layout tests - rebased to TOT</desc>
            <filename>bug-88724-20120611141448.patch</filename>
            <type>text/plain</type>
            <size>75963</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5MWY2ZTUyY2ZlMGUw
ZWQ2OTMyMjM4NWRkMzdhMWVhYjRkNzgzMC4uMmQzOWFkZmFiNWU0YzdkODA0MWQyODRhZDEzMjM0
YTQ5MjYxZjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4NyBAQAorMjAxMi0wNi0xMCAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSB0
aGUgdGltZSBkaXNwbGF5IG9mIHRoZSBuZXcgQ2hyb21pdW0gbWVkaWEgY29udHJvbHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODcyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
ZmluYWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAg
ICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRl
LiBUaGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdp
dHMgdGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAg
ICAgIGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRl
b3MsIHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3Rh
cnRlZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAg
ICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6Cisg
ICAgICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1
cnJlbnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAg
ICAgIEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAg
ICAgICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxs
eSBoaWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAg
IEFkZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAg
QWRkIHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhl
IGR1cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAg
ICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9u
IGRpc3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0
aW9uIG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJl
bWFpbmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRp
YUNvbnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBj
b25kaXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBX
aGVuIGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0
aGUgZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAg
Rm9ybWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUg
Y3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgor
ICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRp
bWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFD
b250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0
aGUgdGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAg
ICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgor
ICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3Ig
Q2hyb21pdW0gU2tpYS4KKworMjAxMi0wNi0wOSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSByYW5nZSBzbGlkZXJzIHJlbmRlcmluZyBm
b3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBvZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRy
b2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGluZWQgdGVzdHMu
CisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlz
dWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1cGRhdGVzIHRvIHRoZQorICAgICAgICBy
ZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9yIHRoZSBwbGF5YmFjayBwb3NpdGlvbiBh
bmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAgICAgICAgY3JlYXRpb24gb2YgYSBz
aGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxlIHRoZSByYW5nZSBzbGlkZXJzIHZpYSBD
U1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhlIHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0
aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNs
aWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRl
ciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjot
d2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAgIEFkanVzdCB0aGUgc3R5bGluZyBv
ZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIHNsaWRlciB0aHVtYiBz
aGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIG1lZGlh
IHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NT
IHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBB
ZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIg
dGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250YWluZXIuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRv
IGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMgaW4gYSBkYXJrIGNvbG9yLgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodCk6CisgICAgICAgIEFkZCBm
dW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSByZWdpb24gb24gdGhlIHNsaWRlcnMs
IHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBpdHMgZW5kcy4KKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQg
YW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHBsYXliYWNrIHBvc2l0aW9uIHNs
aWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXIpOgorICAgICAgICBVcGRh
dGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZv
bHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5j
dGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcgb2YgdGhlIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODgyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChmaW5hbCBwYXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVk
IHRlc3RzKQorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2Vpdmlu
ZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMgcGF0Y2ggaW5jbHVkZXMgQ1NTIGNoYW5nZXMsCisgICAg
ICAgIHRoZSByZW1vdmFsIG9mIHRoZSBub3cgbm8gbG9uZ2VyIG5lZWRlZCBjb250cm9scyBiYWNr
Z3JvdW5kIGRpdiwgYW5kIHRoZSBpbnRyb2R1Y3Rpb24gb2YKKyAgICAgICAgbmV3IGltYWdlcyBm
b3IgdGhlIGJ1dHRvbnMuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
czoKKyAgICAgICAgKGF1ZGlvKToKKyAgICAgICAgQWRqdXN0IGhlaWdodCBvZiBhdWRpbyBjb250
cm9scy4KKyAgICAgICAgKDo6LXdlYmtpdC1tZWRpYS1jb250cm9scyk6CisgICAgICAgIFVzZSBm
bGV4Ym94IG9uIG1lZGlhIGNvbnRyb2xzIHNoYWRvdyBET00uCisgICAgICAgIChhdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWVuY2xvc3VyZSk6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIG1heC13aWR0aCwgdGV4dC1p
bmRlbnQgYW5kIGJveC1zaXppbmcsIGFuZCByZXNldCBwYWRkaW5nIHRvIDAuCisgICAgICAgICh2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUpOgorICAgICAgICBVc2UgNXB4
IHBhZGRpbmcgb25seSBmb3IgdmlkZW8gY29udHJvbHMgYW5kIGFkanVzdCBoZWlnaHQgYWNjb3Jk
aW5nbHkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICBVc2UgZmxleGJveCBv
biBwYW5lbCwgYWRqdXN0IGJvdHRvbSBhbGlnbm1lbnQsIGhlaWdodCwgYmFja2dyb3VuZCBjb2xv
ciBhbmQgYm9yZGVyIHJhZGl1cy4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
bik6CisgICAgICAgIERpc3BsYXkgYnV0dG9ucyBpbmxpbmUgd2l0aCBmaXhlZCB3aWR0aCBhbmQg
aGVpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLCBubyBwYWRkaW5nIGFuZAorICAgICAgICA2cHgg
c3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50ICh0aGlzIHdpbGwgYmUgMTVweCBpbmNsIHRo
ZSBzcGFjZSBpbiB0aGUgaW1hZ2UpLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0
dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlubGluZSB3aXRoIGZpeGVkIHdpZHRoIGFu
ZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5vIHBhZGRpbmcgYW5kCisgICAgICAgIDlw
eCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGluY2wg
dGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBEaXNwbGF5IHRleHQgYXMgYmxvY2ss
IHdpdGhvdXQgYnJvZGVyLCBhZGp1c3RlZCBoZWlnaHQsIGZvbnQtZmFtaWx5LCBmb250LXNpemUg
YW5kIDlweCBzcGFjZQorICAgICAgICB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2ls
bCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUpOgorICAgICAgICBBZGp1c3QgaGVpZ2h0LCBwYWRkaW5nLCBiYWNrZ3Jv
dW5kLWNvbG9yLCBtaW4td2RpdGggYW5kIDE1cHggc3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVt
ZW50LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlcik6CisgICAgICAg
IEFkanVzdCBoZWlnaHQsIG1heC0gYW5kIG1pbi13aWR0aCwgYmFja2dyb3VuZC1jb2xvciBhbmQg
MTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQuCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMg
bm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94Lgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vz
c2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5l
Y2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAg
ICAgICBTaG93IHRoZSB0aW1lbGluZSBpbnN0ZWFkIG9mIHRoZSB0aW1lbGluZSBjb250YWluZXIg
d2hlbiByZXNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgSGlkZSB0aGUgdGltZWxpbmUgaW5z
dGVhZCBvZiB0aGUgdGltZWxpbmUgY29udGFpbmVyIHdoZW4gcnVubmluZyBpbnRvIGFuIGVycm9y
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU11dGVCdXR0b24pOgorICAgICAgICBJbnRyb2R1
Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIG11dGUgYnV0dG9uIGFuZCBhZGp1c3QgaXQg
YmFzZWQgb24gdm9sdW1lIGxldmVscy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFQbGF5
QnV0dG9uKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBpbWFnZSByZXNvdXJjZXMgZm9yIHRoZSBw
bGF5IGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhU2xpZGVyVGh1bWIpOgorICAg
ICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIHBvc2l0aW9uIHNsaWRl
ciB0aHVtYi4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6
CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgdm9sdW1lIHNs
aWRlciB0aHVtYi4KKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVk
aWFDb250cm9sc1BhcnQpOgorICAgICAgICBBZGQgdGltZWxpbmUgY29udGFpbmVyIHBhaW50aW5n
IHRvIHRoZSAibm90IHJlYWNoZWQiIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIFByb3ZpZGUgc2l6ZSBzZXR0aW5ncyBmb3IgdGhlIHBvc2l0aW9uIGFuZCB2b2x1bWUgc2xp
ZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICBDYWxjdWxhdGUgY29ycmVjdCB3aWR0
aCBhbmQgaGVpZ2h0IHNldHRpbmdzIGZvciB0aGUgbmV3IGltYWdlIHJlc291cmNlcyBvZiB0aGUg
cG9zaXRpb24gYW5kIHZvbHVtZQorICAgICAgICBzbGlkZXIgdGh1bWJzLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgIChSZW5kZXJUaGVtZUNo
cm9taXVtTWFjKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcg
KGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29u
dGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
UmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRy
b2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
U2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAgICAgICBSZW1v
dmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMg
YmFja2dyb3VuZCkuCisKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpv
bnRhbCByZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAodmlzdWFsIHVw
ZGF0ZSB3aWxsIGNvbnRhaW4gcmViYXNlbGluZWQgdGVzdHMpCisKKyAgICAgICAgVGhlIENocm9t
ZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhlIHZvbHVt
ZSBzbGlkZXIgaXMgaW5jbHVkZWQgaW50bworICAgICAgICB0aGUgY29udHJvbHMgd2l0aCBob3Jp
em9udGFsIHJlbmRlcmluZywgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFpbmVyIGlzIHJlbW92ZWQu
IFRoZSB2aXN1YWwKKyAgICAgICAgdXBkYXRlIGl0c2VsZiBpcyBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAgICAgICBSZW1vdmVkIHJlbGF0aXZlIHBv
c2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1YWxseSBpbiBET00g
b3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAgICBS
ZW1vdmVkIGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVu
dHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgIFJlbW92ZWQgYWJzb2x1dGUgcG9zaXRpb25p
bmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50cyBlcXVhbGx5IGluIERPTSBvcmRlci4K
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRh
aW5lcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5v
dCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBSZW1vdmUgZmxleGJveCBhbmQgaW50cm9k
dWNlIGlubGluZSBkaXNwbGF5IHRvIGFsd2F5cyBkaXNwbGF5IHRoaXMgZmllbGQuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyKToKKyAgICAgICAgUmVtb3ZlZCBhYnNv
bHV0ZSBwb3NpdGlvbmluZyB0byByZW5kZXIgYWxsIGNvbnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkg
aW4gRE9NIG9yZGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIFJl
bW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55IG1v
cmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBBcHBlbmRlZCB0aGUgdm9sdW1lIHNsaWRlciBhbmQgdGhlIG11dGUg
YnV0dG9uIGRpcmVjdGx5IHRvIHRoZSBwYW5lbCwgcmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRh
aW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250
YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5l
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNo
b3dWb2x1bWVTbGlkZXIpOgorICAgICAgICBSZW1vdmVkIHZvbHVtZSBzbGlkZXIgY29udGFpbmVy
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5jZSk6CisgICAgICAgIEFsbG93IHVzZSBvZiBob3Jpem9u
dGFsIG1lZGlhIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJU
aHVtYjo6bGF5b3V0KToKKyAgICAgICAgUmV1c2UgaGFzVmVydGljYWxBcHBlYXJhbmNlIGZ1bmN0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1l
ZGlhVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQ2hhbmdlIGxpbmUgZHJhd2luZyBmcm9tIHZlcnRp
Y2FsIHRvIGhvcml6b250YWwuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKToK
KyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlciBmdW5jdGlvbiB0byBhbGxvdyBo
b3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisg
ICAgICAgIEFkZCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9y
aXpvbnRhbCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lh
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisK
KzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIHRlc3RzLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJl
IHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIEEgbmV3IGVuY2xvc3VyZSBkaXYgaXMgcmVxdWly
ZWQKKyAgICAgICAgdG8gcHJvdmlkZSBmb3IgYSBvZmZzZXQgc3BhY2UgZnJvbSB0aGUgdmlkZW8n
cyBib3VuZGFyaWVzLiBUaGUgdmlzdWFsIHVwZGF0ZSBpdHNlbGYgaXMgaW4KKyAgICAgICAgYSBz
ZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Nz
OgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlKToKKyAg
ICAgICAgSW50cm9kdWNlIENTUyBmb3IgZW5jbG9zdXJlIGRpdiBzbyBpdCBkb2Vzbid0IHNob3cg
eWV0LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICBE
ZWZpbml0aW9uIG9mIHRoZSBuZXcgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IERlZmluaXRpb24gb2YgYSBjcmVhdGUgb3BlcmF0b3IgZm9yIHRoZSBuZXcgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgRGVmaW5pdGlvbiBvZiB0aGUgc2hhZG93
UHNldWRvSWQgb2YgLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgZm9yIHRoZSBlbmNs
b3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEluaXRpYWxp
emUgbWVtYmVyIGVsZW1lbnQgZm9yIGVuY2xvc3VyZSBkaXYuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICBJbnN0YW50
aWF0ZSBlbmNsb3N1cmUgZGl2IGFuZCBhZGQgaW50byBET00gYmV0d2VlbiBjb250cm9scyBhbmQg
cGFuZWwgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICBTZXQgbWVkaWEgY29udHJv
bGxlciBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICBJbnNl
cnQgdGV4dCB0cmFjayBkaXNwbGF5IGNvbnRhaW5lciB0byBlbmNsb3N1cmUgcmF0aGVyIHRoYW4g
cGFuZWwuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjptZWRpYUNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
Ojppc01lZGlhQ29udHJvbEVsZW1lbnQpOgorICAgICAgICBBZGQgZGVjbGFyYXRpb24gb2YgdGhl
IG5ldyBlbmNsb3N1cmUgZWxlbWVudCBhbmQgaXRzIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgQWRkIG1lbWJlciB2
YXJpYWJsZSB0byBjb250cm9scyByb290IGVsZW1lbnQgdG8gaG9sZCB0aGUgZW5jbG9zdXJlIGVs
ZW1lbnQuCisKIDIwMTItMDYtMTAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbRm9ybXNdIEludHJvZHVjZSBEZWNpbWFsIGJlaGluZCB0aGUgSW5wdXRO
dW1iZXIgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHND
aHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
cwppbmRleCA0MDkzOThjNWQwY2NmMGM5ZDYzZjYwZTliNjkzNzJlOWEzOTI0ZDI2Li4zOTZmNjYx
ZWYwNDE3ODJlMjM1OWRhNzAzM2Q5YzU0YjQ5MWMxYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtMzEsNyArMzEsNyBAQCBib2R5Oi13ZWJr
aXQtZnVsbC1wYWdlLW1lZGlhIHsKIAogYXVkaW8gewogICAgIHdpZHRoOiAzMDBweDsKLSAgICBo
ZWlnaHQ6IDMycHg7CisgICAgaGVpZ2h0OiAzMHB4OwogfQogCiBhdWRpbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYSwgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEgewpAQCAtMzksOTAgKzM5
LDc5IEBAIGF1ZGlvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhLCB2aWRlbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYSB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogfQogCi1hdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwg
ewotICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Cis6Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDog
dmVydGljYWw7CiAgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kOwotICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKLSAgICBvdmVyZmxvdzogdmlzaWJsZTsKLSAgICBib3R0b206IDA7CisgICAgLXdlYmtp
dC1ib3gtYWxpZ246IGNlbnRlcjsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZW5jbG9zdXJlLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgewogICAg
IHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMzJweDsKLSAgICB6LWluZGV4OiAwOwotICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsKKyAgICBtYXgtd2lkdGg6IDgwMHB4
OworICAgIGhlaWdodDogMzBweDsKKyAgICBib3R0b206IDA7CisgICAgdGV4dC1pbmRlbnQ6IDA7
CisgICAgcGFkZGluZzogMDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogfQogCi12aWRl
bzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7
Ci0gICAgYm90dG9tOiAwcHg7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1
cmUgeworICAgIHBhZGRpbmc6IDBweCA1cHggNXB4IDVweDsKKyAgICBoZWlnaHQ6IDM1cHg7CiB9
CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCB7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDsKKyAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7
CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBj
ZW50ZXI7CisgICAgYm90dG9tOiBhdXRvOworICAgIGhlaWdodDogMzBweDsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2JhKDIwLCAyMCwgMjAsIDAuOCk7CisgICAgYm9yZGVyLXJhZGl1czogNXB4
OwogfQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtbXV0ZS1idXR0b247Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHRv
cDogYXV0bzsKLSAgICBib3R0b206IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgbGVmdDogYXV0bzsK
LQotICAgIHdpZHRoOiAzNHB4OwotICAgIGhlaWdodDogMzJweDsKKyAgICBkaXNwbGF5OiBpbmxp
bmU7CisgICAgYm9yZGVyOiBub25lOworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
d2lkdGg6IDM1cHg7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4Owor
ICAgIG1hcmdpbjogMCA2cHggMCAwOworICAgIHBhZGRpbmc6IDA7CiB9CiAKIGF1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1wbGF5LWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1
dHRvbjsKLQotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90
dG9tOiA3cHg7Ci0gICAgbGVmdDogN3B4OwotICAgIHJpZ2h0OiA2cHg7Ci0KLSAgICB3aWR0aDog
MThweDsKLSAgICBoZWlnaHQ6IDE5cHg7Ci19Ci0KLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZWxpbmUtY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRpbWVsaW5l
LWNvbnRhaW5lcjsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIC13ZWJraXQt
Ym94LW9yaWVudDogaG9yaXpvbnRhbDsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwot
ICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAxOwot
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogYXV0bzsKLSAgICBib3R0b206IDA7
Ci0gICAgbGVmdDogMzBweDsKLSAgICByaWdodDogMzRweDsKLQotICAgIHdpZHRoOiBhdXRvOwot
ICAgIGhlaWdodDogMzJweDsKLQotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUs
IDI1NSwgMjU1LCAwLjIpOwotICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAy
NTUsIDI1NSwgMC4yKTsKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgYm9yZGVyOiBub25lOwor
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgd2lkdGg6IDMwcHg7CisgICAgaGVpZ2h0
OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIG1hcmdpbi1sZWZ0OiA5cHg7Cisg
ICAgbWFyZ2luLXJpZ2h0OiA5cHg7CisgICAgcGFkZGluZzogMDsKIH0KIAotYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRp
bWUtcmVtYWluaW5nLWRpc3BsYXkgewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3Vy
cmVudC10aW1lLWRpc3BsYXk7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAwOwotICAgIC13ZWJr
aXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwotCi0g
ICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBib3JkZXI6IG5v
bmU7CiAgICAgY3Vyc29yOiBkZWZhdWx0OwogCi0gICAgbGluZS1oZWlnaHQ6IDIxcHg7Ci0gICAg
aGVpZ2h0OiAyMHB4OwotICAgIHdpZHRoOiA1OHB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBt
YXJnaW46IDAgOXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOwogCi0gICAgdGV4dC1hbGlnbjogY2Vu
dGVyOwotICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKLSAgICBmb250LXNpemU6IDE2cHg7CisgICAg
bGluZS1oZWlnaHQ6IDMwcHg7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNh
bnMtc2VyaWY7CisgICAgZm9udC1zaXplOiAxM3B4OwogICAgIGZvbnQtd2VpZ2h0OiBib2xkOwog
ICAgIGNvbG9yOiB3aGl0ZTsKIApAQCAtMTM3LDQwICsxMjYsNDggQEAgYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2wKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS1zbGlkZXI7CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gICAgYm94LXNpemlu
ZzogYm9yZGVyLWJveDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwotCi0gICAgcGFkZGluZzog
MHB4OwotICAgIG1hcmdpbjogMHB4IDZweDsKLSAgICBoZWlnaHQ6IDE4cHg7Ci0KLSAgICBib3Jk
ZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAgICBib3JkZXItc3R5bGU6IHNv
bGlkOwotICAgIGJvcmRlci13aWR0aDogMXB4OwotICAgIGJvcmRlci1yYWRpdXM6IDJweDsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwotICAgIGNvbG9y
OiByZ2IoNTAsIDE0MCwgMjIzKTsKLX0KLQotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyOwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBib3R0
b206IDMycHg7Ci0KLSAgICB3aWR0aDogMzRweDsKLSAgICBoZWlnaHQ6IDEwMHB4OwotCi0gICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOworICAgIGhlaWdodDogOHB4Owor
ICAgIG1hcmdpbjogMCAxNXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHRyYW5zcGFyZW50OworICAgIG1pbi13aWR0aDogMjVweDsKIH0KIAogYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlciB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12
b2x1bWUtc2xpZGVyOwotICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0KLSAgICB0b3A6IDEwcHg7Ci0gICAgbGVmdDogMTJweDsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogOHB4OworICAg
IG1heC13aWR0aDogNzBweDsKKyAgICBtYXJnaW46IDAgMTVweCAwIDA7CisgICAgcGFkZGluZzog
MDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBtaW4td2lkdGg6IDE1
cHg7Cit9CiAKLSAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6IDgwcHg7CisvKiBGSVhNRSB0
aGVzZSBzaG91bGRuJ3QgdXNlIHNwZWNpYWwgcHNldWRvU2hhZG93SWRzLCBidXQgbmljZXIgcnVs
ZXMuCisgICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/
aWQ9MTEyNTA4CisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIy
MTgKKyovCitpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWlu
ZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LWFsaWduOiBj
ZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAvKiBUaGlzIHByb3Bl
cnR5IGlzIHVwZGF0ZWQgYnkgQysrIGNvZGUuICovCisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBi
b3JkZXItYm94OworICAgIGhlaWdodDogMTAwJTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAgYm9yZGVyLXJhZGl1czogNHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBCYWNrZ3JvdW5kIGRyYXdp
bmcgaXMgbWFuYWdlZCBieSBDKysgY29kZSB0byBkcmF3IHJhbmdlcy4gKi8KIH0KKworaW5wdXRb
dHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIgeworICAgIGRpc3BsYXk6
IGJsb2NrOworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVydGh1bWItaG9yaXpvbnRhbDsK
KyAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIGJvdHRvbTogMXB4OworICAgIG1hcmdpbi1sZWZ0OiAtN3B4OworICAgIG1hcmdp
bi1yaWdodDogLTdweDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwCmluZGV4IGJkY2Q5MTY0ZDg5ZGFkNGI3ZmQ3ODhkYWEyMmIzMzk2OGY5
ZTAwYTUuLmIyNTVjMTZkNDUwMGQwOTI0MmQ2NjIxYzY0OWMyNGRkNmJiZjQ1MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVP
KQogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCIKIAorI2luY2x1
ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCkBA
IC00NSwxNyArNDYsMzQgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1M
RGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQtPmRvY3VtZW50KCkpCisgICAg
LCBtX21lZGlhQ29udHJvbGxlcigwKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Cit9CisK
K2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIikpOworICAg
IHJldHVybiBpZDsKK30KKwogTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBNZWRp
YUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9tZWRpYUNvbnRyb2xsZXIoMCkKICAgICAsIG1f
cGxheUJ1dHRvbigwKQogICAgICwgbV9jdXJyZW50VGltZURpc3BsYXkoMCkKKyAgICAsIG1fZHVy
YXRpb25EaXNwbGF5KDApCiAgICAgLCBtX3RpbWVsaW5lKDApCi0gICAgLCBtX3RpbWVsaW5lQ29u
dGFpbmVyKDApCiAgICAgLCBtX3BhbmVsTXV0ZUJ1dHRvbigwKQogICAgICwgbV92b2x1bWVTbGlk
ZXIoMCkKLSAgICAsIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKDApCiAgICAgLCBtX3BhbmVsKDAp
CisgICAgLCBtX2VuY2xvc3VyZSgwKQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAsIG1f
dGV4dERpc3BsYXlDb250YWluZXIoMCkKICAgICAsIG1fdGV4dFRyYWNrRGlzcGxheSgwKQpAQCAt
NzcsNiArOTUsOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQpKTsKIAorICAgIC8vIENyZWF0ZSBh
biBlbmNsb3NpbmcgZWxlbWVudCBmb3IgdGhlIHBhbmVsIHNvIHdlIGNhbiB2aXN1YWxseSBvZmZz
ZXQgdGhlIGNvbnRyb2xzIGNvcnJlY3RseS4KKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CkBAIC04Nyw1MiArMTA4LDQ0IEBAIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6Y3JlCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5l
Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwotCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGlt
ZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29u
dHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7
Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVj
LCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9
IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5
LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURp
c3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWlu
ZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlk
ZSgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0
cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xz
LT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICB2b2x1bWVTbGlkZXJDb250YWlu
ZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKLSAgICBpZiAoZWMp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJv
bENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVs
ZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9kdXJhdGlvbkRpc3Bs
YXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGR1cmF0
aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+
IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0
ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xD
b250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYywgdHJ1ZSk7CisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1f
dm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlk
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFw
cGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVuY2xvc3VyZS0+YXBw
ZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQo
KTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE0OSwxOCArMTYyLDE4
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjCiAgICAgICAgIG1fcGxheUJ1dHRvbi0+c2V0TWVk
aWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX2N1cnJlbnRUaW1lRGlzcGxheSkK
ICAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9s
bGVyKTsKKyAgICBpZiAobV9kdXJhdGlvbkRpc3BsYXkpCisgICAgICAgIG1fZHVyYXRpb25EaXNw
bGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fdGltZWxpbmUp
CiAgICAgICAgIG1fdGltZWxpbmUtPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKLSAg
ICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikKLSAgICAgICAgbV90aW1lbGluZUNvbnRhaW5lci0+
c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRv
bikKICAgICAgICAgbV9wYW5lbE11dGVCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9s
bGVyKTsKICAgICBpZiAobV92b2x1bWVTbGlkZXIpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5z
ZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29u
dGFpbmVyKQotICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9s
bGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsKQogICAgICAgICBtX3BhbmVsLT5zZXRN
ZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fZW5jbG9zdXJlKQorICAgICAg
ICBtX2VuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAg
bV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwpA
QCAtMTc4LDcgKzE5MSw2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
aGlkZSgpCiB7CiAgICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5ZWQoZmFsc2UpOwogICAgIG1fcGFu
ZWwtPmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOwogfQogCiB2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VPcGFxdWUoKQpAQCAtMTg5
LDcgKzIwMSw2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6bWFrZU9w
YXF1ZSgpCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VUcmFuc3Bh
cmVudCgpCiB7CiAgICAgbV9wYW5lbC0+bWFrZVRyYW5zcGFyZW50KCk7Ci0gICAgbV92b2x1bWVT
bGlkZXJDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXNldCgpCkBAIC0yMDIsNyArMjEzLDExIEBAIHZvaWQgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQogCiAgICAgZmxvYXQgZHVyYXRpb24gPSBtX21l
ZGlhQ29udHJvbGxlci0+ZHVyYXRpb24oKTsKICAgICBtX3RpbWVsaW5lLT5zZXREdXJhdGlvbihk
dXJhdGlvbik7Ci0gICAgbV90aW1lbGluZUNvbnRhaW5lci0+c2hvdygpOworICAgIG1fdGltZWxp
bmUtPnNob3coKTsKKworICAgIG1fZHVyYXRpb25EaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+
dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZHVyYXRpb24pLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKGR1cmF0aW9u
KTsKKwogICAgIG1fdGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFDb250cm9sbGVyLT5jdXJy
ZW50VGltZSgpKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogCkBAIC0yMTgsNiArMjMzLDgg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQo
KQogewogICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKICAgICBtX3RpbWVs
aW5lLT5zZXRQb3NpdGlvbihtX21lZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CisgICAg
bV9jdXJyZW50VGltZURpc3BsYXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlk
ZSgpOwogICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiB9CiAKQEAgLTI0Nyw2ICsyNjQsMTIgQEAg
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVUaW1lRGlzcGxheSgp
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBZnRlciBzZWVrLCBo
aWRlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIHNob3cgY3VycmVudCB0aW1lLgorICAgIGlmIChub3cg
PiAwKSB7CisgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgICAgIG1f
ZHVyYXRpb25EaXNwbGF5LT5oaWRlKCk7CisgICAgfQorCiAgICAgLy8gQWxsb3cgdGhlIHRoZW1l
IHRvIGZvcm1hdCB0aGUgdGltZS4KICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIG1fY3VycmVu
dFRpbWVEaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBlYyk7CkBAIC0yNTksOSArMjgyLDkgQEAg
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXBvcnRlZEVycm9yKCkKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdGltZWxpbmVDb250YWluZXIt
PmhpZGUoKTsKKyAgICBtX3RpbWVsaW5lLT5oaWRlKCk7CiAgICAgbV9wYW5lbE11dGVCdXR0b24t
PmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fdm9s
dW1lU2xpZGVyLT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6dXBkYXRlU3RhdHVzRGlzcGxheSgpCkBAIC0zMzEsNyArMzU0LDcgQEAgdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzaG93Vm9sdW1lU2xpZGVyKCkKICAgICBpZiAo
IW1fbWVkaWFDb250cm9sbGVyLT5oYXNBdWRpbygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2hvdygpOworICAgIG1fdm9sdW1lU2xpZGVyLT5zaG93
KCk7CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0zNDUsNyArMzY4LDcgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5
KCkKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVu
dCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KICAgICBFeGNlcHRp
b25Db2RlIGVjOwotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNl
KCksIG1fcGFuZWwsIGVjLCB0cnVlKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250
YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3VyZSwgZWMsIHRydWUpOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uaAppbmRleCAzNjYxODZiNjVlMWY4MjU1NWJiMWY1NzFjNTY5YjM3Zjk0
N2UwMWM5Li5iMzY1Y2MzM2M2M2EwM2VlYzA5YWQyOTgyNDllNTlmNTc5YzVkMzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIEV2ZW50OwogY2xhc3Mg
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDsKIGNs
YXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dDsKQEAgLTQ3LDggKzQ4LDggQEAgY2xhc3MgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OwotY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbGxlckludGVyZmFjZTsK
IGNsYXNzIE1lZGlhUGxheWVyOwogCkBAIC02MCw2ICs2MSwyNCBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGV4dFRyYWNr
RGlzcGxheUVsZW1lbnQ7CiAjZW5kaWYKIAorY2xhc3MgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRy
b2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpIHsgbV9tZWRpYUNvbnRyb2xsZXIgPSBjb250cm9s
bGVyOyB9CisgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtZWRpYUNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbGxlcjsgfQorCitwcm90ZWN0ZWQ6CisgICAgTWVk
aWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKworICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbV9tZWRpYUNvbnRyb2xs
ZXI7Cit9OworCiBjbGFzcyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtIDogcHVibGlj
IE1lZGlhQ29udHJvbHMgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNyZWF0ZShEb2N1bWVudCopOwpAQCAtMTE2LDEyICsx
MzUsMTMgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KiBt
X3BsYXlCdXR0b247CiAgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudCog
bV9jdXJyZW50VGltZURpc3BsYXk7CisgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50KiBtX2R1cmF0aW9uRGlzcGxheTsKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQqIG1fdGltZWxpbmU7CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50KiBtX3RpbWVsaW5lQ29udGFpbmVyOwogICAgIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQqIG1fcGFuZWxNdXRlQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyOwotICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyOwogICAgIE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudCogbV9wYW5lbDsKKyAgICBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3Vy
ZUVsZW1lbnQqIG1fZW5jbG9zdXJlOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KiBtX3RleHREaXNwbGF5Q29udGFpbmVy
OwogICAgIE1lZGlhQ29udHJvbFRleHRUcmFja0Rpc3BsYXlFbGVtZW50KiBtX3RleHRUcmFja0Rp
c3BsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAppbmRleCA0ZTcxNGEwMzkxZTQ2Y2IxZWQyYmExZWVhNTQxNDJiMjdiNTA5NDQ2Li5i
NTMzOTU5OWQwZjhjYWUxNGM5MDMzOWY4YTY3YTU4MThjMGVlYjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTYyLDcgKzYy
LDEwIEBAIGlubGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0
RWxlbWVudCogaW5wdXQpCiB7CiAgICAgQVNTRVJUKGlucHV0LT5yZW5kZXJlcigpKTsKICAgICBS
ZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKLSAg
ICByZXR1cm4gc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQg
fHwgc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ7Cisg
ICAgUmVuZGVyVGhlbWUqIHNsaWRlclRoZW1lID0gaW5wdXQtPnJlbmRlcmVyKCktPnRoZW1lKCk7
CisKKyAgICByZXR1cm4gc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNh
bFBhcnQKKyAgICAgICAgfHwgKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1
bWVTbGlkZXJQYXJ0ICYmIHNsaWRlclRoZW1lLT51c2VzVmVydGljYWxWb2x1bWVTbGlkZXIoKSk7
CiB9CiAKIFNsaWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50T2YoTm9kZSogbm9k
ZSkKQEAgLTEwOCw3ICsxMTEsNyBAQCB2b2lkIFJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQoKQog
ICAgIC8vIERvIG5vdCBjYXN0IG5vZGUoKSB0byBTbGlkZXJUaHVtYkVsZW1lbnQuIFRoaXMgcmVu
ZGVyZXIgaXMgdXNlZCBmb3IKICAgICAvLyBUcmFja0xpbWl0RWxlbWVudCB0b28uCiAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lu
cHV0RWxlbWVudCgpOwotICAgIGJvb2wgaXNWZXJ0aWNhbCA9IHN0eWxlKCktPmFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
TWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ7CisgICAgYm9vbCBpc1ZlcnRpY2FsID0gaGFzVmVy
dGljYWxBcHBlYXJhbmNlKGlucHV0KTsKIAogICAgIGRvdWJsZSBmcmFjdGlvbiA9IGNvbnZlcnRJ
bnB1dE51bWJlclRvRG91YmxlKHNsaWRlclBvc2l0aW9uKGlucHV0KSAqIDEwMCk7CiAgICAgaWYg
KGlzVmVydGljYWwpCkBAIC0zMjEsMTIgKzMyNCwzOCBAQCBIVE1MSW5wdXRFbGVtZW50KiBTbGlk
ZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRvd0FuY2Vz
dG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFNs
aWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRo
dW1iIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlk
ZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKICAgICByZXR1cm4gc2xpZGVyVGh1
bWI7CiB9CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhU2xpZGVyVGh1bWJTaGFk
b3dQc2V1ZG9JZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiKSk7Cisg
ICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgU2xp
ZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICBy
ZXR1cm4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworCisgICAgUmVuZGVyU3R5bGUqIHNs
aWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlk
ZXJTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAg
Y2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFy
dDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFG
dWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVt
ZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRv
d1BzZXVkb0lkKCk7CisgICAgfQorfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiBpbmxpbmUgVHJhY2tMaW1pdGVyRWxlbWVudDo6VHJhY2tMaW1pdGVyRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCkBAIC0zNTEsOCArMzgwLDIyIEBAIFJlbmRlck9iamVjdCogVHJh
Y2tMaW1pdGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKLSAgICByZXR1cm4gc2xp
ZGVyVGh1bWI7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFkb3dBbmNlc3Rvck5v
ZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4g
c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworCisgICAgUmVuZGVyU3R5bGUqIHNsaWRlclN0
eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlkZXJTdHls
ZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgY2FzZSBN
ZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKKyAg
ICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRl
clRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKCk7CisgICAgfQogfQogCiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVt
ZW50T2YoTm9kZSogbm9kZSkKQEAgLTM4NSw4ICs0MjgsMjUgQEAgUmVuZGVyT2JqZWN0KiBTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJl
bmRlclMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKLSAgICByZXR1
cm4gc2xpZGVyVGh1bWI7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1l
ZGlhU2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAo
Ii13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKKworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0ID0gc2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFp
bnB1dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlckNvbnRhaW5lcjsKKworICAgIFJlbmRlclN0eWxl
KiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAo
c2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0Ogor
ICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRl
clBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1l
ZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5W
b2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlckNvbnRhaW5l
cjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworICAgIH0K
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCA3MmUxMmM4ODFiYzczZmQwNWU5NjVhOThiMGRi
OWJmNmIwOGVlOGZmLi5jYWU0ZGJmYjc1MmJlNTM0NTZiZmNhYzc3N2RkNzlhNGQ3MDE4MTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sc0Nocm9taXVtLmNwcApAQCAtNzQsMTQgKzc0LDIxIEBAIHN0YXRpYyBib29sIHBhaW50TWVk
aWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50
SW5mCiAgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBz
dGF0aWMgSW1hZ2UqIHNvdW5kRnVsbCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU291bmRGdWxs
Iik7Ci0gICAgc3RhdGljIEltYWdlKiBzb3VuZE5vbmUgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRp
YVNvdW5kTm9uZSIpOwotICAgIHN0YXRpYyBJbWFnZSogc291bmREaXNhYmxlZCA9IHBsYXRmb3Jt
UmVzb3VyY2UoIm1lZGlhU291bmREaXNhYmxlZCIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRM
ZXZlbDMgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNvdW5kTGV2ZWwzIik7CisgICAg
c3RhdGljIEltYWdlKiBzb3VuZExldmVsMiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVy
U291bmRMZXZlbDIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIHNvdW5kTGV2ZWwxID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3VuZExldmVsMSIpOworICAgIHN0YXRpYyBJbWFnZSogc291
bmREaXNhYmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmREaXNhYmxlZCIp
OwogCi0gICAgaWYgKCFoYXNTb3VyY2UobWVkaWFFbGVtZW50KSB8fCAhbWVkaWFFbGVtZW50LT5o
YXNBdWRpbygpKQorICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxl
bWVudC0+aGFzQXVkaW8oKSB8fCBtZWRpYUVsZW1lbnQtPm11dGVkKCkgfHwgbWVkaWFFbGVtZW50
LT52b2x1bWUoKSA8PSAwKQogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludElu
Zm8uY29udGV4dCwgcmVjdCwgc291bmREaXNhYmxlZCk7CiAKLSAgICByZXR1cm4gcGFpbnRNZWRp
YUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50LT5tdXRlZCgpID8g
c291bmROb25lOiBzb3VuZEZ1bGwpOworICAgIGlmIChtZWRpYUVsZW1lbnQtPnZvbHVtZSgpIDw9
IDAuMzMpCisgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0
LCByZWN0LCBzb3VuZExldmVsMSk7CisKKyAgICBpZiAobWVkaWFFbGVtZW50LT52b2x1bWUoKSA8
PSAwLjY2KQorICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4
dCwgcmVjdCwgc291bmRMZXZlbDIpOworCisgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFp
bnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kTGV2ZWwzKTsKIH0KIAogc3RhdGljIGJvb2wgcGFp
bnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtOTAsOSArOTcsOSBAQCBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2Uo
Im1lZGlhUGxheSIpOwotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVz
b3VyY2UoIm1lZGlhUGF1c2UiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVk
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFQbGF5RGlzYWJsZWQiKTsKKyAgICBzdGF0aWMgSW1h
Z2UqIG1lZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGxheSIpOworICAg
IHN0YXRpYyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVy
UGF1c2UiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVkID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFwbGF5ZXJQbGF5RGlzYWJsZWQiKTsKIAogICAgIGlmICghaGFzU291cmNl
KG1lZGlhRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5m
by5jb250ZXh0LCByZWN0LCBtZWRpYVBsYXlEaXNhYmxlZCk7CkBAIC0xMDIsMTAgKzEwOSw3NSBA
QCBzdGF0aWMgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEluZgogCiBzdGF0aWMgSW1hZ2UqIGdldE1lZGlhU2xpZGVy
VGh1bWIoKQogewotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3Jt
UmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xp
ZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CiAg
ICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50Um91bmRl
ZFNsaWRlckJhY2tncm91bmQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgaW50IGJvcmRlclJhZGl1
cyA9IHJlY3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9yZGVyUmFkaXVzLCBi
b3JkZXJSYWRpdXMpOworICAgIENvbG9yIHNsaWRlckJhY2tncm91bmRDb2xvciA9IENvbG9yKDI5
LCAyOSwgMjkpOworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5maWxsUm91bmRl
ZFJlY3QocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHNsaWRlckJhY2tncm91bmRD
b2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQor
CitzdGF0aWMgdm9pZCBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KGNvbnN0IEludFJlY3QmIHJl
Y3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBm
bG9hdCBzdGFydEZyYWN0aW9uLCBmbG9hdCB3aWR0aEZyYWN0aW9uKQoreworICAgIGlmIChzdGFy
dEZyYWN0aW9uIDwgMCkKKyAgICAgICAgc3RhcnRGcmFjdGlvbiA9IDA7CisgICAgaWYgKHdpZHRo
RnJhY3Rpb24gPiAxKQorICAgICAgICB3aWR0aEZyYWN0aW9uID0gMTsKKyAgICBmbG9hdCBlbmRG
cmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9uOworICAgIGlmIChlbmRGcmFj
dGlvbiA+IDEpIHsKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IHdpZHRoRnJhY3Rpb24gLSBzdGFy
dEZyYWN0aW9uOworICAgICAgICBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZy
YWN0aW9uOworICAgIH0KKworICAgIC8vIFNldCByZWN0YW5nbGUgdG8gaGlnaGxpZ2h0IHJhbmdl
LgorICAgIEludFJlY3QgaGlnaGxpZ2h0UmVjdCA9IHJlY3Q7CisgICAgaW50IHN0YXJ0T2Zmc2V0
ID0gc3RhcnRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgZW5kT2Zmc2V0ID0gcmVj
dC53aWR0aCgpIC0gZW5kRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaW50IHJhbmdlV2lk
dGggPSB3aWR0aEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGhpZ2hsaWdodFJlY3QubW92
ZShzdGFydE9mZnNldCwgMCk7CisgICAgaGlnaGxpZ2h0UmVjdC5zZXRXaWR0aChyYW5nZVdpZHRo
KTsKKworICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEuCisgICAgaWYg
KGhpZ2hsaWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDYWxj
dWxhdGUgYm9yZGVyIHJhZGl1czsgbmVlZCB0byBhdm9pZCBiZWluZyBzbWFsbGVyIHRoYW4gaGFs
ZiB0aGUgc2xpZGVyIGhlaWdodAorICAgIC8vIGJlY2F1c2Ugb2YgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzLgorICAgIGludCBib3JkZXJSYWRpdXMgPSByZWN0
LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJvcmRlclJhZGl1cywgYm9yZGVyUmFk
aXVzKTsKKworICAgIC8vIENhbGN1bGF0ZSB3aGl0ZS1ncmV5IGdyYWRpZW50LgorICAgIEludFBv
aW50IHNsaWRlclRvcExlZnQgPSBoaWdobGlnaHRSZWN0LmxvY2F0aW9uKCk7CisgICAgSW50UG9p
bnQgc2xpZGVyQm90dG9tTGVmdCA9IHNsaWRlclRvcExlZnQ7CisgICAgc2xpZGVyQm90dG9tTGVm
dC5tb3ZlKDAsIGhpZ2hsaWdodFJlY3QuaGVpZ2h0KCkpOworICAgIENvbG9yIHN0YXJ0Q29sb3Ig
PSBDb2xvcigyMjAsIDIyMCwgMjIwKTsKKyAgICBDb2xvciBlbmRDb2xvciA9IENvbG9yKDI0MCwg
MjQwLCAyNDApOworICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3Jl
YXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOworICAgIGdyYWRpZW50LT5hZGRD
b2xvclN0b3AoMC4wLCBzdGFydENvbG9yKTsKKyAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEu
MCwgZW5kQ29sb3IpOworCisgICAgLy8gRmlsbCBoaWdobGlnaHQgcmVjdGFuZ2xlIHdpdGggZ3Jh
ZGllbnQsIHBvdGVudGlhbGx5IHJvdW5kZWQgaWYgb24gbGVmdCBvciByaWdodCBlZGdlLgorICAg
IGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQp
OworCisgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzICYmIGVuZE9mZnNldCA8IGJv
cmRlclJhZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJl
Y3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICBlbHNlIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJhZGl1cykKKyAgICAg
ICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIHJhZGlpLCBJbnRTaXpl
KDAsIDApLCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgc3RhcnRDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CisgICAgZWxzZSBpZiAoZW5kT2Zmc2V0IDwgYm9yZGVyUmFkaXVzKQorICAgICAgICBj
b250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgSW50U2l6ZSgwLCAwKSwgcmFk
aWksIEludFNpemUoMCwgMCksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdC
KTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGhpZ2hsaWdodFJlY3QpOwor
CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xp
ZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQg
PSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTE1LDIzICsxODcsMTAgQEAgc3Rh
dGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGMKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0
eWxlKCk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7
CiAKLSAgICAvLyBEcmF3IHRoZSBib3JkZXIgb2YgdGhlIHRpbWUgYmFyLgotICAgIC8vIEZJWE1F
OiB0aGlzIHNob3VsZCBiZSBhIHJvdW5kZWQgcmVjdCBidXQgbmVlZCB0byBmaXggR3JhcGhpY3ND
b250ZXh0U2tpYSBmaXJzdC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzAxNDMKLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgY29udGV4dC0+c2V0U2hv
dWxkQW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ry
b2tlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihzdHlsZS0+dmlzaXRlZERlcGVuZGVu
dENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSwgQ29sb3JTcGFjZURldmljZVJHQik7
Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgo
KSk7Ci0gICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAg
ICBjb250ZXh0LT5kcmF3UmVjdChyZWN0KTsKLSAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAg
cGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CiAKICAg
ICAvLyBEcmF3IHRoZSBidWZmZXJlZCByYW5nZS4gU2luY2UgdGhlIGVsZW1lbnQgbWF5IGhhdmUg
bXVsdGlwbGUgYnVmZmVyZWQgcmFuZ2VzIGFuZCBpdCdkIGJlCiAgICAgLy8gZGlzdHJhY3Rpbmcv
J2J1c3knIHRvIHNob3cgYWxsIG9mIHRoZW0sIHNob3cgb25seSB0aGUgYnVmZmVyZWQgcmFuZ2Ug
Y29udGFpbmluZyB0aGUgY3VycmVudCBwbGF5IGhlYWQuCi0gICAgSW50UmVjdCBidWZmZXJlZFJl
Y3QgPSByZWN0OwotICAgIGJ1ZmZlcmVkUmVjdC5pbmZsYXRlKC1zdHlsZS0+Ym9yZGVyTGVmdFdp
ZHRoKCkpOwotCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkVGltZVJhbmdlcyA9IG1l
ZGlhRWxlbWVudC0+YnVmZmVyZWQoKTsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxlbWVu
dC0+ZHVyYXRpb24oKTsKICAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1lZGlhRWxlbWVudC0+Y3Vy
cmVudFRpbWUoKTsKQEAgLTE0NiwyNyArMjA1LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNs
aWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGMK
ICAgICAgICAgZmxvYXQgc3RhcnRGcmFjdGlvbiA9IHN0YXJ0IC8gZHVyYXRpb247CiAgICAgICAg
IGZsb2F0IGVuZEZyYWN0aW9uID0gZW5kIC8gZHVyYXRpb247CiAgICAgICAgIGZsb2F0IHdpZHRo
RnJhY3Rpb24gPSBlbmRGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rpb247Ci0gICAgICAgIGJ1ZmZlcmVk
UmVjdC5tb3ZlKHN0YXJ0RnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lkdGgoKSwgMCk7Ci0gICAg
ICAgIGJ1ZmZlcmVkUmVjdC5zZXRXaWR0aCh3aWR0aEZyYWN0aW9uICogYnVmZmVyZWRSZWN0Lndp
ZHRoKCkpOwotCi0gICAgICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEu
Ci0gICAgICAgIGlmIChidWZmZXJlZFJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICAgICAgSW50UG9pbnQgc2xpZGVyVG9wTGVmdCA9IGJ1ZmZlcmVkUmVjdC5s
b2NhdGlvbigpOwotICAgICAgICBJbnRQb2ludCBzbGlkZXJCb3R0b21MZWZ0ID0gc2xpZGVyVG9w
TGVmdDsKLSAgICAgICAgc2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGJ1ZmZlcmVkUmVjdC5oZWln
aHQoKSk7Ci0KLSAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9IEdyYWRpZW50Ojpj
cmVhdGUoc2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7Ci0gICAgICAgIENvbG9yIHN0
YXJ0Q29sb3IgPSBvYmplY3QtPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eUNvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgwLjAsIHN0YXJ0Q29s
b3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwgQ29sb3Ioc3RhcnRDb2xv
ci5yZWQoKSAvIDIsIHN0YXJ0Q29sb3IuZ3JlZW4oKSAvIDIsIHN0YXJ0Q29sb3IuYmx1ZSgpIC8g
Miwgc3RhcnRDb2xvci5hbHBoYSgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+c2F2ZSgpOwotICAg
ICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShOb1N0cm9rZSk7Ci0gICAgICAgIGNvbnRleHQt
PnNldEZpbGxHcmFkaWVudChncmFkaWVudCk7Ci0gICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGJ1
ZmZlcmVkUmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKworICAgICAgICBwYWlu
dFNsaWRlclJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0eWxlLCBjb250ZXh0LCBzdGFydEZyYWN0aW9u
LCB3aWR0aEZyYWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xODks
NiArMjI5LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVj
dCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW4KICAgICByZXR1cm4gcGFpbnRNZWRp
YUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFTbGlkZXJUaHVtYik7CiB9CiAK
K2NvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGggPSAyNDsKKwogc3RhdGljIGJv
b2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKQEAg
LTE5Niw1NyArMjM4LDM0IEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0OwotICAgIENvbG9yIG9yaWdpbmFsQ29sb3IgPSBjb250ZXh0LT5zdHJva2VDb2xvcigpOwot
ICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlQ29sb3IoQ29sb3I6OndoaXRlLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBS
ZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7CisKKyAgICBwYWludFJvdW5kZWRT
bGlkZXJCYWNrZ3JvdW5kKHJlY3QsIHN0eWxlLCBjb250ZXh0KTsKKworICAgIC8vIENhbGN1bGF0
ZSB2b2x1bWUgcG9zaXRpb24gZm9yIHdoaXRlIGJhY2tncm91bmQgcmVjdGFuZ2xlLgorICAgIGZs
b2F0IHZvbHVtZSA9IG1lZGlhRWxlbWVudC0+dm9sdW1lKCk7CisgICAgaWYgKGlzbmFuKHZvbHVt
ZSkgfHwgdm9sdW1lIDwgMCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHZvbHVtZSA+
IDEpCisgICAgICAgIHZvbHVtZSA9IDE7CisKKyAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9u
IHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHRodW1iLgorICAgIGZsb2F0IHRodW1iQ2Vu
dGVyID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoIC8gMjsKKyAgICBmbG9hdCB6b29tTGV2
ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOworICAgIGZsb2F0IHBvc2l0aW9uV2lkdGggPSB2
b2x1bWUgKiAocmVjdC53aWR0aCgpIC0gKHpvb21MZXZlbCAqIHRodW1iQ2VudGVyKSk7CisgICAg
ZmxvYXQgZmlsbFdpZHRoID0gcG9zaXRpb25XaWR0aCArICh6b29tTGV2ZWwgKiB0aHVtYkNlbnRl
ciAvIDIpOwogCi0gICAgaW50IHggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDI7Ci0gICAg
Y29udGV4dC0+ZHJhd0xpbmUoSW50UG9pbnQoeCwgcmVjdC55KCkpLCAgSW50UG9pbnQoeCwgcmVj
dC55KCkgKyByZWN0LmhlaWdodCgpKSk7CisgICAgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChy
ZWN0LCBzdHlsZSwgY29udGV4dCwgMC4wLCBmaWxsV2lkdGggLyByZWN0LndpZHRoKCkpOwogCi0g
ICAgaWYgKG9yaWdpbmFsQ29sb3IgIT0gQ29sb3I6OndoaXRlKQotICAgICAgICBjb250ZXh0LT5z
ZXRTdHJva2VDb2xvcihvcmlnaW5hbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1i
KFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
SW50UmVjdCYgcmVjdCkKIHsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1
bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRodW1iIik7CisgICAgc3Rh
dGljIEltYWdlKiBtZWRpYVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVk
aWFwbGF5ZXJWb2x1bWVTbGlkZXJUaHVtYiIpOwogICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9u
KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYVZvbHVtZVNsaWRlclRodW1iKTsKIH0KIAot
c3RhdGljIGJvb2wgcGFpbnRNZWRpYVRpbWVsaW5lQ29udGFpbmVyKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsK
LSAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVu
dChvYmplY3QpOwotICAgIGlmICghbWVkaWFFbGVtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OwotICAgICAgICBDb2xvciBvcmlnaW5hbENvbG9y
ID0gY29udGV4dC0+c3Ryb2tlQ29sb3IoKTsKLSAgICAgICAgZmxvYXQgb3JpZ2luYWxUaGlja25l
c3MgPSBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKTsKLSAgICAgICAgU3Ryb2tlU3R5bGUgb3Jp
Z2luYWxTdHlsZSA9IGNvbnRleHQtPnN0cm9rZVN0eWxlKCk7Ci0KLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOwotCi0gICAgICAgIC8vIERyYXcgdGhlIGxlZnQg
Ym9yZGVyIHVzaW5nIENTUyBkZWZpbmVkIHdpZHRoIGFuZCBjb2xvci4KLSAgICAgICAgY29udGV4
dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG9iamVjdC0+c3R5bGUoKS0+Ym9yZGVyTGVmdFdpZHRoKCkp
OwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvYmplY3QtPnN0eWxlKCktPnZpc2l0
ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcikucmdiKCksIENvbG9y
U3BhY2VEZXZpY2VSR0IpOwotICAgICAgICBjb250ZXh0LT5kcmF3TGluZShJbnRQb2ludChyZWN0
LngoKSArIDEsIHJlY3QueSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
cmVjdC54KCkgKyAxLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpKTsKLQotICAgICAgICAvLyBE
cmF3IHRoZSByaWdodCBib3JkZXIgdXNpbmcgQ1NTIGRlZmluZWQgd2lkdGggYW5kIGNvbG9yLgot
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Mob2JqZWN0LT5zdHlsZSgpLT5ib3Jk
ZXJSaWdodFdpZHRoKCkpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvYmplY3Qt
PnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29s
b3IpLnJnYigpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0xp
bmUoSW50UG9pbnQocmVjdC54KCkgKyByZWN0LndpZHRoKCkgLSAxLCByZWN0LnkoKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0g
MSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3Iob3JpZ2luYWxDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvcmlnaW5hbFRoaWNrbmVzcyk7Ci0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZVN0eWxlKG9yaWdpbmFsU3R5bGUpOwotICAgIH0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQogc3RhdGljIGJvb2wgcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50
TWVkaWFFbGVtZW50KG9iamVjdCk7CkBAIC0yNzQsOCArMjkzLDYgQEAgYm9vbCBSZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxl
bWVudFR5cGUKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIob2JqZWN0LCBw
YWludEluZm8sIHJlY3QpOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYjoKICAgICAg
ICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihvYmplY3QsIHBhaW50SW5mbywg
cmVjdCk7Ci0gICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOgotICAgICAgICByZXR1cm4g
cGFpbnRNZWRpYVRpbWVsaW5lQ29udGFpbmVyKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAg
ICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOgogICAgIGNhc2UgTWVkaWFFeGl0RnVs
bHNjcmVlbkJ1dHRvbjoKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9u
KG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKQEAgLTI4Myw2ICszMDAsNyBAQCBib29sIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZQogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvbjoKICAgICBjYXNlIE1l
ZGlhU2Vla0ZvcndhcmRCdXR0b246CiAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cjoKKyAgICBjYXNlIE1lZGlhVGltZWxpbmVDb250YWluZXI6CiAgICAgY2FzZSBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheToKICAgICBjYXNlIE1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk6CiAgICAg
Y2FzZSBNZWRpYUNvbnRyb2xzUGFuZWw6CkBAIC0zMDEsMjQgKzMxOSw3NCBAQCBib29sIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorY29uc3QgaW50IG1lZGlhU2xp
ZGVyVGh1bWJXaWR0aCA9IDMyOworY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAy
NDsKK2NvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iSGVpZ2h0ID0gMjQ7CisKIHZvaWQg
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSogc3R5bGUpCiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1i
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFTbGlkZXJUaHVtYiIpOwotICAgIHN0YXRpYyBJbWFn
ZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhVm9sdW1l
U2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CisgICAgc3RhdGljIEltYWdl
KiBtZWRpYVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJW
b2x1bWVTbGlkZXJUaHVtYiIpOworICAgIGludCB3aWR0aCA9IDA7CisgICAgaW50IGhlaWdodCA9
IDA7CiAKICAgICBJbWFnZSogdGh1bWJJbWFnZSA9IDA7Ci0gICAgaWYgKHN0eWxlLT5hcHBlYXJh
bmNlKCkgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpCisgICAgaWYgKHN0eWxlLT5hcHBlYXJhbmNl
KCkgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpIHsKICAgICAgICAgdGh1bWJJbWFnZSA9IG1lZGlh
U2xpZGVyVGh1bWI7Ci0gICAgZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclRodW1iUGFydCkKKyAgICAgICAgd2lkdGggPSBtZWRpYVNsaWRlclRodW1iV2lk
dGg7CisgICAgICAgIGhlaWdodCA9IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQ7CisgICAgfSBlbHNl
IGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KSB7
CiAgICAgICAgIHRodW1iSW1hZ2UgPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iOworICAgICAgICB3
aWR0aCA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aDsKKyAgICAgICAgaGVpZ2h0ID0gbWVk
aWFWb2x1bWVTbGlkZXJUaHVtYkhlaWdodDsKKyAgICB9CiAKICAgICBmbG9hdCB6b29tTGV2ZWwg
PSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGlmICh0aHVtYkltYWdlKSB7Ci0gICAgICAg
IHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT53aWR0
aCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsKLSAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5n
dGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT5oZWlnaHQoKSAqIHpvb21MZXZlbCksIEZp
eGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih3
aWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oaGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKICAgICB9
CiB9CiAKK3N0YXRpYyBTdHJpbmcgZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShmbG9h
dCB0aW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAg
ICAgICB0aW1lID0gMDsKKyAgICBpZiAoIWlzZmluaXRlKGR1cmF0aW9uKSkKKyAgICAgICAgZHVy
YXRpb24gPSAwOworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQg
aG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMg
LyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgLy8gZHVyYXRpb24gZGVmaW5l
cyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGltZSBpcyByZW5kZXJlZAorICAgIGludCBkdXJhdGlv
blNlY3MgPSAoaW50KWZhYnNmKGR1cmF0aW9uKTsKKyAgICBpbnQgZHVyYXRpb25Ib3VycyA9IGR1
cmF0aW9uU2VjcyAvICg2MCAqIDYwKTsKKyAgICBpbnQgZHVyYXRpb25NaW5zID0gKGR1cmF0aW9u
U2VjcyAvIDYwKSAlIDYwOworCisgICAgaWYgKGR1cmF0aW9uSG91cnMgfHwgaG91cnMpCisgICAg
ICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/
ICItIiA6ICIiKSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIGlmIChkdXJhdGlvbk1p
bnMgPiA5KQorICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAyZDolMDJkIiwgKHRp
bWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKKworICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQiLCAodGltZSA8IDAgPyAiLSIgOiAiIiksIG1pbnV0ZXMs
IHNlY29uZHMpOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKQoreworICAgIHJldHVybiBmb3JtYXRDaHJv
bWl1bU1lZGlhQ29udHJvbHNUaW1lKHRpbWUsIHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQg
Y3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1
bU1lZGlhQ29udHJvbHNUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBS
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdU
aW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9y
bWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShjdXJyZW50VGltZSAtIGR1cmF0aW9uLCBkdXJh
dGlvbik7Cit9CisKICNlbmRpZiAgLy8gI2lmIEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5oCmluZGV4IDlhZjkzOTYwZmZlZmNjZTk5YWYxMjY0Mzg0ZWQz
MzQxNmEyZDlmNjEuLmE2N2E0MTM5YTZkNDBhM2QzNjQyOTk2ODVmMjE4ZjNlMGI2NzdmYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtLmgKQEAgLTM4LDYgKzM4LDEwIEBAIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFy
dChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKik7CisgICAgc3RhdGljIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRy
b2xzVGltZShmbG9hdCB0aW1lKTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJv
bHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pOworICAgIHN0
YXRpYyBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKTsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA4MTY3YmE4MmY4ZmMxNmQw
Zjg4OTcxMWU0MmZmZmFjNGU5NDU4OTk5Li41ZTU2YjZkZjUwZWNmYjAzZTVkMTEyOWFkZjk2Nzc0
N2YzYTNlNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTk4
LDYgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0
ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNs
aWRlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYUNv
bnRyb2xzRmFkZUluRHVyYXRpb24oKSB7IHJldHVybiAwLjE7IH0KICAgICB2aXJ0dWFsIGRvdWJs
ZSBtZWRpYUNvbnRyb2xzRmFkZU91dER1cmF0aW9uKCkgeyByZXR1cm4gMC4zOyB9CiAgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApp
bmRleCAyYjRjOGM2MzVjYzIyM2MxODNiNTE4YjEyY2VhZWVmNTJmYWIwYzQzLi5kM2IzNjAxMDcy
N2Y3OTdlNTg1NTY2OTAxNTU4NTk5ZWQxODkzMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFN
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICB2aXJ0dWFsIFN0cmluZyBleHRyYUZ1bGxTY3JlZW5TdHlsZVNoZWV0KCk7CkBAIC01NSw2ICs1
NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbnRQb2ludCB2b2x1bWVTbGlkZXJPZmZz
ZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqLCBjb25zdCBJbnRTaXplJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRs
aW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29u
c3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZs
b2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CisgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZs
b2F0IGR1cmF0aW9uKSBjb25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0
TW9kZUZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCmluZGV4IGE3NzgyMjhjNTUyMmQ2YzAyOTQy
NzFlZjM3YTliNDZjNDBjZWQ1NGYuLjlmNGFhOTEwN2FmOTc5NWQwMDNmNWUzNzlkYTQ4M2JkNTQx
MTNmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTWFjLm1tCkBAIC0xNzMsMTEgKzE3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYzo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
CiAgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRy
b2xzUGFydChNZWRpYVNsaWRlciwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogfQogCi1ib29s
IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQotewotICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBh
aW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFUaW1lbGluZUNvbnRhaW5lciwgb2JqZWN0LCBwYWlu
dEluZm8sIHJlY3QpOwotfQotCiBTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6ZXh0cmFN
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiB7CiAgICAgcmV0dXJuIFN0cmluZyhtZWRpYUNvbnRy
b2xzQ2hyb21pdW1Vc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVkaWFDb250cm9sc0Nocm9t
aXVtVXNlckFnZW50U3R5bGVTaGVldCkpOwpAQCAtMjI4LDYgKzIyMywyMSBAQCBJbnRQb2ludCBS
ZW5kZXJUaGVtZUNocm9taXVtTWFjOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihS
ZW5kZXJCb3gqIG11dAogewogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zm
c2V0RnJvbU11dGVCdXR0b24obXV0ZUJ1dHRvbkJveCwgc2l6ZSk7CiB9CisKK1N0cmluZyBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKSBj
b25zdAoreworICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1l
ZGlhQ29udHJvbHNUaW1lKHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9u
KTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJv
bHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QK
K3sKKyAgICByZXR1cm4gUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9s
c1JlbWFpbmluZ1RpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9uKTsKK30KICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAppbmRleCA3YWQyYzEyYzM1MDQxZDgxOWUzN2UzYWQ5
YjY1YWJkMjdkYjYzYjg1Li5jZTFjZWUwODk0Y2IzYTYyMjE5NDc3ZGQ0ZmE1MDliZGI1ZTk2ZjVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5jcHAKQEAgLTM3OCwxOCArMzc4LDYgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
U2tpYTo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBtYWduaWYK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBh
aW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotI2lmIEVOQUJMRShW
SURFTykKLSAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlh
Q29udHJvbHNQYXJ0KE1lZGlhVGltZWxpbmVDb250YWluZXIsIG9iamVjdCwgcGFpbnRJbmZvLCBy
ZWN0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Ci0gICAgVU5VU0VEX1BBUkFN
KHBhaW50SW5mbyk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBmYWxzZTsK
LSNlbmRpZgotfQotCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhU2xp
ZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKQEAgLTQ3MSw2ICs0
NTksMzUgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYU11dGVCdXR0
b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFAKICNlbmRpZgogfQogCitTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklE
RU8pCisgICAgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xz
VGltZSh0aW1lKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHRpbWUpOworI2VuZGlmCit9CisK
K1N0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUs
IGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworI2lmIEVOQUJMRShWSURFTykKKyAgICBSZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShjdXJy
ZW50VGltZSwgZHVyYXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY3VycmVudFRpbWUp
OworICAgIFVOVVNFRF9QQVJBTShkdXJhdGlvbik7CisjZW5kaWYKK30KKworU3RyaW5nIGZvcm1h
dE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJh
dGlvbikgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShjdXJyZW50VGltZSwg
ZHVyYXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY3VycmVudFRpbWUpOworICAgIFVO
VVNFRF9QQVJBTShkdXJhdGlvbik7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJUaGVtZUNocm9t
aXVtU2tpYTo6YWRqdXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBXZWJDb3JlOjpFbGVtZW50KikgY29uc3QKIHsKICAgICAvLyBIZWlnaHQgaXMgbG9j
a2VkIHRvIGF1dG8gb24gYWxsIGJyb3dzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCAyODk4OTNlMzEzMTc4MjAxNGYx
MzUwYjc0NjU2MDk4NmY2ZGYzY2I3Li40NTdiMTA1ZjM4ZmE3OThkNzU5NjJmZGVmNGJhYzU2ODZm
ZTg4OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaApAQCAtOTEsNyArOTEsNiBAQCBjbGFzcyBSZW5kZXJUaGVtZUNocm9taXVt
U2tpYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RT
ZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUq
LCBFbGVtZW50KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFNlYXJjaEZpZWxk
UmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFDb250cm9sc0JhY2tncm91
bmQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAg
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBh
aW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVt
YlNpemUoUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CkBAIC05OSw2ICs5OCw5IEBAIGNs
YXNzIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3Qq
LCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAg
ICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNv
bnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRp
bWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBNZW51TGlzdCByZWZl
cnMgdG8gYW4gdW5zdHlsZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3aXRob3V0CiAg
ICAgICAgIC8vIGJhY2tncm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5kIE1lbnVMaXN0QnV0
dG9uIHJlZmVycyB0byBhIHN0eWxlZApAQCAtMTI3LDYgKzEyOSw3IEBAIGNsYXNzIFJlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgICAgIC8vIE1lZGlhIGNvbnRyb2xzCiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25E
aXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KKyAgICAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgICAgICAvLyBQcm92aWRlIGEgd2F5IHRv
IHBhc3MgdGhlIGRlZmF1bHQgZm9udCBzaXplIGZyb20gdGhlIFNldHRpbmdzIG9iamVjdApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDA4YWRjODM2OWUzNTdmNzU1MTU1M2YyM2RmYTc1NDIxZGRmNWRmNGQuLmQwOWQ5NjFlMTM3
NGJmODgyOGYwODRiOGFhMjM5OWI3NjE4ZTk5NzggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAx
Mi0wNi0wNSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIENoYW5nZSB0aGUgdm9sdW1lIHNsaWRlciB0byBob3Jpem9udGFsIHJlbmRlcmluZyBmb3Ig
Q2hyb21lIHZpZGVvIGNvbnRyb2xzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBh
IHZpc3VhbCB1cGRhdGUuIFRoZSB2b2x1bWUgc2xpZGVyIGlzIGluY2x1ZGVkIGludG8KKyAgICAg
ICAgdGhlIGNvbnRyb2xzIHdpdGggaG9yaXpvbnRhbCByZW5kZXJpbmcsIHRoZSB2b2x1bWUgc2xp
ZGVyIGNvbnRhaW5lciBpcyByZW1vdmVkLiBUaGUgdmlzdWFsCisgICAgICAgIHVwZGF0ZSBpdHNl
bGYgaXMgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFRlbXBvcmFyaWx5IHNraXAgdGVzdHMgcmVsYXRl
ZCB0byB2b2x1bWUgY29udHJvbHMgcmVuZGVyaW5nIGZvciBDaHJvbWl1bS4KKworMjAxMi0wNS0y
OCAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIElu
dHJvZHVjZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3IgQ2hyb21pdW0gdmlkZW8gY29udHJvbHMu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzY4Mwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBm
dWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwsIG1lZGlhL21lZGlhLWNvbnRy
b2xzLWludmFsaWQtdXJsLmh0bWwgYW5kCisgICAgICAgIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1y
ZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwgdG8gZGVhbCB3aXRoIHRoZSBuZXcg
ZW5jbG9zdXJlCisgICAgICAgIGRpdiBpbiBDaHJvbWl1bSBjb250cm9scyBhbmQgdXNlIHRoZSBt
ZWRpYUNvbnRyb2xzRWxlbWVudCgpIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIGVsZW1lbnRzCisg
ICAgICAgIGluc2lkZSB0aGUgY29udHJvbHMuCisgICAgICAgIEZhaWwgdmlkZW8gY29udHJvbHMg
dGVzdHMgaW4gdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBmdWxsc2NyZWVuL3ZpZGVv
LWNvbnRyb2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAgKiBmdWxs
c2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWw6IFVzZSBtZWRpYUNvbnRyb2xzRWxl
bWVudCBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICogbWVkaWEvbWVkaWEtY29udHJvbHMtaW52
YWxpZC11cmwuaHRtbDogVXNlIG1lZGlhQ29udHJvbHNFbGVtZW50IGhlbHBlciBmdW5jdGlvbi4K
KyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMt
bm90LXNldC5odG1sOiBIZWlnaHQgaXMgcHJvdmlkZWQgYnkgZW5jbG9zdXJlIGVsZW1lbnQuCisg
ICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogRmFpbCB2aWRlbyBj
b250cm9scyB0ZXN0cy4KKwogMjAxMi0wNi0xMCAgWW9zaGlmdW1pIElub3VlICA8eW9zaW5AY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gSW50cm9kdWNlIERlY2ltYWwgYmVoaW5kIHRo
ZSBJbnB1dE51bWJlciB0eXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3Zp
ZGVvLWNvbnRyb2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CmluZGV4IGYxOTJhMzkxNzNk
NTRkMWQ5ZjUxYjE0MWRhYTQxZWJlYTFmMjhmMmEuLjI2MzQ4YmI3ZTliZTg1ZGQ0N2UzODliNTBl
NjRjM2EwYzRlMDcyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8t
Y29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CkBAIC0yLDcgKzIsNyBAQCBU
aGlzIHRlc3RzIHRoYXQgdGhlIHZpZGVvIGVsZW1lbnQncyAiY29udHJvbHMiIGF0dHJpYnV0ZSBp
cyBvdmVycmlkZGVuIGluIGZ1bGwgcwogCiBFVkVOVCh3ZWJraXRmdWxsc2NyZWVuY2hhbmdlKQog
RVhQRUNURUQgKHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykgIT0gJ251
bGwnKSBPSwotRVhQRUNURUQgKHBhbmVsID0gc2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hp
bGQgIT0gJ251bGwnKSBPSworRVhQRUNURUQgKHBhbmVsID0gbWVkaWFDb250cm9sc0VsZW1lbnQo
c2hhZG93Um9vdC5maXJzdENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCcpICE9
ICdudWxsJykgT0sKIEVYUEVDVEVEIChpbnRlcm5hbHMuc2hhZG93UHNldWRvSWQocGFuZWwpID09
ICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsJykgT0sKIEVYUEVDVEVEIChkb2N1bWVudC5k
ZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHBhbmVsKVsnZGlzcGxheSddICE9ICdub25lJykg
T0sKIEVYUEVDVEVEIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHBhbmVs
KVsnaGVpZ2h0J10gPj0gJzIwcHgnKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZnVsbHNj
cmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sIGIvTGF5b3V0VGVzdHMvZnVsbHNjcmVl
bi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sCmluZGV4IDcyMTRiYmEwN2ZkMzA3YzEyMjVm
MmZlNWFmMWIzOGE1N2RiMjA0MjEuLjQ3ZmE0ZmU0MWI0OTAxMDgxMmNhYzZhMjA2OTZhZGE0YmJi
ZjJlOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMt
b3ZlcnJpZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xz
LW92ZXJyaWRlLmh0bWwKQEAgLTIsNiArMiw3IEBACiAgICAgPHA+VGhpcyB0ZXN0cyB0aGF0IHRo
ZSB2aWRlbyBlbGVtZW50J3MgImNvbnRyb2xzIiBhdHRyaWJ1dGUgaXMgb3ZlcnJpZGRlbiBpbiBm
dWxsIHNjcmVlbiBtb2RlLCBhbmQgdGhhdCB0aGUgY29udHJvbHMgYXJlIGNvcnJlY3RseSBoaWRk
ZW4gdXBvbiBleGl0aW5nIGZ1bGwgc2NyZWVuLiAgUHJlc3MgYW55IGtleSB0byBjb250aW51ZS48
L3A+CiAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgd2lkdGg9IjMwMCI+PC92aWRlbz4KICAgICA8c2Ny
aXB0IHNyYz0iZnVsbC1zY3JlZW4tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9
Ii4uL21lZGlhL21lZGlhLWNvbnRyb2xzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0PgogICAg
ICAgICB2YXIgY2FsbGJhY2s7CiAgICAgICAgIHZhciBzaGFkb3dSb290OwpAQCAtMTksNyArMjAs
NyBAQAogICAgICAgICB2YXIgdmlkZW9FbnRlcmVkRnVsbFNjcmVlbiA9IGZ1bmN0aW9uKCkgewog
ICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAgICAgICB0ZXN0
RXhwZWN0ZWQoInNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRlbykiLCBudWxs
LCAiIT0iKTsKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInBhbmVsID0gc2hhZG93Um9v
dC5maXJzdENoaWxkLmZpcnN0Q2hpbGQiLCBudWxsLCAiIT0iKTsKKyAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoInBhbmVsID0gbWVkaWFDb250cm9sc0VsZW1lbnQoc2hhZG93Um9vdC5maXJz
dENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCcpIiwgbnVsbCwgIiE9Iik7CiAg
ICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJpbnRlcm5hbHMuc2hhZG93UHNldWRvSWQocGFu
ZWwpIiwgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwiKTsKICAgICAgICAgICAgICAgICB0
ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5bGUocGFuZWwp
WydkaXNwbGF5J10iLCAnbm9uZScsICIhPSIpOwogICAgICAgICAgICAgICAgIHRlc3RFeHBlY3Rl
ZCgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShwYW5lbClbJ2hlaWdodCdd
IiwgJzIwcHgnLCAiPj0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNv
bnRyb2xzLWludmFsaWQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1jb250cm9s
cy1pbnZhbGlkLXVybC5odG1sCmluZGV4IDgyODY1ZWRkZWU3MmNiMjE1MGRhODkxNjg2NjYyMjAz
MGJhZGVkNzQuLmNkZjY0Y2ZkNGM1YzEzYmNlZmY2ZjhmMjNiYzY3NGVhMmY5ZDUzZGQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11cmwuaHRtbApA
QCAtMyw2ICszLDcgQEAKICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtZmls
ZS5qcz48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5qcz48L3Njcmlw
dD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtY29udHJvbHMuanM+PC9zY3JpcHQ+CiAgICAg
ICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICB2YXIgdmlkZW87CiAKQEAgLTE4LDI5ICsxOSwxNSBA
QAogCiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRUaW1lTGluZVZhbHVlKCkKICAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICB2YXIgdGltZWxpbmVDb250YWluZXI7Ci0gICAgICAgICAgICAg
ICAgdmFyIHRpbWVsaW5lVmFsdWU7CisgICAgICAgICAgICAgICAgdmFyIHRpbWVsaW5lOworICAg
ICAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jvb3QodmlkZW8p
OwogCi0gICAgICAgICAgICAgICAgdmFyIGNvbnRyb2xzU2hhZG93ID0gaW50ZXJuYWxzLnNoYWRv
d1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKLSAgICAgICAgICAgICAgICBmb3Ig
KGNoaWxkID0gY29udHJvbHNTaGFkb3cuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxkID0gY2hpbGQu
bmV4dFNpYmxpbmcpCi0gICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMuc2hhZG93UHNl
dWRvSWQoY2hpbGQpID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5l
ciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVsaW5lQ29udGFpbmVyID0gY2hpbGQ7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQor
ICAgICAgICAgICAgICAgIHRpbWVsaW5lID0gbWVkaWFDb250cm9sc0VsZW1lbnQoc2hhZG93Um9v
dC5maXJzdENoaWxkLmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5l
Jyk7CiAKLSAgICAgICAgICAgICAgICBpZighdGltZWxpbmVDb250YWluZXIpCi0gICAgICAgICAg
ICAgICAgICAgIHRocm93ICJGYWlsZCB0byBmaW5kIC13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZWxpbmUtY29udGFpbmVyIjsKLQotICAgICAgICAgICAgICAgIGZvciAoY2hpbGQgPSB0aW1lbGlu
ZUNvbnRhaW5lci5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0U2libGluZykK
LSAgICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5zaGFkb3dQc2V1ZG9JZChjaGlsZCkg
PT0gIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiKSB7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICB0aW1lbGluZVZhbHVlID0gY2hpbGQudmFsdWU7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYo
IXRpbWVsaW5lQ29udGFpbmVyKQorICAgICAgICAgICAgICAgIGlmKCF0aW1lbGluZSkKICAgICAg
ICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxkIHRvIGZpbmQgLXdlYmtpdC1tZWRpYS1jb250cm9s
cy10aW1lbGluZSI7CiAKLSAgICAgICAgICAgICAgICByZXR1cm4gdGltZWxpbmVWYWx1ZTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdGltZWxpbmUudmFsdWU7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMt
bm90LXNldC5odG1sCmluZGV4IDI5ZDVjODU3MWY2ODY4NzUzZDliNTIwM2IxZTEyZTkzYTI0NTYx
ODUuLjIyZWFmZTNlOTU0NDYzNTUzMWUwZDIzOWFlNGFiNzNhMzNlMjcxOGIgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25hcC10by1saW5l
cy1ub3Qtc2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJl
bmRlcmluZy1zbmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbApAQCAtODksNyArODksMTAgQEAKICAg
ICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAgICAgICAgIHRlc3RUcmFjayA9IGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7CiAgICAgICAgICAgICB2aWRlby5zcmMgPSBm
aW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLSAgICAgICAgICAgIGNv
bnRyb2xzUGFuZWxFbGVtZW50ID0gbWVkaWFDb250cm9sc0VsZW1lbnQoaW50ZXJuYWxzLnNoYWRv
d1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsJyk7
CisKKyAgICAgICAgICAgIC8vIEluIENocm9taXVtIGl0IGlzIHRoZSBlbmNsb3N1cmUgZWxlbWVu
dCwgd2hpY2ggcHJvdmlkZXMgdGhlIGNvbnRyb2xzIGhlaWdodCwgb3RoZXJ3aXNlIHRoZSBwYW5l
bDsKKyAgICAgICAgICAgIC8vIGJvdGggYXJlIHRoZSBzZWNvbmQgY2hpbGQgaW4gdGhlIHNoYWRv
dyBET00uCisgICAgICAgICAgICBjb250cm9sc1BhbmVsRWxlbWVudCA9IGludGVybmFscy5zaGFk
b3dSb290KHZpZGVvKS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CiAKICAgICAgICAgICAgIHdhaXRG
b3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICBj
dWVEaXNwbGF5Q29udGFpbmVyID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlkZW8pOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNzQ3
ZTg5OWZiMzhjNjYwNzBhYjMyNmMxNWYyNmY3OTIzYjFkNWZkNi4uZGU3YzE5NDc5NGVhMjIzMDhh
M2VhMDY1ZTY3YmU5ZGYyNGZmYWY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC03NzEsNiArNzcxLDExIEBAIFdPTlRGSVggU0tJUCA6
IG1lZGlhL3ZpZGVvLXNpemUtaW50cmluc2ljLXNjYWxlLmh0bWwgPSBQQVNTCiAvLyBEb2Vzbid0
IGFwcGx5IHRvIENocm9taXVtIChRdWlja1RpbWUtc3BlY2lmaWMgYmVoYXZpb3IpCiBXT05URklY
IFNLSVAgOiBtZWRpYS92aWRlby1kb2VzLW5vdC1sb29wLmh0bWwgPSBUSU1FT1VUCiAKKy8vIERv
ZXNuJ3QgYXBwbHkgdG8gQ2hyb21pdW0gYW55IGxvbmdlciAtIHZvbHVtZSBzbGlkZXIgaXMgaW5s
aW5lIHdpdGggdmlkZW8gY29udHJvbHMuCitXT05URklYIFNLSVAgOiBtZWRpYS92aWRlby12b2x1
bWUtc2xpZGVyLmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAgOiBtZWRpYS9tZWRpYS12b2x1bWUt
c2xpZGVyLXJlbmRlcmVkLWJlbG93Lmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAgOiBtZWRpYS9t
ZWRpYS12b2x1bWUtc2xpZGVyLXJlbmRlcmVkLW5vcm1hbC5odG1sID0gRkFJTAorCiAvLyBRdWlj
a1RpbWUgcmVmZXJlbmNlIG1vdmllcyBub3Qgc3VwcG9ydGVkLgogV09OVEZJWCBTS0lQIDogaHR0
cC90ZXN0cy9tZWRpYS92aWRlby1jcm9zcy1zaXRlLmh0bWwgPSBQQVNTCiAKQEAgLTI5NjYsNiAr
Mjk3MSwyOCBAQCBCVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1pcy1yZWFjaGFi
bGUuaHRtbCA9IFRFWFQKIEJVR1dLODE0MDIgV0lOIDogbWVkaWEvdHJhY2svdHJhY2stYWN0aXZl
LWN1ZXMuaHRtbCA9IFBBU1MgVElNRU9VVAogQlVHV0s4Mzg4MiA6IG1lZGlhL3RyYWNrL3RyYWNr
LW1vZGUuaHRtbCA9IFBBU1MgVEVYVCBUSU1FT1VUCiAKKy8vIE5lZWQgcmViYXNlbGluZS4KK0JV
R1dLODc2ODMgOiBmYXN0L2xheWVycy92aWRlby1sYXllci5odG1sID0gRkFJTAorQlVHV0s4NzY4
MyA6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tc3RhY2tpbmctY29udGV4dC5odG1sID0gRkFJTAor
QlVHV0s4NzY4MyA6IG1lZGlhL2F1ZGlvLWNvbnRyb2xzLXJlbmRlcmluZy5odG1sID0gRkFJTAor
QlVHV0s4NzY4MyA6IG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMg
OiBtZWRpYS9jb250cm9scy1hZnRlci1yZWxvYWQuaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBt
ZWRpYS9jb250cm9scy1sYXlvdXQtZGlyZWN0aW9uLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDog
bWVkaWEvY29udHJvbHMtc3RyaWN0Lmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvY29u
dHJvbHMtc3R5bGluZy5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2NvbnRyb2xzLXdp
dGhvdXQtcHJlbG9hZC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL21lZGlhLWNvbnRy
b2xzLWNsb25lLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvbWVkaWEtZG9jdW1lbnQt
YXVkaW8tcmVwYWludC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3ZpZGVvLWNvbnRy
b2xzLXJlbmRlcmluZy5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3ZpZGVvLWRpc3Bs
YXktdG9nZ2xlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tZW1wdHktc291
cmNlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tbm8tYXVkaW8uaHRtbCA9
IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS92aWRlby1wbGF5aW5nLWFuZC1wYXVzZS5odG1sID0g
RkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbCA9IEZBSUwK
K0JVR1dLODc4MzUgOiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLXJhbmdlLWNvbnRh
aW5zLWN1cnJlbnRUaW1lLmh0bWwgPSBGQUlMCisKK0JVR1dLNzIyNzEgU05PV0xFT1BBUkQgREVC
VUcgOiBmYXN0L2RvbS9ub2RlLWl0ZXJhdG9yLXJlZmVyZW5jZS1ub2RlLW1vdmVkLWNyYXNoLmh0
bWwgPSBQQVNTIENSQVNICisKIEJVR1dLNzIzNzYgV0lOIDogZmFzdC9mb3Jtcy9maWxlL2lucHV0
LWZpbGUtbGFiZWwuaHRtbCA9IFRFWFQgUEFTUwogCiAvLyBBbmltYXRpb25zIHRlc3RzIHVzZSBh
biBpbmhlcmVudGx5LWZsYWt5IHRpbWVyLWJhc2VkIGRlc2lnbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146840</attachid>
            <date>2012-06-11 06:04:22 -0700</date>
            <delta_ts>2012-06-12 01:18:46 -0700</delta_ts>
            <desc>Full patch for layout tests - with skia fixes from test</desc>
            <filename>bug-88724-20120611230419.patch</filename>
            <type>text/plain</type>
            <size>76029</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmU5MWY2ZTUyY2ZlMGUw
ZWQ2OTMyMjM4NWRkMzdhMWVhYjRkNzgzMC4uMmQzOWFkZmFiNWU0YzdkODA0MWQyODRhZDEzMjM0
YTQ5MjYxZjE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4NyBAQAorMjAxMi0wNi0xMCAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSB0
aGUgdGltZSBkaXNwbGF5IG9mIHRoZSBuZXcgQ2hyb21pdW0gbWVkaWEgY29udHJvbHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODcyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
ZmluYWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAg
ICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRl
LiBUaGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdp
dHMgdGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAg
ICAgIGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRl
b3MsIHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3Rh
cnRlZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAg
ICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6Cisg
ICAgICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1
cnJlbnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAg
ICAgIEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAg
ICAgICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxs
eSBoaWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAg
IEFkZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAg
QWRkIHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhl
IGR1cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAg
ICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9u
IGRpc3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0
aW9uIG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJl
bWFpbmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRp
YUNvbnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBj
b25kaXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBX
aGVuIGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0
aGUgZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAg
Rm9ybWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUg
Y3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgor
ICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRp
bWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFD
b250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0
aGUgdGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAg
ICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgor
ICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3Ig
Q2hyb21pdW0gU2tpYS4KKworMjAxMi0wNi0wOSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSByYW5nZSBzbGlkZXJzIHJlbmRlcmluZyBm
b3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBvZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRy
b2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGluZWQgdGVzdHMu
CisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlz
dWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1cGRhdGVzIHRvIHRoZQorICAgICAgICBy
ZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9yIHRoZSBwbGF5YmFjayBwb3NpdGlvbiBh
bmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAgICAgICAgY3JlYXRpb24gb2YgYSBz
aGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxlIHRoZSByYW5nZSBzbGlkZXJzIHZpYSBD
U1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhlIHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0
aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNs
aWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRl
ciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjot
d2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAgIEFkanVzdCB0aGUgc3R5bGluZyBv
ZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIHNsaWRlciB0aHVtYiBz
aGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIG1lZGlh
IHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NT
IHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBB
ZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIg
dGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250YWluZXIuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRv
IGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMgaW4gYSBkYXJrIGNvbG9yLgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodCk6CisgICAgICAgIEFkZCBm
dW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSByZWdpb24gb24gdGhlIHNsaWRlcnMs
IHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBpdHMgZW5kcy4KKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQg
YW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHBsYXliYWNrIHBvc2l0aW9uIHNs
aWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXIpOgorICAgICAgICBVcGRh
dGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZv
bHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5j
dGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcgb2YgdGhlIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODgyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChmaW5hbCBwYXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVk
IHRlc3RzKQorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2Vpdmlu
ZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMgcGF0Y2ggaW5jbHVkZXMgQ1NTIGNoYW5nZXMsCisgICAg
ICAgIHRoZSByZW1vdmFsIG9mIHRoZSBub3cgbm8gbG9uZ2VyIG5lZWRlZCBjb250cm9scyBiYWNr
Z3JvdW5kIGRpdiwgYW5kIHRoZSBpbnRyb2R1Y3Rpb24gb2YKKyAgICAgICAgbmV3IGltYWdlcyBm
b3IgdGhlIGJ1dHRvbnMuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
czoKKyAgICAgICAgKGF1ZGlvKToKKyAgICAgICAgQWRqdXN0IGhlaWdodCBvZiBhdWRpbyBjb250
cm9scy4KKyAgICAgICAgKDo6LXdlYmtpdC1tZWRpYS1jb250cm9scyk6CisgICAgICAgIFVzZSBm
bGV4Ym94IG9uIG1lZGlhIGNvbnRyb2xzIHNoYWRvdyBET00uCisgICAgICAgIChhdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWVuY2xvc3VyZSk6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIG1heC13aWR0aCwgdGV4dC1p
bmRlbnQgYW5kIGJveC1zaXppbmcsIGFuZCByZXNldCBwYWRkaW5nIHRvIDAuCisgICAgICAgICh2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUpOgorICAgICAgICBVc2UgNXB4
IHBhZGRpbmcgb25seSBmb3IgdmlkZW8gY29udHJvbHMgYW5kIGFkanVzdCBoZWlnaHQgYWNjb3Jk
aW5nbHkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICBVc2UgZmxleGJveCBv
biBwYW5lbCwgYWRqdXN0IGJvdHRvbSBhbGlnbm1lbnQsIGhlaWdodCwgYmFja2dyb3VuZCBjb2xv
ciBhbmQgYm9yZGVyIHJhZGl1cy4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
bik6CisgICAgICAgIERpc3BsYXkgYnV0dG9ucyBpbmxpbmUgd2l0aCBmaXhlZCB3aWR0aCBhbmQg
aGVpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLCBubyBwYWRkaW5nIGFuZAorICAgICAgICA2cHgg
c3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50ICh0aGlzIHdpbGwgYmUgMTVweCBpbmNsIHRo
ZSBzcGFjZSBpbiB0aGUgaW1hZ2UpLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0
dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlubGluZSB3aXRoIGZpeGVkIHdpZHRoIGFu
ZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5vIHBhZGRpbmcgYW5kCisgICAgICAgIDlw
eCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGluY2wg
dGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBEaXNwbGF5IHRleHQgYXMgYmxvY2ss
IHdpdGhvdXQgYnJvZGVyLCBhZGp1c3RlZCBoZWlnaHQsIGZvbnQtZmFtaWx5LCBmb250LXNpemUg
YW5kIDlweCBzcGFjZQorICAgICAgICB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2ls
bCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUpOgorICAgICAgICBBZGp1c3QgaGVpZ2h0LCBwYWRkaW5nLCBiYWNrZ3Jv
dW5kLWNvbG9yLCBtaW4td2RpdGggYW5kIDE1cHggc3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVt
ZW50LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlcik6CisgICAgICAg
IEFkanVzdCBoZWlnaHQsIG1heC0gYW5kIG1pbi13aWR0aCwgYmFja2dyb3VuZC1jb2xvciBhbmQg
MTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQuCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMg
bm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94Lgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vz
c2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5l
Y2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAg
ICAgICBTaG93IHRoZSB0aW1lbGluZSBpbnN0ZWFkIG9mIHRoZSB0aW1lbGluZSBjb250YWluZXIg
d2hlbiByZXNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgSGlkZSB0aGUgdGltZWxpbmUgaW5z
dGVhZCBvZiB0aGUgdGltZWxpbmUgY29udGFpbmVyIHdoZW4gcnVubmluZyBpbnRvIGFuIGVycm9y
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU11dGVCdXR0b24pOgorICAgICAgICBJbnRyb2R1
Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIG11dGUgYnV0dG9uIGFuZCBhZGp1c3QgaXQg
YmFzZWQgb24gdm9sdW1lIGxldmVscy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFQbGF5
QnV0dG9uKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBpbWFnZSByZXNvdXJjZXMgZm9yIHRoZSBw
bGF5IGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhU2xpZGVyVGh1bWIpOgorICAg
ICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIHBvc2l0aW9uIHNsaWRl
ciB0aHVtYi4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6
CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgdm9sdW1lIHNs
aWRlciB0aHVtYi4KKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVk
aWFDb250cm9sc1BhcnQpOgorICAgICAgICBBZGQgdGltZWxpbmUgY29udGFpbmVyIHBhaW50aW5n
IHRvIHRoZSAibm90IHJlYWNoZWQiIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIFByb3ZpZGUgc2l6ZSBzZXR0aW5ncyBmb3IgdGhlIHBvc2l0aW9uIGFuZCB2b2x1bWUgc2xp
ZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICBDYWxjdWxhdGUgY29ycmVjdCB3aWR0
aCBhbmQgaGVpZ2h0IHNldHRpbmdzIGZvciB0aGUgbmV3IGltYWdlIHJlc291cmNlcyBvZiB0aGUg
cG9zaXRpb24gYW5kIHZvbHVtZQorICAgICAgICBzbGlkZXIgdGh1bWJzLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgIChSZW5kZXJUaGVtZUNo
cm9taXVtTWFjKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcg
KGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29u
dGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
UmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRy
b2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
U2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAgICAgICBSZW1v
dmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMg
YmFja2dyb3VuZCkuCisKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpv
bnRhbCByZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAodmlzdWFsIHVw
ZGF0ZSB3aWxsIGNvbnRhaW4gcmViYXNlbGluZWQgdGVzdHMpCisKKyAgICAgICAgVGhlIENocm9t
ZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhlIHZvbHVt
ZSBzbGlkZXIgaXMgaW5jbHVkZWQgaW50bworICAgICAgICB0aGUgY29udHJvbHMgd2l0aCBob3Jp
em9udGFsIHJlbmRlcmluZywgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFpbmVyIGlzIHJlbW92ZWQu
IFRoZSB2aXN1YWwKKyAgICAgICAgdXBkYXRlIGl0c2VsZiBpcyBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAgICAgICBSZW1vdmVkIHJlbGF0aXZlIHBv
c2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1YWxseSBpbiBET00g
b3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAgICBS
ZW1vdmVkIGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVu
dHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgIFJlbW92ZWQgYWJzb2x1dGUgcG9zaXRpb25p
bmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50cyBlcXVhbGx5IGluIERPTSBvcmRlci4K
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRh
aW5lcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5v
dCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBSZW1vdmUgZmxleGJveCBhbmQgaW50cm9k
dWNlIGlubGluZSBkaXNwbGF5IHRvIGFsd2F5cyBkaXNwbGF5IHRoaXMgZmllbGQuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyKToKKyAgICAgICAgUmVtb3ZlZCBhYnNv
bHV0ZSBwb3NpdGlvbmluZyB0byByZW5kZXIgYWxsIGNvbnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkg
aW4gRE9NIG9yZGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIFJl
bW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55IG1v
cmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBBcHBlbmRlZCB0aGUgdm9sdW1lIHNsaWRlciBhbmQgdGhlIG11dGUg
YnV0dG9uIGRpcmVjdGx5IHRvIHRoZSBwYW5lbCwgcmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRh
aW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250
YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5l
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNo
b3dWb2x1bWVTbGlkZXIpOgorICAgICAgICBSZW1vdmVkIHZvbHVtZSBzbGlkZXIgY29udGFpbmVy
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5jZSk6CisgICAgICAgIEFsbG93IHVzZSBvZiBob3Jpem9u
dGFsIG1lZGlhIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJU
aHVtYjo6bGF5b3V0KToKKyAgICAgICAgUmV1c2UgaGFzVmVydGljYWxBcHBlYXJhbmNlIGZ1bmN0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1l
ZGlhVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQ2hhbmdlIGxpbmUgZHJhd2luZyBmcm9tIHZlcnRp
Y2FsIHRvIGhvcml6b250YWwuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKToK
KyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlciBmdW5jdGlvbiB0byBhbGxvdyBo
b3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisg
ICAgICAgIEFkZCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9y
aXpvbnRhbCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lh
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisK
KzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIHRlc3RzLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJl
IHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIEEgbmV3IGVuY2xvc3VyZSBkaXYgaXMgcmVxdWly
ZWQKKyAgICAgICAgdG8gcHJvdmlkZSBmb3IgYSBvZmZzZXQgc3BhY2UgZnJvbSB0aGUgdmlkZW8n
cyBib3VuZGFyaWVzLiBUaGUgdmlzdWFsIHVwZGF0ZSBpdHNlbGYgaXMgaW4KKyAgICAgICAgYSBz
ZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Nz
OgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlKToKKyAg
ICAgICAgSW50cm9kdWNlIENTUyBmb3IgZW5jbG9zdXJlIGRpdiBzbyBpdCBkb2Vzbid0IHNob3cg
eWV0LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICBE
ZWZpbml0aW9uIG9mIHRoZSBuZXcgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IERlZmluaXRpb24gb2YgYSBjcmVhdGUgb3BlcmF0b3IgZm9yIHRoZSBuZXcgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgRGVmaW5pdGlvbiBvZiB0aGUgc2hhZG93
UHNldWRvSWQgb2YgLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgZm9yIHRoZSBlbmNs
b3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEluaXRpYWxp
emUgbWVtYmVyIGVsZW1lbnQgZm9yIGVuY2xvc3VyZSBkaXYuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICBJbnN0YW50
aWF0ZSBlbmNsb3N1cmUgZGl2IGFuZCBhZGQgaW50byBET00gYmV0d2VlbiBjb250cm9scyBhbmQg
cGFuZWwgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICBTZXQgbWVkaWEgY29udHJv
bGxlciBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICBJbnNl
cnQgdGV4dCB0cmFjayBkaXNwbGF5IGNvbnRhaW5lciB0byBlbmNsb3N1cmUgcmF0aGVyIHRoYW4g
cGFuZWwuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjptZWRpYUNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
Ojppc01lZGlhQ29udHJvbEVsZW1lbnQpOgorICAgICAgICBBZGQgZGVjbGFyYXRpb24gb2YgdGhl
IG5ldyBlbmNsb3N1cmUgZWxlbWVudCBhbmQgaXRzIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgQWRkIG1lbWJlciB2
YXJpYWJsZSB0byBjb250cm9scyByb290IGVsZW1lbnQgdG8gaG9sZCB0aGUgZW5jbG9zdXJlIGVs
ZW1lbnQuCisKIDIwMTItMDYtMTAgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBbRm9ybXNdIEludHJvZHVjZSBEZWNpbWFsIGJlaGluZCB0aGUgSW5wdXRO
dW1iZXIgdHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHND
aHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
cwppbmRleCA0MDkzOThjNWQwY2NmMGM5ZDYzZjYwZTliNjkzNzJlOWEzOTI0ZDI2Li4zOTZmNjYx
ZWYwNDE3ODJlMjM1OWRhNzAzM2Q5YzU0YjQ5MWMxYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtMzEsNyArMzEsNyBAQCBib2R5Oi13ZWJr
aXQtZnVsbC1wYWdlLW1lZGlhIHsKIAogYXVkaW8gewogICAgIHdpZHRoOiAzMDBweDsKLSAgICBo
ZWlnaHQ6IDMycHg7CisgICAgaGVpZ2h0OiAzMHB4OwogfQogCiBhdWRpbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYSwgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEgewpAQCAtMzksOTAgKzM5
LDc5IEBAIGF1ZGlvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhLCB2aWRlbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYSB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogfQogCi1hdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwg
ewotICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7Cis6Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LW9yaWVudDog
dmVydGljYWw7CiAgICAgLXdlYmtpdC1ib3gtcGFjazogZW5kOwotICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKLSAgICBvdmVyZmxvdzogdmlzaWJsZTsKLSAgICBib3R0b206IDA7CisgICAgLXdlYmtp
dC1ib3gtYWxpZ246IGNlbnRlcjsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZW5jbG9zdXJlLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgewogICAg
IHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMzJweDsKLSAgICB6LWluZGV4OiAwOwotICAgIGJh
Y2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsKKyAgICBtYXgtd2lkdGg6IDgwMHB4
OworICAgIGhlaWdodDogMzBweDsKKyAgICBib3R0b206IDA7CisgICAgdGV4dC1pbmRlbnQ6IDA7
CisgICAgcGFkZGluZzogMDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogfQogCi12aWRl
bzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7
Ci0gICAgYm90dG9tOiAwcHg7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1
cmUgeworICAgIHBhZGRpbmc6IDBweCA1cHggNXB4IDVweDsKKyAgICBoZWlnaHQ6IDM1cHg7CiB9
CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1wYW5lbCB7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDsKKyAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7
CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNrOiBj
ZW50ZXI7CisgICAgYm90dG9tOiBhdXRvOworICAgIGhlaWdodDogMzBweDsKKyAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiByZ2JhKDIwLCAyMCwgMjAsIDAuOCk7CisgICAgYm9yZGVyLXJhZGl1czogNXB4
OwogfQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFy
YW5jZTogbWVkaWEtbXV0ZS1idXR0b247Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAgIHRv
cDogYXV0bzsKLSAgICBib3R0b206IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgbGVmdDogYXV0bzsK
LQotICAgIHdpZHRoOiAzNHB4OwotICAgIGhlaWdodDogMzJweDsKKyAgICBkaXNwbGF5OiBpbmxp
bmU7CisgICAgYm9yZGVyOiBub25lOworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAg
d2lkdGg6IDM1cHg7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4Owor
ICAgIG1hcmdpbjogMCA2cHggMCAwOworICAgIHBhZGRpbmc6IDA7CiB9CiAKIGF1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1wbGF5LWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1
dHRvbjsKLQotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAgYm90
dG9tOiA3cHg7Ci0gICAgbGVmdDogN3B4OwotICAgIHJpZ2h0OiA2cHg7Ci0KLSAgICB3aWR0aDog
MThweDsKLSAgICBoZWlnaHQ6IDE5cHg7Ci19Ci0KLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZWxpbmUtY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRpbWVsaW5l
LWNvbnRhaW5lcjsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIC13ZWJraXQt
Ym94LW9yaWVudDogaG9yaXpvbnRhbDsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwot
ICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAxOwot
Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogYXV0bzsKLSAgICBib3R0b206IDA7
Ci0gICAgbGVmdDogMzBweDsKLSAgICByaWdodDogMzRweDsKLQotICAgIHdpZHRoOiBhdXRvOwot
ICAgIGhlaWdodDogMzJweDsKLQotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgyNTUs
IDI1NSwgMjU1LCAwLjIpOwotICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAy
NTUsIDI1NSwgMC4yKTsKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgYm9yZGVyOiBub25lOwor
ICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgd2lkdGg6IDMwcHg7CisgICAgaGVpZ2h0
OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIG1hcmdpbi1sZWZ0OiA5cHg7Cisg
ICAgbWFyZ2luLXJpZ2h0OiA5cHg7CisgICAgcGFkZGluZzogMDsKIH0KIAotYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKK2F1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRp
bWUtcmVtYWluaW5nLWRpc3BsYXkgewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3Vy
cmVudC10aW1lLWRpc3BsYXk7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAgICBk
aXNwbGF5OiAtd2Via2l0LWJveDsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAwOwotICAgIC13ZWJr
aXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwotCi0g
ICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBib3JkZXI6IG5v
bmU7CiAgICAgY3Vyc29yOiBkZWZhdWx0OwogCi0gICAgbGluZS1oZWlnaHQ6IDIxcHg7Ci0gICAg
aGVpZ2h0OiAyMHB4OwotICAgIHdpZHRoOiA1OHB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBt
YXJnaW46IDAgOXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOwogCi0gICAgdGV4dC1hbGlnbjogY2Vu
dGVyOwotICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKLSAgICBmb250LXNpemU6IDE2cHg7CisgICAg
bGluZS1oZWlnaHQ6IDMwcHg7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNh
bnMtc2VyaWY7CisgICAgZm9udC1zaXplOiAxM3B4OwogICAgIGZvbnQtd2VpZ2h0OiBib2xkOwog
ICAgIGNvbG9yOiB3aGl0ZTsKIApAQCAtMTM3LDQwICsxMjYsNDggQEAgYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2wKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS1zbGlkZXI7CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gICAgYm94LXNpemlu
ZzogYm9yZGVyLWJveDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwotCi0gICAgcGFkZGluZzog
MHB4OwotICAgIG1hcmdpbjogMHB4IDZweDsKLSAgICBoZWlnaHQ6IDE4cHg7Ci0KLSAgICBib3Jk
ZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAgICBib3JkZXItc3R5bGU6IHNv
bGlkOwotICAgIGJvcmRlci13aWR0aDogMXB4OwotICAgIGJvcmRlci1yYWRpdXM6IDJweDsKLSAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwotICAgIGNvbG9y
OiByZ2IoNTAsIDE0MCwgMjIzKTsKLX0KLQotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXZv
bHVtZS1zbGlkZXItY29udGFpbmVyOwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBib3R0
b206IDMycHg7Ci0KLSAgICB3aWR0aDogMzRweDsKLSAgICBoZWlnaHQ6IDEwMHB4OwotCi0gICAg
YmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOworICAgIGhlaWdodDogOHB4Owor
ICAgIG1hcmdpbjogMCAxNXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOworICAgIGJhY2tncm91bmQt
Y29sb3I6IHRyYW5zcGFyZW50OworICAgIG1pbi13aWR0aDogMjVweDsKIH0KIAogYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlciB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12
b2x1bWUtc2xpZGVyOwotICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICBwb3NpdGlvbjogYWJzb2x1
dGU7Ci0KLSAgICB0b3A6IDEwcHg7Ci0gICAgbGVmdDogMTJweDsKKyAgICBkaXNwbGF5OiAtd2Vi
a2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogOHB4OworICAg
IG1heC13aWR0aDogNzBweDsKKyAgICBtYXJnaW46IDAgMTVweCAwIDA7CisgICAgcGFkZGluZzog
MDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBtaW4td2lkdGg6IDE1
cHg7Cit9CiAKLSAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6IDgwcHg7CisvKiBGSVhNRSB0
aGVzZSBzaG91bGRuJ3QgdXNlIHNwZWNpYWwgcHNldWRvU2hhZG93SWRzLCBidXQgbmljZXIgcnVs
ZXMuCisgICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/
aWQ9MTEyNTA4CisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIy
MTgKKyovCitpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250YWlu
ZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LWFsaWduOiBj
ZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAvKiBUaGlzIHByb3Bl
cnR5IGlzIHVwZGF0ZWQgYnkgQysrIGNvZGUuICovCisgICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBi
b3JkZXItYm94OworICAgIGhlaWdodDogMTAwJTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBib3Jk
ZXI6IDFweCBzb2xpZCByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAgYm9yZGVyLXJhZGl1czogNHB4
OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBCYWNrZ3JvdW5kIGRyYXdp
bmcgaXMgbWFuYWdlZCBieSBDKysgY29kZSB0byBkcmF3IHJhbmdlcy4gKi8KIH0KKworaW5wdXRb
dHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIgeworICAgIGRpc3BsYXk6
IGJsb2NrOworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVydGh1bWItaG9yaXpvbnRhbDsK
KyAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIGJvdHRvbTogMXB4OworICAgIG1hcmdpbi1sZWZ0OiAtN3B4OworICAgIG1hcmdp
bi1yaWdodDogLTdweDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwCmluZGV4IGJkY2Q5MTY0ZDg5ZGFkNGI3ZmQ3ODhkYWEyMmIzMzk2OGY5
ZTAwYTUuLmIyNTVjMTZkNDUwMGQwOTI0MmQ2NjIxYzY0OWMyNGRkNmJiZjQ1MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKFZJREVP
KQogI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCIKIAorI2luY2x1
ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE1lZGlhRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCkBA
IC00NSwxNyArNDYsMzQgQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1M
RGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgZG9jdW1lbnQtPmRvY3VtZW50KCkpCisgICAg
LCBtX21lZGlhQ29udHJvbGxlcigwKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Cit9CisK
K2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9t
aWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIikpOworICAg
IHJldHVybiBpZDsKK30KKwogTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBNZWRp
YUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9tZWRpYUNvbnRyb2xsZXIoMCkKICAgICAsIG1f
cGxheUJ1dHRvbigwKQogICAgICwgbV9jdXJyZW50VGltZURpc3BsYXkoMCkKKyAgICAsIG1fZHVy
YXRpb25EaXNwbGF5KDApCiAgICAgLCBtX3RpbWVsaW5lKDApCi0gICAgLCBtX3RpbWVsaW5lQ29u
dGFpbmVyKDApCiAgICAgLCBtX3BhbmVsTXV0ZUJ1dHRvbigwKQogICAgICwgbV92b2x1bWVTbGlk
ZXIoMCkKLSAgICAsIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKDApCiAgICAgLCBtX3BhbmVsKDAp
CisgICAgLCBtX2VuY2xvc3VyZSgwKQogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICAsIG1f
dGV4dERpc3BsYXlDb250YWluZXIoMCkKICAgICAsIG1fdGV4dFRyYWNrRGlzcGxheSgwKQpAQCAt
NzcsNiArOTUsOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQpKTsKIAorICAgIC8vIENyZWF0ZSBh
biBlbmNsb3NpbmcgZWxlbWVudCBmb3IgdGhlIHBhbmVsIHNvIHdlIGNhbiB2aXN1YWxseSBvZmZz
ZXQgdGhlIGNvbnRyb2xzIGNvcnJlY3RseS4KKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisKICAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CkBAIC04Nyw1MiArMTA4LDQ0IEBAIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6Y3JlCiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAot
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5l
Q29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwotCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGlt
ZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29u
dHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7
Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVj
LCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9
IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5
LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURp
c3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKLQotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5lQ29udGFpbmVyID0gdGltZWxpbmVDb250YWlu
ZXIuZ2V0KCk7Ci0gICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lQ29udGFpbmVyLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlk
ZSgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0
cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyID0gSFRNTERpdkVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLQotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xz
LT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICB2b2x1bWVTbGlkZXJDb250YWlu
ZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKLSAgICBpZiAoZWMp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyQ29udGFp
bmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAgIHBhbmVsVm9sdW1lQ29udHJv
bENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29udGFpbmVyLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVs
ZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+bV9kdXJhdGlvbkRpc3Bs
YXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxkKGR1cmF0
aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJl
dHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+
IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0
ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbFZvbHVtZUNvbnRyb2xD
b250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBlYywgdHJ1ZSk7CisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1f
dm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlk
ZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFw
cGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGVuY2xvc3VyZS0+YXBw
ZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAg
ICByZXR1cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQo
KTsKKyAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTE0OSwxOCArMTYyLDE4
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjCiAgICAgICAgIG1fcGxheUJ1dHRvbi0+c2V0TWVk
aWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX2N1cnJlbnRUaW1lRGlzcGxheSkK
ICAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9s
bGVyKTsKKyAgICBpZiAobV9kdXJhdGlvbkRpc3BsYXkpCisgICAgICAgIG1fZHVyYXRpb25EaXNw
bGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fdGltZWxpbmUp
CiAgICAgICAgIG1fdGltZWxpbmUtPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKLSAg
ICBpZiAobV90aW1lbGluZUNvbnRhaW5lcikKLSAgICAgICAgbV90aW1lbGluZUNvbnRhaW5lci0+
c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsTXV0ZUJ1dHRv
bikKICAgICAgICAgbV9wYW5lbE11dGVCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9s
bGVyKTsKICAgICBpZiAobV92b2x1bWVTbGlkZXIpCiAgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5z
ZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7Ci0gICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29u
dGFpbmVyKQotICAgICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9s
bGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3BhbmVsKQogICAgICAgICBtX3BhbmVsLT5zZXRN
ZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fZW5jbG9zdXJlKQorICAgICAg
ICBtX2VuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5lcikKICAgICAgICAg
bV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwpA
QCAtMTc4LDcgKzE5MSw2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
aGlkZSgpCiB7CiAgICAgbV9wYW5lbC0+c2V0SXNEaXNwbGF5ZWQoZmFsc2UpOwogICAgIG1fcGFu
ZWwtPmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOwogfQogCiB2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VPcGFxdWUoKQpAQCAtMTg5
LDcgKzIwMSw2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6bWFrZU9w
YXF1ZSgpCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Om1ha2VUcmFuc3Bh
cmVudCgpCiB7CiAgICAgbV9wYW5lbC0+bWFrZVRyYW5zcGFyZW50KCk7Ci0gICAgbV92b2x1bWVT
bGlkZXJDb250YWluZXItPmhpZGUoKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXNldCgpCkBAIC0yMDIsNyArMjEzLDExIEBAIHZvaWQgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQogCiAgICAgZmxvYXQgZHVyYXRpb24gPSBtX21l
ZGlhQ29udHJvbGxlci0+ZHVyYXRpb24oKTsKICAgICBtX3RpbWVsaW5lLT5zZXREdXJhdGlvbihk
dXJhdGlvbik7Ci0gICAgbV90aW1lbGluZUNvbnRhaW5lci0+c2hvdygpOworICAgIG1fdGltZWxp
bmUtPnNob3coKTsKKworICAgIG1fZHVyYXRpb25EaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+
dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZHVyYXRpb24pLCBBU1NFUlRfTk9fRVhD
RVBUSU9OKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKGR1cmF0aW9u
KTsKKwogICAgIG1fdGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFDb250cm9sbGVyLT5jdXJy
ZW50VGltZSgpKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogCkBAIC0yMTgsNiArMjMzLDgg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQo
KQogewogICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKICAgICBtX3RpbWVs
aW5lLT5zZXRQb3NpdGlvbihtX21lZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CisgICAg
bV9jdXJyZW50VGltZURpc3BsYXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlk
ZSgpOwogICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiB9CiAKQEAgLTI0Nyw2ICsyNjQsMTIgQEAg
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVUaW1lRGlzcGxheSgp
CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBZnRlciBzZWVrLCBo
aWRlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIHNob3cgY3VycmVudCB0aW1lLgorICAgIGlmIChub3cg
PiAwKSB7CisgICAgICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgICAgIG1f
ZHVyYXRpb25EaXNwbGF5LT5oaWRlKCk7CisgICAgfQorCiAgICAgLy8gQWxsb3cgdGhlIHRoZW1l
IHRvIGZvcm1hdCB0aGUgdGltZS4KICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIG1fY3VycmVu
dFRpbWVEaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKG5vdywgZHVyYXRpb24pLCBlYyk7CkBAIC0yNTksOSArMjgyLDkgQEAg
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXBvcnRlZEVycm9yKCkKICAg
ICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fdGltZWxpbmVDb250YWluZXIt
PmhpZGUoKTsKKyAgICBtX3RpbWVsaW5lLT5oaWRlKCk7CiAgICAgbV9wYW5lbE11dGVCdXR0b24t
PmhpZGUoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOworICAgIG1fdm9s
dW1lU2xpZGVyLT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6dXBkYXRlU3RhdHVzRGlzcGxheSgpCkBAIC0zMzEsNyArMzU0LDcgQEAgdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzaG93Vm9sdW1lU2xpZGVyKCkKICAgICBpZiAo
IW1fbWVkaWFDb250cm9sbGVyLT5oYXNBdWRpbygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBt
X3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+c2hvdygpOworICAgIG1fdm9sdW1lU2xpZGVyLT5zaG93
KCk7CiB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCkBAIC0zNDUsNyArMzY4LDcgQEAgdm9p
ZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGVUZXh0VHJhY2tEaXNwbGF5
KCkKIAogICAgIC8vIEluc2VydCBpdCBiZWZvcmUgdGhlIGZpcnN0IGNvbnRyb2xsZXIgZWxlbWVu
dCBzbyBpdCBhbHdheXMgZGlzcGxheXMgYmVoaW5kIHRoZSBjb250cm9scy4KICAgICBFeGNlcHRp
b25Db2RlIGVjOwotICAgIGluc2VydEJlZm9yZSh0ZXh0RGlzcGxheUNvbnRhaW5lci5yZWxlYXNl
KCksIG1fcGFuZWwsIGVjLCB0cnVlKTsKKyAgICBpbnNlcnRCZWZvcmUodGV4dERpc3BsYXlDb250
YWluZXIucmVsZWFzZSgpLCBtX2VuY2xvc3VyZSwgZWMsIHRydWUpOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNob3dUZXh0VHJhY2tEaXNwbGF5KCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uaAppbmRleCAzNjYxODZiNjVlMWY4MjU1NWJiMWY1NzFjNTY5YjM3Zjk0
N2UwMWM5Li5iMzY1Y2MzM2M2M2EwM2VlYzA5YWQyOTgyNDllNTlmNTc5YzVkMzJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5oCkBAIC00MCw2ICs0MCw3IEBAIGNsYXNzIEV2ZW50OwogY2xhc3Mg
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBs
YXlCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDsKIGNs
YXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dDsKQEAgLTQ3LDggKzQ4LDggQEAgY2xhc3MgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OwotY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDsKK2NsYXNzIE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbGxlckludGVyZmFjZTsK
IGNsYXNzIE1lZGlhUGxheWVyOwogCkBAIC02MCw2ICs2MSwyNCBAQCBjbGFzcyBNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVGV4dFRyYWNr
RGlzcGxheUVsZW1lbnQ7CiAjZW5kaWYKIAorY2xhc3MgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRy
b2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpIHsgbV9tZWRpYUNvbnRyb2xsZXIgPSBjb250cm9s
bGVyOyB9CisgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtZWRpYUNvbnRyb2xsZXIoKSBj
b25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbGxlcjsgfQorCitwcm90ZWN0ZWQ6CisgICAgTWVk
aWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CisKK3ByaXZhdGU6
CisgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KKworICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbV9tZWRpYUNvbnRyb2xs
ZXI7Cit9OworCiBjbGFzcyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtIDogcHVibGlj
IE1lZGlhQ29udHJvbHMgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNyZWF0ZShEb2N1bWVudCopOwpAQCAtMTE2LDEyICsx
MzUsMTMgQEAgcHJpdmF0ZToKIAogICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KiBt
X3BsYXlCdXR0b247CiAgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudCog
bV9jdXJyZW50VGltZURpc3BsYXk7CisgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50KiBtX2R1cmF0aW9uRGlzcGxheTsKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQqIG1fdGltZWxpbmU7CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50KiBtX3RpbWVsaW5lQ29udGFpbmVyOwogICAgIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQqIG1fcGFuZWxNdXRlQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyOwotICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNv
bnRhaW5lckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyOwogICAgIE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudCogbV9wYW5lbDsKKyAgICBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3Vy
ZUVsZW1lbnQqIG1fZW5jbG9zdXJlOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50KiBtX3RleHREaXNwbGF5Q29udGFpbmVy
OwogICAgIE1lZGlhQ29udHJvbFRleHRUcmFja0Rpc3BsYXlFbGVtZW50KiBtX3RleHRUcmFja0Rp
c3BsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVt
YkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVt
ZW50LmNwcAppbmRleCA0ZTcxNGEwMzkxZTQ2Y2IxZWQyYmExZWVhNTQxNDJiMjdiNTA5NDQ2Li5i
NTMzOTU5OWQwZjhjYWUxNGM5MDMzOWY4YTY3YTU4MThjMGVlYjhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NsaWRlclRodW1iRWxlbWVudC5jcHAKQEAgLTYyLDcgKzYy
LDEwIEBAIGlubGluZSBzdGF0aWMgYm9vbCBoYXNWZXJ0aWNhbEFwcGVhcmFuY2UoSFRNTElucHV0
RWxlbWVudCogaW5wdXQpCiB7CiAgICAgQVNTRVJUKGlucHV0LT5yZW5kZXJlcigpKTsKICAgICBS
ZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUoKTsKLSAg
ICByZXR1cm4gc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNhbFBhcnQg
fHwgc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNsaWRlclBhcnQ7Cisg
ICAgUmVuZGVyVGhlbWUqIHNsaWRlclRoZW1lID0gaW5wdXQtPnJlbmRlcmVyKCktPnRoZW1lKCk7
CisKKyAgICByZXR1cm4gc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBTbGlkZXJWZXJ0aWNh
bFBhcnQKKyAgICAgICAgfHwgKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1
bWVTbGlkZXJQYXJ0ICYmIHNsaWRlclRoZW1lLT51c2VzVmVydGljYWxWb2x1bWVTbGlkZXIoKSk7
CiB9CiAKIFNsaWRlclRodW1iRWxlbWVudCogc2xpZGVyVGh1bWJFbGVtZW50T2YoTm9kZSogbm9k
ZSkKQEAgLTEwOCw3ICsxMTEsNyBAQCB2b2lkIFJlbmRlclNsaWRlclRodW1iOjpsYXlvdXQoKQog
ICAgIC8vIERvIG5vdCBjYXN0IG5vZGUoKSB0byBTbGlkZXJUaHVtYkVsZW1lbnQuIFRoaXMgcmVu
ZGVyZXIgaXMgdXNlZCBmb3IKICAgICAvLyBUcmFja0xpbWl0RWxlbWVudCB0b28uCiAgICAgSFRN
TElucHV0RWxlbWVudCogaW5wdXQgPSBub2RlKCktPnNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lu
cHV0RWxlbWVudCgpOwotICAgIGJvb2wgaXNWZXJ0aWNhbCA9IHN0eWxlKCktPmFwcGVhcmFuY2Uo
KSA9PSBTbGlkZXJUaHVtYlZlcnRpY2FsUGFydCB8fCBzdHlsZSgpLT5hcHBlYXJhbmNlKCkgPT0g
TWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQ7CisgICAgYm9vbCBpc1ZlcnRpY2FsID0gaGFzVmVy
dGljYWxBcHBlYXJhbmNlKGlucHV0KTsKIAogICAgIGRvdWJsZSBmcmFjdGlvbiA9IGNvbnZlcnRJ
bnB1dE51bWJlclRvRG91YmxlKHNsaWRlclBvc2l0aW9uKGlucHV0KSAqIDEwMCk7CiAgICAgaWYg
KGlzVmVydGljYWwpCkBAIC0zMjEsMTIgKzMyNCwzOCBAQCBIVE1MSW5wdXRFbGVtZW50KiBTbGlk
ZXJUaHVtYkVsZW1lbnQ6Omhvc3RJbnB1dCgpIGNvbnN0CiAgICAgcmV0dXJuIHNoYWRvd0FuY2Vz
dG9yTm9kZSgpLT50b0lucHV0RWxlbWVudCgpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIFNs
aWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorc3RhdGljIGNvbnN0IEF0
b21pY1N0cmluZyYgc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpCiB7Ci0gICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLXRo
dW1iIikpOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoY29uc3QgQXRvbWljU3RyaW5nLCBzbGlk
ZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKICAgICByZXR1cm4gc2xpZGVyVGh1
bWI7CiB9CiAKK3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhU2xpZGVyVGh1bWJTaGFk
b3dQc2V1ZG9JZCgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChjb25zdCBBdG9taWNTdHJp
bmcsIG1lZGlhU2xpZGVyVGh1bWIsICgiLXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIiKSk7Cisg
ICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgU2xp
ZGVyVGh1bWJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgSFRNTElucHV0
RWxlbWVudCogaW5wdXQgPSBob3N0SW5wdXQoKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICBy
ZXR1cm4gc2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworCisgICAgUmVuZGVyU3R5bGUqIHNs
aWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlk
ZXJTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAg
Y2FzZSBNZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFy
dDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFG
dWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVt
ZVNsaWRlclRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRv
d1BzZXVkb0lkKCk7CisgICAgfQorfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCiBpbmxpbmUgVHJhY2tMaW1pdGVyRWxlbWVudDo6VHJhY2tMaW1pdGVyRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCkBAIC0zNTEsOCArMzgwLDIyIEBAIFJlbmRlck9iamVjdCogVHJh
Y2tMaW1pdGVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5k
ZXJTdHlsCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgVHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5n
LCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci10aHVtYiIpKTsKLSAgICByZXR1cm4gc2xp
ZGVyVGh1bWI7CisgICAgSFRNTElucHV0RWxlbWVudCogaW5wdXQgPSBzaGFkb3dBbmNlc3Rvck5v
ZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKKyAgICBpZiAoIWlucHV0KQorICAgICAgICByZXR1cm4g
c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworCisgICAgUmVuZGVyU3R5bGUqIHNsaWRlclN0
eWxlID0gaW5wdXQtPnJlbmRlcmVyKCktPnN0eWxlKCk7CisgICAgc3dpdGNoIChzbGlkZXJTdHls
ZS0+YXBwZWFyYW5jZSgpKSB7CisgICAgY2FzZSBNZWRpYVNsaWRlclBhcnQ6CisgICAgY2FzZSBN
ZWRpYVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyUGFydDoKKyAg
ICBjYXNlIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2UgTWVkaWFGdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRl
clRodW1iUGFydDoKKyAgICAgICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9J
ZCgpOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBzbGlkZXJUaHVtYlNoYWRvd1BzZXVk
b0lkKCk7CisgICAgfQogfQogCiBUcmFja0xpbWl0ZXJFbGVtZW50KiB0cmFja0xpbWl0ZXJFbGVt
ZW50T2YoTm9kZSogbm9kZSkKQEAgLTM4NSw4ICs0MjgsMjUgQEAgUmVuZGVyT2JqZWN0KiBTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSogYXJlbmEsIFJl
bmRlclMKIAogY29uc3QgQXRvbWljU3RyaW5nJiBTbGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0CiB7Ci0gICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIHNsaWRlclRodW1iLCAoIi13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKLSAgICByZXR1
cm4gc2xpZGVyVGh1bWI7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIG1l
ZGlhU2xpZGVyQ29udGFpbmVyLCAoIi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciIpKTsK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgc2xpZGVyQ29udGFpbmVyLCAo
Ii13ZWJraXQtc2xpZGVyLWNvbnRhaW5lciIpKTsKKworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlu
cHV0ID0gc2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFp
bnB1dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlckNvbnRhaW5lcjsKKworICAgIFJlbmRlclN0eWxl
KiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3aXRjaCAo
c2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQYXJ0Ogor
ICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRl
clBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBjYXNlIE1l
ZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5W
b2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlckNvbnRhaW5l
cjsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVyQ29udGFpbmVyOworICAgIH0K
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCA3MmUxMmM4ODFiYzczZmQwNWU5NjVhOThiMGRi
OWJmNmIwOGVlOGZmLi5jYWU0ZGJmYjc1MmJlNTM0NTZiZmNhYzc3N2RkNzlhNGQ3MDE4MTEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250
cm9sc0Nocm9taXVtLmNwcApAQCAtNzQsMTQgKzc0LDIxIEBAIHN0YXRpYyBib29sIHBhaW50TWVk
aWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50
SW5mCiAgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBz
dGF0aWMgSW1hZ2UqIHNvdW5kRnVsbCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU291bmRGdWxs
Iik7Ci0gICAgc3RhdGljIEltYWdlKiBzb3VuZE5vbmUgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRp
YVNvdW5kTm9uZSIpOwotICAgIHN0YXRpYyBJbWFnZSogc291bmREaXNhYmxlZCA9IHBsYXRmb3Jt
UmVzb3VyY2UoIm1lZGlhU291bmREaXNhYmxlZCIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRM
ZXZlbDMgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNvdW5kTGV2ZWwzIik7CisgICAg
c3RhdGljIEltYWdlKiBzb3VuZExldmVsMiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVy
U291bmRMZXZlbDIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIHNvdW5kTGV2ZWwxID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3VuZExldmVsMSIpOworICAgIHN0YXRpYyBJbWFnZSogc291
bmREaXNhYmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmREaXNhYmxlZCIp
OwogCi0gICAgaWYgKCFoYXNTb3VyY2UobWVkaWFFbGVtZW50KSB8fCAhbWVkaWFFbGVtZW50LT5o
YXNBdWRpbygpKQorICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxl
bWVudC0+aGFzQXVkaW8oKSB8fCBtZWRpYUVsZW1lbnQtPm11dGVkKCkgfHwgbWVkaWFFbGVtZW50
LT52b2x1bWUoKSA8PSAwKQogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludElu
Zm8uY29udGV4dCwgcmVjdCwgc291bmREaXNhYmxlZCk7CiAKLSAgICByZXR1cm4gcGFpbnRNZWRp
YUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50LT5tdXRlZCgpID8g
c291bmROb25lOiBzb3VuZEZ1bGwpOworICAgIGlmIChtZWRpYUVsZW1lbnQtPnZvbHVtZSgpIDw9
IDAuMzMpCisgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0
LCByZWN0LCBzb3VuZExldmVsMSk7CisKKyAgICBpZiAobWVkaWFFbGVtZW50LT52b2x1bWUoKSA8
PSAwLjY2KQorICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4
dCwgcmVjdCwgc291bmRMZXZlbDIpOworCisgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFp
bnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kTGV2ZWwzKTsKIH0KIAogc3RhdGljIGJvb2wgcGFp
bnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQpAQCAtOTAsOSArOTcsOSBAQCBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2Uo
Im1lZGlhUGxheSIpOwotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVz
b3VyY2UoIm1lZGlhUGF1c2UiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVk
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFQbGF5RGlzYWJsZWQiKTsKKyAgICBzdGF0aWMgSW1h
Z2UqIG1lZGlhUGxheSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGxheSIpOworICAg
IHN0YXRpYyBJbWFnZSogbWVkaWFQYXVzZSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVy
UGF1c2UiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGxheURpc2FibGVkID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFwbGF5ZXJQbGF5RGlzYWJsZWQiKTsKIAogICAgIGlmICghaGFzU291cmNl
KG1lZGlhRWxlbWVudCkpCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5m
by5jb250ZXh0LCByZWN0LCBtZWRpYVBsYXlEaXNhYmxlZCk7CkBAIC0xMDIsMTAgKzEwOSw3NSBA
QCBzdGF0aWMgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwg
Y29uc3QgUGFpbnRJbmZvJiBwYWludEluZgogCiBzdGF0aWMgSW1hZ2UqIGdldE1lZGlhU2xpZGVy
VGh1bWIoKQogewotICAgIHN0YXRpYyBJbWFnZSogbWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3Jt
UmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xp
ZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CiAg
ICAgcmV0dXJuIG1lZGlhU2xpZGVyVGh1bWI7CiB9CiAKK3N0YXRpYyB2b2lkIHBhaW50Um91bmRl
ZFNsaWRlckJhY2tncm91bmQoY29uc3QgSW50UmVjdCYgcmVjdCwgY29uc3QgUmVuZGVyU3R5bGUq
IHN0eWxlLCBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQpCit7CisgICAgaW50IGJvcmRlclJhZGl1
cyA9IHJlY3QuaGVpZ2h0KCkgLyAyOworICAgIEludFNpemUgcmFkaWkoYm9yZGVyUmFkaXVzLCBi
b3JkZXJSYWRpdXMpOworICAgIENvbG9yIHNsaWRlckJhY2tncm91bmRDb2xvciA9IENvbG9yKDI5
LCAyOSwgMjkpOworICAgIGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5maWxsUm91bmRl
ZFJlY3QocmVjdCwgcmFkaWksIHJhZGlpLCByYWRpaSwgcmFkaWksIHNsaWRlckJhY2tncm91bmRD
b2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQor
CitzdGF0aWMgdm9pZCBwYWludFNsaWRlclJhbmdlSGlnaGxpZ2h0KGNvbnN0IEludFJlY3QmIHJl
Y3QsIGNvbnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBm
bG9hdCBzdGFydEZyYWN0aW9uLCBmbG9hdCB3aWR0aEZyYWN0aW9uKQoreworICAgIGlmIChzdGFy
dEZyYWN0aW9uIDwgMCkKKyAgICAgICAgc3RhcnRGcmFjdGlvbiA9IDA7CisgICAgaWYgKHdpZHRo
RnJhY3Rpb24gPiAxKQorICAgICAgICB3aWR0aEZyYWN0aW9uID0gMTsKKyAgICBmbG9hdCBlbmRG
cmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZyYWN0aW9uOworICAgIGlmIChlbmRGcmFj
dGlvbiA+IDEpIHsKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IHdpZHRoRnJhY3Rpb24gLSBzdGFy
dEZyYWN0aW9uOworICAgICAgICBlbmRGcmFjdGlvbiA9IHN0YXJ0RnJhY3Rpb24gKyB3aWR0aEZy
YWN0aW9uOworICAgIH0KKworICAgIC8vIFNldCByZWN0YW5nbGUgdG8gaGlnaGxpZ2h0IHJhbmdl
LgorICAgIEludFJlY3QgaGlnaGxpZ2h0UmVjdCA9IHJlY3Q7CisgICAgaW50IHN0YXJ0T2Zmc2V0
ID0gc3RhcnRGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBpbnQgZW5kT2Zmc2V0ID0gcmVj
dC53aWR0aCgpIC0gZW5kRnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaW50IHJhbmdlV2lk
dGggPSB3aWR0aEZyYWN0aW9uICogcmVjdC53aWR0aCgpOworICAgIGhpZ2hsaWdodFJlY3QubW92
ZShzdGFydE9mZnNldCwgMCk7CisgICAgaGlnaGxpZ2h0UmVjdC5zZXRXaWR0aChyYW5nZVdpZHRo
KTsKKworICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEuCisgICAgaWYg
KGhpZ2hsaWdodFJlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDYWxj
dWxhdGUgYm9yZGVyIHJhZGl1czsgbmVlZCB0byBhdm9pZCBiZWluZyBzbWFsbGVyIHRoYW4gaGFs
ZiB0aGUgc2xpZGVyIGhlaWdodAorICAgIC8vIGJlY2F1c2Ugb2YgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzLgorICAgIGludCBib3JkZXJSYWRpdXMgPSByZWN0
LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlpKGJvcmRlclJhZGl1cywgYm9yZGVyUmFk
aXVzKTsKKworICAgIC8vIENhbGN1bGF0ZSB3aGl0ZS1ncmV5IGdyYWRpZW50LgorICAgIEludFBv
aW50IHNsaWRlclRvcExlZnQgPSBoaWdobGlnaHRSZWN0LmxvY2F0aW9uKCk7CisgICAgSW50UG9p
bnQgc2xpZGVyQm90dG9tTGVmdCA9IHNsaWRlclRvcExlZnQ7CisgICAgc2xpZGVyQm90dG9tTGVm
dC5tb3ZlKDAsIGhpZ2hsaWdodFJlY3QuaGVpZ2h0KCkpOworICAgIENvbG9yIHN0YXJ0Q29sb3Ig
PSBDb2xvcigyMjAsIDIyMCwgMjIwKTsKKyAgICBDb2xvciBlbmRDb2xvciA9IENvbG9yKDI0MCwg
MjQwLCAyNDApOworICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGllbnQgPSBHcmFkaWVudDo6Y3Jl
YXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOworICAgIGdyYWRpZW50LT5hZGRD
b2xvclN0b3AoMC4wLCBzdGFydENvbG9yKTsKKyAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEu
MCwgZW5kQ29sb3IpOworCisgICAgLy8gRmlsbCBoaWdobGlnaHQgcmVjdGFuZ2xlIHdpdGggZ3Jh
ZGllbnQsIHBvdGVudGlhbGx5IHJvdW5kZWQgaWYgb24gbGVmdCBvciByaWdodCBlZGdlLgorICAg
IGNvbnRleHQtPnNhdmUoKTsKKyAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQp
OworCisgICAgaWYgKHN0YXJ0T2Zmc2V0IDwgYm9yZGVyUmFkaXVzICYmIGVuZE9mZnNldCA8IGJv
cmRlclJhZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJl
Y3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2
aWNlUkdCKTsKKyAgICBlbHNlIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJhZGl1cykKKyAgICAg
ICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIHJhZGlpLCBJbnRTaXpl
KDAsIDApLCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgc3RhcnRDb2xvciwgQ29sb3JTcGFjZURldmlj
ZVJHQik7CisgICAgZWxzZSBpZiAoZW5kT2Zmc2V0IDwgYm9yZGVyUmFkaXVzKQorICAgICAgICBj
b250ZXh0LT5maWxsUm91bmRlZFJlY3QoaGlnaGxpZ2h0UmVjdCwgSW50U2l6ZSgwLCAwKSwgcmFk
aWksIEludFNpemUoMCwgMCksIHJhZGlpLCBzdGFydENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdC
KTsKKyAgICBlbHNlCisgICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGhpZ2hsaWdodFJlY3QpOwor
CisgICAgY29udGV4dC0+cmVzdG9yZSgpOworfQorCiBzdGF0aWMgYm9vbCBwYWludE1lZGlhU2xp
ZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQg
PSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMTE1LDIzICsxODcsMTAgQEAgc3Rh
dGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGMKICAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0
eWxlKCk7CiAgICAgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0ID0gcGFpbnRJbmZvLmNvbnRleHQ7
CiAKLSAgICAvLyBEcmF3IHRoZSBib3JkZXIgb2YgdGhlIHRpbWUgYmFyLgotICAgIC8vIEZJWE1F
OiB0aGlzIHNob3VsZCBiZSBhIHJvdW5kZWQgcmVjdCBidXQgbmVlZCB0byBmaXggR3JhcGhpY3ND
b250ZXh0U2tpYSBmaXJzdC4KLSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MzAxNDMKLSAgICBjb250ZXh0LT5zYXZlKCk7Ci0gICAgY29udGV4dC0+c2V0U2hv
dWxkQW50aWFsaWFzKHRydWUpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ry
b2tlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihzdHlsZS0+dmlzaXRlZERlcGVuZGVu
dENvbG9yKENTU1Byb3BlcnR5Qm9yZGVyTGVmdENvbG9yKSwgQ29sb3JTcGFjZURldmljZVJHQik7
Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKHN0eWxlLT5ib3JkZXJMZWZ0V2lkdGgo
KSk7Ci0gICAgY29udGV4dC0+c2V0RmlsbENvbG9yKHN0eWxlLT52aXNpdGVkRGVwZW5kZW50Q29s
b3IoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAg
ICBjb250ZXh0LT5kcmF3UmVjdChyZWN0KTsKLSAgICBjb250ZXh0LT5yZXN0b3JlKCk7CisgICAg
cGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CiAKICAg
ICAvLyBEcmF3IHRoZSBidWZmZXJlZCByYW5nZS4gU2luY2UgdGhlIGVsZW1lbnQgbWF5IGhhdmUg
bXVsdGlwbGUgYnVmZmVyZWQgcmFuZ2VzIGFuZCBpdCdkIGJlCiAgICAgLy8gZGlzdHJhY3Rpbmcv
J2J1c3knIHRvIHNob3cgYWxsIG9mIHRoZW0sIHNob3cgb25seSB0aGUgYnVmZmVyZWQgcmFuZ2Ug
Y29udGFpbmluZyB0aGUgY3VycmVudCBwbGF5IGhlYWQuCi0gICAgSW50UmVjdCBidWZmZXJlZFJl
Y3QgPSByZWN0OwotICAgIGJ1ZmZlcmVkUmVjdC5pbmZsYXRlKC1zdHlsZS0+Ym9yZGVyTGVmdFdp
ZHRoKCkpOwotCiAgICAgUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkVGltZVJhbmdlcyA9IG1l
ZGlhRWxlbWVudC0+YnVmZmVyZWQoKTsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxlbWVu
dC0+ZHVyYXRpb24oKTsKICAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1lZGlhRWxlbWVudC0+Y3Vy
cmVudFRpbWUoKTsKQEAgLTE0NiwyNyArMjA1LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNs
aWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGMK
ICAgICAgICAgZmxvYXQgc3RhcnRGcmFjdGlvbiA9IHN0YXJ0IC8gZHVyYXRpb247CiAgICAgICAg
IGZsb2F0IGVuZEZyYWN0aW9uID0gZW5kIC8gZHVyYXRpb247CiAgICAgICAgIGZsb2F0IHdpZHRo
RnJhY3Rpb24gPSBlbmRGcmFjdGlvbiAtIHN0YXJ0RnJhY3Rpb247Ci0gICAgICAgIGJ1ZmZlcmVk
UmVjdC5tb3ZlKHN0YXJ0RnJhY3Rpb24gKiBidWZmZXJlZFJlY3Qud2lkdGgoKSwgMCk7Ci0gICAg
ICAgIGJ1ZmZlcmVkUmVjdC5zZXRXaWR0aCh3aWR0aEZyYWN0aW9uICogYnVmZmVyZWRSZWN0Lndp
ZHRoKCkpOwotCi0gICAgICAgIC8vIERvbid0IGJvdGhlciBkcmF3aW5nIGFuIGVtcHR5IGFyZWEu
Ci0gICAgICAgIGlmIChidWZmZXJlZFJlY3QuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0KLSAgICAgICAgSW50UG9pbnQgc2xpZGVyVG9wTGVmdCA9IGJ1ZmZlcmVkUmVjdC5s
b2NhdGlvbigpOwotICAgICAgICBJbnRQb2ludCBzbGlkZXJCb3R0b21MZWZ0ID0gc2xpZGVyVG9w
TGVmdDsKLSAgICAgICAgc2xpZGVyQm90dG9tTGVmdC5tb3ZlKDAsIGJ1ZmZlcmVkUmVjdC5oZWln
aHQoKSk7Ci0KLSAgICAgICAgUmVmUHRyPEdyYWRpZW50PiBncmFkaWVudCA9IEdyYWRpZW50Ojpj
cmVhdGUoc2xpZGVyVG9wTGVmdCwgc2xpZGVyQm90dG9tTGVmdCk7Ci0gICAgICAgIENvbG9yIHN0
YXJ0Q29sb3IgPSBvYmplY3QtPnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9w
ZXJ0eUNvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgwLjAsIHN0YXJ0Q29s
b3IpOwotICAgICAgICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDEuMCwgQ29sb3Ioc3RhcnRDb2xv
ci5yZWQoKSAvIDIsIHN0YXJ0Q29sb3IuZ3JlZW4oKSAvIDIsIHN0YXJ0Q29sb3IuYmx1ZSgpIC8g
Miwgc3RhcnRDb2xvci5hbHBoYSgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+c2F2ZSgpOwotICAg
ICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShOb1N0cm9rZSk7Ci0gICAgICAgIGNvbnRleHQt
PnNldEZpbGxHcmFkaWVudChncmFkaWVudCk7Ci0gICAgICAgIGNvbnRleHQtPmZpbGxSZWN0KGJ1
ZmZlcmVkUmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKKworICAgICAgICBwYWlu
dFNsaWRlclJhbmdlSGlnaGxpZ2h0KHJlY3QsIHN0eWxlLCBjb250ZXh0LCBzdGFydEZyYWN0aW9u
LCB3aWR0aEZyYWN0aW9uKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xODks
NiArMjI5LDggQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRodW1iKFJlbmRlck9iamVj
dCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW4KICAgICByZXR1cm4gcGFpbnRNZWRp
YUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFTbGlkZXJUaHVtYik7CiB9CiAK
K2NvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGggPSAyNDsKKwogc3RhdGljIGJv
b2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKQEAg
LTE5Niw1NyArMjM4LDM0IEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBhaW50SW5mby5jb250
ZXh0OwotICAgIENvbG9yIG9yaWdpbmFsQ29sb3IgPSBjb250ZXh0LT5zdHJva2VDb2xvcigpOwot
ICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlQ29sb3IoQ29sb3I6OndoaXRlLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKKyAgICBS
ZW5kZXJTdHlsZSogc3R5bGUgPSBvYmplY3QtPnN0eWxlKCk7CisKKyAgICBwYWludFJvdW5kZWRT
bGlkZXJCYWNrZ3JvdW5kKHJlY3QsIHN0eWxlLCBjb250ZXh0KTsKKworICAgIC8vIENhbGN1bGF0
ZSB2b2x1bWUgcG9zaXRpb24gZm9yIHdoaXRlIGJhY2tncm91bmQgcmVjdGFuZ2xlLgorICAgIGZs
b2F0IHZvbHVtZSA9IG1lZGlhRWxlbWVudC0+dm9sdW1lKCk7CisgICAgaWYgKGlzbmFuKHZvbHVt
ZSkgfHwgdm9sdW1lIDwgMCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKHZvbHVtZSA+
IDEpCisgICAgICAgIHZvbHVtZSA9IDE7CisKKyAgICAvLyBDYWxjdWxhdGUgdGhlIHBvc2l0aW9u
IHJlbGF0aXZlIHRvIHRoZSBjZW50ZXIgb2YgdGhlIHRodW1iLgorICAgIGZsb2F0IHRodW1iQ2Vu
dGVyID0gbWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoIC8gMjsKKyAgICBmbG9hdCB6b29tTGV2
ZWwgPSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOworICAgIGZsb2F0IHBvc2l0aW9uV2lkdGggPSB2
b2x1bWUgKiAocmVjdC53aWR0aCgpIC0gKHpvb21MZXZlbCAqIHRodW1iQ2VudGVyKSk7CisgICAg
ZmxvYXQgZmlsbFdpZHRoID0gcG9zaXRpb25XaWR0aCArICh6b29tTGV2ZWwgKiB0aHVtYkNlbnRl
ciAvIDIpOwogCi0gICAgaW50IHggPSByZWN0LngoKSArIHJlY3Qud2lkdGgoKSAvIDI7Ci0gICAg
Y29udGV4dC0+ZHJhd0xpbmUoSW50UG9pbnQoeCwgcmVjdC55KCkpLCAgSW50UG9pbnQoeCwgcmVj
dC55KCkgKyByZWN0LmhlaWdodCgpKSk7CisgICAgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChy
ZWN0LCBzdHlsZSwgY29udGV4dCwgMC4wLCBmaWxsV2lkdGggLyByZWN0LndpZHRoKCkpOwogCi0g
ICAgaWYgKG9yaWdpbmFsQ29sb3IgIT0gQ29sb3I6OndoaXRlKQotICAgICAgICBjb250ZXh0LT5z
ZXRTdHJva2VDb2xvcihvcmlnaW5hbENvbG9yLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogc3RhdGljIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1i
KFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
SW50UmVjdCYgcmVjdCkKIHsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1
bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRodW1iIik7CisgICAgc3Rh
dGljIEltYWdlKiBtZWRpYVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVk
aWFwbGF5ZXJWb2x1bWVTbGlkZXJUaHVtYiIpOwogICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9u
KHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYVZvbHVtZVNsaWRlclRodW1iKTsKIH0KIAot
c3RhdGljIGJvb2wgcGFpbnRNZWRpYVRpbWVsaW5lQ29udGFpbmVyKFJlbmRlck9iamVjdCogb2Jq
ZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKLXsK
LSAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVu
dChvYmplY3QpOwotICAgIGlmICghbWVkaWFFbGVtZW50KQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoIXJlY3QuaXNFbXB0eSgpKSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dCog
Y29udGV4dCA9IHBhaW50SW5mby5jb250ZXh0OwotICAgICAgICBDb2xvciBvcmlnaW5hbENvbG9y
ID0gY29udGV4dC0+c3Ryb2tlQ29sb3IoKTsKLSAgICAgICAgZmxvYXQgb3JpZ2luYWxUaGlja25l
c3MgPSBjb250ZXh0LT5zdHJva2VUaGlja25lc3MoKTsKLSAgICAgICAgU3Ryb2tlU3R5bGUgb3Jp
Z2luYWxTdHlsZSA9IGNvbnRleHQtPnN0cm9rZVN0eWxlKCk7Ci0KLSAgICAgICAgY29udGV4dC0+
c2V0U3Ryb2tlU3R5bGUoU29saWRTdHJva2UpOwotCi0gICAgICAgIC8vIERyYXcgdGhlIGxlZnQg
Ym9yZGVyIHVzaW5nIENTUyBkZWZpbmVkIHdpZHRoIGFuZCBjb2xvci4KLSAgICAgICAgY29udGV4
dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG9iamVjdC0+c3R5bGUoKS0+Ym9yZGVyTGVmdFdpZHRoKCkp
OwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvYmplY3QtPnN0eWxlKCktPnZpc2l0
ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvcikucmdiKCksIENvbG9y
U3BhY2VEZXZpY2VSR0IpOwotICAgICAgICBjb250ZXh0LT5kcmF3TGluZShJbnRQb2ludChyZWN0
LngoKSArIDEsIHJlY3QueSgpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgSW50UG9pbnQo
cmVjdC54KCkgKyAxLCByZWN0LnkoKSArIHJlY3QuaGVpZ2h0KCkpKTsKLQotICAgICAgICAvLyBE
cmF3IHRoZSByaWdodCBib3JkZXIgdXNpbmcgQ1NTIGRlZmluZWQgd2lkdGggYW5kIGNvbG9yLgot
ICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Mob2JqZWN0LT5zdHlsZSgpLT5ib3Jk
ZXJSaWdodFdpZHRoKCkpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VDb2xvcihvYmplY3Qt
PnN0eWxlKCktPnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlclJpZ2h0Q29s
b3IpLnJnYigpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0xp
bmUoSW50UG9pbnQocmVjdC54KCkgKyByZWN0LndpZHRoKCkgLSAxLCByZWN0LnkoKSksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgIEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0g
MSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSk7Ci0KLSAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3Iob3JpZ2luYWxDb2xvciwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvcmlnaW5hbFRoaWNrbmVzcyk7Ci0gICAgICAgIGNv
bnRleHQtPnNldFN0cm9rZVN0eWxlKG9yaWdpbmFsU3R5bGUpOwotICAgIH0KLSAgICByZXR1cm4g
dHJ1ZTsKLX0KLQogc3RhdGljIGJvb2wgcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50
TWVkaWFFbGVtZW50KG9iamVjdCk7CkBAIC0yNzQsOCArMjkzLDYgQEAgYm9vbCBSZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxl
bWVudFR5cGUKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIob2JqZWN0LCBw
YWludEluZm8sIHJlY3QpOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYjoKICAgICAg
ICAgcmV0dXJuIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihvYmplY3QsIHBhaW50SW5mbywg
cmVjdCk7Ci0gICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOgotICAgICAgICByZXR1cm4g
cGFpbnRNZWRpYVRpbWVsaW5lQ29udGFpbmVyKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAg
ICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOgogICAgIGNhc2UgTWVkaWFFeGl0RnVs
bHNjcmVlbkJ1dHRvbjoKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9u
KG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKQEAgLTI4Myw2ICszMDAsNyBAQCBib29sIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZQogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvbjoKICAgICBjYXNlIE1l
ZGlhU2Vla0ZvcndhcmRCdXR0b246CiAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5l
cjoKKyAgICBjYXNlIE1lZGlhVGltZWxpbmVDb250YWluZXI6CiAgICAgY2FzZSBNZWRpYUN1cnJl
bnRUaW1lRGlzcGxheToKICAgICBjYXNlIE1lZGlhVGltZVJlbWFpbmluZ0Rpc3BsYXk6CiAgICAg
Y2FzZSBNZWRpYUNvbnRyb2xzUGFuZWw6CkBAIC0zMDEsMjQgKzMxOSw3NCBAQCBib29sIFJlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorY29uc3QgaW50IG1lZGlhU2xp
ZGVyVGh1bWJXaWR0aCA9IDMyOworY29uc3QgaW50IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQgPSAy
NDsKK2NvbnN0IGludCBtZWRpYVZvbHVtZVNsaWRlclRodW1iSGVpZ2h0ID0gMjQ7CisKIHZvaWQg
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjphZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShS
ZW5kZXJTdHlsZSogc3R5bGUpCiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1i
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFTbGlkZXJUaHVtYiIpOwotICAgIHN0YXRpYyBJbWFn
ZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhVm9sdW1l
U2xpZGVyVGh1bWIiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CisgICAgc3RhdGljIEltYWdl
KiBtZWRpYVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJW
b2x1bWVTbGlkZXJUaHVtYiIpOworICAgIGludCB3aWR0aCA9IDA7CisgICAgaW50IGhlaWdodCA9
IDA7CiAKICAgICBJbWFnZSogdGh1bWJJbWFnZSA9IDA7Ci0gICAgaWYgKHN0eWxlLT5hcHBlYXJh
bmNlKCkgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpCisgICAgaWYgKHN0eWxlLT5hcHBlYXJhbmNl
KCkgPT0gTWVkaWFTbGlkZXJUaHVtYlBhcnQpIHsKICAgICAgICAgdGh1bWJJbWFnZSA9IG1lZGlh
U2xpZGVyVGh1bWI7Ci0gICAgZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZv
bHVtZVNsaWRlclRodW1iUGFydCkKKyAgICAgICAgd2lkdGggPSBtZWRpYVNsaWRlclRodW1iV2lk
dGg7CisgICAgICAgIGhlaWdodCA9IG1lZGlhU2xpZGVyVGh1bWJIZWlnaHQ7CisgICAgfSBlbHNl
IGlmIChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0KSB7
CiAgICAgICAgIHRodW1iSW1hZ2UgPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iOworICAgICAgICB3
aWR0aCA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aDsKKyAgICAgICAgaGVpZ2h0ID0gbWVk
aWFWb2x1bWVTbGlkZXJUaHVtYkhlaWdodDsKKyAgICB9CiAKICAgICBmbG9hdCB6b29tTGV2ZWwg
PSBzdHlsZS0+ZWZmZWN0aXZlWm9vbSgpOwogICAgIGlmICh0aHVtYkltYWdlKSB7Ci0gICAgICAg
IHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT53aWR0
aCgpICogem9vbUxldmVsKSwgRml4ZWQpKTsKLSAgICAgICAgc3R5bGUtPnNldEhlaWdodChMZW5n
dGgoc3RhdGljX2Nhc3Q8aW50Pih0aHVtYkltYWdlLT5oZWlnaHQoKSAqIHpvb21MZXZlbCksIEZp
eGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRXaWR0aChMZW5ndGgoc3RhdGljX2Nhc3Q8aW50Pih3
aWR0aCAqIHpvb21MZXZlbCksIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVu
Z3RoKHN0YXRpY19jYXN0PGludD4oaGVpZ2h0ICogem9vbUxldmVsKSwgRml4ZWQpKTsKICAgICB9
CiB9CiAKK3N0YXRpYyBTdHJpbmcgZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShmbG9h
dCB0aW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAg
ICAgICB0aW1lID0gMDsKKyAgICBpZiAoIWlzZmluaXRlKGR1cmF0aW9uKSkKKyAgICAgICAgZHVy
YXRpb24gPSAwOworICAgIGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQg
aG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMg
LyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYwOworCisgICAgLy8gZHVyYXRpb24gZGVmaW5l
cyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGltZSBpcyByZW5kZXJlZAorICAgIGludCBkdXJhdGlv
blNlY3MgPSAoaW50KWZhYnNmKGR1cmF0aW9uKTsKKyAgICBpbnQgZHVyYXRpb25Ib3VycyA9IGR1
cmF0aW9uU2VjcyAvICg2MCAqIDYwKTsKKyAgICBpbnQgZHVyYXRpb25NaW5zID0gKGR1cmF0aW9u
U2VjcyAvIDYwKSAlIDYwOworCisgICAgaWYgKGR1cmF0aW9uSG91cnMgfHwgaG91cnMpCisgICAg
ICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/
ICItIiA6ICIiKSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIGlmIChkdXJhdGlvbk1p
bnMgPiA5KQorICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAyZDolMDJkIiwgKHRp
bWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKKworICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQiLCAodGltZSA8IDAgPyAiLSIgOiAiIiksIG1pbnV0ZXMs
IHNlY29uZHMpOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKQoreworICAgIHJldHVybiBmb3JtYXRDaHJv
bWl1bU1lZGlhQ29udHJvbHNUaW1lKHRpbWUsIHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQg
Y3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1
bU1lZGlhQ29udHJvbHNUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBS
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdU
aW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9y
bWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShjdXJyZW50VGltZSAtIGR1cmF0aW9uLCBkdXJh
dGlvbik7Cit9CisKICNlbmRpZiAgLy8gI2lmIEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5oCmluZGV4IDlhZjkzOTYwZmZlZmNjZTk5YWYxMjY0Mzg0ZWQz
MzQxNmEyZDlmNjEuLmE2N2E0MTM5YTZkNDBhM2QzNjQyOTk2ODVmMjE4ZjNlMGI2NzdmYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtLmgKQEAgLTM4LDYgKzM4LDEwIEBAIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFy
dChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1
bWJTaXplKFJlbmRlclN0eWxlKik7CisgICAgc3RhdGljIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRy
b2xzVGltZShmbG9hdCB0aW1lKTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJv
bHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pOworICAgIHN0
YXRpYyBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKTsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA4MTY3YmE4MmY4ZmMxNmQw
Zjg4OTcxMWU0MmZmZmFjNGU5NDU4OTk5Li41ZTU2YjZkZjUwZWNmYjAzZTVkMTEyOWFkZjk2Nzc0
N2YzYTNlNzJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTk4
LDYgKzE5OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0
ZUhhbmRsaW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCB1c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNs
aWRlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYUNv
bnRyb2xzRmFkZUluRHVyYXRpb24oKSB7IHJldHVybiAwLjE7IH0KICAgICB2aXJ0dWFsIGRvdWJs
ZSBtZWRpYUNvbnRyb2xzRmFkZU91dER1cmF0aW9uKCkgeyByZXR1cm4gMC4zOyB9CiAgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaApp
bmRleCAyYjRjOGM2MzVjYzIyM2MxODNiNTE4YjEyY2VhZWVmNTJmYWIwYzQzLi5kM2IzNjAxMDcy
N2Y3OTdlNTg1NTY2OTAxNTU4NTk5ZWQxODkzMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJl
bmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFN
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICB2aXJ0dWFsIFN0cmluZyBleHRyYUZ1bGxTY3JlZW5TdHlsZVNoZWV0KCk7CkBAIC01NSw2ICs1
NCwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBJbnRQb2ludCB2b2x1bWVTbGlkZXJPZmZz
ZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqLCBjb25zdCBJbnRTaXplJikgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyBy
ZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRs
aW5nRm9yKENvbnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBi
b29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29u
c3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZs
b2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CisgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZs
b2F0IGR1cmF0aW9uKSBjb25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0
TW9kZUZvY3VzUmluZ0NvbG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCmluZGV4IGE3NzgyMjhjNTUyMmQ2YzAyOTQy
NzFlZjM3YTliNDZjNDBjZWQ1NGYuLjlmNGFhOTEwN2FmOTc5NWQwMDNmNWUzNzlkYTQ4M2JkNTQx
MTNmMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNo
cm9taXVtTWFjLm1tCkBAIC0xNzMsMTEgKzE3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYzo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
CiAgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRy
b2xzUGFydChNZWRpYVNsaWRlciwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogfQogCi1ib29s
IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVu
ZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRS
ZWN0JiByZWN0KQotewotICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBh
aW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFUaW1lbGluZUNvbnRhaW5lciwgb2JqZWN0LCBwYWlu
dEluZm8sIHJlY3QpOwotfQotCiBTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6ZXh0cmFN
ZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCiB7CiAgICAgcmV0dXJuIFN0cmluZyhtZWRpYUNvbnRy
b2xzQ2hyb21pdW1Vc2VyQWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVkaWFDb250cm9sc0Nocm9t
aXVtVXNlckFnZW50U3R5bGVTaGVldCkpOwpAQCAtMjI4LDYgKzIyMywyMSBAQCBJbnRQb2ludCBS
ZW5kZXJUaGVtZUNocm9taXVtTWFjOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihS
ZW5kZXJCb3gqIG11dAogewogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zm
c2V0RnJvbU11dGVCdXR0b24obXV0ZUJ1dHRvbkJveCwgc2l6ZSk7CiB9CisKK1N0cmluZyBSZW5k
ZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKSBj
b25zdAoreworICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1l
ZGlhQ29udHJvbHNUaW1lKHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1h
Yzo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9u
KTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJv
bHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QK
K3sKKyAgICByZXR1cm4gUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9s
c1JlbWFpbmluZ1RpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9uKTsKK30KICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAppbmRleCA3YWQyYzEyYzM1MDQxZDgxOWUzN2UzYWQ5
YjY1YWJkMjdkYjYzYjg1Li43MjkzZGQxYmIyMDQwZDNjYWEwMmYxOGMxZDQ4MzY1MGUyYWQwMmVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5jcHAKQEAgLTM3OCwxOCArMzc4LDYgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
U2tpYTo6cGFpbnRTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBtYWduaWYK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBh
aW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBh
aW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotI2lmIEVOQUJMRShW
SURFTykKLSAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlh
Q29udHJvbHNQYXJ0KE1lZGlhVGltZWxpbmVDb250YWluZXIsIG9iamVjdCwgcGFpbnRJbmZvLCBy
ZWN0KTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Ci0gICAgVU5VU0VEX1BBUkFN
KHBhaW50SW5mbyk7Ci0gICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBmYWxzZTsK
LSNlbmRpZgotfQotCiBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhU2xp
ZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBJbnRSZWN0JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKQEAgLTQ3MSw2ICs0
NTksMzggQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYU11dGVCdXR0
b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFAKICNlbmRpZgogfQogCitTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklE
RU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFD
b250cm9sc1RpbWUodGltZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRU
aW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyNpZiBFTkFC
TEUoVklERU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0
TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShjdXJyZW50VGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGR1cmF0aW9u
KTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9s
c1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAor
eworI2lmIEVOQUJMRShWSURFTykKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShjdXJyZW50VGltZSwgZHVyYXRp
b24pOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY3VycmVudFRpbWUpOworICAgIFVOVVNFRF9Q
QVJBTShkdXJhdGlvbik7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJU
aGVtZUNocm9taXVtU2tpYTo6YWRqdXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBXZWJDb3JlOjpFbGVtZW50KikgY29uc3QKIHsKICAgICAvLyBIZWln
aHQgaXMgbG9ja2VkIHRvIGF1dG8gb24gYWxsIGJyb3dzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCAyODk4OTNlMzEz
MTc4MjAxNGYxMzUwYjc0NjU2MDk4NmY2ZGYzY2I3Li40NTdiMTA1ZjM4ZmE3OThkNzU5NjJmZGVm
NGJhYzU2ODZmZTg4OWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bVNraWEuaApAQCAtOTEsNyArOTEsNiBAQCBjbGFzcyBSZW5kZXJUaGVt
ZUNocm9taXVtU2tpYSA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCBhZGp1c3RTZWFyY2hGaWVsZFJlc3VsdHNCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVu
ZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFNl
YXJjaEZpZWxkUmVzdWx0c0J1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jik7CiAKLSAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFDb250cm9s
c0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVh
bCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RT
bGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CkBAIC05OSw2ICs5
OCw5IEBAIGNsYXNzIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1l
IHsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZp
cnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlh
TXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0
Jik7CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0
IHRpbWUpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xz
Q3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKKyAg
ICAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxv
YXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBNZW51
TGlzdCByZWZlcnMgdG8gYW4gdW5zdHlsZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3
aXRob3V0CiAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5kIE1l
bnVMaXN0QnV0dG9uIHJlZmVycyB0byBhIHN0eWxlZApAQCAtMTI3LDYgKzEyOSw3IEBAIGNsYXNz
IFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICNpZiBFTkFC
TEUoVklERU8pCiAgICAgICAgIC8vIE1lZGlhIGNvbnRyb2xzCiAgICAgICAgIHZpcnR1YWwgYm9v
bCBoYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0
dXJuIHRydWU7IH0KKyAgICAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRl
cigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgICAgICAvLyBQcm92aWRl
IGEgd2F5IHRvIHBhc3MgdGhlIGRlZmF1bHQgZm9udCBzaXplIGZyb20gdGhlIFNldHRpbmdzIG9i
amVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDA4YWRjODM2OWUzNTdmNzU1MTU1M2YyM2RmYTc1NDIxZGRmNWRmNGQuLmQw
OWQ5NjFlMTM3NGJmODgyOGYwODRiOGFhMjM5OWI3NjE4ZTk5NzggMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NSBAQAorMjAxMi0wNi0wNSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIENoYW5nZSB0aGUgdm9sdW1lIHNsaWRlciB0byBob3Jpem9udGFsIHJlbmRl
cmluZyBmb3IgQ2hyb21lIHZpZGVvIGNvbnRyb2xzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJl
Y2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIFRoZSB2b2x1bWUgc2xpZGVyIGlzIGluY2x1ZGVkIGlu
dG8KKyAgICAgICAgdGhlIGNvbnRyb2xzIHdpdGggaG9yaXpvbnRhbCByZW5kZXJpbmcsIHRoZSB2
b2x1bWUgc2xpZGVyIGNvbnRhaW5lciBpcyByZW1vdmVkLiBUaGUgdmlzdWFsCisgICAgICAgIHVw
ZGF0ZSBpdHNlbGYgaXMgaW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFRlbXBvcmFyaWx5IHNraXAgdGVz
dHMgcmVsYXRlZCB0byB2b2x1bWUgY29udHJvbHMgcmVuZGVyaW5nIGZvciBDaHJvbWl1bS4KKwor
MjAxMi0wNS0yOCAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEludHJvZHVjZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3IgQ2hyb21pdW0gdmlkZW8g
Y29udHJvbHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NzY4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwsIG1lZGlhL21l
ZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwgYW5kCisgICAgICAgIG1lZGlhL3RyYWNrL3Ry
YWNrLWN1ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwgdG8gZGVhbCB3aXRo
IHRoZSBuZXcgZW5jbG9zdXJlCisgICAgICAgIGRpdiBpbiBDaHJvbWl1bSBjb250cm9scyBhbmQg
dXNlIHRoZSBtZWRpYUNvbnRyb2xzRWxlbWVudCgpIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIGVs
ZW1lbnRzCisgICAgICAgIGluc2lkZSB0aGUgY29udHJvbHMuCisgICAgICAgIEZhaWwgdmlkZW8g
Y29udHJvbHMgdGVzdHMgaW4gdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBmdWxsc2Ny
ZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAg
ICAgKiBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWw6IFVzZSBtZWRpYUNv
bnRyb2xzRWxlbWVudCBoZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICogbWVkaWEvbWVkaWEtY29u
dHJvbHMtaW52YWxpZC11cmwuaHRtbDogVXNlIG1lZGlhQ29udHJvbHNFbGVtZW50IGhlbHBlciBm
dW5jdGlvbi4KKyAgICAgICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAt
dG8tbGluZXMtbm90LXNldC5odG1sOiBIZWlnaHQgaXMgcHJvdmlkZWQgYnkgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogRmFp
bCB2aWRlbyBjb250cm9scyB0ZXN0cy4KKwogMjAxMi0wNi0xMCAgWW9zaGlmdW1pIElub3VlICA8
eW9zaW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtGb3Jtc10gSW50cm9kdWNlIERlY2ltYWwg
YmVoaW5kIHRoZSBJbnB1dE51bWJlciB0eXBlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mdWxs
c2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CmluZGV4IGYx
OTJhMzkxNzNkNTRkMWQ5ZjUxYjE0MWRhYTQxZWJlYTFmMjhmMmEuLjI2MzQ4YmI3ZTliZTg1ZGQ0
N2UzODliNTBlNjRjM2EwYzRlMDcyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Z1bGxzY3JlZW4vdmlkZW8tY29udHJvbHMtb3ZlcnJpZGUtZXhwZWN0ZWQudHh0CkBAIC0yLDcg
KzIsNyBAQCBUaGlzIHRlc3RzIHRoYXQgdGhlIHZpZGVvIGVsZW1lbnQncyAiY29udHJvbHMiIGF0
dHJpYnV0ZSBpcyBvdmVycmlkZGVuIGluIGZ1bGwgcwogCiBFVkVOVCh3ZWJraXRmdWxsc2NyZWVu
Y2hhbmdlKQogRVhQRUNURUQgKHNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRl
bykgIT0gJ251bGwnKSBPSwotRVhQRUNURUQgKHBhbmVsID0gc2hhZG93Um9vdC5maXJzdENoaWxk
LmZpcnN0Q2hpbGQgIT0gJ251bGwnKSBPSworRVhQRUNURUQgKHBhbmVsID0gbWVkaWFDb250cm9s
c0VsZW1lbnQoc2hhZG93Um9vdC5maXJzdENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1w
YW5lbCcpICE9ICdudWxsJykgT0sKIEVYUEVDVEVEIChpbnRlcm5hbHMuc2hhZG93UHNldWRvSWQo
cGFuZWwpID09ICctd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsJykgT0sKIEVYUEVDVEVEIChk
b2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHBhbmVsKVsnZGlzcGxheSddICE9
ICdub25lJykgT0sKIEVYUEVDVEVEIChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0
eWxlKHBhbmVsKVsnaGVpZ2h0J10gPj0gJzIwcHgnKSBPSwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sIGIvTGF5b3V0VGVzdHMv
ZnVsbHNjcmVlbi92aWRlby1jb250cm9scy1vdmVycmlkZS5odG1sCmluZGV4IDcyMTRiYmEwN2Zk
MzA3YzEyMjVmMmZlNWFmMWIzOGE1N2RiMjA0MjEuLjQ3ZmE0ZmU0MWI0OTAxMDgxMmNhYzZhMjA2
OTZhZGE0YmJiZjJlOTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Z1bGxzY3JlZW4vdmlkZW8t
Y29udHJvbHMtb3ZlcnJpZGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mdWxsc2NyZWVuL3ZpZGVv
LWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwKQEAgLTIsNiArMiw3IEBACiAgICAgPHA+VGhpcyB0ZXN0
cyB0aGF0IHRoZSB2aWRlbyBlbGVtZW50J3MgImNvbnRyb2xzIiBhdHRyaWJ1dGUgaXMgb3ZlcnJp
ZGRlbiBpbiBmdWxsIHNjcmVlbiBtb2RlLCBhbmQgdGhhdCB0aGUgY29udHJvbHMgYXJlIGNvcnJl
Y3RseSBoaWRkZW4gdXBvbiBleGl0aW5nIGZ1bGwgc2NyZWVuLiAgUHJlc3MgYW55IGtleSB0byBj
b250aW51ZS48L3A+CiAgICAgPHZpZGVvIGlkPSJ2aWRlbyIgd2lkdGg9IjMwMCI+PC92aWRlbz4K
ICAgICA8c2NyaXB0IHNyYz0iZnVsbC1zY3JlZW4tdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgPHNj
cmlwdCBzcmM9Ii4uL21lZGlhL21lZGlhLWNvbnRyb2xzLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0PgogICAgICAgICB2YXIgY2FsbGJhY2s7CiAgICAgICAgIHZhciBzaGFkb3dSb290OwpAQCAt
MTksNyArMjAsNyBAQAogICAgICAgICB2YXIgdmlkZW9FbnRlcmVkRnVsbFNjcmVlbiA9IGZ1bmN0
aW9uKCkgewogICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgICAgICAg
ICAgICB0ZXN0RXhwZWN0ZWQoInNoYWRvd1Jvb3QgPSBpbnRlcm5hbHMuc2hhZG93Um9vdCh2aWRl
bykiLCBudWxsLCAiIT0iKTsKLSAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInBhbmVsID0g
c2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQiLCBudWxsLCAiIT0iKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoInBhbmVsID0gbWVkaWFDb250cm9sc0VsZW1lbnQoc2hhZG93
Um9vdC5maXJzdENoaWxkLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCcpIiwgbnVsbCwg
IiE9Iik7CiAgICAgICAgICAgICAgICAgdGVzdEV4cGVjdGVkKCJpbnRlcm5hbHMuc2hhZG93UHNl
dWRvSWQocGFuZWwpIiwgIi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwiKTsKICAgICAgICAg
ICAgICAgICB0ZXN0RXhwZWN0ZWQoImRvY3VtZW50LmRlZmF1bHRWaWV3LmdldENvbXB1dGVkU3R5
bGUocGFuZWwpWydkaXNwbGF5J10iLCAnbm9uZScsICIhPSIpOwogICAgICAgICAgICAgICAgIHRl
c3RFeHBlY3RlZCgiZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShwYW5lbClb
J2hlaWdodCddIiwgJzIwcHgnLCAiPj0iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlh
L21lZGlhLWNvbnRyb2xzLWludmFsaWQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRp
YS1jb250cm9scy1pbnZhbGlkLXVybC5odG1sCmluZGV4IDgyODY1ZWRkZWU3MmNiMjE1MGRhODkx
Njg2NjYyMjAzMGJhZGVkNzQuLmNkZjY0Y2ZkNGM1YzEzYmNlZmY2ZjhmMjNiYzY3NGVhMmY5ZDUz
ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWNvbnRyb2xzLWludmFsaWQt
dXJsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11
cmwuaHRtbApAQCAtMyw2ICszLDcgQEAKICAgICA8aGVhZD4KICAgICAgICAgPHNjcmlwdCBzcmM9
bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9dmlkZW8tdGVzdC5q
cz48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9bWVkaWEtY29udHJvbHMuanM+PC9zY3Jp
cHQ+CiAgICAgICAgIDxzY3JpcHQ+CiAgICAgICAgICAgICB2YXIgdmlkZW87CiAKQEAgLTE4LDI5
ICsxOSwxNSBAQAogCiAgICAgICAgICAgICBmdW5jdGlvbiBnZXRUaW1lTGluZVZhbHVlKCkKICAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB2YXIgdGltZWxpbmVDb250YWluZXI7Ci0gICAg
ICAgICAgICAgICAgdmFyIHRpbWVsaW5lVmFsdWU7CisgICAgICAgICAgICAgICAgdmFyIHRpbWVs
aW5lOworICAgICAgICAgICAgICAgIHZhciBzaGFkb3dSb290ID0gaW50ZXJuYWxzLnNoYWRvd1Jv
b3QodmlkZW8pOwogCi0gICAgICAgICAgICAgICAgdmFyIGNvbnRyb2xzU2hhZG93ID0gaW50ZXJu
YWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQuZmlyc3RDaGlsZDsKLSAgICAgICAgICAg
ICAgICBmb3IgKGNoaWxkID0gY29udHJvbHNTaGFkb3cuZmlyc3RDaGlsZDsgY2hpbGQ7IGNoaWxk
ID0gY2hpbGQubmV4dFNpYmxpbmcpCi0gICAgICAgICAgICAgICAgICAgIGlmIChpbnRlcm5hbHMu
c2hhZG93UHNldWRvSWQoY2hpbGQpID09ICItd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5l
LWNvbnRhaW5lciIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVsaW5lQ29udGFpbmVy
ID0gY2hpbGQ7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgIHRpbWVsaW5lID0gbWVkaWFDb250cm9sc0VsZW1lbnQo
c2hhZG93Um9vdC5maXJzdENoaWxkLmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lJyk7CiAKLSAgICAgICAgICAgICAgICBpZighdGltZWxpbmVDb250YWluZXIpCi0g
ICAgICAgICAgICAgICAgICAgIHRocm93ICJGYWlsZCB0byBmaW5kIC13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUtY29udGFpbmVyIjsKLQotICAgICAgICAgICAgICAgIGZvciAoY2hpbGQg
PSB0aW1lbGluZUNvbnRhaW5lci5maXJzdENoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC5uZXh0
U2libGluZykKLSAgICAgICAgICAgICAgICAgICAgaWYgKGludGVybmFscy5zaGFkb3dQc2V1ZG9J
ZChjaGlsZCkgPT0gIi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUiKSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB0aW1lbGluZVZhbHVlID0gY2hpbGQudmFsdWU7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgaWYoIXRpbWVsaW5lQ29udGFpbmVyKQorICAgICAgICAgICAgICAgIGlmKCF0aW1lbGlu
ZSkKICAgICAgICAgICAgICAgICAgICAgdGhyb3cgIkZhaWxkIHRvIGZpbmQgLXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lbGluZSI7CiAKLSAgICAgICAgICAgICAgICByZXR1cm4gdGltZWxpbmVW
YWx1ZTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdGltZWxpbmUudmFsdWU7CiAgICAgICAgICAg
ICB9CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGVycm9yKCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25hcC10by1saW5lcy1ub3Qtc2V0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAt
dG8tbGluZXMtbm90LXNldC5odG1sCmluZGV4IDI5ZDVjODU3MWY2ODY4NzUzZDliNTIwM2IxZTEy
ZTkzYTI0NTYxODUuLjIyZWFmZTNlOTU0NDYzNTUzMWUwZDIzOWFlNGFiNzNhMzNlMjcxOGIgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctc25h
cC10by1saW5lcy1ub3Qtc2V0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJh
Y2stY3VlLXJlbmRlcmluZy1zbmFwLXRvLWxpbmVzLW5vdC1zZXQuaHRtbApAQCAtODksNyArODks
MTAgQEAKICAgICAgICAgICAgIGZpbmRNZWRpYUVsZW1lbnQoKTsKICAgICAgICAgICAgIHRlc3RU
cmFjayA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RyYWNrJyk7CiAgICAgICAgICAgICB2aWRl
by5zcmMgPSBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICcuLi9jb250ZW50L3Rlc3QnKTsKLSAgICAg
ICAgICAgIGNvbnRyb2xzUGFuZWxFbGVtZW50ID0gbWVkaWFDb250cm9sc0VsZW1lbnQoaW50ZXJu
YWxzLnNoYWRvd1Jvb3QodmlkZW8pLmZpcnN0Q2hpbGQsICctd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsJyk7CisKKyAgICAgICAgICAgIC8vIEluIENocm9taXVtIGl0IGlzIHRoZSBlbmNsb3N1
cmUgZWxlbWVudCwgd2hpY2ggcHJvdmlkZXMgdGhlIGNvbnRyb2xzIGhlaWdodCwgb3RoZXJ3aXNl
IHRoZSBwYW5lbDsKKyAgICAgICAgICAgIC8vIGJvdGggYXJlIHRoZSBzZWNvbmQgY2hpbGQgaW4g
dGhlIHNoYWRvdyBET00uCisgICAgICAgICAgICBjb250cm9sc1BhbmVsRWxlbWVudCA9IGludGVy
bmFscy5zaGFkb3dSb290KHZpZGVvKS5maXJzdENoaWxkLmZpcnN0Q2hpbGQ7CiAKICAgICAgICAg
ICAgIHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBmdW5jdGlvbigpIHsKICAgICAgICAg
ICAgICAgICBjdWVEaXNwbGF5Q29udGFpbmVyID0gdGV4dFRyYWNrRGlzcGxheUVsZW1lbnQodmlk
ZW8pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggNzQ3ZTg5OWZiMzhjNjYwNzBhYjMyNmMxNWYyNmY3OTIzYjFkNWZkNi4uZGU3YzE5NDc5
NGVhMjIzMDhhM2VhMDY1ZTY3YmU5ZGYyNGZmYWY2ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCkBAIC03NzEsNiArNzcxLDExIEBAIFdPTlRG
SVggU0tJUCA6IG1lZGlhL3ZpZGVvLXNpemUtaW50cmluc2ljLXNjYWxlLmh0bWwgPSBQQVNTCiAv
LyBEb2Vzbid0IGFwcGx5IHRvIENocm9taXVtIChRdWlja1RpbWUtc3BlY2lmaWMgYmVoYXZpb3Ip
CiBXT05URklYIFNLSVAgOiBtZWRpYS92aWRlby1kb2VzLW5vdC1sb29wLmh0bWwgPSBUSU1FT1VU
CiAKKy8vIERvZXNuJ3QgYXBwbHkgdG8gQ2hyb21pdW0gYW55IGxvbmdlciAtIHZvbHVtZSBzbGlk
ZXIgaXMgaW5saW5lIHdpdGggdmlkZW8gY29udHJvbHMuCitXT05URklYIFNLSVAgOiBtZWRpYS92
aWRlby12b2x1bWUtc2xpZGVyLmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAgOiBtZWRpYS9tZWRp
YS12b2x1bWUtc2xpZGVyLXJlbmRlcmVkLWJlbG93Lmh0bWwgPSBGQUlMCitXT05URklYIFNLSVAg
OiBtZWRpYS9tZWRpYS12b2x1bWUtc2xpZGVyLXJlbmRlcmVkLW5vcm1hbC5odG1sID0gRkFJTAor
CiAvLyBRdWlja1RpbWUgcmVmZXJlbmNlIG1vdmllcyBub3Qgc3VwcG9ydGVkLgogV09OVEZJWCBT
S0lQIDogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1jcm9zcy1zaXRlLmh0bWwgPSBQQVNTCiAKQEAg
LTI5NjYsNiArMjk3MSwyOCBAQCBCVUdXSzczODY1IDogbWVkaWEvdHJhY2svdGV4dC10cmFjay1p
cy1yZWFjaGFibGUuaHRtbCA9IFRFWFQKIEJVR1dLODE0MDIgV0lOIDogbWVkaWEvdHJhY2svdHJh
Y2stYWN0aXZlLWN1ZXMuaHRtbCA9IFBBU1MgVElNRU9VVAogQlVHV0s4Mzg4MiA6IG1lZGlhL3Ry
YWNrL3RyYWNrLW1vZGUuaHRtbCA9IFBBU1MgVEVYVCBUSU1FT1VUCiAKKy8vIE5lZWQgcmViYXNl
bGluZS4KK0JVR1dLODc2ODMgOiBmYXN0L2xheWVycy92aWRlby1sYXllci5odG1sID0gRkFJTAor
QlVHV0s4NzY4MyA6IGZ1bGxzY3JlZW4vZnVsbC1zY3JlZW4tc3RhY2tpbmctY29udGV4dC5odG1s
ID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2F1ZGlvLWNvbnRyb2xzLXJlbmRlcmluZy5odG1s
ID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2F1ZGlvLXJlcGFpbnQuaHRtbCA9IEZBSUwKK0JV
R1dLODc2ODMgOiBtZWRpYS9jb250cm9scy1hZnRlci1yZWxvYWQuaHRtbCA9IEZBSUwKK0JVR1dL
ODc2ODMgOiBtZWRpYS9jb250cm9scy1sYXlvdXQtZGlyZWN0aW9uLmh0bWwgPSBGQUlMCitCVUdX
Szg3NjgzIDogbWVkaWEvY29udHJvbHMtc3RyaWN0Lmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDog
bWVkaWEvY29udHJvbHMtc3R5bGluZy5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL2Nv
bnRyb2xzLXdpdGhvdXQtcHJlbG9hZC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL21l
ZGlhLWNvbnRyb2xzLWNsb25lLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvbWVkaWEt
ZG9jdW1lbnQtYXVkaW8tcmVwYWludC5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3Zp
ZGVvLWNvbnRyb2xzLXJlbmRlcmluZy5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3Zp
ZGVvLWRpc3BsYXktdG9nZ2xlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8t
ZW1wdHktc291cmNlLmh0bWwgPSBGQUlMCitCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tbm8tYXVk
aW8uaHRtbCA9IEZBSUwKK0JVR1dLODc2ODMgOiBtZWRpYS92aWRlby1wbGF5aW5nLWFuZC1wYXVz
ZS5odG1sID0gRkFJTAorQlVHV0s4NzY4MyA6IG1lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRt
bCA9IEZBSUwKK0JVR1dLODc4MzUgOiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLXJh
bmdlLWNvbnRhaW5zLWN1cnJlbnRUaW1lLmh0bWwgPSBGQUlMCisKK0JVR1dLNzIyNzEgU05PV0xF
T1BBUkQgREVCVUcgOiBmYXN0L2RvbS9ub2RlLWl0ZXJhdG9yLXJlZmVyZW5jZS1ub2RlLW1vdmVk
LWNyYXNoLmh0bWwgPSBQQVNTIENSQVNICisKIEJVR1dLNzIzNzYgV0lOIDogZmFzdC9mb3Jtcy9m
aWxlL2lucHV0LWZpbGUtbGFiZWwuaHRtbCA9IFRFWFQgUEFTUwogCiAvLyBBbmltYXRpb25zIHRl
c3RzIHVzZSBhbiBpbmhlcmVudGx5LWZsYWt5IHRpbWVyLWJhc2VkIGRlc2lnbi4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>146842</attachid>
            <date>2012-06-11 06:11:30 -0700</date>
            <delta_ts>2012-06-12 01:18:53 -0700</delta_ts>
            <desc>Review this, including the fixes for skia.</desc>
            <filename>patch5_with_skia_fixes.diff</filename>
            <type>text/plain</type>
            <size>16312</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyODczMzFhLi4yZDM5YWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcg
QEAKKzIwMTItMDYtMTAgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4K
KworICAgICAgICBVcGRhdGUgdGhlIHRpbWUgZGlzcGxheSBvZiB0aGUgbmV3IENocm9taXVtIG1l
ZGlhIGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODg3MjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBObyBuZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGlu
ZWQgdGVzdHMuCisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2
aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjaGFuZ2VzCisgICAgICAgIHRoZSBmb3Jt
YXQgb2YgdGhlIHRpbWUgZGlnaXRzIHRoYXQgYXJlIGRpc3BsYXllZC4gVGhleSBhcmUgZGlmZmVy
ZW50IGZvciBtZWRpYQorICAgICAgICBmaWxlcyBvZiBkaWZmZXJlbnQgZHVyYXRpb24uIEZvciBu
b24tYXV0b3BsYXlpbmcgdmlkZW9zLCB0aGUgZHVyYXRpb24gaXMgc2hvd24KKyAgICAgICAgYmVm
b3JlIHBsYXliYWNrIGlzIHN0YXJ0ZWQuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0No
cm9taXVtLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUt
cmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVt
YWluaW5nLWRpc3BsYXkpOgorICAgICAgICBGb3JtYXQgdGhlIG5ldyBkdXJhdGlvbiBkaXNwbGF5
IHRoZSBzYW1lIGFzIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKiBodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0pOgorICAgICAgICBBZGQgYSBtZW1iZXIgZmllbGQgZm9yIHRoZSBkdXJhdGlv
biBkaXNwbGF5LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6Y3JlYXRlKToKKyAgICAgICAgQWRkIGFuIGVsZW1lbnQgZm9yIHRoZSBkdXJhdGlvbiBk
aXNwbGF5IGFuZCBpbml0aWFsbHkgaGlkZSB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNv
bnRyb2xsZXIpOgorICAgICAgICBBZGQgdGhlIGR1cmF0aW9uIGRpc3BsYXkgdG8gdGhlIGNvbnRy
b2xsZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXNldCk6CisgICAgICAgIEFkZCByZXNldCBmdW5jdGlvbmFsaXR5IGZvciB0aGUgZHVyYXRp
b24gZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OnBsYXliYWNrU3RhcnRlZCk6CisgICAgICAgIFNob3cgdGhlIGN1cnJlbnQgdGltZSBk
aXNwbGF5IGFuZCBoaWRlIHRoZSBkdXJhdGlvbiBkaXNwbGF5IHVwb24gcGxheWJhY2sgc3RhcnQu
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRh
dGVUaW1lRGlzcGxheSk6CisgICAgICAgIFNob3cgdGhlIGN1cnJlbnQgdGltZSBkaXNwbGF5IGFu
ZCBoaWRlIHRoZSBkdXJhdGlvbiBkaXNwbGF5IHdoZW4gY3VycmVudCB0aW1lIGlzIG5vbi16ZXJv
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICBBZGQgdGhlIE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudCB3aGljaCBwcm92aWRlcyB1c2Ugd2l0aCB0aGUgZHVyYXRp
b24gZGlzcGxheS4KKyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgor
ICAgICAgICBBZGQgYSBkdXJhdGlvbiBtZW1iZXIgZmllbGQsIHJldXNpbmcgdGhlIGV4aXN0aW5n
IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZvcm1hdENocm9taXVtTWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBGb3JtYXRzIGEgZ2l2
ZW4gdGltZSB1bmRlciB0aGUgY29uZGl0aW9uIG9mIGEgZ2l2ZW4gZHVyYXRpb24uCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJv
bHNUaW1lKToKKyAgICAgICAgV2hlbiBmb3JtYXR0aW5nIGEgc2luZ2xlIHRpbWUsIGFzc3VtZSBp
dCB0byBhbHNvIHByb3ZpZGUgdGhlIGR1cmF0aW9uIGNvbmRpdGlvbnMuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJy
ZW50VGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgY3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJh
dGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9y
bWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUpOgorICAgICAgICBGb3JtYXQgdGhlIHJlbWFp
bmluZyB0aW1lIGZyb20gdGhlIGN1cnJlbnQgdGltZSBnaXZlbiB0aGUgZHVyYXRpb24uCisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oOgorICAgICAgICAo
UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtKToKKyAgICAgICAgRGVjbGFyZSB0aGUgdGltZSBm
b3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMuaDoKKyAgICAgICAgKFJlbmRlclRoZW1lQ2hyb21pdW1NYWMpOgorICAg
ICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3IgQ2hy
b21pdW0gb24gdGhlIE1hYy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1h
dE1lZGlhQ29udHJvbHNUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGlt
ZSk6CisgICAgICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9m
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSBvbiB0aGUgTWFjLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRy
b2xzQ3VycmVudFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0TWVkaWFDb250cm9sc1Jl
bWFpbmluZ1RpbWUpOgorICAgICAgICBDYWxsIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucyBvZiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0gb24gU2tpYS4KKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFJlbmRlclRo
ZW1lQ2hyb21pdW1Ta2lhKToKKyAgICAgICAgRGVjbGFyZSB0aGUgdGltZSBmb3JtYXR0aW5nIG1l
bWJlciBmdW5jdGlvbnMgZm9yIENocm9taXVtIFNraWEuCisKIDIwMTItMDYtMDkgIFNpbHZpYSBQ
ZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgcmFuZ2Ug
c2xpZGVycyByZW5kZXJpbmcgZm9yIHZvbHVtZSBhbmQgcGxheWJhY2sgcG9zaXRpb24gb2YgbmV3
IENocm9tZSB2aWRlbyBjb250cm9scy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJv
bHNDaHJvbWl1bS5jc3MKaW5kZXggMmQ5N2VkNC4uMzk2ZjY2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MKQEAgLTk3LDcgKzk3LDggQEAgYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnUKICAgICBwYWRkaW5nOiAwOwogfQogCi1hdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXkgeworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWN1cnJlbnQtdGltZS1kaXNwbGF5LAorYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGlt
ZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1y
ZW1haW5pbmctZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50
LXRpbWUtZGlzcGxheTsKICAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwogICAgIGRpc3Bs
YXk6IGJsb2NrOwpAQCAtMTExLDYgKzExMiw3IEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9sCiAg
ICAgbGluZS1oZWlnaHQ6IDMwcHg7CiAgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2Es
IHNhbnMtc2VyaWY7CiAgICAgZm9udC1zaXplOiAxM3B4OworICAgIGZvbnQtd2VpZ2h0OiBib2xk
OwogICAgIGNvbG9yOiB3aGl0ZTsKIAogICAgIGxldHRlci1zcGFjaW5nOiBub3JtYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGM3NDVkNjMuLmIyNTVjMTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uY3BwCkBAIC02OCw2ICs2OCw3IEBAIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqIGRv
Y3VtCiAgICAgLCBtX21lZGlhQ29udHJvbGxlcigwKQogICAgICwgbV9wbGF5QnV0dG9uKDApCiAg
ICAgLCBtX2N1cnJlbnRUaW1lRGlzcGxheSgwKQorICAgICwgbV9kdXJhdGlvbkRpc3BsYXkoMCkK
ICAgICAsIG1fdGltZWxpbmUoMCkKICAgICAsIG1fcGFuZWxNdXRlQnV0dG9uKDApCiAgICAgLCBt
X3ZvbHVtZVNsaWRlcigwKQpAQCAtMTE1LDEwICsxMTYsMTcgQEAgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpjcmUKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxh
eSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKKyAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXktPmhpZGUoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVudFRpbWVEaXNw
bGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBk
dXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fZHVyYXRpb25EaXNwbGF5ID0gZHVy
YXRpb25EaXNwbGF5LmdldCgpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3Bs
YXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsK
KwogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11
dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24g
PSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0
ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKQEAgLTE1NCw2ICsxNjIsOCBAQCB2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNv
bnRyb2xsZXJJbnRlcmZhYwogICAgICAgICBtX3BsYXlCdXR0b24tPnNldE1lZGlhQ29udHJvbGxl
cihjb250cm9sbGVyKTsKICAgICBpZiAobV9jdXJyZW50VGltZURpc3BsYXkpCiAgICAgICAgIG1f
Y3VycmVudFRpbWVEaXNwbGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAg
aWYgKG1fZHVyYXRpb25EaXNwbGF5KQorICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0TWVk
aWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX3RpbWVsaW5lKQogICAgICAgICBt
X3RpbWVsaW5lLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fcGFu
ZWxNdXRlQnV0dG9uKQpAQCAtMjA0LDYgKzIxNCwxMCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OnJlc2V0KCkKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFDb250
cm9sbGVyLT5kdXJhdGlvbigpOwogICAgIG1fdGltZWxpbmUtPnNldER1cmF0aW9uKGR1cmF0aW9u
KTsKICAgICBtX3RpbWVsaW5lLT5zaG93KCk7CisKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+c2V0
SW5uZXJUZXh0KHBhZ2UtPnRoZW1lKCktPmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGR1cmF0aW9u
KSwgQVNTRVJUX05PX0VYQ0VQVElPTik7CisgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldEN1cnJl
bnRWYWx1ZShkdXJhdGlvbik7CisKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlh
Q29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKIApA
QCAtMjE5LDYgKzIzMyw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6
cGxheWJhY2tTdGFydGVkKCkKIHsKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBl
KCk7CiAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUNvbnRyb2xsZXItPmN1cnJl
bnRUaW1lKCkpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgbV9kdXJh
dGlvbkRpc3BsYXktPmhpZGUoKTsKICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogfQogCkBAIC0y
NDgsNiArMjY0LDEyIEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBk
YXRlVGltZURpc3BsYXkoKQogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuOwogCisgICAg
Ly8gQWZ0ZXIgc2VlaywgaGlkZSBkdXJhdGlvbiBkaXNwbGF5IGFuZCBzaG93IGN1cnJlbnQgdGlt
ZS4KKyAgICBpZiAobm93ID4gMCkgeworICAgICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2hv
dygpOworICAgICAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOworICAgIH0KKwogICAgIC8v
IEFsbG93IHRoZSB0aGVtZSB0byBmb3JtYXQgdGhlIHRpbWUuCiAgICAgRXhjZXB0aW9uQ29kZSBl
YzsKICAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0SW5uZXJUZXh0KHBhZ2UtPnRoZW1lKCkt
PmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShub3csIGR1cmF0aW9uKSwgZWMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IGM3ZmIzOWMuLmIzNjVjYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtLmgKQEAgLTQwLDYgKzQwLDcgQEAgY2xhc3MgRXZlbnQ7CiBjbGFzcyBNZWRpYUNv
bnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50Owor
Y2xhc3MgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sVGltZWxpbmVFbGVtZW50OwogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OwpAQCAt
MTM0LDYgKzEzNSw3IEBAIHByaXZhdGU6CiAKICAgICBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudCogbV9wbGF5QnV0dG9uOwogICAgIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQqIG1fY3VycmVudFRpbWVEaXNwbGF5OworICAgIE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudCogbV9kdXJhdGlvbkRpc3BsYXk7CiAgICAgTWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50KiBtX3RpbWVsaW5lOwogICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudCogbV90aW1lbGluZUNvbnRhaW5lcjsKICAgICBNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50KiBtX3BhbmVsTXV0ZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXgg
YjZiNDRmOC4uY2FlNGRiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTM0OCw2ICszNDgsNDUgQEAg
dm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmFkanVzdE1lZGlhU2xpZGVyVGh1bWJT
aXplKFJlbmRlclN0eWxlKiBzdHlsZSkKICAgICB9CiB9CiAKK3N0YXRpYyBTdHJpbmcgZm9ybWF0
Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lLCBmbG9hdCBkdXJhdGlvbikKK3sK
KyAgICBpZiAoIWlzZmluaXRlKHRpbWUpKQorICAgICAgICB0aW1lID0gMDsKKyAgICBpZiAoIWlz
ZmluaXRlKGR1cmF0aW9uKSkKKyAgICAgICAgZHVyYXRpb24gPSAwOworICAgIGludCBzZWNvbmRz
ID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjAp
OworICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9
IDYwOworCisgICAgLy8gZHVyYXRpb24gZGVmaW5lcyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGlt
ZSBpcyByZW5kZXJlZAorICAgIGludCBkdXJhdGlvblNlY3MgPSAoaW50KWZhYnNmKGR1cmF0aW9u
KTsKKyAgICBpbnQgZHVyYXRpb25Ib3VycyA9IGR1cmF0aW9uU2VjcyAvICg2MCAqIDYwKTsKKyAg
ICBpbnQgZHVyYXRpb25NaW5zID0gKGR1cmF0aW9uU2VjcyAvIDYwKSAlIDYwOworCisgICAgaWYg
KGR1cmF0aW9uSG91cnMgfHwgaG91cnMpCisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
JXMlMDFkOiUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIiKSwgaG91cnMsIG1pbnV0ZXMs
IHNlY29uZHMpOworICAgIGlmIChkdXJhdGlvbk1pbnMgPiA5KQorICAgICAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIiVzJTAyZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVz
LCBzZWNvbmRzKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQiLCAo
dGltZSA8IDAgPyAiLSIgOiAiIiksIG1pbnV0ZXMsIHNlY29uZHMpOworfQorCitTdHJpbmcgUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0
aW1lKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJvbHNUaW1lKHRpbWUs
IHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRN
ZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9u
KQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJvbHNUaW1lKGN1cnJlbnRU
aW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06
OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGlt
ZShjdXJyZW50VGltZSAtIGR1cmF0aW9uLCBkdXJhdGlvbik7Cit9CisKICNlbmRpZiAgLy8gI2lm
IEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCmluZGV4
IDlhZjkzOTYuLmE2N2E0MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKQEAgLTM4LDYgKzM4LDEwIEBAIGNsYXNz
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wg
cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSwgUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgIHN0YXRpYyB2b2lk
IGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlKik7CisgICAgc3RhdGljIFN0
cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKTsKKyAgICBzdGF0aWMgU3Ry
aW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxv
YXQgZHVyYXRpb24pOworICAgIHN0YXRpYyBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFp
bmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKTsKKwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTWFjLmgKaW5kZXggYWE5NGE0Mi4uZDNiMzYwMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCkBAIC01NSw2
ICs1NSw5IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgdXNlc01lZGlhQ29udHJvbFN0
YXR1c0Rpc3BsYXkoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNPd25E
aXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIGJvb2wgdXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGlt
ZShmbG9hdCB0aW1lKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRy
b2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsK
KyAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9h
dCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0OwogI2VuZGlmCiAKICAgICB2aXJ0
dWFsIGJvb2wgdXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3IoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KaW5kZXggNWE1
YWY0ZC4uOWY0YWE5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1NYWMubW0KQEAgLTIyMyw2ICsyMjMsMjEgQEAgSW50UG9pbnQgUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYzo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oUmVuZGVy
Qm94KiBtdXQKIHsKICAgICByZXR1cm4gUmVuZGVyVGhlbWU6OnZvbHVtZVNsaWRlck9mZnNldEZy
b21NdXRlQnV0dG9uKG11dGVCdXR0b25Cb3gsIHNpemUpOwogfQorCitTdHJpbmcgUmVuZGVyVGhl
bWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNv
bnRyb2xzVGltZSh0aW1lKTsKK30KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZv
cm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVy
YXRpb24pIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9
CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1h
aW5pbmdUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5jcHAKaW5kZXggZjk5OTVjMy4uNzI5M2RkMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBA
IC00NTksNiArNDU5LDM4IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVk
aWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQCiAjZW5kaWYKIH0KIAor
U3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Cit7CisjaWYg
RU5BQkxFKFZJREVPKQorICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZv
cm1hdE1lZGlhQ29udHJvbHNUaW1lKHRpbWUpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0odGlt
ZSk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJv
bHNDdXJyZW50VGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShjdXJyZW50VGltZSwgZHVyYXRpb24p
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oY3VycmVudFRpbWUpOworICAgIFVOVVNFRF9QQVJB
TShkdXJhdGlvbik7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworU3RyaW5nIGZvcm1hdE1l
ZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlv
bikgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoY3VycmVudFRp
bWUsIGR1cmF0aW9uKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGN1cnJlbnRUaW1lKTsKKyAg
ICBVTlVTRURfUEFSQU0oZHVyYXRpb24pOworICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIHZv
aWQgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OmFkanVzdE1lbnVMaXN0U3R5bGUoU3R5bGVSZXNv
bHZlciosIFJlbmRlclN0eWxlKiBzdHlsZSwgV2ViQ29yZTo6RWxlbWVudCopIGNvbnN0CiB7CiAg
ICAgLy8gSGVpZ2h0IGlzIGxvY2tlZCB0byBhdXRvIG9uIGFsbCBicm93c2Vycy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKaW5kZXgg
MWU3MTNlMC4uNDU3YjEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmgKQEAgLTk4LDYgKzk4LDkgQEAgY2xhc3MgUmVuZGVyVGhl
bWVDaHJvbWl1bVNraWEgOiBwdWJsaWMgUmVuZGVyVGhlbWUgewogICAgICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRodW1iKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQ
bGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVj
dCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCBT
dHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CisgICAgICAg
IHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBjdXJy
ZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBm
b3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQg
ZHVyYXRpb24pIGNvbnN0OwogCiAgICAgICAgIC8vIE1lbnVMaXN0IHJlZmVycyB0byBhbiB1bnN0
eWxlZCBtZW51bGlzdCAobWVhbmluZyBhIG1lbnVsaXN0IHdpdGhvdXQKICAgICAgICAgLy8gYmFj
a2dyb3VuZC1jb2xvciBvciBib3JkZXIgc2V0KSBhbmQgTWVudUxpc3RCdXR0b24gcmVmZXJzIHRv
IGEgc3R5bGVkCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147032</attachid>
            <date>2012-06-12 01:19:01 -0700</date>
            <delta_ts>2012-06-13 16:54:11 -0700</delta_ts>
            <desc>full patch with int cast fix</desc>
            <filename>bug-88724-20120612181858.patch</filename>
            <type>text/plain</type>
            <size>66722</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjg1NmE3YTljN2Q1Y2Rj
YmVhYjBiYmI5MWFkZDAyNjIzYjY0NGY1ZS4uNTc0NWYxZDM1ZDQ0MjM3NGJkNWUwZGMxZjg0OWZk
ZTE1ZmIzNWM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4NyBAQAorMjAxMi0wNi0xMiAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSB0
aGUgdGltZSBkaXNwbGF5IG9mIHRoZSBuZXcgQ2hyb21pdW0gbWVkaWEgY29udHJvbHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODcyNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
ZmluYWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAg
ICBUaGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRl
LiBUaGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdp
dHMgdGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAg
ICAgIGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRl
b3MsIHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3Rh
cnRlZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAg
ICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwg
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6Cisg
ICAgICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1
cnJlbnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAg
ICAgIEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAg
ICAgICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxs
eSBoaWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAg
IEFkZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAg
QWRkIHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFy
dGVkKToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhl
IGR1cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAg
ICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9u
IGRpc3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29y
ZSk6CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAg
ICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0
aW9uIG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJl
bWFpbmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRp
YUNvbnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBj
b25kaXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBX
aGVuIGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0
aGUgZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAg
Rm9ybWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVt
YWluaW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUg
Y3VycmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xz
Q2hyb21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1
bmN0aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgor
ICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRp
bWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFD
b250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21p
dW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0
aGUgdGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAg
ICAgIENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgor
ICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3Ig
Q2hyb21pdW0gU2tpYS4KKworMjAxMi0wNi0wOSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFVwZGF0ZSByYW5nZSBzbGlkZXJzIHJlbmRlcmluZyBm
b3Igdm9sdW1lIGFuZCBwbGF5YmFjayBwb3NpdGlvbiBvZiBuZXcgQ2hyb21lIHZpZGVvIGNvbnRy
b2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODg2
MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBu
ZXcgdGVzdHMsIGZpbmFsIHBhdGNoIHdpbGwgY29udGFpbiB0aGUgcmViYXNlbGluZWQgdGVzdHMu
CisKKyAgICAgICAgVGhlIENocm9tZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlz
dWFsIHVwZGF0ZS4gVGhpcyBwYXRjaCBjb250YWlucyB1cGRhdGVzIHRvIHRoZQorICAgICAgICBy
ZW5kZXJpbmcgb2YgdGhlIHJhbmdlIHNsaWRlcnMgZm9yIHRoZSBwbGF5YmFjayBwb3NpdGlvbiBh
bmQgdGhlIHZvbHVtZS4gVGhpcyBpbmNsdWRlcyB0aGUKKyAgICAgICAgY3JlYXRpb24gb2YgYSBz
aGFkb3dQc2V1ZG9JZCB0byBiZSBhYmxlIHRvIHN0eWxlIHRoZSByYW5nZSBzbGlkZXJzIHZpYSBD
U1MsIHRoZSByZW5kZXJpbmcKKyAgICAgICAgb2YgdGhlIHNsaWRlciBiYWNrZ3JvdW5kIGFuZCB0
aGUgaGlnaGxpZ2h0ZWQgcmFuZ2VzLgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJv
bWl1bS5jc3M6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNs
aWRlci1jb250YWluZXIpOgorICAgICAgICBBZGp1c3QgdGhlIHN0eWxpbmcgb2YgdGhlIHNsaWRl
ciBjb250YWluZXIgYmFja2dyb3VuZHMuCisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjot
d2Via2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAgIEFkanVzdCB0aGUgc3R5bGluZyBv
ZiB0aGUgc2xpZGVyIHRodW1icy4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCk6
CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIHNsaWRlciB0aHVtYiBz
aGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6Om1lZGlhU2xpZGVyVGh1bWJTaGFkb3dQ
c2V1ZG9JZCk6CisgICAgICAgIEFkZCBhbiBhY2Nlc3NvciBmdW5jdGlvbiBmb3IgdGhlIG1lZGlh
IHNsaWRlciB0aHVtYiBzaGFkb3dQc2V1ZG9JZC4KKyAgICAgICAgKFdlYkNvcmU6OlNsaWRlclRo
dW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NT
IHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIgdGh1bWJzLgorICAgICAgICAo
V2ViQ29yZTo6VHJhY2tMaW1pdGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICBB
ZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1lIHRvIHRoZSBtZWRpYSBzbGlkZXIg
dGh1bWJzLgorICAgICAgICAoV2ViQ29yZTo6U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6c2hhZG93
UHNldWRvSWQpOgorICAgICAgICBBZGQgYSBkaWZmZXJlbnQgQ1NTIHBzZXVkby1jbGFzcyBuYW1l
IHRvIHRoZSBtZWRpYSBzbGlkZXIgYmFja2dyb3VuZCBjb250YWluZXIuCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKToKKyAgICAgICAgQWRkIGZ1bmN0aW9uIHRv
IGRyYXcgcm91bmRlZCBiYWNrZ3JvdW5kIG9mIHNsaWRlcnMgaW4gYSBkYXJrIGNvbG9yLgorICAg
ICAgICAoV2ViQ29yZTo6cGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodCk6CisgICAgICAgIEFkZCBm
dW5jdGlvbiB0byBkcmF3IGEgaGlnaGxpZ2h0ZWQgZ3JleSByZWdpb24gb24gdGhlIHNsaWRlcnMs
IHdoaWNoIGlzIHJvdW5kZWQgb25seSBhdAorICAgICAgICBpdHMgZW5kcy4KKyAgICAgICAgKFdl
YkNvcmU6OnBhaW50TWVkaWFTbGlkZXIpOgorICAgICAgICBVcGRhdGUgdGhlIGJhY2tncm91bmQg
YW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHBsYXliYWNrIHBvc2l0aW9uIHNs
aWRlciBieSBtYWtpbmcKKyAgICAgICAgdXNlIG9mIHRoZSBuZXcgaGVscGVyIGZ1bmN0aW9ucy4K
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXIpOgorICAgICAgICBVcGRh
dGUgdGhlIGJhY2tncm91bmQgYW5kIGJ1ZmZlcmVkIHJhbmdlIHJlbmRlcmluZ3Mgb24gdGhlIHZv
bHVtZSBzbGlkZXIgYnkgbWFraW5nCisgICAgICAgIHVzZSBvZiB0aGUgbmV3IGhlbHBlciBmdW5j
dGlvbnMuCisKKzIwMTItMDYtMDYgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHN0eWxpbmcgb2YgdGhlIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODgyOTcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBObyBuZXcgdGVzdHMuIChmaW5hbCBwYXRjaCB3aWxsIGNvbnRhaW4gdGhlIHJlYmFzZWxpbmVk
IHRlc3RzKQorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2Vpdmlu
ZyBhIHZpc3VhbCB1cGRhdGUuIFRoaXMgcGF0Y2ggaW5jbHVkZXMgQ1NTIGNoYW5nZXMsCisgICAg
ICAgIHRoZSByZW1vdmFsIG9mIHRoZSBub3cgbm8gbG9uZ2VyIG5lZWRlZCBjb250cm9scyBiYWNr
Z3JvdW5kIGRpdiwgYW5kIHRoZSBpbnRyb2R1Y3Rpb24gb2YKKyAgICAgICAgbmV3IGltYWdlcyBm
b3IgdGhlIGJ1dHRvbnMuCisKKyAgICAgICAgKiBjc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNz
czoKKyAgICAgICAgKGF1ZGlvKToKKyAgICAgICAgQWRqdXN0IGhlaWdodCBvZiBhdWRpbyBjb250
cm9scy4KKyAgICAgICAgKDo6LXdlYmtpdC1tZWRpYS1jb250cm9scyk6CisgICAgICAgIFVzZSBm
bGV4Ym94IG9uIG1lZGlhIGNvbnRyb2xzIHNoYWRvdyBET00uCisgICAgICAgIChhdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLWVuY2xvc3VyZSk6CisgICAgICAgIEFkanVzdCBoZWlnaHQsIG1heC13aWR0aCwgdGV4dC1p
bmRlbnQgYW5kIGJveC1zaXppbmcsIGFuZCByZXNldCBwYWRkaW5nIHRvIDAuCisgICAgICAgICh2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUpOgorICAgICAgICBVc2UgNXB4
IHBhZGRpbmcgb25seSBmb3IgdmlkZW8gY29udHJvbHMgYW5kIGFkanVzdCBoZWlnaHQgYWNjb3Jk
aW5nbHkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwpOgorICAgICAgICBVc2UgZmxleGJveCBv
biBwYW5lbCwgYWRqdXN0IGJvdHRvbSBhbGlnbm1lbnQsIGhlaWdodCwgYmFja2dyb3VuZCBjb2xv
ciBhbmQgYm9yZGVyIHJhZGl1cy4KKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
bik6CisgICAgICAgIERpc3BsYXkgYnV0dG9ucyBpbmxpbmUgd2l0aCBmaXhlZCB3aWR0aCBhbmQg
aGVpZ2h0LCB2ZXJ0aWNhbGx5IGNlbnRlcmVkLCBubyBwYWRkaW5nIGFuZAorICAgICAgICA2cHgg
c3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVtZW50ICh0aGlzIHdpbGwgYmUgMTVweCBpbmNsIHRo
ZSBzcGFjZSBpbiB0aGUgaW1hZ2UpLgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0
dG9uKToKKyAgICAgICAgRGlzcGxheSBidXR0b25zIGlubGluZSB3aXRoIGZpeGVkIHdpZHRoIGFu
ZCBoZWlnaHQsIHZlcnRpY2FsbHkgY2VudGVyZWQsIG5vIHBhZGRpbmcgYW5kCisgICAgICAgIDlw
eCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2lsbCBiZSAxNXB4IGluY2wg
dGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtY3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBEaXNwbGF5IHRleHQgYXMgYmxvY2ss
IHdpdGhvdXQgYnJvZGVyLCBhZGp1c3RlZCBoZWlnaHQsIGZvbnQtZmFtaWx5LCBmb250LXNpemUg
YW5kIDlweCBzcGFjZQorICAgICAgICB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQgKHRoaXMgd2ls
bCBiZSAxNXB4IGluY2wgdGhlIHNwYWNlIGluIHRoZSBpbWFnZSkuCisgICAgICAgIChhdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZWxpbmUpOgorICAgICAgICBBZGp1c3QgaGVpZ2h0LCBwYWRkaW5nLCBiYWNrZ3Jv
dW5kLWNvbG9yLCBtaW4td2RpdGggYW5kIDE1cHggc3BhY2UgdG8gbmV4dCBjb250cm9scyBlbGVt
ZW50LgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlcik6CisgICAgICAg
IEFkanVzdCBoZWlnaHQsIG1heC0gYW5kIG1pbi13aWR0aCwgYmFja2dyb3VuZC1jb2xvciBhbmQg
MTVweCBzcGFjZSB0byBuZXh0IGNvbnRyb2xzIGVsZW1lbnQuCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMg
bm90IG5lY2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94Lgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRl
KToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5lY2Vz
c2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250cm9s
bGVyKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciwgd2hpY2ggaXMgbm90IG5l
Y2Vzc2FyeSBhbnkgbG9uZ2VyIGJlY2F1c2Ugb2YgdGhlIHVzZSBvZiBmbGV4Ym94LgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAg
ICAgICBTaG93IHRoZSB0aW1lbGluZSBpbnN0ZWFkIG9mIHRoZSB0aW1lbGluZSBjb250YWluZXIg
d2hlbiByZXNldHRpbmcuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgSGlkZSB0aGUgdGltZWxpbmUgaW5z
dGVhZCBvZiB0aGUgdGltZWxpbmUgY29udGFpbmVyIHdoZW4gcnVubmluZyBpbnRvIGFuIGVycm9y
LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU11dGVCdXR0b24pOgorICAgICAgICBJbnRyb2R1
Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIG11dGUgYnV0dG9uIGFuZCBhZGp1c3QgaXQg
YmFzZWQgb24gdm9sdW1lIGxldmVscy4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFQbGF5
QnV0dG9uKToKKyAgICAgICAgSW50cm9kdWNlIG5ldyBpbWFnZSByZXNvdXJjZXMgZm9yIHRoZSBw
bGF5IGJ1dHRvbi4KKyAgICAgICAgKFdlYkNvcmU6OmdldE1lZGlhU2xpZGVyVGh1bWIpOgorICAg
ICAgICBJbnRyb2R1Y2UgbmV3IGltYWdlIHJlc291cmNlcyBmb3IgdGhlIHBvc2l0aW9uIHNsaWRl
ciB0aHVtYi4KKyAgICAgICAgKFdlYkNvcmU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYik6
CisgICAgICAgIEludHJvZHVjZSBuZXcgaW1hZ2UgcmVzb3VyY2VzIGZvciB0aGUgdm9sdW1lIHNs
aWRlciB0aHVtYi4KKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVk
aWFDb250cm9sc1BhcnQpOgorICAgICAgICBBZGQgdGltZWxpbmUgY29udGFpbmVyIHBhaW50aW5n
IHRvIHRoZSAibm90IHJlYWNoZWQiIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgIFByb3ZpZGUgc2l6ZSBzZXR0aW5ncyBmb3IgdGhlIHBvc2l0aW9uIGFuZCB2b2x1bWUgc2xp
ZGVycy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRq
dXN0TWVkaWFTbGlkZXJUaHVtYlNpemUpOgorICAgICAgICBDYWxjdWxhdGUgY29ycmVjdCB3aWR0
aCBhbmQgaGVpZ2h0IHNldHRpbmdzIGZvciB0aGUgbmV3IGltYWdlIHJlc291cmNlcyBvZiB0aGUg
cG9zaXRpb24gYW5kIHZvbHVtZQorICAgICAgICBzbGlkZXIgdGh1bWJzLgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmg6CisgICAgICAgIChSZW5kZXJUaGVtZUNo
cm9taXVtTWFjKToKKyAgICAgICAgUmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcg
KGkuZS4gdGhlIG1lZGlhIGNvbnRyb2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICBSZW1vdmUgdGltZWxpbmUgY29u
dGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMgYmFja2dyb3VuZCkuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcDoKKyAgICAgICAg
UmVtb3ZlIHRpbWVsaW5lIGNvbnRhaW5lciByZW5kZXJpbmcgKGkuZS4gdGhlIG1lZGlhIGNvbnRy
b2xzIGJhY2tncm91bmQpLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
U2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAgICAgICBSZW1v
dmUgdGltZWxpbmUgY29udGFpbmVyIHJlbmRlcmluZyAoaS5lLiB0aGUgbWVkaWEgY29udHJvbHMg
YmFja2dyb3VuZCkuCisKKzIwMTItMDYtMDUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBDaGFuZ2UgdGhlIHZvbHVtZSBzbGlkZXIgdG8gaG9yaXpv
bnRhbCByZW5kZXJpbmcgZm9yIENocm9tZSB2aWRlbyBjb250cm9scy4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg3ODM1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAodmlzdWFsIHVw
ZGF0ZSB3aWxsIGNvbnRhaW4gcmViYXNlbGluZWQgdGVzdHMpCisKKyAgICAgICAgVGhlIENocm9t
ZSB2aWRlbyBjb250cm9scyBhcmUgcmVjZWl2aW5nIGEgdmlzdWFsIHVwZGF0ZS4gVGhlIHZvbHVt
ZSBzbGlkZXIgaXMgaW5jbHVkZWQgaW50bworICAgICAgICB0aGUgY29udHJvbHMgd2l0aCBob3Jp
em9udGFsIHJlbmRlcmluZywgdGhlIHZvbHVtZSBzbGlkZXIgY29udGFpbmVyIGlzIHJlbW92ZWQu
IFRoZSB2aXN1YWwKKyAgICAgICAgdXBkYXRlIGl0c2VsZiBpcyBpbiBhIHNlcGFyYXRlIHBhdGNo
LgorCisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3M6CisgICAgICAgIChh
dWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24pOgorICAgICAgICBSZW1vdmVkIHJlbGF0aXZlIHBv
c2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVudHMgZXF1YWxseSBpbiBET00g
b3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24pOgorICAgICAgICBS
ZW1vdmVkIGFic29sdXRlIHBvc2l0aW9uaW5nIHRvIHJlbmRlciBhbGwgY29udHJvbHMgZWxlbWVu
dHMgZXF1YWxseSBpbiBET00gb3JkZXIuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lbGluZS1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWVsaW5lLWNvbnRhaW5lcik6CisgICAgICAgIFJlbW92ZWQgYWJzb2x1dGUgcG9zaXRpb25p
bmcgdG8gcmVuZGVyIGFsbCBjb250cm9scyBlbGVtZW50cyBlcXVhbGx5IGluIERPTSBvcmRlci4K
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29u
dGFpbmVyLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRh
aW5lcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5v
dCBuZWNlc3NhcnkgYW55IG1vcmUuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
Y3VycmVudC10aW1lLWRpc3BsYXkpOgorICAgICAgICBSZW1vdmUgZmxleGJveCBhbmQgaW50cm9k
dWNlIGlubGluZSBkaXNwbGF5IHRvIGFsd2F5cyBkaXNwbGF5IHRoaXMgZmllbGQuCisgICAgICAg
IChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLCB2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyKToKKyAgICAgICAgUmVtb3ZlZCBhYnNv
bHV0ZSBwb3NpdGlvbmluZyB0byByZW5kZXIgYWxsIGNvbnRyb2xzIGVsZW1lbnRzIGVxdWFsbHkg
aW4gRE9NIG9yZGVyLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIFJl
bW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIgLSBpdCdzIG5vdCBuZWNlc3NhcnkgYW55IG1v
cmUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpj
cmVhdGUpOgorICAgICAgICBBcHBlbmRlZCB0aGUgdm9sdW1lIHNsaWRlciBhbmQgdGhlIG11dGUg
YnV0dG9uIGRpcmVjdGx5IHRvIHRoZSBwYW5lbCwgcmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRh
aW5lci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250
YWluZXIuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpyZXBvcnRlZEVycm9yKToKKyAgICAgICAgUmVtb3ZlZCB2b2x1bWUgc2xpZGVyIGNvbnRhaW5l
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNo
b3dWb2x1bWVTbGlkZXIpOgorICAgICAgICBSZW1vdmVkIHZvbHVtZSBzbGlkZXIgY29udGFpbmVy
LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
aDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bSk6CisgICAgICAgIFJlbW92ZWQgdm9sdW1lIHNsaWRlciBjb250YWluZXIuCisgICAg
ICAgICogaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Omhhc1ZlcnRpY2FsQXBwZWFyYW5jZSk6CisgICAgICAgIEFsbG93IHVzZSBvZiBob3Jpem9u
dGFsIG1lZGlhIHZvbHVtZSBzbGlkZXIuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTbGlkZXJU
aHVtYjo6bGF5b3V0KToKKyAgICAgICAgUmV1c2UgaGFzVmVydGljYWxBcHBlYXJhbmNlIGZ1bmN0
aW9uLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1l
ZGlhVm9sdW1lU2xpZGVyKToKKyAgICAgICAgQ2hhbmdlIGxpbmUgZHJhd2luZyBmcm9tIHZlcnRp
Y2FsIHRvIGhvcml6b250YWwuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6dXNlc1ZlcnRpY2FsVm9sdW1lU2xpZGVyKToK
KyAgICAgICAgQWRkIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlciBmdW5jdGlvbiB0byBhbGxvdyBo
b3Jpem9udGFsIHZvbHVtZSBzbGlkZXJzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtTWFj
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisg
ICAgICAgIEFkZCB1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIgZnVuY3Rpb24gdG8gYWxsb3cgaG9y
aXpvbnRhbCB2b2x1bWUgc2xpZGVycy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1Ta2lh
Ojp1c2VzVmVydGljYWxWb2x1bWVTbGlkZXIpOgorICAgICAgICBBZGQgdXNlc1ZlcnRpY2FsVm9s
dW1lU2xpZGVyIGZ1bmN0aW9uIHRvIGFsbG93IGhvcml6b250YWwgdm9sdW1lIHNsaWRlcnMuCisK
KzIwMTItMDUtMjggIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9taXVtIHZpZGVv
IGNvbnRyb2xzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODc2ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGVkIHRlc3RzLgorCisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJl
IHJlY2VpdmluZyBhIHZpc3VhbCB1cGRhdGUuIEEgbmV3IGVuY2xvc3VyZSBkaXYgaXMgcmVxdWly
ZWQKKyAgICAgICAgdG8gcHJvdmlkZSBmb3IgYSBvZmZzZXQgc3BhY2UgZnJvbSB0aGUgdmlkZW8n
cyBib3VuZGFyaWVzLiBUaGUgdmlzdWFsIHVwZGF0ZSBpdHNlbGYgaXMgaW4KKyAgICAgICAgYSBz
ZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3Nz
OgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlKToKKyAg
ICAgICAgSW50cm9kdWNlIENTUyBmb3IgZW5jbG9zdXJlIGRpdiBzbyBpdCBkb2Vzbid0IHNob3cg
eWV0LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICBE
ZWZpbml0aW9uIG9mIHRoZSBuZXcgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAg
IERlZmluaXRpb24gb2YgYSBjcmVhdGUgb3BlcmF0b3IgZm9yIHRoZSBuZXcgZW5jbG9zdXJlIGVs
ZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVs
ZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgRGVmaW5pdGlvbiBvZiB0aGUgc2hhZG93
UHNldWRvSWQgb2YgLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgZm9yIHRoZSBlbmNs
b3N1cmUgZGl2LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEluaXRpYWxp
emUgbWVtYmVyIGVsZW1lbnQgZm9yIGVuY2xvc3VyZSBkaXYuCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICBJbnN0YW50
aWF0ZSBlbmNsb3N1cmUgZGl2IGFuZCBhZGQgaW50byBET00gYmV0d2VlbiBjb250cm9scyBhbmQg
cGFuZWwgZWxlbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICBTZXQgbWVkaWEgY29udHJv
bGxlciBmb3IgZW5jbG9zdXJlIGRpdi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZVRleHRUcmFja0Rpc3BsYXkpOgorICAgICAgICBJbnNl
cnQgdGV4dCB0cmFjayBkaXNwbGF5IGNvbnRhaW5lciB0byBlbmNsb3N1cmUgcmF0aGVyIHRoYW4g
cGFuZWwuCisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50OjpzZXRNZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjptZWRpYUNvbnRyb2xsZXIp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
Ojppc01lZGlhQ29udHJvbEVsZW1lbnQpOgorICAgICAgICBBZGQgZGVjbGFyYXRpb24gb2YgdGhl
IG5ldyBlbmNsb3N1cmUgZWxlbWVudCBhbmQgaXRzIG1lbWJlciBmdW5jdGlvbnMuCisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAgICAgICAgQWRkIG1lbWJlciB2
YXJpYWJsZSB0byBjb250cm9scyByb290IGVsZW1lbnQgdG8gaG9sZCB0aGUgZW5jbG9zdXJlIGVs
ZW1lbnQuCisKIDIwMTItMDYtMTEgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBJbnRyb2R1Y2UgYW4gRW5jbG9zdXJlIEVsZW1lbnQgZm9yIENocm9t
aXVtIHZpZGVvIGNvbnRyb2xzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlh
Q29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0No
cm9taXVtLmNzcwppbmRleCBlMjQ5NTYyMDQ1MTU3MWZiNzYyOTU4ZDA1YjU0OGExNDQ3NmZmODI4
Li4zOTZmNjYxZWYwNDE3ODJlMjM1OWRhNzAzM2Q5YzU0YjQ5MWMxYTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtMzEsNyArMzEsNyBAQCBi
b2R5Oi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsKIAogYXVkaW8gewogICAgIHdpZHRoOiAzMDBw
eDsKLSAgICBoZWlnaHQ6IDMycHg7CisgICAgaGVpZ2h0OiAzMHB4OwogfQogCiBhdWRpbzotd2Vi
a2l0LWZ1bGwtcGFnZS1tZWRpYSwgdmlkZW86LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEgewpAQCAt
MzksOTYgKzM5LDc5IEBAIGF1ZGlvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhLCB2aWRlbzotd2Vi
a2l0LWZ1bGwtcGFnZS1tZWRpYSB7CiAgICAgbWF4LXdpZHRoOiAxMDAlOwogfQogCi1hdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLWVuY2xvc3VyZSB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAzMnB4Owot
ICAgIGJvdHRvbTogMDsKKzo6LXdlYmtpdC1tZWRpYS1jb250cm9scyB7CisgICAgZGlzcGxheTog
LXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKKyAgICAtd2Vi
a2l0LWJveC1wYWNrOiBlbmQ7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKIH0KIAot
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwsIHZpZGVvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBhbmVsIHsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIC13
ZWJraXQtYm94LXBhY2s6IGVuZDsKLSAgICBwb3NpdGlvbjogcmVsYXRpdmU7Ci0gICAgb3ZlcmZs
b3c6IHZpc2libGU7Ci0gICAgYm90dG9tOiAwOworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtZW5jbG9zdXJlLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgewog
ICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMzJweDsKLSAgICB6LWluZGV4OiAwOwotICAg
IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTsKKyAgICBtYXgtd2lkdGg6IDgw
MHB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBib3R0b206IDA7CisgICAgdGV4dC1pbmRlbnQ6
IDA7CisgICAgcGFkZGluZzogMDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogfQogCi12
aWRlbzotd2Via2l0LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5l
bCB7Ci0gICAgYm90dG9tOiAwcHg7Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNs
b3N1cmUgeworICAgIHBhZGRpbmc6IDBweCA1cHggNXB4IDVweDsKKyAgICBoZWlnaHQ6IDM1cHg7
CiB9CiAKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wYW5lbCB7Ci0gICAgLXdlYmtpdC1ib3gtYWxpZ246IGVuZDsKKyAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250
YWw7CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1wYWNr
OiBjZW50ZXI7CisgICAgYm90dG9tOiBhdXRvOworICAgIGhlaWdodDogMzBweDsKKyAgICBiYWNr
Z3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAyMCwgMjAsIDAuOCk7CisgICAgYm9yZGVyLXJhZGl1czog
NXB4OwogfQogCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbWVkaWEtbXV0ZS1idXR0b247Ci0gICAgcG9zaXRpb246IHJlbGF0aXZlOwotICAg
IHRvcDogYXV0bzsKLSAgICBib3R0b206IDA7Ci0gICAgcmlnaHQ6IDA7Ci0gICAgbGVmdDogYXV0
bzsKLQotICAgIHdpZHRoOiAzNHB4OwotICAgIGhlaWdodDogMzJweDsKKyAgICBkaXNwbGF5OiBp
bmxpbmU7CisgICAgYm9yZGVyOiBub25lOworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7Cisg
ICAgd2lkdGg6IDM1cHg7CisgICAgaGVpZ2h0OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4
OworICAgIG1hcmdpbjogMCA2cHggMCAwOworICAgIHBhZGRpbmc6IDA7CiB9CiAKIGF1ZGlvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1wbGF5LWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5
LWJ1dHRvbjsKLQotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICB0b3A6IGF1dG87Ci0gICAg
Ym90dG9tOiA3cHg7Ci0gICAgbGVmdDogN3B4OwotICAgIHJpZ2h0OiA2cHg7Ci0KLSAgICB3aWR0
aDogMThweDsKLSAgICBoZWlnaHQ6IDE5cHg7Ci19Ci0KLWF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXRpbWVsaW5lLWNvbnRhaW5lciwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dGltZWxpbmUtY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLXRpbWVs
aW5lLWNvbnRhaW5lcjsKLSAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lOwotICAgIC13ZWJr
aXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVy
OwotICAgIC13ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAx
OwotCi0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogYXV0bzsKLSAgICBib3R0b206
IDA7Ci0gICAgbGVmdDogMzBweDsKLSAgICByaWdodDogMzRweDsKLQotICAgIHdpZHRoOiBhdXRv
OwotICAgIGhlaWdodDogMzJweDsKLQotICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgcmdiYSgy
NTUsIDI1NSwgMjU1LCAwLjIpOwotICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1
LCAyNTUsIDI1NSwgMC4yKTsKKyAgICBkaXNwbGF5OiBpbmxpbmU7CisgICAgYm9yZGVyOiBub25l
OworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgd2lkdGg6IDMwcHg7CisgICAgaGVp
Z2h0OiAzMHB4OworICAgIGxpbmUtaGVpZ2h0OiAzMHB4OworICAgIG1hcmdpbi1sZWZ0OiA5cHg7
CisgICAgbWFyZ2luLXJpZ2h0OiA5cHg7CisgICAgcGFkZGluZzogMDsKIH0KIAotYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5IHsKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEt
Y3VycmVudC10aW1lLWRpc3BsYXk7CiAgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKLSAg
ICBkaXNwbGF5OiAtd2Via2l0LWJveDsKLSAgICAtd2Via2l0LWJveC1mbGV4OiAwOwotICAgIC13
ZWJraXQtYm94LXBhY2s6IGNlbnRlcjsKLSAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOwot
Ci0gICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBkaXNwbGF5OiBibG9jazsKKyAgICBib3JkZXI6
IG5vbmU7CiAgICAgY3Vyc29yOiBkZWZhdWx0OwogCi0gICAgbGluZS1oZWlnaHQ6IDIxcHg7Ci0g
ICAgaGVpZ2h0OiAyMHB4OwotICAgIHdpZHRoOiA1OHB4OworICAgIGhlaWdodDogMzBweDsKKyAg
ICBtYXJnaW46IDAgOXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOwogCi0gICAgdGV4dC1hbGlnbjog
Y2VudGVyOwotICAgIGZvbnQtZmFtaWx5OiBBcmlhbDsKLSAgICBmb250LXNpemU6IDE2cHg7Cisg
ICAgbGluZS1oZWlnaHQ6IDMwcHg7CisgICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2Es
IHNhbnMtc2VyaWY7CisgICAgZm9udC1zaXplOiAxM3B4OwogICAgIGZvbnQtd2VpZ2h0OiBib2xk
OwogICAgIGNvbG9yOiB3aGl0ZTsKIApAQCAtMTQzLDQwICsxMjYsNDggQEAgYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2wKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZSB7CiAgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS1zbGlkZXI7CiAgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7Ci0gICAgYm94LXNp
emluZzogYm9yZGVyLWJveDsKICAgICAtd2Via2l0LWJveC1mbGV4OiAxOwotCi0gICAgcGFkZGlu
ZzogMHB4OwotICAgIG1hcmdpbjogMHB4IDZweDsKLSAgICBoZWlnaHQ6IDE4cHg7Ci0KLSAgICBi
b3JkZXItY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTsKLSAgICBib3JkZXItc3R5bGU6
IHNvbGlkOwotICAgIGJvcmRlci13aWR0aDogMXB4OwotICAgIGJvcmRlci1yYWRpdXM6IDJweDsK
LSAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMDgpOwotICAgIGNv
bG9yOiByZ2IoNTAsIDE0MCwgMjIzKTsKLX0KLQotYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyIHsKLSAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlh
LXZvbHVtZS1zbGlkZXItY29udGFpbmVyOwotICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKLSAgICBi
b3R0b206IDMycHg7Ci0KLSAgICB3aWR0aDogMzRweDsKLSAgICBoZWlnaHQ6IDEwMHB4OwotCi0g
ICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpOworICAgIGhlaWdodDogOHB4
OworICAgIG1hcmdpbjogMCAxNXB4IDAgMDsKKyAgICBwYWRkaW5nOiAwOworICAgIGJhY2tncm91
bmQtY29sb3I6IHRyYW5zcGFyZW50OworICAgIG1pbi13aWR0aDogMjVweDsKIH0KIAogYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdm9sdW1lLXNsaWRlciB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRp
YS12b2x1bWUtc2xpZGVyOwotICAgIGRpc3BsYXk6IGlubGluZTsKLSAgICBwb3NpdGlvbjogYWJz
b2x1dGU7Ci0KLSAgICB0b3A6IDEwcHg7Ci0gICAgbGVmdDogMTJweDsKKyAgICBkaXNwbGF5OiAt
d2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1mbGV4OiAxOworICAgIGhlaWdodDogOHB4Owor
ICAgIG1heC13aWR0aDogNzBweDsKKyAgICBtYXJnaW46IDAgMTVweCAwIDA7CisgICAgcGFkZGlu
ZzogMDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICBtaW4td2lkdGg6
IDE1cHg7Cit9CiAKLSAgICB3aWR0aDogMTBweDsKLSAgICBoZWlnaHQ6IDgwcHg7CisvKiBGSVhN
RSB0aGVzZSBzaG91bGRuJ3QgdXNlIHNwZWNpYWwgcHNldWRvU2hhZG93SWRzLCBidXQgbmljZXIg
cnVsZXMuCisgICBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRh
aWw/aWQ9MTEyNTA4CisgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NjIyMTgKKyovCitpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci1jb250
YWluZXIgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQtYm94LWFsaWdu
OiBjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOyAvKiBUaGlzIHBy
b3BlcnR5IGlzIHVwZGF0ZWQgYnkgQysrIGNvZGUuICovCisgICAgLXdlYmtpdC1ib3gtc2l6aW5n
OiBib3JkZXItYm94OworICAgIGhlaWdodDogMTAwJTsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBi
b3JkZXI6IDFweCBzb2xpZCByZ2IoMTMwLCAxMzAsIDEzMCk7CisgICAgYm9yZGVyLXJhZGl1czog
NHB4OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiBCYWNrZ3JvdW5kIGRy
YXdpbmcgaXMgbWFuYWdlZCBieSBDKysgY29kZSB0byBkcmF3IHJhbmdlcy4gKi8KIH0KKworaW5w
dXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIgeworICAgIGRpc3Bs
YXk6IGJsb2NrOworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogc2xpZGVydGh1bWItaG9yaXpvbnRh
bDsKKyAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgcG9zaXRpb246IHJl
bGF0aXZlOworICAgIGJvdHRvbTogMXB4OworICAgIG1hcmdpbi1sZWZ0OiAtN3B4OworICAgIG1h
cmdpbi1yaWdodDogLTdweDsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDE0MGExODRkMjljZmYwNjRjM2U5NTRmZTZkNDdhMDg2
ODA5YmM1YWYuLjc4ZDExNzgxMGUxODgxODBiMTNmNmQxNjQ2MjRlNTNjODA5NTg3MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC02OCwxMSArNjgsMTAgQEAgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1
bWVudCogZG9jdW0KICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDApCiAgICAgLCBtX3BsYXlCdXR0
b24oMCkKICAgICAsIG1fY3VycmVudFRpbWVEaXNwbGF5KDApCisgICAgLCBtX2R1cmF0aW9uRGlz
cGxheSgwKQogICAgICwgbV90aW1lbGluZSgwKQotICAgICwgbV90aW1lbGluZUNvbnRhaW5lcigw
KQogICAgICwgbV9wYW5lbE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCi0g
ICAgLCBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcigwKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX01F
RElBX0NPTlRST0xTKQogICAgICwgbV9mdWxsc2NyZWVuQnV0dG9uKDApCiAjZW5kaWYKQEAgLTEx
Miw1NCArMTExLDQxIEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bT4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlCiAgICAgaWYgKGVjKQogICAg
ICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5l
ckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWlu
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRp
bWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5l
ID0gdGltZWxpbmUuZ2V0KCk7Ci0gICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKHRp
bWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0aW1l
bGluZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1
cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6
OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0g
Y3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRD
aGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgY29udHJv
bHMtPm1fY3VycmVudFRpbWVEaXNwbGF5LT5oaWRlKCk7CisgICAgcGFuZWwtPmFwcGVuZENoaWxk
KGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgY29udHJvbHMtPm1fdGltZWxpbmVDb250YWluZXIgPSB0
aW1lbGluZUNvbnRhaW5lci5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmVD
b250YWluZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7Ci0gICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKLQotICAgIFJlZlB0cjxIVE1MRGl2RWxlbWVudD4gcGFuZWxWb2x1bWVDb250cm9sQ29u
dGFpbmVyID0gSFRNTERpdkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0KLSAgICBSZWZQdHI8
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1lU2xpZGVyQ29u
dGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRl
KGRvY3VtZW50KTsKLQotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOwotICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICB2
b2x1bWVTbGlkZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0
cnVlKTsKLSAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgY29udHJvbHMtPm1f
dm9sdW1lU2xpZGVyQ29udGFpbmVyID0gdm9sdW1lU2xpZGVyQ29udGFpbmVyLmdldCgpOwotICAg
IHBhbmVsVm9sdW1lQ29udHJvbENvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9sdW1lU2xpZGVyQ29u
dGFpbmVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRp
bWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9s
cy0+bV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwt
PmFwcGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBp
ZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNv
bnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKLSAgICBw
YW5lbFZvbHVtZUNvbnRyb2xDb250YWluZXItPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxWb2x1bWVDb250cm9sQ29udGFpbmVyLCBl
YywgdHJ1ZSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNs
aWRlciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7
CisgICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOworICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX01FRElBX0NPTlRST0xT
KQogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNj
cmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBjb250cm9scy0+bV9mdWxsc2NyZWVuQnV0
dG9uID0gZnVsbHNjcmVlbkJ1dHRvbi5nZXQoKTsKLSAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVs
bHNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBlbmNsb3N1cmUtPmFwcGVu
ZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVj
KQogICAgICAgICByZXR1cm4gMDsKICNlbmRpZgpAQCAtMTg3LDE2ICsxNzMsMTQgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFD
b250cm9sbGVySW50ZXJmYWMKICAgICAgICAgbV9wbGF5QnV0dG9uLT5zZXRNZWRpYUNvbnRyb2xs
ZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fY3VycmVudFRpbWVEaXNwbGF5KQogICAgICAgICBt
X2N1cnJlbnRUaW1lRGlzcGxheS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAg
IGlmIChtX2R1cmF0aW9uRGlzcGxheSkKKyAgICAgICAgbV9kdXJhdGlvbkRpc3BsYXktPnNldE1l
ZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKICAgICBpZiAobV90aW1lbGluZSkKICAgICAgICAg
bV90aW1lbGluZS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwotICAgIGlmIChtX3Rp
bWVsaW5lQ29udGFpbmVyKQotICAgICAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5zZXRNZWRpYUNv
bnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYgKG1fcGFuZWxNdXRlQnV0dG9uKQogICAgICAg
ICBtX3BhbmVsTXV0ZUJ1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAg
IGlmIChtX3ZvbHVtZVNsaWRlcikKICAgICAgICAgbV92b2x1bWVTbGlkZXItPnNldE1lZGlhQ29u
dHJvbGxlcihjb250cm9sbGVyKTsKLSAgICBpZiAobV92b2x1bWVTbGlkZXJDb250YWluZXIpCi0g
ICAgICAgIG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJv
bGxlcik7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fTUVESUFfQ09OVFJPTFMpCiAgICAgaWYgKG1f
ZnVsbHNjcmVlbkJ1dHRvbikKICAgICAgICAgbV9mdWxsc2NyZWVuQnV0dG9uLT5zZXRNZWRpYUNv
bnRyb2xsZXIoY29udHJvbGxlcik7CkBAIC0yMjIsNyArMjA2LDYgQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpoaWRlKCkKIHsKICAgICBtX3BhbmVsLT5zZXRJc0Rpc3Bs
YXllZChmYWxzZSk7CiAgICAgbV9wYW5lbC0+aGlkZSgpOwotICAgIG1fdm9sdW1lU2xpZGVyQ29u
dGFpbmVyLT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bTo6bWFrZU9wYXF1ZSgpCkBAIC0yMzMsNyArMjE2LDYgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjptYWtlT3BhcXVlKCkKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6bWFrZVRyYW5zcGFyZW50KCkKIHsKICAgICBtX3BhbmVsLT5tYWtlVHJhbnNw
YXJlbnQoKTsKLSAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5lci0+aGlkZSgpOwogfQogCiB2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KCkKQEAgLTI0Niw3ICsyMjgs
MTEgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXNldCgpCiAKICAg
ICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFDb250cm9sbGVyLT5kdXJhdGlvbigpOwogICAgIG1f
dGltZWxpbmUtPnNldER1cmF0aW9uKGR1cmF0aW9uKTsKLSAgICBtX3RpbWVsaW5lQ29udGFpbmVy
LT5zaG93KCk7CisgICAgbV90aW1lbGluZS0+c2hvdygpOworCisgICAgbV9kdXJhdGlvbkRpc3Bs
YXktPnNldElubmVyVGV4dChwYWdlLT50aGVtZSgpLT5mb3JtYXRNZWRpYUNvbnRyb2xzVGltZShk
dXJhdGlvbiksIEFTU0VSVF9OT19FWENFUFRJT04pOworICAgIG1fZHVyYXRpb25EaXNwbGF5LT5z
ZXRDdXJyZW50VmFsdWUoZHVyYXRpb24pOworCiAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24o
bV9tZWRpYUNvbnRyb2xsZXItPmN1cnJlbnRUaW1lKCkpOwogICAgIHVwZGF0ZVRpbWVEaXNwbGF5
KCk7CiAKQEAgLTI2NSw2ICsyNTEsOCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW06OnBsYXliYWNrU3RhcnRlZCgpCiB7CiAgICAgbV9wbGF5QnV0dG9uLT51cGRhdGVEaXNw
bGF5VHlwZSgpOwogICAgIG1fdGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFDb250cm9sbGVy
LT5jdXJyZW50VGltZSgpKTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+c2hvdygpOworICAg
IG1fZHVyYXRpb25EaXNwbGF5LT5oaWRlKCk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKIH0K
IApAQCAtMjk0LDYgKzI4MiwxMiBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06OnVwZGF0ZVRpbWVEaXNwbGF5KCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsK
IAorICAgIC8vIEFmdGVyIHNlZWssIGhpZGUgZHVyYXRpb24gZGlzcGxheSBhbmQgc2hvdyBjdXJy
ZW50IHRpbWUuCisgICAgaWYgKG5vdyA+IDApIHsKKyAgICAgICAgbV9jdXJyZW50VGltZURpc3Bs
YXktPnNob3coKTsKKyAgICAgICAgbV9kdXJhdGlvbkRpc3BsYXktPmhpZGUoKTsKKyAgICB9CisK
ICAgICAvLyBBbGxvdyB0aGUgdGhlbWUgdG8gZm9ybWF0IHRoZSB0aW1lLgogICAgIEV4Y2VwdGlv
bkNvZGUgZWM7CiAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldElubmVyVGV4dChwYWdlLT50
aGVtZSgpLT5mb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUobm93LCBkdXJhdGlvbiksIGVj
KTsKQEAgLTMwNiwxMiArMzAwLDEyIEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6cmVwb3J0ZWRFcnJvcigpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5oaWRlKCk7CisgICAgbV90aW1lbGluZS0+aGlkZSgp
OwogICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5oaWRlKCk7Ci0gICAgbV92b2x1bWVTbGlkZXJDb250
YWluZXItPmhpZGUoKTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9NRURJQV9DT05UUk9MUykKICAg
ICBtX2Z1bGxzY3JlZW5CdXR0b24tPmhpZGUoKTsKICNlbmRpZgorICAgIG1fdm9sdW1lU2xpZGVy
LT5oaWRlKCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBk
YXRlU3RhdHVzRGlzcGxheSgpCkBAIC0zODEsNyArMzc1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpzaG93Vm9sdW1lU2xpZGVyKCkKICAgICBpZiAoIW1fbWVkaWFD
b250cm9sbGVyLT5oYXNBdWRpbygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3ZvbHVtZVNs
aWRlckNvbnRhaW5lci0+c2hvdygpOworICAgIG1fdm9sdW1lU2xpZGVyLT5zaG93KCk7CiB9CiAK
ICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggMjQ5
YzZhMGE2YTUwZWNiNGRmM2Q1M2QzYzZlY2RjMjcyNTAwOGMxYS4uNmJjMzhkY2I4MDFlYjNmNGJl
ZDcwZWU3MTg5NjNhZmU1OWJhZDU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNDAs
NiArNDAsNyBAQCBjbGFzcyBFdmVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRv
bkVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1l
ZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xU
aW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ7CkBAIC00Nyw3ICs0OCw2IEBAIGNsYXNz
IE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVs
aW5lQ29udGFpbmVyRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50
OwogY2xhc3MgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDsKLWNsYXNzIE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xQYW5l
bEVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ7CiBj
bGFzcyBNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2U7CkBAIC0xMzUsMTEgKzEzNSwxMSBAQCBwcml2
YXRlOgogCiAgICAgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQqIG1fcGxheUJ1dHRvbjsK
ICAgICBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50KiBtX2N1cnJlbnRUaW1l
RGlzcGxheTsKKyAgICBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQqIG1f
ZHVyYXRpb25EaXNwbGF5OwogICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudCogbV90aW1l
bGluZTsKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQqIG1fdGltZWxp
bmVDb250YWluZXI7CiAgICAgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudCogbV9w
YW5lbE11dGVCdXR0b247CiAgICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCogbV92
b2x1bWVTbGlkZXI7Ci0gICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dCogbV92b2x1bWVTbGlkZXJDb250YWluZXI7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fTUVESUFf
Q09OVFJPTFMpCiAgICAgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQqIG1fZnVs
bHNjcmVlbkJ1dHRvbjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NsaWRlclRodW1iRWxlbWVudC5jcHAKaW5kZXggNGU3MTRhMDM5MWU0NmNiMWVkMmJhMWVlYTU0
MTQyYjI3YjUwOTQ0Ni4uYjUzMzk1OTlkMGY4Y2FlMTRjOTAzMzlmOGE2N2E1ODE4YzBlZWI4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU2xpZGVyVGh1bWJFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TbGlkZXJUaHVtYkVsZW1lbnQu
Y3BwCkBAIC02Miw3ICs2MiwxMCBAQCBpbmxpbmUgc3RhdGljIGJvb2wgaGFzVmVydGljYWxBcHBl
YXJhbmNlKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0KQogewogICAgIEFTU0VSVChpbnB1dC0+cmVu
ZGVyZXIoKSk7CiAgICAgUmVuZGVyU3R5bGUqIHNsaWRlclN0eWxlID0gaW5wdXQtPnJlbmRlcmVy
KCktPnN0eWxlKCk7Ci0gICAgcmV0dXJuIHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gU2xp
ZGVyVmVydGljYWxQYXJ0IHx8IHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkgPT0gTWVkaWFWb2x1
bWVTbGlkZXJQYXJ0OworICAgIFJlbmRlclRoZW1lKiBzbGlkZXJUaGVtZSA9IGlucHV0LT5yZW5k
ZXJlcigpLT50aGVtZSgpOworCisgICAgcmV0dXJuIHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkg
PT0gU2xpZGVyVmVydGljYWxQYXJ0CisgICAgICAgIHx8IChzbGlkZXJTdHlsZS0+YXBwZWFyYW5j
ZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyUGFydCAmJiBzbGlkZXJUaGVtZS0+dXNlc1ZlcnRpY2Fs
Vm9sdW1lU2xpZGVyKCkpOwogfQogCiBTbGlkZXJUaHVtYkVsZW1lbnQqIHNsaWRlclRodW1iRWxl
bWVudE9mKE5vZGUqIG5vZGUpCkBAIC0xMDgsNyArMTExLDcgQEAgdm9pZCBSZW5kZXJTbGlkZXJU
aHVtYjo6bGF5b3V0KCkKICAgICAvLyBEbyBub3QgY2FzdCBub2RlKCkgdG8gU2xpZGVyVGh1bWJF
bGVtZW50LiBUaGlzIHJlbmRlcmVyIGlzIHVzZWQgZm9yCiAgICAgLy8gVHJhY2tMaW1pdEVsZW1l
bnQgdG9vLgogICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gbm9kZSgpLT5zaGFkb3dBbmNl
c3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKLSAgICBib29sIGlzVmVydGljYWwgPSBzdHls
ZSgpLT5hcHBlYXJhbmNlKCkgPT0gU2xpZGVyVGh1bWJWZXJ0aWNhbFBhcnQgfHwgc3R5bGUoKS0+
YXBwZWFyYW5jZSgpID09IE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OworICAgIGJvb2wgaXNW
ZXJ0aWNhbCA9IGhhc1ZlcnRpY2FsQXBwZWFyYW5jZShpbnB1dCk7CiAKICAgICBkb3VibGUgZnJh
Y3Rpb24gPSBjb252ZXJ0SW5wdXROdW1iZXJUb0RvdWJsZShzbGlkZXJQb3NpdGlvbihpbnB1dCkg
KiAxMDApOwogICAgIGlmIChpc1ZlcnRpY2FsKQpAQCAtMzIxLDEyICszMjQsMzggQEAgSFRNTElu
cHV0RWxlbWVudCogU2xpZGVyVGh1bWJFbGVtZW50Ojpob3N0SW5wdXQoKSBjb25zdAogICAgIHJl
dHVybiBzaGFkb3dBbmNlc3Rvck5vZGUoKS0+dG9JbnB1dEVsZW1lbnQoKTsKIH0KIAotY29uc3Qg
QXRvbWljU3RyaW5nJiBTbGlkZXJUaHVtYkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
K3N0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQog
ewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCIt
d2Via2l0LXNsaWRlci10aHVtYiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IEF0
b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7CiAgICAg
cmV0dXJuIHNsaWRlclRodW1iOwogfQogCitzdGF0aWMgY29uc3QgQXRvbWljU3RyaW5nJiBtZWRp
YVNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKQoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
Y29uc3QgQXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlclRodW1iLCAoIi13ZWJraXQtbWVkaWEtc2xp
ZGVyLXRodW1iIikpOworICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOworfQorCitjb25zdCBB
dG9taWNTdHJpbmcmIFNsaWRlclRodW1iRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAor
eworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0gaG9zdElucHV0KCk7CisgICAgaWYgKCFp
bnB1dCkKKyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKworICAg
IFJlbmRlclN0eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOwor
ICAgIHN3aXRjaCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFT
bGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRp
YVZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoK
KyAgICBjYXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRp
YUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNs
aWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4g
c2xpZGVyVGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworICAgIH0KK30KKwogLy8gLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogaW5saW5lIFRyYWNrTGltaXRlckVsZW1lbnQ6OlRyYWNr
TGltaXRlckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtMzUxLDggKzM4MCwyMiBAQCBS
ZW5kZXJPYmplY3QqIFRyYWNrTGltaXRlckVsZW1lbnQ6OmNyZWF0ZVJlbmRlcmVyKFJlbmRlckFy
ZW5hKiBhcmVuYSwgUmVuZGVyU3R5bAogCiBjb25zdCBBdG9taWNTdHJpbmcmIFRyYWNrTGltaXRl
ckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsKLSAgICBERUZJTkVfU1RBVElDX0xP
Q0FMKEF0b21pY1N0cmluZywgc2xpZGVyVGh1bWIsICgiLXdlYmtpdC1zbGlkZXItdGh1bWIiKSk7
Ci0gICAgcmV0dXJuIHNsaWRlclRodW1iOworICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0ID0g
c2hhZG93QW5jZXN0b3JOb2RlKCktPnRvSW5wdXRFbGVtZW50KCk7CisgICAgaWYgKCFpbnB1dCkK
KyAgICAgICAgcmV0dXJuIHNsaWRlclRodW1iU2hhZG93UHNldWRvSWQoKTsKKworICAgIFJlbmRl
clN0eWxlKiBzbGlkZXJTdHlsZSA9IGlucHV0LT5yZW5kZXJlcigpLT5zdHlsZSgpOworICAgIHN3
aXRjaCAoc2xpZGVyU3R5bGUtPmFwcGVhcmFuY2UoKSkgeworICAgIGNhc2UgTWVkaWFTbGlkZXJQ
YXJ0OgorICAgIGNhc2UgTWVkaWFTbGlkZXJUaHVtYlBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVt
ZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydDoKKyAgICBj
YXNlIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXJUaHVtYlBhcnQ6CisgICAgICAgIHJldHVybiBtZWRpYVNsaWRlclRo
dW1iU2hhZG93UHNldWRvSWQoKTsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gc2xpZGVy
VGh1bWJTaGFkb3dQc2V1ZG9JZCgpOworICAgIH0KIH0KIAogVHJhY2tMaW1pdGVyRWxlbWVudCog
dHJhY2tMaW1pdGVyRWxlbWVudE9mKE5vZGUqIG5vZGUpCkBAIC0zODUsOCArNDI4LDI1IEBAIFJl
bmRlck9iamVjdCogU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVy
QXJlbmEqIGFyZW5hLCBSZW5kZXJTCiAKIGNvbnN0IEF0b21pY1N0cmluZyYgU2xpZGVyQ29udGFp
bmVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewotICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBzbGlkZXJUaHVtYiwgKCItd2Via2l0LXNsaWRlci1jb250YWlu
ZXIiKSk7Ci0gICAgcmV0dXJuIHNsaWRlclRodW1iOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
QXRvbWljU3RyaW5nLCBtZWRpYVNsaWRlckNvbnRhaW5lciwgKCItd2Via2l0LW1lZGlhLXNsaWRl
ci1jb250YWluZXIiKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIHNs
aWRlckNvbnRhaW5lciwgKCItd2Via2l0LXNsaWRlci1jb250YWluZXIiKSk7CisKKyAgICBIVE1M
SW5wdXRFbGVtZW50KiBpbnB1dCA9IHNoYWRvd0FuY2VzdG9yTm9kZSgpLT50b0lucHV0RWxlbWVu
dCgpOworICAgIGlmICghaW5wdXQpCisgICAgICAgIHJldHVybiBzbGlkZXJDb250YWluZXI7CisK
KyAgICBSZW5kZXJTdHlsZSogc2xpZGVyU3R5bGUgPSBpbnB1dC0+cmVuZGVyZXIoKS0+c3R5bGUo
KTsKKyAgICBzd2l0Y2ggKHNsaWRlclN0eWxlLT5hcHBlYXJhbmNlKCkpIHsKKyAgICBjYXNlIE1l
ZGlhU2xpZGVyUGFydDoKKyAgICBjYXNlIE1lZGlhU2xpZGVyVGh1bWJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBh
cnQ6CisgICAgY2FzZSBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0OgorICAgIGNhc2Ug
TWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0OgorICAgICAgICByZXR1cm4gbWVk
aWFTbGlkZXJDb250YWluZXI7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHNsaWRlckNv
bnRhaW5lcjsKKyAgICB9CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggNzJlMTJjODgxYmM3
M2ZkMDVlOTY1YTk4YjBkYjliZjZiMDhlZThmZi4uZDkwODI1YmZjYzRlNDYxZGIwODRjMTQ5M2U3
YjYzMGMzZjQ1NTJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTc0LDE0ICs3NCwyMSBAQCBzdGF0
aWMgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3Qg
UGFpbnRJbmZvJiBwYWludEluZgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgc3RhdGljIEltYWdlKiBzb3VuZEZ1bGwgPSBwbGF0Zm9ybVJlc291cmNl
KCJtZWRpYVNvdW5kRnVsbCIpOwotICAgIHN0YXRpYyBJbWFnZSogc291bmROb25lID0gcGxhdGZv
cm1SZXNvdXJjZSgibWVkaWFTb3VuZE5vbmUiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIHNvdW5kRGlz
YWJsZWQgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNvdW5kRGlzYWJsZWQiKTsKKyAgICBzdGF0
aWMgSW1hZ2UqIHNvdW5kTGV2ZWwzID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTb3Vu
ZExldmVsMyIpOworICAgIHN0YXRpYyBJbWFnZSogc291bmRMZXZlbDIgPSBwbGF0Zm9ybVJlc291
cmNlKCJtZWRpYXBsYXllclNvdW5kTGV2ZWwyIik7CisgICAgc3RhdGljIEltYWdlKiBzb3VuZExl
dmVsMSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyU291bmRMZXZlbDEiKTsKKyAgICBz
dGF0aWMgSW1hZ2UqIHNvdW5kRGlzYWJsZWQgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXll
clNvdW5kRGlzYWJsZWQiKTsKIAotICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwg
IW1lZGlhRWxlbWVudC0+aGFzQXVkaW8oKSkKKyAgICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1l
bnQpIHx8ICFtZWRpYUVsZW1lbnQtPmhhc0F1ZGlvKCkgfHwgbWVkaWFFbGVtZW50LT5tdXRlZCgp
IHx8IG1lZGlhRWxlbWVudC0+dm9sdW1lKCkgPD0gMCkKICAgICAgICAgcmV0dXJuIHBhaW50TWVk
aWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kRGlzYWJsZWQpOwogCi0gICAg
cmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhRWxl
bWVudC0+bXV0ZWQoKSA/IHNvdW5kTm9uZTogc291bmRGdWxsKTsKKyAgICBpZiAobWVkaWFFbGVt
ZW50LT52b2x1bWUoKSA8PSAwLjMzKQorICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihw
YWludEluZm8uY29udGV4dCwgcmVjdCwgc291bmRMZXZlbDEpOworCisgICAgaWYgKG1lZGlhRWxl
bWVudC0+dm9sdW1lKCkgPD0gMC42NikKKyAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24o
cGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIHNvdW5kTGV2ZWwyKTsKKworICAgIHJldHVybiBwYWlu
dE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBzb3VuZExldmVsMyk7CiB9CiAK
IHN0YXRpYyBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBj
b25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKQEAgLTkwLDkg
Kzk3LDkgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICBpZiAoIW1lZGlhRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXkgPSBw
bGF0Zm9ybVJlc291cmNlKCJtZWRpYVBsYXkiKTsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGF1
c2UgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVBhdXNlIik7Ci0gICAgc3RhdGljIEltYWdlKiBt
ZWRpYVBsYXlEaXNhYmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhUGxheURpc2FibGVkIik7
CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXkgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBs
YXllclBsYXkiKTsKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhUGF1c2UgPSBwbGF0Zm9ybVJlc291
cmNlKCJtZWRpYXBsYXllclBhdXNlIik7CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVBsYXlEaXNh
YmxlZCA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyUGxheURpc2FibGVkIik7CiAKICAg
ICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpKQogICAgICAgICByZXR1cm4gcGFpbnRNZWRp
YUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFQbGF5RGlzYWJsZWQpOwpAQCAt
MTAyLDEwICsxMDksNzUgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKIAogc3RhdGljIEltYWdl
KiBnZXRNZWRpYVNsaWRlclRodW1iKCkKIHsKLSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVy
VGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYVNsaWRlclRodW1iIik7CisgICAgc3RhdGlj
IEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJT
bGlkZXJUaHVtYiIpOwogICAgIHJldHVybiBtZWRpYVNsaWRlclRodW1iOwogfQogCitzdGF0aWMg
dm9pZCBwYWludFJvdW5kZWRTbGlkZXJCYWNrZ3JvdW5kKGNvbnN0IEludFJlY3QmIHJlY3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBzdHlsZSwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0KQoreworICAg
IGludCBib3JkZXJSYWRpdXMgPSByZWN0LmhlaWdodCgpIC8gMjsKKyAgICBJbnRTaXplIHJhZGlp
KGJvcmRlclJhZGl1cywgYm9yZGVyUmFkaXVzKTsKKyAgICBDb2xvciBzbGlkZXJCYWNrZ3JvdW5k
Q29sb3IgPSBDb2xvcigyOSwgMjksIDI5KTsKKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgY29u
dGV4dC0+ZmlsbFJvdW5kZWRSZWN0KHJlY3QsIHJhZGlpLCByYWRpaSwgcmFkaWksIHJhZGlpLCBz
bGlkZXJCYWNrZ3JvdW5kQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGNvbnRleHQt
PnJlc3RvcmUoKTsKK30KKworc3RhdGljIHZvaWQgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChj
b25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUsIEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgZmxvYXQgc3RhcnRGcmFjdGlvbiwgZmxvYXQgd2lkdGhGcmFjdGlvbikK
K3sKKyAgICBpZiAoc3RhcnRGcmFjdGlvbiA8IDApCisgICAgICAgIHN0YXJ0RnJhY3Rpb24gPSAw
OworICAgIGlmICh3aWR0aEZyYWN0aW9uID4gMSkKKyAgICAgICAgd2lkdGhGcmFjdGlvbiA9IDE7
CisgICAgZmxvYXQgZW5kRnJhY3Rpb24gPSBzdGFydEZyYWN0aW9uICsgd2lkdGhGcmFjdGlvbjsK
KyAgICBpZiAoZW5kRnJhY3Rpb24gPiAxKSB7CisgICAgICAgIHdpZHRoRnJhY3Rpb24gPSB3aWR0
aEZyYWN0aW9uIC0gc3RhcnRGcmFjdGlvbjsKKyAgICAgICAgZW5kRnJhY3Rpb24gPSBzdGFydEZy
YWN0aW9uICsgd2lkdGhGcmFjdGlvbjsKKyAgICB9CisKKyAgICAvLyBTZXQgcmVjdGFuZ2xlIHRv
IGhpZ2hsaWdodCByYW5nZS4KKyAgICBJbnRSZWN0IGhpZ2hsaWdodFJlY3QgPSByZWN0OworICAg
IGludCBzdGFydE9mZnNldCA9IHN0YXJ0RnJhY3Rpb24gKiByZWN0LndpZHRoKCk7CisgICAgaW50
IGVuZE9mZnNldCA9IHJlY3Qud2lkdGgoKSAtIGVuZEZyYWN0aW9uICogcmVjdC53aWR0aCgpOwor
ICAgIGludCByYW5nZVdpZHRoID0gd2lkdGhGcmFjdGlvbiAqIHJlY3Qud2lkdGgoKTsKKyAgICBo
aWdobGlnaHRSZWN0Lm1vdmUoc3RhcnRPZmZzZXQsIDApOworICAgIGhpZ2hsaWdodFJlY3Quc2V0
V2lkdGgocmFuZ2VXaWR0aCk7CisKKyAgICAvLyBEb24ndCBib3RoZXIgZHJhd2luZyBhbiBlbXB0
eSBhcmVhLgorICAgIGlmIChoaWdobGlnaHRSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gQ2FsY3VsYXRlIGJvcmRlciByYWRpdXM7IG5lZWQgdG8gYXZvaWQgYmVpbmcg
c21hbGxlciB0aGFuIGhhbGYgdGhlIHNsaWRlciBoZWlnaHQKKyAgICAvLyBiZWNhdXNlIG9mIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDE0My4KKyAgICBpbnQgYm9y
ZGVyUmFkaXVzID0gcmVjdC5oZWlnaHQoKSAvIDI7CisgICAgSW50U2l6ZSByYWRpaShib3JkZXJS
YWRpdXMsIGJvcmRlclJhZGl1cyk7CisKKyAgICAvLyBDYWxjdWxhdGUgd2hpdGUtZ3JleSBncmFk
aWVudC4KKyAgICBJbnRQb2ludCBzbGlkZXJUb3BMZWZ0ID0gaGlnaGxpZ2h0UmVjdC5sb2NhdGlv
bigpOworICAgIEludFBvaW50IHNsaWRlckJvdHRvbUxlZnQgPSBzbGlkZXJUb3BMZWZ0OworICAg
IHNsaWRlckJvdHRvbUxlZnQubW92ZSgwLCBoaWdobGlnaHRSZWN0LmhlaWdodCgpKTsKKyAgICBD
b2xvciBzdGFydENvbG9yID0gQ29sb3IoMjIwLCAyMjAsIDIyMCk7CisgICAgQ29sb3IgZW5kQ29s
b3IgPSBDb2xvcigyNDAsIDI0MCwgMjQwKTsKKyAgICBSZWZQdHI8R3JhZGllbnQ+IGdyYWRpZW50
ID0gR3JhZGllbnQ6OmNyZWF0ZShzbGlkZXJUb3BMZWZ0LCBzbGlkZXJCb3R0b21MZWZ0KTsKKyAg
ICBncmFkaWVudC0+YWRkQ29sb3JTdG9wKDAuMCwgc3RhcnRDb2xvcik7CisgICAgZ3JhZGllbnQt
PmFkZENvbG9yU3RvcCgxLjAsIGVuZENvbG9yKTsKKworICAgIC8vIEZpbGwgaGlnaGxpZ2h0IHJl
Y3RhbmdsZSB3aXRoIGdyYWRpZW50LCBwb3RlbnRpYWxseSByb3VuZGVkIGlmIG9uIGxlZnQgb3Ig
cmlnaHQgZWRnZS4KKyAgICBjb250ZXh0LT5zYXZlKCk7CisgICAgY29udGV4dC0+c2V0RmlsbEdy
YWRpZW50KGdyYWRpZW50KTsKKworICAgIGlmIChzdGFydE9mZnNldCA8IGJvcmRlclJhZGl1cyAm
JiBlbmRPZmZzZXQgPCBib3JkZXJSYWRpdXMpCisgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVk
UmVjdChoaWdobGlnaHRSZWN0LCByYWRpaSwgcmFkaWksIHJhZGlpLCByYWRpaSwgc3RhcnRDb2xv
ciwgQ29sb3JTcGFjZURldmljZVJHQik7CisgICAgZWxzZSBpZiAoc3RhcnRPZmZzZXQgPCBib3Jk
ZXJSYWRpdXMpCisgICAgICAgIGNvbnRleHQtPmZpbGxSb3VuZGVkUmVjdChoaWdobGlnaHRSZWN0
LCByYWRpaSwgSW50U2l6ZSgwLCAwKSwgcmFkaWksIEludFNpemUoMCwgMCksIHN0YXJ0Q29sb3Is
IENvbG9yU3BhY2VEZXZpY2VSR0IpOworICAgIGVsc2UgaWYgKGVuZE9mZnNldCA8IGJvcmRlclJh
ZGl1cykKKyAgICAgICAgY29udGV4dC0+ZmlsbFJvdW5kZWRSZWN0KGhpZ2hsaWdodFJlY3QsIElu
dFNpemUoMCwgMCksIHJhZGlpLCBJbnRTaXplKDAsIDApLCByYWRpaSwgc3RhcnRDb2xvciwgQ29s
b3JTcGFjZURldmljZVJHQik7CisgICAgZWxzZQorICAgICAgICBjb250ZXh0LT5maWxsUmVjdCho
aWdobGlnaHRSZWN0KTsKKworICAgIGNvbnRleHQtPnJlc3RvcmUoKTsKK30KKwogc3RhdGljIGJv
b2wgcGFpbnRNZWRpYVNsaWRlcihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSFRNTE1lZGlhRWxlbWVu
dCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKQEAgLTExNSwy
MyArMTg3LDEwIEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXIoUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjCiAgICAgUmVuZGVyU3R5bGUqIHN0
eWxlID0gb2JqZWN0LT5zdHlsZSgpOwogICAgIEdyYXBoaWNzQ29udGV4dCogY29udGV4dCA9IHBh
aW50SW5mby5jb250ZXh0OwogCi0gICAgLy8gRHJhdyB0aGUgYm9yZGVyIG9mIHRoZSB0aW1lIGJh
ci4KLSAgICAvLyBGSVhNRTogdGhpcyBzaG91bGQgYmUgYSByb3VuZGVkIHJlY3QgYnV0IG5lZWQg
dG8gZml4IEdyYXBoaWNzQ29udGV4dFNraWEgZmlyc3QuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMTQzCi0gICAgY29udGV4dC0+c2F2ZSgpOwotICAg
IGNvbnRleHQtPnNldFNob3VsZEFudGlhbGlhcyh0cnVlKTsKLSAgICBjb250ZXh0LT5zZXRTdHJv
a2VTdHlsZShTb2xpZFN0cm9rZSk7Ci0gICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Ioc3R5bGUt
PnZpc2l0ZWREZXBlbmRlbnRDb2xvcihDU1NQcm9wZXJ0eUJvcmRlckxlZnRDb2xvciksIENvbG9y
U3BhY2VEZXZpY2VSR0IpOwotICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhzdHlsZS0+
Ym9yZGVyTGVmdFdpZHRoKCkpOwotICAgIGNvbnRleHQtPnNldEZpbGxDb2xvcihzdHlsZS0+dmlz
aXRlZERlcGVuZGVudENvbG9yKENTU1Byb3BlcnR5QmFja2dyb3VuZENvbG9yKSwgQ29sb3JTcGFj
ZURldmljZVJHQik7Ci0gICAgY29udGV4dC0+ZHJhd1JlY3QocmVjdCk7Ci0gICAgY29udGV4dC0+
cmVzdG9yZSgpOworICAgIHBhaW50Um91bmRlZFNsaWRlckJhY2tncm91bmQocmVjdCwgc3R5bGUs
IGNvbnRleHQpOwogCiAgICAgLy8gRHJhdyB0aGUgYnVmZmVyZWQgcmFuZ2UuIFNpbmNlIHRoZSBl
bGVtZW50IG1heSBoYXZlIG11bHRpcGxlIGJ1ZmZlcmVkIHJhbmdlcyBhbmQgaXQnZCBiZQogICAg
IC8vIGRpc3RyYWN0aW5nLydidXN5JyB0byBzaG93IGFsbCBvZiB0aGVtLCBzaG93IG9ubHkgdGhl
IGJ1ZmZlcmVkIHJhbmdlIGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgcGxheSBoZWFkLgotICAgIElu
dFJlY3QgYnVmZmVyZWRSZWN0ID0gcmVjdDsKLSAgICBidWZmZXJlZFJlY3QuaW5mbGF0ZSgtc3R5
bGUtPmJvcmRlckxlZnRXaWR0aCgpKTsKLQogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZFRpbWVSYW5nZXMgPSBtZWRpYUVsZW1lbnQtPmJ1ZmZlcmVkKCk7CiAgICAgZmxvYXQgZHVyYXRp
b24gPSBtZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CiAgICAgZmxvYXQgY3VycmVudFRpbWUgPSBt
ZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCk7CkBAIC0xNDYsMjcgKzIwNSw4IEBAIHN0YXRpYyBi
b29sIHBhaW50TWVkaWFTbGlkZXIoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjCiAgICAgICAgIGZsb2F0IHN0YXJ0RnJhY3Rpb24gPSBzdGFydCAvIGR1
cmF0aW9uOwogICAgICAgICBmbG9hdCBlbmRGcmFjdGlvbiA9IGVuZCAvIGR1cmF0aW9uOwogICAg
ICAgICBmbG9hdCB3aWR0aEZyYWN0aW9uID0gZW5kRnJhY3Rpb24gLSBzdGFydEZyYWN0aW9uOwot
ICAgICAgICBidWZmZXJlZFJlY3QubW92ZShzdGFydEZyYWN0aW9uICogYnVmZmVyZWRSZWN0Lndp
ZHRoKCksIDApOwotICAgICAgICBidWZmZXJlZFJlY3Quc2V0V2lkdGgod2lkdGhGcmFjdGlvbiAq
IGJ1ZmZlcmVkUmVjdC53aWR0aCgpKTsKLQotICAgICAgICAvLyBEb24ndCBib3RoZXIgZHJhd2lu
ZyBhbiBlbXB0eSBhcmVhLgotICAgICAgICBpZiAoYnVmZmVyZWRSZWN0LmlzRW1wdHkoKSkKLSAg
ICAgICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgIEludFBvaW50IHNsaWRlclRvcExlZnQg
PSBidWZmZXJlZFJlY3QubG9jYXRpb24oKTsKLSAgICAgICAgSW50UG9pbnQgc2xpZGVyQm90dG9t
TGVmdCA9IHNsaWRlclRvcExlZnQ7Ci0gICAgICAgIHNsaWRlckJvdHRvbUxlZnQubW92ZSgwLCBi
dWZmZXJlZFJlY3QuaGVpZ2h0KCkpOwotCi0gICAgICAgIFJlZlB0cjxHcmFkaWVudD4gZ3JhZGll
bnQgPSBHcmFkaWVudDo6Y3JlYXRlKHNsaWRlclRvcExlZnQsIHNsaWRlckJvdHRvbUxlZnQpOwot
ICAgICAgICBDb2xvciBzdGFydENvbG9yID0gb2JqZWN0LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5k
ZW50Q29sb3IoQ1NTUHJvcGVydHlDb2xvcik7Ci0gICAgICAgIGdyYWRpZW50LT5hZGRDb2xvclN0
b3AoMC4wLCBzdGFydENvbG9yKTsKLSAgICAgICAgZ3JhZGllbnQtPmFkZENvbG9yU3RvcCgxLjAs
IENvbG9yKHN0YXJ0Q29sb3IucmVkKCkgLyAyLCBzdGFydENvbG9yLmdyZWVuKCkgLyAyLCBzdGFy
dENvbG9yLmJsdWUoKSAvIDIsIHN0YXJ0Q29sb3IuYWxwaGEoKSkpOwotCi0gICAgICAgIGNvbnRl
eHQtPnNhdmUoKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlU3R5bGUoTm9TdHJva2UpOwot
ICAgICAgICBjb250ZXh0LT5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQpOwotICAgICAgICBjb250
ZXh0LT5maWxsUmVjdChidWZmZXJlZFJlY3QpOwotICAgICAgICBjb250ZXh0LT5yZXN0b3JlKCk7
CisKKyAgICAgICAgcGFpbnRTbGlkZXJSYW5nZUhpZ2hsaWdodChyZWN0LCBzdHlsZSwgY29udGV4
dCwgc3RhcnRGcmFjdGlvbiwgd2lkdGhGcmFjdGlvbik7CiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIApAQCAtMTg5LDYgKzIyOSw4IEBAIHN0YXRpYyBib29sIHBhaW50TWVkaWFTbGlkZXJU
aHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluCiAgICAg
cmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhU2xp
ZGVyVGh1bWIpOwogfQogCitjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYldpZHRoID0g
MjQ7CisKIHN0YXRpYyBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXIoUmVuZGVyT2JqZWN0KiBv
YmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVt
ZW50KG9iamVjdCk7CkBAIC0xOTYsNTcgKzIzOCwzNCBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlh
Vm9sdW1lU2xpZGVyKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50
SQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBHcmFwaGljc0NvbnRleHQqIGNvbnRleHQg
PSBwYWludEluZm8uY29udGV4dDsKLSAgICBDb2xvciBvcmlnaW5hbENvbG9yID0gY29udGV4dC0+
c3Ryb2tlQ29sb3IoKTsKLSAgICBpZiAob3JpZ2luYWxDb2xvciAhPSBDb2xvcjo6d2hpdGUpCi0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKENvbG9yOjp3aGl0ZSwgQ29sb3JTcGFjZURl
dmljZVJHQik7CisgICAgUmVuZGVyU3R5bGUqIHN0eWxlID0gb2JqZWN0LT5zdHlsZSgpOworCisg
ICAgcGFpbnRSb3VuZGVkU2xpZGVyQmFja2dyb3VuZChyZWN0LCBzdHlsZSwgY29udGV4dCk7CisK
KyAgICAvLyBDYWxjdWxhdGUgdm9sdW1lIHBvc2l0aW9uIGZvciB3aGl0ZSBiYWNrZ3JvdW5kIHJl
Y3RhbmdsZS4KKyAgICBmbG9hdCB2b2x1bWUgPSBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpOworICAg
IGlmIChpc25hbih2b2x1bWUpIHx8IHZvbHVtZSA8IDApCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmICh2b2x1bWUgPiAxKQorICAgICAgICB2b2x1bWUgPSAxOworCisgICAgLy8gQ2FsY3Vs
YXRlIHRoZSBwb3NpdGlvbiByZWxhdGl2ZSB0byB0aGUgY2VudGVyIG9mIHRoZSB0aHVtYi4KKyAg
ICBmbG9hdCB0aHVtYkNlbnRlciA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJXaWR0aCAvIDI7Cisg
ICAgZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKKyAgICBmbG9hdCBw
b3NpdGlvbldpZHRoID0gdm9sdW1lICogKHJlY3Qud2lkdGgoKSAtICh6b29tTGV2ZWwgKiB0aHVt
YkNlbnRlcikpOworICAgIGZsb2F0IGZpbGxXaWR0aCA9IHBvc2l0aW9uV2lkdGggKyAoem9vbUxl
dmVsICogdGh1bWJDZW50ZXIgLyAyKTsKIAotICAgIGludCB4ID0gcmVjdC54KCkgKyByZWN0Lndp
ZHRoKCkgLyAyOwotICAgIGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHgsIHJlY3QueSgpKSwg
IEludFBvaW50KHgsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOworICAgIHBhaW50U2xpZGVy
UmFuZ2VIaWdobGlnaHQocmVjdCwgc3R5bGUsIGNvbnRleHQsIDAuMCwgZmlsbFdpZHRoIC8gcmVj
dC53aWR0aCgpKTsKIAotICAgIGlmIChvcmlnaW5hbENvbG9yICE9IENvbG9yOjp3aGl0ZSkKLSAg
ICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob3JpZ2luYWxDb2xvciwgQ29sb3JTcGFjZURl
dmljZVJHQik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIHN0YXRpYyBib29sIHBhaW50TWVkaWFW
b2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCiB7Ci0gICAgc3RhdGljIEltYWdlKiBtZWRp
YVZvbHVtZVNsaWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFWb2x1bWVTbGlkZXJU
aHVtYiIpOworICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRm
b3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKICAgICByZXR1cm4g
cGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFWb2x1bWVTbGlk
ZXJUaHVtYik7CiB9CiAKLXN0YXRpYyBib29sIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IElu
dFJlY3QmIHJlY3QpCi17Ci0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9Q
YXJlbnRNZWRpYUVsZW1lbnQob2JqZWN0KTsKLSAgICBpZiAoIW1lZGlhRWxlbWVudCkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQgPSBwYWludEluZm8uY29udGV4dDsKLSAgICAgICAgQ29s
b3Igb3JpZ2luYWxDb2xvciA9IGNvbnRleHQtPnN0cm9rZUNvbG9yKCk7Ci0gICAgICAgIGZsb2F0
IG9yaWdpbmFsVGhpY2tuZXNzID0gY29udGV4dC0+c3Ryb2tlVGhpY2tuZXNzKCk7Ci0gICAgICAg
IFN0cm9rZVN0eWxlIG9yaWdpbmFsU3R5bGUgPSBjb250ZXh0LT5zdHJva2VTdHlsZSgpOwotCi0g
ICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVN0eWxlKFNvbGlkU3Ryb2tlKTsKLQotICAgICAgICAv
LyBEcmF3IHRoZSBsZWZ0IGJvcmRlciB1c2luZyBDU1MgZGVmaW5lZCB3aWR0aCBhbmQgY29sb3Iu
Ci0gICAgICAgIGNvbnRleHQtPnNldFN0cm9rZVRoaWNrbmVzcyhvYmplY3QtPnN0eWxlKCktPmJv
cmRlckxlZnRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlQ29sb3Iob2JqZWN0
LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVydHlCb3JkZXJMZWZ0Q29s
b3IpLnJnYigpLCBDb2xvclNwYWNlRGV2aWNlUkdCKTsKLSAgICAgICAgY29udGV4dC0+ZHJhd0xp
bmUoSW50UG9pbnQocmVjdC54KCkgKyAxLCByZWN0LnkoKSksCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgIEludFBvaW50KHJlY3QueCgpICsgMSwgcmVjdC55KCkgKyByZWN0LmhlaWdodCgpKSk7
Ci0KLSAgICAgICAgLy8gRHJhdyB0aGUgcmlnaHQgYm9yZGVyIHVzaW5nIENTUyBkZWZpbmVkIHdp
ZHRoIGFuZCBjb2xvci4KLSAgICAgICAgY29udGV4dC0+c2V0U3Ryb2tlVGhpY2tuZXNzKG9iamVj
dC0+c3R5bGUoKS0+Ym9yZGVyUmlnaHRXaWR0aCgpKTsKLSAgICAgICAgY29udGV4dC0+c2V0U3Ry
b2tlQ29sb3Iob2JqZWN0LT5zdHlsZSgpLT52aXNpdGVkRGVwZW5kZW50Q29sb3IoQ1NTUHJvcGVy
dHlCb3JkZXJSaWdodENvbG9yKS5yZ2IoKSwgQ29sb3JTcGFjZURldmljZVJHQik7Ci0gICAgICAg
IGNvbnRleHQtPmRyYXdMaW5lKEludFBvaW50KHJlY3QueCgpICsgcmVjdC53aWR0aCgpIC0gMSwg
cmVjdC55KCkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICBJbnRQb2ludChyZWN0LngoKSAr
IHJlY3Qud2lkdGgoKSAtIDEsIHJlY3QueSgpICsgcmVjdC5oZWlnaHQoKSkpOwotCi0gICAgICAg
IGNvbnRleHQtPnNldFN0cm9rZUNvbG9yKG9yaWdpbmFsQ29sb3IsIENvbG9yU3BhY2VEZXZpY2VS
R0IpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VUaGlja25lc3Mob3JpZ2luYWxUaGlja25l
c3MpOwotICAgICAgICBjb250ZXh0LT5zZXRTdHJva2VTdHlsZShvcmlnaW5hbFN0eWxlKTsKLSAg
ICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIHBhaW50TWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwpAQCAtMjc0LDggKzI5Myw2IEBA
IGJvb2wgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0
KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlCiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1l
U2xpZGVyKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyVGh1bWI6CiAgICAgICAgIHJldHVybiBwYWludE1lZGlhVm9sdW1lU2xpZGVyVGh1bWIob2Jq
ZWN0LCBwYWludEluZm8sIHJlY3QpOwotICAgIGNhc2UgTWVkaWFUaW1lbGluZUNvbnRhaW5lcjoK
LSAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFUaW1lbGluZUNvbnRhaW5lcihvYmplY3QsIHBhaW50
SW5mbywgcmVjdCk7CiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvbjoKICAgICBj
YXNlIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b246CiAgICAgICAgIHJldHVybiBwYWludE1lZGlh
RnVsbHNjcmVlbkJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7CkBAIC0yODMsNiArMzAw
LDcgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0
b246CiAgICAgY2FzZSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOgogICAgIGNhc2UgTWVkaWFWb2x1
bWVTbGlkZXJDb250YWluZXI6CisgICAgY2FzZSBNZWRpYVRpbWVsaW5lQ29udGFpbmVyOgogICAg
IGNhc2UgTWVkaWFDdXJyZW50VGltZURpc3BsYXk6CiAgICAgY2FzZSBNZWRpYVRpbWVSZW1haW5p
bmdEaXNwbGF5OgogICAgIGNhc2UgTWVkaWFDb250cm9sc1BhbmVsOgpAQCAtMzAxLDI0ICszMTks
NzQgQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Nv
bnN0IGludCBtZWRpYVNsaWRlclRodW1iV2lkdGggPSAzMjsKK2NvbnN0IGludCBtZWRpYVNsaWRl
clRodW1iSGVpZ2h0ID0gMjQ7Citjb25zdCBpbnQgbWVkaWFWb2x1bWVTbGlkZXJUaHVtYkhlaWdo
dCA9IDI0OworCiB2b2lkIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFT
bGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUqIHN0eWxlKQogewotICAgIHN0YXRpYyBJbWFnZSog
bWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhU2xpZGVyVGh1bWIiKTsK
LSAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhVm9sdW1lU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291
cmNlKCJtZWRpYVZvbHVtZVNsaWRlclRodW1iIik7CisgICAgc3RhdGljIEltYWdlKiBtZWRpYVNs
aWRlclRodW1iID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlkZXJUaHVtYiIpOwor
ICAgIHN0YXRpYyBJbWFnZSogbWVkaWFWb2x1bWVTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3Vy
Y2UoIm1lZGlhcGxheWVyVm9sdW1lU2xpZGVyVGh1bWIiKTsKKyAgICBpbnQgd2lkdGggPSAwOwor
ICAgIGludCBoZWlnaHQgPSAwOwogCiAgICAgSW1hZ2UqIHRodW1iSW1hZ2UgPSAwOwotICAgIGlm
IChzdHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KQorICAgIGlmIChz
dHlsZS0+YXBwZWFyYW5jZSgpID09IE1lZGlhU2xpZGVyVGh1bWJQYXJ0KSB7CiAgICAgICAgIHRo
dW1iSW1hZ2UgPSBtZWRpYVNsaWRlclRodW1iOwotICAgIGVsc2UgaWYgKHN0eWxlLT5hcHBlYXJh
bmNlKCkgPT0gTWVkaWFWb2x1bWVTbGlkZXJUaHVtYlBhcnQpCisgICAgICAgIHdpZHRoID0gbWVk
aWFTbGlkZXJUaHVtYldpZHRoOworICAgICAgICBoZWlnaHQgPSBtZWRpYVNsaWRlclRodW1iSGVp
Z2h0OworICAgIH0gZWxzZSBpZiAoc3R5bGUtPmFwcGVhcmFuY2UoKSA9PSBNZWRpYVZvbHVtZVNs
aWRlclRodW1iUGFydCkgewogICAgICAgICB0aHVtYkltYWdlID0gbWVkaWFWb2x1bWVTbGlkZXJU
aHVtYjsKKyAgICAgICAgd2lkdGggPSBtZWRpYVZvbHVtZVNsaWRlclRodW1iV2lkdGg7CisgICAg
ICAgIGhlaWdodCA9IG1lZGlhVm9sdW1lU2xpZGVyVGh1bWJIZWlnaHQ7CisgICAgfQogCiAgICAg
ZmxvYXQgem9vbUxldmVsID0gc3R5bGUtPmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAodGh1bWJJ
bWFnZSkgewotICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4o
dGh1bWJJbWFnZS0+d2lkdGgoKSAqIHpvb21MZXZlbCksIEZpeGVkKSk7Ci0gICAgICAgIHN0eWxl
LT5zZXRIZWlnaHQoTGVuZ3RoKHN0YXRpY19jYXN0PGludD4odGh1bWJJbWFnZS0+aGVpZ2h0KCkg
KiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHlsZS0+c2V0V2lkdGgoTGVuZ3RoKHN0
YXRpY19jYXN0PGludD4od2lkdGggKiB6b29tTGV2ZWwpLCBGaXhlZCkpOworICAgICAgICBzdHls
ZS0+c2V0SGVpZ2h0KExlbmd0aChzdGF0aWNfY2FzdDxpbnQ+KGhlaWdodCAqIHpvb21MZXZlbCks
IEZpeGVkKSk7CiAgICAgfQogfQogCitzdGF0aWMgU3RyaW5nIGZvcm1hdENocm9taXVtTWVkaWFD
b250cm9sc1RpbWUoZmxvYXQgdGltZSwgZmxvYXQgZHVyYXRpb24pCit7CisgICAgaWYgKCFpc2Zp
bml0ZSh0aW1lKSkKKyAgICAgICAgdGltZSA9IDA7CisgICAgaWYgKCFpc2Zpbml0ZShkdXJhdGlv
bikpCisgICAgICAgIGR1cmF0aW9uID0gMDsKKyAgICBpbnQgc2Vjb25kcyA9IHN0YXRpY19jYXN0
PGludD4oZmFic2YodGltZSkpOworICAgIGludCBob3VycyA9IHNlY29uZHMgLyAoNjAgKiA2MCk7
CisgICAgaW50IG1pbnV0ZXMgPSAoc2Vjb25kcyAvIDYwKSAlIDYwOworICAgIHNlY29uZHMgJT0g
NjA7CisKKyAgICAvLyBkdXJhdGlvbiBkZWZpbmVzIHRoZSBmb3JtYXQgb2YgaG93IHRoZSB0aW1l
IGlzIHJlbmRlcmVkCisgICAgaW50IGR1cmF0aW9uU2VjcyA9IHN0YXRpY19jYXN0PGludD4oZmFi
c2YoZHVyYXRpb24pKTsKKyAgICBpbnQgZHVyYXRpb25Ib3VycyA9IGR1cmF0aW9uU2VjcyAvICg2
MCAqIDYwKTsKKyAgICBpbnQgZHVyYXRpb25NaW5zID0gKGR1cmF0aW9uU2VjcyAvIDYwKSAlIDYw
OworCisgICAgaWYgKGR1cmF0aW9uSG91cnMgfHwgaG91cnMpCisgICAgICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgiJXMlMDFkOiUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIiKSwgaG91
cnMsIG1pbnV0ZXMsIHNlY29uZHMpOworICAgIGlmIChkdXJhdGlvbk1pbnMgPiA5KQorICAgICAg
ICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAyZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDog
IiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXMl
MDFkOiUwMmQiLCAodGltZSA8IDAgPyAiLSIgOiAiIiksIG1pbnV0ZXMsIHNlY29uZHMpOworfQor
CitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xz
VGltZShmbG9hdCB0aW1lKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJv
bHNUaW1lKHRpbWUsIHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZs
b2F0IGR1cmF0aW9uKQoreworICAgIHJldHVybiBmb3JtYXRDaHJvbWl1bU1lZGlhQ29udHJvbHNU
aW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7Cit9CisKK1N0cmluZyBSZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGZsb2F0IGN1cnJl
bnRUaW1lLCBmbG9hdCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRp
YUNvbnRyb2xzVGltZShjdXJyZW50VGltZSAtIGR1cmF0aW9uLCBkdXJhdGlvbik7Cit9CisKICNl
bmRpZiAgLy8gI2lmIEVOQUJMRShWSURFTykKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJv
bWl1bS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJv
bWl1bS5oCmluZGV4IDlhZjkzOTYwZmZlZmNjZTk5YWYxMjY0Mzg0ZWQzMzQxNmEyZDlmNjEuLmE2
N2E0MTM5YTZkNDBhM2QzNjQyOTk2ODVmMjE4ZjNlMGI2NzdmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKQEAg
LTM4LDYgKzM4LDEwIEBAIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xF
bGVtZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVj
dCYpOwogICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0
eWxlKik7CisgICAgc3RhdGljIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0
aW1lKTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShm
bG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pOworICAgIHN0YXRpYyBTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1
cmF0aW9uKTsKKwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA4MTY3YmE4MmY4ZmMxNmQwZjg4OTcxMWU0MmZmZmFj
NGU5NDU4OTk5Li41ZTU2YjZkZjUwZWNmYjAzZTVkMTEyOWFkZjk2Nzc0N2YzYTNlNzJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAtMTk4LDYgKzE5OCw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENv
bnRyb2xQYXJ0KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCB1c2Vz
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIHVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0IHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYUNvbnRyb2xzRmFkZUluRHVy
YXRpb24oKSB7IHJldHVybiAwLjE7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBtZWRpYUNvbnRyb2xz
RmFkZU91dER1cmF0aW9uKCkgeyByZXR1cm4gMC4zOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgZm9y
bWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMuaAppbmRleCAyYjRjOGM2MzVj
YzIyM2MxODNiNTE4YjEyY2VhZWVmNTJmYWIwYzQzLi5kM2IzNjAxMDcyN2Y3OTdlNTg1NTY2OTAx
NTU4NTk5ZWQxODkzMjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVDaHJvbWl1bU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUNocm9taXVtTWFjLmgKQEAgLTQyLDcgKzQyLDYgQEAgcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWlu
dEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRl
QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcGFpbnRN
ZWRpYUNvbnRyb2xzQmFja2dyb3VuZChSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5
bGVTaGVldCgpOwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICB2aXJ0dWFsIFN0cmlu
ZyBleHRyYUZ1bGxTY3JlZW5TdHlsZVNoZWV0KCk7CkBAIC01NSw2ICs1NCwxMCBAQCBwcm90ZWN0
ZWQ6CiAgICAgdmlydHVhbCBJbnRQb2ludCB2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRv
bihSZW5kZXJCb3gqLCBjb25zdCBJbnRTaXplJikgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQ
YXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNh
bFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CisgICAgdmlydHVh
bCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1l
LCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFD
b250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBj
b25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0TW9kZUZvY3VzUmluZ0Nv
bG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLm1tCmluZGV4IGE3NzgyMjhjNTUyMmQ2YzAyOTQyNzFlZjM3YTliNDZjNDBj
ZWQ1NGYuLjlmNGFhOTEwN2FmOTc5NWQwMDNmNWUzNzlkYTQ4M2JkNTQxMTNmMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBA
IC0xNzMsMTEgKzE3Myw2IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRp
YVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQCiAgICAgcmV0dXJuIFJl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYVNs
aWRlciwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogfQogCi1ib29sIFJlbmRlclRoZW1lQ2hy
b21pdW1NYWM6OnBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmpl
Y3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewot
ICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFUaW1lbGluZUNvbnRhaW5lciwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwot
fQotCiBTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6ZXh0cmFNZWRpYUNvbnRyb2xzU3R5
bGVTaGVldCgpCiB7CiAgICAgcmV0dXJuIFN0cmluZyhtZWRpYUNvbnRyb2xzQ2hyb21pdW1Vc2Vy
QWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVkaWFDb250cm9sc0Nocm9taXVtVXNlckFnZW50U3R5
bGVTaGVldCkpOwpAQCAtMjI4LDYgKzIyMywyMSBAQCBJbnRQb2ludCBSZW5kZXJUaGVtZUNocm9t
aXVtTWFjOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihSZW5kZXJCb3gqIG11dAog
ewogICAgIHJldHVybiBSZW5kZXJUaGVtZTo6dm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0
b24obXV0ZUJ1dHRvbkJveCwgc2l6ZSk7CiB9CisKK1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVt
TWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1lKSBjb25zdAoreworICAgIHJl
dHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1l
KHRpbWUpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFD
b250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29u
c3QKK3sKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRp
YUNvbnRyb2xzQ3VycmVudFRpbWUoY3VycmVudFRpbWUsIGR1cmF0aW9uKTsKK30KKworU3RyaW5n
IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1l
KGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyAgICByZXR1cm4g
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUo
Y3VycmVudFRpbWUsIGR1cmF0aW9uKTsKK30KICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bVNraWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1Ta2lhLmNwcAppbmRleCAwMzg2YzAxMzc0MWU3ZWYzYzM1MTFkODgyMmYwODlhN2VkMTM2NzM0
Li45NjEwOTQxZTMyNDJkMDAxZTg5Nzg1YTNjZDQ4Y2YyYzY0MGIwMGQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAg
LTM3OCwxOCArMzc4LDYgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRTZWFy
Y2hGaWVsZFJlc3VsdHNCdXR0b24oUmVuZGVyT2JqZWN0KiBtYWduaWYKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bVNraWE6OnBhaW50TWVkaWFDb250cm9s
c0JhY2tncm91bmQoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQotewotI2lmIEVOQUJMRShWSURFTykKLSAgICByZXR1
cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1l
ZGlhVGltZWxpbmVDb250YWluZXIsIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Ci0gICAgVU5VU0VEX1BBUkFNKHBhaW50SW5mbyk7Ci0g
ICAgVU5VU0VEX1BBUkFNKHJlY3QpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBi
b29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVy
T2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0
JiByZWN0KQogewogI2lmIEVOQUJMRShWSURFTykKQEAgLTQ3MSw2ICs0NTksMzggQEAgYm9vbCBS
ZW5kZXJUaGVtZUNocm9taXVtU2tpYTo6cGFpbnRNZWRpYU11dGVCdXR0b24oUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGNvbnN0IFAKICNlbmRpZgogfQogCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9s
c1RpbWUoZmxvYXQgdGltZSkgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgcmV0dXJu
IFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUodGlt
ZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTSh0aW1lKTsKKyAgICByZXR1cm4gMDsKKyNlbmRp
ZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJl
bnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
cmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1
cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShjdXJyZW50VGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGR1cmF0aW9uKTsKKyAgICByZXR1cm4g
MDsKKyNlbmRpZgorfQorCitTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUo
ZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworI2lmIEVOQUJMRShW
SURFTykKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRp
YUNvbnRyb2xzUmVtYWluaW5nVGltZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworI2Vsc2UKKyAg
ICBVTlVTRURfUEFSQU0oY3VycmVudFRpbWUpOworICAgIFVOVVNFRF9QQVJBTShkdXJhdGlvbik7
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwogdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtU2tp
YTo6YWRqdXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBXZWJDb3JlOjpFbGVtZW50KikgY29uc3QKIHsKICAgICAvLyBIZWlnaHQgaXMgbG9ja2VkIHRv
IGF1dG8gb24gYWxsIGJyb3dzZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuaAppbmRleCAwMDI4ZWJiNWE3ZjhiYzIwZmFhYjQ3N2Mx
MzBkMWZiNzAxMjdiZWIwLi40YjY2MTMyYTAwYTc0NDVhYjM0MWQ2YTZkMmRmN2IwZDZkODY3OWE2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1
bVNraWEuaApAQCAtOTEsNyArOTEsNiBAQCBjbGFzcyBSZW5kZXJUaGVtZUNocm9taXVtU2tpYSA6
IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTZWFyY2hG
aWVsZFJlc3VsdHNCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVt
ZW50KikgY29uc3Q7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludFNlYXJjaEZpZWxkUmVzdWx0
c0J1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7
CiAKLSAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFDb250cm9sc0JhY2tncm91bmQoUmVu
ZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFWb2x1bWVTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUo
UmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CkBAIC05OSw2ICs5OCw5IEBAIGNsYXNzIFJl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICAgICAgICAgdmly
dHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJ
bnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAgICAgIHZp
cnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Owor
ICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRpbWUoZmxv
YXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKKyAgICAgICAgdmlydHVhbCBT
dHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUs
IGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBNZW51TGlzdCByZWZlcnMgdG8g
YW4gdW5zdHlsZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3aXRob3V0CiAgICAgICAg
IC8vIGJhY2tncm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5kIE1lbnVMaXN0QnV0dG9uIHJl
ZmVycyB0byBhIHN0eWxlZApAQCAtMTI3LDYgKzEyOSw3IEBAIGNsYXNzIFJlbmRlclRoZW1lQ2hy
b21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
ICAgIC8vIE1lZGlhIGNvbnRyb2xzCiAgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNPd25EaXNhYmxl
ZFN0YXRlSGFuZGxpbmdGb3IoQ29udHJvbFBhcnQpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KKyAg
ICAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNhbFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgICAgICAvLyBQcm92aWRlIGEgd2F5IHRvIHBhc3Mg
dGhlIGRlZmF1bHQgZm9udCBzaXplIGZyb20gdGhlIFNldHRpbmdzIG9iamVjdApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNk
NWUxOTgyZDQ0MWZlNzk5MTI2MTY3MDU4NzUyOGQzYjQ0NjliYzIuLmQ0OGYzYTYyMzdhYzI2OGU5
Zjk5ZjBhY2E2MTQxNjU2ODI4ZmEyZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMi0wNi0w
NSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIENo
YW5nZSB0aGUgdm9sdW1lIHNsaWRlciB0byBob3Jpem9udGFsIHJlbmRlcmluZyBmb3IgQ2hyb21l
IHZpZGVvIGNvbnRyb2xzLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoZSBDaHJvbWUgdmlkZW8gY29udHJvbHMgYXJlIHJlY2VpdmluZyBhIHZpc3Vh
bCB1cGRhdGUuIFRoZSB2b2x1bWUgc2xpZGVyIGlzIGluY2x1ZGVkIGludG8KKyAgICAgICAgdGhl
IGNvbnRyb2xzIHdpdGggaG9yaXpvbnRhbCByZW5kZXJpbmcsIHRoZSB2b2x1bWUgc2xpZGVyIGNv
bnRhaW5lciBpcyByZW1vdmVkLiBUaGUgdmlzdWFsCisgICAgICAgIHVwZGF0ZSBpdHNlbGYgaXMg
aW4gYSBzZXBhcmF0ZSBwYXRjaC4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgIFRlbXBvcmFyaWx5IHNraXAgdGVzdHMgcmVsYXRlZCB0byB2
b2x1bWUgY29udHJvbHMgcmVuZGVyaW5nIGZvciBDaHJvbWl1bS4KKworMjAxMi0wNS0yOCAgU2ls
dmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEludHJvZHVj
ZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3IgQ2hyb21pdW0gdmlkZW8gY29udHJvbHMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NzY4MworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmdWxsc2Ny
ZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwsIG1lZGlhL21lZGlhLWNvbnRyb2xzLWlu
dmFsaWQtdXJsLmh0bWwgYW5kCisgICAgICAgIG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJp
bmctc25hcC10by1saW5lcy1ub3Qtc2V0Lmh0bWwgdG8gZGVhbCB3aXRoIHRoZSBuZXcgZW5jbG9z
dXJlCisgICAgICAgIGRpdiBpbiBDaHJvbWl1bSBjb250cm9scyBhbmQgdXNlIHRoZSBtZWRpYUNv
bnRyb2xzRWxlbWVudCgpIGhlbHBlciBmdW5jdGlvbiB0byBmaW5kIGVsZW1lbnRzCisgICAgICAg
IGluc2lkZSB0aGUgY29udHJvbHMuCisgICAgICAgIEZhaWwgdmlkZW8gY29udHJvbHMgdGVzdHMg
aW4gdGVzdCBleHBlY3RhdGlvbnMuCisKKyAgICAgICAgKiBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRy
b2xzLW92ZXJyaWRlLWV4cGVjdGVkLnR4dDogVXBkYXRlZC4KKyAgICAgICAgKiBmdWxsc2NyZWVu
L3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWw6IFVzZSBtZWRpYUNvbnRyb2xzRWxlbWVudCBo
ZWxwZXIgZnVuY3Rpb24uCisgICAgICAgICogbWVkaWEvbWVkaWEtY29udHJvbHMtaW52YWxpZC11
cmwuaHRtbDogVXNlIG1lZGlhQ29udHJvbHNFbGVtZW50IGhlbHBlciBmdW5jdGlvbi4KKyAgICAg
ICAgKiBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXNuYXAtdG8tbGluZXMtbm90LXNl
dC5odG1sOiBIZWlnaHQgaXMgcHJvdmlkZWQgYnkgZW5jbG9zdXJlIGVsZW1lbnQuCisgICAgICAg
ICogcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczogRmFpbCB2aWRlbyBjb250cm9s
cyB0ZXN0cy4KKwogMjAxMi0wNi0xMSAgU2lsdmlhIFBmZWlmZmVyICA8c2lsdmlhcGZAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEludHJvZHVjZSBhbiBFbmNsb3N1cmUgRWxlbWVudCBmb3IgQ2hy
b21pdW0gdmlkZW8gY29udHJvbHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNTFmOTIwYWEyOTY0NjY2MmUyYmE5Njk1ZmEyYTEwZjBm
ZDJjNzE1Li4wMzc2MGRkM2IxYzNjOGVlYmZlNzJkZWFjOTA2NDAzNjAwMzk0Mzc4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc3NCw2
ICs3NzQsMTEgQEAgV09OVEZJWCBTS0lQIDogbWVkaWEvdmlkZW8tc2l6ZS1pbnRyaW5zaWMtc2Nh
bGUuaHRtbCA9IFBBU1MKIC8vIERvZXNuJ3QgYXBwbHkgdG8gQ2hyb21pdW0gKFF1aWNrVGltZS1z
cGVjaWZpYyBiZWhhdmlvcikKIFdPTlRGSVggU0tJUCA6IG1lZGlhL3ZpZGVvLWRvZXMtbm90LWxv
b3AuaHRtbCA9IFRJTUVPVVQKIAorLy8gRG9lc24ndCBhcHBseSB0byBDaHJvbWl1bSBhbnkgbG9u
Z2VyIC0gdm9sdW1lIHNsaWRlciBpcyBpbmxpbmUgd2l0aCB2aWRlbyBjb250cm9scy4KK1dPTlRG
SVggU0tJUCA6IG1lZGlhL3ZpZGVvLXZvbHVtZS1zbGlkZXIuaHRtbCA9IEZBSUwKK1dPTlRGSVgg
U0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtYmVsb3cuaHRtbCA9IEZB
SUwKK1dPTlRGSVggU0tJUCA6IG1lZGlhL21lZGlhLXZvbHVtZS1zbGlkZXItcmVuZGVyZWQtbm9y
bWFsLmh0bWwgPSBGQUlMCisKIC8vIFF1aWNrVGltZSByZWZlcmVuY2UgbW92aWVzIG5vdCBzdXBw
b3J0ZWQuCiBXT05URklYIFNLSVAgOiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWNyb3NzLXNpdGUu
aHRtbCA9IFBBU1MKIApAQCAtMjk4Nyw2ICsyOTkyLDcgQEAgQlVHV0s4NzY4MyA6IG1lZGlhL3Zp
ZGVvLW5vLWF1ZGlvLmh0bWwgPSBGQUlMCiBCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tcGxheWlu
Zy1hbmQtcGF1c2UuaHRtbCA9IEZBSUwKIEJVR1dLODc2ODMgOiBtZWRpYS92aWRlby16b29tLWNv
bnRyb2xzLmh0bWwgPSBGQUlMCiBCVUdXSzg3NjgzIDogbWVkaWEvdmlkZW8tdm9sdW1lLXNsaWRl
ci5odG1sID0gRkFJTAorQlVHV0s4NzgzNSA6IGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVy
ZWQtcmFuZ2UtY29udGFpbnMtY3VycmVudFRpbWUuaHRtbCA9IEZBSUwKIAogQlVHV0s3MjI3MSBT
Tk9XTEVPUEFSRCBERUJVRyA6IGZhc3QvZG9tL25vZGUtaXRlcmF0b3ItcmVmZXJlbmNlLW5vZGUt
bW92ZWQtY3Jhc2guaHRtbCA9IFBBU1MgQ1JBU0gKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147444</attachid>
            <date>2012-06-13 16:54:20 -0700</date>
            <delta_ts>2012-06-13 18:52:53 -0700</delta_ts>
            <desc>patch for cq</desc>
            <filename>bug-88724-20120614095418.patch</filename>
            <type>text/plain</type>
            <size>17078</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1MjU3YTE1MWQ4MjEy
NDg3OGNhNDM5NmFhZTEyYmJkNDIzZTU1ZC4uZDBmMGFlNDcxNDJjMGQyMWU5MTJlMGQyMzk3NWEx
ZjVjZGQyZGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA2LTEzICBTaWx2
aWEgUGZlaWZmZXIgIDxzaWx2aWFwZkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXBkYXRlIHRo
ZSB0aW1lIGRpc3BsYXkgb2YgdGhlIG5ldyBDaHJvbWl1bSBtZWRpYSBjb250cm9scy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NzI0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZmlu
YWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAgICBU
aGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRlLiBU
aGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdpdHMg
dGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAgICAg
IGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRlb3Ms
IHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3RhcnRl
ZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAgICAo
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6CisgICAg
ICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1cnJl
bnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAg
IEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAg
ICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxseSBo
aWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIEFk
ZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAgQWRk
IHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1
cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAgICAg
ICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9uIGRp
c3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50
IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAgICAo
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0aW9u
IG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRpYUNv
bnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBjb25k
aXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBXaGVu
IGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0aGUg
ZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgRm9y
bWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWlu
aW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUgY3Vy
cmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0
aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgorICAg
ICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRpbWUg
Zm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0aGUg
dGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAgICAg
IENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAg
ICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3IgQ2hy
b21pdW0gU2tpYS4KKwogMjAxMi0wNi0xMyAgQ2hhcmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3Jj
aG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgTmVlZCBjdXN0b21pemVkIHRvRE9NU3RyaW5nTGlz
dCBmb3IgSW5kZXhlZERCIEpTQyBiaW5kaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFD
b250cm9sc0Nocm9taXVtLmNzcwppbmRleCA0MjBkMjY4OGU5NzRmNzhmODJlNDFhMTg0OTE3YjVl
MzJmY2U3ZGZkLi4yMjk2MThhMWVhODlhOTc5MTI3N2RiNWQ3MDkxZjY0NmYzNzVjMWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtOTcsNyAr
OTcsOCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idQogICAgIHBhZGRpbmc6IDA7CiB9CiAKLWF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmU7CiAgICAgZGlzcGxheTogYmxvY2s7CkBAIC0xMTEsNiArMTEyLDcgQEAgYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2wKICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICBmb250LWZhbWlseTogQXJp
YWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKICAgICBmb250LXNpemU6IDEzcHg7CisgICAgZm9u
dC13ZWlnaHQ6IGJvbGQ7CiAgICAgY29sb3I6IHdoaXRlOwogCiAgICAgbGV0dGVyLXNwYWNpbmc6
IG5vcm1hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKaW5kZXggN2UwN2NmMmU0NzQxZTNh
ZmVkNGRhMTgyZDYyZGVmZTNjNGNlMWQxNy4uYjM5MDk0NWY1MmMzYzcyMGQ0MDI4MDk3MDdmYWYz
M2U0MmFkM2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDApCiAg
ICAgLCBtX3BsYXlCdXR0b24oMCkKICAgICAsIG1fY3VycmVudFRpbWVEaXNwbGF5KDApCisgICAg
LCBtX2R1cmF0aW9uRGlzcGxheSgwKQogICAgICwgbV90aW1lbGluZSgwKQogICAgICwgbV9wYW5l
bE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCkBAIC0xMTcsMTAgKzExOCwx
NyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1
cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJv
bEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJv
bHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOworICAg
IGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwogICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+
bV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBpZiAo
ZWMpCisgICAgICAgIHJldHVybiAwOworCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRy
b2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwpAQCAt
MTY0LDYgKzE3Miw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0
TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjCiAgICAgICAgIG1fcGxheUJ1
dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX2N1cnJlbnRU
aW1lRGlzcGxheSkKICAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldE1lZGlhQ29udHJv
bGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9kdXJhdGlvbkRpc3BsYXkpCisgICAgICAgIG1f
ZHVyYXRpb25EaXNwbGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYg
KG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPnNldE1lZGlhQ29udHJvbGxlcihjb250
cm9sbGVyKTsKICAgICBpZiAobV9wYW5lbE11dGVCdXR0b24pCkBAIC0yMTgsNiArMjI4LDEwIEBA
IHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQogICAgIGZsb2F0
IGR1cmF0aW9uID0gbV9tZWRpYUNvbnRyb2xsZXItPmR1cmF0aW9uKCk7CiAgICAgbV90aW1lbGlu
ZS0+c2V0RHVyYXRpb24oZHVyYXRpb24pOwogICAgIG1fdGltZWxpbmUtPnNob3coKTsKKworICAg
IG1fZHVyYXRpb25EaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVk
aWFDb250cm9sc1RpbWUoZHVyYXRpb24pLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2R1
cmF0aW9uRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKGR1cmF0aW9uKTsKKwogICAgIG1fdGltZWxp
bmUtPnNldFBvc2l0aW9uKG1fbWVkaWFDb250cm9sbGVyLT5jdXJyZW50VGltZSgpKTsKICAgICB1
cGRhdGVUaW1lRGlzcGxheSgpOwogCkBAIC0yMzYsNiArMjUwLDggQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQoKQogewogICAgIG1fcGxheUJ1
dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbiht
X21lZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CisgICAgbV9jdXJyZW50VGltZURpc3Bs
YXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOwogICAgIHVwZGF0ZVRp
bWVEaXNwbGF5KCk7CiB9CiAKQEAgLTI2NSw2ICsyODEsMTIgQEAgdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjp1cGRhdGVUaW1lRGlzcGxheSgpCiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBZnRlciBzZWVrLCBoaWRlIGR1cmF0aW9uIGRpc3Bs
YXkgYW5kIHNob3cgY3VycmVudCB0aW1lLgorICAgIGlmIChub3cgPiAwKSB7CisgICAgICAgIG1f
Y3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgICAgIG1fZHVyYXRpb25EaXNwbGF5LT5o
aWRlKCk7CisgICAgfQorCiAgICAgLy8gQWxsb3cgdGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGlt
ZS4KICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRJ
bm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKG5v
dywgZHVyYXRpb24pLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggZjRjMzkyMWFj
N2QwYzVhOWViYjM3NTYwYzMzY2JhZjIzZWEzNTRlNC4uYzVmNTAyODczZDNmMmE4MDA4OWIzYjZm
ZjNiYzA4OTcwNmY5ZmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNDAsNiArNDAs
NyBAQCBjbGFzcyBFdmVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ7
CiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250
cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ7CkBAIC0xMzQsNiArMTM1LDcgQEAgcHJpdmF0ZToK
IAogICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KiBtX3BsYXlCdXR0b247CiAgICAg
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudCogbV9jdXJyZW50VGltZURpc3Bs
YXk7CisgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KiBtX2R1cmF0
aW9uRGlzcGxheTsKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQqIG1fdGltZWxpbmU7
CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KiBtX3RpbWVsaW5lQ29u
dGFpbmVyOwogICAgIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQqIG1fcGFuZWxN
dXRlQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCBiNmI0NGY4Njc1YjMxMjEwNjQ5ZjQ0Mzkw
NDRiNTM1MWJjNTg3ZWEwLi5kOTA4MjViZmNjNGU0NjFkYjA4NGMxNDkzZTdiNjMwYzNmNDU1MmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtLmNwcApAQCAtMzQ4LDYgKzM0OCw0NSBAQCB2b2lkIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUq
IHN0eWxlKQogICAgIH0KIH0KIAorc3RhdGljIFN0cmluZyBmb3JtYXRDaHJvbWl1bU1lZGlhQ29u
dHJvbHNUaW1lKGZsb2F0IHRpbWUsIGZsb2F0IGR1cmF0aW9uKQoreworICAgIGlmICghaXNmaW5p
dGUodGltZSkpCisgICAgICAgIHRpbWUgPSAwOworICAgIGlmICghaXNmaW5pdGUoZHVyYXRpb24p
KQorICAgICAgICBkdXJhdGlvbiA9IDA7CisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwor
ICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYw
OworCisgICAgLy8gZHVyYXRpb24gZGVmaW5lcyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGltZSBp
cyByZW5kZXJlZAorICAgIGludCBkdXJhdGlvblNlY3MgPSBzdGF0aWNfY2FzdDxpbnQ+KGZhYnNm
KGR1cmF0aW9uKSk7CisgICAgaW50IGR1cmF0aW9uSG91cnMgPSBkdXJhdGlvblNlY3MgLyAoNjAg
KiA2MCk7CisgICAgaW50IGR1cmF0aW9uTWlucyA9IChkdXJhdGlvblNlY3MgLyA2MCkgJSA2MDsK
KworICAgIGlmIChkdXJhdGlvbkhvdXJzIHx8IGhvdXJzKQorICAgICAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoIiVzJTAxZDolMDJkOiUwMmQiLCAodGltZSA8IDAgPyAiLSIgOiAiIiksIGhvdXJz
LCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoZHVyYXRpb25NaW5zID4gOSkKKyAgICAgICAg
cmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlcyUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIi
KSwgbWludXRlcywgc2Vjb25kcyk7CisKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAx
ZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKK30KKwor
U3RyaW5nIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1Rp
bWUoZmxvYXQgdGltZSkKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xz
VGltZSh0aW1lLCB0aW1lKTsKK30KKworU3RyaW5nIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGlt
ZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50
VGltZSwgZmxvYXQgZHVyYXRpb24pCit7CisgICAgcmV0dXJuIGZvcm1hdENocm9taXVtTWVkaWFD
b250cm9sc1RpbWUoY3VycmVudFRpbWUgLSBkdXJhdGlvbiwgZHVyYXRpb24pOworfQorCiAjZW5k
aWYgIC8vICNpZiBFTkFCTEUoVklERU8pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uaAppbmRleCA5YWY5Mzk2MGZmZWZjY2U5OWFmMTI2NDM4NGVkMzM0MTZhMmQ5ZjYxLi5jM2I4
MDFiZjBjYzFlOTgxOTFjZjMzNjMwZmFiMjI3MWIzM2MzMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCkBAIC0z
OCw2ICszOCw5IEBAIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwogICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxl
Kik7CisgICAgc3RhdGljIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1l
KTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9h
dCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pOworICAgIHN0YXRpYyBTdHJpbmcgZm9ybWF0
TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0
aW9uKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCmluZGV4IGFhOTRhNDI5Zjc5M2Qx
ZjIyYTQ4NzcwMWY5NzA0YTk1MjExZGEzMTQuLmQzYjM2MDEwNzI3Zjc5N2U1ODU1NjY5MDE1NTg1
OTllZDE4OTMyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMuaApAQCAtNTUsNiArNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQ
YXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNh
bFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CisgICAgdmlydHVh
bCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1l
LCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFD
b250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBj
b25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0TW9kZUZvY3VzUmluZ0Nv
bG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLm1tCmluZGV4IDVhNWFmNGRhNjVhYjRiNDAwMGE5NTA5M2NkYzg1ZTY3ODU2
ZWU0MTguLjlmNGFhOTEwN2FmOTc5NWQwMDNmNWUzNzlkYTQ4M2JkNTQxMTNmMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBA
IC0yMjMsNiArMjIzLDIxIEBAIEludFBvaW50IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnZvbHVt
ZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKFJlbmRlckJveCogbXV0CiB7CiAgICAgcmV0dXJu
IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihtdXRlQnV0dG9u
Qm94LCBzaXplKTsKIH0KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1l
ZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUodGltZSk7Cit9CisK
K1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVu
dFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworICAgIHJl
dHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJy
ZW50VGltZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShjdXJyZW50VGltZSwg
ZHVyYXRpb24pOworfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCmlu
ZGV4IGMxNWY5NmRmNGJlNDZhNDg4MmVlYjIwMGIwNzgzZDRkNjNjYzMyNTAuLjE2ZjdhMWNkM2U2
MzJkY2M5Y2M4NTVkYTFiZjNiNTA0NGE5NDI3MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcApAQCAtNDU5LDYgKzQ1OSwz
OCBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhTXV0ZUJ1dHRvbihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUAogI2VuZGlmCiB9CiAKK1N0cmluZyBSZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUp
IGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKHRpbWUpOworI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0odGltZSk7CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworU3RyaW5nIFJl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1l
KGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9hdCBkdXJhdGlvbikgY29uc3QKK3sKKyNpZiBFTkFCTEUo
VklERU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVk
aWFDb250cm9sc0N1cnJlbnRUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7CisjZWxzZQorICAg
IFVOVVNFRF9QQVJBTShjdXJyZW50VGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGR1cmF0aW9uKTsK
KyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGlt
ZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHJldHVy
biBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5p
bmdUaW1lKGN1cnJlbnRUaW1lLCBkdXJhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShj
dXJyZW50VGltZSk7CisgICAgVU5VU0VEX1BBUkFNKGR1cmF0aW9uKTsKKyAgICByZXR1cm4gMDsK
KyNlbmRpZgorfQorCiB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RNZW51TGlz
dFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1l
bnQqKSBjb25zdAogewogICAgIC8vIEhlaWdodCBpcyBsb2NrZWQgdG8gYXV0byBvbiBhbGwgYnJv
d3NlcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVD
aHJvbWl1bVNraWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtU2tpYS5oCmluZGV4IDUzZDZkMjMxNWJiZmYwNjU1ZmMxZmY2ZDY5OWFlZDMzMTI1NzcxY2Qu
LjRiNjYxMzJhMDBhNzQ0NWFiMzQxZDZhNmQyZGY3YjBkNmQ4Njc5YTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCkBAIC05OCw2
ICs5OCw5IEBAIGNsYXNzIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRo
ZW1lIHsKICAgICAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihS
ZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAg
IHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1l
ZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0Jik7CisgICAgICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZs
b2F0IHRpbWUpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRy
b2xzQ3VycmVudFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsK
KyAgICAgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUo
ZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBN
ZW51TGlzdCByZWZlcnMgdG8gYW4gdW5zdHlsZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlz
dCB3aXRob3V0CiAgICAgICAgIC8vIGJhY2tncm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5k
IE1lbnVMaXN0QnV0dG9uIHJlZmVycyB0byBhIHN0eWxlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147464</attachid>
            <date>2012-06-13 18:53:04 -0700</date>
            <delta_ts>2013-04-23 17:29:13 -0700</delta_ts>
            <desc>patch for cq</desc>
            <filename>bug-88724-20120614115302.patch</filename>
            <type>text/plain</type>
            <size>17066</size>
            <attacher name="Silvia Pfeiffer">silviapf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjY1MjU3YTE1MWQ4MjEy
NDg3OGNhNDM5NmFhZTEyYmJkNDIzZTU1ZC4uZDBmMGFlNDcxNDJjMGQyMWU5MTJlMGQyMzk3NWEx
ZjVjZGQyZGI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA2LTEzICBTaWx2
aWEgUGZlaWZmZXIgIDxzaWx2aWFwZkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVXBkYXRlIHRo
ZSB0aW1lIGRpc3BsYXkgb2YgdGhlIG5ldyBDaHJvbWl1bSBtZWRpYSBjb250cm9scy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4NzI0CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgZmlu
YWwgcGF0Y2ggd2lsbCBjb250YWluIHRoZSByZWJhc2VsaW5lZCB0ZXN0cy4KKworICAgICAgICBU
aGUgQ2hyb21lIHZpZGVvIGNvbnRyb2xzIGFyZSByZWNlaXZpbmcgYSB2aXN1YWwgdXBkYXRlLiBU
aGlzIHBhdGNoIGNoYW5nZXMKKyAgICAgICAgdGhlIGZvcm1hdCBvZiB0aGUgdGltZSBkaWdpdHMg
dGhhdCBhcmUgZGlzcGxheWVkLiBUaGV5IGFyZSBkaWZmZXJlbnQgZm9yIG1lZGlhCisgICAgICAg
IGZpbGVzIG9mIGRpZmZlcmVudCBkdXJhdGlvbi4gRm9yIG5vbi1hdXRvcGxheWluZyB2aWRlb3Ms
IHRoZSBkdXJhdGlvbiBpcyBzaG93bgorICAgICAgICBiZWZvcmUgcGxheWJhY2sgaXMgc3RhcnRl
ZC4KKworICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3NzOgorICAgICAgICAo
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSk6CisgICAg
ICAgIEZvcm1hdCB0aGUgbmV3IGR1cmF0aW9uIGRpc3BsYXkgdGhlIHNhbWUgYXMgdGhlIGN1cnJl
bnQgdGltZSBkaXNwbGF5LgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAg
IEFkZCBhIG1lbWJlciBmaWVsZCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkuCisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAg
ICBBZGQgYW4gZWxlbWVudCBmb3IgdGhlIGR1cmF0aW9uIGRpc3BsYXkgYW5kIGluaXRpYWxseSBo
aWRlIHRoZSBjdXJyZW50IHRpbWUgZGlzcGxheS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIEFk
ZCB0aGUgZHVyYXRpb24gZGlzcGxheSB0byB0aGUgY29udHJvbGxlci4KKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnJlc2V0KToKKyAgICAgICAgQWRk
IHJlc2V0IGZ1bmN0aW9uYWxpdHkgZm9yIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1
cmF0aW9uIGRpc3BsYXkgdXBvbiBwbGF5YmFjayBzdGFydC4KKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnVwZGF0ZVRpbWVEaXNwbGF5KToKKyAgICAg
ICAgU2hvdyB0aGUgY3VycmVudCB0aW1lIGRpc3BsYXkgYW5kIGhpZGUgdGhlIGR1cmF0aW9uIGRp
c3BsYXkgd2hlbiBjdXJyZW50IHRpbWUgaXMgbm9uLXplcm8uCisgICAgICAgICogaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIEFkZCB0aGUgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50
IHdoaWNoIHByb3ZpZGVzIHVzZSB3aXRoIHRoZSBkdXJhdGlvbiBkaXNwbGF5LgorICAgICAgICAo
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIEFkZCBhIGR1cmF0aW9u
IG1lbWJlciBmaWVsZCwgcmV1c2luZyB0aGUgZXhpc3RpbmcgTWVkaWFDb250cm9sVGltZVJlbWFp
bmluZ0Rpc3BsYXlFbGVtZW50LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Q2hyb21pdW1NZWRpYUNv
bnRyb2xzVGltZSk6CisgICAgICAgIEZvcm1hdHMgYSBnaXZlbiB0aW1lIHVuZGVyIHRoZSBjb25k
aXRpb24gb2YgYSBnaXZlbiBkdXJhdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgorICAgICAgICBXaGVu
IGZvcm1hdHRpbmcgYSBzaW5nbGUgdGltZSwgYXNzdW1lIGl0IHRvIGFsc28gcHJvdmlkZSB0aGUg
ZHVyYXRpb24gY29uZGl0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgRm9y
bWF0IHRoZSBjdXJyZW50IHRpbWUgZ2l2ZW4gdGhlIGR1cmF0aW9uLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWlu
aW5nVGltZSk6CisgICAgICAgIEZvcm1hdCB0aGUgcmVtYWluaW5nIHRpbWUgZnJvbSB0aGUgY3Vy
cmVudCB0aW1lIGdpdmVuIHRoZSBkdXJhdGlvbi4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TWVkaWFDb250cm9sc0Nocm9taXVtLmg6CisgICAgICAgIChSZW5kZXJNZWRpYUNvbnRyb2xzQ2hy
b21pdW0pOgorICAgICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0
aW9ucy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oOgorICAg
ICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bU1hYyk6CisgICAgICAgIERlY2xhcmUgdGhlIHRpbWUg
Zm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIGZvciBDaHJvbWl1bSBvbiB0aGUgTWFjLgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250
cm9sc0N1cnJlbnRUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lQ2hyb21pdW1N
YWM6OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKToKKyAgICAgICAgQ2FsbCB0aGUg
dGltZSBmb3JtYXR0aW5nIG1lbWJlciBmdW5jdGlvbnMgb2YgUmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtIG9uIHRoZSBNYWMuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21p
dW1Ta2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZSk6CisgICAg
ICAgIChXZWJDb3JlOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZSk6CisgICAgICAg
IENhbGwgdGhlIHRpbWUgZm9ybWF0dGluZyBtZW1iZXIgZnVuY3Rpb25zIG9mIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bSBvbiBTa2lhLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtU2tpYS5oOgorICAgICAgICAoUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEpOgorICAg
ICAgICBEZWNsYXJlIHRoZSB0aW1lIGZvcm1hdHRpbmcgbWVtYmVyIGZ1bmN0aW9ucyBmb3IgQ2hy
b21pdW0gU2tpYS4KKwogMjAxMi0wNi0xMyAgQ2hhcmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3Jj
aG1vYmlsZS5jb20uY24+CiAKICAgICAgICAgTmVlZCBjdXN0b21pemVkIHRvRE9NU3RyaW5nTGlz
dCBmb3IgSW5kZXhlZERCIEpTQyBiaW5kaW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bS5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFD
b250cm9sc0Nocm9taXVtLmNzcwppbmRleCA0MjBkMjY4OGU5NzRmNzhmODJlNDFhMTg0OTE3YjVl
MzJmY2U3ZGZkLi4yMjk2MThhMWVhODlhOTc5MTI3N2RiNWQ3MDkxZjY0NmYzNzVjMWU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtLmNzcwpAQCAtOTcsNyAr
OTcsOCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idQogICAgIHBhZGRpbmc6IDA7CiB9CiAKLWF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LCB2aWRlbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CithdWRpbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6
IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OwogICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5v
bmU7CiAgICAgZGlzcGxheTogYmxvY2s7CkBAIC0xMTEsNiArMTEyLDcgQEAgYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2wKICAgICBsaW5lLWhlaWdodDogMzBweDsKICAgICBmb250LWZhbWlseTogQXJp
YWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjsKICAgICBmb250LXNpemU6IDEzcHg7CisgICAgZm9u
dC13ZWlnaHQ6IGJvbGQ7CiAgICAgY29sb3I6IHdoaXRlOwogCiAgICAgbGV0dGVyLXNwYWNpbmc6
IG5vcm1hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKaW5kZXggN2UwN2NmMmU0NzQxZTNh
ZmVkNGRhMTgyZDYyZGVmZTNjNGNlMWQxNy4uYjM5MDk0NWY1MmMzYzcyMGQ0MDI4MDk3MDdmYWYz
M2U0MmFkM2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAKQEAgLTY4LDYgKzY4LDcg
QEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDApCiAg
ICAgLCBtX3BsYXlCdXR0b24oMCkKICAgICAsIG1fY3VycmVudFRpbWVEaXNwbGF5KDApCisgICAg
LCBtX2R1cmF0aW9uRGlzcGxheSgwKQogICAgICwgbV90aW1lbGluZSgwKQogICAgICwgbV9wYW5l
bE11dGVCdXR0b24oMCkKICAgICAsIG1fdm9sdW1lU2xpZGVyKDApCkBAIC0xMTcsMTAgKzExOCwx
NyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1
cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJv
bEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJv
bHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOworICAg
IGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwogICAgIHBhbmVsLT5hcHBl
bmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAorICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250cm9scy0+
bV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBpZiAo
ZWMpCisgICAgICAgIHJldHVybiAwOworCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRy
b2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAgICBwYW5l
bC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwpAQCAt
MTY0LDYgKzE3Miw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0
TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjCiAgICAgICAgIG1fcGxheUJ1
dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwogICAgIGlmIChtX2N1cnJlbnRU
aW1lRGlzcGxheSkKICAgICAgICAgbV9jdXJyZW50VGltZURpc3BsYXktPnNldE1lZGlhQ29udHJv
bGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9kdXJhdGlvbkRpc3BsYXkpCisgICAgICAgIG1f
ZHVyYXRpb25EaXNwbGF5LT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CiAgICAgaWYg
KG1fdGltZWxpbmUpCiAgICAgICAgIG1fdGltZWxpbmUtPnNldE1lZGlhQ29udHJvbGxlcihjb250
cm9sbGVyKTsKICAgICBpZiAobV9wYW5lbE11dGVCdXR0b24pCkBAIC0yMTgsNiArMjI4LDEwIEBA
IHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQogICAgIGZsb2F0
IGR1cmF0aW9uID0gbV9tZWRpYUNvbnRyb2xsZXItPmR1cmF0aW9uKCk7CiAgICAgbV90aW1lbGlu
ZS0+c2V0RHVyYXRpb24oZHVyYXRpb24pOwogICAgIG1fdGltZWxpbmUtPnNob3coKTsKKworICAg
IG1fZHVyYXRpb25EaXNwbGF5LT5zZXRJbm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVk
aWFDb250cm9sc1RpbWUoZHVyYXRpb24pLCBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKKyAgICBtX2R1
cmF0aW9uRGlzcGxheS0+c2V0Q3VycmVudFZhbHVlKGR1cmF0aW9uKTsKKwogICAgIG1fdGltZWxp
bmUtPnNldFBvc2l0aW9uKG1fbWVkaWFDb250cm9sbGVyLT5jdXJyZW50VGltZSgpKTsKICAgICB1
cGRhdGVUaW1lRGlzcGxheSgpOwogCkBAIC0yMzYsNiArMjUwLDggQEAgdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQoKQogewogICAgIG1fcGxheUJ1
dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbiht
X21lZGlhQ29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CisgICAgbV9jdXJyZW50VGltZURpc3Bs
YXktPnNob3coKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheS0+aGlkZSgpOwogICAgIHVwZGF0ZVRp
bWVEaXNwbGF5KCk7CiB9CiAKQEAgLTI2NSw2ICsyODEsMTIgQEAgdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjp1cGRhdGVUaW1lRGlzcGxheSgpCiAgICAgaWYgKCFwYWdlKQog
ICAgICAgICByZXR1cm47CiAKKyAgICAvLyBBZnRlciBzZWVrLCBoaWRlIGR1cmF0aW9uIGRpc3Bs
YXkgYW5kIHNob3cgY3VycmVudCB0aW1lLgorICAgIGlmIChub3cgPiAwKSB7CisgICAgICAgIG1f
Y3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7CisgICAgICAgIG1fZHVyYXRpb25EaXNwbGF5LT5o
aWRlKCk7CisgICAgfQorCiAgICAgLy8gQWxsb3cgdGhlIHRoZW1lIHRvIGZvcm1hdCB0aGUgdGlt
ZS4KICAgICBFeGNlcHRpb25Db2RlIGVjOwogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zZXRJ
bm5lclRleHQocGFnZS0+dGhlbWUoKS0+Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKG5v
dywgZHVyYXRpb24pLCBlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggZjRjMzkyMWFj
N2QwYzVhOWViYjM3NTYwYzMzY2JhZjIzZWEzNTRlNC4uYzVmNTAyODczZDNmMmE4MDA4OWIzYjZm
ZjNiYzA4OTcwNmY5ZmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNDAsNiArNDAs
NyBAQCBjbGFzcyBFdmVudDsKIGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDsKIGNsYXNzIE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ7CitjbGFzcyBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQ7CiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ7
CiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OwogY2xhc3MgTWVkaWFDb250
cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ7CkBAIC0xMzQsNiArMTM1LDcgQEAgcHJpdmF0ZToK
IAogICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KiBtX3BsYXlCdXR0b247CiAgICAg
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudCogbV9jdXJyZW50VGltZURpc3Bs
YXk7CisgICAgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KiBtX2R1cmF0
aW9uRGlzcGxheTsKICAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQqIG1fdGltZWxpbmU7
CiAgICAgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KiBtX3RpbWVsaW5lQ29u
dGFpbmVyOwogICAgIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQqIG1fcGFuZWxN
dXRlQnV0dG9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCBiNmI0NGY4Njc1YjMxMjEwNjQ5ZjQ0Mzkw
NDRiNTM1MWJjNTg3ZWEwLi5kOTA4MjViZmNjNGU0NjFkYjA4NGMxNDkzZTdiNjMwYzNmNDU1MmRi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFD
b250cm9sc0Nocm9taXVtLmNwcApAQCAtMzQ4LDYgKzM0OCw0NSBAQCB2b2lkIFJlbmRlck1lZGlh
Q29udHJvbHNDaHJvbWl1bTo6YWRqdXN0TWVkaWFTbGlkZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUq
IHN0eWxlKQogICAgIH0KIH0KIAorc3RhdGljIFN0cmluZyBmb3JtYXRDaHJvbWl1bU1lZGlhQ29u
dHJvbHNUaW1lKGZsb2F0IHRpbWUsIGZsb2F0IGR1cmF0aW9uKQoreworICAgIGlmICghaXNmaW5p
dGUodGltZSkpCisgICAgICAgIHRpbWUgPSAwOworICAgIGlmICghaXNmaW5pdGUoZHVyYXRpb24p
KQorICAgICAgICBkdXJhdGlvbiA9IDA7CisgICAgaW50IHNlY29uZHMgPSBzdGF0aWNfY2FzdDxp
bnQ+KGZhYnNmKHRpbWUpKTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwor
ICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYw
OworCisgICAgLy8gZHVyYXRpb24gZGVmaW5lcyB0aGUgZm9ybWF0IG9mIGhvdyB0aGUgdGltZSBp
cyByZW5kZXJlZAorICAgIGludCBkdXJhdGlvblNlY3MgPSBzdGF0aWNfY2FzdDxpbnQ+KGZhYnNm
KGR1cmF0aW9uKSk7CisgICAgaW50IGR1cmF0aW9uSG91cnMgPSBkdXJhdGlvblNlY3MgLyAoNjAg
KiA2MCk7CisgICAgaW50IGR1cmF0aW9uTWlucyA9IChkdXJhdGlvblNlY3MgLyA2MCkgJSA2MDsK
KworICAgIGlmIChkdXJhdGlvbkhvdXJzIHx8IGhvdXJzKQorICAgICAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoIiVzJTAxZDolMDJkOiUwMmQiLCAodGltZSA8IDAgPyAiLSIgOiAiIiksIGhvdXJz
LCBtaW51dGVzLCBzZWNvbmRzKTsKKyAgICBpZiAoZHVyYXRpb25NaW5zID4gOSkKKyAgICAgICAg
cmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlcyUwMmQ6JTAyZCIsICh0aW1lIDwgMCA/ICItIiA6ICIi
KSwgbWludXRlcywgc2Vjb25kcyk7CisKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzJTAx
ZDolMDJkIiwgKHRpbWUgPCAwID8gIi0iIDogIiIpLCBtaW51dGVzLCBzZWNvbmRzKTsKK30KKwor
U3RyaW5nIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1Rp
bWUoZmxvYXQgdGltZSkKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xz
VGltZSh0aW1lLCB0aW1lKTsKK30KKworU3RyaW5nIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1
bTo6Zm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1lLCBmbG9h
dCBkdXJhdGlvbikKK3sKKyAgICByZXR1cm4gZm9ybWF0Q2hyb21pdW1NZWRpYUNvbnRyb2xzVGlt
ZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworfQorCitTdHJpbmcgUmVuZGVyTWVkaWFDb250cm9s
c0Nocm9taXVtOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50
VGltZSwgZmxvYXQgZHVyYXRpb24pCit7CisgICAgcmV0dXJuIGZvcm1hdENocm9taXVtTWVkaWFD
b250cm9sc1RpbWUoY3VycmVudFRpbWUgLSBkdXJhdGlvbiwgZHVyYXRpb24pOworfQorCiAjZW5k
aWYgIC8vICNpZiBFTkFCTEUoVklERU8pCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uaAppbmRleCA5YWY5Mzk2MGZmZWZjY2U5OWFmMTI2NDM4NGVkMzM0MTZhMmQ5ZjYxLi5jM2I4
MDFiZjBjYzFlOTgxOTFjZjMzNjMwZmFiMjI3MWIzM2MzMmI3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5oCkBAIC0z
OCw2ICszOCw5IEBAIGNsYXNzIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSwgUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYp
OwogICAgIHN0YXRpYyB2b2lkIGFkanVzdE1lZGlhU2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxl
Kik7CisgICAgc3RhdGljIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzVGltZShmbG9hdCB0aW1l
KTsKKyAgICBzdGF0aWMgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9h
dCBjdXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pOworICAgIHN0YXRpYyBTdHJpbmcgZm9ybWF0
TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0
aW9uKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5oCmluZGV4IGFhOTRhNDI5Zjc5M2Qx
ZjIyYTQ4NzcwMWY5NzA0YTk1MjExZGEzMTQuLmQzYjM2MDEwNzI3Zjc5N2U1ODU1NjY5MDE1NTg1
OTllZDE4OTMyMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lQ2hyb21pdW1NYWMuaApAQCAtNTUsNiArNTUsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVh
bCBib29sIHVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKENvbnRyb2xQ
YXJ0KSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHVzZXNWZXJ0aWNh
bFZvbHVtZVNsaWRlcigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBTdHJp
bmcgZm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29uc3Q7CisgICAgdmlydHVh
bCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc0N1cnJlbnRUaW1lKGZsb2F0IGN1cnJlbnRUaW1l
LCBmbG9hdCBkdXJhdGlvbikgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFD
b250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBj
b25zdDsKICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHVzZXNUZXN0TW9kZUZvY3VzUmluZ0Nv
bG9yKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtTWFjLm1tCmluZGV4IDVhNWFmNGRhNjVhYjRiNDAwMGE5NTA5M2NkYzg1ZTY3ODU2
ZWU0MTguLjlmNGFhOTEwN2FmOTc5NWQwMDNmNWUzNzlkYTQ4M2JkNTQxMTNmMDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBA
IC0yMjMsNiArMjIzLDIxIEBAIEludFBvaW50IFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OnZvbHVt
ZVNsaWRlck9mZnNldEZyb21NdXRlQnV0dG9uKFJlbmRlckJveCogbXV0CiB7CiAgICAgcmV0dXJu
IFJlbmRlclRoZW1lOjp2b2x1bWVTbGlkZXJPZmZzZXRGcm9tTXV0ZUJ1dHRvbihtdXRlQnV0dG9u
Qm94LCBzaXplKTsKIH0KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1NYWM6OmZvcm1hdE1l
ZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIFJlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUodGltZSk7Cit9CisK
K1N0cmluZyBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVu
dFRpbWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworICAgIHJl
dHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJy
ZW50VGltZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVD
aHJvbWl1bU1hYzo6Zm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdAoreworICAgIHJldHVybiBSZW5kZXJUaGVtZUNo
cm9taXVtTWFjOjpmb3JtYXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShjdXJyZW50VGltZSwg
ZHVyYXRpb24pOworfQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCmlu
ZGV4IGMxNWY5NmRmNGJlNDZhNDg4MmVlYjIwMGIwNzgzZDRkNjNjYzMyNTAuLmI3MzViYmYzNjc4
ZjA2ODlkNTdiMWQzNTVlYzY0NjE1ZjM2MWQzZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcApAQCAtNDU5LDYgKzQ1OSwz
OCBAQCBib29sIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpwYWludE1lZGlhTXV0ZUJ1dHRvbihS
ZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUAogI2VuZGlmCiB9CiAKK1N0cmluZyBSZW5kZXJU
aGVtZUNocm9taXVtU2tpYTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUoZmxvYXQgdGltZSkgY29u
c3QKK3sKKyNpZiBFTkFCTEUoVklERU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHND
aHJvbWl1bTo6Zm9ybWF0TWVkaWFDb250cm9sc1RpbWUodGltZSk7CisjZWxzZQorICAgIFVOVVNF
RF9QQVJBTSh0aW1lKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitTdHJpbmcgUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWE6OmZvcm1hdE1lZGlhQ29udHJvbHNDdXJyZW50VGltZShmbG9hdCBj
dXJyZW50VGltZSwgZmxvYXQgZHVyYXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQor
ICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJv
bHNDdXJyZW50VGltZShjdXJyZW50VGltZSwgZHVyYXRpb24pOworI2Vsc2UKKyAgICBVTlVTRURf
UEFSQU0oY3VycmVudFRpbWUpOworICAgIFVOVVNFRF9QQVJBTShkdXJhdGlvbik7CisgICAgcmV0
dXJuIDA7CisjZW5kaWYKK30KKworU3RyaW5nIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjpmb3Jt
YXRNZWRpYUNvbnRyb2xzUmVtYWluaW5nVGltZShmbG9hdCBjdXJyZW50VGltZSwgZmxvYXQgZHVy
YXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHJldHVybiBSZW5kZXJNZWRp
YUNvbnRyb2xzQ2hyb21pdW06OmZvcm1hdE1lZGlhQ29udHJvbHNSZW1haW5pbmdUaW1lKGN1cnJl
bnRUaW1lLCBkdXJhdGlvbik7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShjdXJyZW50VGltZSk7
CisgICAgVU5VU0VEX1BBUkFNKGR1cmF0aW9uKTsKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
CiB2b2lkIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhOjphZGp1c3RNZW51TGlzdFN0eWxlKFN0eWxl
UmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSogc3R5bGUsIFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdAog
ewogICAgIC8vIEhlaWdodCBpcyBsb2NrZWQgdG8gYXV0byBvbiBhbGwgYnJvd3NlcnMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCmlu
ZGV4IDUzZDZkMjMxNWJiZmYwNjU1ZmMxZmY2ZDY5OWFlZDMzMTI1NzcxY2QuLjRiNjYxMzJhMDBh
NzQ0NWFiMzQxZDZhNmQyZGY3YjBkNmQ4Njc5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5oCkBAIC05OCw2ICs5OCw5IEBAIGNs
YXNzIFJlbmRlclRoZW1lQ2hyb21pdW1Ta2lhIDogcHVibGljIFJlbmRlclRoZW1lIHsKICAgICAg
ICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFWb2x1bWVTbGlkZXJUaHVtYihSZW5kZXJPYmplY3Qq
LCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBj
b25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRv
bihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jik7CisgICAg
ICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdE1lZGlhQ29udHJvbHNUaW1lKGZsb2F0IHRpbWUpIGNv
bnN0OworICAgICAgICB2aXJ0dWFsIFN0cmluZyBmb3JtYXRNZWRpYUNvbnRyb2xzQ3VycmVudFRp
bWUoZmxvYXQgY3VycmVudFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKKyAgICAgICAgdmly
dHVhbCBTdHJpbmcgZm9ybWF0TWVkaWFDb250cm9sc1JlbWFpbmluZ1RpbWUoZmxvYXQgY3VycmVu
dFRpbWUsIGZsb2F0IGR1cmF0aW9uKSBjb25zdDsKIAogICAgICAgICAvLyBNZW51TGlzdCByZWZl
cnMgdG8gYW4gdW5zdHlsZWQgbWVudWxpc3QgKG1lYW5pbmcgYSBtZW51bGlzdCB3aXRob3V0CiAg
ICAgICAgIC8vIGJhY2tncm91bmQtY29sb3Igb3IgYm9yZGVyIHNldCkgYW5kIE1lbnVMaXN0QnV0
dG9uIHJlZmVycyB0byBhIHN0eWxlZAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>