<?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>231048</bug_id>
          
          <creation_ts>2021-09-30 16:44:50 -0700</creation_ts>
          <short_desc>Update PCM test public key to one with RSA-PSS OID</short_desc>
          <delta_ts>2021-10-26 12:50:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1799089</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-30 16:44:50 -0700</bug_when>
    <thetext>Update PCM test public key to one with RSA-PSS OID</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1799091</commentid>
    <comment_count>1</comment_count>
      <attachid>439797</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-30 16:46:21 -0700</bug_when>
    <thetext>Created attachment 439797
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801870</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-07 16:45:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/84005657&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1804636</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-14 18:26:46 -0700</bug_when>
    <thetext>This is needed because of rdar://79069615</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807384</commentid>
    <comment_count>4</comment_count>
      <attachid>442071</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-21 15:08:40 -0700</bug_when>
    <thetext>Created attachment 442071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807393</commentid>
    <comment_count>5</comment_count>
      <attachid>442071</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-21 15:18:30 -0700</bug_when>
    <thetext>Comment on attachment 442071
Patch

r=me if EWS is happy. Since this only changes API tests, it&apos;ll be the API test bots to look at.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807477</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-21 17:52:42 -0700</bug_when>
    <thetext>Looks like we&apos;re going to need some more precise #if HAVE(SOMETHING) macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1807731</commentid>
    <comment_count>7</comment_count>
      <attachid>442172</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-22 10:04:51 -0700</bug_when>
    <thetext>Created attachment 442172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808612</commentid>
    <comment_count>8</comment_count>
      <attachid>442425</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-10-25 15:00:25 -0700</bug_when>
    <thetext>Created attachment 442425
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808670</commentid>
    <comment_count>9</comment_count>
      <attachid>442425</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-25 16:34:55 -0700</bug_when>
    <thetext>Comment on attachment 442425
Patch

Still r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808991</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-26 12:50:39 -0700</bug_when>
    <thetext>Committed r284890 (243567@main): &lt;https://commits.webkit.org/243567@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442425.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>439797</attachid>
            <date>2021-09-30 16:46:21 -0700</date>
            <delta_ts>2021-10-21 15:08:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231048-20210930164621.patch</filename>
            <type>text/plain</type>
            <size>3154</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzMjA3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYjM0NDE5M2ZhMDBhMjQwMjg4NTU1YzExZDQ0MGJlYTcw
NmVhZGFiNy4uYmEwODY2NzcxMWEwODA3YWI1ODNiMDIxZDAxNTlhOWIyMmEwMzIyMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA5LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVXBkYXRlIFBDTSB0ZXN0IHB1YmxpYyBrZXkgdG8gb25lIHdpdGggUlNB
LVBTUyBPSUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoZSBjdXJyZW50IG9uZSBoYXMgYSByc2FFbmNyeXB0aW9uIE9JRCwgd2hpY2ggaXNuJ3Qgc3Vw
cG9ydGVkLgorICAgICAgICBUaGlzIGlzIHN0YXRlZCBhdCBodHRwczovL3dlYmtpdC5vcmcvYmxv
Zy8xMTk0MC9wY20tY2xpY2stZnJhdWQtcHJldmVudGlvbi1hbmQtYXR0cmlidXRpb24tc2VudC10
by1hZHZlcnRpc2VyLworICAgICAgICBUaGlzIGZpeGVzIHRoZSB0ZXN0IG9uIGFuIGludGVybmFs
IE9TLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIx
LTA5LTI4ICBCSiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gQWRk
IFNQSSB0byBzZWxlY3QgYSB0YWIgY3JlYXRlZCBieSBfV0tJbnNwZWN0b3JFeHRlbnNpb24KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDBlNWE2ZTIyYmJjM2E2ZjEzZmUzNTU3ZTQ0ZWYx
NWVmYjk2OWZiYmEuLmY5Mjg4OWRjNjQ1YmJmNWYyMWZkNTk1MmFhMTJjNmJkZDM1NGEwYTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1By
aXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIFRFU1QoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VOb25jZSkKICNpZiBIQVZFKFJTQV9CU1NB
KQogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCiB7
Ci0gICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDSWpBTkJn
a3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVnS2hB
cXBiSndtMVhuVEJDdnliU0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xIdHF6
dnhGWkl2REExRFVTSDRhWnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRpLXpf
Y0RuMExBejJKdVp5S2x5RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRucHUz
YzZ3dlg1ZGQtQUpvTG1JUVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FLOEM2
QkFjak5jd1VXQ2VLcDBZRUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0cmxi
bmFuVUNLcnZodzdHYUdPR1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pubFNz
c2ZnU3R6MHVKdGNta2Znb0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1SkVX
Nlg2Tnl2RUdZSjh3NUJQZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmowR3U0
d0dvU2pxM2E2dkw1TjEwWlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRqRDJX
OTg5N1EtTXg5QlVOckdRUHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxkM3Yx
Rmg3TjVqZVNxZVZtdERWUllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBNYUNp
TFVuWk5VbVExWlNMUWVReWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisgICAgY29uc3QgY2hh
ciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDVWpBOUJna3Foa2lHOXcwQkFRb3dN
S0FOTUFzR0NXQ0dTQUZsQXdRQ0FxRWFNQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFn
S2lBd0lCTUFPQ0FnOEFNSUlDQ2dLQ0FnRUFvR2hVNU1nc2JiNTFaYkpWUEhTZ2Y4YzkzVEpkdGt4
ZUtmeXhRNWZDcHdFMkZlOXhKN3RCeUV4ZEdLajRYTy1IRmk3bnBtdEVQelI0Y1JYZHNBTDdZY0g1
VVhOYlZoWG1WY2JGQ0JYa3MtSWgtanFMd2ZOYWMwd1BMRzVLMVp6aGYxZ1otLUpCelZqdzg3enZx
cFdyenp4dml1Vl9fMHNuX3U3ZjAxRTFPZGFEODMxMTBmaGZpWHBfRXg2MlEydWhjZWswaHFicUV2
eUtsTFZCT2psSkZKYzJGTHl3LWw4LTl4ZDdHY1gxWlJ5UHg0bElUdllHN0tJYlNNckZUZnVRTk95
SmY0RGxPOTdxcTA4UjZVdGwyNDlBbkJmTGUzWkRiV0JubDBmRE93a0pnQm1iYWE3RW5SbFEzcDZJ
cjJTWTFoTlRuelctcDJjZXl0SU1Zd1RNU0VTNy1qMjFvZVRVQy1PbWNDXzVnMDVBZ3hST3pVSlBa
ZHlZMzNtNFE3bHFrSGtMQVl0ZE4yVFZDUDc5TXVzd1MtZkpKUU9EX2REQ3FxX2hrME15U0xDYm5V
R2U1bHlGQm9PNXZCTUg1azM4TGpTUXVONmpmUDdxdVlBNmNPT056bW44NDJlTFQ2MXRJalJvWDJj
emVVSnJTbXg4OVNmWThXbkZFMmZoazlHNTJjWHA2TDJWenI1SVY3ck93czNaUHctUm5qS25aWmFl
anMwYktHT1hDMS1qbC11NEE1aXA1NW9obFVqbTdsdkR0S0ZBZUo3Z2FqSkJ0aU5ucTNzM21fSU1r
djd6dENRcHYwcEJ4c3Q2TW12Tk9PMGpPUXZZa3pRYkdvb0kxX3FqZUR1cDBCWVk2N3h4eU5SYUE5
VjRDS0VKN2pfaHpuckFtalNpejBMU3FUa0NBd0VBQVE9PSI7CiAKICAgICBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudCBwY207CiAgICAgYXV0byBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPSBwY20udG9r
ZW5TaWduYXR1cmVKU09OKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442071</attachid>
            <date>2021-10-21 15:08:40 -0700</date>
            <delta_ts>2021-10-22 10:04:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231048-20211021150839.patch</filename>
            <type>text/plain</type>
            <size>21837</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NTQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYWM2NGExNjE0N2UyMzljNDJjNjE1MzNjYTgzNjZmN2Qz
ZTI2OWYyNC4uOTY5OGYzYjdmMTkwODcwN2FlZjhkNzc0MDc5MTM2YzBlMTc2MDFhNiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDIxLTEwLTIxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVXBkYXRlIFBDTSB0ZXN0IHB1YmxpYyBrZXkgdG8gb25lIHdpdGggUlNB
LVBTUyBPSUQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTA0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEluIHJkYXI6Ly83OTA2OTYxNSBzdXBwb3J0IGZvciBwdWJsaWMga2V5cyB3aXRoIHJzYUVuY3J5
cHRpb24gT0lEcyB3YXMgcmVtb3ZlZCBhcyBzdGF0ZWQgb24gdGhlIGJsb2cgYXQKKyAgICAgICAg
aHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvMTE5NDAvcGNtLWNsaWNrLWZyYXVkLXByZXZlbnRpb24t
YW5kLWF0dHJpYnV0aW9uLXNlbnQtdG8tYWR2ZXJ0aXNlci8KKyAgICAgICAgVGhpcyBpbXBsZW1l
bnRzIGVub3VnaCBBU04xIHNlcmlhbGl6YXRpb24gdG8gc2VyaWFsaXplIGEgcHVibGljIGtleSBp
biB0aGUgZm9ybSBhY2NlcHRlZCBieSBXZWJLaXQgbm93LgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRpZXMuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKEFTTjE6Ok9iamVjdDo6c2l6ZVNlcmlhbGl6ZWRTaXplIGNvbnN0KToKKyAgICAgICAg
KEFTTjE6Ok9iamVjdDo6c2VyaWFsaXplU2l6ZSBjb25zdCk6CisgICAgICAgIChBU04xOjpPYmpl
Y3RJZGVudGlmaWVyOjpPYmplY3RJZGVudGlmaWVyKToKKyAgICAgICAgKEFTTjE6Ok9iamVjdElk
ZW50aWZpZXI6OmJ5dGVzIGNvbnN0KToKKyAgICAgICAgKEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUp
OgorICAgICAgICAoQVNOMTo6U2VxdWVuY2U6OlNlcXVlbmNlKToKKyAgICAgICAgKEFTTjE6OlNl
cXVlbmNlOjplbGVtZW50RW5jb2RlZExlbmd0aEJ5dGVzIGNvbnN0KToKKyAgICAgICAgKEFTTjE6
OkluZGV4V3JhcHBlcjo6SW5kZXhXcmFwcGVyKToKKyAgICAgICAgKEFTTjE6OkludGVnZXI6Oklu
dGVnZXIpOgorICAgICAgICAoQVNOMTo6Qml0U3RyaW5nOjpCaXRTdHJpbmcpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6d3JhcFB1YmxpY0tleVdpdGhSU0FQU1NPSUQpOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmg6IEFkZGVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5j
cHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbToKKyAgICAgICAgKFRlc3RXZWJL
aXRBUEk6OlRFU1QpOgorCiAyMDIxLTEwLTIwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGlPUyBidWlsZCBhZnRlciByMjg0NTM5CmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGMxNzkxNjc2YjU4YTU5NGFhMGVmOGIzNDRkYmExYzUw
YmMyZDZjMWIuLjIwOWQ3MDgwNTFkNzU3NDg2M2Y1OGY1ZDk1N2E5M2U3ZTQ4YjQ5OTYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTQ2LDYgKzExNDYsNyBAQAogCQlDRURBMTI0MTI0MzdD
OUZCMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3Np
dGVkLW92ZXJsYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDRURBMTI0MDI0MzdDOUVBMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9u
LWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCAqLzsgfTsKIAkJRDM0
RTA4NzYxRTRFNDJFMTAwNUZGMTRBIC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCRTVFMzQxRTRDRTg1RTAw
RkQ1NjNBIC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1tICovOyB9OwogCQlERjRCMjczOTIxQTQ3
NzI4MDA5QkQxQ0EgLyogV0tOU0RpY3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNEIyNzM4MjFBNDc3
MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tICovOyB9
OworCQlERjY1ODA5NDI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjY1ODA5MjI3MjIxNjg5
MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi87IH07CiAJCURGQjgwRTM4MjYxNTEyQzEw
MDJENDc3MSAvKiBUZXN0QXdha2VuZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBERkI4MEUzNjI2MTUxMjRFMDAyRDQ3NzEgLyogVGVzdEF3YWtlbmVy
Lm1tICovOyB9OwogCQlERkI4RkYzMjI0OTJGNTI0MDBGMDBCMEQgLyogUHJlY29ubmVjdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGQjhGRjMxMjQ5
MkY1MUEwMEYwMEIwRCAvKiBQcmVjb25uZWN0Lm1tICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFB
MDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVz
b3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsKQEAgLTMwMDAsNiArMzAwMSw4IEBACiAJCUQz
QkU1RTM0MUU0Q0U4NUUwMEZENTYzQSAvKiBXS1dlYlZpZXdHZXRDb250ZW50cy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0dldENvbnRlbnRzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2MjFDRjc3QzY1MDBDNjI3MkYg
LyogU2NvcGVkTGFtYmRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFNjb3BlZExhbWJkYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNEIyNzM4
MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU0RpY3Rpb25hcnlF
bXB0eURpY3Rpb25hcnlDcmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY2
NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVNOMVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCURGNjU4MDkzMjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0aWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTTjFVdGlsaXRpZXMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY2QkM0NkYyNTM0RTEyMDAwOEY2M0NDIC8qIFRl
c3REb3dubG9hZERlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVzdERvd25sb2Fk
RGVsZWdhdGUubW07IHBhdGggPSBjb2NvYS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY2QkM0NzAyNTM0RTEyMDAwOEY2M0NDIC8qIFRlc3RE
b3dubG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3REb3dubG9hZERlbGVnYXRlLmg7
IHBhdGggPSBjb2NvYS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlERjhBMkU0MTI2N0JFRkFCMDBFRDU5REYgLyogV2ViU29ja2V0Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzc3MSw2ICszNzc0LDggQEAKIAkJCQk3MTJFNEJDMDI1
RERDNTJBMDAwNzIwMUMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk1NzE1MkI1
RDIxQ0MyMDQ1MDAwQzM3Q0EgLyogQXBkdVRlc3QuY3BwICovLAogCQkJCTYzNTRGNEQwMUY3QzNB
QjUwMEQ4OURGMyAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCAqLywKKwkJCQlERjY1
ODA5MjI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi8sCisJCQkJREY2NTgw
OTMyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuaCAqLywKIAkJCQk5M0E3MjBFNTE4
RjFBMEU4MDBBODQ4RTEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJMDdDMDQ2Qzkx
RTQyNTczRTAwNzIwMUU3IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8sCiAJCQkJNTczMDNCQzIyMDA3
MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLywKQEAgLTU0NDEsNiArNTQ0Niw3
IEBACiAJCQkJNjNGNjY4MjIxRjk3RjdGOTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3Qu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk2MzU0RjREMTFGN0MzQUI1MDBEODlERjMgLyogQXBwbGlj
YXRpb25NYW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVGNkFENTI2NzdD
MEJFMDA3OTY3REMgLyogQXBwUHJpdmFjeVJlcG9ydC5tbSBpbiBTb3VyY2VzICovLAorCQkJCURG
NjU4MDk0MjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTUxQjQwRDlFMjNBQzk2MjQwMEUwNTI0MSAvKiBBc3luY0Z1bmN0aW9uLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJODM0MTM4QzcyMDMyNjFDQTAwRjI2OTYwIC8qIEFzeW5jUG9saWN5Rm9y
TmF2aWdhdGlvblJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjQxQTQxMUE3
RTAwNDQ3QzRDIC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43OTNlYjJjOTA0OThhYzRhZWRkZjA3MWNlNzU0N2FkNzMyMmJiYzY4Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRp
ZXMuY3BwCkBAIC0wLDAgKzEsMjIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkFTTjFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYu
aD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBBU04xIHsKKworc3RydWN0
IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworICAgIHZpcnR1
YWwgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwg
fk9iamVjdCgpID0gZGVmYXVsdDsKK3Byb3RlY3RlZDoKKyAgICBzaXplX3Qgc2l6ZVNlcmlhbGl6
ZWRTaXplKHNpemVfdCBzaXplKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKHNpemUgPD0gMHg3
RikKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBBU1NFUlQoc2l6ZSA8PSBzdGQ6Om51
bWVyaWNfbGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpOworICAgICAgICByZXR1cm4gMzsKKyAgICB9
CisgICAgdm9pZCBzZXJpYWxpemVTaXplKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9yLCBzaXplX3Qg
c2l6ZSkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDw9IHN0ZDo6bnVtZXJpY19s
aW1pdHM8dWludDE2X3Q+OjptYXgoKSk7CisgICAgICAgIGlmIChzaXplID4gMHg3RikgeworICAg
ICAgICAgICAgdmVjdG9yLmFwcGVuZCgweDgyKTsKKyAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQo
c3RhdGljX2Nhc3Q8dWludDhfdD4oc2l6ZSA+PiA4KSk7CisgICAgICAgIH0KKyAgICAgICAgdmVj
dG9yLmFwcGVuZChzdGF0aWNfY2FzdDx1aW50OF90PihzaXplKSk7CisgICAgfQorfTsKKworc3Ry
dWN0IE9iamVjdElkZW50aWZpZXIgOiBPYmplY3QgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNU
X0FMTE9DQVRFRDsKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgUnNh
cHNzLAorICAgICAgICBTaGEzODQsCisgICAgICAgIFBrY3MxTUdGCisgICAgfTsKKyAgICBPYmpl
Y3RJZGVudGlmaWVyKFR5cGUgdHlwZSkKKyAgICAgICAgOiB0eXBlKHR5cGUpIHsgfQorcHJpdmF0
ZToKKyAgICBjb25zdCBUeXBlIHR5cGU7CisgICAgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIDExOyB9CisgICAgdm9pZCBzZXJpYWxpemVUbyhWZWN0b3I8
dWludDhfdD4mIHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHZlY3Rvci5hcHBl
bmQoMHg2KTsKKyAgICAgICAgYXV0byBvaWRCeXRlcyA9IGJ5dGVzKCk7CisgICAgICAgIHZlY3Rv
ci5hcHBlbmQob2lkQnl0ZXMuc2l6ZSgpKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZChvaWRCeXRl
cy5kYXRhKCksIG9pZEJ5dGVzLnNpemUoKSk7CisgICAgfQorICAgIHN0ZDo6YXJyYXk8dWludDhf
dCwgOT4gYnl0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAg
ICAgIGNhc2UgVHlwZTo6UnNhcHNzOgorICAgICAgICAgICAgcmV0dXJuIHsgMHgyQSwgMHg4Niwg
MHg0OCwgMHg4NiwgMHhGNywgMHgwRCwgMHgwMSwgMHgwMSwgMHgwQSB9OworICAgICAgICBjYXNl
IFR5cGU6OlNoYTM4NDoKKyAgICAgICAgICAgIHJldHVybiB7IDB4NjAsIDB4ODYsIDB4NDgsIDB4
MDEsIDB4NjUsIDB4MDMsIDB4MDQsIDB4MDIsIDB4MDIgfTsKKyAgICAgICAgY2FzZSBUeXBlOjpQ
a2NzMU1HRjoKKyAgICAgICAgICAgIHJldHVybiB7IDB4MkEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4
RjcsIDB4MEQsIDB4MDEsIDB4MDEsIDB4MDggfTsKKyAgICAgICAgfQorICAgIH0KK307CisKK3N0
cnVjdCBTZXF1ZW5jZSA6IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NB
VEVEOworICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFR5cGVzPgorICAgIHN0YXRpYyBVbmlxdWVS
ZWY8U2VxdWVuY2U+IGNyZWF0ZShUeXBlcy4uLiB0eXBlcykKKyAgICB7CisgICAgICAgIHJldHVy
biBtYWtlVW5pcXVlUmVmPFNlcXVlbmNlPihWZWN0b3I8VW5pcXVlUmVmPE9iamVjdD4+Ojpmcm9t
KHN0ZDo6Zm9yd2FyZDxUeXBlcz4odHlwZXMpLi4uKSk7CisgICAgfQorICAgIFNlcXVlbmNlKFZl
Y3RvcjxVbmlxdWVSZWY8T2JqZWN0Pj4mJiBlbGVtZW50cykKKyAgICAgICAgOiBlbGVtZW50cyhX
VEZNb3ZlKGVsZW1lbnRzKSkgeyB9Citwcml2YXRlOgorICAgIGNvbnN0IFZlY3RvcjxVbmlxdWVS
ZWY8T2JqZWN0Pj4gZWxlbWVudHM7CisgICAgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygpIGNv
bnN0IGZpbmFsCisgICAgeworICAgICAgICBzaXplX3QgZWxlbWVudEJ5dGVzID0gZWxlbWVudEVu
Y29kZWRMZW5ndGhCeXRlcygpOworICAgICAgICByZXR1cm4gMSArIHNpemVTZXJpYWxpemVkU2l6
ZShlbGVtZW50Qnl0ZXMpICsgZWxlbWVudEJ5dGVzOworICAgIH0KKyAgICB2b2lkIHNlcmlhbGl6
ZVRvKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9yKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAg
dmVjdG9yLmFwcGVuZCgweDMwKTsKKyAgICAgICAgc2VyaWFsaXplU2l6ZSh2ZWN0b3IsIGVsZW1l
bnRFbmNvZGVkTGVuZ3RoQnl0ZXMoKSk7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgb2JqZWN0
IDogZWxlbWVudHMpCisgICAgICAgICAgICBvYmplY3QtPnNlcmlhbGl6ZVRvKHZlY3Rvcik7Cisg
ICAgfQorICAgIHNpemVfdCBlbGVtZW50RW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3QKKyAgICB7
CisgICAgICAgIHNpemVfdCB0b3RhbCA9IDA7CisgICAgICAgIGZvciAoY29uc3QgYXV0byYgZWxl
bWVudCA6IGVsZW1lbnRzKQorICAgICAgICAgICAgdG90YWwgKz0gZWxlbWVudC0+ZW5jb2RlZExl
bmd0aEJ5dGVzKCk7CisgICAgICAgIHJldHVybiB0b3RhbDsKKyAgICB9Cit9OworCitzdHJ1Y3Qg
SW5kZXhXcmFwcGVyIDogT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FU
RUQ7CisgICAgSW5kZXhXcmFwcGVyKHVpbnQ4X3QgaW5kZXgsIFVuaXF1ZVJlZjxPYmplY3Q+JiYg
d3JhcHBlZCkKKyAgICAgICAgOiBpbmRleChpbmRleCksIHdyYXBwZWQoV1RGTW92ZSh3cmFwcGVk
KSkgeyB9Citwcml2YXRlOgorICAgIGNvbnN0IHVpbnQ4X3QgaW5kZXg7CisgICAgVW5pcXVlUmVm
PE9iamVjdD4gd3JhcHBlZDsKKyAgICBzaXplX3QgZW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3Qg
ZmluYWwKKyAgICB7CisgICAgICAgIHNpemVfdCB3cmFwcGVkQnl0ZXMgPSB3cmFwcGVkLT5lbmNv
ZGVkTGVuZ3RoQnl0ZXMoKTsKKyAgICAgICAgcmV0dXJuIDEgKyBzaXplU2VyaWFsaXplZFNpemUo
d3JhcHBlZEJ5dGVzKSArIHdyYXBwZWRCeXRlczsKKyAgICB9CisgICAgdm9pZCBzZXJpYWxpemVU
byhWZWN0b3I8dWludDhfdD4mIHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHN3
aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAgICAgICAgdmVjdG9yLmFwcGVu
ZCgweGEwKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDE6CisgICAgICAgICAg
ICB2ZWN0b3IuYXBwZW5kKDB4YTEpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
MjoKKyAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQoMHhhMik7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICB9CisgICAgICAgIHNlcmlhbGl6ZVNpemUodmVjdG9yLCB3cmFwcGVkLT5lbmNvZGVkTGVu
Z3RoQnl0ZXMoKSk7CisgICAgICAgIHdyYXBwZWQtPnNlcmlhbGl6ZVRvKHZlY3Rvcik7CisgICAg
fQorfTsKKworc3RydWN0IEludGVnZXIgOiBPYmplY3QgeworICAgIFdURl9NQUtFX1NUUlVDVF9G
QVNUX0FMTE9DQVRFRDsKKyAgICBJbnRlZ2VyKHVpbnQ4X3QgdmFsdWUpCisgICAgICAgIDogdmFs
dWUodmFsdWUpIHsgfQorcHJpdmF0ZToKKyAgICBjb25zdCB1aW50OF90IHZhbHVlOworICAgIHNp
emVfdCBlbmNvZGVkTGVuZ3RoQnl0ZXMoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgcmV0
dXJuIDM7CisgICAgfQorICAgIHZvaWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0
b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4MDIpOworICAg
ICAgICB2ZWN0b3IuYXBwZW5kKDB4MDEpOworICAgICAgICB2ZWN0b3IuYXBwZW5kKHZhbHVlKTsK
KyAgICB9Cit9OworCitzdHJ1Y3QgQml0U3RyaW5nIDogT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9T
VFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgQml0U3RyaW5nKFZlY3Rvcjx1aW50OF90PiYmIGJ5
dGVzKQorICAgICAgICA6IGJ5dGVzKFdURk1vdmUoYnl0ZXMpKSB7IH0KK3ByaXZhdGU6CisgICAg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOworICAgIHNpemVfdCBlbmNvZGVkTGVuZ3RoQnl0
ZXMoKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgc2l6ZV90IGJ5dGVTaXplID0gYnl0ZXMu
c2l6ZSgpOworICAgICAgICByZXR1cm4gMiArIHNpemVTZXJpYWxpemVkU2l6ZShieXRlU2l6ZSkg
KyBieXRlU2l6ZTsKKyAgICB9CisgICAgdm9pZCBzZXJpYWxpemVUbyhWZWN0b3I8dWludDhfdD4m
IHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHgwMyk7
CisgICAgICAgIHNlcmlhbGl6ZVNpemUodmVjdG9yLCBieXRlcy5zaXplKCkgKyAxKTsKKyAgICAg
ICAgdmVjdG9yLmFwcGVuZCgweDAwKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZFZlY3RvcihieXRl
cyk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgQVNOMQorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKK1ZlY3Rvcjx1aW50OF90PiB3cmFwUHVibGljS2V5V2l0aFJTQVBTU09JRChW
ZWN0b3I8dWludDhfdD4mJiBwdWJsaWNLZXkpCit7CisgICAgYXV0byBzZXF1ZW5jZSA9IEFTTjE6
OlNlcXVlbmNlOjpjcmVhdGUoCisgICAgICAgIEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUoCisgICAg
ICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6Ok9iamVj
dElkZW50aWZpZXI6OlR5cGU6OlJzYXBzcyksCisgICAgICAgICAgICBBU04xOjpTZXF1ZW5jZTo6
Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6SW5kZXhXcmFwcGVy
PigwLCBBU04xOjpTZXF1ZW5jZTo6Y3JlYXRlKAorICAgICAgICAgICAgICAgICAgICBtYWtlVW5p
cXVlUmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6OlR5
cGU6OlNoYTM4NCkKKyAgICAgICAgICAgICAgICApKSwKKyAgICAgICAgICAgICAgICBtYWtlVW5p
cXVlUmVmPEFTTjE6OkluZGV4V3JhcHBlcj4oMSwgQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSgKKyAg
ICAgICAgICAgICAgICAgICAgbWFrZVVuaXF1ZVJlZjxBU04xOjpPYmplY3RJZGVudGlmaWVyPihB
U04xOjpPYmplY3RJZGVudGlmaWVyOjpUeXBlOjpQa2NzMU1HRiksCisgICAgICAgICAgICAgICAg
ICAgIEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtYWtl
VW5pcXVlUmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6
OlR5cGU6OlNoYTM4NCkKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkp
LAorICAgICAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6SW5kZXhXcmFwcGVyPigyLCBt
YWtlVW5pcXVlUmVmPEFTTjE6OkludGVnZXI+KDQ4KSkKKyAgICAgICAgICAgICkKKyAgICAgICAg
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxBU04xOjpCaXRTdHJpbmc+KFdURk1vdmUocHVibGlj
S2V5KSkKKyAgICApOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IHdyYXBwZWQ7CisgICAgc3RhdGlj
X2Nhc3Q8QVNOMTo6T2JqZWN0Jj4oc2VxdWVuY2UuZ2V0KCkpLnNlcmlhbGl6ZVRvKHdyYXBwZWQp
OworICAgIHJldHVybiB3cmFwcGVkOworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvQVNOMVV0aWxpdGllcy5oIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYmRiMWQ1Njc1NWI5
MzNhNjAwY2NlYjY3YzcyMTYwN2EyM2Y2MGU2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRpZXMuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1ZlY3Rvcjx1aW50OF90PiB3cmFwUHVibGlj
S2V5V2l0aFJTQVBTU09JRChWZWN0b3I8dWludDhfdD4mJiBwdWJsaWNLZXkpOworCit9CmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmNwcAppbmRleCBjMTUyY2M2NmQ1YjVlZWE4MmM1MDJhNWQ3YTYxNjg5
NDcwZDM2N2FjLi42NDYxYjI3YzdiN2JhOWVhMDJiN2M5OTEwMGZiODA2ZTFjOTQyOWJmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTMwMSw3ICszMDEsNyBAQCBURVNUKFByaXZhdGVD
bGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAjaWYgSEFWRShSU0FfQlNTQSkK
IFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRCbGluZGVkU2VjcmV0KQogewot
ICAgIGNvbnN0IGNoYXIgc2VydmVyUHVibGljS2V5QmFzZTY0VVJMW10gPSAiTUlJQ0lqQU5CZ2tx
aGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlDQ2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFw
Ykp3bTFYblRCQ3Z5YlNLOHprNTNSMEFtMWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4
RlpJdkRBMURVU0g0YVp6X2ZESENUVHhFZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NE
bjBMQXoySnVaeUtseUZ0NUdnVkxBUXZMOUgzVkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2
d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hCR3puazFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJB
Y2pOY3dVV0NlS3AwWUVDekNYVS0tSlhkMk9FVS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5h
blVDS3J2aHc3R2FHT0dZb3RJcm5adHVOZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3Nm
Z1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJwaTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZY
Nk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRaN2lrdDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdH
b1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZHUHJtSGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4
OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4V2NPcnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZo
N041amVTcWVWbXREVlJZVG4yc1ZmTnFnWHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxV
blpOVW1RMVpTTFFlUXloWVh4SHFSSnJudUNEV1hMa0NBd0VBQVEiOworICAgIGNvbnN0IGNoYXIg
c2VydmVyUHVibGljS2V5QmFzZTY0VVJMW10gPSAiTUlJQ1VqQTlCZ2txaGtpRzl3MEJBUW93TUtB
Tk1Bc0dDV0NHU0FGbEF3UUNBcUVhTUJnR0NTcUdTSWIzRFFFQkNEQUxCZ2xnaGtnQlpRTUVBZ0tp
QXdJQk1BT0NBZzhBTUlJQ0NnS0NBZ0VBb0doVTVNZ3NiYjUxWmJKVlBIU2dmOGM5M1RKZHRreGVL
Znl4UTVmQ3B3RTJGZTl4Sjd0QnlFeGRHS2o0WE8tSEZpN25wbXRFUHpSNGNSWGRzQUw3WWNINVVY
TmJWaFhtVmNiRkNCWGtzLUloLWpxTHdmTmFjMHdQTEc1SzFaemhmMWdaLS1KQnpWanc4N3p2cXBX
cnp6eHZpdVZfXzBzbl91N2YwMUUxT2RhRDgzMTEwZmhmaVhwX0V4NjJRMnVoY2VrMGhxYnFFdnlL
bExWQk9qbEpGSmMyRkx5dy1sOC05eGQ3R2NYMVpSeVB4NGxJVHZZRzdLSWJTTXJGVGZ1UU5PeUpm
NERsTzk3cXEwOFI2VXRsMjQ5QW5CZkxlM1pEYldCbmwwZkRPd2tKZ0JtYmFhN0VuUmxRM3A2SXIy
U1kxaE5UbnpXLXAyY2V5dElNWXdUTVNFUzctajIxb2VUVUMtT21jQ181ZzA1QWd4Uk96VUpQWmR5
WTMzbTRRN2xxa0hrTEFZdGROMlRWQ1A3OU11c3dTLWZKSlFPRF9kRENxcV9oazBNeVNMQ2JuVUdl
NWx5RkJvTzV2Qk1INWszOExqU1F1TjZqZlA3cXVZQTZjT09Oem1uODQyZUxUNjF0SWpSb1gyY3pl
VUpyU214ODlTZlk4V25GRTJmaGs5RzUyY1hwNkwyVnpyNUlWN3JPd3MzWlB3LVJuaktuWlphZWpz
MGJLR09YQzEtamwtdTRBNWlwNTVvaGxVam03bHZEdEtGQWVKN2dhakpCdGlObnEzczNtX0lNa3Y3
enRDUXB2MHBCeHN0Nk1tdk5PTzBqT1F2WWt6UWJHb29JMV9xamVEdXAwQllZNjd4eHlOUmFBOVY0
Q0tFSjdqX2h6bnJBbWpTaXowTFNxVGtDQXdFQUFRPT0iOwogCiAgICAgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgcGNtKAogICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlSUQoeyB9KSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50Q29jb2EubW0KaW5kZXggNGYyNjk4YzE1NjVhMzU1ZTlhYzI4NThiMGI4MjA5ZjA0MzdmZDNk
NC4uM2FkM2Y1ZTlkMGYwZDc2MThiMzhmZGVlNWIxODQ1MmMxZDVjZTYzYiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29jb2EubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2Nv
Y29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KQEAgLTI4LDE0ICsyOCwxMyBAQAog
CiAjaWYgSEFWRShSU0FfQlNTQSkKIAorI2luY2x1ZGUgIkFTTjFVdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJDb3JlQ3J5cHRvU1BJLmgiCi0KICNpbmNsdWRlIDxXZWJDb3JlL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Lmg+CiAjaW5jbHVkZSA8d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgogCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZh
bGlkQmxpbmRlZFNlY3JldCkKIHsKQEAgLTcwLDIxICs2OSwxNSBAQCBURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBWYWxpZEJsaW5kZWRTZWNyZXQpCiAgICAgY29uc3Qgc3RydWN0IGNjcnNh
YnNzYV9jaXBoZXJzdWl0ZSAqY2lwaGVyc3VpdGUgPSAmY2Nyc2Fic3NhX2NpcGhlcnN1aXRlX3Jz
YTQwOTZfc2hhMzg0OwogCiAgICAgc2l6ZV90IGV4cG9ydFNpemUgPSBjY2Rlcl9lbmNvZGVfcnNh
X3B1Yl9zaXplKHJzYVB1YmxpY0tleSk7Ci0gICAgYXV0byBwdWJsaWNLZXkgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdFdpdGhMZW5ndGg6ZXhwb3J0U2l6ZV0pOwotICAgIGNj
ZGVyX2VuY29kZV9yc2FfcHViKHJzYVB1YmxpY0tleSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtw
dWJsaWNLZXkgbXV0YWJsZUJ5dGVzXSksIHN0YXRpY19jYXN0PHVpbnQ4X3QqPihbcHVibGljS2V5
IG11dGFibGVCeXRlc10pICsgW3B1YmxpY0tleSBsZW5ndGhdKTsKLQotICAgIGF1dG8gc2VjS2V5
ID0gYWRvcHRDRihTZWNLZXlDcmVhdGVXaXRoRGF0YSgoX19icmlkZ2UgQ0ZEYXRhUmVmKXB1Ymxp
Y0tleS5nZXQoKSwgKF9fYnJpZGdlIENGRGljdGlvbmFyeVJlZilAewotICAgICAgICAoX19icmlk
Z2UgaWQpa1NlY0F0dHJLZXlUeXBlOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlUeXBlUlNBLAot
ICAgICAgICAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFzczogKF9fYnJpZGdlIGlkKWtTZWNB
dHRyS2V5Q2xhc3NQdWJsaWMKLSAgICB9LCBuaWwpKTsKLSAgICBFWFBFQ1RfTk9UX05VTEwoc2Vj
S2V5KTsKKyAgICBWZWN0b3I8dWludDhfdD4gcmF3S2V5Qnl0ZXMoZXhwb3J0U2l6ZSk7CisgICAg
Y2NkZXJfZW5jb2RlX3JzYV9wdWIocnNhUHVibGljS2V5LCByYXdLZXlCeXRlcy5kYXRhKCksIHJh
d0tleUJ5dGVzLmRhdGEoKSArIGV4cG9ydFNpemUpOwogCi0gICAgYXV0byBzcGtpRGF0YSA9IGFk
b3B0Q0YoU2VjS2V5Q29weVN1YmplY3RQdWJsaWNLZXlJbmZvKHNlY0tleS5nZXQoKSkpOwotICAg
IGF1dG8gKm5zU3BraURhdGEgPSAoX19icmlkZ2UgTlNEYXRhICopc3BraURhdGEuZ2V0KCk7Cisg
ICAgYXV0byB3cmFwcGVkS2V5Qnl0ZXMgPSB3cmFwUHVibGljS2V5V2l0aFJTQVBTU09JRChXVEZN
b3ZlKHJhd0tleUJ5dGVzKSk7CiAKICAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KLSAgICBhdXRv
IGVycm9yTWVzc2FnZSA9IHBjbS5jYWxjdWxhdGVBbmRVcGRhdGVTb3VyY2VVbmxpbmthYmxlVG9r
ZW4oYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobnNTcGtpRGF0YS5ieXRlcywgbnNTcGtpRGF0YS5s
ZW5ndGgpKTsKKyAgICBhdXRvIGVycm9yTWVzc2FnZSA9IHBjbS5jYWxjdWxhdGVBbmRVcGRhdGVT
b3VyY2VVbmxpbmthYmxlVG9rZW4oYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcod3JhcHBlZEtleUJ5
dGVzLmRhdGEoKSwgd3JhcHBlZEtleUJ5dGVzLnNpemUoKSkpOwogICAgIEVYUEVDVF9GQUxTRShl
cnJvck1lc3NhZ2UpOworICAgIAogICAgIGF1dG8gc291cmNlVW5saW5rYWJsZVRva2VuID0gcGNt
LnRva2VuU2lnbmF0dXJlSlNPTigpOwogICAgIEVYUEVDVF9FUShzb3VyY2VVbmxpbmthYmxlVG9r
ZW4tPmFzT2JqZWN0KCktPnNpemUoKSwgNHVsKTsKICAgICBFWFBFQ1RfU1RSRVEoc291cmNlVW5s
aW5rYWJsZVRva2VuLT5nZXRTdHJpbmcoInNvdXJjZV9lbmdhZ2VtZW50X3R5cGUiX3MpLnV0Zjgo
KS5kYXRhKCksICJjbGljayIpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tCmluZGV4IGYzNGYzMjc2NWQ3MGRj
MTFiMDVlYmI5MWI3NDRhODljNzI3YzM4ZmYuLmY3ZTE4M2ZlMWU4OWIwYzg2NDQ4M2Y2MWM0YmU2
OTdmZTc1ZjMzOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KQEAgLTI1LDYgKzI1LDcgQEAKIAogI2lt
cG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIkFTTjFVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkRh
ZW1vblRlc3RVdGlsaXRpZXMuaCIKICNpbXBvcnQgIkhUVFBTZXJ2ZXIuaCIKICNpbXBvcnQgIlBs
YXRmb3JtVXRpbGl0aWVzLmgiCkBAIC0yMTYsMTEgKzIxNywxMCBAQCBURVNUKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50LCBGcmF1ZFByZXZlbnRpb24pCiAgICAgICAgIChfX2JyaWRnZSBpZClrU2Vj
QXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0EsCiAgICAgICAgIChf
X2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFz
c1B1YmxpYwogICAgIH0sIG5pbCkpOworICAgIFZlY3Rvcjx1aW50OF90PiByYXdLZXlCeXRlcyhz
dGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocHVibGljS2V5LmdldCgpLmJ5dGVzKSwgcHVibGlj
S2V5LmdldCgpLmxlbmd0aCk7CisgICAgYXV0byB3cmFwcGVkS2V5Qnl0ZXMgPSB3cmFwUHVibGlj
S2V5V2l0aFJTQVBTU09JRChXVEZNb3ZlKHJhd0tleUJ5dGVzKSk7CiAKLSAgICBhdXRvIHNwa2lE
YXRhID0gYWRvcHRDRihTZWNLZXlDb3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgp
KSk7Ci0gICAgYXV0byAqbnNTcGtpRGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5n
ZXQoKTsKLQotICAgIGF1dG8ga2V5RGF0YSA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG5zU3Br
aURhdGEuYnl0ZXMsIG5zU3BraURhdGEubGVuZ3RoKTsKKyAgICBhdXRvIGtleURhdGEgPSBiYXNl
NjRVUkxFbmNvZGVUb1N0cmluZyh3cmFwcGVkS2V5Qnl0ZXMuZGF0YSgpLCB3cmFwcGVkS2V5Qnl0
ZXMuc2l6ZSgpKTsKIAogICAgIC8vIFRoZSBzZXJ2ZXIuCiAgICAgSFRUUFNlcnZlciBzZXJ2ZXIo
WyZkb25lLCBjb25uZWN0aW9uQ291bnQgPSAwLCAmcnNhUHJpdmF0ZUtleSwgJm1vZHVsdXNOQnl0
ZXMsICZybmcsICZrZXlEYXRhLCAmc2VjS2V5XSAoQ29ubmVjdGlvbiBjb25uZWN0aW9uKSBtdXRh
YmxlIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442172</attachid>
            <date>2021-10-22 10:04:51 -0700</date>
            <delta_ts>2021-10-25 15:00:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231048-20211022100450.patch</filename>
            <type>text/plain</type>
            <size>24104</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0NjYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGYzMmI5ODlkM2IzZmVlZDQ5ZTA1MjMx
Yzk4MjIyNDk0ZjU2NDcyMjEuLmVmNjI3Y2ExODg0ZGZlODNhZDA0YTU4ZDJiNTRlOGQyMmNiMmYx
NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVcGRhdGUgUENNIHRlc3QgcHVibGlj
IGtleSB0byBvbmUgd2l0aCBSU0EtUFNTIE9JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBX
aWxhbmRlci4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0yMSAg
QWRpdHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBF
bmFibGUgYWNjZW50LWNvbG9yIGJ5IGRlZmF1bHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKaW5kZXggY2Qw
NzNjNDk2ODI4NWVmYTA3OWEwZDRlYTEyZTg4NTEwYmYzYWRjMi4uMjQwMjBlODE5MDM1ZjlkNTI1
NGE3OGY4NTEwNjgwZDU2ZjdiMTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZv
cm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZlLmgKQEAgLTkzNCw2ICs5
MzQsMTMgQEAKICNkZWZpbmUgSEFWRV9WTV9GTEFHU19QRVJNQU5FTlQgMQogI2VuZGlmCiAKKyNp
ZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTIw
NDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9fSVBIT05FX09TX1ZFUlNJ
T05fTUFYX0FMTE9XRUQgPj0gMTUwNDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKEFQUExFVFYpICYm
IF9fVFZfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNTA0MDApIFwKKyAgICB8fCAoUExBVEZP
Uk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01BWF9BTExPV0VEID49IDgwNDAwKQor
I2RlZmluZSBIQVZFX1JTQV9QU1NfT0lEIDEKKyNlbmRpZgorCiAjaWYgKFBMQVRGT1JNKE1BQykg
JiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2MDApIFwKICAgICB8fCAo
UExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxNDAw
MDApIFwKICAgICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSA3MDAwMCkgXApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGNjZDkxNGNiM2Q0ZWRhY2E4ZGY1MmRjNjRmNGNiMjY4MWMzNDM2
ZDguLmRjNTFkNGY0OWIxNDA4OWYwYWMyMzhlNzA1NzUzNjMzYmExYTM5NjIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAor
MjAyMS0xMC0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFVwZGF0ZSBQQ00gdGVzdCBwdWJsaWMga2V5IHRvIG9uZSB3aXRoIFJTQS1QU1Mg
T0lECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEw
NDgKKworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgorCisgICAgICAgIEluIHJk
YXI6Ly83OTA2OTYxNSBzdXBwb3J0IGZvciBwdWJsaWMga2V5cyB3aXRoIHJzYUVuY3J5cHRpb24g
T0lEcyB3YXMgcmVtb3ZlZCBhcyBzdGF0ZWQgb24gdGhlIGJsb2cgYXQKKyAgICAgICAgaHR0cHM6
Ly93ZWJraXQub3JnL2Jsb2cvMTE5NDAvcGNtLWNsaWNrLWZyYXVkLXByZXZlbnRpb24tYW5kLWF0
dHJpYnV0aW9uLXNlbnQtdG8tYWR2ZXJ0aXNlci8KKyAgICAgICAgVGhpcyBpbXBsZW1lbnRzIGVu
b3VnaCBBU04xIHNlcmlhbGl6YXRpb24gdG8gc2VyaWFsaXplIGEgcHVibGljIGtleSBpbiB0aGUg
Zm9ybSBhY2NlcHRlZCBieSBXZWJLaXQgbm93LAorICAgICAgICB3aGljaCBpcyBkZXNjcmliZWQg
YXQgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9yZmM4MDE3I2FwcGVuZGl4
LUEuMi4zCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
QVNOMVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAoQVNOMTo6T2JqZWN0OjpzaXplU2Vy
aWFsaXplZFNpemUgY29uc3QpOgorICAgICAgICAoQVNOMTo6T2JqZWN0OjpzZXJpYWxpemVTaXpl
IGNvbnN0KToKKyAgICAgICAgKEFTTjE6Ok9iamVjdElkZW50aWZpZXI6Ok9iamVjdElkZW50aWZp
ZXIpOgorICAgICAgICAoQVNOMTo6T2JqZWN0SWRlbnRpZmllcjo6Ynl0ZXMgY29uc3QpOgorICAg
ICAgICAoQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSk6CisgICAgICAgIChBU04xOjpTZXF1ZW5jZTo6
U2VxdWVuY2UpOgorICAgICAgICAoQVNOMTo6U2VxdWVuY2U6OmVsZW1lbnRFbmNvZGVkTGVuZ3Ro
Qnl0ZXMgY29uc3QpOgorICAgICAgICAoQVNOMTo6SW5kZXhXcmFwcGVyOjpJbmRleFdyYXBwZXIp
OgorICAgICAgICAoQVNOMTo6SW50ZWdlcjo6SW50ZWdlcik6CisgICAgICAgIChBU04xOjpCaXRT
dHJpbmc6OkJpdFN0cmluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjp3cmFwUHVibGljS2V5
V2l0aFJTQVBTU09JRCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FT
TjFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0dHJp
YnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMTAtMjEg
IFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViR0wgYm90
IHNob3VsZCBydW4gdGVzdHMgd2l0aCBHUFUgUHJvY2VzcyBlbmFibGVkCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDNhOTE5MTE0YjMzNzQ1MmU2ZjU5OTcwZGNiNDA0YjU0ZTA3ZWZiMDkuLjM0
NzNmY2UwYTYxMjViNGI4MzMxNDYxZjcwNDUxOGI2NDU2ZDQyZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMTQ5LDYgKzExNDksNyBAQAogCQlDRURBMTI0MTI0MzdDOUZCMDBDMjhBOUUg
LyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDRURBMTI0MDI0MzdDOUVBMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQt
YW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCAqLzsgfTsKIAkJRDM0RTA4NzYxRTRFNDJF
MTAwNUZGMTRBIC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCRTVFMzQxRTRDRTg1RTAwRkQ1NjNBIC8qIFdL
V2ViVmlld0dldENvbnRlbnRzLm1tICovOyB9OwogCQlERjRCMjczOTIxQTQ3NzI4MDA5QkQxQ0Eg
LyogV0tOU0RpY3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNEIyNzM4MjFBNDc3MjcwMDlCRDFDQSAv
KiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tICovOyB9OworCQlERjY1ODA5
NDI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjY1ODA5MjI3MjIxNjg5MDBCM0YxQzEgLyog
QVNOMVV0aWxpdGllcy5jcHAgKi87IH07CiAJCURGQjgwRTM4MjYxNTEyQzEwMDJENDc3MSAvKiBU
ZXN0QXdha2VuZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBERkI4MEUzNjI2MTUxMjRFMDAyRDQ3NzEgLyogVGVzdEF3YWtlbmVyLm1tICovOyB9Owog
CQlERkI4RkYzMjI0OTJGNTI0MDBGMDBCMEQgLyogUHJlY29ubmVjdC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGQjhGRjMxMjQ5MkY1MUEwMEYwMEIw
RCAvKiBQcmVjb25uZWN0Lm1tICovOyB9OwogCQlFMTIyMERDQTE1NUIyOEFBMDAxM0UyRkMgLyog
TWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTIyMERDOTE1
NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2FkRGVs
ZWdhdGUuaHRtbCAqLzsgfTsKQEAgLTMwMDcsNiArMzAwOCw4IEBACiAJCUQzQkU1RTM0MUU0Q0U4
NUUwMEZENTYzQSAvKiBXS1dlYlZpZXdHZXRDb250ZW50cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0dldENvbnRlbnRzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2MjFDRjc3QzY1MDBDNjI3MkYgLyogU2NvcGVkTGFt
YmRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjb3BlZExhbWJk
YS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURGNEIyNzM4MjFBNDc3MjcwMDlC
RDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNoLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU0RpY3Rpb25hcnlFbXB0eURpY3Rpb25h
cnlDcmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREY2NTgwOTIyNzIyMTY4
OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gQVNOMVV0aWxpdGllcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCURGNjU4MDkzMjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0aWVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTTjFVdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJREY2QkM0NkYyNTM0RTEyMDAwOEY2M0NDIC8qIFRlc3REb3dubG9hZERl
bGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVzdERvd25sb2FkRGVsZWdhdGUubW07
IHBhdGggPSBjb2NvYS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJREY2QkM0NzAyNTM0RTEyMDAwOEY2M0NDIC8qIFRlc3REb3dubG9hZERlbGVn
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3REb3dubG9hZERlbGVnYXRlLmg7IHBhdGggPSBjb2Nv
YS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlE
RjhBMkU0MTI2N0JFRkFCMDBFRDU5REYgLyogV2ViU29ja2V0Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMzc3OCw2ICszNzgxLDggQEAKIAkJCQk3MTJFNEJDMDI1RERDNTJBMDAwNzIw
MUMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJCQk1NzE1MkI1RDIxQ0MyMDQ1MDAw
QzM3Q0EgLyogQXBkdVRlc3QuY3BwICovLAogCQkJCTYzNTRGNEQwMUY3QzNBQjUwMEQ4OURGMyAv
KiBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCAqLywKKwkJCQlERjY1ODA5MjI3MjIxNjg5
MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi8sCisJCQkJREY2NTgwOTMyNzIyMTY4OTAw
QjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuaCAqLywKIAkJCQk5M0E3MjBFNTE4RjFBMEU4MDBBODQ4
RTEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJMDdDMDQ2QzkxRTQyNTczRTAwNzIw
MUU3IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8sCiAJCQkJNTczMDNCQzIyMDA3MUUyMjAwMzU1OTY1
IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLywKQEAgLTU0NDksNiArNTQ1NCw3IEBACiAJCQkJNjNG
NjY4MjIxRjk3RjdGOTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9uTWFuaWZlc3QubW0gaW4gU291cmNl
cyAqLywKIAkJCQk2MzU0RjREMTFGN0MzQUI1MDBEODlERjMgLyogQXBwbGljYXRpb25NYW5pZmVz
dFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVGNkFENTI2NzdDMEJFMDA3OTY3REMg
LyogQXBwUHJpdmFjeVJlcG9ydC5tbSBpbiBTb3VyY2VzICovLAorCQkJCURGNjU4MDk0MjcyMjE2
ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxQjQw
RDlFMjNBQzk2MjQwMEUwNTI0MSAvKiBBc3luY0Z1bmN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJODM0MTM4QzcyMDMyNjFDQTAwRjI2OTYwIC8qIEFzeW5jUG9saWN5Rm9yTmF2aWdhdGlvblJl
c3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQjQxQTQxMUE3RTAwNDQ3QzRDIC8q
IEF0dHJpYnV0ZWRTdHJpbmcubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmNwcCBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMzk0
MDA2ZmJhZmVlMWZlNTZlZjMwZjFhZjA5NWZiODFjOGZmZTZhCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRpZXMuY3BwCkBAIC0w
LDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFTTjFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9VbmlxdWVSZWYuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBBU04xIHsKKworc3RydWN0IE9iamVjdCB7Cisg
ICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworICAgIHZpcnR1YWwgc2l6ZV90IGVu
Y29kZWRMZW5ndGhCeXRlcygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VyaWFsaXpl
VG8oVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgfk9iamVjdCgpID0g
ZGVmYXVsdDsKK3Byb3RlY3RlZDoKKyAgICBzaXplX3Qgc2l6ZVNlcmlhbGl6ZWRTaXplKHNpemVf
dCBzaXplKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKHNpemUgPD0gMHg3RikKKyAgICAgICAg
ICAgIHJldHVybiAxOworICAgICAgICBBU1NFUlQoc2l6ZSA8PSBzdGQ6Om51bWVyaWNfbGltaXRz
PHVpbnQxNl90Pjo6bWF4KCkpOworICAgICAgICByZXR1cm4gMzsKKyAgICB9CisgICAgdm9pZCBz
ZXJpYWxpemVTaXplKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9yLCBzaXplX3Qgc2l6ZSkgY29uc3QK
KyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDw9IHN0ZDo6bnVtZXJpY19saW1pdHM8dWludDE2
X3Q+OjptYXgoKSk7CisgICAgICAgIGlmIChzaXplID4gMHg3RikgeworICAgICAgICAgICAgdmVj
dG9yLmFwcGVuZCgweDgyKTsKKyAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQoc3RhdGljX2Nhc3Q8
dWludDhfdD4oc2l6ZSA+PiA4KSk7CisgICAgICAgIH0KKyAgICAgICAgdmVjdG9yLmFwcGVuZChz
dGF0aWNfY2FzdDx1aW50OF90PihzaXplKSk7CisgICAgfQorfTsKKworc3RydWN0IE9iamVjdElk
ZW50aWZpZXIgOiBPYmplY3QgeworICAgIFdURl9NQUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsK
KyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAgICAgICAgUnNhRW5jcnlwdGlvbiwK
KyAgICAgICAgUnNhcHNzLAorICAgICAgICBTaGEzODQsCisgICAgICAgIFBrY3MxTUdGCisgICAg
fTsKKyAgICBPYmplY3RJZGVudGlmaWVyKFR5cGUgdHlwZSkKKyAgICAgICAgOiB0eXBlKHR5cGUp
IHsgfQorcHJpdmF0ZToKKyAgICBjb25zdCBUeXBlIHR5cGU7CisgICAgc2l6ZV90IGVuY29kZWRM
ZW5ndGhCeXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDExOyB9CisgICAgdm9pZCBzZXJpYWxp
emVUbyhWZWN0b3I8dWludDhfdD4mIHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAg
IHZlY3Rvci5hcHBlbmQoMHg2KTsKKyAgICAgICAgYXV0byBvaWRCeXRlcyA9IGJ5dGVzKCk7Cisg
ICAgICAgIHZlY3Rvci5hcHBlbmQob2lkQnl0ZXMuc2l6ZSgpKTsKKyAgICAgICAgdmVjdG9yLmFw
cGVuZChvaWRCeXRlcy5kYXRhKCksIG9pZEJ5dGVzLnNpemUoKSk7CisgICAgfQorICAgIHN0ZDo6
YXJyYXk8dWludDhfdCwgOT4gYnl0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc3dpdGNoICh0
eXBlKSB7CisgICAgICAgIGNhc2UgVHlwZTo6UnNhRW5jcnlwdGlvbjoKKyAgICAgICAgICAgIHJl
dHVybiB7IDB4MkEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4RjcsIDB4MEQsIDB4MDEsIDB4MDEsIDB4
MDEgfTsKKyAgICAgICAgY2FzZSBUeXBlOjpSc2Fwc3M6CisgICAgICAgICAgICByZXR1cm4geyAw
eDJBLCAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELCAweDAxLCAweDAxLCAweDBBIH07Cisg
ICAgICAgIGNhc2UgVHlwZTo6U2hhMzg0OgorICAgICAgICAgICAgcmV0dXJuIHsgMHg2MCwgMHg4
NiwgMHg0OCwgMHgwMSwgMHg2NSwgMHgwMywgMHgwNCwgMHgwMiwgMHgwMiB9OworICAgICAgICBj
YXNlIFR5cGU6OlBrY3MxTUdGOgorICAgICAgICAgICAgcmV0dXJuIHsgMHgyQSwgMHg4NiwgMHg0
OCwgMHg4NiwgMHhGNywgMHgwRCwgMHgwMSwgMHgwMSwgMHgwOCB9OworICAgICAgICB9CisgICAg
fQorfTsKKworc3RydWN0IFNlcXVlbmNlIDogT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9TVFJVQ1Rf
RkFTVF9BTExPQ0FURUQ7CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVHlwZXM+CisgICAgc3Rh
dGljIFVuaXF1ZVJlZjxTZXF1ZW5jZT4gY3JlYXRlKFR5cGVzLi4uIHR5cGVzKQorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8U2VxdWVuY2U+KFZlY3RvcjxVbmlxdWVSZWY8T2Jq
ZWN0Pj46OmZyb20oc3RkOjpmb3J3YXJkPFR5cGVzPih0eXBlcykuLi4pKTsKKyAgICB9CisgICAg
U2VxdWVuY2UoVmVjdG9yPFVuaXF1ZVJlZjxPYmplY3Q+PiYmIGVsZW1lbnRzKQorICAgICAgICA6
IGVsZW1lbnRzKFdURk1vdmUoZWxlbWVudHMpKSB7IH0KK3ByaXZhdGU6CisgICAgY29uc3QgVmVj
dG9yPFVuaXF1ZVJlZjxPYmplY3Q+PiBlbGVtZW50czsKKyAgICBzaXplX3QgZW5jb2RlZExlbmd0
aEJ5dGVzKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHNpemVfdCBlbGVtZW50Qnl0ZXMg
PSBlbGVtZW50RW5jb2RlZExlbmd0aEJ5dGVzKCk7CisgICAgICAgIHJldHVybiAxICsgc2l6ZVNl
cmlhbGl6ZWRTaXplKGVsZW1lbnRCeXRlcykgKyBlbGVtZW50Qnl0ZXM7CisgICAgfQorICAgIHZv
aWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0IGZpbmFsCisgICAg
eworICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4MzApOworICAgICAgICBzZXJpYWxpemVTaXplKHZl
Y3RvciwgZWxlbWVudEVuY29kZWRMZW5ndGhCeXRlcygpKTsKKyAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBvYmplY3QgOiBlbGVtZW50cykKKyAgICAgICAgICAgIG9iamVjdC0+c2VyaWFsaXplVG8o
dmVjdG9yKTsKKyAgICB9CisgICAgc2l6ZV90IGVsZW1lbnRFbmNvZGVkTGVuZ3RoQnl0ZXMoKSBj
b25zdAorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsID0gMDsKKyAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpCisgICAgICAgICAgICB0b3RhbCArPSBlbGVtZW50
LT5lbmNvZGVkTGVuZ3RoQnl0ZXMoKTsKKyAgICAgICAgcmV0dXJuIHRvdGFsOworICAgIH0KK307
CisKK3N0cnVjdCBOdWxsIDogT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExP
Q0FURUQ7Citwcml2YXRlOgorICAgIHNpemVfdCBlbmNvZGVkTGVuZ3RoQnl0ZXMoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAyOyB9CisgICAgdm9pZCBzZXJpYWxpemVUbyhWZWN0b3I8dWludDhfdD4m
IHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHgwNSk7
CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHgwMCk7CisgICAgfQorfTsKKworc3RydWN0IEluZGV4
V3JhcHBlciA6IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIEluZGV4V3JhcHBlcih1aW50OF90IGluZGV4LCBVbmlxdWVSZWY8T2JqZWN0PiYmIHdyYXBw
ZWQpCisgICAgICAgIDogaW5kZXgoaW5kZXgpLCB3cmFwcGVkKFdURk1vdmUod3JhcHBlZCkpIHsg
fQorcHJpdmF0ZToKKyAgICBjb25zdCB1aW50OF90IGluZGV4OworICAgIFVuaXF1ZVJlZjxPYmpl
Y3Q+IHdyYXBwZWQ7CisgICAgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygpIGNvbnN0IGZpbmFs
CisgICAgeworICAgICAgICBzaXplX3Qgd3JhcHBlZEJ5dGVzID0gd3JhcHBlZC0+ZW5jb2RlZExl
bmd0aEJ5dGVzKCk7CisgICAgICAgIHJldHVybiAxICsgc2l6ZVNlcmlhbGl6ZWRTaXplKHdyYXBw
ZWRCeXRlcykgKyB3cmFwcGVkQnl0ZXM7CisgICAgfQorICAgIHZvaWQgc2VyaWFsaXplVG8oVmVj
dG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBzd2l0Y2gg
KGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAgICAgIHZlY3Rvci5hcHBlbmQoMHhh
MCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAxOgorICAgICAgICAgICAgdmVj
dG9yLmFwcGVuZCgweGExKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIDI6Cisg
ICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4YTIpOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
fQorICAgICAgICBzZXJpYWxpemVTaXplKHZlY3Rvciwgd3JhcHBlZC0+ZW5jb2RlZExlbmd0aEJ5
dGVzKCkpOworICAgICAgICB3cmFwcGVkLT5zZXJpYWxpemVUbyh2ZWN0b3IpOworICAgIH0KK307
CisKK3N0cnVjdCBJbnRlZ2VyIDogT2JqZWN0IHsKKyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9B
TExPQ0FURUQ7CisgICAgSW50ZWdlcih1aW50OF90IHZhbHVlKQorICAgICAgICA6IHZhbHVlKHZh
bHVlKSB7IH0KK3ByaXZhdGU6CisgICAgY29uc3QgdWludDhfdCB2YWx1ZTsKKyAgICBzaXplX3Qg
ZW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHJldHVybiAz
OworICAgIH0KKyAgICB2b2lkIHNlcmlhbGl6ZVRvKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9yKSBj
b25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgdmVjdG9yLmFwcGVuZCgweDAyKTsKKyAgICAgICAg
dmVjdG9yLmFwcGVuZCgweDAxKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZCh2YWx1ZSk7CisgICAg
fQorfTsKKworc3RydWN0IEJpdFN0cmluZyA6IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOworICAgIEJpdFN0cmluZyhWZWN0b3I8dWludDhfdD4mJiBieXRlcykK
KyAgICAgICAgOiBieXRlcyhXVEZNb3ZlKGJ5dGVzKSkgeyB9Citwcml2YXRlOgorICAgIGNvbnN0
IFZlY3Rvcjx1aW50OF90PiBieXRlczsKKyAgICBzaXplX3QgZW5jb2RlZExlbmd0aEJ5dGVzKCkg
Y29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHNpemVfdCBieXRlU2l6ZSA9IGJ5dGVzLnNpemUo
KTsKKyAgICAgICAgcmV0dXJuIDIgKyBzaXplU2VyaWFsaXplZFNpemUoYnl0ZVNpemUpICsgYnl0
ZVNpemU7CisgICAgfQorICAgIHZvaWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0
b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4MDMpOworICAg
ICAgICBzZXJpYWxpemVTaXplKHZlY3RvciwgYnl0ZXMuc2l6ZSgpICsgMSk7CisgICAgICAgIHZl
Y3Rvci5hcHBlbmQoMHgwMCk7CisgICAgICAgIHZlY3Rvci5hcHBlbmRWZWN0b3IoYnl0ZXMpOwor
ICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFTTjEKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkgeworCitWZWN0b3I8dWludDhfdD4gd3JhcFB1YmxpY0tleVdpdGhSU0FQU1NPSUQoVmVjdG9y
PHVpbnQ4X3Q+JiYgcHVibGljS2V5KQoreworI2lmIEhBVkUoUlNBX1BTU19PSUQpCisgICAgYXV0
byBzZXF1ZW5jZSA9IEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUoCisgICAgICAgIEFTTjE6OlNlcXVl
bmNlOjpjcmVhdGUoCisgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9iamVjdElkZW50
aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6OlR5cGU6OlJzYXBzcyksCisgICAgICAgICAg
ICBBU04xOjpTZXF1ZW5jZTo6Y3JlYXRlKAorICAgICAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8
QVNOMTo6SW5kZXhXcmFwcGVyPigwLCBBU04xOjpTZXF1ZW5jZTo6Y3JlYXRlKAorICAgICAgICAg
ICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6Ok9i
amVjdElkZW50aWZpZXI6OlR5cGU6OlNoYTM4NCkKKyAgICAgICAgICAgICAgICApKSwKKyAgICAg
ICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6OkluZGV4V3JhcHBlcj4oMSwgQVNOMTo6U2Vx
dWVuY2U6OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAgbWFrZVVuaXF1ZVJlZjxBU04xOjpP
YmplY3RJZGVudGlmaWVyPihBU04xOjpPYmplY3RJZGVudGlmaWVyOjpUeXBlOjpQa2NzMU1HRiks
CisgICAgICAgICAgICAgICAgICAgIEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUoCisgICAgICAgICAg
ICAgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6
Ok9iamVjdElkZW50aWZpZXI6OlR5cGU6OlNoYTM4NCkKKyAgICAgICAgICAgICAgICAgICAgKQor
ICAgICAgICAgICAgICAgICkpLAorICAgICAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6
SW5kZXhXcmFwcGVyPigyLCBtYWtlVW5pcXVlUmVmPEFTTjE6OkludGVnZXI+KDQ4KSkKKyAgICAg
ICAgICAgICkKKyAgICAgICAgKSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxBU04xOjpCaXRTdHJp
bmc+KFdURk1vdmUocHVibGljS2V5KSkKKyAgICApOworI2Vsc2UKKyAgICBhdXRvIHNlcXVlbmNl
ID0gQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSgKKyAgICAgICAgQVNOMTo6U2VxdWVuY2U6OmNyZWF0
ZSgKKyAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6T2JqZWN0SWRlbnRpZmllcj4oQVNO
MTo6T2JqZWN0SWRlbnRpZmllcjo6VHlwZTo6UnNhRW5jcnlwdGlvbiksCisgICAgICAgICAgICBt
YWtlVW5pcXVlUmVmPEFTTjE6Ok51bGw+KCkKKyAgICAgICAgKSwKKyAgICAgICAgbWFrZVVuaXF1
ZVJlZjxBU04xOjpCaXRTdHJpbmc+KFdURk1vdmUocHVibGljS2V5KSkKKyAgICApOworI2VuZGlm
CisKKyAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZDsKKyAgICBzdGF0aWNfY2FzdDxBU04xOjpP
YmplY3QmPihzZXF1ZW5jZS5nZXQoKSkuc2VyaWFsaXplVG8od3JhcHBlZCk7CisgICAgcmV0dXJu
IHdyYXBwZWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViQ29yZS9BU04xVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQVNOMVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZGIxZDU2NzU1YjkzM2E2MDBjY2ViNjdj
NzIxNjA3YTIzZjYwZTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYkNvcmUvQVNOMVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisKK25hbWVzcGFjZSBU
ZXN0V2ViS2l0QVBJIHsKKworVmVjdG9yPHVpbnQ4X3Q+IHdyYXBQdWJsaWNLZXlXaXRoUlNBUFNT
T0lEKFZlY3Rvcjx1aW50OF90PiYmIHB1YmxpY0tleSk7CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQuY3BwCmluZGV4IGMxNTJjYzY2ZDViNWVlYTgyYzUwMmE1ZDdhNjE2ODk0NzBkMzY3YWMuLjY0
NjFiMjdjN2I3YmE5ZWEwMmI3Yzk5MTAwZmI4MDZlMWM5NDI5YmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcApAQCAtMzAxLDcgKzMwMSw3IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRTb3VyY2VOb25jZSkKICNpZiBIQVZFKFJTQV9CU1NBKQogVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZEJsaW5kZWRTZWNyZXQpCiB7Ci0gICAgY29uc3QgY2hh
ciBzZXJ2ZXJQdWJsaWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDSWpBTkJna3Foa2lHOXcwQkFRRUZB
QU9DQWc4QU1JSUNDZ0tDQWdFQXpiMWRUaHJ0WXdWaDQ2U2pJbmVnS2hBcXBiSndtMVhuVEJDdnli
U0s4ems1M1IwQW0xaEczM0FWRjVKMWxxWWYzNndwNjYzR2FzY2xIdHF6dnhGWkl2REExRFVTSDRh
WnpfZkRIQ1RUeEVlSlZQT1JTM3pOTjJVald3YnRud3NoNEJtRFRpLXpfY0RuMExBejJKdVp5S2x5
RnQ1R2dWTEFRdkw5SDNWTEhVOV9YSE5LLXVib3lYZmNIUlR0ckRucHUzYzZ3dlg1ZGQtQUpvTG1J
UVRaQkVKZlZreEJHem5rMXFLSGpjNm5BU0FpcktGX3dKQ251d0FLOEM2QkFjak5jd1VXQ2VLcDBZ
RUN6Q1hVLS1KWGQyT0VVLVFoeFBDNjdmYWlET2gzVjB2bGZxWkx0cmxibmFuVUNLcnZodzdHYUdP
R1lvdElyblp0dU5meEMxNGRfWE5WZDFGUzhuSGpSVEhuRWd3X2pubFNzc2ZnU3R6MHVKdGNta2Zn
b0pCdk9FNG1JUnBpN2lTbFJmWE5rS3NXWDFKLWd3Y25DVm81dTB1SkVXNlg2Tnl2RUdZSjh3NUJQ
ZndzUXVLOXktNFo3aWt0OUlPdWNFSFk3VGhEbWk5VE5OaEhCVmowR3U0d0dvU2pxM2E2dkw1TjEw
WlNIWG9xMVhnZkdQcm1IaGhMOTBjanZXb25veU9Yc1VxbFhFelRqRDJXOTg5N1EtTXg5QlVOckdR
UHFtSXg4RjVNd3hXY09yeWU4V1JwNFE4OG4yWVNVblY3QzhheWxkM3YxRmg3TjVqZVNxZVZtdERW
UllUbjJzVmZOcWdYcnpnZGlnSmNRUjh2RkVOdTZuekZQd3NyWFBNYUNpTFVuWk5VbVExWlNMUWVR
eWhZWHhIcVJKcm51Q0RXWExrQ0F3RUFBUSI7CisgICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJsaWNL
ZXlCYXNlNjRVUkxbXSA9ICJNSUlDVWpBOUJna3Foa2lHOXcwQkFRb3dNS0FOTUFzR0NXQ0dTQUZs
QXdRQ0FxRWFNQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnS2lBd0lCTUFPQ0FnOEFN
SUlDQ2dLQ0FnRUFvR2hVNU1nc2JiNTFaYkpWUEhTZ2Y4YzkzVEpkdGt4ZUtmeXhRNWZDcHdFMkZl
OXhKN3RCeUV4ZEdLajRYTy1IRmk3bnBtdEVQelI0Y1JYZHNBTDdZY0g1VVhOYlZoWG1WY2JGQ0JY
a3MtSWgtanFMd2ZOYWMwd1BMRzVLMVp6aGYxZ1otLUpCelZqdzg3enZxcFdyenp4dml1Vl9fMHNu
X3U3ZjAxRTFPZGFEODMxMTBmaGZpWHBfRXg2MlEydWhjZWswaHFicUV2eUtsTFZCT2psSkZKYzJG
THl3LWw4LTl4ZDdHY1gxWlJ5UHg0bElUdllHN0tJYlNNckZUZnVRTk95SmY0RGxPOTdxcTA4UjZV
dGwyNDlBbkJmTGUzWkRiV0JubDBmRE93a0pnQm1iYWE3RW5SbFEzcDZJcjJTWTFoTlRuelctcDJj
ZXl0SU1Zd1RNU0VTNy1qMjFvZVRVQy1PbWNDXzVnMDVBZ3hST3pVSlBaZHlZMzNtNFE3bHFrSGtM
QVl0ZE4yVFZDUDc5TXVzd1MtZkpKUU9EX2REQ3FxX2hrME15U0xDYm5VR2U1bHlGQm9PNXZCTUg1
azM4TGpTUXVONmpmUDdxdVlBNmNPT056bW44NDJlTFQ2MXRJalJvWDJjemVVSnJTbXg4OVNmWThX
bkZFMmZoazlHNTJjWHA2TDJWenI1SVY3ck93czNaUHctUm5qS25aWmFlanMwYktHT1hDMS1qbC11
NEE1aXA1NW9obFVqbTdsdkR0S0ZBZUo3Z2FqSkJ0aU5ucTNzM21fSU1rdjd6dENRcHYwcEJ4c3Q2
TW12Tk9PMGpPUXZZa3pRYkdvb0kxX3FqZUR1cDBCWVk2N3h4eU5SYUE5VjRDS0VKN2pfaHpuckFt
alNpejBMU3FUa0NBd0VBQVE9PSI7CiAKICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCBwY20oCiAgICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VJRCh7IH0pLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpp
bmRleCA0ZjI2OThjMTU2NWEzNTVlOWFjMjg1OGIwYjgyMDlmMDQzN2ZkM2Q0Li4zYWQzZjVlOWQw
ZjBkNzYxOGIzOGZkZWU1YjE4NDUyYzFkNWNlNjNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMjgsMTQgKzI4LDEzIEBACiAKICNpZiBIQVZFKFJT
QV9CU1NBKQogCisjaW5jbHVkZSAiQVNOMVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNvcmVDcnlw
dG9TUEkuaCIKLQogI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaD4K
ICNpbmNsdWRlIDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+CiAKLXVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRCbGluZGVkU2Vj
cmV0KQogewpAQCAtNzAsMjEgKzY5LDE1IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
IFZhbGlkQmxpbmRlZFNlY3JldCkKICAgICBjb25zdCBzdHJ1Y3QgY2Nyc2Fic3NhX2NpcGhlcnN1
aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVyc3VpdGVfcnNhNDA5Nl9zaGEzODQ7
CiAKICAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2VuY29kZV9yc2FfcHViX3NpemUocnNh
UHVibGljS2V5KTsKLSAgICBhdXRvIHB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRh
IGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7Ci0gICAgY2NkZXJfZW5jb2RlX3Jz
YV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBtdXRh
YmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0YWJsZUJ5dGVz
XSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOwotCi0gICAgYXV0byBzZWNLZXkgPSBhZG9wdENGKFNl
Y0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpcHVibGljS2V5LmdldCgpLCAo
X19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7Ci0gICAgICAgIChfX2JyaWRnZSBpZClrU2VjQXR0
cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0EsCi0gICAgICAgIChfX2Jy
aWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFzc1B1
YmxpYwotICAgIH0sIG5pbCkpOwotICAgIEVYUEVDVF9OT1RfTlVMTChzZWNLZXkpOworICAgIFZl
Y3Rvcjx1aW50OF90PiByYXdLZXlCeXRlcyhleHBvcnRTaXplKTsKKyAgICBjY2Rlcl9lbmNvZGVf
cnNhX3B1Yihyc2FQdWJsaWNLZXksIHJhd0tleUJ5dGVzLmRhdGEoKSwgcmF3S2V5Qnl0ZXMuZGF0
YSgpICsgZXhwb3J0U2l6ZSk7CiAKLSAgICBhdXRvIHNwa2lEYXRhID0gYWRvcHRDRihTZWNLZXlD
b3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgpKSk7Ci0gICAgYXV0byAqbnNTcGtp
RGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5nZXQoKTsKKyAgICBhdXRvIHdyYXBw
ZWRLZXlCeXRlcyA9IHdyYXBQdWJsaWNLZXlXaXRoUlNBUFNTT0lEKFdURk1vdmUocmF3S2V5Qnl0
ZXMpKTsKIAogICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgotICAgIGF1dG8gZXJyb3JNZXNzYWdl
ID0gcGNtLmNhbGN1bGF0ZUFuZFVwZGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihiYXNlNjRVUkxF
bmNvZGVUb1N0cmluZyhuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRhLmxlbmd0aCkpOworICAg
IGF1dG8gZXJyb3JNZXNzYWdlID0gcGNtLmNhbGN1bGF0ZUFuZFVwZGF0ZVNvdXJjZVVubGlua2Fi
bGVUb2tlbihiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyh3cmFwcGVkS2V5Qnl0ZXMuZGF0YSgpLCB3
cmFwcGVkS2V5Qnl0ZXMuc2l6ZSgpKSk7CiAgICAgRVhQRUNUX0ZBTFNFKGVycm9yTWVzc2FnZSk7
CisgICAgCiAgICAgYXV0byBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPSBwY20udG9rZW5TaWduYXR1
cmVKU09OKCk7CiAgICAgRVhQRUNUX0VRKHNvdXJjZVVubGlua2FibGVUb2tlbi0+YXNPYmplY3Qo
KS0+c2l6ZSgpLCA0dWwpOwogICAgIEVYUEVDVF9TVFJFUShzb3VyY2VVbmxpbmthYmxlVG9rZW4t
PmdldFN0cmluZygic291cmNlX2VuZ2FnZW1lbnRfdHlwZSJfcykudXRmOCgpLmRhdGEoKSwgImNs
aWNrIik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggZjM0ZjMyNzY1ZDcwZGMxMWIwNWViYjkxYjc0
NGE4OWM3MjdjMzhmZi4uZjdlMTgzZmUxZTg5YjBjODY0NDgzZjYxYzRiZTY5N2ZlNzVmMzM5NCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVudEF0
dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
RXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcu
aCIKIAorI2ltcG9ydCAiQVNOMVV0aWxpdGllcy5oIgogI2ltcG9ydCAiRGFlbW9uVGVzdFV0aWxp
dGllcy5oIgogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKQEAgLTIxNiwxMSArMjE3LDEwIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQs
IEZyYXVkUHJldmVudGlvbikKICAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZTog
KF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKICAgICAgICAgKF9fYnJpZGdlIGlkKWtT
ZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCiAgICAg
fSwgbmlsKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHJhd0tleUJ5dGVzKHN0YXRpY19jYXN0PGNv
bnN0IHVpbnQ4X3QqPihwdWJsaWNLZXkuZ2V0KCkuYnl0ZXMpLCBwdWJsaWNLZXkuZ2V0KCkubGVu
Z3RoKTsKKyAgICBhdXRvIHdyYXBwZWRLZXlCeXRlcyA9IHdyYXBQdWJsaWNLZXlXaXRoUlNBUFNT
T0lEKFdURk1vdmUocmF3S2V5Qnl0ZXMpKTsKIAotICAgIGF1dG8gc3BraURhdGEgPSBhZG9wdENG
KFNlY0tleUNvcHlTdWJqZWN0UHVibGljS2V5SW5mbyhzZWNLZXkuZ2V0KCkpKTsKLSAgICBhdXRv
ICpuc1Nwa2lEYXRhID0gKF9fYnJpZGdlIE5TRGF0YSAqKXNwa2lEYXRhLmdldCgpOwotCi0gICAg
YXV0byBrZXlEYXRhID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobnNTcGtpRGF0YS5ieXRlcywg
bnNTcGtpRGF0YS5sZW5ndGgpOworICAgIGF1dG8ga2V5RGF0YSA9IGJhc2U2NFVSTEVuY29kZVRv
U3RyaW5nKHdyYXBwZWRLZXlCeXRlcy5kYXRhKCksIHdyYXBwZWRLZXlCeXRlcy5zaXplKCkpOwog
CiAgICAgLy8gVGhlIHNlcnZlci4KICAgICBIVFRQU2VydmVyIHNlcnZlcihbJmRvbmUsIGNvbm5l
Y3Rpb25Db3VudCA9IDAsICZyc2FQcml2YXRlS2V5LCAmbW9kdWx1c05CeXRlcywgJnJuZywgJmtl
eURhdGEsICZzZWNLZXldIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIG11dGFibGUgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442425</attachid>
            <date>2021-10-25 15:00:25 -0700</date>
            <delta_ts>2021-10-26 12:50:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231048-20211025150024.patch</filename>
            <type>text/plain</type>
            <size>24278</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDdiZDg5ZTg4NjViZmVmZTdkYmZkYzZi
ZTBkNGRjODBlZWJhODBjYWMuLjAyYTM2ZTE3ZmRhMmQ2NzdiNTY5M2YyNjkwZDhkM2U1NWRlMGU5
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTAtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVcGRhdGUgUENNIHRlc3QgcHVibGlj
IGtleSB0byBvbmUgd2l0aCBSU0EtUFNTIE9JRAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMDQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSm9obiBX
aWxhbmRlci4KKworICAgICAgICAqIHd0Zi9QbGF0Zm9ybUhhdmUuaDoKKwogMjAyMS0xMC0yNCAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBBZG9wdCBi
cmlkZ2VfY2FzdCBhbmQgbWFrZVZlY3RvciBpbiBhIGZldyBtb3JlIHBsYWNlcywgaW5jbHVkaW5n
IGNhc2VzIHdoZXJlIGFkb3B0Q0YvTlMgd2FzIHVzZWQgaW5jb3JyZWN0bHkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtSGF2ZS5oIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1I
YXZlLmgKaW5kZXggNzI1MjY0ZmExYmIwOWUxYTA1ZmYyYjg0NjE3ZjUxZWM3ODBiMzg2YS4uMDVi
ZGI3MzNmNzNkMWMzNjdhMjBlOTM1N2U4Njg3NGE0M2M4MGFkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvUGxhdGZvcm1IYXZlLmgKKysrIGIvU291cmNlL1dURi93dGYvUGxhdGZvcm1IYXZl
LmgKQEAgLTkyOCw2ICs5MjgsMTMgQEAKICNkZWZpbmUgSEFWRV9WTV9GTEFHU19QRVJNQU5FTlQg
MQogI2VuZGlmCiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gMTIwNDAwKSBcCisgICAgfHwgKFBMQVRGT1JNKElPU19GQU1JTFkpICYmIF9f
SVBIT05FX09TX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTUwNDAwKSBcCisgICAgfHwgKFBMQVRG
T1JNKEFQUExFVFYpICYmIF9fVFZfT1NfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxNTA0MDApIFwK
KyAgICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRDSF9PU19WRVJTSU9OX01BWF9BTExP
V0VEID49IDgwNDAwKQorI2RlZmluZSBIQVZFX1JTQV9QU1NfT0lEIDEKKyNlbmRpZgorCiAjaWYg
KFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDE2
MDApIFwKICAgICB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9PU19WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxNDAwMDApIFwKICAgICB8fCAoUExBVEZPUk0oV0FUQ0hPUykgJiYgX19XQVRD
SF9PU19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSA3MDAwMCkgXApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY2MjA1M2M2YWVkZTQzMTVkM2FkN2Y3
ODA2ZGVjM2Y4NGQ3MTk1YjYuLjUyOTUxY2E2OWU3N2JmNjc4OGRjZDA5ZDdkNzYxODAwYjYyMWNm
YjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzNiBAQAorMjAyMS0xMC0yNSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFVwZGF0ZSBQQ00gdGVzdCBwdWJsaWMga2V5IHRvIG9u
ZSB3aXRoIFJTQS1QU1MgT0lECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzEwNDgKKworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVyLgor
CisgICAgICAgIEluIHJkYXI6Ly83OTA2OTYxNSBzdXBwb3J0IGZvciBwdWJsaWMga2V5cyB3aXRo
IHJzYUVuY3J5cHRpb24gT0lEcyB3YXMgcmVtb3ZlZCBhcyBzdGF0ZWQgb24gdGhlIGJsb2cgYXQK
KyAgICAgICAgaHR0cHM6Ly93ZWJraXQub3JnL2Jsb2cvMTE5NDAvcGNtLWNsaWNrLWZyYXVkLXBy
ZXZlbnRpb24tYW5kLWF0dHJpYnV0aW9uLXNlbnQtdG8tYWR2ZXJ0aXNlci8KKyAgICAgICAgVGhp
cyBpbXBsZW1lbnRzIGVub3VnaCBBU04xIHNlcmlhbGl6YXRpb24gdG8gc2VyaWFsaXplIGEgcHVi
bGljIGtleSBpbiB0aGUgZm9ybSBhY2NlcHRlZCBieSBXZWJLaXQgbm93LAorICAgICAgICB3aGlj
aCBpcyBkZXNjcmliZWQgYXQgaHR0cHM6Ly9kYXRhdHJhY2tlci5pZXRmLm9yZy9kb2MvaHRtbC9y
ZmM4MDE3I2FwcGVuZGl4LUEuMi4zCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYkNvcmUvQVNOMVV0aWxpdGllcy5jcHA6IEFkZGVkLgorICAgICAgICAoQVNOMTo6
T2JqZWN0OjpzaXplU2VyaWFsaXplZFNpemUgY29uc3QpOgorICAgICAgICAoQVNOMTo6T2JqZWN0
OjpzZXJpYWxpemVTaXplIGNvbnN0KToKKyAgICAgICAgKEFTTjE6Ok9iamVjdElkZW50aWZpZXI6
Ok9iamVjdElkZW50aWZpZXIpOgorICAgICAgICAoQVNOMTo6T2JqZWN0SWRlbnRpZmllcjo6Ynl0
ZXMgY29uc3QpOgorICAgICAgICAoQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSk6CisgICAgICAgIChB
U04xOjpTZXF1ZW5jZTo6U2VxdWVuY2UpOgorICAgICAgICAoQVNOMTo6U2VxdWVuY2U6OmVsZW1l
bnRFbmNvZGVkTGVuZ3RoQnl0ZXMgY29uc3QpOgorICAgICAgICAoQVNOMTo6SW5kZXhXcmFwcGVy
OjpJbmRleFdyYXBwZXIpOgorICAgICAgICAoQVNOMTo6SW50ZWdlcjo6SW50ZWdlcik6CisgICAg
ICAgIChBU04xOjpCaXRTdHJpbmc6OkJpdFN0cmluZyk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
Ojp3cmFwUHVibGljS2V5V2l0aFJTQVBTU09JRCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL0FTTjFVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAg
KFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
Q29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tOgorICAgICAgICAoVGVz
dFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9FdmVudEF0dHJpYnV0aW9uLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKIDIwMjEtMTAtMjUgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBXZWJLaXQgb3VnaHQgdG8gYmUgYWJsZSB0byBwbGF5IHZpZGVvcyB3aXRo
b3V0IENvbnRlbnQtTGVuZ3RoIEhUVFAgaGVhZGVyIGZpZWxkcyBhbmQgd2l0aG91dCByYW5nZSBz
dXBwb3J0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJlMTcxOTEwNzczZjBhMWZjYzFiZjA5
OGI1OGI1M2IyNmQ5MzRhYzQuLjU4ZGNiZDUwMTI3MzQ0YzhjOTYzNDE1YTU2NTRkMTBkOTYzYmRk
OGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTUwLDYgKzExNTAsNyBAQAogCQlDRURB
MTI0MTI0MzdDOUZCMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5v
bi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRURBMTI0MDI0MzdDOUVBMDBDMjhBOUUgLyogZWRpdGFi
bGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21wb3NpdGVkLW92ZXJsYXAuaHRtbCAqLzsg
fTsKIAkJRDM0RTA4NzYxRTRFNDJFMTAwNUZGMTRBIC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDNCRTVFMzQx
RTRDRTg1RTAwRkQ1NjNBIC8qIFdLV2ViVmlld0dldENvbnRlbnRzLm1tICovOyB9OwogCQlERjRC
MjczOTIxQTQ3NzI4MDA5QkQxQ0EgLyogV0tOU0RpY3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFz
aC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERGNEIy
NzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFyeUNyYXNo
Lm1tICovOyB9OworCQlERjY1ODA5NDI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERjY1ODA5
MjI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi87IH07CiAJCURGQjgwRTM4
MjYxNTEyQzEwMDJENDc3MSAvKiBUZXN0QXdha2VuZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERkI4MEUzNjI2MTUxMjRFMDAyRDQ3NzEgLyogVGVz
dEF3YWtlbmVyLm1tICovOyB9OwogCQlERkI4RkYzMjI0OTJGNTI0MDBGMDBCMEQgLyogUHJlY29u
bmVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERG
QjhGRjMxMjQ5MkY1MUEwMEYwMEIwRCAvKiBQcmVjb25uZWN0Lm1tICovOyB9OwogCQlFMTIyMERD
QTE1NUIyOEFBMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxlV2l0aGluUmVzb3VyY2VMb2Fk
RGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTIyMERDOTE1NUIyODdEMDAxM0UyRkMgLyogTWVtb3J5Q2FjaGVEaXNhYmxl
V2l0aGluUmVzb3VyY2VMb2FkRGVsZWdhdGUuaHRtbCAqLzsgfTsKQEAgLTMwMTEsNiArMzAxMiw4
IEBACiAJCUQzQkU1RTM0MUU0Q0U4NUUwMEZENTYzQSAvKiBXS1dlYlZpZXdHZXRDb250ZW50cy5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2ViVmlld0dldENv
bnRlbnRzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEQzY5QUE2MjFDRjc3QzY1
MDBDNjI3MkYgLyogU2NvcGVkTGFtYmRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFNjb3BlZExhbWJkYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CURGNEIyNzM4MjFBNDc3MjcwMDlCRDFDQSAvKiBXS05TRGljdGlvbmFyeUVtcHR5RGljdGlvbmFy
eUNyYXNoLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tOU0Rp
Y3Rpb25hcnlFbXB0eURpY3Rpb25hcnlDcmFzaC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJREY2NTgwOTIyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVNOMVV0aWxpdGllcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCURGNjU4MDkzMjcyMjE2ODkwMEIzRjFDMSAvKiBBU04x
VXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFTTjFVdGlsaXRp
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY2QkM0NkYyNTM0RTEyMDAwOEY2
M0NDIC8qIFRlc3REb3dubG9hZERlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gVGVz
dERvd25sb2FkRGVsZWdhdGUubW07IHBhdGggPSBjb2NvYS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJREY2QkM0NzAyNTM0RTEyMDAwOEY2M0ND
IC8qIFRlc3REb3dubG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3REb3dubG9hZERl
bGVnYXRlLmg7IHBhdGggPSBjb2NvYS9UZXN0RG93bmxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlERjhBMkU0MTI2N0JFRkFCMDBFRDU5REYgLyogV2ViU29ja2V0
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViU29ja2V0Lm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzc4Myw2ICszNzg2LDggQEAKIAkJCQk3
MTJFNEJDMDI1RERDNTJBMDAwNzIwMUMgLyogQW5pbWF0aW9uRnJhbWVSYXRlLmNwcCAqLywKIAkJ
CQk1NzE1MkI1RDIxQ0MyMDQ1MDAwQzM3Q0EgLyogQXBkdVRlc3QuY3BwICovLAogCQkJCTYzNTRG
NEQwMUY3QzNBQjUwMEQ4OURGMyAvKiBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCAqLywK
KwkJCQlERjY1ODA5MjI3MjIxNjg5MDBCM0YxQzEgLyogQVNOMVV0aWxpdGllcy5jcHAgKi8sCisJ
CQkJREY2NTgwOTMyNzIyMTY4OTAwQjNGMUMxIC8qIEFTTjFVdGlsaXRpZXMuaCAqLywKIAkJCQk5
M0E3MjBFNTE4RjFBMEU4MDBBODQ4RTEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJ
MDdDMDQ2QzkxRTQyNTczRTAwNzIwMUU3IC8qIENBUmluZ0J1ZmZlci5jcHAgKi8sCiAJCQkJNTcz
MDNCQzIyMDA3MUUyMjAwMzU1OTY1IC8qIENCT1JSZWFkZXJUZXN0LmNwcCAqLywKQEAgLTU0NTQs
NiArNTQ1OSw3IEBACiAJCQkJNjNGNjY4MjIxRjk3RjdGOTAwMzJFRTUxIC8qIEFwcGxpY2F0aW9u
TWFuaWZlc3QubW0gaW4gU291cmNlcyAqLywKIAkJCQk2MzU0RjREMTFGN0MzQUI1MDBEODlERjMg
LyogQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVG
NkFENTI2NzdDMEJFMDA3OTY3REMgLyogQXBwUHJpdmFjeVJlcG9ydC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCURGNjU4MDk0MjcyMjE2ODkwMEIzRjFDMSAvKiBBU04xVXRpbGl0aWVzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTUxQjQwRDlFMjNBQzk2MjQwMEUwNTI0MSAvKiBBc3luY0Z1bmN0aW9u
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODM0MTM4QzcyMDMyNjFDQTAwRjI2OTYwIC8qIEFzeW5j
UG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
QjQxQTQxMUE3RTAwNDQ3QzRDIC8qIEF0dHJpYnV0ZWRTdHJpbmcubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0
aWVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVz
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zMzk0MDA2ZmJhZmVlMWZlNTZlZjMwZjFhZjA5NWZiODFjOGZmZTZh
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0FT
TjFVdGlsaXRpZXMuY3BwCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkFTTjFVdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9V
bmlxdWVSZWYuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBBU04xIHsK
Kworc3RydWN0IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOwor
ICAgIHZpcnR1YWwgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JikgY29uc3QgPSAwOworICAg
IHZpcnR1YWwgfk9iamVjdCgpID0gZGVmYXVsdDsKK3Byb3RlY3RlZDoKKyAgICBzaXplX3Qgc2l6
ZVNlcmlhbGl6ZWRTaXplKHNpemVfdCBzaXplKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKHNp
emUgPD0gMHg3RikKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICBBU1NFUlQoc2l6ZSA8
PSBzdGQ6Om51bWVyaWNfbGltaXRzPHVpbnQxNl90Pjo6bWF4KCkpOworICAgICAgICByZXR1cm4g
MzsKKyAgICB9CisgICAgdm9pZCBzZXJpYWxpemVTaXplKFZlY3Rvcjx1aW50OF90PiYgdmVjdG9y
LCBzaXplX3Qgc2l6ZSkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChzaXplIDw9IHN0ZDo6
bnVtZXJpY19saW1pdHM8dWludDE2X3Q+OjptYXgoKSk7CisgICAgICAgIGlmIChzaXplID4gMHg3
RikgeworICAgICAgICAgICAgdmVjdG9yLmFwcGVuZCgweDgyKTsKKyAgICAgICAgICAgIHZlY3Rv
ci5hcHBlbmQoc3RhdGljX2Nhc3Q8dWludDhfdD4oc2l6ZSA+PiA4KSk7CisgICAgICAgIH0KKyAg
ICAgICAgdmVjdG9yLmFwcGVuZChzdGF0aWNfY2FzdDx1aW50OF90PihzaXplKSk7CisgICAgfQor
fTsKKworc3RydWN0IE9iamVjdElkZW50aWZpZXIgOiBPYmplY3QgeworICAgIFdURl9NQUtFX1NU
UlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICBlbnVtIGNsYXNzIFR5cGUgOiB1aW50OF90IHsKKyAg
ICAgICAgUnNhRW5jcnlwdGlvbiwKKyAgICAgICAgUnNhcHNzLAorICAgICAgICBTaGEzODQsCisg
ICAgICAgIFBrY3MxTUdGCisgICAgfTsKKyAgICBPYmplY3RJZGVudGlmaWVyKFR5cGUgdHlwZSkK
KyAgICAgICAgOiB0eXBlKHR5cGUpIHsgfQorcHJpdmF0ZToKKyAgICBjb25zdCBUeXBlIHR5cGU7
CisgICAgc2l6ZV90IGVuY29kZWRMZW5ndGhCeXRlcygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDEx
OyB9CisgICAgdm9pZCBzZXJpYWxpemVUbyhWZWN0b3I8dWludDhfdD4mIHZlY3RvcikgY29uc3Qg
ZmluYWwKKyAgICB7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHg2KTsKKyAgICAgICAgYXV0byBv
aWRCeXRlcyA9IGJ5dGVzKCk7CisgICAgICAgIHZlY3Rvci5hcHBlbmQob2lkQnl0ZXMuc2l6ZSgp
KTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZChvaWRCeXRlcy5kYXRhKCksIG9pZEJ5dGVzLnNpemUo
KSk7CisgICAgfQorICAgIHN0ZDo6YXJyYXk8dWludDhfdCwgOT4gYnl0ZXMoKSBjb25zdAorICAg
IHsKKyAgICAgICAgc3dpdGNoICh0eXBlKSB7CisgICAgICAgIGNhc2UgVHlwZTo6UnNhRW5jcnlw
dGlvbjoKKyAgICAgICAgICAgIHJldHVybiB7IDB4MkEsIDB4ODYsIDB4NDgsIDB4ODYsIDB4Rjcs
IDB4MEQsIDB4MDEsIDB4MDEsIDB4MDEgfTsKKyAgICAgICAgY2FzZSBUeXBlOjpSc2Fwc3M6Cisg
ICAgICAgICAgICByZXR1cm4geyAweDJBLCAweDg2LCAweDQ4LCAweDg2LCAweEY3LCAweDBELCAw
eDAxLCAweDAxLCAweDBBIH07CisgICAgICAgIGNhc2UgVHlwZTo6U2hhMzg0OgorICAgICAgICAg
ICAgcmV0dXJuIHsgMHg2MCwgMHg4NiwgMHg0OCwgMHgwMSwgMHg2NSwgMHgwMywgMHgwNCwgMHgw
MiwgMHgwMiB9OworICAgICAgICBjYXNlIFR5cGU6OlBrY3MxTUdGOgorICAgICAgICAgICAgcmV0
dXJuIHsgMHgyQSwgMHg4NiwgMHg0OCwgMHg4NiwgMHhGNywgMHgwRCwgMHgwMSwgMHgwMSwgMHgw
OCB9OworICAgICAgICB9CisgICAgfQorfTsKKworc3RydWN0IFNlcXVlbmNlIDogT2JqZWN0IHsK
KyAgICBXVEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUuLi4gVHlwZXM+CisgICAgc3RhdGljIFVuaXF1ZVJlZjxTZXF1ZW5jZT4gY3JlYXRlKFR5cGVz
Li4uIHR5cGVzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWVSZWY8U2VxdWVuY2U+
KFZlY3RvcjxVbmlxdWVSZWY8T2JqZWN0Pj46OmZyb20oc3RkOjpmb3J3YXJkPFR5cGVzPih0eXBl
cykuLi4pKTsKKyAgICB9CisgICAgU2VxdWVuY2UoVmVjdG9yPFVuaXF1ZVJlZjxPYmplY3Q+PiYm
IGVsZW1lbnRzKQorICAgICAgICA6IGVsZW1lbnRzKFdURk1vdmUoZWxlbWVudHMpKSB7IH0KK3By
aXZhdGU6CisgICAgY29uc3QgVmVjdG9yPFVuaXF1ZVJlZjxPYmplY3Q+PiBlbGVtZW50czsKKyAg
ICBzaXplX3QgZW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAg
IHNpemVfdCBlbGVtZW50Qnl0ZXMgPSBlbGVtZW50RW5jb2RlZExlbmd0aEJ5dGVzKCk7CisgICAg
ICAgIHJldHVybiAxICsgc2l6ZVNlcmlhbGl6ZWRTaXplKGVsZW1lbnRCeXRlcykgKyBlbGVtZW50
Qnl0ZXM7CisgICAgfQorICAgIHZvaWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0
b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4MzApOworICAg
ICAgICBzZXJpYWxpemVTaXplKHZlY3RvciwgZWxlbWVudEVuY29kZWRMZW5ndGhCeXRlcygpKTsK
KyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBvYmplY3QgOiBlbGVtZW50cykKKyAgICAgICAgICAg
IG9iamVjdC0+c2VyaWFsaXplVG8odmVjdG9yKTsKKyAgICB9CisgICAgc2l6ZV90IGVsZW1lbnRF
bmNvZGVkTGVuZ3RoQnl0ZXMoKSBjb25zdAorICAgIHsKKyAgICAgICAgc2l6ZV90IHRvdGFsID0g
MDsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBlbGVtZW50IDogZWxlbWVudHMpCisgICAgICAg
ICAgICB0b3RhbCArPSBlbGVtZW50LT5lbmNvZGVkTGVuZ3RoQnl0ZXMoKTsKKyAgICAgICAgcmV0
dXJuIHRvdGFsOworICAgIH0KK307CisKK3N0cnVjdCBOdWxsIDogT2JqZWN0IHsKKyAgICBXVEZf
TUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7Citwcml2YXRlOgorICAgIHNpemVfdCBlbmNvZGVk
TGVuZ3RoQnl0ZXMoKSBjb25zdCBmaW5hbCB7IHJldHVybiAyOyB9CisgICAgdm9pZCBzZXJpYWxp
emVUbyhWZWN0b3I8dWludDhfdD4mIHZlY3RvcikgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAg
IHZlY3Rvci5hcHBlbmQoMHgwNSk7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHgwMCk7CisgICAg
fQorfTsKKworc3RydWN0IEluZGV4V3JhcHBlciA6IE9iamVjdCB7CisgICAgV1RGX01BS0VfU1RS
VUNUX0ZBU1RfQUxMT0NBVEVEOworICAgIEluZGV4V3JhcHBlcih1aW50OF90IGluZGV4LCBVbmlx
dWVSZWY8T2JqZWN0PiYmIHdyYXBwZWQpCisgICAgICAgIDogaW5kZXgoaW5kZXgpLCB3cmFwcGVk
KFdURk1vdmUod3JhcHBlZCkpIHsgfQorcHJpdmF0ZToKKyAgICBjb25zdCB1aW50OF90IGluZGV4
OworICAgIFVuaXF1ZVJlZjxPYmplY3Q+IHdyYXBwZWQ7CisgICAgc2l6ZV90IGVuY29kZWRMZW5n
dGhCeXRlcygpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICBzaXplX3Qgd3JhcHBlZEJ5dGVz
ID0gd3JhcHBlZC0+ZW5jb2RlZExlbmd0aEJ5dGVzKCk7CisgICAgICAgIHJldHVybiAxICsgc2l6
ZVNlcmlhbGl6ZWRTaXplKHdyYXBwZWRCeXRlcykgKyB3cmFwcGVkQnl0ZXM7CisgICAgfQorICAg
IHZvaWQgc2VyaWFsaXplVG8oVmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0IGZpbmFsCisg
ICAgeworICAgICAgICBzd2l0Y2ggKGluZGV4KSB7CisgICAgICAgIGNhc2UgMDoKKyAgICAgICAg
ICAgIHZlY3Rvci5hcHBlbmQoMHhhMCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2Fz
ZSAxOgorICAgICAgICAgICAgdmVjdG9yLmFwcGVuZCgweGExKTsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIDI6CisgICAgICAgICAgICB2ZWN0b3IuYXBwZW5kKDB4YTIpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICAgICAgfQorICAgICAgICBzZXJpYWxpemVTaXplKHZlY3Rvciwgd3Jh
cHBlZC0+ZW5jb2RlZExlbmd0aEJ5dGVzKCkpOworICAgICAgICB3cmFwcGVkLT5zZXJpYWxpemVU
byh2ZWN0b3IpOworICAgIH0KK307CisKK3N0cnVjdCBJbnRlZ2VyIDogT2JqZWN0IHsKKyAgICBX
VEZfTUFLRV9TVFJVQ1RfRkFTVF9BTExPQ0FURUQ7CisgICAgSW50ZWdlcih1aW50OF90IHZhbHVl
KQorICAgICAgICA6IHZhbHVlKHZhbHVlKSB7IH0KK3ByaXZhdGU6CisgICAgY29uc3QgdWludDhf
dCB2YWx1ZTsKKyAgICBzaXplX3QgZW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3QgZmluYWwKKyAg
ICB7CisgICAgICAgIHJldHVybiAzOworICAgIH0KKyAgICB2b2lkIHNlcmlhbGl6ZVRvKFZlY3Rv
cjx1aW50OF90PiYgdmVjdG9yKSBjb25zdCBmaW5hbAorICAgIHsKKyAgICAgICAgdmVjdG9yLmFw
cGVuZCgweDAyKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZCgweDAxKTsKKyAgICAgICAgdmVjdG9y
LmFwcGVuZCh2YWx1ZSk7CisgICAgfQorfTsKKworc3RydWN0IEJpdFN0cmluZyA6IE9iamVjdCB7
CisgICAgV1RGX01BS0VfU1RSVUNUX0ZBU1RfQUxMT0NBVEVEOworICAgIEJpdFN0cmluZyhWZWN0
b3I8dWludDhfdD4mJiBieXRlcykKKyAgICAgICAgOiBieXRlcyhXVEZNb3ZlKGJ5dGVzKSkgeyB9
Citwcml2YXRlOgorICAgIGNvbnN0IFZlY3Rvcjx1aW50OF90PiBieXRlczsKKyAgICBzaXplX3Qg
ZW5jb2RlZExlbmd0aEJ5dGVzKCkgY29uc3QgZmluYWwKKyAgICB7CisgICAgICAgIHNpemVfdCBi
eXRlU2l6ZSA9IGJ5dGVzLnNpemUoKTsKKyAgICAgICAgcmV0dXJuIDIgKyBzaXplU2VyaWFsaXpl
ZFNpemUoYnl0ZVNpemUpICsgYnl0ZVNpemU7CisgICAgfQorICAgIHZvaWQgc2VyaWFsaXplVG8o
VmVjdG9yPHVpbnQ4X3Q+JiB2ZWN0b3IpIGNvbnN0IGZpbmFsCisgICAgeworICAgICAgICB2ZWN0
b3IuYXBwZW5kKDB4MDMpOworICAgICAgICBzZXJpYWxpemVTaXplKHZlY3RvciwgYnl0ZXMuc2l6
ZSgpICsgMSk7CisgICAgICAgIHZlY3Rvci5hcHBlbmQoMHgwMCk7CisgICAgICAgIHZlY3Rvci5h
cHBlbmRWZWN0b3IoYnl0ZXMpOworICAgIH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFTTjEKKwor
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitWZWN0b3I8dWludDhfdD4gd3JhcFB1YmxpY0tl
eVdpdGhSU0FQU1NPSUQoVmVjdG9yPHVpbnQ4X3Q+JiYgcHVibGljS2V5KQoreworI2lmIEhBVkUo
UlNBX1BTU19PSUQpCisgICAgYXV0byBzZXF1ZW5jZSA9IEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUo
CisgICAgICAgIEFTTjE6OlNlcXVlbmNlOjpjcmVhdGUoCisgICAgICAgICAgICBtYWtlVW5pcXVl
UmVmPEFTTjE6Ok9iamVjdElkZW50aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6OlR5cGU6
OlJzYXBzcyksCisgICAgICAgICAgICBBU04xOjpTZXF1ZW5jZTo6Y3JlYXRlKAorICAgICAgICAg
ICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6SW5kZXhXcmFwcGVyPigwLCBBU04xOjpTZXF1ZW5j
ZTo6Y3JlYXRlKAorICAgICAgICAgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9iamVj
dElkZW50aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6OlR5cGU6OlNoYTM4NCkKKyAgICAg
ICAgICAgICAgICApKSwKKyAgICAgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6OkluZGV4
V3JhcHBlcj4oMSwgQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSgKKyAgICAgICAgICAgICAgICAgICAg
bWFrZVVuaXF1ZVJlZjxBU04xOjpPYmplY3RJZGVudGlmaWVyPihBU04xOjpPYmplY3RJZGVudGlm
aWVyOjpUeXBlOjpQa2NzMU1HRiksCisgICAgICAgICAgICAgICAgICAgIEFTTjE6OlNlcXVlbmNl
OjpjcmVhdGUoCisgICAgICAgICAgICAgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok9i
amVjdElkZW50aWZpZXI+KEFTTjE6Ok9iamVjdElkZW50aWZpZXI6OlR5cGU6OlNoYTM4NCkKKyAg
ICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkpLAorICAgICAgICAgICAgICAg
IG1ha2VVbmlxdWVSZWY8QVNOMTo6SW5kZXhXcmFwcGVyPigyLCBtYWtlVW5pcXVlUmVmPEFTTjE6
OkludGVnZXI+KDQ4KSkKKyAgICAgICAgICAgICkKKyAgICAgICAgKSwKKyAgICAgICAgbWFrZVVu
aXF1ZVJlZjxBU04xOjpCaXRTdHJpbmc+KFdURk1vdmUocHVibGljS2V5KSkKKyAgICApOworI2Vs
c2UKKyAgICBhdXRvIHNlcXVlbmNlID0gQVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSgKKyAgICAgICAg
QVNOMTo6U2VxdWVuY2U6OmNyZWF0ZSgKKyAgICAgICAgICAgIG1ha2VVbmlxdWVSZWY8QVNOMTo6
T2JqZWN0SWRlbnRpZmllcj4oQVNOMTo6T2JqZWN0SWRlbnRpZmllcjo6VHlwZTo6UnNhRW5jcnlw
dGlvbiksCisgICAgICAgICAgICBtYWtlVW5pcXVlUmVmPEFTTjE6Ok51bGw+KCkKKyAgICAgICAg
KSwKKyAgICAgICAgbWFrZVVuaXF1ZVJlZjxBU04xOjpCaXRTdHJpbmc+KFdURk1vdmUocHVibGlj
S2V5KSkKKyAgICApOworI2VuZGlmCisKKyAgICBWZWN0b3I8dWludDhfdD4gd3JhcHBlZDsKKyAg
ICBzdGF0aWNfY2FzdDxBU04xOjpPYmplY3QmPihzZXF1ZW5jZS5nZXQoKSkuc2VyaWFsaXplVG8o
d3JhcHBlZCk7CisgICAgcmV0dXJuIHdyYXBwZWQ7Cit9CisKK30KZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9BU04xVXRpbGl0aWVzLmggYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQVNOMVV0aWxpdGllcy5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiZGIx
ZDU2NzU1YjkzM2E2MDBjY2ViNjdjNzIxNjA3YTIzZjYwZTYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQVNOMVV0aWxpdGllcy5oCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9Gb3J3
YXJkLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworVmVjdG9yPHVpbnQ4X3Q+IHdy
YXBQdWJsaWNLZXlXaXRoUlNBUFNTT0lEKFZlY3Rvcjx1aW50OF90PiYmIHB1YmxpY0tleSk7CisK
K30KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IGMxNTJjYzY2ZDViNWVlYTgyYzUwMmE1
ZDdhNjE2ODk0NzBkMzY3YWMuLmU4ZGUzNWQ2YTlhM2NjOGVmMzI5OTJhMTg1ZjgwMDc0ZThlMjZl
OGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtMzAxLDcgKzMwMSwxMSBAQCBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkU291cmNlTm9uY2UpCiAjaWYgSEFWRShS
U0FfQlNTQSkKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRCbGluZGVkU2Vj
cmV0KQogeworI2lmIEhBVkUoUlNBX1BTU19PSUQpCisgICAgY29uc3QgY2hhciBzZXJ2ZXJQdWJs
aWNLZXlCYXNlNjRVUkxbXSA9ICJNSUlDVWpBOUJna3Foa2lHOXcwQkFRb3dNS0FOTUFzR0NXQ0dT
QUZsQXdRQ0FxRWFNQmdHQ1NxR1NJYjNEUUVCQ0RBTEJnbGdoa2dCWlFNRUFnS2lBd0lCTUFPQ0Fn
OEFNSUlDQ2dLQ0FnRUFvR2hVNU1nc2JiNTFaYkpWUEhTZ2Y4YzkzVEpkdGt4ZUtmeXhRNWZDcHdF
MkZlOXhKN3RCeUV4ZEdLajRYTy1IRmk3bnBtdEVQelI0Y1JYZHNBTDdZY0g1VVhOYlZoWG1WY2JG
Q0JYa3MtSWgtanFMd2ZOYWMwd1BMRzVLMVp6aGYxZ1otLUpCelZqdzg3enZxcFdyenp4dml1Vl9f
MHNuX3U3ZjAxRTFPZGFEODMxMTBmaGZpWHBfRXg2MlEydWhjZWswaHFicUV2eUtsTFZCT2psSkZK
YzJGTHl3LWw4LTl4ZDdHY1gxWlJ5UHg0bElUdllHN0tJYlNNckZUZnVRTk95SmY0RGxPOTdxcTA4
UjZVdGwyNDlBbkJmTGUzWkRiV0JubDBmRE93a0pnQm1iYWE3RW5SbFEzcDZJcjJTWTFoTlRuelct
cDJjZXl0SU1Zd1RNU0VTNy1qMjFvZVRVQy1PbWNDXzVnMDVBZ3hST3pVSlBaZHlZMzNtNFE3bHFr
SGtMQVl0ZE4yVFZDUDc5TXVzd1MtZkpKUU9EX2REQ3FxX2hrME15U0xDYm5VR2U1bHlGQm9PNXZC
TUg1azM4TGpTUXVONmpmUDdxdVlBNmNPT056bW44NDJlTFQ2MXRJalJvWDJjemVVSnJTbXg4OVNm
WThXbkZFMmZoazlHNTJjWHA2TDJWenI1SVY3ck93czNaUHctUm5qS25aWmFlanMwYktHT1hDMS1q
bC11NEE1aXA1NW9obFVqbTdsdkR0S0ZBZUo3Z2FqSkJ0aU5ucTNzM21fSU1rdjd6dENRcHYwcEJ4
c3Q2TW12Tk9PMGpPUXZZa3pRYkdvb0kxX3FqZUR1cDBCWVk2N3h4eU5SYUE5VjRDS0VKN2pfaHpu
ckFtalNpejBMU3FUa0NBd0VBQVE9PSI7CisjZWxzZQogICAgIGNvbnN0IGNoYXIgc2VydmVyUHVi
bGljS2V5QmFzZTY0VVJMW10gPSAiTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FnOEFNSUlD
Q2dLQ0FnRUF6YjFkVGhydFl3Vmg0NlNqSW5lZ0toQXFwYkp3bTFYblRCQ3Z5YlNLOHprNTNSMEFt
MWhHMzNBVkY1SjFscVlmMzZ3cDY2M0dhc2NsSHRxenZ4RlpJdkRBMURVU0g0YVp6X2ZESENUVHhF
ZUpWUE9SUzN6Tk4yVWpXd2J0bndzaDRCbURUaS16X2NEbjBMQXoySnVaeUtseUZ0NUdnVkxBUXZM
OUgzVkxIVTlfWEhOSy11Ym95WGZjSFJUdHJEbnB1M2M2d3ZYNWRkLUFKb0xtSVFUWkJFSmZWa3hC
R3puazFxS0hqYzZuQVNBaXJLRl93SkNudXdBSzhDNkJBY2pOY3dVV0NlS3AwWUVDekNYVS0tSlhk
Mk9FVS1RaHhQQzY3ZmFpRE9oM1YwdmxmcVpMdHJsYm5hblVDS3J2aHc3R2FHT0dZb3RJcm5adHVO
ZnhDMTRkX1hOVmQxRlM4bkhqUlRIbkVnd19qbmxTc3NmZ1N0ejB1SnRjbWtmZ29KQnZPRTRtSVJw
aTdpU2xSZlhOa0tzV1gxSi1nd2NuQ1ZvNXUwdUpFVzZYNk55dkVHWUo4dzVCUGZ3c1F1Szl5LTRa
N2lrdDlJT3VjRUhZN1RoRG1pOVROTmhIQlZqMEd1NHdHb1NqcTNhNnZMNU4xMFpTSFhvcTFYZ2ZH
UHJtSGhoTDkwY2p2V29ub3lPWHNVcWxYRXpUakQyVzk4OTdRLU14OUJVTnJHUVBxbUl4OEY1TXd4
V2NPcnllOFdScDRRODhuMllTVW5WN0M4YXlsZDN2MUZoN041amVTcWVWbXREVlJZVG4yc1ZmTnFn
WHJ6Z2RpZ0pjUVI4dkZFTnU2bnpGUHdzclhQTWFDaUxVblpOVW1RMVpTTFFlUXloWVh4SHFSSnJu
dUNEV1hMa0NBd0VBQVEiOworI2VuZGlmCiAKICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCBwY20oCiAgICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VJRCh7IH0pLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5t
bQppbmRleCA0ZjI2OThjMTU2NWEzNTVlOWFjMjg1OGIwYjgyMDlmMDQzN2ZkM2Q0Li4zYWQzZjVl
OWQwZjBkNzYxOGIzOGZkZWU1YjE4NDUyYzFkNWNlNjNiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2Nv
YS5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQpAQCAtMjgsMTQgKzI4LDEzIEBACiAKICNpZiBIQVZF
KFJTQV9CU1NBKQogCisjaW5jbHVkZSAiQVNOMVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIkNvcmVD
cnlwdG9TUEkuaCIKLQogI2luY2x1ZGUgPFdlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQu
aD4KICNpbmNsdWRlIDx3dGYvc3BpL2NvY29hL1NlY3VyaXR5U1BJLmg+CiAKLXVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwotCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Cit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgVmFsaWRCbGluZGVk
U2VjcmV0KQogewpAQCAtNzAsMjEgKzY5LDE1IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIFZhbGlkQmxpbmRlZFNlY3JldCkKICAgICBjb25zdCBzdHJ1Y3QgY2Nyc2Fic3NhX2NpcGhl
cnN1aXRlICpjaXBoZXJzdWl0ZSA9ICZjY3JzYWJzc2FfY2lwaGVyc3VpdGVfcnNhNDA5Nl9zaGEz
ODQ7CiAKICAgICBzaXplX3QgZXhwb3J0U2l6ZSA9IGNjZGVyX2VuY29kZV9yc2FfcHViX3NpemUo
cnNhUHVibGljS2V5KTsKLSAgICBhdXRvIHB1YmxpY0tleSA9IGFkb3B0TlMoW1tOU011dGFibGVE
YXRhIGFsbG9jXSBpbml0V2l0aExlbmd0aDpleHBvcnRTaXplXSk7Ci0gICAgY2NkZXJfZW5jb2Rl
X3JzYV9wdWIocnNhUHVibGljS2V5LCBzdGF0aWNfY2FzdDx1aW50OF90Kj4oW3B1YmxpY0tleSBt
dXRhYmxlQnl0ZXNdKSwgc3RhdGljX2Nhc3Q8dWludDhfdCo+KFtwdWJsaWNLZXkgbXV0YWJsZUJ5
dGVzXSkgKyBbcHVibGljS2V5IGxlbmd0aF0pOwotCi0gICAgYXV0byBzZWNLZXkgPSBhZG9wdENG
KFNlY0tleUNyZWF0ZVdpdGhEYXRhKChfX2JyaWRnZSBDRkRhdGFSZWYpcHVibGljS2V5LmdldCgp
LCAoX19icmlkZ2UgQ0ZEaWN0aW9uYXJ5UmVmKUB7Ci0gICAgICAgIChfX2JyaWRnZSBpZClrU2Vj
QXR0cktleVR5cGU6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleVR5cGVSU0EsCi0gICAgICAgIChf
X2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzOiAoX19icmlkZ2UgaWQpa1NlY0F0dHJLZXlDbGFz
c1B1YmxpYwotICAgIH0sIG5pbCkpOwotICAgIEVYUEVDVF9OT1RfTlVMTChzZWNLZXkpOworICAg
IFZlY3Rvcjx1aW50OF90PiByYXdLZXlCeXRlcyhleHBvcnRTaXplKTsKKyAgICBjY2Rlcl9lbmNv
ZGVfcnNhX3B1Yihyc2FQdWJsaWNLZXksIHJhd0tleUJ5dGVzLmRhdGEoKSwgcmF3S2V5Qnl0ZXMu
ZGF0YSgpICsgZXhwb3J0U2l6ZSk7CiAKLSAgICBhdXRvIHNwa2lEYXRhID0gYWRvcHRDRihTZWNL
ZXlDb3B5U3ViamVjdFB1YmxpY0tleUluZm8oc2VjS2V5LmdldCgpKSk7Ci0gICAgYXV0byAqbnNT
cGtpRGF0YSA9IChfX2JyaWRnZSBOU0RhdGEgKilzcGtpRGF0YS5nZXQoKTsKKyAgICBhdXRvIHdy
YXBwZWRLZXlCeXRlcyA9IHdyYXBQdWJsaWNLZXlXaXRoUlNBUFNTT0lEKFdURk1vdmUocmF3S2V5
Qnl0ZXMpKTsKIAogICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0LgotICAgIGF1dG8gZXJyb3JNZXNz
YWdlID0gcGNtLmNhbGN1bGF0ZUFuZFVwZGF0ZVNvdXJjZVVubGlua2FibGVUb2tlbihiYXNlNjRV
UkxFbmNvZGVUb1N0cmluZyhuc1Nwa2lEYXRhLmJ5dGVzLCBuc1Nwa2lEYXRhLmxlbmd0aCkpOwor
ICAgIGF1dG8gZXJyb3JNZXNzYWdlID0gcGNtLmNhbGN1bGF0ZUFuZFVwZGF0ZVNvdXJjZVVubGlu
a2FibGVUb2tlbihiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyh3cmFwcGVkS2V5Qnl0ZXMuZGF0YSgp
LCB3cmFwcGVkS2V5Qnl0ZXMuc2l6ZSgpKSk7CiAgICAgRVhQRUNUX0ZBTFNFKGVycm9yTWVzc2Fn
ZSk7CisgICAgCiAgICAgYXV0byBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPSBwY20udG9rZW5TaWdu
YXR1cmVKU09OKCk7CiAgICAgRVhQRUNUX0VRKHNvdXJjZVVubGlua2FibGVUb2tlbi0+YXNPYmpl
Y3QoKS0+c2l6ZSgpLCA0dWwpOwogICAgIEVYUEVDVF9TVFJFUShzb3VyY2VVbmxpbmthYmxlVG9r
ZW4tPmdldFN0cmluZygic291cmNlX2VuZ2FnZW1lbnRfdHlwZSJfcykudXRmOCgpLmRhdGEoKSwg
ImNsaWNrIik7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL0V2ZW50QXR0cmlidXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL0V2ZW50QXR0cmlidXRpb24ubW0KaW5kZXggZjM0ZjMyNzY1ZDcwZGMxMWIwNWViYjkx
Yjc0NGE4OWM3MjdjMzhmZi4uZjdlMTgzZmUxZTg5YjBjODY0NDgzZjYxYzRiZTY5N2ZlNzVmMzM5
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9FdmVu
dEF0dHJpYnV0aW9uLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvRXZlbnRBdHRyaWJ1dGlvbi5tbQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25m
aWcuaCIKIAorI2ltcG9ydCAiQVNOMVV0aWxpdGllcy5oIgogI2ltcG9ydCAiRGFlbW9uVGVzdFV0
aWxpdGllcy5oIgogI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGls
aXRpZXMuaCIKQEAgLTIxNiwxMSArMjE3LDEwIEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEZyYXVkUHJldmVudGlvbikKICAgICAgICAgKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlw
ZTogKF9fYnJpZGdlIGlkKWtTZWNBdHRyS2V5VHlwZVJTQSwKICAgICAgICAgKF9fYnJpZGdlIGlk
KWtTZWNBdHRyS2V5Q2xhc3M6IChfX2JyaWRnZSBpZClrU2VjQXR0cktleUNsYXNzUHVibGljCiAg
ICAgfSwgbmlsKSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHJhd0tleUJ5dGVzKHN0YXRpY19jYXN0
PGNvbnN0IHVpbnQ4X3QqPihwdWJsaWNLZXkuZ2V0KCkuYnl0ZXMpLCBwdWJsaWNLZXkuZ2V0KCku
bGVuZ3RoKTsKKyAgICBhdXRvIHdyYXBwZWRLZXlCeXRlcyA9IHdyYXBQdWJsaWNLZXlXaXRoUlNB
UFNTT0lEKFdURk1vdmUocmF3S2V5Qnl0ZXMpKTsKIAotICAgIGF1dG8gc3BraURhdGEgPSBhZG9w
dENGKFNlY0tleUNvcHlTdWJqZWN0UHVibGljS2V5SW5mbyhzZWNLZXkuZ2V0KCkpKTsKLSAgICBh
dXRvICpuc1Nwa2lEYXRhID0gKF9fYnJpZGdlIE5TRGF0YSAqKXNwa2lEYXRhLmdldCgpOwotCi0g
ICAgYXV0byBrZXlEYXRhID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobnNTcGtpRGF0YS5ieXRl
cywgbnNTcGtpRGF0YS5sZW5ndGgpOworICAgIGF1dG8ga2V5RGF0YSA9IGJhc2U2NFVSTEVuY29k
ZVRvU3RyaW5nKHdyYXBwZWRLZXlCeXRlcy5kYXRhKCksIHdyYXBwZWRLZXlCeXRlcy5zaXplKCkp
OwogCiAgICAgLy8gVGhlIHNlcnZlci4KICAgICBIVFRQU2VydmVyIHNlcnZlcihbJmRvbmUsIGNv
bm5lY3Rpb25Db3VudCA9IDAsICZyc2FQcml2YXRlS2V5LCAmbW9kdWx1c05CeXRlcywgJnJuZywg
JmtleURhdGEsICZzZWNLZXldIChDb25uZWN0aW9uIGNvbm5lY3Rpb24pIG11dGFibGUgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>