<?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>114404</bug_id>
          
          <creation_ts>2013-04-10 18:17:45 -0700</creation_ts>
          <short_desc>Make StorageAreaImpl a wrapper around StorageAreaMap</short_desc>
          <delta_ts>2013-04-10 18:21:23 -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>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>873408</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-10 18:17:45 -0700</bug_when>
    <thetext>Make StorageAreaImpl a wrapper around StorageAreaMap</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873410</commentid>
    <comment_count>1</comment_count>
      <attachid>197459</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-10 18:19:52 -0700</bug_when>
    <thetext>Created attachment 197459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873411</commentid>
    <comment_count>2</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-04-10 18:21:23 -0700</bug_when>
    <thetext>Committed r148161: &lt;http://trac.webkit.org/changeset/148161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197459</attachid>
            <date>2013-04-10 18:19:52 -0700</date>
            <delta_ts>2013-04-10 18:20:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114404-20130410181932.patch</filename>
            <type>text/plain</type>
            <size>19917</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ4MTYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDRhZDc3ZTVlYmI2YWY5
NDE4YWFiZjZlNjNhYTgxMTIyZjQyYmZjYy4uMWJjYzU1Zjc0YmI3ODg1ZmI2NDU2ODBiNGJmNDBi
ODAyZjkwZWRmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ1IEBACiAyMDEzLTA0LTEwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgTWFrZSBTdG9yYWdl
QXJlYUltcGwgYSB3cmFwcGVyIGFyb3VuZCBTdG9yYWdlQXJlYU1hcAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0NDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJlcGFyZSBmb3IgbW92aW5nIGFsbCB0
aGUgY29kZSB0aGF0IGRlYWxzIHdpdGggbG9jYWwgc3RvcmFnZSB2YWx1ZXMgdG8gU3RvcmFnZUFy
ZWFNYXAsCisgICAgICAgIGFuZCBtYWtlIFN0b3JhZ2VBcmVhSW1wbCBhIGR1bWIgd3JhcHBlciB0
aGF0IHNpbXBseSBjYWxscyB0aHJvdWdoIHRvIHRoZSBtYXAuCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZUFyZWFJbXBsOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6OlN0
b3JhZ2VBcmVhSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6flN0b3Jh
Z2VBcmVhSW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6c3RvcmFnZVR5
cGUpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6Omxlbmd0aCk6CisgICAgICAg
IChXZWJLaXQ6OlN0b3JhZ2VBcmVhSW1wbDo6a2V5KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFn
ZUFyZWFJbXBsOjpnZXRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpz
ZXRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFJbXBsOjpjb250YWlucyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5oOgorICAgICAgICAo
V2ViS2l0OjpTdG9yYWdlQXJlYUltcGw6OnN0b3JhZ2VBcmVhSUQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmdlbmVy
YXRlU3RvcmFnZU1hcElEKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OmNyZWF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpTdG9yYWdlQXJlYU1hcCk6Cisg
ICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpzdG9yYWdlVHlwZSk6CisgICAgICAgIChX
ZWJLaXQ6OlN0b3JhZ2VBcmVhTWFwOjpsZW5ndGgpOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdl
QXJlYU1hcDo6a2V5KToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6Oml0ZW0pOgor
ICAgICAgICAoV2ViS2l0OjpTdG9yYWdlQXJlYU1hcDo6c2V0SXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OlN0b3JhZ2VBcmVhTWFwOjpjb250YWlucyk6CisgICAgICAgIChXZWJLaXQ6OlN0b3JhZ2VB
cmVhTWFwOjpkaWRTZXRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6U3RvcmFnZUFyZWFNYXA6OmRp
c3BhdGNoU3RvcmFnZUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZUFyZWFNYXAuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFn
ZUFyZWEpOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oOgorICAgICAgICAoU3RvcmFnZU5hbWVzcGFjZUltcGwpOgorCisyMDEzLTA0LTEwICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgUmVuYW1lIFN0b3Jh
Z2VNYW5hZ2VyIG1lc3NhZ2VzIHRvIHJlZmVyIHRvIHRoZSBTdG9yYWdlTWFwIGluc3RlYWQgb2Yg
dGhlIFN0b3JhZ2VBcmVhCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTQ0MDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VBcmVhSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0
b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmNwcAppbmRleCBhZDU4NjQwMWI2MTg5ZmNmNTZjZTRlNTA1
ZGU2ODZhNTcwMDM2NzY0Li40YzMzMTA0ZGMwOGI0MGMxOGFhYmQ2Y2ZjZTMzY2M3NTFhNzZlNzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFy
ZWFJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZUFyZWFJbXBsLmNwcApAQCAtMjYsMTcgKzI2LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiU3RvcmFnZUFyZWFJbXBsLmgiCiAKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRh
dGEuaCIKLSNpbmNsdWRlICJTdG9yYWdlQXJlYU1hcE1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiU3Rv
cmFnZU1hbmFnZXJNZXNzYWdlcy5oIgotI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VJbXBsLmgi
Ci0jaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgorI2luY2x1ZGUgIlN0b3JhZ2VBcmVhTWFwLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Db2RlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFt
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1l
UmVnaXN0cnkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Ci0jaW5jbHVk
ZSA8V2ViQ29yZS9TdG9yYWdlTWFwLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtNDgsMjUgKzQzLDI0IEBAIHN0YXRpYyB1
aW50NjRfdCBnZW5lcmF0ZVN0b3JhZ2VBcmVhSUQoKQogICAgIHJldHVybiArK3N0b3JhZ2VBcmVh
SUQ7CiB9CiAKLVBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBTdG9yYWdlQXJlYUltcGw6OmNy
ZWF0ZShTdG9yYWdlTmFtZXNwYWNlSW1wbCogU3RvcmFnZU5hbWVzcGFjZUltcGwsIFBhc3NSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YUltcGw+IFN0b3JhZ2VBcmVhSW1wbDo6Y3JlYXRlKFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFNYXA+
IHN0b3JhZ2VBcmVhTWFwKQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFJ
bXBsKFN0b3JhZ2VOYW1lc3BhY2VJbXBsLCBzZWN1cml0eU9yaWdpbikpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU3RvcmFnZUFyZWFJbXBsKHN0b3JhZ2VBcmVhTWFwKSk7CiB9CiAKLVN0b3Jh
Z2VBcmVhSW1wbDo6U3RvcmFnZUFyZWFJbXBsKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiBTdG9yYWdl
TmFtZXNwYWNlSW1wbCwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4p
Ci0gICAgOiBtX3N0b3JhZ2VOYW1lc3BhY2VJRChTdG9yYWdlTmFtZXNwYWNlSW1wbC0+c3RvcmFn
ZU5hbWVzcGFjZUlEKCkpCi0gICAgLCBtX3F1b3RhSW5CeXRlcyhTdG9yYWdlTmFtZXNwYWNlSW1w
bC0+cXVvdGFJbkJ5dGVzKCkpCi0gICAgLCBtX3N0b3JhZ2VBcmVhSUQoZ2VuZXJhdGVTdG9yYWdl
QXJlYUlEKCkpCi0gICAgLCBtX3NlY3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQorU3RvcmFn
ZUFyZWFJbXBsOjpTdG9yYWdlQXJlYUltcGwoUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4gc3Rv
cmFnZUFyZWFNYXApCisgICAgOiBtX3N0b3JhZ2VBcmVhSUQoZ2VuZXJhdGVTdG9yYWdlQXJlYUlE
KCkpCisgICAgLCBtX3N0b3JhZ2VBcmVhTWFwKHN0b3JhZ2VBcmVhTWFwKQogewotICAgIFdlYlBy
b2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFn
ZXI6OkNyZWF0ZVN0b3JhZ2VNYXAobV9zdG9yYWdlQXJlYUlELCBTdG9yYWdlTmFtZXNwYWNlSW1w
bC0+c3RvcmFnZU5hbWVzcGFjZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCkpKSwgMCk7Ci0gICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpTdG9yYWdlQXJlYU1hcDo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3N0b3JhZ2VBcmVhSUQsIHRoaXMpOwogfQogCiBTdG9yYWdlQXJl
YUltcGw6On5TdG9yYWdlQXJlYUltcGwoKQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZU1hbmFnZXI6OkRlc3Ryb3lTdG9yYWdl
TWFwKG1fc3RvcmFnZUFyZWFJRCksIDApOwotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6U3RvcmFnZUFyZWFNYXA6Om1lc3NhZ2VSZWNlaXZl
ck5hbWUoKSwgbV9zdG9yYWdlQXJlYUlEKTsKK30KKworU3RvcmFnZVR5cGUgU3RvcmFnZUFyZWFJ
bXBsOjpzdG9yYWdlVHlwZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAt
PnN0b3JhZ2VUeXBlKCk7CiB9CiAKIHVuc2lnbmVkIFN0b3JhZ2VBcmVhSW1wbDo6bGVuZ3RoKEV4
Y2VwdGlvbkNvZGUmIGVjLCBGcmFtZSogc291cmNlRnJhbWUpCkBAIC04MCw4ICs3NCw3IEBAIHVu
c2lnbmVkIFN0b3JhZ2VBcmVhSW1wbDo6bGVuZ3RoKEV4Y2VwdGlvbkNvZGUmIGVjLCBGcmFtZSog
c291cmNlRnJhbWUpCiAgICAgaWYgKGRpc2FibGVkQnlQcml2YXRlQnJvd3NpbmdJbkZyYW1lKHNv
dXJjZUZyYW1lKSkKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBsb2FkVmFsdWVzSWZOZWVkZWQo
KTsKLSAgICByZXR1cm4gbV9zdG9yYWdlTWFwLT5sZW5ndGgoKTsKKyAgICByZXR1cm4gbV9zdG9y
YWdlQXJlYU1hcC0+bGVuZ3RoKCk7CiB9CiAKIFN0cmluZyBTdG9yYWdlQXJlYUltcGw6OmtleSh1
bnNpZ25lZCBpbmRleCwgRXhjZXB0aW9uQ29kZSYgZWMsIEZyYW1lKiBzb3VyY2VGcmFtZSkKQEAg
LTkxLDEyICs4NCwxMSBAQCBTdHJpbmcgU3RvcmFnZUFyZWFJbXBsOjprZXkodW5zaWduZWQgaW5k
ZXgsIEV4Y2VwdGlvbkNvZGUmIGVjLCBGcmFtZSogc291cmNlRnJhbQogICAgICAgICBlYyA9IFNF
Q1VSSVRZX0VSUjsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KKwogICAgIGlmIChk
aXNhYmxlZEJ5UHJpdmF0ZUJyb3dzaW5nSW5GcmFtZShzb3VyY2VGcmFtZSkpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKIAotICAgIGxvYWRWYWx1ZXNJZk5lZWRlZCgpOwotCi0gICAgcmV0dXJu
IG1fc3RvcmFnZU1hcC0+a2V5KGluZGV4KTsKKyAgICByZXR1cm4gbV9zdG9yYWdlQXJlYU1hcC0+
a2V5KGluZGV4KTsKIH0KIAogU3RyaW5nIFN0b3JhZ2VBcmVhSW1wbDo6Z2V0SXRlbShjb25zdCBT
dHJpbmcmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMsIEZyYW1lKiBzb3VyY2VGcmFtZSkKQEAgLTEw
NiwxMSArOTgsMTEgQEAgU3RyaW5nIFN0b3JhZ2VBcmVhSW1wbDo6Z2V0SXRlbShjb25zdCBTdHJp
bmcmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMsIEZyYW1lKiBzb3UKICAgICAgICAgZWMgPSBTRUNV
UklUWV9FUlI7CiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CisKICAgICBpZiAoZGlz
YWJsZWRCeVByaXZhdGVCcm93c2luZ0luRnJhbWUoc291cmNlRnJhbWUpKQogICAgICAgICByZXR1
cm4gU3RyaW5nKCk7CiAKLSAgICBsb2FkVmFsdWVzSWZOZWVkZWQoKTsKLSAgICByZXR1cm4gbV9z
dG9yYWdlTWFwLT5nZXRJdGVtKGtleSk7CisgICAgcmV0dXJuIG1fc3RvcmFnZUFyZWFNYXAtPml0
ZW0oa2V5KTsKIH0KIAogdm9pZCBTdG9yYWdlQXJlYUltcGw6OnNldEl0ZW0oY29uc3QgU3RyaW5n
JiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVjLCBGcmFtZSogc291
cmNlRnJhbWUpCkBAIC0xMjgsMjQgKzEyMCwxMSBAQCB2b2lkIFN0b3JhZ2VBcmVhSW1wbDo6c2V0
SXRlbShjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbG9hZFZhbHVlc0lmTmVlZGVkKCk7Ci0KLSAg
ICBBU1NFUlQobV9zdG9yYWdlTWFwLT5oYXNPbmVSZWYoKSk7Ci0gICAgU3RyaW5nIG9sZFZhbHVl
OwogICAgIGJvb2wgcXVvdGFFeGNlcHRpb247Ci0gICAgbV9zdG9yYWdlTWFwLT5zZXRJdGVtKGtl
eSwgdmFsdWUsIG9sZFZhbHVlLCBxdW90YUV4Y2VwdGlvbik7CisgICAgbV9zdG9yYWdlQXJlYU1h
cC0+c2V0SXRlbSh0aGlzLCBrZXksIHZhbHVlLCBxdW90YUV4Y2VwdGlvbik7CiAKLSAgICBpZiAo
cXVvdGFFeGNlcHRpb24pIHsKKyAgICBpZiAocXVvdGFFeGNlcHRpb24pCiAgICAgICAgIGVjID0g
UVVPVEFfRVhDRUVERURfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKG9s
ZFZhbHVlID09IHZhbHVlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBtX3BlbmRpbmdWYWx1ZUNo
YW5nZXMuYWRkKGtleSk7Ci0KLSAgICBXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpTZXRJdGVtKG1fc3RvcmFnZUFyZWFJRCwg
a2V5LCB2YWx1ZSwgc291cmNlRnJhbWUtPmRvY3VtZW50KCktPnVybCgpKSwgMCk7CiB9CiAKIHZv
aWQgU3RvcmFnZUFyZWFJbXBsOjpyZW1vdmVJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBFeGNlcHRp
b25Db2RlJiwgRnJhbWUqIHNvdXJjZUZyYW1lKQpAQCAtMTczLDkgKzE1Miw3IEBAIGJvb2wgU3Rv
cmFnZUFyZWFJbXBsOjpjb250YWlucyhjb25zdCBTdHJpbmcmIGtleSwgRXhjZXB0aW9uQ29kZSYg
ZWMsIEZyYW1lKiBzb3VyCiAgICAgaWYgKGRpc2FibGVkQnlQcml2YXRlQnJvd3NpbmdJbkZyYW1l
KHNvdXJjZUZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbG9hZFZhbHVlc0lm
TmVlZGVkKCk7Ci0KLSAgICByZXR1cm4gbV9zdG9yYWdlTWFwLT5jb250YWlucyhrZXkpOworICAg
IHJldHVybiBtX3N0b3JhZ2VBcmVhTWFwLT5jb250YWlucyhrZXkpOwogfQogCiBib29sIFN0b3Jh
Z2VBcmVhSW1wbDo6Y2FuQWNjZXNzU3RvcmFnZShGcmFtZSogZnJhbWUpCkBAIC0yMDQsNDMgKzE4
MSw2IEBAIHZvaWQgU3RvcmFnZUFyZWFJbXBsOjpjbG9zZURhdGFiYXNlSWZJZGxlKCkKICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotCi12b2lkIFN0b3JhZ2VBcmVhSW1wbDo6ZGlkU2V0
SXRlbShjb25zdCBTdHJpbmcmIGtleSwgYm9vbCBxdW90YUVycm9yKQotewotICAgIEFTU0VSVCht
X3BlbmRpbmdWYWx1ZUNoYW5nZXMuY29udGFpbnMoa2V5KSk7Ci0KLSAgICBtX3BlbmRpbmdWYWx1
ZUNoYW5nZXMucmVtb3ZlKGtleSk7Ci0KLSAgICBpZiAocXVvdGFFcnJvcikKLSAgICAgICAgcmVz
ZXRWYWx1ZXMoKTsKLX0KLQotdm9pZCBTdG9yYWdlQXJlYUltcGw6OmRpc3BhdGNoU3RvcmFnZUV2
ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJp
bmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcmIHVybFN0cmluZykKLXsKLSAgICBpZiAoIXNob3Vs
ZEFwcGx5Q2hhbmdlc0ZvcktleShrZXkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQo
IWtleS5pc051bGwoKSk7Ci0gICAgQVNTRVJUKCFuZXdWYWx1ZS5pc051bGwoKSk7Ci0KLSAgICBB
U1NFUlQobV9zdG9yYWdlTWFwLT5oYXNPbmVSZWYoKSk7Ci0gICAgbV9zdG9yYWdlTWFwLT5zZXRJ
dGVtSWdub3JpbmdRdW90YShrZXksIG5ld1ZhbHVlKTsKLQotICAgIGlmIChzdG9yYWdlVHlwZSgp
ID09IFNlc3Npb25TdG9yYWdlKQotICAgICAgICBkaXNwYXRjaFNlc3Npb25TdG9yYWdlRXZlbnQo
a2V5LCBvbGRWYWx1ZSwgbmV3VmFsdWUsIHVybFN0cmluZyk7Ci0gICAgZWxzZQotICAgICAgICBk
aXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KGtleSwgb2xkVmFsdWUsIG5ld1ZhbHVlLCB1cmxTdHJp
bmcpOwotfQotCi1TdG9yYWdlVHlwZSBTdG9yYWdlQXJlYUltcGw6OnN0b3JhZ2VUeXBlKCkgY29u
c3QKLXsKLSAgICAvLyBBIHplcm8gc3RvcmFnZSBuYW1lc3BhY2UgSUQgaXMgdXNlZCBmb3IgbG9j
YWwgc3RvcmFnZS4KLSAgICBpZiAoIW1fc3RvcmFnZU5hbWVzcGFjZUlEKQotICAgICAgICByZXR1
cm4gTG9jYWxTdG9yYWdlOwotCi0gICAgcmV0dXJuIFNlc3Npb25TdG9yYWdlOwotfQotCiBib29s
IFN0b3JhZ2VBcmVhSW1wbDo6ZGlzYWJsZWRCeVByaXZhdGVCcm93c2luZ0luRnJhbWUoY29uc3Qg
RnJhbWUqIHNvdXJjZUZyYW1lKSBjb25zdAogewogICAgIGlmICghc291cmNlRnJhbWUtPnBhZ2Uo
KS0+c2V0dGluZ3MoKS0+cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCgpKQpAQCAtMjUyLDYxICsxOTIs
NCBAQCBib29sIFN0b3JhZ2VBcmVhSW1wbDo6ZGlzYWJsZWRCeVByaXZhdGVCcm93c2luZ0luRnJh
bWUoY29uc3QgRnJhbWUqIHNvdXJjZUZyYW1lKQogICAgIHJldHVybiAhU2NoZW1lUmVnaXN0cnk6
OmFsbG93c0xvY2FsU3RvcmFnZUFjY2Vzc0luUHJpdmF0ZUJyb3dzaW5nKHNvdXJjZUZyYW1lLT5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5wcm90b2NvbCgpKTsKIH0KIAotYm9vbCBTdG9y
YWdlQXJlYUltcGw6OnNob3VsZEFwcGx5Q2hhbmdlc0ZvcktleShjb25zdCBTdHJpbmcmIGtleSkg
Y29uc3QKLXsKLSAgICAvLyBXZSBoYXZlIG5vdCB5ZXQgbG9hZGVkIGFueXRoaW5nIGZyb20gdGhp
cyBzdG9yYWdlIG1hcC4KLSAgICBpZiAoIW1fc3RvcmFnZU1hcCkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgLy8gQ2hlY2sgaWYgdGhpcyBzdG9yYWdlIGFyZWEgaXMgY3VycmVudGx5IHdh
aXRpbmcgZm9yIHRoZSBzdG9yYWdlIG1hbmFnZXIgdG8gdXBkYXRlIHRoZSBnaXZlbiBrZXkuCi0g
ICAgLy8gSWYgdGhhdCBpcyB0aGUgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBhcHBseSBhbnkgY2hh
bmdlcyBtYWRlIGJ5IG90aGVyIHN0b3JhZ2UgYXJlYXMsIHNpbmNlCi0gICAgLy8gb3VyIGNoYW5n
ZSB3YXMgbWFkZSBsYXN0LgotICAgIGlmIChtX3BlbmRpbmdWYWx1ZUNoYW5nZXMuY29udGFpbnMo
a2V5KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXZv
aWQgU3RvcmFnZUFyZWFJbXBsOjpsb2FkVmFsdWVzSWZOZWVkZWQoKQotewotICAgIGlmIChtX3N0
b3JhZ2VNYXApCi0gICAgICAgIHJldHVybjsKLQotICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+
IHZhbHVlczsKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgdXNlIGEgc3BlY2lhbCBzZW5kU3lu
YyBmbGFnIHRvIGluZGljYXRlIHRoYXQgd2UgZG9uJ3Qgd2FudCB0byBwcm9jZXNzIGluY29taW5n
IG1lc3NhZ2VzIHdoaWxlIHdhaXRpbmcgZm9yIGEgcmVwbHkuCi0gICAgLy8gKFRoaXMgZmxhZyBk
b2VzIG5vdCB5ZXQgZXhpc3QpLgotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24o
KS0+c2VuZFN5bmMoTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpHZXRWYWx1ZXMobV9zdG9yYWdl
QXJlYUlEKSwgTWVzc2FnZXM6OlN0b3JhZ2VNYW5hZ2VyOjpHZXRWYWx1ZXM6OlJlcGx5KHZhbHVl
cyksIDApOwotCi0gICAgbV9zdG9yYWdlTWFwID0gU3RvcmFnZU1hcDo6Y3JlYXRlKG1fcXVvdGFJ
bkJ5dGVzKTsKLSAgICBtX3N0b3JhZ2VNYXAtPmltcG9ydEl0ZW1zKHZhbHVlcyk7Ci19Ci0KLXZv
aWQgU3RvcmFnZUFyZWFJbXBsOjpyZXNldFZhbHVlcygpCi17Ci0gICAgbV9zdG9yYWdlTWFwID0g
bnVsbHB0cjsKLSAgICBtX3BlbmRpbmdWYWx1ZUNoYW5nZXMuY2xlYXIoKTsKLX0KLQotdm9pZCBT
dG9yYWdlQXJlYUltcGw6OmRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpCi17Ci0gICAgQVNTRVJUKHN0b3JhZ2VUeXBlKCkgPT0gU2Vz
c2lvblN0b3JhZ2UpOwotCi0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICBVTlVTRURfUEFS
QU0oa2V5KTsKLSAgICBVTlVTRURfUEFSQU0ob2xkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShu
ZXdWYWx1ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHVybFN0cmluZyk7Ci19Ci0KLXZvaWQgU3RvcmFn
ZUFyZWFJbXBsOjpkaXNwYXRjaExvY2FsU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBj
b25zdCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJp
bmcmIHVybFN0cmluZykKLXsKLSAgICBBU1NFUlQoc3RvcmFnZVR5cGUoKSA9PSBMb2NhbFN0b3Jh
Z2UpOwotCi0gICAgLy8gRklYTUU6IEltcGxlbWVudC4KLSAgICBVTlVTRURfUEFSQU0oa2V5KTsK
LSAgICBVTlVTRURfUEFSQU0ob2xkVmFsdWUpOwotICAgIFVOVVNFRF9QQVJBTShuZXdWYWx1ZSk7
Ci0gICAgVU5VU0VEX1BBUkFNKHVybFN0cmluZyk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VB
cmVhSW1wbC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVh
SW1wbC5oCmluZGV4IDQ5MjgwZTMxMDRlODVlMjZiZGVlMDI3ODk4MjNhYmJhZjU4MWM3YjUuLjVl
NjQxYjMwMzNiNDExM2NmMWM0MTE4ZmUyNWYwMDhhZmRmN2JhMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYUltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZUFyZWFJbXBsLmgKQEAgLTMxLDIx
ICszMSwyMCBAQAogI2luY2x1ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CiAKLW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIFN0b3JhZ2VNYXA7Ci19
Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbDsKK2Ns
YXNzIFN0b3JhZ2VBcmVhTWFwOwogCi1jbGFzcyBTdG9yYWdlQXJlYUltcGwgOiBwdWJsaWMgV2Vi
Q29yZTo6U3RvcmFnZUFyZWEsIHByaXZhdGUgQ29yZUlQQzo6TWVzc2FnZVJlY2VpdmVyIHsKK2Ns
YXNzIFN0b3JhZ2VBcmVhSW1wbCA6IHB1YmxpYyBXZWJDb3JlOjpTdG9yYWdlQXJlYSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjcmVhdGUoU3RvcmFn
ZU5hbWVzcGFjZUltcGwqLCBQYXNzUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiBjcmVhdGUoUGFzc1JlZlB0cjxT
dG9yYWdlQXJlYU1hcD4pOwogICAgIHZpcnR1YWwgflN0b3JhZ2VBcmVhSW1wbCgpOwogCisgICAg
dWludDY0X3Qgc3RvcmFnZUFyZWFJRCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RvcmFnZUFyZWFJRDsg
fQorICAgIFdlYkNvcmU6OlN0b3JhZ2VUeXBlIHN0b3JhZ2VUeXBlKCkgY29uc3Q7CisKIHByaXZh
dGU6Ci0gICAgU3RvcmFnZUFyZWFJbXBsKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4pOworICAgIFN0b3JhZ2VBcmVhSW1wbChQYXNzUmVm
UHRyPFN0b3JhZ2VBcmVhTWFwPik7CiAKICAgICAvLyBXZWJDb3JlOjpTdG9yYWdlQXJlYS4KICAg
ICB2aXJ0dWFsIHVuc2lnbmVkIGxlbmd0aChXZWJDb3JlOjpFeGNlcHRpb25Db2RlJiwgV2ViQ29y
ZTo6RnJhbWUqIHNvdXJjZUZyYW1lKSBPVkVSUklERTsKQEAgLTYxLDMwICs2MCwxMCBAQCBwcml2
YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkZWNyZW1lbnRBY2Nlc3NDb3VudCgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZURhdGFiYXNlSWZJZGxlKCkgT1ZFUlJJREU7CiAKLSAgICAv
LyBDb3JlSVBDOjpNZXNzYWdlUmVjZWl2ZXIKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoQ29yZUlQQzo6Q29ubmVjdGlvbiosIENvcmVJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgT1ZF
UlJJREU7Ci0KLSAgICB2b2lkIGRpZFNldEl0ZW0oY29uc3QgU3RyaW5nJiBrZXksIGJvb2wgcXVv
dGFFcnJvcik7Ci0gICAgdm9pZCBkaXNwYXRjaFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtl
eSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcpOwotCi0gICAgV2ViQ29yZTo6U3RvcmFnZVR5cGUgc3RvcmFnZVR5
cGUoKSBjb25zdDsKICAgICBib29sIGRpc2FibGVkQnlQcml2YXRlQnJvd3NpbmdJbkZyYW1lKGNv
bnN0IFdlYkNvcmU6OkZyYW1lKiBzb3VyY2VGcmFtZSkgY29uc3Q7CiAKLSAgICBib29sIHNob3Vs
ZEFwcGx5Q2hhbmdlc0ZvcktleShjb25zdCBTdHJpbmcmIGtleSkgY29uc3Q7Ci0gICAgdm9pZCBs
b2FkVmFsdWVzSWZOZWVkZWQoKTsKLSAgICB2b2lkIHJlc2V0VmFsdWVzKCk7Ci0KLSAgICB2b2lk
IGRpc3BhdGNoU2Vzc2lvblN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29uc3QgU3RyaW5nJiB1cmxT
dHJpbmcpOwotICAgIHZvaWQgZGlzcGF0Y2hMb2NhbFN0b3JhZ2VFdmVudChjb25zdCBTdHJpbmcm
IGtleSwgY29uc3QgU3RyaW5nJiBvbGRWYWx1ZSwgY29uc3QgU3RyaW5nJiBuZXdWYWx1ZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwotCi0gICAgdWludDY0X3QgbV9zdG9yYWdlTmFtZXNwYWNl
SUQ7Ci0gICAgdW5zaWduZWQgbV9xdW90YUluQnl0ZXM7CiAgICAgdWludDY0X3QgbV9zdG9yYWdl
QXJlYUlEOwotCi0gICAgUmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5
T3JpZ2luOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTdG9yYWdlTWFwPiBtX3N0b3JhZ2VNYXA7Ci0K
LSAgICBIYXNoQ291bnRlZFNldDxTdHJpbmc+IG1fcGVuZGluZ1ZhbHVlQ2hhbmdlczsKKyAgICBS
ZWZQdHI8U3RvcmFnZUFyZWFNYXA+IG1fc3RvcmFnZUFyZWFNYXA7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2Uv
U3RvcmFnZUFyZWFNYXAuY3BwCmluZGV4IDY2N2NkNzM1NzlmYjdiZGZhYTdiNDU5MzkxMGU4YjIw
YjIzZWEyNGYuLjIzMjNmZTliNmNlYTJmM2YyMzk2MzdkOWVhOGQ5Y2FjOWM1NWJlZWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlQXJlYU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFw
LmNwcApAQCAtMjYsMTQgKzI2LDI5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
U3RvcmFnZUFyZWFNYXAuaCIKIAorI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2VJbXBsLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlTWFwLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxTdG9yYWdlQXJlYU1hcD4gU3Rv
cmFnZUFyZWFNYXA6OmNyZWF0ZSgpCitzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVTdG9yYWdlTWFw
SUQoKQoreworICAgIHN0YXRpYyB1aW50NjRfdCBzdG9yYWdlTWFwSUQ7CisgICAgcmV0dXJuICsr
c3RvcmFnZU1hcElEOworfQorCitQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiBTdG9yYWdlQXJl
YU1hcDo6Y3JlYXRlKFN0b3JhZ2VOYW1lc3BhY2VJbXBsKiBzdG9yYWdlTmFtZXNwYWNlLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFN0b3JhZ2VBcmVhTWFwKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFN0b3JhZ2VBcmVhTWFwKHN0b3JhZ2VOYW1lc3BhY2UsIHNlY3VyaXR5T3JpZ2luKSk7CiB9
CiAKLVN0b3JhZ2VBcmVhTWFwOjpTdG9yYWdlQXJlYU1hcCgpCitTdG9yYWdlQXJlYU1hcDo6U3Rv
cmFnZUFyZWFNYXAoU3RvcmFnZU5hbWVzcGFjZUltcGwqIHN0b3JhZ2VOYW1lc3BhY2UsIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luKQorICAgIDogbV9z
dG9yYWdlTWFwSUQoZ2VuZXJhdGVTdG9yYWdlTWFwSUQoKSkKKyAgICAsIG1fc3RvcmFnZU5hbWVz
cGFjZUlEKHN0b3JhZ2VOYW1lc3BhY2UtPnN0b3JhZ2VOYW1lc3BhY2VJRCgpKQorICAgICwgbV9x
dW90YUluQnl0ZXMoc3RvcmFnZU5hbWVzcGFjZS0+cXVvdGFJbkJ5dGVzKCkpCisgICAgLCBtX3Nl
Y3VyaXR5T3JpZ2luKHNlY3VyaXR5T3JpZ2luKQogewogfQogCkBAIC00MSwxMiArNTYsNTIgQEAg
U3RvcmFnZUFyZWFNYXA6On5TdG9yYWdlQXJlYU1hcCgpCiB7CiB9CiAKK1N0b3JhZ2VUeXBlIFN0
b3JhZ2VBcmVhTWFwOjpzdG9yYWdlVHlwZSgpIGNvbnN0Cit7CisgICAgLy8gQSB6ZXJvIHN0b3Jh
Z2UgbmFtZXNwYWNlIElEIGlzIHVzZWQgZm9yIGxvY2FsIHN0b3JhZ2UuCisgICAgaWYgKCFtX3N0
b3JhZ2VOYW1lc3BhY2VJRCkKKyAgICAgICAgcmV0dXJuIExvY2FsU3RvcmFnZTsKKworICAgIHJl
dHVybiBTZXNzaW9uU3RvcmFnZTsKK30KKwordW5zaWduZWQgU3RvcmFnZUFyZWFNYXA6Omxlbmd0
aCgpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KKyAgICByZXR1cm4gMDsKK30KKworU3Ry
aW5nIFN0b3JhZ2VBcmVhTWFwOjprZXkodW5zaWduZWQgaW5kZXgpCit7CisgICAgLy8gRklYTUU6
IEltcGxlbWVudC4KKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBTdG9yYWdlQXJl
YU1hcDo6aXRlbShjb25zdCBTdHJpbmcmIGtleSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
LgorICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwordm9pZCBTdG9yYWdlQXJlYU1hcDo6c2V0SXRl
bShTdG9yYWdlQXJlYUltcGwqIHNvdXJjZUFyZWEsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBT
dHJpbmcmIHZhbHVlLCBib29sJiBxdW90YUV4Y2VwdGlvbikKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50LgorfQorCitib29sIFN0b3JhZ2VBcmVhTWFwOjpjb250YWlucyhjb25zdCBTdHJpbmcm
IGtleSkKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiBmYWxzZTsKK30K
Kwogdm9pZCBTdG9yYWdlQXJlYU1hcDo6ZGlkU2V0SXRlbShjb25zdCBTdHJpbmcmIGtleSwgYm9v
bCBxdW90YUVycm9yKQogeworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQuCiB9CiAKIHZvaWQgU3Rv
cmFnZUFyZWFNYXA6OmRpc3BhdGNoU3RvcmFnZUV2ZW50KGNvbnN0IFN0cmluZyYga2V5LCBjb25z
dCBTdHJpbmcmIG9sZFZhbHVlLCBjb25zdCBTdHJpbmcmIG5ld1ZhbHVlLCBjb25zdCBTdHJpbmcm
IHVybFN0cmluZykKIHsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFn
ZS9TdG9yYWdlQXJlYU1hcC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VBcmVhTWFwLmgKaW5kZXggNzA0MzUzMGQ3MTBmODhiNDk5OGY1MGVjNzNmNDk0ZDUwYjQ0
YTlhOS4uZmQ2MzAzY2IzYzMwMjI1Y2FmNTVlODQ5NTg3NGZiMGZlMDA1M2VkNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VBcmVhTWFwLmgKQEAg
LTI3LDI1ICsyNyw1MyBAQAogI2RlZmluZSBTdG9yYWdlQXJlYU1hcF9oCiAKICNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TdG9yYWdlQXJlYS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBTZWN1cml0eU9yaWdpbjsKK2NsYXNzIFN0
b3JhZ2VNYXA7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBTdG9yYWdlQXJlYUlt
cGw7CitjbGFzcyBTdG9yYWdlTmFtZXNwYWNlSW1wbDsKKwogY2xhc3MgU3RvcmFnZUFyZWFNYXAg
OiBwdWJsaWMgUmVmQ291bnRlZDxTdG9yYWdlQXJlYU1hcD4sIHByaXZhdGUgQ29yZUlQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxTdG9yYWdlQXJl
YU1hcD4gY3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8U3RvcmFnZUFyZWFNYXA+IGNy
ZWF0ZShTdG9yYWdlTmFtZXNwYWNlSW1wbCosIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+KTsKICAgICB+U3RvcmFnZUFyZWFNYXAoKTsKIAorICAgIFdlYkNvcmU6OlN0b3JhZ2VU
eXBlIHN0b3JhZ2VUeXBlKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBsZW5ndGgoKTsKKyAgICBT
dHJpbmcga2V5KHVuc2lnbmVkIGluZGV4KTsKKyAgICBTdHJpbmcgaXRlbShjb25zdCBTdHJpbmcm
IGtleSk7CisgICAgdm9pZCBzZXRJdGVtKFN0b3JhZ2VBcmVhSW1wbCogc291cmNlQXJlYSwgY29u
c3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmluZyYgdmFsdWUsIGJvb2wmIHF1b3RhRXhjZXB0aW9u
KTsKKyAgICBib29sIGNvbnRhaW5zKGNvbnN0IFN0cmluZyYga2V5KTsKKwogcHJpdmF0ZToKLSAg
ICBTdG9yYWdlQXJlYU1hcCgpOworICAgIFN0b3JhZ2VBcmVhTWFwKFN0b3JhZ2VOYW1lc3BhY2VJ
bXBsKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4pOwogCiAgICAgLy8gQ29y
ZUlQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KENvcmVJUEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURF
OwogCiAgICAgdm9pZCBkaWRTZXRJdGVtKGNvbnN0IFN0cmluZyYga2V5LCBib29sIHF1b3RhRXJy
b3IpOwogICAgIHZvaWQgZGlzcGF0Y2hTdG9yYWdlRXZlbnQoY29uc3QgU3RyaW5nJiBrZXksIGNv
bnN0IFN0cmluZyYgb2xkVmFsdWUsIGNvbnN0IFN0cmluZyYgbmV3VmFsdWUsIGNvbnN0IFN0cmlu
ZyYgdXJsU3RyaW5nKTsKKworICAgIHZvaWQgbG9hZFZhbHVlc0lmTmVlZGVkKCk7CisKKyAgICB1
aW50NjRfdCBtX3N0b3JhZ2VNYXBJRDsKKyAgICB1aW50NjRfdCBtX3N0b3JhZ2VOYW1lc3BhY2VJ
RDsKKyAgICB1bnNpZ25lZCBtX3F1b3RhSW5CeXRlczsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CisKKworICAgIFJlZlB0cjxXZWJDb3JlOjpT
dG9yYWdlTWFwPiBtX3N0b3JhZ2VNYXA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5h
bWVzcGFjZUltcGwuY3BwCmluZGV4IDA0ZmM0NDRmMzRkMTBkMTkwOWExZTZlMTU0NWVmNjBlNjhj
OWE2YWMuLjg2Y2NhNWQyMzQ4MjkyYWNiYWMxOTY4ZTY4MjhiZGMzMmIwY2E2NjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VOYW1l
c3BhY2VJbXBsLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3Bh
Y2VJbXBsLmgiCiAKICNpbmNsdWRlICJTdG9yYWdlQXJlYUltcGwuaCIKKyNpbmNsdWRlICJTdG9y
YWdlQXJlYU1hcC5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Nl
Y3VyaXR5T3JpZ2luLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtNTIsMTEg
KzUzLDExIEBAIFN0b3JhZ2VOYW1lc3BhY2VJbXBsOjp+U3RvcmFnZU5hbWVzcGFjZUltcGwoKQog
CiBQYXNzUmVmUHRyPFN0b3JhZ2VBcmVhPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6c3RvcmFnZUFy
ZWEoUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4pCiB7Ci0gICAgSGFz
aE1hcDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWFJ
bXBsPiA+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9zdG9yYWdlQXJlYU1hcC5hZGQoc2VjdXJpdHlP
cmlnaW4uZ2V0KCksIDApOworICAgIEhhc2hNYXA8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiwgUmVmUHRyPFN0b3JhZ2VBcmVhTWFwPiA+OjpBZGRSZXN1bHQgcmVzdWx0ID0gbV9zdG9y
YWdlQXJlYU1hcHMuYWRkKHNlY3VyaXR5T3JpZ2luLmdldCgpLCAwKTsKICAgICBpZiAocmVzdWx0
LmlzTmV3RW50cnkpCi0gICAgICAgIHJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBTdG9yYWdlQXJl
YUltcGw6OmNyZWF0ZSh0aGlzLCBzZWN1cml0eU9yaWdpbik7CisgICAgICAgIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUgPSBTdG9yYWdlQXJlYU1hcDo6Y3JlYXRlKHRoaXMsIHNlY3VyaXR5T3JpZ2lu
KTsKIAotICAgIHJldHVybiByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOworICAgIHJldHVybiBTdG9y
YWdlQXJlYUltcGw6OmNyZWF0ZShyZXN1bHQuaXRlcmF0b3ItPnZhbHVlKTsKIH0KIAogUGFzc1Jl
ZlB0cjxTdG9yYWdlTmFtZXNwYWNlPiBTdG9yYWdlTmFtZXNwYWNlSW1wbDo6Y29weSgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU5hbWVzcGFj
ZUltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNw
YWNlSW1wbC5oCmluZGV4IGU3ZWI2NzRlZDg4MzZkNGFjZGMzMGI1Yjk1MjAxZmQzY2Y5MDNhNzYu
LjZjYjc0YWUxMDU5OTNkNjFmMWFjODAzODM1NmMzMjEyMWI1NWI4NzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlTmFtZXNwYWNlSW1w
bC5oCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFzcyBTdG9y
YWdlQXJlYUltcGw7CitjbGFzcyBTdG9yYWdlQXJlYU1hcDsKIGNsYXNzIFdlYlBhZ2U7CiAKIGNs
YXNzIFN0b3JhZ2VOYW1lc3BhY2VJbXBsIDogcHVibGljIFdlYkNvcmU6OlN0b3JhZ2VOYW1lc3Bh
Y2UgewpAQCAtNTgsNyArNTgsNyBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IG1fc3RvcmFnZU5h
bWVzcGFjZUlEOwogICAgIHVuc2lnbmVkIG1fcXVvdGFJbkJ5dGVzOwogCi0gICAgSGFzaE1hcDxS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWFJbXBsPiA+
IG1fc3RvcmFnZUFyZWFNYXA7CisgICAgSGFzaE1hcDxSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+LCBSZWZQdHI8U3RvcmFnZUFyZWFNYXA+ID4gbV9zdG9yYWdlQXJlYU1hcHM7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="219439"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>