<?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>10791</bug_id>
          
          <creation_ts>2006-09-09 12:05:16 -0700</creation_ts>
          <short_desc>Even More Objective-C DOM auto-generation cleanup</short_desc>
          <delta_ts>2006-09-10 10:51:07 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>55118</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-09 12:05:16 -0700</bug_when>
    <thetext>Fix some stuff.  Patch and description of changes to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55120</commentid>
    <comment_count>1</comment_count>
      <attachid>10479</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-09 12:23:16 -0700</bug_when>
    <thetext>Created attachment 10479
patch

- Auto-generate some remaining extension methods for DOMDocument and DOMCSSStyleDeclaration.

- Split DOMHTMLEmbedElement into it&apos;s own files.  It can&apos;t be auto-generated yet because the Objective-C interface is significantly different from the implementation interface.  Since HTMLEmbedElement is not in the W3C spec, this is somewhat of a gray area.

- Auto-generate DOMEventListener protocol.

- Clean up the IDL files by separating the extensions from the specified methods and attributes.

- Change to use new, more Objectice-C&apos;ish version of DOMKeyboardEvent&apos;s initKeyboardEvent.  Fixes an error with regression test for fast/events/dblclick-addEventListener.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55121</commentid>
    <comment_count>2</comment_count>
      <attachid>10479</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-09-09 14:16:03 -0700</bug_when>
    <thetext>Comment on attachment 10479
patch

My thoughts

1.  not a fan of exclude=JS, it seems to be used for Obj-C only bindings.  This only hinders efforts to make other language bindings (like ruby, python, perl, etc.)

2.  I don&apos;t think the xpath stuff should be included in this patch.

3.  xpath stuff shouldn&apos;t need OldStyleObjC, since it&apos;s never shipped.

Other than that the patch looks fine.  r=me  (assuming you remove the xpath stuff)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55125</commentid>
    <comment_count>3</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2006-09-09 14:24:55 -0700</bug_when>
    <thetext>The Xpath changes are fine. And they should use OldStyleObjC since they are in the Private headers and internal Apple clients are using it. We can try to wean them off of the old style and get it removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55126</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2006-09-09 15:00:29 -0700</bug_when>
    <thetext>Landed in r16277.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>55188</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-09-10 10:51:07 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; 1.  not a fan of exclude=JS, it seems to be used for Obj-C only bindings.  This
&gt; only hinders efforts to make other language bindings (like ruby, python, perl,
&gt; etc.)

I think you have this backwards.

exclude=JS is typically used for bindings that we don&apos;t want for JS, at the moment at least. For example, there are cases where we have hand-written bindings for JS that the auto-generated bindings would conflict with.

I don&apos;t know of any examples of true &quot;ObjC-only&quot; bindings. If those did exist, then we&apos;d want an ObjCOnly keyword of some type.

I think that the way we&apos;re doing it is *better* for other future language bindings.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10479</attachid>
            <date>2006-09-09 12:23:16 -0700</date>
            <delta_ts>2006-09-09 14:16:03 -0700</delta_ts>
            <desc>patch</desc>
            <filename>autoFixAndClean.diff</filename>
            <type>text/plain</type>
            <size>51418</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxNjI3NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNjEgQEAKKzIwMDYtMDktMDkgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQ
YXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDc5MQorICAgICAgICBFdmVuIE1vcmUgT2JqZWN0aXZlLUMgRE9NIGF1dG8tZ2VuZXJhdGlvbiBj
bGVhbnVwCisKKyAgICAgICAgLSBBdXRvLWdlbmVyYXRlIHNvbWUgcmVtYWluaW5nIGV4dGVuc2lv
biBtZXRob2RzIGZvciBET01Eb2N1bWVudAorICAgICAgICAgIGFuZCBET01DU1NTdHlsZURlY2xh
cmF0aW9uLgorCisgICAgICAgIC0gU3BsaXQgRE9NSFRNTEVtYmVkRWxlbWVudCBpbnRvIGl0J3Mg
b3duIGZpbGVzLiAgSXQgY2FuJ3QgYmUKKyAgICAgICAgICBhdXRvLWdlbmVyYXRlZCB5ZXQgYmVj
YXVzZSB0aGUgT2JqZWN0aXZlLUMgaW50ZXJmYWNlIGlzIHNpZ25pZmljYW50bHkKKyAgICAgICAg
ICBkaWZmZXJlbnQgZnJvbSB0aGUgaW1wbGVtZW50YXRpb24gaW50ZXJmYWNlLiAgU2luY2UgSFRN
TEVtYmVkRWxlbWVudAorICAgICAgICAgIGlzIG5vdCBpbiB0aGUgVzNDIHNwZWMsIHRoaXMgaXMg
c29tZXdoYXQgb2YgYSBncmF5IGFyZWEuCisKKyAgICAgICAgLSBBdXRvLWdlbmVyYXRlIERPTUV2
ZW50TGlzdGVuZXIgcHJvdG9jb2wuCisKKyAgICAgICAgLSBDbGVhbiB1cCB0aGUgSURMIGZpbGVz
IGJ5IHNlcGFyYXRpbmcgdGhlIGV4dGVuc2lvbnMgZnJvbSB0aGUKKyAgICAgICAgICBzcGVjaWZp
ZWQgbWV0aG9kcyBhbmQgYXR0cmlidXRlcy4KKworICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NLm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NT
Lm1tOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnRMaXN0ZW5lci5oOiBSZW1vdmVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXh0ZW5zaW9ucy5oOgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NSFRNTC5oOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NSFRNTC5t
bToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01IVE1MRW1iZWRFbGVtZW50Lm1tOiBBZGRlZC4K
KyAgICAgICAgKC1bRE9NSFRNTEVtYmVkRWxlbWVudCBhbGlnbl0pOgorICAgICAgICAoLVtET01I
VE1MRW1iZWRFbGVtZW50IHNldEFsaWduOl0pOgorICAgICAgICAoLVtET01IVE1MRW1iZWRFbGVt
ZW50IGhlaWdodF0pOgorICAgICAgICAoLVtET01IVE1MRW1iZWRFbGVtZW50IHNldEhlaWdodDpd
KToKKyAgICAgICAgKC1bRE9NSFRNTEVtYmVkRWxlbWVudCBuYW1lXSk6CisgICAgICAgICgtW0RP
TUhUTUxFbWJlZEVsZW1lbnQgc2V0TmFtZTpdKToKKyAgICAgICAgKC1bRE9NSFRNTEVtYmVkRWxl
bWVudCBzcmNdKToKKyAgICAgICAgKC1bRE9NSFRNTEVtYmVkRWxlbWVudCBzZXRTcmM6XSk6Cisg
ICAgICAgICgtW0RPTUhUTUxFbWJlZEVsZW1lbnQgdHlwZV0pOgorICAgICAgICAoLVtET01IVE1M
RW1iZWRFbGVtZW50IHNldFR5cGU6XSk6CisgICAgICAgICgtW0RPTUhUTUxFbWJlZEVsZW1lbnQg
d2lkdGhdKToKKyAgICAgICAgKC1bRE9NSFRNTEVtYmVkRWxlbWVudCBzZXRXaWR0aDpdKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL1B1YmxpY0RPTUludGVyZmFjZXMuaDoKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVEZWNsYXJh
dGlvbi5pZGw6CisgICAgICAgICogZG9tL0RvY3VtZW50LmlkbDoKKyAgICAgICAgKiBkb20vS2V5
Ym9hcmRFdmVudC5oOgorICAgICAgICAqIGRvbS9LZXlib2FyZEV2ZW50LmlkbDoKKyAgICAgICAg
KiBkb20vTW91c2VFdmVudC5pZGw6CisgICAgICAgICogZG9tL011dGF0aW9uRXZlbnQuaWRsOgor
ICAgICAgICAqIGRvbS9PdmVyZmxvd0V2ZW50LmlkbDoKKyAgICAgICAgKiBkb20vVUlFdmVudC5p
ZGw6CisgICAgICAgICogZG9tL1doZWVsRXZlbnQuaWRsOgorICAgICAgICAqIGh0bWwvSFRNTEVt
YmVkRWxlbWVudC5pZGw6IEFkZGVkLgorICAgICAgICAqIHhtbC9YUGF0aEV4cHJlc3Npb24uaWRs
OgorICAgICAgICAqIHhtbC9YUGF0aE5TUmVzb2x2ZXIuaWRsOgorICAgICAgICAqIHhtbC9YUGF0
aFJlc3VsdC5pZGw6CisKIDIwMDYtMDktMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbSBILgpJbmRleDogV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2
aXNpb24gMTYyNzQpCisrKyBXZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHdvcmtpbmcgY29w
eSkKQEAgLTY5LDYgKzY5LDcgQEAgYWxsIDogXAogICAgIERPTUVudGl0eS5oIFwKICAgICBET01F
bnRpdHlSZWZlcmVuY2UuaCBcCiAgICAgRE9NRXZlbnQuaCBcCisgICAgRE9NRXZlbnRMaXN0ZW5l
ci5oIFwKICAgICBET01IVE1MQW5jaG9yRWxlbWVudC5oIFwKICAgICBET01IVE1MQXJlYUVsZW1l
bnQuaCBcCiAgICAgRE9NSFRNTEJSRWxlbWVudC5oIFwKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNjI3NCkKKysrIFdlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01MTQsNiAr
NTE0LDggQEAKIAkJODU4QzM5QkIwQUE5MDVFRjAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCBpbiBD
b3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4QTEwQUE4
RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLzsgfTsKIAkJODU4QzM5QkMwQUE5MDVFRjAw
QjE4N0E0IC8qIERPTVJlY3QuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QuaCAqLzsgfTsK
IAkJODU4QzM5QkQwQUE5MDVFRjAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCBpbiBDb3B5
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM5MjYwQUE4RkY5
RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAqLzsgfTsKKwkJODU5MTI4RjMwQUIyNDMx
QTAwMjAyMjY1IC8qIERPTUhUTUxFbWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OTEyOEYxMEFCMjQzMUEwMDIwMjI2NSAvKiBET01I
VE1MRW1iZWRFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJODU5MTI4RjQwQUIyNDMxQTAwMjAyMjY1IC8qIERPTUhUTUxFbWJlZEVsZW1l
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTkx
MjhGMjBBQjI0MzFBMDAyMDIyNjUgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5tbSAqLzsgfTsKIAkJ
ODU5OTJFQkEwQUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU5OTJFQjIwQUE1MDY5NTAw
QUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKCk7IH07IH07CiAJCTg1OTkyRUJCMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVs
ZW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTk5MkVCMzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovOyB9Owog
CQk4NTk5MkVCQzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTk5MkVCNDBBQTUwNjk1
MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoKTsgfTsgfTsKQEAgLTU4Miw3ICs1ODQsNiBAQAogCQk4NUJBNEQyRTBBQTY4ODlGMDA4
ODA1MkQgLyogRE9NSFRNTFVMaXN0RWxlbWVudC5oIGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUJBNEQwOTBBQTY4ODY4MDA4ODA1MkQgLyogRE9NSFRN
TFVMaXN0RWxlbWVudC5oICovOyB9OwogCQk4NUM3RjNFNjBBQUY1RDVFMDA0MDE0REQgLyogRE9N
RXZlbnQuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggKi87IH07CiAJCTg1QzdGNDA4
MEFBRjZFQTkwMDQwMTRERCAvKiBET01FdmVudFByaXZhdGUuaCBpbiBDb3B5RmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y0MDcwQUFGNkVBOTAwNDAxNEREIC8q
IERPTUV2ZW50UHJpdmF0ZS5oICovOyB9OwotCQk4NUM3RjQ0NjBBQUY3NkRDMDA0MDE0REQgLyog
RE9NRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODVDN0Y0NDQwQUFGNzZEQzAwNDAxNEREIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUM3RjQ0
NzBBQUY3NkRDMDA0MDE0REQgLyogRE9NRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNDQ1MEFBRjc2REMwMDQwMTRERCAvKiBE
T01FdmVudFRhcmdldC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTg1QzdGNDkxMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURD
MDA0MDE0REQgLyogRE9NVUlFdmVudC5oICovOyB9OwogCQk4NUM3RjQ5MjBBQUY3OURDMDA0MDE0
REQgLyogRE9NVUlFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tICovOyB9
OwpAQCAtNjAyLDYgKzYwMyw4IEBACiAJCTg1Q0E5NkVCMEE5NjI0RTkwMDY5MENDRiAvKiBET01O
b3RhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1Q0E5NkU5MEE5NjI0RTkwMDY5MENDRiAvKiBET01Ob3RhdGlvbi5tbSAqLzsgfTsKIAkJODVD
QTk3NUMwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDQTk3NUEwQTk2MkU1NDAwNjkwQ0NG
IC8qIERPTURvY3VtZW50VHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07
IH07CiAJCTg1Q0E5NzVEMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNBOTc1QjBBOTYy
RTU0MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tICovOyB9OworCQk4NUQyQUQ2ODBBQjFB
NDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2
ZW50TGlzdGVuZXIuaCAqLzsgfTsKKwkJODVEMkFENkQwQUIxQTQ4MjAwQzMxM0VBIC8qIERPTUV2
ZW50TGlzdGVuZXIuaCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLzsg
fTsKIAkJODVEMzg5QjIwQTk5MUE3RjAwMjgyMTQ1IC8qIERPTUF0dHIuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDM4OUIwMEE5OTFBN0YwMDI4MjE0
NSAvKiBET01BdHRyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJ
ODVEMzg5QjMwQTk5MUE3RjAwMjgyMTQ1IC8qIERPTUF0dHIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQzODlCMTBBOTkxQTdGMDAyODIxNDUgLyog
RE9NQXR0ci5tbSAqLzsgfTsKIAkJODVERjJDNUMwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxG
b3JtRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVERjJDMTAwQUEzNDFGNjAwQUQ2NEM1IC8qIERPTUhUTUxGb3JtRWxlbWVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKCk7IH07IH07CkBAIC0yMDE5LDYgKzIwMjIsNyBAQAog
CQkJZHN0UGF0aCA9IFZlcnNpb25zL0EvUHJpdmF0ZUhlYWRlcnM7CiAJCQlkc3RTdWJmb2xkZXJT
cGVjID0gMTsKIAkJCWZpbGVzID0gKAorCQkJCTg1RDJBRDZEMEFCMUE0ODIwMEMzMTNFQSAvKiBE
T01FdmVudExpc3RlbmVyLmggaW4gQ29weUZpbGVzICovLAogCQkJCTg1NTI2RDA1MEFCMEI5Nzkw
MDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLmggaW4gQ29weUZpbGVzICovLAogCQkJCTg1NTI2Qzcy
MEFCMEFFMkYwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IuaCBpbiBDb3B5RmlsZXMgKi8sCiAJ
CQkJODU1MjZDNzMwQUIwQUUyRjAwMDMwMkVBIC8qIERPTU5vZGVJdGVyYXRvclByaXZhdGUuaCBp
biBDb3B5RmlsZXMgKi8sCkBAIC0yNzIyLDYgKzI3MjYsOSBAQAogCQk4NThDMzkyNzBBQThGRjlE
MDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZVNoZWV0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4NThDMzk1RDBBQTkwMkE5MDBCMTg3QTQgLyogRE9NUkdCQ29sb3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJHQkNvbG9yLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTg1OEMzOTVFMEFBOTAyQTkwMEIxODdBNCAvKiBET01SR0JDb2xv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01SR0JDb2xv
ci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5MTI4NzkwQUIyMjJFQzAwMjAy
MjY1IC8qIEhUTUxFbWJlZEVsZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
RW1iZWRFbGVtZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU5MTI4RjEw
QUIyNDMxQTAwMjAyMjY1IC8qIERPTUhUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxFbWJlZEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJODU5MTI4RjIwQUIyNDMxQTAwMjAyMjY1IC8qIERPTUhUTUxFbWJlZEVs
ZW1lbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRN
TEVtYmVkRWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU5OTJFQjIw
QUE1MDY5NTAwQUMwNzg1IC8qIERPTUhUTUxIZWFkRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1OTkyRUIzMEFBNTA2OTUwMEFDMDc4NSAvKiBET01IVE1MSGVhZEVsZW1l
bnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NSFRNTEhl
YWRFbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTk5MkVCNDBBQTUw
Njk1MDBBQzA3ODUgLyogRE9NSFRNTEh0bWxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01IVE1MSHRtbEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI3OTEsNyArMjc5OCw2IEBACiAJCTg1QzU2Q0FDMEFBODlGOEUwMEQ5NTc1NSAv
KiBDU1NDaGFyc2V0UnVsZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENTU0NoYXJzZXRS
dWxlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDNTZDQUQwQUE4OUZFMDAw
RDk1NzU1IC8qIENTU1Vua25vd25SdWxlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ1NT
VW5rbm93blJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUM3RjQwNzBB
QUY2RUE5MDA0MDE0REQgLyogRE9NRXZlbnRQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01FdmVudFByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODVDN0Y0NDQwQUFGNzZEQzAwNDAxNEREIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50TGlzdGVuZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDN0Y0NDUwQUFGNzZEQzAwNDAxNEREIC8qIERPTUV2
ZW50VGFyZ2V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FdmVudFRh
cmdldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUM3RjQ4RjBBQUY3OURDMDA0
MDE0REQgLyogRE9NVUlFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RE9NVUlFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUM3RjQ5MDBBQUY3
OURDMDA0MDE0REQgLyogRE9NVUlFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01VSUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMjgwOSw2ICsyODE1LDcgQEAKIAkJODVDQTk2RTkwQTk2MjRFOTAwNjkwQ0NGIC8qIERPTU5v
dGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU5v
dGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUNBOTc1QTBBOTYyRTU0
MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01Eb2N1bWVudFR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODVDQTk3NUIwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlwZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01Eb2N1bWVudFR5cGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1RDJBRDY3MEFCMUE0MEEwMEMzMTNFQSAvKiBET01F
dmVudExpc3RlbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FdmVu
dExpc3RlbmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RDM4OUIwMEE5OTFB
N0YwMDI4MjE0NSAvKiBET01BdHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBET01BdHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RDM4OUIxMEE5OTFB
N0YwMDI4MjE0NSAvKiBET01BdHRyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IERPTUF0dHIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1REYy
QzEwMEFBMzQxRjYwMEFENjRDNSAvKiBET01IVE1MRm9ybUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUhUTUxGb3JtRWxlbWVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNTA0NCw2ICs1MDUxLDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJ
CTg1MkI5RTgzMEFBNzlDNDcwMDJBREE2RSAvKiBET01IVE1MQXBwbGV0RWxlbWVudC5oICovLAog
CQkJCTg1MkI5RTg0MEFBNzlDNDcwMDJBREE2RSAvKiBET01IVE1MQXBwbGV0RWxlbWVudC5tbSAq
LywKKwkJCQk4NTkxMjhGMTBBQjI0MzFBMDAyMDIyNjUgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5o
ICovLAorCQkJCTg1OTEyOEYyMEFCMjQzMUEwMDIwMjI2NSAvKiBET01IVE1MRW1iZWRFbGVtZW50
Lm1tICovLAogCQkJCTg1OTkyRkJFMEFBNURENDAwMEFDMDc4NSAvKiBET01IVE1MRG9jdW1lbnQu
aCAqLywKIAkJCQk4NTk5MkZCRjBBQTVERDQwMDBBQzA3ODUgLyogRE9NSFRNTERvY3VtZW50Lm1t
ICovLAogCQkJCTg1MkI5RTg1MEFBNzlDNDcwMDJBREE2RSAvKiBET01IVE1MT3B0aW9uRWxlbWVu
dC5oICovLApAQCAtNTA2Myw2ICs1MDcyLDcgQEAKIAkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1
IC8qIEV2ZW50cyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJ
CQkJODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLywKIAkJ
CQk4NUM3RjQwNzBBQUY2RUE5MDA0MDE0REQgLyogRE9NRXZlbnRQcml2YXRlLmggKi8sCiAJCQkJ
ODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggKi8sCiAJCQkJODVBRkE4MjEw
QUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovLApAQCAtNTA3Miw5ICs1MDgyLDkgQEAK
IAkJCQk4NTdFMEIyQjBBQjA0M0ZDMDAzNkU0NDcgLyogRE9NTW91c2VFdmVudFByaXZhdGUuaCAq
LywKIAkJCQk4NTdFMEIyMzBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5oICovLAog
CQkJCTg1N0UwQjI0MEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50Lm1tICovLAorCQkJ
CTg1QzdGNUJFMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oICov
LAogCQkJCTg1QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8s
CiAJCQkJODVDN0Y1QkQwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gKi8s
Ci0JCQkJODVDN0Y1QkUwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnRQcml2YXRl
LmggKi8sCiAJCQkJODVDN0Y1Q0UwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQu
aCAqLywKIAkJCQk4NUM3RjVDRjBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVudC5t
bSAqLywKIAkJCQk4NUM3RjRDMjBBQUY4MDgxMDA0MDE0REQgLyogRE9NVUlFdmVudFByaXZhdGUu
aCAqLywKQEAgLTUyMzEsNyArNTI0MSw2IEBACiAJCTg1QzdGNDQzMEFBRjc2ODYwMDQwMTRERCAv
KiBFdmVudHMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJ
CTg1QzdGNDQ0MEFBRjc2REMwMDQwMTRERCAvKiBET01FdmVudExpc3RlbmVyLmggKi8sCiAJCQkJ
ODVDN0Y0NDUwQUFGNzZEQzAwNDAxNEREIC8qIERPTUV2ZW50VGFyZ2V0LmggKi8sCiAJCQkpOwog
CQkJbmFtZSA9IEV2ZW50czsKQEAgLTU0MzAsNiArNTQzOSw3IEBACiAJCQkJQkNFRjM0MzMwODdC
NTYzRTAwQkJGODMzIC8qIEhUTUxFbGVtZW50RmFjdG9yeS5oICovLAogCQkJCUE4NzFENDU1MEEx
MjdDQkMwMEIxMkE2OCAvKiBIVE1MRW1iZWRFbGVtZW50LmNwcCAqLywKIAkJCQlBODcxRDQ1MjBB
MTI3Q0JDMDBCMTJBNjggLyogSFRNTEVtYmVkRWxlbWVudC5oICovLAorCQkJCTg1OTEyODc5MEFC
MjIyRUMwMDIwMjI2NSAvKiBIVE1MRW1iZWRFbGVtZW50LmlkbCAqLywKIAkJCQlBODEzNjlCOTA5
NzM3NEY1MDBENzQ0NjMgLyogSFRNTEZpZWxkU2V0RWxlbWVudC5jcHAgKi8sCiAJCQkJQTgxMzY5
QjgwOTczNzRGNTAwRDc0NDYzIC8qIEhUTUxGaWVsZFNldEVsZW1lbnQuaCAqLywKIAkJCQkxQUUy
QTlGNDBBMUNEQTU3MDBCNDJCMjUgLyogSFRNTEZpZWxkU2V0RWxlbWVudC5pZGwgKi8sCkBAIC03
ODI5LDcgKzc4MzksNiBAQAogCQkJCTg1MDY1NzAyMEFBQjQ3NjMwMDJEMTVDMCAvKiBET01TdHls
ZVNoZWV0TGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM0NzA2QUIwQUFDRDgwOTAwMkMxRDQz
IC8qIFRleHREZWNvZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUFGQTgyMjBBQUY1MjhBMDBF
ODQzMDUgLyogRE9NRXZlbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCTg1QzdGNDQ2MEFBRjc2REMw
MDQwMTRERCAvKiBET01FdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUM3RjQ0
NzBBQUY3NkRDMDA0MDE0REQgLyogRE9NRXZlbnRUYXJnZXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTg1QzdGNDkxMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk4NUM3RjRDMzBBQUY4MDgxMDA0MDE0REQgLyogRE9NVUlFdmVudFByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtNzg0Niw2ICs3ODU1LDggQEAKIAkJCQk4NTUyNkMzRTBBQjBBNzZGMDAw
MzAyRUEgLyogRE9NTm9kZUl0ZXJhdG9yUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1
MjZDRDIwQUIwQjdEOTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTg1OUZBNUZCMEFCMEJGMjAwMDRGQUVFOSAvKiBET01Ob2RlRmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk4NUQyQUQ2ODBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCisJCQkJODU5MTI4RjMwQUIyNDMxQTAwMjAyMjY1IC8qIERPTUhUTUxF
bWJlZEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3lt
ZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtODg1Niw2ICs4ODY3LDcgQEAKIAkJCQk4
NTdFMEIyNjBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTg1NTI2QzM4MEFCMEExN0UwMDAzMDJFQSAvKiBET01Ob2RlSXRlcmF0b3IubW0gaW4g
U291cmNlcyAqLywKIAkJCQk4NTUyNkNEMzBBQjBCN0RBMDAwMzAyRUEgLyogRE9NVHJlZVdhbGtl
ci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTg1OTEyOEY0MEFCMjQzMUEwMDIwMjI2NSAvKiBET01I
VE1MRW1iZWRFbGVtZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRl
cGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET00ubW0J
KHJldmlzaW9uIDE2Mjc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTS5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTcyLDE2ICs1NzIsNiBAQCBzdGF0aWMgQ2xhc3MgZWxlbWVudENsYXNzKGNv
bnN0IEF0b21pY1N0CiAvLy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9N
RG9jdW1lbnQKIAotLy8gRklYTUU6IHRoaXMgc2hvdWxkIGJlIGF1dG8tZ2VuZW5lcmF0ZSBpbiBE
T01Eb2N1bWVudC5tbQotQGltcGxlbWVudGF0aW9uIERPTURvY3VtZW50IChET01Eb2N1bWVudEV4
dGVuc2lvbnMpCi0KLS0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKiljcmVhdGVDU1NTdHlsZURl
Y2xhcmF0aW9uCi17Ci0gICAgcmV0dXJuIFtET01DU1NTdHlsZURlY2xhcmF0aW9uIF9DU1NTdHls
ZURlY2xhcmF0aW9uV2l0aDpbc2VsZiBfZG9jdW1lbnRdLT5jcmVhdGVDU1NTdHlsZURlY2xhcmF0
aW9uKCkuZ2V0KCldOwotfQotCi1AZW5kCi0KIEBpbXBsZW1lbnRhdGlvbiBET01Eb2N1bWVudCAo
V2ViQ29yZUludGVybmFsKQogCiArIChET01Eb2N1bWVudCAqKV9kb2N1bWVudFdpdGg6KERvY3Vt
ZW50ICopaW1wbApJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCShyZXZpc2lvbiAxNjI3NCkK
KysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1
NSwyMCArMjU1LDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAvLy0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQogLy8gRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbgogCi1AaW1wbGVt
ZW50YXRpb24gRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkV4
dGVuc2lvbnMpCi0KLS0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlTaG9ydGhhbmQ6KE5TU3RyaW5n
ICopcHJvcGVydHlOYW1lCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9DU1NTdHlsZURlY2xhcmF0aW9u
XS0+Z2V0UHJvcGVydHlTaG9ydGhhbmQocHJvcGVydHlOYW1lKTsKLX0KLQotLSAoQk9PTClpc1By
b3BlcnR5SW1wbGljaXQ6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lCi17Ci0gICAgcmV0dXJuIFtz
ZWxmIF9DU1NTdHlsZURlY2xhcmF0aW9uXS0+aXNQcm9wZXJ0eUltcGxpY2l0KHByb3BlcnR5TmFt
ZSk7Ci19Ci0KLUBlbmQKLQogQGltcGxlbWVudGF0aW9uIERPTUNTU1N0eWxlRGVjbGFyYXRpb24g
KFdlYkNvcmVJbnRlcm5hbCkKIAogLSAoaWQpX2luaXRXaXRoU3R5bGVEZWNsYXJhdGlvbjooQ1NT
U3R5bGVEZWNsYXJhdGlvbiAqKWltcGwKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01F
dmVudExpc3RlbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2
ZW50TGlzdGVuZXIuaAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NRXZlbnRMaXN0ZW5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMxICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8
c2FtLndlaW5pZ0BnbWFpbC5jb20+Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLUBjbGFzcyBET01FdmVudDsKLQotQHByb3Rv
Y29sIERPTUV2ZW50TGlzdGVuZXIgPE5TT2JqZWN0PgotLSAodm9pZCloYW5kbGVFdmVudDooRE9N
RXZlbnQgKilldmVudDsKLUBlbmQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FeHRl
bnNpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV4dGVuc2lv
bnMuaAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXh0ZW5z
aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW1wb3J0IDxXZWJDb3Jl
L0RPTUhUTUxBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MRG9jdW1lbnQu
aD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEVsZW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
RE9NSFRNTEVtYmVkRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01IVE1MSW1hZ2VFbGVt
ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxJbnB1dEVsZW1lbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRE9NSFRNTExpbmtFbGVtZW50Lmg+CkBAIC00NSw3ICs0Niw2IEBACiBAY2xhc3Mg
TlNJbWFnZTsKIAogQGludGVyZmFjZSBET01Eb2N1bWVudCAoRE9NRG9jdW1lbnRDU1NFeHRlbnNp
b25zKQotLSAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKWNyZWF0ZUNTU1N0eWxlRGVjbGFyYXRp
b247CiAtIChET01DU1NSdWxlTGlzdCAqKWdldE1hdGNoZWRDU1NSdWxlczooRE9NRWxlbWVudCAq
KWVsdCA6KE5TU3RyaW5nICopcHNldWRvRWx0OwogQGVuZAogCkBAIC02MSwyNiArNjEsNiBAQAog
LSAoTlNVUkwgKilhYnNvbHV0ZUltYWdlVVJMOwogQGVuZAogCi1AaW50ZXJmYWNlIERPTUhUTUxF
bWJlZEVsZW1lbnQgOiBET01IVE1MRWxlbWVudAotLSAoTlNTdHJpbmcgKilhbGlnbjsKLS0gKHZv
aWQpc2V0QWxpZ246KE5TU3RyaW5nICopYWxpZ247Ci0tIChpbnQpaGVpZ2h0OwotLSAodm9pZClz
ZXRIZWlnaHQ6KGludCloZWlnaHQ7Ci0tIChOU1N0cmluZyAqKW5hbWU7Ci0tICh2b2lkKXNldE5h
bWU6KE5TU3RyaW5nICopbmFtZTsKLS0gKE5TU3RyaW5nICopc3JjOwotLSAodm9pZClzZXRTcmM6
KE5TU3RyaW5nICopc3JjOwotLSAoTlNTdHJpbmcgKil0eXBlOwotLSAodm9pZClzZXRUeXBlOihO
U1N0cmluZyAqKXR5cGU7Ci0tIChpbnQpd2lkdGg7Ci0tICh2b2lkKXNldFdpZHRoOihpbnQpd2lk
dGg7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAoRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbkV4dGVuc2lvbnMpCi0tIChOU1N0cmluZyAqKWdldFByb3BlcnR5U2hvcnRo
YW5kOihOU1N0cmluZyAqKXByb3BlcnR5TmFtZTsKLS0gKEJPT0wpaXNQcm9wZXJ0eUltcGxpY2l0
OihOU1N0cmluZyAqKXByb3BlcnR5TmFtZTsKLUBlbmQKLQogQGludGVyZmFjZSBET01SYW5nZSAo
RE9NUmFuZ2VFeHRlbnNpb25zKQogLSAoTlNTdHJpbmcgKil0ZXh0OwogQGVuZApJbmRleDogV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NSFRNTC5oCShyZXZpc2lvbiAxNjI3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01IVE1MLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDMgKzgyLDYgQEAKICNpbXBvcnQg
PFdlYkNvcmUvRE9NSFRNTFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9ET01I
VE1MVGl0bGVFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxVTGlzdEVsZW1lbnQu
aD4KKworLy8gd2FzIGFuIEhUTUwgZXh0ZW5zaW9uCisjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxF
bWJlZEVsZW1lbnQuaD4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCShyZXZpc2lvbiAx
NjI3NCkKKysrIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01IVE1MLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zNCw3ICszNCw2IEBACiAjaW1wb3J0ICJGb3VuZGF0aW9uRXh0cmFzLmgiCiAjaW1wb3J0
ICJGcmFtZVZpZXcuaCIKICNpbXBvcnQgIkhUTUxEb2N1bWVudC5oIgotI2ltcG9ydCAiSFRNTEVt
YmVkRWxlbWVudC5oIgogI2ltcG9ydCAiSFRNTEZvcm1FbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1M
SW1hZ2VFbGVtZW50LmgiCiAjaW1wb3J0ICJIVE1MSW5wdXRFbGVtZW50LmgiCkBAIC0zMTUsNzkg
KzMxNCw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNwcmFnbWEgbWFyayBET00g
RVhURU5TSU9OUwogCi0KLS8vLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0vLyBE
T01IVE1MRW1iZWRFbGVtZW50Ci0KLUBpbXBsZW1lbnRhdGlvbiBET01IVE1MRW1iZWRFbGVtZW50
Ci0KLS0gKEhUTUxFbWJlZEVsZW1lbnQgKilfSFRNTEVtYmVkRWxlbWVudAotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxIVE1MRW1iZWRFbGVtZW50Kj4oRE9NX2Nhc3Q8Tm9kZSo+KF9pbnRlcm5h
bCkpOwotfQotCi0tIChOU1N0cmluZyAqKWFsaWduCi17Ci0gICAgcmV0dXJuIFtzZWxmIF9IVE1M
RW1iZWRFbGVtZW50XS0+Z2V0QXR0cmlidXRlKGFsaWduQXR0cik7Ci19Ci0KLS0gKHZvaWQpc2V0
QWxpZ246KE5TU3RyaW5nICopYWxpZ24KLXsKLSAgICBbc2VsZiBfSFRNTEVtYmVkRWxlbWVudF0t
PnNldEF0dHJpYnV0ZShhbGlnbkF0dHIsIGFsaWduKTsKLX0KLQotLSAoaW50KWhlaWdodAotewot
ICAgIHJldHVybiBbc2VsZiBfSFRNTEVtYmVkRWxlbWVudF0tPmdldEF0dHJpYnV0ZShoZWlnaHRB
dHRyKS50b0ludCgpOwotfQotCi0tICh2b2lkKXNldEhlaWdodDooaW50KWhlaWdodAotewotICAg
IFtzZWxmIF9IVE1MRW1iZWRFbGVtZW50XS0+c2V0QXR0cmlidXRlKGhlaWdodEF0dHIsIFN0cmlu
Zzo6bnVtYmVyKGhlaWdodCkpOwotfQotCi0tIChOU1N0cmluZyAqKW5hbWUKLXsKLSAgICByZXR1
cm4gW3NlbGYgX0hUTUxFbWJlZEVsZW1lbnRdLT5nZXRBdHRyaWJ1dGUobmFtZUF0dHIpOwotfQot
Ci0tICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmFtZQotewotICAgIFtzZWxmIF9IVE1MRW1i
ZWRFbGVtZW50XS0+c2V0QXR0cmlidXRlKG5hbWVBdHRyLCBuYW1lKTsKLX0KLQotLSAoTlNTdHJp
bmcgKilzcmMKLXsKLSAgICByZXR1cm4gW3NlbGYgX0hUTUxFbWJlZEVsZW1lbnRdLT5nZXRBdHRy
aWJ1dGUoc3JjQXR0cik7Ci19Ci0KLS0gKHZvaWQpc2V0U3JjOihOU1N0cmluZyAqKXNyYwotewot
ICAgIFtzZWxmIF9IVE1MRW1iZWRFbGVtZW50XS0+c2V0QXR0cmlidXRlKHNyY0F0dHIsIHNyYyk7
Ci19Ci0KLS0gKE5TU3RyaW5nICopdHlwZQotewotICAgIHJldHVybiBbc2VsZiBfSFRNTEVtYmVk
RWxlbWVudF0tPmdldEF0dHJpYnV0ZSh0eXBlQXR0cik7Ci19Ci0KLS0gKHZvaWQpc2V0VHlwZToo
TlNTdHJpbmcgKil0eXBlCi17Ci0gICAgW3NlbGYgX0hUTUxFbWJlZEVsZW1lbnRdLT5zZXRBdHRy
aWJ1dGUodHlwZUF0dHIsIHR5cGUpOwotfQotCi0tIChpbnQpd2lkdGgKLXsKLSAgICByZXR1cm4g
W3NlbGYgX0hUTUxFbWJlZEVsZW1lbnRdLT5nZXRBdHRyaWJ1dGUod2lkdGhBdHRyKS50b0ludCgp
OwotfQotCi0tICh2b2lkKXNldFdpZHRoOihpbnQpd2lkdGgKLXsKLSAgICBbc2VsZiBfSFRNTEVt
YmVkRWxlbWVudF0tPnNldEF0dHJpYnV0ZSh3aWR0aEF0dHIsIFN0cmluZzo6bnVtYmVyKHdpZHRo
KSk7Ci19Ci0KLUBlbmQKLQogLy8gVGhlc2UgI2ltcG9ydHMgYW5kICJ1c2luZ3MiIGFyZSB1c2Vk
IG9ubHkgYnkgdmlld0ZvckVsZW1lbnQgYW5kIHNob3VsZCBiZSBkZWxldGVkIAogLy8gd2hlbiB0
aGF0IGZ1bmN0aW9uIGdvZXMgYXdheS4KICNpbXBvcnQgIlJlbmRlcldpZGdldC5oIgpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NSFRNTEVtYmVkRWxlbWVudC5oCShyZXZpc2lvbiAw
KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQuaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDA2IEFw
cGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW1w
b3J0IDxXZWJDb3JlL0RPTUhUTUxFbGVtZW50Lmg+CisKK0BpbnRlcmZhY2UgRE9NSFRNTEVtYmVk
RWxlbWVudCA6IERPTUhUTUxFbGVtZW50CistIChOU1N0cmluZyAqKWFsaWduOworLSAodm9pZClz
ZXRBbGlnbjooTlNTdHJpbmcgKiluZXdBbGlnbjsKKy0gKGludCloZWlnaHQ7CistICh2b2lkKXNl
dEhlaWdodDooaW50KW5ld0hlaWdodDsKKy0gKE5TU3RyaW5nICopbmFtZTsKKy0gKHZvaWQpc2V0
TmFtZTooTlNTdHJpbmcgKiluZXdOYW1lOworLSAoTlNTdHJpbmcgKilzcmM7CistICh2b2lkKXNl
dFNyYzooTlNTdHJpbmcgKiluZXdTcmM7CistIChOU1N0cmluZyAqKXR5cGU7CistICh2b2lkKXNl
dFR5cGU6KE5TU3RyaW5nICopbmV3VHlwZTsKKy0gKGludCl3aWR0aDsKKy0gKHZvaWQpc2V0V2lk
dGg6KGludCluZXdXaWR0aDsKK0BlbmQKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01I
VE1MRW1iZWRFbGVtZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01IVE1MRW1iZWRFbGVtZW50Lm1tCShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUhUTUxFbWJlZEVsZW1lbnQubW0JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAwIEBA
CisvKgorICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9q
ZWN0LgorICogVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5n
cy5wbC4gRE8gTk9UIE1PRElGWSEKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0
ICJET01IVE1MRW1iZWRFbGVtZW50LmgiCisKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2lt
cG9ydCAiRE9NSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkhUTUxFbWJlZEVsZW1lbnQuaCIKKyNpbXBv
cnQgIlBsYXRmb3JtU3RyaW5nLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBET01IVE1MRW1iZWRFbGVt
ZW50CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpIVE1MRW1iZWRFbGVtZW50
Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb2RlKj4oX2ludGVybmFsKSkKKworLSAoTlNT
dHJpbmcgKilhbGlnbgoreworICAgIHJldHVybiBJTVBMLT5hbGlnbigpOworfQorCistICh2b2lk
KXNldEFsaWduOihOU1N0cmluZyAqKW5ld0FsaWduCit7CisgICAgSU1QTC0+c2V0QWxpZ24obmV3
QWxpZ24pOworfQorCistIChpbnQpaGVpZ2h0Cit7CisgICAgcmV0dXJuIElNUEwtPmhlaWdodCgp
LnRvSW50KCk7Cit9CisKKy0gKHZvaWQpc2V0SGVpZ2h0OihpbnQpbmV3SGVpZ2h0Cit7CisgICAg
SU1QTC0+c2V0SGVpZ2h0KFdlYkNvcmU6OlN0cmluZzo6bnVtYmVyKG5ld0hlaWdodCkpOworfQor
CistIChOU1N0cmluZyAqKW5hbWUKK3sKKyAgICByZXR1cm4gSU1QTC0+bmFtZSgpOworfQorCist
ICh2b2lkKXNldE5hbWU6KE5TU3RyaW5nICopbmV3TmFtZQoreworICAgIElNUEwtPnNldE5hbWUo
bmV3TmFtZSk7Cit9CisKKy0gKE5TU3RyaW5nICopc3JjCit7CisgICAgcmV0dXJuIElNUEwtPnNy
YygpOworfQorCistICh2b2lkKXNldFNyYzooTlNTdHJpbmcgKiluZXdTcmMKK3sKKyAgICBJTVBM
LT5zZXRTcmMobmV3U3JjKTsKK30KKworLSAoTlNTdHJpbmcgKil0eXBlCit7CisgICAgcmV0dXJu
IElNUEwtPnR5cGUoKTsKK30KKworLSAodm9pZClzZXRUeXBlOihOU1N0cmluZyAqKW5ld1R5cGUK
K3sKKyAgICBJTVBMLT5zZXRUeXBlKG5ld1R5cGUpOworfQorCistIChpbnQpd2lkdGgKK3sKKyAg
ICByZXR1cm4gSU1QTC0+d2lkdGgoKS50b0ludCgpOworfQorCistICh2b2lkKXNldFdpZHRoOihp
bnQpbmV3V2lkdGgKK3sKKyAgICBJTVBMLT5zZXRXaWR0aChXZWJDb3JlOjpTdHJpbmc6Om51bWJl
cihuZXdXaWR0aCkpOworfQorCitAZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
UHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcml2YXRl
LmgJKHJldmlzaW9uIDE2Mjc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByaXZhdGUu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTU3R5
bGVTaGVldFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NQ2hhcmFjdGVyRGF0YVByaXZh
dGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRE9NRE9NSW1wbGVtZW50YXRpb25Qcml2YXRlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTURvY3VtZW50UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9E
T01FbGVtZW50UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudFByaXZhdGUuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvRE9NSFRNTEFuY2hvckVsZW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RPTUhUTUxBcmVhRWxlbWVudFByaXZhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RE9NSFRNTEJvZHlFbGVtZW50UHJpdmF0ZS5oPgpAQCAtNTcsOSArNTksMTMgQEAKICNpbXBvcnQg
PFdlYkNvcmUvRE9NSFRNTFNlbGVjdEVsZW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0RPTUhUTUxTdHlsZUVsZW1lbnRQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RPTUhUTUxU
ZXh0QXJlYUVsZW1lbnRQcml2YXRlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RPTURPTUltcGxlbWVu
dGF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01LZXlib2FyZEV2ZW50UHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01NdXRhdGlvbkV2ZW50UHJpdmF0ZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9ET01OYW1lZE5vZGVNYXBQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RP
TU5vZGVJdGVyYXRvclByaXZhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvRE9NUHJvY2Vzc2luZ0lu
c3RydWN0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9ET01VSUV2ZW50UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9ET01XaGVlbEV2ZW50UHJpdmF0ZS5oPgogCiBAaW50ZXJmYWNl
IERPTVJhbmdlIChXZWJQcml2YXRlKQogLy8gdXNlcyBzYW1lIGFsZ29yaXRobSBhcyBpbm5lclRl
eHQKQEAgLTExMiwxMSArMTE4LDMgQEAKIEBpbnRlcmZhY2UgRE9NSFRNTFNlbGVjdEVsZW1lbnQo
Rm9ybXNBdXRvRmlsbFRyYW5zaXRpb24pCiAtICh2b2lkKV9hY3RpdmF0ZUl0ZW1BdEluZGV4Oihp
bnQpaW5kZXg7CiBAZW5kCi0KLUBpbnRlcmZhY2UgRE9NS2V5Ym9hcmRFdmVudChQdWJsaWNQZW5k
aW5nKQotLSAodm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIDooQk9P
TCljYW5CdWJibGVBcmcgOihCT09MKWNhbmNlbGFibGVBcmcgOihET01BYnN0cmFjdFZpZXcgKil2
aWV3QXJnIDooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyQXJnIDoodW5zaWduZWQpa2V5TG9jYXRp
b25BcmcgOihCT09MKWN0cmxLZXlBcmcgOihCT09MKWFsdEtleUFyZyA6KEJPT0wpc2hpZnRLZXlB
cmcgOihCT09MKW1ldGFLZXlBcmc7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgRE9NV2hlZWxFdmVudChQ
dWJsaWNQZW5kaW5nKQotLSAodm9pZClpbml0V2hlZWxFdmVudDooQk9PTClob3Jpem9udGFsIDoo
aW50KXdoZWVsRGVsdGEgOihET01BYnN0cmFjdFZpZXcgKil2aWV3QXJnIDooaW50KXNjcmVlblhB
cmcgOihpbnQpc2NyZWVuWUFyZyA6KGludCljbGllbnRYIDooaW50KWNsaWVudFkgOihCT09MKWN0
cmxLZXlBcmcgOihCT09MKWFsdEtleUFyZyA6KEJPT0wpc2hpZnRLZXlBcmcgOihCT09MKW1ldGFL
ZXlBcmc7Ci1AZW5kCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvUHVibGljRE9NSW50ZXJm
YWNlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9QdWJsaWNET01JbnRl
cmZhY2VzLmgJKHJldmlzaW9uIDE2Mjc0KQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1B1Ymxp
Y0RPTUludGVyZmFjZXMuaAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgsNyBAQAogLSAoRE9N
UmFuZ2UgKiljcmVhdGVSYW5nZTsKIC0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilnZXRPdmVy
cmlkZVN0eWxlOihET01FbGVtZW50ICopZWxlbWVudCA6KE5TU3RyaW5nICopcHNldWRvRWxlbWVu
dDsKIC8vLSAoRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKWdldE92ZXJyaWRlU3R5bGU6KERPTUVs
ZW1lbnQgKillbGVtZW50IHBzZXVkb0VsZW1lbnQ6KE5TU3RyaW5nICopcHNldWRvRWxlbWVudDsK
Ky0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKiljcmVhdGVDU1NTdHlsZURlY2xhcmF0aW9uOwog
LSAoRE9NTm9kZSAqKWFkb3B0Tm9kZTooRE9NTm9kZSAqKXNvdXJjZTsKICNpZmRlZiBYUEFUSF9T
VVBQT1JUCiAtIChET01YUGF0aEV4cHJlc3Npb24gKiljcmVhdGVFeHByZXNzaW9uOihOU1N0cmlu
ZyAqKWV4cHJlc3Npb24gOihpZCA8RE9NWFBhdGhOU1Jlc29sdmVyPilyZXNvbHZlcjsKQEAgLTcz
NCw2ICs3MzUsOCBAQAogLSAodm9pZClzZXRQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5h
bWUgOihOU1N0cmluZyAqKXZhbHVlIDooTlNTdHJpbmcgKilwcmlvcml0eTsKIC8vLSAodm9pZClz
ZXRQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFs
dWUgcHJpb3JpdHk6KE5TU3RyaW5nICopcHJpb3JpdHk7CiAtIChOU1N0cmluZyAqKWl0ZW06KHVu
c2lnbmVkKWluZGV4OworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVNob3J0aGFuZDooTlNTdHJp
bmcgKilwcm9wZXJ0eU5hbWU7CistIChCT09MKWlzUHJvcGVydHlJbXBsaWNpdDooTlNTdHJpbmcg
Kilwcm9wZXJ0eU5hbWU7CiBAZW5kCiAKIEBpbnRlcmZhY2UgRE9NQ1NTU3R5bGVSdWxlIDogRE9N
Q1NTUnVsZQpAQCAtODc1LDMgKzg3OCw5IEBACiAtIChET01Ob2RlICopcHJldmlvdXNOb2RlOwog
LSAoRE9NTm9kZSAqKW5leHROb2RlOwogQGVuZAorCisvLyBQcm90b2NvbHMKKworQHByb3RvY29s
IERPTUV2ZW50TGlzdGVuZXIgPE5TT2JqZWN0PgorLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZl
bnQgKilldnQ7CitAZW5kCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkocmV2
aXNpb24gMTYyNzQpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbAkod29y
a2luZyBjb3B5KQpAQCAtMzksNiArMzksMTAgQEAgbW9kdWxlIGNzcyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBbRXhjbHVkZT1KU10gdW5zaWduZWQgbG9uZyAgICBsZW5ndGg7CiAgICAg
ICAgIFtFeGNsdWRlPUpTXSBET01TdHJpbmcgICAgICAgICAgaXRlbShpbiB1bnNpZ25lZCBsb25n
IGluZGV4KTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFeGNsdWRlPUpTXSBDU1NSdWxl
ICAgICAgICAgIHBhcmVudFJ1bGU7CisgICAgICAgIAorICAgICAgICAvLyBleHRlbnNpb25zCisg
ICAgICAgIFtFeGNsdWRlPUpTXSBET01TdHJpbmcgICAgICAgICAgZ2V0UHJvcGVydHlTaG9ydGhh
bmQoaW4gRE9NU3RyaW5nIHByb3BlcnR5TmFtZSk7CisgICAgICAgIFtFeGNsdWRlPUpTXSBib29s
ZWFuICAgICAgICAgICAgaXNQcm9wZXJ0eUltcGxpY2l0KGluIERPTVN0cmluZyBwcm9wZXJ0eU5h
bWUpOwogCiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmlkbAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJD
b3JlL2RvbS9Eb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE3MCw2ICsxNzAsOCBAQCBt
b2R1bGUgY29yZSB7CiAKICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51
bGxdIERPTVN0cmluZyBzZWxlY3RlZFN0eWxlc2hlZXRTZXQ7CiAKKyAgICAgICAgW0V4Y2x1ZGU9
SlNdIENTU1N0eWxlRGVjbGFyYXRpb24gY3JlYXRlQ1NTU3R5bGVEZWNsYXJhdGlvbigpOworCiAg
ICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0tleWJvYXJkRXZlbnQuaAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJD
b3JlL2RvbS9LZXlib2FyZEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDcgKzUxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2ZW50
KGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgYm9vbCBjYW5CdWJibGUsIGJvb2wgY2FuY2VsYWJs
ZSwgQWJzdHJhY3RWaWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv
bnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgdW5zaWduZWQga2V5TG9jYXRpb24sCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBz
aGlmdEtleSwgYm9vbCBtZXRhS2V5LCBib29sIGFsdEdyYXBoS2V5KTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5
LCBib29sIG1ldGFLZXksIGJvb2wgYWx0R3JhcGhLZXkgPSBmYWxzZSk7CiAgICAgCiAgICAgICAg
IFN0cmluZyBrZXlJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9rZXlJZGVudGlmaWVyLmdl
dCgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGtleUxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9r
ZXlMb2NhdGlvbjsgfQpJbmRleDogV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHJldmlzaW9uIDE2Mjc0KQor
KysgV2ViQ29yZS9kb20vS2V5Ym9hcmRFdmVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDE2
ICsyMCwyNiBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAorICAgIC8vIEludHJvZHVjZWQgaW4gRE9N
IExldmVsIDM6CiAgICAgaW50ZXJmYWNlIEtleWJvYXJkRXZlbnQgOiBVSUV2ZW50IHsKIAorICAg
ICAgICAvLyBLZXlMb2NhdGlvbkNvZGUKKyAgICAgICAgLy9jb25zdCB1bnNpZ25lZCBsb25nICAg
ICAgIEtFWV9MT0NBVElPTl9TVEFOREFSRCAgICAgID0gMHgwMDsKKyAgICAgICAgLy9jb25zdCB1
bnNpZ25lZCBsb25nICAgICAgIEtFWV9MT0NBVElPTl9MRUZUICAgICAgICAgID0gMHgwMTsKKyAg
ICAgICAgLy9jb25zdCB1bnNpZ25lZCBsb25nICAgICAgIEtFWV9MT0NBVElPTl9SSUdIVCAgICAg
ICAgID0gMHgwMjsKKyAgICAgICAgLy9jb25zdCB1bnNpZ25lZCBsb25nICAgICAgIEtFWV9MT0NB
VElPTl9OVU1QQUQgICAgICAgID0gMHgwMzsKKwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
RE9NU3RyaW5nICAgICAgICBrZXlJZGVudGlmaWVyOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyAgICBrZXlMb2NhdGlvbjsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmli
dXRlIGJvb2xlYW4gICAgICAgICAgYWx0S2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUg
Ym9vbGVhbiAgICAgICAgICBjdHJsS2V5OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiAgICAgICAgICBtZXRhS2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVh
biAgICAgICAgICBzaGlmdEtleTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4g
ICAgICAgICAgYWx0S2V5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAg
ICAgICBtZXRhS2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAg
ICBhbHRHcmFwaEtleTsKIAorICAgICAgICAvL2Jvb2xlYW4gW0V4Y2x1ZGU9SlNdIGdldE1vZGlm
aWVyU3RhdGUoaW4gRE9NU3RyaW5nIGtleUlkZW50aWZpZXJBcmcpOworICAgICAgICAKKyAgICAg
ICAgLy8gRklYTUU6IHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIHZlcnNpb24gaW4gdGhlIERPTSBz
cGVjLgogICAgICAgICB2b2lkIGluaXRLZXlib2FyZEV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBl
LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZSwg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAK
QEAgLTQ1LDYgKzU1LDE3IEBAIG1vZHVsZSBldmVudHMgewogICAgICAgICAvLyBXZWJLaXQgRXh0
ZW5zaW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0V4Y2x1ZGU9SlNdIGxvbmcga2V5
Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtFeGNsdWRlPUpTXSBsb25nIGNoYXJD
b2RlOworICAgICAgICAKKyAgICAgICAgW0V4Y2x1ZGU9SlNdIHZvaWQgaW5pdEtleWJvYXJkRXZl
bnQoaW4gQXRvbWljU3RyaW5nIHR5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERPTVdpbmRvdyB2aWV3LCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5n
IGtleUlkZW50aWZpZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGluIHVuc2lnbmVkIGxvbmcga2V5TG9jYXRpb24sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRLZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gc2hpZnRLZXks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4g
bWV0YUtleSk7CiAKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmlkbAkocmV2aXNpb24gMTYyNzQp
CisrKyBXZWJDb3JlL2RvbS9Nb3VzZUV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTksMjQg
KzE5LDE5IEBACiAKIG1vZHVsZSBldmVudHMgewogCisgICAgLy8gSW50cm9kdWNlZCBpbiBET00g
TGV2ZWwgMjoKICAgICBpbnRlcmZhY2UgTW91c2VFdmVudCA6IFVJRXZlbnQgewogCiAgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIHNjcmVlblg7CiAgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIHNjcmVlblk7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNsaWVudFg7CiAgICAgICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIGNsaWVudFk7Ci0gICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgIG9mZnNldFg7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBsb25nICAgICAgICAgICAgIG9mZnNldFk7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBsb25nICAgICAgICAgICAgIHg7Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAg
ICAgICAgICAgIHk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAg
IGN0cmxLZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIHNo
aWZ0S2V5OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiAgICAgICAgICBhbHRL
ZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuICAgICAgICAgIG1ldGFLZXk7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9ydCAgIGJ1dHRvbjsKICAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEV2ZW50VGFyZ2V0ICAgICAgcmVsYXRlZFRhcmdldDsK
LSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGUgICAgICAgICAgICAgZnJvbUVsZW1lbnQ7
Ci0gICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIHRvRWxlbWVudDsK
ICAgICAgICAgCiAgICAgICAgIFtPbGRTdHlsZU9iakNdIHZvaWQgaW5pdE1vdXNlRXZlbnQoaW4g
QXRvbWljU3RyaW5nIHR5cGUsIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gY2FuQnViYmxlLCAKQEAgLTUzLDYgKzQ4LDE1IEBAIG1vZHVsZSBl
dmVudHMgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJv
b2xlYW4gbWV0YUtleSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gdW5zaWduZWQgc2hvcnQgYnV0dG9uLCAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBFdmVudFRhcmdldCByZWxhdGVkVGFyZ2V0KTsKKworICAgICAg
ICAvLyBleHRlbnNpb25zCisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAg
ICAgIG9mZnNldFg7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAg
IG9mZnNldFk7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIHg7
CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgIHk7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlICAgICAgICAgICAgIGZyb21FbGVtZW50OworICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZSAgICAgICAgICAgICB0b0VsZW1lbnQ7CisKICAgICB9
OwogCiB9CkluZGV4OiBXZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJD
b3JlL2RvbS9NdXRhdGlvbkV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTksMTAgKzE5LDEw
IEBACiAKIG1vZHVsZSBldmVudHMgewogCisgICAgLy8gSW50cm9kdWNlZCBpbiBET00gTGV2ZWwg
MjoKICAgICBpbnRlcmZhY2UgW0dlbmVyYXRlQ29uc3RydWN0b3JdIE11dGF0aW9uRXZlbnQgOiBF
dmVudCB7CiAKLSAgICAgICAgLy8gRE9NIExldmVsIDIKLQorICAgICAgICAvLyBhdHRyQ2hhbmdl
VHlwZQogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBNT0RJRklDQVRJT04gPSAxOwogICAg
ICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBBRERJVElPTiAgICAgPSAyOwogICAgICAgICBjb25z
dCB1bnNpZ25lZCBzaG9ydCBSRU1PVkFMICAgICAgPSAzOwpAQCAtMzQsMTMgKzM0LDEzIEBAIG1v
ZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQg
YXR0ckNoYW5nZTsKIAogICAgICAgICBbT2xkU3R5bGVPYmpDXSB2b2lkIGluaXRNdXRhdGlvbkV2
ZW50KGluIEF0b21pY1N0cmluZyB0eXBlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbiBib29sZWFuIGNhbkJ1YmJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBOb2RlIHJlbGF0ZWROb2RlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgcHJldlZhbHVlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBE
T01TdHJpbmcgbmV3VmFsdWUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIERP
TVN0cmluZyBhdHRyTmFtZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gdW5z
aWduZWQgc2hvcnQgYXR0ckNoYW5nZSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gTm9kZSByZWxhdGVk
Tm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4g
RE9NU3RyaW5nIHByZXZWYWx1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gRE9NU3RyaW5nIG5ld1ZhbHVlLCAKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBET01TdHJpbmcgYXR0ck5hbWUsIAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIHNob3J0
IGF0dHJDaGFuZ2UpOwogCiAgICAgfTsKIApJbmRleDogV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVu
dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5pZGwJKHJldmlz
aW9uIDE2Mjc0KQorKysgV2ViQ29yZS9kb20vT3ZlcmZsb3dFdmVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE3LDYgKzE3LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgogICov
CiBtb2R1bGUgZXZlbnRzIHsKKwogICAgIGludGVyZmFjZSBPdmVyZmxvd0V2ZW50IDogRXZlbnQg
ewogICAgICAgICBjb25zdCB1bnNpZ25lZCBzaG9ydCBIT1JJWk9OVEFMID0gMDsKICAgICAgICAg
Y29uc3QgdW5zaWduZWQgc2hvcnQgVkVSVElDQUwgICA9IDE7CkBAIC0yNiw0ICsyNyw1IEBAIG1v
ZHVsZSBldmVudHMgewogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBob3Jpem9u
dGFsT3ZlcmZsb3c7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHZlcnRpY2Fs
T3ZlcmZsb3c7ICAgICAgICAKICAgICB9OworCiB9CkluZGV4OiBXZWJDb3JlL2RvbS9VSUV2ZW50
LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9VSUV2ZW50LmlkbAkocmV2aXNpb24gMTYy
NzQpCisrKyBXZWJDb3JlL2RvbS9VSUV2ZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjMsNyAr
MjMsMTQgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgaW50ZXJmYWNlIFVJRXZlbnQgOiBFdmVudCB7
CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01XaW5kb3cgICAgICAgICAgICB2aWV3Owog
ICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAgZGV0YWlsOwor
ICAgICAgICAKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gdm9pZCBpbml0VUlFdmVudChpbiBBdG9t
aWNTdHJpbmcgdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
aW4gYm9vbGVhbiBjYW5CdWJibGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGluIGJvb2xlYW4gY2FuY2VsYWJsZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGxvbmcgZGV0YWlsKTsKIAorICAgICAgICAvLyBleHRlbnRz
aW9ucwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAga2V5
Q29kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgICAgIGNo
YXJDb2RlOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAg
bGF5ZXJYOwpAQCAtMzEsMTIgKzM4LDcgQEAgbW9kdWxlIGV2ZW50cyB7CiAgICAgICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgICAgICBwYWdlWDsKICAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIGxvbmcgICAgICAgICAgICAgICAgIHBhZ2VZOwogICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgbG9uZyAgICAgICAgICAgICAgICAgd2hpY2g7Ci0gICAgICAgIAotICAgICAg
ICBbT2xkU3R5bGVPYmpDXSB2b2lkIGluaXRVSUV2ZW50KGluIEF0b21pY1N0cmluZyB0eXBlLCAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBib29sZWFuIGNhbkJ1
YmJsZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVh
biBjYW5jZWxhYmxlLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBET01XaW5kb3cgdmlldywgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gbG9uZyBkZXRhaWwpOworCiAgICAgfTsKIAogfQpJbmRleDogV2ViQ29yZS9kb20vV2hl
ZWxFdmVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwJKHJl
dmlzaW9uIDE2Mjc0KQorKysgV2ViQ29yZS9kb20vV2hlZWxFdmVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTIwLDI1ICsyMCwzNyBAQAogCiBtb2R1bGUgZXZlbnRzIHsKIAorICAgIC8vIEJhc2Vk
IG9mZiBvZiBwcm9wb3NlZCBJREwgaW50ZXJmYWNlIGZvciBXaGVlbEV2ZW50OgogICAgIGludGVy
ZmFjZSBXaGVlbEV2ZW50IDogVUlFdmVudCB7CiAKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gYWx0S2V5OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICBzY3Jl
ZW5YOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICBzY3JlZW5ZOwogICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgbG9uZyAgICBjbGllbnRYOwogICAgICAgICByZWFkb25seSBh
dHRyaWJ1dGUgbG9uZyAgICBjbGllbnRZOwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9v
bGVhbiBjdHJsS2V5OwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBtZXRhS2V5
OwogICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBzaGlmdEtleTsKLQorICAgICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBhbHRLZXk7CisgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBib29sZWFuIG1ldGFLZXk7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBsb25n
ICAgIHdoZWVsRGVsdGE7CisKKyAgICAgICAgLy8gV2ViS2l0IEV4dGVuc2lvbnMKICAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgb2Zmc2V0WDsKICAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGxvbmcgICAgb2Zmc2V0WTsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcg
ICAgc2NyZWVuWDsKLSAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgc2NyZWVuWTsK
ICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGxvbmcgICAgeDsKICAgICAgICAgcmVhZG9ubHkg
YXR0cmlidXRlIGxvbmcgICAgeTsKLQotICAgICAgICAvLyBXZWJLaXQgRXh0ZW5zaW9ucwogICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0V4Y2x1ZGU9SlNdIGJvb2xlYW4gaXNIb3Jpem9udGFs
OworICAgICAgICAKKyAgICAgICAgW0V4Y2x1ZGU9SlNdIHZvaWQgaW5pdFdoZWVsRXZlbnQoaW4g
Ym9vbGVhbiBob3Jpem9udGFsLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gbG9uZyB3aGVlbERlbHRhLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gRE9NV2luZG93IHZpZXcsIAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbiBsb25nIHNjcmVlblgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluIGxvbmcgc2NyZWVuWSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW4gbG9uZyBjbGllbnRYLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBpbiBsb25nIGNsaWVudFksCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gY3RybEtleSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW4gYm9vbGVhbiBhbHRLZXksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gc2hpZnRLZXksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluIGJvb2xlYW4gbWV0YUtl
eSk7CiAKICAgICB9OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5pZGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuaWRsCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVy
LCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0Bn
bWFpbC5jb20+CisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAq
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2
ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBh
bG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90
LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTkgVGVt
cGxlIFBsYWNlIC0gU3VpdGUgMzMwLAorICogQm9zdG9uLCBNQSAwMjExMS0xMzA3LCBVU0EuCisg
Ki8KKworbW9kdWxlIGh0bWwgeworCisgICAgaW50ZXJmYWNlIEhUTUxFbWJlZEVsZW1lbnQgOiBI
VE1MRWxlbWVudCB7CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAg
YWxpZ247CisgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBsb25nICAgICAgICAgICAgaGVpZ2h0
OworICAgICAgICAgICAgICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIG5hbWU7CisgICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZSBET01TdHJpbmcgICAgICAgc3JjOworICAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgIHR5cGU7CisgICAgICAgICAgICAgICAgIGF0
dHJpYnV0ZSBsb25nICAgICAgICAgICAgd2lkdGg7CisgICAgfTsKKworfQpJbmRleDogV2ViQ29y
ZS94bWwvWFBhdGhFeHByZXNzaW9uLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YUGF0
aEV4cHJlc3Npb24uaWRsCShyZXZpc2lvbiAxNjI3NCkKKysrIFdlYkNvcmUveG1sL1hQYXRoRXhw
cmVzc2lvbi5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYg
U2FtdWVsIFdlaW5pZyA8c2FtLndlaW5pZ0BnbWFpbC5jb20+CiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTIwLDkgKzIxLDEwIEBACiBtb2R1bGUgeHBhdGggewogCiAgICAgaW50ZXJmYWNlIFtDb25k
aXRpb25hbD1YUEFUSF0gWFBhdGhFeHByZXNzaW9uIHsKLSAgICAgICAgWFBhdGhSZXN1bHQgZXZh
bHVhdGUoaW4gTm9kZSBjb250ZXh0Tm9kZSwgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGluIHVuc2lnbmVkIHNob3J0IHR5cGUsIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBp
biBYUGF0aFJlc3VsdCBpblJlc3VsdCkKKyAgICAgICAgW09sZFN0eWxlT2JqQ10gWFBhdGhSZXN1
bHQgZXZhbHVhdGUoaW4gTm9kZSBjb250ZXh0Tm9kZSwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGluIHVuc2lnbmVkIHNob3J0IHR5cGUsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBYUGF0aFJlc3VsdCBpblJlc3Vs
dCkKICAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CisKIH0KSW5kZXg6
IFdlYkNvcmUveG1sL1hQYXRoTlNSZXNvbHZlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94
bWwvWFBhdGhOU1Jlc29sdmVyLmlkbAkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJDb3JlL3htbC9Y
UGF0aE5TUmVzb2x2ZXIuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICogQ29weXJpZ2h0IChD
KSAyMDA2IFNhbXVlbCBXZWluaWcgPHNhbS53ZWluaWdAZ21haWwuY29tPgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
ICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0xOSw3ICsyMCw4IEBACiAKIG1vZHVsZSB4cGF0aCB7CiAKLSAgICBpbnRlcmZh
Y2UgW0NvbmRpdGlvbmFsPVhQQVRIXSBYUGF0aE5TUmVzb2x2ZXIgeworICAgIGludGVyZmFjZSBb
T2JqQ1Byb3RvY29sLCBDb25kaXRpb25hbD1YUEFUSF0gWFBhdGhOU1Jlc29sdmVyIHsKICAgICAg
ICAgRE9NU3RyaW5nIGxvb2t1cE5hbWVzcGFjZVVSSShpbiBET01TdHJpbmcgcHJlZml4KTsKICAg
ICB9OworCiB9CkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aFJlc3VsdC5pZGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS94bWwvWFBhdGhSZXN1bHQuaWRsCShyZXZpc2lvbiAxNjI3NCkKKysrIFdlYkNv
cmUveG1sL1hQYXRoUmVzdWx0LmlkbAkod29ya2luZyBjb3B5KQpAQCAtNTMsNCArNTMsNSBAQCBt
b2R1bGUgeHBhdGggewogICAgICAgICBOb2RlIHNuYXBzaG90SXRlbShpbiB1bnNpZ25lZCBsb25n
IGluZGV4KQogICAgICAgICAgICAgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgIH07CisKIH0K
SW5kZXg6IFdlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L0NoYW5nZUxvZwko
cmV2aXNpb24gMTYyNzUpCisrKyBXZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMDYtMDktMDkgIFNhbSBXZWluaWcgIDxzYW0ud2VpbmlnQGdtYWlsLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRj
aCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDc5
MQorICAgICAgICBFdmVuIE1vcmUgT2JqZWN0aXZlLUMgRE9NIGF1dG8tZ2VuZXJhdGlvbiBjbGVh
bnVwCisKKyAgICAgICAgKiBNaWdyYXRlSGVhZGVycy5tYWtlOgorCiAyMDA2LTA5LTA4ICBUaW0g
T21lcm5pY2sgIDx0aW1vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmFkeSBF
aWRzb24uCkluZGV4OiBXZWJLaXQvTWlncmF0ZUhlYWRlcnMubWFrZQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvTWlncmF0ZUhlYWRlcnMubWFrZQkocmV2aXNpb24gMTYyNzQpCisrKyBXZWJLaXQvTWln
cmF0ZUhlYWRlcnMubWFrZQkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDUgQEAKICMgQ29weXJp
Z2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisj
IENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWlsLmNvbT4K
ICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTMsNiArOTQsNyBAQCBhbGwgOiBcCiAg
ICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUhUTUxEaXZFbGVtZW50LmggXAogICAgICQoUFVC
TElDX0hFQURFUlNfRElSKS9ET01IVE1MRG9jdW1lbnQuaCBcCiAgICAgJChQVUJMSUNfSEVBREVS
U19ESVIpL0RPTUhUTUxFbGVtZW50LmggXAorICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01I
VE1MRW1iZWRFbGVtZW50LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01IVE1MRmll
bGRTZXRFbGVtZW50LmggXAogICAgICQoUFVCTElDX0hFQURFUlNfRElSKS9ET01IVE1MRm9udEVs
ZW1lbnQuaCBcCiAgICAgJChQVUJMSUNfSEVBREVSU19ESVIpL0RPTUhUTUxGb3JtRWxlbWVudC5o
IFwKSW5kZXg6IFdlYktpdFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mjc1KQorKysgV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDYtMDktMDkgIFNhbSBXZWluaWcgIDxz
YW0ud2VpbmlnQGdtYWlsLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBQYXRjaCBmb3IgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDc5MQorICAgICAgICBFdmVuIE1vcmUgT2JqZWN0aXZlLUMgRE9NIGF1
dG8tZ2VuZXJhdGlvbiBjbGVhbnVwCisKKyAgICAgICAgLSBDaGFuZ2UgdG8gdXNlIG5ldywgbW9y
ZSBPYmplY3RpY2UtQydpc2ggdmVyc2lvbiBvZgorICAgICAgICAgIERPTUtleWJvYXJkRXZlbnQn
cyBpbml0S2V5Ym9hcmRFdmVudC4gIEZpeGVzIGFuIGVycm9yIHdpdGgKKyAgICAgICAgICByZWdy
ZXNzaW9uIHRlc3QgZm9yIGZhc3QvZXZlbnRzL2RibGNsaWNrLWFkZEV2ZW50TGlzdGVuZXIuaHRt
bC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubToK
KyAgICAgICAgKC1bRXZlbnRTZW5kaW5nQ29udHJvbGxlciBmaXJlS2V5Ym9hcmRFdmVudHNUb0Vs
ZW1lbnQ6XSk6CisKIDIwMDYtMDktMDQgIE5pa29sYXMgWmltbWVybWFubiAgPHppbW1lcm1hbm5A
a2RlLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0gSC4KSW5kZXg6IFdlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0V2ZW50U2VuZGluZ0NvbnRyb2xsZXIubQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9FdmVudFNlbmRpbmdDb250cm9sbGVyLm0JKHJldmlz
aW9uIDE2Mjc0KQorKysgV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvRXZlbnRTZW5kaW5nQ29u
dHJvbGxlci5tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAwNiBKb25hcyBXaXR0IDxqb25hcy53aXR0QGdtYWlsLmNv
bT4KKyAqIENvcHlyaWdodCAoQykgMjAwNiBTYW11ZWwgV2VpbmlnIDxzYW0ud2VpbmlnQGdtYWls
LmNvbT4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzk3LDE5ICszOTgsNDYg
QEAgTlNBcnJheSAqd2Via2l0RG9tRXZlbnROYW1lczsKICAgICAvLyBLZXlib2FyZCBFdmVudCAx
CiAgICAgCiAgICAgRE9NRXZlbnQgKmRvbUV2ZW50ID0gW2RvY3VtZW50IGNyZWF0ZUV2ZW50OkAi
S2V5Ym9hcmRFdmVudCJdOwotICAgIFsoRE9NS2V5Ym9hcmRFdmVudCopZG9tRXZlbnQgaW5pdEtl
eWJvYXJkRXZlbnQ6QCJrZXlkb3duIiA6WUVTIDpZRVMgOltkb2N1bWVudCBkZWZhdWx0Vmlld10g
OkAiVSswMDAwNDEiIDowIDpZRVMgOk5PIDpOTyA6Tk9dOworICAgIFsoRE9NS2V5Ym9hcmRFdmVu
dCopZG9tRXZlbnQgaW5pdEtleWJvYXJkRXZlbnQ6QCJrZXlkb3duIiAKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuQnViYmxlOllFUworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGFibGU6WUVTCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldzpbZG9jdW1lbnQgZGVmYXVsdFZpZXdd
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5SWRlbnRpZmllcjpAIlUr
MDAwMDQxIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUxvY2F0
aW9uOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdHJsS2V5
OllFUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHRLZXk6
Tk8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoaWZ0S2V5Ok5P
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YUtleTpOT107
CiAgICAgW3RhcmdldCBkaXNwYXRjaEV2ZW50OmRvbUV2ZW50XTsgIAogICAgICAgICAKICAgICAv
LyBLZXlib2FyZCBFdmVudCAyCiAgICAgCiAgICAgZG9tRXZlbnQgPSBbZG9jdW1lbnQgY3JlYXRl
RXZlbnQ6QCJLZXlib2FyZEV2ZW50Il07Ci0gICAgWyhET01LZXlib2FyZEV2ZW50Kilkb21FdmVu
dCBpbml0S2V5Ym9hcmRFdmVudDpAImtleXByZXNzIiA6WUVTIDpZRVMgOltkb2N1bWVudCBkZWZh
dWx0Vmlld10gOkAiVSswMDAwNDUiIDoxIDpOTyA6WUVTIDpOTyA6Tk9dOworICAgIFsoRE9NS2V5
Ym9hcmRFdmVudCopZG9tRXZlbnQgaW5pdEtleWJvYXJkRXZlbnQ6QCJrZXlwcmVzcyIgCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbkJ1YmJsZTpZRVMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxhYmxlOllFUworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc6W2RvY3VtZW50IGRl
ZmF1bHRWaWV3XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleUlkZW50
aWZpZXI6QCJVKzAwMDA0NSIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBrZXlMb2NhdGlvbjoxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY3RybEtleTpOTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhbHRLZXk6WUVTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aGlmdEtleTpOTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
dGFLZXk6Tk9dOwogICAgIFt0YXJnZXQgZGlzcGF0Y2hFdmVudDpkb21FdmVudF07ICAgIAogICAg
IAogICAgIC8vIEtleWJvYXJkIEV2ZW50IDMKICAgICAKICAgICBkb21FdmVudCA9IFtkb2N1bWVu
dCBjcmVhdGVFdmVudDpAIktleWJvYXJkRXZlbnQiXTsKLSAgICBbKERPTUtleWJvYXJkRXZlbnQq
KWRvbUV2ZW50IGluaXRLZXlib2FyZEV2ZW50OkAia2V5dXAiIDpZRVMgOllFUyA6W2RvY3VtZW50
IGRlZmF1bHRWaWV3XSA6QCJVKzAwMDA1NiIgOjAgOk5PIDpOTyA6Tk8gOk5PXTsKKyAgICBbKERP
TUtleWJvYXJkRXZlbnQqKWRvbUV2ZW50IGluaXRLZXlib2FyZEV2ZW50OkAia2V5dXAiIAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5CdWJibGU6WUVTCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsYWJsZTpZRVMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3Oltkb2N1bWVudCBk
ZWZhdWx0Vmlld10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXlJZGVu
dGlmaWVyOkAiVSswMDAwNTYiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga2V5TG9jYXRpb246MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGN0cmxLZXk6Tk8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYWx0S2V5Ok5PCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
aGlmdEtleTpOTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1l
dGFLZXk6Tk9dOwogICAgIFt0YXJnZXQgZGlzcGF0Y2hFdmVudDpkb21FdmVudF07ICAgCiAgICAg
CiB9Cg==
</data>
<flag name="review"
          id="3374"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>