<?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>42161</bug_id>
          
          <creation_ts>2010-07-13 06:02:42 -0700</creation_ts>
          <short_desc>Removes cycles caused by &quot;m_this&quot; members in a few IndexedDB classes.</short_desc>
          <delta_ts>2010-07-13 09:12:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>0</everconfirmed>
          <reporter name="Marcus Bulach">bulach</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>250462</commentid>
    <comment_count>0</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 06:02:42 -0700</bug_when>
    <thetext>Removes cycles caused by &quot;m_this&quot; members in a few IndexedDB classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250466</commentid>
    <comment_count>1</comment_count>
      <attachid>61364</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 06:06:45 -0700</bug_when>
    <thetext>Created attachment 61364
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250467</commentid>
    <comment_count>2</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 06:08:08 -0700</bug_when>
    <thetext>Hi Jeremy,

Following your suggestion on https://bugs.webkit.org/show_bug.cgi?id=41888, this patch contains only the &quot;m_this&quot; / &quot;IDBAny&quot; cleanup. Would you mind taking a look please?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250469</commentid>
    <comment_count>3</comment_count>
      <attachid>61364</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-13 06:17:35 -0700</bug_when>
    <thetext>Comment on attachment 61364
Patch

WebCore/storage/IDBAny.h:46
 +      static PassRefPtr&lt;IDBAny&gt; create();
Do we still need this?

WebCore/storage/IDBAny.cpp:40
 +  static PassRefPtr&lt;IDBAny&gt; createIDBAny(PassRefPtr&lt;T&gt; idbType)
Hm...it seems like you could have just added the template function to the IDBAny.h if you wanted...right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250486</commentid>
    <comment_count>4</comment_count>
      <attachid>61371</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 07:24:02 -0700</bug_when>
    <thetext>Created attachment 61371
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250490</commentid>
    <comment_count>5</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 07:28:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 61364 [details])
&gt; WebCore/storage/IDBAny.h:46
&gt;  +      static PassRefPtr&lt;IDBAny&gt; create();
&gt; Do we still need this?
yep, http://trac.webkit.org/browser/trunk/WebCore/storage/IDBRequest.cpp still uses it..

&gt; 
&gt; WebCore/storage/IDBAny.cpp:40
&gt;  +  static PassRefPtr&lt;IDBAny&gt; createIDBAny(PassRefPtr&lt;T&gt; idbType)
&gt; Hm...it seems like you could have just added the template function to the IDBAny.h if you wanted...right?

indeed, done. note though that due to the automatic type conversion from Foo* to PassRefPtr&lt;Foo&gt;, the caller needs to specify the type on the templated call site.

another look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250496</commentid>
    <comment_count>6</comment_count>
      <attachid>61371</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-13 07:40:54 -0700</bug_when>
    <thetext>Comment on attachment 61371
Patch

WebCore/storage/IDBAny.h:47
 +      // Only valid with T accepted by set().
I&apos;d lean towards leaving this comment out.  I think it&apos;s pretty clear from the code.

WebCore/storage/IDBAny.h:49
 +      static PassRefPtr&lt;IDBAny&gt; create(PassRefPtr&lt;T&gt; idbObject)
I think it&apos;d be slightly cleaner if you took in a raw pointer and created the passRefPtr in this method.  That way we don&apos;t have all the redundant data scattered through the rest of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250507</commentid>
    <comment_count>7</comment_count>
      <attachid>61376</attachid>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 08:08:28 -0700</bug_when>
    <thetext>Created attachment 61376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250508</commentid>
    <comment_count>8</comment_count>
    <who name="Marcus Bulach">bulach</who>
    <bug_when>2010-07-13 08:09:15 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 61371 [details])
&gt; WebCore/storage/IDBAny.h:47
&gt;  +      // Only valid with T accepted by set().
&gt; I&apos;d lean towards leaving this comment out.  I think it&apos;s pretty clear from the code.
removed.

&gt; 
&gt; WebCore/storage/IDBAny.h:49
&gt;  +      static PassRefPtr&lt;IDBAny&gt; create(PassRefPtr&lt;T&gt; idbObject)
&gt; I think it&apos;d be slightly cleaner if you took in a raw pointer and created the passRefPtr in this method.  That way we don&apos;t have all the redundant data scattered through the rest of the file.

agreed, done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250515</commentid>
    <comment_count>9</comment_count>
      <attachid>61376</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-07-13 08:18:33 -0700</bug_when>
    <thetext>Comment on attachment 61376
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250543</commentid>
    <comment_count>10</comment_count>
      <attachid>61376</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 09:12:18 -0700</bug_when>
    <thetext>Comment on attachment 61376
Patch

Clearing flags on attachment: 61376

Committed r63211: &lt;http://trac.webkit.org/changeset/63211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250544</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-13 09:12:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61364</attachid>
            <date>2010-07-13 06:06:45 -0700</date>
            <delta_ts>2010-07-13 07:23:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42161-20100713140643.patch</filename>
            <type>text/plain</type>
            <size>11030</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM3MWQ5Mzc1ZWY0NzU2ZjRiMzU0ZDk4MzcxYzU0NTMxMWZkOGM5NC4uMWVmZDI5Y2M2M2U3Y2M1
YzQwMDk5YzUyZWUwZjk4M2VlYmEwYjc3NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0wNy0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBjeWNsZXMgY2F1c2VkIGJ5ICJtX3Ro
aXMiIG1lbWJlcnMgaW4gYSBmZXcgSW5kZXhlZERCIGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE2MQorCisgICAgICAgIEFkZHMgSURC
QW55OjpjcmVhdGUgZm9yIHRoZSB2YXJpb3VzIHR5cGVzLgorICAgICAgICBObyBmdW5jdGlvbmFs
aXR5IGNoYW5nZSwganVzdCBjbGVhbmluZyB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSURCQW55
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQkFueSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJBbnk6OmNyZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAg
KiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZVJlcXVlc3Q6OklEQkRhdGFiYXNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZVJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlUmVxdWVzdDo6cmVtb3ZlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJPYmplY3RTdG9y
ZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpJ
REJPYmplY3RTdG9yZVJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVS
ZXF1ZXN0OjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojph
ZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpwdXQpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpjcmVhdGVJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZUluZGV4KToKKyAgICAgICAgKiBz
dG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhl
ZERhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VS
ZXF1ZXN0OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkluZGV4
ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5oOgorCiAyMDEwLTA3LTEzICBBbmRyZWFzIEtsaW5nICA8YW5kcmVhcy5rbGlu
Z0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50dGkgS29pdmlzdG8uCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJB
bnkuY3BwCmluZGV4IDlhMTg5ODA1NDlmMTk4YzY3MjI3OGNlMDY0OTUzOTczYzM0NzdiNmUuLmM5
ZTY0MWJmMzdlZDhiZmY0ZWMzM2QyNjM1MzA3N2QxOGRhYzFmMDMgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvc3RvcmFnZS9JREJBbnkuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJBbnkuY3BwCkBA
IC0zNiwxMSArMzYsNDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCit0ZW1wbGF0ZTxjbGFz
cyBUPgorc3RhdGljIFBhc3NSZWZQdHI8SURCQW55PiBjcmVhdGVJREJBbnkoUGFzc1JlZlB0cjxU
PiBpZGJUeXBlKQoreworICAgIFJlZlB0cjxJREJBbnk+IGFueSA9IElEQkFueTo6Y3JlYXRlKCk7
CisgICAgYW55LT5zZXQoaWRiVHlwZSk7CisgICAgcmV0dXJuIGFueS5yZWxlYXNlKCk7Cit9CisK
IFBhc3NSZWZQdHI8SURCQW55PiBJREJBbnk6OmNyZWF0ZSgpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBJREJBbnkoKSk7CiB9CiAKK1Bhc3NSZWZQdHI8SURCQW55PiBJREJBbnk6OmNyZWF0
ZShQYXNzUmVmUHRyPElEQkRhdGFiYXNlUmVxdWVzdD4gaWRiRGF0YWJhc2VSZXF1ZXN0KQorewor
ICAgIHJldHVybiBjcmVhdGVJREJBbnkoaWRiRGF0YWJhc2VSZXF1ZXN0KTsKK30KKworUGFzc1Jl
ZlB0cjxJREJBbnk+IElEQkFueTo6Y3JlYXRlKFBhc3NSZWZQdHI8SURCSW5kZXhSZXF1ZXN0PiBp
ZGJJbmRleFJlcXVlc3QpCit7CisgICAgcmV0dXJuIGNyZWF0ZUlEQkFueShpZGJJbmRleFJlcXVl
c3QpOworfQorCitQYXNzUmVmUHRyPElEQkFueT4gSURCQW55OjpjcmVhdGUoUGFzc1JlZlB0cjxJ
REJLZXk+IGlkYktleSkKK3sKKyAgICByZXR1cm4gY3JlYXRlSURCQW55KGlkYktleSk7Cit9CisK
K1Bhc3NSZWZQdHI8SURCQW55PiBJREJBbnk6OmNyZWF0ZShQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlUmVxdWVzdD4gaWRiT2JqZWN0U3RvcmVSZXF1ZXN0KQoreworICAgIHJldHVybiBjcmVhdGVJ
REJBbnkoaWRiT2JqZWN0U3RvcmVSZXF1ZXN0KTsKK30KKworUGFzc1JlZlB0cjxJREJBbnk+IElE
QkFueTo6Y3JlYXRlKFBhc3NSZWZQdHI8SW5kZXhlZERhdGFiYXNlUmVxdWVzdD4gaW5kZXhlZERh
dGFiYXNlUmVxdWVzdCkKK3sKKyAgICByZXR1cm4gY3JlYXRlSURCQW55KGluZGV4ZWREYXRhYmFz
ZVJlcXVlc3QpOworfQorCitQYXNzUmVmUHRyPElEQkFueT4gSURCQW55OjpjcmVhdGUoUGFzc1Jl
ZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSkKK3sKKyAg
ICByZXR1cm4gY3JlYXRlSURCQW55KHNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSk7Cit9CisKIElEQkFu
eTo6SURCQW55KCkKICAgICA6IG1fdHlwZShVbmRlZmluZWRUeXBlKQogewpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCmluZGV4
IGZmMmQ2YjkwMTFiMDk3YjkzZGNiYTM1ZDE2Mzg3YmFhMWY4NTFlOTEuLjNhMDFkYTE3M2U2OGI1
MmQ2N2MyZTVjYzM4MDJmMmMyYWQzZGNkNjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9J
REJBbnkuaAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKQEAgLTQ0LDYgKzQ0LDEyIEBA
IGNsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIElEQkFueSA6IHB1YmxpYyBSZWZD
b3VudGVkPElEQkFueT4gewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4g
Y3JlYXRlKCk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQW55PiBjcmVhdGUoUGFzc1JlZlB0
cjxJREJEYXRhYmFzZVJlcXVlc3Q+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJBbnk+IGNy
ZWF0ZShQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4pOworICAgIHN0YXRpYyBQYXNzUmVmUHRy
PElEQkFueT4gY3JlYXRlKFBhc3NSZWZQdHI8SURCS2V5Pik7CisgICAgc3RhdGljIFBhc3NSZWZQ
dHI8SURCQW55PiBjcmVhdGUoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+KTsKKyAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJBbnk+IGNyZWF0ZShQYXNzUmVmUHRyPEluZGV4ZWREYXRh
YmFzZVJlcXVlc3Q+KTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJBbnk+IGNyZWF0ZShQYXNz
UmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4pOwogICAgIH5JREJBbnkoKTsKIAogICAgIGVu
dW0gVHlwZSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDMxNjhk
MDYyZmNkN2NkOWRhMTc5YmY5ZjU2MTdmNzMwYjM3YjZlODkuLmZjZTI2NzEwM2ViY2ZjMTU5MDI2
NjI2ZjRjNTgzMDdmYjQ5ZWZiNjAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRh
YmFzZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3Qu
Y3BwCkBAIC0zOSwxMCArMzksOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJREJEYXRhYmFzZVJl
cXVlc3Q6OklEQkRhdGFiYXNlUmVxdWVzdChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBkYXRhYmFz
ZSkKICAgICA6IG1fZGF0YWJhc2UoZGF0YWJhc2UpCiB7Ci0gICAgbV90aGlzID0gSURCQW55Ojpj
cmVhdGUoKTsKICAgICAvLyBXZSBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0IGJlZm9y
ZSBpdCBjYW4gYmUgYWRvcHRlZC4KICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAg
ICBtX3RoaXMtPnNldCh0aGlzKTsKIH0KIAogSURCRGF0YWJhc2VSZXF1ZXN0Ojp+SURCRGF0YWJh
c2VSZXF1ZXN0KCkKQEAgLTUxLDcgKzQ5LDcgQEAgSURCRGF0YWJhc2VSZXF1ZXN0Ojp+SURCRGF0
YWJhc2VSZXF1ZXN0KCkKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJEYXRhYmFzZVJlcXVl
c3Q6OmNyZWF0ZU9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1l
bnQpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElE
QlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9k
YXRhYmFzZS0+Y3JlYXRlT2JqZWN0U3RvcmUobmFtZSwga2V5UGF0aCwgYXV0b0luY3JlbWVudCwg
cmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC02NSw3ICs2Myw3IEBAIFBhc3NS
ZWZQdHI8SURCT2JqZWN0U3RvcmVSZXF1ZXN0PiBJREJEYXRhYmFzZVJlcXVlc3Q6Om9iamVjdFN0
b3JlKGNvbnN0IFN0cmluZyYKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJEYXRhYmFzZVJl
cXVlc3Q6OnJlbW92ZU9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IFN0cmluZyYgbmFtZSkKIHsKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9
IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJSZXF1
ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRl
KHRoaXMpKTsKICAgICBtX2RhdGFiYXNlLT5yZW1vdmVPYmplY3RTdG9yZShuYW1lLCByZXF1ZXN0
KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9J
REJEYXRhYmFzZVJlcXVlc3QuaCBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3Qu
aAppbmRleCAyM2IxZWNjOWNhM2QzYThiYmMxM2QzNjFlNmMxNTMxNGJiMWQzMTAxLi5mZDE5ODgy
MWRmYWNhMmNhNzRiZTYxMGMyYmE4Y2RkMjk0ZTNkNGFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFi
YXNlUmVxdWVzdC5oCkBAIC02Myw3ICs2Myw2IEBAIHByaXZhdGU6CiAgICAgSURCRGF0YWJhc2VS
ZXF1ZXN0KFBhc3NSZWZQdHI8SURCRGF0YWJhc2U+KTsKIAogICAgIFJlZlB0cjxJREJEYXRhYmFz
ZT4gbV9kYXRhYmFzZTsKLSAgICBSZWZQdHI8SURCQW55PiBtX3RoaXM7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3Bw
CmluZGV4IGZkZDQ5OGJiYzdjMGJlOGY5ZDNiNzQyZDZkZjM2OTZiYjYxNmM2MjEuLjNlMDk1YzFl
MGI1NTRhZjA4YzA2NTIyMzBkMDQyMGJiYjliNjliN2QgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJP
YmplY3RTdG9yZVJlcXVlc3QuY3BwCkBAIC00MCwxMCArNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdChQYXNzUmVm
UHRyPElEQk9iamVjdFN0b3JlPiBpZGJPYmplY3RTdG9yZSkKICAgICA6IG1fb2JqZWN0U3RvcmUo
aWRiT2JqZWN0U3RvcmUpCiB7Ci0gICAgbV90aGlzID0gSURCQW55OjpjcmVhdGUoKTsKICAgICAv
LyBXZSBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0IGJlZm9yZSBpdCBjYW4gYmUgYWRv
cHRlZC4KICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAgICBtX3RoaXMtPnNldCh0
aGlzKTsKIH0KIAogU3RyaW5nIElEQk9iamVjdFN0b3JlUmVxdWVzdDo6bmFtZSgpIGNvbnN0CkBA
IC02MywzNSArNjEsMzUgQEAgUGFzc1JlZlB0cjxET01TdHJpbmdMaXN0PiBJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OmluZGV4TmFtZXMoKSBjb25zdAogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVl
c3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURC
UmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNy
ZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+Z2V0KGtleSwgcmVxdWVzdCk7CiAgICAg
cmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmVSZXF1ZXN0OjphZGQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQog
ewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNv
bnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1
ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0
U3RvcmUtPnB1dCh2YWx1ZSwga2V5LCB0cnVlLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnB1
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7Ci0gICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlz
KTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZh
bHVlLCBrZXksIGZhbHNlLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewotICAg
IFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQs
IG1fdGhpcyk7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0Ojpj
cmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUt
PnJlbW92ZShrZXksIHJlcXVlc3QpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Y3JlYXRlSW5kZXgoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJp
bmcmIGtleVBhdGgsIGJvb2wgdW5pcXVlKQogewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElE
QlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55Ojpj
cmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPmNyZWF0ZUluZGV4KG5hbWUsIGtleVBh
dGgsIHVuaXF1ZSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CkBAIC0xMDUsNyAr
MTAzLDcgQEAgUGFzc1JlZlB0cjxJREJJbmRleFJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVz
dDo6aW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElE
Qk9iamVjdFN0b3JlUmVxdWVzdDo6cmVtb3ZlSW5kZXgoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiBy
ZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55
OjpjcmVhdGUodGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUsIHJl
cXVlc3QpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlUmVxdWVzdC5oCmluZGV4IGFmNzUyZjUxZGNhZjUzYTNhOTI0OGUzNzdiYWFmMzlkNDU5Mjc0
OTYuLjg2ZjY0ZDY1NDljYWEyYjM0MTdmYTcyZDRhYzgyYzlmZTg5ZGEwZTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHJpdmF0ZToK
ICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOwog
CiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBtX29iamVjdFN0b3JlOwotICAgIFJlZlB0cjxJ
REJBbnk+IG1fdGhpczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCBhMjVmYjJiYTQ5YjNmYjM5ZjI0
OTJjODYzODljNTU3NDJjNTg0ZmQxLi40NWFlMWJkMzAwODcxY2I0MmZjYTMzNzk4Y2M1NmY0Zjhm
ZDgxNjE5IDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVz
dC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCkBA
IC00NCwxMCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KEluZGV4ZWREYXRhYmFzZSogaW5kZXhlZERhdGFi
YXNlKQogICAgIDogbV9pbmRleGVkRGF0YWJhc2UoaW5kZXhlZERhdGFiYXNlKQogewotICAgIG1f
dGhpcyA9IElEQkFueTo6Y3JlYXRlKCk7CiAgICAgLy8gV2UgcGFzcyBhIHJlZmVyZW5jZSB0byB0
aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJlIGFkb3B0ZWQuCiAgICAgcmVsYXhBZG9wdGlvblJl
cXVpcmVtZW50KCk7Ci0gICAgbV90aGlzLT5zZXQodGhpcyk7CiB9CiAKIEluZGV4ZWREYXRhYmFz
ZVJlcXVlc3Q6On5JbmRleGVkRGF0YWJhc2VSZXF1ZXN0KCkKQEAgLTY1LDcgKzYzLDcgQEAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnQKICAgICBpZiAoIWRvY3VtZW50LT5mcmFtZSgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVz
dDo6Y3JlYXRlKGRvY3VtZW50LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7
CiAgICAgbV9pbmRleGVkRGF0YWJhc2UtPm9wZW4obmFtZSwgZGVzY3JpcHRpb24sIHJlcXVlc3Qs
IGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBkb2N1bWVudC0+ZnJhbWUoKSk7CiAgICAgcmV0
dXJuIHJlcXVlc3Q7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaApp
bmRleCA5ODAyMzgwNTNkODUyYTQ5M2ZmODk4NjI1YWIxNDNhNWM1OTIyZDhhLi5mNTA1ZDlkNzJj
ZGFmNjY1NGIwMzJhMDIzYzVlNmQ3MjZlOWQxNzhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3Jh
Z2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVk
RGF0YWJhc2VSZXF1ZXN0LmgKQEAgLTY0LDcgKzY0LDYgQEAgcHJpdmF0ZToKICAgICBJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0KEluZGV4ZWREYXRhYmFzZSopOwogCiAgICAgUmVmUHRyPEluZGV4ZWRE
YXRhYmFzZT4gbV9pbmRleGVkRGF0YWJhc2U7Ci0gICAgUmVmUHRyPElEQkFueT4gbV90aGlzOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61371</attachid>
            <date>2010-07-13 07:24:02 -0700</date>
            <delta_ts>2010-07-13 08:08:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42161-20100713152400.patch</filename>
            <type>text/plain</type>
            <size>11453</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM3MWQ5Mzc1ZWY0NzU2ZjRiMzU0ZDk4MzcxYzU0NTMxMWZkOGM5NC4uNzIzMDBiNWJiY2ZiNmJh
ZDg3MTliZmVhOTgxNjdlMGI5OWRiZGU1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wNy0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBjeWNsZXMgY2F1c2VkIGJ5ICJtX3Ro
aXMiIG1lbWJlcnMgaW4gYSBmZXcgSW5kZXhlZERCIGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE2MQorCisgICAgICAgIEFkZHMgSURC
QW55OjpjcmVhdGUgZm9yIHRoZSB2YXJpb3VzIHR5cGVzLgorICAgICAgICBObyBmdW5jdGlvbmFs
aXR5IGNoYW5nZSwganVzdCBjbGVhbmluZyB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSURCQW55
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQkFueSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJBbnk6OmNyZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAg
KiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZVJlcXVlc3Q6OklEQkRhdGFiYXNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZVJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlUmVxdWVzdDo6cmVtb3ZlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJLZXlSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6SURCS2V5UmFuZ2UpOgorICAgICAg
ICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdl
OjpsZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAg
ICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmVSZXF1ZXN0OjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpj
cmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJl
bW92ZUluZGV4KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAgICAg
ICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorCiAyMDEwLTA3LTEzICBBbmRy
ZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55Lmgg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggZmYyZDZiOTAxMWIwOTdiOTNkY2JhMzVk
MTYzODdiYWExZjg1MWU5MS4uODg0MGM1MjhiMTI2YmYwNmQ1OTAxMTQ3Yzc5MWRmYThlYTAzNWNj
YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJBbnkuaApAQCAtNDQsNiArNDQsMTQgQEAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgSURCQW55IDogcHVibGljIFJlZkNvdW50ZWQ8SURCQW55PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQW55PiBjcmVhdGUoKTsKKyAgICAvLyBPbmx5IHZh
bGlkIHdpdGggVCBhY2NlcHRlZCBieSBzZXQoKS4KKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4gY3JlYXRlKFBhc3NSZWZQdHI8VD4gaWRiT2Jq
ZWN0KQorICAgIHsKKyAgICAgICAgUmVmUHRyPElEQkFueT4gYW55ID0gSURCQW55OjpjcmVhdGUo
KTsKKyAgICAgICAgYW55LT5zZXQoaWRiT2JqZWN0KTsKKyAgICAgICAgcmV0dXJuIGFueS5yZWxl
YXNlKCk7CisgICAgfQogICAgIH5JREJBbnkoKTsKIAogICAgIGVudW0gVHlwZSB7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IDMxNjhkMDYyZmNkN2NkOWRhMTc5YmY5
ZjU2MTdmNzMwYjM3YjZlODkuLjgwZDIzNmZkMmFmYTlhNWQyNmYwNmE0MGNiNzA4ZmJjM2UxZTVi
NGYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCisr
KyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuY3BwCkBAIC0zOSwxMCArMzks
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJREJEYXRhYmFzZVJlcXVlc3Q6OklEQkRhdGFiYXNl
UmVxdWVzdChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPiBkYXRhYmFzZSkKICAgICA6IG1fZGF0YWJh
c2UoZGF0YWJhc2UpCiB7Ci0gICAgbV90aGlzID0gSURCQW55OjpjcmVhdGUoKTsKICAgICAvLyBX
ZSBwYXNzIGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0IGJlZm9yZSBpdCBjYW4gYmUgYWRvcHRl
ZC4KICAgICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAgICBtX3RoaXMtPnNldCh0aGlz
KTsKIH0KIAogSURCRGF0YWJhc2VSZXF1ZXN0Ojp+SURCRGF0YWJhc2VSZXF1ZXN0KCkKQEAgLTUx
LDcgKzQ5LDcgQEAgSURCRGF0YWJhc2VSZXF1ZXN0Ojp+SURCRGF0YWJhc2VSZXF1ZXN0KCkKIAog
UGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJEYXRhYmFzZVJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0
b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgU3RyaW5nJiBrZXlQYXRoLCBib29sIGF1dG9JbmNyZW1lbnQpCiB7Ci0gICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlz
KTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZTxJREJEYXRhYmFzZVJlcXVlc3Q+KHRoaXMpKTsKICAgICBt
X2RhdGFiYXNlLT5jcmVhdGVPYmplY3RTdG9yZShuYW1lLCBrZXlQYXRoLCBhdXRvSW5jcmVtZW50
LCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KQEAgLTY1LDcgKzYzLDcgQEAgUGFz
c1JlZlB0cjxJREJPYmplY3RTdG9yZVJlcXVlc3Q+IElEQkRhdGFiYXNlUmVxdWVzdDo6b2JqZWN0
U3RvcmUoY29uc3QgU3RyaW5nJgogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQkRhdGFiYXNl
UmVxdWVzdDo6cmVtb3ZlT2JqZWN0U3RvcmUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCwgY29uc3QgU3RyaW5nJiBuYW1lKQogewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0
ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElEQlJl
cXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVh
dGU8SURCRGF0YWJhc2VSZXF1ZXN0Pih0aGlzKSk7CiAgICAgbV9kYXRhYmFzZS0+cmVtb3ZlT2Jq
ZWN0U3RvcmUobmFtZSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggMjNiMWVjYzljYTNkM2E4YmJjMTNkMzYxZTZj
MTUzMTRiYjFkMzEwMS4uZmQxOTg4MjFkZmFjYTJjYTc0YmU2MTBjMmJhOGNkZDI5NGUzZDRhYiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5oCisrKyBiL1dl
YkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaApAQCAtNjMsNyArNjMsNiBAQCBwcml2
YXRlOgogICAgIElEQkRhdGFiYXNlUmVxdWVzdChQYXNzUmVmUHRyPElEQkRhdGFiYXNlPik7CiAK
ICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7Ci0gICAgUmVmUHRyPElEQkFueT4g
bV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVJhbmdlLmNwcCBiL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5j
cHAKaW5kZXggMzRjMTFmZWJiMjU1Zjc0MWU3ZWMzNjJiZTFlOWM4NTVhYTJiYjdkOS4uOWYyMmZj
ODZmZTg5OWZlY2Q5NDc4YjNhYmM0YmY5MDEyYjdmNzFjMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9z
dG9yYWdlL0lEQktleVJhbmdlLmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UmFuZ2Uu
Y3BwCkBAIC0zNCwxMiArMzQsMTAgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSURCS2V5UmFu
Z2U6OklEQktleVJhbmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQ
YXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZs
YWdzKQotICAgIDogbV9sZWZ0KElEQkFueTo6Y3JlYXRlKCkpCi0gICAgLCBtX3JpZ2h0KElEQkFu
eTo6Y3JlYXRlKCkpCisgICAgOiBtX2xlZnQobGVmdCkKKyAgICAsIG1fcmlnaHQocmlnaHQpCiAg
ICAgLCBtX2ZsYWdzKGZsYWdzKQogewotICAgIG1fbGVmdC0+c2V0KGxlZnQpOwotICAgIG1fcmln
aHQtPnNldChyaWdodCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJh
bmdlLmgKaW5kZXggNGM1ZWZlMmMzOGJkOWVhYWIwZGVhODMzMTFkYmJkY2I1NzFjNGQ5Zi4uNDNk
NjIyNmI3ZDIwZTA1NGIwYjdjNWFhMGY4NGIxNmE1MTVhOTg1NyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVJhbmdlLmgKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdl
LmgKQEAgLTUzLDE1ICs1MywxNSBAQCBwdWJsaWM6CiAgICAgfklEQktleVJhbmdlKCkgeyB9CiAK
IAotICAgIFBhc3NSZWZQdHI8SURCQW55PiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gbV9sZWZ0OyB9
Ci0gICAgUGFzc1JlZlB0cjxJREJBbnk+IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9yaWdodDsg
fQorICAgIFBhc3NSZWZQdHI8SURCQW55PiBsZWZ0KCkgY29uc3QgeyByZXR1cm4gSURCQW55Ojpj
cmVhdGU8U2VyaWFsaXplZFNjcmlwdFZhbHVlPihtX2xlZnQpOyB9CisgICAgUGFzc1JlZlB0cjxJ
REJBbnk+IHJpZ2h0KCkgY29uc3QgeyByZXR1cm4gSURCQW55OjpjcmVhdGU8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPihtX3JpZ2h0KTsgfQogICAgIHVuc2lnbmVkIHNob3J0IGZsYWdzKCkgY29uc3Qg
eyByZXR1cm4gbV9mbGFnczsgfQogCiBwcml2YXRlOgogICAgIElEQktleVJhbmdlKFBhc3NSZWZQ
dHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gcmlnaHQsIHVuc2lnbmVkIHNob3J0IGZsYWdzKTsKIAotICAgIFJlZlB0cjxJREJB
bnk+IG1fbGVmdDsKLSAgICBSZWZQdHI8SURCQW55PiBtX3JpZ2h0OworICAgIFJlZlB0cjxTZXJp
YWxpemVkU2NyaXB0VmFsdWU+IG1fbGVmdDsKKyAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZh
bHVlPiBtX3JpZ2h0OwogICAgIHVuc2lnbmVkIHNob3J0IG1fZmxhZ3M7CiB9OwogCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmNwcCBiL1dlYkNvcmUv
c3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCmluZGV4IGZkZDQ5OGJiYzdjMGJlOGY5
ZDNiNzQyZDZkZjM2OTZiYjYxNmM2MjEuLjRhOWU3OTdlNGNhNTMxZmQyNTY2MWVkNWMwNzIxYzQw
NzIxMjdiZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVl
c3QuY3BwCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwCkBA
IC00MCwxMCArNDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJREJPYmplY3RTdG9yZVJlcXVl
c3Q6OklEQk9iamVjdFN0b3JlUmVxdWVzdChQYXNzUmVmUHRyPElEQk9iamVjdFN0b3JlPiBpZGJP
YmplY3RTdG9yZSkKICAgICA6IG1fb2JqZWN0U3RvcmUoaWRiT2JqZWN0U3RvcmUpCiB7Ci0gICAg
bV90aGlzID0gSURCQW55OjpjcmVhdGUoKTsKICAgICAvLyBXZSBwYXNzIGEgcmVmZXJlbmNlIHRv
IHRoaXMgb2JqZWN0IGJlZm9yZSBpdCBjYW4gYmUgYWRvcHRlZC4KICAgICByZWxheEFkb3B0aW9u
UmVxdWlyZW1lbnQoKTsKLSAgICBtX3RoaXMtPnNldCh0aGlzKTsKIH0KIAogU3RyaW5nIElEQk9i
amVjdFN0b3JlUmVxdWVzdDo6bmFtZSgpIGNvbnN0CkBAIC02MywzNSArNjEsMzUgQEAgUGFzc1Jl
ZlB0cjxET01TdHJpbmdMaXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4TmFtZXMoKSBj
b25zdAogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6Z2V0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkp
CiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUo
Y29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZTxJREJPYmplY3RTdG9yZVJlcXVl
c3Q+KHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5nZXQoa2V5LCByZXF1ZXN0KTsKICAgICBy
ZXR1cm4gcmVxdWVzdDsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9y
ZVJlcXVlc3Q6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRy
PFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXkpCiB7
Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29u
dGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVl
c3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZTxJREJPYmplY3RTdG9yZVJlcXVlc3Q+
KHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgdHJ1ZSwgcmVxdWVz
dCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjpwdXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHZhbHVlLCBQYXNzUmVmUHRyPElEQktl
eT4ga2V5KQogewotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6
Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3Qg
PSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgSURCQW55OjpjcmVhdGU8SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0Pih0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZhbHVlLCBrZXksIGZh
bHNlLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUGFzc1JlZlB0cjxJREJS
ZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJlbW92ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0LCBQYXNzUmVmUHRyPElEQktleT4ga2V5KQogewotICAgIFJlZlB0cjxJREJS
ZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhpcyk7Cisg
ICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4
dCwgSURCQW55OjpjcmVhdGU8SURCT2JqZWN0U3RvcmVSZXF1ZXN0Pih0aGlzKSk7CiAgICAgbV9v
YmplY3RTdG9yZS0+cmVtb3ZlKGtleSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9
CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpjcmVhdGVJ
bmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpCiB7Ci0gICAgUmVmUHRyPElEQlJl
cXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAg
ICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0
LCBJREJBbnk6OmNyZWF0ZTxJREJPYmplY3RTdG9yZVJlcXVlc3Q+KHRoaXMpKTsKICAgICBtX29i
amVjdFN0b3JlLT5jcmVhdGVJbmRleChuYW1lLCBrZXlQYXRoLCB1bmlxdWUsIHJlcXVlc3QpOwog
ICAgIHJldHVybiByZXF1ZXN0OwogfQpAQCAtMTA1LDcgKzEwMyw3IEBAIFBhc3NSZWZQdHI8SURC
SW5kZXhSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmluZGV4KGNvbnN0IFN0cmluZyYg
bmFtZSkKIAogUGFzc1JlZlB0cjxJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJl
bW92ZUluZGV4KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IFN0cmluZyYg
bmFtZSkKIHsKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNy
ZWF0ZShjb250ZXh0LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0g
SURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlPElEQk9iamVjdFN0b3Jl
UmVxdWVzdD4odGhpcykpOwogICAgIG1fb2JqZWN0U3RvcmUtPnJlbW92ZUluZGV4KG5hbWUsIHJl
cXVlc3QpOwogICAgIHJldHVybiByZXF1ZXN0OwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9y
YWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0
b3JlUmVxdWVzdC5oCmluZGV4IGFmNzUyZjUxZGNhZjUzYTNhOTI0OGUzNzdiYWFmMzlkNDU5Mjc0
OTYuLjg2ZjY0ZDY1NDljYWEyYjM0MTdmYTcyZDRhYzgyYzlmZTg5ZGEwZTkgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKQEAgLTY4LDcgKzY4LDYgQEAgcHJpdmF0ZToK
ICAgICBJREJPYmplY3RTdG9yZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4pOwog
CiAgICAgUmVmUHRyPElEQk9iamVjdFN0b3JlPiBtX29iamVjdFN0b3JlOwotICAgIFJlZlB0cjxJ
REJBbnk+IG1fdGhpczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCBhMjVmYjJiYTQ5YjNmYjM5ZjI0
OTJjODYzODljNTU3NDJjNTg0ZmQxLi4xMTc0MWRhNmNmODFkNDNkMjNiNGNhMTI0MmQzMWU4Mjdi
OGUxNTNjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVz
dC5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCkBA
IC00NCwxMCArNDQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBJbmRleGVkRGF0YWJhc2VSZXF1
ZXN0OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KEluZGV4ZWREYXRhYmFzZSogaW5kZXhlZERhdGFi
YXNlKQogICAgIDogbV9pbmRleGVkRGF0YWJhc2UoaW5kZXhlZERhdGFiYXNlKQogewotICAgIG1f
dGhpcyA9IElEQkFueTo6Y3JlYXRlKCk7CiAgICAgLy8gV2UgcGFzcyBhIHJlZmVyZW5jZSB0byB0
aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJlIGFkb3B0ZWQuCiAgICAgcmVsYXhBZG9wdGlvblJl
cXVpcmVtZW50KCk7Ci0gICAgbV90aGlzLT5zZXQodGhpcyk7CiB9CiAKIEluZGV4ZWREYXRhYmFz
ZVJlcXVlc3Q6On5JbmRleGVkRGF0YWJhc2VSZXF1ZXN0KCkKQEAgLTY1LDcgKzYzLDcgQEAgUGFz
c1JlZlB0cjxJREJSZXF1ZXN0PiBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpvcGVuKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnQKICAgICBpZiAoIWRvY3VtZW50LT5mcmFtZSgpKQogICAgICAg
ICByZXR1cm4gMDsKIAotICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVz
dDo6Y3JlYXRlKGRvY3VtZW50LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1
ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGRvY3VtZW50LCBJREJBbnk6OmNyZWF0ZTxJbmRleGVk
RGF0YWJhc2VSZXF1ZXN0Pih0aGlzKSk7CiAgICAgbV9pbmRleGVkRGF0YWJhc2UtPm9wZW4obmFt
ZSwgZGVzY3JpcHRpb24sIHJlcXVlc3QsIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBkb2N1
bWVudC0+ZnJhbWUoKSk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CmRpZmYgLS1naXQgYS9XZWJD
b3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oIGIvV2ViQ29yZS9zdG9yYWdlL0lu
ZGV4ZWREYXRhYmFzZVJlcXVlc3QuaAppbmRleCA5ODAyMzgwNTNkODUyYTQ5M2ZmODk4NjI1YWIx
NDNhNWM1OTIyZDhhLi5mNTA1ZDlkNzJjZGFmNjY1NGIwMzJhMDIzYzVlNmQ3MjZlOWQxNzhkIDEw
MDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oCisrKyBi
L1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKQEAgLTY0LDcgKzY0LDYg
QEAgcHJpdmF0ZToKICAgICBJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KEluZGV4ZWREYXRhYmFzZSop
OwogCiAgICAgUmVmUHRyPEluZGV4ZWREYXRhYmFzZT4gbV9pbmRleGVkRGF0YWJhc2U7Ci0gICAg
UmVmUHRyPElEQkFueT4gbV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61376</attachid>
            <date>2010-07-13 08:08:28 -0700</date>
            <delta_ts>2010-07-13 09:12:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42161-20100713160826.patch</filename>
            <type>text/plain</type>
            <size>11161</size>
            <attacher name="Marcus Bulach">bulach</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM3MWQ5Mzc1ZWY0NzU2ZjRiMzU0ZDk4MzcxYzU0NTMxMWZkOGM5NC4uNzIzMDBiNWJiY2ZiNmJh
ZDg3MTliZmVhOTgxNjdlMGI5OWRiZGU1NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMC0wNy0xMyAgTWFy
Y3VzIEJ1bGFjaCAgPGJ1bGFjaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBjeWNsZXMgY2F1c2VkIGJ5ICJtX3Ro
aXMiIG1lbWJlcnMgaW4gYSBmZXcgSW5kZXhlZERCIGNsYXNzZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjE2MQorCisgICAgICAgIEFkZHMgSURC
QW55OjpjcmVhdGUgZm9yIHRoZSB2YXJpb3VzIHR5cGVzLgorICAgICAgICBObyBmdW5jdGlvbmFs
aXR5IGNoYW5nZSwganVzdCBjbGVhbmluZyB1cC4KKworICAgICAgICAqIHN0b3JhZ2UvSURCQW55
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUlEQkFueSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJBbnk6OmNyZWF0ZSk6CisgICAgICAgICogc3RvcmFnZS9JREJBbnkuaDoKKyAgICAgICAg
KiBzdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZVJlcXVlc3Q6OklEQkRhdGFiYXNlUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZVJlcXVlc3Q6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQkRhdGFiYXNlUmVxdWVzdDo6cmVtb3ZlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIHN0b3Jh
Z2UvSURCRGF0YWJhc2VSZXF1ZXN0Lmg6CisgICAgICAgICogc3RvcmFnZS9JREJLZXlSYW5nZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6SURCS2V5UmFuZ2UpOgorICAgICAg
ICAqIHN0b3JhZ2UvSURCS2V5UmFuZ2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdl
OjpsZWZ0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjpyaWdodCk6CisgICAgICAg
ICogc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpJREJPYmplY3RTdG9yZVJlcXVlc3QpOgorICAgICAgICAo
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCT2JqZWN0U3RvcmVSZXF1ZXN0OjphZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0
U3RvcmVSZXF1ZXN0OjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1
ZXN0OjpyZW1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpj
cmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmplY3RTdG9yZVJlcXVlc3Q6OnJl
bW92ZUluZGV4KToKKyAgICAgICAgKiBzdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5oOgor
ICAgICAgICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0OjpJbmRleGVkRGF0YWJhc2VSZXF1ZXN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3Q6Om9wZW4pOgorICAgICAg
ICAqIHN0b3JhZ2UvSW5kZXhlZERhdGFiYXNlUmVxdWVzdC5oOgorCiAyMDEwLTA3LTEzICBBbmRy
ZWFzIEtsaW5nICA8YW5kcmVhcy5rbGluZ0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCQW55Lmgg
Yi9XZWJDb3JlL3N0b3JhZ2UvSURCQW55LmgKaW5kZXggZmYyZDZiOTAxMWIwOTdiOTNkY2JhMzVk
MTYzODdiYWExZjg1MWU5MS4uNzdiYmE3Y2M5YTUzMjA3Yzk2YmFkYjBhYTdkMGU3YzY1MWRlMWQ4
OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkFueS5oCisrKyBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJBbnkuaApAQCAtNDQsNiArNDQsMTMgQEAgY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZh
bHVlOwogY2xhc3MgSURCQW55IDogcHVibGljIFJlZkNvdW50ZWQ8SURCQW55PiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SURCQW55PiBjcmVhdGUoKTsKKyAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQkFueT4gY3JlYXRlKFQqIGlkYk9i
amVjdCkKKyAgICB7CisgICAgICAgIFJlZlB0cjxJREJBbnk+IGFueSA9IElEQkFueTo6Y3JlYXRl
KCk7CisgICAgICAgIGFueS0+c2V0KGlkYk9iamVjdCk7CisgICAgICAgIHJldHVybiBhbnkucmVs
ZWFzZSgpOworICAgIH0KICAgICB+SURCQW55KCk7CiAKICAgICBlbnVtIFR5cGUgewpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlUmVxdWVzdC5jcHAgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAppbmRleCAzMTY4ZDA2MmZjZDdjZDlkYTE3OWJm
OWY1NjE3ZjczMGIzN2I2ZTg5Li5mY2UyNjcxMDNlYmNmYzE1OTAyNjYyNmY0YzU4MzA3ZmI0OWVm
YjYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcAor
KysgYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmNwcApAQCAtMzksMTAgKzM5
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogSURCRGF0YWJhc2VSZXF1ZXN0OjpJREJEYXRhYmFz
ZVJlcXVlc3QoUGFzc1JlZlB0cjxJREJEYXRhYmFzZT4gZGF0YWJhc2UpCiAgICAgOiBtX2RhdGFi
YXNlKGRhdGFiYXNlKQogewotICAgIG1fdGhpcyA9IElEQkFueTo6Y3JlYXRlKCk7CiAgICAgLy8g
V2UgcGFzcyBhIHJlZmVyZW5jZSB0byB0aGlzIG9iamVjdCBiZWZvcmUgaXQgY2FuIGJlIGFkb3B0
ZWQuCiAgICAgcmVsYXhBZG9wdGlvblJlcXVpcmVtZW50KCk7Ci0gICAgbV90aGlzLT5zZXQodGhp
cyk7CiB9CiAKIElEQkRhdGFiYXNlUmVxdWVzdDo6fklEQkRhdGFiYXNlUmVxdWVzdCgpCkBAIC01
MSw3ICs0OSw3IEBAIElEQkRhdGFiYXNlUmVxdWVzdDo6fklEQkRhdGFiYXNlUmVxdWVzdCgpCiAK
IFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRGF0YWJhc2VSZXF1ZXN0OjpjcmVhdGVPYmplY3RT
dG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUs
IGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCBhdXRvSW5jcmVtZW50KQogewotICAgIFJlZlB0
cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIG1fdGhp
cyk7CisgICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUo
Y29udGV4dCwgSURCQW55OjpjcmVhdGUodGhpcykpOwogICAgIG1fZGF0YWJhc2UtPmNyZWF0ZU9i
amVjdFN0b3JlKG5hbWUsIGtleVBhdGgsIGF1dG9JbmNyZW1lbnQsIHJlcXVlc3QpOwogICAgIHJl
dHVybiByZXF1ZXN0OwogfQpAQCAtNjUsNyArNjMsNyBAQCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlUmVxdWVzdD4gSURCRGF0YWJhc2VSZXF1ZXN0OjpvYmplY3RTdG9yZShjb25zdCBTdHJpbmcm
CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCRGF0YWJhc2VSZXF1ZXN0OjpyZW1vdmVPYmpl
Y3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5h
bWUpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVh
dGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElE
QlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9k
YXRhYmFzZS0+cmVtb3ZlT2JqZWN0U3RvcmUobmFtZSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJl
cXVlc3Q7CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0
LmggYi9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2VSZXF1ZXN0LmgKaW5kZXggMjNiMWVjYzlj
YTNkM2E4YmJjMTNkMzYxZTZjMTUzMTRiYjFkMzEwMS4uZmQxOTg4MjFkZmFjYTJjYTc0YmU2MTBj
MmJhOGNkZDI5NGUzZDRhYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
UmVxdWVzdC5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZVJlcXVlc3QuaApAQCAt
NjMsNyArNjMsNiBAQCBwcml2YXRlOgogICAgIElEQkRhdGFiYXNlUmVxdWVzdChQYXNzUmVmUHRy
PElEQkRhdGFiYXNlPik7CiAKICAgICBSZWZQdHI8SURCRGF0YWJhc2U+IG1fZGF0YWJhc2U7Ci0g
ICAgUmVmUHRyPElEQkFueT4gbV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmNwcCBiL1dlYkNvcmUvc3Rv
cmFnZS9JREJLZXlSYW5nZS5jcHAKaW5kZXggMzRjMTFmZWJiMjU1Zjc0MWU3ZWMzNjJiZTFlOWM4
NTVhYTJiYjdkOS4uOWYyMmZjODZmZTg5OWZlY2Q5NDc4YjNhYmM0YmY5MDEyYjdmNzFjMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmNwcAorKysgYi9XZWJDb3JlL3N0
b3JhZ2UvSURCS2V5UmFuZ2UuY3BwCkBAIC0zNCwxMiArMzQsMTAgQEAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogSURCS2V5UmFuZ2U6OklEQktleVJhbmdlKFBhc3NSZWZQdHI8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBsZWZ0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gcmlnaHQs
IHVuc2lnbmVkIHNob3J0IGZsYWdzKQotICAgIDogbV9sZWZ0KElEQkFueTo6Y3JlYXRlKCkpCi0g
ICAgLCBtX3JpZ2h0KElEQkFueTo6Y3JlYXRlKCkpCisgICAgOiBtX2xlZnQobGVmdCkKKyAgICAs
IG1fcmlnaHQocmlnaHQpCiAgICAgLCBtX2ZsYWdzKGZsYWdzKQogewotICAgIG1fbGVmdC0+c2V0
KGxlZnQpOwotICAgIG1fcmlnaHQtPnNldChyaWdodCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlSYW5nZS5oIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleVJhbmdlLmgKaW5kZXggNGM1ZWZlMmMzOGJkOWVhYWIwZGVhODMzMTFk
YmJkY2I1NzFjNGQ5Zi4uNTIyMzllNDJkYjBiMGRhNjg5ZWM0MTFhODUzNjE4ZTY0M2E3ZjY1ZSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleVJhbmdlLmgKKysrIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQktleVJhbmdlLmgKQEAgLTUzLDE1ICs1MywxNSBAQCBwdWJsaWM6CiAgICAgfklE
QktleVJhbmdlKCkgeyB9CiAKIAotICAgIFBhc3NSZWZQdHI8SURCQW55PiBsZWZ0KCkgY29uc3Qg
eyByZXR1cm4gbV9sZWZ0OyB9Ci0gICAgUGFzc1JlZlB0cjxJREJBbnk+IHJpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9yaWdodDsgfQorICAgIFBhc3NSZWZQdHI8SURCQW55PiBsZWZ0KCkgY29uc3Qg
eyByZXR1cm4gSURCQW55OjpjcmVhdGUobV9sZWZ0LmdldCgpKTsgfQorICAgIFBhc3NSZWZQdHI8
SURCQW55PiByaWdodCgpIGNvbnN0IHsgcmV0dXJuIElEQkFueTo6Y3JlYXRlKG1fcmlnaHQuZ2V0
KCkpOyB9CiAgICAgdW5zaWduZWQgc2hvcnQgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdz
OyB9CiAKIHByaXZhdGU6CiAgICAgSURCS2V5UmFuZ2UoUGFzc1JlZlB0cjxTZXJpYWxpemVkU2Ny
aXB0VmFsdWU+IGxlZnQsIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiByaWdodCwg
dW5zaWduZWQgc2hvcnQgZmxhZ3MpOwogCi0gICAgUmVmUHRyPElEQkFueT4gbV9sZWZ0OwotICAg
IFJlZlB0cjxJREJBbnk+IG1fcmlnaHQ7CisgICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZT4gbV9sZWZ0OworICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fcmlnaHQ7CiAg
ICAgdW5zaWduZWQgc2hvcnQgbV9mbGFnczsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuY3BwIGIvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVj
dFN0b3JlUmVxdWVzdC5jcHAKaW5kZXggZmRkNDk4YmJjN2MwYmU4ZjlkM2I3NDJkNmRmMzY5NmJi
NjE2YzYyMS4uM2UwOTVjMWUwYjU1NGFmMDhjMDY1MjIzMGQwNDIwYmJiOWI2OWI3ZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKKysrIGIvV2Vi
Q29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5jcHAKQEAgLTQwLDEwICs0MCw4IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIElEQk9iamVjdFN0b3JlUmVxdWVzdDo6SURCT2JqZWN0U3Rv
cmVSZXF1ZXN0KFBhc3NSZWZQdHI8SURCT2JqZWN0U3RvcmU+IGlkYk9iamVjdFN0b3JlKQogICAg
IDogbV9vYmplY3RTdG9yZShpZGJPYmplY3RTdG9yZSkKIHsKLSAgICBtX3RoaXMgPSBJREJBbnk6
OmNyZWF0ZSgpOwogICAgIC8vIFdlIHBhc3MgYSByZWZlcmVuY2UgdG8gdGhpcyBvYmplY3QgYmVm
b3JlIGl0IGNhbiBiZSBhZG9wdGVkLgogICAgIHJlbGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwot
ICAgIG1fdGhpcy0+c2V0KHRoaXMpOwogfQogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVSZXF1ZXN0
OjpuYW1lKCkgY29uc3QKQEAgLTYzLDM1ICs2MSwzNSBAQCBQYXNzUmVmUHRyPERPTVN0cmluZ0xp
c3Q+IElEQk9iamVjdFN0b3JlUmVxdWVzdDo6aW5kZXhOYW1lcygpIGNvbnN0CiAKIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpnZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSkKIHsKLSAgICBSZWZQdHI8
SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBtX3RoaXMp
OworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNv
bnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29iamVjdFN0b3JlLT5nZXQoa2V5
LCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KIAogUGFzc1JlZlB0cjxJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZVJlcXVlc3Q6OmFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gdmFsdWUsIFBhc3NSZWZQ
dHI8SURCS2V5PiBrZXkpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJS
ZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4g
cmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlz
KSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cHV0KHZhbHVlLCBrZXksIHRydWUsIHJlcXVlc3QpOwog
ICAgIHJldHVybiByZXF1ZXN0OwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlUmVxdWVzdDo6cHV0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtl
eSkKIHsKLSAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZShjb250ZXh0LCBtX3RoaXMpOworICAgIFJlZlB0cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURC
UmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIElEQkFueTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX29i
amVjdFN0b3JlLT5wdXQodmFsdWUsIGtleSwgZmFsc2UsIHJlcXVlc3QpOwogICAgIHJldHVybiBy
ZXF1ZXN0OwogfQogCiBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlUmVxdWVz
dDo6cmVtb3ZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFBhc3NSZWZQdHI8SURC
S2V5PiBrZXkpCiB7Ci0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0
OjpjcmVhdGUoY29udGV4dCwgbV90aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVz
dCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAg
ICAgbV9vYmplY3RTdG9yZS0+cmVtb3ZlKGtleSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVl
c3Q7CiB9CiAKIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0Ojpj
cmVhdGVJbmRleChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IFN0cmluZyYga2V5UGF0aCwgYm9vbCB1bmlxdWUpCiB7Ci0gICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90aGlz
KTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+Y3JlYXRl
SW5kZXgobmFtZSwga2V5UGF0aCwgdW5pcXVlLCByZXF1ZXN0KTsKICAgICByZXR1cm4gcmVxdWVz
dDsKIH0KQEAgLTEwNSw3ICsxMDMsNyBAQCBQYXNzUmVmUHRyPElEQkluZGV4UmVxdWVzdD4gSURC
T2JqZWN0U3RvcmVSZXF1ZXN0OjppbmRleChjb25zdCBTdHJpbmcmIG5hbWUpCiAKIFBhc3NSZWZQ
dHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmVSZXF1ZXN0OjpyZW1vdmVJbmRleChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUpCiB7Ci0gICAgUmVm
UHRyPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgbV90
aGlzKTsKKyAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0
ZShjb250ZXh0LCBJREJBbnk6OmNyZWF0ZSh0aGlzKSk7CiAgICAgbV9vYmplY3RTdG9yZS0+cmVt
b3ZlSW5kZXgobmFtZSwgcmVxdWVzdCk7CiAgICAgcmV0dXJuIHJlcXVlc3Q7CiB9CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmggYi9XZWJDb3JlL3N0
b3JhZ2UvSURCT2JqZWN0U3RvcmVSZXF1ZXN0LmgKaW5kZXggYWY3NTJmNTFkY2FmNTNhM2E5MjQ4
ZTM3N2JhYWYzOWQ0NTkyNzQ5Ni4uODZmNjRkNjU0OWNhYTJiMzQxN2ZhNzJkNGFjODJjOWZlODlk
YTBlOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQk9iamVjdFN0b3JlUmVxdWVzdC5o
CisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJPYmplY3RTdG9yZVJlcXVlc3QuaApAQCAtNjgsNyAr
NjgsNiBAQCBwcml2YXRlOgogICAgIElEQk9iamVjdFN0b3JlUmVxdWVzdChQYXNzUmVmUHRyPElE
Qk9iamVjdFN0b3JlPik7CiAKICAgICBSZWZQdHI8SURCT2JqZWN0U3RvcmU+IG1fb2JqZWN0U3Rv
cmU7Ci0gICAgUmVmUHRyPElEQkFueT4gbV90aGlzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3Qu
Y3BwIGIvV2ViQ29yZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuY3BwCmluZGV4IGEy
NWZiMmJhNDliM2ZiMzlmMjQ5MmM4NjM4OWM1NTc0MmM1ODRmZDEuLjQ1YWUxYmQzMDA4NzFjYjQy
ZmNhMzM3OThjYzU2ZjRmOGZkODE2MTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRl
eGVkRGF0YWJhc2VSZXF1ZXN0LmNwcAorKysgYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERhdGFi
YXNlUmVxdWVzdC5jcHAKQEAgLTQ0LDEwICs0NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIElu
ZGV4ZWREYXRhYmFzZVJlcXVlc3Q6OkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoSW5kZXhlZERhdGFi
YXNlKiBpbmRleGVkRGF0YWJhc2UpCiAgICAgOiBtX2luZGV4ZWREYXRhYmFzZShpbmRleGVkRGF0
YWJhc2UpCiB7Ci0gICAgbV90aGlzID0gSURCQW55OjpjcmVhdGUoKTsKICAgICAvLyBXZSBwYXNz
IGEgcmVmZXJlbmNlIHRvIHRoaXMgb2JqZWN0IGJlZm9yZSBpdCBjYW4gYmUgYWRvcHRlZC4KICAg
ICByZWxheEFkb3B0aW9uUmVxdWlyZW1lbnQoKTsKLSAgICBtX3RoaXMtPnNldCh0aGlzKTsKIH0K
IAogSW5kZXhlZERhdGFiYXNlUmVxdWVzdDo6fkluZGV4ZWREYXRhYmFzZVJlcXVlc3QoKQpAQCAt
NjUsNyArNjMsNyBAQCBQYXNzUmVmUHRyPElEQlJlcXVlc3Q+IEluZGV4ZWREYXRhYmFzZVJlcXVl
c3Q6Om9wZW4oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udAogICAgIGlmICghZG9jdW1lbnQt
PmZyYW1lKCkpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgUmVmUHRyPElEQlJlcXVlc3Q+IHJl
cXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIG1fdGhpcyk7CisgICAgUmVmUHRy
PElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBJREJSZXF1ZXN0OjpjcmVhdGUoZG9jdW1lbnQsIElEQkFu
eTo6Y3JlYXRlKHRoaXMpKTsKICAgICBtX2luZGV4ZWREYXRhYmFzZS0+b3BlbihuYW1lLCBkZXNj
cmlwdGlvbiwgcmVxdWVzdCwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIGRvY3VtZW50LT5m
cmFtZSgpKTsKICAgICByZXR1cm4gcmVxdWVzdDsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Rv
cmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmggYi9XZWJDb3JlL3N0b3JhZ2UvSW5kZXhlZERh
dGFiYXNlUmVxdWVzdC5oCmluZGV4IDk4MDIzODA1M2Q4NTJhNDkzZmY4OTg2MjVhYjE0M2E1YzU5
MjJkOGEuLmY1MDVkOWQ3MmNkYWY2NjU0YjAzMmEwMjNjNWU2ZDcyNmU5ZDE3OGQgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvc3RvcmFnZS9JbmRleGVkRGF0YWJhc2VSZXF1ZXN0LmgKKysrIGIvV2ViQ29y
ZS9zdG9yYWdlL0luZGV4ZWREYXRhYmFzZVJlcXVlc3QuaApAQCAtNjQsNyArNjQsNiBAQCBwcml2
YXRlOgogICAgIEluZGV4ZWREYXRhYmFzZVJlcXVlc3QoSW5kZXhlZERhdGFiYXNlKik7CiAKICAg
ICBSZWZQdHI8SW5kZXhlZERhdGFiYXNlPiBtX2luZGV4ZWREYXRhYmFzZTsKLSAgICBSZWZQdHI8
SURCQW55PiBtX3RoaXM7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>