<?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>26516</bug_id>
          
          <creation_ts>2009-06-18 13:48:30 -0700</creation_ts>
          <short_desc>Add initial implementation of DataGridDataSource</short_desc>
          <delta_ts>2009-06-23 17:39:45 -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>DOM</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>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>126761</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-18 13:48:30 -0700</bug_when>
    <thetext>Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126779</commentid>
    <comment_count>1</comment_count>
      <attachid>31510</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-18 14:47:28 -0700</bug_when>
    <thetext>Created attachment 31510
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>126781</commentid>
    <comment_count>2</comment_count>
      <attachid>31510</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-18 14:50:06 -0700</bug_when>
    <thetext>Comment on attachment 31510
patch

Clearing the review bit for now, since we are not quite ready to work on this yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127748</commentid>
    <comment_count>3</comment_count>
      <attachid>31759</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-23 17:19:54 -0700</bug_when>
    <thetext>Created attachment 31759
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127752</commentid>
    <comment_count>4</comment_count>
      <attachid>31759</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-06-23 17:25:24 -0700</bug_when>
    <thetext>Comment on attachment 31759
updated patch

Regenerate your test results since you still have .listener there.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>127761</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-06-23 17:39:45 -0700</bug_when>
    <thetext>Landed in r45018.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31510</attachid>
            <date>2009-06-18 14:47:28 -0700</date>
            <delta_ts>2009-06-23 17:19:54 -0700</delta_ts>
            <desc>patch</desc>
            <filename>datagridlistener.diff</filename>
            <type>text/plain</type>
            <size>35445</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDgyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDggQEAKKzIwMDktMDYtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjUxNgorICAgICAgICBB
ZGQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBEYXRhR3JpZExpc3RlbmVyCisKKyAgICAgICAg
LSBJbml0aWFsIGltcGxlbWVudGF0aW9uIG9ubHkgc3VwcG9ydHMgdGhlIGluaXRpYWxpemUgY2Fs
bGJhY2sgZnVuY3Rpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vSFRNTERhdGFHcmlkRWxl
bWVudC9EYXRhR3JpZExpc3RlbmVyLWJhc2ljLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajogQWRkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RhdGFHcmlkTGlzdGVuZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
RGF0YUdyaWRMaXN0ZW5lcjo6SlNEYXRhR3JpZExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6
OkpTRGF0YUdyaWRMaXN0ZW5lcjo6fkpTRGF0YUdyaWRMaXN0ZW5lcik6CisgICAgICAgIChXZWJD
b3JlOjpKU0RhdGFHcmlkTGlzdGVuZXI6OmluaXRpYWxpemUpOiBDYWxsIHRoZSBpbml0aWFsaXpl
IG1ldGhvZCBvbgorICAgICAgICB0aGUgSlMgbGlzdGVuZXIsIGlmIGl0IGV4aXN0cywgcGFzc2lu
ZyB0aGUgSFRNTERhdGFHcmlkRWxlbWVudC4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RhdGFH
cmlkTGlzdGVuZXIuaDogQWRkZWQuIFN0dWIgb3V0IHRoZSByZW1haW4gbWV0aG9kcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTRGF0YUdyaWRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRGF0YUdyaWRMaXN0ZW5lcjo6aXNKU0RhdGFHcmlkTGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNEYXRhR3JpZExpc3RlbmVyOjpqc0xpc3RlbmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmFzSlNEYXRhR3JpZExpc3RlbmVyKToKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRN
TERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6SlNI
VE1MRGF0YUdyaWRFbGVtZW50OjpsaXN0ZW5lcik6IFJldHVybiB0aGUgSlMgbGlzdGVuZXIKKyAg
ICAgICAgaWYgdGhlIERhdGFHcmlkTGlzdGVuZXIgaXMgYSBKU0RhdGFHcmlkTGlzdGVuZXIuCisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxEYXRhR3JpZEVsZW1lbnQ6OnNldExpc3RlbmVyKTogQ3Jl
YXRlIGEgSlNEYXRhR3JpZExpc3RlbmVyCisgICAgICAgIGZyb20gdGhlIHBhc3NlZCBpbiBqcyB2
YWx1ZS4KKworICAgICAgICAqIGh0bWwvRGF0YUdyaWRMaXN0ZW5lci5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFHcmlkTGlzdGVuZXI6On5EYXRhR3JpZExpc3RlbmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFHcmlkTGlzdGVuZXI6OmlzSlNEYXRhR3JpZExpc3RlbmVyKToKKyAg
ICAgICAgU3R1YiBvdXQgdGhlIHNwZWNlZCBwcm9wZXJ0aWVzIGJ1dCBvbmx5IGV4cG9zZSBpbml0
aWFsaXplIGZvciBub3cuCisKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEYXRhR3JpZEVsZW1lbnQ6OkhUTUxEYXRh
R3JpZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFHcmlkRWxlbWVudDo6fkhU
TUxEYXRhR3JpZEVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFHcmlkRWxlbWVu
dDo6c2V0TGlzdGVuZXIpOiBBZGRlZC4gIFN0YXJ0cyB0aGUgCisgICAgICAgIGluaXRpYWxpemF0
aW9uVGltZXIgc28gdGhhdCB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbiBjYW4gYmUgY2FsbGVkIG9u
IHRoZQorICAgICAgICBuZXh0IGl0ZXJhdGlvbiBvZiB0aGUgcnVuIGxvb3AuCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRGF0YUdyaWRFbGVtZW50Ojppbml0aWFsaXphdGlvblRpbWVyRmlyZWQpOgor
ICAgICAgICAqIGh0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERhdGFHcmlkRWxlbWVudDo6bGlzdGVuZXIpOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFH
cmlkRWxlbWVudC5pZGw6CisKIDIwMDktMDYtMTggIFBldGVyIEthc3RpbmcgIDxwa2FzdGluZ0Bn
b29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQ0Nzk1KQor
KysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTQwOTksNiArNDA5OSwxMCBAQAogCQlCQ0IxNkMyRDA5NzlDM0JEMDA0Njc3NDEgLyog
bG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0IxNkMxNDA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNCMTZDMkUwOTc5QzNCRDAwNDY3NzQxIC8q
IFJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNCMTZDMTUwOTc5QzNCRDAwNDY3NzQxIC8qIFJlcXVlc3QuY3BwICovOyB9OwogCQlCQ0Ix
NkMyRjA5NzlDM0JEMDA0Njc3NDEgLyogUmVxdWVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTZDMTYwOTc5QzNCRDAwNDY3NzQxIC8qIFJlcXVl
c3QuaCAqLzsgfTsKKwkJQkNCMTkyMUYwRkU5OUE4RDAwNTY4NTZDIC8qIEpTRGF0YUdyaWRMaXN0
ZW5lci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0IxOTIxRDBGRTk5QThEMDA1Njg1NkMgLyogSlNEYXRhR3JpZExpc3RlbmVyLmNwcCAqLzsgfTsK
KwkJQkNCMTkyMjAwRkU5OUE4RDAwNTY4NTZDIC8qIEpTRGF0YUdyaWRMaXN0ZW5lci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTkyMUUwRkU5OUE4
RDAwNTY4NTZDIC8qIEpTRGF0YUdyaWRMaXN0ZW5lci5oICovOyB9OworCQlCQ0IxOTIyNDBGRTk5
QUFFMDA1Njg1NkMgLyogRGF0YUdyaWRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCMTkyMjMwRkU5OUFBRTAwNTY4NTZDIC8qIERhdGFH
cmlkTGlzdGVuZXIuaCAqLzsgfTsKKwkJQkNCMTkyMkQwRkU5QTNCMjAwNTY4NTZDIC8qIEpTSFRN
TERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0IxOTIyQzBGRTlBM0IyMDA1Njg1NkMgLyogSlNIVE1MRGF0YUdy
aWRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNCNEY4OTAwREIyOERENjAwMzkxMzlCIC8q
IFJlbmRlckltYWdlR2VuZXJhdGVkQ29udGVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNEY4OEYwREIyOERENjAwMzkxMzlCIC8qIFJlbmRlcklt
YWdlR2VuZXJhdGVkQ29udGVudC5oICovOyB9OwogCQlCQ0I0Rjg5MzBEQjI4RTUzMDAzOTEzOUIg
LyogUmVuZGVySW1hZ2VHZW5lcmF0ZWRDb250ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjRGODkyMERCMjhFNTMwMDM5MTM5QiAvKiBSZW5k
ZXJJbWFnZUdlbmVyYXRlZENvbnRlbnQuY3BwICovOyB9OwogCQlCQ0I3NzM2MTBDMTc4NTNEMDAx
MzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05v
ZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwpAQCAtNDE3NCw2ICs0MTc4LDcgQEAKIAkJQkNF
M0JFQzMwRDIyMkIxRDAwN0UwNkU0IC8qIFRhZ05vZGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0UzQkVDMTBEMjIyQjFEMDA3RTA2RTQgLyog
VGFnTm9kZUxpc3QuaCAqLzsgfTsKIAkJQkNFNDk0QUIwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xv
Y2F0aW9uU2VydmljZU1hYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkNFNDk0QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1h
Yy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CiAJCUJDRTQ5NEFDMEY0
RjVFOUUwMDg0RTMxOSAvKiBHZW9sb2NhdGlvblNlcnZpY2VNYWMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U0OTRBQTBGNEY1RTlFMDA4NEUzMTkg
LyogR2VvbG9jYXRpb25TZXJ2aWNlTWFjLm1tICovOyB9OworCQlCQ0U1RDJGQTBGRUFDNTIxMDAw
MDA2QkMgLyogSFRNTERhdGFHcmlkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0U1RDJGOTBGRUFDNTIxMDAwMDA2QkMgLyogSFRNTERh
dGFHcmlkRWxlbWVudC5jcHAgKi87IH07CiAJCUJDRTY1OEZGMEVBOTI0OEEwMDdFNDUzMyAvKiBU
aGVtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNF
NjU4RkUwRUE5MjQ4QTAwN0U0NTMzIC8qIFRoZW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFNjU5QTkwRUE5MjdCOTAwN0U0NTMzIC8qIFRo
ZW1lVHlwZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRTY1OUE4MEVBOTI3QjkwMDdFNDUzMyAvKiBUaGVtZVR5cGVzLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFNjU5RTYwRUE5MkZCMjAwN0U0
NTMzIC8qIFRoZW1lTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0U2NTlFNTBFQTkyRkIyMDA3RTQ1MzMgLyogVGhlbWVNYWMuaCAqLzsgfTsKQEAg
LTg4ODcsNiArODg5MiwxMCBAQAogCQlCQ0IxNkMxNDA5NzlDM0JEMDA0Njc3NDEgLyogbG9hZGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBsb2FkZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZDMTUwOTc5QzNCRDAwNDY3NzQxIC8qIFJlcXVlc3Qu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlcXVlc3QuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0IxNkMxNjA5NzlDM0JEMDA0Njc3NDEgLyog
UmVxdWVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVxdWVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0IxOTIxRDBGRTk5QThEMDA1Njg1NkMgLyog
SlNEYXRhR3JpZExpc3RlbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTRGF0YUdyaWRMaXN0ZW5lci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUJDQjE5MjFFMEZFOTlBOEQwMDU2ODU2QyAvKiBKU0RhdGFHcmlkTGlzdGVuZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhR3JpZExpc3RlbmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUJDQjE5MjIzMEZFOTlBQUUwMDU2ODU2QyAvKiBEYXRhR3Jp
ZExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFHcmlkTGlz
dGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCMTkyMkMwRkU5QTNCMjAw
NTY4NTZDIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I0Rjg4RjBEQjI4REQ2MDAzOTEzOUIgLyog
UmVuZGVySW1hZ2VHZW5lcmF0ZWRDb250ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFJlbmRlckltYWdlR2VuZXJhdGVkQ29udGVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0I0Rjg5MjBEQjI4RTUzMDAzOTEzOUIgLyogUmVuZGVySW1hZ2VHZW5lcmF0
ZWRDb250ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
ckltYWdlR2VuZXJhdGVkQ29udGVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlv
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04OTY2LDYgKzg5NzUsNyBAQAog
CQlCQ0UzQkVDMTBEMjIyQjFEMDA3RTA2RTQgLyogVGFnTm9kZUxpc3QuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVGFnTm9kZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkNFNDk0QTkwRjRGNUU5RTAwODRFMzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1h
Yy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHZW9sb2NhdGlvblNlcnZpY2VN
YWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNFNDk0QUEwRjRGNUU5RTAwODRF
MzE5IC8qIEdlb2xvY2F0aW9uU2VydmljZU1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IEdlb2xvY2F0aW9uU2VydmljZU1hYy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQkNFNUQyRjkwRkVBQzUyMTAwMDAwNkJDIC8qIEhUTUxEYXRhR3JpZEVs
ZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERhdGFH
cmlkRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTY1OEZFMEVB
OTI0OEEwMDdFNDUzMyAvKiBUaGVtZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUaGVtZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0U2NTlBODBFQTkyN0I5
MDA3RTQ1MzMgLyogVGhlbWVUeXBlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUaGVtZVR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRTY1OUU1MEVB
OTJGQjIwMDdFNDUzMyAvKiBUaGVtZU1hYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBUaGVtZU1hYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1NzQsNiAr
MTE1ODQsNyBAQAogCQkJCTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2Fj
aGUuY3BwICovLAogCQkJCTkzQzQ0MUVFMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2Fj
aGUuaCAqLywKIAkJCQk5M0M0NDFGRjBGODEzQUUxMDBDMUE2MzQgLyogQ29sbGVjdGlvblR5cGUu
aCAqLywKKwkJCQlCQ0IxOTIyMzBGRTk5QUFFMDA1Njg1NkMgLyogRGF0YUdyaWRMaXN0ZW5lci5o
ICovLAogCQkJCUJDREJCOENDMEUwODk1ODQwMEM2MEZGNiAvKiBGaWxlLmNwcCAqLywKIAkJCQlC
Q0RCQjhDQjBFMDg5NTg0MDBDNjBGRjYgLyogRmlsZS5oICovLAogCQkJCUJDMTg4MUQ5MEUwOEM0
RUQwMDA0OEMxMyAvKiBGaWxlLmlkbCAqLywKQEAgLTExNTk1LDkgKzExNjA2LDYgQEAKIAkJCQlF
NDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5jcHAgKi8sCiAJCQkJ
RTQ0NjEzOTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxBdWRpb0VsZW1lbnQuaCAqLywKIAkJCQlF
NDQ2MTM5MTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1ZGlvRWxlbWVudC5pZGwgKi8sCi0JCQkJ
QThDRkY3OUUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxCUkVsZW1lbnQuY3BwICovLAotCQkJCUE4
Q0ZGN0EwMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQlJFbGVtZW50LmggKi8sCi0JCQkJMUFFMkE5
RjMwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCUkVsZW1lbnQuaWRsICovLAogCQkJCUE4NzFEQzFF
MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MQmFzZUVsZW1lbnQuY3BwICovLAogCQkJCUE4NzFEQzEz
MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MQmFzZUVsZW1lbnQuaCAqLywKIAkJCQlBODBFN0FBRjBB
MTlEMUYxMDA3RkI4QzUgLyogSFRNTEJhc2VFbGVtZW50LmlkbCAqLywKQEAgLTExNjEwLDYgKzEx
NjE4LDkgQEAKIAkJCQlBODcxREUxRDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50
LmNwcCAqLywKIAkJCQlBODcxREUyMDBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEJvZHlFbGVtZW50
LmggKi8sCiAJCQkJMUFFMkE5RjIwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCb2R5RWxlbWVudC5p
ZGwgKi8sCisJCQkJQThDRkY3OUUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxCUkVsZW1lbnQuY3Bw
ICovLAorCQkJCUE4Q0ZGN0EwMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQlJFbGVtZW50LmggKi8s
CisJCQkJMUFFMkE5RjMwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCUkVsZW1lbnQuaWRsICovLAog
CQkJCUE4MTM2OUI3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MQnV0dG9uRWxlbWVudC5jcHAgKi8s
CiAJCQkJQTgxMzY5QjYwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxCdXR0b25FbGVtZW50LmggKi8s
CiAJCQkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8qIEhUTUxCdXR0b25FbGVtZW50LmlkbCAq
LywKQEAgLTExNjIwLDE2ICsxMTYzMSwxNyBAQAogCQkJCUE4REYzRkM4MDk3RkEwRkIwMDUyOTgx
QiAvKiBIVE1MQ29sbGVjdGlvbi5oICovLAogCQkJCTg1REYyRjY5MEFBM0M3NDMwMEFENjRDNSAv
KiBIVE1MQ29sbGVjdGlvbi5pZGwgKi8sCiAJCQkJQkMyMTJBMUUwRkU4MzMzMjAwRUMzNzA4IC8q
IEhUTUxEYXRhR3JpZEVsZW1lbnQuaCAqLywKKwkJCQlCQ0U1RDJGOTBGRUFDNTIxMDAwMDA2QkMg
LyogSFRNTERhdGFHcmlkRWxlbWVudC5jcHAgKi8sCiAJCQkJQkMyMTJBMjMwRkU4MzQ1RDAwRUMz
NzA4IC8qIEhUTUxEYXRhR3JpZEVsZW1lbnQuaWRsICovLAotCQkJCUE4RUE3OUU5MEExOTE2REYw
MEE4RUY1RiAvKiBIVE1MRExpc3RFbGVtZW50LmNwcCAqLywKLQkJCQlBOEVBNzlFQjBBMTkxNkRG
MDBBOEVGNUYgLyogSFRNTERMaXN0RWxlbWVudC5oICovLAotCQkJCTFBODVCMUQxMEExQjIzNUIw
MEQ4Qzg3QyAvKiBIVE1MRExpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlBOEVBNzlFRDBBMTkxNkRG
MDBBOEVGNUYgLyogSFRNTERpcmVjdG9yeUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUVFMEEx
OTE2REYwMEE4RUY1RiAvKiBIVE1MRGlyZWN0b3J5RWxlbWVudC5oICovLAogCQkJCTFBODVCMUQ5
MEExQjIzQTQwMEQ4Qzg3QyAvKiBIVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwgKi8sCiAJCQkJQThF
QTdDQTMwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxEaXZFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVB
N0NBOTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTERpdkVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjJB
RDBBMUIyQTZEMDBEOEM4N0MgLyogSFRNTERpdkVsZW1lbnQuaWRsICovLAorCQkJCUE4RUE3OUU5
MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MRExpc3RFbGVtZW50LmNwcCAqLywKKwkJCQlBOEVBNzlF
QjBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTERMaXN0RWxlbWVudC5oICovLAorCQkJCTFBODVCMUQx
MEExQjIzNUIwMEQ4Qzg3QyAvKiBIVE1MRExpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlGNTIzRDIz
QjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLywKIAkJCQlGNTIzRDIzQzAy
REU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi8sCiAJCQkJMUE0OTRFMjkwQTEyMzU0
MzAwRkRBRkMxIC8qIEhUTUxEb2N1bWVudC5pZGwgKi8sCkBAIC0xMTY2MiwxNSArMTE2NzQsMTUg
QEAKIAkJCQlBODcxREUyMjBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEZyYW1lU2V0RWxlbWVudC5j
cHAgKi8sCiAJCQkJQTg3MURFMUMwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFtZVNldEVsZW1l
bnQuaCAqLywKIAkJCQk4NTU1NDI5NjBBQTQ5Mzg4MDBCQTg5RjIgLyogSFRNTEZyYW1lU2V0RWxl
bWVudC5pZGwgKi8sCi0JCQkJQThFQTdDQTUwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1l
bnQuY3BwICovLAotCQkJCUE4RUE3Q0ExMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJFbGVtZW50
LmggKi8sCi0JCQkJMUFFMkE5RjkwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIUkVsZW1lbnQuaWRs
ICovLAogCQkJCUE4NzFERTE5MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSGVhZEVsZW1lbnQuY3Bw
ICovLAogCQkJCUE4NzFERTIxMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSGVhZEVsZW1lbnQuaCAq
LywKIAkJCQlBODBFN0FCMTBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTEhlYWRFbGVtZW50LmlkbCAq
LywKIAkJCQlBOEVBN0NBMDBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50LmNw
cCAqLywKIAkJCQlBOEVBN0NBQTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50
LmggKi8sCiAJCQkJMUFFMkE5RjgwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIZWFkaW5nRWxlbWVu
dC5pZGwgKi8sCisJCQkJQThFQTdDQTUwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1lbnQu
Y3BwICovLAorCQkJCUE4RUE3Q0ExMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJFbGVtZW50Lmgg
Ki8sCisJCQkJMUFFMkE5RjkwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIUkVsZW1lbnQuaWRsICov
LAogCQkJCUE4NzFERTFBMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuY3BwICov
LAogCQkJCUE4NzFERTFCMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuaCAqLywK
IAkJCQkxQTg1QjE3RDBBMUIxODM2MDBEOEM4N0MgLyogSFRNTEh0bWxFbGVtZW50LmlkbCAqLywK
QEAgLTExNjkwLDE1ICsxMTcwMiwxNSBAQAogCQkJCTFBRTJBQTg1MEExQ0RDQ0UwMEI0MkIyNSAv
KiBIVE1MSXNJbmRleEVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUM5MDk3Mzc0RjYwMEQ3NDQ2
MyAvKiBIVE1MS2V5Z2VuRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QzgwOTczNzRGNTAwRDc0
NDYzIC8qIEhUTUxLZXlnZW5FbGVtZW50LmggKi8sCi0JCQkJQThFQTc5RjAwQTE5MTZERjAwQThF
RjVGIC8qIEhUTUxMSUVsZW1lbnQuY3BwICovLAotCQkJCUE4RUE3OUVBMEExOTE2REYwMEE4RUY1
RiAvKiBIVE1MTElFbGVtZW50LmggKi8sCi0JCQkJMUFFMkFBRTYwQTFDRTUyRTAwQjQyQjI1IC8q
IEhUTUxMSUVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUM3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBI
VE1MTGFiZWxFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlDNjA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTExhYmVsRWxlbWVudC5oICovLAogCQkJCTFBRTJBQUJFMEExQ0REODMwMEI0MkIyNSAvKiBI
VE1MTGFiZWxFbGVtZW50LmlkbCAqLywKIAkJCQlBODEzNjlDNTA5NzM3NEY1MDBENzQ0NjMgLyog
SFRNTExlZ2VuZEVsZW1lbnQuY3BwICovLAogCQkJCUE4MTM2OUM0MDk3Mzc0RjUwMEQ3NDQ2MyAv
KiBIVE1MTGVnZW5kRWxlbWVudC5oICovLAogCQkJCTFBRTJBQUNDMEExQ0REREIwMEI0MkIyNSAv
KiBIVE1MTGVnZW5kRWxlbWVudC5pZGwgKi8sCisJCQkJQThFQTc5RjAwQTE5MTZERjAwQThFRjVG
IC8qIEhUTUxMSUVsZW1lbnQuY3BwICovLAorCQkJCUE4RUE3OUVBMEExOTE2REYwMEE4RUY1RiAv
KiBIVE1MTElFbGVtZW50LmggKi8sCisJCQkJMUFFMkFBRTYwQTFDRTUyRTAwQjQyQjI1IC8qIEhU
TUxMSUVsZW1lbnQuaWRsICovLAogCQkJCUE4NzFEQzE1MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1M
TGlua0VsZW1lbnQuY3BwICovLAogCQkJCUE4NzFEQzE0MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1M
TGlua0VsZW1lbnQuaCAqLywKIAkJCQlBODBFN0FCMDBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTExp
bmtFbGVtZW50LmlkbCAqLywKQEAgLTExNzIyLDEyICsxMTczNCwxMiBAQAogCQkJCTFBRTJBQjA3
MEExQ0U1Q0YwMEI0MkIyNSAvKiBIVE1MTW9kRWxlbWVudC5pZGwgKi8sCiAJCQkJQThERjNGQ0Qw
OTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJQThERjNG
Q0MwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5oICovLAotCQkJCUE4RUE3
OUVGMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmNwcCAqLywKLQkJCQlBOEVB
NzlFNTBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovLAotCQkJCTFBODVC
MUNCMEExQjIyREMwMEQ4Qzg3QyAvKiBIVE1MT0xpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlBODcx
RDQ1MTBBMTI3Q0JDMDBCMTJBNjggLyogSFRNTE9iamVjdEVsZW1lbnQuY3BwICovLAogCQkJCUE4
NzFENDUwMEExMjdDQkMwMEIxMkE2OCAvKiBIVE1MT2JqZWN0RWxlbWVudC5oICovLAogCQkJCTg1
NTU0Mjk4MEFBNDkzODgwMEJBODlGMiAvKiBIVE1MT2JqZWN0RWxlbWVudC5pZGwgKi8sCisJCQkJ
QThFQTc5RUYwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxPTGlzdEVsZW1lbnQuY3BwICovLAorCQkJ
CUE4RUE3OUU1MEExOTE2REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggKi8sCisJCQkJ
MUE4NUIxQ0IwQTFCMjJEQzAwRDhDODdDIC8qIEhUTUxPTGlzdEVsZW1lbnQuaWRsICovLAogCQkJ
CUE4MTM2OUMzMDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLywK
IAkJCQlBODEzNjlDMjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5oICov
LAogCQkJCUE4MEU3RTE5MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVtZW50Lmlk
bCAqLywKQEAgLTEzMjkyLDYgKzEzMzA0LDggQEAKIAkJCQlFNEVFRkZDNzBEMzQ1NTBDMDA0NjlB
NTggLyogSlNBdWRpb0NvbnN0cnVjdG9yLmggKi8sCiAJCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VE
ODkwIC8qIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKIAkJCQlFMTBCOTM3QjBCNzND
MDBBMDAzRUQ4OTAgLyogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQlCQ0IxOTIx
RDBGRTk5QThEMDA1Njg1NkMgLyogSlNEYXRhR3JpZExpc3RlbmVyLmNwcCAqLywKKwkJCQlCQ0Ix
OTIxRTBGRTk5QThEMDA1Njg1NkMgLyogSlNEYXRhR3JpZExpc3RlbmVyLmggKi8sCiAJCQkJOTNC
NzBENDcwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5jcHAgKi8sCiAJCQkJOTNCNzBE
NDgwOUVCMEM3QzAwOUQ4NDY4IC8qIEpTRE9NQmluZGluZy5oICovLAogCQkJCUUxQzM2Q0JDMEVC
MDgwNjIwMDc0MTBCQyAvKiBKU0RPTUdsb2JhbE9iamVjdC5jcHAgKi8sCkBAIC0xMzUwNiw2ICsx
MzUyMCw3IEBACiAJCQkJQkMzNDhCQkQwREI3RjUzMTAwNEFCQUI5IC8qIEpTWE1MSHR0cFJlcXVl
c3RDdXN0b20uY3BwICovLAogCQkJCUJDREZENDkxMEUzMDU2QkQwMDlEMTBBRCAvKiBKU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0VGRTFFNDBEQ0E1RjMzMDA3Mzky
MTkgLyogSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCAqLywKKwkJCQlCQ0IxOTIyQzBGRTlBM0Iy
MDA1Njg1NkMgLyogSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCSk7CiAJ
CQluYW1lID0gQ3VzdG9tOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTE2ODEwLDYg
KzE2ODI1LDggQEAKIAkJCQkyRUE3NjgwNDBGRTcxMjY0MDBBQjlDOEEgLyogV29ya2VyU2NyaXB0
TG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIxMkExRjBGRTgzMzMyMDBFQzM3
MDggLyogSFRNTERhdGFHcmlkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMTJBNDIw
RkU4M0ExODAwRUMzNzA4IC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudC5oIGluIEhlYWRlcnMgKi8s
CisJCQkJQkNCMTkyMjAwRkU5OUE4RDAwNTY4NTZDIC8qIEpTRGF0YUdyaWRMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQkNCMTkyMjQwRkU5OUFBRTAwNTY4NTZDIC8qIERhdGFHcmlkTGlz
dGVuZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMTg4MDUsNiArMTg4MjIsOSBAQAogCQkJCTA4MUVC
RjNBMEZEMzRGNDEwMERBNzU1OSAvKiBTVkdGaWx0ZXJCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUE4OUNDQzUyMEY0NEU5ODEwMEI1REExMCAvKiBSZXBsYWNlTm9kZVdpdGhTcGFuQ29t
bWFuZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzIxMkE0MTBGRTgzQTE4MDBFQzM3MDggLyog
SlNIVE1MRGF0YUdyaWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUJDQjE5MjFGMEZF
OTlBOEQwMDU2ODU2QyAvKiBKU0RhdGFHcmlkTGlzdGVuZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJ
CQkJQkNCMTkyMkQwRkU5QTNCMjAwNTY4NTZDIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3Rv
bS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlCQ0U1RDJGQTBGRUFDNTIxMDAwMDA2QkMgLyogSFRN
TERhdGFHcmlkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNEYXRhR3JpZExpc3RlbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRGF0YUdyaWRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGF0YUdyaWRMaXN0ZW5lci5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
ODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRGF0YUdyaWRMaXN0ZW5lci5oIgorCisjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkhUTUxEYXRh
R3JpZEVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0hUTUxEYXRhR3JpZEVsZW1lbnQuaCIKKyNpbmNs
dWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKKyNpbmNsdWRlIDxydW50aW1lL0pTTG9jay5oPgorCit1
c2luZyBuYW1lc3BhY2UgSlNDOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTRGF0YUdyaWRM
aXN0ZW5lcjo6SlNEYXRhR3JpZExpc3RlbmVyKEpTQzo6SlNWYWx1ZSBsaXN0ZW5lciwgRnJhbWUq
IGZyYW1lKQorICAgIDogbV9saXN0ZW5lcihsaXN0ZW5lcikKKyAgICAsIG1fZnJhbWUoZnJhbWUp
Cit7Cit9CisKK0pTRGF0YUdyaWRMaXN0ZW5lcjo6fkpTRGF0YUdyaWRMaXN0ZW5lcigpCit7Cit9
CisKK3ZvaWQgSlNEYXRhR3JpZExpc3RlbmVyOjppbml0aWFsaXplKEhUTUxEYXRhR3JpZEVsZW1l
bnQqIGRhdGFncmlkKQoreworICAgIGlmICghbV9mcmFtZS0+c2NyaXB0KCktPmlzRW5hYmxlZCgp
KQorICAgICAgICByZXR1cm47CisKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAgUmVmUHRy
PEpTRGF0YUdyaWRMaXN0ZW5lcj4gcHJvdGVjdCh0aGlzKTsKKworICAgIEV4ZWNTdGF0ZSogZXhl
YyA9IG1fZnJhbWUtPnNjcmlwdCgpLT5nbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpOworCisg
ICAgaWYgKCFqc0xpc3RlbmVyKCkuaXNPYmplY3QoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
SlNWYWx1ZSBpbml0aWFsaXplRnVuY3Rpb24gPSBqc0xpc3RlbmVyKCkuZ2V0KGV4ZWMsIElkZW50
aWZpZXIoZXhlYywgImluaXRpYWxpemUiKSk7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAg
Q2FsbFR5cGUgY2FsbFR5cGUgPSBpbml0aWFsaXplRnVuY3Rpb24uZ2V0Q2FsbERhdGEoY2FsbERh
dGEpOworICAgIGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIHJldHVybjsK
KworICAgIE1hcmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQodG9KUyhl
eGVjLCBkYXRhZ3JpZCkpOworCisgICAgSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERh
dGEoKS0+dGltZW91dENoZWNrZXIuc3RhcnQoKTsKKyAgICBjYWxsKGV4ZWMsIGluaXRpYWxpemVG
dW5jdGlvbiwgY2FsbFR5cGUsIGNhbGxEYXRhLCBtX2xpc3RlbmVyLCBhcmdzKTsKKyAgICBKU0RP
TVdpbmRvd0Jhc2U6OmNvbW1vbkpTR2xvYmFsRGF0YSgpLT50aW1lb3V0Q2hlY2tlci5zdG9wKCk7
CisKKyAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCisgICAgICAgIHJlcG9ydEN1cnJlbnRF
eGNlcHRpb24oZXhlYyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNv
cmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RhdGFHcmlkTGlzdGVuZXIuaAkocmV2aXNpb24gMCkKKysrIFdlYkNv
cmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZExpc3RlbmVyLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsODQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBKU0RhdGFHcmlkTGlzdGVuZXJfaAorI2RlZmluZSBKU0RhdGFHcmlkTGlzdGVuZXJf
aAorCisjaW5jbHVkZSAiRGF0YUdyaWRMaXN0ZW5lci5oIgorI2luY2x1ZGUgPHJ1bnRpbWUvSlNW
YWx1ZS5oPgorI2luY2x1ZGUgPHJ1bnRpbWUvUHJvdGVjdC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+CisjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2NsYXNzIEZyYW1lOworY2xhc3MgSFRNTERhdGFHcmlkRWxlbWVudDsKKworY2xhc3MgSlNE
YXRhR3JpZExpc3RlbmVyIDogcHVibGljIERhdGFHcmlkTGlzdGVuZXIgeworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPEpTRGF0YUdyaWRMaXN0ZW5lcj4gY3JlYXRlKEpTQzo6SlNWYWx1
ZSBsaXN0ZW5lciwgRnJhbWUqIGZyYW1lKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBKU0RhdGFHcmlkTGlzdGVuZXIobGlzdGVuZXIsIGZyYW1lKSk7CisgICAgfQorCisgICAg
dmlydHVhbCB+SlNEYXRhR3JpZExpc3RlbmVyKCk7CisKKyAgICB2aXJ0dWFsIGJvb2wgaXNKU0Rh
dGFHcmlkTGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisgICAgSlNDOjpKU1ZhbHVl
IGpzTGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBtX2xpc3RlbmVyLmdldCgpOyB9CisKKworICAg
IHZpcnR1YWwgdm9pZCBpbml0aWFsaXplKEhUTUxEYXRhR3JpZEVsZW1lbnQqKTsKKworLy8gICAg
dmlydHVhbCB2b2lkIGdldFJvd3ModW5zaWduZWQgcm93SW5kZXgsIHVuc2lnbmVkIHJvd0NvdW50
LCBSb3dJRCogcGFyZW50Um93LCB1bnNpZ25lZCBwb3NpdGlvbiwgQ29sdW1uTGlzdCogY29sdW1u
cyk7CisvLyAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2VsbHMoUm93SURMaXN0KiByb3dzLCBDb2x1bW5M
aXN0KiBjb2x1bW5zKTsKKy8vICAgIHZpcnR1YWwgdm9pZCByb3dPcGVuZWQoUm93SUQqIHJvdywg
Ym9vbCByb3dDb3VudE5lZWRlZCk7CisvLyAgICB2aXJ0dWFsIHZvaWQgcm93Q2xvc2VkKFJvd0lE
KiByb3cpOworLy8KKy8vICAgIHZpcnR1YWwgdm9pZCBjZWxsQ2hhbmdlZChSb3dJRCogcm93LCBD
b2x1bW4qIGNvbHVtbiwgQ2VsbFZhbHVlKiBuZXdWYWx1ZSwgQ2VsbFZhbHVlKiBwcmV2VmFsdWUp
OworLy8gICAgdmlydHVhbCBIVE1MTWVudUVsZW1lbnQqIGdldFJvd01lbnUoUm93SUQqIHJvdyk7
CisKK3ByaXZhdGU6CisgICAgSlNEYXRhR3JpZExpc3RlbmVyKEpTQzo6SlNWYWx1ZSwgRnJhbWUq
KTsKKworICAgIEpTQzo6UHJvdGVjdGVkSlNWYWx1ZSBtX2xpc3RlbmVyOworICAgIFJlZlB0cjxG
cmFtZT4gbV9mcmFtZTsKK307CisKK2lubGluZSBKU0RhdGFHcmlkTGlzdGVuZXIqIGFzSlNEYXRh
R3JpZExpc3RlbmVyKERhdGFHcmlkTGlzdGVuZXIqIGxpc3RlbmVyKQoreworICAgIEFTU0VSVChs
aXN0ZW5lci0+aXNKU0RhdGFHcmlkTGlzdGVuZXIoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEpTRGF0YUdyaWRMaXN0ZW5lcio+KGxpc3RlbmVyKTsKK30KKworaW5saW5lIGNvbnN0IEpTRGF0
YUdyaWRMaXN0ZW5lciogYXNKU0RhdGFHcmlkTGlzdGVuZXIoY29uc3QgRGF0YUdyaWRMaXN0ZW5l
ciogbGlzdGVuZXIpCit7CisgICAgQVNTRVJUKGxpc3RlbmVyLT5pc0pTRGF0YUdyaWRMaXN0ZW5l
cigpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNEYXRhR3JpZExpc3RlbmVyKj4o
bGlzdGVuZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBKU0Rh
dGFHcmlkTGlzdGVuZXJfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEYXRhR3Jp
ZEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNI
VE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1MRGF0YUdyaWRFbGVtZW50
LmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxEYXRhR3JpZEVsZW1l
bnQuaCIKKyNpbmNsdWRlICJKU0RhdGFHcmlkTGlzdGVuZXIuaCIKKwordXNpbmcgbmFtZXNwYWNl
IEpTQzsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitKU1ZhbHVlIEpTSFRNTERhdGFHcmlkRWxl
bWVudDo6bGlzdGVuZXIoRXhlY1N0YXRlKikgY29uc3QKK3sKKyAgICBEYXRhR3JpZExpc3RlbmVy
KiBsaXN0ZW5lciA9IHN0YXRpY19jYXN0PEhUTUxEYXRhR3JpZEVsZW1lbnQqPihpbXBsKCkpLT5s
aXN0ZW5lcigpOworICAgIGlmIChsaXN0ZW5lciAmJiBsaXN0ZW5lci0+aXNKU0RhdGFHcmlkTGlz
dGVuZXIoKSkKKyAgICAgICAgcmV0dXJuIGFzSlNEYXRhR3JpZExpc3RlbmVyKGxpc3RlbmVyKS0+
anNMaXN0ZW5lcigpOworICAgIHJldHVybiBqc051bGwoKTsKK30KKwordm9pZCBKU0hUTUxEYXRh
R3JpZEVsZW1lbnQ6OnNldExpc3RlbmVyKEV4ZWNTdGF0ZSosIEpTVmFsdWUgdmFsdWUpCit7Cisg
ICAgc3RhdGljX2Nhc3Q8SFRNTERhdGFHcmlkRWxlbWVudCo+KGltcGwoKSktPnNldExpc3RlbmVy
KEpTRGF0YUdyaWRMaXN0ZW5lcjo6Y3JlYXRlKHZhbHVlLCBpbXBsKCktPmRvY3VtZW50KCktPmZy
YW1lKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9odG1s
L0RhdGFHcmlkTGlzdGVuZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvRGF0YUdyaWRM
aXN0ZW5lci5oCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9odG1sL0RhdGFHcmlkTGlzdGVuZXIu
aAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIERhdGFHcmlkTGlzdGVuZXJfaAorI2RlZmlu
ZSBEYXRhR3JpZExpc3RlbmVyX2gKKworI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgSFRNTERhdGFHcmlkRWxlbWVudDsKKworY2xhc3Mg
RGF0YUdyaWRMaXN0ZW5lciA6IHB1YmxpYyBSZWZDb3VudGVkPERhdGFHcmlkTGlzdGVuZXI+IHsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5EYXRhR3JpZExpc3RlbmVyKCkgeyB9CisKKyAgICB2aXJ0
dWFsIGJvb2wgaXNKU0RhdGFHcmlkTGlzdGVuZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
CisKKyAgICB2aXJ0dWFsIHZvaWQgaW5pdGlhbGl6ZShIVE1MRGF0YUdyaWRFbGVtZW50KiBkYXRh
Z3JpZCkgPSAwOworCisvLyAgICB2aXJ0dWFsIHZvaWQgZ2V0Um93cyh1bnNpZ25lZCByb3dJbmRl
eCwgdW5zaWduZWQgcm93Q291bnQsIFJvd0lEKiBwYXJlbnRSb3csIHVuc2lnbmVkIHBvc2l0aW9u
LCBDb2x1bW5MaXN0KiBjb2x1bW5zKSA9IDA7CisvLyAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2VsbHMo
Um93SURMaXN0KiByb3dzLCBDb2x1bW5MaXN0KiBjb2x1bW5zKSA9IDA7CisvLyAgICB2aXJ0dWFs
IHZvaWQgcm93T3BlbmVkKFJvd0lEKiByb3csIGJvb2wgcm93Q291bnROZWVkZWQpID0gMDsKKy8v
ICAgIHZpcnR1YWwgdm9pZCByb3dDbG9zZWQoUm93SUQqIHJvdykgPSAwOworLy8KKy8vICAgIHZp
cnR1YWwgdm9pZCBjZWxsQ2hhbmdlZChSb3dJRCogcm93LCBDb2x1bW4qIGNvbHVtbiwgQ2VsbFZh
bHVlKiBuZXdWYWx1ZSwgQ2VsbFZhbHVlKiBwcmV2VmFsdWUpID0gMDsKKy8vICAgIHZpcnR1YWwg
SFRNTE1lbnVFbGVtZW50KiBnZXRSb3dNZW51KFJvd0lEKiByb3cpID0gMDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIERhdGFHcmlkTGlzdGVuZXJfaApJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1OCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkhUTUxEYXRhR3JpZEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitIVE1MRGF0YUdyaWRFbGVtZW50OjpIVE1MRGF0YUdy
aWRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtZW50KiBkb2MpCisg
ICAgOiBIVE1MRWxlbWVudCh0YWdOYW1lLCBkb2MpCisgICAgLCBtX2luaXRpYWxpemF0aW9uVGlt
ZXIodGhpcywgJkhUTUxEYXRhR3JpZEVsZW1lbnQ6OmluaXRpYWxpemF0aW9uVGltZXJGaXJlZCkK
KworeworfQorCitIVE1MRGF0YUdyaWRFbGVtZW50Ojp+SFRNTERhdGFHcmlkRWxlbWVudCgpCit7
CisgICAgaWYgKG1faW5pdGlhbGl6YXRpb25UaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2lu
aXRpYWxpemF0aW9uVGltZXIuc3RvcCgpOworfQorCit2b2lkIEhUTUxEYXRhR3JpZEVsZW1lbnQ6
OnNldExpc3RlbmVyKFBhc3NSZWZQdHI8RGF0YUdyaWRMaXN0ZW5lcj4gbGlzdGVuZXIpCit7Cisg
ICAgaWYgKG1faW5pdGlhbGl6YXRpb25UaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX2luaXRp
YWxpemF0aW9uVGltZXIuc3RvcCgpOworCisgICAgbV9saXN0ZW5lciA9IGxpc3RlbmVyOworICAg
IG1faW5pdGlhbGl6YXRpb25UaW1lci5zdGFydE9uZVNob3QoMCk7Cit9CisKK3ZvaWQgSFRNTERh
dGFHcmlkRWxlbWVudDo6aW5pdGlhbGl6YXRpb25UaW1lckZpcmVkKFRpbWVyPEhUTUxEYXRhR3Jp
ZEVsZW1lbnQ+KikKK3sKKyAgICBtX2xpc3RlbmVyLT5pbml0aWFsaXplKHRoaXMpOworfQorCit9
IC8vIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaAkocmV2aXNpb24g
NDQ3OTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiwyMCArMjYsMjkgQEAKICNpZm5kZWYgSFRNTERhdGFHcmlkRWxlbWVudF9oCiAj
ZGVmaW5lIEhUTUxEYXRhR3JpZEVsZW1lbnRfaAogCisjaW5jbHVkZSAiRGF0YUdyaWRMaXN0ZW5l
ci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCisjaW5jbHVkZSAiVGltZXIuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MRGF0YUdyaWRFbGVtZW50IDogcHVibGljIEhU
TUxFbGVtZW50Ci17CitjbGFzcyBIVE1MRGF0YUdyaWRFbGVtZW50IDogcHVibGljIEhUTUxFbGVt
ZW50IHsKIHB1YmxpYzoKLSAgICBIVE1MRGF0YUdyaWRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIERvY3VtZW50KiBkb2MpCi0gICAgICAgIDogSFRNTEVsZW1lbnQobmFtZSwgZG9j
KQotICAgIHsgfQotICAgIAorICAgIEhUTUxEYXRhR3JpZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYsIERvY3VtZW50Kik7CisgICAgdmlydHVhbCB+SFRNTERhdGFHcmlkRWxlbWVudCgpOwor
CiAgICAgdmlydHVhbCBpbnQgdGFnUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiA2OyB9IC8vIFNh
bWUgYXMgPHNlbGVjdD5zCisKKyAgICB2b2lkIHNldExpc3RlbmVyKFBhc3NSZWZQdHI8RGF0YUdy
aWRMaXN0ZW5lcj4pOworICAgIERhdGFHcmlkTGlzdGVuZXIqIGxpc3RlbmVyKCkgY29uc3QgeyBy
ZXR1cm4gbV9saXN0ZW5lci5nZXQoKTsgfQorCitwcml2YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6
YXRpb25UaW1lckZpcmVkKFRpbWVyPEhUTUxEYXRhR3JpZEVsZW1lbnQ+Kik7CisKKyAgICBUaW1l
cjxIVE1MRGF0YUdyaWRFbGVtZW50PiBtX2luaXRpYWxpemF0aW9uVGltZXI7CisgICAgUmVmUHRy
PERhdGFHcmlkTGlzdGVuZXI+IG1fbGlzdGVuZXI7CiB9OwogCi19IC8vbmFtZXNwYWNlCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCiAKLSNlbmRpZgorI2VuZGlmIC8vIEhUTUxEYXRhR3JpZEVsZW1l
bnRfaApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmlkbAkocmV2aXNpb24gNDQ3
OTUpCisrKyBXZWJDb3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTI1LDcgKzI1LDEwIEBACiAKIG1vZHVsZSBodG1sIHsKIAotaW50ZXJmYWNlIFtHZW5l
cmF0ZUNvbnN0cnVjdG9yXSBIVE1MRGF0YUdyaWRFbGVtZW50IDogSFRNTEVsZW1lbnQgewotfTsK
KyAgICBpbnRlcmZhY2UgWworICAgICAgICBHZW5lcmF0ZUNvbnN0cnVjdG9yCisgICAgXSBIVE1M
RGF0YUdyaWRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworICAgICAgICBhdHRyaWJ1dGUgW0N1c3Rv
bV0gRGF0YUdyaWRMaXN0ZW5lciBsaXN0ZW5lcjsKKyAgICB9OwogCiB9CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA0NDgyNSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE0IEBACisyMDA5LTA2LTE4ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3Ig
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2NTE2CisgICAgICAgIEFk
ZCBpbml0aWFsIGltcGxlbWVudGF0aW9uIG9mIERhdGFHcmlkTGlzdGVuZXIKKworICAgICAgICAq
IGZhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9t
L0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWRMaXN0ZW5lci1iYXNpYy1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWRM
aXN0ZW5lci1iYXNpYy5odG1sOiBBZGRlZC4KKwogMjAwOS0wNi0xOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWRMaXN0
ZW5lci1iYXNpYy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTERhdGFHcmlkRWxlbWVudC9EYXRhR3JpZExpc3RlbmVyLWJhc2ljLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1l
bnQvRGF0YUdyaWRMaXN0ZW5lci1iYXNpYy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNiBAQAorUEFTUzogSW5pdGlhbCB2YWx1ZSBvZiBkYXRhZ3JpZC5saXN0ZW5lciBpcyBu
dWxsLgorUEFTUzogQWxsb3dlZCBzZXR0aW5nIGRhdGFncmlkLmxpc3RlbmVyIHRvIGEgbnVtYmVy
LgorUEFTUzogQWxsb3dlZCBzZXR0aW5nIGRhdGFncmlkLmxpc3RlbmVyIHRvIGEgc3RyaW5nLgor
UEFTUzogQWxsb3dlZCBzZXR0aW5nIGRhdGFncmlkLmxpc3RlbmVyIHRvIGFuIG9iamVjdC4KK1BB
U1M6IENvcnJlY3QgSFRNTERhdGFHcmlkRWxlbWVudCBwYXNzZWQgdG8gdGhlIGluaXRpYWxpemUg
ZnVuY3Rpb24uCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1l
bnQvRGF0YUdyaWRMaXN0ZW5lci1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWRMaXN0ZW5lci1iYXNpYy5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTERhdGFHcmlkRWxlbWVu
dC9EYXRhR3JpZExpc3RlbmVyLWJhc2ljLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNjIg
QEAKKzxodG1sPgorPGJvZHk+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisgICAgPGRh
dGFncmlkIGlkPSJ0ZXN0Ij48L2RhdGFncmlkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGxvZyhtc2cpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobXNnICsgIlxuIikpOworICAgICAg
ICB9CisKKyAgICAgICAgdmFyIGRhdGFncmlkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rl
c3QnKTsKKworICAgICAgICAvLyBUZXN0IGluaXRpYWwgdmFsdWUuCisgICAgICAgIGlmIChkYXRh
Z3JpZC5saXN0ZW5lciA9PSBudWxsKSB7CisgICAgICAgICAgICBsb2coIlBBU1M6IEluaXRpYWwg
dmFsdWUgb2YgZGF0YWdyaWQubGlzdGVuZXIgaXMgbnVsbC4iKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIGxvZygiRkFJTDogSW5pdGlhbCB2YWx1ZSBvZiBkYXRhZ3JpZC5saXN0ZW5l
ciB3YXMgbm90IG51bGwuIFdhcyAiICsgZGF0YWdyaWQubGlzdGVuZXIgKyAiLiIpOworICAgICAg
ICB9CisKKyAgICAgICAgLy8gVGVzdCBzZXR0aW5nIHRvIGEgSlMgbnVtYmVyCisgICAgICAgIGRh
dGFncmlkLmxpc3RlbmVyID0gMTA7CisgICAgICAgIGlmIChkYXRhZ3JpZC5saXN0ZW5lciA9PSAx
MCkgeworICAgICAgICAgICAgbG9nKCJQQVNTOiBBbGxvd2VkIHNldHRpbmcgZGF0YWdyaWQubGlz
dGVuZXIgdG8gYSBudW1iZXIuIik7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBsb2co
IkZBSUw6IERpZCBub3QgYWxsb3dlZCBzZXR0aW5nIGRhdGFncmlkLmxpc3RlbmVyIHRvIGEgbnVt
YmVyLiIpOworICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBzZXR0aW5nIHRvIGEgSlMgbnVt
YmVyCisgICAgICAgIGRhdGFncmlkLmxpc3RlbmVyID0gIlRlc3QgU3RyaW5nIjsKKyAgICAgICAg
aWYgKGRhdGFncmlkLmxpc3RlbmVyID09ICJUZXN0IFN0cmluZyIpIHsKKyAgICAgICAgICAgIGxv
ZygiUEFTUzogQWxsb3dlZCBzZXR0aW5nIGRhdGFncmlkLmxpc3RlbmVyIHRvIGEgc3RyaW5nLiIp
OworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBEaWQgbm90IGFsbG93
ZWQgc2V0dGluZyBkYXRhZ3JpZC5saXN0ZW5lciB0byBhIHN0cmluZy4iKTsKKyAgICAgICAgfQor
CisgICAgICAgIC8vIFRlc3Qgc2V0dGluZyBsaXN0ZW5lciB0byBhbiBvYmplY3QuCisgICAgICAg
IHZhciBsaXN0ZW5lciA9IHsKKyAgICAgICAgICAgIGluaXRpYWxpemUgOiBmdW5jdGlvbihkKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChkID09IGRhdGFncmlkKSB7CisgICAg
ICAgICAgICAgICAgICAgIGxvZygiUEFTUzogQ29ycmVjdCBIVE1MRGF0YUdyaWRFbGVtZW50IHBh
c3NlZCB0byB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9IGVs
c2UgeworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IEluY29ycmVjdCBIVE1MRGF0YUdy
aWRFbGVtZW50IHBhc3NlZCB0byB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbi4iKTsKKyAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRhdGFncmlkLmxpc3RlbmVyID0g
bGlzdGVuZXI7CisgICAgICAgIGlmIChkYXRhZ3JpZC5saXN0ZW5lciA9PSBsaXN0ZW5lcikgewor
ICAgICAgICAgICAgbG9nKCJQQVNTOiBBbGxvd2VkIHNldHRpbmcgZGF0YWdyaWQubGlzdGVuZXIg
dG8gYW4gb2JqZWN0LiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlM
OiBEaWQgbm90IGFsbG93ZWQgc2V0dGluZyBkYXRhZ3JpZC5saXN0ZW5lciB0byBhbiBvYmplY3Qu
Iik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>31759</attachid>
            <date>2009-06-23 17:19:54 -0700</date>
            <delta_ts>2009-06-23 17:25:24 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>dgds.diff</filename>
            <type>text/plain</type>
            <size>35688</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTAxMCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDktMDYtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjUxNgorICAgICAgICBB
ZGQgaW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiBEYXRhR3JpZERhdGFTb3VyY2UKKworICAgICAg
ICAtIEluaXRpYWwgaW1wbGVtZW50YXRpb24gb25seSBzdXBwb3J0cyB0aGUgaW5pdGlhbGl6ZSBj
YWxsYmFjayBmdW5jdGlvbi4KKworICAgICAgICBUZXN0OiBmYXN0L2RvbS9IVE1MRGF0YUdyaWRF
bGVtZW50L0RhdGFHcmlkRGF0YVNvdXJjZS1iYXNpYy5odG1sCisKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNEYXRh
R3JpZERhdGFTb3VyY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTRGF0YUdyaWRE
YXRhU291cmNlOjpKU0RhdGFHcmlkRGF0YVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpKU0Rh
dGFHcmlkRGF0YVNvdXJjZTo6fkpTRGF0YUdyaWREYXRhU291cmNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRGF0YUdyaWREYXRhU291cmNlOjppbml0aWFsaXplKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RhdGFHcmlkRGF0YVNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpT
RGF0YUdyaWREYXRhU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SlNEYXRhR3Jp
ZERhdGFTb3VyY2U6OmlzSlNEYXRhR3JpZERhdGFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6
SlNEYXRhR3JpZERhdGFTb3VyY2U6OmpzRGF0YVNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjph
c0pTRGF0YUdyaWREYXRhU291cmNlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEYXRh
R3JpZEVsZW1lbnRDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTERh
dGFHcmlkRWxlbWVudDo6bGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNIVE1MRGF0YUdy
aWRFbGVtZW50OjpzZXRMaXN0ZW5lcik6CisgICAgICAgICogaHRtbC9EYXRhR3JpZERhdGFTb3Vy
Y2UuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEYXRhR3JpZERhdGFTb3VyY2U6On5EYXRh
R3JpZERhdGFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YUdyaWREYXRhU291cmNlOjpp
c0pTRGF0YUdyaWREYXRhU291cmNlKToKKyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZEVsZW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERhdGFHcmlkRWxlbWVudDo6SFRNTERhdGFH
cmlkRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUdyaWRFbGVtZW50OjpzZXRE
YXRhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEYXRhR3JpZEVsZW1lbnQ6OmluaXRp
YWxpemF0aW9uVGltZXJGaXJlZCk6CisgICAgICAgICogaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50
Lmg6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRGF0YUdyaWRFbGVtZW50OjpkYXRhU291cmNlKToK
KyAgICAgICAgKiBodG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaWRsOgorCiAyMDA5LTA2LTIzICBL
ZXZpbiBNY0N1bGxvdWdoICA8a21jY3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDQ1MDEwKQorKysgV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTQxMjYsNiArNDEyNiwxMCBAQAog
CQlCQ0I3NzM2MTBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQjc3MzVFMEMx
Nzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovOyB9OwogCQlCQ0I3
NzM2MjBDMTc4NTNEMDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0I3NzM1RjBDMTc4NTNEMDAx
MzJCQTQgLyogSlNOb2RlRmlsdGVyQ29uZGl0aW9uLmggKi87IH07CiAJCUJDQjc3MzYzMEMxNzg1
M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCNzczNjAwQzE3ODUzRDAwMTMyQkE0IC8qIEpT
Tm9kZUZpbHRlckN1c3RvbS5jcHAgKi87IH07CisJCUJDQkNBRTM3MEZGMTkzODUwMDA3NjJBRSAv
KiBEYXRhR3JpZERhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDQkNBRTM2MEZGMTkzODUwMDA3NjJBRSAvKiBEYXRhR3JpZERhdGFTb3Vy
Y2UuaCAqLzsgfTsKKwkJQkNCQ0FFM0MwRkYxOTM5OTAwMDc2MkFFIC8qIEpTRGF0YUdyaWREYXRh
U291cmNlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDQkNBRTNBMEZGMTkzOTkwMDA3NjJBRSAvKiBKU0RhdGFHcmlkRGF0YVNvdXJjZS5jcHAgKi87
IH07CisJCUJDQkNBRTNEMEZGMTkzOTkwMDA3NjJBRSAvKiBKU0RhdGFHcmlkRGF0YVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQ0FFM0Iw
RkYxOTM5OTAwMDc2MkFFIC8qIEpTRGF0YUdyaWREYXRhU291cmNlLmggKi87IH07CisJCUJDQkNB
RTU0MEZGMUEyOUUwMDA3NjJBRSAvKiBKU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCQ0FFNTMwRkYx
QTI5RTAwMDc2MkFFIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgKi87IH07CiAJ
CUJDQkQyMUFCMEU0MTdBRDQwMEEwNzBGMiAvKiBLVVJMSGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRDIxQUEwRTQxN0FENDAwQTA3MEYyIC8q
IEtVUkxIYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJQkNCRkI1M0MwRENEMjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRkI1M0EwRENE
MjlDRjAwMTlCM0U1IC8qIEpTRE9NV2luZG93U2hlbGwuY3BwICovOyB9OwogCQlCQ0JGQjUzRDBE
Q0QyOUNGMDAxOUIzRTUgLyogSlNET01XaW5kb3dTaGVsbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNCRkI1M0IwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwpAQCAtODkzMiw2ICs4OTM2LDEwIEBACiAJCUJDQjc3MzVFMEMxNzg1M0QwMDEzMkJB
NCAvKiBKU05vZGVGaWx0ZXJDb25kaXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTm9kZUZpbHRlckNvbmRpdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDQjc3MzVGMEMxNzg1M0QwMDEzMkJBNCAvKiBKU05vZGVGaWx0ZXJDb25k
aXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTm9kZUZpbHRlckNv
bmRpdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0I3NzM2MDBDMTc4NTNE
MDAxMzJCQTQgLyogSlNOb2RlRmlsdGVyQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU05vZGVGaWx0ZXJDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlCQ0JDQUUzNjBGRjE5Mzg1MDAwNzYyQUUgLyogRGF0YUdyaWREYXRhU291
cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFHcmlkRGF0YVNvdXJj
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0JDQUUzQTBGRjE5Mzk5MDAwNzYy
QUUgLyogSlNEYXRhR3JpZERhdGFTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNEYXRhR3JpZERhdGFTb3VyY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlCQ0JDQUUzQjBGRjE5Mzk5MDAwNzYyQUUgLyogSlNEYXRhR3JpZERhdGFTb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEYXRhR3JpZERhdGFTb3Vy
Y2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQkNCQ0FFNTMwRkYxQTI5RTAwMDc2
MkFFIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0hUTUxEYXRhR3JpZEVsZW1lbnRDdXN0b20uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0JEMjFBQTBFNDE3QUQ0MDBBMDcwRjIgLyogS1VS
TEhhc2guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gS1VSTEhhc2guaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCRkI1M0EwRENEMjlDRjAwMTlCM0U1IC8qIEpT
RE9NV2luZG93U2hlbGwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNET01XaW5kb3dTaGVsbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQkZC
NTNCMERDRDI5Q0YwMDE5QjNFNSAvKiBKU0RPTVdpbmRvd1NoZWxsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTRE9NV2luZG93U2hlbGwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTExNjEzLDYgKzExNjIxLDcgQEAKIAkJCQk5M0M0NDFFRDBGODEzQTFBMDBD
MUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAqLywKIAkJCQk5M0M0NDFFRTBGODEzQTFBMDBD
MUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmggKi8sCiAJCQkJOTNDNDQxRkYwRjgxM0FFMTAwQzFB
NjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8sCisJCQkJQkNCQ0FFMzYwRkYxOTM4NTAwMDc2MkFF
IC8qIERhdGFHcmlkRGF0YVNvdXJjZS5oICovLAogCQkJCUJDREJCOENDMEUwODk1ODQwMEM2MEZG
NiAvKiBGaWxlLmNwcCAqLywKIAkJCQlCQ0RCQjhDQjBFMDg5NTg0MDBDNjBGRjYgLyogRmlsZS5o
ICovLAogCQkJCUJDMTg4MUQ5MEUwOEM0RUQwMDA0OEMxMyAvKiBGaWxlLmlkbCAqLywKQEAgLTEx
NjM0LDkgKzExNjQzLDYgQEAKIAkJCQlFNDQ2MTM4RjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1
ZGlvRWxlbWVudC5jcHAgKi8sCiAJCQkJRTQ0NjEzOTAwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhUTUxB
dWRpb0VsZW1lbnQuaCAqLywKIAkJCQlFNDQ2MTM5MTBDRDYzMzEwMDBGQURBNzUgLyogSFRNTEF1
ZGlvRWxlbWVudC5pZGwgKi8sCi0JCQkJQThDRkY3OUUwQTE1Njk3ODAwMEE0MjM0IC8qIEhUTUxC
UkVsZW1lbnQuY3BwICovLAotCQkJCUE4Q0ZGN0EwMEExNTY5NzgwMDBBNDIzNCAvKiBIVE1MQlJF
bGVtZW50LmggKi8sCi0JCQkJMUFFMkE5RjMwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxCUkVsZW1l
bnQuaWRsICovLAogCQkJCUE4NzFEQzFFMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MQmFzZUVsZW1l
bnQuY3BwICovLAogCQkJCUE4NzFEQzEzMEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MQmFzZUVsZW1l
bnQuaCAqLywKIAkJCQlBODBFN0FBRjBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTEJhc2VFbGVtZW50
LmlkbCAqLywKQEAgLTExNjQ5LDYgKzExNjU1LDkgQEAKIAkJCQlBODcxREUxRDBBMTUyQUM4MDBC
MTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmNwcCAqLywKIAkJCQlBODcxREUyMDBBMTUyQUM4MDBC
MTJBNjggLyogSFRNTEJvZHlFbGVtZW50LmggKi8sCiAJCQkJMUFFMkE5RjIwQTFDREE1NzAwQjQy
QjI1IC8qIEhUTUxCb2R5RWxlbWVudC5pZGwgKi8sCisJCQkJQThDRkY3OUUwQTE1Njk3ODAwMEE0
MjM0IC8qIEhUTUxCUkVsZW1lbnQuY3BwICovLAorCQkJCUE4Q0ZGN0EwMEExNTY5NzgwMDBBNDIz
NCAvKiBIVE1MQlJFbGVtZW50LmggKi8sCisJCQkJMUFFMkE5RjMwQTFDREE1NzAwQjQyQjI1IC8q
IEhUTUxCUkVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUI3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBI
VE1MQnV0dG9uRWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QjYwOTczNzRGNTAwRDc0NDYzIC8q
IEhUTUxCdXR0b25FbGVtZW50LmggKi8sCiAJCQkJQTgwRTdFNTUwQTFBN0ZCMzAwN0ZCOEM1IC8q
IEhUTUxCdXR0b25FbGVtZW50LmlkbCAqLywKQEAgLTExNjU4LDI3ICsxMTY2NywyNyBAQAogCQkJ
CUE4REYzRkM5MDk3RkEwRkIwMDUyOTgxQiAvKiBIVE1MQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJ
QThERjNGQzgwOTdGQTBGQjAwNTI5ODFCIC8qIEhUTUxDb2xsZWN0aW9uLmggKi8sCiAJCQkJODVE
RjJGNjkwQUEzQzc0MzAwQUQ2NEM1IC8qIEhUTUxDb2xsZWN0aW9uLmlkbCAqLywKLQkJCQlCQ0Y1
MjQ1RjBGRUJFRTVEMDA5NUJGMjYgLyogSFRNTERhdGFHcmlkRWxlbWVudC5jcHAgKi8sCi0JCQkJ
QkMyMTJBMUUwRkU4MzMzMjAwRUMzNzA4IC8qIEhUTUxEYXRhR3JpZEVsZW1lbnQuaCAqLywKLQkJ
CQlCQzIxMkEyMzBGRTgzNDVEMDBFQzM3MDggLyogSFRNTERhdGFHcmlkRWxlbWVudC5pZGwgKi8s
CiAJCQkJQkM3N0NEQjcwRkVGRjEyMTAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZENlbGxFbGVtZW50
LmNwcCAqLywKKwkJCQlCQzc3Q0RCQjBGRUZGMTQyMDA3MDg4N0IgLyogSFRNTERhdGFHcmlkQ2Vs
bEVsZW1lbnQuaCAqLywKIAkJCQlCQzc3Q0RBMjBGRUZFQjUzMDA3MDg4N0IgLyogSFRNTERhdGFH
cmlkQ2VsbEVsZW1lbnQuaWRsICovLAogCQkJCUJDNzdDQkE5MEZFQkY2QzkwMDcwODg3QiAvKiBI
VE1MRGF0YUdyaWRDb2xFbGVtZW50LmNwcCAqLywKIAkJCQlCQzc3Q0I4NjBGRUJGNUFGMDA3MDg4
N0IgLyogSFRNTERhdGFHcmlkQ29sRWxlbWVudC5oICovLAotCQkJCUJDNzdDREJCMEZFRkYxNDIw
MDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDZWxsRWxlbWVudC5oICovLAogCQkJCUJDNzdDQjg4MEZF
QkY1QkEwMDcwODg3QiAvKiBIVE1MRGF0YUdyaWRDb2xFbGVtZW50LmlkbCAqLywKKwkJCQlCQ0Y1
MjQ1RjBGRUJFRTVEMDA5NUJGMjYgLyogSFRNTERhdGFHcmlkRWxlbWVudC5jcHAgKi8sCisJCQkJ
QkMyMTJBMUUwRkU4MzMzMjAwRUMzNzA4IC8qIEhUTUxEYXRhR3JpZEVsZW1lbnQuaCAqLywKKwkJ
CQlCQzIxMkEyMzBGRTgzNDVEMDBFQzM3MDggLyogSFRNTERhdGFHcmlkRWxlbWVudC5pZGwgKi8s
CiAJCQkJQkM3N0NENDEwRkVGRTBDNDAwNzA4ODdCIC8qIEhUTUxEYXRhR3JpZFJvd0VsZW1lbnQu
Y3BwICovLAogCQkJCUJDNzdDQ0VEMEZFRkRFNkMwMDcwODg3QiAvKiBIVE1MRGF0YUdyaWRSb3dF
bGVtZW50LmggKi8sCiAJCQkJQkM3N0NDNkIwRkVDM0Q1RjAwNzA4ODdCIC8qIEhUTUxEYXRhR3Jp
ZFJvd0VsZW1lbnQuaWRsICovLAotCQkJCUE4RUE3OUU5MEExOTE2REYwMEE4RUY1RiAvKiBIVE1M
RExpc3RFbGVtZW50LmNwcCAqLywKLQkJCQlBOEVBNzlFQjBBMTkxNkRGMDBBOEVGNUYgLyogSFRN
TERMaXN0RWxlbWVudC5oICovLAotCQkJCTFBODVCMUQxMEExQjIzNUIwMEQ4Qzg3QyAvKiBIVE1M
RExpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlBOEVBNzlFRDBBMTkxNkRGMDBBOEVGNUYgLyogSFRN
TERpcmVjdG9yeUVsZW1lbnQuY3BwICovLAogCQkJCUE4RUE3OUVFMEExOTE2REYwMEE4RUY1RiAv
KiBIVE1MRGlyZWN0b3J5RWxlbWVudC5oICovLAogCQkJCTFBODVCMUQ5MEExQjIzQTQwMEQ4Qzg3
QyAvKiBIVE1MRGlyZWN0b3J5RWxlbWVudC5pZGwgKi8sCiAJCQkJQThFQTdDQTMwQTE5MkI5QzAw
QThFRjVGIC8qIEhUTUxEaXZFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVBN0NBOTBBMTkyQjlDMDBB
OEVGNUYgLyogSFRNTERpdkVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjJBRDBBMUIyQTZEMDBEOEM4
N0MgLyogSFRNTERpdkVsZW1lbnQuaWRsICovLAorCQkJCUE4RUE3OUU5MEExOTE2REYwMEE4RUY1
RiAvKiBIVE1MRExpc3RFbGVtZW50LmNwcCAqLywKKwkJCQlBOEVBNzlFQjBBMTkxNkRGMDBBOEVG
NUYgLyogSFRNTERMaXN0RWxlbWVudC5oICovLAorCQkJCTFBODVCMUQxMEExQjIzNUIwMEQ4Qzg3
QyAvKiBIVE1MRExpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlGNTIzRDIzQjAyREU0Mzk2MDE4NjM1
Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLywKIAkJCQlGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0Eg
LyogSFRNTERvY3VtZW50LmggKi8sCiAJCQkJMUE0OTRFMjkwQTEyMzU0MzAwRkRBRkMxIC8qIEhU
TUxEb2N1bWVudC5pZGwgKi8sCkBAIC0xMTcxMSwxNSArMTE3MjAsMTUgQEAKIAkJCQlBODcxREUy
MjBBMTUyQUM4MDBCMTJBNjggLyogSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAgKi8sCiAJCQkJQTg3
MURFMUMwQTE1MkFDODAwQjEyQTY4IC8qIEhUTUxGcmFtZVNldEVsZW1lbnQuaCAqLywKIAkJCQk4
NTU1NDI5NjBBQTQ5Mzg4MDBCQTg5RjIgLyogSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwgKi8sCi0J
CQkJQThFQTdDQTUwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1lbnQuY3BwICovLAotCQkJ
CUE4RUE3Q0ExMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJFbGVtZW50LmggKi8sCi0JCQkJMUFF
MkE5RjkwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIUkVsZW1lbnQuaWRsICovLAogCQkJCUE4NzFE
RTE5MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSGVhZEVsZW1lbnQuY3BwICovLAogCQkJCUE4NzFE
RTIxMEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSGVhZEVsZW1lbnQuaCAqLywKIAkJCQlBODBFN0FC
MTBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTEhlYWRFbGVtZW50LmlkbCAqLywKIAkJCQlBOEVBN0NB
MDBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50LmNwcCAqLywKIAkJCQlBOEVB
N0NBQTBBMTkyQjlDMDBBOEVGNUYgLyogSFRNTEhlYWRpbmdFbGVtZW50LmggKi8sCiAJCQkJMUFF
MkE5RjgwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIZWFkaW5nRWxlbWVudC5pZGwgKi8sCisJCQkJ
QThFQTdDQTUwQTE5MkI5QzAwQThFRjVGIC8qIEhUTUxIUkVsZW1lbnQuY3BwICovLAorCQkJCUE4
RUE3Q0ExMEExOTJCOUMwMEE4RUY1RiAvKiBIVE1MSFJFbGVtZW50LmggKi8sCisJCQkJMUFFMkE5
RjkwQTFDREE1NzAwQjQyQjI1IC8qIEhUTUxIUkVsZW1lbnQuaWRsICovLAogCQkJCUE4NzFERTFB
MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuY3BwICovLAogCQkJCUE4NzFERTFC
MEExNTJBQzgwMEIxMkE2OCAvKiBIVE1MSHRtbEVsZW1lbnQuaCAqLywKIAkJCQkxQTg1QjE3RDBB
MUIxODM2MDBEOEM4N0MgLyogSFRNTEh0bWxFbGVtZW50LmlkbCAqLywKQEAgLTExNzM5LDE1ICsx
MTc0OCwxNSBAQAogCQkJCTFBRTJBQTg1MEExQ0RDQ0UwMEI0MkIyNSAvKiBIVE1MSXNJbmRleEVs
ZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUM5MDk3Mzc0RjYwMEQ3NDQ2MyAvKiBIVE1MS2V5Z2Vu
RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5QzgwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxLZXln
ZW5FbGVtZW50LmggKi8sCi0JCQkJQThFQTc5RjAwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxMSUVs
ZW1lbnQuY3BwICovLAotCQkJCUE4RUE3OUVBMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MTElFbGVt
ZW50LmggKi8sCi0JCQkJMUFFMkFBRTYwQTFDRTUyRTAwQjQyQjI1IC8qIEhUTUxMSUVsZW1lbnQu
aWRsICovLAogCQkJCUE4MTM2OUM3MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MTGFiZWxFbGVtZW50
LmNwcCAqLywKIAkJCQlBODEzNjlDNjA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTExhYmVsRWxlbWVu
dC5oICovLAogCQkJCTFBRTJBQUJFMEExQ0REODMwMEI0MkIyNSAvKiBIVE1MTGFiZWxFbGVtZW50
LmlkbCAqLywKIAkJCQlBODEzNjlDNTA5NzM3NEY1MDBENzQ0NjMgLyogSFRNTExlZ2VuZEVsZW1l
bnQuY3BwICovLAogCQkJCUE4MTM2OUM0MDk3Mzc0RjUwMEQ3NDQ2MyAvKiBIVE1MTGVnZW5kRWxl
bWVudC5oICovLAogCQkJCTFBRTJBQUNDMEExQ0REREIwMEI0MkIyNSAvKiBIVE1MTGVnZW5kRWxl
bWVudC5pZGwgKi8sCisJCQkJQThFQTc5RjAwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxMSUVsZW1l
bnQuY3BwICovLAorCQkJCUE4RUE3OUVBMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MTElFbGVtZW50
LmggKi8sCisJCQkJMUFFMkFBRTYwQTFDRTUyRTAwQjQyQjI1IC8qIEhUTUxMSUVsZW1lbnQuaWRs
ICovLAogCQkJCUE4NzFEQzE1MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MTGlua0VsZW1lbnQuY3Bw
ICovLAogCQkJCUE4NzFEQzE0MEExNTIwNTcwMEIxMkE2OCAvKiBIVE1MTGlua0VsZW1lbnQuaCAq
LywKIAkJCQlBODBFN0FCMDBBMTlEMUYxMDA3RkI4QzUgLyogSFRNTExpbmtFbGVtZW50LmlkbCAq
LywKQEAgLTExNzcxLDEyICsxMTc4MCwxMiBAQAogCQkJCTFBRTJBQjA3MEExQ0U1Q0YwMEI0MkIy
NSAvKiBIVE1MTW9kRWxlbWVudC5pZGwgKi8sCiAJCQkJQThERjNGQ0QwOTdGQTBGQjAwNTI5ODFC
IC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5jcHAgKi8sCiAJCQkJQThERjNGQ0MwOTdGQTBGQjAwNTI5
ODFCIC8qIEhUTUxOYW1lQ29sbGVjdGlvbi5oICovLAotCQkJCUE4RUE3OUVGMEExOTE2REYwMEE4
RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmNwcCAqLywKLQkJCQlBOEVBNzlFNTBBMTkxNkRGMDBB
OEVGNUYgLyogSFRNTE9MaXN0RWxlbWVudC5oICovLAotCQkJCTFBODVCMUNCMEExQjIyREMwMEQ4
Qzg3QyAvKiBIVE1MT0xpc3RFbGVtZW50LmlkbCAqLywKIAkJCQlBODcxRDQ1MTBBMTI3Q0JDMDBC
MTJBNjggLyogSFRNTE9iamVjdEVsZW1lbnQuY3BwICovLAogCQkJCUE4NzFENDUwMEExMjdDQkMw
MEIxMkE2OCAvKiBIVE1MT2JqZWN0RWxlbWVudC5oICovLAogCQkJCTg1NTU0Mjk4MEFBNDkzODgw
MEJBODlGMiAvKiBIVE1MT2JqZWN0RWxlbWVudC5pZGwgKi8sCisJCQkJQThFQTc5RUYwQTE5MTZE
RjAwQThFRjVGIC8qIEhUTUxPTGlzdEVsZW1lbnQuY3BwICovLAorCQkJCUE4RUE3OUU1MEExOTE2
REYwMEE4RUY1RiAvKiBIVE1MT0xpc3RFbGVtZW50LmggKi8sCisJCQkJMUE4NUIxQ0IwQTFCMjJE
QzAwRDhDODdDIC8qIEhUTUxPTGlzdEVsZW1lbnQuaWRsICovLAogCQkJCUE4MTM2OUMzMDk3Mzc0
RjUwMEQ3NDQ2MyAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmNwcCAqLywKIAkJCQlBODEzNjlDMjA5
NzM3NEY1MDBENzQ0NjMgLyogSFRNTE9wdEdyb3VwRWxlbWVudC5oICovLAogCQkJCUE4MEU3RTE5
MEExQTdDQ0IwMDdGQjhDNSAvKiBIVE1MT3B0R3JvdXBFbGVtZW50LmlkbCAqLywKQEAgLTEzMzQ1
LDYgKzEzMzU0LDggQEAKIAkJCQlFNEVFRkZDNzBEMzQ1NTBDMDA0NjlBNTggLyogSlNBdWRpb0Nv
bnN0cnVjdG9yLmggKi8sCiAJCQkJRTEwQjkzQzIwQjczQzI5MTAwM0VEODkwIC8qIEpTQ3VzdG9t
WFBhdGhOU1Jlc29sdmVyLmNwcCAqLywKIAkJCQlFMTBCOTM3QjBCNzNDMDBBMDAzRUQ4OTAgLyog
SlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuaCAqLywKKwkJCQlCQ0JDQUUzQTBGRjE5Mzk5MDAwNzYy
QUUgLyogSlNEYXRhR3JpZERhdGFTb3VyY2UuY3BwICovLAorCQkJCUJDQkNBRTNCMEZGMTkzOTkw
MDA3NjJBRSAvKiBKU0RhdGFHcmlkRGF0YVNvdXJjZS5oICovLAogCQkJCTkzQjcwRDQ3MDlFQjBD
N0MwMDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuY3BwICovLAogCQkJCTkzQjcwRDQ4MDlFQjBDN0Mw
MDlEODQ2OCAvKiBKU0RPTUJpbmRpbmcuaCAqLywKIAkJCQlFMUMzNkNCQzBFQjA4MDYyMDA3NDEw
QkMgLyogSlNET01HbG9iYWxPYmplY3QuY3BwICovLApAQCAtMTM0NzgsMTQgKzEzNDg5LDE0IEBA
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUJDMkVENkJCMEM2QkQy
RjAwMDkyMEJGRiAvKiBKU0F0dHJDdXN0b20uY3BwICovLAotCQkJCTkzQkE1OUIxMEYyQUE1RkUw
MDhFOEU5OSAvKiBKU0NEQVRBU2VjdGlvbkN1c3RvbS5jcHAgKi8sCi0JCQkJQkM0NkMxRUQwQzBE
REJERjAwMjBDRkMzIC8qIEpTQ1NTUnVsZUN1c3RvbS5jcHAgKi8sCi0JCQkJQkM1ODI1RjIwQzBC
ODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVEZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi8sCi0JCQkJ
QkMyMEZCN0UwQzBFOEU2QzAwRDE0NDdGIC8qIEpTQ1NTVmFsdWVDdXN0b20uY3BwICovLAogCQkJ
CTFBOUVGNDU2MEExQjk1N0QwMDMzMkI2MyAvKiBKU0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREN1
c3RvbS5jcHAgKi8sCisJCQkJOTNCQTU5QjEwRjJBQTVGRTAwOEU4RTk5IC8qIEpTQ0RBVEFTZWN0
aW9uQ3VzdG9tLmNwcCAqLywKIAkJCQlCQ0E4M0U1MTBEN0NFMjA1MDAzNDIxQTggLyogSlNDbGlw
Ym9hcmRDdXN0b20uY3BwICovLAogCQkJCUMwREZDODZGMERCNjg0MUEwMDNFQUU3QyAvKiBKU0Nv
bnNvbGVDdXN0b20uY3BwICovLAogCQkJCUZFNzAwREQwMEY5MkQ4MUEwMDhFMkJGRSAvKiBKU0Nv
b3JkaW5hdGVzQ3VzdG9tLmNwcCAqLywKKwkJCQlCQzQ2QzFFRDBDMEREQkRGMDAyMENGQzMgLyog
SlNDU1NSdWxlQ3VzdG9tLmNwcCAqLywKKwkJCQlCQzU4MjVGMjBDMEI4OTM4MDA1M0YxQjUgLyog
SlNDU1NTdHlsZURlY2xhcmF0aW9uQ3VzdG9tLmNwcCAqLywKKwkJCQlCQzIwRkI3RTBDMEU4RTZD
MDBEMTQ0N0YgLyogSlNDU1NWYWx1ZUN1c3RvbS5jcHAgKi8sCiAJCQkJRkU4MEQ3QTIwRTlDMUVE
MjAwMEQ2Rjc1IC8qIEpTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5jcHAgKi8sCiAJCQkJRkU4MEQ3
QTMwRTlDMUVEMjAwMEQ2Rjc1IC8qIEpTQ3VzdG9tUG9zaXRpb25DYWxsYmFjay5oICovLAogCQkJ
CUZFODBEN0E0MEU5QzFFRDIwMDBENkY3NSAvKiBKU0N1c3RvbVBvc2l0aW9uRXJyb3JDYWxsYmFj
ay5jcHAgKi8sCkBAIC0xMzUwMCwxNyArMTM1MTEsMTkgQEAKIAkJCQk1MUVDOTI2MjBDRTkwREQ0
MDBGOTAzMDggLyogSlNDdXN0b21TUUxUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2suaCAqLywKIAkJ
CQkxQTM0MTdDODBDRUNGRjI1MDA0OUNCREUgLyogSlNDdXN0b21Wb2lkQ2FsbGJhY2suY3BwICov
LAogCQkJCTFBMzQxN0M3MENFQ0ZGMjUwMDQ5Q0JERSAvKiBKU0N1c3RvbVZvaWRDYWxsYmFjay5o
ICovLAotCQkJCTFBQzIyNjE2MERCNjlGNzQwMDg5QjY2OSAvKiBKU0RPTUFwcGxpY2F0aW9uQ2Fj
aGVDdXN0b20uY3BwICovLAotCQkJCUJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdp
bmRvd0N1c3RvbS5jcHAgKi8sCi0JCQkJNjUyRkJCQkIwREUyN0NCNjAwMDFEMzg2IC8qIEpTRE9N
V2luZG93Q3VzdG9tLmggKi8sCiAJCQkJMUFFODMwNDIwQ0FCMEVEMTAwMjIzN0FFIC8qIEpTRGF0
YWJhc2VDdXN0b20uY3BwICovLAogCQkJCTkyOTI2NDc2MEI2MUZDNzIwMEI0MUQzNCAvKiBKU0Rv
Y3VtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzFERUE0RTBFMjY4RUI2MDA4M0E3M0YgLyogSlNE
b2N1bWVudEZyYWdtZW50Q3VzdG9tLmNwcCAqLywKKwkJCQkxQUMyMjYxNjBEQjY5Rjc0MDA4OUI2
NjkgLyogSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcCAqLywKKwkJCQlCQ0Q5QzI1RTBD
MTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwICovLAorCQkJCTY1MkZCQkJC
MERFMjdDQjYwMDAxRDM4NiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5oICovLAogCQkJCUJDMkVENTU0
MEM2QjlCRDMwMDkyMEJGRiAvKiBKU0VsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDRUZBRjRE
MEMzMTdFNjkwMEZBODFGNiAvKiBKU0V2ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlGRTgwRDdBNjBF
OUMxRUQyMDAwRDZGNzUgLyogSlNHZW9sb2NhdGlvbkN1c3RvbS5jcHAgKi8sCisJCQkJQkNFN0Ix
OTIwRDRFODY5NjAwNzVBNTM5IC8qIEpTSGlzdG9yeUN1c3RvbS5jcHAgKi8sCiAJCQkJQkM0RURF
RjMwQzA4RjNGQjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwICovLAog
CQkJCUJDQ0JBRDNBMEMxOEJGRjgwMENFODkwRiAvKiBKU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNw
cCAqLywKKwkJCQlCQ0JDQUU1MzBGRjFBMjlFMDAwNzYyQUUgLyogSlNIVE1MRGF0YUdyaWRFbGVt
ZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1M
RG9jdW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBK
U0hUTUxFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzZENDRCRDBDMDdFRkI2MDA3MkQyQzkg
LyogSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCAqLywKQEAgLTEzNTIzLDcgKzEzNTM2LDYg
QEAKIAkJCQk0NDhBRDI3QTBBNDgxMzc5MDAyM0QxNzkgLyogSlNIVE1MT3B0aW9uc0NvbGxlY3Rp
b25DdXN0b20uY3BwICovLAogCQkJCUJDMTdGOTY1MEI2NEVCQjgwMDRBNjVDQiAvKiBKU0hUTUxT
ZWxlY3RFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlBQjRDQjRFQTBCOEJEQTNEMDA5RjQwQjAg
LyogSlNIVE1MU2VsZWN0RWxlbWVudEN1c3RvbS5oICovLAotCQkJCUJDRTdCMTkyMEQ0RTg2OTYw
MDc1QTUzOSAvKiBKU0hpc3RvcnlDdXN0b20uY3BwICovLAogCQkJCUE3RDAzMThEMEU5MzU0MDMw
MEUyNEFDRCAvKiBKU0ltYWdlRGF0YUN1c3RvbS5jcHAgKi8sCiAJCQkJNDFGMDYxNjkwRjVFRkJE
RDAwQTA3RUFDIC8qIEpTSW5zcGVjdG9yQ29udHJvbGxlckN1c3RvbS5jcHAgKi8sCiAJCQkJMUM1
RkFFRTYwRENGREE2ODAwRDU4Rjc4IC8qIEpTSmF2YVNjcmlwdENhbGxGcmFtZUN1c3RvbS5jcHAg
Ki8sCkBAIC0xMzU0MSw2ICsxMzU1Myw5IEBACiAJCQkJQTlDNkU2NEIwRDc0NjVFNzAwNjQ0MkU5
IC8qIEpTUGx1Z2luQ3VzdG9tLmNwcCAqLywKIAkJCQk1MURDRTgwMTBDQUM5RjFDMDA0ODgzNTgg
LyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQkxQUQyMzE2RDBDRDI2
OUU3MDBDMUYxOTQgLyogSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5jcHAgKi8sCisJCQkJNTFEMEM1
MTUwREFBOTBCNzAwM0IzODMxIC8qIEpTU3RvcmFnZUN1c3RvbS5jcHAgKi8sCisJCQkJQkM5OEEy
N0MwQzBDOTk1MDAwNEJFQkY3IC8qIEpTU3R5bGVTaGVldEN1c3RvbS5jcHAgKi8sCisJCQkJQTg0
RUJENzcwQ0I4Qzg5MjAwMDc5NjA5IC8qIEpTU3R5bGVTaGVldExpc3RDdXN0b20uY3BwICovLAog
CQkJCTA4QTQ4QTZEMEU4NkNGNkQwMEUyMjVERCAvKiBKU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3Rv
bS5jcHAgKi8sCiAJCQkJMDhFNEZFNDUwRTJCRDQxNDAwRjRDQUUwIC8qIEpTU1ZHTGVuZ3RoQ3Vz
dG9tLmNwcCAqLywKIAkJCQlCMjVERkFBRTBCMkUyOTI5MDAwRTY1MTAgLyogSlNTVkdNYXRyaXhD
dXN0b20uY3BwICovLApAQCAtMTM1NDgsOSArMTM1NjMsNiBAQAogCQkJCUIyOTdCQzZGMEIzQzE0
Q0YwMDQ1QTU5MCAvKiBKU1NWR1BhdGhTZWdMaXN0Q3VzdG9tLmNwcCAqLywKIAkJCQk1MTZCQjc5
MTBDRTkxRTY4MDA1MTJGNzkgLyogSlNTVkdQb2ludExpc3RDdXN0b20uY3BwICovLAogCQkJCUIy
RDNGQzg5MEMyMjEyQ0IwMENGMzYxOCAvKiBKU1NWR1RyYW5zZm9ybUxpc3RDdXN0b20uY3BwICov
LAotCQkJCTUxRDBDNTE1MERBQTkwQjcwMDNCMzgzMSAvKiBKU1N0b3JhZ2VDdXN0b20uY3BwICov
LAotCQkJCUJDOThBMjdDMEMwQzk5NTAwMDRCRUJGNyAvKiBKU1N0eWxlU2hlZXRDdXN0b20uY3Bw
ICovLAotCQkJCUE4NEVCRDc3MENCOEM4OTIwMDA3OTYwOSAvKiBKU1N0eWxlU2hlZXRMaXN0Q3Vz
dG9tLmNwcCAqLywKIAkJCQkxQTJDNDBBQTBERUI1NUFBMDA1QUYxOUUgLyogSlNUZXh0Q3VzdG9t
LmNwcCAqLywKIAkJCQk1MTZCQjc5MjBDRTkxRTY4MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3Vz
dG9tLmNwcCAqLywKIAkJCQlFMTgyNThBQjBFRjNDRDcwMDA5MzMyNDIgLyogSlNXb3JrZXJDb250
ZXh0Q3VzdG9tLmNwcCAqLywKQEAgLTE2ODY2LDYgKzE2ODc4LDggQEAKIAkJCQlCQzc3Q0RCQzBG
RUZGMTQyMDA3MDg4N0IgLyogSFRNTERhdGFHcmlkQ2VsbEVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDNzdDRENGMEZFRkYzM0IwMDcwODg3QiAvKiBKU0hUTUxEYXRhR3JpZENlbGxFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzc3Q0VCMzBGRjAxN0YyMDA3MDg4N0IgLyogUmVu
ZGVyRGF0YUdyaWQuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDQkNBRTM3MEZGMTkzODUwMDA3NjJB
RSAvKiBEYXRhR3JpZERhdGFTb3VyY2UuaCBpbiBIZWFkZXJzICovLAorCQkJCUJDQkNBRTNEMEZG
MTkzOTkwMDA3NjJBRSAvKiBKU0RhdGFHcmlkRGF0YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBA
IC0xODg3Miw2ICsxODg4Niw4IEBACiAJCQkJQkM3N0NEQjgwRkVGRjEyMTAwNzA4ODdCIC8qIEhU
TUxEYXRhR3JpZENlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNzdDRENFMEZF
RkYzM0IwMDcwODg3QiAvKiBKU0hUTUxEYXRhR3JpZENlbGxFbGVtZW50LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUJDNzdDRUM4MEZGMDFDQkUwMDcwODg3QiAvKiBSZW5kZXJEYXRhR3JpZC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQlCQ0JDQUUzQzBGRjE5Mzk5MDAwNzYyQUUgLyogSlNEYXRhR3Jp
ZERhdGFTb3VyY2UuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNCQ0FFNTQwRkYxQTI5RTAwMDc2
MkFFIC8qIEpTSFRNTERhdGFHcmlkRWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuY3BwCShyZXZp
c2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RhdGFHcmlkRGF0YVNvdXJjZS5jcHAJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkpTRGF0
YUdyaWREYXRhU291cmNlLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZy
YW1lLmgiCisjaW5jbHVkZSAiSFRNTERhdGFHcmlkRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTSFRN
TERhdGFHcmlkRWxlbWVudC5oIgorI2luY2x1ZGUgIkpTRE9NV2luZG93QmFzZS5oIgorI2luY2x1
ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBKU0M7CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworSlNEYXRhR3JpZERhdGFTb3VyY2U6OkpTRGF0YUdyaWREYXRhU291cmNl
KEpTQzo6SlNWYWx1ZSBkYXRhU291cmNlLCBGcmFtZSogZnJhbWUpCisgICAgOiBtX2RhdGFTb3Vy
Y2UoZGF0YVNvdXJjZSkKKyAgICAsIG1fZnJhbWUoZnJhbWUpCit7Cit9CisKK0pTRGF0YUdyaWRE
YXRhU291cmNlOjp+SlNEYXRhR3JpZERhdGFTb3VyY2UoKQoreworfQorCit2b2lkIEpTRGF0YUdy
aWREYXRhU291cmNlOjppbml0aWFsaXplKEhUTUxEYXRhR3JpZEVsZW1lbnQqIGRhdGFncmlkKQor
eworICAgIGlmICghbV9mcmFtZS0+c2NyaXB0KCktPmlzRW5hYmxlZCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBKU0xvY2sgbG9jayhmYWxzZSk7CisgICAgUmVmUHRyPEpTRGF0YUdyaWREYXRh
U291cmNlPiBwcm90ZWN0KHRoaXMpOworCisgICAgRXhlY1N0YXRlKiBleGVjID0gbV9mcmFtZS0+
c2NyaXB0KCktPmdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCk7CisKKyAgICBpZiAoIWpzRGF0
YVNvdXJjZSgpLmlzT2JqZWN0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEpTVmFsdWUgaW5p
dGlhbGl6ZUZ1bmN0aW9uID0ganNEYXRhU291cmNlKCkuZ2V0KGV4ZWMsIElkZW50aWZpZXIoZXhl
YywgImluaXRpYWxpemUiKSk7CisgICAgQ2FsbERhdGEgY2FsbERhdGE7CisgICAgQ2FsbFR5cGUg
Y2FsbFR5cGUgPSBpbml0aWFsaXplRnVuY3Rpb24uZ2V0Q2FsbERhdGEoY2FsbERhdGEpOworICAg
IGlmIChjYWxsVHlwZSA9PSBDYWxsVHlwZU5vbmUpCisgICAgICAgIHJldHVybjsKKworICAgIE1h
cmtlZEFyZ3VtZW50QnVmZmVyIGFyZ3M7CisgICAgYXJncy5hcHBlbmQodG9KUyhleGVjLCBkYXRh
Z3JpZCkpOworCisgICAgSlNET01XaW5kb3dCYXNlOjpjb21tb25KU0dsb2JhbERhdGEoKS0+dGlt
ZW91dENoZWNrZXIuc3RhcnQoKTsKKyAgICBjYWxsKGV4ZWMsIGluaXRpYWxpemVGdW5jdGlvbiwg
Y2FsbFR5cGUsIGNhbGxEYXRhLCBtX2RhdGFTb3VyY2UsIGFyZ3MpOworICAgIEpTRE9NV2luZG93
QmFzZTo6Y29tbW9uSlNHbG9iYWxEYXRhKCktPnRpbWVvdXRDaGVja2VyLnN0b3AoKTsKKworICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgcmVwb3J0Q3VycmVudEV4Y2VwdGlv
bihleGVjKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RhdGFHcmlkRGF0YVNvdXJjZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNEYXRhR3JpZERhdGFTb3VyY2UuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw3NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIEpTRGF0YUdyaWREYXRhU291cmNlX2gKKyNkZWZpbmUgSlNEYXRhR3JpZERhdGFTb3Vy
Y2VfaAorCisjaW5jbHVkZSAiRGF0YUdyaWREYXRhU291cmNlLmgiCisjaW5jbHVkZSA8cnVudGlt
ZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8cnVudGltZS9Qcm90ZWN0Lmg+CisjaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworY2xhc3MgRnJhbWU7CitjbGFzcyBIVE1MRGF0YUdyaWRFbGVtZW50OworCitjbGFz
cyBKU0RhdGFHcmlkRGF0YVNvdXJjZSA6IHB1YmxpYyBEYXRhR3JpZERhdGFTb3VyY2UgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPEpTRGF0YUdyaWREYXRhU291cmNlPiBjcmVhdGUo
SlNDOjpKU1ZhbHVlIGRhdGFTb3VyY2UsIEZyYW1lKiBmcmFtZSkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSlNEYXRhR3JpZERhdGFTb3VyY2UoZGF0YVNvdXJjZSwgZnJhbWUp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5KU0RhdGFHcmlkRGF0YVNvdXJjZSgpOworCisgICAg
dmlydHVhbCBib29sIGlzSlNEYXRhR3JpZERhdGFTb3VyY2UoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CisgICAgSlNDOjpKU1ZhbHVlIGpzRGF0YVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0
YVNvdXJjZS5nZXQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemUoSFRNTERhdGFH
cmlkRWxlbWVudCopOworCitwcml2YXRlOgorICAgIEpTRGF0YUdyaWREYXRhU291cmNlKEpTQzo6
SlNWYWx1ZSwgRnJhbWUqKTsKKworICAgIEpTQzo6UHJvdGVjdGVkSlNWYWx1ZSBtX2RhdGFTb3Vy
Y2U7CisgICAgUmVmUHRyPEZyYW1lPiBtX2ZyYW1lOworfTsKKworaW5saW5lIEpTRGF0YUdyaWRE
YXRhU291cmNlKiBhc0pTRGF0YUdyaWREYXRhU291cmNlKERhdGFHcmlkRGF0YVNvdXJjZSogZGF0
YVNvdXJjZSkKK3sKKyAgICBBU1NFUlQoZGF0YVNvdXJjZS0+aXNKU0RhdGFHcmlkRGF0YVNvdXJj
ZSgpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8SlNEYXRhR3JpZERhdGFTb3VyY2UqPihkYXRh
U291cmNlKTsKK30KKworaW5saW5lIGNvbnN0IEpTRGF0YUdyaWREYXRhU291cmNlKiBhc0pTRGF0
YUdyaWREYXRhU291cmNlKGNvbnN0IERhdGFHcmlkRGF0YVNvdXJjZSogZGF0YVNvdXJjZSkKK3sK
KyAgICBBU1NFUlQoZGF0YVNvdXJjZS0+aXNKU0RhdGFHcmlkRGF0YVNvdXJjZSgpKTsKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgSlNEYXRhR3JpZERhdGFTb3VyY2UqPihkYXRhU291cmNl
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gSlNEYXRhR3JpZERh
dGFTb3VyY2VfaApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEYXRhR3JpZEVsZW1l
bnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRGF0
YUdyaWRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRGF0YUdyaWRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSlNIVE1MRGF0YUdyaWRFbGVtZW50LmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhUTUxEYXRhR3JpZEVsZW1lbnQuaCIK
KyNpbmNsdWRlICJKU0RhdGFHcmlkRGF0YVNvdXJjZS5oIgorCit1c2luZyBuYW1lc3BhY2UgSlND
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0pTVmFsdWUgSlNIVE1MRGF0YUdyaWRFbGVtZW50
OjpkYXRhU291cmNlKEV4ZWNTdGF0ZSopIGNvbnN0Cit7CisgICAgRGF0YUdyaWREYXRhU291cmNl
KiBkYXRhU291cmNlID0gc3RhdGljX2Nhc3Q8SFRNTERhdGFHcmlkRWxlbWVudCo+KGltcGwoKSkt
PmRhdGFTb3VyY2UoKTsKKyAgICBpZiAoZGF0YVNvdXJjZSAmJiBkYXRhU291cmNlLT5pc0pTRGF0
YUdyaWREYXRhU291cmNlKCkpCisgICAgICAgIHJldHVybiBhc0pTRGF0YUdyaWREYXRhU291cmNl
KGRhdGFTb3VyY2UpLT5qc0RhdGFTb3VyY2UoKTsKKyAgICByZXR1cm4ganNOdWxsKCk7Cit9CisK
K3ZvaWQgSlNIVE1MRGF0YUdyaWRFbGVtZW50OjpzZXREYXRhU291cmNlKEV4ZWNTdGF0ZSosIEpT
VmFsdWUgdmFsdWUpCit7CisgICAgc3RhdGljX2Nhc3Q8SFRNTERhdGFHcmlkRWxlbWVudCo+KGlt
cGwoKSktPnNldERhdGFTb3VyY2UoSlNEYXRhR3JpZERhdGFTb3VyY2U6OmNyZWF0ZSh2YWx1ZSwg
aW1wbCgpLT5kb2N1bWVudCgpLT5mcmFtZSgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvaHRtbC9EYXRhR3JpZERhdGFTb3VyY2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvRGF0YUdyaWREYXRhU291cmNlLmgJKHJldmlzaW9uIDApCisrKyBXZWJD
b3JlL2h0bWwvRGF0YUdyaWREYXRhU291cmNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBEYXRhR3JpZERhdGFTb3VyY2VfaAorI2RlZmluZSBEYXRhR3JpZERhdGFTb3VyY2VfaAorCisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBIVE1MRGF0YUdyaWRFbGVtZW50OworCitjbGFzcyBEYXRhR3JpZERhdGFTb3VyY2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxEYXRhR3JpZERhdGFTb3VyY2U+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFs
IH5EYXRhR3JpZERhdGFTb3VyY2UoKSB7IH0KKworICAgIHZpcnR1YWwgYm9vbCBpc0pTRGF0YUdy
aWREYXRhU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCBpbml0aWFsaXplKEhUTUxEYXRhR3JpZEVsZW1lbnQqKSA9IDA7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEYXRhR3JpZERhdGFTb3VyY2VfaApJbmRleDogV2Vi
Q29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmNwcAkocmV2aXNpb24gNDUwMTApCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0
LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IAotSFRNTERhdGFHcmlkRWxlbWVudDo6SFRNTERhdGFHcmlkRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiBuYW1lLCBEb2N1bWVudCogZG9jKQotICAgIDogSFRNTEVsZW1lbnQobmFtZSwgZG9j
KQorSFRNTERhdGFHcmlkRWxlbWVudDo6SFRNTERhdGFHcmlkRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBIVE1MRWxlbWVudCh0
YWdOYW1lLCBkb2N1bWVudCkKKyAgICAsIG1faW5pdGlhbGl6YXRpb25UaW1lcih0aGlzLCAmSFRN
TERhdGFHcmlkRWxlbWVudDo6aW5pdGlhbGl6YXRpb25UaW1lckZpcmVkKQoreworfQorCitIVE1M
RGF0YUdyaWRFbGVtZW50Ojp+SFRNTERhdGFHcmlkRWxlbWVudCgpCiB7CiB9CiAKQEAgLTgxLDQg
Kzg2LDE4IEBAIHZvaWQgSFRNTERhdGFHcmlkRWxlbWVudDo6c2V0TXVsdGlwbGUoYm8KICAgICBz
ZXRBdHRyaWJ1dGUobXVsdGlwbGVBdHRyLCBtdWx0aXBsZSA/ICIiIDogMCk7CiB9CiAKK3ZvaWQg
SFRNTERhdGFHcmlkRWxlbWVudDo6c2V0RGF0YVNvdXJjZShQYXNzUmVmUHRyPERhdGFHcmlkRGF0
YVNvdXJjZT4gZGF0YVNvdXJjZSkKK3sKKyAgICBpZiAobV9pbml0aWFsaXphdGlvblRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgIG1faW5pdGlhbGl6YXRpb25UaW1lci5zdG9wKCk7CisKKyAgICBt
X2RhdGFTb3VyY2UgPSBkYXRhU291cmNlOworICAgIG1faW5pdGlhbGl6YXRpb25UaW1lci5zdGFy
dE9uZVNob3QoMCk7CiB9CisKK3ZvaWQgSFRNTERhdGFHcmlkRWxlbWVudDo6aW5pdGlhbGl6YXRp
b25UaW1lckZpcmVkKFRpbWVyPEhUTUxEYXRhR3JpZEVsZW1lbnQ+KikKK3sKKyAgICBtX2RhdGFT
b3VyY2UtPmluaXRpYWxpemUodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5k
ZXg6IFdlYkNvcmUvaHRtbC9IVE1MRGF0YUdyaWRFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxEYXRhR3JpZEVsZW1lbnQuaAkocmV2aXNpb24gNDUwMTApCisrKyBXZWJD
b3JlL2h0bWwvSFRNTERhdGFHcmlkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxNSAr
MjYsMTcgQEAKICNpZm5kZWYgSFRNTERhdGFHcmlkRWxlbWVudF9oCiAjZGVmaW5lIEhUTUxEYXRh
R3JpZEVsZW1lbnRfaAogCisjaW5jbHVkZSAiRGF0YUdyaWREYXRhU291cmNlLmgiCiAjaW5jbHVk
ZSAiSFRNTEVsZW1lbnQuaCIKKyNpbmNsdWRlICJUaW1lci5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEhUTUxEYXRhR3JpZEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQKLXsK
K2NsYXNzIEhUTUxEYXRhR3JpZEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVibGlj
OgogICAgIEhUTUxEYXRhR3JpZEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50
Kik7Ci0gICAgCisgICAgdmlydHVhbCB+SFRNTERhdGFHcmlkRWxlbWVudCgpOworCiAgICAgdmly
dHVhbCBpbnQgdGFnUHJpb3JpdHkoKSBjb25zdCB7IHJldHVybiA2OyB9IC8vIFNhbWUgYXMgPHNl
bGVjdD5zCiAgICAgdmlydHVhbCBib29sIGNoZWNrRFREKGNvbnN0IE5vZGUqKTsKICAgICAKQEAg
LTQ4LDggKzUwLDE3IEBAIHB1YmxpYzoKICAgICAKICAgICBib29sIG11bHRpcGxlKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRNdWx0aXBsZShib29sKTsKKworICAgIHZvaWQgc2V0RGF0YVNvdXJjZShQ
YXNzUmVmUHRyPERhdGFHcmlkRGF0YVNvdXJjZT4pOworICAgIERhdGFHcmlkRGF0YVNvdXJjZSog
ZGF0YVNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YVNvdXJjZS5nZXQoKTsgfQorCitwcml2
YXRlOgorICAgIHZvaWQgaW5pdGlhbGl6YXRpb25UaW1lckZpcmVkKFRpbWVyPEhUTUxEYXRhR3Jp
ZEVsZW1lbnQ+Kik7CisKKyAgICBUaW1lcjxIVE1MRGF0YUdyaWRFbGVtZW50PiBtX2luaXRpYWxp
emF0aW9uVGltZXI7CisgICAgUmVmUHRyPERhdGFHcmlkRGF0YVNvdXJjZT4gbV9kYXRhU291cmNl
OwogfTsKIAotfSAvL25hbWVzcGFjZQorfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYK
KyNlbmRpZiAvLyBIVE1MRGF0YUdyaWRFbGVtZW50X2gKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
RGF0YUdyaWRFbGVtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTERhdGFH
cmlkRWxlbWVudC5pZGwJKHJldmlzaW9uIDQ1MDEwKQorKysgV2ViQ29yZS9odG1sL0hUTUxEYXRh
R3JpZEVsZW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxMCArMjUsMTQgQEAKIAogbW9k
dWxlIGh0bWwgewogCi1pbnRlcmZhY2UgW0dlbmVyYXRlQ29uc3RydWN0b3JdIEhUTUxEYXRhR3Jp
ZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7Ci0gICAgYXR0cmlidXRlIGJvb2xlYW4gYXV0b2ZvY3Vz
OyAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgZGF0YWdyaWQgc2hvdWxkIGF1dG9mb2N1cy4KLSAgICBh
dHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsgLy8gV2hldGhlciBvciBub3QgdGhlIGRhdGFncmlk
IGNhbiBiZSBpbnRlcmFjdGVkIHdpdGguCi0gICAgYXR0cmlidXRlIGJvb2xlYW4gbXVsdGlwbGU7
IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBkYXRhZ3JpZCBzdXBwb3J0cyBtdWx0aXBsZSBzZWxlY3Rp
b24uCi19OworICAgIGludGVyZmFjZSBbCisgICAgICAgIEdlbmVyYXRlQ29uc3RydWN0b3IKKyAg
ICBdIEhUTUxEYXRhR3JpZEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CisgICAgICAgIGF0dHJpYnV0
ZSBbQ3VzdG9tXSBEYXRhR3JpZERhdGFTb3VyY2UgZGF0YVNvdXJjZTsKKworICAgICAgICBhdHRy
aWJ1dGUgYm9vbGVhbiBhdXRvZm9jdXM7IC8vIFdoZXRoZXIgb3Igbm90IHRoZSBkYXRhZ3JpZCBz
aG91bGQgYXV0b2ZvY3VzLgorICAgICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBkaXNhYmxlZDsgLy8g
V2hldGhlciBvciBub3QgdGhlIGRhdGFncmlkIGNhbiBiZSBpbnRlcmFjdGVkIHdpdGguCisgICAg
ICAgIGF0dHJpYnV0ZSBib29sZWFuIG11bHRpcGxlOyAvLyBXaGV0aGVyIG9yIG5vdCB0aGUgZGF0
YWdyaWQgc3VwcG9ydHMgbXVsdGlwbGUgc2VsZWN0aW9uLgorICAgIH07CiAKIH0KSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDQ1MDEwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDYtMjMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IGZvciBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjY1MTYKKyAgICAg
ICAgQWRkIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgRGF0YUdyaWREYXRhU291cmNlCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50L0RhdGFHcmlkRGF0YVNvdXJjZS1iYXNpYy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQv
RGF0YUdyaWREYXRhU291cmNlLWJhc2ljLmh0bWw6IEFkZGVkLgorCiAyMDA5LTA2LTIzICBLZXZp
biBNY0N1bGxvdWdoICA8a21jY3VsbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTERhdGFHcmlk
RWxlbWVudC9EYXRhR3JpZERhdGFTb3VyY2UtYmFzaWMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWREYXRh
U291cmNlLWJhc2ljLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxEYXRhR3JpZEVsZW1lbnQvRGF0YUdyaWREYXRhU291cmNlLWJhc2ljLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2IEBACitQQVNTOiBJbml0aWFsIHZhbHVl
IG9mIGRhdGFncmlkLmxpc3RlbmVyIGlzIG51bGwuCitQQVNTOiBBbGxvd2VkIHNldHRpbmcgZGF0
YWdyaWQubGlzdGVuZXIgdG8gYSBudW1iZXIuCitQQVNTOiBBbGxvd2VkIHNldHRpbmcgZGF0YWdy
aWQubGlzdGVuZXIgdG8gYSBzdHJpbmcuCitQQVNTOiBBbGxvd2VkIHNldHRpbmcgZGF0YWdyaWQu
bGlzdGVuZXIgdG8gYW4gb2JqZWN0LgorUEFTUzogQ29ycmVjdCBIVE1MRGF0YUdyaWRFbGVtZW50
IHBhc3NlZCB0byB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbi4KKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTERhdGFHcmlkRWxlbWVudC9EYXRhR3JpZERhdGFTb3VyY2UtYmFzaWMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MRGF0YUdyaWRFbGVtZW50
L0RhdGFHcmlkRGF0YVNvdXJjZS1iYXNpYy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTERhdGFHcmlkRWxlbWVudC9EYXRhR3JpZERhdGFTb3VyY2UtYmFzaWMu
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MiBAQAorPGh0bWw+Cis8Ym9keT4KKyAgICA8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKyAgICA8ZGF0YWdyaWQgaWQ9InRlc3QiPjwvZGF0YWdy
aWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9
CisKKyAgICAgICAgZnVuY3Rpb24gbG9nKG1zZykKKyAgICAgICAgeworICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtc2cgKyAiXG4iKSk7CisgICAgICAgIH0KKworICAgICAgICB2YXIgZGF0YWdy
aWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOworCisgICAgICAgIC8vIFRlc3Qg
aW5pdGlhbCB2YWx1ZS4KKyAgICAgICAgaWYgKGRhdGFncmlkLmRhdGFTb3VyY2UgPT0gbnVsbCkg
eworICAgICAgICAgICAgbG9nKCJQQVNTOiBJbml0aWFsIHZhbHVlIG9mIGRhdGFncmlkLmRhdGFT
b3VyY2UgaXMgbnVsbC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGxvZygiRkFJ
TDogSW5pdGlhbCB2YWx1ZSBvZiBkYXRhZ3JpZC5kYXRhU291cmNlIHdhcyBub3QgbnVsbC4gV2Fz
ICIgKyBkYXRhZ3JpZC5kYXRhU291cmNlICsgIi4iKTsKKyAgICAgICAgfQorCisgICAgICAgIC8v
IFRlc3Qgc2V0dGluZyB0byBhIEpTIG51bWJlcgorICAgICAgICBkYXRhZ3JpZC5kYXRhU291cmNl
ID0gMTA7CisgICAgICAgIGlmIChkYXRhZ3JpZC5kYXRhU291cmNlID09IDEwKSB7CisgICAgICAg
ICAgICBsb2coIlBBU1M6IEFsbG93ZWQgc2V0dGluZyBkYXRhZ3JpZC5kYXRhU291cmNlIHRvIGEg
bnVtYmVyLiIpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBEaWQg
bm90IGFsbG93ZWQgc2V0dGluZyBkYXRhZ3JpZC5kYXRhU291cmNlIHRvIGEgbnVtYmVyLiIpOwor
ICAgICAgICB9CisKKyAgICAgICAgLy8gVGVzdCBzZXR0aW5nIHRvIGEgSlMgbnVtYmVyCisgICAg
ICAgIGRhdGFncmlkLmRhdGFTb3VyY2UgPSAiVGVzdCBTdHJpbmciOworICAgICAgICBpZiAoZGF0
YWdyaWQuZGF0YVNvdXJjZSA9PSAiVGVzdCBTdHJpbmciKSB7CisgICAgICAgICAgICBsb2coIlBB
U1M6IEFsbG93ZWQgc2V0dGluZyBkYXRhZ3JpZC5kYXRhU291cmNlIHRvIGEgc3RyaW5nLiIpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbG9nKCJGQUlMOiBEaWQgbm90IGFsbG93ZWQg
c2V0dGluZyBkYXRhZ3JpZC5kYXRhU291cmNlIHRvIGEgc3RyaW5nLiIpOworICAgICAgICB9CisK
KyAgICAgICAgLy8gVGVzdCBzZXR0aW5nIGRhdGFTb3VyY2UgdG8gYW4gb2JqZWN0LgorICAgICAg
ICB2YXIgZGF0YVNvdXJjZSA9IHsKKyAgICAgICAgICAgIGluaXRpYWxpemUgOiBmdW5jdGlvbihk
KQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGlmIChkID09IGRhdGFncmlkKSB7Cisg
ICAgICAgICAgICAgICAgICAgIGxvZygiUEFTUzogQ29ycmVjdCBIVE1MRGF0YUdyaWRFbGVtZW50
IHBhc3NlZCB0byB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbi4iKTsKKyAgICAgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICBsb2coIkZBSUw6IEluY29ycmVjdCBIVE1MRGF0
YUdyaWRFbGVtZW50IHBhc3NlZCB0byB0aGUgaW5pdGlhbGl6ZSBmdW5jdGlvbi4iKTsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGRhdGFncmlkLmRhdGFTb3Vy
Y2UgPSBkYXRhU291cmNlOworICAgICAgICBpZiAoZGF0YWdyaWQuZGF0YVNvdXJjZSA9PSBkYXRh
U291cmNlKSB7CisgICAgICAgICAgICBsb2coIlBBU1M6IEFsbG93ZWQgc2V0dGluZyBkYXRhZ3Jp
ZC5kYXRhU291cmNlIHRvIGFuIG9iamVjdC4iKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgIGxvZygiRkFJTDogRGlkIG5vdCBhbGxvd2VkIHNldHRpbmcgZGF0YWdyaWQuZGF0YVNvdXJj
ZSB0byBhbiBvYmplY3QuIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="review"
          id="16351"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>