<?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>46965</bug_id>
          
          <creation_ts>2010-10-01 00:56:09 -0700</creation_ts>
          <short_desc>Refactor HTMLInputElement: Move parseToDouble() and parseToDateComponents() to InputType</short_desc>
          <delta_ts>2010-10-03 22:59:35 -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="Kent Tamura">tkent</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>288103</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-01 00:56:09 -0700</bug_when>
    <thetext>Refactor HTMLInputElement: Move parseToDouble() and parseToDateComponents() to InputType</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288109</commentid>
    <comment_count>1</comment_count>
      <attachid>69433</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-01 01:05:38 -0700</bug_when>
    <thetext>Created attachment 69433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288244</commentid>
    <comment_count>2</comment_count>
      <attachid>69433</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-10-01 07:50:26 -0700</bug_when>
    <thetext>Comment on attachment 69433
Patch

Yummy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288812</commentid>
    <comment_count>3</comment_count>
      <attachid>69433</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-03 22:59:27 -0700</bug_when>
    <thetext>Comment on attachment 69433
Patch

Clearing flags on attachment: 69433

Committed r68996: &lt;http://trac.webkit.org/changeset/68996&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>288813</commentid>
    <comment_count>4</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-10-03 22:59:35 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69433</attachid>
            <date>2010-10-01 01:05:38 -0700</date>
            <delta_ts>2010-10-03 22:59:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46965-20101001170535.patch</filename>
            <type>text/plain</type>
            <size>45037</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCBiZWY5YTg1YmYyMzViNTY0ODZiMTA1YjZlMmUyOTZkMmFkZDU3OWZhLi5iMjA5MWQ5ZTM3Y2Iw
OGFmNDVmNzg2YjVkOTRmNmZiOTlhNDA1ZTRhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yNjAsNiArMjYwLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaGlzdG9yeS9hbmRyb2lkL0hpc3RvcnlJ
dGVtQW5kcm9pZC5jcHAgXAogCVwKIAlodG1sL0FzeW5jSW1hZ2VSZXNpemVyLmNwcCBcCisJaHRt
bC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIFwKIAlodG1sL0Jhc2VUZXh0SW5wdXRUeXBl
LmNwcCBcCiAJaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwIFwKIAlodG1sL0NoZWNrYm94SW5wdXRU
eXBlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAppbmRleCA1YzRkZjgyZTY3NTVmMTQxMmMzNjQyOTJlM2FlNzdmNWI0YTIz
ZWViLi5kNTMzNDFiMmQzMzE4MGQ1Y2Q4MDNiNzkxYTRiNjBiMmQ3Y2Q5ZDFhIDEwMDY0NAotLS0g
YS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAg
LTk0Myw2ICs5NDMsNyBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgaGlzdG9yeS9QYWdlQ2Fj
aGUuY3BwCiAKICAgICBodG1sL0FzeW5jSW1hZ2VSZXNpemVyLmNwcAorICAgIGh0bWwvQmFzZURh
dGVBbmRUaW1lSW5wdXRUeXBlLmNwcAogICAgIGh0bWwvQmFzZVRleHRJbnB1dFR5cGUuY3BwCiAg
ICAgaHRtbC9CdXR0b25JbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9DaGVja2JveElucHV0VHlwZS5j
cHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggNjc3ODc0ZmNhNDYwZjUzMTQ3OTBkZDA3ODg0Mjc0ZDRjMmJiOWQ2NS4uY2Q4ZGVlNjFlMmM5
NTNiZjYwOWQ2ZDQzODQ2MmEyYjYwNjgxNzM4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3OCBAQAorMjAxMC0xMC0wMSAg
S2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3IgSFRNTElucHV0RWxlbWVudDogTW92
ZSBwYXJzZVRvRG91YmxlKCkgYW5kCisgICAgICAgIHBhcnNlVG9EYXRlQ29tcG9uZW50cygpIHRv
IElucHV0VHlwZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ2OTY1CisKKyAgICAgICAgSW50cm9kdWNlIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSwg
d2hpY2ggaXMgYSBzdXBlciBjbGFzcyBvZgorICAgICAgICBkYXRlLCBkYXRldGltZSwgZGF0ZXRp
bWUtbG9jYWwsIG1vbnRoLCB0aW1lLCBhbmQgd2VlayB0eXBlcy4KKworICAgICAgICBObyBuZXcg
dGVzdHMuIEp1c3QgYSByZWZhY3RvcmluZy4KKworICAgICAgICAqIEFuZHJvaWQubWs6IEFkZCBC
YXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IGRpdHRv
LgorICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOiBkaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5
cGk6IGRpdHRvLgorICAgICAgICAqIFdlYkNvcmUucHJvOiBkaXR0by4KKyAgICAgICAgKiBXZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogZGl0dG8uCisgICAgICAgICogV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0Jhc2VEYXRlQW5k
VGltZUlucHV0VHlwZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6QmFzZURhdGVBbmRU
aW1lSW5wdXRUeXBlOjpwYXJzZVRvRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzKToKKyAgICAgICAgKiBodG1s
L0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZTo6QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKToKKyAgICAg
ICAgKiBodG1sL0RhdGVJbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0
VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwpOgorICAgICAgICAqIGh0bWwvRGF0
ZUlucHV0VHlwZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0ZUlucHV0VHlwZTo6RGF0ZUlucHV0
VHlwZSk6CisgICAgICAgICogaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRlVGltZUlucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwp
OgorICAgICAgICAqIGh0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGVUaW1lSW5wdXRUeXBlOjpEYXRlVGltZUlucHV0VHlwZSk6CisgICAgICAgICogaHRtbC9E
YXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1lTG9j
YWxJbnB1dFR5cGU6OnBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKToKKyAgICAgICAgKiBo
dG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGVUaW1l
TG9jYWxJbnB1dFR5cGU6OkRhdGVUaW1lTG9jYWxJbnB1dFR5cGUpOgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5jcHA6IFJlcGxhY2UgcGFyc2VUb0QqIGNhbGxzIHdpdGggbV9pbnB1
dFR5cGUtPnBhcnNlVG9EKi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnR5
cGVNaXNtYXRjaCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZVVu
ZGVyZmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpyYW5nZU92ZXJm
bG93KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6Om1pbmltdW0pOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6bWF4aW11bSk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVwQmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6YXBwbHlTdGVwKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6
OnZhbHVlQXNEYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVsZW1lbnQ6OnZhbHVl
QXNOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6aGFuZGxlS2V5
RXZlbnRGb3JSYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50OjpzdGVw
VXBGcm9tUmVuZGVyZXIpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAg
ICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6
cGFyc2VUb0RvdWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnB1dFR5cGU6OnBhcnNlVG9EYXRl
Q29tcG9uZW50cyk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1s
L01vbnRoSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpw
YXJzZVRvRG91YmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vbnRoSW5wdXRUeXBlOjpwYXJzZVRv
RGF0ZUNvbXBvbmVudHNJbnRlcm5hbCk6CisgICAgICAgICogaHRtbC9Nb250aElucHV0VHlwZS5o
OgorICAgICAgICAoV2ViQ29yZTo6TW9udGhJbnB1dFR5cGU6Ok1vbnRoSW5wdXRUeXBlKToKKyAg
ICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOdW1i
ZXJJbnB1dFR5cGU6OnBhcnNlVG9Eb3VibGUpOgorICAgICAgICAqIGh0bWwvTnVtYmVySW5wdXRU
eXBlLmg6CisgICAgICAgICogaHRtbC9SYW5nZUlucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSYW5nZUlucHV0VHlwZTo6cGFyc2VUb0RvdWJsZSk6CisgICAgICAgICogaHRtbC9SYW5n
ZUlucHV0VHlwZS5oOgorICAgICAgICAqIGh0bWwvVGltZUlucHV0VHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUaW1lSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbCk6
CisgICAgICAgICogaHRtbC9UaW1lSW5wdXRUeXBlLmg6CisgICAgICAgIChXZWJDb3JlOjpUaW1l
SW5wdXRUeXBlOjpUaW1lSW5wdXRUeXBlKToKKyAgICAgICAgKiBodG1sL1dlZWtJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25l
bnRzSW50ZXJuYWwpOgorICAgICAgICAqIGh0bWwvV2Vla0lucHV0VHlwZS5oOgorICAgICAgICAo
V2ViQ29yZTo6V2Vla0lucHV0VHlwZTo6V2Vla0lucHV0VHlwZSk6CisKIDIwMTAtMDktMzAgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IENo
cmlzIEZsZWl6YWNoLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KaW5kZXggNTExOGY2MzY0YjQzYmY5MWJhMTg2NzRmMjc4NThmMDZl
MzE3ZmQxMi4uZDlkMGViZWFmOTliOTMxOWY4ZGJmYzIyMDg5N2E0ZTIwNmU1YzYyNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CkBAIC0xNDI1LDYgKzE0MjUsOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaGlz
dG9yeS9QYWdlQ2FjaGUuaCBcCiAJV2ViQ29yZS9odG1sL0FzeW5jSW1hZ2VSZXNpemVyLmNwcCBc
CiAJV2ViQ29yZS9odG1sL0FzeW5jSW1hZ2VSZXNpemVyLmggXAorCVdlYkNvcmUvaHRtbC9CYXNl
RGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwIFwKKwlXZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1l
SW5wdXRUeXBlLmggXAogCVdlYkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAgXAogCVdl
YkNvcmUvaHRtbC9CYXNlVGV4dElucHV0VHlwZS5oIFwKIAlXZWJDb3JlL2h0bWwvQnV0dG9uSW5w
dXRUeXBlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IGU0NjQ5MWZjMjUxNTdlZTEzNTMzY2E4Njk4YjNlZTliOTAzN2E5
M2QuLjhlYjNkMDE5NTM4MzlhZmVkOTNkMjc4NzkxMjI5M2YwZGRmMGFmODAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNTEx
LDYgKzE1MTEsOCBAQAogICAgICAgICAgICAgJ2hpc3RvcnkvUGFnZUNhY2hlLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvQXN5bmNJbWFnZVJlc2l6ZXIuY3BwJywKICAgICAgICAgICAgICdodG1sL0Fz
eW5jSW1hZ2VSZXNpemVyLmgnLAorICAgICAgICAgICAgJ2h0bWwvQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9CYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUu
aCcsCiAgICAgICAgICAgICAnaHRtbC9CYXNlVGV4dElucHV0VHlwZS5jcHAnLAogICAgICAgICAg
ICAgJ2h0bWwvQmFzZVRleHRJbnB1dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9CdXR0b25J
bnB1dFR5cGUuY3BwJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3Jl
L1dlYkNvcmUucHJvCmluZGV4IGI2ZWFmOGJkZjFkOWRkZGM4MGRjMjZjZDViYWRjYWUyNjE0MWVk
ZTYuLmRkZDVmNTg4NDgzZWVlNDVmNWU1YzBmYjA5NDViY2IwMmNmMjQwZDYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtODM1LDYg
KzgzNSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGhpc3RvcnkvcXQvSGlzdG9yeUl0ZW1RdC5jcHAg
XAogICAgIGhpc3RvcnkvUGFnZUNhY2hlLmNwcCBcCiAgICAgaHRtbC9Bc3luY0ltYWdlUmVzaXpl
ci5jcHAgXAorICAgIGh0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNwcCBcCiAgICAgaHRt
bC9CYXNlVGV4dElucHV0VHlwZS5jcHAgXAogICAgIGh0bWwvQnV0dG9uSW5wdXRUeXBlLmNwcCBc
CiAgICAgaHRtbC9DaGVja2JveElucHV0VHlwZS5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9X
ZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKaW5kZXggM2Q5YzQwMzVlMGE2OWYzOWQ5OGJkNWIxMGQ3ZjNiMjc1OGNjYmU5
Ny4uNDhlMzZhOTgwODBiZTM2NWE3MTJmYzQxYzZlNTZmYTVjM2VjNzU3YiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0zNzU2MSw2ICszNzU2MSwxNCBAQAogCQkJCT4N
CiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VE
YXRlQW5kVGltZUlucHV0VHlwZS5jcHAiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUN
CisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRt
bFxCYXNlVGV4dElucHV0VHlwZS5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwYmM0YjQ4NzAyNjUzNDM4MDdm
NjM2ZGMyYzczZWVhZmEwMDUwNWRmLi42OGM3MzhkZGQyOWJhMTA1ZTgzM2E5Y2RiYWY1OTIzNDcz
Nzg0OWI4IDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NTQ1OCw2ICs1NDU4LDggQEAKIAkJRjU1QjNEREUxMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1
QjNEQUExMjUxRjEyRDAwM0VGMjY5IC8qIFVSTElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RE
RjEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0RBQjEyNTFGMTJEMDAzRUYyNjkgLyog
V2Vla0lucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIzREUwMTI1MUYxMkQwMDNFRjI2OSAvKiBX
ZWVrSW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNTVCM0RBQzEyNTFGMTJEMDAzRUYyNjkgLyogV2Vla0lucHV0VHlwZS5oICovOyB9Owor
CQlGNTlDOTVGRjEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1OUM5NUZE
MTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovOyB9Owor
CQlGNTlDOTYwMDEyNTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTlDOTVGRTEy
NTVCMjNGMDAwNjIzQzAgLyogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi87IH07CiAJCUY1
QzA0MURBMEZGQ0E3Q0UwMDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ3MEZGQ0E3Q0Uw
MDgzOUQ0QSAvKiBIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxREIwRkZD
QTdDRTAwODM5RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUQ4MEZGQ0E3Q0UwMDgzOUQ0QSAvKiBI
VE1MRGF0YUxpc3RFbGVtZW50LmggKi87IH07CiAJCUY1QzA0MUUzMEZGQ0E5NkQwMDgzOUQ0QSAv
KiBET01IVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFERTBGRkNBOTZEMDA4MzlENEEgLyogRE9NSFRNTERhdGFM
aXN0RWxlbWVudC5oICovOyB9OwpAQCAtMTE0NDYsNiArMTE0NDgsOCBAQAogCQlGNTg3ODY2MjAy
REUzQjExMDFFQTQxMjIgLyogU1NMS2V5R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjU4Nzg2
ODQwMkRFM0I4NjAxRUE0MTIyIC8qIEN1cnNvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDdXJzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1ODc4Njk5MDJERTNCODYwMUVB
NDEyMiAvKiBEZXByZWNhdGVkUHRyTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEZXByZWNhdGVkUHRyTGlzdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKKwkJRjU5Qzk1RkQxMjU1
QjIzRjAwMDYyM0MwIC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNTlDOTVGRTEyNTVCMjNGMDAwNjIzQzAgLyog
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNUMwNDFENzBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRGF0YUxpc3RFbGVtZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVDMDQxRDgwRkZDQTdDRTAwODM5
RDRBIC8qIEhUTUxEYXRhTGlzdEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNUMwNDFEOTBGRkNBN0NFMDA4MzlENEEgLyogSFRNTERhdGFMaXN0RWxlbWVudC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gSFRNTERhdGFMaXN0RWxlbWVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0xNDM1Nyw2ICsxNDM2MSw4IEBACiAJCQkJOTdDMUY1NTExMjI4
NTU4ODAwRURFNjE2IC8qIHBhcnNlciAqLywKIAkJCQlCMDE0OUU3OTExQTRCMjE1MDAxOTZBN0Ig
LyogQXN5bmNJbWFnZVJlc2l6ZXIuY3BwICovLAogCQkJCUIwMTQ5RTdBMTFBNEIyMTUwMDE5NkE3
QiAvKiBBc3luY0ltYWdlUmVzaXplci5oICovLAorCQkJCUY1OUM5NUZEMTI1NUIyM0YwMDA2MjND
MCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuY3BwICovLAorCQkJCUY1OUM5NUZFMTI1NUIy
M0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCAqLywKIAkJCQlGNTVCM0Q3
OTEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovLAogCQkJCUY1NUIz
RDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oICovLAogCQkJCUY1NUIz
RDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICovLApAQCAtMTgxODUs
NiArMTgxOTEsNyBAQAogCQkJCUJDQThDQTYwMTFFNEU2RDEwMDgxMkZCNyAvKiBCYWNrRm9yd2Fy
ZExpc3RJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzEyNEVFODBDMjY0MUNEMDA5RTIzNDkg
LyogQmFySW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBMjIwRDAwNkMxRDAwRUY2RjI2
IC8qIEJhc2U2NC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjU5Qzk2MDAxMjU1QjIzRjAwMDYyM0Mw
IC8qIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNE
QUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzk0NjJEODEwN0E3QjRDMDA4NTcxOTMgLyogQmVmb3JlTG9hZEV2ZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTcyMUZCQjExRDI3OTA3MDA2MzhCNDIgLyogQmVmb3JlUHJvY2Vzc0V2
ZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIxMjgxLDYgKzIxMjg4LDcgQEAKIAkJCQlCQ0E4Q0E1
RjExRTRFNkQxMDA4MTJGQjcgLyogQmFja0ZvcndhcmRMaXN0SW1wbC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzEyNEVFNzBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlCMkMzREEyMTBEMDA2QzFEMDBFRjZGMjYgLyogQmFzZTY0LmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY1OUM5NUZGMTI1NUIyM0YwMDA2MjNDMCAvKiBCYXNlRGF0ZUFuZFRpbWVJ
bnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5
IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxNzIyMDRCMTFE
Mjk2MDUwMDYzOEI0MiAvKiBCZWZvcmVQcm9jZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQUIyM0EzMjcwOUJCQTdEMDAwNjdDQzUzIC8qIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYmRlY2UyODYzMDk4NTJmZDQ2ZDYzZTlkZGY0OWIyYjRkMzczN2U3Ci0t
LSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5j
cHAKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQg
SE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisg
KiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJCYXNlRGF0
ZUFuZFRpbWVJbnB1dFR5cGUuaCIKKworI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCisjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitkb3VibGUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
OjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBj
b25zdAoreworICAgIERhdGVDb21wb25lbnRzIGRhdGU7CisgICAgaWYgKCFwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoc3JjLCAmZGF0ZSkpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAg
ZG91YmxlIG1zZWMgPSBkYXRlLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsKKyAgICBBU1NFUlQo
aXNmaW5pdGUobXNlYykpOworICAgIHJldHVybiBtc2VjOworfQorCitib29sIEJhc2VEYXRlQW5k
VGltZUlucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZyYgc291cmNl
LCBEYXRlQ29tcG9uZW50cyogb3V0KSBjb25zdAoreworICAgIGlmIChzb3VyY2UuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgRGF0ZUNvbXBvbmVudHMgaWdub3JlZFJlc3Vs
dDsKKyAgICBpZiAoIW91dCkKKyAgICAgICAgb3V0ID0gJmlnbm9yZWRSZXN1bHQ7CisgICAgcmV0
dXJuIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKHNvdXJjZS5jaGFyYWN0ZXJzKCksIHNv
dXJjZS5sZW5ndGgoKSwgb3V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIGIvV2ViQ29yZS9o
dG1sL0Jhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMzNmNkODM3N2I5NmRk
MDE2MDAwY2ZmNGRkNjllZDAxYjQwZDFiMmQKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0
bWwvQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmli
dXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUg
bmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBw
cm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
CisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlX2gKKyNkZWZpbmUgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
X2gKKworI2luY2x1ZGUgIlRleHRGaWVsZElucHV0VHlwZS5oIgorI2luY2x1ZGUgPHd0Zi91bmlj
b2RlL1VuaWNvZGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBBIHN1cGVyIGNsYXNz
IG9mIGRhdGUsIGRhdGV0aW1lLCBkYXRldGltZS1sb2NhbCwgbW9udGgsIHRpbWUsIGFuZCB3ZWVr
IHR5cGVzLgorY2xhc3MgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVs
ZElucHV0VHlwZSB7Citwcm90ZWN0ZWQ6CisgICAgQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKEhU
TUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwg
RGF0ZUNvbXBvbmVudHMqKSBjb25zdDsKKyAgICAvLyBBIGhlbHBlciBmb3IgcGFyc2VUb0RhdGVD
b21wb25lbnRzKCkuCisgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVy
bmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0
ID0gMDsKK3ByaXZhdGU6CisgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZShjb25zdCBT
dHJpbmcmLCBkb3VibGUpIGNvbnN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlX2gKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9EYXRlSW5wdXRUeXBlLmNwcCBiL1dlYkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmNwcApp
bmRleCAwNjA1ODQ2NTA2YTkyY2Q5NzczMWE4ZmY4YjdhOGRmZWY0YWFlZDZlLi4zY2I5NTlkYTg1
ODYyZWEwNzQ3NjlhOTgxNGI5Y2FjYjNmZDc0OGRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
RGF0ZUlucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuY3BwCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0ZUlucHV0
VHlwZS5oIgogCisjaW5jbHVkZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlIDx3dGYvUGFz
c093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NSw0ICs0NiwxMSBAQCBjb25z
dCBBdG9taWNTdHJpbmcmIERhdGVJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpkYXRlKCk7CiB9CiAKK2Jvb2wgRGF0ZUlucHV0VHlw
ZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMs
IHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqIG91dCkgY29uc3QKK3sKKyAgICBBU1NF
UlQob3V0KTsKKyAgICB1bnNpZ25lZCBlbmQ7CisgICAgcmV0dXJuIG91dC0+cGFyc2VEYXRlKGNo
YXJhY3RlcnMsIGxlbmd0aCwgMCwgZW5kKSAmJiBlbmQgPT0gbGVuZ3RoOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5o
IGIvV2ViQ29yZS9odG1sL0RhdGVJbnB1dFR5cGUuaAppbmRleCBlNmY2MGQ3YWJjODNhMjVmNTUx
YmIzYjU5YWEzYjRkOWI2NDJlZjJlLi5lMzc2ODJlMjdiMDQ3NDYyMDk0OTFjZDE0ZDZjZGU1NmEy
Y2Q4ODllIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvRGF0ZUlucHV0VHlwZS5oCisrKyBiL1dl
YkNvcmUvaHRtbC9EYXRlSW5wdXRUeXBlLmgKQEAgLTMxLDE3ICszMSwxOCBAQAogI2lmbmRlZiBE
YXRlSW5wdXRUeXBlX2gKICNkZWZpbmUgRGF0ZUlucHV0VHlwZV9oCiAKLSNpbmNsdWRlICJUZXh0
RmllbGRJbnB1dFR5cGUuaCIKKyNpbmNsdWRlICJCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIFRl
eHRGaWVsZElucHV0VHlwZSB7CitjbGFzcyBEYXRlSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRl
QW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVudCopOwogCiBwcml2YXRlOgotICAgIERhdGVJbnB1
dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxl
bWVudCkgeyB9CisgICAgRGF0ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6
IEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29s
IHBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVu
Z3RoLCBEYXRlQ29tcG9uZW50cyopIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcCBiL1dlYkNv
cmUvaHRtbC9EYXRlVGltZUlucHV0VHlwZS5jcHAKaW5kZXggMGJmNWUwNDBkNTM2YTU5NmQ1MDJk
OWMyMjMyNGU1M2ZlMWEyODljYy4uNzViZjFkYWVhZjAyMGU4ZTM4MDM2NmViNDE2NmRjYjI4MzYx
ZDczNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRGF0ZVRpbWVJbnB1dFR5cGUuaCIKIAorI2lu
Y2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNCArNDYsMTEgQEAgY29uc3QgQXRvbWljU3RyaW5n
JiBEYXRlVGltZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4g
SW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lKCk7CiB9CiAKK2Jvb2wgRGF0ZVRpbWVJbnB1dFR5cGU6
OnBhcnNlVG9EYXRlQ29tcG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzLCB1
bnNpZ25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKiBvdXQpIGNvbnN0Cit7CisgICAgQVNTRVJU
KG91dCk7CisgICAgdW5zaWduZWQgZW5kOworICAgIHJldHVybiBvdXQtPnBhcnNlRGF0ZVRpbWUo
Y2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQpICYmIGVuZCA9PSBsZW5ndGg7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUlucHV0
VHlwZS5oIGIvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKaW5kZXggZjI0ZWJmYmM1
YmQwMmZlOGJkZjhiZTAxY2UzZGZhYjQ2OWY3OGY2Yi4uOTJlYmM0MWEwM2RkZDU4M2Y5ZTY3YTFi
NDY5YTQ4ZGJjYjI2ODFkMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRU
eXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL0RhdGVUaW1lSW5wdXRUeXBlLmgKQEAgLTMxLDE3ICsz
MSwxOCBAQAogI2lmbmRlZiBEYXRlVGltZUlucHV0VHlwZV9oCiAjZGVmaW5lIERhdGVUaW1lSW5w
dXRUeXBlX2gKIAotI2luY2x1ZGUgIlRleHRGaWVsZElucHV0VHlwZS5oIgorI2luY2x1ZGUgIkJh
c2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IERhdGVUaW1lSW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7CitjbGFzcyBE
YXRlVGltZUlucHV0VHlwZSA6IHB1YmxpYyBCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzT3duUHRyPElucHV0VHlwZT4gY3JlYXRlKEhUTUxJbnB1dEVs
ZW1lbnQqKTsKIAogcHJpdmF0ZToKLSAgICBEYXRlVGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVt
ZW50KiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVtZW50KSB7IH0KKyAgICBEYXRl
VGltZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGlt
ZUlucHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYg
Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29t
cG9uZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9u
ZW50cyopIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL0Rh
dGVUaW1lTG9jYWxJbnB1dFR5cGUuY3BwCmluZGV4IDMzYzZjZmE1MTBhMGIzYmI0MTYzOTFiMDNj
MWNjNjRlNmI4YmNmZjIuLjkxNmEzODZlMTIwZDQ1N2RhNjg3ZDU2OWQzMDkyM2JjYTZjM2NhYjUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmNwcAorKysg
Yi9XZWJDb3JlL2h0bWwvRGF0ZVRpbWVMb2NhbElucHV0VHlwZS5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJEYXRlVGltZUxvY2FsSW5wdXRUeXBl
LmgiCiAKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9QYXNzT3du
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDQgKzQ2LDExIEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgRGF0ZVRpbWVMb2NhbElucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmRhdGV0aW1lbG9jYWwoKTsKIH0KIAorYm9v
bCBEYXRlVGltZUxvY2FsSW5wdXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChj
b25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyog
b3V0KSBjb25zdAoreworICAgIEFTU0VSVChvdXQpOworICAgIHVuc2lnbmVkIGVuZDsKKyAgICBy
ZXR1cm4gb3V0LT5wYXJzZURhdGVUaW1lTG9jYWwoY2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQp
ICYmIGVuZCA9PSBsZW5ndGg7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmggYi9XZWJDb3JlL2h0bWwv
RGF0ZVRpbWVMb2NhbElucHV0VHlwZS5oCmluZGV4IDFhM2Q4NjY4MzQ2ZjhlYzcyNzU1YzY4M2Uy
ODIzMzZmMDg4YzEzNzguLjNlYzg0MWRiMDA2ZjM2MGY0NTNhNGU5ZGIyNGUyMDYwNzI0ZGY0YTMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9EYXRlVGltZUxvY2FsSW5wdXRUeXBlLmgKKysrIGIv
V2ViQ29yZS9odG1sL0RhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaApAQCAtMzEsMTcgKzMxLDE4IEBA
CiAjaWZuZGVmIERhdGVUaW1lTG9jYWxJbnB1dFR5cGVfaAogI2RlZmluZSBEYXRlVGltZUxvY2Fs
SW5wdXRUeXBlX2gKIAotI2luY2x1ZGUgIlRleHRGaWVsZElucHV0VHlwZS5oIgorI2luY2x1ZGUg
IkJhc2VEYXRlQW5kVGltZUlucHV0VHlwZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUgOiBwdWJsaWMgVGV4dEZpZWxkSW5wdXRUeXBlIHsK
K2NsYXNzIERhdGVUaW1lTG9jYWxJbnB1dFR5cGUgOiBwdWJsaWMgQmFzZURhdGVBbmRUaW1lSW5w
dXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJbnB1dFR5cGU+IGNyZWF0
ZShIVE1MSW5wdXRFbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgRGF0ZVRpbWVMb2NhbElucHV0
VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlwZShlbGVt
ZW50KSB7IH0KKyAgICBEYXRlVGltZUxvY2FsSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0
dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqLCB1bnNp
Z25lZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAg
Yi9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNDc5MGFjNmE4OGU4MzY1
ZDQ2NTk4NTNlNDRiMzI2NmNjMGY5YjM5YS4uZGZmODk1YTU2YTFhYmVhNGU5MzlmY2IyMDdhY2Q4
YjM3ZTkzODk3NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3Bw
CisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMjgzLDcgKzI4Myw3
IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6dHlwZU1pc21hdGNoKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0CiAgICAgY2FzZSBNT05USDoKICAgICBjYXNlIFRJTUU6CiAgICAgY2FzZSBXRUVL
OgotICAgICAgICByZXR1cm4gIXBhcnNlVG9EYXRlQ29tcG9uZW50cyhkZXByZWNhdGVkSW5wdXRU
eXBlKCksIHZhbHVlLCAwKTsKKyAgICAgICAgcmV0dXJuICFtX2lucHV0VHlwZS0+cGFyc2VUb0Rh
dGVDb21wb25lbnRzKHZhbHVlLCAwKTsKICAgICBjYXNlIEJVVFRPTjoKICAgICBjYXNlIENIRUNL
Qk9YOgogICAgIGNhc2UgRklMRToKQEAgLTM3OSwxMSArMzc5LDExIEBAIGJvb2wgSFRNTElucHV0
RWxlbWVudDo6cmFuZ2VVbmRlcmZsb3coY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAgICBj
YXNlIE5VTUJFUjoKICAgICBjYXNlIFRJTUU6CiAgICAgY2FzZSBXRUVLOiB7Ci0gICAgICAgIGRv
dWJsZSBkb3VibGVWYWx1ZSA9IHBhcnNlVG9Eb3VibGUodmFsdWUsIG5hbik7CisgICAgICAgIGRv
dWJsZSBkb3VibGVWYWx1ZSA9IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4p
OwogICAgICAgICByZXR1cm4gaXNmaW5pdGUoZG91YmxlVmFsdWUpICYmIGRvdWJsZVZhbHVlIDwg
bWluaW11bSgpOwogICAgIH0KICAgICBjYXNlIFJBTkdFOiAvLyBHdWFyYW50ZWVkIGJ5IHNhbml0
aXphdGlvbi4KLSAgICAgICAgQVNTRVJUKHBhcnNlVG9Eb3VibGUodmFsdWUsIG5hbikgPj0gbWlu
aW11bSgpKTsKKyAgICAgICAgQVNTRVJUKG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVl
LCBuYW4pID49IG1pbmltdW0oKSk7CiAgICAgY2FzZSBCVVRUT046CiAgICAgY2FzZSBDSEVDS0JP
WDoKICAgICBjYXNlIENPTE9SOgpAQCAtNDE2LDExICs0MTYsMTEgQEAgYm9vbCBIVE1MSW5wdXRF
bGVtZW50OjpyYW5nZU92ZXJmbG93KGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0CiAgICAgY2Fz
ZSBOVU1CRVI6CiAgICAgY2FzZSBUSU1FOgogICAgIGNhc2UgV0VFSzogewotICAgICAgICBkb3Vi
bGUgZG91YmxlVmFsdWUgPSBwYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pOworICAgICAgICBkb3Vi
bGUgZG91YmxlVmFsdWUgPSBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZSh2YWx1ZSwgbmFuKTsK
ICAgICAgICAgcmV0dXJuIGlzZmluaXRlKGRvdWJsZVZhbHVlKSAmJiBkb3VibGVWYWx1ZSA+IG1h
eGltdW0oKTsKICAgICB9CiAgICAgY2FzZSBSQU5HRTogLy8gR3VhcmFudGVlZCBieSBzYW5pdGl6
YXRpb24uCi0gICAgICAgIEFTU0VSVChwYXJzZVRvRG91YmxlKHZhbHVlLCBuYW4pIDw9IG1heGlt
dW0oKSk7CisgICAgICAgIEFTU0VSVChtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZSh2YWx1ZSwg
bmFuKSA8PSBtYXhpbXVtKCkpOwogICAgIGNhc2UgQlVUVE9OOgogICAgIGNhc2UgQ0hFQ0tCT1g6
CiAgICAgY2FzZSBDT0xPUjoKQEAgLTQ0NiwyMCArNDQ2LDIwIEBAIGRvdWJsZSBIVE1MSW5wdXRF
bGVtZW50OjptaW5pbXVtKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGRlcHJlY2F0ZWRJbnB1dFR5
cGUoKSkgewogICAgIGNhc2UgREFURToKLSAgICAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZ2V0
QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bURhdGUoKSk7CisgICAg
ICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0
ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtRGF0ZSgpKTsKICAgICBjYXNlIERBVEVUSU1FOgog
ICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZ2V0
QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bURhdGVUaW1lKCkpOwor
ICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1p
bkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11bURhdGVUaW1lKCkpOwogICAgIGNhc2UgTU9O
VEg6Ci0gICAgICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwg
RGF0ZUNvbXBvbmVudHM6Om1pbmltdW1Nb250aCgpKTsKKyAgICAgICAgcmV0dXJuIG1faW5wdXRU
eXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNvbXBvbmVudHM6
Om1pbmltdW1Nb250aCgpKTsKICAgICBjYXNlIE5VTUJFUjoKLSAgICAgICAgcmV0dXJuIHBhcnNl
VG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCBudW1iZXJEZWZhdWx0TWluaW11bSk7Cisg
ICAgICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWlu
QXR0ciksIG51bWJlckRlZmF1bHRNaW5pbXVtKTsKICAgICBjYXNlIFJBTkdFOgotICAgICAgICBy
ZXR1cm4gcGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksIHJhbmdlRGVmYXVsdE1p
bmltdW0pOworICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0
cmlidXRlKG1pbkF0dHIpLCByYW5nZURlZmF1bHRNaW5pbXVtKTsKICAgICBjYXNlIFRJTUU6Ci0g
ICAgICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5BdHRyKSwgRGF0ZUNv
bXBvbmVudHM6Om1pbmltdW1UaW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBh
cnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1pbkF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWluaW11
bVRpbWUoKSk7CiAgICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZShn
ZXRBdHRyaWJ1dGUobWluQXR0ciksIERhdGVDb21wb25lbnRzOjptaW5pbXVtV2VlaygpKTsKKyAg
ICAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtaW5B
dHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1pbmltdW1XZWVrKCkpOwogICAgIGNhc2UgQlVUVE9OOgog
ICAgIGNhc2UgQ0hFQ0tCT1g6CiAgICAgY2FzZSBDT0xPUjoKQEAgLTQ4NiwxNiArNDg2LDE2IEBA
IGRvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjptYXhpbXVtKCkgY29uc3QKIHsKICAgICBzd2l0Y2gg
KGRlcHJlY2F0ZWRJbnB1dFR5cGUoKSkgewogICAgIGNhc2UgREFURToKLSAgICAgICAgcmV0dXJu
IHBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4
aW11bURhdGUoKSk7CisgICAgICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShn
ZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtRGF0ZSgpKTsKICAg
ICBjYXNlIERBVEVUSU1FOgogICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgcmV0dXJu
IHBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4
aW11bURhdGVUaW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3Vi
bGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4aW11bURhdGVUaW1l
KCkpOwogICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGdldEF0
dHJpYnV0ZShtYXhBdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1Nb250aCgpKTsKKyAgICAg
ICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRy
KSwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1Nb250aCgpKTsKICAgICBjYXNlIE5VTUJFUjoKLSAg
ICAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBudW1iZXJE
ZWZhdWx0TWF4aW11bSk7CisgICAgICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJs
ZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksIG51bWJlckRlZmF1bHRNYXhpbXVtKTsKICAgICBjYXNl
IFJBTkdFOiB7Ci0gICAgICAgIGRvdWJsZSBtYXggPSBwYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0
ZShtYXhBdHRyKSwgcmFuZ2VEZWZhdWx0TWF4aW11bSk7CisgICAgICAgIGRvdWJsZSBtYXggPSBt
X2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksIHJhbmdlRGVm
YXVsdE1heGltdW0pOwogICAgICAgICAvLyBBIHJlbWVkeSBmb3IgdGhlIGluY29uc2lzdGVudCBt
aW4vbWF4IHZhbHVlcyBmb3IgUkFOR0UuCiAgICAgICAgIC8vIFNldHMgdGhlIG1heGltdW0gdG8g
dGhlIGRlZmF1bHQgb3IgdGhlIG1pbmltdW0gdmFsdWUuCiAgICAgICAgIGRvdWJsZSBtaW4gPSBt
aW5pbXVtKCk7CkBAIC01MDQsOSArNTA0LDkgQEAgZG91YmxlIEhUTUxJbnB1dEVsZW1lbnQ6Om1h
eGltdW0oKSBjb25zdAogICAgICAgICByZXR1cm4gbWF4OwogICAgIH0KICAgICBjYXNlIFRJTUU6
Ci0gICAgICAgIHJldHVybiBwYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZShtYXhBdHRyKSwgRGF0
ZUNvbXBvbmVudHM6Om1heGltdW1UaW1lKCkpOworICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUt
PnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1heEF0dHIpLCBEYXRlQ29tcG9uZW50czo6bWF4
aW11bVRpbWUoKSk7CiAgICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gcGFyc2VUb0RvdWJs
ZShnZXRBdHRyaWJ1dGUobWF4QXR0ciksIERhdGVDb21wb25lbnRzOjptYXhpbXVtV2VlaygpKTsK
KyAgICAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKGdldEF0dHJpYnV0ZSht
YXhBdHRyKSwgRGF0ZUNvbXBvbmVudHM6Om1heGltdW1XZWVrKCkpOwogICAgIGNhc2UgQlVUVE9O
OgogICAgIGNhc2UgQ0hFQ0tCT1g6CiAgICAgY2FzZSBDT0xPUjoKQEAgLTU0MCw5ICs1NDAsOSBA
QCBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6c3RlcEJhc2UoKSBjb25zdAogICAgIGNhc2UgTU9O
VEg6CiAgICAgY2FzZSBOVU1CRVI6CiAgICAgY2FzZSBUSU1FOgotICAgICAgICByZXR1cm4gcGFy
c2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksIGRlZmF1bHRTdGVwQmFzZSk7CisgICAg
ICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0
ciksIGRlZmF1bHRTdGVwQmFzZSk7CiAgICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gcGFy
c2VUb0RvdWJsZShnZXRBdHRyaWJ1dGUobWluQXR0ciksIHdlZWtEZWZhdWx0U3RlcEJhc2UpOwor
ICAgICAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUoZ2V0QXR0cmlidXRlKG1p
bkF0dHIpLCB3ZWVrRGVmYXVsdFN0ZXBCYXNlKTsKICAgICBjYXNlIEJVVFRPTjoKICAgICBjYXNl
IENIRUNLQk9YOgogICAgIGNhc2UgQ09MT1I6CkBAIC02MDAsNyArNjAwLDcgQEAgYm9vbCBIVE1M
SW5wdXRFbGVtZW50OjpzdGVwTWlzbWF0Y2goY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QKICAg
ICBjYXNlIFRJTUU6CiAgICAgY2FzZSBXRUVLOiB7CiAgICAgICAgIGNvbnN0IGRvdWJsZSBuYW4g
PSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKLSAgICAgICAgZG91YmxlIGRv
dWJsZVZhbHVlID0gcGFyc2VUb0RvdWJsZSh2YWx1ZSwgbmFuKTsKKyAgICAgICAgZG91YmxlIGRv
dWJsZVZhbHVlID0gbV9pbnB1dFR5cGUtPnBhcnNlVG9Eb3VibGUodmFsdWUsIG5hbik7CiAgICAg
ICAgIGRvdWJsZVZhbHVlID0gZmFicyhkb3VibGVWYWx1ZSAtIHN0ZXBCYXNlKCkpOwogICAgICAg
ICBpZiAoIWlzZmluaXRlKGRvdWJsZVZhbHVlKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTcyMyw3ICs3MjMsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmFwcGx5U3RlcChkb3Vi
bGUgY291bnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGNvbnN0IGRvdWJsZSBuYW4gPSBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
LSAgICBkb3VibGUgY3VycmVudCA9IHBhcnNlVG9Eb3VibGUodmFsdWUoKSwgbmFuKTsKKyAgICBk
b3VibGUgY3VycmVudCA9IG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVlKCksIG5hbik7
CiAgICAgaWYgKCFpc2Zpbml0ZShjdXJyZW50KSkgewogICAgICAgICBlYyA9IElOVkFMSURfU1RB
VEVfRVJSOwogICAgICAgICByZXR1cm47CkBAIC0xNjQzLDYwICsxNjQzLDYgQEAgdm9pZCBIVE1M
SW5wdXRFbGVtZW50OjpzZXRWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlLCBib29sIHNlbmRDaGFu
Z2VFdmVudCkKICAgICBJbnB1dEVsZW1lbnQ6Om5vdGlmeUZvcm1TdGF0ZUNoYW5nZWQodGhpcyk7
CiB9CiAKLWRvdWJsZSBIVE1MSW5wdXRFbGVtZW50OjpwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmlu
ZyYgc3JjLCBkb3VibGUgZGVmYXVsdFZhbHVlKSBjb25zdAotewotICAgIHN3aXRjaCAoZGVwcmVj
YXRlZElucHV0VHlwZSgpKSB7Ci0gICAgY2FzZSBEQVRFOgotICAgIGNhc2UgREFURVRJTUU6Ci0g
ICAgY2FzZSBEQVRFVElNRUxPQ0FMOgotICAgIGNhc2UgVElNRToKLSAgICBjYXNlIFdFRUs6IHsK
LSAgICAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKLSAgICAgICAgaWYgKCFwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoZGVwcmVjYXRlZElucHV0VHlwZSgpLCBzcmMsICZkYXRlKSkKLSAgICAgICAgICAg
IHJldHVybiBkZWZhdWx0VmFsdWU7Ci0gICAgICAgIGRvdWJsZSBtc2VjID0gZGF0ZS5taWxsaXNl
Y29uZHNTaW5jZUVwb2NoKCk7Ci0gICAgICAgIEFTU0VSVChpc2Zpbml0ZShtc2VjKSk7Ci0gICAg
ICAgIHJldHVybiBtc2VjOwotICAgIH0KLSAgICBjYXNlIE1PTlRIOiB7Ci0gICAgICAgIERhdGVD
b21wb25lbnRzIGRhdGU7Ci0gICAgICAgIGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKGRlcHJl
Y2F0ZWRJbnB1dFR5cGUoKSwgc3JjLCAmZGF0ZSkpCi0gICAgICAgICAgICByZXR1cm4gZGVmYXVs
dFZhbHVlOwotICAgICAgICBkb3VibGUgbW9udGhzID0gZGF0ZS5tb250aHNTaW5jZUVwb2NoKCk7
Ci0gICAgICAgIEFTU0VSVChpc2Zpbml0ZShtb250aHMpKTsKLSAgICAgICAgcmV0dXJuIG1vbnRo
czsKLSAgICB9Ci0gICAgY2FzZSBOVU1CRVI6Ci0gICAgY2FzZSBSQU5HRTogewotICAgICAgICBk
b3VibGUgbnVtYmVyVmFsdWU7Ci0gICAgICAgIGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5
cGUoc3JjLCAmbnVtYmVyVmFsdWUpKQotICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTsK
LSAgICAgICAgQVNTRVJUKGlzZmluaXRlKG51bWJlclZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBu
dW1iZXJWYWx1ZTsKLSAgICB9Ci0KLSAgICBjYXNlIEJVVFRPTjoKLSAgICBjYXNlIENIRUNLQk9Y
OgotICAgIGNhc2UgQ09MT1I6Ci0gICAgY2FzZSBFTUFJTDoKLSAgICBjYXNlIEZJTEU6Ci0gICAg
Y2FzZSBISURERU46Ci0gICAgY2FzZSBJTUFHRToKLSAgICBjYXNlIElTSU5ERVg6Ci0gICAgY2Fz
ZSBQQVNTV09SRDoKLSAgICBjYXNlIFJBRElPOgotICAgIGNhc2UgUkVTRVQ6Ci0gICAgY2FzZSBT
RUFSQ0g6Ci0gICAgY2FzZSBTVUJNSVQ6Ci0gICAgY2FzZSBURUxFUEhPTkU6Ci0gICAgY2FzZSBU
RVhUOgotICAgIGNhc2UgVVJMOgotICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotICAgIH0K
LSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZGVmYXVsdFZhbHVlOwotfQot
CiBkb3VibGUgSFRNTElucHV0RWxlbWVudDo6dmFsdWVBc0RhdGUoKSBjb25zdAogewogICAgIHN3
aXRjaCAoZGVwcmVjYXRlZElucHV0VHlwZSgpKSB7CkBAIC0xNzA0LDEwICsxNjUwLDEwIEBAIGRv
dWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzRGF0ZSgpIGNvbnN0CiAgICAgY2FzZSBEQVRF
VElNRToKICAgICBjYXNlIFRJTUU6CiAgICAgY2FzZSBXRUVLOgotICAgICAgICByZXR1cm4gcGFy
c2VUb0RvdWJsZSh2YWx1ZSgpLCBEYXRlQ29tcG9uZW50czo6aW52YWxpZE1pbGxpc2Vjb25kcygp
KTsKKyAgICAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5wYXJzZVRvRG91YmxlKHZhbHVlKCksIERh
dGVDb21wb25lbnRzOjppbnZhbGlkTWlsbGlzZWNvbmRzKCkpOwogICAgIGNhc2UgTU9OVEg6IHsK
ICAgICAgICAgRGF0ZUNvbXBvbmVudHMgZGF0ZTsKLSAgICAgICAgaWYgKCFwYXJzZVRvRGF0ZUNv
bXBvbmVudHMoZGVwcmVjYXRlZElucHV0VHlwZSgpLCB2YWx1ZSgpLCAmZGF0ZSkpCisgICAgICAg
IGlmICghbV9pbnB1dFR5cGUtPnBhcnNlVG9EYXRlQ29tcG9uZW50cyh2YWx1ZSgpLCAmZGF0ZSkp
CiAgICAgICAgICAgICByZXR1cm4gRGF0ZUNvbXBvbmVudHM6OmludmFsaWRNaWxsaXNlY29uZHMo
KTsKICAgICAgICAgZG91YmxlIG1zZWMgPSBkYXRlLm1pbGxpc2Vjb25kc1NpbmNlRXBvY2goKTsK
ICAgICAgICAgQVNTRVJUKGlzZmluaXRlKG1zZWMpKTsKQEAgLTE3OTQsNyArMTc0MCw3IEBAIGRv
dWJsZSBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZUFzTnVtYmVyKCkgY29uc3QKICAgICBjYXNlIFJB
TkdFOgogICAgIGNhc2UgVElNRToKICAgICBjYXNlIFdFRUs6Ci0gICAgICAgIHJldHVybiBwYXJz
ZVRvRG91YmxlKHZhbHVlKCksIG5hbik7CisgICAgICAgIHJldHVybiBtX2lucHV0VHlwZS0+cGFy
c2VUb0RvdWJsZSh2YWx1ZSgpLCBuYW4pOwogCiAgICAgY2FzZSBCVVRUT046CiAgICAgY2FzZSBD
SEVDS0JPWDoKQEAgLTI0OTIsNyArMjQzOCw3IEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6aGFu
ZGxlS2V5RXZlbnRGb3JSYW5nZShLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgZG91Ymxl
IG1heCA9IG1heGltdW0oKTsKICAgICAgICAgLy8gRklYTUU6IElzIDEvMTAwIHJlYXNvbmFibGU/
CiAgICAgICAgIGRvdWJsZSBzdGVwID0gKG1heCAtIG1pbikgLyAxMDA7Ci0gICAgICAgIGRvdWJs
ZSBjdXJyZW50ID0gcGFyc2VUb0RvdWJsZSh2YWx1ZSgpLCBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKSk7CisgICAgICAgIGRvdWJsZSBjdXJyZW50ID0gbV9pbnB1dFR5cGUtPnBh
cnNlVG9Eb3VibGUodmFsdWUoKSwgbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCkp
OwogICAgICAgICBBU1NFUlQoaXNmaW5pdGUoY3VycmVudCkpOwogICAgICAgICBkb3VibGUgbmV3
VmFsdWU7CiAgICAgICAgIGlmIChrZXkgPT0gIlVwIiB8fCBrZXkgPT0gIlJpZ2h0IikgewpAQCAt
Mjc5MSwzNiArMjczNyw2IEBAIGJvb2wgSFRNTElucHV0RWxlbWVudDo6cmVjYWxjV2lsbFZhbGlk
YXRlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgSFRNTElucHV0RWxlbWVu
dDo6cGFyc2VUb0RhdGVDb21wb25lbnRzKERlcHJlY2F0ZWRJbnB1dFR5cGUgdHlwZSwgY29uc3Qg
U3RyaW5nJiBmb3JtU3RyaW5nLCBEYXRlQ29tcG9uZW50cyogb3V0KQotewotICAgIGlmIChmb3Jt
U3RyaW5nLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIERhdGVDb21wb25l
bnRzIGlnbm9yZWRSZXN1bHQ7Ci0gICAgaWYgKCFvdXQpCi0gICAgICAgIG91dCA9ICZpZ25vcmVk
UmVzdWx0OwotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gZm9ybVN0cmluZy5jaGFyYWN0
ZXJzKCk7Ci0gICAgdW5zaWduZWQgbGVuZ3RoID0gZm9ybVN0cmluZy5sZW5ndGgoKTsKLSAgICB1
bnNpZ25lZCBlbmQ7Ci0KLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIERBVEU6Ci0gICAg
ICAgIHJldHVybiBvdXQtPnBhcnNlRGF0ZShjaGFyYWN0ZXJzLCBsZW5ndGgsIDAsIGVuZCkgJiYg
ZW5kID09IGxlbmd0aDsKLSAgICBjYXNlIERBVEVUSU1FOgotICAgICAgICByZXR1cm4gb3V0LT5w
YXJzZURhdGVUaW1lKGNoYXJhY3RlcnMsIGxlbmd0aCwgMCwgZW5kKSAmJiBlbmQgPT0gbGVuZ3Ro
OwotICAgIGNhc2UgREFURVRJTUVMT0NBTDoKLSAgICAgICAgcmV0dXJuIG91dC0+cGFyc2VEYXRl
VGltZUxvY2FsKGNoYXJhY3RlcnMsIGxlbmd0aCwgMCwgZW5kKSAmJiBlbmQgPT0gbGVuZ3RoOwot
ICAgIGNhc2UgTU9OVEg6Ci0gICAgICAgIHJldHVybiBvdXQtPnBhcnNlTW9udGgoY2hhcmFjdGVy
cywgbGVuZ3RoLCAwLCBlbmQpICYmIGVuZCA9PSBsZW5ndGg7Ci0gICAgY2FzZSBXRUVLOgotICAg
ICAgICByZXR1cm4gb3V0LT5wYXJzZVdlZWsoY2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQpICYm
IGVuZCA9PSBsZW5ndGg7Ci0gICAgY2FzZSBUSU1FOgotICAgICAgICByZXR1cm4gb3V0LT5wYXJz
ZVRpbWUoY2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQpICYmIGVuZCA9PSBsZW5ndGg7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci19Ci0KICNpZiBFTkFCTEUoREFUQUxJU1QpCiAKIEhUTUxFbGVtZW50KiBI
VE1MSW5wdXRFbGVtZW50OjpsaXN0KCkgY29uc3QKQEAgLTI5MTIsNyArMjgyOCw3IEBAIHZvaWQg
SFRNTElucHV0RWxlbWVudDo6c3RlcFVwRnJvbVJlbmRlcmVyKGludCBuKQogCiAgICAgY29uc3Qg
ZG91YmxlIG5hbiA9IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOwogICAgIFN0
cmluZyBjdXJyZW50U3RyaW5nVmFsdWUgPSB2YWx1ZSgpOwotICAgIGRvdWJsZSBjdXJyZW50ID0g
cGFyc2VUb0RvdWJsZShjdXJyZW50U3RyaW5nVmFsdWUsIG5hbik7CisgICAgZG91YmxlIGN1cnJl
bnQgPSBtX2lucHV0VHlwZS0+cGFyc2VUb0RvdWJsZShjdXJyZW50U3RyaW5nVmFsdWUsIG5hbik7
CiAgICAgaWYgKCFpc2Zpbml0ZShjdXJyZW50KSB8fCAobiA+IDAgJiYgY3VycmVudCA8IG1pbmlt
dW0oKSkgfHwgKG4gPCAwICYmIGN1cnJlbnQgPiBtYXhpbXVtKCkpKQogICAgICAgICBzZXRWYWx1
ZShzZXJpYWxpemUobiA+IDAgPyBtaW5pbXVtKCkgOiBtYXhpbXVtKCkpKTsKICAgICBlbHNlIHsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IGQyZTIzZmEzYTYzNTkwODMzZDQzYTU3MmMyZjcw
YjFlYTY5OTc2YmMuLmNkOThhMWQxOTE1YzY1ZGE4MzlmMjgwZmQzNjZkMmYzNmE5NmI3MTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvV2ViQ29yZS9o
dG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMzMwLDE2ICszMzAsNiBAQCBwcml2YXRlOgogICAg
IC8vIEhlbHBlciBmb3IgYXBwbHlTdGVwRm9yTnVtYmVyT3JSYW5nZSgpLgogICAgIGRvdWJsZSBz
dGVwQmFzZSgpIGNvbnN0OwogCi0gICAgLy8gUGFyc2VzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGFz
IHRoZSBEZXByZWNhdGVkSW5wdXRUeXBlLCBhbmQgcmV0dXJucyB0cnVlIGlmIGl0IGlzIHN1Y2Nl
c3NmdWxseSBwYXJzZWQuCi0gICAgLy8gQW4gaW5zdGFuY2UgcG9pbnRlZCBieSB0aGUgRGF0ZUNv
bXBvbmVudHMqIHBhcmFtZXRlciB3aWxsIGhhdmUgcGFyc2VkIHZhbHVlcyBhbmQgYmUKLSAgICAv
LyBtb2RpZmllZCBldmVuIGlmIHRoZSBwYXJzaW5nIGZhaWxzLiAgVGhlIERhdGVDb21wb25lbnRz
KiBwYXJhbWV0ZXIgbWF5IGJlIDAuCi0gICAgc3RhdGljIGJvb2wgcGFyc2VUb0RhdGVDb21wb25l
bnRzKERlcHJlY2F0ZWRJbnB1dFR5cGUsIGNvbnN0IFN0cmluZyYsIERhdGVDb21wb25lbnRzKik7
Ci0KLSAgICAvLyBQYXJzZXMgdGhlIHNwZWNpZmllZCBzdHJpbmcgZm9yIHRoZSBjdXJyZW50IHR5
cGUsIGFuZCByZXR1cm4KLSAgICAvLyB0aGUgZG91YmxlIHZhbHVlIGZvciB0aGUgcGFyc2luZyBy
ZXN1bHQgaWYgdGhlIHBhcnNpbmcKLSAgICAvLyBzdWNjZWVkczsgUmV0dXJucyBkZWZhdWx0VmFs
dWUgb3RoZXJ3aXNlLiBUaGlzIGZ1bmN0aW9uIGNhbgotICAgIC8vIHJldHVybiBOYU4gb3IgSW5m
aW5pdHkgb25seSBpZiBkZWZhdWx0VmFsdWUgaXMgTmFOIG9yIEluZmluaXR5LgotICAgIGRvdWJs
ZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0
OwogICAgIC8vIENyZWF0ZSBhIHN0cmluZyByZXByZXNlbnRhdGlvbiBvZiB0aGUgc3BlY2lmaWVk
IGRvdWJsZSB2YWx1ZSBmb3IgdGhlCiAgICAgLy8gY3VycmVudCBpbnB1dCB0eXBlLiBJZiBOYU4g
b3IgSW5maW5pdHkgaXMgc3BlY2lmaWVkLCB0aGlzIHJldHVybnMgYW4KICAgICAvLyBlbXRweSBz
dHJpbmcuIFRoaXMgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZm9yIHR5cGVzIHdpdGhvdXQgdmFsdWVB
c051bWJlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggYzM0MzVmN2I0YWIwNjlkNmI2NmE3ZDk0NjUyNzhh
YzMyMGI4OGJiNC4uN2I4M2NhNDQzYTdkYTgwNTRlMGE2NDFiMWVhZjhjOTA2MDcxMDQ3MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0lu
cHV0VHlwZS5jcHAKQEAgLTEyMiw2ICsxMjIsMTggQEAgYm9vbCBJbnB1dFR5cGU6OnBhdHRlcm5N
aXNtYXRjaChjb25zdCBTdHJpbmcmKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAorZG91
YmxlIElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUgZGVmYXVs
dFZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBkZWZhdWx0VmFsdWU7Cit9CisKK2Jvb2wgSW5w
dXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHMoY29uc3QgU3RyaW5nJiwgRGF0ZUNvbXBvbmVu
dHMqKSBjb25zdAoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKworCiBuYW1lc3BhY2UgSW5wdXRUeXBlTmFtZXMgewogCiAvLyBUaGUgdHlwZSBuYW1l
cyBtdXN0IGJlIGxvd2VyY2FzZWQgYmVjYXVzZSB0aGV5IHdpbGwgYmUgdGhlIHJldHVybiB2YWx1
ZXMgb2YKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuaAppbmRleCAzMTQxZjM0MmY4ZjcwOGZkODU4YTdmNTliNzBlNWE1ZDI0ZDJj
ZDc3Li45Y2U3NjQ4MTJkNWQzZDg0OTdkNDQxMDEzZWVhNDUxZmMyNjM0MTgzIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysrIGIvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
CkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRGF0ZUNv
bXBvbmVudHM7CiBjbGFzcyBIVE1MSW5wdXRFbGVtZW50OwogCiBjbGFzcyBJbnB1dFR5cGUgOiBw
dWJsaWMgTm9uY29weWFibGUgewpAQCAtNTAsNiArNTEsMTcgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHBhdHRlcm5NaXNtYXRjaChjb25zdCBTdHJpbmcmKSBjb25zdDsKIAorICAgIC8v
IFBhcnNlcyB0aGUgc3BlY2lmaWVkIHN0cmluZyBmb3IgdGhlIHR5cGUsIGFuZCByZXR1cm4KKyAg
ICAvLyB0aGUgZG91YmxlIHZhbHVlIGZvciB0aGUgcGFyc2luZyByZXN1bHQgaWYgdGhlIHBhcnNp
bmcKKyAgICAvLyBzdWNjZWVkczsgUmV0dXJucyBkZWZhdWx0VmFsdWUgb3RoZXJ3aXNlLiBUaGlz
IGZ1bmN0aW9uIGNhbgorICAgIC8vIHJldHVybiBOYU4gb3IgSW5maW5pdHkgb25seSBpZiBkZWZh
dWx0VmFsdWUgaXMgTmFOIG9yIEluZmluaXR5LgorICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9E
b3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3Q7CisgICAgLy8g
UGFyc2VzIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGZvciB0aGlzIElucHV0VHlwZSwgYW5kIHJldHVy
bnMgdHJ1ZSBpZiBpdAorICAgIC8vIGlzIHN1Y2Nlc3NmdWxseSBwYXJzZWQuIEFuIGluc3RhbmNl
IHBvaW50ZWQgYnkgdGhlIERhdGVDb21wb25lbnRzKgorICAgIC8vIHBhcmFtZXRlciB3aWxsIGhh
dmUgcGFyc2VkIHZhbHVlcyBhbmQgYmUgbW9kaWZpZWQgZXZlbiBpZiB0aGUgcGFyc2luZworICAg
IC8vIGZhaWxzLiBUaGUgRGF0ZUNvbXBvbmVudHMqIHBhcmFtZXRlciBtYXkgYmUgMC4KKyAgICB2
aXJ0dWFsIGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzKGNvbnN0IFN0cmluZyYsIERhdGVDb21w
b25lbnRzKikgY29uc3Q7CisKIHByb3RlY3RlZDoKICAgICBJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkgOiBtX2VsZW1lbnQoZWxlbWVudCkgeyB9CiAgICAgSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcCBiL1dlYkNvcmUvaHRtbC9Nb250aElucHV0
VHlwZS5jcHAKaW5kZXggNTRmNzhjNjQ1Y2MyZDhiNGUyMjAzZGY2MTg1YTMwYWVkZDI1NGIzZC4u
NTAxYmRjNzQzYmFkNDZkZDg2N2UxOWIwOGVlMjFkNWJkYzhkMjc2NiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL01vbnRoSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTW9udGhJbnB1
dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTW9udGhJbnB1dFR5cGUuaCIKIAorI2luY2x1ZGUgIkRhdGVDb21wb25lbnRzLmgiCiAjaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNCAr
NDYsMjEgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBNb250aElucHV0VHlwZTo6Zm9ybUNvbnRyb2xU
eXBlKCkgY29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6Om1vbnRoKCk7CiB9CiAKK2Rv
dWJsZSBNb250aElucHV0VHlwZTo6cGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmIHNyYywgZG91
YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAgICBEYXRlQ29tcG9uZW50cyBkYXRlOworICAg
IGlmICghcGFyc2VUb0RhdGVDb21wb25lbnRzKHNyYywgJmRhdGUpKQorICAgICAgICByZXR1cm4g
ZGVmYXVsdFZhbHVlOworICAgIGRvdWJsZSBtb250aHMgPSBkYXRlLm1vbnRoc1NpbmNlRXBvY2go
KTsKKyAgICBBU1NFUlQoaXNmaW5pdGUobW9udGhzKSk7CisgICAgcmV0dXJuIG1vbnRoczsKK30K
KworYm9vbCBNb250aElucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29u
c3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwgRGF0ZUNvbXBvbmVudHMqIG91
dCkgY29uc3QKK3sKKyAgICBBU1NFUlQob3V0KTsKKyAgICB1bnNpZ25lZCBlbmQ7CisgICAgcmV0
dXJuIG91dC0+cGFyc2VNb250aChjaGFyYWN0ZXJzLCBsZW5ndGgsIDAsIGVuZCkgJiYgZW5kID09
IGxlbmd0aDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL01vbnRoSW5wdXRUeXBlLmggYi9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApp
bmRleCBkNjA1ZmZhY2YzOGY0YTE2N2E5YmQ1NzhkYzdiMGE3MDBjYjg4ZGVhLi5hN2VhNTUwYTY4
ZmU2N2M3M2JkNjAzZTE1ZWMxNzkwM2I5MWRiM2M1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwv
TW9udGhJbnB1dFR5cGUuaAorKysgYi9XZWJDb3JlL2h0bWwvTW9udGhJbnB1dFR5cGUuaApAQCAt
MzEsMTcgKzMxLDE5IEBACiAjaWZuZGVmIE1vbnRoSW5wdXRUeXBlX2gKICNkZWZpbmUgTW9udGhJ
bnB1dFR5cGVfaAogCi0jaW5jbHVkZSAiVGV4dEZpZWxkSW5wdXRUeXBlLmgiCisjaW5jbHVkZSAi
QmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTW9udGhJbnB1dFR5cGUgOiBwdWJsaWMgVGV4dEZpZWxkSW5wdXRUeXBlIHsKK2NsYXNzIE1v
bnRoSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElucHV0RWxlbWVu
dCopOwogCiBwcml2YXRlOgotICAgIE1vbnRoSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVs
ZW1lbnQpIDogVGV4dEZpZWxkSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQorICAgIE1vbnRoSW5wdXRU
eXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBl
KGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJv
bFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0
cmluZyYsIGRvdWJsZSkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9u
ZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50
cyopIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcAppbmRleCA5YWJhNWMzMzI0ODRhMTkyNzIwN2M3NGU2YTZjOGU5ZjlmYmUxMGUxLi4y
MzBlYTZmMDM2ZTliMGZlNjA3ODE1OTFkMWJjZDRlMmI5NGViMGU2IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIk51bWJlcklucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgog
I2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1
LDQgKzQ2LDEzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTnVtYmVySW5wdXRUeXBlOjpmb3JtQ29u
dHJvbFR5cGUoKSBjb25zdAogICAgIHJldHVybiBJbnB1dFR5cGVOYW1lczo6bnVtYmVyKCk7CiB9
CiAKK2RvdWJsZSBOdW1iZXJJbnB1dFR5cGU6OnBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiBz
cmMsIGRvdWJsZSBkZWZhdWx0VmFsdWUpIGNvbnN0Cit7CisgICAgZG91YmxlIG51bWJlclZhbHVl
OworICAgIGlmICghcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUoc3JjLCAmbnVtYmVyVmFsdWUp
KQorICAgICAgICByZXR1cm4gZGVmYXVsdFZhbHVlOworICAgIEFTU0VSVChpc2Zpbml0ZShudW1i
ZXJWYWx1ZSkpOworICAgIHJldHVybiBudW1iZXJWYWx1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvV2Vi
Q29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IDUzNDcyNDkzNWE0MDc2ZjYwM2Q5NzIx
Y2Y0MjRjODRiMmM2YmU1NjguLjlhMmU5Y2QzNGZlNGM1MGFiYjNiNTYxOGNjYmE0OGM4ZGUzZGU1
MzMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAorKysgYi9XZWJD
b3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTQyLDYgKzQyLDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBOdW1iZXJJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkgOiBU
ZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNT
dHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91YmxlIHBhcnNl
VG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAg
Yi9XZWJDb3JlL2h0bWwvUmFuZ2VJbnB1dFR5cGUuY3BwCmluZGV4IGY1ZjczMjIzYWM1Y2QzZmFk
NzM1ZjE2NmIxZTZjMTM4ZmU5OGZjMjAuLjFiMDdhYzNlZGNmNDQxZGU4OWQ0NzI1MTA2MzQ3NzQ2
YWRlODJkZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5jcHAKKysr
IGIvV2ViQ29yZS9odG1sL1JhbmdlSW5wdXRUeXBlLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJhbmdlSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRl
ICJIVE1MUGFyc2VySWRpb21zLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtNDUsNCArNDYsMTMgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBS
YW5nZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4gSW5wdXRU
eXBlTmFtZXM6OnJhbmdlKCk7CiB9CiAKK2RvdWJsZSBSYW5nZUlucHV0VHlwZTo6cGFyc2VUb0Rv
dWJsZShjb25zdCBTdHJpbmcmIHNyYywgZG91YmxlIGRlZmF1bHRWYWx1ZSkgY29uc3QKK3sKKyAg
ICBkb3VibGUgbnVtYmVyVmFsdWU7CisgICAgaWYgKCFwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlw
ZShzcmMsICZudW1iZXJWYWx1ZSkpCisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7CisgICAg
QVNTRVJUKGlzZmluaXRlKG51bWJlclZhbHVlKSk7CisgICAgcmV0dXJuIG51bWJlclZhbHVlOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvUmFu
Z2VJbnB1dFR5cGUuaCBiL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCmluZGV4IGQ0MmM2
MTdiNTZhYmEwZWE4MDYzMTVkMzZkZDIwYjQ3ODI4OWJmYWYuLmU2ODFlNWEyMGNkM2Q1OTYzMTY1
NTVmODNiMDEzNjUyYmY2MzgwNTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0
VHlwZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9SYW5nZUlucHV0VHlwZS5oCkBAIC00Miw2ICs0Miw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgUmFuZ2VJbnB1dFR5cGUoSFRNTElucHV0RWxlbWVu
dCogZWxlbWVudCkgOiBJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVhbCBjb25zdCBB
dG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0OworICAgIHZpcnR1YWwgZG91Ymxl
IHBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBl
LmNwcCBiL1dlYkNvcmUvaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAppbmRleCAxNTY0YmM1OGZmMDEy
OGM3NmMzMTg5NTgxM2EzNTdlZTZkNTI0MmMwLi41MzVhYjA0OTU0OTg0ZDM2Y2Y4YTJhOTQ1NmYw
YjUyMjM4OGM1MTNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5jcHAK
KysrIGIvV2ViQ29yZS9odG1sL1RpbWVJbnB1dFR5cGUuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiVGltZUlucHV0VHlwZS5oIgogCisjaW5jbHVk
ZSAiRGF0ZUNvbXBvbmVudHMuaCIKICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC00NSw0ICs0NiwxMSBAQCBjb25zdCBBdG9taWNTdHJpbmcmIFRp
bWVJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIElucHV0VHlw
ZU5hbWVzOjp0aW1lKCk7CiB9CiAKK2Jvb2wgVGltZUlucHV0VHlwZTo6cGFyc2VUb0RhdGVDb21w
b25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwg
RGF0ZUNvbXBvbmVudHMqIG91dCkgY29uc3QKK3sKKyAgICBBU1NFUlQob3V0KTsKKyAgICB1bnNp
Z25lZCBlbmQ7CisgICAgcmV0dXJuIG91dC0+cGFyc2VUaW1lKGNoYXJhY3RlcnMsIGxlbmd0aCwg
MCwgZW5kKSAmJiBlbmQgPT0gbGVuZ3RoOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oIGIvV2ViQ29yZS9odG1sL1Rp
bWVJbnB1dFR5cGUuaAppbmRleCA5NTMwZjdkNDJiZWE2Y2RjZTA1NTVkYThjYTNlNThmNjFjNWFl
NmMxLi41ZjEyNTZkNDdkNzA5MGUzYjZkOWI4MjRiNzk0ZjkwZTg5MDgxZTM5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvVGltZUlucHV0VHlwZS5oCisrKyBiL1dlYkNvcmUvaHRtbC9UaW1lSW5w
dXRUeXBlLmgKQEAgLTMxLDE3ICszMSwxOCBAQAogI2lmbmRlZiBUaW1lSW5wdXRUeXBlX2gKICNk
ZWZpbmUgVGltZUlucHV0VHlwZV9oCiAKLSNpbmNsdWRlICJUZXh0RmllbGRJbnB1dFR5cGUuaCIK
KyNpbmNsdWRlICJCYXNlRGF0ZUFuZFRpbWVJbnB1dFR5cGUuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVibGljIFRleHRGaWVsZElucHV0VHlwZSB7
CitjbGFzcyBUaW1lSW5wdXRUeXBlIDogcHVibGljIEJhc2VEYXRlQW5kVGltZUlucHV0VHlwZSB7
CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8SW5wdXRUeXBlPiBjcmVhdGUoSFRNTElu
cHV0RWxlbWVudCopOwogCiBwcml2YXRlOgotICAgIFRpbWVJbnB1dFR5cGUoSFRNTElucHV0RWxl
bWVudCogZWxlbWVudCkgOiBUZXh0RmllbGRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CisgICAgVGlt
ZUlucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IEJhc2VEYXRlQW5kVGltZUlu
cHV0VHlwZShlbGVtZW50KSB7IH0KICAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9y
bUNvbnRyb2xUeXBlKCkgY29uc3Q7CisgICAgdmlydHVhbCBib29sIHBhcnNlVG9EYXRlQ29tcG9u
ZW50c0ludGVybmFsKGNvbnN0IFVDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50
cyopIGNvbnN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL1dlZWtJbnB1dFR5cGUuY3BwIGIvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUu
Y3BwCmluZGV4IDBiNGFiMzA2NzUwMDE1ZWU3MGYwMmNlNzUwYTUyMWE3NzU5YmU2ZDcuLjFiZGFi
ZTAyNjZhYThmOWIyOTZlY2ZlZDEwNjQ4OWEzNTg5YmE4ZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9XZWVrSW5wdXRUeXBlLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5j
cHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWVr
SW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJEYXRlQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgPHd0
Zi9QYXNzT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ1LDQgKzQ2LDExIEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgV2Vla0lucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29u
c3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OndlZWsoKTsKIH0KIAorYm9vbCBXZWVrSW5w
dXRUeXBlOjpwYXJzZVRvRGF0ZUNvbXBvbmVudHNJbnRlcm5hbChjb25zdCBVQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoLCBEYXRlQ29tcG9uZW50cyogb3V0KSBjb25zdAoreworICAg
IEFTU0VSVChvdXQpOworICAgIHVuc2lnbmVkIGVuZDsKKyAgICByZXR1cm4gb3V0LT5wYXJzZVdl
ZWsoY2hhcmFjdGVycywgbGVuZ3RoLCAwLCBlbmQpICYmIGVuZCA9PSBsZW5ndGg7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRU
eXBlLmggYi9XZWJDb3JlL2h0bWwvV2Vla0lucHV0VHlwZS5oCmluZGV4IDdiNmVlMjNkMDI1YjYx
NGM4ZDIzMjAxNzNkZGU2MTBhNDNkMjY3MTYuLmExOTBjYThiZmZkZGYzNWQxMDNmYmIwODYwMjc1
ODVhMzNkYzdmZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9XZWVrSW5wdXRUeXBlLmgKKysr
IGIvV2ViQ29yZS9odG1sL1dlZWtJbnB1dFR5cGUuaApAQCAtMzEsMTcgKzMxLDE4IEBACiAjaWZu
ZGVmIFdlZWtJbnB1dFR5cGVfaAogI2RlZmluZSBXZWVrSW5wdXRUeXBlX2gKIAotI2luY2x1ZGUg
IlRleHRGaWVsZElucHV0VHlwZS5oIgorI2luY2x1ZGUgIkJhc2VEYXRlQW5kVGltZUlucHV0VHlw
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFdlZWtJbnB1dFR5cGUgOiBwdWJs
aWMgVGV4dEZpZWxkSW5wdXRUeXBlIHsKK2NsYXNzIFdlZWtJbnB1dFR5cGUgOiBwdWJsaWMgQmFz
ZURhdGVBbmRUaW1lSW5wdXRUeXBlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093blB0cjxJ
bnB1dFR5cGU+IGNyZWF0ZShIVE1MSW5wdXRFbGVtZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgV2Vl
a0lucHV0VHlwZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KSA6IFRleHRGaWVsZElucHV0VHlw
ZShlbGVtZW50KSB7IH0KKyAgICBXZWVrSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1l
bnQpIDogQmFzZURhdGVBbmRUaW1lSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwg
Y29uc3QgQXRvbWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IGJvb2wgcGFyc2VUb0RhdGVDb21wb25lbnRzSW50ZXJuYWwoY29uc3QgVUNoYXIqLCB1bnNpZ25l
ZCBsZW5ndGgsIERhdGVDb21wb25lbnRzKikgY29uc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>