<?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>94402</bug_id>
          
          <creation_ts>2012-08-17 17:38:40 -0700</creation_ts>
          <short_desc>IndexedDB: Fire error at request when abort is called in upgradeneeded</short_desc>
          <delta_ts>2012-08-21 18:08:26 -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="David Grogan">dgrogan</reporter>
          <assigned_to name="David Grogan">dgrogan</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jsbell</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698845</commentid>
    <comment_count>0</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-17 17:38:40 -0700</bug_when>
    <thetext>IndexedDB: Fire error at request when abort is called in upgradeneeded</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698865</commentid>
    <comment_count>1</comment_count>
      <attachid>159250</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-17 18:06:59 -0700</bug_when>
    <thetext>Created attachment 159250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698867</commentid>
    <comment_count>2</comment_count>
      <attachid>159251</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-17 18:08:24 -0700</bug_when>
    <thetext>Created attachment 159251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698868</commentid>
    <comment_count>3</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-17 18:09:33 -0700</bug_when>
    <thetext>Josh, could you look at this?

The first of many addenda to the integer version stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698873</commentid>
    <comment_count>4</comment_count>
      <attachid>159253</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-17 18:22:31 -0700</bug_when>
    <thetext>Created attachment 159253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698880</commentid>
    <comment_count>5</comment_count>
      <attachid>159253</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-08-17 18:42:56 -0700</bug_when>
    <thetext>Comment on attachment 159253
Patch

Attachment 159253 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13535059</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>700993</commentid>
    <comment_count>6</comment_count>
      <attachid>159253</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-21 12:22:06 -0700</bug_when>
    <thetext>Comment on attachment 159253
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=159253&amp;action=review

lgtm

&gt; Source/WebCore/ChangeLog:8
&gt; +        Tests - updated expected.txt

Give test path/name here too.

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:325
&gt;      RefPtr&lt;IDBTransactionBackendImpl&gt; transaction = prpTransaction;

Add an ASSERT(m_state == Finished) here?

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:340
&gt; +    RefPtr&lt;IDBTransactionBackendImpl&gt; transaction = prpTransaction;

And here?

&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:500
&gt; +    ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersionCalls.size(), &quot;m_pendingSecondHalfOpenWithVersionCalls.size = %lu&quot;, m_pendingSecondHalfOpenWithVersionCalls.size());

Based on EWS output, Android port&apos;s compiler requires a size_t-&gt;long long cast here, apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701125</commentid>
    <comment_count>7</comment_count>
      <attachid>159253</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 14:24:45 -0700</bug_when>
    <thetext>Comment on attachment 159253
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=159253&amp;action=review

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Tests - updated expected.txt
&gt; 
&gt; Give test path/name here too.

done

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:325
&gt;&gt;      RefPtr&lt;IDBTransactionBackendImpl&gt; transaction = prpTransaction;
&gt; 
&gt; Add an ASSERT(m_state == Finished) here?

Are you suggesting adding an accessor for IDBTransactionBackendImpl::m_state? I would guess you didn&apos;t realize that&apos;d be necessary and that it&apos;s not worth it. But if you did anticipate that and think it&apos;s a good idea, I&apos;ll add it.

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:500
&gt;&gt; +    ASSERT_WITH_MESSAGE(!m_pendingSecondHalfOpenWithVersionCalls.size(), &quot;m_pendingSecondHalfOpenWithVersionCalls.size = %lu&quot;, m_pendingSecondHalfOpenWithVersionCalls.size());
&gt; 
&gt; Based on EWS output, Android port&apos;s compiler requires a size_t-&gt;long long cast here, apparently.

We&apos;ll see if zu works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701127</commentid>
    <comment_count>8</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-08-21 14:25:49 -0700</bug_when>
    <thetext>&gt; &gt; Add an ASSERT(m_state == Finished) here?
&gt; 
&gt; Are you suggesting adding an accessor for IDBTransactionBackendImpl::m_state? I would guess you didn&apos;t realize that&apos;d be necessary and that it&apos;s not worth it. But if you did anticipate that and think it&apos;s a good idea, I&apos;ll add it.

Oops - sorry, my brain wasn&apos;t back from vacation here. I was thinking we were still in IDBTransactionBackendImpl.

No, keep state internal, no ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701130</commentid>
    <comment_count>9</comment_count>
      <attachid>159770</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 14:31:21 -0700</bug_when>
    <thetext>Created attachment 159770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701202</commentid>
    <comment_count>10</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 15:37:36 -0700</bug_when>
    <thetext>%zu worked on the android try job, it&apos;ll probably pass on cr-android.
http://build.chromium.org/p/tryserver.chromium/builders/android/builds/30549</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701203</commentid>
    <comment_count>11</comment_count>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-08-21 15:38:22 -0700</bug_when>
    <thetext>Tony, could you review this when you get a chance?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701223</commentid>
    <comment_count>12</comment_count>
      <attachid>159770</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-08-21 15:56:36 -0700</bug_when>
    <thetext>Comment on attachment 159770
Patch

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701414</commentid>
    <comment_count>13</comment_count>
      <attachid>159770</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-21 18:08:23 -0700</bug_when>
    <thetext>Comment on attachment 159770
Patch

Clearing flags on attachment: 159770

Committed r126239: &lt;http://trac.webkit.org/changeset/126239&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>701415</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-21 18:08:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159250</attachid>
            <date>2012-08-17 18:06:59 -0700</date>
            <delta_ts>2012-08-17 18:08:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94402-20120817180623.patch</filename>
            <type>text/plain</type>
            <size>12117</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE5ZGQ1ZDMzZTFhNzA5
MzA0M2UzMDNlMTU0ZjA1ZTMxZWViMjI0YS4uYmEyMTAxNDZkOTNkZjk0MmE0ZWE2YjI0YTk4YTU1
NDg1YWNjZjEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA4LTE3ICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZp
cmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIC0g
dXBkYXRlZCBleHBlY3RlZC50eHQKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBs
ZXRlRmlyZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAg
ICBVbnJlbGF0ZWQgQVNTRVJULgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgTW92ZSBzZXR0aW5nIG1f
ZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50Lgor
ICAgICAgICBJZiBhYm9ydCBpcyBjYWxsZWQgaW4gdGhlIGV2ZW50IGhhbmRsZXIgYW4gZXJyb3Ig
ZXZlbnQgd2lsbCBiZQorICAgICAgICBlbnF1ZXVlZCBhbmQgQVNTRVJUX1dJVEhfTUVTU0FHRSht
X3JlYWR5U3RhdGUgPT0gUEVORElORyB8fAorICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVk
RXZlbnQsIC4uLikgbmVlZHMgdG8gcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNh
Y3Rpb25CYWNrZW5kSW1wbDo6Y29tbWl0KToKKwogMjAxMi0wOC0xNyAgT2phbiBWYWZhaSAgPG9q
YW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlbGV0ZSBkZWFkIGNvZGUgaW4gZGVwcmVjYXRl
ZCBmbGV4Ym94IGZvciBSVEwgbGluZS1jbGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCBm
OWIxYWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjLi40YzNlMTNmOTMzMmRmNzVm
Y2FhNDhkOGYxY2VjNTY3YzZhYmQ2NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzE4
LDE3ICszMTgsMjggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZp
bmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW4KICAgICB9CiB9CiAKLXZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEV2ZW50c0ZpcmVk
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24pCit2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZp
cmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24p
CiB7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uID0g
cHJwVHJhbnNhY3Rpb247CiAgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNh
Y3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIG9wZW4t
d2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAgICAgIC8vIGhh
bGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0NhbGxzLgogICAg
ICAgICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCBzZXRWZXJzaW9uLCBhc3Nl
cnQgc3VjaCBhIHRoaW5nLgorICAgICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICBSZWZQdHI8UGVuZGluZ09w
ZW5XaXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsID0gbV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICAgICAg
cGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlZl
cnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQgZXZl
bnQgaGFuZGxlci4iKSk7CisgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygp
OwogICAgIH0KIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZp
bmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+IHBycFRyYW5zYWN0aW9uKQoreworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOworICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSkKKyAgICAgICAgcHJvY2Vz
c1BlbmRpbmdDYWxscygpOworfQorCiBpbnQzMl90IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNv
bm5lY3Rpb25Db3VudCgpCiB7CiAgICAgcmV0dXJuIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuc2l6
ZSgpICsgbV9wZW5kaW5nQ29ubmVjdGlvbkNvdW50OwpAQCAtNDgxLDYgKzQ5Miw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGlu
dDY0X3QgcmVxdWVzdGVkVmVyCiAgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s+IHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrID0gY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpyZXNldFZlcnNpb24sIGRhdGFiYXNlLCBtX3ZlcnNpb24pOwogICAg
IGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhpbnRWZXJzaW9uVGFzay5yZWxlYXNlKCks
IHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrLnJlbGVhc2UoKSkpCiAgICAgICAgIGVjID0gSURCRGF0
YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKCFtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgp
LCAibV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUgPSAlbHUiLCBt
X3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpKTsKICAgICBtX3Bl
bmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuYXBwZW5kKFBlbmRpbmdPcGVuV2l0
aFZlcnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCByZXF1ZXN0ZWRWZXJzaW9uKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuaAppbmRleCAyMjBkZTUxMTMzZjc3ZDFjMTRlY2IzMzM4OTJmMmRjNmI2
MGViODM2Li4xYTZmZWJhNGY2NjNjMzk1NjdjYWUyMGE2ZDY4OGM2OWQxMDE5ZDBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VC
YWNrZW5kSW1wbC5oCkBAIC03Miw3ICs3Miw4IEBAIHB1YmxpYzoKICAgICBJREJUcmFuc2FjdGlv
bkNvb3JkaW5hdG9yKiB0cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4gbV90
cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmdldCgpOyB9CiAgICAgdm9pZCB0cmFuc2FjdGlvblN0YXJ0
ZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CiAgICAgdm9pZCB0cmFu
c2FjdGlvbkZpbmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwot
ICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZEFuZEV2ZW50c0ZpcmVkKFBhc3NSZWZQdHI8SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOworICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZEFu
ZENvbXBsZXRlRmlyZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7Cisg
ICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw+KTsKIAogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUJhY2tl
bmRJbXBsKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwgSURC
VHJhbnNhY3Rpb25Db29yZGluYXRvciosIElEQkZhY3RvcnlCYWNrZW5kSW1wbCosIGNvbnN0IFN0
cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGE2MzMzOWYyYTIzOWFhMzM5ZDMyNDkxNDJhYTAy
Y2IyMDQ2Yzc4YzQuLmEwNmRiOGFkYTlhNjRlYzhjYWJmNTc2NDhlNzdiNjEzZGQ0NmRlZmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBA
IC00NjksNiArNDY5LDExIEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKICAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1ZVJl
YWR5KG1fY3Vyc29yS2V5LnJlbGVhc2UoKSwgbV9jdXJzb3JQcmltYXJ5S2V5LnJlbGVhc2UoKSwg
bV9jdXJzb3JWYWx1ZS5yZWxlYXNlKCkpOwogICAgIH0KIAorICAgIGlmIChldmVudC0+dHlwZSgp
ID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpIHsKKyAgICAgICAgQVNTRVJUKCFt
X2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVl
ZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93IGN1
c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hhbmdl
LgogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
c3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQg
fHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50IHx8IGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCwgImV2ZW50IHR5cGUgd2Fz
ICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBjb25zdCBi
b29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURC
X0FCT1JUX0VSUikpOwpAQCAtNDgzLDExICs0ODgsNiBAQCBib29sIElEQlJlcXVlc3Q6OmRpc3Bh
dGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90aWZ5
KQogICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2soKTsK
IAotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZl
bnQpIHsKLSAgICAgICAgQVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOwotICAg
ICAgICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOwotICAgIH0KLQogICAgIGlm
IChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5lcnJvckV2ZW50ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJvcnRl
ZCkgewogICAgICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGwuY3BwCmluZGV4IDJhNmI4MjI2OGYzNGYxNjQ3ZmIwYzM3ZmJjNWE2
ZTUzM2Q3ZDMwZmYuLmNjNTZkNWUwNThjZTNiZTVkYzY1MzU3YzcxNGI4NjU4ZWQ1NWYzYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCkBAIC0xNTEsNiArMTUxLDggQEAgdm9pZCBJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsOjphYm9ydCgpCiAgICAgaWYgKG1fY2FsbGJhY2tzKQogICAg
ICAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCgpOwogCisgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rp
b25GaW5pc2hlZEFuZEFib3J0RmlyZWQodGhpcyk7CisKICAgICBtX2RhdGFiYXNlID0gMDsKIH0K
IApAQCAtMjMyLDEyICsyMzQsMTMgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpj
b21taXQoKQogICAgICAgICBtX2RhdGFiYXNlLT50cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCktPmRp
ZEZpbmlzaFRyYW5zYWN0aW9uKHRoaXMpOwogICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmlu
aXNoZWQodGhpcyk7CiAKLSAgICBpZiAoY29tbWl0dGVkKQorICAgIGlmIChjb21taXR0ZWQpIHsK
ICAgICAgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUoKTsKLSAgICBlbHNlCisgICAgICAgIG1f
ZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZpcmVkKHRoaXMpOworICAg
IH0gZWxzZSB7CiAgICAgICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KCk7Ci0KLSAgICBtX2RhdGFi
YXNlLT50cmFuc2FjdGlvbkZpbmlzaGVkQW5kRXZlbnRzRmlyZWQodGhpcyk7CisgICAgICAgIG1f
ZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKHRoaXMpOworICAgIH0K
IAogICAgIG1fZGF0YWJhc2UgPSAwOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBhZDk0ZmIwZjJjZTA4OTBlMzk3ZTNm
Y2UzMTgxYjA2MGNlNDAzMDEuLjNkMGM5MGFjYjg5NzRhYzI5OThjMzFmMTM5NjQyZjdmNDYwZWI3
NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOC0xNyAgRGF2aWQgR3JvZ2FuICA8ZGdy
b2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBGaXJlIGVycm9yIGF0IHJl
cXVlc3Qgd2hlbiBhYm9ydCBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2lu
dHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgT25seSByZW1haW5pbmcgZXJyb3IgaW4gdGhpcyB0ZXN0IGlzIHZlcnNpb25zIG5vdCBi
ZWluZyByZXNldCBpbgorICAgICAgICBtZW1vcnkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQu
anM6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQpOgor
ICAgICAgICAob25BYm9ydCk6CisgICAgICAgIChvbkVycm9yKToKKwogMjAxMi0wOC0xNyAgS2ly
YW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVzdCBl
eHBlY3RhdGlvbnMgZm9yIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kZWNvZGUtcmVzaXpl
Lmh0bWwgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9p
bnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwt
dXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggNWEwNThjZjEyNjU5ZGNhYTRiZjE0NTg4
ZWU4NDU2OWE2YzdmNWM1YS4uOGIzZjE3MWIwZDczNWJlMDU2ZjU2YzhhNmQyZDJlNGQ4OTcxNzFi
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1h
Ym9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRl
bmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtOSw4ICs5LDcgQEAgZGJuYW1lID0gImludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwiCiBpbmRleGVkREIuZGVsZXRlRGF0
YWJhc2UoZGJuYW1lKQogaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkCi1GSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVycm9y
IGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJvcgotcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2sKK3JlcXVlc3Qub25lcnJvciA9IG9uRXJyb3IKIAogdXBncmFkZU5lZWRlZCgp
OgogUEFTUyBkYi52ZXJzaW9uIGlzIDIKQEAgLTE4LDYgKzE3LDE0IEBAIHRyYW5zYWN0aW9uLmFi
b3J0KCkKIAogb25BYm9ydCgpOgogRkFJTCBldmVudC50YXJnZXQuZGIudmVyc2lvbiBzaG91bGQg
YmUgMC4gV2FzIDIuCitQQVNTIHJlcXVlc3QudHJhbnNhY3Rpb24gaXMgbm9uLW51bGwuCisKK29u
RXJyb3IoKToKK1BBU1MgZGIgaXMgZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyByZXF1ZXN0IGlz
IGV2ZW50LnRhcmdldAorUEFTUyBldmVudC50YXJnZXQuZXJyb3IubmFtZSBpcyAiQWJvcnRFcnJv
ciIKK0ZBSUwgZXZlbnQudGFyZ2V0LnJlc3VsdC52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMgMi4K
K1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFk
ZW5lZWRlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcwppbmRleCA5NDU3ODc2ODE4
YTg1MDYxNWNmOTQ4ZDhkMGIyYjZmZDkyZGI3NjU3Li45NDQ5NDFlNTkyMmIyNjg5YzY1ZjBkM2Jk
ZWJkMWU4NjZiZTMwNTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24t
YWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCkBAIC0xOSwxNiArMTksMTMgQEAgZnVu
Y3Rpb24gZGVsZXRlU3VjY2VzcygpIHsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhl
ZERCLm9wZW4oZGJuYW1lLCAyKSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBlY3Rl
ZFN1Y2Nlc3NDYWxsYmFjazsKICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5lZWRl
ZCA9IHVwZ3JhZGVOZWVkZWQiKTsKLSAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hvdWxkIGdldCBh
biBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IiKTsKLSAgICBldmFsQW5kTG9nKCJyZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOworICAgIGV2YWxBbmRMb2co
InJlcXVlc3Qub25lcnJvciA9IG9uRXJyb3IiKTsKICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVu
ZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0
KQogewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygidXBncmFkZU5lZWRlZCgpOiIpOwotICAg
IGV2ZW50ID0gZXZ0OworICAgIHByZWFtYmxlKGV2dCk7CiAgICAgZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0OwogICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKICAgICB0cmFuc2FjdGlv
biA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKQEAgLTM5LDEwICszNiwxOSBAQCBmdW5jdGlv
biB1cGdyYWRlTmVlZGVkKGV2dCkKIAogZnVuY3Rpb24gb25BYm9ydChldnQpCiB7Ci0gICAgZGVi
dWcoIiIpOwotICAgIGRlYnVnKCJvbkFib3J0KCk6Iik7Ci0gICAgZXZlbnQgPSBldnQ7CisgICAg
cHJlYW1ibGUoZXZ0KTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24iLCAi
MCIpOworICAgIHNob3VsZEJlTm9uTnVsbCgicmVxdWVzdC50cmFuc2FjdGlvbiIpOworfQorCitm
dW5jdGlvbiBvbkVycm9yKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3VsZEJl
KCJkYiIsICJldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoInJlcXVlc3QiLCAi
ZXZlbnQudGFyZ2V0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJnZXQu
ZXJyb3IubmFtZSIsICJBYm9ydEVycm9yIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdldC5y
ZXN1bHQudmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxkQmVOdWxsKCJyZXF1ZXN0LnRyYW5zYWN0
aW9uIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159251</attachid>
            <date>2012-08-17 18:08:24 -0700</date>
            <delta_ts>2012-08-17 18:22:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94402-20120817180748.patch</filename>
            <type>text/plain</type>
            <size>12234</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE5ZGQ1ZDMzZTFhNzA5
MzA0M2UzMDNlMTU0ZjA1ZTMxZWViMjI0YS4uZWMzYmZkZDYyMWZiNDA3ZDg3MTQzOTJiMDRkMzYx
MjM1MWJmOWJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTE3ICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZp
cmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIC0g
dXBkYXRlZCBleHBlY3RlZC50eHQKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBs
ZXRlRmlyZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAg
ICBOb3cgdGhhdCBzZWNvbmQtaGFsZiBvcGVuIGNhbGxzIGRvbid0IGdldCBhYmFuZG9uZWQgb24g
dGhlIHF1ZXVlLCB3ZQorICAgICAgICBjYW4gQVNTRVJUIHRoYXQgdGhlcmUncyBhdCBtb3N0IG9u
ZSBvZiB0aGVtIGF0IGFueSB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgTW92ZSBzZXR0aW5n
IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50
LgorICAgICAgICBJZiBhYm9ydCBpcyBjYWxsZWQgaW4gdGhlIGV2ZW50IGhhbmRsZXIgYW4gZXJy
b3IgZXZlbnQgd2lsbCBiZQorICAgICAgICBlbnF1ZXVlZCBhbmQgQVNTRVJUX1dJVEhfTUVTU0FH
RShtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fAorICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVl
ZGVkRXZlbnQsIC4uLikgbmVlZHMgdG8gcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6Y29tbWl0KToKKwogMjAxMi0wOC0xNyAgT2phbiBWYWZhaSAg
PG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERlbGV0ZSBkZWFkIGNvZGUgaW4gZGVwcmVj
YXRlZCBmbGV4Ym94IGZvciBSVEwgbGluZS1jbGFtcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRl
eCBmOWIxYWVlNWVmZTc2Yjg1MzI0OGFmOGNiMmY1MTQyZDgwYzcyNmNjLi40YzNlMTNmOTMzMmRm
NzVmY2FhNDhkOGYxY2VjNTY3YzZhYmQ2NDRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAt
MzE4LDE3ICszMTgsMjggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlv
bkZpbmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW4KICAgICB9CiB9CiAKLXZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEV2ZW50c0Zp
cmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24p
Cit2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9y
dEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rp
b24pCiB7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9u
ID0gcHJwVHJhbnNhY3Rpb247CiAgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURCVHJh
bnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIG9w
ZW4td2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAgICAgIC8v
IGhhbGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0NhbGxzLgog
ICAgICAgICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCBzZXRWZXJzaW9uLCBh
c3NlcnQgc3VjaCBhIHRoaW5nLgorICAgICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5X
aXRoVmVyc2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICBSZWZQdHI8UGVuZGlu
Z09wZW5XaXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsID0gbV9wZW5k
aW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICAg
ICAgcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRh
dGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwg
IlZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQg
ZXZlbnQgaGFuZGxlci4iKSk7CisgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxs
cygpOwogICAgIH0KIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlv
bkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2Vu
ZEltcGw+IHBycFRyYW5zYWN0aW9uKQoreworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tl
bmRJbXBsPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOworICAgIGlmICh0cmFuc2FjdGlv
bi0+bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSkKKyAgICAgICAgcHJv
Y2Vzc1BlbmRpbmdDYWxscygpOworfQorCiBpbnQzMl90IElEQkRhdGFiYXNlQmFja2VuZEltcGw6
OmNvbm5lY3Rpb25Db3VudCgpCiB7CiAgICAgcmV0dXJuIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQu
c2l6ZSgpICsgbV9wZW5kaW5nQ29ubmVjdGlvbkNvdW50OwpAQCAtNDgxLDYgKzQ5Miw3IEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9u
KGludDY0X3QgcmVxdWVzdGVkVmVyCiAgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6
OlRhc2s+IHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrID0gY3JlYXRlQ2FsbGJhY2tUYXNrKCZJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpyZXNldFZlcnNpb24sIGRhdGFiYXNlLCBtX3ZlcnNpb24pOwog
ICAgIGlmICghdHJhbnNhY3Rpb24tPnNjaGVkdWxlVGFzayhpbnRWZXJzaW9uVGFzay5yZWxlYXNl
KCksIHJlc2V0VmVyc2lvbk9uQWJvcnRUYXNrLnJlbGVhc2UoKSkpCiAgICAgICAgIGVjID0gSURC
RGF0YWJhc2VFeGNlcHRpb246OlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUjsKKyAgICBBU1NFUlRf
V0lUSF9NRVNTQUdFKCFtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6
ZSgpLCAibV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUgPSAlbHUi
LCBtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSgpKTsKICAgICBt
X3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuYXBwZW5kKFBlbmRpbmdPcGVu
V2l0aFZlcnNpb25DYWxsOjpjcmVhdGUoY2FsbGJhY2tzLCByZXF1ZXN0ZWRWZXJzaW9uKSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuaAppbmRleCAyMjBkZTUxMTMzZjc3ZDFjMTRlY2IzMzM4OTJmMmRj
NmI2MGViODM2Li4xYTZmZWJhNGY2NjNjMzk1NjdjYWUyMGE2ZDY4OGM2OWQxMDE5ZDBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5oCkBAIC03Miw3ICs3Miw4IEBAIHB1YmxpYzoKICAgICBJREJUcmFuc2Fj
dGlvbkNvb3JkaW5hdG9yKiB0cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkgY29uc3QgeyByZXR1cm4g
bV90cmFuc2FjdGlvbkNvb3JkaW5hdG9yLmdldCgpOyB9CiAgICAgdm9pZCB0cmFuc2FjdGlvblN0
YXJ0ZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CiAgICAgdm9pZCB0
cmFuc2FjdGlvbkZpbmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4p
OwotICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hlZEFuZEV2ZW50c0ZpcmVkKFBhc3NSZWZQdHI8
SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOworICAgIHZvaWQgdHJhbnNhY3Rpb25GaW5pc2hl
ZEFuZENvbXBsZXRlRmlyZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7
CisgICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElE
QlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKIAogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCQmFja2luZ1N0b3JlKiBkYXRhYmFzZSwg
SURCVHJhbnNhY3Rpb25Db29yZGluYXRvciosIElEQkZhY3RvcnlCYWNrZW5kSW1wbCosIGNvbnN0
IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IGE2MzMzOWYyYTIzOWFhMzM5ZDMyNDkxNDJh
YTAyY2IyMDQ2Yzc4YzQuLmEwNmRiOGFkYTlhNjRlYzhjYWJmNTc2NDhlNzdiNjEzZGQ0NmRlZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3Bw
CkBAIC00NjksNiArNDY5LDExIEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNz
UmVmUHRyPEV2ZW50PiBldmVudCkKICAgICAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5zZXRWYWx1
ZVJlYWR5KG1fY3Vyc29yS2V5LnJlbGVhc2UoKSwgbV9jdXJzb3JQcmltYXJ5S2V5LnJlbGVhc2Uo
KSwgbV9jdXJzb3JWYWx1ZS5yZWxlYXNlKCkpOwogICAgIH0KIAorICAgIGlmIChldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVkRXZlbnQpIHsKKyAgICAgICAgQVNTRVJU
KCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOworICAgICAgICBtX2RpZEZpcmVVcGdyYWRl
TmVlZGVkRXZlbnQgPSB0cnVlOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXaGVuIHdlIGFsbG93
IGN1c3RvbSBldmVudCBkaXNwYXRjaGluZywgdGhpcyB3aWxsIHByb2JhYmx5IG5lZWQgdG8gY2hh
bmdlLgogICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZl
bnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuYmxvY2tlZEV2ZW50IHx8IGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCwgImV2ZW50IHR5cGUg
d2FzICVzIiwgZXZlbnQtPnR5cGUoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKICAgICBjb25z
dCBib29sIHNldFRyYW5zYWN0aW9uQWN0aXZlID0gbV90cmFuc2FjdGlvbiAmJiAoZXZlbnQtPnR5
cGUoKSA9PSBldmVudE5hbWVzKCkuc3VjY2Vzc0V2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCB8fCAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkuZXJyb3JFdmVudCAmJiBtX2Vycm9yQ29kZSAhPSBJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
SURCX0FCT1JUX0VSUikpOwpAQCAtNDgzLDExICs0ODgsNiBAQCBib29sIElEQlJlcXVlc3Q6OmRp
c3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1cnNvclRvTm90
aWZ5KQogICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVyQ2FsbGJhY2so
KTsKIAotICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS51cGdyYWRlbmVlZGVk
RXZlbnQpIHsKLSAgICAgICAgQVNTRVJUKCFtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQpOwot
ICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQgPSB0cnVlOwotICAgIH0KLQogICAg
IGlmIChtX3RyYW5zYWN0aW9uKSB7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5lcnJvckV2ZW50ICYmIGRvbnRQcmV2ZW50RGVmYXVsdCAmJiAhbV9yZXF1ZXN0QWJv
cnRlZCkgewogICAgICAgICAgICAgbV90cmFuc2FjdGlvbi0+c2V0RXJyb3IobV9lcnJvcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCmluZGV4IDJhNmI4MjI2OGYzNGYxNjQ3ZmIwYzM3ZmJj
NWE2ZTUzM2Q3ZDMwZmYuLmNjNTZkNWUwNThjZTNiZTVkYzY1MzU3YzcxNGI4NjU4ZWQ1NWYzYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwCkBAIC0xNTEsNiArMTUxLDggQEAgdm9pZCBJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjphYm9ydCgpCiAgICAgaWYgKG1fY2FsbGJhY2tzKQog
ICAgICAgICBtX2NhbGxiYWNrcy0+b25BYm9ydCgpOwogCisgICAgbV9kYXRhYmFzZS0+dHJhbnNh
Y3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQodGhpcyk7CisKICAgICBtX2RhdGFiYXNlID0gMDsK
IH0KIApAQCAtMjMyLDEyICsyMzQsMTMgQEAgdm9pZCBJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBs
Ojpjb21taXQoKQogICAgICAgICBtX2RhdGFiYXNlLT50cmFuc2FjdGlvbkNvb3JkaW5hdG9yKCkt
PmRpZEZpbmlzaFRyYW5zYWN0aW9uKHRoaXMpOwogICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9u
RmluaXNoZWQodGhpcyk7CiAKLSAgICBpZiAoY29tbWl0dGVkKQorICAgIGlmIChjb21taXR0ZWQp
IHsKICAgICAgICAgbV9jYWxsYmFja3MtPm9uQ29tcGxldGUoKTsKLSAgICBlbHNlCisgICAgICAg
IG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRDb21wbGV0ZUZpcmVkKHRoaXMpOwor
ICAgIH0gZWxzZSB7CiAgICAgICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KCk7Ci0KLSAgICBtX2Rh
dGFiYXNlLT50cmFuc2FjdGlvbkZpbmlzaGVkQW5kRXZlbnRzRmlyZWQodGhpcyk7CisgICAgICAg
IG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZpcmVkKHRoaXMpOworICAg
IH0KIAogICAgIG1fZGF0YWJhc2UgPSAwOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDBhZDk0ZmIwZjJjZTA4OTBlMzk3
ZTNmY2UzMTgxYjA2MGNlNDAzMDEuLjNkMGM5MGFjYjg5NzRhYzI5OThjMzFmMTM5NjQyZjdmNDYw
ZWI3NjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMi0wOC0xNyAgRGF2aWQgR3JvZ2FuICA8
ZGdyb2dhbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBGaXJlIGVycm9yIGF0
IHJlcXVlc3Qgd2hlbiBhYm9ydCBpcyBjYWxsZWQgaW4gdXBncmFkZW5lZWRlZAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ0MDIKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgT25seSByZW1haW5pbmcgZXJyb3IgaW4gdGhpcyB0ZXN0IGlzIHZlcnNpb25zIG5v
dCBiZWluZyByZXNldCBpbgorICAgICAgICBtZW1vcnkuCisKKyAgICAgICAgKiBzdG9yYWdlL2lu
ZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQuanM6CisgICAgICAgIChkZWxldGVTdWNjZXNzKToKKyAgICAgICAgKHVwZ3JhZGVOZWVkZWQp
OgorICAgICAgICAob25BYm9ydCk6CisgICAgICAgIChvbkVycm9yKToKKwogMjAxMi0wOC0xNyAg
S2lyYW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KIAogICAgICAgICBVcGRhdGUgdGVz
dCBleHBlY3RhdGlvbnMgZm9yIGluc3BlY3Rvci90aW1lbGluZS90aW1lbGluZS1kZWNvZGUtcmVz
aXplLmh0bWwgb24gbWFjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRp
YWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKaW5kZXggNWEwNThjZjEyNjU5ZGNhYTRiZjE0
NTg4ZWU4NDU2OWE2YzdmNWM1YS4uOGIzZjE3MWIwZDczNWJlMDU2ZjU2YzhhNmQyZDJlNGQ4OTcx
NzFiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lv
bi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dApAQCAtOSw4ICs5LDcgQEAgZGJuYW1lID0gImludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmh0bWwiCiBpbmRleGVkREIuZGVsZXRl
RGF0YWJhc2UoZGJuYW1lKQogaW5kZXhlZERCLm9wZW4oZGJuYW1lLCAyKQogcmVxdWVzdC5vbnVw
Z3JhZGVuZWVkZWQgPSB1cGdyYWRlTmVlZGVkCi1GSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVy
cm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJvcgotcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3Rl
ZEVycm9yQ2FsbGJhY2sKK3JlcXVlc3Qub25lcnJvciA9IG9uRXJyb3IKIAogdXBncmFkZU5lZWRl
ZCgpOgogUEFTUyBkYi52ZXJzaW9uIGlzIDIKQEAgLTE4LDYgKzE3LDE0IEBAIHRyYW5zYWN0aW9u
LmFib3J0KCkKIAogb25BYm9ydCgpOgogRkFJTCBldmVudC50YXJnZXQuZGIudmVyc2lvbiBzaG91
bGQgYmUgMC4gV2FzIDIuCitQQVNTIHJlcXVlc3QudHJhbnNhY3Rpb24gaXMgbm9uLW51bGwuCisK
K29uRXJyb3IoKToKK1BBU1MgZGIgaXMgZXZlbnQudGFyZ2V0LnJlc3VsdAorUEFTUyByZXF1ZXN0
IGlzIGV2ZW50LnRhcmdldAorUEFTUyBldmVudC50YXJnZXQuZXJyb3IubmFtZSBpcyAiQWJvcnRF
cnJvciIKK0ZBSUwgZXZlbnQudGFyZ2V0LnJlc3VsdC52ZXJzaW9uIHNob3VsZCBiZSAwLiBXYXMg
Mi4KK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBudWxsCiBQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBn
cmFkZW5lZWRlZC5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9p
bnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcwppbmRleCA5NDU3ODc2
ODE4YTg1MDYxNWNmOTQ4ZDhkMGIyYjZmZDkyZGI3NjU3Li45NDQ5NDFlNTkyMmIyNjg5YzY1ZjBk
M2JkZWJkMWU4NjZiZTMwNTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQu
anMKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCkBAIC0xOSwxNiArMTksMTMgQEAg
ZnVuY3Rpb24gZGVsZXRlU3VjY2VzcygpIHsKICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5k
ZXhlZERCLm9wZW4oZGJuYW1lLCAyKSIpOwogICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBl
Y3RlZFN1Y2Nlc3NDYWxsYmFjazsKICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVwZ3JhZGVOZWVkZWQiKTsKLSAgICBkZWJ1ZygiRklYTUU6IFRoaXMgc2hvdWxkIGdl
dCBhbiBlcnJvciBldmVudCBvZiB0eXBlIEFib3J0RXJyb3IiKTsKLSAgICBldmFsQW5kTG9nKCJy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjayIpOworICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub25lcnJvciA9IG9uRXJyb3IiKTsKICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9
IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7CiB9CiAKIGZ1bmN0aW9uIHVwZ3JhZGVOZWVkZWQo
ZXZ0KQogewotICAgIGRlYnVnKCIiKTsKLSAgICBkZWJ1ZygidXBncmFkZU5lZWRlZCgpOiIpOwot
ICAgIGV2ZW50ID0gZXZ0OworICAgIHByZWFtYmxlKGV2dCk7CiAgICAgZGIgPSBldmVudC50YXJn
ZXQucmVzdWx0OwogICAgIHNob3VsZEJlKCJkYi52ZXJzaW9uIiwgIjIiKTsKICAgICB0cmFuc2Fj
dGlvbiA9IGV2ZW50LnRhcmdldC50cmFuc2FjdGlvbjsKQEAgLTM5LDEwICszNiwxOSBAQCBmdW5j
dGlvbiB1cGdyYWRlTmVlZGVkKGV2dCkKIAogZnVuY3Rpb24gb25BYm9ydChldnQpCiB7Ci0gICAg
ZGVidWcoIiIpOwotICAgIGRlYnVnKCJvbkFib3J0KCk6Iik7Ci0gICAgZXZlbnQgPSBldnQ7Cisg
ICAgcHJlYW1ibGUoZXZ0KTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmRiLnZlcnNpb24i
LCAiMCIpOworICAgIHNob3VsZEJlTm9uTnVsbCgicmVxdWVzdC50cmFuc2FjdGlvbiIpOworfQor
CitmdW5jdGlvbiBvbkVycm9yKGV2dCkKK3sKKyAgICBwcmVhbWJsZShldnQpOworICAgIHNob3Vs
ZEJlKCJkYiIsICJldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgc2hvdWxkQmUoInJlcXVlc3Qi
LCAiZXZlbnQudGFyZ2V0Iik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC50YXJn
ZXQuZXJyb3IubmFtZSIsICJBYm9ydEVycm9yIik7CisgICAgc2hvdWxkQmUoImV2ZW50LnRhcmdl
dC5yZXN1bHQudmVyc2lvbiIsICIwIik7CisgICAgc2hvdWxkQmVOdWxsKCJyZXF1ZXN0LnRyYW5z
YWN0aW9uIik7CiAgICAgZmluaXNoSlNUZXN0KCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159253</attachid>
            <date>2012-08-17 18:22:31 -0700</date>
            <delta_ts>2012-08-21 14:31:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94402-20120817182155.patch</filename>
            <type>text/plain</type>
            <size>12011</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1OTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc1Y2M4YzM5MWI4YTkw
NTdhZTlkMjEyYWUyZDZmMTFhZjM1NDEyNy4uMTZiODcyYjI4Zjg3YWRlNTNjYTkwMGMzMWQ5N2Ni
ZDgwMWM1YTM5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTE3ICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZp
cmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIC0g
dXBkYXRlZCBleHBlY3RlZC50eHQKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNr
ZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBs
ZXRlRmlyZWQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRh
YmFzZUJhY2tlbmRJbXBsOjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAg
ICBOb3cgdGhhdCBzZWNvbmQtaGFsZiBvcGVuIGNhbGxzIGRvbid0IGdldCBhYmFuZG9uZWQgb24g
dGhlIHF1ZXVlLCB3ZQorICAgICAgICBjYW4gQVNTRVJUIHRoYXQgdGhlcmUncyBhdCBtb3N0IG9u
ZSBvZiB0aGVtIGF0IGFueSB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgTW92ZSBzZXR0aW5n
IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50
LgorICAgICAgICBJZiBhYm9ydCBpcyBjYWxsZWQgaW4gdGhlIGV2ZW50IGhhbmRsZXIgYW4gZXJy
b3IgZXZlbnQgd2lsbCBiZQorICAgICAgICBlbnF1ZXVlZCBhbmQgQVNTRVJUX1dJVEhfTUVTU0FH
RShtX3JlYWR5U3RhdGUgPT0gUEVORElORyB8fAorICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVl
ZGVkRXZlbnQsIC4uLikgbmVlZHMgdG8gcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJh
bnNhY3Rpb25CYWNrZW5kSW1wbDo6Y29tbWl0KToKKwogMjAxMi0wOC0xNyAgQ2hyaXMgUm9nZXJz
ICA8Y3JvZ2Vyc0Bnb29nbGUuY29tPgogCiAgICAgICAgIEF1ZGlvUGFyYW0gbXVzdCBzdXBwb3J0
IGstcmF0ZSBwcm9jZXNzaW5nIHdpdGggYXVkaW8tcmF0ZSBjb25uZWN0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmNwcAppbmRleCAwNWIyNTdkZmZhMTU4ODg0MWI3YWYxYmRkOTliY2MwZmFjMWJlNDNl
Li42M2JkNmE2NTg3YzE3ZGQxYjE5OWYzZjRjM2E2ZDI1NTFhMzcwNjg5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmNwcApAQCAtMzIwLDE3ICszMjAsMjggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjp0cmFuc2FjdGlvbkZpbmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW4K
ICAgICB9CiB9CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5p
c2hlZEFuZEV2ZW50c0ZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4g
cHJwVHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9u
RmluaXNoZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4gcHJwVHJhbnNhY3Rpb24pCiB7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+IHRyYW5zYWN0aW9uID0gcHJwVHJhbnNhY3Rpb247CiAgICAgaWYgKHRyYW5zYWN0aW9uLT5t
b2RlKCkgPT0gSURCVHJhbnNhY3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAgICAgIC8vIElm
IHRoaXMgd2FzIGFuIG9wZW4td2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vj
b25kCiAgICAgICAgIC8vIGhhbGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNz
UGVuZGluZ0NhbGxzLgogICAgICAgICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9y
dCBzZXRWZXJzaW9uLCBhc3NlcnQgc3VjaCBhIHRoaW5nLgorICAgICAgICBpZiAobV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAg
ICBSZWZQdHI8UGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNp
b25DYWxsID0gbV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJz
dCgpOworICAgICAgICAgICAgcGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygp
LT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6
SURCX0FCT1JUX0VSUiwgIlZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGlu
IHVwZ3JhZGVuZWVkZWQgZXZlbnQgaGFuZGxlci4iKSk7CisgICAgICAgIH0KICAgICAgICAgcHJv
Y2Vzc1BlbmRpbmdDYWxscygpOwogICAgIH0KIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjp0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw+IHBycFRyYW5zYWN0aW9uKQoreworICAgIFJlZlB0cjxJREJU
cmFuc2FjdGlvbkJhY2tlbmRJbXBsPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOworICAg
IGlmICh0cmFuc2FjdGlvbi0+bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5H
RSkKKyAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygpOworfQorCiBpbnQzMl90IElEQkRhdGFi
YXNlQmFja2VuZEltcGw6OmNvbm5lY3Rpb25Db3VudCgpCiB7CiAgICAgcmV0dXJuIG1fZGF0YWJh
c2VDYWxsYmFja3NTZXQuc2l6ZSgpICsgbV9wZW5kaW5nQ29ubmVjdGlvbkNvdW50OwpAQCAtNDg2
LDYgKzQ5Nyw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNo
YW5nZVRyYW5zYWN0aW9uKGludDY0X3QgcmVxdWVzdGVkVmVyCiAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwogICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElP
Tl9JTkFDVElWRV9FUlI7CiAgICAgfQorICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fcGVuZGlu
Z1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5zaXplKCksICJtX3BlbmRpbmdTZWNvbmRI
YWxmT3BlbldpdGhWZXJzaW9uQ2FsbHMuc2l6ZSA9ICVsdSIsIG1fcGVuZGluZ1NlY29uZEhhbGZP
cGVuV2l0aFZlcnNpb25DYWxscy5zaXplKCkpOwogICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVu
V2l0aFZlcnNpb25DYWxscy5hcHBlbmQoUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw6OmNyZWF0
ZShjYWxsYmFja3MsIHJlcXVlc3RlZFZlcnNpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmlu
ZGV4IDIyMGRlNTExMzNmNzdkMWMxNGVjYjMzMzg5MmYyZGM2YjYwZWI4MzYuLjFhNmZlYmE0ZjY2
M2MzOTU2N2NhZTIwYTZkNjg4YzY5ZDEwMTlkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTcy
LDcgKzcyLDggQEAgcHVibGljOgogICAgIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IqIHRyYW5z
YWN0aW9uQ29vcmRpbmF0b3IoKSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uQ29vcmRpbmF0
b3IuZ2V0KCk7IH0KICAgICB2b2lkIHRyYW5zYWN0aW9uU3RhcnRlZChQYXNzUmVmUHRyPElEQlRy
YW5zYWN0aW9uQmFja2VuZEltcGw+KTsKICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQoUGFz
c1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7Ci0gICAgdm9pZCB0cmFuc2FjdGlv
bkZpbmlzaGVkQW5kRXZlbnRzRmlyZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsPik7CisgICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNz
UmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKKyAgICB2b2lkIHRyYW5zYWN0aW9u
RmluaXNoZWRBbmRBYm9ydEZpcmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bD4pOwogCiBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5n
JiBuYW1lLCBJREJCYWNraW5nU3RvcmUqIGRhdGFiYXNlLCBJREJUcmFuc2FjdGlvbkNvb3JkaW5h
dG9yKiwgSURCRmFjdG9yeUJhY2tlbmRJbXBsKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlm
aWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5j
cHAKaW5kZXggYTYzMzM5ZjJhMjM5YWEzMzlkMzI0OTE0MmFhMDJjYjIwNDZjNzhjNC4uYTA2ZGI4
YWRhOWE2NGVjOGNhYmY1NzY0OGU3N2I2MTNkZDQ2ZGVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ2OSw2ICs0NjksMTEgQEAg
Ym9vbCBJREJSZXF1ZXN0OjpkaXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQog
ICAgICAgICAgICAgY3Vyc29yVG9Ob3RpZnktPnNldFZhbHVlUmVhZHkobV9jdXJzb3JLZXkucmVs
ZWFzZSgpLCBtX2N1cnNvclByaW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlLnJlbGVh
c2UoKSk7CiAgICAgfQogCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVw
Z3JhZGVuZWVkZWRFdmVudCkgeworICAgICAgICBBU1NFUlQoIW1fZGlkRmlyZVVwZ3JhZGVOZWVk
ZWRFdmVudCk7CisgICAgICAgIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWU7Cisg
ICAgfQorCiAgICAgLy8gRklYTUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRpc3BhdGNo
aW5nLCB0aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2UuCiAgICAgQVNTRVJUX1dJVEhf
TUVTU0FHRShldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVz
KCkudXBncmFkZW5lZWRlZEV2ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBldmVudC0+dHlwZSgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIGNvbnN0IGJvb2wgc2V0VHJhbnNhY3Rpb25B
Y3RpdmUgPSBtX3RyYW5zYWN0aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5z
dWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRl
ZEV2ZW50IHx8IChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1f
ZXJyb3JDb2RlICE9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CkBAIC00
ODMsMTEgKzQ4OCw2IEBAIGJvb2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRy
PEV2ZW50PiBldmVudCkKICAgICBpZiAoY3Vyc29yVG9Ob3RpZnkpCiAgICAgICAgIGN1cnNvclRv
Tm90aWZ5LT5wb3N0U3VjY2Vzc0hhbmRsZXJDYWxsYmFjaygpOwogCi0gICAgaWYgKGV2ZW50LT50
eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCkgewotICAgICAgICBBU1NF
UlQoIW1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCk7Ci0gICAgICAgIG1fZGlkRmlyZVVwZ3Jh
ZGVOZWVkZWRFdmVudCA9IHRydWU7Ci0gICAgfQotCiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsK
ICAgICAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYg
ZG9udFByZXZlbnREZWZhdWx0ICYmICFtX3JlcXVlc3RBYm9ydGVkKSB7CiAgICAgICAgICAgICBt
X3RyYW5zYWN0aW9uLT5zZXRFcnJvcihtX2Vycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5j
cHAKaW5kZXggMmE2YjgyMjY4ZjM0ZjE2NDdmYjBjMzdmYmM1YTZlNTMzZDdkMzBmZi4uY2M1NmQ1
ZTA1OGNlM2JlNWRjNjUzNTdjNzE0Yjg2NThlZDU1ZjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbC5jcHAKQEAgLTE1MSw2ICsxNTEsOCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw6OmFib3J0KCkKICAgICBpZiAobV9jYWxsYmFja3MpCiAgICAgICAgIG1fY2FsbGJhY2tzLT5v
bkFib3J0KCk7CiAKKyAgICBtX2RhdGFiYXNlLT50cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRG
aXJlZCh0aGlzKTsKKwogICAgIG1fZGF0YWJhc2UgPSAwOwogfQogCkBAIC0yMzIsMTIgKzIzNCwx
MyBAQCB2b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmNvbW1pdCgpCiAgICAgICAgIG1f
ZGF0YWJhc2UtPnRyYW5zYWN0aW9uQ29vcmRpbmF0b3IoKS0+ZGlkRmluaXNoVHJhbnNhY3Rpb24o
dGhpcyk7CiAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rpb25GaW5pc2hlZCh0aGlzKTsKIAotICAg
IGlmIChjb21taXR0ZWQpCisgICAgaWYgKGNvbW1pdHRlZCkgewogICAgICAgICBtX2NhbGxiYWNr
cy0+b25Db21wbGV0ZSgpOwotICAgIGVsc2UKKyAgICAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rp
b25GaW5pc2hlZEFuZENvbXBsZXRlRmlyZWQodGhpcyk7CisgICAgfSBlbHNlIHsKICAgICAgICAg
bV9jYWxsYmFja3MtPm9uQWJvcnQoKTsKLQotICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmlu
aXNoZWRBbmRFdmVudHNGaXJlZCh0aGlzKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rp
b25GaW5pc2hlZEFuZEFib3J0RmlyZWQodGhpcyk7CisgICAgfQogCiAgICAgbV9kYXRhYmFzZSA9
IDA7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjM4YmE1YjViMWQ3N2E4NmM3ODhiYTYwYmNiZWE0NjlhYzA0MTUzNi4u
OTM2NTA1MmZjOWM5NmFlNWViNWJiOWIzZjIxYzljMDg5MWYyODU3MyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTA4LTE3ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4K
KworICAgICAgICBJbmRleGVkREI6IEZpcmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlz
IGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NDQwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1p
bml0aWFsLXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICBPbmx5IHJlbWFpbmlu
ZyBlcnJvciBpbiB0aGlzIHRlc3QgaXMgdmVyc2lvbnMgbm90IGJlaW5nIHJlc2V0IGluCisgICAg
ICAgIG1lbW9yeS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qczoKKyAgICAgICAgKGRlbGV0
ZVN1Y2Nlc3MpOgorICAgICAgICAodXBncmFkZU5lZWRlZCk6CisgICAgICAgIChvbkFib3J0KToK
KyAgICAgICAgKG9uRXJyb3IpOgorCiAyMDEyLTA4LTE3ICBBbGljZSBDaGVuZyAgPGFsaWNlX2No
ZW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBQcmVzZXJ2ZSBzdHlsaW5nIGVsZW1lbnRzIGluIERl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4t
aW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA1YTA1OGNmMTI2NTlkY2Fh
NGJmMTQ1ODhlZTg0NTY5YTZjN2Y1YzVhLi44YjNmMTcxYjBkNzM1YmUwNTZmNTZjOGE2ZDJkMmU0
ZDg5NzE3MWJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2
ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFs
LXVwZ3JhZGVuZWVkZWQtZXhwZWN0ZWQudHh0CkBAIC05LDggKzksNyBAQCBkYm5hbWUgPSAiaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKIGluZGV4ZWREQi5k
ZWxldGVEYXRhYmFzZShkYm5hbWUpCiBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiByZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IHVwZ3JhZGVOZWVkZWQKLUZJWE1FOiBUaGlzIHNob3VsZCBnZXQg
YW4gZXJyb3IgZXZlbnQgb2YgdHlwZSBBYm9ydEVycm9yCi1yZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4
cGVjdGVkRXJyb3JDYWxsYmFjaworcmVxdWVzdC5vbmVycm9yID0gb25FcnJvcgogCiB1cGdyYWRl
TmVlZGVkKCk6CiBQQVNTIGRiLnZlcnNpb24gaXMgMgpAQCAtMTgsNiArMTcsMTQgQEAgdHJhbnNh
Y3Rpb24uYWJvcnQoKQogCiBvbkFib3J0KCk6CiBGQUlMIGV2ZW50LnRhcmdldC5kYi52ZXJzaW9u
IHNob3VsZCBiZSAwLiBXYXMgMi4KK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBub24tbnVs
bC4KKworb25FcnJvcigpOgorUEFTUyBkYiBpcyBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIHJl
cXVlc3QgaXMgZXZlbnQudGFyZ2V0CitQQVNTIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lIGlzICJB
Ym9ydEVycm9yIgorRkFJTCBldmVudC50YXJnZXQucmVzdWx0LnZlcnNpb24gc2hvdWxkIGJlIDAu
IFdhcyAyLgorUEFTUyByZXF1ZXN0LnRyYW5zYWN0aW9uIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlh
bC11cGdyYWRlbmVlZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3Vy
Y2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCmluZGV4IDk0
NTc4NzY4MThhODUwNjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcuLjk0NDk0MWU1OTIyYjI2ODlj
NjVmMGQzYmRlYmQxZTg2NmJlMzA1NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC5qcworKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50
dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTE5LDE2ICsxOSwx
MyBAQCBmdW5jdGlvbiBkZWxldGVTdWNjZXNzKCkgewogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJpbmRleGVkREIub3BlbihkYm5hbWUsIDIpIik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1
bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwogICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdy
YWRlbmVlZGVkID0gdXBncmFkZU5lZWRlZCIpOwotICAgIGRlYnVnKCJGSVhNRTogVGhpcyBzaG91
bGQgZ2V0IGFuIGVycm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJvciIpOwotICAgIGV2YWxBbmRM
b2coInJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CisgICAgZXZh
bEFuZExvZygicmVxdWVzdC5vbmVycm9yID0gb25FcnJvciIpOwogICAgIHJlcXVlc3Qub25ibG9j
a2VkID0gdW5leHBlY3RlZEJsb2NrZWRDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gdXBncmFkZU5l
ZWRlZChldnQpCiB7Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6
Iik7Ci0gICAgZXZlbnQgPSBldnQ7CisgICAgcHJlYW1ibGUoZXZ0KTsKICAgICBkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQ7CiAgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOwogICAgIHRy
YW5zYWN0aW9uID0gZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwpAQCAtMzksMTAgKzM2LDE5IEBA
IGZ1bmN0aW9uIHVwZ3JhZGVOZWVkZWQoZXZ0KQogCiBmdW5jdGlvbiBvbkFib3J0KGV2dCkKIHsK
LSAgICBkZWJ1ZygiIik7Ci0gICAgZGVidWcoIm9uQWJvcnQoKToiKTsKLSAgICBldmVudCA9IGV2
dDsKKyAgICBwcmVhbWJsZShldnQpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZGIudmVy
c2lvbiIsICIwIik7CisgICAgc2hvdWxkQmVOb25OdWxsKCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7
Cit9CisKK2Z1bmN0aW9uIG9uRXJyb3IoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAg
c2hvdWxkQmUoImRiIiwgImV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgicmVx
dWVzdCIsICJldmVudC50YXJnZXQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50
LnRhcmdldC5lcnJvci5uYW1lIiwgIkFib3J0RXJyb3IiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQu
dGFyZ2V0LnJlc3VsdC52ZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZU51bGwoInJlcXVlc3Qu
dHJhbnNhY3Rpb24iKTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159770</attachid>
            <date>2012-08-21 14:31:21 -0700</date>
            <delta_ts>2012-08-21 18:08:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94402-20120821143120.patch</filename>
            <type>text/plain</type>
            <size>12056</size>
            <attacher name="David Grogan">dgrogan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGM0N2NlZDkxODI5N2Qy
MmU5NTUzN2RlODkzNGZmZDAyZTFkZDAxZS4uMTBlNDY2YTM3ZmM5OTZkZjFmZDYyN2Y1MTFmNDQz
ZmNjNTBhNTNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA4LTE3ICBEYXZp
ZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEZp
cmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlzIGNhbGxlZCBpbiB1cGdyYWRlbmVlZGVk
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDQwMgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIC0g
dXBkYXRlZCBpbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3Rl
ZC50eHQKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNh
Y3Rpb25GaW5pc2hlZEFuZEFib3J0RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJh
c2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBsZXRlRmlyZWQpOgorICAg
ICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBs
OjpydW5JbnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pOgorICAgICAgICBOb3cgdGhhdCBzZWNv
bmQtaGFsZiBvcGVuIGNhbGxzIGRvbid0IGdldCBhYmFuZG9uZWQgb24gdGhlIHF1ZXVlLCB3ZQor
ICAgICAgICBjYW4gQVNTRVJUIHRoYXQgdGhlcmUncyBhdCBtb3N0IG9uZSBvZiB0aGVtIGF0IGFu
eSB0aW1lLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kSW1wbCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1
ZXN0OjpkaXNwYXRjaEV2ZW50KToKKyAgICAgICAgTW92ZSBzZXR0aW5nIG1fZGlkRmlyZVVwZ3Jh
ZGVOZWVkZWRFdmVudCBiZWZvcmUgZGlzcGF0Y2hpbmcgdGhlIGV2ZW50LgorICAgICAgICBJZiBh
Ym9ydCBpcyBjYWxsZWQgaW4gdGhlIGV2ZW50IGhhbmRsZXIgYW4gZXJyb3IgZXZlbnQgd2lsbCBi
ZQorICAgICAgICBlbnF1ZXVlZCBhbmQgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3JlYWR5U3RhdGUg
PT0gUEVORElORyB8fAorICAgICAgICBtX2RpZEZpcmVVcGdyYWRlTmVlZGVkRXZlbnQsIC4uLikg
bmVlZHMgdG8gcGFzcy4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbDo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6SURCVHJhbnNhY3Rpb25CYWNrZW5k
SW1wbDo6Y29tbWl0KToKKwogMjAxMi0wOC0yMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVXNpbmcgYSBuYXRpdmUgd2luZG93IGZvciB0
aGUgV2ViVmlldyBicmVha3MgR3RrT3ZlcmxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAw
NWIyNTdkZmZhMTU4ODg0MWI3YWYxYmRkOTliY2MwZmFjMWJlNDNlLi5jOWQ5ZjAxZmFjZjQ0MjVl
NmM4MjM1MDg1ZjYwY2E3NzJiOTRlMjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcApAQCAtMzIw
LDE3ICszMjAsMjggQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZp
bmlzaGVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW4KICAgICB9CiB9CiAKLXZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEV2ZW50c0ZpcmVk
KFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24pCit2
b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZp
cmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4gcHJwVHJhbnNhY3Rpb24p
CiB7CiAgICAgUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+IHRyYW5zYWN0aW9uID0g
cHJwVHJhbnNhY3Rpb247CiAgICAgaWYgKHRyYW5zYWN0aW9uLT5tb2RlKCkgPT0gSURCVHJhbnNh
Y3Rpb246OlZFUlNJT05fQ0hBTkdFKSB7CiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGFuIG9wZW4t
d2l0aC12ZXJzaW9uIGNhbGwsIHRoZXJlIHdpbGwgYmUgYSAic2Vjb25kCiAgICAgICAgIC8vIGhh
bGYiIG9wZW4gY2FsbCB3YWl0aW5nIGZvciB1cyBpbiBwcm9jZXNzUGVuZGluZ0NhbGxzLgogICAg
ICAgICAvLyBGSVhNRTogV2hlbiB3ZSBubyBsb25nZXIgc3VwcG9ydCBzZXRWZXJzaW9uLCBhc3Nl
cnQgc3VjaCBhIHRoaW5nLgorICAgICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW5XaXRo
VmVyc2lvbkNhbGxzLnNpemUoKSA9PSAxKSB7CisgICAgICAgICAgICBSZWZQdHI8UGVuZGluZ09w
ZW5XaXRoVmVyc2lvbkNhbGw+IHBlbmRpbmdPcGVuV2l0aFZlcnNpb25DYWxsID0gbV9wZW5kaW5n
U2Vjb25kSGFsZk9wZW5XaXRoVmVyc2lvbkNhbGxzLnRha2VGaXJzdCgpOworICAgICAgICAgICAg
cGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGwtPmNhbGxiYWNrcygpLT5vbkVycm9yKElEQkRhdGFi
YXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6SURCX0FCT1JUX0VSUiwgIlZl
cnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHdhcyBhYm9ydGVkIGluIHVwZ3JhZGVuZWVkZWQgZXZl
bnQgaGFuZGxlci4iKSk7CisgICAgICAgIH0KICAgICAgICAgcHJvY2Vzc1BlbmRpbmdDYWxscygp
OwogICAgIH0KIH0KIAordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjp0cmFuc2FjdGlvbkZp
bmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+IHBycFRyYW5zYWN0aW9uKQoreworICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsPiB0cmFuc2FjdGlvbiA9IHBycFRyYW5zYWN0aW9uOworICAgIGlmICh0cmFuc2FjdGlvbi0+
bW9kZSgpID09IElEQlRyYW5zYWN0aW9uOjpWRVJTSU9OX0NIQU5HRSkKKyAgICAgICAgcHJvY2Vz
c1BlbmRpbmdDYWxscygpOworfQorCiBpbnQzMl90IElEQkRhdGFiYXNlQmFja2VuZEltcGw6OmNv
bm5lY3Rpb25Db3VudCgpCiB7CiAgICAgcmV0dXJuIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuc2l6
ZSgpICsgbV9wZW5kaW5nQ29ubmVjdGlvbkNvdW50OwpAQCAtNDg2LDYgKzQ5Nyw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cnVuSW50VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKGlu
dDY0X3QgcmVxdWVzdGVkVmVyCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAg
ICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpUUkFOU0FDVElPTl9JTkFDVElWRV9FUlI7CiAg
ICAgfQorICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoIW1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0
aFZlcnNpb25DYWxscy5zaXplKCksICJtX3BlbmRpbmdTZWNvbmRIYWxmT3BlbldpdGhWZXJzaW9u
Q2FsbHMuc2l6ZSA9ICV6dSIsIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxs
cy5zaXplKCkpOwogICAgIG1fcGVuZGluZ1NlY29uZEhhbGZPcGVuV2l0aFZlcnNpb25DYWxscy5h
cHBlbmQoUGVuZGluZ09wZW5XaXRoVmVyc2lvbkNhbGw6OmNyZWF0ZShjYWxsYmFja3MsIHJlcXVl
c3RlZFZlcnNpb24pKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCmluZGV4IDIyMGRlNTExMzNmNzdk
MWMxNGVjYjMzMzg5MmYyZGM2YjYwZWI4MzYuLjFhNmZlYmE0ZjY2M2MzOTU2N2NhZTIwYTZkNjg4
YzY5ZDEwMTlkMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKQEAgLTcyLDcgKzcyLDggQEAgcHVibGlj
OgogICAgIElEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IqIHRyYW5zYWN0aW9uQ29vcmRpbmF0b3Io
KSBjb25zdCB7IHJldHVybiBtX3RyYW5zYWN0aW9uQ29vcmRpbmF0b3IuZ2V0KCk7IH0KICAgICB2
b2lkIHRyYW5zYWN0aW9uU3RhcnRlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZElt
cGw+KTsKICAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWQoUGFzc1JlZlB0cjxJREJUcmFuc2Fj
dGlvbkJhY2tlbmRJbXBsPik7Ci0gICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kRXZlbnRz
RmlyZWQoUGFzc1JlZlB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsPik7CisgICAgdm9pZCB0
cmFuc2FjdGlvbkZpbmlzaGVkQW5kQ29tcGxldGVGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0
aW9uQmFja2VuZEltcGw+KTsKKyAgICB2b2lkIHRyYW5zYWN0aW9uRmluaXNoZWRBbmRBYm9ydEZp
cmVkKFBhc3NSZWZQdHI8SURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbD4pOwogCiBwcml2YXRlOgog
ICAgIElEQkRhdGFiYXNlQmFja2VuZEltcGwoY29uc3QgU3RyaW5nJiBuYW1lLCBJREJCYWNraW5n
U3RvcmUqIGRhdGFiYXNlLCBJREJUcmFuc2FjdGlvbkNvb3JkaW5hdG9yKiwgSURCRmFjdG9yeUJh
Y2tlbmRJbXBsKiwgY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUmVxdWVzdC5jcHAKaW5kZXggYTYzMzM5ZjJh
MjM5YWEzMzlkMzI0OTE0MmFhMDJjYjIwNDZjNzhjNC4uYTA2ZGI4YWRhOWE2NGVjOGNhYmY1NzY0
OGU3N2I2MTNkZDQ2ZGVmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCUmVxdWVzdC5jcHAKQEAgLTQ2OSw2ICs0NjksMTEgQEAgYm9vbCBJREJSZXF1ZXN0Ojpk
aXNwYXRjaEV2ZW50KFBhc3NSZWZQdHI8RXZlbnQ+IGV2ZW50KQogICAgICAgICAgICAgY3Vyc29y
VG9Ob3RpZnktPnNldFZhbHVlUmVhZHkobV9jdXJzb3JLZXkucmVsZWFzZSgpLCBtX2N1cnNvclBy
aW1hcnlLZXkucmVsZWFzZSgpLCBtX2N1cnNvclZhbHVlLnJlbGVhc2UoKSk7CiAgICAgfQogCisg
ICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCkg
eworICAgICAgICBBU1NFUlQoIW1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCk7CisgICAgICAg
IG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCA9IHRydWU7CisgICAgfQorCiAgICAgLy8gRklY
TUU6IFdoZW4gd2UgYWxsb3cgY3VzdG9tIGV2ZW50IGRpc3BhdGNoaW5nLCB0aGlzIHdpbGwgcHJv
YmFibHkgbmVlZCB0byBjaGFuZ2UuCiAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShldmVudC0+dHlw
ZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkuZXJyb3JFdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibG9j
a2VkRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2
ZW50LCAiZXZlbnQgdHlwZSB3YXMgJXMiLCBldmVudC0+dHlwZSgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpOwogICAgIGNvbnN0IGJvb2wgc2V0VHJhbnNhY3Rpb25BY3RpdmUgPSBtX3RyYW5zYWN0
aW9uICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQgfHwgZXZl
bnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkudXBncmFkZW5lZWRlZEV2ZW50IHx8IChldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5lcnJvckV2ZW50ICYmIG1fZXJyb3JDb2RlICE9IElEQkRh
dGFiYXNlRXhjZXB0aW9uOjpJREJfQUJPUlRfRVJSKSk7CkBAIC00ODMsMTEgKzQ4OCw2IEBAIGJv
b2wgSURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudChQYXNzUmVmUHRyPEV2ZW50PiBldmVudCkKICAg
ICBpZiAoY3Vyc29yVG9Ob3RpZnkpCiAgICAgICAgIGN1cnNvclRvTm90aWZ5LT5wb3N0U3VjY2Vz
c0hhbmRsZXJDYWxsYmFjaygpOwogCi0gICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLnVwZ3JhZGVuZWVkZWRFdmVudCkgewotICAgICAgICBBU1NFUlQoIW1fZGlkRmlyZVVwZ3Jh
ZGVOZWVkZWRFdmVudCk7Ci0gICAgICAgIG1fZGlkRmlyZVVwZ3JhZGVOZWVkZWRFdmVudCA9IHRy
dWU7Ci0gICAgfQotCiAgICAgaWYgKG1fdHJhbnNhY3Rpb24pIHsKICAgICAgICAgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQgJiYgZG9udFByZXZlbnREZWZhdWx0
ICYmICFtX3JlcXVlc3RBYm9ydGVkKSB7CiAgICAgICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRF
cnJvcihtX2Vycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKaW5kZXggMmE2YjgyMjY4
ZjM0ZjE2NDdmYjBjMzdmYmM1YTZlNTMzZDdkMzBmZi4uY2M1NmQ1ZTA1OGNlM2JlNWRjNjUzNTdj
NzE0Yjg2NThlZDU1ZjNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5jcHAKQEAgLTE1MSw2
ICsxNTEsOCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6OmFib3J0KCkKICAgICBp
ZiAobV9jYWxsYmFja3MpCiAgICAgICAgIG1fY2FsbGJhY2tzLT5vbkFib3J0KCk7CiAKKyAgICBt
X2RhdGFiYXNlLT50cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZCh0aGlzKTsKKwogICAg
IG1fZGF0YWJhc2UgPSAwOwogfQogCkBAIC0yMzIsMTIgKzIzNCwxMyBAQCB2b2lkIElEQlRyYW5z
YWN0aW9uQmFja2VuZEltcGw6OmNvbW1pdCgpCiAgICAgICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0
aW9uQ29vcmRpbmF0b3IoKS0+ZGlkRmluaXNoVHJhbnNhY3Rpb24odGhpcyk7CiAgICAgbV9kYXRh
YmFzZS0+dHJhbnNhY3Rpb25GaW5pc2hlZCh0aGlzKTsKIAotICAgIGlmIChjb21taXR0ZWQpCisg
ICAgaWYgKGNvbW1pdHRlZCkgewogICAgICAgICBtX2NhbGxiYWNrcy0+b25Db21wbGV0ZSgpOwot
ICAgIGVsc2UKKyAgICAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rpb25GaW5pc2hlZEFuZENvbXBs
ZXRlRmlyZWQodGhpcyk7CisgICAgfSBlbHNlIHsKICAgICAgICAgbV9jYWxsYmFja3MtPm9uQWJv
cnQoKTsKLQotICAgIG1fZGF0YWJhc2UtPnRyYW5zYWN0aW9uRmluaXNoZWRBbmRFdmVudHNGaXJl
ZCh0aGlzKTsKKyAgICAgICAgbV9kYXRhYmFzZS0+dHJhbnNhY3Rpb25GaW5pc2hlZEFuZEFib3J0
RmlyZWQodGhpcyk7CisgICAgfQogCiAgICAgbV9kYXRhYmFzZSA9IDA7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjVk
NDVjYzdiOTNjNGU0MmY0NjBkY2FkZWUwOWQxNjUzNTdhOTY2ZS4uZTUyOTg0Yjg1ZDM3YzMxNmZj
Y2U3Yjc5MGJiZjAyMDJlZDFkNTZmYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA4LTE3
ICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVk
REI6IEZpcmUgZXJyb3IgYXQgcmVxdWVzdCB3aGVuIGFib3J0IGlzIGNhbGxlZCBpbiB1cGdyYWRl
bmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05
NDQwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICBPbmx5IHJlbWFpbmluZyBlcnJvciBpbiB0aGlzIHRl
c3QgaXMgdmVyc2lvbnMgbm90IGJlaW5nIHJlc2V0IGluCisgICAgICAgIG1lbW9yeS4KKworICAg
ICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWlu
aXRpYWwtdXBncmFkZW5lZWRlZC5qczoKKyAgICAgICAgKGRlbGV0ZVN1Y2Nlc3MpOgorICAgICAg
ICAodXBncmFkZU5lZWRlZCk6CisgICAgICAgIChvbkFib3J0KToKKyAgICAgICAgKG9uRXJyb3Ip
OgorCiAyMDEyLTA4LTIxICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZWJhc2VsaW5lIGZhaWxpbmcgZWRpdGluZy9zZWxlY3Rpb24gdGVzdHMgZm9yIG1vdW50
YWluIGxpb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZl
cnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdy
YWRlbmVlZGVkLWV4cGVjdGVkLnR4dAppbmRleCA1YTA1OGNmMTI2NTlkY2FhNGJmMTQ1ODhlZTg0
NTY5YTZjN2Y1YzVhLi44YjNmMTcxYjBkNzM1YmUwNTZmNTZjOGE2ZDJkMmU0ZDg5NzE3MWJmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9pbnR2ZXJzaW9uLWFib3J0
LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvaW50dmVyc2lvbi1hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVk
ZWQtZXhwZWN0ZWQudHh0CkBAIC05LDggKzksNyBAQCBkYm5hbWUgPSAiaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuaHRtbCIKIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZShkYm5hbWUpCiBpbmRleGVkREIub3BlbihkYm5hbWUsIDIpCiByZXF1ZXN0Lm9udXBncmFkZW5l
ZWRlZCA9IHVwZ3JhZGVOZWVkZWQKLUZJWE1FOiBUaGlzIHNob3VsZCBnZXQgYW4gZXJyb3IgZXZl
bnQgb2YgdHlwZSBBYm9ydEVycm9yCi1yZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JD
YWxsYmFjaworcmVxdWVzdC5vbmVycm9yID0gb25FcnJvcgogCiB1cGdyYWRlTmVlZGVkKCk6CiBQ
QVNTIGRiLnZlcnNpb24gaXMgMgpAQCAtMTgsNiArMTcsMTQgQEAgdHJhbnNhY3Rpb24uYWJvcnQo
KQogCiBvbkFib3J0KCk6CiBGQUlMIGV2ZW50LnRhcmdldC5kYi52ZXJzaW9uIHNob3VsZCBiZSAw
LiBXYXMgMi4KK1BBU1MgcmVxdWVzdC50cmFuc2FjdGlvbiBpcyBub24tbnVsbC4KKworb25FcnJv
cigpOgorUEFTUyBkYiBpcyBldmVudC50YXJnZXQucmVzdWx0CitQQVNTIHJlcXVlc3QgaXMgZXZl
bnQudGFyZ2V0CitQQVNTIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lIGlzICJBYm9ydEVycm9yIgor
RkFJTCBldmVudC50YXJnZXQucmVzdWx0LnZlcnNpb24gc2hvdWxkIGJlIDAuIFdhcyAyLgorUEFT
UyByZXF1ZXN0LnRyYW5zYWN0aW9uIGlzIG51bGwKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNpb24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVl
ZGVkLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2ludHZlcnNp
b24tYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLmpzCmluZGV4IDk0NTc4NzY4MThhODUw
NjE1Y2Y5NDhkOGQwYjJiNmZkOTJkYjc2NTcuLjk0NDk0MWU1OTIyYjI2ODljNjVmMGQzYmRlYmQx
ZTg2NmJlMzA1NDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jl
c291cmNlcy9pbnR2ZXJzaW9uLWFib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC5qcworKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvaW50dmVyc2lvbi1hYm9y
dC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQuanMKQEAgLTE5LDE2ICsxOSwxMyBAQCBmdW5jdGlv
biBkZWxldGVTdWNjZXNzKCkgewogICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbihkYm5hbWUsIDIpIik7CiAgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3Vj
Y2Vzc0NhbGxiYWNrOwogICAgIGV2YWxBbmRMb2coInJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0g
dXBncmFkZU5lZWRlZCIpOwotICAgIGRlYnVnKCJGSVhNRTogVGhpcyBzaG91bGQgZ2V0IGFuIGVy
cm9yIGV2ZW50IG9mIHR5cGUgQWJvcnRFcnJvciIpOwotICAgIGV2YWxBbmRMb2coInJlcXVlc3Qu
b25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrIik7CisgICAgZXZhbEFuZExvZygicmVx
dWVzdC5vbmVycm9yID0gb25FcnJvciIpOwogICAgIHJlcXVlc3Qub25ibG9ja2VkID0gdW5leHBl
Y3RlZEJsb2NrZWRDYWxsYmFjazsKIH0KIAogZnVuY3Rpb24gdXBncmFkZU5lZWRlZChldnQpCiB7
Ci0gICAgZGVidWcoIiIpOwotICAgIGRlYnVnKCJ1cGdyYWRlTmVlZGVkKCk6Iik7Ci0gICAgZXZl
bnQgPSBldnQ7CisgICAgcHJlYW1ibGUoZXZ0KTsKICAgICBkYiA9IGV2ZW50LnRhcmdldC5yZXN1
bHQ7CiAgICAgc2hvdWxkQmUoImRiLnZlcnNpb24iLCAiMiIpOwogICAgIHRyYW5zYWN0aW9uID0g
ZXZlbnQudGFyZ2V0LnRyYW5zYWN0aW9uOwpAQCAtMzksMTAgKzM2LDE5IEBAIGZ1bmN0aW9uIHVw
Z3JhZGVOZWVkZWQoZXZ0KQogCiBmdW5jdGlvbiBvbkFib3J0KGV2dCkKIHsKLSAgICBkZWJ1Zygi
Iik7Ci0gICAgZGVidWcoIm9uQWJvcnQoKToiKTsKLSAgICBldmVudCA9IGV2dDsKKyAgICBwcmVh
bWJsZShldnQpOwogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZGIudmVyc2lvbiIsICIwIik7
CisgICAgc2hvdWxkQmVOb25OdWxsKCJyZXF1ZXN0LnRyYW5zYWN0aW9uIik7Cit9CisKK2Z1bmN0
aW9uIG9uRXJyb3IoZXZ0KQoreworICAgIHByZWFtYmxlKGV2dCk7CisgICAgc2hvdWxkQmUoImRi
IiwgImV2ZW50LnRhcmdldC5yZXN1bHQiKTsKKyAgICBzaG91bGRCZSgicmVxdWVzdCIsICJldmVu
dC50YXJnZXQiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnRhcmdldC5lcnJv
ci5uYW1lIiwgIkFib3J0RXJyb3IiKTsKKyAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LnJlc3Vs
dC52ZXJzaW9uIiwgIjAiKTsKKyAgICBzaG91bGRCZU51bGwoInJlcXVlc3QudHJhbnNhY3Rpb24i
KTsKICAgICBmaW5pc2hKU1Rlc3QoKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>