<?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>192437</bug_id>
          
          <creation_ts>2018-12-05 15:47:32 -0800</creation_ts>
          <short_desc>[Cocoa] Share ClassMethodSwizzler and InstanceMethodSwizzler between TestWebKitAPI and WebKitTestRunner</short_desc>
          <delta_ts>2018-12-05 19:11:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>DoNotImportToRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>lforschler</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1485483</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 15:47:32 -0800</bug_when>
    <thetext>SSIA</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485486</commentid>
    <comment_count>1</comment_count>
      <attachid>356670</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 15:50:26 -0800</bug_when>
    <thetext>Created attachment 356670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485490</commentid>
    <comment_count>2</comment_count>
      <attachid>356672</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 16:07:49 -0800</bug_when>
    <thetext>Created attachment 356672
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485502</commentid>
    <comment_count>3</comment_count>
      <attachid>356677</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-05 16:34:26 -0800</bug_when>
    <thetext>Created attachment 356677
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1485561</commentid>
    <comment_count>4</comment_count>
      <attachid>356677</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-05 19:09:38 -0800</bug_when>
    <thetext>Comment on attachment 356677
Patch for EWS

Clearing flags on attachment: 356677

Committed r238921: &lt;https://trac.webkit.org/changeset/238921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356670</attachid>
            <date>2018-12-05 15:50:26 -0800</date>
            <delta_ts>2018-12-05 16:02:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192437-20181205155025.patch</filename>
            <type>text/plain</type>
            <size>49197</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTkzNTQ5OWVkZGQ1YjEwNTE0OWU4Y2NlOTA5NDVkMDg2
YTIxODYwMi4uNWMwOTU2ODBjZjg0MDQxZjdhNmFjYjVjZTUzOTUzYzNjMjZlNDAzNSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE4LTEyLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gU2hhcmUgQ2xhc3NNZXRob2RTd2l6emxlciBhbmQgSW5zdGFuY2VN
ZXRob2RTd2l6emxlciBiZXR3ZWVuIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktpdFRlc3RSdW5uZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIuaDogUmVuYW1l
ZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ2xhc3NNZXRob2RTd2l6emxlci5oLgorICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5tbTogUmVuYW1l
ZCBmcm9tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvQ2xhc3NNZXRob2RTd2l6emxlci5tbS4KKyAgICAg
ICAgKENsYXNzTWV0aG9kU3dpenpsZXI6OkNsYXNzTWV0aG9kU3dpenpsZXIpOgorICAgICAgICAo
Q2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0aG9kU3dpenpsZXIpOgorICAgICAgICAqIFRl
c3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmguCisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
OiBSZW5hbWVkIGZyb20gVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tLgorICAgICAgICAoSW5zdGFuY2VNZXRob2RTd2l6emxlcjo6SW5zdGFuY2VNZXRo
b2RTd2l6emxlcik6CisgICAgICAgIChJbnN0YW5jZU1ldGhvZFN3aXp6bGVyOjp+SW5zdGFuY2VN
ZXRob2RTd2l6emxlcik6CisKKyAgICAgICAgTW92ZSB0aGVzZSBzd2l6emxpbmcgaGVscGVyIGNs
YXNzZXMgaW50byBUZXN0UnVubmVyU2hhcmVkLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VDbGVhci5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbToKKyAgICAg
ICAgKHNhZmVCcm93c2luZ1ZpZXcpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RX
S1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOmFkZFRvV2luZG93Ol0pOgorCisg
ICAgICAgIFJlbW92ZSBuYW1lc3BhY2luZyBhcm91bmQgQ2xhc3NNZXRob2RTd2l6emxlciBhbmQg
SW5zdGFuY2VNZXRob2RTd2l6emxlciBpbiBhIGZldyBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAg
ICAoV1RSOjpDbGFzc01ldGhvZFN3aXp6bGVyOjpDbGFzc01ldGhvZFN3aXp6bGVyKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdUUjo6Q2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0aG9kU3dpenps
ZXIpOiBEZWxldGVkLgorCisgICAgICAgIFJlbW92ZSB0aGlzIGR1cGxpY2F0ZSBpbXBsZW1lbnRh
dGlvbiBvZiBDbGFzc01ldGhvZFN3aXp6bGVyIGluIFdlYktpdFRlc3RSdW5uZXIuCisKIDIwMTgt
MTItMDUgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHdl
YmtpdHB5OiBTb3J0IHRlc3RzIGJ5IGFzc29jaWF0ZWQgZGV2aWNlIHR5cGUKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDU3M2FlZWU5Nzg5Nzk2ZWJiYjY4MWUxMmQxMjA2ZTc4ZjY4MThk
ZDIuLjU2NzAxZTlkZDQ5NDkxNzE2ZjZlZjMzZWRmYTMxMzY2NGE4M2RlNzMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTQ3LDYgKzE0Nyw4IEBACiAJCUMyM0VBMjA4MUJDOUYwNTEw
MEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLm90ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIzRUEyMDYxQkM5RUFCQTAwQzk4MEI3IC8q
IEZvbnRXaXRoRmVhdHVyZXMub3RmICovOyB9OwogCQlDMjNFQTIwOTFCQzlGMDUxMDBDOTgwQjcg
LyogRm9udFdpdGhGZWF0dXJlcy50dGYgaW4gQ29weSBGb250IEZpbGVzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyM0VBMjA3MUJDOUVBQkEwMEM5ODBCNyAvKiBGb250V2l0
aEZlYXR1cmVzLnR0ZiAqLzsgfTsKIAkJRTFCNzgxNjUxMUFGMzFCNzAwN0UxQkMyIC8qIE1vY2tH
ZW9sb2NhdGlvblByb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblBy
b3ZpZGVyLm1tICovOyB9OworCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICov
OyB9OworCQlGNDRBNTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1
MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9Owog
CQlGNEMzNTc4RDIwRTg0NDRFMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzM1Nzg4MjBF
ODQ0MjcwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovOyB9OwogCQlGNEQ0
MjM2MTFERDUwNDgyMDA2NzgyOTAgLyogVGV4dElucHV0Q29udHJvbGxlcklPUy5tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENDIzNUYxREQ1MDQ1MzAw
Njc4MjkwIC8qIFRleHRJbnB1dENvbnRyb2xsZXJJT1MubSAqLzsgfTsKIC8qIEVuZCBQQlhCdWls
ZEZpbGUgc2VjdGlvbiAqLwpAQCAtNDA5LDYgKzQxMSwxMCBAQAogCQlDMjNFQTIwNzFCQzlFQUJB
MDBDOTgwQjcgLyogRm9udFdpdGhGZWF0dXJlcy50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gRm9udFdpdGhGZWF0dXJlcy50
dGY7IHBhdGggPSBmb250cy9Gb250V2l0aEZlYXR1cmVzLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFCNzgwODUxMUFGMTY0MzAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblBy
b3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1vY2tHZW9sb2NhdGlv
blByb3ZpZGVyLmg7IHBhdGggPSBtYWMvTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tH
ZW9sb2NhdGlvblByb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIubW07IHBhdGggPSBtYWMvTW9ja0dlb2xvY2F0
aW9uUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzE5MjFC
ODlBNDQwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENs
YXNzTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0Ns
YXNzTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1
MzFCMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNDRBNTMxQzIxQjg5QTQ1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRo
b2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0QzM1Nzg4MjBFODQ0MjcwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxsQ2hl
Y2tlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxs
Q2hlY2tlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDMzU3ODkyMEU4NDQy
NzAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBwYXRoID0gLi4vVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0RDQyMzVGMURENTA0NTMwMDY3ODI5MCAvKiBUZXh0SW5wdXRDb250
cm9sbGVySU9TLm0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgbmFtZSA9IFRleHRJbnB1
dENvbnRyb2xsZXJJT1MubTsgcGF0aCA9IGlvcy9UZXh0SW5wdXRDb250cm9sbGVySU9TLm07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04MTcsNiArODIzLDEwIEBACiAJCUY0QjZDMzE4
MjBFODQzODIwMDhBQzIyNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJRjQ0QTUzMUIyMUI4OUE0NDAwREJCOTlDIC8qIENsYXNzTWV0aG9k
U3dpenpsZXIuaCAqLywKKwkJCQlGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5tbSAqLywKKwkJCQlGNDRBNTMxOTIxQjg5QTQ0MDBEQkI5OUMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oICovLAorCQkJCUY0NEE1MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovLAogCQkJCUY0QzM1Nzg5MjBFODQ0MjcwMEZBMDc0
OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmggKi8sCiAJCQkJRjRDMzU3ODgyMEU4NDQyNzAw
RkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gKi8sCiAJCQkpOwpAQCAtMTA3NSw2
ICsxMDg1LDcgQEAKIAkJCQlBQTVBMTVGMDE2RTE1Q0QwMDBGN0M1NjEgLyogQWNjZXNzaWJpbGl0
eVVJRWxlbWVudElPUy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMEUyNjE1MEUyREE0QzYwMDFC
NkJDMiAvKiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBMThCMzkwQzlCMDIxOTAwMTE0MzY5IC8qIEFwcGxlU2NyaXB0Q29udHJvbGxlci5tIGluIFNv
dXJjZXMgKi8sCisJCQkJRjQ0QTUzMUQyMUI4OUE0RDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dp
enpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1M0NCQjgzMjEzNEU0MkYzMDAxQ0U2QTQgLyog
Q3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkZCODRGMTc4
QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubSBpbiBTb3VyY2VzICovLAog
CQkJCUJDQTE4QzQ3MEM5QjVCOTQwMDExNDM2OSAvKiBEdW1wUmVuZGVyVHJlZS5tbSBpbiBTb3Vy
Y2VzICovLApAQCAtMTA5MCw2ICsxMTAxLDcgQEAKIAkJCQlCQ0Y2QzY1MDBDOThFOUMwMDBBQzA2
M0UgLyogR0NDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjIzMEM5QjAx
NEIwMDExNDM2OSAvKiBHQ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1
RjZCMjEwNzE0RTA3MDA3QUEzOTMgLyogSGlzdG9yeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJRjQ0QTUzMUUyMUI4OUE1MDAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkzMTI5NDNGOTFFNzFGMkI0MDAxRUUyQ0MgLyogSU9TTGF5
b3V0VGVzdENvbW11bmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNFODhGQTIxNzEy
NEQ4QzAwNzM0RkMwIC8qIEphdmFTY3JpcHRUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEYxOEU3MDYxRDZCQTAyMzAwMjdFNTQ3IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9D
bGFzc01ldGhvZFN3aXp6bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNz
TWV0aG9kU3dpenpsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOGRiMTBhNDc5OTYzMGM2NGM1NWQwNzg2YzAw
ZWUwOTQ4OTE0NWUyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9j
b2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8b2JqYy9ydW50aW1lLmg+CisjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CisKK2NsYXNzIENsYXNzTWV0aG9kU3dpenpsZXIgeworICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKENsYXNzTWV0aG9kU3dpenpsZXIpOworcHVibGljOgorICAgIENsYXNz
TWV0aG9kU3dpenpsZXIoQ2xhc3MsIFNFTCwgSU1QKTsKKyAgICB+Q2xhc3NNZXRob2RTd2l6emxl
cigpOworCisgICAgTWV0aG9kIG1fbWV0aG9kOworICAgIElNUCBtX29yaWdpbmFsSW1wbGVtZW50
YXRpb247Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFz
c01ldGhvZFN3aXp6bGVyLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01l
dGhvZFN3aXp6bGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyYjliMDAwMmNjYjM2Mzc4YWI1YzA2YzE0NWJm
OTZiYjllZGI3NmYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2Nv
Y29hL0NsYXNzTWV0aG9kU3dpenpsZXIubW0KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiQ2xhc3NNZXRob2RTd2l6emxlci5oIgorCitD
bGFzc01ldGhvZFN3aXp6bGVyOjpDbGFzc01ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIG9y
aWdpbmFsU2VsZWN0b3IsIElNUCBpbXBsZW1lbnRhdGlvbikKKyAgICA6IG1fbWV0aG9kKGNsYXNz
X2dldENsYXNzTWV0aG9kKG9iamNfZ2V0TWV0YUNsYXNzKE5TU3RyaW5nRnJvbUNsYXNzKGNscyku
VVRGOFN0cmluZyksIG9yaWdpbmFsU2VsZWN0b3IpKQorICAgICwgbV9vcmlnaW5hbEltcGxlbWVu
dGF0aW9uKG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgaW1wbGVtZW50YXRpb24p
KQoreworfQorCitDbGFzc01ldGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcigpCit7
CisgICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1fbWV0aG9kLCBtX29yaWdpbmFsSW1wbGVt
ZW50YXRpb24pOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9J
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0lu
c3RhbmNlTWV0aG9kU3dpenpsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGEwYjBiMThkMTMxZWNjOTliMjZh
MzkxYzg5MGY5ZjZjNmMwNzJlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvYmpjL3J1bnRpbWUuaD4K
KyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworY2xhc3MgSW5zdGFuY2VNZXRob2RTd2l6
emxlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zdGFuY2VNZXRob2RTd2l6emxlcik7
CitwdWJsaWM6CisgICAgSW5zdGFuY2VNZXRob2RTd2l6emxlcihDbGFzcywgU0VMLCBJTVApOwor
ICAgIH5JbnN0YW5jZU1ldGhvZFN3aXp6bGVyKCk7CisKKyAgICBNZXRob2QgbV9tZXRob2Q7Cisg
ICAgSU1QIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbjsKK307CmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gYi9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzJjNDYxMTQ5NjEyZTBmN2VhNWQyYWI0YTNmZjNjNTg5NTc2OTBjOQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSW5zdGFuY2VNZXRob2RTd2l6emxlci5oIgorCitJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyOjpJbnN0YW5jZU1ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIHNlbGVjdG9y
LCBJTVAgaW1wbGVtZW50YXRpb24pCisgICAgOiBtX21ldGhvZChjbGFzc19nZXRJbnN0YW5jZU1l
dGhvZChjbHMsIHNlbGVjdG9yKSkKKyAgICAsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbihtZXRo
b2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2QsIGltcGxlbWVudGF0aW9uKSkKK3sKK30KKwor
SW5zdGFuY2VNZXRob2RTd2l6emxlcjo6fkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKQoreworICAg
IG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgbV9vcmlnaW5hbEltcGxlbWVudGF0
aW9uKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ2xhc3NNZXRob2RTd2l6
emxlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZjNTI3Nzc4NzczNzRjNDJkZGU1MzNjMTIyYjVkYmY3
NzIzYzJmZTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmgKKysrIC9kZXYvbnVsbApA
QCAtMSw0MyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxv
YmpjL3J1bnRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewotCi1jbGFzcyBDbGFzc01ldGhvZFN3aXp6bGVyIHsKLSAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDbGFzc01ldGhvZFN3aXp6bGVyKTsKLXB1YmxpYzoKLSAgICBDbGFz
c01ldGhvZFN3aXp6bGVyKENsYXNzLCBTRUwsIElNUCk7Ci0gICAgfkNsYXNzTWV0aG9kU3dpenps
ZXIoKTsKLQotICAgIE1ldGhvZCBtX21ldGhvZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVu
dGF0aW9uOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBmNGRmNzNmOWMxZDg5ZGFhYWEzOTdjMjMwNjE5ZWU3YzE1MmIwMDFlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Q2xhc3NNZXRob2RTd2l6emxlci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkNsYXNzTWV0aG9kU3dpenps
ZXIuaCIKLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1DbGFzc01ldGhvZFN3aXp6bGVy
OjpDbGFzc01ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIG9yaWdpbmFsU2VsZWN0b3IsIElN
UCBpbXBsZW1lbnRhdGlvbikKLSAgICA6IG1fbWV0aG9kKGNsYXNzX2dldENsYXNzTWV0aG9kKG9i
amNfZ2V0TWV0YUNsYXNzKE5TU3RyaW5nRnJvbUNsYXNzKGNscykuVVRGOFN0cmluZyksIG9yaWdp
bmFsU2VsZWN0b3IpKQotICAgICwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKG1ldGhvZF9zZXRJ
bXBsZW1lbnRhdGlvbihtX21ldGhvZCwgaW1wbGVtZW50YXRpb24pKQotewotfQotCi1DbGFzc01l
dGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcigpCi17Ci0gICAgbWV0aG9kX3NldElt
cGxlbWVudGF0aW9uKG1fbWV0aG9kLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24pOwotfQotCi19
IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZk
N2ZhMzdkOWNjZWY0OThlMzI4MzhjMGNkNjM3MTU4NjJiMDQ0OWQuLmYyZTE0YjhmNzM1MDQyMTNh
ZTY4NzY3OTAxMjhiYzlhNDIyY2U3MjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODcs
NyArMjg3LDYgQEAKIAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5
NDFGN0VFRkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJNUM2OUJERDUx
RjgyQTdFRjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2OUJERDQxRjgyQTdFQjAw
MEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovOyB9OwogCQk1QzcxNDg5
NTIxMjNBNDBBMDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0b3JlLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1
IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLzsgfTsKLQkJNUM3MjZENkYxRDNFRTA2RTAwQzVF
MUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzcyNkQ2RTFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJNUM3OTY0MTAxRUIwMjc4RDAwNzVENzRDIC8q
IEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNzk2NDBGMUVCMDI2OUIwMDc1RDc0QyAvKiBFdmVudE1vZGlmaWVycy5jcHAg
Ki87IH07CiAJCTVDN0M3NENCMUZCNTI5QkEwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1
bkxvb3AubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
QzdDNzRDQTFGQjUyOEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tICov
OyB9OwogCQk1QzgzOEY3RjFEQjA0RjkwMDA4Mjg1OEYgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5MDFG
QUUxQ0FGMTM3MTAwRUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLzsgfTsKQEAg
LTgyOCw2ICs4MjcsOCBAQAogCQlGNDNFM0JDMTIwREFEQkM1MDBBNEU3RUQgLyogZml4ZWQtbmF2
LWJhci5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0M0UzQkMwMjBEQURCODAwMEE0RTdFRCAvKiBmaXhlZC1uYXYtYmFyLmh0bWwgKi87
IH07CiAJCUY0NDI4NTFEMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQyODUxQzIx
NDBERjI5MDBDQ0RBMjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovOyB9OwogCQlGNDQ1MUM3
NjFFQjhGRDg5MDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1
MUM3NTFFQjhGRDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRt
bCAqLzsgfTsKKwkJRjQ0QTUzMTEyMUI4OTkwMzAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dp
enpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDRBNTMxMDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsg
fTsKKwkJRjQ0QTUzMTIyMUI4OTkwQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMwRTIx
Qjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ0Qzc5
RkYyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEM3OUZFMjBGOUU4NzEwMDE0
NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuVGVzdHMubW0gKi87IH07CiAJCUY0NEM3QTAwMjBGOUVF
QkYwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8q
IFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi87IH07CiAJCUY0NEM3QTA1MjBGQUFFM0MwMDE0
NDc4QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0
NzhDIC8qIHRleHQtd2l0aC1kZWZlcnJlZC1zY3JpcHQuaHRtbCAqLzsgfTsKQEAgLTgzNyw3ICs4
MzgsNiBAQAogCQlGNDUwMzNGNTIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9zaXppbmdCb29z
dC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTAz
M0Y0MjA2QkVDOTUwMDkzNTFDRSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1tICovOyB9OwogCQlG
NDUxMkUxMzFGNjBDNDQ2MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVySXRlbS1nZXRBc0VudHJ5Lmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ1MTJFMTIxRjYwQzQzNDAwQkIzNjlFIC8qIERhdGFUcmFuc2Zlckl0ZW0tZ2V0QXNFbnRyeS5o
dG1sICovOyB9OwogCQlGNDUxN0I2NzIwNTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0Nv
bnRyb2xsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDUxN0I2NjIwNTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0NvbnRyb2xsZXIubW0g
Ki87IH07Ci0JCUY0NTE3QjdGMjA1NTEwMUIwMEMyNjcyMSAvKiBDbGFzc01ldGhvZFN3aXp6bGVy
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MTdC
NjkyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi87IH07CiAJCUY0
NTM4RUY3MUU4NDczRTYwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUzOEVGMDFFODQ2
QjQxMDBCNUM5NTMgLyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgKi87IH07CiAJCUY0NTZBQjFDMjEz
RURCQTMwMENCMkNFRiAvKiBGb250TWFuYWdlclRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1NkFCMUIyMTNFREJBMzAwQ0IyQ0VGIC8qIEZv
bnRNYW5hZ2VyVGVzdHMubW0gKi87IH07CiAJCUY0NTdBOUI4MjAyRDVDREMwMEY3RTlENSAvKiBQ
YXN0ZU1peGVkQ29udGVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0NTdBOUI2MjAyRDVDREMwMEY3RTlENSAvKiBQYXN0ZU1peGVkQ29udGVudC5t
bSAqLzsgfTsKQEAgLTE2MzAsOCArMTYzMCw2IEBACiAJCTVDNUU2MzNEMUQwQjY3OTQwMDg1QTAy
NSAvKiBVbmlxdWVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VW5pcXVlUmVmLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2OUJERDQxRjgy
QTdFQjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzE0ODk0MjEyM0E0MDcwMEZERTND
NSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYnNpdGVEYXRhc3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCTVDNzI2RDZEMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenps
ZXIuaDsgcGF0aCA9IGNvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJNUM3MjZENkUxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0
aG9kU3dpenpsZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tOyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6
emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3OTY0MEYxRUIwMjY5QjAw
NzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEV2ZW50TW9kaWZpZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUM3Qzc0Q0ExRkI1MjhENDAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdTY2hlZHVs
ZUluUnVuTG9vcC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM4QkM3OTgyMThD
RjNFOTAwODEzODg2IC8qIE5ldHdvcmtQcm9jZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMTI1LDYgKzIxMjMsMTAgQEAKIAkJRjQ0Mjg1MUIyMTQwREYyOTAwQ0NEQTIy
IC8qIE5TRm9udFBhbmVsVGVzdGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0ZvbnRQYW5lbFRlc3Rp
bmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Mjg1MUMyMTQwREYyOTAwQ0NE
QTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TRm9u
dFBhbmVsVGVzdGluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NTFDNzUx
RUI4RkQ3QzAwMjBDNURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAidHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUu
aHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzBEMjFCODk3NjkwMERC
Qjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlGNDRBNTMwRTIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9k
U3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9k
U3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzBGMjFCODk3
NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJT
aGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDRBNTMxMDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0
aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNl
TWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEM3OUZC
MjBGOUU1MEMwMDE0NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjQ0Qzc5RkQyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5U
ZXN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBQYXJzZXJZaWVsZFRva2VuVGVzdHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkUyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllp
ZWxkVG9rZW5UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5U
ZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzcsOCArMjEzOSw2IEBA
CiAJCUY0NTEyRTEyMUY2MEM0MzQwMEJCMzY5RSAvKiBEYXRhVHJhbnNmZXJJdGVtLWdldEFzRW50
cnkuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJEYXRhVHJhbnNmZXJJdGVtLWdl
dEFzRW50cnkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTE3QjY1MjA1
NEM0OTUwMEMyNjcyMSAvKiBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNDUxN0I2NjIwNTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0NvbnRyb2xsZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjQ1MTdCNjgyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNz
TWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGNDUxN0I2OTIwNTRFMEFDMDBDMjY3MjEgLyog
Q2xhc3NNZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsYXNzTWV0aG9k
U3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTM4RUYwMUU4NDZC
NDEwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJsYXJnZS1yZWQt
c3F1YXJlLnBuZyI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTZBQjFCMjEzRURC
QTMwMENCMkNFRiAvKiBGb250TWFuYWdlclRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
Rm9udE1hbmFnZXJUZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1N0E5
QjMyMDJENTM1MzAwRjdFOUQ1IC8qIERhdGFUcmFuc2Zlci5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gRGF0YVRyYW5zZmVyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0yMzI5LDE0ICsyMzI5LDE0IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAogCQkJCUExM0VCQjQ0MUI4NzMzMkIwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICov
LAotCQkJCUY0NTE3QjY4MjA1NEUwQUMwMEMyNjcyMSAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmgg
Ki8sCi0JCQkJRjQ1MTdCNjkyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIu
bW0gKi8sCisJCQkJRjQ0QTUzMEYyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIuaCAqLywKKwkJCQlGNDRBNTMwRTIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6
emxlci5tbSAqLywKIAkJCQlGNDdERkIyNzIxQTg4NUU3MDAwMjFGQjYgLyogRGF0YURldGVjdG9y
c0NvcmVTUEkuaCAqLywKIAkJCQlGNDYxMjhCNDIxMUM4NjFBMDBEOUZBREIgLyogRHJhZ0FuZERy
b3BTaW11bGF0b3IuaCAqLywKIAkJCQlGNDREMDY0ODFGMzk2MkUzMDAxQTBFMjkgLyogRWRpdGlu
Z1Rlc3RIYXJuZXNzLmggKi8sCiAJCQkJRjQ0RDA2NDkxRjM5NjJFMzAwMUEwRTI5IC8qIEVkaXRp
bmdUZXN0SGFybmVzcy5tbSAqLywKLQkJCQk1QzcyNkQ2RDFEM0VFMDY4MDBDNUUxQTEgLyogSW5z
dGFuY2VNZXRob2RTd2l6emxlci5oICovLAotCQkJCTVDNzI2RDZFMUQzRUUwNjgwMEM1RTFBMSAv
KiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovLAorCQkJCUY0NEE1MzBEMjFCODk3NjkwMERC
Qjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8sCisJCQkJRjQ0QTUzMTAyMUI4OTc2
OTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi8sCiAJCQkJMEYxMzlFNzIx
QTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi8sCiAJCQkJMkQx
QzA0QTUxRDc2Mjk4QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCAqLywKIAkJ
CQkyRDFDMDRBNjFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAq
LywKQEAgLTM4NDQsNyArMzg0NCw3IEBACiAJCQkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8q
IENCT1JSZWFkZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkM5MjAwODI0RDMw
MDM1NTk2NSAvKiBDQk9SVmFsdWVUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkNB
MjAwODJDMDEwMDM1NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJ
CQlGNDUxN0I3RjIwNTUxMDFCMDBDMjY3MjEgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUY0NEE1MzEyMjFCODk5MEEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3
aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTYxQTQxMUFFNjAwNDQ3QzRDIC8q
IENsb3NlRnJvbVdpdGhpbkNyZWF0ZVBhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
QjcxQTQxMUE3RTAwNDQ3QzRDIC8qIENsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVs
ZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNTFBNDExQUU2MDA0NDdDNEMgLyog
Q2xvc2VUaGVuVGVybWluYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzk4Nyw4ICszOTg3LDgg
QEAKIAkJCQk3Q0NFN0VGRDFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFs
aXphdGlvblVzZXJEYXRhQ2FsbGJhY2tXaW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNF
MEI4MUQwQTY0QkQwMEZFQkNGMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09w
ZW4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQzMxQTQxMUE3RTAwNDQ3QzRDIC8qIElu
c3BlY3RvckJhci5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0NEE1MzExMjFCODk5MDMwMERCQjk5
QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
REExQTQxMUE4NzAwNDQ3QzRDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNl
cyAqLywKLQkJCQk1QzcyNkQ2RjFEM0VFMDZFMDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6
emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEQjAyMzJGMUU0RTg3MTgwMDcwNzEyMyAvKiBJ
bnRlcmFjdGlvbkRlYWRsb2NrQWZ0ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5
QTgxMUQ4Nzc0ODAwMDdFMTBGOCAvKiBJbnRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
QTkwOUE4MjFEODc3NDgwMDA3RTEwRjggLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9y
YWdlQ2xlYXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2Fs
U3RvcmFnZUNsZWFyLm1tCmluZGV4IDE2YWJkNjBlZDY0MjllNGZhNjYyM2JiZTY5NmQyOGQwYjFj
MjM2OWEuLmIzN2M3Y2IyNjg4YTJhMjhhMGY0MjRmMDIwOGRmMzU4MTZhNmQwNjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlQ2xl
YXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0
b3JhZ2VDbGVhci5tbQpAQCAtMTMwLDcgKzEzMCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBDbGVhckFw
cENhY2hlKQogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gT24gaU9TLCBNb2Jp
bGVTYWZhcmkgYW5kIHdlYmJvb2ttYXJrc2QgbmVlZCB0byBzaGFyZSB0aGUgc2FtZSBBcHBDYWNo
ZSBkaXJlY3RvcnkuCi0gICAgVGVzdFdlYktpdEFQSTo6SW5zdGFuY2VNZXRob2RTd2l6emxlciBz
d2l6emxlKFtOU0J1bmRsZSBjbGFzc10sIEBzZWxlY3RvcihidW5kbGVJZGVudGlmaWVyKSwgcmVp
bnRlcnByZXRfY2FzdDxJTVA+KHN3aXp6bGVkQnVuZGxlSWRlbnRpZmllcldlYkJvb2ttYXJrc0Qp
KTsKKyAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGUoW05TQnVuZGxlIGNsYXNzXSwg
QHNlbGVjdG9yKGJ1bmRsZUlkZW50aWZpZXIpLCByZWludGVycHJldF9jYXN0PElNUD4oc3dpenps
ZWRCdW5kbGVJZGVudGlmaWVyV2ViQm9va21hcmtzRCkpOwogI2VuZGlmCiAKICAgICAvLyBTdGFy
dCB3aXRoIGEgY2xlYW4gc2xhdGUgb2YgV2Vic2l0ZURhdGEuCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCmluZGV4IGZjMmY5
YjA5NGMwZDVhM2ZiMzc5MjgwNWRkMzhlNjY4ZWM2NmNjYzkuLjU0Mjg0Y2I2MzA0NjljNGNmNDg3
MzI1MTUyZWY2M2Q5NTk4ZDVmMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3Rh
dGljIE5TVVJMICpyZXNvdXJjZVVSTChOU1N0cmluZyAqcmVzb3VyY2UpCiAKIFRFU1QoU2FmZUJy
b3dzaW5nLCBQcmVmZXJlbmNlKQogewotICAgIFRlc3RXZWJLaXRBUEk6OkNsYXNzTWV0aG9kU3dp
enpsZXIgc3dpenpsZXIob2JqY19nZXRDbGFzcygiU1NCTG9va3VwQ29udGV4dCIpLCBAc2VsZWN0
b3Ioc2hhcmVkTG9va3VwQ29udGV4dCksIFtUZXN0TG9va3VwQ29udGV4dCBtZXRob2RGb3JTZWxl
Y3RvcjpAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCldKTsKKyAgICBDbGFzc01ldGhvZFN3
aXp6bGVyIHN3aXp6bGVyKG9iamNfZ2V0Q2xhc3MoIlNTQkxvb2t1cENvbnRleHQiKSwgQHNlbGVj
dG9yKHNoYXJlZExvb2t1cENvbnRleHQpLCBbVGVzdExvb2t1cENvbnRleHQgbWV0aG9kRm9yU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNoYXJlZExvb2t1cENvbnRleHQpXSk7CiAKICAgICBfX2Jsb2NrIGJv
b2wgZG9uZSA9IGZhbHNlOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdh
dGlvbkRlbGVnYXRlIG5ld10pOwpAQCAtMTY4LDcgKzE2OCw3IEBAIFRFU1QoU2FmZUJyb3dzaW5n
LCBQcmVmZXJlbmNlKQogCiBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gc2FmZUJyb3dzaW5n
VmlldygpCiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxl
cihvYmpjX2dldENsYXNzKCJTU0JMb29rdXBDb250ZXh0IiksIEBzZWxlY3RvcihzaGFyZWRMb29r
dXBDb250ZXh0KSwgW1Rlc3RMb29rdXBDb250ZXh0IG1ldGhvZEZvclNlbGVjdG9yOkBzZWxlY3Rv
cihzaGFyZWRMb29rdXBDb250ZXh0KV0pOworICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenps
ZXIob2JqY19nZXRDbGFzcygiU1NCTG9va3VwQ29udGV4dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9v
a3VwQ29udGV4dCksIFtUZXN0TG9va3VwQ29udGV4dCBtZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0
b3Ioc2hhcmVkTG9va3VwQ29udGV4dCldKTsKIAogICAgIHN0YXRpYyBhdXRvIGRlbGVnYXRlID0g
YWRvcHROUyhbU2FmZUJyb3dzaW5nTmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOwogICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1dLV2ViVmlldyBuZXddKTsKQEAgLTI2OSw3ICsyNjksNyBAQCBA
ZW5kCiAKIFRFU1QoU2FmZUJyb3dzaW5nLCBNaXNzaW5nRnJhbWV3b3JrKQogewotICAgIFRlc3RX
ZWJLaXRBUEk6OkNsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIob2JqY19nZXRDbGFzcygiU1NC
TG9va3VwQ29udGV4dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCksIFtOdWxsTG9v
a3VwQ29udGV4dCBtZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4
dCldKTsKKyAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyKG9iamNfZ2V0Q2xhc3MoIlNT
Qkxvb2t1cENvbnRleHQiKSwgQHNlbGVjdG9yKHNoYXJlZExvb2t1cENvbnRleHQpLCBbTnVsbExv
b2t1cENvbnRleHQgbWV0aG9kRm9yU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJlZExvb2t1cENvbnRl
eHQpXSk7CiAgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKICAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVs
dE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQppbmRleCAyYTMwNjhj
MGE2YjA0OTM0MGUwYmEwMDY1Y2JiZTY4NjRkMGMwNGVlLi41OGM1NmNiODNhYmMyNTRmNzYxMjUz
MzJjNmM2MWRjYmIwOTFiMDFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEZWZhdWx0TmF2
aWdhdGlvbkRlbGVnYXRlLm1tCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIG5ld09wZW5V
UkwoaWQgc2VsZiwgU0VMIF9jbWQsIE5TVVJMKiB2YWx1ZSkKIAogVEVTVChXS1dlYlZpZXcsIERl
ZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUpCiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6SW5zdGFuY2VN
ZXRob2RTd2l6emxlciBzd2l6emxlKFtOU1dvcmtzcGFjZSBjbGFzc10sIEBzZWxlY3RvcihvcGVu
VVJMOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihuZXdPcGVuVVJMKSk7CisgICAgSW5zdGFuY2VN
ZXRob2RTd2l6emxlciBzd2l6emxlKFtOU1dvcmtzcGFjZSBjbGFzc10sIEBzZWxlY3RvcihvcGVu
VVJMOiksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihuZXdPcGVuVVJMKSk7CiAKICAgICBXS1dlYlZp
ZXcgKndlYlZpZXcgPSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0
KDAsIDAsIDgwMCwgNjAwKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29j
b2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9J
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZl
MzFhOGFhOTZlMDc1ZGExZDgxZGU1NjhjODE1MTVjMDgwMmI3NjkuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9J
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2lmbmRlZiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyX2gKLSNkZWZpbmUgSW5z
dGFuY2VNZXRob2RTd2l6emxlcl9oCi0KLSNpbmNsdWRlIDxvYmpjL3J1bnRpbWUuaD4KLSNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1j
bGFzcyBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyKTsKLXB1YmxpYzoKLSAgICBJbnN0YW5jZU1ldGhvZFN3aXp6
bGVyKENsYXNzLCBTRUwsIElNUCk7Ci0gICAgfkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKTsKLQot
ICAgIE1ldGhvZCBtX21ldGhvZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwot
fTsKLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYgLy8gSW5zdGFuY2VN
ZXRob2RTd2l6emxlcl9oCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0lu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3Rh
bmNlTWV0aG9kU3dpenpsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMzdk
YTRiOGRjNTBmYjIxZjQ1YzRmM2Y3ZDZmMDE3MzdlYWEwZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0g
KgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLmgiCi0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotSW5zdGFuY2VNZXRob2RT
d2l6emxlcjo6SW5zdGFuY2VNZXRob2RTd2l6emxlcihDbGFzcyBjbHMsIFNFTCBzZWxlY3Rvciwg
SU1QIGltcGxlbWVudGF0aW9uKQotICAgIDogbV9tZXRob2QoY2xhc3NfZ2V0SW5zdGFuY2VNZXRo
b2QoY2xzLCBzZWxlY3RvcikpCi0gICAgLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24obWV0aG9k
X3NldEltcGxlbWVudGF0aW9uKG1fbWV0aG9kLCBpbXBsZW1lbnRhdGlvbikpCi17Ci19Ci0KLUlu
c3RhbmNlTWV0aG9kU3dpenpsZXI6On5JbnN0YW5jZU1ldGhvZFN3aXp6bGVyKCkKLXsKLSAgICBt
ZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2QsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlv
bik7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQppbmRleCBlOGVhZGY4NmQzZTgzY2ZlODQ0MWYyMDdi
ZmY0NDNiMTlkYjk1MTZlLi41NDQxNmJmYTgxOTc1OTNiNjIyNGM1YmU2NmE4OWU1MjE5NGQwMTUz
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0yNTMs
NyArMjUzLDcgQEAgQGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgewogICAgIFJldGFpblB0
cjxUZXN0V0tXZWJWaWV3SG9zdFdpbmRvdz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRl
c3RNZXNzYWdlSGFuZGxlcj4gX3Rlc3RIYW5kbGVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFRlc3RXZWJLaXRBUEk6OkNsYXNzTWV0aG9kU3dpenpsZXI+
IF9zaGFyZWRDYWxsb3V0QmFyU3dpenpsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPENsYXNzTWV0
aG9kU3dpenpsZXI+IF9zaGFyZWRDYWxsb3V0QmFyU3dpenpsZXI7CiAjZW5kaWYKIH0KIApAQCAt
Mjg4LDcgKzI4OCw3IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJh
bWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2UgPGh0
dHBzOi8vd2Via2l0Lm9yZy9iLzE3NTIwND4gaXMgZml4ZWQuCi0gICAgX3NoYXJlZENhbGxvdXRC
YXJTd2l6emxlciA9IHN0ZDo6bWFrZV91bmlxdWU8VGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RT
d2l6emxlcj4oW1VJQ2FsbG91dEJhciBjbGFzc10sIEBzZWxlY3RvcihzaGFyZWRDYWxsb3V0QmFy
KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KHN1cHByZXNzVUlDYWxsb3V0QmFyKSk7CisgICAgX3No
YXJlZENhbGxvdXRCYXJTd2l6emxlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q2xhc3NNZXRob2RTd2l6
emxlcj4oW1VJQ2FsbG91dEJhciBjbGFzc10sIEBzZWxlY3RvcihzaGFyZWRDYWxsb3V0QmFyKSwg
cmVpbnRlcnByZXRfY2FzdDxJTVA+KHN1cHByZXNzVUlDYWxsb3V0QmFyKSk7CiAjZW5kaWYKIAog
ICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
Q29udHJvbGxlci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmlu
ZGV4IGIzNzY0ZTZjZTRiMDI5MzU4NDFhODNmYTZjMGEwODhmNjhlZGVlNTUuLjFhYTU3MTU0Y2E4
NGZjY2E0MzQ3ZDQ3YzkzY2Y1MzcyNGNhMGI0NWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rl
c3RDb250cm9sbGVyLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNs
dWRlICJDbGFzc01ldGhvZFN3aXp6bGVyLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25Qcm92aWRl
ck1vY2suaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUg
IldvcmtRdWV1ZU1hbmFnZXIuaCIKQEAgLTM4LDEyICszOSw2IEBACiAjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAotI2lmIFBMQVRGT1JN
KENPQ09BKQotCi0jaW5jbHVkZSA8b2JqYy9ydW50aW1lLmg+Ci0KLSNlbmRpZgotCiBPQkpDX0NM
QVNTIE5TU3RyaW5nOwogT0JKQ19DTEFTUyBXS1dlYlZpZXdDb25maWd1cmF0aW9uOwogCkBAIC01
NiwxOSArNTEsNiBAQCBjbGFzcyBFdmVudFNlbmRlclByb3h5Owogc3RydWN0IFRlc3RDb21tYW5k
Owogc3RydWN0IFRlc3RPcHRpb25zOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0vLyBGSVhNRTog
VGhpcyBzaG91bGQgYmUgc2hhcmVkIHdpdGggVGVzdFdlYktpdEFQSS4KLWNsYXNzIENsYXNzTWV0
aG9kU3dpenpsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENsYXNzTWV0aG9kU3dpenps
ZXIpOwotcHVibGljOgotICAgIENsYXNzTWV0aG9kU3dpenpsZXIoQ2xhc3MsIFNFTCwgSU1QKTsK
LSAgICB+Q2xhc3NNZXRob2RTd2l6emxlcigpOwotICAgIAotICAgIE1ldGhvZCBtX21ldGhvZDsK
LSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwotfTsKLSNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkKLQogY2xhc3MgQXN5bmNUYXNrIHsKIHB1YmxpYzoKICAgICBBc3luY1Rhc2soV1RG
OjpGdW5jdGlvbjx2b2lkICgpPiYmIHRhc2ssIFdURjo6U2Vjb25kcyB0aW1lb3V0KQpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NGQ2YTAyMTlmMzMzY2Q2YjdhMDVkZTY3
Y2M1M2M2MDRiOWViOWFiLi5hNWI1NTZiZWJlMTE4MWM5ZmYzMTI3MWMyZjAzM2UzM2E2NWI0ZTcz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktp
dFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1LDYgKzEzNSw4IEBA
CiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRXZlbnQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMyQUEzQjE3
Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tICovOyB9OwogCQlFMUM2
NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDMTE3Q0JDQzczMDBENjZBM0MgLyog
UG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJL
aXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVu
bmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ0QTUzMTcyMUI4OTlFMjAwREJCOTlDIC8qIENs
YXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxl
ci5tbSAqLzsgfTsKKwkJRjQ0QTUzMTgyMUI4OTlFNTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAq
LzsgfTsKIAkJRjQ2MjQwQjEyMTcwMTNFNTAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNv
Y29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ2
MjQwQUYyMTcwMTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICovOyB9
OwogCQlGNEMzNTc4QzIwRTg0NDQ2MDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzM1NzhB
MjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovOyB9OwogLyog
RW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC0zNzksNiArMzgxLDEwIEBACiAJCUUxQzY0
MkMyMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQb3NlQXNDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRUZXN0UnVu
bmVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQyQzUx
N0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzEzMjFCODk5REEwMERCQjk5QyAvKiBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29j
b2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIu
bW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzE1MjFCODk5REEwMERCQjk5
QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29j
b2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenps
ZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dp
enpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NjI0MEFGMjE3MDEyODMw
MDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNEMzNTc4QTIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IExheW91dFRlc3RTcGVs
bENoZWNrZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRlc3RT
cGVsbENoZWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QzM1NzhCMjBF
ODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IExheW91dFRlc3RTcGVsbENoZWNrZXIuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtODQxLDYgKzg0NywxMCBAQAogCQlGNEI2QzMxNjIwRTg0MzY5
MDA4QUMyMjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUY0NEE1MzE1MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVy
LmggKi8sCisJCQkJRjQ0QTUzMTQyMUI4OTlEQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIubW0gKi8sCisJCQkJRjQ0QTUzMTMyMUI4OTlEQTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIuaCAqLywKKwkJCQlGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQlGNEMzNTc4QjIwRTg0NDQwMDBGQTA3NDggLyogTGF5
b3V0VGVzdFNwZWxsQ2hlY2tlci5oICovLAogCQkJCUY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAv
KiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovLAogCQkJKTsKQEAgLTEwNjIsMTAgKzEwNzIs
MTIgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25NYXNr
ID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUY0NEE1MzE3MjFCODk5RTIwMERCQjk5
QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0Ex
QjlBRTBEQTAwNzQ0QUVCIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTE4NTEwM0UxQjlBRTEyMjAwNzQ0QUVCIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRTZXJp
YWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0YxQjlBRTEyOTAwNzQ0QUVC
IC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY0NEE1
MzE4MjFCODk5RTUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJGIC8qIElPU0xheW91dFRlc3RDb21t
dW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNCNTUxMUJBNzg5NjgwMDRCM0VG
NCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcx
ODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCmlu
ZGV4IDIyNzQyNzAzOTZiYmU1ZTUzYjBiOTMyNTI2YTg2OTRkMWMwN2NmNDUuLjY5YTRhYzYyYWUx
NjVjMzU4OTViZjA3YjIxNjQ0OGVlMmVlOGE4NDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTIwNSwxNyArMjA1LDYg
QEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBkb25lLCBXVEY6
OlNlY29uZHMgdGltZW91dCkKICAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3BdIHJ1
bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTplbmREYXRlXTsKIH0KIAotQ2xh
c3NNZXRob2RTd2l6emxlcjo6Q2xhc3NNZXRob2RTd2l6emxlcihDbGFzcyBjbHMsIFNFTCBvcmln
aW5hbFNlbGVjdG9yLCBJTVAgaW1wbGVtZW50YXRpb24pCi0gICAgOiBtX21ldGhvZChjbGFzc19n
ZXRDbGFzc01ldGhvZChvYmpjX2dldE1ldGFDbGFzcyhOU1N0cmluZ0Zyb21DbGFzcyhjbHMpLlVU
RjhTdHJpbmcpLCBvcmlnaW5hbFNlbGVjdG9yKSkKLSAgICAsIG1fb3JpZ2luYWxJbXBsZW1lbnRh
dGlvbihtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2QsIGltcGxlbWVudGF0aW9uKSkK
LXsKLX0KLQotQ2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0aG9kU3dpenpsZXIoKQotewot
ICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgbV9vcmlnaW5hbEltcGxlbWVu
dGF0aW9uKTsKLX0KLSAgICAKIHN0YXRpYyBOU0NhbGVuZGFyICpzd2l6emxlZENhbGVuZGFyKCkK
IHsKICAgICByZXR1cm4gW05TQ2FsZW5kYXIgY2FsZW5kYXJXaXRoSWRlbnRpZmllcjpUZXN0Q29u
dHJvbGxlcjo6c2luZ2xldG9uKCkuZ2V0T3ZlcnJpZGRlbkNhbGVuZGFySWRlbnRpZmllcigpLmdl
dCgpXTsK
</data>
<flag name="review"
          id="373626"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356672</attachid>
            <date>2018-12-05 16:07:49 -0800</date>
            <delta_ts>2018-12-05 16:34:15 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-192437-20181205160749.patch</filename>
            <type>text/plain</type>
            <size>49158</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTkzNTQ5OWVkZGQ1YjEwNTE0OWU4Y2NlOTA5NDVkMDg2
YTIxODYwMi4uODRjZmFiMWMyY2IwN2M5OThiOWI1YjRiYTc0MGNjYmRkNWMzMGUzNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQw
IEBACisyMDE4LTEyLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gU2hhcmUgQ2xhc3NNZXRob2RTd2l6emxlciBhbmQgSW5zdGFuY2VN
ZXRob2RTd2l6emxlciBiZXR3ZWVuIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktpdFRlc3RSdW5uZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmguCisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tLgorICAgICAgICAo
Q2xhc3NNZXRob2RTd2l6emxlcjo6Q2xhc3NNZXRob2RTd2l6emxlcik6CisgICAgICAgIChDbGFz
c01ldGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcik6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg6IFJlbmFtZWQgZnJvbSBU
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaC4KKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW06IFJl
bmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenps
ZXIubW0uCisgICAgICAgIChJbnN0YW5jZU1ldGhvZFN3aXp6bGVyOjpJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyKToKKyAgICAgICAgKEluc3RhbmNlTWV0aG9kU3dpenpsZXI6On5JbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyKToKKworICAgICAgICBNb3ZlIHRoZXNlIHN3aXp6bGluZyBoZWxwZXIgY2xhc3Nl
cyBpbnRvIFRlc3RSdW5uZXJTaGFyZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFyLm1tOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tOgorICAgICAgICAo
c2FmZUJyb3dzaW5nVmlldyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFdLV2Vi
VmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246YWRkVG9XaW5kb3c6XSk6CisKKyAgICAg
ICAgUmVtb3ZlIG5hbWVzcGFjaW5nIGFyb3VuZCBDbGFzc01ldGhvZFN3aXp6bGVyIGFuZCBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyIGluIGEgZmV3IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChX
VFI6OkNsYXNzTWV0aG9kU3dpenpsZXI6OkNsYXNzTWV0aG9kU3dpenpsZXIpOiBEZWxldGVkLgor
ICAgICAgICAoV1RSOjpDbGFzc01ldGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcik6
IERlbGV0ZWQuCisKKyAgICAgICAgUmVtb3ZlIHRoaXMgZHVwbGljYXRlIGltcGxlbWVudGF0aW9u
IG9mIENsYXNzTWV0aG9kU3dpenpsZXIgaW4gV2ViS2l0VGVzdFJ1bm5lci4KKwogMjAxOC0xMi0w
NSAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5jb20+CiAKICAgICAgICAgd2Via2l0
cHk6IFNvcnQgdGVzdHMgYnkgYXNzb2NpYXRlZCBkZXZpY2UgdHlwZQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggNTczYWVlZTk3ODk3OTZlYmJiNjgxZTEyZDEyMDZlNzhmNjgxOGRkMi4u
NTY3MDFlOWRkNDk0OTE3MTZmNmVmMzNlZGZhMzEzNjY0YTgzZGU3MyAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC0xNDcsNiArMTQ3LDggQEAKIAkJQzIzRUEyMDgxQkM5RjA1MTAwQzk4
MEI3IC8qIEZvbnRXaXRoRmVhdHVyZXMub3RmIGluIENvcHkgRm9udCBGaWxlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjNFQTIwNjFCQzlFQUJBMDBDOTgwQjcgLyogRm9u
dFdpdGhGZWF0dXJlcy5vdGYgKi87IH07CiAJCUMyM0VBMjA5MUJDOUYwNTEwMEM5ODBCNyAvKiBG
b250V2l0aEZlYXR1cmVzLnR0ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzIzRUEyMDcxQkM5RUFCQTAwQzk4MEI3IC8qIEZvbnRXaXRoRmVh
dHVyZXMudHRmICovOyB9OwogCQlFMUI3ODE2NTExQUYzMUI3MDA3RTFCQzIgLyogTW9ja0dlb2xv
Y2F0aW9uUHJvdmlkZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMUI3ODA4NzExQUYxNjY5MDA3RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlk
ZXIubW0gKi87IH07CisJCUY0NEE1MzFEMjFCODlBNEQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3
aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ0QTUzMUEyMUI4OUE0NDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi87IH07
CisJCUY0NEE1MzFFMjFCODlBNTAwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QTUzMUMy
MUI4OUE0NTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi87IH07CiAJCUY0
QzM1NzhEMjBFODQ0NEUwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDMzU3ODgyMEU4NDQy
NzAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gKi87IH07CiAJCUY0RDQyMzYx
MURENTA0ODIwMDY3ODI5MCAvKiBUZXh0SW5wdXRDb250cm9sbGVySU9TLm0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0MjM1RjFERDUwNDUzMDA2Nzgy
OTAgLyogVGV4dElucHV0Q29udHJvbGxlcklPUy5tICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmls
ZSBzZWN0aW9uICovCkBAIC00MDksNiArNDExLDEwIEBACiAJCUMyM0VBMjA3MUJDOUVBQkEwMEM5
ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBGb250V2l0aEZlYXR1cmVzLnR0Zjsg
cGF0aCA9IGZvbnRzL0ZvbnRXaXRoRmVhdHVyZXMudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUI3ODA4NTExQUYxNjQzMDA3RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTW9ja0dlb2xvY2F0aW9uUHJv
dmlkZXIuaDsgcGF0aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUI3ODA4NzExQUYxNjY5MDA3RTFCQzIgLyogTW9ja0dlb2xv
Y2F0aW9uUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbTsgcGF0aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Q
cm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0QTUzMTkyMUI4OUE0
NDAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3
aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2xhc3NN
ZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NN
ZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0QTUzMUIy
MUI4OUE0NDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUY0NEE1MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvSW5z
dGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRD
MzU3ODgyMEU4NDQyNzAwRkEwNzQ4IC8qIExheW91dFRlc3RTcGVsbENoZWNrZXIubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBMYXlvdXRUZXN0U3BlbGxDaGVja2Vy
Lm1tOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVj
a2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEMzNTc4OTIwRTg0NDI3MDBG
QTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg7IHBhdGggPSAuLi9UZXN0UnVubmVy
U2hhcmVkL2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRENDIzNUYxREQ1MDQ1MzAwNjc4MjkwIC8qIFRleHRJbnB1dENvbnRyb2xs
ZXJJT1MubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBuYW1lID0gVGV4dElucHV0Q29u
dHJvbGxlcklPUy5tOyBwYXRoID0gaW9zL1RleHRJbnB1dENvbnRyb2xsZXJJT1MubTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTgxNyw2ICs4MjMsMTAgQEAKIAkJRjRCNkMzMTgyMEU4
NDM4MjAwOEFDMjI1IC8qIGNvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKKwkJCQlGNDRBNTMxQjIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6
emxlci5oICovLAorCQkJCUY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3
aXp6bGVyLm1tICovLAorCQkJCUY0NEE1MzE5MjFCODlBNDQwMERCQjk5QyAvKiBJbnN0YW5jZU1l
dGhvZFN3aXp6bGVyLmggKi8sCisJCQkJRjQ0QTUzMUMyMUI4OUE0NTAwREJCOTlDIC8qIEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIubW0gKi8sCiAJCQkJRjRDMzU3ODkyMEU4NDQyNzAwRkEwNzQ4IC8q
IExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAqLywKIAkJCQlGNEMzNTc4ODIwRTg0NDI3MDBGQTA3
NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSAqLywKIAkJCSk7CkBAIC0xMDc1LDYgKzEw
ODUsNyBAQAogCQkJCUFBNUExNUYwMTZFMTVDRDAwMEY3QzU2MSAvKiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50SU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkMwRTI2MTUwRTJEQTRDNjAwMUI2QkMy
IC8qIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0Ex
OEIzOTBDOUIwMjE5MDAxMTQzNjkgLyogQXBwbGVTY3JpcHRDb250cm9sbGVyLm0gaW4gU291cmNl
cyAqLywKKwkJCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzQ0JCODMyMTM0RTQyRjMwMDFDRTZBNCAvKiBDeWNs
aWNSZWR1bmRhbmN5Q2hlY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUEyRkI4NEYxNzhDODA5
MzAwNTlGRDk2IC8qIERlZmF1bHRQb2xpY3lEZWxlZ2F0ZS5tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkNBMThDNDcwQzlCNUI5NDAwMTE0MzY5IC8qIER1bXBSZW5kZXJUcmVlLm1tIGluIFNvdXJjZXMg
Ki8sCkBAIC0xMDkwLDYgKzExMDEsNyBAQAogCQkJCUJDRjZDNjUwMEM5OEU5QzAwMEFDMDYzRSAv
KiBHQ0NvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCMjMwQzlCMDE0QjAw
MTE0MzY5IC8qIEdDQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxODVGNkIy
MTA3MTRFMDcwMDdBQTM5MyAvKiBIaXN0b3J5RGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKKwkJ
CQlGNDRBNTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBp
biBTb3VyY2VzICovLAogCQkJCTMxMjk0M0Y5MUU3MUYyQjQwMDFFRTJDQyAvKiBJT1NMYXlvdXRU
ZXN0Q29tbXVuaWNhdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0U4OEZBMjE3MTI0RDhD
MDA3MzRGQzAgLyogSmF2YVNjcmlwdFRocmVhZGluZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkw
RjE4RTcwNjFENkJBMDIzMDAyN0U1NDcgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNz
TWV0aG9kU3dpenpsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRo
b2RTd2l6emxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4ZGIxMGE0Nzk5NjMwYzY0YzU1ZDA3ODZjMDBlZTA5
NDg5MTQ1ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L0NsYXNzTWV0aG9kU3dpenpsZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvYmpjL3J1bnRpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KKworY2xhc3MgQ2xhc3NNZXRob2RTd2l6emxlciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQ2xhc3NNZXRob2RTd2l6emxlcik7CitwdWJsaWM6CisgICAgQ2xhc3NNZXRo
b2RTd2l6emxlcihDbGFzcywgU0VMLCBJTVApOworICAgIH5DbGFzc01ldGhvZFN3aXp6bGVyKCk7
CisKKyAgICBNZXRob2QgbV9tZXRob2Q7CisgICAgSU1QIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlv
bjsKK307CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0
aG9kU3dpenpsZXIubW0gYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9k
U3dpenpsZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJiOWIwMDAyY2NiMzYzNzhhYjVjMDZjMTQ1YmY5NmJi
OWVkYjc2ZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2Ev
Q2xhc3NNZXRob2RTd2l6emxlci5tbQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJDbGFzc01ldGhvZFN3aXp6bGVyLmgiCisKK0NsYXNz
TWV0aG9kU3dpenpsZXI6OkNsYXNzTWV0aG9kU3dpenpsZXIoQ2xhc3MgY2xzLCBTRUwgb3JpZ2lu
YWxTZWxlY3RvciwgSU1QIGltcGxlbWVudGF0aW9uKQorICAgIDogbV9tZXRob2QoY2xhc3NfZ2V0
Q2xhc3NNZXRob2Qob2JqY19nZXRNZXRhQ2xhc3MoTlNTdHJpbmdGcm9tQ2xhc3MoY2xzKS5VVEY4
U3RyaW5nKSwgb3JpZ2luYWxTZWxlY3RvcikpCisgICAgLCBtX29yaWdpbmFsSW1wbGVtZW50YXRp
b24obWV0aG9kX3NldEltcGxlbWVudGF0aW9uKG1fbWV0aG9kLCBpbXBsZW1lbnRhdGlvbikpCit7
Cit9CisKK0NsYXNzTWV0aG9kU3dpenpsZXI6On5DbGFzc01ldGhvZFN3aXp6bGVyKCkKK3sKKyAg
ICBtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2QsIG1fb3JpZ2luYWxJbXBsZW1lbnRh
dGlvbik7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3Rh
bmNlTWV0aG9kU3dpenpsZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI4YTBiMGIxOGQxMzFlY2M5OWIyNmEzOTFj
ODkwZjlmNmM2YzA3MmUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVk
L2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaApAQCAtMCwwICsxLDM5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPG9iamMvcnVudGltZS5oPgorI2lu
Y2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCitjbGFzcyBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnN0YW5jZU1ldGhvZFN3aXp6bGVyKTsKK3B1
YmxpYzoKKyAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyKENsYXNzLCBTRUwsIElNUCk7CisgICAg
fkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKTsKKworICAgIE1ldGhvZCBtX21ldGhvZDsKKyAgICBJ
TVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBiL1Rvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4z
MmM0NjExNDk2MTJlMGY3ZWE1ZDJhYjRhM2ZmM2M1ODk1NzY5MGM5Ci0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEtMjAxOCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgiCisKK0luc3RhbmNlTWV0aG9kU3dp
enpsZXI6Okluc3RhbmNlTWV0aG9kU3dpenpsZXIoQ2xhc3MgY2xzLCBTRUwgc2VsZWN0b3IsIElN
UCBpbXBsZW1lbnRhdGlvbikKKyAgICA6IG1fbWV0aG9kKGNsYXNzX2dldEluc3RhbmNlTWV0aG9k
KGNscywgc2VsZWN0b3IpKQorICAgICwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKG1ldGhvZF9z
ZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgaW1wbGVtZW50YXRpb24pKQoreworfQorCitJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyOjp+SW5zdGFuY2VNZXRob2RTd2l6emxlcigpCit7CisgICAgbWV0
aG9kX3NldEltcGxlbWVudGF0aW9uKG1fbWV0aG9kLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24p
OworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVy
LmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL0NsYXNzTWV0aG9kU3dpenpsZXIuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNmM1Mjc3Nzg3NzM3NGM0MmRkZTUzM2MxMjJiNWRiZjc3MjNj
MmZlMi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NsYXNzTWV0aG9kU3dpenpsZXIuaAorKysgL2Rldi9udWxsCkBAIC0x
LDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgPG9iamMv
cnVudGltZS5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7Ci0KLWNsYXNzIENsYXNzTWV0aG9kU3dpenpsZXIgewotICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKENsYXNzTWV0aG9kU3dpenpsZXIpOwotcHVibGljOgotICAgIENsYXNzTWV0
aG9kU3dpenpsZXIoQ2xhc3MsIFNFTCwgSU1QKTsKLSAgICB+Q2xhc3NNZXRob2RTd2l6emxlcigp
OwotCi0gICAgTWV0aG9kIG1fbWV0aG9kOwotICAgIElNUCBtX29yaWdpbmFsSW1wbGVtZW50YXRp
b247Ci19OwotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL0NsYXNzTWV0aG9kU3dpenpsZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL0NsYXNzTWV0aG9kU3dpenpsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGY0ZGY3M2Y5YzFkODlkYWFhYTM5N2MyMzA2MTllZTdjMTUyYjAwMWUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFz
c01ldGhvZFN3aXp6bGVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiQ2xhc3NNZXRob2RTd2l6emxlci5o
IgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLUNsYXNzTWV0aG9kU3dpenpsZXI6OkNs
YXNzTWV0aG9kU3dpenpsZXIoQ2xhc3MgY2xzLCBTRUwgb3JpZ2luYWxTZWxlY3RvciwgSU1QIGlt
cGxlbWVudGF0aW9uKQotICAgIDogbV9tZXRob2QoY2xhc3NfZ2V0Q2xhc3NNZXRob2Qob2JqY19n
ZXRNZXRhQ2xhc3MoTlNTdHJpbmdGcm9tQ2xhc3MoY2xzKS5VVEY4U3RyaW5nKSwgb3JpZ2luYWxT
ZWxlY3RvcikpCi0gICAgLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24obWV0aG9kX3NldEltcGxl
bWVudGF0aW9uKG1fbWV0aG9kLCBpbXBsZW1lbnRhdGlvbikpCi17Ci19Ci0KLUNsYXNzTWV0aG9k
U3dpenpsZXI6On5DbGFzc01ldGhvZFN3aXp6bGVyKCkKLXsKLSAgICBtZXRob2Rfc2V0SW1wbGVt
ZW50YXRpb24obV9tZXRob2QsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbik7Ci19Ci0KLX0gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmQ3ZmEz
N2Q5Y2NlZjQ5OGUzMjgzOGMwY2Q2MzcxNTg2MmIwNDQ5ZC4uZjJlMTRiOGY3MzUwNDIxM2FlNjg3
Njc5MDEyOGJjOWE0MjJjZTcyMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI4Nyw3ICsy
ODcsNiBAQAogCQk1QzRBODQ5NTFGN0VFRkZDMDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEE4NDk0MUY3
RUVGRDQwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9uLm1tICovOyB9OwogCQk1QzY5QkRENTFGODJB
N0VGMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzY5QkRENDFGODJBN0VCMDAwRjRG
NEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi87IH07CiAJCTVDNzE0ODk1MjEy
M0E0MEEwMEZERTNDNSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzcxNDg5NDIxMjNBNDA3MDBGREUzQzUgLyog
V0tXZWJzaXRlRGF0YXN0b3JlLm1tICovOyB9OwotCQk1QzcyNkQ2RjFEM0VFMDZFMDBDNUUxQTEg
LyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzI2RDZFMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1l
dGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQk1Qzc5NjQxMDFFQjAyNzhEMDA3NUQ3NEMgLyogRXZl
bnRNb2RpZmllcnMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM3OTY0MEYxRUIwMjY5QjAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCAqLzsg
fTsKIAkJNUM3Qzc0Q0IxRkI1MjlCQTAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9v
cC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0M3
NENBMUZCNTI4RDQwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gKi87IH07
CiAJCTVDODM4RjdGMURCMDRGOTAwMDgyODU4RiAvKiBMb2FkSW52YWxpZFVSTFJlcXVlc3QubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NzkwMUZBRTFD
QUYxMzcxMDBFRDY0RjkgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tICovOyB9OwpAQCAtODI4
LDYgKzgyNyw4IEBACiAJCUY0M0UzQkMxMjBEQURCQzUwMEE0RTdFRCAvKiBmaXhlZC1uYXYtYmFy
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjQzRTNCQzAyMERBREI4MDAwQTRFN0VEIC8qIGZpeGVkLW5hdi1iYXIuaHRtbCAqLzsgfTsK
IAkJRjQ0Mjg1MUQyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9udFBhbmVsVGVzdGluZy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDI4NTFDMjE0MERG
MjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0gKi87IH07CiAJCUY0NDUxQzc2MUVC
OEZEODkwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDUxQzc1
MUVCOEZEN0MwMDIwQzVEQSAvKiB0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1sICov
OyB9OworCQlGNDRBNTMxMTIxQjg5OTAzMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1
MzEwMjFCODk3NjkwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9Owor
CQlGNDRBNTMxMjIxQjg5OTBBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzBFMjFCODk3
NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNDRDNzlGRjIw
RjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3RzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0Qzc5RkUyMEY5RTg3MTAwMTQ0NzhD
IC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSAqLzsgfTsKIAkJRjQ0QzdBMDAyMEY5RUVCRjAw
MTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRDNzlGQjIwRjlFNTBDMDAxNDQ3OEMgLyogUGFy
c2VyWWllbGRUb2tlblBsdWdJbi5tbSAqLzsgfTsKIAkJRjQ0QzdBMDUyMEZBQUUzQzAwMTQ0NzhD
IC8qIHRleHQtd2l0aC1kZWZlcnJlZC1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRDN0EwNDIwRkFBRTMyMDAxNDQ3OEMg
LyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlwdC5odG1sICovOyB9OwpAQCAtODM3LDcgKzgzOCw2
IEBACiAJCUY0NTAzM0Y1MjA2QkVDOTUwMDkzNTFDRSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MDMzRjQy
MDZCRUM5NTAwOTM1MUNFIC8qIFRleHRBdXRvc2l6aW5nQm9vc3QubW0gKi87IH07CiAJCUY0NTEy
RTEzMUY2MEM0NDYwMEJCMzY5RSAvKiBEYXRhVHJhbnNmZXJJdGVtLWdldEFzRW50cnkuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUx
MkUxMjFGNjBDNDM0MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVySXRlbS1nZXRBc0VudHJ5Lmh0bWwg
Ki87IH07CiAJCUY0NTE3QjY3MjA1NEM0OTUwMEMyNjcyMSAvKiBUZXN0V0tXZWJWaWV3Q29udHJv
bGxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
NTE3QjY2MjA1NEM0OTUwMEMyNjcyMSAvKiBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5tbSAqLzsg
fTsKLQkJRjQ1MTdCN0YyMDU1MTAxQjAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUxN0I2OTIw
NTRFMEFDMDBDMjY3MjEgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ1MzhF
RjcxRTg0NzNFNjAwQjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTM4RUYwMUU4NDZCNDEw
MEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyAqLzsgfTsKIAkJRjQ1NkFCMUMyMTNFREJB
MzAwQ0IyQ0VGIC8qIEZvbnRNYW5hZ2VyVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDU2QUIxQjIxM0VEQkEzMDBDQjJDRUYgLyogRm9udE1h
bmFnZXJUZXN0cy5tbSAqLzsgfTsKIAkJRjQ1N0E5QjgyMDJENUNEQzAwRjdFOUQ1IC8qIFBhc3Rl
TWl4ZWRDb250ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjQ1N0E5QjYyMDJENUNEQzAwRjdFOUQ1IC8qIFBhc3RlTWl4ZWRDb250ZW50Lm1tICov
OyB9OwpAQCAtMTYzMCw4ICsxNjMwLDYgQEAKIAkJNUM1RTYzM0QxRDBCNjc5NDAwODVBMDI1IC8q
IFVuaXF1ZVJlZi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmlx
dWVSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzY5QkRENDFGODJBN0VC
MDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1IC8q
IFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdLV2Vic2l0ZURhdGFzdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJNUM3MjZENkQxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5o
OyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk1QzcyNkQ2RTFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RT
d2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSBjb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVy
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Qzc5NjQwRjFFQjAyNjlCMDA3NUQ3
NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRXZlbnRNb2RpZmllcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzdDNzRDQTFGQjUyOEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld1NjaGVkdWxlSW5S
dW5Mb29wLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzhCQzc5ODIxOENGM0U5
MDA4MTM4ODYgLyogTmV0d29ya1Byb2Nlc3MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIxMjUsNiArMjEyMywxMCBAQAogCQlGNDQyODUxQjIxNDBERjI5MDBDQ0RBMjIgLyog
TlNGb250UGFuZWxUZXN0aW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5TRm9udFBhbmVsVGVzdGluZy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQyODUxQzIxNDBERjI5MDBDQ0RBMjIg
LyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTlNGb250UGFu
ZWxUZXN0aW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDQ1MUM3NTFFQjhG
RDdDMDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJ0d28tcGFyYWdyYXBoLWNvbnRlbnRlZGl0YWJsZS5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0QTUzMEQyMUI4OTc2OTAwREJCOTlD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJl
ZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY0NEE1MzBFMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6
emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6
emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0QTUzMEYyMUI4OTc2OTAw
REJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJl
ZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY0NEE1MzEwMjFCODk3NjkwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gSW5zdGFuY2VNZXRob2RT
d2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRo
b2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Qzc5RkIyMEY5
RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5QbHVnSW4ubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDRDNzlGRDIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRUb2tlblRlc3Rz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNDRDNzlGRTIwRjlFODcxMDAxNDQ3OEMgLyogUGFyc2VyWWllbGRU
b2tlblRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUGFyc2VyWWllbGRUb2tlblRlc3Rz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjEzNyw4ICsyMTM5LDYgQEAKIAkJ
RjQ1MTJFMTIxRjYwQzQzNDAwQkIzNjlFIC8qIERhdGFUcmFuc2Zlckl0ZW0tZ2V0QXNFbnRyeS5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gIkRhdGFUcmFuc2Zlckl0ZW0tZ2V0QXNF
bnRyeS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MTdCNjUyMDU0QzQ5
NTAwQzI2NzIxIC8qIFRlc3RXS1dlYlZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRl
c3RXS1dlYlZpZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
NTE3QjY2MjA1NEM0OTUwMEMyNjcyMSAvKiBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IFRlc3RXS1dlYlZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlGNDUxN0I2ODIwNTRFMEFDMDBDMjY3MjEgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGFzc01ldGhvZFN3aXp6bGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY0NTE3QjY5MjA1NEUwQUMwMEMyNjcyMSAvKiBDbGFz
c01ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6
emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1MzhFRjAxRTg0NkI0MTAw
QjVDOTUzIC8qIGxhcmdlLXJlZC1zcXVhcmUucG5nICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucG5nOyBwYXRoID0gImxhcmdlLXJlZC1zcXVh
cmUucG5nIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1NkFCMUIyMTNFREJBMzAw
Q0IyQ0VGIC8qIEZvbnRNYW5hZ2VyVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBGb250
TWFuYWdlclRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDU3QTlCMzIw
MkQ1MzUzMDBGN0U5RDUgLyogRGF0YVRyYW5zZmVyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSBEYXRhVHJhbnNmZXIuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIzMjksMTQgKzIzMjksMTQgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CiAJCQkJQTEzRUJCNDQxQjg3MzMyQjAwMDk3MTEwIC8qIFdlYlByb2Nlc3NQbHVnSW4gKi8sCi0J
CQkJRjQ1MTdCNjgyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLywK
LQkJCQlGNDUxN0I2OTIwNTRFMEFDMDBDMjY3MjEgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAq
LywKKwkJCQlGNDRBNTMwRjIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5o
ICovLAorCQkJCUY0NEE1MzBFMjFCODk3NjkwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVy
Lm1tICovLAogCQkJCUY0N0RGQjI3MjFBODg1RTcwMDAyMUZCNiAvKiBEYXRhRGV0ZWN0b3JzQ29y
ZVNQSS5oICovLAogCQkJCUY0NjEyOEI0MjExQzg2MUEwMEQ5RkFEQiAvKiBEcmFnQW5kRHJvcFNp
bXVsYXRvci5oICovLAogCQkJCUY0NEQwNjQ4MUYzOTYyRTMwMDFBMEUyOSAvKiBFZGl0aW5nVGVz
dEhhcm5lc3MuaCAqLywKIAkJCQlGNDREMDY0OTFGMzk2MkUzMDAxQTBFMjkgLyogRWRpdGluZ1Rl
c3RIYXJuZXNzLm1tICovLAotCQkJCTVDNzI2RDZEMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyLmggKi8sCi0JCQkJNUM3MjZENkUxRDNFRTA2ODAwQzVFMUExIC8qIElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi8sCisJCQkJRjQ0QTUzMEQyMUI4OTc2OTAwREJCOTlD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLywKKwkJCQlGNDRBNTMxMDIxQjg5NzY5MDBE
QkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQkwRjEzOUU3MjFBNDIz
QTJCMDBGNTkwRjUgLyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSAqLywKIAkJCQkyRDFDMDRB
NTFENzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5oICovLAogCQkJCTJE
MUMwNEE2MUQ3NjI5OEIwMDBBNjgxNiAvKiBUZXN0TmF2aWdhdGlvbkRlbGVnYXRlLm1tICovLApA
QCAtMzg0NCw3ICszODQ0LDcgQEAKIAkJCQk1NzMwM0JDQjIwMDgzNzY1MDAzNTU5NjUgLyogQ0JP
UlJlYWRlclRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTczMDNCQzkyMDA4MjREMzAwMzU1
OTY1IC8qIENCT1JWYWx1ZVRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTczMDNCQ0EyMDA4
MkMwMTAwMzU1OTY1IC8qIENCT1JXcml0ZXJUZXN0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUY0
NTE3QjdGMjA1NTEwMUIwMEMyNjcyMSAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8sCisJCQkJRjQ0QTUzMTIyMUI4OTkwQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNjFBNDExQUU2MDA0NDdDNEMgLyogQ2xv
c2VGcm9tV2l0aGluQ3JlYXRlUGFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VCNzFB
NDExQTdFMDA0NDdDNEMgLyogQ2xvc2VOZXdXaW5kb3dJbk5hdmlnYXRpb25Qb2xpY3lEZWxlZ2F0
ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUU1MUE0MTFBRTYwMDQ0N0M0QyAvKiBDbG9z
ZVRoZW5UZXJtaW5hdGUuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0zOTg3LDggKzM5ODcsOCBAQAog
CQkJCTdDQ0U3RUZEMUE0MTFBRTYwMDQ0N0M0QyAvKiBJbmplY3RlZEJ1bmRsZUluaXRpYWxpemF0
aW9uVXNlckRhdGFDYWxsYmFja1dpbnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwQjgx
RDBBNjRCRDAwRkVCQ0YzIC8qIEluamVjdGVkQnVuZGxlTWFrZUFsbFNoYWRvd1Jvb3RzT3Blbi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VDMzFBNDExQTdFMDA0NDdDNEMgLyogSW5zcGVj
dG9yQmFyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQ0QTUzMTEyMUI4OTkwMzAwREJCOTlDIC8q
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VEQTFB
NDExQTg3MDA0NDdDNEMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICov
LAotCQkJCTVDNzI2RDZGMUQzRUUwNkUwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMkRCMDIzMkYxRTRFODcxODAwNzA3MTIzIC8qIEludGVy
YWN0aW9uRGVhZGxvY2tBZnRlckNyYXNoLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0E5MDlBODEx
RDg3NzQ4MDAwN0UxMEY4IC8qIEludFBvaW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5
QTgyMUQ4Nzc0ODAwMDdFMTBGOCAvKiBJbnRSZWN0LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VD
bGVhci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9y
YWdlQ2xlYXIubW0KaW5kZXggMTZhYmQ2MGVkNjQyOWU0ZmE2NjIzYmJlNjk2ZDI4ZDBiMWMyMzY5
YS4uYjM3YzdjYjI2ODhhMmEyOGEwZjQyNGYwMjA4ZGYzNTgxNmE2ZDA2MyAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VDbGVhci5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFn
ZUNsZWFyLm1tCkBAIC0xMzAsNyArMTMwLDcgQEAgVEVTVChXS1dlYlZpZXcsIENsZWFyQXBwQ2Fj
aGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICAvLyBPbiBpT1MsIE1vYmlsZVNh
ZmFyaSBhbmQgd2ViYm9va21hcmtzZCBuZWVkIHRvIHNoYXJlIHRoZSBzYW1lIEFwcENhY2hlIGRp
cmVjdG9yeS4KLSAgICBUZXN0V2ViS2l0QVBJOjpJbnN0YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6
bGUoW05TQnVuZGxlIGNsYXNzXSwgQHNlbGVjdG9yKGJ1bmRsZUlkZW50aWZpZXIpLCByZWludGVy
cHJldF9jYXN0PElNUD4oc3dpenpsZWRCdW5kbGVJZGVudGlmaWVyV2ViQm9va21hcmtzRCkpOwor
ICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIgc3dpenpsZShbTlNCdW5kbGUgY2xhc3NdLCBAc2Vs
ZWN0b3IoYnVuZGxlSWRlbnRpZmllciksIHJlaW50ZXJwcmV0X2Nhc3Q8SU1QPihzd2l6emxlZEJ1
bmRsZUlkZW50aWZpZXJXZWJCb29rbWFya3NEKSk7CiAjZW5kaWYKIAogICAgIC8vIFN0YXJ0IHdp
dGggYSBjbGVhbiBzbGF0ZSBvZiBXZWJzaXRlRGF0YS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0KaW5kZXggZmMyZjliMDk0
YzBkNWEzZmIzNzkyODA1ZGQzOGU2NjhlYzY2Y2NjOS4uNTQyODRjYjYzMDQ2OWM0Y2Y0ODczMjUx
NTJlZjYzZDk1OThkNWYyNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9TYWZlQnJvd3NpbmcubW0KQEAgLTE0NSw3ICsxNDUsNyBAQCBzdGF0aWMg
TlNVUkwgKnJlc291cmNlVVJMKE5TU3RyaW5nICpyZXNvdXJjZSkKIAogVEVTVChTYWZlQnJvd3Np
bmcsIFByZWZlcmVuY2UpCiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RTd2l6emxl
ciBzd2l6emxlcihvYmpjX2dldENsYXNzKCJTU0JMb29rdXBDb250ZXh0IiksIEBzZWxlY3Rvcihz
aGFyZWRMb29rdXBDb250ZXh0KSwgW1Rlc3RMb29rdXBDb250ZXh0IG1ldGhvZEZvclNlbGVjdG9y
OkBzZWxlY3RvcihzaGFyZWRMb29rdXBDb250ZXh0KV0pOworICAgIENsYXNzTWV0aG9kU3dpenps
ZXIgc3dpenpsZXIob2JqY19nZXRDbGFzcygiU1NCTG9va3VwQ29udGV4dCIpLCBAc2VsZWN0b3Io
c2hhcmVkTG9va3VwQ29udGV4dCksIFtUZXN0TG9va3VwQ29udGV4dCBtZXRob2RGb3JTZWxlY3Rv
cjpAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCldKTsKIAogICAgIF9fYmxvY2sgYm9vbCBk
b25lID0gZmFsc2U7CiAgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1Rlc3ROYXZpZ2F0aW9u
RGVsZWdhdGUgbmV3XSk7CkBAIC0xNjgsNyArMTY4LDcgQEAgVEVTVChTYWZlQnJvd3NpbmcsIFBy
ZWZlcmVuY2UpCiAKIHN0YXRpYyBSZXRhaW5QdHI8V0tXZWJWaWV3PiBzYWZlQnJvd3NpbmdWaWV3
KCkKIHsKLSAgICBUZXN0V2ViS2l0QVBJOjpDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyKG9i
amNfZ2V0Q2xhc3MoIlNTQkxvb2t1cENvbnRleHQiKSwgQHNlbGVjdG9yKHNoYXJlZExvb2t1cENv
bnRleHQpLCBbVGVzdExvb2t1cENvbnRleHQgbWV0aG9kRm9yU2VsZWN0b3I6QHNlbGVjdG9yKHNo
YXJlZExvb2t1cENvbnRleHQpXSk7CisgICAgQ2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxlcihv
YmpjX2dldENsYXNzKCJTU0JMb29rdXBDb250ZXh0IiksIEBzZWxlY3RvcihzaGFyZWRMb29rdXBD
b250ZXh0KSwgW1Rlc3RMb29rdXBDb250ZXh0IG1ldGhvZEZvclNlbGVjdG9yOkBzZWxlY3Rvcihz
aGFyZWRMb29rdXBDb250ZXh0KV0pOwogCiAgICAgc3RhdGljIGF1dG8gZGVsZWdhdGUgPSBhZG9w
dE5TKFtTYWZlQnJvd3NpbmdOYXZpZ2F0aW9uRGVsZWdhdGUgbmV3XSk7CiAgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOwpAQCAtMjY5LDcgKzI2OSw3IEBAIEBlbmQK
IAogVEVTVChTYWZlQnJvd3NpbmcsIE1pc3NpbmdGcmFtZXdvcmspCiB7Ci0gICAgVGVzdFdlYktp
dEFQSTo6Q2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxlcihvYmpjX2dldENsYXNzKCJTU0JMb29r
dXBDb250ZXh0IiksIEBzZWxlY3RvcihzaGFyZWRMb29rdXBDb250ZXh0KSwgW051bGxMb29rdXBD
b250ZXh0IG1ldGhvZEZvclNlbGVjdG9yOkBzZWxlY3RvcihzaGFyZWRMb29rdXBDb250ZXh0KV0p
OworICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIob2JqY19nZXRDbGFzcygiU1NCTG9v
a3VwQ29udGV4dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCksIFtOdWxsTG9va3Vw
Q29udGV4dCBtZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCld
KTsKICAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDgwMCwgNjAwKV0pOwogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAInNpbXBsZSJdOwogfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEZWZhdWx0TmF2
aWdhdGlvbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tCmluZGV4IDJhMzA2OGMwYTZi
MDQ5MzQwZTBiYTAwNjVjYmJlNjg2NGQwYzA0ZWUuLjU4YzU2Y2I4M2FiYzI1NGY3NjEyNTMzMmM2
YzYxZGNiYjA5MWIwMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0
aW9uRGVsZWdhdGUubW0KQEAgLTQ1LDcgKzQ1LDcgQEAgc3RhdGljIHZvaWQgbmV3T3BlblVSTChp
ZCBzZWxmLCBTRUwgX2NtZCwgTlNVUkwqIHZhbHVlKQogCiBURVNUKFdLV2ViVmlldywgRGVmYXVs
dE5hdmlnYXRpb25EZWxlZ2F0ZSkKIHsKLSAgICBUZXN0V2ViS2l0QVBJOjpJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyIHN3aXp6bGUoW05TV29ya3NwYWNlIGNsYXNzXSwgQHNlbGVjdG9yKG9wZW5VUkw6
KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG5ld09wZW5VUkwpKTsKKyAgICBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyIHN3aXp6bGUoW05TV29ya3NwYWNlIGNsYXNzXSwgQHNlbGVjdG9yKG9wZW5VUkw6
KSwgcmVpbnRlcnByZXRfY2FzdDxJTVA+KG5ld09wZW5VUkwpKTsKIAogICAgIFdLV2ViVmlldyAq
d2ViVmlldyA9IFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwg
MCwgODAwLCA2MDApXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9J
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3Rh
bmNlTWV0aG9kU3dpenpsZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUzMWE4
YWE5NmUwNzVkYTFkODFkZTU2OGM4MTUxNWMwODAyYjc2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3Rh
bmNlTWV0aG9kU3dpenpsZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaWZuZGVmIEluc3RhbmNlTWV0aG9kU3dpenpsZXJfaAotI2RlZmluZSBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyX2gKLQotI2luY2x1ZGUgPG9iamMvcnVudGltZS5oPgotI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLWNsYXNz
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIpOwotcHVibGljOgotICAgIEluc3RhbmNlTWV0aG9kU3dpenpsZXIo
Q2xhc3MsIFNFTCwgSU1QKTsKLSAgICB+SW5zdGFuY2VNZXRob2RTd2l6emxlcigpOwotCi0gICAg
TWV0aG9kIG1fbWV0aG9kOwotICAgIElNUCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb247Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCi0KLSNlbmRpZiAvLyBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGMzN2RhNGI4
ZGM1MGZiMjFmNDVjNGYzZjdkNmYwMTczN2VhYTBlOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNl
TWV0aG9kU3dpenpsZXIubW0KKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkluc3RhbmNlTWV0aG9kU3dpenps
ZXIuaCIKLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1JbnN0YW5jZU1ldGhvZFN3aXp6
bGVyOjpJbnN0YW5jZU1ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIHNlbGVjdG9yLCBJTVAg
aW1wbGVtZW50YXRpb24pCi0gICAgOiBtX21ldGhvZChjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChj
bHMsIHNlbGVjdG9yKSkKLSAgICAsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbihtZXRob2Rfc2V0
SW1wbGVtZW50YXRpb24obV9tZXRob2QsIGltcGxlbWVudGF0aW9uKSkKLXsKLX0KLQotSW5zdGFu
Y2VNZXRob2RTd2l6emxlcjo6fkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKQotewotICAgIG1ldGhv
ZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKTsK
LX0KLQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9j
b2NvYS9UZXN0V0tXZWJWaWV3Lm1tCmluZGV4IGU4ZWFkZjg2ZDNlODNjZmU4NDQxZjIwN2JmZjQ0
M2IxOWRiOTUxNmUuLjU0NDE2YmZhODE5NzU5M2I2MjI0YzViZTY2YTg5ZTUyMTk0ZDAxNTMgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KQEAgLTI1Myw3ICsy
NTMsNyBAQCBAaW1wbGVtZW50YXRpb24gVGVzdFdLV2ViVmlldyB7CiAgICAgUmV0YWluUHRyPFRl
c3RXS1dlYlZpZXdIb3N0V2luZG93PiBfaG9zdFdpbmRvdzsKICAgICBSZXRhaW5QdHI8VGVzdE1l
c3NhZ2VIYW5kbGVyPiBfdGVzdEhhbmRsZXI7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8VGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RTd2l6emxlcj4gX3No
YXJlZENhbGxvdXRCYXJTd2l6emxlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q2xhc3NNZXRob2RT
d2l6emxlcj4gX3NoYXJlZENhbGxvdXRCYXJTd2l6emxlcjsKICNlbmRpZgogfQogCkBAIC0yODgs
NyArMjg4LDcgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBj
b25maWd1cmF0aW9uOihXS1dlYlZpZXdDb25maWd1cmF0aW8KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCiAgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTc1MjA0PiBpcyBmaXhlZC4KLSAgICBfc2hhcmVkQ2FsbG91dEJhclN3
aXp6bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxUZXN0V2ViS2l0QVBJOjpDbGFzc01ldGhvZFN3aXp6
bGVyPihbVUlDYWxsb3V0QmFyIGNsYXNzXSwgQHNlbGVjdG9yKHNoYXJlZENhbGxvdXRCYXIpLCBy
ZWludGVycHJldF9jYXN0PElNUD4oc3VwcHJlc3NVSUNhbGxvdXRCYXIpKTsKKyAgICBfc2hhcmVk
Q2FsbG91dEJhclN3aXp6bGVyID0gc3RkOjptYWtlX3VuaXF1ZTxDbGFzc01ldGhvZFN3aXp6bGVy
PihbVUlDYWxsb3V0QmFyIGNsYXNzXSwgQHNlbGVjdG9yKHNoYXJlZENhbGxvdXRCYXIpLCByZWlu
dGVycHJldF9jYXN0PElNUD4oc3VwcHJlc3NVSUNhbGxvdXRCYXIpKTsKICNlbmRpZgogCiAgICAg
cmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKaW5kZXgg
YjM3NjRlNmNlNGIwMjkzNTg0MWE4M2ZhNmMwYTA4OGY2OGVkZWU1NS4uMGIzNWEzY2U1NmZlZTRh
Mzg4YTIxMzhkYTFmZWNlMzAwNWUwMTMwZCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9UZXN0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuaApAQCAtMzksOSArMzksNyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0hh
c2guaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotCi0jaW5jbHVkZSA8b2JqYy9ydW50aW1lLmg+
Ci0KKyNpbmNsdWRlICJDbGFzc01ldGhvZFN3aXp6bGVyLmgiCiAjZW5kaWYKIAogT0JKQ19DTEFT
UyBOU1N0cmluZzsKQEAgLTQ5LDYgKzQ3LDcgQEAgT0JKQ19DTEFTUyBXS1dlYlZpZXdDb25maWd1
cmF0aW9uOwogCiBuYW1lc3BhY2UgV1RSIHsKIAorY2xhc3MgQ2xhc3NNZXRob2RTd2l6emxlcjsK
IGNsYXNzIFRlc3RJbnZvY2F0aW9uOwogY2xhc3MgT3JpZ2luU2V0dGluZ3M7CiBjbGFzcyBQbGF0
Zm9ybVdlYlZpZXc7CkBAIC01NiwxOSArNTUsNiBAQCBjbGFzcyBFdmVudFNlbmRlclByb3h5Owog
c3RydWN0IFRlc3RDb21tYW5kOwogc3RydWN0IFRlc3RPcHRpb25zOwogCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0vLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIHdpdGggVGVzdFdlYktpdEFQ
SS4KLWNsYXNzIENsYXNzTWV0aG9kU3dpenpsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENsYXNzTWV0aG9kU3dpenpsZXIpOwotcHVibGljOgotICAgIENsYXNzTWV0aG9kU3dpenpsZXIo
Q2xhc3MsIFNFTCwgSU1QKTsKLSAgICB+Q2xhc3NNZXRob2RTd2l6emxlcigpOwotICAgIAotICAg
IE1ldGhvZCBtX21ldGhvZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwotfTsK
LSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKLQogY2xhc3MgQXN5bmNUYXNrIHsKIHB1YmxpYzoK
ICAgICBBc3luY1Rhc2soV1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIHRhc2ssIFdURjo6U2Vjb25k
cyB0aW1lb3V0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0
UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NGQ2YTAy
MTlmMzMzY2Q2YjdhMDVkZTY3Y2M1M2M2MDRiOWViOWFiLi5hNWI1NTZiZWJlMTE4MWM5ZmYzMTI3
MWMyZjAzM2UzM2E2NWI0ZTczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTM1LDYgKzEzNSw4IEBACiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRU
ZXN0UnVubmVyRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTMyQUEzQjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50
Lm1tICovOyB9OwogCQlFMUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDMTE3
Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdDQkNE
NEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2NkEz
QyAvKiBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ0QTUzMTcyMUI4
OTlFMjAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyog
Q2xhc3NNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKKwkJRjQ0QTUzMTgyMUI4OTlFNTAwREJCOTlD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ2MjQwQjEyMTcwMTNFNTAwOTE3QjE2IC8qIFVJ
U2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ2MjQwQUYyMTcwMTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJv
bGxlckNvY29hLm1tICovOyB9OwogCQlGNEMzNTc4QzIwRTg0NDQ2MDBGQTA3NDggLyogTGF5b3V0
VGVzdFNwZWxsQ2hlY2tlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVj
a2VyLm1tICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC0zNzksNiAr
MzgxLDEwIEBACiAJCUUxQzY0MkMyMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NlQXNDbGFzcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVz
dFJ1bm5lclBhc3RlYm9hcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRTFDNjQyQzUxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0
ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5u
ZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzEzMjFC
ODk5REEwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENs
YXNzTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0Ns
YXNzTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1
MzE1MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rl
c3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRo
b2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29h
L0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0NjI0MEFGMjE3MDEyODMwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNEMzNTc4QTIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0
VGVzdFNwZWxsQ2hlY2tlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFt
ZSA9IExheW91dFRlc3RTcGVsbENoZWNrZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVk
L2NvY29hL0xheW91dFRlc3RTcGVsbENoZWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0QzM1NzhCMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExheW91dFRlc3RTcGVsbENoZWNr
ZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQxLDYgKzg0NywxMCBAQAog
CQlGNEI2QzMxNjIwRTg0MzY5MDA4QUMyMjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0NEE1MzE1MjFCODk5REEwMERCQjk5QyAvKiBD
bGFzc01ldGhvZFN3aXp6bGVyLmggKi8sCisJCQkJRjQ0QTUzMTQyMUI4OTlEQTAwREJCOTlDIC8q
IENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi8sCisJCQkJRjQ0QTUzMTMyMUI4OTlEQTAwREJCOTlD
IC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLywKKwkJCQlGNDRBNTMxNjIxQjg5OURBMDBE
QkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQlGNEMzNTc4QjIwRTg0
NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oICovLAogCQkJCUY0QzM1NzhB
MjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovLAogCQkJKTsK
QEAgLTEwNjIsMTAgKzEwNzIsMTIgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwog
CQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUY0NEE1
MzE3MjFCODk5RTIwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTE4NTEwM0ExQjlBRTBEQTAwNzQ0QUVCIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0UxQjlBRTEyMjAwNzQ0QUVCIC8qIEN5Y2xpY1Jl
ZHVuZGFuY3lDaGVjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREQ0QzQ5QjFENkU3RDNCMDAw
NzM3OUMgLyogRXZlbnRTZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEw
M0YxQjlBRTEyOTAwNzQ0QUVCIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCUY0NEE1MzE4MjFCODk5RTUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJGIC8q
IElPU0xheW91dFRlc3RDb21tdW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNC
NTUxMUJBNzg5NjgwMDRCM0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjE4RTcxODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCmluZGV4IDIyNzQyNzAzOTZiYmU1ZTUzYjBiOTMyNTI2YTg2OTRkMWMw
N2NmNDUuLjY5YTRhYzYyYWUxNjVjMzU4OTViZjA3YjIxNjQ0OGVlMmVlOGE4NDUgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
QEAgLTIwNSwxNyArMjA1LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRp
bChib29sJiBkb25lLCBXVEY6OlNlY29uZHMgdGltZW91dCkKICAgICAgICAgW1tOU1J1bkxvb3Ag
Y3VycmVudFJ1bkxvb3BdIHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTpl
bmREYXRlXTsKIH0KIAotQ2xhc3NNZXRob2RTd2l6emxlcjo6Q2xhc3NNZXRob2RTd2l6emxlcihD
bGFzcyBjbHMsIFNFTCBvcmlnaW5hbFNlbGVjdG9yLCBJTVAgaW1wbGVtZW50YXRpb24pCi0gICAg
OiBtX21ldGhvZChjbGFzc19nZXRDbGFzc01ldGhvZChvYmpjX2dldE1ldGFDbGFzcyhOU1N0cmlu
Z0Zyb21DbGFzcyhjbHMpLlVURjhTdHJpbmcpLCBvcmlnaW5hbFNlbGVjdG9yKSkKLSAgICAsIG1f
b3JpZ2luYWxJbXBsZW1lbnRhdGlvbihtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2Qs
IGltcGxlbWVudGF0aW9uKSkKLXsKLX0KLQotQ2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0
aG9kU3dpenpsZXIoKQotewotICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwg
bV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKTsKLX0KLSAgICAKIHN0YXRpYyBOU0NhbGVuZGFyICpz
d2l6emxlZENhbGVuZGFyKCkKIHsKICAgICByZXR1cm4gW05TQ2FsZW5kYXIgY2FsZW5kYXJXaXRo
SWRlbnRpZmllcjpUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZ2V0T3ZlcnJpZGRlbkNhbGVu
ZGFySWRlbnRpZmllcigpLmdldCgpXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>356677</attachid>
            <date>2018-12-05 16:34:26 -0800</date>
            <delta_ts>2018-12-05 19:09:38 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-192437-20181205163425.patch</filename>
            <type>text/plain</type>
            <size>49542</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM4OTA0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTkzNTQ5OWVkZGQ1YjEwNTE0OWU4Y2NlOTA5NDVkMDg2
YTIxODYwMi4uZDBmOTJiMzU1OTg2NTUzZThjMDkzMWU0ZmUxZDZlNDBjMjZmMzZkYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDE4LTEyLTA1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgor
CisgICAgICAgIFtDb2NvYV0gU2hhcmUgQ2xhc3NNZXRob2RTd2l6emxlciBhbmQgSW5zdGFuY2VN
ZXRob2RTd2l6emxlciBiZXR3ZWVuIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktpdFRlc3RSdW5uZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjQzNwor
CisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmguCisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tLgorICAgICAgICAo
Q2xhc3NNZXRob2RTd2l6emxlcjo6Q2xhc3NNZXRob2RTd2l6emxlcik6CisgICAgICAgIChDbGFz
c01ldGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcik6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg6IFJlbmFtZWQgZnJvbSBU
b29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaC4KKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW06IFJl
bmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenps
ZXIubW0uCisgICAgICAgIChJbnN0YW5jZU1ldGhvZFN3aXp6bGVyOjpJbnN0YW5jZU1ldGhvZFN3
aXp6bGVyKToKKyAgICAgICAgKEluc3RhbmNlTWV0aG9kU3dpenpsZXI6On5JbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyKToKKworICAgICAgICBNb3ZlIHRoZXNlIHN3aXp6bGluZyBoZWxwZXIgY2xhc3Nl
cyBpbnRvIFRlc3RSdW5uZXJTaGFyZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFyLm1tOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tOgorICAgICAgICAo
c2FmZUJyb3dzaW5nVmlldyk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVnYXRlLm1tOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFdLV2Vi
VmlldyBpbml0V2l0aEZyYW1lOmNvbmZpZ3VyYXRpb246YWRkVG9XaW5kb3c6XSk6CisKKyAgICAg
ICAgUmVtb3ZlIG5hbWVzcGFjaW5nIGFyb3VuZCBDbGFzc01ldGhvZFN3aXp6bGVyIGFuZCBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyIGluIGEgZmV3IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvbWFjL1Rlc3RGb250T3B0aW9ucy5tbToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRU
ZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpDbGFz
c01ldGhvZFN3aXp6bGVyOjpDbGFzc01ldGhvZFN3aXp6bGVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdUUjo6Q2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0aG9kU3dpenpsZXIpOiBEZWxldGVk
LgorCisgICAgICAgIFJlbW92ZSB0aGlzIGR1cGxpY2F0ZSBpbXBsZW1lbnRhdGlvbiBvZiBDbGFz
c01ldGhvZFN3aXp6bGVyIGluIFdlYktpdFRlc3RSdW5uZXIuCisKIDIwMTgtMTItMDUgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBTb3J0
IHRlc3RzIGJ5IGFzc29jaWF0ZWQgZGV2aWNlIHR5cGUKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDU3M2FlZWU5Nzg5Nzk2ZWJiYjY4MWUxMmQxMjA2ZTc4ZjY4MThkZDIuLjU2NzAxZTlk
ZDQ5NDkxNzE2ZjZlZjMzZWRmYTMxMzY2NGE4M2RlNzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTQ3LDYgKzE0Nyw4IEBACiAJCUMyM0VBMjA4MUJDOUYwNTEwMEM5ODBCNyAvKiBG
b250V2l0aEZlYXR1cmVzLm90ZiBpbiBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQzIzRUEyMDYxQkM5RUFCQTAwQzk4MEI3IC8qIEZvbnRXaXRoRmVh
dHVyZXMub3RmICovOyB9OwogCQlDMjNFQTIwOTFCQzlGMDUxMDBDOTgwQjcgLyogRm9udFdpdGhG
ZWF0dXJlcy50dGYgaW4gQ29weSBGb250IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyM0VBMjA3MUJDOUVBQkEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLnR0
ZiAqLzsgfTsKIAkJRTFCNzgxNjUxMUFGMzFCNzAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblBy
b3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tICov
OyB9OworCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzFB
MjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovOyB9OworCQlGNDRB
NTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzFDMjFCODlBNDUw
MERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNEMzNTc4RDIw
RTg0NDRFMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzM1Nzg4MjBFODQ0MjcwMEZBMDc0
OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovOyB9OwogCQlGNEQ0MjM2MTFERDUwNDgy
MDA2NzgyOTAgLyogVGV4dElucHV0Q29udHJvbGxlcklPUy5tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENDIzNUYxREQ1MDQ1MzAwNjc4MjkwIC8qIFRl
eHRJbnB1dENvbnRyb2xsZXJJT1MubSAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlv
biAqLwpAQCAtNDA5LDYgKzQxMSwxMCBAQAogCQlDMjNFQTIwNzFCQzlFQUJBMDBDOTgwQjcgLyog
Rm9udFdpdGhGZWF0dXJlcy50dGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gRm9udFdpdGhGZWF0dXJlcy50dGY7IHBhdGggPSBm
b250cy9Gb250V2l0aEZlYXR1cmVzLnR0Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFCNzgwODUxMUFGMTY0MzAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLmg7
IHBhdGggPSBtYWMvTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblBy
b3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTW9ja0dl
b2xvY2F0aW9uUHJvdmlkZXIubW07IHBhdGggPSBtYWMvTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzE5MjFCODlBNDQwMERCQjk5
QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFy
ZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dp
enpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dp
enpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzFCMjFCODlBNDQw
MERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFy
ZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDRBNTMxQzIxQjg5QTQ1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9k
U3dpenpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0
aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QzM1Nzg4MjBF
ODQ0MjcwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbTsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRDMzU3ODkyMEU4NDQyNzAwRkEwNzQ4IC8q
IExheW91dFRlc3RTcGVsbENoZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9j
b2NvYS9MYXlvdXRUZXN0U3BlbGxDaGVja2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY0RDQyMzVGMURENTA0NTMwMDY3ODI5MCAvKiBUZXh0SW5wdXRDb250cm9sbGVySU9TLm0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMub2JqYzsgbmFtZSA9IFRleHRJbnB1dENvbnRyb2xsZXJJ
T1MubTsgcGF0aCA9IGlvcy9UZXh0SW5wdXRDb250cm9sbGVySU9TLm07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC04MTcsNiArODIzLDEwIEBACiAJCUY0QjZDMzE4MjBFODQzODIwMDhB
QzIyNSAvKiBjb2NvYSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CisJCQkJRjQ0QTUzMUIyMUI4OUE0NDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAq
LywKKwkJCQlGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5t
bSAqLywKKwkJCQlGNDRBNTMxOTIxQjg5QTQ0MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6
emxlci5oICovLAorCQkJCUY0NEE1MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLm1tICovLAogCQkJCUY0QzM1Nzg5MjBFODQ0MjcwMEZBMDc0OCAvKiBMYXlvdXRU
ZXN0U3BlbGxDaGVja2VyLmggKi8sCiAJCQkJRjRDMzU3ODgyMEU4NDQyNzAwRkEwNzQ4IC8qIExh
eW91dFRlc3RTcGVsbENoZWNrZXIubW0gKi8sCiAJCQkpOwpAQCAtMTA3NSw2ICsxMDg1LDcgQEAK
IAkJCQlBQTVBMTVGMDE2RTE1Q0QwMDBGN0M1NjEgLyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudElP
Uy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMEUyNjE1MEUyREE0QzYwMDFCNkJDMiAvKiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNBMThCMzkwQzlC
MDIxOTAwMTE0MzY5IC8qIEFwcGxlU2NyaXB0Q29udHJvbGxlci5tIGluIFNvdXJjZXMgKi8sCisJ
CQkJRjQ0QTUzMUQyMUI4OUE0RDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1M0NCQjgzMjEzNEU0MkYzMDAxQ0U2QTQgLyogQ3ljbGljUmVkdW5k
YW5jeUNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkZCODRGMTc4QzgwOTMwMDU5RkQ5
NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubSBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QzQ3
MEM5QjVCOTQwMDExNDM2OSAvKiBEdW1wUmVuZGVyVHJlZS5tbSBpbiBTb3VyY2VzICovLApAQCAt
MTA5MCw2ICsxMTAxLDcgQEAKIAkJCQlCQ0Y2QzY1MDBDOThFOUMwMDBBQzA2M0UgLyogR0NDb250
cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjIzMEM5QjAxNEIwMDExNDM2OSAv
KiBHQ0NvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTg1RjZCMjEwNzE0RTA3
MDA3QUEzOTMgLyogSGlzdG9yeURlbGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQ0QTUz
MUUyMUI4OUE1MDAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNl
cyAqLywKIAkJCQkzMTI5NDNGOTFFNzFGMkI0MDAxRUUyQ0MgLyogSU9TTGF5b3V0VGVzdENvbW11
bmljYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNFODhGQTIxNzEyNEQ4QzAwNzM0RkMw
IC8qIEphdmFTY3JpcHRUaHJlYWRpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxOEU3MDYx
RDZCQTAyMzAwMjdFNTQ3IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3
aXp6bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenps
ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yOGRiMTBhNDc5OTYzMGM2NGM1NWQwNzg2YzAwZWUwOTQ4OTE0NWUy
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01l
dGhvZFN3aXp6bGVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSA8b2JqYy9ydW50aW1lLmg+CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+CisKK2NsYXNzIENsYXNzTWV0aG9kU3dpenpsZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKENsYXNzTWV0aG9kU3dpenpsZXIpOworcHVibGljOgorICAgIENsYXNzTWV0aG9kU3dpenps
ZXIoQ2xhc3MsIFNFTCwgSU1QKTsKKyAgICB+Q2xhc3NNZXRob2RTd2l6emxlcigpOworCisgICAg
TWV0aG9kIG1fbWV0aG9kOworICAgIElNUCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb247Cit9Owpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6
bGVyLm1tIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVy
Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIyYjliMDAwMmNjYjM2Mzc4YWI1YzA2YzE0NWJmOTZiYjllZGI3NmYK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0
aG9kU3dpenpsZXIubW0KQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNv
bmZpZy5oIgorI2ltcG9ydCAiQ2xhc3NNZXRob2RTd2l6emxlci5oIgorCitDbGFzc01ldGhvZFN3
aXp6bGVyOjpDbGFzc01ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIG9yaWdpbmFsU2VsZWN0
b3IsIElNUCBpbXBsZW1lbnRhdGlvbikKKyAgICA6IG1fbWV0aG9kKGNsYXNzX2dldENsYXNzTWV0
aG9kKG9iamNfZ2V0TWV0YUNsYXNzKE5TU3RyaW5nRnJvbUNsYXNzKGNscykuVVRGOFN0cmluZyks
IG9yaWdpbmFsU2VsZWN0b3IpKQorICAgICwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKG1ldGhv
ZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgaW1wbGVtZW50YXRpb24pKQoreworfQorCitD
bGFzc01ldGhvZFN3aXp6bGVyOjp+Q2xhc3NNZXRob2RTd2l6emxlcigpCit7CisgICAgbWV0aG9k
X3NldEltcGxlbWVudGF0aW9uKG1fbWV0aG9kLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24pOwor
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9k
U3dpenpsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iOGEwYjBiMThkMTMxZWNjOTliMjZhMzkxYzg5MGY5ZjZj
NmMwNzJlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9J
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMS0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxvYmpjL3J1bnRpbWUuaD4KKyNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KKworY2xhc3MgSW5zdGFuY2VNZXRob2RTd2l6emxlciB7CisgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoSW5zdGFuY2VNZXRob2RTd2l6emxlcik7CitwdWJsaWM6Cisg
ICAgSW5zdGFuY2VNZXRob2RTd2l6emxlcihDbGFzcywgU0VMLCBJTVApOworICAgIH5JbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyKCk7CisKKyAgICBNZXRob2QgbV9tZXRob2Q7CisgICAgSU1QIG1fb3Jp
Z2luYWxJbXBsZW1lbnRhdGlvbjsKK307CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gYi9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzJjNDYxMTQ5
NjEyZTBmN2VhNWQyYWI0YTNmZjNjNTg5NTc2OTBjOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbQpAQCAtMCww
ICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExLTIwMTggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiSW5zdGFuY2VNZXRob2RTd2l6emxlci5oIgorCitJbnN0YW5jZU1ldGhvZFN3aXp6bGVyOjpJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIHNlbGVjdG9yLCBJTVAgaW1wbGVt
ZW50YXRpb24pCisgICAgOiBtX21ldGhvZChjbGFzc19nZXRJbnN0YW5jZU1ldGhvZChjbHMsIHNl
bGVjdG9yKSkKKyAgICAsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbihtZXRob2Rfc2V0SW1wbGVt
ZW50YXRpb24obV9tZXRob2QsIGltcGxlbWVudGF0aW9uKSkKK3sKK30KKworSW5zdGFuY2VNZXRo
b2RTd2l6emxlcjo6fkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKQoreworICAgIG1ldGhvZF9zZXRJ
bXBsZW1lbnRhdGlvbihtX21ldGhvZCwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKTsKK30KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ2xhc3NNZXRob2RTd2l6emxlci5oIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDZjNTI3Nzc4NzczNzRjNDJkZGU1MzNjMTIyYjVkYmY3NzIzYzJmZTIuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlIDxvYmpjL3J1bnRpbWUu
aD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgewotCi1jbGFzcyBDbGFzc01ldGhvZFN3aXp6bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShDbGFzc01ldGhvZFN3aXp6bGVyKTsKLXB1YmxpYzoKLSAgICBDbGFzc01ldGhvZFN3aXp6
bGVyKENsYXNzLCBTRUwsIElNUCk7Ci0gICAgfkNsYXNzTWV0aG9kU3dpenpsZXIoKTsKLQotICAg
IE1ldGhvZCBtX21ldGhvZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9DbGFzc01ldGhvZFN3aXp6bGVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9DbGFz
c01ldGhvZFN3aXp6bGVyLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmNGRmNzNm
OWMxZDg5ZGFhYWEzOTdjMjMwNjE5ZWU3YzE1MmIwMDFlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvQ2xhc3NNZXRob2RT
d2l6emxlci5tbQorKysgL2Rldi9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW1wb3J0ICJjb25maWcuaCIKLSNpbXBvcnQgIkNsYXNzTWV0aG9kU3dpenpsZXIuaCIKLQotbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1DbGFzc01ldGhvZFN3aXp6bGVyOjpDbGFzc01ldGhv
ZFN3aXp6bGVyKENsYXNzIGNscywgU0VMIG9yaWdpbmFsU2VsZWN0b3IsIElNUCBpbXBsZW1lbnRh
dGlvbikKLSAgICA6IG1fbWV0aG9kKGNsYXNzX2dldENsYXNzTWV0aG9kKG9iamNfZ2V0TWV0YUNs
YXNzKE5TU3RyaW5nRnJvbUNsYXNzKGNscykuVVRGOFN0cmluZyksIG9yaWdpbmFsU2VsZWN0b3Ip
KQotICAgICwgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uKG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlv
bihtX21ldGhvZCwgaW1wbGVtZW50YXRpb24pKQotewotfQotCi1DbGFzc01ldGhvZFN3aXp6bGVy
Ojp+Q2xhc3NNZXRob2RTd2l6emxlcigpCi17Ci0gICAgbWV0aG9kX3NldEltcGxlbWVudGF0aW9u
KG1fbWV0aG9kLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24pOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDZkN2ZhMzdkOWNjZWY0
OThlMzI4MzhjMGNkNjM3MTU4NjJiMDQ0OWQuLmYyZTE0YjhmNzM1MDQyMTNhZTY4NzY3OTAxMjhi
YzlhNDIyY2U3MjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yODcsNyArMjg3LDYgQEAK
IAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VFRkQ0MDBB
Q0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJNUM2OUJERDUxRjgyQTdFRjAwMEY0
RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8qIEph
dmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovOyB9OwogCQk1QzcxNDg5NTIxMjNBNDBBMDBG
REUzQzUgLyogV0tXZWJzaXRlRGF0YXN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0
ZURhdGFzdG9yZS5tbSAqLzsgfTsKLQkJNUM3MjZENkYxRDNFRTA2RTAwQzVFMUExIC8qIEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzcyNkQ2RTFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6
emxlci5tbSAqLzsgfTsKIAkJNUM3OTY0MTAxRUIwMjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZp
ZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
Nzk2NDBGMUVCMDI2OUIwMDc1RDc0QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgKi87IH07CiAJCTVD
N0M3NENCMUZCNTI5QkEwMDJGOUFCRSAvKiBXZWJWaWV3U2NoZWR1bGVJblJ1bkxvb3AubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdDNzRDQTFGQjUy
OEQ0MDAyRjlBQkUgLyogV2ViVmlld1NjaGVkdWxlSW5SdW5Mb29wLm1tICovOyB9OwogCQk1Qzgz
OEY3RjFEQjA0RjkwMDA4Mjg1OEYgLyogTG9hZEludmFsaWRVUkxSZXF1ZXN0Lm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTc5MDFGQUUxQ0FGMTM3MTAw
RUQ2NEY5IC8qIExvYWRJbnZhbGlkVVJMUmVxdWVzdC5tbSAqLzsgfTsKQEAgLTgyOCw2ICs4Mjcs
OCBAQAogCQlGNDNFM0JDMTIwREFEQkM1MDBBNEU3RUQgLyogZml4ZWQtbmF2LWJhci5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0M0Uz
QkMwMjBEQURCODAwMEE0RTdFRCAvKiBmaXhlZC1uYXYtYmFyLmh0bWwgKi87IH07CiAJCUY0NDI4
NTFEMjE0MERGMjkwMENDREEyMiAvKiBOU0ZvbnRQYW5lbFRlc3RpbmcubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQyODUxQzIxNDBERjI5MDBDQ0RB
MjIgLyogTlNGb250UGFuZWxUZXN0aW5nLm1tICovOyB9OwogCQlGNDQ1MUM3NjFFQjhGRDg5MDAy
MEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1MUM3NTFFQjhGRDdD
MDAyMEM1REEgLyogdHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJ
RjQ0QTUzMTEyMUI4OTkwMzAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMxMDIxQjg5
NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKKwkJRjQ0QTUz
MTIyMUI4OTkwQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMwRTIxQjg5NzY5MDBEQkI5
OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ0Qzc5RkYyMEY5RTg3MTAw
MTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEM3OUZFMjBGOUU4NzEwMDE0NDc4QyAvKiBQYXJz
ZXJZaWVsZFRva2VuVGVzdHMubW0gKi87IH07CiAJCUY0NEM3QTAwMjBGOUVFQkYwMDE0NDc4QyAv
KiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ0Qzc5RkIyMEY5RTUwQzAwMTQ0NzhDIC8qIFBhcnNlcllpZWxk
VG9rZW5QbHVnSW4ubW0gKi87IH07CiAJCUY0NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0ZXh0
LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0QzdBMDQyMEZBQUUzMjAwMTQ0NzhDIC8qIHRleHQt
d2l0aC1kZWZlcnJlZC1zY3JpcHQuaHRtbCAqLzsgfTsKQEAgLTgzNyw3ICs4MzgsNiBAQAogCQlG
NDUwMzNGNTIwNkJFQzk1MDA5MzUxQ0UgLyogVGV4dEF1dG9zaXppbmdCb29zdC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NTAzM0Y0MjA2QkVDOTUw
MDkzNTFDRSAvKiBUZXh0QXV0b3NpemluZ0Jvb3N0Lm1tICovOyB9OwogCQlGNDUxMkUxMzFGNjBD
NDQ2MDBCQjM2OUUgLyogRGF0YVRyYW5zZmVySXRlbS1nZXRBc0VudHJ5Lmh0bWwgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MTJFMTIxRjYw
QzQzNDAwQkIzNjlFIC8qIERhdGFUcmFuc2Zlckl0ZW0tZ2V0QXNFbnRyeS5odG1sICovOyB9Owog
CQlGNDUxN0I2NzIwNTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0NvbnRyb2xsZXIubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUxN0I2NjIw
NTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0NvbnRyb2xsZXIubW0gKi87IH07Ci0JCUY0
NTE3QjdGMjA1NTEwMUIwMEMyNjcyMSAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ1MTdCNjkyMDU0RTBBQzAw
QzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi87IH07CiAJCUY0NTM4RUY3MUU4NDcz
RTYwMEI1Qzk1MyAvKiBsYXJnZS1yZWQtc3F1YXJlLnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDUzOEVGMDFFODQ2QjQxMDBCNUM5NTMg
LyogbGFyZ2UtcmVkLXNxdWFyZS5wbmcgKi87IH07CiAJCUY0NTZBQjFDMjEzRURCQTMwMENCMkNF
RiAvKiBGb250TWFuYWdlclRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ1NkFCMUIyMTNFREJBMzAwQ0IyQ0VGIC8qIEZvbnRNYW5hZ2VyVGVz
dHMubW0gKi87IH07CiAJCUY0NTdBOUI4MjAyRDVDREMwMEY3RTlENSAvKiBQYXN0ZU1peGVkQ29u
dGVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
NTdBOUI2MjAyRDVDREMwMEY3RTlENSAvKiBQYXN0ZU1peGVkQ29udGVudC5tbSAqLzsgfTsKQEAg
LTE2MzAsOCArMTYzMCw2IEBACiAJCTVDNUU2MzNEMUQwQjY3OTQwMDg1QTAyNSAvKiBVbmlxdWVS
ZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVW5pcXVlUmVmLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRC
IC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzE0ODk0MjEyM0E0MDcwMEZERTNDNSAvKiBXS1dlYnNp
dGVEYXRhc3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
S1dlYnNpdGVEYXRhc3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTVDNzI2
RDZEMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9
IGNvY29hL0luc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNUM3MjZENkUxRDNFRTA2ODAwQzVFMUExIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLm1tOyBwYXRoID0gY29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3OTY0MEYxRUIwMjY5QjAwNzVENzRDIC8qIEV2
ZW50TW9kaWZpZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV2
ZW50TW9kaWZpZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3Qzc0Q0Ex
RkI1MjhENDAwMkY5QUJFIC8qIFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdTY2hlZHVsZUluUnVuTG9vcC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM4QkM3OTgyMThDRjNFOTAwODEzODg2
IC8qIE5ldHdvcmtQcm9jZXNzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gTmV0d29ya1Byb2Nlc3MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
MTI1LDYgKzIxMjMsMTAgQEAKIAkJRjQ0Mjg1MUIyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9udFBh
bmVsVGVzdGluZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOU0ZvbnRQYW5lbFRlc3RpbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0Mjg1MUMyMTQwREYyOTAwQ0NEQTIyIC8qIE5TRm9u
dFBhbmVsVGVzdGluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5TRm9udFBhbmVsVGVzdGlu
Zy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0NTFDNzUxRUI4RkQ3QzAwMjBD
NURBIC8qIHR3by1wYXJhZ3JhcGgtY29udGVudGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
Lmh0bWw7IHBhdGggPSAidHdvLXBhcmFncmFwaC1jb250ZW50ZWRpdGFibGUuaHRtbCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzBEMjFCODk3NjkwMERCQjk5QyAvKiBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IElu
c3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2Ev
SW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NDRBNTMwRTIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIubW07
IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenpsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzBGMjFCODk3NjkwMERCQjk5QyAv
KiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2Ev
Q2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDRB
NTMxMDIxQjg5NzY5MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIu
bW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9kU3dpenps
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEM3OUZCMjBGOUU1MEMwMDE0
NDc4QyAvKiBQYXJzZXJZaWVsZFRva2VuUGx1Z0luLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UGFyc2VyWWllbGRUb2tlblBsdWdJbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0Qzc5RkQyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0cy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBQYXJzZXJZaWVsZFRva2VuVGVzdHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ0Qzc5RkUyMEY5RTg3MTAwMTQ0NzhDIC8qIFBhcnNlcllpZWxkVG9rZW5UZXN0
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBhcnNlcllpZWxkVG9rZW5UZXN0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMzcsOCArMjEzOSw2IEBACiAJCUY0NTEyRTEy
MUY2MEM0MzQwMEJCMzY5RSAvKiBEYXRhVHJhbnNmZXJJdGVtLWdldEFzRW50cnkuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJEYXRhVHJhbnNmZXJJdGVtLWdldEFzRW50cnkuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTE3QjY1MjA1NEM0OTUwMEMyNjcy
MSAvKiBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXN0V0tXZWJW
aWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDUxN0I2NjIw
NTRDNDk1MDBDMjY3MjEgLyogVGVzdFdLV2ViVmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBUZXN0V0tXZWJWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRjQ1MTdCNjgyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenps
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGNDUxN0I2OTIwNTRFMEFDMDBDMjY3MjEgLyogQ2xhc3NNZXRob2RT
d2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsYXNzTWV0aG9kU3dpenpsZXIubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTM4RUYwMUU4NDZCNDEwMEI1Qzk1MyAv
KiBsYXJnZS1yZWQtc3F1YXJlLnBuZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IGltYWdlLnBuZzsgcGF0aCA9ICJsYXJnZS1yZWQtc3F1YXJlLnBuZyI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NTZBQjFCMjEzRURCQTMwMENCMkNFRiAv
KiBGb250TWFuYWdlclRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRm9udE1hbmFnZXJU
ZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ1N0E5QjMyMDJENTM1MzAw
RjdFOUQ1IC8qIERhdGFUcmFuc2Zlci5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
RGF0YVRyYW5zZmVyLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzI5LDE0
ICsyMzI5LDE0IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCUEx
M0VCQjQ0MUI4NzMzMkIwMDA5NzExMCAvKiBXZWJQcm9jZXNzUGx1Z0luICovLAotCQkJCUY0NTE3
QjY4MjA1NEUwQUMwMEMyNjcyMSAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8sCi0JCQkJRjQ1
MTdCNjkyMDU0RTBBQzAwQzI2NzIxIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gKi8sCisJCQkJ
RjQ0QTUzMEYyMUI4OTc2OTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLywKKwkJ
CQlGNDRBNTMwRTIxQjg5NzY5MDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLywK
IAkJCQlGNDdERkIyNzIxQTg4NUU3MDAwMjFGQjYgLyogRGF0YURldGVjdG9yc0NvcmVTUEkuaCAq
LywKIAkJCQlGNDYxMjhCNDIxMUM4NjFBMDBEOUZBREIgLyogRHJhZ0FuZERyb3BTaW11bGF0b3Iu
aCAqLywKIAkJCQlGNDREMDY0ODFGMzk2MkUzMDAxQTBFMjkgLyogRWRpdGluZ1Rlc3RIYXJuZXNz
LmggKi8sCiAJCQkJRjQ0RDA2NDkxRjM5NjJFMzAwMUEwRTI5IC8qIEVkaXRpbmdUZXN0SGFybmVz
cy5tbSAqLywKLQkJCQk1QzcyNkQ2RDFEM0VFMDY4MDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RT
d2l6emxlci5oICovLAotCQkJCTVDNzI2RDZFMUQzRUUwNjgwMEM1RTFBMSAvKiBJbnN0YW5jZU1l
dGhvZFN3aXp6bGVyLm1tICovLAorCQkJCUY0NEE1MzBEMjFCODk3NjkwMERCQjk5QyAvKiBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8sCisJCQkJRjQ0QTUzMTAyMUI4OTc2OTAwREJCOTlDIC8q
IEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gKi8sCiAJCQkJMEYxMzlFNzIxQTQyM0EyQjAwRjU5
MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gKi8sCiAJCQkJMkQxQzA0QTUxRDc2Mjk4
QjAwMEE2ODE2IC8qIFRlc3ROYXZpZ2F0aW9uRGVsZWdhdGUuaCAqLywKIAkJCQkyRDFDMDRBNjFE
NzYyOThCMDAwQTY4MTYgLyogVGVzdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbSAqLywKQEAgLTM4NDQs
NyArMzg0NCw3IEBACiAJCQkJNTczMDNCQ0IyMDA4Mzc2NTAwMzU1OTY1IC8qIENCT1JSZWFkZXJU
ZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkM5MjAwODI0RDMwMDM1NTk2NSAvKiBD
Qk9SVmFsdWVUZXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3MzAzQkNBMjAwODJDMDEwMDM1
NTk2NSAvKiBDQk9SV3JpdGVyVGVzdC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGNDUxN0I3RjIw
NTUxMDFCMDBDMjY3MjEgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAor
CQkJCUY0NEE1MzEyMjFCODk5MEEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTYxQTQxMUFFNjAwNDQ3QzRDIC8qIENsb3NlRnJvbVdp
dGhpbkNyZWF0ZVBhZ2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjcxQTQxMUE3RTAw
NDQ3QzRDIC8qIENsb3NlTmV3V2luZG93SW5OYXZpZ2F0aW9uUG9saWN5RGVsZWdhdGUubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VFNTFBNDExQUU2MDA0NDdDNEMgLyogQ2xvc2VUaGVuVGVy
bWluYXRlLmNwcCBpbiBTb3VyY2VzICovLApAQCAtMzk4Nyw4ICszOTg3LDggQEAKIAkJCQk3Q0NF
N0VGRDFBNDExQUU2MDA0NDdDNEMgLyogSW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJE
YXRhQ2FsbGJhY2tXaW5zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdDODNFMEI4MUQwQTY0QkQw
MEZFQkNGMyAvKiBJbmplY3RlZEJ1bmRsZU1ha2VBbGxTaGFkb3dSb290c09wZW4uY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFQzMxQTQxMUE3RTAwNDQ3QzRDIC8qIEluc3BlY3RvckJhci5t
bSBpbiBTb3VyY2VzICovLAorCQkJCUY0NEE1MzExMjFCODk5MDMwMERCQjk5QyAvKiBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFREExQTQxMUE4NzAw
NDQ3QzRDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKLQkJCQk1
QzcyNkQ2RjFEM0VFMDZFMDBDNUUxQTEgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTJEQjAyMzJGMUU0RTg3MTgwMDcwNzEyMyAvKiBJbnRlcmFjdGlvbkRl
YWRsb2NrQWZ0ZXJDcmFzaC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBOTA5QTgxMUQ4Nzc0ODAw
MDdFMTBGOCAvKiBJbnRQb2ludC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QTkwOUE4MjFEODc3
NDgwMDA3RTEwRjggLyogSW50UmVjdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlQ2xlYXIubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0xvY2FsU3RvcmFnZUNsZWFy
Lm1tCmluZGV4IDE2YWJkNjBlZDY0MjllNGZhNjYyM2JiZTY5NmQyOGQwYjFjMjM2OWEuLmIzN2M3
Y2IyNjg4YTJhMjhhMGY0MjRmMDIwOGRmMzU4MTZhNmQwNjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvTG9jYWxTdG9yYWdlQ2xlYXIubW0KKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Mb2NhbFN0b3JhZ2VDbGVhci5t
bQpAQCAtMTMwLDcgKzEzMCw3IEBAIFRFU1QoV0tXZWJWaWV3LCBDbGVhckFwcENhY2hlKQogewog
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgLy8gT24gaU9TLCBNb2JpbGVTYWZhcmkgYW5k
IHdlYmJvb2ttYXJrc2QgbmVlZCB0byBzaGFyZSB0aGUgc2FtZSBBcHBDYWNoZSBkaXJlY3Rvcnku
Ci0gICAgVGVzdFdlYktpdEFQSTo6SW5zdGFuY2VNZXRob2RTd2l6emxlciBzd2l6emxlKFtOU0J1
bmRsZSBjbGFzc10sIEBzZWxlY3RvcihidW5kbGVJZGVudGlmaWVyKSwgcmVpbnRlcnByZXRfY2Fz
dDxJTVA+KHN3aXp6bGVkQnVuZGxlSWRlbnRpZmllcldlYkJvb2ttYXJrc0QpKTsKKyAgICBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyIHN3aXp6bGUoW05TQnVuZGxlIGNsYXNzXSwgQHNlbGVjdG9yKGJ1
bmRsZUlkZW50aWZpZXIpLCByZWludGVycHJldF9jYXN0PElNUD4oc3dpenpsZWRCdW5kbGVJZGVu
dGlmaWVyV2ViQm9va21hcmtzRCkpOwogI2VuZGlmCiAKICAgICAvLyBTdGFydCB3aXRoIGEgY2xl
YW4gc2xhdGUgb2YgV2Vic2l0ZURhdGEuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1NhZmVCcm93c2luZy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvU2FmZUJyb3dzaW5nLm1tCmluZGV4IGZjMmY5YjA5NGMwZDVhM2Zi
Mzc5MjgwNWRkMzhlNjY4ZWM2NmNjYzkuLjU0Mjg0Y2I2MzA0NjljNGNmNDg3MzI1MTUyZWY2M2Q5
NTk4ZDVmMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvU2FmZUJyb3dzaW5nLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvU2FmZUJyb3dzaW5nLm1tCkBAIC0xNDUsNyArMTQ1LDcgQEAgc3RhdGljIE5TVVJMICpy
ZXNvdXJjZVVSTChOU1N0cmluZyAqcmVzb3VyY2UpCiAKIFRFU1QoU2FmZUJyb3dzaW5nLCBQcmVm
ZXJlbmNlKQogewotICAgIFRlc3RXZWJLaXRBUEk6OkNsYXNzTWV0aG9kU3dpenpsZXIgc3dpenps
ZXIob2JqY19nZXRDbGFzcygiU1NCTG9va3VwQ29udGV4dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9v
a3VwQ29udGV4dCksIFtUZXN0TG9va3VwQ29udGV4dCBtZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0
b3Ioc2hhcmVkTG9va3VwQ29udGV4dCldKTsKKyAgICBDbGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6
bGVyKG9iamNfZ2V0Q2xhc3MoIlNTQkxvb2t1cENvbnRleHQiKSwgQHNlbGVjdG9yKHNoYXJlZExv
b2t1cENvbnRleHQpLCBbVGVzdExvb2t1cENvbnRleHQgbWV0aG9kRm9yU2VsZWN0b3I6QHNlbGVj
dG9yKHNoYXJlZExvb2t1cENvbnRleHQpXSk7CiAKICAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZh
bHNlOwogICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtUZXN0TmF2aWdhdGlvbkRlbGVnYXRl
IG5ld10pOwpAQCAtMTY4LDcgKzE2OCw3IEBAIFRFU1QoU2FmZUJyb3dzaW5nLCBQcmVmZXJlbmNl
KQogCiBzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gc2FmZUJyb3dzaW5nVmlldygpCiB7Ci0g
ICAgVGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RTd2l6emxlciBzd2l6emxlcihvYmpjX2dldENs
YXNzKCJTU0JMb29rdXBDb250ZXh0IiksIEBzZWxlY3RvcihzaGFyZWRMb29rdXBDb250ZXh0KSwg
W1Rlc3RMb29rdXBDb250ZXh0IG1ldGhvZEZvclNlbGVjdG9yOkBzZWxlY3RvcihzaGFyZWRMb29r
dXBDb250ZXh0KV0pOworICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIob2JqY19nZXRD
bGFzcygiU1NCTG9va3VwQ29udGV4dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCks
IFtUZXN0TG9va3VwQ29udGV4dCBtZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0b3Ioc2hhcmVkTG9v
a3VwQ29udGV4dCldKTsKIAogICAgIHN0YXRpYyBhdXRvIGRlbGVnYXRlID0gYWRvcHROUyhbU2Fm
ZUJyb3dzaW5nTmF2aWdhdGlvbkRlbGVnYXRlIG5ld10pOwogICAgIGF1dG8gd2ViVmlldyA9IGFk
b3B0TlMoW1dLV2ViVmlldyBuZXddKTsKQEAgLTI2OSw3ICsyNjksNyBAQCBAZW5kCiAKIFRFU1Qo
U2FmZUJyb3dzaW5nLCBNaXNzaW5nRnJhbWV3b3JrKQogewotICAgIFRlc3RXZWJLaXRBUEk6OkNs
YXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIob2JqY19nZXRDbGFzcygiU1NCTG9va3VwQ29udGV4
dCIpLCBAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCksIFtOdWxsTG9va3VwQ29udGV4dCBt
ZXRob2RGb3JTZWxlY3RvcjpAc2VsZWN0b3Ioc2hhcmVkTG9va3VwQ29udGV4dCldKTsKKyAgICBD
bGFzc01ldGhvZFN3aXp6bGVyIHN3aXp6bGVyKG9iamNfZ2V0Q2xhc3MoIlNTQkxvb2t1cENvbnRl
eHQiKSwgQHNlbGVjdG9yKHNoYXJlZExvb2t1cENvbnRleHQpLCBbTnVsbExvb2t1cENvbnRleHQg
bWV0aG9kRm9yU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJlZExvb2t1cENvbnRleHQpXSk7CiAgICAg
YXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCA4MDAsIDYwMCldKTsKICAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJzaW1wbGUiXTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJWaWV3RGVmYXVsdE5hdmlnYXRpb25E
ZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tXZWJW
aWV3RGVmYXVsdE5hdmlnYXRpb25EZWxlZ2F0ZS5tbQppbmRleCAyYTMwNjhjMGE2YjA0OTM0MGUw
YmEwMDY1Y2JiZTY4NjRkMGMwNGVlLi41OGM1NmNiODNhYmMyNTRmNzYxMjUzMzJjNmM2MWRjYmIw
OTFiMDFmIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLV2ViVmlld0RlZmF1bHROYXZpZ2F0aW9uRGVsZWdhdGUubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1dlYlZpZXdEZWZhdWx0TmF2aWdhdGlvbkRlbGVn
YXRlLm1tCkBAIC00NSw3ICs0NSw3IEBAIHN0YXRpYyB2b2lkIG5ld09wZW5VUkwoaWQgc2VsZiwg
U0VMIF9jbWQsIE5TVVJMKiB2YWx1ZSkKIAogVEVTVChXS1dlYlZpZXcsIERlZmF1bHROYXZpZ2F0
aW9uRGVsZWdhdGUpCiB7Ci0gICAgVGVzdFdlYktpdEFQSTo6SW5zdGFuY2VNZXRob2RTd2l6emxl
ciBzd2l6emxlKFtOU1dvcmtzcGFjZSBjbGFzc10sIEBzZWxlY3RvcihvcGVuVVJMOiksIHJlaW50
ZXJwcmV0X2Nhc3Q8SU1QPihuZXdPcGVuVVJMKSk7CisgICAgSW5zdGFuY2VNZXRob2RTd2l6emxl
ciBzd2l6emxlKFtOU1dvcmtzcGFjZSBjbGFzc10sIEBzZWxlY3RvcihvcGVuVVJMOiksIHJlaW50
ZXJwcmV0X2Nhc3Q8SU1QPihuZXdPcGVuVVJMKSk7CiAKICAgICBXS1dlYlZpZXcgKndlYlZpZXcg
PSBbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwg
NjAwKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZlMzFhOGFhOTZlMDc1
ZGExZDgxZGU1NjhjODE1MTVjMDgwMmI3NjkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJp
Z2h0IChDKSAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
Ci0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQot
I2lmbmRlZiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyX2gKLSNkZWZpbmUgSW5zdGFuY2VNZXRob2RT
d2l6emxlcl9oCi0KLSNpbmNsdWRlIDxvYmpjL3J1bnRpbWUuaD4KLSNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KLQotbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewotCi1jbGFzcyBJbnN0YW5j
ZU1ldGhvZFN3aXp6bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyKTsKLXB1YmxpYzoKLSAgICBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyKENsYXNzLCBT
RUwsIElNUCk7Ci0gICAgfkluc3RhbmNlTWV0aG9kU3dpenpsZXIoKTsKLQotICAgIE1ldGhvZCBt
X21ldGhvZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwotfTsKLQotfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQotCi0jZW5kaWYgLy8gSW5zdGFuY2VNZXRob2RTd2l6emxl
cl9oCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9k
U3dpenpsZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0luc3RhbmNlTWV0aG9kU3dp
enpsZXIubW0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDRjMzdkYTRiOGRjNTBmYjIx
ZjQ1YzRmM2Y3ZDZmMDE3MzdlYWEwZTkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3
aXp6bGVyLm1tCisrKyAvZGV2L251bGwKQEAgLTEsNDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmgiCi0K
LW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotSW5zdGFuY2VNZXRob2RTd2l6emxlcjo6SW5z
dGFuY2VNZXRob2RTd2l6emxlcihDbGFzcyBjbHMsIFNFTCBzZWxlY3RvciwgSU1QIGltcGxlbWVu
dGF0aW9uKQotICAgIDogbV9tZXRob2QoY2xhc3NfZ2V0SW5zdGFuY2VNZXRob2QoY2xzLCBzZWxl
Y3RvcikpCi0gICAgLCBtX29yaWdpbmFsSW1wbGVtZW50YXRpb24obWV0aG9kX3NldEltcGxlbWVu
dGF0aW9uKG1fbWV0aG9kLCBpbXBsZW1lbnRhdGlvbikpCi17Ci19Ci0KLUluc3RhbmNlTWV0aG9k
U3dpenpsZXI6On5JbnN0YW5jZU1ldGhvZFN3aXp6bGVyKCkKLXsKLSAgICBtZXRob2Rfc2V0SW1w
bGVtZW50YXRpb24obV9tZXRob2QsIG1fb3JpZ2luYWxJbXBsZW1lbnRhdGlvbik7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvVGVzdFdLV2ViVmlldy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvVGVz
dFdLV2ViVmlldy5tbQppbmRleCBlOGVhZGY4NmQzZTgzY2ZlODQ0MWYyMDdiZmY0NDNiMTlkYjk1
MTZlLi41NDQxNmJmYTgxOTc1OTNiNjIyNGM1YmU2NmE4OWU1MjE5NGQwMTUzIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL1Rlc3RXS1dlYlZpZXcubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9UZXN0V0tXZWJWaWV3Lm1tCkBAIC0yNTMsNyArMjUzLDcgQEAg
QGltcGxlbWVudGF0aW9uIFRlc3RXS1dlYlZpZXcgewogICAgIFJldGFpblB0cjxUZXN0V0tXZWJW
aWV3SG9zdFdpbmRvdz4gX2hvc3RXaW5kb3c7CiAgICAgUmV0YWluUHRyPFRlc3RNZXNzYWdlSGFu
ZGxlcj4gX3Rlc3RIYW5kbGVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFRlc3RXZWJLaXRBUEk6OkNsYXNzTWV0aG9kU3dpenpsZXI+IF9zaGFyZWRDYWxs
b3V0QmFyU3dpenpsZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPENsYXNzTWV0aG9kU3dpenpsZXI+
IF9zaGFyZWRDYWxsb3V0QmFyU3dpenpsZXI7CiAjZW5kaWYKIH0KIApAQCAtMjg4LDcgKzI4OCw3
IEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJhbWUgY29uZmlndXJh
dGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2UgPGh0dHBzOi8vd2Via2l0
Lm9yZy9iLzE3NTIwND4gaXMgZml4ZWQuCi0gICAgX3NoYXJlZENhbGxvdXRCYXJTd2l6emxlciA9
IHN0ZDo6bWFrZV91bmlxdWU8VGVzdFdlYktpdEFQSTo6Q2xhc3NNZXRob2RTd2l6emxlcj4oW1VJ
Q2FsbG91dEJhciBjbGFzc10sIEBzZWxlY3RvcihzaGFyZWRDYWxsb3V0QmFyKSwgcmVpbnRlcnBy
ZXRfY2FzdDxJTVA+KHN1cHByZXNzVUlDYWxsb3V0QmFyKSk7CisgICAgX3NoYXJlZENhbGxvdXRC
YXJTd2l6emxlciA9IHN0ZDo6bWFrZV91bmlxdWU8Q2xhc3NNZXRob2RTd2l6emxlcj4oW1VJQ2Fs
bG91dEJhciBjbGFzc10sIEBzZWxlY3RvcihzaGFyZWRDYWxsb3V0QmFyKSwgcmVpbnRlcnByZXRf
Y2FzdDxJTVA+KHN1cHByZXNzVUlDYWxsb3V0QmFyKSk7CiAjZW5kaWYKIAogICAgIHJldHVybiBz
ZWxmOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdEZvbnRPcHRpb25z
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9tYWMvVGVzdEZvbnRPcHRpb25zLm1tCmluZGV4IDMw
NjZjNmU0MmQ1NzA4NTk2OTBkM2JlZjA1ODYxNWRmODY3ZDM3YjQuLjExMTU3ZTRlMTEwZGQ3NmEw
OWQwMjJkNDUxMGI2M2U1MDRmY2E2YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
bWFjL1Rlc3RGb250T3B0aW9ucy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL21hYy9UZXN0
Rm9udE9wdGlvbnMubW0KQEAgLTM0LDggKzM0LDYgQEAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIu
aD4KICNpbXBvcnQgPHd0Zi9TZXRGb3JTY29wZS5oPgogCi11c2luZyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSTsKLQogc3RhdGljIFRlc3RGb250T3B0aW9ucyAqc2hhcmVkRm9udE9wdGlvbnNGb3JU
ZXN0aW5nKCkKIHsKICAgICByZXR1cm4gVGVzdEZvbnRPcHRpb25zLnNoYXJlZEluc3RhbmNlOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5oCmluZGV4IGIzNzY0ZTZjZTRiMDI5
MzU4NDFhODNmYTZjMGEwODhmNjhlZGVlNTUuLmUzMWIyZWI0NDkxMGE1OWYxZmI2MWFmMWFmYzNm
YmU1NjhkMzliMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRy
b2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmgKQEAg
LTM5LDkgKzM5LDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CiAKICNpZiBQ
TEFURk9STShDT0NPQSkKLQotI2luY2x1ZGUgPG9iamMvcnVudGltZS5oPgotCisjaW5jbHVkZSAi
Q2xhc3NNZXRob2RTd2l6emxlci5oIgogI2VuZGlmCiAKIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CkBA
IC01NiwxOSArNTQsNiBAQCBjbGFzcyBFdmVudFNlbmRlclByb3h5Owogc3RydWN0IFRlc3RDb21t
YW5kOwogc3RydWN0IFRlc3RPcHRpb25zOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0vLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgc2hhcmVkIHdpdGggVGVzdFdlYktpdEFQSS4KLWNsYXNzIENsYXNz
TWV0aG9kU3dpenpsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENsYXNzTWV0aG9kU3dp
enpsZXIpOwotcHVibGljOgotICAgIENsYXNzTWV0aG9kU3dpenpsZXIoQ2xhc3MsIFNFTCwgSU1Q
KTsKLSAgICB+Q2xhc3NNZXRob2RTd2l6emxlcigpOwotICAgIAotICAgIE1ldGhvZCBtX21ldGhv
ZDsKLSAgICBJTVAgbV9vcmlnaW5hbEltcGxlbWVudGF0aW9uOwotfTsKLSNlbmRpZiAvLyBQTEFU
Rk9STShDT0NPQSkKLQogY2xhc3MgQXN5bmNUYXNrIHsKIHB1YmxpYzoKICAgICBBc3luY1Rhc2so
V1RGOjpGdW5jdGlvbjx2b2lkICgpPiYmIHRhc2ssIFdURjo6U2Vjb25kcyB0aW1lb3V0KQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5u
ZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2NGQ2YTAyMTlmMzMzY2Q2YjdhMDVk
ZTY3Y2M1M2M2MDRiOWViOWFiLi5hNWI1NTZiZWJlMTE4MWM5ZmYzMTI3MWMyZjAzM2UzM2E2NWI0
ZTczIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1dl
YktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM1LDYgKzEzNSw4
IEBACiAJCUUxMzJBQTNEMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRXZlbnQu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTMyQUEz
QjE3Q0U3NzZGMDA2MTFERjAgLyogV2ViS2l0VGVzdFJ1bm5lckV2ZW50Lm1tICovOyB9OwogCQlF
MUM2NDJDMzE3Q0JDQzczMDBENjZBM0MgLyogUG9zZUFzQ2xhc3MubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUM2NDJDMTE3Q0JDQzczMDBENjZBM0Mg
LyogUG9zZUFzQ2xhc3MubW0gKi87IH07CiAJCUUxQzY0MkM2MTdDQkNENEMwMEQ2NkEzQyAvKiBX
ZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkM0MTdDQkNENEMwMEQ2NkEzQyAvKiBXZWJLaXRUZXN0
UnVubmVyUGFzdGVib2FyZC5tbSAqLzsgfTsKKwkJRjQ0QTUzMTcyMUI4OTlFMjAwREJCOTlDIC8q
IENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6
emxlci5tbSAqLzsgfTsKKwkJRjQ0QTUzMTgyMUI4OTlFNTAwREJCOTlDIC8qIEluc3RhbmNlTWV0
aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5t
bSAqLzsgfTsKIAkJRjQ2MjQwQjEyMTcwMTNFNTAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxl
ckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjQ2MjQwQUYyMTcwMTI4MzAwOTE3QjE2IC8qIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tICov
OyB9OwogCQlGNEMzNTc4QzIwRTg0NDQ2MDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzM1
NzhBMjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovOyB9Owog
LyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCkBAIC0zNzksNiArMzgxLDEwIEBACiAJCUUx
QzY0MkMyMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBQb3NlQXNDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9h
cmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRUZXN0
UnVubmVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQy
QzUxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzEzMjFCODk5REEwMERCQjk5QyAv
KiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQv
Y29jb2EvSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNDRBNTMxNDIxQjg5OURBMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IENsYXNzTWV0aG9kU3dpenps
ZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0NsYXNzTWV0aG9kU3dpenps
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NEE1MzE1MjFCODk5REEwMERC
Qjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
bmFtZSA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQv
Y29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IEluc3RhbmNlTWV0aG9kU3dp
enpsZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0luc3RhbmNlTWV0aG9k
U3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NjI0MEFGMjE3MDEy
ODMwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNEMzNTc4QTIwRTg0NDQwMDBGQTA3NDggLyogTGF5b3V0VGVzdFNwZWxsQ2hlY2tl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IExheW91dFRlc3RT
cGVsbENoZWNrZXIubW07IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL2NvY29hL0xheW91dFRl
c3RTcGVsbENoZWNrZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QzM1NzhC
MjBFODQ0NDAwMEZBMDc0OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExheW91dFRlc3RTcGVsbENoZWNrZXIuaDsgcGF0aCA9IC4u
L1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvTGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQxLDYgKzg0NywxMCBAQAogCQlGNEI2QzMxNjIwRTg0
MzY5MDA4QUMyMjUgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUY0NEE1MzE1MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6
bGVyLmggKi8sCisJCQkJRjQ0QTUzMTQyMUI4OTlEQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dp
enpsZXIubW0gKi8sCisJCQkJRjQ0QTUzMTMyMUI4OTlEQTAwREJCOTlDIC8qIEluc3RhbmNlTWV0
aG9kU3dpenpsZXIuaCAqLywKKwkJCQlGNDRBNTMxNjIxQjg5OURBMDBEQkI5OUMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSAqLywKIAkJCQlGNEMzNTc4QjIwRTg0NDQwMDBGQTA3NDggLyog
TGF5b3V0VGVzdFNwZWxsQ2hlY2tlci5oICovLAogCQkJCUY0QzM1NzhBMjBFODQ0NDAwMEZBMDc0
OCAvKiBMYXlvdXRUZXN0U3BlbGxDaGVja2VyLm1tICovLAogCQkJKTsKQEAgLTEwNjIsMTAgKzEw
NzIsMTIgQEAKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwogCQkJYnVpbGRBY3Rpb25N
YXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAorCQkJCUY0NEE1MzE3MjFCODk5RTIwMERC
Qjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEw
M0ExQjlBRTBEQTAwNzQ0QUVCIC8qIENyYXNoUmVwb3J0ZXJJbmZvLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQTE4NTEwM0UxQjlBRTEyMjAwNzQ0QUVCIC8qIEN5Y2xpY1JlZHVuZGFuY3lDaGVjay5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyREQ0QzQ5QjFENkU3RDNCMDAwNzM3OUMgLyogRXZlbnRT
ZXJpYWxpemVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwM0YxQjlBRTEyOTAwNzQ0
QUVCIC8qIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUY0
NEE1MzE4MjFCODk5RTUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzFEQThBM0QxRTcyMDVDQzAwRTFERjJGIC8qIElPU0xheW91dFRlc3RD
b21tdW5pY2F0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNCNTUxMUJBNzg5NjgwMDRC
M0VGNCAvKiBKU1VJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjE4
RTcxODFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29h
Lm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1t
CmluZGV4IDIyNzQyNzAzOTZiYmU1ZTUzYjBiOTMyNTI2YTg2OTRkMWMwN2NmNDUuLjY5YTRhYzYy
YWUxNjVjMzU4OTViZjA3YjIxNjQ0OGVlMmVlOGE4NDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAgLTIwNSwxNyArMjA1
LDYgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBkb25lLCBX
VEY6OlNlY29uZHMgdGltZW91dCkKICAgICAgICAgW1tOU1J1bkxvb3AgY3VycmVudFJ1bkxvb3Bd
IHJ1bk1vZGU6TlNEZWZhdWx0UnVuTG9vcE1vZGUgYmVmb3JlRGF0ZTplbmREYXRlXTsKIH0KIAot
Q2xhc3NNZXRob2RTd2l6emxlcjo6Q2xhc3NNZXRob2RTd2l6emxlcihDbGFzcyBjbHMsIFNFTCBv
cmlnaW5hbFNlbGVjdG9yLCBJTVAgaW1wbGVtZW50YXRpb24pCi0gICAgOiBtX21ldGhvZChjbGFz
c19nZXRDbGFzc01ldGhvZChvYmpjX2dldE1ldGFDbGFzcyhOU1N0cmluZ0Zyb21DbGFzcyhjbHMp
LlVURjhTdHJpbmcpLCBvcmlnaW5hbFNlbGVjdG9yKSkKLSAgICAsIG1fb3JpZ2luYWxJbXBsZW1l
bnRhdGlvbihtZXRob2Rfc2V0SW1wbGVtZW50YXRpb24obV9tZXRob2QsIGltcGxlbWVudGF0aW9u
KSkKLXsKLX0KLQotQ2xhc3NNZXRob2RTd2l6emxlcjo6fkNsYXNzTWV0aG9kU3dpenpsZXIoKQot
ewotICAgIG1ldGhvZF9zZXRJbXBsZW1lbnRhdGlvbihtX21ldGhvZCwgbV9vcmlnaW5hbEltcGxl
bWVudGF0aW9uKTsKLX0KLSAgICAKIHN0YXRpYyBOU0NhbGVuZGFyICpzd2l6emxlZENhbGVuZGFy
KCkKIHsKICAgICByZXR1cm4gW05TQ2FsZW5kYXIgY2FsZW5kYXJXaXRoSWRlbnRpZmllcjpUZXN0
Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuZ2V0T3ZlcnJpZGRlbkNhbGVuZGFySWRlbnRpZmllcigp
LmdldCgpXTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>