<?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>14226</bug_id>
          
          <creation_ts>2007-06-18 20:35:40 -0700</creation_ts>
          <short_desc>Move the History object out of the JS bindings</short_desc>
          <delta_ts>2007-06-19 01:13:20 -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>WebCore JavaScript</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>14192</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>7126</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 20:35:40 -0700</bug_when>
    <thetext>Forthcoming patch also renames the existing History class to GlobalHistory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7128</commentid>
    <comment_count>1</comment_count>
      <attachid>15113</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-18 20:49:17 -0700</bug_when>
    <thetext>Created attachment 15113
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7135</commentid>
    <comment_count>2</comment_count>
      <attachid>15113</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-19 01:13:02 -0700</bug_when>
    <thetext>Comment on attachment 15113
patch

Was review by Geoff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>7136</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-06-19 01:13:20 -0700</bug_when>
    <thetext>Landed in r23584.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15113</attachid>
            <date>2007-06-18 20:49:17 -0700</date>
            <delta_ts>2007-06-19 01:13:02 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoHistory.diff</filename>
            <type>text/plain</type>
            <size>47404</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMzU4MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMDctMDYtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMjYKKyAgICAgICAg
TW92ZSB0aGUgSGlzdG9yeSBvYmplY3Qgb3V0IG9mIHRoZSBKUyBiaW5kaW5ncworCisgICAgICAg
IC0gQXV0b2dlbmVyYXRlIEpTSGlzdG9yeS4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwOgorICAgICAgICAoS0pTOjpX
aW5kb3dQcml2YXRlOjpXaW5kb3dQcml2YXRlKToKKyAgICAgICAgKEtKUzo6V2luZG93OjptYXJr
KToKKyAgICAgICAgKEtKUzo6V2luZG93OjpnZXRWYWx1ZVByb3BlcnR5KToKKyAgICAgICAgKEtK
Uzo6V2luZG93OjpjbGVhckhlbHBlck9iamVjdFByb3BlcnRpZXMpOgorICAgICAgICAoS0pTOjpX
aW5kb3c6OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRv
dy5oOgorICAgICAgICAoS0pTOjpXaW5kb3c6Oik6CisgICAgICAgICogYnJpZGdlL0dsb2JhbEhp
c3RvcnkuaDogQ29waWVkIGZyb20gV2ViQ29yZS9icmlkZ2UvSGlzdG9yeS5oLgorICAgICAgICAq
IGJyaWRnZS9IaXN0b3J5Lmg6IFJlbW92ZWQuCisgICAgICAgICogYnJpZGdlL21hYy9HbG9iYWxI
aXN0b3J5TWFjLm1tOiBDb3BpZWQgZnJvbSBXZWJDb3JlL2JyaWRnZS9tYWMvSGlzdG9yeU1hYy5t
bS4KKyAgICAgICAgKiBicmlkZ2UvbWFjL0hpc3RvcnlNYWMubW06IFJlbW92ZWQuCisgICAgICAg
ICogYnJpZGdlL3dpbi9HbG9iYWxIaXN0b3J5V2luLmNwcDogQ29waWVkIGZyb20gV2ViQ29yZS9i
cmlkZ2Uvd2luL0hpc3RvcnlXaW4uY3BwLgorICAgICAgICAqIGJyaWRnZS93aW4vSGlzdG9yeVdp
bi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3NzL2Nzc3N0eWxlc2VsZWN0b3IuY3BwOgorICAg
ICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aGlzdG9yeSk6
CisgICAgICAgICogcGFnZS9ET01XaW5kb3cuaDoKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5p
ZGw6CisgICAgICAgICogcGFnZS9IaXN0b3J5LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpIaXN0b3J5OjpIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6OmZyYW1lKToK
KyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6OmRpc2Nvbm5lY3RGcmFtZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIaXN0b3J5OjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9yeTo6YmFj
ayk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Ojpmb3J3YXJkKToKKyAgICAgICAgKFdlYkNv
cmU6Okhpc3Rvcnk6OmdvKToKKyAgICAgICAgKiBwYWdlL0hpc3RvcnkuaDogQWRkZWQuCisgICAg
ICAgICogcGFnZS9IaXN0b3J5LmlkbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2RrL1Rl
bXBvcmFyeUxpbmtTdHVicy5jcHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVtcG9yYXJ5TGlu
a1N0dWJzLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93eC9UZW1wb3JhcnlMaW5rU3R1YnMuY3Bw
OgorCiAyMDA3LTA2LTE4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
UXQgYnVpbGQgZml4LgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMjM1NzgpCisrKyBX
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29weSkKQEAgLTM5Myw2ICszOTMs
NyBAQCBhbGwgOiBcCiAgICAgSlNIVE1MVGV4dEFyZWFFbGVtZW50LmggXAogICAgIEpTSFRNTFRp
dGxlRWxlbWVudC5oIFwKICAgICBKU0hUTUxVTGlzdEVsZW1lbnQuaCBcCisgICAgSlNIaXN0b3J5
LmggXAogICAgIEpTS2V5Ym9hcmRFdmVudC5oIFwKICAgICBKU01lZGlhTGlzdC5oIFwKICAgICBK
U01vdXNlRXZlbnQuaCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDIzNTc4KQorKysgV2ViQ29yZS9XZWJDb3Jl
LnBybwkod29ya2luZyBjb3B5KQpAQCAtMjU4LDYgKzI1OCw3IEBAIElETF9CSU5ESU5HUyArPSBc
CiAgICAgaHRtbC9IVE1MVUxpc3RFbGVtZW50LmlkbCBcCiAgICAgcGFnZS9CYXJJbmZvLmlkbCBc
CiAgICAgcGFnZS9ET01XaW5kb3cuaWRsIFwKKyAgICBwYWdlL0hpc3RvcnkuaWRsIFwKICAgICBw
YWdlL1NjcmVlbi5pZGwgXAogICAgIHhtbC9ET01QYXJzZXIuaWRsIFwKICAgICB4bWwvWE1MU2Vy
aWFsaXplci5pZGwKQEAgLTU2OSw2ICs1NzAsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL0Zy
YW1lLmNwcCBcCiAgICAgcGFnZS9GcmFtZVRyZWUuY3BwIFwKICAgICBwYWdlL0ZyYW1lVmlldy5j
cHAgXAorICAgIHBhZ2UvSGlzdG9yeS5jcHAgXAogICAgIHBhZ2UvTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cy5jcHAgXAogICAgIHBhZ2UvUGFnZS5jcHAgXAogICAgIHBhZ2UvU2NyZWVuLmNw
cCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDIz
NTc4KQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtNjAzLDYgKzYwMywxNCBAQAogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJ
CQkJUmVsYXRpdmVQYXRoPSIkKFdlYktpdE91dHB1dERpcilcb2JqXCQoUHJvamVjdE5hbWUpXERl
cml2ZWRTb3VyY2VzXEpTSGlzdG9yeS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
KwkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNIaXN0b3J5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUK
IAkJCQlSZWxhdGl2ZVBhdGg9IiQoV2ViS2l0T3V0cHV0RGlyKVxvYmpcJChQcm9qZWN0TmFtZSlc
RGVyaXZlZFNvdXJjZXNcSlNIVE1MQW5jaG9yRWxlbWVudC5jcHAiCiAJCQkJPgogCQkJPC9GaWxl
PgpAQCAtMjQ3MCw2ICsyNDc4LDE0IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcSGlzdG9yeS5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgor
CQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcSGlzdG9yeS5oIgorCQkJCT4KKwkJ
CTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxwYWdlXE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMuY3BwIgogCQkJCT4KIAkJCTwvRmlsZT4KQEAgLTU4NDgsNyArNTg2
NCw3IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGJyaWRnZVxIaXN0b3J5LmgiCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxicmlkZ2VcR2xvYmFsSGlz
dG9yeS5oIgogCQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCkBAIC01ODc1LDcgKzU4OTEsNyBA
QAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCi0JCQkJCVJlbGF0aXZlUGF0aD0iLi5c
YnJpZGdlXHdpblxIaXN0b3J5V2luLmNwcCIKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxicmlkZ2Vc
d2luXEdsb2JhbEhpc3RvcnlXaW4uY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxl
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMjM1NzkpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTQ3NCw4ICsxNDc0LDYgQEAKIAkJOTM1MjA4ODIwOUJENDVFOTAw
RjIwMzhEIC8qIENvb2tpZUphci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM1MjA4ODEwOUJENDVFOTAwRjIwMzhEIC8qIENvb2tpZUphci5oICovOyB9
OwogCQk5MzUzNjc2QjA5QUVEODhCMDBEMzVDRDYgLyogU2Nyb2xsVmlld01hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNTM2NzZBMDlBRUQ4OEIw
MEQzNUNENiAvKiBTY3JvbGxWaWV3TWFjLm1tICovOyB9OwogCQk5MzUzNjg2QjA5QUY3OEY2MDBE
MzVDRDYgLyogVGV4dERpcmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM1MzY4NkEwOUFGNzhGNjAwRDM1Q0Q2IC8qIFRleHREaXJlY3Rpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQk5MzVD
NDc1RDA5QUM0Q0EwMDBBNkFBQjQgLyogSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1QzQ3NUMwOUFDNENBMDAwQTZBQUI0IC8qIEhpc3Rv
cnkuaCAqLzsgfTsKLQkJOTM1QzQ3NUYwOUFDNENBRTAwQTZBQUI0IC8qIEhpc3RvcnlNYWMubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVDNDc1RTA5
QUM0Q0FFMDBBNkFBQjQgLyogSGlzdG9yeU1hYy5tbSAqLzsgfTsKIAkJOTM1QzQ3NjEwOUFDNENE
MTAwQTZBQUI0IC8qIExlbmd0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTM1QzQ3NjAwOUFDNENEMTAwQTZBQUI0IC8qIExlbmd0aC5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNUM0NzYzMDlBQzRD
RTYwMEE2QUFCNCAvKiBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVDNDc2MjA5QUM0Q0U2MDBBNkFB
QjQgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oICovOyB9OwogCQk5MzVDNDc2ODA5
QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzVDNDc2NjA5QUM0RDQzMDBBNkFBQjQg
LyogUGxhdGZvcm1LZXlib2FyZEV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4MTYsNiArMjgxNCwxMyBAQAogCQlCQzkyNkY4MDBDMDU1
MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTI2RjdFMEMwNTUyNDcwMDgyNzc2QiAv
KiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwICovOyB9OwogCQlCQzkyNkY4MTBDMDU1MjQ3MDA4
Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzkyNkY3RjBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50LmggKi87IH07CiAJCUJDOTREMTA4MEMyNzRGODgwMDZCQzYxNyAvKiBQ
bGF0Zm9ybVNjcmVlbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDOTREMTA3MEMyNzRGODgwMDZCQzYxNyAvKiBQbGF0Zm9ybVNjcmVlbk1hYy5t
bSAqLzsgfTsKKwkJQkM5NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE0QzBDMjc1
QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmNwcCAqLzsgfTsKKwkJQkM5NEQxNEYwQzI3NUM2ODAw
NkJDNjE3IC8qIEpTSGlzdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5oICovOyB9
OworCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzk0RDE1MDBDMjc1QzhCMDA2QkM2
MTcgLyogSGlzdG9yeS5jcHAgKi87IH07CisJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBI
aXN0b3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Qzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oICovOyB9OworCQlCQzk0RDE1NTBD
Mjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5pZGwgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTREMTUyMEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5
LmlkbCAqLzsgfTsKKwkJQkM5NEQxNTcwQzI3NUNBQjAwNkJDNjE3IC8qIEdsb2JhbEhpc3Rvcnku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDOTREMTU2
MEMyNzVDQUIwMDZCQzYxNyAvKiBHbG9iYWxIaXN0b3J5LmggKi87IH07CisJCUJDOTREMTU5MEMy
NzVDQjYwMDZCQzYxNyAvKiBHbG9iYWxIaXN0b3J5TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM5NEQxNTgwQzI3NUNCNjAwNkJDNjE3IC8qIEds
b2JhbEhpc3RvcnlNYWMubW0gKi87IH07CiAJCUJDOThBMjdEMEMwQzk5NTAwMDRCRUJGNyAvKiBK
U1N0eWxlU2hlZXRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkM5OEEyN0MwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3Rv
bS5jcHAgKi87IH07CiAJCUJDQTE2OUEyMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNh
cHRpb25FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQTE2OUEwMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmNwcCAqLzsgfTsKIAkJQkNBMTY5QTMwQkZENTVCNDAwMTlDQTc2IC8qIEpTSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQTE2OUExMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRpb25FbGVt
ZW50LmggKi87IH07CkBAIC00NjY3LDggKzQ2NzIsNiBAQAogCQk5MzUyMDg4MTA5QkQ0NUU5MDBG
MjAzOEQgLyogQ29va2llSmFyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENv
b2tpZUphci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzUzNjc2QTA5QUVEODhC
MDBEMzVDRDYgLyogU2Nyb2xsVmlld01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNjcm9sbFZpZXdNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzNTM2ODZBMDlBRjc4RjYwMEQzNUNENiAvKiBUZXh0RGlyZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRleHREaXJlY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTM1QzQ3NUMwOUFDNENBMDAwQTZBQUI0IC8qIEhpc3RvcnkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGlzdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk5MzVDNDc1RTA5QUM0Q0FFMDBBNkFBQjQgLyogSGlzdG9yeU1hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEhpc3RvcnlNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUM0NzYwMDlBQzRDRDEwMEE2QUFCNCAvKiBM
ZW5ndGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVuZ3RoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM1QzQ3NjYwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYxMjAsNiArNjEyMywxMyBAQAog
CQlCQzkyNkY3RTBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxGcmFtZVNldEVsZW1l
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzkyNkY3RjBDMDU1MjQ3MDA4
Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0hUTUxGcmFtZVNldEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM5NEQxMDcwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtU2NyZWVu
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzk0RDE0QzBDMjc1QzY4MDA2
QkM2MTcgLyogSlNIaXN0b3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hpc3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQzk0RDE0
RDBDMjc1QzY4MDA2QkM2MTcgLyogSlNIaXN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU0hpc3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkM5
NEQxNTAwQzI3NUM4QjAwNkJDNjE3IC8qIEhpc3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IEhpc3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzk0RDE1MTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gSGlzdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQzk0RDE1MjBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEhpc3RvcnkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlC
Qzk0RDE1NjBDMjc1Q0FCMDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR2xvYmFsSGlzdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQzk0RDE1ODBDMjc1Q0I2MDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeU1hYy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBHbG9iYWxIaXN0b3J5
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzk4QTI3QzBDMEM5OTUwMDA0
QkVCRjcgLyogSlNTdHlsZVNoZWV0Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTU3R5bGVTaGVldEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDQTE2OUEwMEJGRDU1QjQwMDE5Q0E3NiAvKiBKU0hUTUxUYWJsZUNhcHRpb25F
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxU
YWJsZUNhcHRpb25FbGVtZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNB
MTY5QTEwQkZENTVCNDAwMTlDQTc2IC8qIEpTSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTY1NTQsNiArNjU2NCw4IEBACiAJCQkJ
OTNGOUI3NzMwQkE1RkREQzAwODU0MDY0IC8qIEpTRW50aXR5UmVmZXJlbmNlLmggKi8sCiAJCQkJ
MTRFODM3ODMwOUY4NUQxQzAwQjg1QUU0IC8qIEpTRXZlbnQuY3BwICovLAogCQkJCTE0RTgzNzhE
MDlGODVENEYwMEI4NUFFNCAvKiBKU0V2ZW50LmggKi8sCisJCQkJQkM5NEQxNEMwQzI3NUM2ODAw
NkJDNjE3IC8qIEpTSGlzdG9yeS5jcHAgKi8sCisJCQkJQkM5NEQxNEQwQzI3NUM2ODAwNkJDNjE3
IC8qIEpTSGlzdG9yeS5oICovLAogCQkJCTFBNEEyREVCMEExQjg1MkEwMEM4MDdGOCAvKiBKU0hU
TUxBbmNob3JFbGVtZW50LmNwcCAqLywKIAkJCQkxQTRBMkRFQzBBMUI4NTJBMDBDODA3RjggLyog
SlNIVE1MQW5jaG9yRWxlbWVudC5oICovLAogCQkJCTFBNEEyREVEMEExQjg1MkEwMEM4MDdGOCAv
KiBKU0hUTUxBcHBsZXRFbGVtZW50LmNwcCAqLywKQEAgLTcyNTEsNiArNzI2Myw5IEBACiAJCQkJ
NjVBMjE0ODMwOTdBM0Y1MzAwQjkwNTBBIC8qIEZyYW1lVHJlZS5oICovLAogCQkJCTY1Q0JGRUY3
MDk3NEY2MDcwMDFEQUMyNSAvKiBGcmFtZVZpZXcuY3BwICovLAogCQkJCTY1Q0JGRUY4MDk3NEY2
MDcwMDFEQUMyNSAvKiBGcmFtZVZpZXcuaCAqLywKKwkJCQlCQzk0RDE1MDBDMjc1QzhCMDA2QkM2
MTcgLyogSGlzdG9yeS5jcHAgKi8sCisJCQkJQkM5NEQxNTEwQzI3NUM4QjAwNkJDNjE3IC8qIEhp
c3RvcnkuaCAqLywKKwkJCQlCQzk0RDE1MjBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5pZGwg
Ki8sCiAJCQkJOTNFQjM1NUUwOUUzN0ZENjAwRjQzNzk5IC8qIE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMuY3BwICovLAogCQkJCTkzNUM0NzYyMDlBQzRDRTYwMEE2QUFCNCAvKiBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzLmggKi8sCiAJCQkJNjVGRUE4NjgwOTgzM0FERTAwQkVENEFC
IC8qIFBhZ2UuY3BwICovLApAQCAtNzI3Myw3ICs3Mjg4LDcgQEAKIAkJCQk2NUJGMDIzNTA5NzQ4
MTkwMDBDNDMxOTYgLyogbWFjICovLAogCQkJCTU1OTk4QTVDMDUyQjU5Q0MwMDE3QTZDMSAvKiBB
WE9iamVjdENhY2hlLmggKi8sCiAJCQkJNEIzMDQzQjUwQUUwMzYzMjAwQTgyNjQ3IC8qIEVkaXRv
ckNsaWVudC5oICovLAotCQkJCTkzNUM0NzVDMDlBQzRDQTAwMEE2QUFCNCAvKiBIaXN0b3J5Lmgg
Ki8sCisJCQkJQkM5NEQxNTYwQzI3NUNBQjAwNkJDNjE3IC8qIEdsb2JhbEhpc3RvcnkuaCAqLywK
IAkJCQkwNkZDNDQyQjBCQUU1QTlFMDA5MEVERTEgLyogSmF2YVNjcmlwdFN0YXRpc3RpY3MuY3Bw
ICovLAogCQkJCTA2RkM0NDJDMEJBRTVBOUUwMDkwRURFMSAvKiBKYXZhU2NyaXB0U3RhdGlzdGlj
cy5oICovLAogCQkJCTE0RkQ2REZDMEFFNUVBMUIwMEFENjdBRCAvKiBXaW5kb3dGZWF0dXJlcy5o
ICovLApAQCAtNzI4Nyw3ICs3MzAyLDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRy
ZW4gPSAoCiAJCQkJNTU5OThBNUQwNTJCNTlDQzAwMTdBNkMxIC8qIEFYT2JqZWN0Q2FjaGVNYWMu
bW0gKi8sCi0JCQkJOTM1QzQ3NUUwOUFDNENBRTAwQTZBQUI0IC8qIEhpc3RvcnlNYWMubW0gKi8s
CisJCQkJQkM5NEQxNTgwQzI3NUNCNjAwNkJDNjE3IC8qIEdsb2JhbEhpc3RvcnlNYWMubW0gKi8s
CiAJCQkJNTU5OThBNUEwNTJCNTlDQzAwMTdBNkMxIC8qIFdlYkNvcmVBWE9iamVjdC5oICovLAog
CQkJCTU1OTk4QTVCMDUyQjU5Q0MwMDE3QTZDMSAvKiBXZWJDb3JlQVhPYmplY3QubW0gKi8sCiAJ
CQkJN0U2RkVFRDYwODk4NTgyMzAwQzQ0QzNGIC8qIFdlYkNvcmVTY3JpcHREZWJ1Z2dlci5oICov
LApAQCAtMTAzOTIsNyArMTA0MDcsNiBAQAogCQkJCUVEMkJBODNDMDlBMjRCOTEwMDZDMEFDNCAv
KiBEb2N1bWVudE1hcmtlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNDNDdFMjcwOUEzRDZGMTAw
QURCNzcxIC8qIEZvbnRGYW1pbHkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQzQ3RTZCMDlBM0ZF
NDcwMEFEQjc3MSAvKiBGb250RGVzY3JpcHRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTkzNUM0
NzVEMDlBQzRDQTAwMEE2QUFCNCAvKiBIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVD
NDc2MTA5QUM0Q0QxMDBBNkFBQjQgLyogTGVuZ3RoLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzVD
NDc2MzA5QUM0Q0U2MDBBNkFBQjQgLyogTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjgwOUFDNEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMTU5Myw2ICsxMTYwNyw5IEBACiAJCQkJ
QkNFQzAxQkUwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQzAxQzMwQzI3NERERDAwOUY0RUM5IC8qIEpTU2NyZWVuLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0VDMDFENzBDMjc0RUI0MDA5RjRFQzkgLyogUGxhdGZvcm1TY3JlZW4uaCBpbiBIZWFkZXJz
ICovLAorCQkJCUJDOTREMTRGMEMyNzVDNjgwMDZCQzYxNyAvKiBKU0hpc3RvcnkuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUJDOTREMTU0MEMyNzVDOEIwMDZCQzYxNyAvKiBIaXN0b3J5LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlCQzk0RDE1NzBDMjc1Q0FCMDA2QkM2MTcgLyogR2xvYmFsSGlzdG9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CkBAIC0xMTcwOCw2ICsxMTcyNSw3IEBACiAJCQkJMUFCMUFFN0IwQzA1
MUZERTAwMTM5RjRGIC8qIHpvb21PdXRDdXJzb3IucG5nIGluIFJlc291cmNlcyAqLywKIAkJCQlC
QzEyNEVFOTBDMjY0MUNEMDA5RTIzNDkgLyogQmFySW5mby5pZGwgaW4gUmVzb3VyY2VzICovLAog
CQkJCUJDRUMwMUJGMEMyNzREQUMwMDlGNEVDOSAvKiBTY3JlZW4uaWRsIGluIFJlc291cmNlcyAq
LywKKwkJCQlCQzk0RDE1NTBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9yeS5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtMTIwNTAsNyArMTIwNjgsNiBAQAogCQkJCTkzODBGNDc4MDlBMTFBQ0MwMDFG
REIzNCAvKiBXaWRnZXRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5MzZCNDI0RTA5QTQzNkNE
MDBCQUE4MjAgLyogU1ZHQ1NTUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQzQ3RTI2
MDlBM0Q2RjEwMEFEQjc3MSAvKiBGb250RmFtaWx5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTkz
NUM0NzVGMDlBQzRDQUUwMEE2QUFCNCAvKiBIaXN0b3J5TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM1QzQ3NzAwOUFDNEQ3MzAwQTZBQUI0IC8qIEtleUV2ZW50TWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJOTM1QzQ3NzEwOUFDNEQ3MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudE1h
Yy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzNUM0NzczMDlBQzRENzcwMEE2QUFCNCAvKiBXaGVl
bEV2ZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCkBAIC0xMzAyMyw2ICsxMzA0MCw5IEBACiAJCQkJ
QkNFQzAxQkQwQzI3NERBQzAwOUY0RUM5IC8qIFNjcmVlbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0VDMDFDMjBDMjc0REREMDA5RjRFQzkgLyogSlNTY3JlZW4uY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM5NEQxMDgwQzI3NEY4ODAwNkJDNjE3IC8qIFBsYXRmb3JtU2NyZWVuTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJQkM5NEQxNEUwQzI3NUM2ODAwNkJDNjE3IC8qIEpTSGlzdG9yeS5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzk0RDE1MzBDMjc1QzhCMDA2QkM2MTcgLyogSGlzdG9y
eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQzk0RDE1OTBDMjc1Q0I2MDA2QkM2MTcgLyogR2xv
YmFsSGlzdG9yeU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9ranNfd2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193
aW5kb3cuY3BwCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dp
bmRvdy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgyLDggKzgyLDcgQEAgY29uc3QgZG91YmxlIGNN
aW5pbXVtVGltZXJJbnRlcnZhbCA9IDAuMAogCiBzdHJ1Y3QgV2luZG93UHJpdmF0ZSB7CiAgICAg
V2luZG93UHJpdmF0ZSgpIAotICAgICAgICA6IGhpc3RvcnkoMCkKLSAgICAgICAgLCBsb2MoMCkK
KyAgICAgICAgOiBsb2MoMCkKICAgICAgICAgLCBtX3NlbGVjdGlvbigwKQogICAgICAgICAsIG1f
ZXZ0KDApCiAgICAgICAgICwgbV9yZXR1cm5WYWx1ZVNsb3QoMCkKQEAgLTk0LDcgKzkzLDYgQEAg
c3RydWN0IFdpbmRvd1ByaXZhdGUgewogICAgIFdpbmRvdzo6TGlzdGVuZXJzTWFwIGpzSFRNTEV2
ZW50TGlzdGVuZXJzOwogICAgIFdpbmRvdzo6VW5wcm90ZWN0ZWRMaXN0ZW5lcnNNYXAganNVbnBy
b3RlY3RlZEV2ZW50TGlzdGVuZXJzOwogICAgIFdpbmRvdzo6VW5wcm90ZWN0ZWRMaXN0ZW5lcnNN
YXAganNVbnByb3RlY3RlZEhUTUxFdmVudExpc3RlbmVyczsKLSAgICBtdXRhYmxlIEhpc3Rvcnkq
IGhpc3Rvcnk7CiAgICAgbXV0YWJsZSBMb2NhdGlvbiogbG9jOwogICAgIG11dGFibGUgU2VsZWN0
aW9uKiBtX3NlbGVjdGlvbjsKICAgICBXZWJDb3JlOjpFdmVudCAqbV9ldnQ7CkBAIC0xMzksMjcg
KzEzNyw3IEBAIHB1YmxpYzoKICAgICBTY2hlZHVsZWRBY3Rpb24gKmFjdGlvbjsKIH07CiAKLS8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8gSGlzdG9yeSBPYmplY3QgLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vCi0KLSAgY2xhc3MgSGlzdG9yeSA6IHB1YmxpYyBET01PYmplY3QgewotICAgIGZyaWVuZCBj
bGFzcyBIaXN0b3J5RnVuYzsKLSAgcHVibGljOgotICAgIEhpc3RvcnkoRXhlY1N0YXRlICpleGVj
LCBGcmFtZSAqZikKLSAgICAgIDogbV9mcmFtZShmKQotICAgIHsKLSAgICAgIHNldFByb3RvdHlw
ZShleGVjLT5sZXhpY2FsSW50ZXJwcmV0ZXIoKS0+YnVpbHRpbk9iamVjdFByb3RvdHlwZSgpKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwotICAgIEpTVmFsdWUgKmdldFZhbHVl
UHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0OwotICAgIHZpcnR1YWwg
Y29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQotICAg
IHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKLSAgICBlbnVtIHsgQmFjaywgRm9yd2FyZCwg
R28sIExlbmd0aCB9OwotICAgIHZvaWQgZGlzY29ubmVjdEZyYW1lKCkgeyBtX2ZyYW1lID0gMDsg
fQotICBwcml2YXRlOgotICAgIEZyYW1lKiBtX2ZyYW1lOwotICB9OwotCi19Cit9IC8vIG5hbWVz
cGFjZSBLSlMKIAogI2luY2x1ZGUgImtqc193aW5kb3cubHV0LmgiCiAKQEAgLTE4MCw3ICsxNTgs
NiBAQCBjb25zdCBDbGFzc0luZm8gV2luZG93OjppbmZvID0geyAiV2luZG93CiAgIHN0YXR1cyAg
ICAgICAgV2luZG93OjpTdGF0dXMgICAgICAgICAgRG9udERlbGV0ZQogICBET01FeGNlcHRpb24g
IFdpbmRvdzo6RE9NRXhjZXB0aW9uICAgIERvbnREZWxldGUKICAgZnJhbWVzICAgICAgICBXaW5k
b3c6OkZyYW1lcyAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGhpc3RvcnkgICAgICAg
V2luZG93OjpIaXN0b3J5XyAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQogICBldmVudCAgICAg
ICAgIFdpbmRvdzo6RXZlbnRfICAgICAgICAgIERvbnREZWxldGUKICAgaW5uZXJIZWlnaHQgICBX
aW5kb3c6OklubmVySGVpZ2h0ICAgICBEb250RGVsZXRlfFJlYWRPbmx5CiAgIGlubmVyV2lkdGgg
ICAgV2luZG93OjpJbm5lcldpZHRoICAgICAgRG9udERlbGV0ZXxSZWFkT25seQpAQCAtMzU2LDgg
KzMzMyw2IEBAIGJvb2wgV2luZG93OjpmaW5kKGNvbnN0IFN0cmluZyYgc3RyaW5nLCAKIHZvaWQg
V2luZG93OjptYXJrKCkKIHsKICAgSlNPYmplY3Q6Om1hcmsoKTsKLSAgaWYgKGQtPmhpc3Rvcnkg
JiYgIWQtPmhpc3RvcnktPm1hcmtlZCgpKQotICAgIGQtPmhpc3RvcnktPm1hcmsoKTsKICAgaWYg
KGQtPmxvYyAmJiAhZC0+bG9jLT5tYXJrZWQoKSkKICAgICBkLT5sb2MtPm1hcmsoKTsKICAgaWYg
KGQtPm1fc2VsZWN0aW9uICYmICFkLT5tX3NlbGVjdGlvbi0+bWFya2VkKCkpCkBAIC01ODcsMTAg
KzU2Miw2IEBAIEpTVmFsdWUgKldpbmRvdzo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3QKICAgICAg
IHJldHVybiBqc1N0cmluZyhVU3RyaW5nKG1fZnJhbWUtPmpzU3RhdHVzQmFyVGV4dCgpKSk7CiAg
ICAgY2FzZSBGcmFtZXM6CiAgICAgICByZXR1cm4gcmV0cmlldmUobV9mcmFtZSk7Ci0gICAgY2Fz
ZSBIaXN0b3J5XzoKLSAgICAgIGlmICghZC0+aGlzdG9yeSkKLSAgICAgICAgZC0+aGlzdG9yeSA9
IG5ldyBIaXN0b3J5KGV4ZWMsIG1fZnJhbWUpOwotICAgICAgcmV0dXJuIGQtPmhpc3Rvcnk7CiAg
ICAgY2FzZSBFdmVudF86CiAgICAgICBpZiAoIWQtPm1fZXZ0KQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKQEAgLTEyMjIsNyArMTE5Myw2IEBAIEpTVW5wcm90ZWN0ZWRFdmVudExpc3Rl
bmVyICpXaW5kb3c6OmZpbmQKIAogdm9pZCBXaW5kb3c6OmNsZWFySGVscGVyT2JqZWN0UHJvcGVy
dGllcygpCiB7Ci0gIGQtPmhpc3RvcnkgPSAwOwogICBkLT5sb2MgPSAwOwogICBkLT5tX3NlbGVj
dGlvbiA9IDA7CiAgIGQtPm1fZXZ0ID0gMDsKQEAgLTE4NTksOCArMTgyOSw2IEBAIHZvaWQgV2lu
ZG93OjpkaXNjb25uZWN0RnJhbWUoKQogICAgICAgICBkLT5sb2MtPm1fZnJhbWUgPSAwOwogICAg
IGlmIChkLT5tX3NlbGVjdGlvbikKICAgICAgICAgZC0+bV9zZWxlY3Rpb24tPm1fZnJhbWUgPSAw
OwotICAgIGlmIChkLT5oaXN0b3J5KQotICAgICAgICBkLT5oaXN0b3J5LT5kaXNjb25uZWN0RnJh
bWUoKTsKIH0KIAogV2luZG93OjpMaXN0ZW5lcnNNYXAmIFdpbmRvdzo6anNFdmVudExpc3RlbmVy
cygpCkBAIC0yMjE4LDU2ICsyMTg2LDYgQEAgSlNWYWx1ZSAqU2VsZWN0aW9uRnVuYzo6Y2FsbEFz
RnVuY3Rpb24oRQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCi0vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vIEhpc3RvcnkgT2JqZWN0IC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotCi1jb25z
dCBDbGFzc0luZm8gSGlzdG9yeTo6aW5mbyA9IHsgIkhpc3RvcnkiLCAwLCAmSGlzdG9yeVRhYmxl
LCAwIH07Ci0vKgotQGJlZ2luIEhpc3RvcnlUYWJsZSA0Ci0gIGxlbmd0aCAgICAgICAgSGlzdG9y
eTo6TGVuZ3RoICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBiYWNrICAgICAgICAgIEhp
c3Rvcnk6OkJhY2sgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBmb3J3YXJkICAg
ICAgIEhpc3Rvcnk6OkZvcndhcmQgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBnbyAg
ICAgICAgICAgIEhpc3Rvcnk6OkdvICAgICAgICAgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMQot
QGVuZAotKi8KLUtKU19JTVBMRU1FTlRfUFJPVE9UWVBFX0ZVTkNUSU9OKEhpc3RvcnlGdW5jKQot
Ci1ib29sIEhpc3Rvcnk6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICByZXR1
cm4gZ2V0U3RhdGljUHJvcGVydHlTbG90PEhpc3RvcnlGdW5jLCBIaXN0b3J5LCBKU09iamVjdD4o
ZXhlYywgJkhpc3RvcnlUYWJsZSwgdGhpcywgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotSlNW
YWx1ZSAqSGlzdG9yeTo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKiwgaW50IHRva2VuKSBj
b25zdAotewotICAgIEFTU0VSVCh0b2tlbiA9PSBMZW5ndGgpOwotICAgIHJldHVybiBtX2ZyYW1l
ID8ganNOdW1iZXIobV9mcmFtZS0+bG9hZGVyKCktPmdldEhpc3RvcnlMZW5ndGgoKSkgOiBqc051
bWJlcigwKTsKLX0KLQotSlNWYWx1ZSAqSGlzdG9yeUZ1bmM6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNT
dGF0ZSAqZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpCi17Ci0gIGlm
ICghdGhpc09iai0+aW5oZXJpdHMoJkhpc3Rvcnk6OmluZm8pKQotICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0gIEhpc3RvcnkgKmhpc3RvcnkgPSBzdGF0aWNfY2FzdDxI
aXN0b3J5ICo+KHRoaXNPYmopOwotCi0gIGludCBzdGVwczsKLSAgc3dpdGNoIChpZCkgewotICBj
YXNlIEhpc3Rvcnk6OkJhY2s6Ci0gICAgc3RlcHMgPSAtMTsKLSAgICBicmVhazsKLSAgY2FzZSBI
aXN0b3J5OjpGb3J3YXJkOgotICAgIHN0ZXBzID0gMTsKLSAgICBicmVhazsKLSAgY2FzZSBIaXN0
b3J5OjpHbzoKLSAgICBzdGVwcyA9IGFyZ3NbMF0tPnRvSW50MzIoZXhlYyk7Ci0gICAgYnJlYWs7
Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gIH0KLQotICBpZiAoRnJh
bWUqIGZyYW1lID0gaGlzdG9yeS0+bV9mcmFtZSkKLSAgICAgIGZyYW1lLT5sb2FkZXIoKS0+c2No
ZWR1bGVIaXN0b3J5TmF2aWdhdGlvbihzdGVwcyk7Ci0gIHJldHVybiBqc1VuZGVmaW5lZCgpOwot
fQotCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwogCiBQYXVzZWRUaW1lb3V0czo6flBhdXNlZFRpbWVv
dXRzKCkKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCShyZXZpc2lvbiAyMzU3OCkKKysr
IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw4
ICszNiw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIEtKUyB7CiAKLSAgICBj
bGFzcyBCYXJJbmZvOwotICAgIGNsYXNzIEhpc3Rvcnk7CiAgICAgY2xhc3MgSlNFdmVudExpc3Rl
bmVyOwogICAgIGNsYXNzIEpTTGF6eUV2ZW50TGlzdGVuZXI7CiAgICAgY2xhc3MgSlNVbnByb3Rl
Y3RlZEV2ZW50TGlzdGVuZXI7CkBAIC0xNTAsNyArMTQ4LDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAg
ICAgCiAgICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0
dXJuICZpbmZvOyB9CiAgICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAgIGVudW0g
eyBBVG9CLCBCVG9BLCBDbG9zZWQsIENyeXB0bywgRGVmYXVsdFN0YXR1cywgU3RhdHVzLCBET01F
eGNlcHRpb24sIEZyYW1lcywgSGlzdG9yeV8sIEV2ZW50XywgSW5uZXJIZWlnaHQsCisgICAgZW51
bSB7IEFUb0IsIEJUb0EsIENsb3NlZCwgQ3J5cHRvLCBEZWZhdWx0U3RhdHVzLCBTdGF0dXMsIERP
TUV4Y2VwdGlvbiwgRnJhbWVzLCBFdmVudF8sIElubmVySGVpZ2h0LAogICAgICAgICAgICBJbm5l
cldpZHRoLCBMZW5ndGgsIExvY2F0aW9uXywgTmFtZSwgTmF2aWdhdG9yXywgQ2xpZW50SW5mb3Jt
YXRpb24sCiAgICAgICAgICAgIE9mZnNjcmVlbkJ1ZmZlcmluZywgT3BlbmVyLCBPdXRlckhlaWdo
dCwgT3V0ZXJXaWR0aCwgUGFnZVhPZmZzZXQsIFBhZ2VZT2Zmc2V0LAogICAgICAgICAgICBQYXJl
bnQsIFNjcmVlblgsIFNjcmVlblksIFNjcm9sbCwgU2Nyb2xsQnksCkluZGV4OiBXZWJDb3JlL2Jy
aWRnZS9HbG9iYWxIaXN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvR2xvYmFs
SGlzdG9yeS5oCShyZXZpc2lvbiAyMzU3OCkJKGZyb20gV2ViQ29yZS9icmlkZ2UvSGlzdG9yeS5o
OjIzNTc4KQorKysgV2ViQ29yZS9icmlkZ2UvR2xvYmFsSGlzdG9yeS5oCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0
ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgSGlzdG9yeV9o
CisjZGVmaW5lIEhpc3RvcnlfaAorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBE
ZXByZWNhdGVkU3RyaW5nOworCisgICAgYm9vbCBoaXN0b3J5Q29udGFpbnMoY29uc3QgRGVwcmVj
YXRlZFN0cmluZyYpOworCit9CisKKyNlbmRpZgpJbmRleDogV2ViQ29yZS9icmlkZ2UvR2xvYmFs
SGlzdG9yeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL0dsb2JhbEhpc3RvcnkuaAko
cmV2aXNpb24gMjM1NzgpCisrKyBXZWJDb3JlL2JyaWRnZS9HbG9iYWxIaXN0b3J5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDggKzIzLDggQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAogICovCiAKLSNpZm5k
ZWYgSGlzdG9yeV9oCi0jZGVmaW5lIEhpc3RvcnlfaAorI2lmbmRlZiBHbG9iYWxIaXN0b3J5X2gK
KyNkZWZpbmUgR2xvYmFsSGlzdG9yeV9oCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzIs
NiArMzIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBib29sIGhpc3RvcnlDb250YWlu
cyhjb25zdCBEZXByZWNhdGVkU3RyaW5nJik7CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAotI2VuZGlmCisjZW5kaWYgLy8gR2xvYmFsSGlzdG9yeV9oCkluZGV4OiBXZWJDb3JlL2JyaWRn
ZS9IaXN0b3J5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9icmlkZ2UvSGlzdG9yeS5oCShyZXZp
c2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvYnJpZGdlL0hpc3RvcnkuaAkod29ya2luZyBjb3B5KQpA
QCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEhpc3RvcnlfaAot
I2RlZmluZSBIaXN0b3J5X2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAgY2xhc3MgRGVw
cmVjYXRlZFN0cmluZzsKLQotICAgIGJvb2wgaGlzdG9yeUNvbnRhaW5zKGNvbnN0IERlcHJlY2F0
ZWRTdHJpbmcmKTsKLQotfQotCi0jZW5kaWYKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9HbG9i
YWxIaXN0b3J5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL21hYy9HbG9iYWxI
aXN0b3J5TWFjLm1tCShyZXZpc2lvbiAyMzU3OCkJKGZyb20gV2ViQ29yZS9icmlkZ2UvbWFjL0hp
c3RvcnlNYWMubW06MjM1NzgpCisrKyBXZWJDb3JlL2JyaWRnZS9tYWMvR2xvYmFsSGlzdG9yeU1h
Yy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkhpc3RvcnkuaCIKKworI2ltcG9ydCAiRGVw
cmVjYXRlZFN0cmluZy5oIgorI2ltcG9ydCAiV2ViQ29yZUhpc3RvcnkuaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitib29sIGhpc3RvcnlDb250YWlucyhjb25zdCBEZXByZWNhdGVkU3RyaW5n
JiBzKQoreworICAgIC8vIHRoZSBvdGhlciBzaWRlIG9mIHRoZSBicmlkZ2UgaXMgY2FyZWZ1bCBu
b3QgdG8gdGhyb3cgZXhjZXB0aW9ucyBoZXJlCisgICAgaWYgKHMuaGFzRmFzdExhdGluMSgpKQor
ICAgICAgICByZXR1cm4gW1tXZWJDb3JlSGlzdG9yeSBoaXN0b3J5UHJvdmlkZXJdIGNvbnRhaW5z
SXRlbUZvclVSTExhdGluMTpzLmxhdGluMSgpIGxlbmd0aDpzLmxlbmd0aCgpXTsKKyAgICByZXR1
cm4gW1tXZWJDb3JlSGlzdG9yeSBoaXN0b3J5UHJvdmlkZXJdIGNvbnRhaW5zSXRlbUZvclVSTFVu
aWNvZGU6KFVuaUNoYXIgKilzLnVuaWNvZGUoKSBsZW5ndGg6cy5sZW5ndGgoKV07Cit9CisKK30K
SW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9HbG9iYWxIaXN0b3J5TWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvYnJpZGdlL21hYy9HbG9iYWxIaXN0b3J5TWFjLm1tCShyZXZpc2lvbiAyMzU3
OCkKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9HbG9iYWxIaXN0b3J5TWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21w
dXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNiwg
MjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0yNCw3ICsyNCw3IEBACiAgKi8KIAogI2ltcG9ydCAiY29uZmlnLmgi
Ci0jaW1wb3J0ICJIaXN0b3J5LmgiCisjaW1wb3J0ICJHbG9iYWxIaXN0b3J5LmgiCiAKICNpbXBv
cnQgIkRlcHJlY2F0ZWRTdHJpbmcuaCIKICNpbXBvcnQgIldlYkNvcmVIaXN0b3J5LmgiCkBAIC0z
OSw0ICszOSw0IEBAIGJvb2wgaGlzdG9yeUNvbnRhaW5zKGNvbnN0IERlcHJlY2F0ZWRTdHIKICAg
ICByZXR1cm4gW1tXZWJDb3JlSGlzdG9yeSBoaXN0b3J5UHJvdmlkZXJdIGNvbnRhaW5zSXRlbUZv
clVSTFVuaWNvZGU6KFVuaUNoYXIgKilzLnVuaWNvZGUoKSBsZW5ndGg6cy5sZW5ndGgoKV07CiB9
CiAKLX0KK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYnJpZGdlL21hYy9I
aXN0b3J5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYnJpZGdlL21hYy9IaXN0b3J5TWFj
Lm1tCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvYnJpZGdlL21hYy9IaXN0b3J5TWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9S
Ci0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiSGlzdG9yeS5oIgotCi0jaW1wb3J0ICJEZXByZWNh
dGVkU3RyaW5nLmgiCi0jaW1wb3J0ICJXZWJDb3JlSGlzdG9yeS5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLWJvb2wgaGlzdG9yeUNvbnRhaW5zKGNvbnN0IERlcHJlY2F0ZWRTdHJpbmcmIHMp
Ci17Ci0gICAgLy8gdGhlIG90aGVyIHNpZGUgb2YgdGhlIGJyaWRnZSBpcyBjYXJlZnVsIG5vdCB0
byB0aHJvdyBleGNlcHRpb25zIGhlcmUKLSAgICBpZiAocy5oYXNGYXN0TGF0aW4xKCkpCi0gICAg
ICAgIHJldHVybiBbW1dlYkNvcmVIaXN0b3J5IGhpc3RvcnlQcm92aWRlcl0gY29udGFpbnNJdGVt
Rm9yVVJMTGF0aW4xOnMubGF0aW4xKCkgbGVuZ3RoOnMubGVuZ3RoKCldOwotICAgIHJldHVybiBb
W1dlYkNvcmVIaXN0b3J5IGhpc3RvcnlQcm92aWRlcl0gY29udGFpbnNJdGVtRm9yVVJMVW5pY29k
ZTooVW5pQ2hhciAqKXMudW5pY29kZSgpIGxlbmd0aDpzLmxlbmd0aCgpXTsKLX0KLQotfQpJbmRl
eDogV2ViQ29yZS9icmlkZ2Uvd2luL0dsb2JhbEhpc3RvcnlXaW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvYnJpZGdlL3dpbi9HbG9iYWxIaXN0b3J5V2luLmNwcAkocmV2aXNpb24gMjM1Nzgp
CShmcm9tIFdlYkNvcmUvYnJpZGdlL3dpbi9IaXN0b3J5V2luLmNwcDoyMzU3OCkKKysrIFdlYkNv
cmUvYnJpZGdlL3dpbi9HbG9iYWxIaXN0b3J5V2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIaXN0b3J5LmgiCisKKyNpbmNsdWRlICJEZXByZWNhdGVkU3RyaW5nLmgiCisjaW5jbHVkZSAi
V2ViQ29yZUhpc3RvcnkuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIGhpc3RvcnlD
b250YWlucyhjb25zdCBEZXByZWNhdGVkU3RyaW5nJiBzKQoreworICAgIGlmICghV2ViQ29yZUhp
c3Rvcnk6Omhpc3RvcnlQcm92aWRlcigpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAv
LyB0aGUgb3RoZXIgc2lkZSBvZiB0aGUgYnJpZGdlIGlzIGNhcmVmdWwgbm90IHRvIHRocm93IGV4
Y2VwdGlvbnMgaGVyZQorICAgIGlmIChzLmhhc0Zhc3RMYXRpbjEoKSkKKyAgICAgICAgcmV0dXJu
IFdlYkNvcmVIaXN0b3J5OjpoaXN0b3J5UHJvdmlkZXIoKS0+Y29udGFpbnNJdGVtRm9yVVJMTGF0
aW4xKHMubGF0aW4xKCksIHMubGVuZ3RoKCkpOworICAgIHJldHVybiBXZWJDb3JlSGlzdG9yeTo6
aGlzdG9yeVByb3ZpZGVyKCktPmNvbnRhaW5zSXRlbUZvclVSTFVuaWNvZGUoKFVDaGFyKilzLnVu
aWNvZGUoKSwgcy5sZW5ndGgoKSk7Cit9CisKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CkluZGV4OiBXZWJDb3JlL2JyaWRnZS93aW4vR2xvYmFsSGlzdG9yeVdpbi5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9icmlkZ2Uvd2luL0dsb2JhbEhpc3RvcnlXaW4uY3BwCShyZXZpc2lvbiAy
MzU3OCkKKysrIFdlYkNvcmUvYnJpZGdlL3dpbi9HbG9iYWxIaXN0b3J5V2luLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJIaXN0b3J5LmgiCisjaW5jbHVkZSAiR2xvYmFsSGlzdG9yeS5oIgogCiAjaW5jbHVk
ZSAiRGVwcmVjYXRlZFN0cmluZy5oIgogI2luY2x1ZGUgIldlYkNvcmVIaXN0b3J5LmgiCkBAIC00
Miw0ICs0Miw0IEBAIGJvb2wgaGlzdG9yeUNvbnRhaW5zKGNvbnN0IERlcHJlY2F0ZWRTdHIKICAg
ICByZXR1cm4gV2ViQ29yZUhpc3Rvcnk6Omhpc3RvcnlQcm92aWRlcigpLT5jb250YWluc0l0ZW1G
b3JVUkxVbmljb2RlKChVQ2hhciopcy51bmljb2RlKCksIHMubGVuZ3RoKCkpOwogfQogCi19Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9icmlkZ2Uvd2luL0hpc3RvcnlXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YnJpZGdlL3dpbi9IaXN0b3J5V2luLmNwcAkocmV2aXNpb24gMjM1NzgpCisrKyBXZWJDb3JlL2Jy
aWRnZS93aW4vSGlzdG9yeVdpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSGlzdG9yeS5o
IgotCi0jaW5jbHVkZSAiRGVwcmVjYXRlZFN0cmluZy5oIgotI2luY2x1ZGUgIldlYkNvcmVIaXN0
b3J5LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotYm9vbCBoaXN0b3J5Q29udGFpbnMoY29u
c3QgRGVwcmVjYXRlZFN0cmluZyYgcykKLXsKLSAgICBpZiAoIVdlYkNvcmVIaXN0b3J5OjpoaXN0
b3J5UHJvdmlkZXIoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgLy8gdGhlIG90aGVy
IHNpZGUgb2YgdGhlIGJyaWRnZSBpcyBjYXJlZnVsIG5vdCB0byB0aHJvdyBleGNlcHRpb25zIGhl
cmUKLSAgICBpZiAocy5oYXNGYXN0TGF0aW4xKCkpCi0gICAgICAgIHJldHVybiBXZWJDb3JlSGlz
dG9yeTo6aGlzdG9yeVByb3ZpZGVyKCktPmNvbnRhaW5zSXRlbUZvclVSTExhdGluMShzLmxhdGlu
MSgpLCBzLmxlbmd0aCgpKTsKLSAgICByZXR1cm4gV2ViQ29yZUhpc3Rvcnk6Omhpc3RvcnlQcm92
aWRlcigpLT5jb250YWluc0l0ZW1Gb3JVUkxVbmljb2RlKChVQ2hhciopcy51bmljb2RlKCksIHMu
bGVuZ3RoKCkpOwotfQotCi19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogV2Vi
Q29yZS9jc3MvY3Nzc3R5bGVzZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3Mv
Y3Nzc3R5bGVzZWxlY3Rvci5jcHAJKHJldmlzaW9uIDIzNTc4KQorKysgV2ViQ29yZS9jc3MvY3Nz
c3R5bGVzZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4LDI4ICszOCwyOCBAQAogI2lu
Y2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAj
aW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCi0jaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUg
IkNhY2hlZEltYWdlLmgiCisjaW5jbHVkZSAiQ291bnRlci5oIgogI2luY2x1ZGUgIkRhc2hib2Fy
ZFJlZ2lvbi5oIgogI2luY2x1ZGUgIkZvbnRGYW1pbHlWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRW
YWx1ZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCisjaW5j
bHVkZSAiR2xvYmFsSGlzdG9yeS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhpc3RvcnkuaCIKLSNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIk1lZGlhTGlzdC5oIgogI2luY2x1ZGUgIk1lZGlhUXVlcnlFdmFsdWF0
b3IuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiUmVjdC5oIgogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTaGFkb3dWYWx1
ZS5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0LmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U3R5
bGVTaGVldHMuaCIKICNpbmNsdWRlICJsb2FkZXIuaCIKLSNpbmNsdWRlICJTaGFkb3dWYWx1ZS5o
IgogCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCkluZGV4OiBXZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAkocmV2aXNpb24gMjM1NzgpCisrKyBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNp
bmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiSGlz
dG9yeS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgog
I2luY2x1ZGUgIlNjcmVlbi5oIgpAQCAtNjAsNiArNjEsOCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlz
Y29ubmVjdEZyYW1lKCkKICAgICBtX2ZyYW1lID0gMDsKICAgICBpZiAobV9zY3JlZW4pCiAgICAg
ICAgIG1fc2NyZWVuLT5kaXNjb25uZWN0RnJhbWUoKTsKKyAgICBpZiAobV9oaXN0b3J5KQorICAg
ICAgICBtX2hpc3RvcnktPmRpc2Nvbm5lY3RGcmFtZSgpOwogICAgIGlmIChtX2xvY2F0aW9uYmFy
KQogICAgICAgICBtX2xvY2F0aW9uYmFyLT5kaXNjb25uZWN0RnJhbWUoKTsKICAgICBpZiAobV9t
ZW51YmFyKQpAQCAtODEsNiArODQsMTMgQEAgU2NyZWVuKiBET01XaW5kb3c6OnNjcmVlbigpIGNv
bnN0CiAgICAgcmV0dXJuIG1fc2NyZWVuLmdldCgpOwogfQogCitIaXN0b3J5KiBET01XaW5kb3c6
Omhpc3RvcnkoKSBjb25zdAoreworICAgIGlmICghbV9oaXN0b3J5KQorICAgICAgICBtX2hpc3Rv
cnkgPSBuZXcgSGlzdG9yeShtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9oaXN0b3J5LmdldCgpOwor
fQorCiBCYXJJbmZvKiBET01XaW5kb3c6OmxvY2F0aW9uYmFyKCkgY29uc3QKIHsKICAgICBpZiAo
IW1fbG9jYXRpb25iYXIpCkluZGV4OiBXZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgRG9jdW1lbnQ7CiAgICAgY2xhc3MgRWxlbWVudDsK
ICAgICBjbGFzcyBGcmFtZTsKKyAgICBjbGFzcyBIaXN0b3J5OwogICAgIGNsYXNzIFNjcmVlbjsK
ICAgICBjbGFzcyBTdHJpbmc7CiAgICAgCkBAIC01MSw2ICs1Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogICAgICAgICAvLyBET00gTGV2ZWwgMAogICAgICAgICBTY3JlZW4qIHNjcmVlbigp
IGNvbnN0OworICAgICAgICBIaXN0b3J5KiBoaXN0b3J5KCkgY29uc3Q7CiAgICAgICAgIEJhcklu
Zm8qIGxvY2F0aW9uYmFyKCkgY29uc3Q7CiAgICAgICAgIEJhckluZm8qIG1lbnViYXIoKSBjb25z
dDsKICAgICAgICAgQmFySW5mbyogcGVyc29uYWxiYXIoKSBjb25zdDsKQEAgLTcxLDYgKzczLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIHByaXZhdGU6CiAgICAgICAgIEZyYW1lKiBtX2Zy
YW1lOwogICAgICAgICBtdXRhYmxlIFJlZlB0cjxTY3JlZW4+IG1fc2NyZWVuOworICAgICAgICBt
dXRhYmxlIFJlZlB0cjxIaXN0b3J5PiBtX2hpc3Rvcnk7CiAgICAgICAgIG11dGFibGUgUmVmUHRy
PEJhckluZm8+IG1fbG9jYXRpb25iYXI7CiAgICAgICAgIG11dGFibGUgUmVmUHRyPEJhckluZm8+
IG1fbWVudWJhcjsKICAgICAgICAgbXV0YWJsZSBSZWZQdHI8QmFySW5mbz4gbV9wZXJzb25hbGJh
cjsKSW5kZXg6IFdlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBAIG1vZHVsZSB3aW5k
b3cgewogICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6V2luZG93LCBEb05vdENhY2hl
LCBHZW5lcmF0ZU5hdGl2ZUNvbnZlcnRlciwgQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90XSBET01X
aW5kb3cgewogICAgICAgICAvLyBET00gTGV2ZWwgMAogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU2NyZWVuIHNjcmVlbjsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEhpc3RvcnkgaGlz
dG9yeTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEJhckluZm8gbG9jYXRpb25iYXI7CiAg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBCYXJJbmZvIG1lbnViYXI7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBCYXJJbmZvIHBlcnNvbmFsYmFyOwpJbmRleDogV2ViQ29yZS9wYWdlL0hp
c3RvcnkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIaXN0b3J5
LmgiCisKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSGlzdG9yeTo6SGlzdG9yeShGcmFtZSogZnJhbWUpCisgICAg
OiBtX2ZyYW1lKGZyYW1lKQoreworfQorCitGcmFtZSogSGlzdG9yeTo6ZnJhbWUoKSBjb25zdAor
eworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIEhpc3Rvcnk6OmRpc2Nvbm5lY3RGcmFt
ZSgpCit7CisgICAgbV9mcmFtZSA9IDA7Cit9CisKK3Vuc2lnbmVkIEhpc3Rvcnk6Omxlbmd0aCgp
IGNvbnN0Cit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1
cm4gbV9mcmFtZS0+bG9hZGVyKCktPmdldEhpc3RvcnlMZW5ndGgoKTsKK30KKwordm9pZCBIaXN0
b3J5OjpiYWNrKCkKK3sKKyAgICBpZiAoIW1fZnJhbWUpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2ZyYW1lLT5sb2FkZXIoKS0+c2NoZWR1bGVIaXN0b3J5TmF2aWdhdGlvbigtMSk7Cit9CisKK3Zv
aWQgSGlzdG9yeTo6Zm9yd2FyZCgpCit7CisgICAgaWYgKCFtX2ZyYW1lKQorICAgICAgICByZXR1
cm47CisgICAgbV9mcmFtZS0+bG9hZGVyKCktPnNjaGVkdWxlSGlzdG9yeU5hdmlnYXRpb24oMSk7
Cit9CisKK3ZvaWQgSGlzdG9yeTo6Z28oaW50IGRpc3RhbmNlKQoreworICAgIGlmICghbV9mcmFt
ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zY2hlZHVsZUhpc3Rv
cnlOYXZpZ2F0aW9uKGRpc3RhbmNlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9wYWdlL0hpc3RvcnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvSGlz
dG9yeS5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9wYWdlL0hpc3RvcnkuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSGlzdG9yeV9oCisjZGVmaW5l
IEhpc3RvcnlfaAorCisjaW5jbHVkZSAiU2hhcmVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworICAgIGNsYXNzIEZyYW1lOworCisgICAgY2xhc3MgSGlzdG9yeSA6IHB1YmxpYyBTaGFyZWQ8
SGlzdG9yeT4geworICAgIHB1YmxpYzoKKyAgICAgICAgSGlzdG9yeShGcmFtZSopOworCisgICAg
ICAgIEZyYW1lKiBmcmFtZSgpIGNvbnN0OworICAgICAgICB2b2lkIGRpc2Nvbm5lY3RGcmFtZSgp
OworCisgICAgICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNvbnN0OworICAgICAgICB2b2lkIGJhY2so
KTsKKyAgICAgICAgdm9pZCBmb3J3YXJkKCk7CisgICAgICAgIHZvaWQgZ28oaW50IGRpc3RhbmNl
KTsKKworICAgIHByaXZhdGU6CisgICAgICAgIEZyYW1lKiBtX2ZyYW1lOworICAgIH07CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhpc3RvcnlfaApJbmRleDogV2ViQ29y
ZS9wYWdlL0hpc3RvcnkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9IaXN0b3J5Lmlk
bAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvcGFnZS9IaXN0b3J5LmlkbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCittb2R1bGUgd2luZG93IHsKKworICAgIGludGVy
ZmFjZSBIaXN0b3J5IHsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2lnbmVkIGxvbmcg
bGVuZ3RoOworCisgICAgICAgIHZvaWQgYmFjaygpOworICAgICAgICB2b2lkIGZvcndhcmQoKTsK
KyAgICAgICAgdm9pZCBnbyhpbiBsb25nIGRpc3RhbmNlKTsKKyAgICB9OworCit9CkluZGV4OiBX
ZWJDb3JlL3BsYXRmb3JtL2dkay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vZ2RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAJKHJldmlzaW9uIDIz
NTc4KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9nZGsvVGVtcG9yYXJ5TGlua1N0dWJzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDgsOSArNDgsOSBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnRHZGsuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIK
KyNpbmNsdWRlICJHbG9iYWxIaXN0b3J5LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCi0jaW5jbHVkZSAiSGlzdG9yeS5o
IgogI2luY2x1ZGUgIkljb24uaCIKICNpbmNsdWRlICJJY29uRGF0YWJhc2UuaCIKICNpbmNsdWRl
ICJJY29uTG9hZGVyLmgiCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1RlbXBvcmFyeUxpbmtT
dHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9UZW1wb3JhcnlMaW5r
U3R1YnMuY3BwCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvVGVtcG9y
YXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1
ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3Jh
cGhpY3NDb250ZXh0LmgiCi0jaW5jbHVkZSAiSGlzdG9yeS5oIgorI2luY2x1ZGUgIkdsb2JhbEhp
c3RvcnkuaCIKICNpbmNsdWRlICJJY29uTG9hZGVyLmgiCiAjaW5jbHVkZSAiSW50UG9pbnQuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1RlbXBvcmFyeUxp
bmtTdHVicy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9UZW1wb3JhcnlM
aW5rU3R1YnMuY3BwCShyZXZpc2lvbiAyMzU3OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvVGVt
cG9yYXJ5TGlua1N0dWJzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNyArMzksNyBAQAogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIkNvb2tpZUphci5oIgogI2lu
Y2x1ZGUgIlNjcmVlbi5oIgotI2luY2x1ZGUgIkhpc3RvcnkuaCIKKyNpbmNsdWRlICJHbG9iYWxI
aXN0b3J5LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGl6ZWRTdHJp
bmdzLmgiCiAjaW5jbHVkZSAiUGx1Z0luSW5mb1N0b3JlLmgiCg==
</data>
<flag name="review"
          id="6227"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>