<?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>108141</bug_id>
          
          <creation_ts>2013-01-28 18:06:10 -0800</creation_ts>
          <short_desc>FeatureObserver: Input types are counted unexpectedly in a page with Modernizr</short_desc>
          <delta_ts>2013-01-29 02:03:01 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>buildbot</cc>
    
    <cc>haraken</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>spottabathini</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>818334</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-28 18:06:10 -0800</bug_when>
    <thetext>http://modernizr.com/docs/#inputtypes

If the Input Types feature of Modernizr is loaded, FeatureObserver detects that all of the types are used.  It&apos;s not information which we want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818401</commentid>
    <comment_count>1</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-28 19:24:22 -0800</bug_when>
    <thetext>Modernizr&apos;s code follows.  It appends input elements to document.body, and attaches renderers.  Probably we should count &quot;attached &amp;&amp; visibility!=hidden&quot;?

    function A() {
        e.inputtypes = function(a) {
            for (var d = 0, e, f, h, i = a.length; d &lt; i; d++)
                k.setAttribute(&quot;type&quot;, f = a[d]),
                e = k.type !== &quot;text&quot;,
                e &amp;&amp; (k.value = l,
                      k.style.cssText = &quot;position:absolute;visibility:hidden;&quot;,
                      /^range$/.test(f) &amp;&amp; k.style.WebkitAppearance !== c ? (g.appendChild(k), h = b.defaultView, e = h.getComputedStyle &amp;&amp; h.getComputedStyle(k, null).WebkitAppearance !== &quot;textfield&quot; &amp;&amp; k.offsetHeight !== 0, g.removeChild(k)) : /^(search|tel)$/.test(f) || (/^(url|email)$/.test(f) ? e = k.checkValidity &amp;&amp; k.checkValidity() === !1 : e = k.value != l)),
                o[a[d]] = !!e;
            return o
        }(&quot;search tel url email datetime date month week time datetime-local number range color&quot;.split(&quot; &quot;))
    }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818459</commentid>
    <comment_count>2</comment_count>
      <attachid>185145</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-28 21:09:03 -0800</bug_when>
    <thetext>Created attachment 185145
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818470</commentid>
    <comment_count>3</comment_count>
      <attachid>185145</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2013-01-28 21:22:51 -0800</bug_when>
    <thetext>Comment on attachment 185145
Patch

Makes sense to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818597</commentid>
    <comment_count>4</comment_count>
      <attachid>185145</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-28 23:20:18 -0800</bug_when>
    <thetext>Comment on attachment 185145
Patch

Attachment 185145 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16183019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818623</commentid>
    <comment_count>5</comment_count>
      <attachid>185176</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2013-01-28 23:48:57 -0800</bug_when>
    <thetext>Created attachment 185176
Patch for landing

Include NodeRenderStyle.h</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818734</commentid>
    <comment_count>6</comment_count>
      <attachid>185176</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 02:02:56 -0800</bug_when>
    <thetext>Comment on attachment 185176
Patch for landing

Clearing flags on attachment: 185176

Committed r141086: &lt;http://trac.webkit.org/changeset/141086&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818735</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 02:03:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185145</attachid>
            <date>2013-01-28 21:09:03 -0800</date>
            <delta_ts>2013-01-28 23:48:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108141-20130129140549.patch</filename>
            <type>text/plain</type>
            <size>28941</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFlNGQ0MWNlMjYyNWEx
NGZiMjBiZGI5MDg2NmUwMGZkZWUzNDkwNS4uMWVhYjViYThmYjU0ZmQ1MDU5NTEzMjhhMWUwZjdk
ZDRkMDRmNzU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTAxLTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6
IElucHV0IHR5cGVzIGFyZSBjb3VudGVkIHVuZXhwZWN0ZWRseSBpbiBhIHBhZ2Ugd2l0aCBNb2Rl
cm5penIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdl
IGRvbid0IHdhbnQgdG8gcmVjb3JkIGlucHV0IHR5cGUgaW5zdGFudGlhdGlvbiBieSBNb2Rlcm5p
enIuIE1vZGVybml6cgorICAgICAgICBjcmVhdGVzIGlucHV0IGVsZW1lbnRzIHdpdGggdGhlc2Ug
dHlwZXMsIGFwcGVuZCBpdCB0byBkb2N1bWVudC5ib2R5LCBhbmQKKyAgICAgICAgcmVuZGVyIGl0
IHdpdGggdmlzaWJpbGl0eTpoaWRkZW4uIFNvLCB3ZSByZWNvcmQgaW5wdXQgdHlwZXMgb25seSB3
aGVuCisgICAgICAgIHRoZXkgYXJlIGF0dGFjaGVkIHdpdGhvdXQgdmlzaWJpbGl0eTpoaWRkZW4u
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBGZWF0dXJlT2JzZXJ2ZXIgaXMgbm90IHRlc3RhYmxl
IGJ5IGxheW91dCB0ZXN0LgorCisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjcmVhdGUpOiBSZW1vdmUgRmVhdHVyZU9ic2VydmVyOjpv
YnNlcnZlCisgICAgICAgIGNhbGxzaXRlcy4gVGhleSBhcmUgbW92ZWQgdG8gVGV4dElucHV0VHlw
ZTo6YXR0YWNoLgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpvYnNlcnZlRmVhdHVyZUlm
VmlzaWJsZSk6CisgICAgICAgIEFkZGVkLiBBIGhlbHBlciBmb3IgYXR0YWNoKCkuCisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKElucHV0VHlwZSk6IEFkZCBvYnNlcnZlRmVh
dHVyZUlmVmlzaWJsZS4KKworICAgICAgICAqIGh0bWwvQ29sb3JJbnB1dFR5cGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29sb3JJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIFJlbW92ZSBh
IEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZSBjYWxsc2l0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkNv
bG9ySW5wdXRUeXBlOjphdHRhY2gpOgorICAgICAgICBDYWxscyBGZXR1cmVPYnNlcnZlciB0aHJv
dWdoIElucHV0VHlwZTo6b2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUuCisgICAgICAgICogaHRtbC9D
b2xvcklucHV0VHlwZS5oOgorICAgICAgICAoQ29sb3JJbnB1dFR5cGUpOiBEZWNsYXJlIGF0dGFj
aC4KKyAgICAgICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL0RhdGVJbnB1dFR5cGUuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0
VHlwZS5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDogRGl0
dG8uCisgICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDogRGl0dG8uCisg
ICAgICAgICogaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmg6IERpdHRvLgorICAgICAgICAq
IGh0bWwvTW9udGhJbnB1dFR5cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL01vbnRoSW5w
dXRUeXBlLmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwOiBEaXR0
CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOiBEaXR0by4KKyAgICAgICAgKiBodG1s
L1RpbWVJbnB1dFR5cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RpbWVJbnB1dFR5cGUu
aDogRGl0dG8uCisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAg
ICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmg6IERpdHRvLgorCisgICAgICAgICogaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuaDoKKyAgICAgICAgKFRleHRGaWVsZElucHV0VHlwZSk6CisgICAgICAg
IE1ha2UgYXR0YWNoIHByb3RlY3RlZCBpbiBvcmRlciB0aGF0IHN1YiBjbGFzc2VzIGNhbiBjYWxs
IGl0LgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RW1haWxJbnB1dFR5cGU6OmNyZWF0ZSk6CisgICAgICAgIFJlbW92ZSBhIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZSBjYWxsc2l0ZS4KKyAgICAgICAgKFdlYkNvcmU6OkVtYWlsSW5wdXRUeXBl
OjphdHRhY2gpOiBDYWxscyBGZXR1cmVPYnNlcnZlciB0aHJvdWdoCisgICAgICAgIElucHV0VHlw
ZTo6b2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUgYWZ0ZXIgVGV4dEZpZWxkSW5wdHVUeXBlOjphdHRh
Y2guCisgICAgICAgICogaHRtbC9FbWFpbElucHV0VHlwZS5oOgorICAgICAgICAoRW1haWxJbnB1
dFR5cGUpOkRlY2xhcmUgYXR0YWNoLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmNw
cDogRGl0dG8uCisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDogRGl0dG8uCisgICAg
ICAgICogaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1Nl
YXJjaElucHV0VHlwZS5oOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlw
ZS5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvVGVsZXBob25lSW5wdXRUeXBlLmg6IERpdHRv
LgorICAgICAgICAqIGh0bWwvVVJMSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAgICAgICogaHRt
bC9VUkxJbnB1dFR5cGUuaDogRGl0dG8uCisKKyAgICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dElucHV0VHlwZTo6YXR0YWNoKToKKyAgICAgICAg
TW92ZSB0aGUgY29kZSBmb3IgdHlwZSBmYWxsYmFjayBmcm9tIElucHV0VHlwZTo6Y3JlYXRlLgor
ICAgICAgICAqIGh0bWwvVGV4dElucHV0VHlwZS5oOgorICAgICAgICAoVGV4dElucHV0VHlwZSk6
IERlY2xhcmUgYXR0YWNoLgorCiAyMDEzLTAxLTI4ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFt
aW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBTdHJpbmcgY29uc3RydWN0ZWQgZnJvbSBMaXRlcmFs
cyBzaG91bGQgYmUgbm9uLWVtcHR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Nv
bG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3Bw
CmluZGV4IDI4OThhMWQ2YTMyNGYyODk3ZDRhNTZhNWNlNjI5MTI1MGFlYWEyOTUuLjQ5MDYzYjM0
OGNlMmZiNzY4ZTA5YjQ2NDVhMGRmNjBmNmE0NDUzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCkBAIC0zNSw3ICszNSw2IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAj
aW5jbHVkZSAiQ29sb3IuaCIKICNpbmNsdWRlICJFbGVtZW50U2hhZG93LmgiCi0jaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTERhdGFMaXN0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgpA
QCAtNzIsNyArNzEsNiBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkQ29sb3JTdHJpbmcoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IENvbG9ySW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9i
c2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVDb2xv
cik7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBDb2xvcklucHV0VHlwZShlbGVtZW50KSk7CiB9
CiAKQEAgLTgxLDYgKzc5LDExIEBAIENvbG9ySW5wdXRUeXBlOjp+Q29sb3JJbnB1dFR5cGUoKQog
ICAgIGVuZENvbG9yQ2hvb3NlcigpOwogfQogCit2b2lkIENvbG9ySW5wdXRUeXBlOjphdHRhY2go
KQoreworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRU
eXBlQ29sb3IpOworfQorCiBib29sIENvbG9ySW5wdXRUeXBlOjppc0NvbG9yQ29udHJvbCgpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0NvbG9ySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmgK
aW5kZXggMWYwODEzM2ZlZGEzNTk4ODA1NjE2Y2U1ZjY2ZWY3YTc1NTRmYzQwMy4uOTFlY2RhYWZj
MjE2NWM2MWNmMGZlZjRiODc4OWQ4MjNkMzg0NTUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgQ29s
b3JJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlQ2xpY2thYmxlV2l0
aEtleUlucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzQ29sb3JDb250cm9sKCkgY29uc3QgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlcXVpcmVkKCkgY29uc3QgT1ZF
UlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcAppbmRleCAxZmQ1ZTBlNGY4
YjdjMjQzMmY0NDRkNzMxNDZiOThlNmY4YmIwYjA3Li44M2EyZjZmZmJkNGViYjM4Y2M1YjBiMzY3
OWFmNmMzMTAxNjAwYzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAg
LTM0LDcgKzM0LDYgQEAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogI2luY2x1ZGUgIkRh
dGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVGaWVsZHNTdGF0ZS5oIgotI2luY2x1
ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNp
bmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNTks
MTAgKzU4LDE0IEBAIGlubGluZSBEYXRlSW5wdXRUeXBlOjpEYXRlSW5wdXRUeXBlKEhUTUxJbnB1
dEVsZW1lbnQqIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBEYXRlSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2
ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5
cGVEYXRlKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVJbnB1dFR5cGUoZWxlbWVudCkp
OwogfQogCit2b2lkIERhdGVJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgb2JzZXJ2ZUZlYXR1
cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlKTsKK30KKwogY29uc3Qg
QXRvbWljU3RyaW5nJiBEYXRlSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaAppbmRleCAxOWMxMzZmNDRiNjA1MjA1ZjE4NDVjYmNhNTUyMWM5MWVlZmYyNGQ4Li5m
ZDc1ZjkxNWZkMjU3ZTA1NmE4ZjhiMGVkYWJhMDg3OTQ5Y2ExOTM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0RhdGVJbnB1dFR5cGUuaApAQCAtNTIsNiArNTIsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgRGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpU
eXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBTdGVwUmFuZ2UgY3Jl
YXRlU3RlcFJhbmdlKEFueVN0ZXBIYW5kbGluZykgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCmluZGV4IDBjYjkzZDM3NzI0YmRmNjRjYzM0
NGFmNWMxMWQ4MDJjMDYyN2NiOTYuLmY5MDBmMDQ2YWUzZTMxNjQ2NjRkNmVlMjZkZjgwYzUzY2E4
NGI3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0z
Miw3ICszMiw2IEBACiAjaW5jbHVkZSAiRGF0ZVRpbWVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCkBAIC01OSwxMCArNTgsMTQgQEAgc3RhdGljIGNvbnN0IGludCBk
YXRlVGltZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDA7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBE
YXRlVGltZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0g
ICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVP
YnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWUpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0
ZVRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIERhdGVUaW1lSW5wdXRUeXBlOjph
dHRhY2goKQoreworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6
SW5wdXRUeXBlRGF0ZVRpbWUpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIERhdGVUaW1lSW5w
dXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVO
YW1lczo6ZGF0ZXRpbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaApp
bmRleCA4YWZjMzBmNmE4NDJiYzkxZmQ3Y2Q1YWZmODY3YWQ4ODc5ZjU3Y2FhLi40ZGU5NWE1YWY3
NThkY2I1ZDdkNTI3NGEwMDAyMGZkOWYzMzU4OWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUlucHV0VHlwZS5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRl
VGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5
cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFu
Z2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDkxNjk5OGIyOTk5Y2Q5M2Y4NzRj
MmU4YTJmNzgxZjUwY2ViODVhMWYuLmUzZmJkNGE5YzY5NWFjZTkyZGIzY2ZiNTg2YmVhNThkY2Jm
YTNhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIkRhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
aCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2Vy
dmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01OCwxMCArNTcsMTQgQEAgc3Rh
dGljIGNvbnN0IGludCBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yID0gMTAwMDsKIAogUGFz
c093blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVt
ZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lTG9jYWwp
OwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgRGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50
KSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBv
YnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1l
TG9jYWwpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIERhdGVUaW1lTG9jYWxJbnB1dFR5cGU6
OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpk
YXRldGltZWxvY2FsKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0
VHlwZS5oCmluZGV4IGMwZTdkMTZkZmYzNzE0MzY4Nzk2OGEwMTk2ZWY1ZGRhMmJkYTBlMTEuLjMx
ZWVhNGQ1YTE4NDNlNzYzYmM2OGI3MWZkODNmMGQ5ZjhlNThhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lTG9jYWxJbnB1dFR5cGUoZWxlbWVudCkgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFs
IERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBkb3VibGUgdmFsdWVBc0RhdGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9FbWFpbElucHV0VHlwZS5jcHAKaW5kZXggMjdlZDBjZjQwMTMwNDNmZTZhOThjYTk3NGI2NTA4
ZTBiMzRiZjc5NS4uYjUxZDBhNzQ0OWNjZWRmNzExNGM5MGZmNTBlMDM3OTUwNDliMTBiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5jcHAKQEAgLTI0LDcgKzI0LDYgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFbWFpbElucHV0VHlwZS5oIgogCi0jaW5jbHVk
ZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpA
QCAtNTYsMTAgKzU1LDE1IEBAIHN0YXRpYyBib29sIGlzVmFsaWRFbWFpbEFkZHJlc3MoY29uc3Qg
U3RyaW5nJiBhZGRyZXNzKQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRW1haWxJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZUVtYWlsKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IEVtYWlsSW5wdXRUeXBlKGVsZW1lbnQp
KTsKIH0KIAordm9pZCBFbWFpbElucHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBUZXh0RmllbGRJ
bnB1dFR5cGU6OmF0dGFjaCgpOworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVP
YnNlcnZlcjo6SW5wdXRUeXBlRW1haWwpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIEVtYWls
SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5
cGVOYW1lczo6ZW1haWwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJ
bnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAppbmRleCAy
ZDQ1MzQ3YzdmOWNlNWVmMDJkNzVkNjM3OWFkZGQ2NmQwZGU0YjRjLi4wZDdlM2I0ZmY0MmVkODhl
N2Q2MzUyNjM3MTBkOWEzY2U1YjA1Yzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0VtYWlsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlw
ZS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFbWFpbElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBib29sIHR5cGVNaXNtYXRjaEZvcihjb25zdCBTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoKCkgY29uc3QgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggMWFiNWFkMWMyODI2N2RhYzNhNDdiZGM5Njc5
ZDIwMzM2MzU3NTEwYy4uOTIxMzEzZTdhN2RlYjE5ZjNhYTY3MzAzYWE5MDliMDA2MDQyYzM4MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtMTQwLDEzICsxNDAsOCBAQCBQYXNzT3du
UHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVu
dCwgY29uc3QgQXRvbWljUwogewogICAgIHN0YXRpYyBjb25zdCBJbnB1dFR5cGVGYWN0b3J5TWFw
KiBmYWN0b3J5TWFwID0gY3JlYXRlSW5wdXRUeXBlRmFjdG9yeU1hcCgpLmxlYWtQdHIoKTsKICAg
ICBQYXNzT3duUHRyPElucHV0VHlwZT4gKCpmYWN0b3J5KShIVE1MSW5wdXRFbGVtZW50KikgPSB0
eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9yeU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBp
ZiAoIWZhY3RvcnkpIHsKKyAgICBpZiAoIWZhY3RvcnkpCiAgICAgICAgIGZhY3RvcnkgPSBUZXh0
SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgICAgIGlmICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1l
czo6ZGF0ZXRpbWUoKSkKLSAgICAgICAgICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVt
ZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGVUaW1lRmFsbGJh
Y2spOwotICAgICAgICBlbHNlIGlmICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6d2Vlaygp
KQotICAgICAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50
KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vla0ZhbGxiYWNrKTsKLSAgICB9CiAgICAg
cmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CiB9CiAKQEAgLTExMzQsNCArMTEyOSwxMiBAQCB2b2lk
IElucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogICAgIH0KIH0KIAordm9pZCBJ
bnB1dFR5cGU6Om9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6RmVhdHVy
ZSBmZWF0dXJlKSBjb25zdAoreworICAgIGlmIChSZW5kZXJTdHlsZSogc3R5bGUgPSBlbGVtZW50
KCktPnJlbmRlclN0eWxlKCkpIHsKKyAgICAgICAgaWYgKHN0eWxlLT52aXNpYmlsaXR5KCkgIT0g
SElEREVOKQorICAgICAgICAgICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQoKS0+
ZG9jdW1lbnQoKSwgZmVhdHVyZSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBjNmQxNGE5NzFiMmQ4NzY1YTUwYTY2ZDE3YmNk
Mjk0ZTBmMzg0ZjBmLi4zOGYyZWZlNTQ2NjZkZjE1OTI0ZjJhNjZkOGI3Mzg2NDc1M2Y5NTQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpZm5kZWYgSW5wdXRU
eXBlX2gKICNkZWZpbmUgSW5wdXRUeXBlX2gKIAorI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5o
IgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3Rl
cFJhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KQEAgLTMxMyw2ICszMTQsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fZWxlbWVudDsgfQogICAgIENocm9tZSogY2hyb21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBw
YXJzZVRvTnVtYmVyT3JOYU4oY29uc3QgU3RyaW5nJikgY29uc3Q7CisgICAgdm9pZCBvYnNlcnZl
RmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2ZXI6OkZlYXR1cmUpIGNvbnN0OwogCiBwcml2
YXRlOgogICAgIC8vIEhlbHBlciBmb3Igc3RlcFVwKCkvc3RlcERvd24oKS4gQWRkcyBzdGVwIHZh
bHVlICogY291bnQgdG8gdGhlIGN1cnJlbnQgdmFsdWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJ
bnB1dFR5cGUuY3BwCmluZGV4IDZiZjQ3NDEyNWRhYTgyMzBlNjNkZmY0NjhiNmVlZmVjYjg4ZWNi
ZWIuLjdiNWIwZDc5MzBmMTUzMzU4ZTc3NGE2NmE5NmE0NmQwZDQzMDYzZDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAi
TW9udGhJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVk
ZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC02MCwx
MCArNTksMTQgQEAgc3RhdGljIGNvbnN0IGludCBtb250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAK
IFBhc3NPd25QdHI8SW5wdXRUeXBlPiBNb250aElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQt
PmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOwogICAgIHJldHVy
biBhZG9wdFB0cihuZXcgTW9udGhJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIE1vbnRo
SW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIE1v
bnRoSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1
dFR5cGVOYW1lczo6bW9udGgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9u
dGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRl
eCA2MTQ4OGJjNzBkN2RmYTBjNzZlYjhiYWZjMjU1YTFiNzhhZTExZmRiLi43ZWQzMThiODRlYzUy
NDU0M2E1MWFiZjJhNjlmNDUxMmZlMWY5NWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBNb250aElu
cHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VNb250aElucHV0VHlwZShl
bGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCmluZGV4IDMwMTc1MTI1NmVmM2U2
Zjc3MWVjMTljYmRhMzcwYThkMzQ4NGRkYWQuLjMzYWQwMmIwNjBlODIxNzdjMTZkNWFkOWY2NmM1
NDJhOGRlZjBiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAg
LTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIkJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAj
aW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgog
I2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNp
bmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCkBAIC05OSwxMCArOTgsMTUgQEAgc3RhdGljIFJl
YWxOdW1iZXJSZW5kZXJTaXplIGNhbGN1bGF0ZVJlbmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFs
dWUpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShl
bGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZU51bWJlcik7CiAg
ICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdW1iZXJJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2
b2lkIE51bWJlcklucHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBUZXh0RmllbGRJbnB1dFR5cGU6
OmF0dGFjaCgpOworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6
SW5wdXRUeXBlTnVtYmVyKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBOdW1iZXJJbnB1dFR5
cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVz
OjpudW1iZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IDFlZmNk
YzEzYzczMDNmYzExN2ZhYTQzYTcxYmNjNjY3N2RjYTEyNjkuLjEwYTYyMzc3ZTIwMTE1NGMzMzJh
NjYyNWJlNWZjYTVkYWFhZDFhMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVt
YmVySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUu
aApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgTnVtYmVySW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2Vk
LCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2
YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuY3BwCmluZGV4IDUyOTgwMmJjZTFjZDI0NmY5MDczZmRmNzQ2NjNlZTUyNDY5MGNkYjgu
LmJlY2E3YWQ0ZTc1YjQ4N2Y1YjVjNGFlNzY4ZjQ3M2JjNjVlN2ZmNjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJB
WE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxlbWVudFNoYWRvdy5oIgotI2luY2x1ZGUgIkZl
YXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtODIsNyArODEs
NiBAQCBzdGF0aWMgRGVjaW1hbCBlbnN1cmVNYXhpbXVtKGNvbnN0IERlY2ltYWwmIHByb3Bvc2Vk
VmFsdWUsIGNvbnN0IERlY2ltYWwmIG1pbmltdQogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gUmFu
Z2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZVJhbmdlKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFJhbmdlSW5wdXRU
eXBlKGVsZW1lbnQpKTsKIH0KIApAQCAtOTQsNiArOTIsMTEgQEAgUmFuZ2VJbnB1dFR5cGU6OlJh
bmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CiB9CiAKK3ZvaWQgUmFu
Z2VJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVh
dHVyZU9ic2VydmVyOjpJbnB1dFR5cGVSYW5nZSk7Cit9CisKIGJvb2wgUmFuZ2VJbnB1dFR5cGU6
OmlzUmFuZ2VDb250cm9sKCkgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRleCBiODU0NDJkYjY2ZThlNzc3Y2ZjYmUzODFiYzNjODlm
NzNmYjRiYTgzLi42MWZhM2EyMmRjZWY0YjJiYjgwODA2YjRmYjFhY2YwMDhkZDVlMzdjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBSYW5nZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAg
dmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBpc1Jhbmdl
Q29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2
YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElu
cHV0VHlwZS5jcHAKaW5kZXggOGExZWIwMjlhNWZiNTQ5ODY3YzkzNTE0MWY1YmI3NDUyNmMwMzFi
MC4uZmI5NjM2NWMyOGU1ZDg3NGVjNzI3ZTRkNGNjZmMyMWY1OWNiOTU5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlYXJjaElucHV0VHlwZS5oIgogCi0jaW5jbHVkZSAiRmVh
dHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01NSwxMCArNTQs
MTUgQEAgaW5saW5lIFNlYXJjaElucHV0VHlwZTo6U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZl
cjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlw
ZVNlYXJjaCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBTZWFyY2hJbnB1dFR5cGUoZWxlbWVu
dCkpOwogfQogCit2b2lkIFNlYXJjaElucHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBUZXh0Rmll
bGRJbnB1dFR5cGU6OmF0dGFjaCgpOworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlU2VhcmNoKTsKK30KKwogdm9pZCBTZWFyY2hJbnB1dFR5cGU6
OmFkZFNlYXJjaFJlc3VsdCgpCiB7CiAgICAgaWYgKFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBl
bGVtZW50KCktPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Nl
YXJjaElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaApp
bmRleCA0NWJiZDM0N2I4NGZiNmMwZGI0MTdmMDg2ZThiZTM5ZjI0MzkyZTEyLi5kNzQ5ZTZlMzcx
MzM0NDhhOWI3YjdhNmYyZmI4NjA3ZGRkOTk4NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNo
SW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNl
YXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBhZGRTZWFyY2hSZXN1bHQoKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogY3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEq
LCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcAppbmRleCA0OTY0OTA2YTcxNWJkMTUzNTZhYmFi
N2FlZjBkZmNlNjczZDNjYzIxLi4wYWRmNjU0MDdkOGFkYTllN2I5ZTBlNmFiZjk4NzQ4MDlhNzUy
YzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGVsZXBob25lSW5w
dXRUeXBlLmgiCiAKLSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgpAQCAtNDAsMTAgKzM5LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRlbGVwaG9uZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJ
bnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVs
ZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlVGVsKTsKICAgICBy
ZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKK3Zv
aWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIFRleHRGaWVsZElucHV0VHlw
ZTo6YXR0YWNoKCk7CisgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVUZWwpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIFRlbGVwaG9uZUlucHV0
VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFt
ZXM6OnRlbGVwaG9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhv
bmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgK
aW5kZXggOTIzZmFkNjM1N2IzMTc4NjE0ODRjNDY0NDRmNGUzY2NiYzU2ZTAwYy4uMThmODE4OGI4
MTFhNDE0ZjkxN2I4ZGRhNWE4MTQxNDAwMzU4Mjg2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1Rl
bGVwaG9uZUlucHV0VHlwZS5oCkBAIC00MSw2ICs0MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNl
VGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0
cmlidXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIGlzVGVsZXBob25lRmllbGQoKSBj
b25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmlu
ZGV4IGE3OTg4NzEzOGRjOWYxZmUwYzBlNmY3OWM1YmExZTM5ZDJlYjFkZGMuLmZkNzMxNDAxZmNi
OWIwNmFjZmQ2YWY5MzhlNDI0OTFjZWY4YTU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0
RmllbGRJbnB1dFR5cGUuaApAQCAtNTgsNiArNTgsNyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAog
cHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgbmVlZHNDb250YWluZXIoKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
SGF2ZVNwaW5CdXR0b24oKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3Vi
dHJlZSgpIE9WRVJSSURFOwpAQCAtOTEsNyArOTIsNiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
SFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVudCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRleHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFMaXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0
IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5nZWQoKSBPVkVSUklERTsKIAogICAgIC8vIFNwaW5CdXR0
b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIgZnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4
dElucHV0VHlwZS5jcHAKaW5kZXggMTliZGNhN2ZjY2Y1ODc5YzlhZGU2OTUwZmVlMGM4Y2Q0MDY1
ZWVhNi4uZjdhOWI1ODliMjU2OTExNWNiYjlmMzA1NjFhZWQwM2VlYzViZThkOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCkBAIC0zMSwxNiArMzEsMjkgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0SW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJIVE1M
SW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlIDx3
dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CisKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBUZXh0SW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IFRleHRJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIFRleHRJbnB1dFR5cGU6OmF0dGFj
aCgpCit7CisgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjphdHRhY2goKTsKKyAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIHR5cGUgPSBlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpOwor
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh0eXBlLCBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUo
KSkpCisgICAgICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5w
dXRUeXBlRGF0ZVRpbWVGYWxsYmFjayk7CisgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uo
dHlwZSwgSW5wdXRUeXBlTmFtZXM6OndlZWsoKSkpCisgICAgICAgIG9ic2VydmVGZWF0dXJlSWZW
aXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vla0ZhbGxiYWNrKTsKK30KKwogY29u
c3QgQXRvbWljU3RyaW5nJiBUZXh0SW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAog
ewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6dGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJ
bnB1dFR5cGUuaAppbmRleCA0MjFmZTU3NzBhMDc5MWYxMWQ4Zjc4ZmVjYTVlNTU4NDVhMTNkNDRm
Li42OTNhZTA2MGFjNWQ4YzNmMTlhOGJhZjEzNjY1ODhhOTA3ZWY1OTBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRJbnB1dFR5cGUuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6
CiAgICAgVGV4dElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VUZXh0
SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1
dGUoKSBPVkVSUklERTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRl
eCA4ZjNlZjBjOWYzMTljMDk1MzYxMmMwMWJmMGU2NzEzMmEyMjgxODBlLi5lYzU5NWU3NmFhZjEz
M2UyOGQ5NWMzMmIwYWVmZjBmMjQxODI3OTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0
VHlwZS5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJUaW1lSW5wdXRUeXBlLmgiCiAK
ICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
ICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpAQCAtNjQsMTAgKzYzLDE0IEBAIFRpbWVJbnB1
dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogIGVsZW1lbnQpCiAKIFBhc3NP
d25QdHI8SW5wdXRUeXBlPiBUaW1lSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCog
ZWxlbWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1l
bnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6
OmF0dGFjaCgpCit7CisgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVy
OjpJbnB1dFR5cGVUaW1lKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBUaW1lSW5wdXRUeXBl
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6
dGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAppbmRleCBjMmVlMjc5NmJjZTEy
MzMxOWJlYzFkMWQ1NzBiNDFlNzU2NjE2YWY3Li4zMmVhYjVlMWNiMTUxYzhhYWY2NmFhMDk1Mzc0
YTNmMmRjODUxM2NkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaApAQCAtNDksNiAr
NDksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVGltZUlucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsK
ICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpUeXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9W
RVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwCmluZGV4IDY1NzY1Yjg3YTk3
ZWM0ZWYyMjBhMTcxY2Q0MDcyNWI2YmZhZTUwZDQuLjk5ZGQwODkxNDBhOWE2N2UxZTNiNjcyMTE5
M2M3Nzc1N2ZmMWQ5YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRU
eXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5jcHAKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJVUkxJbnB1dFR5cGUu
aCIKIAotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVs
ZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXpl
ZFN0cmluZ3MuaCIKQEAgLTQyLDEwICs0MSwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBh
c3NPd25QdHI8SW5wdXRUeXBlPiBVUkxJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1
bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVVSTCk7CiAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIFVSTElucHV0VHlwZTo6
YXR0YWNoKCkKK3sKKyAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOworICAgIG9ic2Vy
dmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlVVJMKTsKK30KKwog
Y29uc3QgQXRvbWljU3RyaW5nJiBVUkxJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjp1cmwoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElu
cHV0VHlwZS5oCmluZGV4IGRlNjg0MTg1ZDUyZWI5ODlhMDk5NGIwMzc1MzdlY2NjN2QxZjE4ODUu
Ljg3YzA2OGQ4MDM5NGFlYjVkYmEyMDI2NmQ0YmYzOWZkYmU2ODY4YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9VUkxJbnB1dFR5cGUuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1
dFR5cGUoZWxlbWVudCkgeyB9CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBP
VkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlwZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYp
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBP
VkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwCmluZGV4IDBjNzEzM2U3
OGI4ZTczZDBmOThkMDBhNjMzOTg0NjUxMGUwMzIyN2YuLmVhZTJlN2U3YjU0ZmNiNzc1ZDY3YTgw
NjQ3YTM4YzYzZTE5ZTlhMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApA
QCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIldlZWtJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCkBAIC01NiwxMCArNTUsMTQgQEAgc3RhdGljIGNvbnN0IGludCB3
ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0ODAwMDAwOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4g
V2Vla0lucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNl
cnZlcjo6SW5wdXRUeXBlV2Vlayk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRU
eXBlKGVsZW1lbnQpKTsKIH0KIAordm9pZCBXZWVrSW5wdXRUeXBlOjphdHRhY2goKQoreworICAg
IG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vlayk7
Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgV2Vla0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBl
KCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OndlZWsoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggYTcwYjlhOWU4ZWFjYTY5ZGU0ZjI2MjAzNGJiMzA1
YjQ3NWVlY2I4Ni4uMzg1YmQ2ZDhkN2U5OWU2NzM2Mzk3MTFmZWRhNTFlYmJlMTgxY2FlYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgog
CiBwcml2YXRlOgogICAgIFdlZWtJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkg
OiBCYXNlV2Vla0lucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9s
VHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUg
ZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVT
dGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25zdCBPVkVSUklERTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185176</attachid>
            <date>2013-01-28 23:48:57 -0800</date>
            <delta_ts>2013-01-29 02:02:56 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-108141-20130129164543.patch</filename>
            <type>text/plain</type>
            <size>29139</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRiNGIxNzE3ZGI3YTlm
ZDJlMWZkNjM1NGU1MjAyNDhlNDc0N2Y0OS4uMzJiMjU2MWMyNTQ4YTJmYTUzMTJlYmM1ODQ5NjE0
NzFkYjkyMGZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDEzLTAxLTI4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBGZWF0dXJlT2JzZXJ2ZXI6
IElucHV0IHR5cGVzIGFyZSBjb3VudGVkIHVuZXhwZWN0ZWRseSBpbiBhIHBhZ2Ugd2l0aCBNb2Rl
cm5penIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEw
ODE0MQorCisgICAgICAgIFJldmlld2VkIGJ5IEtlbnRhcm8gSGFyYS4KKworICAgICAgICBXZSBk
b24ndCB3YW50IHRvIHJlY29yZCBpbnB1dCB0eXBlIGluc3RhbnRpYXRpb24gYnkgTW9kZXJuaXpy
LiBNb2Rlcm5penIKKyAgICAgICAgY3JlYXRlcyBpbnB1dCBlbGVtZW50cyB3aXRoIHRoZXNlIHR5
cGVzLCBhcHBlbmQgaXQgdG8gZG9jdW1lbnQuYm9keSwgYW5kCisgICAgICAgIHJlbmRlciBpdCB3
aXRoIHZpc2liaWxpdHk6aGlkZGVuLiBTbywgd2UgcmVjb3JkIGlucHV0IHR5cGVzIG9ubHkgd2hl
bgorICAgICAgICB0aGV5IGFyZSBhdHRhY2hlZCB3aXRob3V0IHZpc2liaWxpdHk6aGlkZGVuLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cy4gRmVhdHVyZU9ic2VydmVyIGlzIG5vdCB0ZXN0YWJsZSBi
eSBsYXlvdXQgdGVzdC4KKworICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklucHV0VHlwZTo6Y3JlYXRlKTogUmVtb3ZlIEZlYXR1cmVPYnNlcnZlcjo6b2Jz
ZXJ2ZQorICAgICAgICBjYWxsc2l0ZXMuIFRoZXkgYXJlIG1vdmVkIHRvIFRleHRJbnB1dFR5cGU6
OmF0dGFjaC4KKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6b2JzZXJ2ZUZlYXR1cmVJZlZp
c2libGUpOgorICAgICAgICBBZGRlZC4gQSBoZWxwZXIgZm9yIGF0dGFjaCgpLgorICAgICAgICAq
IGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgIChJbnB1dFR5cGUpOiBBZGQgb2JzZXJ2ZUZlYXR1
cmVJZlZpc2libGUuCisKKyAgICAgICAgKiBodG1sL0NvbG9ySW5wdXRUeXBlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbG9ySW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAgICBSZW1vdmUgYSBG
ZWF0dXJlT2JzZXJ2ZXI6Om9ic2VydmUgY2FsbHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpDb2xv
cklucHV0VHlwZTo6YXR0YWNoKToKKyAgICAgICAgQ2FsbHMgRmV0dXJlT2JzZXJ2ZXIgdGhyb3Vn
aCBJbnB1dFR5cGU6Om9ic2VydmVGZWF0dXJlSWZWaXNpYmxlLgorICAgICAgICAqIGh0bWwvQ29s
b3JJbnB1dFR5cGUuaDoKKyAgICAgICAgKENvbG9ySW5wdXRUeXBlKTogRGVjbGFyZSBhdHRhY2gu
CisgICAgICAgICogaHRtbC9EYXRlSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAgICAgICogaHRt
bC9EYXRlSW5wdXRUeXBlLmg6IERpdHRvLgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5
cGUuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmg6IERpdHRv
LgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHA6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL01vbnRoSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9Nb250aElucHV0
VHlwZS5oOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDogRGl0dAor
ICAgICAgICAqIGh0bWwvUmFuZ2VJbnB1dFR5cGUuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9U
aW1lSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6
IERpdHRvLgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5jcHA6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvV2Vla0lucHV0VHlwZS5oOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvVGV4dEZp
ZWxkSW5wdXRUeXBlLmg6CisgICAgICAgIChUZXh0RmllbGRJbnB1dFR5cGUpOgorICAgICAgICBN
YWtlIGF0dGFjaCBwcm90ZWN0ZWQgaW4gb3JkZXIgdGhhdCBzdWIgY2xhc3NlcyBjYW4gY2FsbCBp
dC4KKyAgICAgICAgKiBodG1sL0VtYWlsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkVtYWlsSW5wdXRUeXBlOjpjcmVhdGUpOgorICAgICAgICBSZW1vdmUgYSBGZWF0dXJlT2JzZXJ2
ZXI6Om9ic2VydmUgY2FsbHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpFbWFpbElucHV0VHlwZTo6
YXR0YWNoKTogQ2FsbHMgRmV0dXJlT2JzZXJ2ZXIgdGhyb3VnaAorICAgICAgICBJbnB1dFR5cGU6
Om9ic2VydmVGZWF0dXJlSWZWaXNpYmxlIGFmdGVyIFRleHRGaWVsZElucHR1VHlwZTo6YXR0YWNo
LgorICAgICAgICAqIGh0bWwvRW1haWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKEVtYWlsSW5wdXRU
eXBlKTpEZWNsYXJlIGF0dGFjaC4KKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6
IERpdHRvLgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRUeXBlLmg6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9TZWFy
Y2hJbnB1dFR5cGUuaDogRGl0dG8uCisgICAgICAgICogaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUu
Y3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL1VSTElucHV0VHlwZS5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwv
VVJMSW5wdXRUeXBlLmg6IERpdHRvLgorCisgICAgICAgICogaHRtbC9UZXh0SW5wdXRUeXBlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRJbnB1dFR5cGU6OmF0dGFjaCk6CisgICAgICAgIE1v
dmUgdGhlIGNvZGUgZm9yIHR5cGUgZmFsbGJhY2sgZnJvbSBJbnB1dFR5cGU6OmNyZWF0ZS4KKyAg
ICAgICAgKiBodG1sL1RleHRJbnB1dFR5cGUuaDoKKyAgICAgICAgKFRleHRJbnB1dFR5cGUpOiBE
ZWNsYXJlIGF0dGFjaC4KKwogMjAxMy0wMS0yOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0MTA0
OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggMjg5OGExZDZhMzI0
ZjI4OTdkNGE1NmE1Y2U2MjkxMjUwYWVhYTI5NS4uNDkwNjNiMzQ4Y2UyZmI3NjhlMDliNDY0NWEw
ZGY2MGY2YTQ0NTMyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAg
LTM1LDcgKzM1LDYgQEAKICNpbmNsdWRlICJDaHJvbWUuaCIKICNpbmNsdWRlICJDb2xvci5oIgog
I2luY2x1ZGUgIkVsZW1lbnRTaGFkb3cuaCIKLSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIK
ICNpbmNsdWRlICJIVE1MRGF0YUxpc3RFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC03Miw3ICs3MSw2IEBAIHN0
YXRpYyBib29sIGlzVmFsaWRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIHZhbHVlKQogCiBQYXNz
T3duUHRyPElucHV0VHlwZT4gQ29sb3JJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1
bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZUNvbG9yKTsKICAgICByZXR1cm4gYWRv
cHRQdHIobmV3IENvbG9ySW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApAQCAtODEsNiArNzksMTEg
QEAgQ29sb3JJbnB1dFR5cGU6On5Db2xvcklucHV0VHlwZSgpCiAgICAgZW5kQ29sb3JDaG9vc2Vy
KCk7CiB9CiAKK3ZvaWQgQ29sb3JJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgb2JzZXJ2ZUZl
YXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVDb2xvcik7Cit9CisKIGJv
b2wgQ29sb3JJbnB1dFR5cGU6OmlzQ29sb3JDb250cm9sKCkgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuaAppbmRleCAxZjA4MTMzZmVkYTM1
OTg4MDU2MTZjZTVmNjZlZjdhNzU1NGZjNDAzLi45MWVjZGFhZmMyMTY1YzYxY2YwZmVmNGI4Nzg5
ZDgyM2QzODQ1NTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5oCkBAIC01Myw2
ICs1Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBDb2xvcklucHV0VHlwZShIVE1MSW5w
dXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VDbGlja2FibGVXaXRoS2V5SW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGJvb2wgaXNDb2xvckNvbnRyb2woKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzUmVxdWlyZWQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwCmluZGV4IDFmZDVlMGU0ZjhiN2MyNDMyZjQ0NGQ3MzE0NmI5
OGU2ZjhiYjBiMDcuLjgzYTJmNmZmYmQ0ZWJiMzhjYzViMGIzNjc5YWY2YzMxMDE2MDBjN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcApAQCAtMzQsNyArMzQsNiBAQAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0RBVEUpCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNp
bmNsdWRlICJEYXRlVGltZUZpZWxkc1N0YXRlLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVy
LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5o
IgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01OSwxMCArNTgsMTQgQEAgaW5saW5l
IERhdGVJbnB1dFR5cGU6OkRhdGVJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IAogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50
LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOwogICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRGF0ZUlucHV0VHlwZShlbGVtZW50KSk7CiB9CiAKK3ZvaWQgRGF0ZUlu
cHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJl
T2JzZXJ2ZXI6OklucHV0VHlwZURhdGUpOworfQorCiBjb25zdCBBdG9taWNTdHJpbmcmIERhdGVJ
bnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlw
ZU5hbWVzOjpkYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCmluZGV4IDE5YzEz
NmY0NGI2MDUyMDVmMTg0NWNiY2E1NTIxYzkxZWVmZjI0ZDguLmZkNzVmOTE1ZmQyNTdlMDU2YThm
OGIwZWRhYmEwODc5NDljYTE5MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0
ZUlucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBA
IC01Miw2ICs1Miw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBEYXRlSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQqKTsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25z
dCBPVkVSUklERTsKICAgICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3Rl
cEhhbmRsaW5nKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlu
cHV0VHlwZS5jcHAKaW5kZXggMGNiOTNkMzc3MjRiZGY2NGNjMzQ0YWY1YzExZDgwMmMwNjI3Y2I5
Ni4uZjkwMGYwNDZhZTNlMzE2NDY2NGQ2ZWUyNmRmODBjNTNjYTg0YjcxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNs
dWRlICJEYXRlVGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIK
LSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5wdXRUeXBlTmFtZXMuaCIK
QEAgLTU5LDEwICs1OCwxNCBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVUaW1lU3RlcFNjYWxlRmFj
dG9yID0gMTAwMDsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2ZXI6
Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVE
YXRlVGltZSk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBEYXRlVGltZUlucHV0VHlwZShlbGVt
ZW50KSk7CiB9CiAKK3ZvaWQgRGF0ZVRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgb2Jz
ZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVEYXRlVGltZSk7
Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgRGF0ZVRpbWVJbnB1dFR5cGU6OmZvcm1Db250cm9s
VHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5oCmluZGV4IDhhZmMzMGY2YTg0MmJj
OTFmZDdjZDVhZmY4NjdhZDg4NzlmNTdjYWEuLjRkZTk1YTVhZjc1OGRjYjVkN2Q1Mjc0YTAwMDIw
ZmQ5ZjMzNTg5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1
dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKQEAg
LTUxLDYgKzUxLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIERhdGVUaW1lSW5wdXRUeXBl
KEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZURhdGVUaW1lSW5wdXRUeXBlKGVsZW1l
bnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCBEYXRlQ29tcG9uZW50czo6VHlwZSBkYXRlVHlwZSgpIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgU3RlcFJhbmdlIGNyZWF0ZVN0ZXBSYW5nZShBbnlTdGVwSGFuZGxpbmcp
IGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGlt
ZUxvY2FsSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElu
cHV0VHlwZS5jcHAKaW5kZXggOTE2OTk4YjI5OTljZDkzZjg3NGMyZThhMmY3ODFmNTBjZWI4NWEx
Zi4uZTNmYmQ0YTljNjk1YWNlOTJkYjNjZmI1ODZiZWE1OGRjYmZhM2FlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCkBAIC0zMiw3ICszMiw2
IEBACiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0
ZUNvbXBvbmVudHMuaCIKLSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJI
VE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKQEAgLTU4LDEwICs1NywxNCBAQCBzdGF0aWMgY29uc3QgaW50IGRhdGVU
aW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwOwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4g
RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
CiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZl
YXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7CiAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAordm9pZCBEYXRl
VGltZUxvY2FsSW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNp
YmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVMb2NhbCk7Cit9CisKIGNvbnN0
IEF0b21pY1N0cmluZyYgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKaW5kZXggYzBlN2Qx
NmRmZjM3MTQzNjg3OTY4YTAxOTZlZjVkZGEyYmRhMGUxMS4uMzFlZWE0ZDVhMTg0M2U3NjNiYzY4
YjcxZmQ4M2YwZDlmOGU1OGE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRl
VGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNl
RGF0ZVRpbWVMb2NhbElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5
cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFz
RGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9F
bWFpbElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNw
cAppbmRleCAyN2VkMGNmNDAxMzA0M2ZlNmE5OGNhOTc0YjY1MDhlMGIzNGJmNzk1Li5iNTFkMGE3
NDQ5Y2NlZGY3MTE0YzkwZmY1MGUwMzc5NTA0OWIxMGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Vt
YWlsSW5wdXRUeXBlLmNwcApAQCAtMjQsNyArMjQsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkVtYWlsSW5wdXRUeXBlLmgiCiAKLSNpbmNsdWRlICJGZWF0dXJlT2JzZXJ2ZXIu
aCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01NiwxMCArNTUsMTUgQEAg
c3RhdGljIGJvb2wgaXNWYWxpZEVtYWlsQWRkcmVzcyhjb25zdCBTdHJpbmcmIGFkZHJlc3MpCiAK
IFBhc3NPd25QdHI8SW5wdXRUeXBlPiBFbWFpbElucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQt
PmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRW1haWwpOwogICAgIHJldHVy
biBhZG9wdFB0cihuZXcgRW1haWxJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIEVtYWls
SW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7
CisgICAgb2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVF
bWFpbCk7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgRW1haWxJbnB1dFR5cGU6OmZvcm1Db250
cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjplbWFpbCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9FbWFpbElucHV0VHlwZS5oCmluZGV4IDJkNDUzNDdjN2Y5Y2U1ZWYwMmQ3
NWQ2Mzc5YWRkZDY2ZDBkZTRiNGMuLjBkN2UzYjRmZjQyZWQ4OGU3ZDYzNTI2MzcxMGQ5YTNjZTVi
MDVjOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRW1haWxJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0VtYWlsSW5wdXRUeXBlLmgKQEAgLTQxLDYgKzQxLDcg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEVtYWlsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlw
ZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmNwcAppbmRleCAxYWI1YWQxYzI4MjY3ZGFjM2E0N2JkYzk2NzlkMjAzMzYzNTc1MTBjLi4wOThj
MWUxMzViYzQxMTA1ZGNhZThhNzU3YjE0NGNjNmJjZmE2MzA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1
dFR5cGUuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKICNpbmNsdWRlICJNb250aElucHV0VHlwZS5o
IgorI2luY2x1ZGUgIk5vZGVSZW5kZXJTdHlsZS5oIgogI2luY2x1ZGUgIk51bWJlcklucHV0VHlw
ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXNzd29yZElucHV0VHlwZS5oIgpA
QCAtMTQwLDEzICsxNDEsOCBAQCBQYXNzT3duUHRyPElucHV0VHlwZT4gSW5wdXRUeXBlOjpjcmVh
dGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCwgY29uc3QgQXRvbWljUwogewogICAgIHN0YXRp
YyBjb25zdCBJbnB1dFR5cGVGYWN0b3J5TWFwKiBmYWN0b3J5TWFwID0gY3JlYXRlSW5wdXRUeXBl
RmFjdG9yeU1hcCgpLmxlYWtQdHIoKTsKICAgICBQYXNzT3duUHRyPElucHV0VHlwZT4gKCpmYWN0
b3J5KShIVE1MSW5wdXRFbGVtZW50KikgPSB0eXBlTmFtZS5pc0VtcHR5KCkgPyAwIDogZmFjdG9y
eU1hcC0+Z2V0KHR5cGVOYW1lKTsKLSAgICBpZiAoIWZhY3RvcnkpIHsKKyAgICBpZiAoIWZhY3Rv
cnkpCiAgICAgICAgIGZhY3RvcnkgPSBUZXh0SW5wdXRUeXBlOjpjcmVhdGU7Ci0gICAgICAgIGlm
ICh0eXBlTmFtZSA9PSBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSkKLSAgICAgICAgICAgIEZl
YXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2
ZXI6OklucHV0VHlwZURhdGVUaW1lRmFsbGJhY2spOwotICAgICAgICBlbHNlIGlmICh0eXBlTmFt
ZSA9PSBJbnB1dFR5cGVOYW1lczo6d2VlaygpKQotICAgICAgICAgICAgRmVhdHVyZU9ic2VydmVy
OjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBl
V2Vla0ZhbGxiYWNrKTsKLSAgICB9CiAgICAgcmV0dXJuIGZhY3RvcnkoZWxlbWVudCk7CiB9CiAK
QEAgLTExMzQsNCArMTEzMCwxMiBAQCB2b2lkIElucHV0VHlwZTo6c3RlcFVwRnJvbVJlbmRlcmVy
KGludCBuKQogICAgIH0KIH0KIAordm9pZCBJbnB1dFR5cGU6Om9ic2VydmVGZWF0dXJlSWZWaXNp
YmxlKEZlYXR1cmVPYnNlcnZlcjo6RmVhdHVyZSBmZWF0dXJlKSBjb25zdAoreworICAgIGlmIChS
ZW5kZXJTdHlsZSogc3R5bGUgPSBlbGVtZW50KCktPnJlbmRlclN0eWxlKCkpIHsKKyAgICAgICAg
aWYgKHN0eWxlLT52aXNpYmlsaXR5KCkgIT0gSElEREVOKQorICAgICAgICAgICAgRmVhdHVyZU9i
c2VydmVyOjpvYnNlcnZlKGVsZW1lbnQoKS0+ZG9jdW1lbnQoKSwgZmVhdHVyZSk7CisgICAgfQor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBj
NmQxNGE5NzFiMmQ4NzY1YTUwYTY2ZDE3YmNkMjk0ZTBmMzg0ZjBmLi4zOGYyZWZlNTQ2NjZkZjE1
OTI0ZjJhNjZkOGI3Mzg2NDc1M2Y5NTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTMz
LDYgKzMzLDcgQEAKICNpZm5kZWYgSW5wdXRUeXBlX2gKICNkZWZpbmUgSW5wdXRUeXBlX2gKIAor
I2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxUZXh0Rm9ybUNvbnRy
b2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiU3RlcFJhbmdlLmgiCiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KQEAgLTMxMyw2ICszMTQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQogICAgIENocm9tZSogY2hy
b21lKCkgY29uc3Q7CiAgICAgRGVjaW1hbCBwYXJzZVRvTnVtYmVyT3JOYU4oY29uc3QgU3RyaW5n
JikgY29uc3Q7CisgICAgdm9pZCBvYnNlcnZlRmVhdHVyZUlmVmlzaWJsZShGZWF0dXJlT2JzZXJ2
ZXI6OkZlYXR1cmUpIGNvbnN0OwogCiBwcml2YXRlOgogICAgIC8vIEhlbHBlciBmb3Igc3RlcFVw
KCkvc3RlcERvd24oKS4gQWRkcyBzdGVwIHZhbHVlICogY291bnQgdG8gdGhlIGN1cnJlbnQgdmFs
dWUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCmluZGV4IDZiZjQ3NDEyNWRh
YTgyMzBlNjNkZmY0NjhiNmVlZmVjYjg4ZWNiZWIuLjdiNWIwZDc5MzBmMTUzMzU4ZTc3NGE2NmE5
NmE0NmQwZDQzMDYzZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuY3BwCkBA
IC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiTW9udGhJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVk
ZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IklucHV0VHlwZU5hbWVzLmgiCkBAIC02MCwxMCArNTksMTQgQEAgc3RhdGljIGNvbnN0IGludCBt
b250aFN0ZXBTY2FsZUZhY3RvciA9IDE7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBNb250aElu
cHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmVhdHVy
ZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6
SW5wdXRUeXBlTW9udGgpOwogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9udGhJbnB1dFR5cGUo
ZWxlbWVudCkpOwogfQogCit2b2lkIE1vbnRoSW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIG9i
c2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTW9udGgpOwor
fQorCiBjb25zdCBBdG9taWNTdHJpbmcmIE1vbnRoSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6bW9udGgoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCA2MTQ4OGJjNzBkN2RmYTBjNzZlYjhiYWZjMjU1
YTFiNzhhZTExZmRiLi43ZWQzMThiODRlYzUyNDU0M2E1MWFiZjJhNjlmNDUxMmZlMWY5NWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Nb250aElucHV0VHlwZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBNb250aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KSA6IEJhc2VNb250aElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1D
b250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1
ZUFzRGF0ZSgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9OdW1iZXJJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5
cGUuY3BwCmluZGV4IDMwMTc1MTI1NmVmM2U2Zjc3MWVjMTljYmRhMzcwYThkMzQ4NGRkYWQuLjMz
YWQwMmIwNjBlODIxNzdjMTZkNWFkOWY2NmM1NDJhOGRlZjBiM2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL051bWJlcklucHV0VHlwZS5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKIAogI2luY2x1ZGUgIkJl
Zm9yZVRleHRJbnNlcnRlZEV2ZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgotI2lu
Y2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIK
ICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCkBA
IC05OSwxMCArOTgsMTUgQEAgc3RhdGljIFJlYWxOdW1iZXJSZW5kZXJTaXplIGNhbGN1bGF0ZVJl
bmRlclNpemUoY29uc3QgRGVjaW1hbCYgdmFsdWUpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBO
dW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAg
IEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2Jz
ZXJ2ZXI6OklucHV0VHlwZU51bWJlcik7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBOdW1iZXJJ
bnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIE51bWJlcklucHV0VHlwZTo6YXR0YWNoKCkK
K3sKKyAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOworICAgIG9ic2VydmVGZWF0dXJl
SWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlTnVtYmVyKTsKK30KKwogY29uc3Qg
QXRvbWljU3RyaW5nJiBOdW1iZXJJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpudW1iZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051
bWJlcklucHV0VHlwZS5oCmluZGV4IDFlZmNkYzEzYzczMDNmYzExN2ZhYTQzYTcxYmNjNjY3N2Rj
YTEyNjkuLjEwYTYyMzc3ZTIwMTE1NGMzMzJhNjYyNWJlNWZjYTVkYWFhZDFhMmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNDEsNiArNDEsNyBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgTnVtYmVySW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQp
IDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBhdHRh
Y2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRy
b2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0
IFN0cmluZyYsIGJvb2wgdmFsdWVDaGFuZ2VkLCBUZXh0RmllbGRFdmVudEJlaGF2aW9yKSBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDUyOTgwMmJjZTFjZDI0
NmY5MDczZmRmNzQ2NjNlZTUyNDY5MGNkYjguLmJlY2E3YWQ0ZTc1YjQ4N2Y1YjVjNGFlNzY4ZjQ3
M2JjNjVlN2ZmNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCkBAIC0z
NCw3ICszNCw2IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiRWxl
bWVudFNoYWRvdy5oIgotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhU
TUxEaXZFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgpAQCAtODIsNyArODEsNiBAQCBzdGF0aWMgRGVjaW1hbCBlbnN1cmVNYXhp
bXVtKGNvbnN0IERlY2ltYWwmIHByb3Bvc2VkVmFsdWUsIGNvbnN0IERlY2ltYWwmIG1pbmltdQog
CiBQYXNzT3duUHRyPElucHV0VHlwZT4gUmFuZ2VJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50
LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVJhbmdlKTsKICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IFJhbmdlSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIApAQCAtOTQsNiAr
OTIsMTEgQEAgUmFuZ2VJbnB1dFR5cGU6OlJhbmdlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpCiB7CiB9CiAKK3ZvaWQgUmFuZ2VJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAg
b2JzZXJ2ZUZlYXR1cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVSYW5nZSk7
Cit9CisKIGJvb2wgUmFuZ2VJbnB1dFR5cGU6OmlzUmFuZ2VDb250cm9sKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1
dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuaAppbmRleCBiODU0
NDJkYjY2ZThlNzc3Y2ZjYmUzODFiYzNjODlmNzNmYjRiYTgzLi42MWZhM2EyMmRjZWY0YjJiYjgw
ODA2YjRmYjFhY2YwMDhkZDVlMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1Jh
bmdlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5o
CkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBSYW5nZUlucHV0VHlw
ZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgYm9vbCBpc1JhbmdlQ29udHJvbCgpIGNvbnN0IE9WRVJSSURFOwogICAg
IHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVS
UklERTsKICAgICB2aXJ0dWFsIGRvdWJsZSB2YWx1ZUFzRG91YmxlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5jcHAKaW5kZXggOGExZWIwMjlhNWZi
NTQ5ODY3YzkzNTE0MWY1YmI3NDUyNmMwMzFiMC4uZmI5NjM2NWMyOGU1ZDg3NGVjNzI3ZTRkNGNj
ZmMyMWY1OWNiOTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9TZWFyY2hJbnB1
dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmNwcApA
QCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNlYXJjaElu
cHV0VHlwZS5oIgogCi0jaW5jbHVkZSAiRmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRN
TElucHV0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0
VHlwZU5hbWVzLmgiCkBAIC01NSwxMCArNTQsMTUgQEAgaW5saW5lIFNlYXJjaElucHV0VHlwZTo6
U2VhcmNoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8
SW5wdXRUeXBlPiBTZWFyY2hJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogewotICAgIEZlYXR1cmVPYnNlcnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgp
LCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0VHlwZVNlYXJjaCk7CiAgICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBTZWFyY2hJbnB1dFR5cGUoZWxlbWVudCkpOwogfQogCit2b2lkIFNlYXJjaElucHV0VHlw
ZTo6YXR0YWNoKCkKK3sKKyAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmF0dGFjaCgpOworICAgIG9i
c2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlU2VhcmNoKTsK
K30KKwogdm9pZCBTZWFyY2hJbnB1dFR5cGU6OmFkZFNlYXJjaFJlc3VsdCgpCiB7CiAgICAgaWYg
KFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBlbGVtZW50KCktPnJlbmRlcmVyKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9TZWFyY2hJbnB1dFR5cGUuaAppbmRleCA0NWJiZDM0N2I4NGZiNmMwZGI0MTdmMDg2
ZThiZTM5ZjI0MzkyZTEyLi5kNzQ5ZTZlMzcxMzM0NDhhOWI3YjdhNmYyZmI4NjA3ZGRkOTk4NWVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1NlYXJjaElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvU2VhcmNoSW5wdXRUeXBlLmgKQEAgLTQ3LDYgKzQ3LDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIFNlYXJjaElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50
Kik7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBhZGRTZWFyY2hSZXN1bHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCog
Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqLCBSZW5kZXJTdHlsZSopIGNvbnN0IE9WRVJSSURF
OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25z
dCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5w
dXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmNwcApp
bmRleCA0OTY0OTA2YTcxNWJkMTUzNTZhYmFiN2FlZjBkZmNlNjczZDNjYzIxLi4wYWRmNjU0MDdk
OGFkYTllN2I5ZTBlNmFiZjk4NzQ4MDlhNzUyYzFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9U
ZWxlcGhvbmVJbnB1dFR5cGUuY3BwCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiVGVsZXBob25lSW5wdXRUeXBlLmgiCiAKLSNpbmNsdWRlICJGZWF0dXJl
T2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtNDAsMTAgKzM5
LDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc093blB0cjxJbnB1dFR5cGU+IFRlbGVw
aG9uZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAg
RmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1lbnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNl
cnZlcjo6SW5wdXRUeXBlVGVsKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRlbGVwaG9uZUlu
cHV0VHlwZShlbGVtZW50KSk7CiB9CiAKK3ZvaWQgVGVsZXBob25lSW5wdXRUeXBlOjphdHRhY2go
KQoreworICAgIFRleHRGaWVsZElucHV0VHlwZTo6YXR0YWNoKCk7CisgICAgb2JzZXJ2ZUZlYXR1
cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUZWwpOworfQorCiBjb25zdCBB
dG9taWNTdHJpbmcmIFRlbGVwaG9uZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QK
IHsKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnRlbGVwaG9uZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvVGVsZXBob25lSW5wdXRUeXBlLmgKaW5kZXggOTIzZmFkNjM1N2IzMTc4NjE0ODRjNDY0
NDRmNGUzY2NiYzU2ZTAwYy4uMThmODE4OGI4MTFhNDE0ZjkxN2I4ZGRhNWE4MTQxNDAwMzU4Mjg2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZWxlcGhvbmVJbnB1dFR5cGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RlbGVwaG9uZUlucHV0VHlwZS5oCkBAIC00MSw2ICs0
MSw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBUZWxlcGhvbmVJbnB1dFR5cGUoSFRNTElu
cHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlVGV4dElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25zdCBBdG9t
aWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRSZXNwZWN0U3BlZWNoQXR0cmlidXRlKCkgT1ZFUlJJREU7CiAgICAgdmlydHVh
bCBib29sIGlzVGVsZXBob25lRmllbGQoKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1RleHRGaWVsZElucHV0VHlwZS5oCmluZGV4IGE3OTg4NzEzOGRjOWYxZmUwYzBlNmY3OWM1
YmExZTM5ZDJlYjFkZGMuLmZkNzMxNDAxZmNiOWIwNmFjZmQ2YWY5MzhlNDI0OTFjZWY4YTU5YmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUuaApAQCAtNTgsNiArNTgs
NyBAQCBwcm90ZWN0ZWQ6CiAjZW5kaWYKIAogcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgbmVlZHNDb250YWluZXIoKSBjb25z
dDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGF2ZVNwaW5CdXR0b24oKSBjb25zdDsKICAgICB2
aXJ0dWFsIHZvaWQgY3JlYXRlU2hhZG93U3VidHJlZSgpIE9WRVJSSURFOwpAQCAtOTEsNyArOTIs
NiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSFRNTEVsZW1lbnQqIHBsYWNlaG9sZGVyRWxlbWVu
dCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQbGFjZWhvbGRlclRl
eHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgYXBwZW5kRm9ybURhdGEoRm9ybURhdGFM
aXN0JiwgYm9vbCBtdWx0aXBhcnQpIGNvbnN0IE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc3VidHJlZUhhc0NoYW5nZWQoKSBP
VkVSUklERTsKIAogICAgIC8vIFNwaW5CdXR0b25FbGVtZW50OjpTcGluQnV0dG9uT3duZXIgZnVu
Y3Rpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dElucHV0VHlwZS5jcHAKaW5kZXggMTliZGNhN2Zj
Y2Y1ODc5YzlhZGU2OTUwZmVlMGM4Y2Q0MDY1ZWVhNi4uZjdhOWI1ODliMjU2OTExNWNiYjlmMzA1
NjFhZWQwM2VlYzViZThkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5w
dXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuY3BwCkBA
IC0zMSwxNiArMzEsMjkgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0SW5w
dXRUeXBlLmgiCiAKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSW5w
dXRUeXBlTmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3VzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CisKIFBhc3NPd25QdHI8SW5w
dXRUeXBlPiBUZXh0SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkK
IHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRleHRJbnB1dFR5cGUoZWxlbWVudCkpOwogfQog
Cit2b2lkIFRleHRJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgVGV4dEZpZWxkSW5wdXRUeXBl
OjphdHRhY2goKTsKKyAgICBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUgPSBlbGVtZW50KCktPmZh
c3RHZXRBdHRyaWJ1dGUodHlwZUF0dHIpOworICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZSh0eXBl
LCBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWUoKSkpCisgICAgICAgIG9ic2VydmVGZWF0dXJlSWZW
aXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlRGF0ZVRpbWVGYWxsYmFjayk7CisgICAg
ZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodHlwZSwgSW5wdXRUeXBlTmFtZXM6OndlZWsoKSkp
CisgICAgICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRU
eXBlV2Vla0ZhbGxiYWNrKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBUZXh0SW5wdXRUeXBl
Ojpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6
dGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0SW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaAppbmRleCA0MjFmZTU3NzBhMDc5
MWYxMWQ4Zjc4ZmVjYTVlNTU4NDVhMTNkNDRmLi42OTNhZTA2MGFjNWQ4YzNmMTlhOGJhZjEzNjY1
ODhhOTA3ZWY1OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5
cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RleHRJbnB1dFR5cGUuaApAQCAtNDEsNiAr
NDEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVGV4dElucHV0VHlwZShIVE1MSW5wdXRF
bGVtZW50KiBlbGVtZW50KSA6IEJhc2VUZXh0SW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2goKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0
cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZFJlc3BlY3RTcGVlY2hBdHRyaWJ1dGUoKSBPVkVSUklERTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCA4ZjNlZjBjOWYzMTljMDk1MzYxMmMwMWJmMGU2
NzEzMmEyMjgxODBlLi5lYzU5NWU3NmFhZjEzM2UyOGQ5NWMzMmIwYWVmZjBmMjQxODI3OTc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAKQEAgLTMyLDcgKzMyLDYgQEAKICNp
bmNsdWRlICJUaW1lSW5wdXRUeXBlLmgiCiAKICNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgot
I2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZlci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVOYW1lcy5oIgpA
QCAtNjQsMTAgKzYzLDE0IEBAIFRpbWVJbnB1dFR5cGU6OlRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCogIGVsZW1lbnQpCiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBUaW1lSW5wdXRUeXBl
OjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKLSAgICBGZWF0dXJlT2JzZXJ2
ZXI6Om9ic2VydmUoZWxlbWVudC0+ZG9jdW1lbnQoKSwgRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5
cGVUaW1lKTsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFRpbWVJbnB1dFR5cGUoZWxlbWVudCkp
OwogfQogCit2b2lkIFRpbWVJbnB1dFR5cGU6OmF0dGFjaCgpCit7CisgICAgb2JzZXJ2ZUZlYXR1
cmVJZlZpc2libGUoRmVhdHVyZU9ic2VydmVyOjpJbnB1dFR5cGVUaW1lKTsKK30KKwogY29uc3Qg
QXRvbWljU3RyaW5nJiBUaW1lSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogewog
ICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6dGltZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1
dFR5cGUuaAppbmRleCBjMmVlMjc5NmJjZTEyMzMxOWJlYzFkMWQ1NzBiNDFlNzU2NjE2YWY3Li4z
MmVhYjVlMWNiMTUxYzhhYWY2NmFhMDk1Mzc0YTNmMmRjODUxM2NkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L1RpbWVJbnB1dFR5cGUuaApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50Kik7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIERhdGVDb21wb25lbnRzOjpU
eXBlIGRhdGVUeXBlKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBEZWNpbWFsIGRlZmF1
bHRWYWx1ZUZvclN0ZXBVcCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1
dFR5cGUuY3BwCmluZGV4IDY1NzY1Yjg3YTk3ZWM0ZWYyMjBhMTcxY2Q0MDcyNWI2YmZhZTUwZDQu
Ljk5ZGQwODkxNDBhOWE2N2UxZTNiNjcyMTE5M2M3Nzc1N2ZmMWQ5YTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1VSTElucHV0VHlwZS5jcHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJVUkxJbnB1dFR5cGUuaCIKIAotI2luY2x1ZGUgIkZlYXR1cmVPYnNlcnZl
ci5oIgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJJbnB1dFR5cGVO
YW1lcy5oIgogI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKQEAgLTQyLDEwICs0MSwxNSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBVUkxJbnB1dFR5
cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewotICAgIEZlYXR1cmVPYnNl
cnZlcjo6b2JzZXJ2ZShlbGVtZW50LT5kb2N1bWVudCgpLCBGZWF0dXJlT2JzZXJ2ZXI6OklucHV0
VHlwZVVSTCk7CiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBVUkxJbnB1dFR5cGUoZWxlbWVudCkp
OwogfQogCit2b2lkIFVSTElucHV0VHlwZTo6YXR0YWNoKCkKK3sKKyAgICBUZXh0RmllbGRJbnB1
dFR5cGU6OmF0dGFjaCgpOworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1cmVPYnNl
cnZlcjo6SW5wdXRUeXBlVVJMKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5nJiBVUkxJbnB1dFR5
cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVz
Ojp1cmwoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL1VSTElucHV0VHlwZS5oCmluZGV4IGRlNjg0MTg1ZDUyZWI5
ODlhMDk5NGIwMzc1MzdlY2NjN2QxZjE4ODUuLjg3YzA2OGQ4MDM5NGFlYjVkYmEyMDI2NmQ0YmYz
OWZkYmU2ODY4YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVVJMSW5wdXRUeXBl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaApAQCAtNDEsNiArNDEs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgVVJMSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgdmlydHVh
bCB2b2lkIGF0dGFjaCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgdHlw
ZU1pc21hdGNoRm9yKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwg
Ym9vbCB0eXBlTWlzbWF0Y2goKSBjb25zdCBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCmluZGV4IDBjNzEzM2U3OGI4ZTczZDBmOThkMDBhNjMzOTg0NjUxMGUwMzIy
N2YuLmVhZTJlN2U3YjU0ZmNiNzc1ZDY3YTgwNjQ3YTM4YzYzZTE5ZTlhMTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIldl
ZWtJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAi
RmVhdHVyZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIklucHV0VHlwZU5hbWVzLmgiCkBAIC01NiwxMCAr
NTUsMTQgQEAgc3RhdGljIGNvbnN0IGludCB3ZWVrU3RlcFNjYWxlRmFjdG9yID0gNjA0ODAwMDAw
OwogCiBQYXNzT3duUHRyPElucHV0VHlwZT4gV2Vla0lucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1
dEVsZW1lbnQqIGVsZW1lbnQpCiB7Ci0gICAgRmVhdHVyZU9ic2VydmVyOjpvYnNlcnZlKGVsZW1l
bnQtPmRvY3VtZW50KCksIEZlYXR1cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vlayk7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBXZWVrSW5wdXRUeXBlKGVsZW1lbnQpKTsKIH0KIAordm9pZCBXZWVr
SW5wdXRUeXBlOjphdHRhY2goKQoreworICAgIG9ic2VydmVGZWF0dXJlSWZWaXNpYmxlKEZlYXR1
cmVPYnNlcnZlcjo6SW5wdXRUeXBlV2Vlayk7Cit9CisKIGNvbnN0IEF0b21pY1N0cmluZyYgV2Vl
a0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKIHsKICAgICByZXR1cm4gSW5wdXRU
eXBlTmFtZXM6OndlZWsoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKaW5kZXggYTcw
YjlhOWU4ZWFjYTY5ZGU0ZjI2MjAzNGJiMzA1YjQ3NWVlY2I4Ni4uMzg1YmQ2ZDhkN2U5OWU2NzM2
Mzk3MTFmZWRhNTFlYmJlMTgxY2FlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9X
ZWVrSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgK
QEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFdlZWtJbnB1dFR5cGUo
SFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlV2Vla0lucHV0VHlwZShlbGVtZW50KSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZp
cnR1YWwgRGF0ZUNvbXBvbmVudHM6OlR5cGUgZGF0ZVR5cGUoKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFN0ZXBSYW5nZSBjcmVhdGVTdGVwUmFuZ2UoQW55U3RlcEhhbmRsaW5nKSBjb25z
dCBPVkVSUklERTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>