<?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>128680</bug_id>
          
          <creation_ts>2014-02-12 12:10:56 -0800</creation_ts>
          <short_desc>Wrap WebCrypto keys in SerializedScriptValue</short_desc>
          <delta_ts>2014-02-12 13:03:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>andersca</cc>
    
    <cc>beidson</cc>
    
    <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979955</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-12 12:10:56 -0800</bug_when>
    <thetext>We need to wrap WebCrypto keys for persistent storage, because they are not really different from passwords that live in Keychain.

As there is a single code path for transient and persistent serialization (and I&apos;m not even entirely sure if we can always know in advance), let&apos;s do that always.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979957</commentid>
    <comment_count>1</comment_count>
      <attachid>223993</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-12 12:16:31 -0800</bug_when>
    <thetext>Created attachment 223993
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>979981</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-02-12 13:03:51 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r163976&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223993</attachid>
            <date>2014-02-12 12:16:31 -0800</date>
            <delta_ts>2014-02-12 12:40:00 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>wrap.txt</filename>
            <type>text/plain</type>
            <size>32418</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2Mzk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDE0LTAyLTEyICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIFdyYXAgV2ViQ3J5cHRvIGtl
eXMgaW4gU2VyaWFsaXplZFNjcmlwdFZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUZXN0OiBjcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRt
bAorCisgICAgICAgIEFkZGVkIE1hYyBjb2RlIHRvIHdyYXAgYSBrZXkgd2l0aCBBRVMtR0NNLiBX
ZSB0aGVuIHNlcmlhbGl6ZSBpdCBpbnRvIGEgcGxpc3QsCisgICAgICAgIGJlY2F1c2UgbW9yZSBj
dXN0b20gZm9ybWF0cyB3b3VsZCBiZSBjcmF6eSAoZXZlbiB0aGUgY3VzdG9tIGZvcm1hdCBpbiBT
ZXJpYWxpemVkU2NyaXB0VmFsdWUKKyAgICAgICAgbWFrZXMgbWUgbmVydm91cywgd2UnbGwgY2Vy
dGFpbmx5IG5lZWQgdG8gY2hhbmdlIENyeXB0b0tleSBpbiB0aGUgZnV0dXJlKS4KKworICAgICAg
ICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvajoKKyAgICAgICAgKiBjcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmg6CisgICAg
ICAgICogY3J5cHRvL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg6IEFkZGVkLgorICAgICAgICAq
IGNyeXB0by9tYWMvU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW06IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6dmVjdG9yRnJvbU5TRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjp3cmFwU2Vy
aWFsaXplZENyeXB0b0tleSk6CisgICAgICAgIChXZWJDb3JlOjp1bndyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KToKKwogMjAxNC0wMi0xMiAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUu
Y29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE1vZGVybml6ZSBtaXNzZWQgaW5zcGVjdG9y
IGZpbGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gMTYzODkzKQorKysgU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTkwNyw2ICs5MDcs
NyBAQCBfX1pON1dlYkNvcmUyM2V2ZW50VGltZVN0YW1wU2luY2UxOTcwRVA3CiAjZW5kaWYKIF9f
Wk43V2ViQ29yZTIzZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWVFUktOM1dURjZTdHJpbmdFUmwKIF9f
Wk43V2ViQ29yZTIzZ2V0SG9zdG5hbWVzV2l0aENvb2tpZXNFUktOU18yMU5ldHdvcmtTdG9yYWdl
U2Vzc2lvbkVSTjNXVEY3SGFzaFNldElOUzNfNlN0cmluZ0VOUzNfMTBTdHJpbmdIYXNoRU5TM18x
MEhhc2hUcmFpdHNJUzVfRUVFRQorX19aTjdXZWJDb3JlMjN3cmFwU2VyaWFsaXplZENyeXB0b0tl
eUVSS04zV1RGNlZlY3RvckloTG0wRU5TMF8xNUNyYXNoT25PdmVyZmxvd0VFRVM1X1JTM18KIF9f
Wk43V2ViQ29yZTI0Q2FjaGVkUmVzb3VyY2VIYW5kbGVCYXNlMTFzZXRSZXNvdXJjZUVQTlNfMTRD
YWNoZWRSZXNvdXJjZUUKIF9fWk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTBt
YXJrZXJzRm9yRVBOU180Tm9kZUVOU18xNERvY3VtZW50TWFya2VyMTFNYXJrZXJUeXBlc0UKIF9f
Wk43V2ViQ29yZTI0RG9jdW1lbnRNYXJrZXJDb250cm9sbGVyMTNyZW1vdmVNYXJrZXJzRU5TXzE0
RG9jdW1lbnRNYXJrZXIxMU1hcmtlclR5cGVzRQpAQCAtOTI5LDYgKzkzMCw3IEBAIF9fWk43V2Vi
Q29yZTI0cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50RVIKIF9fWk43V2ViQ29yZTI1YWRkTGFuZ3Vh
Z2VDaGFuZ2VPYnNlcnZlckVQdlBGdlMwX0UKIF9fWk43V2ViQ29yZTI1Y29tcHV0ZVZpZXdwb3J0
QXR0cmlidXRlc0VOU18xN1ZpZXdwb3J0QXJndW1lbnRzRWlpaWZOU183SW50U2l6ZUUKIF9fWk43
V2ViQ29yZTI1Y3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZ0V2CitfX1pON1dlYkNvcmUyNXVud3Jh
cFNlcmlhbGl6ZWRDcnlwdG9LZXlFUktOM1dURjZWZWN0b3JJaExtMEVOUzBfMTVDcmFzaE9uT3Zl
cmZsb3dFRUVTNV9SUzNfCiBfX1pON1dlYkNvcmUyNkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
MTZjb250ZXh0RGVzdHJveWVkRXYKIF9fWk43V2ViQ29yZTI2Q29udGV4dERlc3RydWN0aW9uT2Jz
ZXJ2ZXJDMkVQTlNfMjJTY3JpcHRFeGVjdXRpb25Db250ZXh0RQogX19aTjdXZWJDb3JlMjZDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckQyRXYKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2Mzg5MykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTc4MCw2ICs1NzgwLDggQEAKIAkJRTE4MjU4QUMwRUYzQ0Q3MDAwOTMzMjQyIC8q
IEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4MjU4QUIwRUYzQ0Q3MDAwOTMzMjQyIC8qIEpTV29ya2Vy
R2xvYmFsU2NvcGVDdXN0b20uY3BwICovOyB9OwogCQlFMTg3MDU2MzE2RTU0QTBEMDA1ODVFOTcg
LyogTWFpblRocmVhZFRhc2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxODcwNTYyMTZFNTRBMEQwMDU4NUU5NyAvKiBNYWluVGhyZWFkVGFzay5oICov
OyB9OwogCQlFMTg3NzJGMTEyNkUyNjI5MDAzREQ1ODYgLyogTGFuZ3VhZ2UuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE4NzcyRjAxMjZFMjYyOTAw
M0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLzsgfTsKKwkJRTE4REYzMzUxOEFBRjEyQzAwNzczRTU5
IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXpl
ZENyeXB0b0tleVdyYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OworCQlFMThERjMzODE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tl
eVdyYXBNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMThERjMzNjE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMu
bW0gKi87IH07CiAJCUUxOTcyNzE2MTgyMDU0OUUwMDU5MkQ1MSAvKiBDcnlwdG9LZXlUeXBlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk3MjcxNTE4
MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovOyB9OwogCQlFMTlBQzNFRTE4MjRE
Qzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAv
KiBDcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwICovOyB9OwogCQlFMTlBQzNFRjE4MjREQzc5MDAz
NDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTlBQzNFNzE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRv
QWxnb3JpdGhtU0hBMjI0LmggKi87IH07CkBAIC0xMzA2Nyw2ICsxMzA2OSw4IEBACiAJCUUxODI1
OEFCMEVGM0NENzAwMDkzMzI0MiAvKiBKU1dvcmtlckdsb2JhbFNjb3BlQ3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTV29ya2VyR2xvYmFsU2NvcGVDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTg3MDU2MjE2RTU0QTBEMDA1
ODVFOTcgLyogTWFpblRocmVhZFRhc2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTWFpblRocmVhZFRhc2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4Nzcy
RjAxMjZFMjYyOTAwM0RENTg2IC8qIExhbmd1YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExhbmd1YWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOERGMzM2MThBQUYxNEQwMDc3M0U1
OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgbmFtZSA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOyBwYXRoID0g
bWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1TSEEyMjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtU0hBMjI0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5
QUMzRTcxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDIxLDYgKzIxMDI1LDcgQEAKIAkJCQlFMTlBQzNG
ODE4MjU2NkY3MDAzNDk0MjYgLyogQ3J5cHRvS2V5TWFjLmNwcCAqLywKIAkJCQlFMTY0RkFBNDE4
MzE1RTFBMDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBTWFjLmNwcCAqLywKIAkJCQlFMUZFMTM2MjE4
MzQzNTExMDA4OTJGMTMgLyogQ3J5cHRvRGlnZXN0TWFjLmNwcCAqLywKKwkJCQlFMThERjMzNjE4
QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW0gKi8sCiAJCQkp
OwogCQkJbmFtZSA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yMTIyMiw2
ICsyMTIyNyw3IEBACiAJCQkJRTEyNUY4NTUxODJDMEY4MzAwRDg0Q0Q5IC8qIENyeXB0b0tleVNl
cmlhbGl6YXRpb24uaCAqLywKIAkJCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRv
S2V5VHlwZS5oICovLAogCQkJCUUxNzJBRjZGMTgwRjI4OTUwMEZCQURCOSAvKiBDcnlwdG9LZXlV
c2FnZS5oICovLAorCQkJCUUxOERGMzM0MThBQUYxMkMwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5
cHRvS2V5V3JhcC5oICovLAogCQkJCUUxRkY4RjVDMTgwNzM2NEIwMDEzMjY3NCAvKiBTdWJ0bGVD
cnlwdG8uaWRsICovLAogCQkJCUUxRkY4RjVEMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlw
dG8uY3BwICovLAogCQkJCUUxRkY4RjVFMTgwNzQ0MjEwMDEzMjY3NCAvKiBTdWJ0bGVDcnlwdG8u
aCAqLywKQEAgLTIzNDIyLDYgKzIzNDI4LDcgQEAKIAkJCQkyRTM3REZEQjEyREJBRkI4MDBBNkIy
MzMgLyogRE9NVVJMLmggaW4gSGVhZGVycyAqLywKIAkJCQkxNUM3NzBBNjEwMEQ0MUNEMDA1QkEy
NjcgLyogRE9NVmFsaWRpdHlTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTM3QzAwOTdD
NzE1RjAwMTlGM0Q4IC8qIERPTVZpZXdzLmggaW4gSGVhZGVycyAqLywKKwkJCQlFMThERjMzNTE4
QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCBpbiBIZWFkZXJzICov
LAogCQkJCTMxQzBGRjQ5MEU0Q0VGREQwMDdENkZFNSAvKiBET01XZWJLaXRBbmltYXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzFDMEZGNEIwRTRDRUZERDAwN0Q2RkU1IC8qIERPTVdl
YktpdEFuaW1hdGlvbkV2ZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxNUIzQTZF
MTdDQkUyNjcwMDBGQ0NFOCAvKiBBY2Nlc3NpYmlsaXR5U2VhcmNoRmllbGRCdXR0b25zLmggaW4g
SGVhZGVycyAqLywKQEAgLTI2MzA0LDYgKzI2MzExLDcgQEAKIAkJCQk1MTJERDhGQjBEOTFFNkFG
MDAwRjg5RUUgLyogQXJjaGl2ZVJlc291cmNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxRkUx
MzdBMTg0RDIxQkIwMDg5MkYxMyAvKiBDcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNTEyREQ4RjcwRDkxRTZBRjAwMEY4OUVFIC8qIEFyY2hpdmVSZXNvdXJjZUNv
bGxlY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRTE4REYzMzgxOEFBRjE0RDAwNzczRTU5
IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlC
Mzc2MEMxNUM2QzY4NDAwNTkxMzFEIC8qIEFycmF5VmFsdWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJRkQ1Njg2QzkxM0FDMTgwMjAwQjY5QzY4IC8qIEFzeW5jQXVkaW9EZWNvZGVyLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUUxQ0RFOTIwMTUwMThFRDAwMDg2MkNDNSAvKiBBc3luY0ZpbGVTdHJl
YW0uY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ29tbW9u
Q3J5cHRvVXRpbGl0aWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3J5cHRvL0Nv
bW1vbkNyeXB0b1V0aWxpdGllcy5oCShyZXZpc2lvbiAxNjM4OTMpCisrKyBTb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vQ29tbW9uQ3J5cHRvVXRpbGl0aWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYg
Kzg5LDcgQEAgZXh0ZXJuICJDIiBDQ1JTQUNyeXB0b3JSZWYgQ0NSU0FDcnlwdG9yRwogZXh0ZXJu
ICJDIiB2b2lkIENDUlNBQ3J5cHRvclJlbGVhc2UoQ0NSU0FDcnlwdG9yUmVmIGtleSk7CiBleHRl
cm4gIkMiIENDQ3J5cHRvclN0YXR1cyBDQ1JTQUdldEtleUNvbXBvbmVudHMoQ0NSU0FDcnlwdG9y
UmVmIHJzYUtleSwgdWludDhfdCAqbW9kdWx1cywgc2l6ZV90ICptb2R1bHVzTGVuZ3RoLCB1aW50
OF90ICpleHBvbmVudCwgc2l6ZV90ICpleHBvbmVudExlbmd0aCwgdWludDhfdCAqcCwgc2l6ZV90
ICpwTGVuZ3RoLCB1aW50OF90ICpxLCBzaXplX3QgKnFMZW5ndGgpOwogZXh0ZXJuICJDIiBDQ1JT
QUtleVR5cGUgQ0NSU0FHZXRLZXlUeXBlKENDUlNBQ3J5cHRvclJlZiBrZXkpOworZXh0ZXJuICJD
IiBDQ0NyeXB0b3JTdGF0dXMgQ0NDcnlwdG9yR0NNKENDT3BlcmF0aW9uIG9wLCBDQ0FsZ29yaXRo
bSBhbGcsIGNvbnN0IHZvaWQqIGtleSwgc2l6ZV90IGtleUxlbmd0aCwgY29uc3Qgdm9pZCogaXYs
IHNpemVfdCBpdkxlbiwgY29uc3Qgdm9pZCogYURhdGEsIHNpemVfdCBhRGF0YUxlbiwgY29uc3Qg
dm9pZCogZGF0YUluLCBzaXplX3QgZGF0YUluTGVuZ3RoLCB2b2lkKiBkYXRhT3V0LCBjb25zdCB2
b2lkKiB0YWcsIHNpemVfdCogdGFnTGVuZ3RoKTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
aAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9TZXJpYWxpemVkQ3J5cHRv
S2V5V3JhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwX2gKKyNkZWZpbmUgU2VyaWFsaXplZENyeXB0
b0tleVdyYXBfaAorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworYm9vbCB3cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWlu
dDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rvcjx1aW50
OF90PiYgcmVzdWx0KTsKK2Jvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0
b3I8dWludDhfdD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5
LCBWZWN0b3I8dWludDhfdD4mIGtleSk7CisKK30KKworI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVf
Q1JZUFRPKQorCisjZW5kaWYgLy8gU2VyaWFsaXplZENyeXB0b0tleVdyYXBfaAoKUHJvcGVydHkg
Y2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvY3J5cHRvL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
LmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCituYXRpdmUK
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tCShyZXZp
c2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9TZXJpYWxpemVkQ3J5cHRvS2V5
V3JhcE1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5o
IgorCisjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKKyNpbmNsdWRlICJDb21tb25DcnlwdG9V
dGlsaXRpZXMuaCIKKyNpbmNsdWRlIDxDb21tb25DcnlwdG8vQ29tbW9uU3ltbWV0cmljS2V5d3Jh
cC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvQ3J5cHRv
Z3JhcGhpY1V0aWxpdGllcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NvbnN0IE5TVUlu
dGVnZXIgY3VycmVudFNlcmlhbGl6YXRpb25WZXJzaW9uID0gMTsKKworY29uc3QgTlNTdHJpbmcq
IHZlcnNpb25LZXkgPSBAInZlcnNpb24iOworY29uc3QgTlNTdHJpbmcqIHdyYXBwZWRLRUtLZXkg
PSBAIndyYXBwZWRLRUsiOworY29uc3QgTlNTdHJpbmcqIGVuY3J5cHRlZEtleUtleSA9IEAiZW5j
cnlwdGVkS2V5IjsKK2NvbnN0IE5TU3RyaW5nKiB0YWdLZXkgPSBAInRhZyI7CisKK2lubGluZSBW
ZWN0b3I8dWludDhfdD4gdmVjdG9yRnJvbU5TRGF0YShOU0RhdGEqIGRhdGEpCit7CisgICAgVmVj
dG9yPHVpbnQ4X3Q+IHJlc3VsdDsKKyAgICByZXN1bHQuYXBwZW5kKChjb25zdCB1aW50OF90Kilb
ZGF0YSBieXRlc10sIFtkYXRhIGxlbmd0aF0pOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK2Jv
b2wgd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBtYXN0ZXJL
ZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHJlc3VsdCkK
K3sKKyAgICBWZWN0b3I8dWludDhfdD4ga2VrKDE2KTsKKyAgICBDQ1JhbmRvbUNvcHlCeXRlcyhr
Q0NSYW5kb21EZWZhdWx0LCBrZWsuZGF0YSgpLCBrZWsuc2l6ZSgpKTsKKworICAgIFZlY3Rvcjx1
aW50OF90PiB3cmFwcGVkS0VLKENDU3ltbWV0cmljV3JhcHBlZFNpemUoa0NDV1JBUEFFUywga2Vr
LnNpemUoKSkpOworCisgICAgc2l6ZV90IHdyYXBwZWRLRUtTaXplID0gd3JhcHBlZEtFSy5zaXpl
KCk7CisgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDU3ltbWV0cmljS2V5V3JhcChrQ0NX
UkFQQUVTLCBDQ3JmYzMzOTRfaXYsIENDcmZjMzM5NF9pdkxlbiwgbWFzdGVyS2V5LmRhdGEoKSwg
bWFzdGVyS2V5LnNpemUoKSwga2VrLmRhdGEoKSwga2VrLnNpemUoKSwgd3JhcHBlZEtFSy5kYXRh
KCksICZ3cmFwcGVkS0VLU2l6ZSk7CisgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICB3cmFwcGVkS0VLLnNocmluayh3cmFwcGVkS0VLU2l6
ZSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gZW5jcnlwdGVkS2V5KGtleS5zaXplKCkpOworICAg
IHNpemVfdCB0YWdMZW5ndGggPSAxNjsKKyAgICB1aW50OF90IHRhZ1t0YWdMZW5ndGhdOworCisg
ICAgc3RhdHVzID0gQ0NDcnlwdG9yR0NNKGtDQ0VuY3J5cHQsIGtDQ0FsZ29yaXRobUFFUzEyOCwg
a2VrLmRhdGEoKSwga2VrLnNpemUoKSwKKyAgICAgICAgbnVsbHB0ciwgMCwgLy8gaXYKKyAgICAg
ICAgbnVsbHB0ciwgMCwgLy8gYXV0aCBkYXRhCisgICAgICAgIGtleS5kYXRhKCksIGtleS5zaXpl
KCksCisgICAgICAgIGVuY3J5cHRlZEtleS5kYXRhKCksCisgICAgICAgIHRhZywgJnRhZ0xlbmd0
aCk7CisKKyAgICBpZiAoc3RhdHVzICE9IGtDQ1N1Y2Nlc3MpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBSRUxFQVNFX0FTU0VSVCh0YWdMZW5ndGggPT0gMTYpOworCisgICAgYXV0byBkaWN0
aW9uYXJ5ID0gQHsKKyAgICAgICAgdmVyc2lvbktleTogW05TTnVtYmVyIG51bWJlcldpdGhVbnNp
Z25lZEludGVnZXI6Y3VycmVudFNlcmlhbGl6YXRpb25WZXJzaW9uXSwKKyAgICAgICAgd3JhcHBl
ZEtFS0tleTogW05TRGF0YSBkYXRhV2l0aEJ5dGVzOndyYXBwZWRLRUsuZGF0YSgpIGxlbmd0aDp3
cmFwcGVkS0VLLnNpemUoKV0sCisgICAgICAgIGVuY3J5cHRlZEtleUtleTogW05TRGF0YSBkYXRh
V2l0aEJ5dGVzOmVuY3J5cHRlZEtleS5kYXRhKCkgbGVuZ3RoOmVuY3J5cHRlZEtleS5zaXplKCld
LAorICAgICAgICB0YWdLZXk6IFtOU0RhdGEgZGF0YVdpdGhCeXRlczp0YWcgbGVuZ3RoOnRhZ0xl
bmd0aF0KKyAgICB9OworCisgICAgTlNEYXRhKiBzZXJpYWxpemF0aW9uID0gW05TUHJvcGVydHlM
aXN0U2VyaWFsaXphdGlvbiBkYXRhV2l0aFByb3BlcnR5TGlzdDpkaWN0aW9uYXJ5IGZvcm1hdDpO
U1Byb3BlcnR5TGlzdEJpbmFyeUZvcm1hdF92MV8wIG9wdGlvbnM6MCBlcnJvcjpudWxscHRyXTsK
KyAgICBpZiAoIXNlcmlhbGl6YXRpb24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
c3VsdCA9IHZlY3RvckZyb21OU0RhdGEoc2VyaWFsaXphdGlvbik7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK2Jvb2wgdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhf
dD4mIG1hc3RlcktleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8
dWludDhfdD4mIGtleSkKK3sKKyAgICBOU0RpY3Rpb25hcnkqIGRpY3Rpb25hcnkgPSBbTlNQcm9w
ZXJ0eUxpc3RTZXJpYWxpemF0aW9uIHByb3BlcnR5TGlzdFdpdGhEYXRhOltOU0RhdGEgZGF0YVdp
dGhCeXRlc05vQ29weToodm9pZCopd3JhcHBlZEtleS5kYXRhKCkgbGVuZ3RoOndyYXBwZWRLZXku
c2l6ZSgpIGZyZWVXaGVuRG9uZTpOT10gb3B0aW9uczowIGZvcm1hdDpudWxscHRyIGVycm9yOm51
bGxwdHJdOworICAgIGlmICghZGljdGlvbmFyeSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWQgdmVyc2lvbk9iamVjdCA9IFtkaWN0aW9uYXJ5IG9iamVjdEZvcktleTp2ZXJzaW9uS2V5
XTsKKyAgICBpZiAoIVt2ZXJzaW9uT2JqZWN0IGlzS2luZE9mQ2xhc3M6W05TTnVtYmVyIGNsYXNz
XV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoW3ZlcnNpb25PYmplY3QgdW5zaWdu
ZWRJbnRlZ2VyVmFsdWVdID4gY3VycmVudFNlcmlhbGl6YXRpb25WZXJzaW9uKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBpZCB3cmFwcGVkS0VLT2JqZWN0ID0gW2RpY3Rpb25hcnkgb2Jq
ZWN0Rm9yS2V5OndyYXBwZWRLRUtLZXldOworICAgIGlmICghW3dyYXBwZWRLRUtPYmplY3QgaXNL
aW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBW
ZWN0b3I8dWludDhfdD4gd3JhcHBlZEtFSyA9IHZlY3RvckZyb21OU0RhdGEod3JhcHBlZEtFS09i
amVjdCk7CisKKyAgICBpZCBlbmNyeXB0ZWRLZXlPYmplY3QgPSBbZGljdGlvbmFyeSBvYmplY3RG
b3JLZXk6ZW5jcnlwdGVkS2V5S2V5XTsKKyAgICBpZiAoIVtlbmNyeXB0ZWRLZXlPYmplY3QgaXNL
aW5kT2ZDbGFzczpbTlNEYXRhIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBW
ZWN0b3I8dWludDhfdD4gZW5jcnlwdGVkS2V5ID0gdmVjdG9yRnJvbU5TRGF0YShlbmNyeXB0ZWRL
ZXlPYmplY3QpOworCisgICAgaWQgdGFnT2JqZWN0ID0gW2RpY3Rpb25hcnkgb2JqZWN0Rm9yS2V5
OnRhZ0tleV07CisgICAgaWYgKCFbdGFnT2JqZWN0IGlzS2luZE9mQ2xhc3M6W05TRGF0YSBjbGFz
c11dKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHRhZyA9IHZl
Y3RvckZyb21OU0RhdGEodGFnT2JqZWN0KTsKKyAgICBpZiAodGFnLnNpemUoKSAhPSAxNikKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgVmVjdG9yPHVpbnQ4X3Q+IGtlayhDQ1N5bW1ldHJp
Y1Vud3JhcHBlZFNpemUoa0NDV1JBUEFFUywgd3JhcHBlZEtFSy5zaXplKCkpKTsKKyAgICBzaXpl
X3Qga2VrU2l6ZSA9IGtlay5zaXplKCk7CisgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IEND
U3ltbWV0cmljS2V5VW53cmFwKGtDQ1dSQVBBRVMsIENDcmZjMzM5NF9pdiwgQ0NyZmMzMzk0X2l2
TGVuLCBtYXN0ZXJLZXkuZGF0YSgpLCBtYXN0ZXJLZXkuc2l6ZSgpLCB3cmFwcGVkS0VLLmRhdGEo
KSwgd3JhcHBlZEtFSy5zaXplKCksIGtlay5kYXRhKCksICZrZWtTaXplKTsKKyAgICBpZiAoc3Rh
dHVzICE9IGtDQ1N1Y2Nlc3MpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBrZWsuc2hyaW5r
KGtla1NpemUpOworCisgICAgc2l6ZV90IHRhZ0xlbmd0aCA9IDE2OworICAgIHVpbnQ4X3QgYWN0
dWFsVGFnW3RhZ0xlbmd0aF07CisKKyAgICBrZXkucmVzaXplKGVuY3J5cHRlZEtleS5zaXplKCkp
OworICAgIHN0YXR1cyA9IENDQ3J5cHRvckdDTShrQ0NEZWNyeXB0LCBrQ0NBbGdvcml0aG1BRVMx
MjgsIGtlay5kYXRhKCksIGtlay5zaXplKCksCisgICAgICAgIG51bGxwdHIsIDAsIC8vIGl2Cisg
ICAgICAgIG51bGxwdHIsIDAsIC8vIGF1dGggZGF0YQorICAgICAgICBlbmNyeXB0ZWRLZXkuZGF0
YSgpLCBlbmNyeXB0ZWRLZXkuc2l6ZSgpLAorICAgICAgICBrZXkuZGF0YSgpLAorICAgICAgICBh
Y3R1YWxUYWcsICZ0YWdMZW5ndGgpOworCisgICAgaWYgKHN0YXR1cyAhPSBrQ0NTdWNjZXNzKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgUkVMRUFTRV9BU1NFUlQodGFnTGVuZ3RoID09IDE2
KTsKKworICAgIGlmIChjb25zdGFudFRpbWVNZW1jbXAodGFnLmRhdGEoKSwgYWN0dWFsVGFnLCB0
YWdMZW5ndGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30K
KworfQorCisjZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFj
Lm1tCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIworTEYKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTYz
OTY4KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTQtMDItMTIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+
CisKKyAgICAgICAgV3JhcCBXZWJDcnlwdG8ga2V5cyBpbiBTZXJpYWxpemVkU2NyaXB0VmFsdWUK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyODY4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJldHJpZXZl
IGEgbWFzdGVyIGtleSAocGxhY2Vob2xkZXIgY29kZSBmb3Igbm93KSwgYW5kIHVzZSBpdCB0byB3
cmFwIGtleSBkYXRhLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6d3JhcENyeXB0b0tleSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6dW53cmFwQ3J5cHRvS2V5KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojp3cmFwQ3J5cHRvS2V5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1bndyYXBD
cnlwdG9LZXkpOgorCiAyMDE0LTAyLTEyICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgU3RvcCB1c2luZyBQTEFURk9STShNQUMpIGluIFdlYktpdDIve0RhdGFiYXNl
LE5ldHdvcmt9UHJvY2VzcyBleGNlcHQgd2hlcmUgaXQgbWVhbnMg4oCcT1MgWCBidXQgbm90IGlP
U+KAnQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJl
dmlzaW9uIDE2Mzg5MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDc5LDE5ICs0NDc5LDE3IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpzZXRTY3JvbGxQaW5uaW5nQmVoYXYKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpTZXRTY3JvbGxQaW5uaW5nQmVoYXZpb3IocGlubmluZyksIG1fcGFnZUlE
KTsKIH0KIAotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKSAmJiAhUExBVEZPUk0oQ09DT0EpCiB2b2lkIFdlYlBhZ2VQcm94eTo6d3JhcENyeXB0b0tl
eShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgYm9vbCYgc3VjY2VlZGVkLCBWZWN0b3I8dWlu
dDhfdD4mIHdyYXBwZWRLZXkpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICB3cmFw
cGVkS2V5ID0ga2V5OwotICAgIHN1Y2NlZWRlZCA9IHRydWU7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICBzdWNjZWVkZWQgPSBmYWxzZTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnVud3Jh
cENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIGJvb2wmIHN1Y2Nl
ZWRlZCwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudC4K
LSAgICBrZXkgPSB3cmFwcGVkS2V5OwotICAgIHN1Y2NlZWRlZCA9IHRydWU7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICBzdWNjZWVkZWQgPSBmYWxzZTsKIH0KICNlbmRpZgogCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2
aXNpb24gMTYzODkzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJv
eHlNYWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbXBvcnQgPFdlYkNv
cmUvRGljdGF0aW9uQWx0ZXJuYXRpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvR3JhcGhpY3NMYXll
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaD4KICNpbXBvcnQgPFdlYkNvcmUv
U2hhcmVkQnVmZmVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5n
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KQEAgLTU3Miw0ICs1NzMsMjAgQEAg
dm9pZCBXZWJQYWdlUHJveHk6Om9wZW5QREZGcm9tVGVtcG9yYXJ5RgogICAgIFtbTlNXb3Jrc3Bh
Y2Ugc2hhcmVkV29ya3NwYWNlXSBvcGVuRmlsZTpwZGZGaWxlbmFtZV07CiB9CiAKKyNpZiBFTkFC
TEUoU1VCVExFX0NSWVBUTykKK3ZvaWQgV2ViUGFnZVByb3h5Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYga2V5LCBib29sJiBzdWNjZWVkZWQsIFZlY3Rvcjx1aW50OF90PiYg
d3JhcHBlZEtleSkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5KDE2KTsKKyAgICBt
ZW1zZXQobWFzdGVyS2V5LmRhdGEoKSwgMCwgbWFzdGVyS2V5LnNpemUoKSk7IC8vIEZJWE1FOiBO
b3QgaW1wbGVtZW50ZWQgeWV0LCB3aWxsIGJlIGdldHRpbmcgYSBrZXkgZnJvbSBjbGllbnQuCisg
ICAgc3VjY2VlZGVkID0gd3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCBrZXksIHdy
YXBwZWRLZXkpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0
IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwgYm9vbCYgc3VjY2VlZGVkLCBWZWN0b3I8dWlu
dDhfdD4mIGtleSkKK3sKKyAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5KDE2KTsKKyAgICBt
ZW1zZXQobWFzdGVyS2V5LmRhdGEoKSwgMCwgbWFzdGVyS2V5LnNpemUoKSk7IC8vIEZJWE1FOiBO
b3QgaW1wbGVtZW50ZWQgeWV0LCB3aWxsIGJlIGdldHRpbmcgYSBrZXkgZnJvbSBjbGllbnQuCisg
ICAgc3VjY2VlZGVkID0gdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShtYXN0ZXJLZXksIHdyYXBw
ZWRLZXksIGtleSk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM5NjgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNC0wMi0xMiAgQWxleGV5
IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAgICBXcmFwIFdlYkNyeXB0byBr
ZXlzIGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NjgwCisKKyAgICAgICAgUmV0cmlldmUgYSBtYXN0ZXIg
a2V5IChwbGFjZWhvbGRlciBjb2RlIGZvciBub3cpLCBhbmQgdXNlIGl0IHRvIHdyYXAga2V5IGRh
dGEuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OndyYXBDcnlwdG9LZXkpOgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50Ojp1bndyYXBDcnlwdG9LZXkpOgorCiAyMDE0LTAyLTExICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZyYW1lOjpyZWN0Rm9yU2VsZWN0aW9uIHNob3Vs
ZG4ndCBpbnN0YW50aWF0ZSBGcmFtZVNlbGVjdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQkocmV2aXNpb24gMTYz
ODkzKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNv
cmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9L
ZXlXcmFwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dpZGdldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
aW5kb3dGZWF0dXJlcy5oPgogI2ltcG9ydCA8d3RmL1Bhc3NSZWZQdHIuaD4KQEAgLTEwMDEsMTMg
KzEwMDIsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRQogI2lm
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OndyYXBDcnlwdG9L
ZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtl
eSkgY29uc3QKIHsKLSAgICB3cmFwcGVkS2V5ID0ga2V5OwotICAgIHJldHVybiB0cnVlOworICAg
IFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXkoMTYpOworICAgIG1lbXNldChtYXN0ZXJLZXkuZGF0
YSgpLCAwLCBtYXN0ZXJLZXkuc2l6ZSgpKTsgLy8gRklYTUU6IE5vdCBpbXBsZW1lbnRlZCB5ZXQs
IHdpbGwgYmUgZ2V0dGluZyBhIGtleSBmcm9tIGNsaWVudC4KKyAgICByZXR1cm4gd3JhcFNlcmlh
bGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCBrZXksIHdyYXBwZWRLZXkpOwogfQogCiBib29sIFdl
YkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3Jh
cHBlZEtleSwgVmVjdG9yPHVpbnQ4X3Q+JiBrZXkpIGNvbnN0CiB7Ci0gICAga2V5ID0gd3JhcHBl
ZEtleTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5KDE2
KTsKKyAgICBtZW1zZXQobWFzdGVyS2V5LmRhdGEoKSwgMCwgbWFzdGVyS2V5LnNpemUoKSk7IC8v
IEZJWE1FOiBOb3QgaW1wbGVtZW50ZWQgeWV0LCB3aWxsIGJlIGdldHRpbmcgYSBrZXkgZnJvbSBj
bGllbnQuCisgICAgcmV0dXJuIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3
cmFwcGVkS2V5LCBrZXkpOwogfQogI2VuZGlmCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjM5NjgpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAor
MjAxNC0wMi0xMiAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KKworICAgICAg
ICBXcmFwIFdlYkNyeXB0byBrZXlzIGluIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4NjgwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL3Jz
YS1pbmRleGVkZGItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjcnlwdG8vc3VidGxl
L3JzYS1pbmRleGVkZGIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZWZsL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6Cisg
ICAgICAgICogcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTQtMDItMTIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25A
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG1hYy13azEgcGxhdGZvcm0gZGlyZWN0b3J5IGFu
ZCBUZXN0RXhwZWN0YXRpb25zIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvY3J5
cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxNSBAQAorVGVzdCBzdG9yaW5nIGEgcHJpdmF0ZSBSU0Ega2V5
IGluIEluZGV4ZWREQiwgYW5kIHJldHJpZXZpbmcgaXQuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHJldHJpZXZlZEtleS50eXBlIGlzICdwcml2YXRlJworUEFTUyByZXRy
aWV2ZWRLZXkuZXh0cmFjdGFibGUgaXMgdHJ1ZQorUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm5hbWUgaXMgJ1JTQVNTQS1QS0NTMS12MV81JworUEFTUyByZXRyaWV2ZWRLZXkuYWxnb3JpdGht
Lm1vZHVsdXNMZW5ndGggaXMgMjA0OAorUEFTUyBieXRlc1RvSGV4U3RyaW5nKHJldHJpZXZlZEtl
eS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIGlzICcwMTAwMDEnCitQQVNTIHJldHJpZXZlZEtl
eS51c2FnZXMgaXMgWyJzaWduIiwgInZlcmlmeSJdCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLWV4cGVjdGVkLnR4dApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkFk
ZGVkOiBzdm46bWltZS10eXBlCiMjIC0wLDAgKzEgIyMKK3RleHQvcGxhaW4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBwcm9wZXJ0eQpBZGRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMCwwICsxICMjCitu
YXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMv
Y3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDc0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdD4KKworZGVzY3JpcHRpb24oIlRlc3Qgc3RvcmluZyBhIHByaXZhdGUgUlNBIGtleSBpbiBJ
bmRleGVkREIsIGFuZCByZXRyaWV2aW5nIGl0LiIpOworCitqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KwordmFyIHByaXZhdGVLZXlKU09OID0geworICAgIGt0eTogIlJTQSIsCisgICAgYWxnOiAiUlMy
NTYiLAorICAgIG46ICJyY0NVQ3Y3T2MxSFZhbTFESWhDenFrblRoV2F3T3A4UUxrOFppeTJwMTBC
eWpRRkNham9GaXl1QVdsLVIxV1haYWY0eGl0TFJyYWNUOWFncHpJemMtTWJMU0hJR2dXUUdPMjFs
R2lJbXk1ZnRaLUQ4YkhBcVJ6MnkxNXB6RDRjNENFb3U3WFNTTERvUm5SMFFHNU1zRGhENnMyZ1Y5
bXdIa3J0a0N4dE1XZEJpLTc3YXM4d0dtbE5SbGRjT1NnWkRMSzhVbkNTZ0ExT2d1Wjk4OWJGeWM4
dE9PRUliMHhVU2ZQU3ozTFBTQ255WXo2OGFEam1LVmVOSC1pZzg1N09TY3lXYkd5RXkzQml3NjRx
dW4zanVVbE5Xc0ozem5na09kdGVZV3l0eDVRcjRYS05zNlItTXl5cTcyS1VwMDJtSkRaaWl5aWds
eE1MX2kzLV9DZWVjQ3ciLAorICAgIGU6ICJBUUFCIiwKKyAgICBkOiAiZU5MUzM3YUN6N1JYU05Q
RF9EdExCSjZqNVQ4Y1N4ZHpSQkNqUGFJNldjR3FKcDE2bHEzVVR3dW9ETEFxbEE5b0dZbTIzOGRz
SVdwdXVjUF9sUXRiV2UtN1NweG9JNl92bVlHZjdZVlVIdjEtREY5cWlPbVNyTW1keE1uVk96WVhZ
OFJhVDZ0aFBqbl9KNWNmTFYyeElfTHdzck10bXBkU3lObGdYMHpUVWh3dHVhaGdBS01FQ2hZakgy
RW5qSGRIdzZzWTItd0FwZGNRSTdVTEUwb281UnpiUVpwbXVoY045aGlCYzBMM2hoRjBxbzUwbWJs
MDJfNjVfR1E3RHBWa1hCeE5nUkJMemxQYWJtenpHMm9BaGZlZkxnWW1TQzFvcGFDa1hFNnZSV1FO
V05MNDVSWk5aRllNM3VvSmdoT01xR2VvY00wQnBqZENoSHJQT2xGdlNRIiwKKyAgICBwOiAiNG1p
VHVBaktNZUg1dUo1S0IzOTdRVXdoYmtZRWdTYmNBMm1pZm1Ta3ZFMjAxOGdiNTVxa0JISzFlVnJ5
ZjFfbTQzTE5sYzZPX2FrNmdmemRaSVp2UzVOQ0dqUGwwcTA5cGxVcHU4cUZPU3NwQndBNjdxR0g3
NmxGbFpMbl9kNHlnbFM3d2ZMcnU0XzVZczhxTExzLURxVkx2aXdwb3NPbnl5V3F3TTVBWHAwIiwK
KyAgICBxOiAieEhZcnpraXZ0bW56X3NHY2huV0djMHEtcERPa0tpY3B0UnB2MnBNRklJWHhuRlg1
YU1lRVhJWmpWdWpYdHdVeTFVbEZJTjJHWkpTdnk1S0o3OW11X1h5Tm5GSE16ZWRILUEzZWUzdTho
MVVVclpGLXZVdTFfZTRVX3g2N05OMWRlZHpVU0t5bk43cEZsM09rdVNoTUJXR1YtY3d6T1BkY1ZB
ZlZ1Wmx4VU1jIiwKKyAgICBkcDogImZCekR6WURVQm1CUUdvcDdIbjBkdmZfVDI3VjZScXBjdFdv
MDc0Q1FaY0ZiUDJhdEZWdEtTajN2aVdUM3hpZDJWSHpjZ2lESGRmcE0zbkVWbEVPMXd3SW9uR0NT
dmRqR0VPWmlpRlZPanJaQU9WeEE4Z3VPanl5RnZxYlhrZTA2VndQSUlWdmZLZVNVMnp1aGJQX18x
dHQ2Rl9meG93NEtiMnhvbkdUMEdHayIsCisgICAgZHE6ICJqbUUyRGlJUGRod0RnTFhBUXBJYUJx
UTgxYk8zWGZWVF9MUlVMQXd3d3dsUHVRVjE0OEgwNHpsaDlUSjZZMkdaSFlva1YxVTBlT0JwSnhm
a2I3ZExZdHBKcHVpQmpSZjR5SVVFb0dsa2tJX1FsSm5GU0ZyLVlqR1JkZk5IcVdCa3hsU01aTDc3
MFI5bUlBVG5kR2tIN3o1eC1yOUt3QlpGQzRGQ0cyaGdfekUiLAorICAgIHFpOiAiWUNYX3BMd2JN
QkExVGhWSDBXY3dtbnl0cU5jck1DRXdUbTdCeUEyZVU2bldiUXJVTHZmN205X2t6ZkxVY2pzbnBB
VmxCUUc1Sk1YTXkwU3E0cHR3Ynl3c2E1LUc4S0FPT09SMkwzdjRoQy1FeXM5ZnRnRk1fM2kwbzQw
ZWVRSDRiM2hhUGJudHJJZU1nOEl6bE91VllLZjktMlF1S0RvV2VSZGQ3TnNkeFRrIgorfTsKKwor
Y3J5cHRvLnN1YnRsZS5pbXBvcnRLZXkoImp3ayIsIGFzY2lpVG9VaW50OEFycmF5KEpTT04uc3Ry
aW5naWZ5KHByaXZhdGVLZXlKU09OKSksIG51bGwsIHRydWUsIFsic2lnbiIsICJ2ZXJpZnkiXSku
dGhlbihmdW5jdGlvbihrZXkpIHsKKyAgICB2YXIgb3BlblJlcXVlc3QgPSBpbmRleGVkREIub3Bl
bigiY3J5cHRvX3N1YnRsZSIpOworICAgIG9wZW5SZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IGV2ZW50LnRhcmdldC5y
ZXN1bHQuY3JlYXRlT2JqZWN0U3RvcmUoInJzYS1pbmRleGVkZGIiKTsKKyAgICB9CisgICAgb3Bl
blJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIHRlc3RGYWlsZWQo
IkNvdWxkIG5vdCBvcGVuIGRhdGFiYXNlOiAiICsgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUpOwor
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25zdWNjZXNz
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgZGIgPSBldmVudC50YXJnZXQucmVzdWx0Owor
ICAgICAgICBzdG9yZUtleSgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHN0b3JlS2V5KCkgewor
ICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigicnNhLWluZGV4ZWRkYiIs
ICJyZWFkd3JpdGUiKS5vYmplY3RTdG9yZSgicnNhLWluZGV4ZWRkYiIpOworICAgICAgICB2YXIg
cmVxID0gb2JqZWN0U3RvcmUucHV0KGtleSwgIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9y
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBw
dXQgYSBrZXkgaW50byBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nl
c3MgPSBmdW5jdGlvbihldmVudCkgeyByZWFkS2V5KCk7IH0KKyAgICB9CisKKyAgICBmdW5jdGlv
biByZWFkS2V5KCkgeworICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYi50cmFuc2FjdGlvbigi
cnNhLWluZGV4ZWRkYiIpLm9iamVjdFN0b3JlKCJyc2EtaW5kZXhlZGRiIik7CisgICAgICAgIHZh
ciByZXEgPSBvYmplY3RTdG9yZS5nZXQoIm15a2V5Iik7CisgICAgICAgIHJlcS5vbmVycm9yID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIHRlc3RGYWlsZWQoIkNvdWxkIG5vdCBnZXQg
YSBrZXkgZnJvbSBkYXRhYmFzZTogIiArIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgICAgIHJlcS5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgd2luZG93LnJldHJpZXZlZEtleSA9IGV2
ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LnR5
cGUiLCAiJ3ByaXZhdGUnIik7CisgICAgICAgICAgICBzaG91bGRCZSgicmV0cmlldmVkS2V5LmV4
dHJhY3RhYmxlIiwgInRydWUiKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJyZXRyaWV2ZWRLZXku
YWxnb3JpdGhtLm5hbWUiLCAiJ1JTQVNTQS1QS0NTMS12MV81JyIpOworICAgICAgICAgICAgc2hv
dWxkQmUoInJldHJpZXZlZEtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCIsICIyMDQ4Iik7Cisg
ICAgICAgICAgICBzaG91bGRCZSgiYnl0ZXNUb0hleFN0cmluZyhyZXRyaWV2ZWRLZXkuYWxnb3Jp
dGhtLnB1YmxpY0V4cG9uZW50KSIsICInMDEwMDAxJyIpOworICAgICAgICAgICAgc2hvdWxkQmUo
InJldHJpZXZlZEtleS51c2FnZXMiLCAnWyJzaWduIiwgInZlcmlmeSJdJyk7CisKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisgICAgfQorfSk7Cis8L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwv
Ym9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2NyeXB0by9z
dWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjptaW1lLXR5cGUK
IyMgLTAsMCArMSAjIwordGV4dC9odG1sClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lv
biAxNjM4OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvVGVzdEV4cGVjdGF0aW9ucwko
d29ya2luZyBjb3B5KQpAQCAtMjcxLDYgKzI3MSw3IEBAIHdlYmtpdC5vcmcvYi84NzY2MSBodHRw
L3Rlc3RzL3NlY3VyaXR5L2MKIHdlYmtpdC5vcmcvYi84NzY2MSBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzg3NjYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1p
bmRleGVkZGIuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzg3NjYxIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbm8taW5kZXhlZGRiLWZyb20tc2FuZGJveC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3Jn
L2IvODc2NjEgY3J5cHRvL3N1YnRsZS9yc2EtaW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIAogIy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KICMgVEVTVFMgRVhQRUNURUQgVE8gRkFJTApJ
bmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9u
IDE2Mzg5MykKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC00OTMsNiArNDkzLDcgQEAgd2Via2l0Lm9yZy9iLzEwNzE5NCBodHRw
L3Rlc3RzL3NlY3VyaXR5Lwogd2Via2l0Lm9yZy9iLzEwNzE5NCBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzEwNzE5NCBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXIt
aW5kZXhlZGRiLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xMDcxOTQgaHR0cC90ZXN0cy9z
ZWN1cml0eS9uby1pbmRleGVkZGItZnJvbS1zYW5kYm94Lmh0bWwgWyBTa2lwIF0KK2NyeXB0by9z
dWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCiAKICMgY3J5cHRvLnN1YnRsZSBpcyBub3QgeWV0IGVu
YWJsZWQKIGNyeXB0by9zdWJ0bGUgWyBTa2lwIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE2Mzk2OCkKKysrIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtNSwzICs1LDQgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4taW5kZXhlZAog
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi1hbGxvd2Vk
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGIu
aHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9uby1pbmRleGVkZGItZnJvbS1zYW5kYm94Lmh0bWwK
K2NyeXB0by9zdWJ0bGUvcnNhLWluZGV4ZWRkYi5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24gMTYzODkzKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTEwODQs
NiArMTA4NCw3IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLWluZGV4ZWQKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdvcmtlci1pbmRleGVkZGItYWxsb3dlZC5o
dG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLmh0
bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbm8taW5kZXhlZGRiLWZyb20tc2FuZGJveC5odG1sCitj
cnlwdG8vc3VidGxlL3JzYS1pbmRleGVkZGIuaHRtbAogCiAjIFN0b3JhZ2VUcmFja2VyIGlzIG5v
dCBlbmFibGVkLgogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tl
cgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRp
b25zCShyZXZpc2lvbiAxNjM4OTMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9U
ZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgxLDYgKzE1ODEsNyBAQCBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLW9yaWdpbi1pbmRleGVkCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLW9yaWdpbi13b3JrZXItaW5kZXhlZGRiLWFsbG93ZWQuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1vcmlnaW4td29ya2VyLWluZGV4ZWRkYi5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L25vLWluZGV4ZWRkYi1mcm9tLXNhbmRib3guaHRtbAorY3J5cHRvL3N1YnRsZS9yc2Et
aW5kZXhlZGRiLmh0bWwKIAogIyBTdG9yYWdlVHJhY2tlciBpcyBub3QgZW5hYmxlZC4KIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIK
</data>
<flag name="review"
          id="248074"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>