<?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>53001</bug_id>
          
          <creation_ts>2011-01-24 03:26:13 -0800</creation_ts>
          <short_desc>m_mediaElement of MediaControlElement family should be removed.</short_desc>
          <delta_ts>2011-12-04 20:57:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>71410</dup_id>
          
          <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>52963</dependson>
          <blocked>72352</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hajime Morrita">morrita</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>338927</commentid>
    <comment_count>0</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-24 03:26:13 -0800</bug_when>
    <thetext>These should be replaced with shadow root access API which will be introduced by Bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340127</commentid>
    <comment_count>1</comment_count>
      <attachid>80166</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-25 21:21:12 -0800</bug_when>
    <thetext>Created attachment 80166
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340129</commentid>
    <comment_count>2</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-25 21:23:04 -0800</bug_when>
    <thetext>Hi Dimitri, could you could you take a look?
I&apos;d like to land this before your wave of changes arrives ;-o</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340132</commentid>
    <comment_count>3</comment_count>
      <attachid>80166</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-25 21:27:22 -0800</bug_when>
    <thetext>Comment on attachment 80166
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        * dom/Node.cpp:
&gt; +        (WebCore::Node::shadowAncestorNode): Added const
&gt; +        (WebCore::Node::shadowTreeRootNode): Added const

Recently Darin Adler and Eric Seidel have told that const Nodes in WebCore make no sense.  I guess they object this change.
How about removing const from mediaElement() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340143</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-01-25 21:39:10 -0800</bug_when>
    <thetext>I think Tamura-san&apos;s got this one!

Also -- I am in the process of converting HTMLMediaElement. Can you take a different one, so that we don&apos;t step on each others toes? :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340145</commentid>
    <comment_count>5</comment_count>
      <attachid>80166</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-01-25 21:49:29 -0800</bug_when>
    <thetext>Comment on attachment 80166
Patch

Kent-san, Dimitri, thank you for take a look.
OK, so I&apos;ll cancel this at now and wait Dimitri&apos;s change.
Thanks for your suggestion!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>506632</commentid>
    <comment_count>6</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2011-11-20 17:46:38 -0800</bug_when>
    <thetext>This should be a gimme now that media element conversion is done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510644</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-11-29 02:49:15 -0800</bug_when>
    <thetext>I&apos;m back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513427</commentid>
    <comment_count>8</comment_count>
      <attachid>117550</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-01 20:13:45 -0800</bug_when>
    <thetext>Created attachment 117550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513429</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-01 20:14:49 -0800</bug_when>
    <thetext>Hi Dimitri, could you take a look?
This change should be much trivial compared to the size of ChangeLog ;-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513435</commentid>
    <comment_count>10</comment_count>
      <attachid>117550</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 20:26:00 -0800</bug_when>
    <thetext>Comment on attachment 117550
Patch

Attachment 117550 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10687863</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513454</commentid>
    <comment_count>11</comment_count>
      <attachid>117550</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-12-01 21:04:17 -0800</bug_when>
    <thetext>Comment on attachment 117550
Patch

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

r- because of Chromium build failure.

&gt; Source/WebCore/html/shadow/MediaControls.cpp:42
&gt; +    Element* host = toShadowRoot(shadowNode-&gt;shadowTreeRootNode())-&gt;shadowHost();

You can use Node::shadowAncestorNode().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513459</commentid>
    <comment_count>12</comment_count>
      <attachid>117560</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-01 21:12:18 -0800</bug_when>
    <thetext>Created attachment 117560
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514870</commentid>
    <comment_count>13</comment_count>
      <attachid>117560</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-04 20:57:04 -0800</bug_when>
    <thetext>Comment on attachment 117560
Patch

Similar change was landed:
http://trac.webkit.org/changeset/101810</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514871</commentid>
    <comment_count>14</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-12-04 20:57:41 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/101810 Fixes this.

*** This bug has been marked as a duplicate of bug 71410 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80166</attachid>
            <date>2011-01-25 21:21:12 -0800</date>
            <delta_ts>2011-01-25 21:49:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53001-20110126142110.patch</filename>
            <type>text/plain</type>
            <size>7526</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwMjgxODViOGYyMTYyYWM5YjI3ZTUwOGM3Yjk3ZmEyNGUwNzM1Zjg3Li40
ZThlZjEwZWUzNmI2ZDBhNDFiMTQ1YzM1ZWVjYWFlYjY1Y2IyZjI4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTEtMDEtMjUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbV9t
ZWRpYUVsZW1lbnQgb2YgTWVkaWFDb250cm9sRWxlbWVudCBmYW1pbHkgc2hvdWxkIGJlIHJlbW92
ZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzAw
MQorCisgICAgICAgIFJlcGxhY2VkIG1fbWVkaWFFbGVtZW50IHdpdGggTm9kZTo6c2hhZG93QW5j
ZXN0b3JOb2RlKCkKKworICAgICAgICBObyB0ZXN0LCBubyBiZWhhdmlvcmFsIGNoYW5nZS4KKyAg
ICAgICAgCisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
c2hhZG93QW5jZXN0b3JOb2RlKTogQWRkZWQgY29uc3QKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6
OnNoYWRvd1RyZWVSb290Tm9kZSk6IEFkZGVkIGNvbnN0CisgICAgICAgICogZG9tL05vZGUuaDoK
KyAgICAgICAgKiByZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6TWVkaWFDb250cm9sRWxlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50OjpzdHlsZUZvckVsZW1lbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6dXBkYXRlU3R5bGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQp
OgorICAgICAgICAqIHJlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sRWxlbWVudDo6bWVkaWFFbGVtZW50KTogUmVwbGFjZWQgbV9t
ZWRpYUVsZW1lbnQgd2l0aCBzaGFkb3dBbmNlc3Rvck5vZGUoKQorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sSW5wdXRFbGVtZW50OjptZWRpYUVsZW1lbnQpOiBSZXBsYWNlZCBtX21lZGlh
RWxlbWVudCB3aXRoIHNoYWRvd0FuY2VzdG9yTm9kZSgpCisKIDIwMTEtMDEtMjQgIE1paGFpIFBh
cnBhcml0YSAgPG1paGFpcEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9u
eSBDaGFuZy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBjZDcyNjYyMWNjZGIwYzIyNjhmNGEwYjczYjM1
YWFiY2UzNDk3OTlkLi40ZmI5Y2RlMDkzMzZmY2Q4NDM3OTU2ZjkyNDcxZmM3OTAyM2ZhYjE1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwCkBAIC0xNDYzLDcgKzE0NjMsNyBAQCBib29sIE5vZGU6OmNhblN0YXJ0
U2VsZWN0aW9uKCkgY29uc3QKICAgICByZXR1cm4gcGFyZW50T3JIb3N0Tm9kZSgpID8gcGFyZW50
T3JIb3N0Tm9kZSgpLT5jYW5TdGFydFNlbGVjdGlvbigpIDogdHJ1ZTsKIH0KIAotTm9kZSogTm9k
ZTo6c2hhZG93QW5jZXN0b3JOb2RlKCkKK05vZGUqIE5vZGU6OnNoYWRvd0FuY2VzdG9yTm9kZSgp
IGNvbnN0CiB7CiAjaWYgRU5BQkxFKFNWRykKICAgICAvLyBTVkcgZWxlbWVudHMgbGl2aW5nIGlu
IGEgc2hhZG93IHRyZWUgb25seSBvY2N1ciB3aGVuIDx1c2U+IGNyZWF0ZWQgdGhlbS4KQEAgLTE0
NzEsMTggKzE0NzEsMTggQEAgTm9kZSogTm9kZTo6c2hhZG93QW5jZXN0b3JOb2RlKCkKICAgICAv
LyBidXQgdGhlIGFjdHVhbCBzaGFkb3cgdHJlZSBlbGVtZW50IC0gYXMgbWFpbiBkaWZmZXJlbmNl
IHRvIHRoZSBIVE1MIGZvcm1zCiAgICAgLy8gc2hhZG93IHRyZWUgY29uY2VwdC4gKFRoaXMgZnVu
Y3Rpb24gX2NvdWxkXyBiZSBtYWRlIHZpcnR1YWwgLSBvcGluaW9ucz8pCiAgICAgaWYgKGlzU1ZH
RWxlbWVudCgpKQotICAgICAgICByZXR1cm4gdGhpczsKKyAgICAgICAgcmV0dXJuIGNvbnN0X2Nh
c3Q8Tm9kZSo+KHRoaXMpOwogI2VuZGlmCiAKICAgICBOb2RlKiByb290ID0gc2hhZG93VHJlZVJv
b3ROb2RlKCk7CiAgICAgaWYgKHJvb3QpCiAgICAgICAgIHJldHVybiByb290LT5zaGFkb3dIb3N0
KCk7Ci0gICAgcmV0dXJuIHRoaXM7CisgICAgcmV0dXJuIGNvbnN0X2Nhc3Q8Tm9kZSo+KHRoaXMp
OwogfQogCi1Ob2RlKiBOb2RlOjpzaGFkb3dUcmVlUm9vdE5vZGUoKQorTm9kZSogTm9kZTo6c2hh
ZG93VHJlZVJvb3ROb2RlKCkgY29uc3QKIHsKLSAgICBOb2RlKiByb290ID0gdGhpczsKKyAgICBO
b2RlKiByb290ID0gY29uc3RfY2FzdDxOb2RlKj4odGhpcyk7CiAgICAgd2hpbGUgKHJvb3QpIHsK
ICAgICAgICAgaWYgKHJvb3QtPmlzU2hhZG93Um9vdCgpKQogICAgICAgICAgICAgcmV0dXJuIHJv
b3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuaAppbmRleCA3NGUxY2M0N2ZmOGFlYmViMWUyNjA2ZDYxYWVhZjU5MDg4NzA2
Mjc3Li44NGZjMWY4Njg5NzQyYjgzMmU3ZDE3ZDQ0ZmM0MTQ0ZGYyNmY1YjEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmgKQEAgLTIwNiw4ICsyMDYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ2hhcmFj
dGVyRGF0YU5vZGUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgaXNEb2N1bWVu
dE5vZGUoKSBjb25zdDsKICAgICBib29sIGlzU2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIGdl
dEZsYWcoSXNTaGFkb3dSb290RmxhZyk7IH0KLSAgICBOb2RlKiBzaGFkb3dBbmNlc3Rvck5vZGUo
KTsKLSAgICBOb2RlKiBzaGFkb3dUcmVlUm9vdE5vZGUoKTsKKyAgICBOb2RlKiBzaGFkb3dBbmNl
c3Rvck5vZGUoKSBjb25zdDsKKyAgICBOb2RlKiBzaGFkb3dUcmVlUm9vdE5vZGUoKSBjb25zdDsK
ICAgICBib29sIGlzSW5TaGFkb3dUcmVlKCk7CiAgICAgLy8gTm9kZSdzIHBhcmVudCBvciBzaGFk
b3cgdHJlZSBob3N0LgogICAgIENvbnRhaW5lck5vZGUqIHBhcmVudE9ySG9zdE5vZGUoKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCmluZGV4IGUyNzE4MWVjODhiZTMzNjlmNDU5Y2ZjZmU4ZmE3NThiYmNhMDNmZDYuLmZkYzlm
YzY2M2MyZjUwZjI2ZGYyNzE4MDQ4Mzk5ODUzOWRkMDg0ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtMTA3LDcgKzEwNyw2
IEBAIHZvaWQgTWVkaWFDb250cm9sU2hhZG93Um9vdEVsZW1lbnQ6OmRldGFjaCgpCiAKIE1lZGlh
Q29udHJvbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbEVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbGVtZW50LCBQc2V1ZG9JZCBwc2V1ZG8pCiAgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcs
IG1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKSkKLSAgICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxl
bWVudCkKICAgICAsIG1fcHNldWRvU3R5bGVJZChwc2V1ZG8pCiB7CiAgICAgc2V0SW5Eb2N1bWVu
dCgpOwpAQCAtMTU3LDcgKzE1Niw3IEBAIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6dXBkYXRl
KCkKIAogUGFzc1JlZlB0cjxSZW5kZXJTdHlsZT4gTWVkaWFDb250cm9sRWxlbWVudDo6c3R5bGVG
b3JFbGVtZW50KCkKIHsKLSAgICBSZW5kZXJTdHlsZSogc3R5bGUgPSBtX21lZGlhRWxlbWVudC0+
cmVuZGVyZXIoKS0+Z2V0Q2FjaGVkUHNldWRvU3R5bGUobV9wc2V1ZG9TdHlsZUlkKTsKKyAgICBS
ZW5kZXJTdHlsZSogc3R5bGUgPSBtZWRpYUVsZW1lbnQoKS0+cmVuZGVyZXIoKS0+Z2V0Q2FjaGVk
UHNldWRvU3R5bGUobV9wc2V1ZG9TdHlsZUlkKTsKICAgICBpZiAoIXN0eWxlKQogICAgICAgICBy
ZXR1cm4gMDsKICAgICAKQEAgLTE3NCw3ICsxNzMsNyBAQCBib29sIE1lZGlhQ29udHJvbEVsZW1l
bnQ6OnJlbmRlcmVySXNOZWVkZWQoUmVuZGVyU3R5bGUqIHN0eWxlKQogICAgIEFTU0VSVChkb2N1
bWVudCgpLT5wYWdlKCkpOwogCiAgICAgcmV0dXJuIEhUTUxEaXZFbGVtZW50OjpyZW5kZXJlcklz
TmVlZGVkKHN0eWxlKSAmJiBwYXJlbnROb2RlKCkgJiYgcGFyZW50Tm9kZSgpLT5yZW5kZXJlcigp
Ci0gICAgICAgICYmICghc3R5bGUtPmhhc0FwcGVhcmFuY2UoKSB8fCBkb2N1bWVudCgpLT5wYWdl
KCktPnRoZW1lKCktPnNob3VsZFJlbmRlck1lZGlhQ29udHJvbFBhcnQoc3R5bGUtPmFwcGVhcmFu
Y2UoKSwgbV9tZWRpYUVsZW1lbnQpKTsKKyAgICAgICAgJiYgKCFzdHlsZS0+aGFzQXBwZWFyYW5j
ZSgpIHx8IGRvY3VtZW50KCktPnBhZ2UoKS0+dGhlbWUoKS0+c2hvdWxkUmVuZGVyTWVkaWFDb250
cm9sUGFydChzdHlsZS0+YXBwZWFyYW5jZSgpLCBtZWRpYUVsZW1lbnQoKSkpOwogfQogICAgIAog
dm9pZCBNZWRpYUNvbnRyb2xFbGVtZW50OjphdHRhY2goKQpAQCAtMTg1LDcgKzE4NCw3IEBAIHZv
aWQgTWVkaWFDb250cm9sRWxlbWVudDo6YXR0YWNoKCkKICAgICBib29sIG5lZWRzUmVuZGVyZXIg
PSByZW5kZXJlcklzTmVlZGVkKHN0eWxlLmdldCgpKTsKICAgICBpZiAoIW5lZWRzUmVuZGVyZXIp
CiAgICAgICAgIHJldHVybjsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3JlYXRlUmVu
ZGVyZXIobV9tZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCktPnJlbmRlckFyZW5hKCksIHN0eWxlLmdl
dCgpKTsKKyAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXIobWVkaWFF
bGVtZW50KCktPnJlbmRlcmVyKCktPnJlbmRlckFyZW5hKCksIHN0eWxlLmdldCgpKTsKICAgICBp
ZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm47CiAgICAgcmVuZGVyZXItPnNldFN0eWxlKHN0
eWxlLmdldCgpKTsKQEAgLTIwMiw3ICsyMDEsNyBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6
OmF0dGFjaCgpCiAKIHZvaWQgTWVkaWFDb250cm9sRWxlbWVudDo6dXBkYXRlU3R5bGUoKQogewot
ICAgIGlmICghbV9tZWRpYUVsZW1lbnQgfHwgIW1fbWVkaWFFbGVtZW50LT5yZW5kZXJlcigpKQor
ICAgIGlmICghbWVkaWFFbGVtZW50KCkgfHwgIW1lZGlhRWxlbWVudCgpLT5yZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IHN0eWxlID0gc3R5bGVG
b3JFbGVtZW50KCk7CkBAIC0zNTQsNyArMzUzLDYgQEAgYm9vbCBNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudDo6cmVuZGVyZXJJc05lZWRlZChSZW5kZXJTdHlsZSogc3R5bGUpCiAgICAg
CiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudChIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQsIFBzZXVkb0lkIHBzZXVkbykKICAgICA6IEhUTUxJ
bnB1dEVsZW1lbnQoaW5wdXRUYWcsIG1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKSkKLSAgICAsIG1f
bWVkaWFFbGVtZW50KG1lZGlhRWxlbWVudCkKICAgICAsIG1fcHNldWRvU3R5bGVJZChwc2V1ZG8p
CiB7CiAgICAgc2V0SW5Eb2N1bWVudCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
TWVkaWFDb250cm9sRWxlbWVudHMuaAppbmRleCBiMmQwNjNkNGZlYmEzYTk1ODViZTI1NjZmMjhj
NTYyZThmZjA1OWQ2Li4zMDU5YmUxMTEwNGU4ZWMxZDJjNzhiY2JjYWFlZTgxN2ZlYmFlZDhkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTWVkaWFDb250cm9sRWxlbWVudHMuaApA
QCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAKICAgICBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBk
aXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheVR5cGU7IH0KIAotICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50
OyB9CisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsgfQog
CiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFDb250cm9sRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kiwg
UHNldWRvSWQpOwpAQCAtMTA3LDcgKzEwNyw2IEBAIHByb3RlY3RlZDoKIHByaXZhdGU6CiAgICAg
dmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KIAotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50OyAgIAogICAgIFBzZXVk
b0lkIG1fcHNldWRvU3R5bGVJZDsKICAgICBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBtX2Rpc3Bs
YXlUeXBlOyAgLy8gc29tZSBlbGVtZW50cyBjYW4gc2hvdyBtdWx0aXBsZSB0eXBlcyAoZS5nLiBw
bGF5L3BhdXNlKQogfTsKQEAgLTE3MSw3ICsxNzAsNyBAQCBwdWJsaWM6CiAKICAgICBNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheVR5
cGU7IH0KIAotICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fbWVkaWFFbGVtZW50OyB9CisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
KCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8SFRNTE1lZGlhRWxlbWVudCo+KHNoYWRvd0Fu
Y2VzdG9yTm9kZSgpKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50KEhUTUxNZWRpYUVsZW1lbnQqLCBQc2V1ZG9JZCk7CkBAIC0xOTAsNyArMTg5LDYgQEAgcHJp
dmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpIHsgfQogCi0gICAg
SFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7ICAgCiAgICAgUHNldWRvSWQgbV9wc2V1
ZG9TdHlsZUlkOwogICAgIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIG1fZGlzcGxheVR5cGU7CiB9
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117550</attachid>
            <date>2011-12-01 20:13:45 -0800</date>
            <delta_ts>2011-12-01 21:12:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53001-20111202131343.patch</filename>
            <type>text/plain</type>
            <size>64848</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdhMmQ5NDRiNDViMGNk
MTFhODVkN2I1ZTlkMzc2OTVlY2UyODliMC4uNjVmODE0Yjk5NzhhMzIzZjdmNjVkOTg2MmVhOGQx
M2UyMGM5NGU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg3IEBACisyMDExLTEyLTAxICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzAwMQorICAgICAgICBtX21lZGlhRWxlbWVu
dCBvZiBNZWRpYUNvbnRyb2xFbGVtZW50IGZhbWlseSBzaG91bGQgYmUgcmVtb3ZlZC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIE1lZGlh
Q29udHJvbHM6Om1fbWVkaWFFbGVtZW50IGFuZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6bV9t
ZWRpYUVsZW1lbnQgdGhlbgorICAgICAgICByZXBsYWNlZCB0aGUgbWVkaWFFbGVtZW50KCkgYWNj
ZXNzb3IgdXNpbmcgc2hhZG93VHJlZVJvb3ROb2RlKCksIHdoaWNoIHNob3VsZCByZXR1cm4gSFRN
TE1lZGlhRWxlbWVudCBpbnN0YW5jZS4KKyAgICAgICAgQnkgdGhpcyBjaGFuZ2UsIE1lZGlhIGNv
bnRyb2wgY2xhc3NlcyBubyBsb25nZXIgbmVlZCBhbnkgSFRNTE1lZGlhRWxlbWVudCBwb2ludGVy
IGZvciB0aGVpciBpbnN0YW50aWF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVo
YXZpb3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50OjpNZWRpYUNv
bnRyb2xFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6Om1l
ZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElu
cHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
Om1lZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9u
RWxlbWVudDo6TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFNlZWtCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25F
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6TWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVs
aW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
OjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFJvb3RFbGVtZW50OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dXBkYXRlVGltZURpc3BsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmxvYWRlZE1ldGFkYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpjaGFuZ2VkVm9s
dW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjplbnRlcmVk
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
c2hvd1ZvbHVtZVNsaWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xSb290RWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6aG9zdE1lZGlhRWxlbWVudEZvcik6IEFkZGVkIHRoaXMgc2ltcGxlIGhlbHBl
ci4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbHM6Ok1lZGlhQ29udHJvbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6bWVkaWFFbGVtZW50KToKKyAgICAgICAgKiBo
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmg6CisKIDIwMTEtMTItMDEgIFJhZmFlbCBXZWluc3Rl
aW4gIDxyYWZhZWx3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbTXV0YXRpb25PYnNlcnZlcnNd
IFN0eWxlQXR0cmlidXRlTXV0YXRpb25TY29wZSBzaG91bGRuJ3QgYmUgaW1wbGVtZW50ZWQgd2l0
aCBzdGF0aWMgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDZiOTY5MzEyOTNhYzgwMmNlNDViM2IwMmQ0NjBi
OWNlY2RlODc0OTQuLmEzMDkzZjAwZThhOTYzMzBhOTU0NzA0YjZhMDJmNjc2ODcwYzA4YjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHAKQEAgLTgwLDkgKzgwLDggQEAgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgbWVkaWFDb250
cm9sRWxlbWVudFR5cGUoTm9kZSogbm9kZSkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLQogCi1NZWRpYUNvbnRyb2xFbGVtZW50OjpNZWRpYUNvbnRyb2xFbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgbWVk
aWFFbGVtZW50LT5kb2N1bWVudCgpKQotICAgICwgbV9tZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50
KQorTWVkaWFDb250cm9sRWxlbWVudDo6TWVkaWFDb250cm9sRWxlbWVudChEb2N1bWVudCogZG9j
dW1lbnQpCisgICAgOiBIVE1MRGl2RWxlbWVudChkaXZUYWcsIGRvY3VtZW50KQogewogfQogCkBA
IC05NiwxOSArOTUsMjQgQEAgdm9pZCBNZWRpYUNvbnRyb2xFbGVtZW50OjpoaWRlKCkKICAgICBl
bnN1cmVJbmxpbmVTdHlsZURlY2woKS0+c2V0UHJvcGVydHkoQ1NTUHJvcGVydHlEaXNwbGF5LCBD
U1NWYWx1ZU5vbmUpOwogfQogCitIVE1MTWVkaWFFbGVtZW50KiBNZWRpYUNvbnRyb2xFbGVtZW50
OjptZWRpYUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBob3N0TWVkaWFFbGVtZW50Rm9y
KHRoaXMpOworfQorCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KG1lZGlh
RWxlbWVudCkKK2lubGluZSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBh
bmVsRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50
KGRvY3VtZW50KQogICAgICwgbV9jYW5CZURyYWdnZWQoZmFsc2UpCiAgICAgLCBtX2lzQmVpbmdE
cmFnZ2VkKGZhbHNlKQogICAgICwgbV9vcGFxdWUodHJ1ZSkKIHsKIH0KIAotUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRl
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbEVs
ZW1lbnQobWVkaWFFbGVtZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAogTWVkaWFDb250cm9sRWxlbWVudFR5cGUg
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpkaXNwbGF5VHlwZSgpIGNvbnN0CkBAIC0yNTIsMTQg
KzI1NiwxNCBAQCB2b2lkIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6c2V0Q2FuQmVEcmFnZ2Vk
KGJvb2wgY2FuQmVEcmFnZ2VkKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LWlubGluZSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQp
Ci0gICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KG1lZGlhRWxlbWVudCkKK2lubGluZSBNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50
KGRvY3VtZW50KQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50OjpjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChtZWRpYUVsZW1lbnQpKTsKKyAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwog
ICAgIGVsZW1lbnQtPmhpZGUoKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CkBA
IC0zMDUsMTQgKzMwOSwxNCBAQCB2b2lkIFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVy
OjpsYXlvdXQoKQogICAgIHNldFkob2Zmc2V0LnkoKSArIGJ1dHRvbkJveC0+b2Zmc2V0VG9wKCkp
OwogfQogCi1pbmxpbmUgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KG1lZGlhRWxlbWVudCkK
K2lubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAg
ICA6IE1lZGlhQ29udHJvbEVsZW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1l
U2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29u
dGFpbmVyRWxlbWVudD4gZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3
IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoZG9jdW1lbnQpKTsKICAg
ICBlbGVtZW50LT5oaWRlKCk7CiAgICAgcmV0dXJuIGVsZW1lbnQucmVsZWFzZSgpOwogfQpAQCAt
MzUyLDE1ICszNTYsMTUgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGMKIAogLy8gLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQobWVkaWFFbGVtZW50KQor
aW5saW5lIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xTdGF0
dXNEaXNwbGF5RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xF
bGVtZW50KGRvY3VtZW50KQogICAgICwgbV9zdGF0ZUJlaW5nRGlzcGxheWVkKE5vdGhpbmcpCiB7
CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVk
aWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1l
bnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBlbGVt
ZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KG1lZGlh
RWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4g
ZWxlbWVudCA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChk
b2N1bWVudCkpOwogICAgIGVsZW1lbnQtPmhpZGUoKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxl
YXNlKCk7CiB9CkBAIC00MTMsMTMgKzQxNywxNyBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICAKLU1lZGlhQ29udHJvbElucHV0RWxl
bWVudDo6TWVkaWFDb250cm9sSW5wdXRFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxl
bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCi0gICAgOiBIVE1MSW5w
dXRFbGVtZW50KGlucHV0VGFnLCBtZWRpYUVsZW1lbnQtPmRvY3VtZW50KCksIDAsIGZhbHNlKQot
ICAgICwgbV9tZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50KQorTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50OjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKKyAgICA6IEhUTUxJbnB1dEVsZW1lbnQoaW5w
dXRUYWcsIGRvY3VtZW50LCAwLCBmYWxzZSkKICAgICAsIG1fZGlzcGxheVR5cGUoZGlzcGxheVR5
cGUpCiB7CiB9CiAKK0hUTUxNZWRpYUVsZW1lbnQqIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6
bWVkaWFFbGVtZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaG9zdE1lZGlhRWxlbWVudEZvcih0
aGlzKTsKK30KKwogdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnNob3coKQogewogICAg
IGVuc3VyZUlubGluZVN0eWxlRGVjbCgpLT5yZW1vdmVQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3Bs
YXkpOwpAQCAtNDQzLDggKzQ1MSw4IEBAIHZvaWQgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50Ojpz
ZXREaXNwbGF5VHlwZShNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwCiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbE11dGVCdXR0
b25FbGVtZW50OjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQotICAg
IDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KG1lZGlhRWxlbWVudCwgZGlzcGxheVR5cGUpCitp
bmxpbmUgTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbE11dGVCdXR0
b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlz
cGxheVR5cGUpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIGRpc3Bs
YXlUeXBlKQogewogfQogCkBAIC00NzAsMTcgKzQ3OCwxNyBAQCB2b2lkIE1lZGlhQ29udHJvbE11
dGVCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKLSAgICA6IE1lZGlhQ29udHJv
bE11dGVCdXR0b25FbGVtZW50KG1lZGlhRWxlbWVudCwgTWVkaWFNdXRlQnV0dG9uKQoraW5saW5l
IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9s
cykKKyAgICA6IE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYU11
dGVCdXR0b24pCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRyb2xzKQogewogfQogCi1QYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQsIE1l
ZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVC
dXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKIHsKICAgICBBU1NF
UlQoY29udHJvbHMpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVs
ZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25F
bGVtZW50KG1lZGlhRWxlbWVudCwgY29udHJvbHMpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIGNvbnRyb2xzKSk7CiAgICAgYnV0dG9u
LT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAg
LTUwMSwxNCArNTA5LDE0IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sTXV0ZUJ1
dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYU11dGVCdXR0b24pCitpbmxpbmUgTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlck11dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbE11dGVCdXR0b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYU11dGVCdXR0b24pCiB7CiB9CiAK
LVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50KSk7
CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJl
dHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtNTIxLDE0ICs1MjksMTQgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6c2hh
ZG93UHNldWRvSWQoKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGlu
ZSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGxheUJ1dHRvbkVs
ZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50KG1lZGlhRWxlbWVudCwgTWVkaWFQbGF5QnV0dG9uKQoraW5saW5lIE1lZGlh
Q29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1l
bnQsIE1lZGlhUGxheUJ1dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQbGF5
QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlC
dXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1l
bnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudCht
ZWRpYUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+
IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChkb2N1
bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRv
bi5yZWxlYXNlKCk7CiB9CkBAIC01NTYsOCArNTY0LDggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xTZWVr
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxl
bWVudCogbWVkaWFFbGVtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkK
LSAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChtZWRpYUVsZW1lbnQsIGRpc3BsYXlUeXBl
KQoraW5saW5lIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVr
QnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBl
IGRpc3BsYXlUeXBlKQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBk
aXNwbGF5VHlwZSkKICAgICAsIG1fYWN0aW9uT25TdG9wKE5vdGhpbmcpCiAgICAgLCBtX3NlZWtU
eXBlKFNraXApCiAgICAgLCBtX3NlZWtUaW1lcih0aGlzLCAmTWVkaWFDb250cm9sU2Vla0J1dHRv
bkVsZW1lbnQ6OnNlZWtUaW1lckZpcmVkKQpAQCAtNjM3LDE0ICs2NDUsMTQgQEAgdm9pZCBNZWRp
YUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6c2Vla1RpbWVyRmlyZWQoVGltZXI8TWVkaWFDb250
cm9sU2Vla0J1dHRvbkUKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxp
bmUgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAg
IDogTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVNlZWtG
b3J3YXJkQnV0dG9uKQoraW5saW5lIE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVu
dCkKKyAgICA6IE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYVNl
ZWtGb3J3YXJkQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3
YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50Ojpj
cmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0
dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVk
aWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFk
b3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQp
KTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVs
ZWFzZSgpOwogfQpAQCAtNjU3LDE0ICs2NjUsMTQgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sU2Vla0J1
dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVNlZWtCYWNrQnV0dG9uKQoraW5saW5lIE1l
ZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0
b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbFNlZWtCdXR0
b25FbGVtZW50KGRvY3VtZW50LCBNZWRpYVNlZWtCYWNrQnV0dG9uKQogewogfQogCi1QYXNzUmVm
UHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0Jh
Y2tCdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQor
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJv
bFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9w
dFJlZihuZXcgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KG1lZGlhRWxlbWVudCkp
OworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQp
KTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVs
ZWFzZSgpOwogfQpAQCAtNjc3LDE0ICs2ODUsMTQgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sUmV3
aW5kQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChIVE1MTWVk
aWFFbGVtZW50KiBlbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGVsZW1l
bnQsIE1lZGlhUmV3aW5kQnV0dG9uKQoraW5saW5lIE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJld2luZEJ1
dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50
PiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVu
dCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVt
ZW50PiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChtZWRp
YUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4g
YnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoZG9j
dW1lbnQpKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0
b24ucmVsZWFzZSgpOwogfQpAQCAtNzA2LDE0ICs3MTQsMTQgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJv
bFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBN
ZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVJldHVyblRvUmVhbHRp
bWVCdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK1Bh
c3NSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IE1lZGlh
Q29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9u
RWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRp
bWVCdXR0b25FbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0
dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4g
YnV0dG9uLnJlbGVhc2UoKTsKQEAgLTczNiwxNCArNzQ0LDE0IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVk
b0lkKCkKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFD
b250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50KQotICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KG1lZGlhRWxlbWVudCwgTWVkaWFT
aG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50KGRvY3VtZW50LCBNZWRpYVNob3dDbG9zZWRDYXB0aW9uc0J1dHRvbikKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+
IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sVG9n
Z2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudChtZWRpYUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0
dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBidXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4g
YnV0dG9uLnJlbGVhc2UoKTsKQEAgLTc3NCwxNyArNzgyLDE3IEBAIGNvbnN0IEF0b21pY1N0cmlu
ZyYgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotTWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoSFRNTE1lZGlhRWxl
bWVudCogbWVkaWFFbGVtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKLSAgICA6IE1lZGlh
Q29udHJvbElucHV0RWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhU2xpZGVyKQorTWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKKyAgICA6IE1lZGlhQ29udHJvbElu
cHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFTbGlkZXIpCiAgICAgLCBtX2NvbnRyb2xzKGNvbnRy
b2xzKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4gTWVk
aWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFF
bGVtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
VGltZWxpbmVFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShEb2N1
bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogewogICAgIEFTU0VSVChj
b250cm9scyk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1l
bGluZSA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQobWVkaWFFbGVt
ZW50LCBjb250cm9scykpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+
IHRpbWVsaW5lID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChkb2N1
bWVudCwgY29udHJvbHMpKTsKICAgICB0aW1lbGluZS0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICB0
aW1lbGluZS0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHJldHVy
biB0aW1lbGluZS5yZWxlYXNlKCk7CkBAIC04NDEsMTggKzg0OSwxOCBAQCBjb25zdCBBdG9taWNT
dHJpbmcmIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KEhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbElucHV0RWxl
bWVudChtZWRpYUVsZW1lbnQsIE1lZGlhVm9sdW1lU2xpZGVyKQoraW5saW5lIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoRG9j
dW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50
LCBNZWRpYVZvbHVtZVNsaWRlcikKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCB2b2x1bWUpCiB7Ci0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCkpOwogICAgIHNsaWRlci0+c2V0VHlw
ZSgicmFuZ2UiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShwcmVjaXNpb25BdHRyLCAiZmxv
YXQiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShtYXhBdHRyLCAiMSIpOwotICAgIHNsaWRl
ci0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgU3RyaW5nOjpudW1iZXIobWVkaWFFbGVtZW50LT52
b2x1bWUoKSkpOworICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgU3RyaW5nOjpu
dW1iZXIodm9sdW1lKSk7CiAgICAgcmV0dXJuIHNsaWRlci5yZWxlYXNlKCk7CiB9CiAKQEAgLTg5
MiwxOCArOTAwLDE4IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVy
RWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQoSFRNTE1l
ZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudChtZWRpYUVsZW1lbnQpCitpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1l
bnQoZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVt
ZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIGZs
b2F0IHZvbHVtZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNs
aWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lU2xpZGVyRWxlbWVudChtZWRpYUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudChkb2N1bWVudCkpOwogICAg
IHNsaWRlci0+c2V0VHlwZSgicmFuZ2UiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShwcmVj
aXNpb25BdHRyLCAiZmxvYXQiKTsKICAgICBzbGlkZXItPnNldEF0dHJpYnV0ZShtYXhBdHRyLCAi
MSIpOwotICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgU3RyaW5nOjpudW1iZXIo
bWVkaWFFbGVtZW50LT52b2x1bWUoKSkpOworICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKHZhbHVl
QXR0ciwgU3RyaW5nOjpudW1iZXIodm9sdW1lKSk7CiAgICAgcmV0dXJuIHNsaWRlci5yZWxlYXNl
KCk7CiB9CiAKQEAgLTkxNSwxNyArOTIzLDE3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sRnVs
bHNjcmVlbkJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMp
Ci0gICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYUZ1bGxz
Y3JlZW5CdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6
Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwg
TWVkaWFDb250cm9scyogY29udHJvbHMpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQo
ZG9jdW1lbnQsIE1lZGlhRnVsbHNjcmVlbkJ1dHRvbikKICAgICAsIG1fY29udHJvbHMoY29udHJv
bHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykKK1Bhc3NSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRy
b2xzKiBjb250cm9scykKIHsKICAgICBBU1NFUlQoY29udHJvbHMpOwogCi0gICAgUmVmUHRyPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBjb250cm9s
cykpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gYnV0
dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KGRv
Y3VtZW50LCBjb250cm9scykpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAg
YnV0dG9uLT5oaWRlKCk7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CkBAIC05NjEsMTQg
Kzk2OSwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVVuTXV0ZUJ1dHRvbikKK2lubGluZSBNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVl
blZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFD
b250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVVuTXV0ZUJ1dHRvbikKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9
IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dChtZWRpYUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVt
ZU1pbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0
VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC05OTEs
MTQgKzk5OSwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVNaW5CdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZAogCiAvLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1l
bnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotOiBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYU11dGVCdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVNYXhCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKzogTWVkaWFDb250cm9s
SW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYU11dGVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxl
bWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQobWVkaWFF
bGVtZW50KSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0
b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0b24tPnNldFR5cGUoImJ1
dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAtMTA0OSw4ICsxMDU3
LDggQEAgdm9pZCBSZW5kZXJNZWRpYUNvbnRyb2xUaW1lRGlzcGxheTo6bGF5b3V0KCkKICAgICAg
ICAgc2V0V2lkdGgoMCk7CiB9CiAKLWlubGluZSBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1l
bnQ6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KG1lZGlhRWxlbWVudCkKK2lubGlu
ZSBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVEaXNwbGF5
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xFbGVtZW50KGRv
Y3VtZW50KQogICAgICwgbV9jdXJyZW50VmFsdWUoMCkKIHsKIH0KQEAgLTEwNjcsMTMgKzEwNzUs
MTMgQEAgUmVuZGVyT2JqZWN0KiBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0
ZVJlbmRlcmVyKFJlbmRlckFyZW5hKiBhcmVuYSwKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudChtZWRpYUVsZW1l
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXNwbGF5RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1NZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xUaW1lRGlz
cGxheUVsZW1lbnQobWVkaWFFbGVtZW50KQorTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50OjpNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KGRvY3Vt
ZW50KQogewogfQogCkBAIC0xMDkwLDEzICsxMDk4LDEzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgp
IGNvCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBNZWRpYUNvbnRyb2xDdXJyZW50VGlt
ZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQor
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBNZWRpYUNv
bnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50
KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudChtZWRpYUVsZW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQoZG9jdW1lbnQpKTsKIH0KIAotTWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sQ3VycmVudFRpbWVE
aXNwbGF5RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRp
YUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQobWVkaWFFbGVtZW50KQorTWVkaWFDb250cm9sQ3Vy
cmVudFRpbWVEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVs
ZW1lbnQoZG9jdW1lbnQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IGY3ZDc4ZDNhNjU0NmMwNjkzMjJhMGY2NDcz
OTUyZjI3NGE4MGRiZjQuLjUxMTBhOGZiZDBkZGU2ZjIzNDhiM2I1OGIzZjYwZGZiMjkwMjcyOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1l
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaApAQCAtODQsMjIgKzg0LDE5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgTWVkaWFDb250
cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCA9IDA7CiAKLSAgICBIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX21lZGlhRWxlbWVudDsgfQot
CisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3Q7CiBwcm90ZWN0ZWQ6
Ci0gICAgTWVkaWFDb250cm9sRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFD
b250cm9sRWxlbWVudChEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c01lZGlhQ29udHJvbEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9Ci0KLSAgICBIVE1M
TWVkaWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsgICAKIH07CiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAogY2xhc3MgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50IDogcHVibGlj
IE1lZGlhQ29udHJvbEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCopOwogCiAgICAgdm9pZCBzZXRDYW5CZURyYWdnZWQoYm9vbCk7CiAgICAgdm9pZCByZXNldFBv
c2l0aW9uKCk7CkBAIC0xMDcsNyArMTA0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFrZVRyYW5z
cGFyZW50KCk7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50KEhUTUxN
ZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQoRG9jdW1lbnQqKTsK
ICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKQEAgLTEyOSwx
MCArMTI2LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IGNy
ZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250
cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0
ZToKLSAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQoSFRNTE1lZGlhRWxl
bWVudCopOworICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChEb2N1bWVu
dCopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgp
IGNvbnN0OwpAQCAtMTQyLDEwICsxMzksMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIFJl
bmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopOwog
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgdmlydHVh
bCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0OwpAQCAtMTU2LDEy
ICsxNTMsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVs
ZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShIVE1M
TWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVz
RGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiAgICAgdm9pZCB1cGRhdGUoKTsK
IAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChIVE1MTWVk
aWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQoRG9jdW1l
bnQqKTsKIAogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQo
KSBjb25zdDsKQEAgLTE3OSwxMCArMTc2LDEwIEBAIHB1YmxpYzoKIAogICAgIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3QgeyByZXR1cm4gbV9kaXNwbGF5VHlwZTsg
fQogCi0gICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYUVsZW1lbnQ7IH0KKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBj
b25zdDsKIAogcHJvdGVjdGVkOgotICAgIE1lZGlhQ29udHJvbElucHV0RWxlbWVudChIVE1MTWVk
aWFFbGVtZW50KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOworICAgIE1lZGlhQ29udHJvbElu
cHV0RWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKIAogICAgIHZv
aWQgc2V0RGlzcGxheVR5cGUoTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOwogCkBAIC0xOTEsNyAr
MTg4LDYgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgp
IHsgfQogCi0gICAgSFRNTE1lZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7CiAgICAgTWVkaWFD
b250cm9sRWxlbWVudFR5cGUgbV9kaXNwbGF5VHlwZTsKIH07CiAKQEAgLTIwMiw3ICsxOTgsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjaGFuZ2VkTXV0ZSgpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVk
aWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlKTsKKyAgICBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChEb2N1bWVu
dCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCopOwogCiAKQEAgLTIxNCwxMCArMjEwLDEwIEBAIHByaXZhdGU6CiAK
IGNsYXNzIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFD
b250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVt
ZW50KiwgTWVkaWFDb250cm9scyopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCosIE1lZGlhQ29udHJvbHMq
KTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50KEhU
TUxNZWRpYUVsZW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgTWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CkBAIC0yMjksMTAgKzIyNSwxMCBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVu
dCopOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25F
bGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpAQCAtMjQyLDEzICsyMzgsMTMgQEAg
cHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMg
TWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQq
KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwogCiBwcml2
YXRlOgotICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
KTsKKyAgICBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpA
QCAtMjYwLDcgKzI1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCopOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb250cm9sU2Vla0J1dHRv
bkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlKTsKKyAg
ICBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbEVs
ZW1lbnRUeXBlKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNGb3J3YXJkQnV0dG9u
KCkgY29uc3QgPSAwOwpAQCAtMjgyLDEwICsyNzgsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVk
aWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbFNl
ZWtCdXR0b25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVt
ZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJv
bFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBib29s
IGlzRm9yd2FyZEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGNv
bnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKQEAgLTI5NSwxMCArMjkx
LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBjcmVh
dGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0g
ICAgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsK
KyAgICBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwpA
QCAtMzA4LDEyICszMDQsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUmV3aW5k
QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+
IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCiBwcml2YXRlOgotICAgIE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1l
ZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogfTsKQEAgLTMyMiwx
MiArMzE4LDEyIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRp
bWVCdXR0b25FbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1
dHRvbkVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NS
ZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxl
bWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3Ry
aW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwogfTsgICAgCkBAIC0zMzYsMTMgKzMzMiwxMyBA
QCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bkVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBjcmVhdGUo
RG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
Kik7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCk7CiAKIHByaXZhdGU6Ci0g
ICAgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OwogfTsgICAgCkBAIC0zNTEsMTQgKzM0NywxNCBAQCBwcml2YXRl
OgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250
cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiwgTWVkaWFDb250
cm9scyopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCiAgICAgdmlydHVhbCB2b2lk
IGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2b2lkIHNldFBvc2l0aW9uKGZsb2F0
KTsKICAgICB2b2lkIHNldER1cmF0aW9uKGZsb2F0KTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNv
bnRyb2xUaW1lbGluZUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJvbHMqKTsK
KyAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xz
Kik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdDsKIApAQCAtMzY5LDEzICszNjUsMTMgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgZmxv
YXQgdm9sdW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
Kik7CiAgICAgdm9pZCBzZXRWb2x1bWUoZmxvYXQpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwpAQCAtMzg1
LDEyICszODEsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1
dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCosIE1lZGlhQ29udHJvbHMqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sRnVsbHNjcmVl
bkJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJv
bHMqKTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OwogCkBAIC00MDEsMTAgKzM5NywxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVs
ZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgZmxvYXQgdm9sdW1lKTsKICAgICAK
IHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQo
SFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlk
ZXJFbGVtZW50KERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpAQCAtNDEzLDEyICs0MDksMTIgQEAgcHJp
dmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1l
bnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Kik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsK
ICAgICAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVNaW5CdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpAQCAtNDI3LDEyICs0
MjMsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1h
eEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gY3Jl
YXRlKERvY3VtZW50Kik7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRs
ZXIoRXZlbnQqKTsKICAgICAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAgICAgCiAgICAg
dmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpA
QCAtNDQ1LDcgKzQ0MSw3IEBAIHB1YmxpYzoKICAgICBmbG9hdCBjdXJyZW50VmFsdWUoKSBjb25z
dCB7IHJldHVybiBtX2N1cnJlbnRWYWx1ZTsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb250
cm9sVGltZURpc3BsYXlFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRy
b2xUaW1lRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFs
IFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSop
OwpAQCAtNDU3LDEwICs0NTMsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVGlt
ZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5
RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGlt
ZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVu
dD4gY3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sVGltZVJl
bWFpbmluZ0Rpc3BsYXlFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRy
b2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwg
TWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKQEAgLTQ3MCwxMCAr
NDY2LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCop
OwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQo
SFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUg
ZGlzcGxheVR5cGUoKSBjb25zdDsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hh
ZG93UHNldWRvSWQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcAppbmRleCA3YWViZDU1N2U4NmMxMWE4OWRk
YzlmYWQ5Yjk2ZjY5ODE4Njk4Y2M3Li5iMGU4ZDc1NjUxMTljM2U1YzExZjljYmZkZWZiYjRkMmQ5
MWEzYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnQuY3BwCkBAIC00MSw5ICs0MSw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogc3RhdGljIGNvbnN0IGRvdWJsZSB0aW1lV2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVI
aWRpbmdDb250cm9scyA9IDM7CiAKLU1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpNZWRpYUNvbnRy
b2xSb290RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRp
YUNvbnRyb2xzKG1lZGlhRWxlbWVudCkKLSAgICAsIG1fbWVkaWFFbGVtZW50KG1lZGlhRWxlbWVu
dCkKK01lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9y
ZXdpbmRCdXR0b24oMCkKICAgICAsIG1fcGxheUJ1dHRvbigwKQogICAgICwgbV9yZXR1cm5Ub1Jl
YWxUaW1lQnV0dG9uKDApCkBAIC03Niw1NiArNzUsNTcgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50
KQogCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiBNZWRpYUNvbnRyb2xSb290
RWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKIHsKLSAgICBp
ZiAoIW1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgIERvY3VtZW50KiBkb2N1
bWVudCA9IG1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50LT5wYWdl
KCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50PiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290RWxlbWVudChtZWRp
YUVsZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ+IGNvbnRyb2xz
ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50KGRvY3VtZW50KSk7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBh
bmVsRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjOwogCi0gICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFJld2lu
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiByZXdpbmRCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3Jld2lu
ZEJ1dHRvbiA9IHJld2luZEJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocmV3
aW5kQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0
dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlC
dXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVu
dCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9u
ID0gTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAg
Y29udHJvbHMtPm1fcGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKHBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQog
ICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0
aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IHJldHVyblRv
UmVhbHRpbWVCdXR0b24gPSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9yZXR1cm5Ub1JlYWxUaW1lQnV0
dG9uID0gcmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hp
bGQocmV0dXJuVG9SZWFsdGltZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAo
ZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG1lZGlhRWxlbWVudC0+ZG9jdW1lbnQo
KS0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheSgpKSB7Ci0g
ICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gc3RhdHVzRGlz
cGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVt
ZW50KTsKKyAgICBpZiAoZG9jdW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+dXNlc01lZGlhQ29udHJv
bFN0YXR1c0Rpc3BsYXkoKSkgeworICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlz
cGxheUVsZW1lbnQ+IHN0YXR1c0Rpc3BsYXkgPSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMtPm1fc3RhdHVzRGlzcGxh
eSA9IHN0YXR1c0Rpc3BsYXkuZ2V0KCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzdGF0
dXNEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFRpbWVsaW5l
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGltZWxpbmVDb250YWluZXIgPSBNZWRp
YUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRp
bWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxh
eUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlz
cGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fY3VycmVudFRp
bWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwogICAgIHRpbWVsaW5lQ29udGFp
bmVyLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
OjpjcmVhdGUobWVkaWFFbGVtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAgIGNvbnRyb2xzLT5t
X3RpbWVsaW5lID0gdGltZWxpbmUuZ2V0KCk7CiAgICAgdGltZWxpbmVDb250YWluZXItPmFwcGVu
ZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9IE1lZGlhQ29udHJvbFRpbWVSZW1haW5p
bmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gdGltZVJlbWFpbmluZ0Rpc3BsYXkg
PSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCk7CiAgICAgY29udHJvbHMtPm1fdGltZVJlbWFpbmluZ0Rpc3BsYXkgPSB0aW1lUmVtYWluaW5n
RGlzcGxheS5nZXQoKTsKICAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodGltZVJl
bWFpbmluZ0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQpAQCAtMTM3
LDIxICsxMzcsMjEgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudD4gTWVkaWFD
b250cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGUKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVu
dD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQ+IHNlZWtCYWNrQnV0dG9uID0gTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3NlZWtCYWNrQnV0dG9uID0g
c2Vla0JhY2tCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHNlZWtCYWNrQnV0
dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQu
b3JnL2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxl
bWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVs
ZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IHNlZWtGb3J3YXJkQnV0dG9uID0gTWVkaWFDb250cm9sU2Vl
a0ZvcndhcmRCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5t
X3NlZWtGb3J3YXJkQnV0dG9uID0gc2Vla0ZvcndhcmRCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwt
PmFwcGVuZENoaWxkKHNlZWtGb3J3YXJkQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAg
IGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobWVkaWFFbGVtZW50LT5kb2N1
bWVudCgpLT5wYWdlKCktPnRoZW1lKCktPnN1cHBvcnRzQ2xvc2VkQ2FwdGlvbmluZygpKSB7Ci0g
ICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1l
bnQ+IHRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBpZiAoZG9j
dW1lbnQtPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKKyAg
ICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgICAgIGNvbnRyb2xz
LT5tX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uID0gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0
b24uZ2V0KCk7CiAgICAgICAgIHBhbmVsLT5hcHBlbmRDaGlsZCh0b2dnbGVDbG9zZWRDYXB0aW9u
c0J1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICAgICAgaWYgKGVjKQpAQCAtMTU5LDI2
ICsxNTksMjYgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudD4gTWVkaWFDb250
cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGUKICAgICB9CiAKICAgICAvLyBGSVhN
RTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3JnL2IvNTcxNjM+Ci0g
ICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsU2NyZWVu
QnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRp
YUVsZW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5CdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAg
Y29udHJvbHMtPm1fZnVsbFNjcmVlbkJ1dHRvbiA9IGZ1bGxTY3JlZW5CdXR0b24uZ2V0KCk7CiAg
ICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFu
ZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KG1lZGlhRWxlbWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5l
bE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAg
ICBjb250cm9scy0+bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7CiAg
ICAgcGFuZWwtPmFwcGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgaWYgKG1lZGlhRWxlbWVu
dC0+ZG9jdW1lbnQoKS0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyKCkpIHsKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ+IHZvbHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIGlmIChkb2N1bWVu
dC0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyKCkpIHsKKyAg
ICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IHZv
bHVtZVNsaWRlckNvbnRhaW5lciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKLSAgICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1l
bnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50LCBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpKTsKICAgICAgICAgY29u
dHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOwogICAgICAgICB2b2x1bWVTbGlk
ZXJDb250YWluZXItPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAg
ICAgICAgaWYgKGVjKQogICAgICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICAgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50PiB2b2x1bWVTbGlkZXJNdXRl
QnV0dG9uID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShtZWRpYUVsZW1lbnQpOworICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
TXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xW
b2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAg
Y29udHJvbHMtPm1fdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IHZvbHVtZVNsaWRlck11dGVCdXR0
b24uZ2V0KCk7CiAgICAgICAgIHZvbHVtZVNsaWRlckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQodm9s
dW1lU2xpZGVyTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICAgICAgaWYgKGVj
KQpAQCAtMTkxLDE5ICsxOTEsMTkgQEAgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVu
dD4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGUKICAgICB9CiAK
ICAgICAvLyBGSVhNRTogT25seSBjcmVhdGUgd2hlbiBuZWVkZWQgPGh0dHA6Ly93ZWJraXQub3Jn
L2IvNTcxNjM+Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50PiBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gZnVsbFNj
cmVlbk1pblZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0
b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3JlZW5N
aW5Wb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLmdldCgpOwogICAgIHBh
bmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWluVm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMs
IHRydWUpOwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVk
aWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVT
bGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVT
bGlkZXJFbGVtZW50PiBmdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgbWVkaWFFbGVtZW50LT52
b2x1bWUoKSk7CiAgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlblZvbHVtZVNsaWRlciA9IGZ1bGxT
Y3JlZW5Wb2x1bWVTbGlkZXIuZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3Jl
ZW5Wb2x1bWVTbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAg
ICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGZ1
bGxTY3JlZW5NYXhWb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9mdWxsU2Ny
ZWVuTWF4Vm9sdW1lQnV0dG9uID0gZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5nZXQoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbk1heFZvbHVtZUJ1dHRvbi5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCkBAIC0yNDQsMzEgKzI0NCwzMiBAQCB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIHVwZGF0
ZVN0YXR1c0Rpc3BsYXkoKTsKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBob3N0ID0gbWVkaWFFbGVt
ZW50KCk7CiAKLSAgICBpZiAobV9tZWRpYUVsZW1lbnQtPnN1cHBvcnRzRnVsbHNjcmVlbigpKQor
ICAgIGlmIChob3N0LT5zdXBwb3J0c0Z1bGxzY3JlZW4oKSkKICAgICAgICAgbV9mdWxsU2NyZWVu
QnV0dG9uLT5zaG93KCk7CiAgICAgZWxzZQogICAgICAgICBtX2Z1bGxTY3JlZW5CdXR0b24tPmhp
ZGUoKTsKIAotICAgIGZsb2F0IGR1cmF0aW9uID0gbV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7
CisgICAgZmxvYXQgZHVyYXRpb24gPSBob3N0LT5kdXJhdGlvbigpOwogICAgIGlmIChpc2Zpbml0
ZShkdXJhdGlvbikgfHwgcGFnZS0+dGhlbWUoKS0+aGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5n
Rm9yKE1lZGlhU2xpZGVyUGFydCkpIHsKICAgICAgICAgbV90aW1lbGluZS0+c2V0RHVyYXRpb24o
ZHVyYXRpb24pOwogICAgICAgICBtX3RpbWVsaW5lQ29udGFpbmVyLT5zaG93KCk7Ci0gICAgICAg
IG1fdGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKTsK
KyAgICAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24oaG9zdC0+Y3VycmVudFRpbWUoKSk7CiAg
ICAgICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiAgICAgfSBlbHNlCiAgICAgICAgIG1fdGltZWxp
bmVDb250YWluZXItPmhpZGUoKTsKIAotICAgIGlmIChtX21lZGlhRWxlbWVudC0+aGFzQXVkaW8o
KSB8fCBwYWdlLT50aGVtZSgpLT5oYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoTWVkaWFN
dXRlQnV0dG9uUGFydCkpCisgICAgaWYgKGhvc3QtPmhhc0F1ZGlvKCkgfHwgcGFnZS0+dGhlbWUo
KS0+aGFzT3duRGlzYWJsZWRTdGF0ZUhhbmRsaW5nRm9yKE1lZGlhTXV0ZUJ1dHRvblBhcnQpKQog
ICAgICAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+c2hvdygpOwogICAgIGVsc2UKICAgICAgICAgbV9w
YW5lbE11dGVCdXR0b24tPmhpZGUoKTsKIAogICAgIGlmIChtX3ZvbHVtZVNsaWRlcikKLSAgICAg
ICAgbV92b2x1bWVTbGlkZXItPnNldFZvbHVtZShtX21lZGlhRWxlbWVudC0+dm9sdW1lKCkpOwor
ICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKGhvc3QtPnZvbHVtZSgpKTsKIAogICAg
IGlmIChtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uKSB7Ci0gICAgICAgIGlmIChtX21lZGlh
RWxlbWVudC0+aGFzQ2xvc2VkQ2FwdGlvbnMoKSkKKyAgICAgICAgaWYgKGhvc3QtPmhhc0Nsb3Nl
ZENhcHRpb25zKCkpCiAgICAgICAgICAgICBtX3RvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uLT5z
aG93KCk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNC
dXR0b24tPmhpZGUoKTsKQEAgLTI3Nyw4ICsyNzgsOCBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50OjpyZXNldCgpCiAgICAgbV9wbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOwog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChkb2N1bWVudCgpLT53ZWJraXRJ
c0Z1bGxTY3JlZW4oKSAmJiBkb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1l
bnQoKSA9PSBtX21lZGlhRWxlbWVudCkgewotICAgICAgICBpZiAobV9tZWRpYUVsZW1lbnQtPm1v
dmllTG9hZFR5cGUoKSA9PSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkgeworICAgIGlmIChkb2N1
bWVudCgpLT53ZWJraXRJc0Z1bGxTY3JlZW4oKSAmJiBkb2N1bWVudCgpLT53ZWJraXRDdXJyZW50
RnVsbFNjcmVlbkVsZW1lbnQoKSA9PSBob3N0KSB7CisgICAgICAgIGlmIChob3N0LT5tb3ZpZUxv
YWRUeXBlKCkgPT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW0pIHsKICAgICAgICAgICAgIG1fc2Vl
a0JhY2tCdXR0b24tPmhpZGUoKTsKICAgICAgICAgICAgIG1fc2Vla0ZvcndhcmRCdXR0b24tPmhp
ZGUoKTsKICAgICAgICAgICAgIG1fcmV3aW5kQnV0dG9uLT5zaG93KCk7CkBAIC0yOTEsNyArMjky
LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cmVzZXQoKQogICAgICAgICB9CiAg
ICAgfSBlbHNlCiAjZW5kaWYKLSAgICBpZiAobV9tZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUo
KSAhPSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkgeworICAgIGlmIChob3N0LT5tb3ZpZUxvYWRU
eXBlKCkgIT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW0pIHsKICAgICAgICAgbV9yZXR1cm5Ub1Jl
YWxUaW1lQnV0dG9uLT5oaWRlKCk7CiAgICAgICAgIG1fcmV3aW5kQnV0dG9uLT5zaG93KCk7CiAg
ICAgfSBlbHNlIHsKQEAgLTMwNSwyNiArMzA2LDI2IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQ6OnJlc2V0KCkKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3Rh
cnRlZCgpCiB7CiAgICAgbV9wbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOwotICAgIG1f
dGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKTsKKyAg
ICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtZWRpYUVsZW1lbnQoKS0+Y3VycmVudFRpbWUoKSk7
CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKIAotICAgIGlmIChtX21lZGlhRWxlbWVudC0+aXNG
dWxsc2NyZWVuKCkpCisgICAgaWYgKG1lZGlhRWxlbWVudCgpLT5pc0Z1bGxzY3JlZW4oKSkKICAg
ICAgICAgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKIH0KIAogdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc2VkKCkKIHsKLSAgICBtX3RpbWVs
aW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAgbV90
aW1lbGluZS0+c2V0UG9zaXRpb24obWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCkpOwogICAg
IHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiAgICAgCi0gICAgaWYgKCFtX2lzTW91c2VPdmVyQ29udHJv
bHMgJiYgbV9tZWRpYUVsZW1lbnQtPmhhc1ZpZGVvKCkpCisgICAgaWYgKCFtX2lzTW91c2VPdmVy
Q29udHJvbHMgJiYgbWVkaWFFbGVtZW50KCktPmhhc1ZpZGVvKCkpCiAgICAgICAgIG1ha2VUcmFu
c3BhcmVudCgpOwogfQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpwbGF5YmFja1N0
b3BwZWQoKQogewogICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKLSAgICBt
X3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7Cisg
ICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCkp
OwogICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiAgICAgbWFrZU9wYXF1ZSgpOwogICAgIApAQCAt
MzMzLDggKzMzNCw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3Rv
cHBlZCgpCiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnVwZGF0ZVRpbWVEaXNwbGF5
KCkKIHsKLSAgICBmbG9hdCBub3cgPSBtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKTsKLSAg
ICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIGZsb2F0
IG5vdyA9IG1lZGlhRWxlbWVudCgpLT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0IGR1cmF0aW9u
ID0gbWVkaWFFbGVtZW50KCktPmR1cmF0aW9uKCk7CiAKICAgICBQYWdlKiBwYWdlID0gZG9jdW1l
bnQoKS0+cGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTM3Niw3ICszNzcsNyBAQCB2b2lkIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVTdGF0dXNEaXNwbGF5KCkKIAogdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudDo6bG9hZGVkTWV0YWRhdGEoKQogewotICAgIGlmIChtX3N0YXR1
c0Rpc3BsYXkgJiYgbV9tZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5cGUoKSAhPSBNZWRpYVBsYXll
cjo6TGl2ZVN0cmVhbSkKKyAgICBpZiAobV9zdGF0dXNEaXNwbGF5ICYmIG1lZGlhRWxlbWVudCgp
LT5tb3ZpZUxvYWRUeXBlKCkgIT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW0pCiAgICAgICAgIG1f
c3RhdHVzRGlzcGxheS0+aGlkZSgpOwogCiAgICAgcmVzZXQoKTsKQEAgLTM5OCwxMiArMzk5LDEy
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmNoYW5nZWRNdXRlKCkKIHZvaWQgTWVk
aWFDb250cm9sUm9vdEVsZW1lbnQ6OmNoYW5nZWRWb2x1bWUoKQogewogICAgIGlmIChtX3ZvbHVt
ZVNsaWRlcikKLSAgICAgICAgbV92b2x1bWVTbGlkZXItPnNldFZvbHVtZShtX21lZGlhRWxlbWVu
dC0+dm9sdW1lKCkpOworICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1lZGlhRWxl
bWVudCgpLT52b2x1bWUoKSk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmVu
dGVyZWRGdWxsc2NyZWVuKCkKIHsKLSAgICBpZiAobV9tZWRpYUVsZW1lbnQtPm1vdmllTG9hZFR5
cGUoKSA9PSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkgeworICAgIGlmIChtZWRpYUVsZW1lbnQo
KS0+bW92aWVMb2FkVHlwZSgpID09IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtKSB7CiAgICAgICAg
IG1fc2Vla0JhY2tCdXR0b24tPmhpZGUoKTsKICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+
aGlkZSgpOwogICAgICAgICBtX3Jld2luZEJ1dHRvbi0+c2hvdygpOwpAQCAtNDE3LDcgKzQxOCw3
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmVudGVyZWRGdWxsc2NyZWVuKCkKIAog
ICAgIG1fcGFuZWwtPnNldENhbkJlRHJhZ2dlZCh0cnVlKTsKIAotICAgIGlmIChQYWdlKiBwYWdl
ID0gbV9tZWRpYUVsZW1lbnQtPmRvY3VtZW50KCktPnBhZ2UoKSkKKyAgICBpZiAoUGFnZSogcGFn
ZSA9IG1lZGlhRWxlbWVudCgpLT5kb2N1bWVudCgpLT5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLT5zZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXModHJ1ZSk7CiAKICAgICBzdGFy
dEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOwpAQCAtNDQ1LDcgKzQ0Niw3IEBAIHZvaWQg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmV4aXRlZEZ1bGxzY3JlZW4oKQogCiB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50OjpzaG93Vm9sdW1lU2xpZGVyKCkKIHsKLSAgICBpZiAoIW1fbWVk
aWFFbGVtZW50LT5oYXNBdWRpbygpKQorICAgIGlmICghbWVkaWFFbGVtZW50KCktPmhhc0F1ZGlv
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX3ZvbHVtZVNsaWRlckNvbnRhaW5lcikK
QEAgLTQ3NCw3ICs0NzUsNyBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKICAgICAgICAgaWYgKCFjb250YWluc1JlbGF0ZWRU
YXJnZXQoZXZlbnQpKSB7CiAgICAgICAgICAgICBtX2lzTW91c2VPdmVyQ29udHJvbHMgPSB0cnVl
OwotICAgICAgICAgICAgaWYgKCFtX21lZGlhRWxlbWVudC0+Y2FuUGxheSgpKSB7CisgICAgICAg
ICAgICBpZiAoIW1lZGlhRWxlbWVudCgpLT5jYW5QbGF5KCkpIHsKICAgICAgICAgICAgICAgICBt
YWtlT3BhcXVlKCk7CiAgICAgICAgICAgICAgICAgaWYgKHNob3VsZEhpZGVDb250cm9scygpKQog
ICAgICAgICAgICAgICAgICAgICBzdGFydEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOwpA
QCAtNDg2LDcgKzQ4Nyw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgICAgICAgICAgc3RvcEhpZGVGdWxsc2NyZWVu
Q29udHJvbHNUaW1lcigpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS5tb3VzZW1vdmVFdmVudCkgewotICAgICAgICBpZiAobV9tZWRpYUVs
ZW1lbnQtPmlzRnVsbHNjcmVlbigpKSB7CisgICAgICAgIGlmIChtZWRpYUVsZW1lbnQoKS0+aXNG
dWxsc2NyZWVuKCkpIHsKICAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IGEgbW91c2UgbW92ZSBp
biBmdWxsc2NyZWVuIG1vZGUsIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgc3RhcnQgYSB0
aW1lcgogICAgICAgICAgICAgLy8gdGhhdCB3aWxsIGhpZGUgdGhlIG1lZGlhIGNvbnRyb2xzIGFm
dGVyIGEgMyBzZWNvbmRzIHdpdGhvdXQgYSBtb3VzZSBtb3ZlLgogICAgICAgICAgICAgbWFrZU9w
YXF1ZSgpOwpAQCAtNDk4LDcgKzQ5OSw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogCiB2b2lkIE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50OjpzdGFydEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpCiB7Ci0gICAgaWYg
KCFtX21lZGlhRWxlbWVudC0+aXNGdWxsc2NyZWVuKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQo
KS0+aXNGdWxsc2NyZWVuKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX2hpZGVGdWxs
c2NyZWVuQ29udHJvbHNUaW1lci5zdGFydE9uZVNob3QodGltZVdpdGhvdXRNb3VzZU1vdmVtZW50
QmVmb3JlSGlkaW5nQ29udHJvbHMpOwpAQCAtNTA2LDE2ICs1MDcsMTYgQEAgdm9pZCBNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKQogCiB2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpoaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXJG
aXJlZChUaW1lcjxNZWRpYUNvbnRyb2xSb290RWxlbWVudD4qKQogewotICAgIGlmICghbV9tZWRp
YUVsZW1lbnQtPmlzUGxheWluZygpKQorICAgIGlmICghbWVkaWFFbGVtZW50KCktPmlzUGxheWlu
ZygpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKCFtX21lZGlhRWxlbWVudC0+aXNG
dWxsc2NyZWVuKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQoKS0+aXNGdWxsc2NyZWVuKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoIXNob3VsZEhpZGVDb250cm9scygpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoUGFnZSogcGFnZSA9IG1fbWVkaWFFbGVtZW50LT5kb2N1
bWVudCgpLT5wYWdlKCkpCisgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtZWRpYUVsZW1lbnQoKS0+ZG9j
dW1lbnQoKS0+cGFnZSgpKQogICAgICAgICBwYWdlLT5jaHJvbWUoKS0+c2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKHRydWUpOwogCiAgICAgbWFrZVRyYW5zcGFyZW50KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaApp
bmRleCA5Nzc4MWRjMTJmMWUwMmE3NmYxMjI5YTE1NWU2ZGY2ZTVkODNjNTU1Li40MWE3ODg2ZTVi
OTA3MTA1M2M3YTVhN2I2NDY3NDQ3OTg0ZGM2NzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKQEAgLTk3LDkgKzk3LDgg
QEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxheSgpOwogCiAgICAgdmlydHVh
bCBib29sIHNob3VsZEhpZGVDb250cm9scygpOwotCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xSb290RWxl
bWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIo
RXZlbnQqKTsKICAgICB2b2lkIGhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lckZpcmVkKFRpbWVy
PE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiopOwpAQCAtMTEwLDggKzEwOSw2IEBAIHByaXZhdGU6
CiAKICAgICBib29sIGNvbnRhaW5zUmVsYXRlZFRhcmdldChFdmVudCopOwogCi0gICAgSFRNTE1l
ZGlhRWxlbWVudCogbV9tZWRpYUVsZW1lbnQ7Ci0KICAgICBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0
b25FbGVtZW50KiBtX3Jld2luZEJ1dHRvbjsKICAgICBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudCogbV9wbGF5QnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0
b25FbGVtZW50KiBtX3JldHVyblRvUmVhbFRpbWVCdXR0b247CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCmluZGV4IDY2MWZkMTliNzllMzE3ODMyNjM1N2Y2
OTc4YWM0MDlmZjVhMGViN2IuLjgwYTZkNWJhMDMxMzZhYTBlZTM3M2M1MWMzZTI5NTljOTMzZGVm
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCkBA
IC0zMywxMiArMzMsMjUgQEAKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJT
aGFkb3dSb290LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFDb250cm9sczo6TWVk
aWFDb250cm9scyhIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBIVE1MRGl2
RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpKQorSFRN
TE1lZGlhRWxlbWVudCogaG9zdE1lZGlhRWxlbWVudEZvcihjb25zdCBFbGVtZW50KiBzaGFkb3dO
b2RlKQogeworICAgIEVsZW1lbnQqIGhvc3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93Tm9kZS0+c2hh
ZG93VHJlZVJvb3ROb2RlKCkpLT5zaGFkb3dIb3N0KCk7CisgICAgQVNTRVJUKGhvc3QtPmlzTWVk
aWFFbGVtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVtZW50Kj4o
aG9zdCk7Cit9CisKK01lZGlhQ29udHJvbHM6Ok1lZGlhQ29udHJvbHMoRG9jdW1lbnQqIGRvY3Vt
ZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3VtZW50KQor
eworfQorCitIVE1MTWVkaWFFbGVtZW50KiBNZWRpYUNvbnRyb2xzOjptZWRpYUVsZW1lbnQoKSBj
b25zdAoreworICAgIHJldHVybiBob3N0TWVkaWFFbGVtZW50Rm9yKHRoaXMpOwogfQogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmggYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKaW5kZXggMWUxNDMxNDFh
MjIyZGYyNDA1NTkzYTcyMTBjYWJmZGRiZjk3NzA2MS4uOWM2OGI3ZWYyNzBhMzY4YzA4ODk3MDdk
MGRkZGQxZTE1MWYwNmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9scy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuaApAQCAtMzUsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhU
TUxNZWRpYUVsZW1lbnQ7CiAKK0hUTUxNZWRpYUVsZW1lbnQqIGhvc3RNZWRpYUVsZW1lbnRGb3Io
Y29uc3QgRWxlbWVudCopOworCiBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKICAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhQ29udHJvbHMoKSB7fQpAQCAt
NzEsNyArNzMsOCBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZFbGVtZW50
IHsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCkgPSAwOwogCiBwcm90ZWN0
ZWQ6Ci0gICAgTWVkaWFDb250cm9scyhIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250
cm9scyhEb2N1bWVudCopOworICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNv
bnN0OwogCiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbHMoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117560</attachid>
            <date>2011-12-01 21:12:18 -0800</date>
            <delta_ts>2011-12-04 20:57:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53001-20111202141216.patch</filename>
            <type>text/plain</type>
            <size>73404</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdhMmQ5NDRiNDViMGNk
MTFhODVkN2I1ZTlkMzc2OTVlY2UyODliMC4uNWUxOWZlNTQ0NDFmMTJiZWNiYzRjOWRmZjhiZWUy
MDE2MjBkZGYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk5IEBACisyMDExLTEyLTAxICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzAwMQorICAgICAgICBtX21lZGlhRWxlbWVu
dCBvZiBNZWRpYUNvbnRyb2xFbGVtZW50IGZhbWlseSBzaG91bGQgYmUgcmVtb3ZlZC4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIE1lZGlh
Q29udHJvbHM6Om1fbWVkaWFFbGVtZW50IGFuZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6bV9t
ZWRpYUVsZW1lbnQgdGhlbgorICAgICAgICByZXBsYWNlZCB0aGUgbWVkaWFFbGVtZW50KCkgYWNj
ZXNzb3IgdXNpbmcgc2hhZG93VHJlZVJvb3ROb2RlKCksIHdoaWNoIHNob3VsZCByZXR1cm4gSFRN
TE1lZGlhRWxlbWVudCBpbnN0YW5jZS4KKyAgICAgICAgQnkgdGhpcyBjaGFuZ2UsIE1lZGlhIGNv
bnRyb2wgY2xhc3NlcyBubyBsb25nZXIgbmVlZCBhbnkgSFRNTE1lZGlhRWxlbWVudCBwb2ludGVy
IGZvciB0aGVpciBpbnN0YW50aWF0aW9uLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gTm8gYmVo
YXZpb3JhbCBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVt
ZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xFbGVtZW50OjpNZWRpYUNv
bnRyb2xFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEVsZW1lbnQ6Om1l
ZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6
Ok1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xU
aW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxl
bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVs
ZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJDb250YWluZXJFbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5l
ckVsZW1lbnQ6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6Ok1lZGlhQ29udHJvbElu
cHV0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6
Om1lZGlhRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xNdXRlQnV0dG9u
RWxlbWVudDo6TWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFNlZWtCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25F
bGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNr
QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6Ok1lZGlh
Q29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250
cm9sUmV3aW5kQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
Q29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXR1cm5U
b1JlYWx0aW1lQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
ZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6TWVkaWFDb250
cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6TWVkaWFDb250
cm9sVGltZWxpbmVFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVs
aW5lRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0
dG9uRWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVE
aXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxl
bWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50
OjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFJvb3RFbGVtZW50OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50OjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAg
IChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dXBkYXRlVGltZURpc3BsYXkpOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmxvYWRlZE1ldGFkYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpjaGFuZ2VkVm9s
dW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjplbnRlcmVk
RnVsbHNjcmVlbik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
c2hvd1ZvbHVtZVNsaWRlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xSb290RWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJv
bHNUaW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBs
YXliYWNrUHJvZ3Jlc3NlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtOjpwbGF5YmFja1N0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6dXBkYXRlVGltZURpc3BsYXkpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
OjpjaGFuZ2VkVm9sdW1lKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06OnNob3dWb2x1bWVTbGlkZXIpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omhvc3RNZWRpYUVsZW1lbnRGb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6TWVkaWFDb250cm9scyk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzOjptZWRpYUVsZW1lbnQpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L01lZGlhQ29udHJvbHMuaDoKKwogMjAxMS0xMi0wMSAgUmFmYWVsIFdlaW5zdGVp
biAgPHJhZmFlbHdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtNdXRhdGlvbk9ic2VydmVyc10g
U3R5bGVBdHRyaWJ1dGVNdXRhdGlvblNjb3BlIHNob3VsZG4ndCBiZSBpbXBsZW1lbnRlZCB3aXRo
IHN0YXRpYyBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXggNmI5NjkzMTI5M2FjODAyY2U0NWIzYjAyZDQ2MGI5
Y2VjZGU4NzQ5NC4uYTMwOTNmMDBlOGE5NjMzMGE5NTQ3MDRiNmEwMmY2NzY4NzBjMDhiMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRz
LmNwcApAQCAtODAsOSArODAsOCBAQCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBtZWRpYUNvbnRy
b2xFbGVtZW50VHlwZShOb2RlKiBub2RlKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCiAKLU1lZGlhQ29udHJvbEVsZW1lbnQ6Ok1lZGlhQ29udHJvbEVsZW1lbnQoSFRNTE1lZGlh
RWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogSFRNTERpdkVsZW1lbnQoZGl2VGFnLCBtZWRp
YUVsZW1lbnQtPmRvY3VtZW50KCkpCi0gICAgLCBtX21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQp
CitNZWRpYUNvbnRyb2xFbGVtZW50OjpNZWRpYUNvbnRyb2xFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICA6IEhUTUxEaXZFbGVtZW50KGRpdlRhZywgZG9jdW1lbnQpCiB7CiB9CiAKQEAg
LTk2LDE5ICs5NSwyNCBAQCB2b2lkIE1lZGlhQ29udHJvbEVsZW1lbnQ6OmhpZGUoKQogICAgIGVu
c3VyZUlubGluZVN0eWxlRGVjbCgpLT5zZXRQcm9wZXJ0eShDU1NQcm9wZXJ0eURpc3BsYXksIENT
U1ZhbHVlTm9uZSk7CiB9CiAKK0hUTUxNZWRpYUVsZW1lbnQqIE1lZGlhQ29udHJvbEVsZW1lbnQ6
Om1lZGlhRWxlbWVudCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGhvc3RNZWRpYUVsZW1lbnRGb3Io
dGhpcyk7Cit9CisKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxFbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQobWVkaWFF
bGVtZW50KQoraW5saW5lIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6TWVkaWFDb250cm9sUGFu
ZWxFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQo
ZG9jdW1lbnQpCiAgICAgLCBtX2NhbkJlRHJhZ2dlZChmYWxzZSkKICAgICAsIG1faXNCZWluZ0Ry
YWdnZWQoZmFsc2UpCiAgICAgLCBtX29wYXF1ZSh0cnVlKQogewogfQogCi1QYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQ
YW5lbEVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudChtZWRpYUVsZW1lbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudChkb2N1bWVudCkpOwogfQogCiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKQEAgLTI1MiwxNCAr
MjU2LDE0IEBAIHZvaWQgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpzZXRDYW5CZURyYWdnZWQo
Ym9vbCBjYW5CZURyYWdnZWQpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAot
aW5saW5lIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9s
VGltZWxpbmVDb250YWluZXJFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkK
LSAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQobWVkaWFFbGVtZW50KQoraW5saW5lIE1lZGlhQ29u
dHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6TWVkaWFDb250cm9sVGltZWxpbmVDb250YWlu
ZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQo
ZG9jdW1lbnQpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVDb250YWlu
ZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZShI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRp
bWVsaW5lQ29udGFpbmVyRWxlbWVudD4gTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiAg
ICAgZWxlbWVudC0+aGlkZSgpOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2UoKTsKIH0KQEAg
LTMwNSwxNCArMzA5LDE0IEBAIHZvaWQgUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI6
OmxheW91dCgpCiAgICAgc2V0WShvZmZzZXQueSgpICsgYnV0dG9uQm94LT5vZmZzZXRUb3AoKSk7
CiB9CiAKLWlubGluZSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQobWVkaWFFbGVtZW50KQor
aW5saW5lIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ6Ok1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAg
IDogTWVkaWFDb250cm9sRWxlbWVudChkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50
PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJDb250
YWluZXJFbGVtZW50PiBlbGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQobWVkaWFFbGVtZW50KSk7CisgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckNvbnRhaW5lckVsZW1lbnQ+IGVsZW1lbnQgPSBhZG9wdFJlZihuZXcg
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwogICAg
IGVsZW1lbnQtPmhpZGUoKTsKICAgICByZXR1cm4gZWxlbWVudC5yZWxlYXNlKCk7CiB9CkBAIC0z
NTIsMTUgKzM1NiwxNSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgYwogCiAvLyAtLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudDo6TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCog
bWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sRWxlbWVudChtZWRpYUVsZW1lbnQpCitp
bmxpbmUgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFN0YXR1
c0Rpc3BsYXlFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbEVs
ZW1lbnQoZG9jdW1lbnQpCiAgICAgLCBtX3N0YXRlQmVpbmdEaXNwbGF5ZWQoTm90aGluZykKIHsK
IH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gTWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRp
YUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBN
ZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ+IGVsZW1l
bnQgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQobWVkaWFF
bGVtZW50KSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBl
bGVtZW50ID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KGRv
Y3VtZW50KSk7CiAgICAgZWxlbWVudC0+aGlkZSgpOwogICAgIHJldHVybiBlbGVtZW50LnJlbGVh
c2UoKTsKIH0KQEAgLTQxMywxMyArNDE3LDE3IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAogLy8g
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIAotTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50OjpNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVt
ZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKLSAgICA6IEhUTUxJbnB1
dEVsZW1lbnQoaW5wdXRUYWcsIG1lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKSwgMCwgZmFsc2UpCi0g
ICAgLCBtX21lZGlhRWxlbWVudChtZWRpYUVsZW1lbnQpCitNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQ6Ok1lZGlhQ29udHJvbElucHV0RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29u
dHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQorICAgIDogSFRNTElucHV0RWxlbWVudChpbnB1
dFRhZywgZG9jdW1lbnQsIDAsIGZhbHNlKQogICAgICwgbV9kaXNwbGF5VHlwZShkaXNwbGF5VHlw
ZSkKIHsKIH0KIAorSFRNTE1lZGlhRWxlbWVudCogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50Ojpt
ZWRpYUVsZW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBob3N0TWVkaWFFbGVtZW50Rm9yKHRo
aXMpOworfQorCiB2b2lkIE1lZGlhQ29udHJvbElucHV0RWxlbWVudDo6c2hvdygpCiB7CiAgICAg
ZW5zdXJlSW5saW5lU3R5bGVEZWNsKCktPnJlbW92ZVByb3BlcnR5KENTU1Byb3BlcnR5RGlzcGxh
eSk7CkBAIC00NDMsOCArNDUxLDggQEAgdm9pZCBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQ6OnNl
dERpc3BsYXlUeXBlKE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXAKIAogLy8gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sTXV0ZUJ1dHRv
bkVsZW1lbnQ6Ok1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGlhRWxlbWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCi0gICAg
OiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBkaXNwbGF5VHlwZSkKK2lu
bGluZSBNZWRpYUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sTXV0ZUJ1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNw
bGF5VHlwZSkKKyAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgZGlzcGxh
eVR5cGUpCiB7CiB9CiAKQEAgLTQ3MCwxNyArNDc4LDE3IEBAIHZvaWQgTWVkaWFDb250cm9sTXV0
ZUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBt
ZWRpYUVsZW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQotICAgIDogTWVkaWFDb250cm9s
TXV0ZUJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYU11dGVCdXR0b24pCitpbmxpbmUg
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxNdXRl
QnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xz
KQorICAgIDogTWVkaWFDb250cm9sTXV0ZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhTXV0
ZUJ1dHRvbikKICAgICAsIG1fY29udHJvbHMoY29udHJvbHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxNdXRl
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCwgTWVk
aWFDb250cm9scyogY29udHJvbHMpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQogewogICAgIEFTU0VS
VChjb250cm9scyk7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxl
bWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVs
ZW1lbnQobWVkaWFFbGVtZW50LCBjb250cm9scykpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQ
YW5lbE11dGVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9s
UGFuZWxNdXRlQnV0dG9uRWxlbWVudChkb2N1bWVudCwgY29udHJvbHMpKTsKICAgICBidXR0b24t
PnNldFR5cGUoImJ1dHRvbiIpOwogICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwogfQpAQCAt
NTAxLDE0ICs1MDksMTQgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIC8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xNdXRlQnV0
dG9uRWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhTXV0ZUJ1dHRvbikKK2lubGluZSBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250
cm9sTXV0ZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhTXV0ZUJ1dHRvbikKIHsKIH0KIAot
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gTWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ck11dGVCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudChtZWRpYUVsZW1lbnQpKTsK
KyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IGJ1
dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0
dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC01MjEsMTQgKzUyOSwxNCBAQCBjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5l
IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxl
bWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVBsYXlCdXR0b24pCitpbmxpbmUgTWVkaWFD
b250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KERv
Y3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVu
dCwgTWVkaWFQbGF5QnV0dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlC
dXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVu
dD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KG1l
ZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4g
YnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KGRvY3Vt
ZW50KSk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9u
LnJlbGVhc2UoKTsKIH0KQEAgLTU1Niw4ICs1NjQsOCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIC8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbFNlZWtC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQot
ICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KG1lZGlhRWxlbWVudCwgZGlzcGxheVR5cGUp
CitpbmxpbmUgTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtC
dXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUg
ZGlzcGxheVR5cGUpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIGRp
c3BsYXlUeXBlKQogICAgICwgbV9hY3Rpb25PblN0b3AoTm90aGluZykKICAgICAsIG1fc2Vla1R5
cGUoU2tpcCkKICAgICAsIG1fc2Vla1RpbWVyKHRoaXMsICZNZWRpYUNvbnRyb2xTZWVrQnV0dG9u
RWxlbWVudDo6c2Vla1RpbWVyRmlyZWQpCkBAIC02MzcsMTQgKzY0NSwxNCBAQCB2b2lkIE1lZGlh
Q29udHJvbFNlZWtCdXR0b25FbGVtZW50OjpzZWVrVGltZXJGaXJlZChUaW1lcjxNZWRpYUNvbnRy
b2xTZWVrQnV0dG9uRQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGlu
ZSBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAg
OiBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhU2Vla0Zv
cndhcmRCdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogTWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhU2Vl
a0ZvcndhcmRCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sU2Vla0Zvcndh
cmRCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0
b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50KSk7CisgICAg
UmVmUHRyPE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudChkb2N1bWVudCkp
OwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxl
YXNlKCk7CiB9CkBAIC02NTcsMTQgKzY2NSwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAog
CiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xT
ZWVrQmFja0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudChI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xTZWVrQnV0
dG9uRWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhU2Vla0JhY2tCdXR0b24pCitpbmxpbmUgTWVk
aWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRv
bkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sU2Vla0J1dHRv
bkVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhU2Vla0JhY2tCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xTZWVrQmFj
a0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0
UmVmKG5ldyBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50KSk7
CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudD4gYnV0dG9uID0g
YWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudChkb2N1bWVudCkp
OwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxl
YXNlKCk7CiB9CkBAIC02NzcsMTQgKzY4NSwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xSZXdp
bmRCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqIGVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZWxlbWVu
dCwgTWVkaWFSZXdpbmRCdXR0b24pCitpbmxpbmUgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxl
bWVudDo6TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQp
CisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhUmV3aW5kQnV0
dG9uKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+
IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50
KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1l
bnQ+IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IGJ1
dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50KG1lZGlh
RWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChkb2N1
bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRv
bi5yZWxlYXNlKCk7CiB9CkBAIC03MDYsMTQgKzcxNCwxNCBAQCBjb25zdCBBdG9taWNTdHJpbmcm
IE1lZGlhQ29udHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QK
IAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9s
UmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRp
bWVCdXR0b25FbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1l
ZGlhQ29udHJvbElucHV0RWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbikKK2lubGluZSBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVu
dDo6TWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVJl
dHVyblRvUmVhbHRpbWVCdXR0b24pCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVC
dXR0b25FbGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gTWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9j
dW1lbnQpCiB7Ci0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25F
bGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbkVsZW1lbnQobWVkaWFFbGVtZW50KSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJl
dHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50PiBidXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0
b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIGJ1dHRvbi0+aGlkZSgpOwogICAgIHJldHVybiBi
dXR0b24ucmVsZWFzZSgpOwpAQCAtNzM2LDE0ICs3NDQsMTQgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRv
SWQoKQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNv
bnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRvZ2ds
ZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQpCi0gICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQobWVkaWFFbGVtZW50LCBNZWRpYVNo
b3dDbG9zZWRDYXB0aW9uc0J1dHRvbikKK2lubGluZSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0
dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQoZG9jdW1lbnQsIE1lZGlhU2hvd0Nsb3NlZENhcHRpb25zQnV0dG9uKQogewogfQogCi1Q
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVudD4g
TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50OjpjcmVhdGUoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUb2dn
bGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25F
bGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9z
ZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRy
b2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKICAgICBidXR0
b24tPnNldFR5cGUoImJ1dHRvbiIpOwogICAgIGJ1dHRvbi0+aGlkZSgpOwogICAgIHJldHVybiBi
dXR0b24ucmVsZWFzZSgpOwpAQCAtNzc0LDE3ICs3ODIsMTcgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0kKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1NZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQotICAgIDogTWVkaWFD
b250cm9sSW5wdXRFbGVtZW50KG1lZGlhRWxlbWVudCwgTWVkaWFTbGlkZXIpCitNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChEb2N1bWVudCog
ZG9jdW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorICAgIDogTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYVNsaWRlcikKICAgICAsIG1fY29udHJvbHMoY29udHJv
bHMpCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiBNZWRp
YUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVs
ZW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xU
aW1lbGluZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKERvY3Vt
ZW50KiBkb2N1bWVudCwgTWVkaWFDb250cm9scyogY29udHJvbHMpCiB7CiAgICAgQVNTRVJUKGNv
bnRyb2xzKTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVs
aW5lID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChtZWRpYUVsZW1l
bnQsIGNvbnRyb2xzKSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudD4g
dGltZWxpbmUgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50KGRvY3Vt
ZW50LCBjb250cm9scykpOwogICAgIHRpbWVsaW5lLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHRp
bWVsaW5lLT5zZXRBdHRyaWJ1dGUocHJlY2lzaW9uQXR0ciwgImZsb2F0Iik7CiAgICAgcmV0dXJu
IHRpbWVsaW5lLnJlbGVhc2UoKTsKQEAgLTg0MSwxOCArODQ5LDE4IEBAIGNvbnN0IEF0b21pY1N0
cmluZyYgTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJv
bFZvbHVtZVNsaWRlckVsZW1lbnQ6Ok1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQotICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVt
ZW50KG1lZGlhRWxlbWVudCwgTWVkaWFWb2x1bWVTbGlkZXIpCitpbmxpbmUgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudChEb2N1
bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQs
IE1lZGlhVm9sdW1lU2xpZGVyKQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVt
ZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0ZShI
VE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckVsZW1lbnQ+IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQsIGZsb2F0IHZvbHVtZSkKIHsKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFZvbHVtZVNsaWRlckVsZW1lbnQobWVkaWFFbGVtZW50KSk7CisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ+IHNsaWRlciA9IGFkb3B0UmVmKG5ldyBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAgc2xpZGVyLT5zZXRUeXBl
KCJyYW5nZSIpOwogICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKHByZWNpc2lvbkF0dHIsICJmbG9h
dCIpOwogICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKG1heEF0dHIsICIxIik7Ci0gICAgc2xpZGVy
LT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBTdHJpbmc6Om51bWJlcihtZWRpYUVsZW1lbnQtPnZv
bHVtZSgpKSk7CisgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBTdHJpbmc6Om51
bWJlcih2b2x1bWUpKTsKICAgICByZXR1cm4gc2xpZGVyLnJlbGVhc2UoKTsKIH0KIApAQCAtODky
LDE4ICs5MDAsMTggQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJF
bGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudChIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJF
bGVtZW50KG1lZGlhRWxlbWVudCkKK2lubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
U2xpZGVyRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1lbnQo
RG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dChkb2N1bWVudCkKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lU2xpZGVyRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRlckVsZW1l
bnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCwgZmxv
YXQgdm9sdW1lKQogewotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xp
ZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5W
b2x1bWVTbGlkZXJFbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gYWRvcHRSZWYobmV3IE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50KGRvY3VtZW50KSk7CiAgICAg
c2xpZGVyLT5zZXRUeXBlKCJyYW5nZSIpOwogICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKHByZWNp
c2lvbkF0dHIsICJmbG9hdCIpOwogICAgIHNsaWRlci0+c2V0QXR0cmlidXRlKG1heEF0dHIsICIx
Iik7Ci0gICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBTdHJpbmc6Om51bWJlciht
ZWRpYUVsZW1lbnQtPnZvbHVtZSgpKSk7CisgICAgc2xpZGVyLT5zZXRBdHRyaWJ1dGUodmFsdWVB
dHRyLCBTdHJpbmc6Om51bWJlcih2b2x1bWUpKTsKICAgICByZXR1cm4gc2xpZGVyLnJlbGVhc2Uo
KTsKIH0KIApAQCAtOTE1LDE3ICs5MjMsMTcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKQogCiAv
LyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLWlubGluZSBNZWRpYUNvbnRyb2xGdWxs
c2NyZWVuQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQo
SFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50LCBNZWRpYUNvbnRyb2xzKiBjb250cm9scykK
LSAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChtZWRpYUVsZW1lbnQsIE1lZGlhRnVsbHNj
cmVlbkJ1dHRvbikKK2lubGluZSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBN
ZWRpYUNvbnRyb2xzKiBjb250cm9scykKKyAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChk
b2N1bWVudCwgTWVkaWFGdWxsc2NyZWVuQnV0dG9uKQogICAgICwgbV9jb250cm9scyhjb250cm9s
cykKIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVu
dD4gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFF
bGVtZW50KiBtZWRpYUVsZW1lbnQsIE1lZGlhQ29udHJvbHMqIGNvbnRyb2xzKQorUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlhQ29udHJv
bHMqIGNvbnRyb2xzKQogewogICAgIEFTU0VSVChjb250cm9scyk7CiAKLSAgICBSZWZQdHI8TWVk
aWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudChtZWRpYUVsZW1lbnQsIGNvbnRyb2xz
KSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBidXR0
b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQoZG9j
dW1lbnQsIGNvbnRyb2xzKSk7CiAgICAgYnV0dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKICAgICBi
dXR0b24tPmhpZGUoKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKQEAgLTk2MSwxNCAr
OTY5LDE0IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1pbmxpbmUgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6Ok1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KEhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbElucHV0RWxl
bWVudChtZWRpYUVsZW1lbnQsIE1lZGlhVW5NdXRlQnV0dG9uKQoraW5saW5lIE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
Vm9sdW1lTWluQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNv
bnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhVW5NdXRlQnV0dG9uKQogewogfQogCi1Q
YXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKEhUTUxN
ZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNj
cmVlblZvbHVtZU1pbkJ1dHRvbkVsZW1lbnQ+IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVN
aW5CdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudD4gYnV0dG9uID0g
YWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50
KG1lZGlhRWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1l
TWluQnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50KGRvY3VtZW50KSk7CiAgICAgYnV0dG9uLT5zZXRU
eXBlKCJidXR0b24iKTsKICAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKIH0KQEAgLTk5MSwx
NCArOTk5LDE0IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1pbkJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkCiAKIC8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KIAotaW5saW5lIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVu
dChIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi06IE1lZGlhQ29udHJvbElucHV0RWxl
bWVudChtZWRpYUVsZW1lbnQsIE1lZGlhTXV0ZUJ1dHRvbikKK2lubGluZSBNZWRpYUNvbnRyb2xG
dWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1heEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorOiBNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQoZG9jdW1lbnQsIE1lZGlhTXV0ZUJ1dHRvbikKIHsKIH0KIAotUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gTWVkaWFDb250
cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVNYXhCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9u
RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAgICBSZWZQdHI8TWVkaWFD
b250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudChtZWRpYUVs
ZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1heEJ1dHRv
bkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwogICAgIGJ1dHRvbi0+c2V0VHlwZSgiYnV0
dG9uIik7CiAgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7CiB9CkBAIC0xMDQ5LDggKzEwNTcs
OCBAQCB2b2lkIFJlbmRlck1lZGlhQ29udHJvbFRpbWVEaXNwbGF5OjpsYXlvdXQoKQogICAgICAg
ICBzZXRXaWR0aCgwKTsKIH0KIAotaW5saW5lIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVu
dDo6TWVkaWFDb250cm9sVGltZURpc3BsYXlFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlh
RWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQobWVkaWFFbGVtZW50KQoraW5saW5l
IE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZURpc3BsYXlF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbEVsZW1lbnQoZG9j
dW1lbnQpCiAgICAgLCBtX2N1cnJlbnRWYWx1ZSgwKQogewogfQpAQCAtMTA2NywxMyArMTA3NSwx
MyBAQCBSZW5kZXJPYmplY3QqIE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRl
UmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVt
ZW50PiBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShIVE1M
TWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVS
ZW1haW5pbmdEaXNwbGF5RWxlbWVudD4gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlF
bGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KG1lZGlhRWxlbWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKLU1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdE
aXNwbGF5RWxlbWVudDo6TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50KEhU
TUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlhQ29udHJvbFRpbWVEaXNw
bGF5RWxlbWVudChtZWRpYUVsZW1lbnQpCitNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudChEb2N1bWVu
dCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQoZG9jdW1l
bnQpCiB7CiB9CiAKQEAgLTEwOTAsMTMgKzEwOTgsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBN
ZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkg
Y28KIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1QYXNzUmVmUHRyPE1lZGlh
Q29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCitQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IE1lZGlhQ29u
dHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3Bs
YXlFbGVtZW50KG1lZGlhRWxlbWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFD
b250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1NZWRpYUNv
bnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURp
c3BsYXlFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlh
Q29udHJvbFRpbWVEaXNwbGF5RWxlbWVudChtZWRpYUVsZW1lbnQpCitNZWRpYUNvbnRyb2xDdXJy
ZW50VGltZURpc3BsYXlFbGVtZW50OjpNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbFRpbWVEaXNwbGF5RWxl
bWVudChkb2N1bWVudCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZjdkNzhkM2E2NTQ2YzA2OTMyMmEwZjY0NzM5
NTJmMjc0YTgwZGJmNC4uNTExMGE4ZmJkMGRkZTZmMjM0OGIzYjU4YjNmNjBkZmIyOTAyNzI4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5oCkBAIC04NCwyMiArODQsMTkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0ID0gMDsKIAotICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFFbGVtZW50OyB9Ci0K
KyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdDsKIHByb3RlY3RlZDoK
LSAgICBNZWRpYUNvbnRyb2xFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNv
bnRyb2xFbGVtZW50KERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlz
TWVkaWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQotICAgIEhUTUxN
ZWRpYUVsZW1lbnQqIG1fbWVkaWFFbGVtZW50OyAgIAogfTsKIAogLy8gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCiBjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQgOiBwdWJsaWMg
TWVkaWFDb250cm9sRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sUGFuZWxFbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Kik7CiAKICAgICB2b2lkIHNldENhbkJlRHJhZ2dlZChib29sKTsKICAgICB2b2lkIHJlc2V0UG9z
aXRpb24oKTsKQEAgLTEwNyw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYWtlVHJhbnNw
YXJlbnQoKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQoSFRNTE1l
ZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudChEb2N1bWVudCopOwog
ICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwpAQCAtMTI5LDEw
ICsxMjYsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWlu
ZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbEVsZW1lbnQgewogcHVibGljOgotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gY3Jl
YXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRl
OgotICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50Kik7CisgICAgTWVkaWFDb250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50KERvY3VtZW50
Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7CiAKICAgICB2aXJ0dWFsIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkg
Y29uc3Q7CkBAIC0xNDIsMTAgKzEzOSwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbEVsZW1l
bnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNs
aWRlckNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4g
Y3JlYXRlKERvY3VtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sVm9sdW1lU2xp
ZGVyQ29udGFpbmVyRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgUmVu
ZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7CiAg
ICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFs
IE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3Q7CkBAIC0xNTYsMTIg
KzE1MywxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxl
bWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudD4gY3JlYXRlKEhUTUxN
ZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNE
aXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CiAKICAgICB2b2lkIHVwZGF0ZSgpOwog
CiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5RWxlbWVudChEb2N1bWVu
dCopOwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgp
IGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgp
IGNvbnN0OwpAQCAtMTc5LDEwICsxNzYsMTAgQEAgcHVibGljOgogCiAgICAgTWVkaWFDb250cm9s
RWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlUeXBlOyB9
CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X21lZGlhRWxlbWVudDsgfQorICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCgpIGNv
bnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KEhUTUxNZWRp
YUVsZW1lbnQqLCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CisgICAgTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOwogCiAgICAgdm9p
ZCBzZXREaXNwbGF5VHlwZShNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSk7CiAKQEAgLTE5MSw3ICsx
ODgsNiBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCkg
eyB9CiAKLSAgICBIVE1MTWVkaWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsKICAgICBNZWRpYUNv
bnRyb2xFbGVtZW50VHlwZSBtX2Rpc3BsYXlUeXBlOwogfTsKIApAQCAtMjAyLDcgKzE5OCw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNoYW5nZWRNdXRlKCk7CiAKIHByb3RlY3RlZDoKLSAgICBNZWRp
YUNvbnRyb2xNdXRlQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiwgTWVkaWFDb250cm9s
RWxlbWVudFR5cGUpOworICAgIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50KERvY3VtZW50
KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOwogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZl
bnRIYW5kbGVyKEV2ZW50Kik7CiAKIApAQCAtMjE0LDEwICsyMTAsMTAgQEAgcHJpdmF0ZToKIAog
Y2xhc3MgTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xNdXRlQnV0dG9uRWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1l
bnQqLCBNZWRpYUNvbnRyb2xzKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50KiwgTWVkaWFDb250cm9scyop
OwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQoSFRN
TE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBNZWRpYUNvbnRyb2xQYW5lbE11
dGVCdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKQEAgLTIyOSwxMCArMjI1LDEwIEBA
IHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11dGVCdXR0b25FbGVt
ZW50IDogcHVibGljIE1lZGlhQ29udHJvbE11dGVCdXR0b25FbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxl
bWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50
Kik7CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVs
ZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlck11
dGVCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CkBAIC0yNDIsMTMgKzIzOCwxMyBAQCBw
cml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBN
ZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCop
OworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50PiBj
cmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50Kik7CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCk7CiAKIHByaXZh
dGU6Ci0gICAgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCop
OworICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CkBA
IC0yNjAsNyArMjU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kik7CiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYUNvbnRyb2xTZWVrQnV0dG9u
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUpOworICAg
IE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9sRWxl
bWVudFR5cGUpOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0ZvcndhcmRCdXR0b24o
KSBjb25zdCA9IDA7CkBAIC0yODIsMTAgKzI3OCwxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRp
YUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sU2Vl
a0J1dHRvbkVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrRm9yd2FyZEJ1dHRvbkVsZW1l
bnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9s
U2Vla0ZvcndhcmRCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
aXNGb3J3YXJkQnV0dG9uKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgY29u
c3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwpAQCAtMjk1LDEwICsyOTEs
MTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50
IDogcHVibGljIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQ+IGNyZWF0
ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
U2Vla0JhY2tCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAg
ICBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOwor
ICAgIE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAg
dmlydHVhbCBib29sIGlzRm9yd2FyZEJ1dHRvbigpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CkBA
IC0zMDgsMTIgKzMwNCwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xSZXdpbmRC
dXR0b25FbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4g
Y3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xSZXdpbmRCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgTWVk
aWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVk
aWFDb250cm9sUmV3aW5kQnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwpAQCAtMzIyLDEy
ICszMTgsMTIgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGlt
ZUJ1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0
dG9uRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCop
OwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVt
ZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uRWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OyAgICAKQEAgLTMzNiwxMyArMzMyLDEzIEBA
IHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
RWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxheVR5cGUoKTsKIAogcHJpdmF0ZToKLSAg
ICBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbkVsZW1lbnQoSFRNTE1lZGlh
RWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxl
bWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3Q7CiB9OyAgICAKQEAgLTM1MSwxNCArMzQ3LDE0IEBAIHByaXZhdGU6
CiAKIGNsYXNzIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqLCBNZWRpYUNvbnRy
b2xzKik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQqLCBNZWRpYUNvbnRyb2xzKik7CiAKICAgICB2aXJ0dWFsIHZvaWQg
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZvaWQgc2V0UG9zaXRpb24oZmxvYXQp
OwogICAgIHZvaWQgc2V0RHVyYXRpb24oZmxvYXQpOwogCiBwcml2YXRlOgotICAgIE1lZGlhQ29u
dHJvbFRpbWVsaW5lRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiwgTWVkaWFDb250cm9scyopOwor
ICAgIE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVudChEb2N1bWVudCosIE1lZGlhQ29udHJvbHMq
KTsKIAogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0OwogCkBAIC0zNjksMTMgKzM2NSwxMyBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
RWxlbWVudD4gY3JlYXRlKEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBmbG9h
dCB2b2x1bWUpOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQq
KTsKICAgICB2b2lkIHNldFZvbHVtZShmbG9hdCk7CiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqKTsKKyAgICBNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CkBAIC0zODUs
MTIgKzM4MSwxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0
dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50
PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCosIE1lZGlhQ29udHJvbHMqKTsKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50KiwgTWVkaWFDb250cm9scyopOwogCiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVu
QnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiwgTWVkaWFDb250cm9scyopOworICAgIE1l
ZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KERvY3VtZW50KiwgTWVkaWFDb250cm9s
cyopOwogCiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkg
Y29uc3Q7CiAKQEAgLTQwMSwxMCArMzk3LDEwIEBAIHByaXZhdGU6CiAKIGNsYXNzIE1lZGlhQ29u
dHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlckVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxl
bWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1
bWVTbGlkZXJFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqLCBmbG9hdCB2b2x1bWUpOwogICAgIAog
cHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudChI
VE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNsaWRl
ckVsZW1lbnQoRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CkBAIC00MTMsMTIgKzQwOSwxMiBAQCBwcml2
YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVu
dCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgotICAgIHN0YXRp
YyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50
PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQq
KTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwog
ICAgIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWluQnV0dG9u
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sRnVsbHNjcmVlblZv
bHVtZU1pbkJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CkBAIC00MjcsMTIgKzQy
MywxMiBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4
QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50PiBjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCopOworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhCdXR0b25FbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxl
cihFdmVudCopOwogICAgIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9s
dW1lTWF4QnV0dG9uRWxlbWVudChIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9s
RnVsbHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsKICAgICAKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07CkBA
IC00NDUsNyArNDQxLDcgQEAgcHVibGljOgogICAgIGZsb2F0IGN1cnJlbnRWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VycmVudFZhbHVlOyB9CiAKIHByb3RlY3RlZDoKLSAgICBNZWRpYUNvbnRy
b2xUaW1lRGlzcGxheUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJv
bFRpbWVEaXNwbGF5RWxlbWVudChEb2N1bWVudCopOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwg
UmVuZGVyT2JqZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKik7
CkBAIC00NTcsMTAgKzQ1MywxMCBAQCBwcml2YXRlOgogCiBjbGFzcyBNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sVGltZURpc3BsYXlF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xUaW1l
UmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAg
c3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50
PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xUaW1lUmVt
YWluaW5nRGlzcGxheUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJv
bFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBN
ZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OwpAQCAtNDcwLDEwICs0
NjYsMTAgQEAgcHJpdmF0ZToKIAogY2xhc3MgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xUaW1lRGlzcGxheUVsZW1lbnQgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVs
ZW1lbnQ+IGNyZWF0ZShIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7
CiAKIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudChI
VE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxl
bWVudChEb2N1bWVudCopOwogCiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBk
aXNwbGF5VHlwZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCmluZGV4IDdhZWJkNTU3ZTg2YzExYTg5ZGRj
OWZhZDliOTZmNjk4MTg2OThjYzcuLmIwZThkNzU2NTExOWMzZTVjMTFmOWNiZmRlZmJiNGQyZDkx
YTNiZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xSb290RWxlbWVudC5jcHAKQEAgLTQxLDkgKzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdGF0aWMgY29uc3QgZG91YmxlIHRpbWVXaXRob3V0TW91c2VNb3ZlbWVudEJlZm9yZUhp
ZGluZ0NvbnRyb2xzID0gMzsKIAotTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Ok1lZGlhQ29udHJv
bFJvb3RFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKLSAgICA6IE1lZGlh
Q29udHJvbHMobWVkaWFFbGVtZW50KQotICAgICwgbV9tZWRpYUVsZW1lbnQobWVkaWFFbGVtZW50
KQorTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50KERvY3Vt
ZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbHMoZG9jdW1lbnQpCiAgICAgLCBtX3Jl
d2luZEJ1dHRvbigwKQogICAgICwgbV9wbGF5QnV0dG9uKDApCiAgICAgLCBtX3JldHVyblRvUmVh
bFRpbWVCdXR0b24oMCkKQEAgLTc2LDU2ICs3NSw1NyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQp
CiAKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ+IE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50OjpjcmVhdGUoSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQogewotICAgIGlm
ICghbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpLT5wYWdlKCkpCisgICAgRG9jdW1lbnQqIGRvY3Vt
ZW50ID0gbWVkaWFFbGVtZW50LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQtPnBhZ2Uo
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1l
bnQ+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50KG1lZGlh
RWxlbWVudCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudD4gY29udHJvbHMg
PSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQoZG9jdW1lbnQpKTsKIAotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFu
ZWxFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9s
UGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250
cm9sUmV3aW5kQnV0dG9uRWxlbWVudD4gcmV3aW5kQnV0dG9uID0gTWVkaWFDb250cm9sUmV3aW5k
QnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFJld2luZEJ1dHRvbkVsZW1lbnQ+IHJld2luZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFJld2lu
ZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fcmV3aW5k
QnV0dG9uID0gcmV3aW5kQnV0dG9uLmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChyZXdp
bmRCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1
cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1
dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50
KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24g
PSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBj
b250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBw
ZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAg
ICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRp
bWVCdXR0b25FbGVtZW50PiByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uID0gTWVkaWFDb250cm9sUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uRWxlbWVudD4gcmV0dXJuVG9S
ZWFsdGltZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFJldHVyblRvUmVhbHRpbWVCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX3JldHVyblRvUmVhbFRpbWVCdXR0
b24gPSByZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChyZXR1cm5Ub1JlYWx0aW1lQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChl
YykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobWVkaWFFbGVtZW50LT5kb2N1bWVudCgp
LT5wYWdlKCktPnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xTdGF0dXNEaXNwbGF5KCkpIHsKLSAg
ICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVtZW50PiBzdGF0dXNEaXNw
bGF5ID0gTWVkaWFDb250cm9sU3RhdHVzRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1l
bnQpOworICAgIGlmIChkb2N1bWVudC0+cGFnZSgpLT50aGVtZSgpLT51c2VzTWVkaWFDb250cm9s
U3RhdHVzRGlzcGxheSgpKSB7CisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xTdGF0dXNEaXNw
bGF5RWxlbWVudD4gc3RhdHVzRGlzcGxheSA9IE1lZGlhQ29udHJvbFN0YXR1c0Rpc3BsYXlFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBjb250cm9scy0+bV9zdGF0dXNEaXNwbGF5
ID0gc3RhdHVzRGlzcGxheS5nZXQoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHN0YXR1
c0Rpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgICAgIGlmIChlYykKICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNv
bnRhaW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVD
b250YWluZXJFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXJFbGVtZW50PiB0aW1lbGluZUNvbnRhaW5lciA9IE1lZGlh
Q29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50PiBjdXJyZW50VGlt
ZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVtZW50OjpjcmVhdGUo
bWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5
RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNw
bGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9jdXJyZW50VGlt
ZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7CiAgICAgdGltZWxpbmVDb250YWlu
ZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
ICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6
OmNyZWF0ZShtZWRpYUVsZW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMtPm1f
dGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKICAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxh
eUVsZW1lbnQ+IHRpbWVSZW1haW5pbmdEaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmlu
Z0Rpc3BsYXlFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiB0aW1lUmVtYWluaW5nRGlzcGxheSA9
IE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
KTsKICAgICBjb250cm9scy0+bV90aW1lUmVtYWluaW5nRGlzcGxheSA9IHRpbWVSZW1haW5pbmdE
aXNwbGF5LmdldCgpOwogICAgIHRpbWVsaW5lQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh0aW1lUmVt
YWluaW5nRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCkBAIC0xMzcs
MjEgKzEzNywyMSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiBNZWRpYUNv
bnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5v
cmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0JhY2tCdXR0b25FbGVtZW50
PiBzZWVrQmFja0J1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9uRWxlbWVudDo6Y3Jl
YXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtCYWNrQnV0dG9u
RWxlbWVudD4gc2Vla0JhY2tCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVrQmFja0J1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fc2Vla0JhY2tCdXR0b24gPSBz
ZWVrQmFja0J1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2Vla0JhY2tCdXR0
b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsK
IAogICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5v
cmcvYi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sU2Vla0ZvcndhcmRCdXR0b25FbGVt
ZW50PiBzZWVrRm9yd2FyZEJ1dHRvbiA9IE1lZGlhQ29udHJvbFNlZWtGb3J3YXJkQnV0dG9uRWxl
bWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFNlZWtG
b3J3YXJkQnV0dG9uRWxlbWVudD4gc2Vla0ZvcndhcmRCdXR0b24gPSBNZWRpYUNvbnRyb2xTZWVr
Rm9yd2FyZEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1f
c2Vla0ZvcndhcmRCdXR0b24gPSBzZWVrRm9yd2FyZEJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+
YXBwZW5kQ2hpbGQoc2Vla0ZvcndhcmRCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAg
aWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIGlmIChtZWRpYUVsZW1lbnQtPmRvY3Vt
ZW50KCktPnBhZ2UoKS0+dGhlbWUoKS0+c3VwcG9ydHNDbG9zZWRDYXB0aW9uaW5nKCkpIHsKLSAg
ICAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uRWxlbWVu
dD4gdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSBNZWRpYUNvbnRyb2xUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIGlmIChkb2N1
bWVudC0+cGFnZSgpLT50aGVtZSgpLT5zdXBwb3J0c0Nsb3NlZENhcHRpb25pbmcoKSkgeworICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25FbGVtZW50
PiB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvbiA9IE1lZGlhQ29udHJvbFRvZ2dsZUNsb3NlZENh
cHRpb25zQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICAgICAgY29udHJvbHMt
Pm1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24gPSB0b2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRv
bi5nZXQoKTsKICAgICAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRvZ2dsZUNsb3NlZENhcHRpb25z
QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMpCkBAIC0xNTksMjYg
KzE1OSwyNiBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiBNZWRpYUNvbnRy
b2xSb290RWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZQogICAgIH0KIAogICAgIC8vIEZJWE1F
OiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcvYi81NzE2Mz4KLSAg
ICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxTY3JlZW5C
dXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlh
RWxlbWVudCwgY29udHJvbHMuZ2V0KCkpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuQnV0dG9uRWxlbWVudD4gZnVsbFNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3Jl
ZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKICAgICBj
b250cm9scy0+bV9mdWxsU2NyZWVuQnV0dG9uID0gZnVsbFNjcmVlbkJ1dHRvbi5nZXQoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50PiBwYW5l
bE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUo
bWVkaWFFbGVtZW50LCBjb250cm9scy5nZXQoKSk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwogICAg
IGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUp
OwogICAgIGlmIChlYykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBpZiAobWVkaWFFbGVtZW50
LT5kb2N1bWVudCgpLT5wYWdlKCktPnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXIoKSkgewotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVy
RWxlbWVudD4gdm9sdW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVy
Q29udGFpbmVyRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgaWYgKGRvY3VtZW50
LT5wYWdlKCktPnRoZW1lKCktPnVzZXNNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXIoKSkgeworICAg
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9s
dW1lU2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgICAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9s
dW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVu
dDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1
bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIG1lZGlhRWxlbWVudC0+dm9sdW1lKCkpOwogICAgICAgICBjb250
cm9scy0+bV92b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7CiAgICAgICAgIHZvbHVtZVNsaWRl
ckNvbnRhaW5lci0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAg
ICAgICBpZiAoZWMpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICBSZWZQdHI8TWVk
aWFDb250cm9sVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbkVsZW1lbnQ+IHZvbHVtZVNsaWRlck11dGVC
dXR0b24gPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRl
KG1lZGlhRWxlbWVudCk7CisgICAgICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJN
dXRlQnV0dG9uRWxlbWVudD4gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFZv
bHVtZVNsaWRlck11dGVCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgICAgICBj
b250cm9scy0+bV92b2x1bWVTbGlkZXJNdXRlQnV0dG9uID0gdm9sdW1lU2xpZGVyTXV0ZUJ1dHRv
bi5nZXQoKTsKICAgICAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRDaGlsZCh2b2x1
bWVTbGlkZXJNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgICAgICBpZiAoZWMp
CkBAIC0xOTEsMTkgKzE5MSwxOSBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
PiBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6Y3JlYXRlKEhUTUxNZWRpYUVsZQogICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBPbmx5IGNyZWF0ZSB3aGVuIG5lZWRlZCA8aHR0cDovL3dlYmtpdC5vcmcv
Yi81NzE2Mz4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ+IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24gPSBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lTWluQnV0dG9uRWxlbWVudDo6Y3JlYXRlKG1lZGlhRWxlbWVudCk7CisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNaW5CdXR0b25FbGVtZW50PiBmdWxsU2Ny
ZWVuTWluVm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZU1pbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAgICAgY29udHJvbHMtPm1fZnVsbFNjcmVlbk1p
blZvbHVtZUJ1dHRvbiA9IGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24uZ2V0KCk7CiAgICAgcGFu
ZWwtPmFwcGVuZENoaWxkKGZ1bGxTY3JlZW5NaW5Wb2x1bWVCdXR0b24ucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lU2xpZGVyRWxlbWVudD4gZnVsbFNjcmVlblZvbHVtZVNs
aWRlciA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUo
bWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sRnVsbHNjcmVlblZvbHVtZVNs
aWRlckVsZW1lbnQ+IGZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXIgPSBNZWRpYUNvbnRyb2xGdWxsc2Ny
ZWVuVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBtZWRpYUVsZW1lbnQtPnZv
bHVtZSgpKTsKICAgICBjb250cm9scy0+bV9mdWxsU2NyZWVuVm9sdW1lU2xpZGVyID0gZnVsbFNj
cmVlblZvbHVtZVNsaWRlci5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbFNjcmVl
blZvbHVtZVNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAg
IHJldHVybiAwOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50PiBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uID0gTWVkaWFDb250cm9sRnVs
bHNjcmVlblZvbHVtZU1heEJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAg
IFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuVm9sdW1lTWF4QnV0dG9uRWxlbWVudD4gZnVs
bFNjcmVlbk1heFZvbHVtZUJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5Wb2x1bWVNYXhC
dXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogICAgIGNvbnRyb2xzLT5tX2Z1bGxTY3Jl
ZW5NYXhWb2x1bWVCdXR0b24gPSBmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLmdldCgpOwogICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsU2NyZWVuTWF4Vm9sdW1lQnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOwogICAgIGlmIChlYykKQEAgLTI0NCwzMSArMjQ0LDMyIEBAIHZvaWQgTWVkaWFD
b250cm9sUm9vdEVsZW1lbnQ6OnJlc2V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgdXBkYXRl
U3RhdHVzRGlzcGxheSgpOworICAgIEhUTUxNZWRpYUVsZW1lbnQqIGhvc3QgPSBtZWRpYUVsZW1l
bnQoKTsKIAotICAgIGlmIChtX21lZGlhRWxlbWVudC0+c3VwcG9ydHNGdWxsc2NyZWVuKCkpCisg
ICAgaWYgKGhvc3QtPnN1cHBvcnRzRnVsbHNjcmVlbigpKQogICAgICAgICBtX2Z1bGxTY3JlZW5C
dXR0b24tPnNob3coKTsKICAgICBlbHNlCiAgICAgICAgIG1fZnVsbFNjcmVlbkJ1dHRvbi0+aGlk
ZSgpOwogCi0gICAgZmxvYXQgZHVyYXRpb24gPSBtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKTsK
KyAgICBmbG9hdCBkdXJhdGlvbiA9IGhvc3QtPmR1cmF0aW9uKCk7CiAgICAgaWYgKGlzZmluaXRl
KGR1cmF0aW9uKSB8fCBwYWdlLT50aGVtZSgpLT5oYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdG
b3IoTWVkaWFTbGlkZXJQYXJ0KSkgewogICAgICAgICBtX3RpbWVsaW5lLT5zZXREdXJhdGlvbihk
dXJhdGlvbik7CiAgICAgICAgIG1fdGltZWxpbmVDb250YWluZXItPnNob3coKTsKLSAgICAgICAg
bV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOwor
ICAgICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihob3N0LT5jdXJyZW50VGltZSgpKTsKICAg
ICAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKICAgICB9IGVsc2UKICAgICAgICAgbV90aW1lbGlu
ZUNvbnRhaW5lci0+aGlkZSgpOwogCi0gICAgaWYgKG1fbWVkaWFFbGVtZW50LT5oYXNBdWRpbygp
IHx8IHBhZ2UtPnRoZW1lKCktPmhhc093bkRpc2FibGVkU3RhdGVIYW5kbGluZ0ZvcihNZWRpYU11
dGVCdXR0b25QYXJ0KSkKKyAgICBpZiAoaG9zdC0+aGFzQXVkaW8oKSB8fCBwYWdlLT50aGVtZSgp
LT5oYXNPd25EaXNhYmxlZFN0YXRlSGFuZGxpbmdGb3IoTWVkaWFNdXRlQnV0dG9uUGFydCkpCiAg
ICAgICAgIG1fcGFuZWxNdXRlQnV0dG9uLT5zaG93KCk7CiAgICAgZWxzZQogICAgICAgICBtX3Bh
bmVsTXV0ZUJ1dHRvbi0+aGlkZSgpOwogCiAgICAgaWYgKG1fdm9sdW1lU2xpZGVyKQotICAgICAg
ICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFFbGVtZW50LT52b2x1bWUoKSk7Cisg
ICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUoaG9zdC0+dm9sdW1lKCkpOwogCiAgICAg
aWYgKG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24pIHsKLSAgICAgICAgaWYgKG1fbWVkaWFF
bGVtZW50LT5oYXNDbG9zZWRDYXB0aW9ucygpKQorICAgICAgICBpZiAoaG9zdC0+aGFzQ2xvc2Vk
Q2FwdGlvbnMoKSkKICAgICAgICAgICAgIG1fdG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b24tPnNo
b3coKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV90b2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvbi0+aGlkZSgpOwpAQCAtMjc3LDggKzI3OCw4IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnQ6OnJlc2V0KCkKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGRvY3VtZW50KCktPndlYmtpdElz
RnVsbFNjcmVlbigpICYmIGRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVu
dCgpID09IG1fbWVkaWFFbGVtZW50KSB7Ci0gICAgICAgIGlmIChtX21lZGlhRWxlbWVudC0+bW92
aWVMb2FkVHlwZSgpID09IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtKSB7CisgICAgaWYgKGRvY3Vt
ZW50KCktPndlYmtpdElzRnVsbFNjcmVlbigpICYmIGRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRG
dWxsU2NyZWVuRWxlbWVudCgpID09IGhvc3QpIHsKKyAgICAgICAgaWYgKGhvc3QtPm1vdmllTG9h
ZFR5cGUoKSA9PSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkgewogICAgICAgICAgICAgbV9zZWVr
QmFja0J1dHRvbi0+aGlkZSgpOwogICAgICAgICAgICAgbV9zZWVrRm9yd2FyZEJ1dHRvbi0+aGlk
ZSgpOwogICAgICAgICAgICAgbV9yZXdpbmRCdXR0b24tPnNob3coKTsKQEAgLTI5MSw3ICsyOTIs
NyBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpyZXNldCgpCiAgICAgICAgIH0KICAg
ICB9IGVsc2UKICNlbmRpZgotICAgIGlmIChtX21lZGlhRWxlbWVudC0+bW92aWVMb2FkVHlwZSgp
ICE9IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtKSB7CisgICAgaWYgKGhvc3QtPm1vdmllTG9hZFR5
cGUoKSAhPSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkgewogICAgICAgICBtX3JldHVyblRvUmVh
bFRpbWVCdXR0b24tPmhpZGUoKTsKICAgICAgICAgbV9yZXdpbmRCdXR0b24tPnNob3coKTsKICAg
ICB9IGVsc2UgewpAQCAtMzA1LDI2ICszMDYsMjYgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxl
bWVudDo6cmVzZXQoKQogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdGFy
dGVkKCkKIHsKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7Ci0gICAgbV90
aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOworICAg
IG1fdGltZWxpbmUtPnNldFBvc2l0aW9uKG1lZGlhRWxlbWVudCgpLT5jdXJyZW50VGltZSgpKTsK
ICAgICB1cGRhdGVUaW1lRGlzcGxheSgpOwogCi0gICAgaWYgKG1fbWVkaWFFbGVtZW50LT5pc0Z1
bGxzY3JlZW4oKSkKKyAgICBpZiAobWVkaWFFbGVtZW50KCktPmlzRnVsbHNjcmVlbigpKQogICAg
ICAgICBzdGFydEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOwogfQogCiB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzZWQoKQogewotICAgIG1fdGltZWxp
bmUtPnNldFBvc2l0aW9uKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKTsKKyAgICBtX3Rp
bWVsaW5lLT5zZXRQb3NpdGlvbihtZWRpYUVsZW1lbnQoKS0+Y3VycmVudFRpbWUoKSk7CiAgICAg
dXBkYXRlVGltZURpc3BsYXkoKTsKICAgICAKLSAgICBpZiAoIW1faXNNb3VzZU92ZXJDb250cm9s
cyAmJiBtX21lZGlhRWxlbWVudC0+aGFzVmlkZW8oKSkKKyAgICBpZiAoIW1faXNNb3VzZU92ZXJD
b250cm9scyAmJiBtZWRpYUVsZW1lbnQoKS0+aGFzVmlkZW8oKSkKICAgICAgICAgbWFrZVRyYW5z
cGFyZW50KCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3Rv
cHBlZCgpCiB7CiAgICAgbV9wbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOwotICAgIG1f
dGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKTsKKyAg
ICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtZWRpYUVsZW1lbnQoKS0+Y3VycmVudFRpbWUoKSk7
CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKICAgICBtYWtlT3BhcXVlKCk7CiAgICAgCkBAIC0z
MzMsOCArMzM0LDggQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdG9w
cGVkKCkKIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dXBkYXRlVGltZURpc3BsYXko
KQogewotICAgIGZsb2F0IG5vdyA9IG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpOwotICAg
IGZsb2F0IGR1cmF0aW9uID0gbV9tZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CisgICAgZmxvYXQg
bm93ID0gbWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCk7CisgICAgZmxvYXQgZHVyYXRpb24g
PSBtZWRpYUVsZW1lbnQoKS0+ZHVyYXRpb24oKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVu
dCgpLT5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtMzc2LDcgKzM3Nyw3IEBAIHZvaWQgTWVk
aWFDb250cm9sUm9vdEVsZW1lbnQ6OnVwZGF0ZVN0YXR1c0Rpc3BsYXkoKQogCiB2b2lkIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Ojpsb2FkZWRNZXRhZGF0YSgpCiB7Ci0gICAgaWYgKG1fc3RhdHVz
RGlzcGxheSAmJiBtX21lZGlhRWxlbWVudC0+bW92aWVMb2FkVHlwZSgpICE9IE1lZGlhUGxheWVy
OjpMaXZlU3RyZWFtKQorICAgIGlmIChtX3N0YXR1c0Rpc3BsYXkgJiYgbWVkaWFFbGVtZW50KCkt
Pm1vdmllTG9hZFR5cGUoKSAhPSBNZWRpYVBsYXllcjo6TGl2ZVN0cmVhbSkKICAgICAgICAgbV9z
dGF0dXNEaXNwbGF5LT5oaWRlKCk7CiAKICAgICByZXNldCgpOwpAQCAtMzk4LDEyICszOTksMTIg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6Y2hhbmdlZE11dGUoKQogdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudDo6Y2hhbmdlZFZvbHVtZSgpCiB7CiAgICAgaWYgKG1fdm9sdW1l
U2xpZGVyKQotICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVkaWFFbGVtZW50
LT52b2x1bWUoKSk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUobWVkaWFFbGVt
ZW50KCktPnZvbHVtZSgpKTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6ZW50
ZXJlZEZ1bGxzY3JlZW4oKQogewotICAgIGlmIChtX21lZGlhRWxlbWVudC0+bW92aWVMb2FkVHlw
ZSgpID09IE1lZGlhUGxheWVyOjpMaXZlU3RyZWFtKSB7CisgICAgaWYgKG1lZGlhRWxlbWVudCgp
LT5tb3ZpZUxvYWRUeXBlKCkgPT0gTWVkaWFQbGF5ZXI6OkxpdmVTdHJlYW0pIHsKICAgICAgICAg
bV9zZWVrQmFja0J1dHRvbi0+aGlkZSgpOwogICAgICAgICBtX3NlZWtGb3J3YXJkQnV0dG9uLT5o
aWRlKCk7CiAgICAgICAgIG1fcmV3aW5kQnV0dG9uLT5zaG93KCk7CkBAIC00MTcsNyArNDE4LDcg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6ZW50ZXJlZEZ1bGxzY3JlZW4oKQogCiAg
ICAgbV9wYW5lbC0+c2V0Q2FuQmVEcmFnZ2VkKHRydWUpOwogCi0gICAgaWYgKFBhZ2UqIHBhZ2Ug
PSBtX21lZGlhRWxlbWVudC0+ZG9jdW1lbnQoKS0+cGFnZSgpKQorICAgIGlmIChQYWdlKiBwYWdl
ID0gbWVkaWFFbGVtZW50KCktPmRvY3VtZW50KCktPnBhZ2UoKSkKICAgICAgICAgcGFnZS0+Y2hy
b21lKCktPnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyh0cnVlKTsKIAogICAgIHN0YXJ0
SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CkBAIC00NDUsNyArNDQ2LDcgQEAgdm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudDo6ZXhpdGVkRnVsbHNjcmVlbigpCiAKIHZvaWQgTWVkaWFD
b250cm9sUm9vdEVsZW1lbnQ6OnNob3dWb2x1bWVTbGlkZXIoKQogewotICAgIGlmICghbV9tZWRp
YUVsZW1lbnQtPmhhc0F1ZGlvKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQoKS0+aGFzQXVkaW8o
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1fdm9sdW1lU2xpZGVyQ29udGFpbmVyKQpA
QCAtNDc0LDcgKzQ3NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmRlZmF1bHRF
dmVudEhhbmRsZXIoRXZlbnQqIGV2ZW50KQogICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5tb3VzZW92ZXJFdmVudCkgewogICAgICAgICBpZiAoIWNvbnRhaW5zUmVsYXRlZFRh
cmdldChldmVudCkpIHsKICAgICAgICAgICAgIG1faXNNb3VzZU92ZXJDb250cm9scyA9IHRydWU7
Ci0gICAgICAgICAgICBpZiAoIW1fbWVkaWFFbGVtZW50LT5jYW5QbGF5KCkpIHsKKyAgICAgICAg
ICAgIGlmICghbWVkaWFFbGVtZW50KCktPmNhblBsYXkoKSkgewogICAgICAgICAgICAgICAgIG1h
a2VPcGFxdWUoKTsKICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkSGlkZUNvbnRyb2xzKCkpCiAg
ICAgICAgICAgICAgICAgICAgIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CkBA
IC00ODYsNyArNDg3LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBzdG9wSGlkZUZ1bGxzY3JlZW5D
b250cm9sc1RpbWVyKCk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7Ci0gICAgICAgIGlmIChtX21lZGlhRWxl
bWVudC0+aXNGdWxsc2NyZWVuKCkpIHsKKyAgICAgICAgaWYgKG1lZGlhRWxlbWVudCgpLT5pc0Z1
bGxzY3JlZW4oKSkgewogICAgICAgICAgICAgLy8gV2hlbiB3ZSBnZXQgYSBtb3VzZSBtb3ZlIGlu
IGZ1bGxzY3JlZW4gbW9kZSwgc2hvdyB0aGUgbWVkaWEgY29udHJvbHMsIGFuZCBzdGFydCBhIHRp
bWVyCiAgICAgICAgICAgICAvLyB0aGF0IHdpbGwgaGlkZSB0aGUgbWVkaWEgY29udHJvbHMgYWZ0
ZXIgYSAzIHNlY29uZHMgd2l0aG91dCBhIG1vdXNlIG1vdmUuCiAgICAgICAgICAgICBtYWtlT3Bh
cXVlKCk7CkBAIC00OTgsNyArNDk5LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6
ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAKIHZvaWQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnQ6OnN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCkKIHsKLSAgICBpZiAo
IW1fbWVkaWFFbGVtZW50LT5pc0Z1bGxzY3JlZW4oKSkKKyAgICBpZiAoIW1lZGlhRWxlbWVudCgp
LT5pc0Z1bGxzY3JlZW4oKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1faGlkZUZ1bGxz
Y3JlZW5Db250cm9sc1RpbWVyLnN0YXJ0T25lU2hvdCh0aW1lV2l0aG91dE1vdXNlTW92ZW1lbnRC
ZWZvcmVIaWRpbmdDb250cm9scyk7CkBAIC01MDYsMTYgKzUwNywxNiBAQCB2b2lkIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50OjpzdGFydEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpCiAKIHZv
aWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lckZp
cmVkKFRpbWVyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50PiopCiB7Ci0gICAgaWYgKCFtX21lZGlh
RWxlbWVudC0+aXNQbGF5aW5nKCkpCisgICAgaWYgKCFtZWRpYUVsZW1lbnQoKS0+aXNQbGF5aW5n
KCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpZiAoIW1fbWVkaWFFbGVtZW50LT5pc0Z1
bGxzY3JlZW4oKSkKKyAgICBpZiAoIW1lZGlhRWxlbWVudCgpLT5pc0Z1bGxzY3JlZW4oKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIGlmICghc2hvdWxkSGlkZUNvbnRyb2xzKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChQYWdlKiBwYWdlID0gbV9tZWRpYUVsZW1lbnQtPmRvY3Vt
ZW50KCktPnBhZ2UoKSkKKyAgICBpZiAoUGFnZSogcGFnZSA9IG1lZGlhRWxlbWVudCgpLT5kb2N1
bWVudCgpLT5wYWdlKCkpCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5zZXRDdXJzb3JIaWRkZW5V
bnRpbE1vdXNlTW92ZXModHJ1ZSk7CiAKICAgICBtYWtlVHJhbnNwYXJlbnQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5oCmlu
ZGV4IDk3NzgxZGMxMmYxZTAyYTc2ZjEyMjlhMTU1ZTZkZjZlNWQ4M2M1NTUuLjQxYTc4ODZlNWI5
MDcxMDUzYzdhNWE3YjY0Njc0NDc5ODRkYzY3NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuaApAQCAtOTcsOSArOTcsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTdGF0dXNEaXNwbGF5KCk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCk7Ci0KIHByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCopOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50KERvY3VtZW50Kik7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihF
dmVudCopOwogICAgIHZvaWQgaGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQoVGltZXI8
TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ+Kik7CkBAIC0xMTAsOCArMTA5LDYgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgY29udGFpbnNSZWxhdGVkVGFyZ2V0KEV2ZW50Kik7CiAKLSAgICBIVE1MTWVk
aWFFbGVtZW50KiBtX21lZGlhRWxlbWVudDsKLQogICAgIE1lZGlhQ29udHJvbFJld2luZEJ1dHRv
bkVsZW1lbnQqIG1fcmV3aW5kQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVt
ZW50KiBtX3BsYXlCdXR0b247CiAgICAgTWVkaWFDb250cm9sUmV0dXJuVG9SZWFsdGltZUJ1dHRv
bkVsZW1lbnQqIG1fcmV0dXJuVG9SZWFsVGltZUJ1dHRvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHAKaW5kZXggZDFjYWY5OTIwMzkzOTMxMDI2ZGVkMTM4YmQxMGM3NzE5NGEyMTAyYS4uYjVi
YTYzNjk5OTlmYWJhYTk5MjYwMTgxZTQ0ODE3MzNiNDk3OTc3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bS5jcHAKQEAgLTM4LDkgKzM4LDggQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVu
dCkKLSAgICA6IE1lZGlhQ29udHJvbHMobWVkaWFFbGVtZW50KQotICAgICwgbV9tZWRpYUVsZW1l
bnQobWVkaWFFbGVtZW50KQorTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRp
YUNvbnRyb2xzKGRvY3VtZW50KQogICAgICwgbV9wbGF5QnV0dG9uKDApCiAgICAgLCBtX2N1cnJl
bnRUaW1lRGlzcGxheSgwKQogICAgICwgbV90aW1lbGluZSgwKQpAQCAtNjEsMzAgKzYwLDMxIEBA
IFBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKEhUTUxNZWRp
YUVsZW1lbnQqIG1lZGlhRWxlbWVudCkKIAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUoSFRN
TE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50KQogewotICAgIGlmICghbWVkaWFFbGVtZW50LT5k
b2N1bWVudCgpLT5wYWdlKCkpCisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbWVkaWFFbGVtZW50
LT5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAKLSAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gY29udHJv
bHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShtZWRpYUVs
ZW1lbnQpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gY29u
dHJvbHMgPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShkb2N1
bWVudCkpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudD4gcGFuZWwgPSBN
ZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKIAotICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxheUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQ
bGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250cm9scy0+bV9wbGF5
QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1
dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAw
OwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudD4gdGlt
ZWxpbmVDb250YWluZXIgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQ6OmNy
ZWF0ZShtZWRpYUVsZW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRh
aW5lckVsZW1lbnQ+IHRpbWVsaW5lQ29udGFpbmVyID0gTWVkaWFDb250cm9sVGltZWxpbmVDb250
YWluZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJv
bFRpbWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6
OmNyZWF0ZShtZWRpYUVsZW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBSZWZQdHI8TWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVsaW5lRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMtPm1f
dGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKICAgICB0aW1lbGluZUNvbnRhaW5lci0+YXBwZW5k
Q2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3Bs
YXlFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9s
Q3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0gTWVkaWFDb250
cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKICAgICBjb250
cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7CiAg
ICAgdGltZWxpbmVDb250YWluZXItPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCkBAIC05NSwxNSArOTUsMTUgQEAgUGFzc1Jl
ZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtOjpjcmUKICAgICBpZiAoZWMpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
UmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRv
biA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShtZWRpYUVsZW1l
bnQsIGNvbnRyb2xzLmdldCgpKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0
dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9u
RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7CiAgICAgY29udHJvbHMt
Pm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRlQnV0dG9uLmdldCgpOwogICAgIHBhbmVsLT5h
cHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYg
KGVjKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVT
bGlkZXJDb250YWluZXJFbGVtZW50PiB2b2x1bWVTbGlkZXJDb250YWluZXIgPSBNZWRpYUNvbnRy
b2xWb2x1bWVTbGlkZXJDb250YWluZXJFbGVtZW50OjpjcmVhdGUobWVkaWFFbGVtZW50KTsKKyAg
ICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVudD4gdm9sdW1l
U2xpZGVyQ29udGFpbmVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyQ29udGFpbmVyRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVh
dGUobWVkaWFFbGVtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxl
bWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRv
Y3VtZW50LCBtZWRpYUVsZW1lbnQtPnZvbHVtZSgpKTsKICAgICBjb250cm9scy0+bV92b2x1bWVT
bGlkZXIgPSBzbGlkZXIuZ2V0KCk7CiAgICAgdm9sdW1lU2xpZGVyQ29udGFpbmVyLT5hcHBlbmRD
aGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQpAQCAtMTUwLDE2
ICsxNTAsMTYgQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpyZXNldCgp
CiAKICAgICB1cGRhdGVTdGF0dXNEaXNwbGF5KCk7CiAKLSAgICBmbG9hdCBkdXJhdGlvbiA9IG1f
bWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIGZsb2F0IGR1cmF0aW9uID0gbWVkaWFFbGVt
ZW50KCktPmR1cmF0aW9uKCk7CiAgICAgbV90aW1lbGluZS0+c2V0RHVyYXRpb24oZHVyYXRpb24p
OwogICAgIG1fdGltZWxpbmVDb250YWluZXItPnNob3coKTsKLSAgICBtX3RpbWVsaW5lLT5zZXRQ
b3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAgbV90aW1lbGluZS0+
c2V0UG9zaXRpb24obWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCkpOwogICAgIHVwZGF0ZVRp
bWVEaXNwbGF5KCk7CiAKICAgICBtX3BhbmVsTXV0ZUJ1dHRvbi0+c2hvdygpOwogCiAgICAgaWYg
KG1fdm9sdW1lU2xpZGVyKQotICAgICAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1fbWVk
aWFFbGVtZW50LT52b2x1bWUoKSk7CisgICAgICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUo
bWVkaWFFbGVtZW50KCktPnZvbHVtZSgpKTsKIAogICAgIG1ha2VPcGFxdWUoKTsKIH0KQEAgLTE2
NywzMSArMTY3LDMxIEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVz
ZXQoKQogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0
ZWQoKQogewogICAgIG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKLSAgICBtX3Rp
bWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAg
bV90aW1lbGluZS0+c2V0UG9zaXRpb24obWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCkpOwog
ICAgIHVwZGF0ZVRpbWVEaXNwbGF5KCk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cGxheWJhY2tQcm9ncmVzc2VkKCkKIHsKLSAgICBtX3RpbWVsaW5lLT5zZXRQ
b3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKSk7CisgICAgbV90aW1lbGluZS0+
c2V0UG9zaXRpb24obWVkaWFFbGVtZW50KCktPmN1cnJlbnRUaW1lKCkpOwogICAgIHVwZGF0ZVRp
bWVEaXNwbGF5KCk7CiAKLSAgICBpZiAoIW1faXNNb3VzZU92ZXJDb250cm9scyAmJiBtX21lZGlh
RWxlbWVudC0+aGFzVmlkZW8oKSkKKyAgICBpZiAoIW1faXNNb3VzZU92ZXJDb250cm9scyAmJiBt
ZWRpYUVsZW1lbnQoKS0+aGFzVmlkZW8oKSkKICAgICAgICAgbWFrZVRyYW5zcGFyZW50KCk7CiB9
CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdG9wcGVk
KCkKIHsKICAgICBtX3BsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7Ci0gICAgbV90aW1l
bGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCkpOworICAgIG1f
dGltZWxpbmUtPnNldFBvc2l0aW9uKG1lZGlhRWxlbWVudCgpLT5jdXJyZW50VGltZSgpKTsKICAg
ICB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIG1ha2VPcGFxdWUoKTsKIH0KIAogdm9pZCBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjp1cGRhdGVUaW1lRGlzcGxheSgpCiB7Ci0gICAg
ZmxvYXQgbm93ID0gbV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCk7Ci0gICAgZmxvYXQgZHVy
YXRpb24gPSBtX21lZGlhRWxlbWVudC0+ZHVyYXRpb24oKTsKKyAgICBmbG9hdCBub3cgPSBtZWRp
YUVsZW1lbnQoKS0+Y3VycmVudFRpbWUoKTsKKyAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxl
bWVudCgpLT5kdXJhdGlvbigpOwogCiAgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50KCktPnBhZ2Uo
KTsKICAgICBpZiAoIXBhZ2UpCkBAIC0yNDUsNyArMjQ1LDcgQEAgdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAg
ICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKICAg
ICAgICAgaWYgKCFjb250YWluc1JlbGF0ZWRUYXJnZXQoZXZlbnQpKSB7CiAgICAgICAgICAgICBt
X2lzTW91c2VPdmVyQ29udHJvbHMgPSB0cnVlOwotICAgICAgICAgICAgaWYgKCFtX21lZGlhRWxl
bWVudC0+Y2FuUGxheSgpKQorICAgICAgICAgICAgaWYgKCFtZWRpYUVsZW1lbnQoKS0+Y2FuUGxh
eSgpKQogICAgICAgICAgICAgICAgIG1ha2VPcGFxdWUoKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkubW91c2VvdXRFdmVudCkgewpAQCAt
MjY1LDcgKzI2NSw3IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y2hh
bmdlZE11dGUoKQogCiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNoYW5n
ZWRWb2x1bWUoKQogewotICAgIG1fdm9sdW1lU2xpZGVyLT5zZXRWb2x1bWUobV9tZWRpYUVsZW1l
bnQtPnZvbHVtZSgpKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Vm9sdW1lKG1lZGlhRWxlbWVu
dCgpLT52b2x1bWUoKSk7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bTo6ZW50ZXJlZEZ1bGxzY3JlZW4oKQpAQCAtMjc4LDcgKzI3OCw3IEBAIHZvaWQgTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6ZXhpdGVkRnVsbHNjcmVlbigpCiAKIHZvaWQgTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2hvd1ZvbHVtZVNsaWRlcigpCiB7Ci0gICAgaWYg
KCFtX21lZGlhRWxlbWVudC0+aGFzQXVkaW8oKSkKKyAgICBpZiAoIW1lZGlhRWxlbWVudCgpLT5o
YXNBdWRpbygpKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3ZvbHVtZVNsaWRlckNvbnRhaW5l
ci0+c2hvdygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IGVmOWJiMGI4MGE3OTE1OWUz
Yjc0YmY1NWIwNWM1ZjkzOTlhMDk5OGUuLjczOWM3M2M0MmNkZDFmMDA5MzY1Y2M1ZmQxZjJlZDk2
MTQ3NzU3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKQEAgLTg3LDcgKzg3LDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIaWRlQ29udHJvbHMoKTsKIAogcHJpdmF0ZToK
LSAgICBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKEhUTUxNZWRpYUVsZW1lbnQqKTsK
KyAgICBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKERvY3VtZW50Kik7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMuY3BwCmluZGV4IDY2MWZkMTliNzllMzE3ODMy
NjM1N2Y2OTc4YWM0MDlmZjVhMGViN2IuLjgwYTZkNWJhMDMxMzZhYTBlZTM3M2M1MWMzZTI5NTlj
OTMzZGVmZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbHMu
Y3BwCkBAIC0zMywxMiArMzMsMjUgQEAKICNpbmNsdWRlICJIVE1MRGl2RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxNZWRpYUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJTaGFkb3dSb290LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotTWVkaWFDb250cm9s
czo6TWVkaWFDb250cm9scyhIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQpCi0gICAgOiBI
VE1MRGl2RWxlbWVudChIVE1MTmFtZXM6OmRpdlRhZywgbWVkaWFFbGVtZW50LT5kb2N1bWVudCgp
KQorSFRNTE1lZGlhRWxlbWVudCogaG9zdE1lZGlhRWxlbWVudEZvcihjb25zdCBFbGVtZW50KiBz
aGFkb3dOb2RlKQogeworICAgIEVsZW1lbnQqIGhvc3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93Tm9k
ZS0+c2hhZG93VHJlZVJvb3ROb2RlKCkpLT5zaGFkb3dIb3N0KCk7CisgICAgQVNTRVJUKGhvc3Qt
PmlzTWVkaWFFbGVtZW50KCkpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxIVE1MTWVkaWFFbGVt
ZW50Kj4oaG9zdCk7Cit9CisKK01lZGlhQ29udHJvbHM6Ok1lZGlhQ29udHJvbHMoRG9jdW1lbnQq
IGRvY3VtZW50KQorICAgIDogSFRNTERpdkVsZW1lbnQoSFRNTE5hbWVzOjpkaXZUYWcsIGRvY3Vt
ZW50KQoreworfQorCitIVE1MTWVkaWFFbGVtZW50KiBNZWRpYUNvbnRyb2xzOjptZWRpYUVsZW1l
bnQoKSBjb25zdAoreworICAgIHJldHVybiBob3N0TWVkaWFFbGVtZW50Rm9yKHRoaXMpOwogfQog
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xz
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKaW5kZXggMWUx
NDMxNDFhMjIyZGYyNDA1NTkzYTcyMTBjYWJmZGRiZjk3NzA2MS4uOWM2OGI3ZWYyNzBhMzY4YzA4
ODk3MDdkMGRkZGQxZTE1MWYwNmZkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9scy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbHMuaApAQCAtMzUsNiArMzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNs
YXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiAKK0hUTUxNZWRpYUVsZW1lbnQqIGhvc3RNZWRpYUVsZW1l
bnRGb3IoY29uc3QgRWxlbWVudCopOworCiBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhU
TUxEaXZFbGVtZW50IHsKICAgcHVibGljOgogICAgIHZpcnR1YWwgfk1lZGlhQ29udHJvbHMoKSB7
fQpAQCAtNzEsNyArNzMsOCBAQCBjbGFzcyBNZWRpYUNvbnRyb2xzIDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCkgPSAwOwogCiBw
cm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb250cm9scyhIVE1MTWVkaWFFbGVtZW50Kik7CisgICAgTWVk
aWFDb250cm9scyhEb2N1bWVudCopOworICAgIEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVu
dCgpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbHMoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>