<?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>47251</bug_id>
          
          <creation_ts>2010-10-06 02:17:54 -0700</creation_ts>
          <short_desc>Refactor HTMLInputElement: Move range/step related functions</short_desc>
          <delta_ts>2010-10-06 21:49:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45872</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>290152</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-06 02:17:54 -0700</bug_when>
    <thetext>Refactor HTMLInputElement: Move range/step related functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290155</commentid>
    <comment_count>1</comment_count>
      <attachid>69906</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-06 02:27:40 -0700</bug_when>
    <thetext>Created attachment 69906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290291</commentid>
    <comment_count>2</comment_count>
      <attachid>69906</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-06 07:43:55 -0700</bug_when>
    <thetext>Comment on attachment 69906
Patch

This is starting to look super-swell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290792</commentid>
    <comment_count>3</comment_count>
      <attachid>69906</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-06 21:49:43 -0700</bug_when>
    <thetext>Comment on attachment 69906
Patch

Clearing flags on attachment: 69906

Committed r69272: &lt;http://trac.webkit.org/changeset/69272&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>290793</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-06 21:49:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69906</attachid>
            <date>2010-10-06 02:27:40 -0700</date>
            <delta_ts>2010-10-06 21:49:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-47251-20101006182738.patch</filename>
            <type>text/plain</type>
            <size>47977</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
M2NiMTc1ZDg1MDE1YjNhYzZhY2ZhYjhmYWVmYmJiZGExYjEwZWM2ZC4uOWFmM2FkNGM4YjM0ZGUw
MTMwZjkxMmU5OWI2OTZjYjQ3NzFiMDM0MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTUgQEAKKzIwMTAtMTAtMDYgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yIEhUTUxJbnB1dEVsZW1lbnQ6IE1vdmUg
cmFuZ2Uvc3RlcCByZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDcyNTEKKworICAgICAgICBNb3ZlIHRoZSBjb250ZW50IG9m
IHRoZSBmb2xsb3dpbmcgZnVuY3Rpb25zOgorICAgICAgICAgLSByYW5nZVVuZGVyZmxvdygpCisg
ICAgICAgICAtIHJhbmdlT3ZlcmZsb3coKQorICAgICAgICAgLSBtaW5pbXVtKCkKKyAgICAgICAg
IC0gbWF4aW11bSgpCisgICAgICAgICAtIHN0ZXBNaXNtYXRjaCgpCisgICAgICAgICAtIHN0ZXBC
YXNlKCkKKworICAgICAgICBnZXRTdGVwUGFyYW1ldGVycygpIHdhcyBzcGxpdCBpbnRvIElucHV0
VHlwZTo6ZGVmYXVsdFN0ZXAoKSBhbmQKKyAgICAgICAgc3RlcFNjYWxlRmFjdG9yKCkuCisKKyAg
ICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KToKKyAgICAgICAg
KFdlYkNvcmU6OkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnN0ZXBNaXNtYXRjaCk6Cisg
ICAgICAgIChXZWJDb3JlOjpCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnN0ZXBCYXNlKToKKyAg
ICAgICAgKiBodG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwv
RGF0ZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlSW5wdXRUeXBlOjptaW5p
bXVtKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVJbnB1dFR5cGU6Om1heGltdW0pOgorICAgICAg
ICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6ZGVmYXVsdFN0ZXApOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0ZUlucHV0VHlwZTo6c3RlcFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRh
dGVJbnB1dFR5cGU6OnBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcik6CisgICAgICAgICog
aHRtbC9EYXRlSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUlucHV0VHlwZTo6bWluaW11bSk6CisgICAg
ICAgIChXZWJDb3JlOjpEYXRlVGltZUlucHV0VHlwZTo6bWF4aW11bSk6CisgICAgICAgIChXZWJD
b3JlOjpEYXRlVGltZUlucHV0VHlwZTo6ZGVmYXVsdFN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6
RGF0ZVRpbWVJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpE
YXRlVGltZUlucHV0VHlwZTo6c2NhbGVkU3RlcFZhbGV1U2hvdWxkQmVJbnRlZ2VyKToKKyAgICAg
ICAgKiBodG1sL0RhdGVUaW1lSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9EYXRlVGltZUxv
Y2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5
cGU6Om1pbmltdW0pOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6
bWF4aW11bSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpkZWZh
dWx0U3RlcCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzdGVw
U2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6
c2NhbGVkU3RlcFZhbGV1U2hvdWxkQmVJbnRlZ2VyKToKKyAgICAgICAgKiBodG1sL0RhdGVUaW1l
TG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3cpOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6cmFuZ2VPdmVyZmxvdyk6CisgICAgICAg
IChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjptaW5pbXVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6Om1heGltdW0pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6c3RlcE1pc21hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1l
bnQ6OmdldEFsbG93ZWRWYWx1ZVN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6YXBwbHlTdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Omhh
bmRsZUtleUV2ZW50Rm9yUmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVu
dDo6c3RlcFVwRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQu
aDoKKyAgICAgICAgKiBodG1sL0lucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OnBhdHRlcm5NaXNtYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnJh
bmdlVW5kZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6cmFuZ2VPdmVyZmxv
dyk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6Om1pbmltdW0pOgorICAgICAgICAoV2Vi
Q29yZTo6SW5wdXRUeXBlOjptYXhpbXVtKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6
c3RlcE1pc21hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6c3RlcEJhc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpkZWZhdWx0U3RlcCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpJbnB1
dFR5cGU6OnBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcik6CisgICAgICAgIChXZWJDb3Jl
OjpJbnB1dFR5cGU6OnNjYWxlZFN0ZXBWYWxldVNob3VsZEJlSW50ZWdlcik6CisgICAgICAgICog
aHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL01vbnRoSW5wdXRUeXBlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjptaW5pbXVtKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vbnRoSW5wdXRUeXBlOjptYXhpbXVtKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5w
dXRUeXBlOjpkZWZhdWx0U3RlcCk6CisgICAgICAgIChXZWJDb3JlOjpNb250aElucHV0VHlwZTo6
c3RlcFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpwYXJz
ZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIpOgorICAgICAgICAqIGh0bWwvTW9udGhJbnB1dFR5
cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpOdW1iZXJJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KToKKyAgICAgICAgKFdlYkNvcmU6
Ok51bWJlcklucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpOdW1i
ZXJJbnB1dFR5cGU6Om1pbmltdW0pOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBl
OjptYXhpbXVtKToKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6c3RlcE1pc21h
dGNoKToKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6c3RlcEJhc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpkZWZhdWx0U3RlcCk6CisgICAgICAgIChX
ZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3Rvcik6CisgICAgICAgICogaHRt
bC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL1JhbmdlSW5wdXRUeXBlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpyYW5nZVVuZGVyZmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyk6CisgICAgICAgIChX
ZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6bWluaW11bSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5n
ZUlucHV0VHlwZTo6bWF4aW11bSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6
c3RlcE1pc21hdGNoKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlSW5wdXRUeXBlOjpzdGVwQmFz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSYW5nZUlucHV0VHlwZTo6ZGVmYXVsdFN0ZXApOgorICAg
ICAgICAoV2ViQ29yZTo6UmFuZ2VJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3Rvcik6CisgICAgICAg
ICogaHRtbC9SYW5nZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjptaW5pbXVtKToKKyAgICAgICAg
KFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6Om1heGltdW0pOgorICAgICAgICAoV2ViQ29yZTo6VGlt
ZUlucHV0VHlwZTo6ZGVmYXVsdFN0ZXApOgorICAgICAgICAoV2ViQ29yZTo6VGltZUlucHV0VHlw
ZTo6c3RlcFNjYWxlRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlRpbWVJbnB1dFR5cGU6OnNj
YWxlZFN0ZXBWYWxldVNob3VsZEJlSW50ZWdlcik6CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9XZWVrSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlZWtJbnB1dFR5cGU6Om1pbmltdW0pOgorICAgICAgICAoV2ViQ29yZTo6V2Vla0lucHV0
VHlwZTo6bWF4aW11bSk6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpzdGVwQmFz
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpkZWZhdWx0U3RlcCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWVrSW5wdXRUeXBlOjpzdGVwU2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6cGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKToK
KyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUuaDoKKwogMjAxMC0xMC0wNSAgS3l1c3VuIEtp
bSAgPG1hbmlhZ29vbkBjb21wYW55MTAwLm5ldD4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW50
IFRhbXVyYS4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUuY3BwIGIvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAKaW5kZXgg
MWMyMjM1NDVlODkwYmNmYThjNjlmYmRlNzE5YWU1NTI0MTU5MTg4ZC4uNzRhZTFiOTRiYzJlMDZj
MTgwODAxODFjOWRiN2JmNWJhOWVkYWZjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0Jhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAKQEAgLTMyLDEyICszMiw0OSBAQAogI2luY2x1ZGUgIkJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRl
ICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSA8
bGltaXRzPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NP
d25QdHIuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwordXNpbmcgbmFtZXNwYWNlIHN0
ZDsKKworYm9vbCBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGU6OnJhbmdlVW5kZXJmbG93KGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit7CisgICAgY29uc3QgZG91YmxlIG5hbiA9IG51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IHBh
cnNlVG9Eb3VibGUodmFsdWUsIG5hbik7CisgICAgcmV0dXJuIGlzZmluaXRlKGRvdWJsZVZhbHVl
KSAmJiBkb3VibGVWYWx1ZSA8IG1pbmltdW0oKTsKK30KKworYm9vbCBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGU6OnJhbmdlT3ZlcmZsb3coY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKK3sKKyAg
ICBjb25zdCBkb3VibGUgbmFuID0gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7
CisgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gcGFyc2VUb0RvdWJsZSh2YWx1ZSwgbmFuKTsKKyAg
ICByZXR1cm4gaXNmaW5pdGUoZG91YmxlVmFsdWUpICYmIGRvdWJsZVZhbHVlID4gbWF4aW11bSgp
OworfQorCitib29sIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6c3RlcE1pc21hdGNoKGNvbnN0
IFN0cmluZyYgdmFsdWUsIGRvdWJsZSBzdGVwKSBjb25zdAoreworICAgIGNvbnN0IGRvdWJsZSBu
YW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBkb3VibGUgZG91
YmxlVmFsdWUgPSBwYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pOworICAgIGRvdWJsZVZhbHVlID0g
ZmFicyhkb3VibGVWYWx1ZSAtIHN0ZXBCYXNlKCkpOworICAgIGlmICghaXNmaW5pdGUoZG91Ymxl
VmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgQVNTRVJUKHJvdW5kKGRvdWJsZVZh
bHVlKSA9PSBkb3VibGVWYWx1ZSk7CisgICAgQVNTRVJUKHJvdW5kKHN0ZXApID09IHN0ZXApOwor
ICAgIHJldHVybiBmbW9kKGRvdWJsZVZhbHVlLCBzdGVwKTsKK30KKworZG91YmxlIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZTo6c3RlcEJhc2UoKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRv
RG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgZGVmYXVsdFN0ZXBC
YXNlKTsKK30KKwogZG91YmxlIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb0RvdWJs
ZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKIHsKICAgICBE
YXRlQ29tcG9uZW50cyBkYXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5oIGIvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5o
CmluZGV4IDMzNmNkODM3N2I5NmRkMDE2MDAwY2ZmNGRkNjllZDAxYjQwZDFiMmQuLjQ1YjFlZGY0
ZTgyNjczMjAwZTBkOGZiZTUxZjJlM2UzZDYyMGM2N2UgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvQmFzZURhdGVB
bmRUaW1lSW5wdXRUeXBlLmgKQEAgLTQwLDExICs0MCwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgOiBwdWJsaWMgVGV4dEZpZWxkSW5wdXRU
eXBlIHsKIHByb3RlY3RlZDoKICAgICBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAg
dmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwg
RGF0ZUNvbXBvbmVudHMqKSBjb25zdDsKICAgICAvLyBBIGhlbHBlciBmb3IgcGFyc2VUb0RhdGVD
b21wb25lbnRzKCkuCiAgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVy
bmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0
ID0gMDsKKwogcHJpdmF0ZToKLSAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJhbmdlVW5kZXJmbG93
KGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCByYW5nZU92ZXJmbG93KGNv
bnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3Qg
U3RyaW5nJiwgZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwQmFzZSgpIGNv
bnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCmlu
ZGV4IDNjYjk1OWRhODU4NjJlYTA3NDc2OWE5ODE0YjljYWNiM2ZkNzQ4ZGUuLjAyMmIyZThiMmYz
YjJmODQ4NmI3YzEzZDU1ZDNjZWEwNDRjZTA2ZGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9E
YXRlSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5jcHAKQEAg
LTMyLDEwICszMiwxNyBAQAogI2luY2x1ZGUgIkRhdGVJbnB1dFR5cGUuaCIKIAogI2luY2x1ZGUg
IkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworc3RhdGljIGNvbnN0
IGRvdWJsZSBkYXRlRGVmYXVsdFN0ZXAgPSAxLjA7CitzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVT
dGVwU2NhbGVGYWN0b3IgPSA4NjQwMDAwMC4wOworCiBQYXNzT3duUHRyPElucHV0VHlwZT4gRGF0
ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBEYXRlSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTQ2LDYgKzUzLDMx
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRGF0ZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmRhdGUoKTsKIH0KIAorZG91YmxlIERh
dGVJbnB1dFR5cGU6Om1pbmltdW0oKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRvRG91Ymxl
KGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1p
bmltdW1EYXRlKCkpOworfQorCitkb3VibGUgRGF0ZUlucHV0VHlwZTo6bWF4aW11bSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRl
KG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURhdGUoKSk7Cit9CisKK2RvdWJsZSBE
YXRlSW5wdXRUeXBlOjpkZWZhdWx0U3RlcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRhdGVEZWZh
dWx0U3RlcDsKK30KKworZG91YmxlIERhdGVJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3RvcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIGRhdGVTdGVwU2NhbGVGYWN0b3I7Cit9CisKK2Jvb2wgRGF0ZUlu
cHV0VHlwZTo6cGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBEYXRlSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVu
dHNJbnRlcm5hbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRl
Q29tcG9uZW50cyogb3V0KSBjb25zdAogewogICAgIEFTU0VSVChvdXQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBl
LmgKaW5kZXggZTM3NjgyZTI3YjA0NzQ2MjA5NDkxY2QxNGQ2Y2RlNTZhMmNkODg5ZS4uNThhMDc4
ZjVmMTI5YWE1ZjU3NzU0ZmI0Y2IwZWQ4MDE4ZTJhNWViNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL0RhdGVJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCkBA
IC00Miw2ICs0MiwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIERhdGVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW0oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgZGVmYXVsdFN0ZXAo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgcGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0OwogfTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1dlYkNvcmUvaHRtbC9E
YXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggNzViZjFkYWVhZjAyMGU4ZTM4MDM2NmViNDE2NmRj
YjI4MzYxZDczNC4uOGIxOTA3NmU3YjdmZjQ4NzMxNzJjMTdlMDRjNzdjM2RhZjYzM2QzNCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMiwxMCArMzIsMTcgQEAKICNpbmNsdWRl
ICJEYXRlVGltZUlucHV0VHlwZS5oIgogCiAjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMgY29uc3QgZG91YmxlIGRhdGVUaW1lRGVmYXVs
dFN0ZXAgPSA2MC4wOworc3RhdGljIGNvbnN0IGRvdWJsZSBkYXRlVGltZVN0ZXBTY2FsZUZhY3Rv
ciA9IDEwMDAuMDsKKwogUGFzc093blB0cjxJbnB1dFR5cGU+IERhdGVUaW1lSW5wdXRUeXBlOjpj
cmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIo
bmV3IERhdGVUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTQ2LDYgKzUzLDMxIEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgRGF0ZVRpbWVJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0
CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpkYXRldGltZSgpOwogfQogCitkb3VibGUgRGF0
ZVRpbWVJbnB1dFR5cGU6Om1pbmltdW0oKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRvRG91
YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6
Om1pbmltdW1EYXRlVGltZSgpKTsKK30KKworZG91YmxlIERhdGVUaW1lSW5wdXRUeXBlOjptYXhp
bXVtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCktPmZhc3RH
ZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0ZVRpbWUoKSk7
Cit9CisKK2RvdWJsZSBEYXRlVGltZUlucHV0VHlwZTo6ZGVmYXVsdFN0ZXAoKSBjb25zdAorewor
ICAgIHJldHVybiBkYXRlVGltZURlZmF1bHRTdGVwOworfQorCitkb3VibGUgRGF0ZVRpbWVJbnB1
dFR5cGU6OnN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGRhdGVUaW1lU3Rl
cFNjYWxlRmFjdG9yOworfQorCitib29sIERhdGVUaW1lSW5wdXRUeXBlOjpzY2FsZWRTdGVwVmFs
ZXVTaG91bGRCZUludGVnZXIoKSBjb25zdAoreworICAgIHJldHVybiB0cnVlOworfQorCiBib29s
IERhdGVUaW1lSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBV
Q2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyogb3V0KSBj
b25zdAogewogICAgIEFTU0VSVChvdXQpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RhdGVU
aW1lSW5wdXRUeXBlLmggYi9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaAppbmRleCA5
MmViYzQxYTAzZGRkNTgzZjllNjdhMWI0NjlhNDhkYmNiMjY4MWQzLi5lZjcxZjU2MjE4NjU0MDk3
YTQzMzk0ZDhjYzAyMzdjZTAzMjU1NzhlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRGF0ZVRp
bWVJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaApAQCAt
NDIsNiArNDIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEYXRlVGltZUlucHV0VHlwZShI
VE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVt
ZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBl
KCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgbWluaW11bSgpIGNvbnN0OworICAgIHZpcnR1
YWwgZG91YmxlIG1heGltdW0oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3Rl
cCgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCBzY2FsZWRTdGVwVmFsZXVTaG91bGRCZUludGVnZXIoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNo
YXIqLCB1bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3Q7CiB9OwogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAgYi9XZWJDb3Jl
L2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKaW5kZXggOTE2YTM4NmUxMjBkNDU3ZGE2
ODdkNTY5ZDMwOTIzYmNhNmMzY2FiNS4uYmY4Zjg0MDNlYjMwMmFlODZiODE1NzQ2OTRkYzU3ZmM3
ZjEwNjc5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcApAQCAtMzIs
MTAgKzMyLDE3IEBACiAjaW5jbHVkZSAiRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oIgogCiAjaW5j
bHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKKyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMg
Y29uc3QgZG91YmxlIGRhdGVUaW1lTG9jYWxEZWZhdWx0U3RlcCA9IDYwLjA7CitzdGF0aWMgY29u
c3QgZG91YmxlIGRhdGVUaW1lTG9jYWxTdGVwU2NhbGVGYWN0b3IgPSAxMDAwLjA7CisKIFBhc3NP
d25QdHI8SW5wdXRUeXBlPiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IERhdGVUaW1lTG9j
YWxJbnB1dFR5cGUoZWxlbWVudCkpOwpAQCAtNDYsNiArNTMsMzEgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUoKSBjb25zdAogICAg
IHJldHVybiBJbnB1dFR5cGVOYW1lczo6ZGF0ZXRpbWVsb2NhbCgpOwogfQogCitkb3VibGUgRGF0
ZVRpbWVMb2NhbElucHV0VHlwZTo6bWluaW11bSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhcnNl
VG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9u
ZW50czo6bWluaW11bURhdGVUaW1lKCkpOworfQorCitkb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0
VHlwZTo6bWF4aW11bSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVu
dCgpLT5mYXN0R2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURh
dGVUaW1lKCkpOworfQorCitkb3VibGUgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6ZGVmYXVsdFN0
ZXAoKSBjb25zdAoreworICAgIHJldHVybiBkYXRlVGltZUxvY2FsRGVmYXVsdFN0ZXA7Cit9CisK
K2RvdWJsZSBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpzdGVwU2NhbGVGYWN0b3IoKSBjb25zdAor
eworICAgIHJldHVybiBkYXRlVGltZUxvY2FsU3RlcFNjYWxlRmFjdG9yOworfQorCitib29sIERh
dGVUaW1lTG9jYWxJbnB1dFR5cGU6OnNjYWxlZFN0ZXBWYWxldVNob3VsZEJlSW50ZWdlcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRGF0ZVRpbWVMb2NhbElucHV0VHlw
ZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqIG91dCkgY29uc3QKIHsKICAgICBBU1NF
UlQob3V0KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmggYi9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDNlYzg0MWRi
MDA2ZjM2MGY0NTNhNGU5ZGIyNGUyMDYwNzI0ZGY0YTMuLjQwZDJlMDQ4ZjIzMzU2YWU3YjNiMjcw
M2QxZGZiYWIzZjhmNTMwMmYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2Fs
SW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApA
QCAtNDIsNiArNDIsMTEgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBEYXRlVGltZUxvY2FsSW5w
dXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRU
eXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7Cisg
ICAgdmlydHVhbCBkb3VibGUgbWF4aW11bSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIGRl
ZmF1bHRTdGVwKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgc3RlcFNjYWxlRmFjdG9yKCkg
Y29uc3Q7CisgICAgdmlydHVhbCBib29sIHNjYWxlZFN0ZXBWYWxldVNob3VsZEJlSW50ZWdlcigp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChj
b25zdCBVQ2hhciosIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqKSBjb25zdDsKIH07
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCAwNTI0ZmM4MmMwY2Y5MmM1M2E5MzMz
ZTVkODA3YzRkZjA2NGUxMWU2Li4wZDQxODIxOTdiMGY4OTFkOTczNTZjNjQxNTY0M2ZjYTZmYjZh
NDcyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC04MiwzMSArODIsNiBAQCB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCiBjb25zdCBpbnQgbWF4U2F2ZWRSZXN1bHRzID0gMjU2
OwogCi0vLyBDb25zdGFudCB2YWx1ZXMgZm9yIGdldEFsbG93ZWRWYWx1ZVN0ZXAoKS4KLXN0YXRp
YyBjb25zdCBkb3VibGUgZGF0ZURlZmF1bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJs
ZSBkYXRlU3RlcFNjYWxlRmFjdG9yID0gODY0MDAwMDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUg
ZGF0ZVRpbWVEZWZhdWx0U3RlcCA9IDYwLjA7Ci1zdGF0aWMgY29uc3QgZG91YmxlIGRhdGVUaW1l
U3RlcFNjYWxlRmFjdG9yID0gMTAwMC4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBtb250aERlZmF1
bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSBtb250aFN0ZXBTY2FsZUZhY3RvciA9
IDEuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxLjA7Ci1zdGF0
aWMgY29uc3QgZG91YmxlIG51bWJlclN0ZXBTY2FsZUZhY3RvciA9IDEuMDsKLXN0YXRpYyBjb25z
dCBkb3VibGUgdGltZURlZmF1bHRTdGVwID0gNjAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgdGlt
ZVN0ZXBTY2FsZUZhY3RvciA9IDEwMDAuMDsKLXN0YXRpYyBjb25zdCBkb3VibGUgd2Vla0RlZmF1
bHRTdGVwID0gMS4wOwotc3RhdGljIGNvbnN0IGRvdWJsZSB3ZWVrU3RlcFNjYWxlRmFjdG9yID0g
NjA0ODAwMDAwLjA7Ci0KLS8vIENvbnN0YW50IHZhbHVlcyBmb3IgbWluaW11bSgpLgotc3RhdGlj
IGNvbnN0IGRvdWJsZSBudW1iZXJEZWZhdWx0TWluaW11bSA9IC1EQkxfTUFYOwotc3RhdGljIGNv
bnN0IGRvdWJsZSByYW5nZURlZmF1bHRNaW5pbXVtID0gMC4wOwotCi0vLyBDb25zdGFudCB2YWx1
ZXMgZm9yIG1heGltdW0oKS4KLXN0YXRpYyBjb25zdCBkb3VibGUgbnVtYmVyRGVmYXVsdE1heGlt
dW0gPSBEQkxfTUFYOwotc3RhdGljIGNvbnN0IGRvdWJsZSByYW5nZURlZmF1bHRNYXhpbXVtID0g
MTAwLjA7Ci0KLXN0YXRpYyBjb25zdCBkb3VibGUgZGVmYXVsdFN0ZXBCYXNlID0gMC4wOwotc3Rh
dGljIGNvbnN0IGRvdWJsZSB3ZWVrRGVmYXVsdFN0ZXBCYXNlID0gLTI1OTIwMDAwMC4wOyAvLyBU
aGUgZmlyc3QgZGF5IG9mIDE5NzAtVzAxLgotCiBzdGF0aWMgY29uc3QgZG91YmxlIG1zZWNQZXJN
aW51dGUgPSA2MCAqIDEwMDA7CiBzdGF0aWMgY29uc3QgZG91YmxlIG1zZWNQZXJTZWNvbmQgPSAx
MDAwOwogCkBAIC0zNzEsMTk5ICszNDYsMjIgQEAgYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojp0b29M
b25nKGNvbnN0IFN0cmluZyYgdmFsdWUsIE5lZWRzVG9DaGVja0RpcnR5RmxhZyBjaGVjaykKIAog
Ym9vbCBIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmIHZhbHVl
KSBjb25zdAogewotICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKLSAgICBzd2l0Y2ggKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSkgewotICAg
IGNhc2UgREFURToKLSAgICBjYXNlIERBVEVUSU1FOgotICAgIGNhc2UgREFURVRJTUVMT0NBTDoK
LSAgICBjYXNlIE1PTlRIOgotICAgIGNhc2UgTlVNQkVSOgotICAgIGNhc2UgVElNRToKLSAgICBj
YXNlIFdFRUs6IHsKLSAgICAgICAgZG91YmxlIGRvdWJsZVZhbHVlID0gbV9pbnB1dFR5cGUtPnBh
cnNlVG9Eb3VibGUodmFsdWUsIG5hbik7Ci0gICAgICAgIHJldHVybiBpc2Zpbml0ZShkb3VibGVW
YWx1ZSkgJiYgZG91YmxlVmFsdWUgPCBtaW5pbXVtKCk7Ci0gICAgfQotICAgIGNhc2UgUkFOR0U6
IC8vIEd1YXJhbnRlZWQgYnkgc2FuaXRpemF0aW9uLgotICAgICAgICBBU1NFUlQobV9pbnB1dFR5
cGUtPnBhcnNlVG9Eb3VibGUodmFsdWUsIG5hbikgPj0gbWluaW11bSgpKTsKLSAgICBjYXNlIEJV
VFRPTjoKLSAgICBjYXNlIENIRUNLQk9YOgotICAgIGNhc2UgQ09MT1I6Ci0gICAgY2FzZSBFTUFJ
TDoKLSAgICBjYXNlIEZJTEU6Ci0gICAgY2FzZSBISURERU46Ci0gICAgY2FzZSBJTUFHRToKLSAg
ICBjYXNlIElTSU5ERVg6Ci0gICAgY2FzZSBQQVNTV09SRDoKLSAgICBjYXNlIFJBRElPOgotICAg
IGNhc2UgUkVTRVQ6Ci0gICAgY2FzZSBTRUFSQ0g6Ci0gICAgY2FzZSBTVUJNSVQ6Ci0gICAgY2Fz
ZSBURUxFUEhPTkU6Ci0gICAgY2FzZSBURVhUOgotICAgIGNhc2UgVVJMOgotICAgICAgICBicmVh
azsKLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX2lucHV0VHlwZS0+cmFu
Z2VVbmRlcmZsb3codmFsdWUpOwogfQogCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnJhbmdlT3Zl
cmZsb3coY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKIHsKLSAgICBjb25zdCBkb3VibGUgbmFu
ID0gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Ci0gICAgc3dpdGNoIChkZXBy
ZWNhdGVkSW5wdXRUeXBlKCkpIHsKLSAgICBjYXNlIERBVEU6Ci0gICAgY2FzZSBEQVRFVElNRToK
LSAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgY2FzZSBNT05USDoKLSAgICBjYXNlIE5VTUJF
UjoKLSAgICBjYXNlIFRJTUU6Ci0gICAgY2FzZSBXRUVLOiB7Ci0gICAgICAgIGRvdWJsZSBkb3Vi
bGVWYWx1ZSA9IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pOwotICAgICAg
ICByZXR1cm4gaXNmaW5pdGUoZG91YmxlVmFsdWUpICYmIGRvdWJsZVZhbHVlID4gbWF4aW11bSgp
OwotICAgIH0KLSAgICBjYXNlIFJBTkdFOiAvLyBHdWFyYW50ZWVkIGJ5IHNhbml0aXphdGlvbi4K
LSAgICAgICAgQVNTRVJUKG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pIDw9
IG1heGltdW0oKSk7Ci0gICAgY2FzZSBCVVRUT046Ci0gICAgY2FzZSBDSEVDS0JPWDoKLSAgICBj
YXNlIENPTE9SOgotICAgIGNhc2UgRU1BSUw6Ci0gICAgY2FzZSBGSUxFOgotICAgIGNhc2UgSElE
REVOOgotICAgIGNhc2UgSU1BR0U6Ci0gICAgY2FzZSBJU0lOREVYOgotICAgIGNhc2UgUEFTU1dP
UkQ6Ci0gICAgY2FzZSBSQURJTzoKLSAgICBjYXNlIFJFU0VUOgotICAgIGNhc2UgU0VBUkNIOgot
ICAgIGNhc2UgU1VCTUlUOgotICAgIGNhc2UgVEVMRVBIT05FOgotICAgIGNhc2UgVEVYVDoKLSAg
ICBjYXNlIFVSTDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gbV9pbnB1dFR5cGUtPnJhbmdlT3ZlcmZsb3codmFsdWUpOwogfQogCiBkb3VibGUg
SFRNTElucHV0RWxlbWVudDo6bWluaW11bSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChkZXByZWNh
dGVkSW5wdXRUeXBlKCkpIHsKLSAgICBjYXNlIERBVEU6Ci0gICAgICAgIHJldHVybiBtX2lucHV0
VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRz
OjptaW5pbXVtRGF0ZSgpKTsKLSAgICBjYXNlIERBVEVUSU1FOgotICAgIGNhc2UgREFURVRJTUVM
T0NBTDoKLSAgICAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJp
YnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1EYXRlVGltZSgpKTsKLSAgICBj
YXNlIE1PTlRIOgotICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0
QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bU1vbnRoKCkpOwotICAg
IGNhc2UgTlVNQkVSOgotICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUo
Z2V0QXR0cmlidXRlKG1pbkF0dHIpLCBudW1iZXJEZWZhdWx0TWluaW11bSk7Ci0gICAgY2FzZSBS
QU5HRToKLSAgICAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJp
YnV0ZShtaW5BdHRyKSwgcmFuZ2VEZWZhdWx0TWluaW11bSk7Ci0gICAgY2FzZSBUSU1FOgotICAg
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0
dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bVRpbWUoKSk7Ci0gICAgY2FzZSBXRUVLOgotICAg
ICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0
dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bVdlZWsoKSk7Ci0gICAgY2FzZSBCVVRUT046Ci0g
ICAgY2FzZSBDSEVDS0JPWDoKLSAgICBjYXNlIENPTE9SOgotICAgIGNhc2UgRU1BSUw6Ci0gICAg
Y2FzZSBGSUxFOgotICAgIGNhc2UgSElEREVOOgotICAgIGNhc2UgSU1BR0U6Ci0gICAgY2FzZSBJ
U0lOREVYOgotICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgY2FzZSBSQURJTzoKLSAgICBjYXNlIFJF
U0VUOgotICAgIGNhc2UgU0VBUkNIOgotICAgIGNhc2UgU1VCTUlUOgotICAgIGNhc2UgVEVMRVBI
T05FOgotICAgIGNhc2UgVEVYVDoKLSAgICBjYXNlIFVSTDoKLSAgICAgICAgYnJlYWs7Ci0gICAg
fQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBt
X2lucHV0VHlwZS0+bWluaW11bSgpOwogfQogCiBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6bWF4
aW11bSgpIGNvbnN0CiB7Ci0gICAgc3dpdGNoIChkZXByZWNhdGVkSW5wdXRUeXBlKCkpIHsKLSAg
ICBjYXNlIERBVEU6Ci0gICAgICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShn
ZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0ZSgpKTsKLSAg
ICBjYXNlIERBVEVUSU1FOgotICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgcmV0dXJu
IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0ZUNv
bXBvbmVudHM6Om1heGltdW1EYXRlVGltZSgpKTsKLSAgICBjYXNlIE1PTlRIOgotICAgICAgICBy
ZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBE
YXRlQ29tcG9uZW50czo6bWF4aW11bU1vbnRoKCkpOwotICAgIGNhc2UgTlVNQkVSOgotICAgICAg
ICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIp
LCBudW1iZXJEZWZhdWx0TWF4aW11bSk7Ci0gICAgY2FzZSBSQU5HRTogewotICAgICAgICBkb3Vi
bGUgbWF4ID0gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIp
LCByYW5nZURlZmF1bHRNYXhpbXVtKTsKLSAgICAgICAgLy8gQSByZW1lZHkgZm9yIHRoZSBpbmNv
bnNpc3RlbnQgbWluL21heCB2YWx1ZXMgZm9yIFJBTkdFLgotICAgICAgICAvLyBTZXRzIHRoZSBt
YXhpbXVtIHRvIHRoZSBkZWZhdWx0IG9yIHRoZSBtaW5pbXVtIHZhbHVlLgotICAgICAgICBkb3Vi
bGUgbWluID0gbWluaW11bSgpOwotICAgICAgICBpZiAobWF4IDwgbWluKQotICAgICAgICAgICAg
bWF4ID0gc3RkOjptYXgobWluLCByYW5nZURlZmF1bHRNYXhpbXVtKTsKLSAgICAgICAgcmV0dXJu
IG1heDsKLSAgICB9Ci0gICAgY2FzZSBUSU1FOgotICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUt
PnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4
aW11bVRpbWUoKSk7Ci0gICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUt
PnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4
aW11bVdlZWsoKSk7Ci0gICAgY2FzZSBCVVRUT046Ci0gICAgY2FzZSBDSEVDS0JPWDoKLSAgICBj
YXNlIENPTE9SOgotICAgIGNhc2UgRU1BSUw6Ci0gICAgY2FzZSBGSUxFOgotICAgIGNhc2UgSElE
REVOOgotICAgIGNhc2UgSU1BR0U6Ci0gICAgY2FzZSBJU0lOREVYOgotICAgIGNhc2UgUEFTU1dP
UkQ6Ci0gICAgY2FzZSBSQURJTzoKLSAgICBjYXNlIFJFU0VUOgotICAgIGNhc2UgU0VBUkNIOgot
ICAgIGNhc2UgU1VCTUlUOgotICAgIGNhc2UgVEVMRVBIT05FOgotICAgIGNhc2UgVEVYVDoKLSAg
ICBjYXNlIFVSTDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiAwOwotfQotCi1kb3VibGUgSFRNTElucHV0RWxlbWVudDo6c3RlcEJh
c2UoKSBjb25zdAotewotICAgIHN3aXRjaCAoZGVwcmVjYXRlZElucHV0VHlwZSgpKSB7Ci0gICAg
Y2FzZSBSQU5HRToKLSAgICAgICAgcmV0dXJuIG1pbmltdW0oKTsKLSAgICBjYXNlIERBVEU6Ci0g
ICAgY2FzZSBEQVRFVElNRToKLSAgICBjYXNlIERBVEVUSU1FTE9DQUw6Ci0gICAgY2FzZSBNT05U
SDoKLSAgICBjYXNlIE5VTUJFUjoKLSAgICBjYXNlIFRJTUU6Ci0gICAgICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksIGRlZmF1bHRTdGVw
QmFzZSk7Ci0gICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNl
VG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCB3ZWVrRGVmYXVsdFN0ZXBCYXNlKTsKLSAg
ICBjYXNlIEJVVFRPTjoKLSAgICBjYXNlIENIRUNLQk9YOgotICAgIGNhc2UgQ09MT1I6Ci0gICAg
Y2FzZSBFTUFJTDoKLSAgICBjYXNlIEZJTEU6Ci0gICAgY2FzZSBISURERU46Ci0gICAgY2FzZSBJ
TUFHRToKLSAgICBjYXNlIElTSU5ERVg6Ci0gICAgY2FzZSBQQVNTV09SRDoKLSAgICBjYXNlIFJB
RElPOgotICAgIGNhc2UgUkVTRVQ6Ci0gICAgY2FzZSBTRUFSQ0g6Ci0gICAgY2FzZSBTVUJNSVQ6
Ci0gICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgY2FzZSBURVhUOgotICAgIGNhc2UgVVJMOgotICAg
ICAgICBicmVhazsKLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IDAuMDsKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPm1heGltdW0oKTsKIH0KIAogYm9vbCBIVE1M
SW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKQEAg
LTU3MSwxMjYgKzM2OSwxNSBAQCBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OnN0ZXBNaXNtYXRjaChj
b25zdCBTdHJpbmcmIHZhbHVlKSBjb25zdAogICAgIGRvdWJsZSBzdGVwOwogICAgIGlmICghZ2V0
QWxsb3dlZFZhbHVlU3RlcCgmc3RlcCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBzd2l0
Y2ggKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSkgewotICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgIC8v
IHN0ZXBNaXNtYXRjaCBkb2Vzbid0IG9jY3VyIGZvciBSQU5HRS4gUmVuZGVyU2xpZGVyIGd1YXJh
bnRlZXMgdGhlCi0gICAgICAgIC8vIHZhbHVlIG1hdGNoZXMgdG8gc3RlcCBvbiB1c2VyIGlucHV0
LCBhbmQgc2FuaXRhdGlvbiB0YWtlcyBjYXJlCi0gICAgICAgIC8vIG9mIHRoZSBnZW5lcmFsIGNh
c2UuCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBjYXNlIE5VTUJFUjogewotICAgICAgICBk
b3VibGUgZG91YmxlVmFsdWU7Ci0gICAgICAgIGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5
cGUodmFsdWUsICZkb3VibGVWYWx1ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGRvdWJsZVZhbHVlID0gZmFicyhkb3VibGVWYWx1ZSAtIHN0ZXBCYXNlKCkpOwotICAgICAg
ICBpZiAoaXNpbmYoZG91YmxlVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
ICAgICAvLyBkb3VibGUncyBmcmFjdGlvbmFsIHBhcnQgc2l6ZSBpcyBEQkxfTUFOX0RJRy1iaXQu
ICBJZiB0aGUgY3VycmVudAotICAgICAgICAvLyB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gc3RlcCoy
XkRCTF9NQU5UX0RJRywgdGhlIGZvbGxvd2luZyBmbW9kKCkgbWFrZXMKLSAgICAgICAgLy8gbm8g
c2Vuc2UuCi0gICAgICAgIGlmIChkb3VibGVWYWx1ZSAvIHBvdygyLjAsIERCTF9NQU5UX0RJRykg
PiBzdGVwKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBkb3VibGUgcmVtYWlu
ZGVyID0gZm1vZChkb3VibGVWYWx1ZSwgc3RlcCk7Ci0gICAgICAgIC8vIEFjY2VwdHMgZXJyb3Jz
IGluIGxvd2VyIDctYml0LgotICAgICAgICBkb3VibGUgYWNjZXB0YWJsZUVycm9yID0gc3RlcCAv
IHBvdygyLjAsIERCTF9NQU5UX0RJRyAtIDcpOwotICAgICAgICByZXR1cm4gYWNjZXB0YWJsZUVy
cm9yIDwgcmVtYWluZGVyICYmIHJlbWFpbmRlciA8IChzdGVwIC0gYWNjZXB0YWJsZUVycm9yKTsK
LSAgICB9Ci0gICAgY2FzZSBEQVRFOgotICAgIGNhc2UgREFURVRJTUU6Ci0gICAgY2FzZSBEQVRF
VElNRUxPQ0FMOgotICAgIGNhc2UgTU9OVEg6Ci0gICAgY2FzZSBUSU1FOgotICAgIGNhc2UgV0VF
SzogewotICAgICAgICBjb25zdCBkb3VibGUgbmFuID0gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7Ci0gICAgICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IG1faW5wdXRUeXBlLT5w
YXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pOwotICAgICAgICBkb3VibGVWYWx1ZSA9IGZhYnMoZG91
YmxlVmFsdWUgLSBzdGVwQmFzZSgpKTsKLSAgICAgICAgaWYgKCFpc2Zpbml0ZShkb3VibGVWYWx1
ZSkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIEFTU0VSVChyb3VuZChkb3Vi
bGVWYWx1ZSkgPT0gZG91YmxlVmFsdWUpOwotICAgICAgICBBU1NFUlQocm91bmQoc3RlcCkgPT0g
c3RlcCk7Ci0gICAgICAgIHJldHVybiBmbW9kKGRvdWJsZVZhbHVlLCBzdGVwKTsKLSAgICB9Ci0g
ICAgY2FzZSBCVVRUT046Ci0gICAgY2FzZSBDSEVDS0JPWDoKLSAgICBjYXNlIENPTE9SOgotICAg
IGNhc2UgRU1BSUw6Ci0gICAgY2FzZSBGSUxFOgotICAgIGNhc2UgSElEREVOOgotICAgIGNhc2Ug
SU1BR0U6Ci0gICAgY2FzZSBJU0lOREVYOgotICAgIGNhc2UgUEFTU1dPUkQ6Ci0gICAgY2FzZSBS
QURJTzoKLSAgICBjYXNlIFJFU0VUOgotICAgIGNhc2UgU0VBUkNIOgotICAgIGNhc2UgU1VCTUlU
OgotICAgIGNhc2UgVEVMRVBIT05FOgotICAgIGNhc2UgVEVYVDoKLSAgICBjYXNlIFVSTDoKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotICAgIC8vIE5vbi1zdXBwb3J0ZWQgdHlwZXMgc2hvdWxkIGJl
IHJlamVjdGVkIGJ5IGdldEFsbG93ZWRWYWx1ZVN0ZXAoKS4KLSAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSFRNTElucHV0RWxlbWVudDo6Z2V0
U3RlcFBhcmFtZXRlcnMoZG91YmxlKiBkZWZhdWx0U3RlcCwgZG91YmxlKiBzdGVwU2NhbGVGYWN0
b3IpIGNvbnN0Ci17Ci0gICAgQVNTRVJUKGRlZmF1bHRTdGVwKTsKLSAgICBBU1NFUlQoc3RlcFNj
YWxlRmFjdG9yKTsKLSAgICBzd2l0Y2ggKGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSkgewotICAgIGNh
c2UgTlVNQkVSOgotICAgIGNhc2UgUkFOR0U6Ci0gICAgICAgICpkZWZhdWx0U3RlcCA9IG51bWJl
ckRlZmF1bHRTdGVwOwotICAgICAgICAqc3RlcFNjYWxlRmFjdG9yID0gbnVtYmVyU3RlcFNjYWxl
RmFjdG9yOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIERBVEU6Ci0gICAgICAgICpk
ZWZhdWx0U3RlcCA9IGRhdGVEZWZhdWx0U3RlcDsKLSAgICAgICAgKnN0ZXBTY2FsZUZhY3RvciA9
IGRhdGVTdGVwU2NhbGVGYWN0b3I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgREFU
RVRJTUU6Ci0gICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgICAgICAqZGVmYXVsdFN0ZXAgPSBk
YXRlVGltZURlZmF1bHRTdGVwOwotICAgICAgICAqc3RlcFNjYWxlRmFjdG9yID0gZGF0ZVRpbWVT
dGVwU2NhbGVGYWN0b3I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgTU9OVEg6Ci0g
ICAgICAgICpkZWZhdWx0U3RlcCA9IG1vbnRoRGVmYXVsdFN0ZXA7Ci0gICAgICAgICpzdGVwU2Nh
bGVGYWN0b3IgPSBtb250aFN0ZXBTY2FsZUZhY3RvcjsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgY2FzZSBUSU1FOgotICAgICAgICAqZGVmYXVsdFN0ZXAgPSB0aW1lRGVmYXVsdFN0ZXA7Ci0g
ICAgICAgICpzdGVwU2NhbGVGYWN0b3IgPSB0aW1lU3RlcFNjYWxlRmFjdG9yOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBjYXNlIFdFRUs6Ci0gICAgICAgICpkZWZhdWx0U3RlcCA9IHdlZWtE
ZWZhdWx0U3RlcDsKLSAgICAgICAgKnN0ZXBTY2FsZUZhY3RvciA9IHdlZWtTdGVwU2NhbGVGYWN0
b3I7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGNhc2UgQlVUVE9OOgotICAgIGNhc2UgQ0hF
Q0tCT1g6Ci0gICAgY2FzZSBDT0xPUjoKLSAgICBjYXNlIEVNQUlMOgotICAgIGNhc2UgRklMRToK
LSAgICBjYXNlIEhJRERFTjoKLSAgICBjYXNlIElNQUdFOgotICAgIGNhc2UgSVNJTkRFWDoKLSAg
ICBjYXNlIFBBU1NXT1JEOgotICAgIGNhc2UgUkFESU86Ci0gICAgY2FzZSBSRVNFVDoKLSAgICBj
YXNlIFNFQVJDSDoKLSAgICBjYXNlIFNVQk1JVDoKLSAgICBjYXNlIFRFTEVQSE9ORToKLSAgICBj
YXNlIFRFWFQ6Ci0gICAgY2FzZSBVUkw6Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0g
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBt
X2lucHV0VHlwZS0+c3RlcE1pc21hdGNoKHZhbHVlLCBzdGVwKTsKIH0KIAogYm9vbCBIVE1MSW5w
dXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSogc3RlcCkgY29uc3QKIHsKICAg
ICBBU1NFUlQoc3RlcCk7Ci0gICAgZG91YmxlIGRlZmF1bHRTdGVwOwotICAgIGRvdWJsZSBzdGVw
U2NhbGVGYWN0b3I7Ci0gICAgaWYgKCFnZXRTdGVwUGFyYW1ldGVycygmZGVmYXVsdFN0ZXAsICZz
dGVwU2NhbGVGYWN0b3IpKQorICAgIGRvdWJsZSBkZWZhdWx0U3RlcCA9IG1faW5wdXRUeXBlLT5k
ZWZhdWx0U3RlcCgpOworICAgIGRvdWJsZSBzdGVwU2NhbGVGYWN0b3IgPSBtX2lucHV0VHlwZS0+
c3RlcFNjYWxlRmFjdG9yKCk7CisgICAgaWYgKCFpc2Zpbml0ZShkZWZhdWx0U3RlcCkgfHwgIWlz
ZmluaXRlKHN0ZXBTY2FsZUZhY3RvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBjb25z
dCBBdG9taWNTdHJpbmcmIHN0ZXBTdHJpbmcgPSBnZXRBdHRyaWJ1dGUoc3RlcEF0dHIpOwogICAg
IGlmIChzdGVwU3RyaW5nLmlzRW1wdHkoKSkgewpAQCAtNzA0LDEyICszOTEsMTIgQEAgYm9vbCBI
VE1MSW5wdXRFbGVtZW50OjpnZXRBbGxvd2VkVmFsdWVTdGVwKGRvdWJsZSogc3RlcCkgY29uc3QK
ICAgICAgICAgKnN0ZXAgPSBkZWZhdWx0U3RlcCAqIHN0ZXBTY2FsZUZhY3RvcjsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIC8vIEZvciBEQVRFLCBNT05USCwgV0VFSywgdGhlIHBh
cnNlZCB2YWx1ZSBzaG91bGQgYmUgYW4gaW50ZWdlci4KLSAgICBpZiAoZGVwcmVjYXRlZElucHV0
VHlwZSgpID09IERBVEUgfHwgZGVwcmVjYXRlZElucHV0VHlwZSgpID09IE1PTlRIIHx8IGRlcHJl
Y2F0ZWRJbnB1dFR5cGUoKSA9PSBXRUVLKQorICAgIC8vIEZvciBkYXRlLCBtb250aCwgd2Vlaywg
dGhlIHBhcnNlZCB2YWx1ZSBzaG91bGQgYmUgYW4gaW50ZWdlciBmb3Igc29tZSB0eXBlcy4KKyAg
ICBpZiAobV9pbnB1dFR5cGUtPnBhcnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcigpKQogICAg
ICAgICBwYXJzZWQgPSBtYXgocm91bmQocGFyc2VkKSwgMS4wKTsKICAgICBkb3VibGUgcmVzdWx0
ID0gcGFyc2VkICogc3RlcFNjYWxlRmFjdG9yOwotICAgIC8vIEZvciBEQVRFVElNRSwgREFURVRJ
TUVMT0NBTCwgVElNRSwgdGhlIHJlc3VsdCBzaG91bGQgYmUgYW4gaW50ZWdlci4KLSAgICBpZiAo
ZGVwcmVjYXRlZElucHV0VHlwZSgpID09IERBVEVUSU1FIHx8IGRlcHJlY2F0ZWRJbnB1dFR5cGUo
KSA9PSBEQVRFVElNRUxPQ0FMIHx8IGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSA9PSBUSU1FKQorICAg
IC8vIEZvciBkYXRldGltZSwgZGF0ZXRpbWUtbG9jYWwsIHRpbWUsIHRoZSByZXN1bHQgc2hvdWxk
IGJlIGFuIGludGVnZXIuCisgICAgaWYgKG1faW5wdXRUeXBlLT5zY2FsZWRTdGVwVmFsZXVTaG91
bGRCZUludGVnZXIoKSkKICAgICAgICAgcmVzdWx0ID0gbWF4KHJvdW5kKHJlc3VsdCksIDEuMCk7
CiAgICAgQVNTRVJUKHJlc3VsdCA+IDApOwogICAgICpzdGVwID0gcmVzdWx0OwpAQCAtNzM0LDEz
ICs0MjEsMTMgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjphcHBseVN0ZXAoZG91YmxlIGNvdW50
LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobmV3VmFsdWUgPCBtaW5pbXVtKCkpIHsKKyAg
ICBpZiAobmV3VmFsdWUgPCBtX2lucHV0VHlwZS0+bWluaW11bSgpKSB7CiAgICAgICAgIGVjID0g
SU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgZG91YmxlIGJh
c2UgPSBzdGVwQmFzZSgpOworICAgIGRvdWJsZSBiYXNlID0gbV9pbnB1dFR5cGUtPnN0ZXBCYXNl
KCk7CiAgICAgbmV3VmFsdWUgPSBiYXNlICsgcm91bmQoKG5ld1ZhbHVlIC0gYmFzZSkgLyBzdGVw
KSAqIHN0ZXA7Ci0gICAgaWYgKG5ld1ZhbHVlID4gbWF4aW11bSgpKSB7CisgICAgaWYgKG5ld1Zh
bHVlID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMjQ0Miw4ICsyMTI5LDggQEAgdm9p
ZCBIVE1MSW5wdXRFbGVtZW50OjpoYW5kbGVLZXlFdmVudEZvclJhbmdlKEtleWJvYXJkRXZlbnQq
IGV2ZW50KQogCiAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UoZ2V0QXR0cmlidXRlKHN0ZXBBdHRyKSwgImFueSIpKSB7Ci0gICAgICAgIGRvdWJsZSBtaW4g
PSBtaW5pbXVtKCk7Ci0gICAgICAgIGRvdWJsZSBtYXggPSBtYXhpbXVtKCk7CisgICAgICAgIGRv
dWJsZSBtaW4gPSBtX2lucHV0VHlwZS0+bWluaW11bSgpOworICAgICAgICBkb3VibGUgbWF4ID0g
bV9pbnB1dFR5cGUtPm1heGltdW0oKTsKICAgICAgICAgLy8gRklYTUU6IElzIDEvMTAwIHJlYXNv
bmFibGU/CiAgICAgICAgIGRvdWJsZSBzdGVwID0gKG1heCAtIG1pbikgLyAxMDA7CiAgICAgICAg
IGRvdWJsZSBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUodmFsdWUoKSwgbnVt
ZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkpOwpAQCAtMjgzNyw4ICsyNTI0LDggQEAg
dm9pZCBIVE1MSW5wdXRFbGVtZW50OjpzdGVwVXBGcm9tUmVuZGVyZXIoaW50IG4pCiAgICAgY29u
c3QgZG91YmxlIG5hbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogICAg
IFN0cmluZyBjdXJyZW50U3RyaW5nVmFsdWUgPSB2YWx1ZSgpOwogICAgIGRvdWJsZSBjdXJyZW50
ID0gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoY3VycmVudFN0cmluZ1ZhbHVlLCBuYW4pOwot
ICAgIGlmICghaXNmaW5pdGUoY3VycmVudCkgfHwgKG4gPiAwICYmIGN1cnJlbnQgPCBtaW5pbXVt
KCkpIHx8IChuIDwgMCAmJiBjdXJyZW50ID4gbWF4aW11bSgpKSkKLSAgICAgICAgc2V0VmFsdWUo
c2VyaWFsaXplKG4gPiAwID8gbWluaW11bSgpIDogbWF4aW11bSgpKSk7CisgICAgaWYgKCFpc2Zp
bml0ZShjdXJyZW50KSB8fCAobiA+IDAgJiYgY3VycmVudCA8IG1faW5wdXRUeXBlLT5taW5pbXVt
KCkpIHx8IChuIDwgMCAmJiBjdXJyZW50ID4gbV9pbnB1dFR5cGUtPm1heGltdW0oKSkpCisgICAg
ICAgIHNldFZhbHVlKHNlcmlhbGl6ZShuID4gMCA/IG1faW5wdXRUeXBlLT5taW5pbXVtKCkgOiBt
X2lucHV0VHlwZS0+bWF4aW11bSgpKSk7CiAgICAgZWxzZSB7CiAgICAgICAgIEV4Y2VwdGlvbkNv
ZGUgZWM7CiAgICAgICAgIHN0ZXBVcChuLCBlYyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAppbmRl
eCBmYjJlMGFkMjEyMzFjMWIyMTZjMTYwYzFlZjQ4ZjFlOGE1MDkzYzc5Li4yMWY0ZjBhZTcyYTIy
NzFjNGU3ZTIxNDAyNjIzYzdiNjNmMzQ2NWE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAg
LTMyNiwxMiArMzI2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZUJlZm9yZVRleHRJbnNl
cnRlZEV2ZW50KEV2ZW50Kik7CiAgICAgdm9pZCBoYW5kbGVLZXlFdmVudEZvclJhbmdlKEtleWJv
YXJkRXZlbnQqKTsKICAgICBQYXNzUmVmUHRyPEhUTUxGb3JtRWxlbWVudD4gY3JlYXRlVGVtcG9y
YXJ5Rm9ybUZvcklzSW5kZXgoKTsKLSAgICAvLyBIZWxwZXIgZm9yIGdldEFsbG93ZWRWYWx1ZVN0
ZXAoKTsKLSAgICBib29sIGdldFN0ZXBQYXJhbWV0ZXJzKGRvdWJsZSogZGVmYXVsdFN0ZXAsIGRv
dWJsZSogc3RlcFNjYWxlRmFjdG9yKSBjb25zdDsKICAgICAvLyBIZWxwZXIgZm9yIHN0ZXBVcCgp
L3N0ZXBEb3duKCkuICBBZGRzIHN0ZXAgdmFsdWUgKiBjb3VudCB0byB0aGUgY3VycmVudCB2YWx1
ZS4KICAgICB2b2lkIGFwcGx5U3RlcChkb3VibGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmKTsKLSAg
ICAvLyBIZWxwZXIgZm9yIGFwcGx5U3RlcEZvck51bWJlck9yUmFuZ2UoKS4KLSAgICBkb3VibGUg
c3RlcEJhc2UoKSBjb25zdDsKIAogICAgIC8vIENyZWF0ZSBhIHN0cmluZyByZXByZXNlbnRhdGlv
biBvZiB0aGUgc3BlY2lmaWVkIGRvdWJsZSB2YWx1ZSBmb3IgdGhlCiAgICAgLy8gY3VycmVudCBp
bnB1dCB0eXBlLiBJZiBOYU4gb3IgSW5maW5pdHkgaXMgc3BlY2lmaWVkLCB0aGlzIHJldHVybnMg
YW4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1s
L0lucHV0VHlwZS5jcHAKaW5kZXggN2I4M2NhNDQzYTdkYTgwNTRlMGE2NDFiMWVhZjhjOTA2MDcx
MDQ3MS4uY2E1ODczNjNmM2ZiNWY5ZWNjYzU1Y2NhZWI5NTBhYzNjNTFjNmRkNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAKQEAgLTUzLDExICs1MywxNSBAQAogI2luY2x1ZGUgIlRpbWVJbnB1dFR5cGUuaCIKICNp
bmNsdWRlICJVUkxJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJXZWVrSW5wdXRUeXBlLmgiCisjaW5j
bHVkZSA8bGltaXRzPgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKwogdHlwZWRlZiBIYXNoTWFwPFN0
cmluZywgUGFzc093blB0cjxJbnB1dFR5cGU+ICgqKShIVE1MSW5wdXRFbGVtZW50KiksIENhc2VG
b2xkaW5nSGFzaD4gSW5wdXRUeXBlRmFjdG9yeU1hcDsKIHN0YXRpYyBQYXNzT3duUHRyPElucHV0
VHlwZUZhY3RvcnlNYXA+IGNyZWF0ZUlucHV0VHlwZUZhY3RvcnlNYXAoKQogewpAQCAtMTIyLDYg
KzEyNiw2MSBAQCBib29sIElucHV0VHlwZTo6cGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYp
IGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIElucHV0VHlwZTo6cmFuZ2VVbmRl
cmZsb3coY29uc3QgU3RyaW5nJikgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgSW5wdXRUeXBlOjpyYW5nZU92ZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitkb3VibGUgSW5wdXRUeXBlOjptaW5pbXVtKCkgY29uc3QKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gMDsKK30KKworZG91YmxlIElu
cHV0VHlwZTo6bWF4aW11bSgpIGNvbnN0Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgSW5wdXRUeXBlOjpzdGVwTWlzbWF0Y2goY29uc3QgU3Ry
aW5nJiwgZG91YmxlKSBjb25zdAoreworICAgIC8vIE5vbi1zdXBwb3J0ZWQgdHlwZXMgc2hvdWxk
IGJlIHJlamVjdGVkIGJ5IEhUTUxJbnB1dEVsZW1lbnQ6OmdldEFsbG93ZWRWYWx1ZVN0ZXAoKS4K
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2RvdWJs
ZSBJbnB1dFR5cGU6OnN0ZXBCYXNlKCkgY29uc3QKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gMDsKK30KKworZG91YmxlIElucHV0VHlwZTo6ZGVmYXVsdFN0ZXAoKSBj
b25zdAoreworICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
K30KKworZG91YmxlIElucHV0VHlwZTo6c3RlcFNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Cit9CisKK2Jvb2wgSW5w
dXRUeXBlOjpwYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBJbnB1dFR5cGU6OnNjYWxlZFN0ZXBWYWxldVNob3VsZEJl
SW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBkb3VibGUgSW5wdXRU
eXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCA5Y2U3NjQ4MTJk
NWQzZDg0OTdkNDQxMDEzZWVhNDUxZmMyNjM0MTgzLi5jNDBlZDg1NGY5OWU0OWVlZTc5YWNmYTQ4
ZjZiZjAwMTY0YTMxMWI3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysr
IGIvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC00MSw2ICs0MSw4IEBAIGNsYXNzIEhUTUxJ
bnB1dEVsZW1lbnQ7CiAKIGNsYXNzIElucHV0VHlwZSA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CiBw
dWJsaWM6CisgICAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0U3RlcEJhc2UgPSAwLjA7CisK
ICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50
KiwgY29uc3QgQXRvbWljU3RyaW5nJik7CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBl
PiBjcmVhdGVUZXh0KEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFsIH5JbnB1dFR5cGUo
KTsKQEAgLTQ5LDcgKzUxLDE5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0VHlw
ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5
cGUoKSBjb25zdCA9IDA7CiAKKyAgICAvLyBWYWxpZGF0aW9uLXJlbGF0ZWQgZnVuY3Rpb25zCisK
ICAgICB2aXJ0dWFsIGJvb2wgcGF0dGVybk1pc21hdGNoKGNvbnN0IFN0cmluZyYpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgcmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgbWF4aW11
bSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiwg
ZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwQmFzZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgZG91YmxlIGRlZmF1bHRTdGVwKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUg
c3RlcFNjYWxlRmFjdG9yKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhcnNlZFN0ZXBWYWx1
ZVNob3VsZEJlSW50ZWdlcigpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzY2FsZWRTdGVwVmFs
ZXVTaG91bGRCZUludGVnZXIoKSBjb25zdDsKIAogICAgIC8vIFBhcnNlcyB0aGUgc3BlY2lmaWVk
IHN0cmluZyBmb3IgdGhlIHR5cGUsIGFuZCByZXR1cm4KICAgICAvLyB0aGUgZG91YmxlIHZhbHVl
IGZvciB0aGUgcGFyc2luZyByZXN1bHQgaWYgdGhlIHBhcnNpbmcKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvaHRtbC9Nb250aElucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUu
Y3BwCmluZGV4IDgwZTI4NTZmN2I2ZjMxYmUxN2M2ODI1OTRlNDkyM2E5OTE0ZTZiOTYuLmU0OTcw
ZTA5MWI2MTFkZTY2M2Y1NTlhYWQ3ZDY3MWYzY2M2YjkwZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9Nb250aElucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBl
LmNwcApAQCAtMzIsMTEgKzMyLDE4IEBACiAjaW5jbHVkZSAiTW9udGhJbnB1dFR5cGUuaCIKIAog
I2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAj
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitzdGF0aWMgY29uc3QgZG91YmxlIG1vbnRoRGVmYXVs
dFN0ZXAgPSAxLjA7CitzdGF0aWMgY29uc3QgZG91YmxlIG1vbnRoU3RlcFNjYWxlRmFjdG9yID0g
MS4wOworCiBQYXNzT3duUHRyPElucHV0VHlwZT4gTW9udGhJbnB1dFR5cGU6OmNyZWF0ZShIVE1M
SW5wdXRFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTW9udGhJ
bnB1dFR5cGUoZWxlbWVudCkpOwpAQCAtNDcsNiArNTQsMzEgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBNb250aElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4gSW5w
dXRUeXBlTmFtZXM6Om1vbnRoKCk7CiB9CiAKK2RvdWJsZSBNb250aElucHV0VHlwZTo6bWluaW11
bSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0
QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bU1vbnRoKCkpOworfQor
Citkb3VibGUgTW9udGhJbnB1dFR5cGU6Om1heGltdW0oKSBjb25zdAoreworICAgIHJldHVybiBw
YXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0ZUNv
bXBvbmVudHM6Om1heGltdW1Nb250aCgpKTsKK30KKworZG91YmxlIE1vbnRoSW5wdXRUeXBlOjpk
ZWZhdWx0U3RlcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1vbnRoRGVmYXVsdFN0ZXA7Cit9CisK
K2RvdWJsZSBNb250aElucHV0VHlwZTo6c3RlcFNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbW9udGhTdGVwU2NhbGVGYWN0b3I7Cit9CisKK2Jvb2wgTW9udGhJbnB1dFR5cGU6OnBh
cnNlZFN0ZXBWYWx1ZVNob3VsZEJlSW50ZWdlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKIGRvdWJsZSBNb250aElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcm
IHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKIHsKICAgICBEYXRlQ29tcG9uZW50cyBk
YXRlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9XZWJDb3Jl
L2h0bWwvTW9udGhJbnB1dFR5cGUuaAppbmRleCBhN2VhNTUwYTY4ZmU2N2M3M2JkNjAzZTE1ZWMx
NzkwM2I5MWRiM2M1Li5kM2UyYmExMzAxYjFiMTFiZTcxOGZmYTgxNDEwM2NiYzM5NzFhNDJhIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0
bWwvTW9udGhJbnB1dFR5cGUuaApAQCAtNDMsNiArNDMsMTEgQEAgcHJpdmF0ZToKICAgICBNb250
aElucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZShj
b25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW0o
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7CisgICAgdmlydHVh
bCBkb3VibGUgZGVmYXVsdFN0ZXAoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwU2Nh
bGVGYWN0b3IoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgcGFyc2VkU3RlcFZhbHVlU2hvdWxk
QmVJbnRlZ2VyKCkgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50
c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyop
IGNvbnN0OwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5j
cHAgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCA5OTFiMWZhZWYxY2Fk
YzdmMmNmMWVkYjZjYTgxZDM4OGIwYWY4MThlLi5lMWNkODY5YjUyMWJlNTJhOTI2ODBlZTUyZDBi
MDA2ZGNkMmUxMGYyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNw
cAorKysgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcApAQCAtMzEsMTIgKzMxLDI3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiTnVtYmVySW5wdXRUeXBlLmgiCiAK
KyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKK3VzaW5nIG5hbWVz
cGFjZSBzdGQ7CisKKy8vIEZJWE1FOiBOdW1iZXIgdmFsdWVzIHNob3VsZCBiZSBpbiB0aGUgcmFu
Z2Ugb2YgSUVFRSA3NTQgc2luZ2xlLXByZWNpc2lvbgorLy8gZmxvYXRpbmcgcG9pbnQgbnVtYmVy
LgorLy8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay9t
dWx0aXBhZ2UvY29tbW9uLW1pY3Jvc3ludGF4ZXMuaHRtbCNyZWFsLW51bWJlcnMKK3N0YXRpYyBj
b25zdCBkb3VibGUgbnVtYmVyRGVmYXVsdE1pbmltdW0gPSAtREJMX01BWDsKK3N0YXRpYyBjb25z
dCBkb3VibGUgbnVtYmVyRGVmYXVsdE1heGltdW0gPSBEQkxfTUFYOworCitzdGF0aWMgY29uc3Qg
ZG91YmxlIG51bWJlckRlZmF1bHRTdGVwID0gMS4wOworc3RhdGljIGNvbnN0IGRvdWJsZSBudW1i
ZXJTdGVwU2NhbGVGYWN0b3IgPSAxLjA7CisKIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBOdW1iZXJJ
bnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJldHVy
biBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTQ3LDYgKzYyLDYz
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTnVtYmVySW5wdXRUeXBlOjpmb3JtQ29udHJvbFR5cGUo
KSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCk7CiB9CiAKK2Jvb2wg
TnVtYmVySW5wdXRUeXBlOjpyYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25z
dAoreworICAgIGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKKyAgICBkb3VibGUgZG91YmxlVmFsdWUgPSBwYXJzZVRvRG91YmxlKHZhbHVlLCBu
YW4pOworICAgIHJldHVybiBpc2Zpbml0ZShkb3VibGVWYWx1ZSkgJiYgZG91YmxlVmFsdWUgPCBt
aW5pbXVtKCk7Cit9CisKK2Jvb2wgTnVtYmVySW5wdXRUeXBlOjpyYW5nZU92ZXJmbG93KGNvbnN0
IFN0cmluZyYgdmFsdWUpIGNvbnN0Cit7CisgICAgY29uc3QgZG91YmxlIG5hbiA9IG51bWVyaWNf
bGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgIGRvdWJsZSBkb3VibGVWYWx1ZSA9IHBh
cnNlVG9Eb3VibGUodmFsdWUsIG5hbik7CisgICAgcmV0dXJuIGlzZmluaXRlKGRvdWJsZVZhbHVl
KSAmJiBkb3VibGVWYWx1ZSA+IG1heGltdW0oKTsKK30KKworZG91YmxlIE51bWJlcklucHV0VHlw
ZTo6bWluaW11bSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgp
LT5mYXN0R2V0QXR0cmlidXRlKG1pbkF0dHIpLCBudW1iZXJEZWZhdWx0TWluaW11bSk7Cit9CisK
K2RvdWJsZSBOdW1iZXJJbnB1dFR5cGU6Om1heGltdW0oKSBjb25zdAoreworICAgIHJldHVybiBw
YXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwgbnVtYmVy
RGVmYXVsdE1heGltdW0pOworfQorCitib29sIE51bWJlcklucHV0VHlwZTo6c3RlcE1pc21hdGNo
KGNvbnN0IFN0cmluZyYgdmFsdWUsIGRvdWJsZSBzdGVwKSBjb25zdAoreworICAgIGRvdWJsZSBk
b3VibGVWYWx1ZTsKKyAgICBpZiAoIXBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHZhbHVlLCAm
ZG91YmxlVmFsdWUpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZG91YmxlVmFsdWUgPSBm
YWJzKGRvdWJsZVZhbHVlIC0gc3RlcEJhc2UoKSk7CisgICAgaWYgKGlzaW5mKGRvdWJsZVZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIGRvdWJsZSdzIGZyYWN0aW9uYWwgcGFy
dCBzaXplIGlzIERCTF9NQU5fRElHLWJpdC4gSWYgdGhlIGN1cnJlbnQgdmFsdWUKKyAgICAvLyBp
cyBncmVhdGVyIHRoYW4gc3RlcCoyXkRCTF9NQU5UX0RJRywgdGhlIGZvbGxvd2luZyBmbW9kKCkg
bWFrZXMgbm8gc2Vuc2UuCisgICAgaWYgKGRvdWJsZVZhbHVlIC8gcG93KDIuMCwgREJMX01BTlRf
RElHKSA+IHN0ZXApCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBkb3VibGUgcmVtYWluZGVy
ID0gZm1vZChkb3VibGVWYWx1ZSwgc3RlcCk7CisgICAgLy8gQWNjZXB0cyBlcnJvcnMgaW4gbG93
ZXIgNy1iaXQuCisgICAgZG91YmxlIGFjY2VwdGFibGVFcnJvciA9IHN0ZXAgLyBwb3coMi4wLCBE
QkxfTUFOVF9ESUcgLSA3KTsKKyAgICByZXR1cm4gYWNjZXB0YWJsZUVycm9yIDwgcmVtYWluZGVy
ICYmIHJlbWFpbmRlciA8IChzdGVwIC0gYWNjZXB0YWJsZUVycm9yKTsKK30KKworZG91YmxlIE51
bWJlcklucHV0VHlwZTo6c3RlcEJhc2UoKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRvRG91
YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgZGVmYXVsdFN0ZXBCYXNl
KTsKK30KKworZG91YmxlIE51bWJlcklucHV0VHlwZTo6ZGVmYXVsdFN0ZXAoKSBjb25zdAorewor
ICAgIHJldHVybiBudW1iZXJEZWZhdWx0U3RlcDsKK30KKworZG91YmxlIE51bWJlcklucHV0VHlw
ZTo6c3RlcFNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbnVtYmVyU3RlcFNjYWxl
RmFjdG9yOworfQorCiBkb3VibGUgTnVtYmVySW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0
IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdAogewogICAgIGRvdWJsZSBu
dW1iZXJWYWx1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBi
L1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA5YTJlOWNkMzRmZTRjNTBhYmIz
YjU2MThjY2JhNDhjOGRlM2RlNTMzLi4wZTgyOTM3YTE0MmRmYmQ5YzJjNTZhMjRhMDhkMzg5ODRm
ZGVhMDIwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIv
V2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC00Miw2ICs0MiwxNCBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIE51bWJlcklucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50
KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0
b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHJh
bmdlVW5kZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCByYW5n
ZU92ZXJmbG93KGNvbnN0IFN0cmluZyYpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIG1pbmlt
dW0oKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7CisgICAgdmly
dHVhbCBib29sIHN0ZXBNaXNtYXRjaChjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0OworICAg
IHZpcnR1YWwgZG91YmxlIHN0ZXBCYXNlKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgZGVm
YXVsdFN0ZXAoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwU2NhbGVGYWN0b3IoKSBj
b25zdDsKICAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRv
dWJsZSkgY29uc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5
cGUuY3BwIGIvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcAppbmRleCAzNDBkNjY5ZWNm
YjIyNTZkMGNjMmIzMjY1MjhlODVhYzJiMThhMjM0Li5hNzNjYTMwY2I1Y2Y0ODk4OTZhYTdmZGMw
NGNmYzIwNzhmN2E3Yzc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUu
Y3BwCisrKyBiL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKQEAgLTMxLDEyICszMSwy
MyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJhbmdlSW5wdXRUeXBlLmgiCiAK
KyNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRl
IDx3dGYvTWF0aEV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKK3VzaW5nIG5hbWVz
cGFjZSBzdGQ7CisKK3N0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0TWluaW11bSA9IDAu
MDsKK3N0YXRpYyBjb25zdCBkb3VibGUgcmFuZ2VEZWZhdWx0TWF4aW11bSA9IDEwMC4wOworc3Rh
dGljIGNvbnN0IGRvdWJsZSByYW5nZURlZmF1bHRTdGVwID0gMS4wOworc3RhdGljIGNvbnN0IGRv
dWJsZSByYW5nZVN0ZXBTY2FsZUZhY3RvciA9IDEuMDsKKwogUGFzc093blB0cjxJbnB1dFR5cGU+
IFJhbmdlSW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKICAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFJhbmdlSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTQ3LDYg
KzU4LDU5IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgUmFuZ2VJbnB1dFR5cGU6OmZvcm1Db250cm9s
VHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpyYW5nZSgpOwogfQogCiti
b29sIFJhbmdlSW5wdXRUeXBlOjpyYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmIHZhbHVlKSBj
b25zdAoreworICAgIC8vIEd1YXJhbnRlZWQgYnkgc2FuaXRpemF0aW9uLgorICAgIEFTU0VSVF9V
TlVTRUQodmFsdWUsIHBhcnNlVG9Eb3VibGUodmFsdWUsIG51bWVyaWNfbGltaXRzPGRvdWJsZT46
OnF1aWV0X05hTigpKSA+PSBtaW5pbXVtKCkpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9v
bCBSYW5nZUlucHV0VHlwZTo6cmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmIHZhbHVlKSBjb25z
dAoreworICAgIC8vIEd1YXJhbnRlZWQgYnkgc2FuaXRpemF0aW9uLgorICAgIEFTU0VSVF9VTlVT
RUQodmFsdWUsIHBhcnNlVG9Eb3VibGUodmFsdWUsIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpKSA8PSBtYXhpbXVtKCkpOworICAgIHJldHVybiBmYWxzZTsKK30KKworZG91Ymxl
IFJhbmdlSW5wdXRUeXBlOjptaW5pbXVtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcGFyc2VUb0Rv
dWJsZShlbGVtZW50KCktPmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIHJhbmdlRGVmYXVsdE1p
bmltdW0pOworfQorCitkb3VibGUgUmFuZ2VJbnB1dFR5cGU6Om1heGltdW0oKSBjb25zdAorewor
ICAgIGRvdWJsZSBtYXggPSBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0
ZShtYXhBdHRyKSwgcmFuZ2VEZWZhdWx0TWF4aW11bSk7CisgICAgLy8gQSByZW1lZHkgZm9yIHRo
ZSBpbmNvbnNpc3RlbnQgbWluL21heCB2YWx1ZXMuCisgICAgLy8gU2V0cyB0aGUgbWF4aW11bSB0
byB0aGUgZGVmYXVsdCBvciB0aGUgbWluaW11bSB2YWx1ZS4KKyAgICBkb3VibGUgbWluID0gbWlu
aW11bSgpOworICAgIGlmIChtYXggPCBtaW4pCisgICAgICAgIG1heCA9IHN0ZDo6bWF4KG1pbiwg
cmFuZ2VEZWZhdWx0TWF4aW11bSk7CisgICAgcmV0dXJuIG1heDsKK30KKworYm9vbCBSYW5nZUlu
cHV0VHlwZTo6c3RlcE1pc21hdGNoKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3QKK3sKKyAg
ICAvLyBzdGVwTWlzbWF0Y2ggZG9lc24ndCBvY2N1ciBmb3IgdHlwZT1yYW5nZS4gUmVuZGVyU2xp
ZGVyIGd1YXJhbnRlZXMgdGhlCisgICAgLy8gdmFsdWUgbWF0Y2hlcyB0byBzdGVwIG9uIHVzZXIg
aW5wdXQsIGFuZCBzYW5pdGl6YXRpb24gdGFrZXMgY2FyZQorICAgIC8vIG9mIHRoZSBnZW5lcmFs
IGNhc2UuCisgICAgcmV0dXJuIGZhbHNlOworfQorCitkb3VibGUgUmFuZ2VJbnB1dFR5cGU6OnN0
ZXBCYXNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbWluaW11bSgpOworfQorCitkb3VibGUgUmFu
Z2VJbnB1dFR5cGU6OmRlZmF1bHRTdGVwKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcmFuZ2VEZWZh
dWx0U3RlcDsKK30KKworZG91YmxlIFJhbmdlSW5wdXRUeXBlOjpzdGVwU2NhbGVGYWN0b3IoKSBj
b25zdAoreworICAgIHJldHVybiByYW5nZVN0ZXBTY2FsZUZhY3RvcjsKK30KKwogZG91YmxlIFJh
bmdlSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVm
YXVsdFZhbHVlKSBjb25zdAogewogICAgIGRvdWJsZSBudW1iZXJWYWx1ZTsKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oIGIvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRU
eXBlLmgKaW5kZXggZTY4MWU1YTIwY2QzZDU5NjMxNjU1NWY4M2IwMTM2NTJiZjYzODA1OC4uMTdk
NjMzNDJhNWRhY2IzNDE3ZDI4ZDgzNWVjZGYzZWJiZjBiM2RmYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9odG1sL1JhbmdlSW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBl
LmgKQEAgLTQyLDYgKzQyLDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmFuZ2VJbnB1dFR5
cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAg
ICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgYm9vbCByYW5nZVVuZGVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgcmFuZ2VPdmVyZmxvdyhjb25zdCBTdHJpbmcmKSBjb25zdDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBtaW5pbXVtKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgbWF4aW11
bSgpIGNvbnN0OworICAgIHZpcnR1YWwgYm9vbCBzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiwg
ZG91YmxlKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwQmFzZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgZG91YmxlIGRlZmF1bHRTdGVwKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUg
c3RlcFNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJs
ZShjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0OwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3Bw
CmluZGV4IDUzNWFiMDQ5NTQ5ODRkMzZjZjhhMmE5NDU2ZjBiNTIyMzg4YzUxM2UuLjc0YjEzY2M1
MjVmMGQ0YzdiYWQ4NDUwNTBmMjhjYzBiOGEyZDc1YjUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRt
bC9UaW1lSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAK
QEAgLTMyLDEwICszMiwxNyBAQAogI2luY2x1ZGUgIlRpbWVJbnB1dFR5cGUuaCIKIAogI2luY2x1
ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgorI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworc3RhdGljIGNv
bnN0IGRvdWJsZSB0aW1lRGVmYXVsdFN0ZXAgPSA2MC4wOworc3RhdGljIGNvbnN0IGRvdWJsZSB0
aW1lU3RlcFNjYWxlRmFjdG9yID0gMTAwMC4wOworCiBQYXNzT3duUHRyPElucHV0VHlwZT4gVGlt
ZUlucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBUaW1lSW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTQ2LDYgKzUzLDMx
IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgVGltZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OnRpbWUoKTsKIH0KIAorZG91YmxlIFRp
bWVJbnB1dFR5cGU6Om1pbmltdW0oKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRvRG91Ymxl
KGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1p
bmltdW1UaW1lKCkpOworfQorCitkb3VibGUgVGltZUlucHV0VHlwZTo6bWF4aW11bSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZWxlbWVudCgpLT5mYXN0R2V0QXR0cmlidXRl
KG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bVRpbWUoKSk7Cit9CisKK2RvdWJsZSBU
aW1lSW5wdXRUeXBlOjpkZWZhdWx0U3RlcCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHRpbWVEZWZh
dWx0U3RlcDsKK30KKworZG91YmxlIFRpbWVJbnB1dFR5cGU6OnN0ZXBTY2FsZUZhY3RvcigpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRpbWVTdGVwU2NhbGVGYWN0b3I7Cit9CisKK2Jvb2wgVGltZUlu
cHV0VHlwZTo6c2NhbGVkU3RlcFZhbGV1U2hvdWxkQmVJbnRlZ2VyKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBUaW1lSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVu
dHNJbnRlcm5hbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRl
Q29tcG9uZW50cyogb3V0KSBjb25zdAogewogICAgIEFTU0VSVChvdXQpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmgKaW5kZXggNWYxMjU2ZDQ3ZDcwOTBlM2I2ZDliODI0Yjc5NGY5MGU4OTA4MWUzOS4uOWU3NTFh
YmY1ZGU1YzdlY2ZmN2E1MGUyM2NkZTFmMjJhNWNiZmU1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9o
dG1sL1RpbWVJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCkBA
IC00Miw2ICs0MiwxMSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFRpbWVJbnB1dFR5cGUoSFRN
TElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUoZWxlbWVu
dCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgp
IGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW0oKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgZGVmYXVsdFN0ZXAo
KSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc2NhbGVkU3RlcFZhbGV1U2hvdWxkQmVJbnRlZ2VyKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFy
KiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0OwogfTsKIApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL1dlZWtJ
bnB1dFR5cGUuY3BwCmluZGV4IDFiZGFiZTAyNjZhYThmOWIyOTZlY2ZlZDEwNjQ4OWEzNTg5YmE4
ZjEuLjk0N2U2MzE5ODA0M2M5ZjhiNTk2OGIwOTg0YWYzMzAyZTk0OTcxMGMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvV2Vla0lu
cHV0VHlwZS5jcHAKQEAgLTMyLDEwICszMiwxOCBAQAogI2luY2x1ZGUgIldlZWtJbnB1dFR5cGUu
aCIKIAogI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
Kworc3RhdGljIGNvbnN0IGRvdWJsZSB3ZWVrRGVmYXVsdFN0ZXBCYXNlID0gLTI1OTIwMDAwMC4w
OyAvLyBUaGUgZmlyc3QgZGF5IG9mIDE5NzAtVzAxLgorc3RhdGljIGNvbnN0IGRvdWJsZSB3ZWVr
RGVmYXVsdFN0ZXAgPSAxLjA7CitzdGF0aWMgY29uc3QgZG91YmxlIHdlZWtTdGVwU2NhbGVGYWN0
b3IgPSA2MDQ4MDAwMDAuMDsKKwogUGFzc093blB0cjxJbnB1dFR5cGU+IFdlZWtJbnB1dFR5cGU6
OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewogICAgIHJldHVybiBhZG9wdFB0
cihuZXcgV2Vla0lucHV0VHlwZShlbGVtZW50KSk7CkBAIC00Niw2ICs1NCwzNiBAQCBjb25zdCBB
dG9taWNTdHJpbmcmIFdlZWtJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAgICAg
cmV0dXJuIElucHV0VHlwZU5hbWVzOjp3ZWVrKCk7CiB9CiAKK2RvdWJsZSBXZWVrSW5wdXRUeXBl
OjptaW5pbXVtKCkgY29uc3QKK3sKKyAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShlbGVtZW50KCkt
PmZhc3RHZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtV2Vlaygp
KTsKK30KKworZG91YmxlIFdlZWtJbnB1dFR5cGU6Om1heGltdW0oKSBjb25zdAoreworICAgIHJl
dHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQoKS0+ZmFzdEdldEF0dHJpYnV0ZShtYXhBdHRyKSwg
RGF0ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrKCkpOworfQorCitkb3VibGUgV2Vla0lucHV0VHlw
ZTo6c3RlcEJhc2UoKSBjb25zdAoreworICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGVsZW1lbnQo
KS0+ZmFzdEdldEF0dHJpYnV0ZShtaW5BdHRyKSwgd2Vla0RlZmF1bHRTdGVwQmFzZSk7Cit9CisK
K2RvdWJsZSBXZWVrSW5wdXRUeXBlOjpkZWZhdWx0U3RlcCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IHdlZWtEZWZhdWx0U3RlcDsKK30KKworZG91YmxlIFdlZWtJbnB1dFR5cGU6OnN0ZXBTY2FsZUZh
Y3RvcigpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdlZWtTdGVwU2NhbGVGYWN0b3I7Cit9CisKK2Jv
b2wgV2Vla0lucHV0VHlwZTo6cGFyc2VkU3RlcFZhbHVlU2hvdWxkQmVJbnRlZ2VyKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBXZWVrSW5wdXRUeXBlOjpwYXJzZVRvRGF0
ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVu
Z3RoLCBEYXRlQ29tcG9uZW50cyogb3V0KSBjb25zdAogewogICAgIEFTU0VSVChvdXQpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9XZWVr
SW5wdXRUeXBlLmgKaW5kZXggYTE5MGNhOGJmZmRkZjM1ZDEwM2ZiYjA4NjAyNzU4NWEzM2RjN2Zk
YS4uNGFlZDZkZDNkMzQxNjRhNDQ1MzEzYmNmNWM1YjJiNmEyYWZiNWM2NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvV2Vla0lucHV0
VHlwZS5oCkBAIC00Miw2ICs0MiwxMiBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdlZWtJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5
cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250
cm9sVHlwZSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIG1pbmltdW0oKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIGRvdWJsZSBtYXhpbXVtKCkgY29uc3Q7CisgICAgdmlydHVhbCBkb3VibGUgc3Rl
cEJhc2UoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3RlcCgpIGNvbnN0Owor
ICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZpcnR1YWwg
Ym9vbCBwYXJzZWRTdGVwVmFsdWVTaG91bGRCZUludGVnZXIoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqLCB1bnNpZ25l
ZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3Q7CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>