<?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>76952</bug_id>
          
          <creation_ts>2012-01-24 15:33:32 -0800</creation_ts>
          <short_desc>IndexedDB: IDBCursor.update() should raise exception if key changed</short_desc>
          <delta_ts>2012-01-31 13:45:48 -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>
          
          <blocked>77060</blocked>
    
    <blocked>77374</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>dgrogan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>541773</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-24 15:33:32 -0800</bug_when>
    <thetext>IDBObjectStoreBackendImpl.cpp:

During the async task execution, this is run:

       if (putMode == CursorUpdate &amp;&amp; !keyPathKey-&gt;isEqual(key)) {
            callbacks-&gt;onError(IDBDatabaseError::create(IDBDatabaseException::DATA_ERR, &quot;The key fetched from the keyPath does not match the key of the cursor.&quot;));
            return 0;
        }

Per spec, this should synchronously raise an exception during the put() call instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>541791</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-24 15:47:35 -0800</bug_when>
    <thetext>... and while there, move all of the key selection (and value updating) logic into put(), rather than the putInternal async task, to match recent discussion on public-webapps. 

The async task should be handed the final value and final key to insert with.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>542495</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-25 11:44:02 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; ... and while there, move all of the key selection (and value updating) logic into put(), rather than the putInternal async task, to match recent discussion on public-webapps. 
&gt; 
&gt; The async task should be handed the final value and final key to insert with.

Slight wrinkle - for generated keys (i.e. autoIncrement) the generation step should occur within the async task within the transaction. This may require that in put() we check to see if a value can be inserted (by inserting a dummy value?) and then in putInternal() we run the key generation step and actually insert the key.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545470</commentid>
    <comment_count>3</comment_count>
      <attachid>124610</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-30 15:16:58 -0800</bug_when>
    <thetext>Created attachment 124610
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545486</commentid>
    <comment_count>4</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-01-30 15:25:31 -0800</bug_when>
    <thetext>Filed https://bugs.webkit.org/show_bug.cgi?id=77374 for the &quot;the generation step should occur within the async task within the transaction&quot; note.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545519</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-01-30 15:55:22 -0800</bug_when>
    <thetext>The change looks sane.  If dgrogan or someone else can do an unofficial review, I can r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>545718</commentid>
    <comment_count>6</comment_count>
      <attachid>124610</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-01-30 18:50:30 -0800</bug_when>
    <thetext>Comment on attachment 124610
Patch

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546455</commentid>
    <comment_count>7</comment_count>
      <attachid>124610</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 13:45:43 -0800</bug_when>
    <thetext>Comment on attachment 124610
Patch

Clearing flags on attachment: 124610

Committed r106387: &lt;http://trac.webkit.org/changeset/106387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>546456</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-31 13:45:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>124610</attachid>
            <date>2012-01-30 15:16:58 -0800</date>
            <delta_ts>2012-01-31 13:45:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76952-20120130151654.patch</filename>
            <type>text/plain</type>
            <size>16050</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2MjE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJlMzc5NGYwYjNiYzBh
ZjUwZWQ0ZDEwMzVlYjJlZWQ3ZmZiNGQ3Ny4uOTI0M2YxZmU1MzdlN2FlMTFkZDU0ODE0YWQ5OGU4
OTIyZWM5YTlhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTMwICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJREJD
dXJzb3IudXBkYXRlKCkgc2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiBpZiBrZXkgY2hhbmdlZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NTIKKworICAg
ICAgICBNb3ZlIHRoZSB0ZXN0IGZyb20gdGhlIGFzeW5jIHRhc2sgdG8gdGhlIHN5bmNocm9ub3Vz
IGNhbGwsIHBlciBzcGVjLiBBbHNvIHJlLW9yZGVyZWQgdGhlIHRlc3RzCisgICAgICAgIGRvbmUg
ZHVyaW5nIHRoZSBzeW5jaHJvbm91cyBjYWxsIGFuZCB0aGUgYXN5bmNocm9ub3VzIHRhc2sgdG8g
Zm9sbG93IHRoZSBzcGVjIG9yZGVyLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLmh0
bWwKKworICAgICAgICAqIHN0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpwdXQpOiBBZGRlZCBj
aGVjayBkdXJpbmcgdXBkYXRlKCkgY2FsbCwgb3JkZXIgY2hlY2tzIHBlciBzcGVjLgorICAgICAg
ICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbDo6cHV0SW50ZXJuYWwpOiBNb3Zl
IGVmZmVjdGl2ZSBrZXkgY2FsY3VsYXRpb24gaW5saW5lLgorICAgICAgICAqIHN0b3JhZ2UvSURC
T2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oOiBSZW1vdmVkIHNlbGVjdEtleUZvclB1dCBtZXRob2Qu
CisKIDIwMTItMDEtMjkgIERhbGUgQ3VydGlzICA8ZGFsZWN1cnRpc0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUHJlcGFyZSBXZWJDb3JlLmd5cCBmb3IgZmZtcGVnIHNvdXJjZSB0cmFuc2l0aW9u
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tl
bmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbC5jcHAKaW5kZXggNTFhOTBkMGRhN2U1ZWVlZDNlNGIyZTkyNjJmYjlkNDJhNGUwYTYyNC4u
Y2UwNDJiZWI2ZmQ2NjQ3ZTgyODUyNjI4NGJiZWZjOTUyOGYxZjY3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlQmFja2VuZEltcGwuY3BwCkBAIC0x
MzIsMzMgKzEzMiwzMiBAQCB2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dChQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcHJwVmFsdWUsCiAgICAgUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEludGVyZmFjZT4gdHJhbnNhY3Rpb24gPSB0cmFuc2FjdGlvblB0cjsK
IAogICAgIGlmIChwdXRNb2RlICE9IEN1cnNvclVwZGF0ZSkgewotICAgICAgICBpZiAoa2V5ICYm
ICFrZXktPnZhbGlkKCkpIHsKKyAgICAgICAgY29uc3QgYm9vbCBhdXRvSW5jcmVtZW50ID0gb2Jq
ZWN0U3RvcmUtPmF1dG9JbmNyZW1lbnQoKTsKKyAgICAgICAgY29uc3QgYm9vbCBoYXNLZXlQYXRo
ID0gIW9iamVjdFN0b3JlLT5tX2tleVBhdGguaXNOdWxsKCk7CisKKyAgICAgICAgaWYgKGhhc0tl
eVBhdGggJiYga2V5KSB7CiAgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpE
QVRBX0VSUjsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBjb25zdCBi
b29sIGF1dG9JbmNyZW1lbnQgPSBvYmplY3RTdG9yZS0+YXV0b0luY3JlbWVudCgpOwotICAgICAg
ICBjb25zdCBib29sIGhhc0tleVBhdGggPSAhb2JqZWN0U3RvcmUtPm1fa2V5UGF0aC5pc051bGwo
KTsKLSAgICAgICAgaWYgKCFrZXkgJiYgIWF1dG9JbmNyZW1lbnQgJiYgIWhhc0tleVBhdGgpIHsK
KyAgICAgICAgaWYgKCFoYXNLZXlQYXRoICYmICFhdXRvSW5jcmVtZW50ICYmICFrZXkpIHsKICAg
ICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGlmIChoYXNLZXlQYXRoKSB7Ci0gICAgICAg
ICAgICBpZiAoa2V5KSB7CisgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXlQYXRoS2V5ID0g
ZmV0Y2hLZXlGcm9tS2V5UGF0aCh2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPm1fa2V5UGF0aCk7
CisgICAgICAgICAgICBpZiAoa2V5UGF0aEtleSAmJiAha2V5UGF0aEtleS0+dmFsaWQoKSkgewog
ICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwogICAg
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgUmVmUHRy
PElEQktleT4ga2V5UGF0aEtleSA9IGZldGNoS2V5RnJvbUtleVBhdGgodmFsdWUuZ2V0KCksIG9i
amVjdFN0b3JlLT5tX2tleVBhdGgpOwotICAgICAgICAgICAgaWYgKCFhdXRvSW5jcmVtZW50KSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFrZXlQYXRoS2V5IHx8ICFrZXlQYXRoS2V5LT52YWxpZCgp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSOwotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgfQotICAg
ICAgICAgICAgfSBlbHNlIGlmIChrZXlQYXRoS2V5ICYmICFrZXlQYXRoS2V5LT52YWxpZCgpKSB7
CisgICAgICAgICAgICBpZiAoIWF1dG9JbmNyZW1lbnQgJiYgIWtleVBhdGhLZXkpIHsKICAgICAg
ICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpEQVRBX0VSUjsKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICAgICAgaWYgKGtl
eSAmJiAha2V5LT52YWxpZCgpKSB7CisgICAgICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpEQVRBX0VSUjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQogICAgICAgICBm
b3IgKEluZGV4TWFwOjppdGVyYXRvciBpdCA9IG1faW5kZXhlcy5iZWdpbigpOyBpdCAhPSBtX2lu
ZGV4ZXMuZW5kKCk7ICsraXQpIHsKICAgICAgICAgICAgIGNvbnN0IFJlZlB0cjxJREJJbmRleEJh
Y2tlbmRJbXBsPiYgaW5kZXggPSBpdC0+c2Vjb25kOwogICAgICAgICAgICAgUmVmUHRyPElEQktl
eT4gaW5kZXhLZXkgPSBmZXRjaEtleUZyb21LZXlQYXRoKHZhbHVlLmdldCgpLCBpbmRleC0+a2V5
UGF0aCgpKTsKQEAgLTE2Nyw3MyArMTY2LDY0IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5k
SW1wbDo6cHV0KFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBwcnBWYWx1ZSwKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KKyAgICB9IGVs
c2UgeworICAgICAgICBBU1NFUlQoa2V5KTsKKyAgICAgICAgY29uc3QgYm9vbCBoYXNLZXlQYXRo
ID0gIW9iamVjdFN0b3JlLT5tX2tleVBhdGguaXNOdWxsKCk7CisgICAgICAgIGlmIChoYXNLZXlQ
YXRoKSB7CisgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXlQYXRoS2V5ID0gZmV0Y2hLZXlG
cm9tS2V5UGF0aCh2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPm1fa2V5UGF0aCk7CisgICAgICAg
ICAgICBpZiAoIWtleVBhdGhLZXkgfHwgIWtleVBhdGhLZXktPmlzRXF1YWwoa2V5LmdldCgpKSkg
eworICAgICAgICAgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSOwor
ICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0K
IAogICAgIGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhjcmVhdGVDYWxsYmFja1Rhc2so
JklEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1dEludGVybmFsLCBvYmplY3RTdG9yZSwgdmFs
dWUsIGtleSwgcHV0TW9kZSwgY2FsbGJhY2tzLCB0cmFuc2FjdGlvbikpKQogICAgICAgICBlYyA9
IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiB9CiAKLVBh
c3NSZWZQdHI8SURCS2V5PiBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsOjpzZWxlY3RLZXlGb3JQ
dXQoSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbCogb2JqZWN0U3RvcmUsIElEQktleSoga2V5LCBQ
dXRNb2RlIHB1dE1vZGUsIElEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBSZWZQdHI8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYgdmFsdWUpCit2b2lkIElEQk9iamVjdFN0b3JlQmFja2VuZEltcGw6OnB1
dEludGVybmFsKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlQmFja2VuZEltcGw+IG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZT4gcHJwVmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBLZXksIFB1dE1vZGUgcHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJUcmFu
c2FjdGlvbkJhY2tlbmRJbnRlcmZhY2U+IHRyYW5zYWN0aW9uKQogewotICAgIGlmIChwdXRNb2Rl
ID09IEN1cnNvclVwZGF0ZSkKLSAgICAgICAgQVNTRVJUKGtleSk7Ci0KLSAgICBjb25zdCBib29s
IGF1dG9JbmNyZW1lbnQgPSBvYmplY3RTdG9yZS0+YXV0b0luY3JlbWVudCgpOwotICAgIGNvbnN0
IGJvb2wgaGFzS2V5UGF0aCA9ICFvYmplY3RTdG9yZS0+bV9rZXlQYXRoLmlzTnVsbCgpOwotCi0g
ICAgaWYgKGF1dG9JbmNyZW1lbnQgJiYga2V5KSB7Ci0gICAgICAgIG9iamVjdFN0b3JlLT5yZXNl
dEF1dG9JbmNyZW1lbnRLZXlDYWNoZSgpOwotICAgICAgICByZXR1cm4ga2V5OwotICAgIH0KLQot
ICAgIGlmIChhdXRvSW5jcmVtZW50KSB7Ci0gICAgICAgIEFTU0VSVCgha2V5KTsKLSAgICAgICAg
aWYgKCFoYXNLZXlQYXRoKQotICAgICAgICAgICAgcmV0dXJuIG9iamVjdFN0b3JlLT5nZW5BdXRv
SW5jcmVtZW50S2V5KCk7Ci0KLSAgICAgICAgUmVmUHRyPElEQktleT4ga2V5UGF0aEtleSA9IGZl
dGNoS2V5RnJvbUtleVBhdGgodmFsdWUuZ2V0KCksIG9iamVjdFN0b3JlLT5tX2tleVBhdGgpOwot
ICAgICAgICBpZiAoa2V5UGF0aEtleSkgewotICAgICAgICAgICAgb2JqZWN0U3RvcmUtPnJlc2V0
QXV0b0luY3JlbWVudEtleUNhY2hlKCk7Ci0gICAgICAgICAgICByZXR1cm4ga2V5UGF0aEtleTsK
LSAgICAgICAgfQorICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlID0gcHJw
VmFsdWU7CisgICAgUmVmUHRyPElEQktleT4ga2V5ID0gcHJwS2V5OwogCi0gICAgICAgIFJlZlB0
cjxJREJLZXk+IGF1dG9JbmNLZXkgPSBvYmplY3RTdG9yZS0+Z2VuQXV0b0luY3JlbWVudEtleSgp
OwotICAgICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZUFmdGVySW5qZWN0
aW9uID0gaW5qZWN0S2V5SW50b0tleVBhdGgoYXV0b0luY0tleSwgdmFsdWUsIG9iamVjdFN0b3Jl
LT5tX2tleVBhdGgpOwotICAgICAgICBpZiAoIXZhbHVlQWZ0ZXJJbmplY3Rpb24pIHsKLSAgICAg
ICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0
YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSLCAiVGhlIGdlbmVyYXRlZCBrZXkgY291bGQgbm90IGJl
IGluc2VydGVkIGludG8gdGhlIG9iamVjdCB1c2luZyB0aGUga2V5UGF0aC4iKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gMDsKKyAgICBpZiAocHV0TW9kZSAhPSBDdXJzb3JVcGRhdGUpIHsKKyAgICAg
ICAgY29uc3QgYm9vbCBhdXRvSW5jcmVtZW50ID0gb2JqZWN0U3RvcmUtPmF1dG9JbmNyZW1lbnQo
KTsKKyAgICAgICAgY29uc3QgYm9vbCBoYXNLZXlQYXRoID0gIW9iamVjdFN0b3JlLT5tX2tleVBh
dGguaXNOdWxsKCk7CisgICAgICAgIGlmIChoYXNLZXlQYXRoKSB7CisgICAgICAgICAgICBBU1NF
UlQoIWtleSk7CisgICAgICAgICAgICBSZWZQdHI8SURCS2V5PiBrZXlQYXRoS2V5ID0gZmV0Y2hL
ZXlGcm9tS2V5UGF0aCh2YWx1ZS5nZXQoKSwgb2JqZWN0U3RvcmUtPm1fa2V5UGF0aCk7CisgICAg
ICAgICAgICBpZiAoa2V5UGF0aEtleSkKKyAgICAgICAgICAgICAgICBrZXkgPSBrZXlQYXRoS2V5
OwogICAgICAgICB9Ci0gICAgICAgIHZhbHVlID0gdmFsdWVBZnRlckluamVjdGlvbjsKLSAgICAg
ICAgcmV0dXJuIGF1dG9JbmNLZXkucmVsZWFzZSgpOwotICAgIH0KLQotICAgIGlmIChoYXNLZXlQ
YXRoKSB7Ci0gICAgICAgIFJlZlB0cjxJREJLZXk+IGtleVBhdGhLZXkgPSBmZXRjaEtleUZyb21L
ZXlQYXRoKHZhbHVlLmdldCgpLCBvYmplY3RTdG9yZS0+bV9rZXlQYXRoKTsKLQotICAgICAgICAv
LyBGSVhNRTogVGhpcyBjaGVjayBzaG91bGQgYmUgbW92ZWQgdG8gcHV0KCkgYW5kIHJhaXNlIGFu
IGV4Y2VwdGlvbi4gV0s3Njk1MgotICAgICAgICBpZiAocHV0TW9kZSA9PSBDdXJzb3JVcGRhdGUg
JiYgIWtleVBhdGhLZXktPmlzRXF1YWwoa2V5KSkgewotICAgICAgICAgICAgY2FsbGJhY2tzLT5v
bkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6REFU
QV9FUlIsICJUaGUga2V5IGZldGNoZWQgZnJvbSB0aGUga2V5UGF0aCBkb2VzIG5vdCBtYXRjaCB0
aGUga2V5IG9mIHRoZSBjdXJzb3IuIikpOwotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IGlmIChhdXRvSW5jcmVtZW50KSB7CisgICAgICAgICAgICBpZiAoIWtleSkgeworICAgICAgICAg
ICAgICAgIFJlZlB0cjxJREJLZXk+IGF1dG9JbmNLZXkgPSBvYmplY3RTdG9yZS0+Z2VuQXV0b0lu
Y3JlbWVudEtleSgpOworICAgICAgICAgICAgICAgIGlmIChoYXNLZXlQYXRoKSB7CisgICAgICAg
ICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgY2hlY2tzIGluIHB1dCgpIHRvIGVuc3VyZSB0aGlz
IHdpbGwgYWx3YXlzIHN1Y2NlZWQgKGFwYXJ0IGZyb20gSS9PIGVycm9ycykuCisgICAgICAgICAg
ICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM3
NAorICAgICAgICAgICAgICAgICAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1
ZUFmdGVySW5qZWN0aW9uID0gaW5qZWN0S2V5SW50b0tleVBhdGgoYXV0b0luY0tleSwgdmFsdWUs
IG9iamVjdFN0b3JlLT5tX2tleVBhdGgpOworICAgICAgICAgICAgICAgICAgICBpZiAoIXZhbHVl
QWZ0ZXJJbmplY3Rpb24pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNrcy0+b25F
cnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFf
RVJSLCAiVGhlIGdlbmVyYXRlZCBrZXkgY291bGQgbm90IGJlIGluc2VydGVkIGludG8gdGhlIG9i
amVjdCB1c2luZyB0aGUga2V5UGF0aC4iKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm47CisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2
YWx1ZUFmdGVySW5qZWN0aW9uOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBr
ZXkgPSBhdXRvSW5jS2V5OworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAv
LyBGSVhNRTogTG9naWMgdG8gdXBkYXRlIGdlbmVyYXRvciBzdGF0ZSBzaG91bGQgZ28gaGVyZS4g
Q3VycmVudGx5IGl0IGRvZXMgYSBzY2FuLgorICAgICAgICAgICAgICAgIG9iamVjdFN0b3JlLT5y
ZXNldEF1dG9JbmNyZW1lbnRLZXlDYWNoZSgpOworICAgICAgICAgICAgfQogICAgICAgICB9Ci0K
LSAgICAgICAgcmV0dXJuIGtleVBhdGhLZXkucmVsZWFzZSgpOwotICAgIH0KLQotICAgIGlmICgh
a2V5KSB7Ci0gICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVh
dGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkRBVEFfRVJSLCAiTm8ga2V5IHN1cHBsaWVkIikpOwot
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAKLSAgICByZXR1cm4ga2V5OwotfQorICAgIEFTU0VS
VChrZXkgJiYga2V5LT52YWxpZCgpKTsKIAotdm9pZCBJREJPYmplY3RTdG9yZUJhY2tlbmRJbXBs
OjpwdXRJbnRlcm5hbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZUJhY2tlbmRJbXBsPiBvYmplY3RTdG9yZSwgUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IHBycFZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4gcHJwS2V5LCBQdXRNb2RlIHB1
dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW50ZXJmYWNlPiB0cmFuc2FjdGlvbikKLXsKLSAgICBSZWZQdHI8
U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSA9IHBycFZhbHVlOwotICAgIFJlZlB0cjxJREJL
ZXk+IGtleSA9IHNlbGVjdEtleUZvclB1dChvYmplY3RTdG9yZS5nZXQoKSwgcHJwS2V5LmdldCgp
LCBwdXRNb2RlLCBjYWxsYmFja3MuZ2V0KCksIHZhbHVlKTsKLSAgICBpZiAoIWtleSkKKyAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IHJlY29y
ZElkZW50aWZpZXIgPSBvYmplY3RTdG9yZS0+bV9iYWNraW5nU3RvcmUtPmNyZWF0ZUludmFsaWRS
ZWNvcmRJZGVudGlmaWVyKCk7CisgICAgaWYgKHB1dE1vZGUgPT0gQWRkT25seSAmJiBvYmplY3RT
dG9yZS0+bV9iYWNraW5nU3RvcmUtPmtleUV4aXN0c0luT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUt
Pm1fZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUtPmlkKCksICprZXksIHJlY29yZElkZW50aWZpZXIu
Z2V0KCkpKSB7CisgICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpj
cmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OkNPTlNUUkFJTlRfRVJSLCAiS2V5IGFscmVhZHkg
ZXhpc3RzIGluIHRoZSBvYmplY3Qgc3RvcmUuIikpOwogICAgICAgICByZXR1cm47Ci0gICAgQVNT
RVJUKGtleS0+dmFsaWQoKSk7CisgICAgfQogCiAgICAgVmVjdG9yPFJlZlB0cjxJREJLZXk+ID4g
aW5kZXhLZXlzOwogICAgIGZvciAoSW5kZXhNYXA6Oml0ZXJhdG9yIGl0ID0gb2JqZWN0U3RvcmUt
Pm1faW5kZXhlcy5iZWdpbigpOyBpdCAhPSBvYmplY3RTdG9yZS0+bV9pbmRleGVzLmVuZCgpOyAr
K2l0KSB7CkBAIC0yNjMsMTQgKzI1Myw2IEBAIHZvaWQgSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bDo6cHV0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8CiAgICAg
ICAgIGluZGV4S2V5cy5hcHBlbmQoaW5kZXhLZXkucmVsZWFzZSgpKTsKICAgICB9CiAKLSAgICBS
ZWZQdHI8SURCQmFja2luZ1N0b3JlOjpPYmplY3RTdG9yZVJlY29yZElkZW50aWZpZXI+IHJlY29y
ZElkZW50aWZpZXIgPSBvYmplY3RTdG9yZS0+bV9iYWNraW5nU3RvcmUtPmNyZWF0ZUludmFsaWRS
ZWNvcmRJZGVudGlmaWVyKCk7Ci0gICAgYm9vbCBpc0V4aXN0aW5nVmFsdWUgPSBvYmplY3RTdG9y
ZS0+bV9iYWNraW5nU3RvcmUtPmtleUV4aXN0c0luT2JqZWN0U3RvcmUob2JqZWN0U3RvcmUtPm1f
ZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUtPmlkKCksICprZXksIHJlY29yZElkZW50aWZpZXIuZ2V0
KCkpOwotCi0gICAgaWYgKHB1dE1vZGUgPT0gQWRkT25seSAmJiBpc0V4aXN0aW5nVmFsdWUpIHsK
LSAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJE
YXRhYmFzZUV4Y2VwdGlvbjo6Q09OU1RSQUlOVF9FUlIsICJLZXkgYWxyZWFkeSBleGlzdHMgaW4g
dGhlIG9iamVjdCBzdG9yZS4iKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KICAgICAvLyBC
ZWZvcmUgdGhpcyBwb2ludCwgZG9uJ3QgZG8gYW55IG11dGF0aW9uLiAgQWZ0ZXIgdGhpcyBwb2lu
dCwgcm9sbGJhY2sgdGhlIHRyYW5zYWN0aW9uIGluIGNhc2Ugb2YgZXJyb3IuCiAKICAgICBpZiAo
IW9iamVjdFN0b3JlLT5tX2JhY2tpbmdTdG9yZS0+cHV0T2JqZWN0U3RvcmVSZWNvcmQob2JqZWN0
U3RvcmUtPm1fZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUtPmlkKCksICprZXksIHZhbHVlLT50b1dp
cmVTdHJpbmcoKSwgcmVjb3JkSWRlbnRpZmllci5nZXQoKSkpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKaW5kZXggMmFiNTYyNzMw
YTdiZGUwZDVhYmViMGE3NDIzMWU5NDM4MDk2YzM5NC4uN2MxMmQ4NDcyMjMwZDgzY2FlNWRkMGE0
YTZhZTgyNDU1N2E2MThkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZUJhY2tlbmRJbXBsLmgKQEAgLTg3LDcgKzg3LDYgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGxvYWRJbmRleGVzKCk7CiAgICAgUGFzc1JlZlB0cjxJREJLZXk+IGdlbkF1dG9JbmNyZW1l
bnRLZXkoKTsKICAgICB2b2lkIHJlc2V0QXV0b0luY3JlbWVudEtleUNhY2hlKCkgeyBtX2F1dG9J
bmNyZW1lbnROdW1iZXIgPSAtMTsgfQotICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gc2Vs
ZWN0S2V5Rm9yUHV0KElEQk9iamVjdFN0b3JlQmFja2VuZEltcGwqLCBJREJLZXkqLCBQdXRNb2Rl
LCBJREJDYWxsYmFja3MqLCBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYpOwogCiAgICAg
c3RhdGljIHZvaWQgZ2V0SW50ZXJuYWwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQ
dHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1wbD4sIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPik7CiAgICAgc3RhdGljIHZvaWQgcHV0SW50ZXJuYWwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmVCYWNrZW5kSW1w
bD4sIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiwgUGFzc1JlZlB0cjxJREJLZXk+
LCBQdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW50ZXJmYWNlPik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTViOGE4MGU0YzAyZDQxZmQ2N2RjMjc0
M2E1YTZjNGNhODZjNmYyMC4uNGVkOTE4NTFhZjVmNDdjMjg0MDYwNTQyMTJiMjc4MGUyZDY3MjYw
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTMwICBKb3NodWEgQmVsbCAgPGpzYmVs
bEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJREJDdXJzb3IudXBkYXRlKCkg
c2hvdWxkIHJhaXNlIGV4Y2VwdGlvbiBpZiBrZXkgY2hhbmdlZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY5NTIKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11
cGRhdGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11
cGRhdGUuaHRtbDoKKwogMjAxMi0wMS0yOSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5j
b20+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbnJldmlld2VkIHRlc3QgZXhwZWN0YXRpb24gY2hh
bmdlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXVw
ZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3It
dXBkYXRlLWV4cGVjdGVkLnR4dAppbmRleCA0YWViZDU0NmUwNzU5NWMxYWMwNmI5YTg0MTRlNzAy
NGIwZjYzYTA4Li4wZTIxZjhjNzUzNTgwMmFkNzMxZjU5NDRhOTY5OGNmZGY3NWFlZWJkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRl
LWV4cGVjdGVkLnR4dApAQCAtMTA0LDI4ICsxMDQsMjggQEAgYXV0b0luY3JlbWVudENoZWNrQ3Vy
c29yKCkKIFBBU1MgY291bnRlciBpcyA1CiB0cmFucy5vYmplY3RTdG9yZSgna2V5UGF0aFN0b3Jl
Jykub3BlbkN1cnNvcihrZXlSYW5nZSkKIGtleVBhdGhVcGRhdGVDdXJzb3IoKQotZXZlbnQudGFy
Z2V0LnJlc3VsdC51cGRhdGUoe2lkOiAxMDAgKyBjb3VudGVyLCBudW1iZXI6IDEwMCArIGNvdW50
ZXJ9KQotUEFTUyBldmVudC50YXJnZXQuZXJyb3JDb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhj
ZXB0aW9uLkRBVEFfRVJSCi1ldmVudC5wcmV2ZW50RGVmYXVsdCgpCi1ldmVudC50YXJnZXQuc291
cmNlLnVwZGF0ZSh7aWQ6IGNvdW50ZXIsIG51bWJlcjogMTAwICsgY291bnRlcisrfSkKK0V4cGVj
dGluZyBleGNlcHRpb24gZnJvbSBldmVudC50YXJnZXQucmVzdWx0LnVwZGF0ZSh7aWQ6IDEwMCAr
IGNvdW50ZXIsIG51bWJlcjogMTAwICsgY291bnRlcn0pCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhy
b3duLgorUEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSCitl
dmVudC50YXJnZXQucmVzdWx0LnVwZGF0ZSh7aWQ6IGNvdW50ZXIsIG51bWJlcjogMTAwICsgY291
bnRlcisrfSkKIGV2ZW50LnRhcmdldC5zb3VyY2UuY29udGludWUoKQoga2V5UGF0aFVwZGF0ZUN1
cnNvcigpCi1ldmVudC50YXJnZXQucmVzdWx0LnVwZGF0ZSh7aWQ6IDEwMCArIGNvdW50ZXIsIG51
bWJlcjogMTAwICsgY291bnRlcn0pCi1QQVNTIGV2ZW50LnRhcmdldC5lcnJvckNvZGUgaXMgd2Vi
a2l0SURCRGF0YWJhc2VFeGNlcHRpb24uREFUQV9FUlIKLWV2ZW50LnByZXZlbnREZWZhdWx0KCkK
LWV2ZW50LnRhcmdldC5zb3VyY2UudXBkYXRlKHtpZDogY291bnRlciwgbnVtYmVyOiAxMDAgKyBj
b3VudGVyKyt9KQorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGV2ZW50LnRhcmdldC5yZXN1bHQu
dXBkYXRlKHtpZDogMTAwICsgY291bnRlciwgbnVtYmVyOiAxMDAgKyBjb3VudGVyfSkKK1BBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgd2Via2l0SURCRGF0YWJhc2VFeGNl
cHRpb24uREFUQV9FUlIKK2V2ZW50LnRhcmdldC5yZXN1bHQudXBkYXRlKHtpZDogY291bnRlciwg
bnVtYmVyOiAxMDAgKyBjb3VudGVyKyt9KQogZXZlbnQudGFyZ2V0LnNvdXJjZS5jb250aW51ZSgp
CiBrZXlQYXRoVXBkYXRlQ3Vyc29yKCkKLWV2ZW50LnRhcmdldC5yZXN1bHQudXBkYXRlKHtpZDog
MTAwICsgY291bnRlciwgbnVtYmVyOiAxMDAgKyBjb3VudGVyfSkKLVBBU1MgZXZlbnQudGFyZ2V0
LmVycm9yQ29kZSBpcyB3ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgotZXZlbnQu
cHJldmVudERlZmF1bHQoKQotZXZlbnQudGFyZ2V0LnNvdXJjZS51cGRhdGUoe2lkOiBjb3VudGVy
LCBudW1iZXI6IDEwMCArIGNvdW50ZXIrK30pCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZXZl
bnQudGFyZ2V0LnJlc3VsdC51cGRhdGUoe2lkOiAxMDAgKyBjb3VudGVyLCBudW1iZXI6IDEwMCAr
IGNvdW50ZXJ9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyB3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUgorZXZlbnQudGFyZ2V0LnJlc3VsdC51cGRh
dGUoe2lkOiBjb3VudGVyLCBudW1iZXI6IDEwMCArIGNvdW50ZXIrK30pCiBldmVudC50YXJnZXQu
c291cmNlLmNvbnRpbnVlKCkKIGtleVBhdGhVcGRhdGVDdXJzb3IoKQotZXZlbnQudGFyZ2V0LnJl
c3VsdC51cGRhdGUoe2lkOiAxMDAgKyBjb3VudGVyLCBudW1iZXI6IDEwMCArIGNvdW50ZXJ9KQot
UEFTUyBldmVudC50YXJnZXQuZXJyb3JDb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9u
LkRBVEFfRVJSCi1ldmVudC5wcmV2ZW50RGVmYXVsdCgpCi1ldmVudC50YXJnZXQuc291cmNlLnVw
ZGF0ZSh7aWQ6IGNvdW50ZXIsIG51bWJlcjogMTAwICsgY291bnRlcisrfSkKK0V4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSBldmVudC50YXJnZXQucmVzdWx0LnVwZGF0ZSh7aWQ6IDEwMCArIGNvdW50
ZXIsIG51bWJlcjogMTAwICsgY291bnRlcn0pCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgor
UEFTUyBjb2RlIGlzIHdlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFfRVJSCitldmVudC50
YXJnZXQucmVzdWx0LnVwZGF0ZSh7aWQ6IGNvdW50ZXIsIG51bWJlcjogMTAwICsgY291bnRlcisr
fSkKIGV2ZW50LnRhcmdldC5zb3VyY2UuY29udGludWUoKQoga2V5UGF0aFVwZGF0ZUN1cnNvcigp
CiBQQVNTIGNvdW50ZXIgaXMgNQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvY3Vyc29yLXVwZGF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
Y3Vyc29yLXVwZGF0ZS5odG1sCmluZGV4IDIyMWI0ZDM4ZGZhMTRkOWM3ODkzZDA1MjYwODYwM2Vk
NjI3NTY5OWQuLjk0OGYyMjUyZThmODMyOTRmNThmNDA5NWNhZmU0YWNlNDM4OWUxZmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci11cGRhdGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwKQEAg
LTE2MywxNyArMTYzLDExIEBAIGZ1bmN0aW9uIGtleVBhdGhVcGRhdGVDdXJzb3IoKQogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImV2ZW50LnRhcmdl
dC5yZXN1bHQudXBkYXRlKHtpZDogMTAwICsgY291bnRlciwgbnVtYmVyOiAxMDAgKyBjb3VudGVy
fSkiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7
Ci0gICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHNob3VsZEJlKCJl
dmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uLkRBVEFf
RVJSIik7CisgICAgZXZhbEFuZEV4cGVjdEV4Y2VwdGlvbigiZXZlbnQudGFyZ2V0LnJlc3VsdC51
cGRhdGUoe2lkOiAxMDAgKyBjb3VudGVyLCBudW1iZXI6IDEwMCArIGNvdW50ZXJ9KSIsICJ3ZWJr
aXRJREJEYXRhYmFzZUV4Y2VwdGlvbi5EQVRBX0VSUiIpOwogCi0gICAgICAgIGV2YWxBbmRMb2co
ImV2ZW50LnByZXZlbnREZWZhdWx0KCkiKTsKLQotICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygiZXZlbnQudGFyZ2V0LnNvdXJjZS51cGRhdGUoe2lkOiBjb3VudGVyLCBudW1iZXI6IDEwMCAr
IGNvdW50ZXIrK30pIik7Ci0gICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7
IGV2YWxBbmRMb2coImV2ZW50LnRhcmdldC5zb3VyY2UuY29udGludWUoKSIpIH07Ci0gICAgICAg
IHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwotICAgIH0KKyAgICBy
ZXF1ZXN0ID0gZXZhbEFuZExvZygiZXZlbnQudGFyZ2V0LnJlc3VsdC51cGRhdGUoe2lkOiBjb3Vu
dGVyLCBudW1iZXI6IDEwMCArIGNvdW50ZXIrK30pIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbigpIHsgZXZhbEFuZExvZygiZXZlbnQudGFyZ2V0LnNvdXJjZS5jb250aW51ZSgp
IikgfTsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKIH0K
IAogZnVuY3Rpb24ga2V5UGF0aENoZWNrQ3Vyc29yKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>