<?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>146030</bug_id>
          
          <creation_ts>2015-06-16 15:23:01 -0700</creation_ts>
          <short_desc>Fold WebKeyValueStorageManager into WKKeyValueStorageManager</short_desc>
          <delta_ts>2015-06-16 15:53:46 -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>1102359</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-16 15:23:01 -0700</bug_when>
    <thetext>Fold WebKeyValueStorageManager into WKKeyValueStorageManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102361</commentid>
    <comment_count>1</comment_count>
      <attachid>254971</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-16 15:26:24 -0700</bug_when>
    <thetext>Created attachment 254971
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102365</commentid>
    <comment_count>2</comment_count>
      <attachid>254971</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-06-16 15:29:00 -0700</bug_when>
    <thetext>Comment on attachment 254971
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1102370</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-06-16 15:53:46 -0700</bug_when>
    <thetext>Committed r185623: &lt;http://trac.webkit.org/changeset/185623&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254971</attachid>
            <date>2015-06-16 15:26:24 -0700</date>
            <delta_ts>2015-06-16 15:29:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146030-20150616152549.patch</filename>
            <type>text/plain</type>
            <size>26967</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1NjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDRiYTliNDRjM2QyMDcz
NmI3NTYxM2JhYTVjZDdjODZmZTc3ZmY4MS4uMTUyYzNiNDUxZDdhYWFmNjVmZjgyOWM5YTczYjA0
NTk4NDdhMjFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDE1LTA2LTE2ICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgRm9sZCBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyIGludG8gV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDYwMzAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Qy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcDoK
KyAgICAgICAgKFdLQ29udGV4dEdldEtleVZhbHVlU3RvcmFnZU1hbmFnZXIpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAo
V0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0VHlwZUlEKToKKyAgICAgICAgKFdLS2V5VmFsdWVT
dG9yYWdlTWFuYWdlckdldE9yaWdpbktleSk6CisgICAgICAgIChXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXJHZXRDcmVhdGlvblRpbWVLZXkpOgorICAgICAgICAoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyR2V0TW9kaWZpY2F0aW9uVGltZUtleSk6CisgICAgICAgIChXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXJHZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKToKKyAgICAgICAgKFdLS2V5VmFsdWVTdG9y
YWdlTWFuYWdlckdldFN0b3JhZ2VEZXRhaWxzQnlPcmlnaW4pOgorICAgICAgICAoV0tLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyRGVsZXRlRW50cmllc0Zvck9yaWdpbik6CisgICAgICAgIChXS0tleVZh
bHVlU3RvcmFnZU1hbmFnZXJEZWxldGVBbGxFbnRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHA6IFJlbW92ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OnN1cHBsZW1lbnROYW1lKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6b3JpZ2luS2V5KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Y3JlYXRp
b25UaW1lS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlcjo6bW9kaWZpY2F0aW9uVGltZUtleSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OldlYktleVZhbHVlU3RvcmFnZU1hbmFn
ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
Ojp+V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OnJlZldlYkNvbnRleHRTdXBwbGVtZW50KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6ZGVyZWZX
ZWJDb250ZXh0U3VwcGxlbWVudCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXI6OmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpnZXRTdG9yYWdlRGV0
YWlsc0J5T3JpZ2luKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViS2V5VmFsdWVTdG9y
YWdlTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9yaWdpbik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMpOiBEZWxl
dGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmg6IFJl
bW92ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAg
KiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKzIwMTUtMDYtMTYgIEFuZGVy
cyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKwogICAgICAgICBXZWJSZXNvdXJjZUNh
Y2hlTWFuYWdlciBpcyB1bnVzZWQsIGdldCByaWQgb2YgaXQKICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjAyNwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNmQ3ZGI4MTM3ZTQ0ZWIwNjMzZmU2YzlhZDQ5
ZTM2OWE0ZGNmNmU0Yi4uOWRjMTU2YzkxNTM5ZWFlMWU2ZWYzYWI1MTYzYTYxMDJhNTExMTMwMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtOTEsNyAr
OTEsNiBAQCBjbGFzcyBXZWJHcmFtbWFyRGV0YWlsOwogY2xhc3MgV2ViSGl0VGVzdFJlc3VsdDsK
IGNsYXNzIFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdlYkluc3BlY3RvclByb3h5OwotY2xhc3Mg
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjsKIGNsYXNzIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHk7CiBjbGFzcyBXZWJOb3RpZmljYXRpb247CiBjbGFzcyBXZWJOb3RpZmljYXRpb25NYW5hZ2Vy
UHJveHk7CkBAIC0xMzUsNyArMTM0LDYgQEAgV0tfQUREX0FQSV9NQVBQSU5HKFdLR3JhbW1hckRl
dGFpbFJlZiwgV2ViR3JhbW1hckRldGFpbCkKIFdLX0FERF9BUElfTUFQUElORyhXS0hpdFRlc3RS
ZXN1bHRSZWYsIFdlYkhpdFRlc3RSZXN1bHQpCiBXS19BRERfQVBJX01BUFBJTkcoV0tJY29uRGF0
YWJhc2VSZWYsIFdlYkljb25EYXRhYmFzZSkKIFdLX0FERF9BUElfTUFQUElORyhXS0luc3BlY3Rv
clJlZiwgV2ViSW5zcGVjdG9yUHJveHkpCi1XS19BRERfQVBJX01BUFBJTkcoV0tLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyUmVmLCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKQogV0tfQUREX0FQSV9N
QVBQSU5HKFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYsIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkp
CiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLCBBUEk6Ok5hdmlnYXRp
b25BY3Rpb24pCiBXS19BRERfQVBJX01BUFBJTkcoV0tOYXZpZ2F0aW9uRGF0YVJlZiwgQVBJOjpO
YXZpZ2F0aW9uRGF0YSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dC5jcHAKaW5kZXggNWQwMTJlNGRiMjExM2RjYWEyNjEyMDdmYjhjMDI2ODk3NzY1MGE3MC4uNTE0
ZjFmMTk1Y2RkMDhmYjgyNjA1ZmU1Yzg2NDY3MjVhNDE5ZjIwYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNs
dWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1hbmFn
ZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCi0jaW5j
bHVkZSAiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oIgogI2luY2x1ZGUgIldlYk1lZGlhQ2Fj
aGVNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHku
aCIKICNpZiBFTkFCTEUoQkFUVEVSWV9TVEFUVVMpCkBAIC00NDUsOSArNDQ0LDkgQEAgV0tJY29u
RGF0YWJhc2VSZWYgV0tDb250ZXh0R2V0SWNvbkRhdGFiYXNlKFdLQ29udGV4dFJlZiBjb250ZXh0
UmVmKQogICAgIHJldHVybiB0b0FQSSh0b0ltcGwoY29udGV4dFJlZiktPmljb25EYXRhYmFzZSgp
KTsKIH0KIAotV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIFdLQ29udGV4dEdldEtleVZhbHVl
U3RvcmFnZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCitXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJSZWYgV0tDb250ZXh0R2V0S2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXS0NvbnRleHRS
ZWYgY29udGV4dCkKIHsKLSAgICByZXR1cm4gdG9BUEkodG9JbXBsKGNvbnRleHRSZWYpLT5zdXBw
bGVtZW50PFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI+KCkpOworICAgIHJldHVybiByZWludGVy
cHJldF9jYXN0PFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZj4oV0tDb250ZXh0R2V0V2Vic2l0
ZURhdGFTdG9yZShjb250ZXh0KSk7CiB9CiAKIFdLTWVkaWFDYWNoZU1hbmFnZXJSZWYgV0tDb250
ZXh0R2V0TWVkaWFDYWNoZU1hbmFnZXIoV0tDb250ZXh0UmVmIGNvbnRleHRSZWYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tLZXlWYWx1ZVN0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuY3BwCmluZGV4IDU2MDBmODkyMzI1NTdiMjRjNWM4ZjJlMWNjYzk1YzA5NjlkZWU0
ZGUuLmVhNWQwNWMzZDZlZDM5NGFiZTYwNDhlNTM5MjJmN2MzODhmNzlmMmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuY3BwCkBAIC0yNiw1MCArMjYsMTA3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAKKyNpbmNsdWRlICJBUElEaWN0
aW9uYXJ5LmgiCisjaW5jbHVkZSAiQVBJV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgIkxv
Y2FsU3RvcmFnZURldGFpbHMuaCIKKyNpbmNsdWRlICJTdG9yYWdlTWFuYWdlci5oIgogI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgIldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCIK
KyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogV0tUeXBlSUQgV0tLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyR2V0VHlwZUlEKCkKIHsKLSAgICByZXR1cm4gdG9BUEkoV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlcjo6QVBJVHlwZSk7CisgICAgcmV0dXJuIHRvQVBJKEFQSTo6V2Vic2l0ZURhdGFTdG9y
ZTo6QVBJVHlwZSk7CiB9CiAKIFdLU3RyaW5nUmVmIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdl
dE9yaWdpbktleSgpCiB7Ci0gICAgc3RhdGljIEFQSTo6U3RyaW5nJiBrZXkgPSBBUEk6OlN0cmlu
Zzo6Y3JlYXRlKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6Om9yaWdpbktleSgpKS5sZWFrUmVm
KCk7CisgICAgc3RhdGljIEFQSTo6U3RyaW5nJiBrZXkgPSBBUEk6OlN0cmluZzo6Y3JlYXRlKCJX
ZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyU3RvcmFnZURldGFpbHNPcmlnaW5LZXkiKS5sZWFrUmVm
KCk7CiAgICAgcmV0dXJuIHRvQVBJKCZrZXkpOwogfQogCiBXS1N0cmluZ1JlZiBXS0tleVZhbHVl
U3RvcmFnZU1hbmFnZXJHZXRDcmVhdGlvblRpbWVLZXkoKQogewotICAgIHN0YXRpYyBBUEk6OlN0
cmluZyYga2V5ID0gQVBJOjpTdHJpbmc6OmNyZWF0ZShXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
OjpjcmVhdGlvblRpbWVLZXkoKSkubGVha1JlZigpOworICAgIHN0YXRpYyBBUEk6OlN0cmluZyYg
a2V5ID0gQVBJOjpTdHJpbmc6OmNyZWF0ZSgiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclN0b3Jh
Z2VEZXRhaWxzQ3JlYXRpb25UaW1lS2V5IikubGVha1JlZigpOwogICAgIHJldHVybiB0b0FQSSgm
a2V5KTsKIH0KIAogV0tTdHJpbmdSZWYgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0TW9kaWZp
Y2F0aW9uVGltZUtleSgpCiB7Ci0gICAgc3RhdGljIEFQSTo6U3RyaW5nJiBrZXkgPSBBUEk6OlN0
cmluZzo6Y3JlYXRlKFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6Om1vZGlmaWNhdGlvblRpbWVL
ZXkoKSkubGVha1JlZigpOworICAgIHN0YXRpYyBBUEk6OlN0cmluZyYga2V5ID0gQVBJOjpTdHJp
bmc6OmNyZWF0ZSgiV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlclN0b3JhZ2VEZXRhaWxzTW9kaWZp
Y2F0aW9uVGltZUtleSIpLmxlYWtSZWYoKTsKICAgICByZXR1cm4gdG9BUEkoJmtleSk7CiB9CiAK
LXZvaWQgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3JpZ2lucyhX
S0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYga2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiwgdm9p
ZCogY29udGV4dCwgV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0S2V5VmFsdWVTdG9yYWdlT3Jp
Z2luc0Z1bmN0aW9uIGNhbGxiYWNrKQordm9pZCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJHZXRL
ZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiBrZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyLCB2b2lkKiBjb250ZXh0LCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJH
ZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zRnVuY3Rpb24gY2FsbGJhY2spCisKIHsKLSAgICB0b0lt
cGwoa2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZiktPmdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMo
dG9HZW5lcmljQ2FsbGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIFN0b3Jh
Z2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlciA9IHRvSW1wbChyZWludGVycHJldF9jYXN0PFdLV2Vi
c2l0ZURhdGFTdG9yZVJlZj4oa2V5VmFsdWVTdG9yYWdlTWFuYWdlcikpLT53ZWJzaXRlRGF0YVN0
b3JlKCkuc3RvcmFnZU1hbmFnZXIoKTsKKyAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7CisgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICAg
ICAgICAgIGNhbGxiYWNrKHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZSgpLnB0cigpKSwgbnVsbHB0
ciwgY29udGV4dCk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
c3RvcmFnZU1hbmFnZXItPmdldExvY2FsU3RvcmFnZU9yaWdpbnMoW2NvbnRleHQsIGNhbGxiYWNr
XShIYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4+JiYgc2VjdXJpdHlPcmln
aW5zKSB7CisgICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiB3ZWJTZWN1cml0eU9y
aWdpbnM7CisgICAgICAgIHdlYlNlY3VyaXR5T3JpZ2lucy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5
KHNlY3VyaXR5T3JpZ2lucy5zaXplKCkpOworICAgICAgICBmb3IgKGF1dG8mIG9yaWdpbiA6IHNl
Y3VyaXR5T3JpZ2lucykKKyAgICAgICAgICAgIHdlYlNlY3VyaXR5T3JpZ2lucy51bmNoZWNrZWRB
cHBlbmQoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdpbikpOworCisgICAgICAgIGNh
bGxiYWNrKHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZShXVEY6Om1vdmUod2ViU2VjdXJpdHlPcmln
aW5zKSkucHRyKCkpLCBudWxscHRyLCBjb250ZXh0KTsKKyAgICB9KTsKIH0KIAotdm9pZCBXS0tl
eVZhbHVlU3RvcmFnZU1hbmFnZXJHZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2luKFdLS2V5VmFsdWVT
dG9yYWdlTWFuYWdlclJlZiBrZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmLCB2b2lkKiBjb250ZXh0
LCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJHZXRTdG9yYWdlRGV0YWlsc0J5T3JpZ2luRnVuY3Rp
b24gY2FsbGJhY2spCit2b2lkIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldFN0b3JhZ2VEZXRh
aWxzQnlPcmlnaW4oV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIGtleVZhbHVlU3RvcmFnZU1h
bmFnZXIsIHZvaWQqIGNvbnRleHQsIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlckdldFN0b3JhZ2VE
ZXRhaWxzQnlPcmlnaW5GdW5jdGlvbiBjYWxsYmFjaykKIHsKLSAgICB0b0ltcGwoa2V5VmFsdWVT
dG9yYWdlTWFuYWdlclJlZiktPmdldFN0b3JhZ2VEZXRhaWxzQnlPcmlnaW4odG9HZW5lcmljQ2Fs
bGJhY2tGdW5jdGlvbihjb250ZXh0LCBjYWxsYmFjaykpOworICAgIFN0b3JhZ2VNYW5hZ2VyKiBz
dG9yYWdlTWFuYWdlciA9IHRvSW1wbChyZWludGVycHJldF9jYXN0PFdLV2Vic2l0ZURhdGFTdG9y
ZVJlZj4oa2V5VmFsdWVTdG9yYWdlTWFuYWdlcikpLT53ZWJzaXRlRGF0YVN0b3JlKCkuc3RvcmFn
ZU1hbmFnZXIoKTsKKyAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKSB7CisgICAgICAgIFJ1bkxvb3A6
Om1haW4oKS5kaXNwYXRjaChbY29udGV4dCwgY2FsbGJhY2tdIHsKKyAgICAgICAgICAgIGNhbGxi
YWNrKHRvQVBJKEFQSTo6QXJyYXk6OmNyZWF0ZSgpLnB0cigpKSwgbnVsbHB0ciwgY29udGV4dCk7
CisgICAgICAgIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RvcmFnZU1hbmFn
ZXItPmdldExvY2FsU3RvcmFnZURldGFpbHNCeU9yaWdpbihbY29udGV4dCwgY2FsbGJhY2tdKFZl
Y3RvcjxMb2NhbFN0b3JhZ2VEZXRhaWxzPiBzdG9yYWdlRGV0YWlscykgeworICAgICAgICBIYXNo
TWFwPFN0cmluZywgUmVmUHRyPEFQSTo6T2JqZWN0Pj4gZGV0YWlsc01hcDsKKyAgICAgICAgVmVj
dG9yPFJlZlB0cjxBUEk6Ok9iamVjdD4+IHJlc3VsdDsKKyAgICAgICAgcmVzdWx0LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoc3RvcmFnZURldGFpbHMuc2l6ZSgpKTsKKworICAgICAgICBmb3IgKGNv
bnN0IExvY2FsU3RvcmFnZURldGFpbHMmIG9yaWdpbkRldGFpbHMgOiBzdG9yYWdlRGV0YWlscykg
eworICAgICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9iamVjdD4+IGRldGFp
bHNNYXA7CisKKyAgICAgICAgICAgIFJlZlB0cjxBUEk6Ok9iamVjdD4gb3JpZ2luID0gQVBJOjpT
ZWN1cml0eU9yaWdpbjo6Y3JlYXRlKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
RGF0YWJhc2VJZGVudGlmaWVyKG9yaWdpbkRldGFpbHMub3JpZ2luSWRlbnRpZmllcikpOworCisg
ICAgICAgICAgICBkZXRhaWxzTWFwLnNldCh0b0ltcGwoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
R2V0T3JpZ2luS2V5KCkpLT5zdHJpbmcoKSwgb3JpZ2luKTsKKyAgICAgICAgICAgIGlmIChvcmln
aW5EZXRhaWxzLmNyZWF0aW9uVGltZSkKKyAgICAgICAgICAgICAgICBkZXRhaWxzTWFwLnNldCh0
b0ltcGwoV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyR2V0Q3JlYXRpb25UaW1lS2V5KCkpLT5zdHJp
bmcoKSwgQVBJOjpEb3VibGU6OmNyZWF0ZShvcmlnaW5EZXRhaWxzLmNyZWF0aW9uVGltZS52YWx1
ZU9yKDApKSk7CisgICAgICAgICAgICBpZiAob3JpZ2luRGV0YWlscy5tb2RpZmljYXRpb25UaW1l
KQorICAgICAgICAgICAgICAgIGRldGFpbHNNYXAuc2V0KHRvSW1wbChXS0tleVZhbHVlU3RvcmFn
ZU1hbmFnZXJHZXRNb2RpZmljYXRpb25UaW1lS2V5KCkpLT5zdHJpbmcoKSwgQVBJOjpEb3VibGU6
OmNyZWF0ZShvcmlnaW5EZXRhaWxzLm1vZGlmaWNhdGlvblRpbWUudmFsdWVPcigwKSkpOworCisg
ICAgICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKEFQSTo6RGljdGlvbmFyeTo6Y3JlYXRl
KFdURjo6bW92ZShkZXRhaWxzTWFwKSkpOworICAgICAgICB9CisKKyAgICAgICAgY2FsbGJhY2so
dG9BUEkoQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6bW92ZShyZXN1bHQpKS5wdHIoKSksIG51bGxw
dHIsIGNvbnRleHQpOworICAgIH0pOwogfQogCi12b2lkIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ckRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyUmVmIGtleVZh
bHVlU3RvcmFnZU1hbmFnZXJSZWYsIFdLU2VjdXJpdHlPcmlnaW5SZWYgb3JpZ2luUmVmKQordm9p
ZCBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJEZWxldGVFbnRyaWVzRm9yT3JpZ2luKFdLS2V5VmFs
dWVTdG9yYWdlTWFuYWdlclJlZiBrZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLCBXS1NlY3VyaXR5T3Jp
Z2luUmVmIG9yaWdpbikKIHsKLSAgICB0b0ltcGwoa2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZikt
PmRlbGV0ZUVudHJpZXNGb3JPcmlnaW4odG9JbXBsKG9yaWdpblJlZikpOworICAgIFN0b3JhZ2VN
YW5hZ2VyKiBzdG9yYWdlTWFuYWdlciA9IHRvSW1wbChyZWludGVycHJldF9jYXN0PFdLV2Vic2l0
ZURhdGFTdG9yZVJlZj4oa2V5VmFsdWVTdG9yYWdlTWFuYWdlcikpLT53ZWJzaXRlRGF0YVN0b3Jl
KCkuc3RvcmFnZU1hbmFnZXIoKTsKKyAgICBpZiAoIXN0b3JhZ2VNYW5hZ2VyKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBzdG9yYWdlTWFuYWdlci0+ZGVsZXRlTG9jYWxTdG9yYWdlRW50cmllc0Zv
ck9yaWdpbih0b0ltcGwob3JpZ2luKS0+c2VjdXJpdHlPcmlnaW4oKSk7CiB9CiAKLXZvaWQgV0tL
ZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXJSZWYga2V5VmFsdWVTdG9yYWdlTWFuYWdlclJlZikKK3ZvaWQgV0tLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyRGVsZXRlQWxsRW50cmllcyhXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXJSZWYga2V5
VmFsdWVTdG9yYWdlTWFuYWdlcikKIHsKLSAgICB0b0ltcGwoa2V5VmFsdWVTdG9yYWdlTWFuYWdl
clJlZiktPmRlbGV0ZUFsbEVudHJpZXMoKTsKKyAgICBTdG9yYWdlTWFuYWdlciogc3RvcmFnZU1h
bmFnZXIgPSB0b0ltcGwocmVpbnRlcnByZXRfY2FzdDxXS1dlYnNpdGVEYXRhU3RvcmVSZWY+KGtl
eVZhbHVlU3RvcmFnZU1hbmFnZXIpKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnN0b3JhZ2VNYW5hZ2Vy
KCk7CisgICAgaWYgKCFzdG9yYWdlTWFuYWdlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgc3Rv
cmFnZU1hbmFnZXItPmRlbGV0ZUFsbExvY2FsU3RvcmFnZUVudHJpZXMoKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTEwOGU0NjFhZWQwMjhjOWEwZmVlMjE5
ZjRhOGY2ODhkMWFlOTE2OS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
ci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxNjIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
LmgiCi0KLSNpbmNsdWRlICJBUElBcnJheS5oIgotI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2lu
LmgiCi0jaW5jbHVkZSAiQVBJV2Vic2l0ZURhdGFTdG9yZS5oIgotI2luY2x1ZGUgIkxvY2FsU3Rv
cmFnZURldGFpbHMuaCIKLSNpbmNsdWRlICJTZWN1cml0eU9yaWdpbkRhdGEuaCIKLSNpbmNsdWRl
ICJTdG9yYWdlTWFuYWdlci5oIgotI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCi0jaW5jbHVk
ZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1u
YW1lc3BhY2UgV2ViS2l0IHsKLQotY29uc3QgY2hhciogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdl
cjo6c3VwcGxlbWVudE5hbWUoKQotewotICAgIHJldHVybiAiV2ViS2V5VmFsdWVTdG9yYWdlTWFu
YWdlciI7Ci19Ci0KLVN0cmluZyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpvcmlnaW5LZXko
KQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IGtleShBU0NJSUxpdGVyYWwo
IldlYktleVZhbHVlU3RvcmFnZU1hbmFnZXJTdG9yYWdlRGV0YWlsc09yaWdpbktleSIpKTsKLSAg
ICByZXR1cm4ga2V5OwotfQotCi1TdHJpbmcgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Y3Jl
YXRpb25UaW1lS2V5KCkKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiBrZXko
QVNDSUlMaXRlcmFsKCJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyU3RvcmFnZURldGFpbHNDcmVh
dGlvblRpbWVLZXkiKSk7Ci0gICAgcmV0dXJuIGtleTsKLX0KLQotU3RyaW5nIFdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXI6Om1vZGlmaWNhdGlvblRpbWVLZXkoKQotewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IGtleShBU0NJSUxpdGVyYWwoIldlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXJTdG9yYWdlRGV0YWlsc01vZGlmaWNhdGlvblRpbWVLZXkiKSk7Ci0gICAgcmV0dXJuIGtl
eTsKLX0KLQotUGFzc1JlZlB0cjxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyPiBXZWJLZXlWYWx1
ZVN0b3JhZ2VNYW5hZ2VyOjpjcmVhdGUoV2ViUHJvY2Vzc1Bvb2wqIHByb2Nlc3NQb29sKQotewot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcihwcm9jZXNz
UG9vbCkpOwotfQotCi1XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjpXZWJLZXlWYWx1ZVN0b3Jh
Z2VNYW5hZ2VyKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKLSAgICA6IFdlYkNvbnRleHRT
dXBwbGVtZW50KHByb2Nlc3NQb29sKQotewotfQotCi1XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
Ojp+V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcigpCi17Ci19Ci0KLS8vIFdlYkNvbnRleHRTdXBw
bGVtZW50Ci0KLXZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6cmVmV2ViQ29udGV4dFN1
cHBsZW1lbnQoKQotewotICAgIEFQSTo6T2JqZWN0OjpyZWYoKTsKLX0KLQotdm9pZCBXZWJLZXlW
YWx1ZVN0b3JhZ2VNYW5hZ2VyOjpkZXJlZldlYkNvbnRleHRTdXBwbGVtZW50KCkKLXsKLSAgICBB
UEk6Ok9iamVjdDo6ZGVyZWYoKTsKLX0KLQotdm9pZCBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2Vy
OjpnZXRLZXlWYWx1ZVN0b3JhZ2VPcmlnaW5zKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQVBJOjpBcnJh
eSosIENhbGxiYWNrQmFzZTo6RXJyb3IpPiBjYWxsYmFja0Z1bmN0aW9uKQotewotICAgIFN0b3Jh
Z2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlciA9IHByb2Nlc3NQb29sKCktPndlYnNpdGVEYXRhU3Rv
cmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnN0b3JhZ2VNYW5hZ2VyKCk7Ci0gICAgaWYgKCFzdG9y
YWdlTWFuYWdlcikgewotICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNr
RnVuY3Rpb25dIHsKLSAgICAgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQVBJOjpBcnJheTo6Y3Jl
YXRlKCkucHRyKCksIENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwotICAgICAgICB9KTsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHN0b3JhZ2VNYW5hZ2VyLT5nZXRMb2NhbFN0b3Jh
Z2VPcmlnaW5zKFtjYWxsYmFja0Z1bmN0aW9uXShIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4+JiYgc2VjdXJpdHlPcmlnaW5zKSB7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmpl
Y3Q+PiB3ZWJTZWN1cml0eU9yaWdpbnM7Ci0gICAgICAgIHdlYlNlY3VyaXR5T3JpZ2lucy5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KHNlY3VyaXR5T3JpZ2lucy5zaXplKCkpOwotICAgICAgICBmb3Ig
KGF1dG8mIG9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKLSAgICAgICAgICAgIHdlYlNlY3VyaXR5
T3JpZ2lucy51bmNoZWNrZWRBcHBlbmQoQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG9yaWdp
bikpOwotCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6
bW92ZSh3ZWJTZWN1cml0eU9yaWdpbnMpKS5wdHIoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9u
ZSk7Ci0gICAgfSk7Ci19Ci0KLXZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Z2V0U3Rv
cmFnZURldGFpbHNCeU9yaWdpbihzdGQ6OmZ1bmN0aW9uPHZvaWQgKEFQSTo6QXJyYXkqLCBDYWxs
YmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKLXsKLSAgICBTdG9yYWdlTWFuYWdl
ciogc3RvcmFnZU1hbmFnZXIgPSBwcm9jZXNzUG9vbCgpLT53ZWJzaXRlRGF0YVN0b3JlKCktPndl
YnNpdGVEYXRhU3RvcmUoKS5zdG9yYWdlTWFuYWdlcigpOwotICAgIGlmICghc3RvcmFnZU1hbmFn
ZXIpIHsKLSAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0Z1bmN0aW9u
XSB7Ci0gICAgICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKEFQSTo6QXJyYXk6OmNyZWF0ZSgpLnB0
cigpLCBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKLSAgICAgICAgfSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBzdG9yYWdlTWFuYWdlci0+Z2V0TG9jYWxTdG9yYWdlRGV0YWls
c0J5T3JpZ2luKFtjYWxsYmFja0Z1bmN0aW9uXShWZWN0b3I8TG9jYWxTdG9yYWdlRGV0YWlscz4g
c3RvcmFnZURldGFpbHMpIHsKLSAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxBUEk6Ok9i
amVjdD4+IGRldGFpbHNNYXA7Ci0gICAgICAgIFZlY3RvcjxSZWZQdHI8QVBJOjpPYmplY3Q+PiBy
ZXN1bHQ7Ci0gICAgICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHN0b3JhZ2VEZXRh
aWxzLnNpemUoKSk7Ci0KLSAgICAgICAgZm9yIChjb25zdCBMb2NhbFN0b3JhZ2VEZXRhaWxzJiBv
cmlnaW5EZXRhaWxzIDogc3RvcmFnZURldGFpbHMpIHsKLSAgICAgICAgICAgIEhhc2hNYXA8U3Ry
aW5nLCBSZWZQdHI8QVBJOjpPYmplY3Q+PiBkZXRhaWxzTWFwOwotCi0gICAgICAgICAgICBSZWZQ
dHI8QVBJOjpPYmplY3Q+IG9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRnJvbURhdGFiYXNlSWRlbnRpZmllcihvcmlnaW5EZXRhaWxzLm9y
aWdpbklkZW50aWZpZXIpKTsKLQotICAgICAgICAgICAgZGV0YWlsc01hcC5zZXQoV2ViS2V5VmFs
dWVTdG9yYWdlTWFuYWdlcjo6b3JpZ2luS2V5KCksIG9yaWdpbik7Ci0gICAgICAgICAgICBpZiAo
b3JpZ2luRGV0YWlscy5jcmVhdGlvblRpbWUpCi0gICAgICAgICAgICAgICAgZGV0YWlsc01hcC5z
ZXQoV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6Y3JlYXRpb25UaW1lS2V5KCksIEFQSTo6RG91
YmxlOjpjcmVhdGUob3JpZ2luRGV0YWlscy5jcmVhdGlvblRpbWUudmFsdWVPcigwKSkpOwotICAg
ICAgICAgICAgaWYgKG9yaWdpbkRldGFpbHMubW9kaWZpY2F0aW9uVGltZSkKLSAgICAgICAgICAg
ICAgICBkZXRhaWxzTWFwLnNldChXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyOjptb2RpZmljYXRp
b25UaW1lS2V5KCksIEFQSTo6RG91YmxlOjpjcmVhdGUob3JpZ2luRGV0YWlscy5tb2RpZmljYXRp
b25UaW1lLnZhbHVlT3IoMCkpKTsKLQotICAgICAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVu
ZChBUEk6OkRpY3Rpb25hcnk6OmNyZWF0ZShXVEY6Om1vdmUoZGV0YWlsc01hcCkpKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQVBJOjpBcnJheTo6Y3JlYXRlKFdURjo6
bW92ZShyZXN1bHQpKS5wdHIoKSwgQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSk7Ci0gICAgfSk7
Ci19Ci0KLXZvaWQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcjo6ZGVsZXRlRW50cmllc0Zvck9y
aWdpbihBUEk6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4pCi17Ci0gICAgU3RvcmFnZU1hbmFnZXIq
IHN0b3JhZ2VNYW5hZ2VyID0gcHJvY2Vzc1Bvb2woKS0+d2Vic2l0ZURhdGFTdG9yZSgpLT53ZWJz
aXRlRGF0YVN0b3JlKCkuc3RvcmFnZU1hbmFnZXIoKTsKLSAgICBpZiAoIXN0b3JhZ2VNYW5hZ2Vy
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzdG9yYWdlTWFuYWdlci0+ZGVsZXRlTG9jYWxTdG9y
YWdlRW50cmllc0Zvck9yaWdpbihvcmlnaW4tPnNlY3VyaXR5T3JpZ2luKCkpOwotfQotCi12b2lk
IFdlYktleVZhbHVlU3RvcmFnZU1hbmFnZXI6OmRlbGV0ZUFsbEVudHJpZXMoKQotewotICAgIFN0
b3JhZ2VNYW5hZ2VyKiBzdG9yYWdlTWFuYWdlciA9IHByb2Nlc3NQb29sKCktPndlYnNpdGVEYXRh
U3RvcmUoKS0+d2Vic2l0ZURhdGFTdG9yZSgpLnN0b3JhZ2VNYW5hZ2VyKCk7Ci0gICAgaWYgKCFz
dG9yYWdlTWFuYWdlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc3RvcmFnZU1hbmFnZXItPmRl
bGV0ZUFsbExvY2FsU3RvcmFnZUVudHJpZXMoKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYktleVZhbHVlU3RvcmFnZU1h
bmFnZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZGVlYjhkODI0MWM1MjFhMDY1
ZTE2NmU4YmU1ZmE4ZDBlZmRjOWJkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMSwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcl9oCi0jZGVmaW5lIFdlYktleVZh
bHVlU3RvcmFnZU1hbmFnZXJfaAotCi0jaW5jbHVkZSAiQVBJT2JqZWN0LmgiCi0jaW5jbHVkZSAi
R2VuZXJpY0NhbGxiYWNrLmgiCi0jaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCi0jaW5jbHVk
ZSAiV2ViQ29udGV4dFN1cHBsZW1lbnQuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgot
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJQcm9jZXNzUG9vbDsKLXR5cGVkZWYgR2VuZXJpY0Nh
bGxiYWNrPEFQSTo6QXJyYXkqPiBBcnJheUNhbGxiYWNrOwotCi1jbGFzcyBXZWJLZXlWYWx1ZVN0
b3JhZ2VNYW5hZ2VyIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
S2V5VmFsdWVTdG9yYWdlTWFuYWdlcj4sIHB1YmxpYyBXZWJDb250ZXh0U3VwcGxlbWVudCB7Ci1w
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1cHBsZW1lbnROYW1lKCk7Ci0KLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyPiBjcmVhdGUoV2ViUHJv
Y2Vzc1Bvb2wqKTsKLSAgICB2aXJ0dWFsIH5XZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyKCk7Ci0K
LSAgICB2b2lkIGdldEtleVZhbHVlU3RvcmFnZU9yaWdpbnMoc3RkOjpmdW5jdGlvbjx2b2lkIChB
UEk6OkFycmF5KiwgQ2FsbGJhY2tCYXNlOjpFcnJvcik+KTsKLSAgICB2b2lkIGdldFN0b3JhZ2VE
ZXRhaWxzQnlPcmlnaW4oc3RkOjpmdW5jdGlvbjx2b2lkIChBUEk6OkFycmF5KiwgQ2FsbGJhY2tC
YXNlOjpFcnJvcik+KTsKLSAgICB2b2lkIGRlbGV0ZUVudHJpZXNGb3JPcmlnaW4oQVBJOjpTZWN1
cml0eU9yaWdpbiopOwotICAgIHZvaWQgZGVsZXRlQWxsRW50cmllcygpOwotCi0gICAgdXNpbmcg
QVBJOjpPYmplY3Q6OnJlZjsKLSAgICB1c2luZyBBUEk6Ok9iamVjdDo6ZGVyZWY7Ci0KLSAgICBz
dGF0aWMgU3RyaW5nIG9yaWdpbktleSgpOwotICAgIHN0YXRpYyBTdHJpbmcgY3JlYXRpb25UaW1l
S2V5KCk7Ci0gICAgc3RhdGljIFN0cmluZyBtb2RpZmljYXRpb25UaW1lS2V5KCk7Ci0KLXByaXZh
dGU6Ci0gICAgZXhwbGljaXQgV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlcihXZWJQcm9jZXNzUG9v
bCopOwotCi0gICAgLy8gV2ViQ29udGV4dFN1cHBsZW1lbnQKLSAgICB2aXJ0dWFsIHZvaWQgcmVm
V2ViQ29udGV4dFN1cHBsZW1lbnQoKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgZGVyZWZX
ZWJDb250ZXh0U3VwcGxlbWVudCgpIG92ZXJyaWRlOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0KLSNlbmRpZiAvLyBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDA1NmQyMzNjODNjOWQ2NTdj
OWVmMmZhMGQxODM2NWVkZjllNTU3OWUuLjQwYzZjZDkyYzI0MTRiMDVhMGU3MDIwY2QyODBiYmE1
NjRlZmFmM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cApAQCAtNDUsNyArNDUsNiBAQAogI2luY2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiV2ViR2VvbG9jYXRpb25NYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJJ
Y29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbmNsdWRlICJXZWJNZWRpYUNhY2hlTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViTWVtb3J5U2FtcGxlci5oIgpAQCAtMTkzLDcgKzE5
Miw2IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKIAogICAgIGFkZFN1cHBsZW1lbnQ8V2ViQ29va2ll
TWFuYWdlclByb3h5PigpOwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViR2VvbG9jYXRpb25NYW5hZ2Vy
UHJveHk+KCk7Ci0gICAgYWRkU3VwcGxlbWVudDxXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyPigp
OwogICAgIGFkZFN1cHBsZW1lbnQ8V2ViTWVkaWFDYWNoZU1hbmFnZXJQcm94eT4oKTsKICAgICBh
ZGRTdXBwbGVtZW50PFdlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eT4oKTsKICAgICBhZGRTdXBw
bGVtZW50PFdlYkRhdGFiYXNlTWFuYWdlclByb3h5PigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4OGM5N2FlY2UxZGNhYjI3
MmUxZDIxZDY4YmQ0NDQzZTU2YjU3NTAuLmVkZjE5MTE3NGZlM2ViZDE2NGI4YzFiMGViM2VmMzA2
NzUyYmIyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTk5OCw4ICs5OTgsNiBAQAogCQk1MUE3RjJGMzEyNUJGODIwMDA4QUVC
MUQgLyogTG9nZ2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTFBN0YyRjIxMjVCRjgyMDAwOEFFQjFEIC8qIExvZ2dpbmcuaCAqLzsgfTsKIAkJNTFB
N0YyRjUxMjVCRjhENDAwOEFFQjFEIC8qIExvZ2dpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBN0YyRjQxMjVCRjhENDAwOEFFQjFEIC8qIExv
Z2dpbmcuY3BwICovOyB9OwogCQk1MUE4NENFMzEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4
dE1lbnVQcm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MUE4NENFMjEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAg
Ki87IH07Ci0JCTUxQTlFMTA1MTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VN
YW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQTlFMTAyMTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cCAqLzsgfTsKLQkJNTFBOUUxMDYxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVlU3RvcmFn
ZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxQTlFMTAzMTMxNUNDRkMwMDlFNzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmgg
Ki87IH07CiAJCTUxQTlFMTBBMTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFBOUUxMDgxMzE1Q0QxODAwOUU3MDMxIC8qIFdLS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAg
Ki87IH07CiAJCTUxQTlFMTBCMTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1h
bmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
QTlFMTA5MTMxNUNEMTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MUFDQkI4MjEy
N0E4QkFEMDBEMjAzQjkgLyogV2ViQ29udGV4dE1lbnVQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFBQ0JCODExMjdBOEJBRDAwRDIwM0I5IC8q
IFdlYkNvbnRleHRNZW51UHJveHkuaCAqLzsgfTsKQEAgLTMxNzcsOCArMzE3NSw2IEBACiAJCTUx
QThBNjEyMTYyN0YzMjUwMDBEOTBFOSAvKiBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVy
cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBOZXR3b3JrUHJvY2Vz
c0NyZWF0aW9uUGFyYW1ldGVycy5jcHA7IHBhdGggPSBOZXR3b3JrL05ldHdvcmtQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFBOEE2
MTUxNjI3RjNGOTAwMEQ5MEU5IC8qIE5ldHdvcmtQcm9jZXNzTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gTmV0d29ya1Byb2Nlc3NNYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQThBNjE3MTYyN0Y1QkIwMDBEOTBFOSAvKiBOZXR3b3Jr
UHJvY2Vzcy5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBOZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbjsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3Nh
Z2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk1MUE5RTEwMjEzMTVDQ0ZDMDA5
RTcwMzEgLyogV2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTFBOUUxMDMxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktl
eVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2V5VmFsdWVTdG9yYWdlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MUE5RTEwODEzMTVDRDE4MDA5RTcwMzEgLyogV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLS2V5VmFsdWVTdG9yYWdl
TWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxQTlFMTA5MTMxNUNE
MTgwMDlFNzAzMSAvKiBXS0tleVZhbHVlU3RvcmFnZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV0tLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUxQUJGNjU2MTYzOTJGMTUwMDEzMkE3QSAvKiBXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDsgcGF0aCA9IE5ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTYxNzksOCAr
NjE3NSw2IEBACiAJCQkJMUM4RTI4MzMxMjc1RDczODAwQkM3QkQwIC8qIFdlYkluc3BlY3RvclBy
b3h5LmNwcCAqLywKIAkJCQkxQzhFMjgzMjEyNzVENzM4MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9y
UHJveHkuaCAqLywKIAkJCQkxQzc3QzE5NTEyODhBODcyMDA2QTc0MkYgLyogV2ViSW5zcGVjdG9y
UHJveHkubWVzc2FnZXMuaW4gKi8sCi0JCQkJNTFBOUUxMDIxMzE1Q0NGQzAwOUU3MDMxIC8qIFdl
YktleVZhbHVlU3RvcmFnZU1hbmFnZXIuY3BwICovLAotCQkJCTUxQTlFMTAzMTMxNUNDRkMwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggKi8sCiAJCQkJMzNEM0EzQjcxMzM5
NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCTMz
RDNBM0I4MTMzOTYwNjIwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlclByb3h5LmggKi8s
CiAJCQkJMzNEM0EzQjkxMzM5NjA2MjAwNzA5QkU0IC8qIFdlYk1lZGlhQ2FjaGVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4gKi8sCkBAIC03OTg2LDcgKzc5ODAsNiBAQAogCQkJCTFDQkJFNEExMTlC
NjZDNTMwMDZCN0Q4MSAvKiBXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkxQUE2NTREMTFCMTRGNzE0MDBCRjFEM0UgLyogV0tXZWJzaXRlRGF0YVJlY29yZFByaXZh
dGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQTk0NEEwMTg4NEU0RjAwMEVEODZEQiAvKiBXZWJJ
T1NFdmVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAotCQkJCTUxQTlFMTA2MTMxNUNDRkMwMDlF
NzAzMSAvKiBXZWJLZXlWYWx1ZVN0b3JhZ2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QTYyODBDNTE5MTk5NDlGMDA2QUQ5RjkgLyogV2ViS2l0LmggaW4gSGVhZGVycyAqLywKIAkJCQlC
QzU5NTQ4OTE1Qzc4Njg1MDBGRDFFM0UgLyogV2ViS2l0Mi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNCNjM0NzgxMTZCRjEwNjAwNjAzMjE1IC8qIFdlYktpdDJfQy5oIGluIEhlYWRlcnMgKi8sCkBA
IC05ODIwLDcgKzk4MTMsNiBAQAogCQkJCTFDQkJFNEEwMTlCNjZDNTMwMDZCN0Q4MSAvKiBXZWJJ
bnNwZWN0b3JVSU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREE5NDRB
MTE4ODRFNEYwMDBFRDg2REIgLyogV2ViSU9TRXZlbnRGYWN0b3J5Lm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJQzAzMzdERDMxMjdBMkEwRTAwOEZGNEY0IC8qIFdlYktleWJvYXJkRXZlbnQuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJNTFBOUUxMDUxMzE1Q0NGQzAwOUU3MDMxIC8qIFdlYktleVZhbHVl
U3RvcmFnZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2MjgwRjMxOTE5OTgyQTAw
NkFEOUY5IC8qIFdlYktpdC5tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5QkE1MDQxNjk3QzQ1MzAw
RTQ0NjE2IC8qIFdlYktpdDJJbml0aWFsaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTMzRDNB
M0MxMTMzOTYwQjAwMDcwOUJFNCAvKiBXZWJNZWRpYUNhY2hlTWFuYWdlci5jcHAgaW4gU291cmNl
cyAqLywK
</data>
<flag name="review"
          id="279989"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>