<?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>124053</bug_id>
          
          <creation_ts>2013-11-08 10:47:02 -0800</creation_ts>
          <short_desc>JSManagedValue should automatically call removeManagedReference:withOwner: upon dealloc</short_desc>
          <delta_ts>2014-02-06 16:25:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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="Mark Hahnenberg">mhahnenberg</reporter>
          <assigned_to name="Mark Hahnenberg">mhahnenberg</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>948729</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-08 10:47:02 -0800</bug_when>
    <thetext>This would make managing JSManagedValue lifetime much easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948747</commentid>
    <comment_count>1</comment_count>
      <attachid>216414</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-08 11:21:57 -0800</bug_when>
    <thetext>Created attachment 216414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948748</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-08 11:22:32 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=216414) [details]
&gt; Patch

Still needs API approval and availability macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948749</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-08 11:23:08 -0800</bug_when>
    <thetext>&lt;rdar://problem/15409543&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948761</commentid>
    <comment_count>4</comment_count>
      <attachid>216414</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2013-11-08 11:30:05 -0800</bug_when>
    <thetext>Comment on attachment 216414
Patch

What will this do to clients that already do the work to avoid the leak? Are they all using the existing api?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948763</commentid>
    <comment_count>5</comment_count>
      <attachid>216414</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-08 11:31:29 -0800</bug_when>
    <thetext>Comment on attachment 216414
Patch

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

r=me, pending those things.

&gt; Source/JavaScriptCore/API/JSManagedValue.h:58
&gt; ++ (JSManagedValue *)managedValueWithValue:(JSValue *)value andOwner:(id)owner;

It looks like the canonical ObjC API idiom is to leave off &quot;and&quot;. For example, -[NSString – initWithBytes:length:encoding:].</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>948766</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-08 11:32:49 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 216414 [details])
&gt; What will this do to clients that already do the work to avoid the leak? Are they all using the existing api?

It will work correctly. Calling -removeManagedReference:withOwner: will remove the owner from the JSManagedValue&apos;s m_owners so when it is dealloc-ed it won&apos;t be called again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950387</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-11-13 14:46:31 -0800</bug_when>
    <thetext>Can you post a new patch with availability macros added?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950447</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2013-11-13 16:58:45 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Can you post a new patch with availability macros added?

I&apos;m still not sure what macros to use. NS_AVAILABLE and friends will break the open source bots. Should I add a new WebKit availability macro for the current WebKit version using the new versioning scheme (e.g. 0x2100500 == 528.5.0) in JavaScriptCore/API/WebKitAvailability.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977446</commentid>
    <comment_count>9</comment_count>
      <attachid>223353</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 11:21:55 -0800</bug_when>
    <thetext>Created attachment 223353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977449</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 11:23:14 -0800</bug_when>
    <thetext>Attachment 223353 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:37:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:41:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977455</commentid>
    <comment_count>11</comment_count>
      <attachid>223356</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 11:35:54 -0800</bug_when>
    <thetext>Created attachment 223356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977457</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 11:37:56 -0800</bug_when>
    <thetext>Attachment 223356 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:38:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:42:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977491</commentid>
    <comment_count>13</comment_count>
      <attachid>223368</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 12:29:10 -0800</bug_when>
    <thetext>Created attachment 223368
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977492</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 12:31:51 -0800</bug_when>
    <thetext>Attachment 223368 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:49:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:53:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977510</commentid>
    <comment_count>15</comment_count>
      <attachid>223373</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 13:21:11 -0800</bug_when>
    <thetext>Created attachment 223373
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977511</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 13:22:26 -0800</bug_when>
    <thetext>Attachment 223373 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:49:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:53:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977532</commentid>
    <comment_count>17</comment_count>
      <attachid>223382</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 14:19:03 -0800</bug_when>
    <thetext>Created attachment 223382
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977533</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 14:21:28 -0800</bug_when>
    <thetext>Attachment 223382 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:49:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:53:  Missing spaces around =  [whitespace/operators] [4]
Total errors found: 2 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977535</commentid>
    <comment_count>19</comment_count>
      <attachid>223384</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-02-06 14:26:05 -0800</bug_when>
    <thetext>Created attachment 223384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977537</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 14:28:53 -0800</bug_when>
    <thetext>Attachment 223384 did not pass style-queue:


ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:49:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/WebKitAvailability.h:53:  Missing spaces around =  [whitespace/operators] [4]
ERROR: Source/JavaScriptCore/API/JSManagedValue.h:74:  Missing space after ,  [whitespace/comma] [3]
ERROR: Source/JavaScriptCore/API/JSManagedValue.h:76:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 4 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977581</commentid>
    <comment_count>21</comment_count>
      <attachid>223384</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2014-02-06 15:50:23 -0800</bug_when>
    <thetext>Comment on attachment 223384
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977604</commentid>
    <comment_count>22</comment_count>
      <attachid>223384</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 16:25:04 -0800</bug_when>
    <thetext>Comment on attachment 223384
Patch

Clearing flags on attachment: 223384

Committed r163574: &lt;http://trac.webkit.org/changeset/163574&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>977605</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-06 16:25:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216414</attachid>
            <date>2013-11-08 11:21:57 -0800</date>
            <delta_ts>2014-02-06 11:21:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20131108112157.patch</filename>
            <type>text/plain</type>
            <size>12932</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4OTMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBA
CisyMDEzLTExLTA4ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBKU01hbmFnZWRWYWx1ZXMgbm93IGtlZXAg
dHJhY2sgb2YgdGhlaXIgb3duZXJzIHNvIHRoYXQgd2hlbiB0aGVpciBkZWFsbG9jIG1ldGhvZCBp
cyBjYWxsZWQKKyAgICAgICAgdGhleSBjYW4gcmVtb3ZlIHRoZW1zZWx2ZXMgZnJvbSB0aGVpciBh
c3NvY2lhdGVkIEpTVmlydHVhbE1hY2hpbmUsIHRodXMgcmVkdWNpbmcgdGhlIAorICAgICAgICBi
b29ra2VlcGluZyB0aGF0IGNsaWVudHMgbXVzdCBkbyB0byBhdm9pZCBtZW1vcnkgbGVha3MuCisK
KyAgICAgICAgKiBBUEkvSlNNYW5hZ2VkVmFsdWUuaDoKKyAgICAgICAgKiBBUEkvSlNNYW5hZ2Vk
VmFsdWUubW06CisgICAgICAgICgrW0pTTWFuYWdlZFZhbHVlIG1hbmFnZWRWYWx1ZVdpdGhWYWx1
ZTphbmRPd25lcjpdKToKKyAgICAgICAgKC1bSlNNYW5hZ2VkVmFsdWUgaW5pdFdpdGhWYWx1ZTpd
KToKKyAgICAgICAgKC1bSlNNYW5hZ2VkVmFsdWUgZGVhbGxvY10pOgorICAgICAgICAoLVtKU01h
bmFnZWRWYWx1ZSBkaWRBZGRPd25lcjpdKToKKyAgICAgICAgKC1bSlNNYW5hZ2VkVmFsdWUgZGlk
UmVtb3ZlT3duZXI6XSk6CisgICAgICAgICogQVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaDog
QWRkZWQuCisgICAgICAgICogQVBJL0pTVmlydHVhbE1hY2hpbmUubW06CisgICAgICAgICgtW0pT
VmlydHVhbE1hY2hpbmUgYWRkTWFuYWdlZFJlZmVyZW5jZTp3aXRoT3duZXI6XSk6CisgICAgICAg
ICgtW0pTVmlydHVhbE1hY2hpbmUgcmVtb3ZlTWFuYWdlZFJlZmVyZW5jZTp3aXRoT3duZXI6XSk6
CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVogY2xp
Y2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorCiAyMDEzLTExLTA4ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAg
ICAgTWFwLmZvckVhY2ggY3Jhc2hlcyBvbiBkZWxldGVkIHZhbHVlcwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAkocmV2aXNpb24gMTU4OTIxKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5oCSh3b3JraW5nIGNvcHkp
CkBAIC01NSw2ICs1NSw3IEBAIE9CSkNfVklTSUJMRQogCiAvLyBDb252ZW5pZW5jZSBtZXRob2Qg
Zm9yIGNyZWF0aW5nIEpTTWFuYWdlZFZhbHVlcyBmcm9tIEpTVmFsdWVzLgogKyAoSlNNYW5hZ2Vk
VmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZTsKKysgKEpTTWFu
YWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihKU1ZhbHVlICopdmFsdWUgYW5kT3du
ZXI6KGlkKW93bmVyOwogCiAvLyBDcmVhdGUgYSBKU01hbmFnZWRWYWx1ZS4KIC0gKGlkKWluaXRX
aXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNNYW5hZ2VkVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU01hbmFnZWRWYWx1ZS5tbQkocmV2aXNpb24gMTU4OTIxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTY5LDYg
KzE2OSw3IEBAIHByaXZhdGU6CiBAaW1wbGVtZW50YXRpb24gSlNNYW5hZ2VkVmFsdWUgewogICAg
IEpTQzo6V2VhazxKU0M6OkpTR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKICAgICBXZWFr
VmFsdWVSZWYgbV93ZWFrVmFsdWU7CisgICAgTlNNYXBUYWJsZSAqbV9vd25lcnM7CiB9CiAKICsg
KEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihKU1ZhbHVlICopdmFsdWUK
QEAgLTE3Niw2ICsxNzcsMTMgQEAgKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRo
VmFsdQogICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVlXSBhdXRv
cmVsZWFzZV07CiB9CiAKKysgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVl
OihKU1ZhbHVlICopdmFsdWUgYW5kT3duZXI6KGlkKW93bmVyCit7CisgICAgSlNNYW5hZ2VkVmFs
dWUgKm1hbmFnZWRWYWx1ZSA9IFtbc2VsZiBhbGxvY10gaW5pdFdpdGhWYWx1ZTp2YWx1ZV07Cisg
ICAgW3ZhbHVlLmNvbnRleHQudmlydHVhbE1hY2hpbmUgYWRkTWFuYWdlZFJlZmVyZW5jZTptYW5h
Z2VkVmFsdWUgd2l0aE93bmVyOm93bmVyXTsKKyAgICByZXR1cm4gW21hbmFnZWRWYWx1ZSBhdXRv
cmVsZWFzZV07Cit9CisKIC0gKGlkKWluaXQKIHsKICAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhW
YWx1ZTpuaWxdOwpAQCAtMTk1LDYgKzIwMywxMCBAQCAtIChpZClpbml0V2l0aFZhbHVlOihKU1Zh
bHVlICopdmFsdWUKICAgICBKU0M6OldlYWs8SlNDOjpKU0dsb2JhbE9iamVjdD4gd2VhayhnbG9i
YWxPYmplY3QsIG1hbmFnZWRWYWx1ZUhhbmRsZU93bmVyKCksIHNlbGYpOwogICAgIG1fZ2xvYmFs
T2JqZWN0LnN3YXAod2Vhayk7CiAKKyAgICBOU1BvaW50ZXJGdW5jdGlvbnNPcHRpb25zIHdlYWtJ
RE9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlvbnNXZWFrTWVtb3J5IHwgTlNQb2ludGVyRnVuY3Rp
b25zT2JqZWN0UGVyc29uYWxpdHk7CisgICAgTlNQb2ludGVyRnVuY3Rpb25zT3B0aW9ucyBpbnRl
Z2VyT3B0aW9ucyA9IE5TUG9pbnRlckZ1bmN0aW9uc09wYXF1ZU1lbW9yeSB8IE5TUG9pbnRlckZ1
bmN0aW9uc0ludGVnZXJQZXJzb25hbGl0eTsKKyAgICBtX293bmVycyA9IFtbTlNNYXBUYWJsZSBh
bGxvY10gaW5pdFdpdGhLZXlPcHRpb25zOndlYWtJRE9wdGlvbnMgdmFsdWVPcHRpb25zOmludGVn
ZXJPcHRpb25zIGNhcGFjaXR5OjFdOworCiAgICAgSlNDOjpKU1ZhbHVlIGpzVmFsdWUgPSB0b0pT
KGV4ZWMsIFt2YWx1ZSBKU1ZhbHVlUmVmXSk7CiAgICAgaWYgKGpzVmFsdWUuaXNPYmplY3QoKSkK
ICAgICAgICAgbV93ZWFrVmFsdWUuc2V0T2JqZWN0KEpTQzo6anNDYXN0PEpTQzo6SlNPYmplY3Qq
Pihqc1ZhbHVlLmFzQ2VsbCgpKSwgc2VsZik7CkBAIC0yMDUsNiArMjE3LDQzIEBAIC0gKGlkKWlu
aXRXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZQogICAgIHJldHVybiBzZWxmOwogfQogCistICh2
b2lkKWRlYWxsb2MKK3sKKyAgICBKU1ZpcnR1YWxNYWNoaW5lICp2aXJ0dWFsTWFjaGluZSA9IFtb
W3NlbGYgdmFsdWVdIGNvbnRleHRdIHZpcnR1YWxNYWNoaW5lXTsKKyAgICBpZiAodmlydHVhbE1h
Y2hpbmUpIHsKKyAgICAgICAgZm9yIChpZCBvd25lciBpbiBbbV9vd25lcnMga2V5RW51bWVyYXRv
cl0pIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90
PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAgICAgICAgICAgIHdoaWxlIChjb3VudC0t
KQorICAgICAgICAgICAgICAgIFt2aXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNl
OnNlbGYgd2l0aE93bmVyOm93bmVyXTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFtzZWxmIGRp
c2Nvbm5lY3RWYWx1ZV07CisgICAgW21fb3duZXJzIHJlbGVhc2VdOworICAgIFtzdXBlciBkZWFs
bG9jXTsKK30KKworLSAodm9pZClkaWRBZGRPd25lcjooaWQpb3duZXIKK3sKKyAgICBzaXplX3Qg
Y291bnQgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4oTlNNYXBHZXQobV9vd25lcnMsIG93bmVy
KSk7CisgICAgTlNNYXBJbnNlcnQobV9vd25lcnMsIG93bmVyLCByZWludGVycHJldF9jYXN0PHZv
aWQqPihjb3VudCArIDEpKTsKK30KKworLSAodm9pZClkaWRSZW1vdmVPd25lcjooaWQpb3duZXIK
K3sKKyAgICBzaXplX3QgY291bnQgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4oTlNNYXBHZXQo
bV9vd25lcnMsIG93bmVyKSk7CisKKyAgICBpZiAoIWNvdW50KQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoY291bnQgPT0gMSkgeworICAgICAgICBOU01hcFJlbW92ZShtX293bmVycywgb3du
ZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTlNNYXBJbnNlcnQobV9vd25lcnMs
IG93bmVyLCByZWludGVycHJldF9jYXN0PHZvaWQqPihjb3VudCAtIDEpKTsKK30KKwogLSAoSlNW
YWx1ZSAqKXZhbHVlCiB7CiAgICAgaWYgKCFtX2dsb2JhbE9iamVjdCkKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oCShyZXZp
c2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUludGVy
bmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisjZGVmaW5lIEpTTWFuYWdlZFZhbHVlSW50ZXJu
YWxfaAorCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9KU0Jhc2UuaD4KKworI2lmIEpTQ19PQkpD
X0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgSlNNYW5hZ2VkVmFsdWUoSW50ZXJuYWwpCisKKy0g
KHZvaWQpZGlkQWRkT3duZXI6KGlkKW93bmVyOworLSAodm9pZClkaWRSZW1vdmVPd25lcjooaWQp
b3duZXI7CisKK0BlbmQKKworI2VuZGlmIC8vIEpTQ19PQkpDX0FQSV9FTkFCTEVECisKKyNlbmRp
ZiAvLyBKU01hbmFnZWRWYWx1ZUludGVybmFsX2gKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0JKHJldmlzaW9uIDE1ODkyMSkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzEsNiArMzEsNyBAQAogCiAjaW1wb3J0ICJBUElDYXN0LmgiCiAjaW1wb3J0ICJBUElTaGlt
cy5oIgorI2ltcG9ydCAiSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIgogI2ltcG9ydCAiSlNWaXJ0
dWFsTWFjaGluZS5oIgogI2ltcG9ydCAiSlNWaXJ0dWFsTWFjaGluZUludGVybmFsLmgiCiAjaW1w
b3J0ICJKU1dyYXBwZXJNYXAuaCIKQEAgLTE2MSw3ICsxNjIsMTIgQEAgLSAodm9pZClhZGRNYW5h
Z2VkUmVmZXJlbmNlOihpZClvYmplY3QgdwogICAgICAgICBbbV9leHRlcm5hbE9iamVjdEdyYXBo
IHNldE9iamVjdDpvd25lZE9iamVjdHMgZm9yS2V5Om93bmVyXTsKICAgICAgICAgW293bmVkT2Jq
ZWN0cyByZWxlYXNlXTsKICAgICB9Ci0gICAgTlNNYXBJbnNlcnQob3duZWRPYmplY3RzLCBvYmpl
Y3QsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01h
cEdldChvd25lZE9iamVjdHMsIG9iamVjdCkpICsgMSkpOworCisgICAgaWYgKFtvYmplY3QgaXNL
aW5kT2ZDbGFzczpbSlNNYW5hZ2VkVmFsdWUgY2xhc3NdXSkKKyAgICAgICAgW29iamVjdCBkaWRB
ZGRPd25lcjpvd25lcl07CisgICAgICAgIAorICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8c2l6ZV90PihOU01hcEdldChvd25lZE9iamVjdHMsIG9iamVjdCkpOworICAgIE5TTWFw
SW5zZXJ0KG93bmVkT2JqZWN0cywgb2JqZWN0LCByZWludGVycHJldF9jYXN0PHZvaWQqPihjb3Vu
dCArIDEpKTsKIH0KIAogLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplY3Qg
d2l0aE93bmVyOihpZClvd25lcgpAQCAtMTg3LDYgKzE5Myw5IEBAIC0gKHZvaWQpcmVtb3ZlTWFu
YWdlZFJlZmVyZW5jZTooaWQpb2JqZWMKICAgICBpZiAoY291bnQgPT0gMSkKICAgICAgICAgTlNN
YXBSZW1vdmUob3duZWRPYmplY3RzLCBvYmplY3QpOwogCisgICAgaWYgKFtvYmplY3QgaXNLaW5k
T2ZDbGFzczpbSlNNYW5hZ2VkVmFsdWUgY2xhc3NdXSkKKyAgICAgICAgW29iamVjdCBkaWRSZW1v
dmVPd25lcjpvd25lcl07CisKICAgICBpZiAoIVtvd25lZE9iamVjdHMgY291bnRdKQogICAgICAg
ICBbbV9leHRlcm5hbE9iamVjdEdyYXBoIHJlbW92ZU9iamVjdEZvcktleTpvd25lcl07CiB9Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lv
biAxNTg5MjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE2NiwxMCArMTY2LDYgQEAgLSAodm9pZCljbGljawogICAgIEpT
VmFsdWUgKmZ1bmN0aW9uID0gW21fb25jbGlja0hhbmRsZXIgdmFsdWVdOwogICAgIFtmdW5jdGlv
biBjYWxsV2l0aEFyZ3VtZW50czpbTlNBcnJheSBhcnJheV1dOwogfQotLSAodm9pZClkZWFsbG9j
Ci17Ci0gICAgW1ttX29uY2xpY2tIYW5kbGVyIHZhbHVlXS5jb250ZXh0LnZpcnR1YWxNYWNoaW5l
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6bV9vbmNsaWNrSGFuZGxlciB3aXRoT3duZXI6c2VsZl07
Ci19CiBAZW5kCiAKIEBjbGFzcyBUaW55RE9NTm9kZTsKQEAgLTIxNSwxOCArMjExLDYgQEAgLSAo
aWQpaW5pdAogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBO
U0VudW1lcmF0b3IgKmVudW1lcmF0b3IgPSBbbV9jaGlsZHJlbiBvYmplY3RFbnVtZXJhdG9yXTsK
LSAgICBpZCBuZXh0Q2hpbGQ7Ci0gICAgd2hpbGUgKChuZXh0Q2hpbGQgPSBbZW51bWVyYXRvciBu
ZXh0T2JqZWN0XSkpCi0gICAgICAgIFtbVGlueURPTU5vZGUgc2hhcmVkVmlydHVhbE1hY2hpbmVd
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6bmV4dENoaWxkIHdpdGhPd25lcjpzZWxmXTsKLQotI2lm
ICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQotICAgIFtzdXBlciBkZWFsbG9jXTsKLSNlbmRpZgot
fQotCiAtICh2b2lkKWFwcGVuZENoaWxkOihUaW55RE9NTm9kZSAqKWNoaWxkCiB7CiAgICAgW1tU
aW55RE9NTm9kZSBzaGFyZWRWaXJ0dWFsTWFjaGluZV0gYWRkTWFuYWdlZFJlZmVyZW5jZTpjaGls
ZCB3aXRoT3duZXI6c2VsZl07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTU4OTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTEyMDUsNiArMTIwNSw3
IEBACiAJCUMyRUFBM0ZBMTQ5QTgzNUUwMEZDRTExMiAvKiBDb3BpZWRTcGFjZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJFQUEzRjgxNDlBODMwODAw
RkNFMTEyIC8qIENvcGllZFNwYWNlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQzJFQUQyRkMxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9j
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJF
QUQyRkIxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyRjBGMkQxMTZCQUVFRTkwMDE4
N0MxOSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMkYwRjJEMDE2QkFFRUU5MDAxODdDMTkgLyogU3RydWN0dXJl
UmFyZURhdGEuY3BwICovOyB9OworCQlDMkYxRUQ0OTE4MkQ1QjYwMDBCQkQ1NzEgLyogSlNNYW5h
Z2VkVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzJGMUVENDgxODJENUI2MDAwQkJENTcxIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJu
YWwuaCAqLzsgfTsKIAkJQzJGQzlCRDMxNjY0NERGQjAwODEwRDMzIC8qIENvcGllZEJsb2NrSW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJG
QzlCRDIxNjY0NERGQjAwODEwRDMzIC8qIENvcGllZEJsb2NrSW5saW5lcy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyRkUxOEE0MTZCQUVDNDAw
MEFGMzA2MSAvKiBTdHJ1Y3R1cmVSYXJlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQzJGRTE4QTMxNkJBRUM0MDAwQUYzMDYxIC8qIFN0cnVjdHVy
ZVJhcmVEYXRhLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJRERGN0FCRDQxMUY2MEVEMjAwMTA4RTM2IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRERGN0FCRDIxMUY2
MEVEMjAwMTA4RTM2IC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yNDc5LDYgKzI0ODAsNyBAQAogCQlDMkVB
QTNGODE0OUE4MzA4MDBGQ0UxMTIgLyogQ29waWVkU3BhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gQ29waWVkU3BhY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzJFQUQyRkIxNEYwMjQ5ODAwQTRCMTU5IC8qIENvcGllZEFsbG9jYXRvci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3BpZWRBbGxvY2F0b3IuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzJGMEYyRDAxNkJBRUVFOTAwMTg3QzE5IC8qIFN0cnVjdHVyZVJh
cmVEYXRhLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cnVjdHVy
ZVJhcmVEYXRhLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzJGMUVENDgxODJE
NUI2MDAwQkJENTcxIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDMkZDOUJEMjE2NjQ0REZCMDA4MTBEMzMgLyogQ29waWVkQmxvY2tJ
bmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcGllZEJsb2NrSW5s
aW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMkZFMThBMzE2QkFFQzQwMDBB
RjMwNjEgLyogU3RydWN0dXJlUmFyZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RydWN0dXJlUmFyZURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RDIxMjAyMjgwQUQ0MzEwQzAwRUQ3OUI2IC8qIERhdGVDb252ZXJzaW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRlQ29udmVyc2lvbi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zMTMzLDYgKzMxMzUsNyBAQAogCQkJCUUxMjRBOEY2MEU1
NTU3NzUwMDMwOTFGMSAvKiBPcGFxdWVKU1N0cmluZy5jcHAgKi8sCiAJCQkJRTEyNEE4RjUwRTU1
NTc3NTAwMzA5MUYxIC8qIE9wYXF1ZUpTU3RyaW5nLmggKi8sCiAJCQkJNURFM0QwRjQwREQ4RERG
QjAwNDY4NzE0IC8qIFdlYktpdEF2YWlsYWJpbGl0eS5oICovLAorCQkJCUMyRjFFRDQ4MTgyRDVC
NjAwMEJCRDU3MSAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi8sCiAJCQkpOwogCQkJcGF0
aCA9IEFQSTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC00NzM4LDYgKzQ3NDEsNyBA
QAogCQkJCTBGMkI2NzBCMTdCNkI1QUIwMEE3QUUzRiAvKiBUeXBlZEFycmF5VHlwZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGNDI3NEIxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Ni5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZGNDI3NDExNThFQkU4RDAwNENCOUZGIC8qIHVkaXM4Nl9kZWNvZGUu
aCBpbiBIZWFkZXJzICovLAorCQkJCUMyRjFFRDQ5MTgyRDVCNjAwMEJCRDU3MSAvKiBKU01hbmFn
ZWRWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkY0Mjc0MjE1OEVCRTkxMDA0
Q0I5RkYgLyogdWRpczg2X2V4dGVybi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3NDQxNThF
QkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9pbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGNDI3
NDgxNThFQkU5MTAwNENCOUZGIC8qIHVkaXM4Nl9zeW4uaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223353</attachid>
            <date>2014-02-06 11:21:55 -0800</date>
            <delta_ts>2014-02-06 11:35:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206112153.patch</filename>
            <type>text/plain</type>
            <size>13457</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCw3IEBAIE9CSkNfVklTSUJMRQogQHJlc3VsdCBUaGUgbmV3
IEpTTWFuYWdlZFZhbHVlLgogKi8KICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0
aFZhbHVlOihKU1ZhbHVlICopdmFsdWU7CisrIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClvd25lciBOU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCk7CiAKIC8qIQogQG1ldGhvZApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjksNiArMTY5LDcgQEAgcHJpdmF0ZToKIEBpbXBsZW1lbnRhdGlvbiBKU01hbmFnZWRWYWx1ZSB7
CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogICAg
IFdlYWtWYWx1ZVJlZiBtX3dlYWtWYWx1ZTsKKyAgICBOU01hcFRhYmxlICptX293bmVyczsKIH0K
IAogKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2
YWx1ZQpAQCAtMTc2LDYgKzE3NywxMyBAQCArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1CiAgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWVd
IGF1dG9yZWxlYXNlXTsKIH0KIAorKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRo
VmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIKK3sKKyAgICBKU01hbmFn
ZWRWYWx1ZSAqbWFuYWdlZFZhbHVlID0gW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVl
XTsKKyAgICBbdmFsdWUuY29udGV4dC52aXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
Om1hbmFnZWRWYWx1ZSB3aXRoT3duZXI6b3duZXJdOworICAgIHJldHVybiBbbWFuYWdlZFZhbHVl
IGF1dG9yZWxlYXNlXTsKK30KKwogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKICAgICByZXR1cm4g
W3NlbGYgaW5pdFdpdGhWYWx1ZTpuaWxdOwpAQCAtMTk1LDYgKzIwMywxMCBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9i
YWxPYmplY3Q+IHdlYWsoZ2xvYmFsT2JqZWN0LCBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpLCBz
ZWxmKTsKICAgICBtX2dsb2JhbE9iamVjdC5zd2FwKHdlYWspOwogCisgICAgTlNQb2ludGVyRnVu
Y3Rpb25zT3B0aW9ucyB3ZWFrSURPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25zV2Vha01lbW9y
eSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBlcnNvbmFsaXR5OworICAgIE5TUG9pbnRlckZ1
bmN0aW9uc09wdGlvbnMgaW50ZWdlck9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlvbnNPcGFxdWVN
ZW1vcnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNJbnRlZ2VyUGVyc29uYWxpdHk7CisgICAgbV9vd25l
cnMgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRXaXRoS2V5T3B0aW9uczp3ZWFrSURPcHRpb25z
IHZhbHVlT3B0aW9uczppbnRlZ2VyT3B0aW9ucyBjYXBhY2l0eToxXTsKKwogICAgIEpTQzo6SlNW
YWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBbdmFsdWUgSlNWYWx1ZVJlZl0pOwogICAgIGlmIChq
c1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIG1fd2Vha1ZhbHVlLnNldE9iamVjdChKU0M6Ompz
Q2FzdDxKU0M6OkpTT2JqZWN0Kj4oanNWYWx1ZS5hc0NlbGwoKSksIHNlbGYpOwpAQCAtMjA1LDYg
KzIxNyw0MyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIEpTVmlydHVhbE1hY2hp
bmUgKnZpcnR1YWxNYWNoaW5lID0gW1tbc2VsZiB2YWx1ZV0gY29udGV4dF0gdmlydHVhbE1hY2hp
bmVdOworICAgIGlmICh2aXJ0dWFsTWFjaGluZSkgeworICAgICAgICBmb3IgKGlkIG93bmVyIGlu
IFttX293bmVycyBrZXlFbnVtZXJhdG9yXSkgeworICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0g
cmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG1fb3duZXJzLCBvd25lcikpOworICAg
ICAgICAgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgICAgICAgICAgW3ZpcnR1YWxNYWNoaW5l
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6c2VsZiB3aXRoT3duZXI6b3duZXJdOworICAgICAgICB9
CisgICAgfQorCisgICAgW3NlbGYgZGlzY29ubmVjdFZhbHVlXTsKKyAgICBbbV9vd25lcnMgcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWRpZEFkZE93bmVyOihp
ZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihO
U01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAgICBOU01hcEluc2VydChtX293bmVycywgb3du
ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOworfQorCistICh2b2lkKWRp
ZFJlbW92ZU93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKworICAgIGlmICghY291
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb3VudCA9PSAxKSB7CisgICAgICAgIE5T
TWFwUmVtb3ZlKG1fb3duZXJzLCBvd25lcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBOU01hcEluc2VydChtX293bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv
dW50IC0gMSkpOworfQorCiAtIChKU1ZhbHVlICopdmFsdWUKIHsKICAgICBpZiAoIW1fZ2xvYmFs
T2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUlu
dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFn
ZWRWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01hbmFnZWRWYWx1ZUludGVybmFsX2gKKyNkZWZp
bmUgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pT
QmFzZS5oPgorCisjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBKU01hbmFn
ZWRWYWx1ZShJbnRlcm5hbCkKKworLSAodm9pZClkaWRBZGRPd25lcjooaWQpb3duZXI7CistICh2
b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcjsKKworQGVuZAorCisjZW5kaWYgLy8gSlNDX09C
SkNfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWxfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQkocmV2
aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBvcnQgIkFQSUNh
c3QuaCIKICNpbXBvcnQgIkFQSVNoaW1zLmgiCisjaW1wb3J0ICJKU01hbmFnZWRWYWx1ZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxN
YWNoaW5lSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTV3JhcHBlck1hcC5oIgpAQCAtMTYxLDcgKzE2
MiwxMiBAQCAtICh2b2lkKWFkZE1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3CiAgICAgICAg
IFttX2V4dGVybmFsT2JqZWN0R3JhcGggc2V0T2JqZWN0Om93bmVkT2JqZWN0cyBmb3JLZXk6b3du
ZXJdOwogICAgICAgICBbb3duZWRPYmplY3RzIHJlbGVhc2VdOwogICAgIH0KLSAgICBOU01hcElu
c2VydChvd25lZE9iamVjdHMsIG9iamVjdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0cywgb2JqZWN0KSkgKyAxKSk7
CisKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11d
KQorICAgICAgICBbb2JqZWN0IGRpZEFkZE93bmVyOm93bmVyXTsKKyAgICAgICAgCisgICAgc2l6
ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0
cywgb2JqZWN0KSk7CisgICAgTlNNYXBJbnNlcnQob3duZWRPYmplY3RzLCBvYmplY3QsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOwogfQogCiAtICh2b2lkKXJlbW92ZU1hbmFn
ZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3aXRoT3duZXI6KGlkKW93bmVyCkBAIC0xODcsNiArMTkz
LDkgQEAgLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplYwogICAgIGlmIChj
b3VudCA9PSAxKQogICAgICAgICBOU01hcFJlbW92ZShvd25lZE9iamVjdHMsIG9iamVjdCk7CiAK
KyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11dKQor
ICAgICAgICBbb2JqZWN0IGRpZFJlbW92ZU93bmVyOm93bmVyXTsKKwogICAgIGlmICghW293bmVk
T2JqZWN0cyBjb3VudF0pCiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGggcmVtb3ZlT2Jq
ZWN0Rm9yS2V5Om93bmVyXTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2Vi
S2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzMs
NCArMzMsMTIgQEAKICNkZWZpbmUgQ0ZfQVZBSUxBQkxFKF9tYWMsIF9pb3MpCiAjZW5kaWYKIAor
I2lmICFkZWZpbmVkKF9fTlNpXzEwXzEwKQorI2RlZmluZSBfX05TaV8xMF8xMCBpbnRyb2R1Y2Vk
PTEwLjEwCisjZW5kaWYKKworI2lmICFkZWZpbmVkKF9fTlNpXzhfMCkKKyNkZWZpbmUgX19OU2lf
OF8wIGludHJvZHVjZWQ9OC4wCisjZW5kaWYKKwogI2VuZGlmIC8qIF9fV2ViS2l0QXZhaWxhYmls
aXR5X18gKi8KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGku
bW0JKHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5tbQkod29ya2luZyBjb3B5KQpAQCAtMTcyLDEzICsxNzIsNiBAQCAtICh2b2lkKWNs
aWNrCiAgICAgSlNWYWx1ZSAqZnVuY3Rpb24gPSBbbV9vbmNsaWNrSGFuZGxlciB2YWx1ZV07CiAg
ICAgW2Z1bmN0aW9uIGNhbGxXaXRoQXJndW1lbnRzOltOU0FycmF5IGFycmF5XV07CiB9Ci0tICh2
b2lkKWRlYWxsb2MKLXsKLSAgICBbW21fb25jbGlja0hhbmRsZXIgdmFsdWVdLmNvbnRleHQudmly
dHVhbE1hY2hpbmUgcmVtb3ZlTWFuYWdlZFJlZmVyZW5jZTptX29uY2xpY2tIYW5kbGVyIHdpdGhP
d25lcjpzZWxmXTsKLSNpZiAhX19oYXNfZmVhdHVyZShvYmpjX2FyYykKLSAgICBbc3VwZXIgZGVh
bGxvY107Ci0jZW5kaWYKLX0KIEBlbmQKIAogQGNsYXNzIFRpbnlET01Ob2RlOwpAQCAtMjEzLDE4
ICsyMDYsNiBAQCAtIChpZClpbml0V2l0aFZpcnR1YWxNYWNoaW5lOihKU1ZpcnR1YWxNCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKLS0gKHZvaWQpZGVhbGxvYwotewotICAgIGZvciAoVGlueURPTU5v
ZGUgKmNoaWxkIGluIG1fY2hpbGRyZW4pCi0gICAgICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5l
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6Y2hpbGQgd2l0aE93bmVyOnNlbGZdOwotCi0jaWYgIV9f
aGFzX2ZlYXR1cmUob2JqY19hcmMpCi0gICAgW21fY2hpbGRyZW4gcmVsZWFzZV07Ci0gICAgW21f
c2hhcmVkVmlydHVhbE1hY2hpbmUgcmVsZWFzZV07Ci0gICAgW3N1cGVyIGRlYWxsb2NdOwotI2Vu
ZGlmCi19Ci0KIC0gKHZvaWQpYXBwZW5kQ2hpbGQ6KFRpbnlET01Ob2RlICopY2hpbGQKIHsKICAg
ICBbbV9zaGFyZWRWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNlOmNoaWxkIHdpdGhP
d25lcjpzZWxmXTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAx
NjM1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzQzLDYgKzc0Myw3IEBACiAJCTJB
MzQzRjc2MThBMTc0OEIwMDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTM0M0Y3NDE4QTE3NDhCMDAzOUIw
ODUgLyogR0NTZWdtZW50ZWRBcnJheS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTJBMzQzRjc4MThBMTc0OUQwMDM5QjA4NSAvKiBHQ1NlZ21lbnRl
ZEFycmF5SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkEzNDNGNzcxOEExNzQ5RDAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXlJbmxpbmVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkE0
OEQxOTExNzcyMzY1QjAwQzY1QTVGIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMTFCNTc0MTc2QTIyNEQwMDBF
MkEyMyAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggKi87IH07CisJCTJBNEJCN0YzMThBNDExNzkw
MDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTRCQjdGMjE4QTQxMTc5MDA4QTBGQ0QgLyogSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovOyB9OwogCQkyQTRFQzkwQjE4NjBENkMyMDA5NEY3ODIg
LyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJBNEVDOTA5MTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJC
dWZmZXIuY3BwICovOyB9OwogCQkyQTRFQzkwQzE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJy
aWVyQnVmZmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQTRFQzkwQTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkE2ODI5NUIxODc1
RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJhcnJpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBNjgyOTVBMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5
V3JpdGVCYXJyaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTIxMzEsNiArMjEzMiw3IEBACiAJCTJBMjgyNUNGMTgzNDFGMkQwMDg3RkJBOSAv
KiBEZWxheWVkUmVsZWFzZVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IERlbGF5ZWRSZWxlYXNlU2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkEz
NDNGNzQxOEExNzQ4QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gR0NTZWdtZW50ZWRBcnJheS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkyQTM0M0Y3NzE4QTE3NDlEMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJh
eUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR0NTZWdtZW50ZWRB
cnJheUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkE0QkI3RjIxOEE0
MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQTRFQzkwOTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVy
QnVmZmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdyaXRlQmFy
cmllckJ1ZmZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBNEVDOTBBMTg2
MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV3JpdGVCYXJyaWVyQnVmZmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTJBNjgyOTVBMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvcHlXcml0ZUJhcnJpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM0MDYsNiArMzQwOCw3IEBACiAJCTE0MzJFQkQ3
MEEzNENBRDQwMDcxN0I5RiAvKiBBUEkgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAorCQkJCTJBNEJCN0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1
ZUludGVybmFsLmggKi8sCiAJCQkJQzIxMUI1NzQxNzZBMjI0RDAwMEUyQTIzIC8qIEFQSUNhbGxi
YWNrRnVuY3Rpb24uaCAqLywKIAkJCQkxNDgyQjc4QTBBNDMwNUFCMDA1MTdDRkMgLyogQVBJQ2Fz
dC5oICovLAogCQkJCTg2NUY0MDg3MTBFN0Q1NjMwMDk0NzM2MSAvKiBBUElTaGltcy5oICovLApA
QCAtNDc2Myw2ICs0NzY2LDcgQEAKIAkJCQlBN0Q5QTI5NTE3QTBCQzc0MDBFRTI2MTggLyogREZH
QXRUYWlsQWJzdHJhY3RTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3MTRDQTUxNkVBOTJG
MjAwRjNFQkVCIC8qIERGR0JhY2t3YXJkc1Byb3BhZ2F0aW9uUGhhc2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNjIwMTc2MTQzRkNEM0IwMDY4Qjc3QyAvKiBERkdCYXNpY0Jsb2NrLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyQTRCQjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGQjkyMUExNkQwMkVDNTAwNTVBNURCIC8q
IERGR0Jhc2ljQmxvY2tJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzBCMDgzMzE3QTBC
NzlCMDBEQUYxNEIgLyogREZHQmluYXJ5U3dpdGNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBN0Q4
OUNGNDE3QTBCOENDMDA3NzNBRDggLyogREZHQmxvY2tJbnNlcnRpb25TZXQuaCBpbiBIZWFkZXJz
ICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223356</attachid>
            <date>2014-02-06 11:35:54 -0800</date>
            <delta_ts>2014-02-06 12:29:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206113552.patch</filename>
            <type>text/plain</type>
            <size>13542</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCw3IEBAIE9CSkNfVklTSUJMRQogQHJlc3VsdCBUaGUgbmV3
IEpTTWFuYWdlZFZhbHVlLgogKi8KICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0
aFZhbHVlOihKU1ZhbHVlICopdmFsdWU7CisrIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClvd25lciBOU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCk7CiAKIC8qIQogQG1ldGhvZApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjksNiArMTY5LDcgQEAgcHJpdmF0ZToKIEBpbXBsZW1lbnRhdGlvbiBKU01hbmFnZWRWYWx1ZSB7
CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogICAg
IFdlYWtWYWx1ZVJlZiBtX3dlYWtWYWx1ZTsKKyAgICBOU01hcFRhYmxlICptX293bmVyczsKIH0K
IAogKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2
YWx1ZQpAQCAtMTc2LDYgKzE3NywxMyBAQCArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1CiAgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWVd
IGF1dG9yZWxlYXNlXTsKIH0KIAorKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRo
VmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIKK3sKKyAgICBKU01hbmFn
ZWRWYWx1ZSAqbWFuYWdlZFZhbHVlID0gW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVl
XTsKKyAgICBbdmFsdWUuY29udGV4dC52aXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
Om1hbmFnZWRWYWx1ZSB3aXRoT3duZXI6b3duZXJdOworICAgIHJldHVybiBbbWFuYWdlZFZhbHVl
IGF1dG9yZWxlYXNlXTsKK30KKwogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKICAgICByZXR1cm4g
W3NlbGYgaW5pdFdpdGhWYWx1ZTpuaWxdOwpAQCAtMTk1LDYgKzIwMywxMCBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9i
YWxPYmplY3Q+IHdlYWsoZ2xvYmFsT2JqZWN0LCBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpLCBz
ZWxmKTsKICAgICBtX2dsb2JhbE9iamVjdC5zd2FwKHdlYWspOwogCisgICAgTlNQb2ludGVyRnVu
Y3Rpb25zT3B0aW9ucyB3ZWFrSURPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25zV2Vha01lbW9y
eSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBlcnNvbmFsaXR5OworICAgIE5TUG9pbnRlckZ1
bmN0aW9uc09wdGlvbnMgaW50ZWdlck9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlvbnNPcGFxdWVN
ZW1vcnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNJbnRlZ2VyUGVyc29uYWxpdHk7CisgICAgbV9vd25l
cnMgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRXaXRoS2V5T3B0aW9uczp3ZWFrSURPcHRpb25z
IHZhbHVlT3B0aW9uczppbnRlZ2VyT3B0aW9ucyBjYXBhY2l0eToxXTsKKwogICAgIEpTQzo6SlNW
YWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBbdmFsdWUgSlNWYWx1ZVJlZl0pOwogICAgIGlmIChq
c1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIG1fd2Vha1ZhbHVlLnNldE9iamVjdChKU0M6Ompz
Q2FzdDxKU0M6OkpTT2JqZWN0Kj4oanNWYWx1ZS5hc0NlbGwoKSksIHNlbGYpOwpAQCAtMjA1LDYg
KzIxNyw0MyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIEpTVmlydHVhbE1hY2hp
bmUgKnZpcnR1YWxNYWNoaW5lID0gW1tbc2VsZiB2YWx1ZV0gY29udGV4dF0gdmlydHVhbE1hY2hp
bmVdOworICAgIGlmICh2aXJ0dWFsTWFjaGluZSkgeworICAgICAgICBmb3IgKGlkIG93bmVyIGlu
IFttX293bmVycyBrZXlFbnVtZXJhdG9yXSkgeworICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0g
cmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG1fb3duZXJzLCBvd25lcikpOworICAg
ICAgICAgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgICAgICAgICAgW3ZpcnR1YWxNYWNoaW5l
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6c2VsZiB3aXRoT3duZXI6b3duZXJdOworICAgICAgICB9
CisgICAgfQorCisgICAgW3NlbGYgZGlzY29ubmVjdFZhbHVlXTsKKyAgICBbbV9vd25lcnMgcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWRpZEFkZE93bmVyOihp
ZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihO
U01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAgICBOU01hcEluc2VydChtX293bmVycywgb3du
ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOworfQorCistICh2b2lkKWRp
ZFJlbW92ZU93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKworICAgIGlmICghY291
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb3VudCA9PSAxKSB7CisgICAgICAgIE5T
TWFwUmVtb3ZlKG1fb3duZXJzLCBvd25lcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBOU01hcEluc2VydChtX293bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv
dW50IC0gMSkpOworfQorCiAtIChKU1ZhbHVlICopdmFsdWUKIHsKICAgICBpZiAoIW1fZ2xvYmFs
T2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUlu
dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFn
ZWRWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01hbmFnZWRWYWx1ZUludGVybmFsX2gKKyNkZWZp
bmUgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pT
QmFzZS5oPgorCisjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBKU01hbmFn
ZWRWYWx1ZShJbnRlcm5hbCkKKworLSAodm9pZClkaWRBZGRPd25lcjooaWQpb3duZXI7CistICh2
b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcjsKKworQGVuZAorCisjZW5kaWYgLy8gSlNDX09C
SkNfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWxfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQkocmV2
aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBvcnQgIkFQSUNh
c3QuaCIKICNpbXBvcnQgIkFQSVNoaW1zLmgiCisjaW1wb3J0ICJKU01hbmFnZWRWYWx1ZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxN
YWNoaW5lSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTV3JhcHBlck1hcC5oIgpAQCAtMTYxLDcgKzE2
MiwxMiBAQCAtICh2b2lkKWFkZE1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3CiAgICAgICAg
IFttX2V4dGVybmFsT2JqZWN0R3JhcGggc2V0T2JqZWN0Om93bmVkT2JqZWN0cyBmb3JLZXk6b3du
ZXJdOwogICAgICAgICBbb3duZWRPYmplY3RzIHJlbGVhc2VdOwogICAgIH0KLSAgICBOU01hcElu
c2VydChvd25lZE9iamVjdHMsIG9iamVjdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0cywgb2JqZWN0KSkgKyAxKSk7
CisKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11d
KQorICAgICAgICBbb2JqZWN0IGRpZEFkZE93bmVyOm93bmVyXTsKKyAgICAgICAgCisgICAgc2l6
ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0
cywgb2JqZWN0KSk7CisgICAgTlNNYXBJbnNlcnQob3duZWRPYmplY3RzLCBvYmplY3QsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOwogfQogCiAtICh2b2lkKXJlbW92ZU1hbmFn
ZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3aXRoT3duZXI6KGlkKW93bmVyCkBAIC0xODcsNiArMTkz
LDkgQEAgLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplYwogICAgIGlmIChj
b3VudCA9PSAxKQogICAgICAgICBOU01hcFJlbW92ZShvd25lZE9iamVjdHMsIG9iamVjdCk7CiAK
KyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11dKQor
ICAgICAgICBbb2JqZWN0IGRpZFJlbW92ZU93bmVyOm93bmVyXTsKKwogICAgIGlmICghW293bmVk
T2JqZWN0cyBjb3VudF0pCiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGggcmVtb3ZlT2Jq
ZWN0Rm9yS2V5Om93bmVyXTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2Vi
S2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NiArMzEsMTUgQEAKICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9Db3JlRm91bmRhdGlvbi5oPgog
I2Vsc2UKICNkZWZpbmUgQ0ZfQVZBSUxBQkxFKF9tYWMsIF9pb3MpCisjZGVmaW5lIE5TX0FWQUlM
QUJMRShfbWFjLCBfaW9zKQorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfX05TaV8xMF8xMCkKKyNk
ZWZpbmUgX19OU2lfMTBfMTAgaW50cm9kdWNlZD0xMC4xMAorI2VuZGlmCisKKyNpZiAhZGVmaW5l
ZChfX05TaV84XzApCisjZGVmaW5lIF9fTlNpXzhfMCBpbnRyb2R1Y2VkPTguMAogI2VuZGlmCiAK
ICNlbmRpZiAvKiBfX1dlYktpdEF2YWlsYWJpbGl0eV9fICovCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAg
LTE3MiwxMyArMTcyLDYgQEAgLSAodm9pZCljbGljawogICAgIEpTVmFsdWUgKmZ1bmN0aW9uID0g
W21fb25jbGlja0hhbmRsZXIgdmFsdWVdOwogICAgIFtmdW5jdGlvbiBjYWxsV2l0aEFyZ3VtZW50
czpbTlNBcnJheSBhcnJheV1dOwogfQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW1ttX29uY2xp
Y2tIYW5kbGVyIHZhbHVlXS5jb250ZXh0LnZpcnR1YWxNYWNoaW5lIHJlbW92ZU1hbmFnZWRSZWZl
cmVuY2U6bV9vbmNsaWNrSGFuZGxlciB3aXRoT3duZXI6c2VsZl07Ci0jaWYgIV9faGFzX2ZlYXR1
cmUob2JqY19hcmMpCi0gICAgW3N1cGVyIGRlYWxsb2NdOwotI2VuZGlmCi19CiBAZW5kCiAKIEBj
bGFzcyBUaW55RE9NTm9kZTsKQEAgLTIxMywxOCArMjA2LDYgQEAgLSAoaWQpaW5pdFdpdGhWaXJ0
dWFsTWFjaGluZTooSlNWaXJ0dWFsTQogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKWRl
YWxsb2MKLXsKLSAgICBmb3IgKFRpbnlET01Ob2RlICpjaGlsZCBpbiBtX2NoaWxkcmVuKQotICAg
ICAgICBbbV9zaGFyZWRWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOmNoaWxk
IHdpdGhPd25lcjpzZWxmXTsKLQotI2lmICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQotICAgIFtt
X2NoaWxkcmVuIHJlbGVhc2VdOwotICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5lIHJlbGVhc2Vd
OwotICAgIFtzdXBlciBkZWFsbG9jXTsKLSNlbmRpZgotfQotCiAtICh2b2lkKWFwcGVuZENoaWxk
OihUaW55RE9NTm9kZSAqKWNoaWxkCiB7CiAgICAgW21fc2hhcmVkVmlydHVhbE1hY2hpbmUgYWRk
TWFuYWdlZFJlZmVyZW5jZTpjaGlsZCB3aXRoT3duZXI6c2VsZl07CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTc0Myw2ICs3NDMsNyBAQAogCQkyQTM0M0Y3NjE4QTE3NDhCMDAzOUIwODUgLyogR0NT
ZWdtZW50ZWRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkEzNDNGNzQxOEExNzQ4QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXkuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQTM0M0Y3ODE4
QTE3NDlEMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBMzQzRjc3MThBMTc0OUQwMDM5QjA4
NSAvKiBHQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBNDhEMTkxMTc3MjM2NUIwMEM2NUE1RiAvKiBBUElD
YWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjExQjU3NDE3NkEyMjREMDAwRTJBMjMgLyogQVBJQ2FsbGJhY2tGdW5jdGlvbi5o
ICovOyB9OworCQkyQTRCQjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0
QkI3RjIxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLzsgfTsK
IAkJMkE0RUM5MEIxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTRFQzkwOTE4NjBE
NkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCAqLzsgfTsKIAkJMkE0RUM5MEMx
ODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0RUM5MEExODYwRDZDMjAwOTRGNzgyIC8q
IFdyaXRlQmFycmllckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJy
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTY4
Mjk1QTE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMTMxLDYgKzIxMzIsNyBAQAog
CQkyQTI4MjVDRjE4MzQxRjJEMDA4N0ZCQTkgLyogRGVsYXllZFJlbGVhc2VTY29wZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWxheWVkUmVsZWFzZVNjb3BlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBMzQzRjc0MThBMTc0OEIwMDM5QjA4NSAvKiBHQ1Nl
Z21lbnRlZEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDU2VnbWVu
dGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkEzNDNGNzcxOEExNzQ5
RDAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJBNEJCN0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1
ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFuYWdlZFZh
bHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE0RUM5MDkxODYw
RDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQTRFQzkwQTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVy
QnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRlQmFycmllckJ1
ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTY4Mjk1QTE4NzVGODA1MDBC
NkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDb3B5V3JpdGVCYXJyaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0z
NDA2LDYgKzM0MDgsNyBAQAogCQkxNDMyRUJENzBBMzRDQUQ0MDA3MTdCOUYgLyogQVBJICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyQTRCQjdGMjE4QTQx
MTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovLAogCQkJCUMyMTFCNTc0
MTc2QTIyNEQwMDBFMkEyMyAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggKi8sCiAJCQkJMTQ4MkI3
OEEwQTQzMDVBQjAwNTE3Q0ZDIC8qIEFQSUNhc3QuaCAqLywKIAkJCQk4NjVGNDA4NzEwRTdENTYz
MDA5NDczNjEgLyogQVBJU2hpbXMuaCAqLywKQEAgLTQ3NjMsNiArNDc2Niw3IEBACiAJCQkJQTdE
OUEyOTUxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9w
YWdhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3
N0MgLyogREZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkE0QkI3RjMxOEE0MTE3
OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRkI5MjFBMTZEMDJFQzUwMDU1QTVEQiAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTcwQjA4MzMxN0EwQjc5QjAwREFGMTRCIC8qIERGR0JpbmFyeVN3aXRj
aC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Js
b2NrSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223368</attachid>
            <date>2014-02-06 12:29:10 -0800</date>
            <delta_ts>2014-02-06 13:21:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206122905.patch</filename>
            <type>text/plain</type>
            <size>13863</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCw3IEBAIE9CSkNfVklTSUJMRQogQHJlc3VsdCBUaGUgbmV3
IEpTTWFuYWdlZFZhbHVlLgogKi8KICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0
aFZhbHVlOihKU1ZhbHVlICopdmFsdWU7CisrIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClvd25lciBOU19BVkFJTEFC
TEUoMTBfMTAsIDhfMCk7CiAKIC8qIQogQG1ldGhvZApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjksNiArMTY5LDcgQEAgcHJpdmF0ZToKIEBpbXBsZW1lbnRhdGlvbiBKU01hbmFnZWRWYWx1ZSB7
CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogICAg
IFdlYWtWYWx1ZVJlZiBtX3dlYWtWYWx1ZTsKKyAgICBOU01hcFRhYmxlICptX293bmVyczsKIH0K
IAogKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2
YWx1ZQpAQCAtMTc2LDYgKzE3NywxMyBAQCArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1CiAgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWVd
IGF1dG9yZWxlYXNlXTsKIH0KIAorKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRo
VmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIKK3sKKyAgICBKU01hbmFn
ZWRWYWx1ZSAqbWFuYWdlZFZhbHVlID0gW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVl
XTsKKyAgICBbdmFsdWUuY29udGV4dC52aXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
Om1hbmFnZWRWYWx1ZSB3aXRoT3duZXI6b3duZXJdOworICAgIHJldHVybiBbbWFuYWdlZFZhbHVl
IGF1dG9yZWxlYXNlXTsKK30KKwogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKICAgICByZXR1cm4g
W3NlbGYgaW5pdFdpdGhWYWx1ZTpuaWxdOwpAQCAtMTk1LDYgKzIwMywxMCBAQCAtIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9i
YWxPYmplY3Q+IHdlYWsoZ2xvYmFsT2JqZWN0LCBtYW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpLCBz
ZWxmKTsKICAgICBtX2dsb2JhbE9iamVjdC5zd2FwKHdlYWspOwogCisgICAgTlNQb2ludGVyRnVu
Y3Rpb25zT3B0aW9ucyB3ZWFrSURPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25zV2Vha01lbW9y
eSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBlcnNvbmFsaXR5OworICAgIE5TUG9pbnRlckZ1
bmN0aW9uc09wdGlvbnMgaW50ZWdlck9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlvbnNPcGFxdWVN
ZW1vcnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNJbnRlZ2VyUGVyc29uYWxpdHk7CisgICAgbV9vd25l
cnMgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRXaXRoS2V5T3B0aW9uczp3ZWFrSURPcHRpb25z
IHZhbHVlT3B0aW9uczppbnRlZ2VyT3B0aW9ucyBjYXBhY2l0eToxXTsKKwogICAgIEpTQzo6SlNW
YWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBbdmFsdWUgSlNWYWx1ZVJlZl0pOwogICAgIGlmIChq
c1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIG1fd2Vha1ZhbHVlLnNldE9iamVjdChKU0M6Ompz
Q2FzdDxKU0M6OkpTT2JqZWN0Kj4oanNWYWx1ZS5hc0NlbGwoKSksIHNlbGYpOwpAQCAtMjA1LDYg
KzIxNyw0MyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIEpTVmlydHVhbE1hY2hp
bmUgKnZpcnR1YWxNYWNoaW5lID0gW1tbc2VsZiB2YWx1ZV0gY29udGV4dF0gdmlydHVhbE1hY2hp
bmVdOworICAgIGlmICh2aXJ0dWFsTWFjaGluZSkgeworICAgICAgICBmb3IgKGlkIG93bmVyIGlu
IFttX293bmVycyBrZXlFbnVtZXJhdG9yXSkgeworICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0g
cmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG1fb3duZXJzLCBvd25lcikpOworICAg
ICAgICAgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgICAgICAgICAgW3ZpcnR1YWxNYWNoaW5l
IHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6c2VsZiB3aXRoT3duZXI6b3duZXJdOworICAgICAgICB9
CisgICAgfQorCisgICAgW3NlbGYgZGlzY29ubmVjdFZhbHVlXTsKKyAgICBbbV9vd25lcnMgcmVs
ZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWRpZEFkZE93bmVyOihp
ZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihO
U01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAgICBOU01hcEluc2VydChtX293bmVycywgb3du
ZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOworfQorCistICh2b2lkKWRp
ZFJlbW92ZU93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0
X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKworICAgIGlmICghY291
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb3VudCA9PSAxKSB7CisgICAgICAgIE5T
TWFwUmVtb3ZlKG1fb3duZXJzLCBvd25lcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBOU01hcEluc2VydChtX293bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv
dW50IC0gMSkpOworfQorCiAtIChKU1ZhbHVlICopdmFsdWUKIHsKICAgICBpZiAoIW1fZ2xvYmFs
T2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUlu
dGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFn
ZWRWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
QVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQy
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01hbmFnZWRWYWx1ZUludGVybmFsX2gKKyNkZWZp
bmUgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pT
QmFzZS5oPgorCisjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKKworQGludGVyZmFjZSBKU01hbmFn
ZWRWYWx1ZShJbnRlcm5hbCkKKworLSAodm9pZClkaWRBZGRPd25lcjooaWQpb3duZXI7CistICh2
b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcjsKKworQGVuZAorCisjZW5kaWYgLy8gSlNDX09C
SkNfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWxfaApJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQkocmV2
aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNo
aW5lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBvcnQgIkFQSUNh
c3QuaCIKICNpbXBvcnQgIkFQSVNoaW1zLmgiCisjaW1wb3J0ICJKU01hbmFnZWRWYWx1ZUludGVy
bmFsLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxN
YWNoaW5lSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTV3JhcHBlck1hcC5oIgpAQCAtMTYxLDcgKzE2
MiwxMiBAQCAtICh2b2lkKWFkZE1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3CiAgICAgICAg
IFttX2V4dGVybmFsT2JqZWN0R3JhcGggc2V0T2JqZWN0Om93bmVkT2JqZWN0cyBmb3JLZXk6b3du
ZXJdOwogICAgICAgICBbb3duZWRPYmplY3RzIHJlbGVhc2VdOwogICAgIH0KLSAgICBOU01hcElu
c2VydChvd25lZE9iamVjdHMsIG9iamVjdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRl
cnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0cywgb2JqZWN0KSkgKyAxKSk7
CisKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11d
KQorICAgICAgICBbb2JqZWN0IGRpZEFkZE93bmVyOm93bmVyXTsKKyAgICAgICAgCisgICAgc2l6
ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0
cywgb2JqZWN0KSk7CisgICAgTlNNYXBJbnNlcnQob3duZWRPYmplY3RzLCBvYmplY3QsIHJlaW50
ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOwogfQogCiAtICh2b2lkKXJlbW92ZU1hbmFn
ZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3aXRoT3duZXI6KGlkKW93bmVyCkBAIC0xODcsNiArMTkz
LDkgQEAgLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplYwogICAgIGlmIChj
b3VudCA9PSAxKQogICAgICAgICBOU01hcFJlbW92ZShvd25lZE9iamVjdHMsIG9iamVjdCk7CiAK
KyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11dKQor
ICAgICAgICBbb2JqZWN0IGRpZFJlbW92ZU93bmVyOm93bmVyXTsKKwogICAgIGlmICghW293bmVk
T2JqZWN0cyBjb3VudF0pCiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGggcmVtb3ZlT2Jq
ZWN0Rm9yS2V5Om93bmVyXTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2Vi
S2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcs
MTAgKzI3LDMwIEBACiAjZGVmaW5lIF9fV2ViS2l0QXZhaWxhYmlsaXR5X18KIAogI2lmZGVmIF9f
QVBQTEVfXworCiAjaW5jbHVkZSA8QXZhaWxhYmlsaXR5TWFjcm9zLmg+CiAjaW5jbHVkZSA8Q29y
ZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNlbHNlCisKKyNpZiAhZGVmaW5lZChOU19B
VkFJTEFCTEUpCisjZGVmaW5lIE5TX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2VuZGlmIC8vICFk
ZWZpbmVkKE5TX0FWQUlMQUJMRSkKKyNpZiAhZGVmaW5lZChDRl9BVkFJTEFCTEUpCisjZGVmaW5l
IENGX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2VuZGlmIC8vICFkZWZpbmVkKENGX0FWQUlMQUJM
RSkKKworI2Vsc2UgLy8gX19BUFBMRV9fCisKICNkZWZpbmUgQ0ZfQVZBSUxBQkxFKF9tYWMsIF9p
b3MpCisjZGVmaW5lIE5TX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorCisjZW5kaWYgLy8gX19BUFBM
RV9fCisKKyNpZiAhZGVmaW5lZChfX05TaV8xMF8xMCkKKyNkZWZpbmUgX19OU2lfMTBfMTAgaW50
cm9kdWNlZD0xMC4xMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfX05TaV84XzApCisjZGVmaW5l
IF9fTlNpXzhfMCBpbnRyb2R1Y2VkPTguMAogI2VuZGlmCiAKICNlbmRpZiAvKiBfX1dlYktpdEF2
YWlsYWJpbGl0eV9fICovCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rl
c3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MiwxMyArMTcyLDYgQEAgLSAo
dm9pZCljbGljawogICAgIEpTVmFsdWUgKmZ1bmN0aW9uID0gW21fb25jbGlja0hhbmRsZXIgdmFs
dWVdOwogICAgIFtmdW5jdGlvbiBjYWxsV2l0aEFyZ3VtZW50czpbTlNBcnJheSBhcnJheV1dOwog
fQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW1ttX29uY2xpY2tIYW5kbGVyIHZhbHVlXS5jb250
ZXh0LnZpcnR1YWxNYWNoaW5lIHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6bV9vbmNsaWNrSGFuZGxl
ciB3aXRoT3duZXI6c2VsZl07Ci0jaWYgIV9faGFzX2ZlYXR1cmUob2JqY19hcmMpCi0gICAgW3N1
cGVyIGRlYWxsb2NdOwotI2VuZGlmCi19CiBAZW5kCiAKIEBjbGFzcyBUaW55RE9NTm9kZTsKQEAg
LTIxMywxOCArMjA2LDYgQEAgLSAoaWQpaW5pdFdpdGhWaXJ0dWFsTWFjaGluZTooSlNWaXJ0dWFs
TQogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBmb3IgKFRp
bnlET01Ob2RlICpjaGlsZCBpbiBtX2NoaWxkcmVuKQotICAgICAgICBbbV9zaGFyZWRWaXJ0dWFs
TWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOmNoaWxkIHdpdGhPd25lcjpzZWxmXTsKLQot
I2lmICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQotICAgIFttX2NoaWxkcmVuIHJlbGVhc2VdOwot
ICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5lIHJlbGVhc2VdOwotICAgIFtzdXBlciBkZWFsbG9j
XTsKLSNlbmRpZgotfQotCiAtICh2b2lkKWFwcGVuZENoaWxkOihUaW55RE9NTm9kZSAqKWNoaWxk
CiB7CiAgICAgW21fc2hhcmVkVmlydHVhbE1hY2hpbmUgYWRkTWFuYWdlZFJlZmVyZW5jZTpjaGls
ZCB3aXRoT3duZXI6c2VsZl07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc0Myw2ICs3NDMsNyBA
QAogCQkyQTM0M0Y3NjE4QTE3NDhCMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJheS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkEzNDNGNzQxOEExNzQ4
QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQTM0M0Y3ODE4QTE3NDlEMDAzOUIwODUgLyogR0NT
ZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJBMzQzRjc3MThBMTc0OUQwMDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5
SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTJBNDhEMTkxMTc3MjM2NUIwMEM2NUE1RiAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjExQjU3NDE3NkEy
MjREMDAwRTJBMjMgLyogQVBJQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OworCQkyQTRCQjdGMzE4
QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0QkI3RjIxOEE0MTE3OTAwOEEwRkNE
IC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkE0RUM5MEIxODYwRDZDMjAw
OTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTRFQzkwOTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVC
YXJyaWVyQnVmZmVyLmNwcCAqLzsgfTsKIAkJMkE0RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8qIFdy
aXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkE0RUM5MEExODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBNjgy
OTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTY4Mjk1QTE4NzVGODA1MDBCNkMzRTIg
LyogQ29weVdyaXRlQmFycmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CkBAIC0yMTMxLDYgKzIxMzIsNyBAQAogCQkyQTI4MjVDRjE4MzQxRjJEMDA4
N0ZCQTkgLyogRGVsYXllZFJlbGVhc2VTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBEZWxheWVkUmVsZWFzZVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJBMzQzRjc0MThBMTc0OEIwMDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDU2VnbWVudGVkQXJyYXkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkEzNDNGNzcxOEExNzQ5RDAwMzlCMDg1IC8qIEdDU2VnbWVu
dGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDU2Vn
bWVudGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJBNEJC
N0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE0RUM5MDkxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRl
QmFycmllckJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBX
cml0ZUJhcnJpZXJCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTRF
QzkwQTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRlQmFycmllckJ1ZmZlci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQTY4Mjk1QTE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFy
cmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5V3JpdGVCYXJyaWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDYgKzM0MDgsNyBAQAogCQkx
NDMyRUJENzBBMzRDQUQ0MDA3MTdCOUYgLyogQVBJICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyQTRCQjdGMjE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5h
Z2VkVmFsdWVJbnRlcm5hbC5oICovLAogCQkJCUMyMTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAvKiBB
UElDYWxsYmFja0Z1bmN0aW9uLmggKi8sCiAJCQkJMTQ4MkI3OEEwQTQzMDVBQjAwNTE3Q0ZDIC8q
IEFQSUNhc3QuaCAqLywKIAkJCQk4NjVGNDA4NzEwRTdENTYzMDA5NDczNjEgLyogQVBJU2hpbXMu
aCAqLywKQEAgLTQ3NjMsNiArNDc2Niw3IEBACiAJCQkJQTdEOUEyOTUxN0EwQkM3NDAwRUUyNjE4
IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzE0Q0E1
MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdl
ZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkI5MjFBMTZEMDJFQzUwMDU1
QTVEQiAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwQjA4
MzMxN0EwQjc5QjAwREFGMTRCIC8qIERGR0JpbmFyeVN3aXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmggaW4g
SGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223373</attachid>
            <date>2014-02-06 13:21:11 -0800</date>
            <delta_ts>2014-02-06 14:19:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206132105.patch</filename>
            <type>text/plain</type>
            <size>13864</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCw4IEBAIE9CSkNfVklTSUJMRQogQHJlc3VsdCBUaGUgbmV3
IEpTTWFuYWdlZFZhbHVlLgogKi8KICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0
aFZhbHVlOihKU1ZhbHVlICopdmFsdWU7CisrIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1
ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVyOihpZClvd25lcgorTlNfQVZBSUxB
QkxFKDEwXzEwLCA4XzApOwogCiAvKiEKIEBtZXRob2QKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
MTY5LDYgKzE2OSw3IEBAIHByaXZhdGU6CiBAaW1wbGVtZW50YXRpb24gSlNNYW5hZ2VkVmFsdWUg
ewogICAgIEpTQzo6V2VhazxKU0M6OkpTR2xvYmFsT2JqZWN0PiBtX2dsb2JhbE9iamVjdDsKICAg
ICBXZWFrVmFsdWVSZWYgbV93ZWFrVmFsdWU7CisgICAgTlNNYXBUYWJsZSAqbV9vd25lcnM7CiB9
CiAKICsgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihKU1ZhbHVlICop
dmFsdWUKQEAgLTE3Niw2ICsxNzcsMTMgQEAgKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFs
dWVXaXRoVmFsdQogICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVl
XSBhdXRvcmVsZWFzZV07CiB9CiAKKysgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0
aFZhbHVlOihKU1ZhbHVlICopdmFsdWUgYW5kT3duZXI6KGlkKW93bmVyCit7CisgICAgSlNNYW5h
Z2VkVmFsdWUgKm1hbmFnZWRWYWx1ZSA9IFtbc2VsZiBhbGxvY10gaW5pdFdpdGhWYWx1ZTp2YWx1
ZV07CisgICAgW3ZhbHVlLmNvbnRleHQudmlydHVhbE1hY2hpbmUgYWRkTWFuYWdlZFJlZmVyZW5j
ZTptYW5hZ2VkVmFsdWUgd2l0aE93bmVyOm93bmVyXTsKKyAgICByZXR1cm4gW21hbmFnZWRWYWx1
ZSBhdXRvcmVsZWFzZV07Cit9CisKIC0gKGluc3RhbmNldHlwZSlpbml0CiB7CiAgICAgcmV0dXJu
IFtzZWxmIGluaXRXaXRoVmFsdWU6bmlsXTsKQEAgLTE5NSw2ICsyMDMsMTAgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoVmFsdWU6KEpTVmFsdWUgKgogICAgIEpTQzo6V2VhazxKU0M6OkpTR2xv
YmFsT2JqZWN0PiB3ZWFrKGdsb2JhbE9iamVjdCwgbWFuYWdlZFZhbHVlSGFuZGxlT3duZXIoKSwg
c2VsZik7CiAgICAgbV9nbG9iYWxPYmplY3Quc3dhcCh3ZWFrKTsKIAorICAgIE5TUG9pbnRlckZ1
bmN0aW9uc09wdGlvbnMgd2Vha0lET3B0aW9ucyA9IE5TUG9pbnRlckZ1bmN0aW9uc1dlYWtNZW1v
cnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNPYmplY3RQZXJzb25hbGl0eTsKKyAgICBOU1BvaW50ZXJG
dW5jdGlvbnNPcHRpb25zIGludGVnZXJPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25zT3BhcXVl
TWVtb3J5IHwgTlNQb2ludGVyRnVuY3Rpb25zSW50ZWdlclBlcnNvbmFsaXR5OworICAgIG1fb3du
ZXJzID0gW1tOU01hcFRhYmxlIGFsbG9jXSBpbml0V2l0aEtleU9wdGlvbnM6d2Vha0lET3B0aW9u
cyB2YWx1ZU9wdGlvbnM6aW50ZWdlck9wdGlvbnMgY2FwYWNpdHk6MV07CisKICAgICBKU0M6OkpT
VmFsdWUganNWYWx1ZSA9IHRvSlMoZXhlYywgW3ZhbHVlIEpTVmFsdWVSZWZdKTsKICAgICBpZiAo
anNWYWx1ZS5pc09iamVjdCgpKQogICAgICAgICBtX3dlYWtWYWx1ZS5zZXRPYmplY3QoSlNDOjpq
c0Nhc3Q8SlNDOjpKU09iamVjdCo+KGpzVmFsdWUuYXNDZWxsKCkpLCBzZWxmKTsKQEAgLTIwNSw2
ICsyMTcsNDMgQEAgLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmFsdWU6KEpTVmFsdWUgKgogICAg
IHJldHVybiBzZWxmOwogfQogCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBKU1ZpcnR1YWxNYWNo
aW5lICp2aXJ0dWFsTWFjaGluZSA9IFtbW3NlbGYgdmFsdWVdIGNvbnRleHRdIHZpcnR1YWxNYWNo
aW5lXTsKKyAgICBpZiAodmlydHVhbE1hY2hpbmUpIHsKKyAgICAgICAgZm9yIChpZCBvd25lciBp
biBbbV9vd25lcnMga2V5RW51bWVyYXRvcl0pIHsKKyAgICAgICAgICAgIHNpemVfdCBjb3VudCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAg
ICAgICAgICAgIHdoaWxlIChjb3VudC0tKQorICAgICAgICAgICAgICAgIFt2aXJ0dWFsTWFjaGlu
ZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOnNlbGYgd2l0aE93bmVyOm93bmVyXTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIFtzZWxmIGRpc2Nvbm5lY3RWYWx1ZV07CisgICAgW21fb3duZXJzIHJl
bGVhc2VdOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAodm9pZClkaWRBZGRPd25lcjoo
aWQpb3duZXIKK3sKKyAgICBzaXplX3QgY291bnQgPSByZWludGVycHJldF9jYXN0PHNpemVfdD4o
TlNNYXBHZXQobV9vd25lcnMsIG93bmVyKSk7CisgICAgTlNNYXBJbnNlcnQobV9vd25lcnMsIG93
bmVyLCByZWludGVycHJldF9jYXN0PHZvaWQqPihjb3VudCArIDEpKTsKK30KKworLSAodm9pZClk
aWRSZW1vdmVPd25lcjooaWQpb3duZXIKK3sKKyAgICBzaXplX3QgY291bnQgPSByZWludGVycHJl
dF9jYXN0PHNpemVfdD4oTlNNYXBHZXQobV9vd25lcnMsIG93bmVyKSk7CisKKyAgICBpZiAoIWNv
dW50KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoY291bnQgPT0gMSkgeworICAgICAgICBO
U01hcFJlbW92ZShtX293bmVycywgb3duZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgTlNNYXBJbnNlcnQobV9vd25lcnMsIG93bmVyLCByZWludGVycHJldF9jYXN0PHZvaWQqPihj
b3VudCAtIDEpKTsKK30KKwogLSAoSlNWYWx1ZSAqKXZhbHVlCiB7CiAgICAgaWYgKCFtX2dsb2Jh
bE9iamVjdCkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWVJ
bnRlcm5hbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5h
Z2VkVmFsdWVJbnRlcm5hbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU01hbmFnZWRWYWx1ZUludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisjZGVm
aW5lIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWxfaAorCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9K
U0Jhc2UuaD4KKworI2lmIEpTQ19PQkpDX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgSlNNYW5h
Z2VkVmFsdWUoSW50ZXJuYWwpCisKKy0gKHZvaWQpZGlkQWRkT3duZXI6KGlkKW93bmVyOworLSAo
dm9pZClkaWRSZW1vdmVPd25lcjooaWQpb3duZXI7CisKK0BlbmQKKworI2VuZGlmIC8vIEpTQ19P
QkpDX0FQSV9FTkFCTEVECisKKyNlbmRpZiAvLyBKU01hbmFnZWRWYWx1ZUludGVybmFsX2gKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGluZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmlydHVhbE1hY2hpbmUubW0JKHJl
dmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogCiAjaW1wb3J0ICJBUElD
YXN0LmgiCiAjaW1wb3J0ICJBUElTaGltcy5oIgorI2ltcG9ydCAiSlNNYW5hZ2VkVmFsdWVJbnRl
cm5hbC5oIgogI2ltcG9ydCAiSlNWaXJ0dWFsTWFjaGluZS5oIgogI2ltcG9ydCAiSlNWaXJ0dWFs
TWFjaGluZUludGVybmFsLmgiCiAjaW1wb3J0ICJKU1dyYXBwZXJNYXAuaCIKQEAgLTE2MSw3ICsx
NjIsMTIgQEAgLSAodm9pZClhZGRNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplY3QgdwogICAgICAg
ICBbbV9leHRlcm5hbE9iamVjdEdyYXBoIHNldE9iamVjdDpvd25lZE9iamVjdHMgZm9yS2V5Om93
bmVyXTsKICAgICAgICAgW293bmVkT2JqZWN0cyByZWxlYXNlXTsKICAgICB9Ci0gICAgTlNNYXBJ
bnNlcnQob3duZWRPYmplY3RzLCBvYmplY3QsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHJlaW50
ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChvd25lZE9iamVjdHMsIG9iamVjdCkpICsgMSkp
OworCisgICAgaWYgKFtvYmplY3QgaXNLaW5kT2ZDbGFzczpbSlNNYW5hZ2VkVmFsdWUgY2xhc3Nd
XSkKKyAgICAgICAgW29iamVjdCBkaWRBZGRPd25lcjpvd25lcl07CisgICAgICAgIAorICAgIHNp
emVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChvd25lZE9iamVj
dHMsIG9iamVjdCkpOworICAgIE5TTWFwSW5zZXJ0KG93bmVkT2JqZWN0cywgb2JqZWN0LCByZWlu
dGVycHJldF9jYXN0PHZvaWQqPihjb3VudCArIDEpKTsKIH0KIAogLSAodm9pZClyZW1vdmVNYW5h
Z2VkUmVmZXJlbmNlOihpZClvYmplY3Qgd2l0aE93bmVyOihpZClvd25lcgpAQCAtMTg3LDYgKzE5
Myw5IEBAIC0gKHZvaWQpcmVtb3ZlTWFuYWdlZFJlZmVyZW5jZTooaWQpb2JqZWMKICAgICBpZiAo
Y291bnQgPT0gMSkKICAgICAgICAgTlNNYXBSZW1vdmUob3duZWRPYmplY3RzLCBvYmplY3QpOwog
CisgICAgaWYgKFtvYmplY3QgaXNLaW5kT2ZDbGFzczpbSlNNYW5hZ2VkVmFsdWUgY2xhc3NdXSkK
KyAgICAgICAgW29iamVjdCBkaWRSZW1vdmVPd25lcjpvd25lcl07CisKICAgICBpZiAoIVtvd25l
ZE9iamVjdHMgY291bnRdKQogICAgICAgICBbbV9leHRlcm5hbE9iamVjdEdyYXBoIHJlbW92ZU9i
amVjdEZvcktleTpvd25lcl07CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL1dl
YktpdEF2YWlsYWJpbGl0eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgJKHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDEwICsyNywzMCBAQAogI2RlZmluZSBfX1dlYktpdEF2YWlsYWJpbGl0eV9fCiAKICNpZmRlZiBf
X0FQUExFX18KKwogI2luY2x1ZGUgPEF2YWlsYWJpbGl0eU1hY3Jvcy5oPgogI2luY2x1ZGUgPENv
cmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+Ci0jZWxzZQorCisjaWYgIWRlZmluZWQoTlNf
QVZBSUxBQkxFKQorI2RlZmluZSBOU19BVkFJTEFCTEUoX21hYywgX2lvcykKKyNlbmRpZiAvLyAh
ZGVmaW5lZChOU19BVkFJTEFCTEUpCisjaWYgIWRlZmluZWQoQ0ZfQVZBSUxBQkxFKQorI2RlZmlu
ZSBDRl9BVkFJTEFCTEUoX21hYywgX2lvcykKKyNlbmRpZiAvLyAhZGVmaW5lZChDRl9BVkFJTEFC
TEUpCisKKyNlbHNlIC8vIF9fQVBQTEVfXworCiAjZGVmaW5lIENGX0FWQUlMQUJMRShfbWFjLCBf
aW9zKQorI2RlZmluZSBOU19BVkFJTEFCTEUoX21hYywgX2lvcykKKworI2VuZGlmIC8vIF9fQVBQ
TEVfXworCisjaWYgIWRlZmluZWQoX19OU2lfMTBfMTApCisjZGVmaW5lIF9fTlNpXzEwXzEwIGlu
dHJvZHVjZWQ9MTAuMTAKKyNlbmRpZgorCisjaWYgIWRlZmluZWQoX19OU2lfOF8wKQorI2RlZmlu
ZSBfX05TaV84XzAgaW50cm9kdWNlZD04LjAKICNlbmRpZgogCiAjZW5kaWYgLyogX19XZWJLaXRB
dmFpbGFiaWxpdHlfXyAqLwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90
ZXN0YXBpLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMv
dGVzdGFwaS5tbQkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsMTMgKzE3Miw2IEBAIC0g
KHZvaWQpY2xpY2sKICAgICBKU1ZhbHVlICpmdW5jdGlvbiA9IFttX29uY2xpY2tIYW5kbGVyIHZh
bHVlXTsKICAgICBbZnVuY3Rpb24gY2FsbFdpdGhBcmd1bWVudHM6W05TQXJyYXkgYXJyYXldXTsK
IH0KLS0gKHZvaWQpZGVhbGxvYwotewotICAgIFtbbV9vbmNsaWNrSGFuZGxlciB2YWx1ZV0uY29u
dGV4dC52aXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOm1fb25jbGlja0hhbmRs
ZXIgd2l0aE93bmVyOnNlbGZdOwotI2lmICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQotICAgIFtz
dXBlciBkZWFsbG9jXTsKLSNlbmRpZgotfQogQGVuZAogCiBAY2xhc3MgVGlueURPTU5vZGU7CkBA
IC0yMTMsMTggKzIwNiw2IEBAIC0gKGlkKWluaXRXaXRoVmlydHVhbE1hY2hpbmU6KEpTVmlydHVh
bE0KICAgICByZXR1cm4gc2VsZjsKIH0KIAotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgZm9yIChU
aW55RE9NTm9kZSAqY2hpbGQgaW4gbV9jaGlsZHJlbikKLSAgICAgICAgW21fc2hhcmVkVmlydHVh
bE1hY2hpbmUgcmVtb3ZlTWFuYWdlZFJlZmVyZW5jZTpjaGlsZCB3aXRoT3duZXI6c2VsZl07Ci0K
LSNpZiAhX19oYXNfZmVhdHVyZShvYmpjX2FyYykKLSAgICBbbV9jaGlsZHJlbiByZWxlYXNlXTsK
LSAgICBbbV9zaGFyZWRWaXJ0dWFsTWFjaGluZSByZWxlYXNlXTsKLSAgICBbc3VwZXIgZGVhbGxv
Y107Ci0jZW5kaWYKLX0KLQogLSAodm9pZClhcHBlbmRDaGlsZDooVGlueURPTU5vZGUgKiljaGls
ZAogewogICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5lIGFkZE1hbmFnZWRSZWZlcmVuY2U6Y2hp
bGQgd2l0aE93bmVyOnNlbGZdOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC03NDMsNiArNzQzLDcg
QEAKIAkJMkEzNDNGNzYxOEExNzQ4QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBMzQzRjc0MThBMTc0
OEIwMDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkEzNDNGNzgxOEExNzQ5RDAwMzlCMDg1IC8qIEdD
U2VnbWVudGVkQXJyYXlJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQTM0M0Y3NzE4QTE3NDlEMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJh
eUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQkyQTQ4RDE5MTE3NzIzNjVCMDBDNjVBNUYgLyogQVBJQ2FsbGJhY2tGdW5jdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIxMUI1NzQxNzZB
MjI0RDAwMEUyQTIzIC8qIEFQSUNhbGxiYWNrRnVuY3Rpb24uaCAqLzsgfTsKKwkJMkE0QkI3RjMx
OEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBNEJCN0YyMThBNDExNzkwMDhBMEZD
RCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmggKi87IH07CiAJCTJBNEVDOTBCMTg2MEQ2QzIw
MDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0RUM5MDkxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRl
QmFycmllckJ1ZmZlci5jcHAgKi87IH07CiAJCTJBNEVDOTBDMTg2MEQ2QzIwMDk0Rjc4MiAvKiBX
cml0ZUJhcnJpZXJCdWZmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJBNEVDOTBBMTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0ZUJhcnJpZXJCdWZmZXIu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQTY4
Mjk1QjE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE2ODI5NUExODc1RjgwNTAwQjZDM0Uy
IC8qIENvcHlXcml0ZUJhcnJpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMjEzMSw2ICsyMTMyLDcgQEAKIAkJMkEyODI1Q0YxODM0MUYyRDAw
ODdGQkE5IC8qIERlbGF5ZWRSZWxlYXNlU2NvcGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRGVsYXllZFJlbGVhc2VTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyQTM0M0Y3NDE4QTE3NDhCMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJheS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHQ1NlZ21lbnRlZEFycmF5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBMzQzRjc3MThBMTc0OUQwMDM5QjA4NSAvKiBHQ1NlZ21l
bnRlZEFycmF5SW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHQ1Nl
Z21lbnRlZEFycmF5SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQTRC
QjdGMjE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01hbmFnZWRWYWx1ZUludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBNEVDOTA5MTg2MEQ2QzIwMDk0Rjc4MiAvKiBXcml0
ZUJhcnJpZXJCdWZmZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V3JpdGVCYXJyaWVyQnVmZmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE0
RUM5MEExODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXcml0ZUJhcnJpZXJCdWZmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkE2ODI5NUExODc1RjgwNTAwQjZDM0UyIC8qIENvcHlXcml0ZUJh
cnJpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29weVdyaXRlQmFycmll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzQwNiw2ICszNDA4LDcgQEAKIAkJ
MTQzMkVCRDcwQTM0Q0FENDAwNzE3QjlGIC8qIEFQSSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMkE0QkI3RjIxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFu
YWdlZFZhbHVlSW50ZXJuYWwuaCAqLywKIAkJCQlDMjExQjU3NDE3NkEyMjREMDAwRTJBMjMgLyog
QVBJQ2FsbGJhY2tGdW5jdGlvbi5oICovLAogCQkJCTE0ODJCNzhBMEE0MzA1QUIwMDUxN0NGQyAv
KiBBUElDYXN0LmggKi8sCiAJCQkJODY1RjQwODcxMEU3RDU2MzAwOTQ3MzYxIC8qIEFQSVNoaW1z
LmggKi8sCkBAIC00NzYzLDYgKzQ3NjYsNyBAQAogCQkJCUE3RDlBMjk1MTdBMEJDNzQwMEVFMjYx
OCAvKiBERkdBdFRhaWxBYnN0cmFjdFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjcxNENB
NTE2RUE5MkYyMDBGM0VCRUIgLyogREZHQmFja3dhcmRzUHJvcGFnYXRpb25QaGFzZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2MjAxNzYxNDNGQ0QzQjAwNjhCNzdDIC8qIERGR0Jhc2ljQmxvY2su
aCBpbiBIZWFkZXJzICovLAorCQkJCTJBNEJCN0YzMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFn
ZWRWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkZCOTIxQTE2RDAyRUM1MDA1
NUE1REIgLyogREZHQmFzaWNCbG9ja0lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MEIw
ODMzMTdBMEI3OUIwMERBRjE0QiAvKiBERkdCaW5hcnlTd2l0Y2guaCBpbiBIZWFkZXJzICovLAog
CQkJCUE3RDg5Q0Y0MTdBMEI4Q0MwMDc3M0FEOCAvKiBERkdCbG9ja0luc2VydGlvblNldC5oIGlu
IEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223382</attachid>
            <date>2014-02-06 14:19:03 -0800</date>
            <delta_ts>2014-02-06 14:26:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206141855.patch</filename>
            <type>text/plain</type>
            <size>14004</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCwxMSBAQCBPQkpDX1ZJU0lCTEUKIEByZXN1bHQgVGhlIG5l
dyBKU01hbmFnZWRWYWx1ZS4KICovCiArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1ZVdp
dGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlOworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA5MAorKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6
KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIgTlNfQVZBSUxBQkxFKDEwXzEwLCA4
XzApOworI2Vsc2UKKysgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihK
U1ZhbHVlICopdmFsdWUgYW5kT3duZXI6KGlkKW93bmVyOworI2VuZGlmCiAKIC8qIQogQG1ldGhv
ZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCShy
ZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZh
bHVlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNjksNiArMTY5LDcgQEAgcHJpdmF0ZToKIEBpbXBs
ZW1lbnRhdGlvbiBKU01hbmFnZWRWYWx1ZSB7CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxP
YmplY3Q+IG1fZ2xvYmFsT2JqZWN0OwogICAgIFdlYWtWYWx1ZVJlZiBtX3dlYWtWYWx1ZTsKKyAg
ICBOU01hcFRhYmxlICptX293bmVyczsKIH0KIAogKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2Vk
VmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZQpAQCAtMTc2LDYgKzE3NywxMyBAQCArIChK
U01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1ZVdpdGhWYWx1CiAgICAgcmV0dXJuIFtbW3NlbGYg
YWxsb2NdIGluaXRXaXRoVmFsdWU6dmFsdWVdIGF1dG9yZWxlYXNlXTsKIH0KIAorKyAoSlNNYW5h
Z2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25l
cjooaWQpb3duZXIKK3sKKyAgICBKU01hbmFnZWRWYWx1ZSAqbWFuYWdlZFZhbHVlID0gW1tzZWxm
IGFsbG9jXSBpbml0V2l0aFZhbHVlOnZhbHVlXTsKKyAgICBbdmFsdWUuY29udGV4dC52aXJ0dWFs
TWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNlOm1hbmFnZWRWYWx1ZSB3aXRoT3duZXI6b3duZXJd
OworICAgIHJldHVybiBbbWFuYWdlZFZhbHVlIGF1dG9yZWxlYXNlXTsKK30KKwogLSAoaW5zdGFu
Y2V0eXBlKWluaXQKIHsKICAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhWYWx1ZTpuaWxdOwpAQCAt
MTk1LDYgKzIwMywxMCBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAq
CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxPYmplY3Q+IHdlYWsoZ2xvYmFsT2JqZWN0LCBt
YW5hZ2VkVmFsdWVIYW5kbGVPd25lcigpLCBzZWxmKTsKICAgICBtX2dsb2JhbE9iamVjdC5zd2Fw
KHdlYWspOwogCisgICAgTlNQb2ludGVyRnVuY3Rpb25zT3B0aW9ucyB3ZWFrSURPcHRpb25zID0g
TlNQb2ludGVyRnVuY3Rpb25zV2Vha01lbW9yeSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBl
cnNvbmFsaXR5OworICAgIE5TUG9pbnRlckZ1bmN0aW9uc09wdGlvbnMgaW50ZWdlck9wdGlvbnMg
PSBOU1BvaW50ZXJGdW5jdGlvbnNPcGFxdWVNZW1vcnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNJbnRl
Z2VyUGVyc29uYWxpdHk7CisgICAgbV9vd25lcnMgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRX
aXRoS2V5T3B0aW9uczp3ZWFrSURPcHRpb25zIHZhbHVlT3B0aW9uczppbnRlZ2VyT3B0aW9ucyBj
YXBhY2l0eToxXTsKKwogICAgIEpTQzo6SlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBbdmFs
dWUgSlNWYWx1ZVJlZl0pOwogICAgIGlmIChqc1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIG1f
d2Vha1ZhbHVlLnNldE9iamVjdChKU0M6OmpzQ2FzdDxKU0M6OkpTT2JqZWN0Kj4oanNWYWx1ZS5h
c0NlbGwoKSksIHNlbGYpOwpAQCAtMjA1LDYgKzIxNyw0MyBAQCAtIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIEpTVmlydHVhbE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lID0gW1tbc2VsZiB2
YWx1ZV0gY29udGV4dF0gdmlydHVhbE1hY2hpbmVdOworICAgIGlmICh2aXJ0dWFsTWFjaGluZSkg
eworICAgICAgICBmb3IgKGlkIG93bmVyIGluIFttX293bmVycyBrZXlFbnVtZXJhdG9yXSkgewor
ICAgICAgICAgICAgc2l6ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFw
R2V0KG1fb3duZXJzLCBvd25lcikpOworICAgICAgICAgICAgd2hpbGUgKGNvdW50LS0pCisgICAg
ICAgICAgICAgICAgW3ZpcnR1YWxNYWNoaW5lIHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6c2VsZiB3
aXRoT3duZXI6b3duZXJdOworICAgICAgICB9CisgICAgfQorCisgICAgW3NlbGYgZGlzY29ubmVj
dFZhbHVlXTsKKyAgICBbbV9vd25lcnMgcmVsZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOwor
fQorCistICh2b2lkKWRpZEFkZE93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9
IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAg
ICBOU01hcEluc2VydChtX293bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNv
dW50ICsgMSkpOworfQorCistICh2b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcgoreworICAg
IHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVy
cywgb3duZXIpKTsKKworICAgIGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
IChjb3VudCA9PSAxKSB7CisgICAgICAgIE5TTWFwUmVtb3ZlKG1fb3duZXJzLCBvd25lcik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOU01hcEluc2VydChtX293bmVycywgb3duZXIs
IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50IC0gMSkpOworfQorCiAtIChKU1ZhbHVlICop
dmFsdWUKIHsKICAgICBpZiAoIW1fZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDAp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEz
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01h
bmFnZWRWYWx1ZUludGVybmFsX2gKKyNkZWZpbmUgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisK
KyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorCisjaWYgSlNDX09CSkNfQVBJX0VO
QUJMRUQKKworQGludGVyZmFjZSBKU01hbmFnZWRWYWx1ZShJbnRlcm5hbCkKKworLSAodm9pZClk
aWRBZGRPd25lcjooaWQpb3duZXI7CistICh2b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcjsK
KworQGVuZAorCisjZW5kaWYgLy8gSlNDX09CSkNfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIEpT
TWFuYWdlZFZhbHVlSW50ZXJuYWxfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZpcnR1YWxNYWNoaW5lLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWaXJ0dWFsTWFjaGluZS5tbQkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2
ICszMSw3IEBACiAKICNpbXBvcnQgIkFQSUNhc3QuaCIKICNpbXBvcnQgIkFQSVNoaW1zLmgiCisj
aW1wb3J0ICJKU01hbmFnZWRWYWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNo
aW5lLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpT
V3JhcHBlck1hcC5oIgpAQCAtMTYxLDcgKzE2MiwxMiBAQCAtICh2b2lkKWFkZE1hbmFnZWRSZWZl
cmVuY2U6KGlkKW9iamVjdCB3CiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGggc2V0T2Jq
ZWN0Om93bmVkT2JqZWN0cyBmb3JLZXk6b3duZXJdOwogICAgICAgICBbb3duZWRPYmplY3RzIHJl
bGVhc2VdOwogICAgIH0KLSAgICBOU01hcEluc2VydChvd25lZE9iamVjdHMsIG9iamVjdCwgcmVp
bnRlcnByZXRfY2FzdDx2b2lkKj4ocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93
bmVkT2JqZWN0cywgb2JqZWN0KSkgKyAxKSk7CisKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNs
YXNzOltKU01hbmFnZWRWYWx1ZSBjbGFzc11dKQorICAgICAgICBbb2JqZWN0IGRpZEFkZE93bmVy
Om93bmVyXTsKKyAgICAgICAgCisgICAgc2l6ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxz
aXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0cywgb2JqZWN0KSk7CisgICAgTlNNYXBJbnNlcnQo
b3duZWRPYmplY3RzLCBvYmplY3QsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkp
OwogfQogCiAtICh2b2lkKXJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3aXRoT3du
ZXI6KGlkKW93bmVyCkBAIC0xODcsNiArMTkzLDkgQEAgLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVm
ZXJlbmNlOihpZClvYmplYwogICAgIGlmIChjb3VudCA9PSAxKQogICAgICAgICBOU01hcFJlbW92
ZShvd25lZE9iamVjdHMsIG9iamVjdCk7CiAKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNz
OltKU01hbmFnZWRWYWx1ZSBjbGFzc11dKQorICAgICAgICBbb2JqZWN0IGRpZFJlbW92ZU93bmVy
Om93bmVyXTsKKwogICAgIGlmICghW293bmVkT2JqZWN0cyBjb3VudF0pCiAgICAgICAgIFttX2V4
dGVybmFsT2JqZWN0R3JhcGggcmVtb3ZlT2JqZWN0Rm9yS2V5Om93bmVyXTsKIH0KSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNp
b24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxp
dHkuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsMTAgKzI3LDMwIEBACiAjZGVmaW5lIF9fV2ViS2l0
QXZhaWxhYmlsaXR5X18KIAogI2lmZGVmIF9fQVBQTEVfXworCiAjaW5jbHVkZSA8QXZhaWxhYmls
aXR5TWFjcm9zLmg+CiAjaW5jbHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4K
LSNlbHNlCisKKyNpZiAhZGVmaW5lZChOU19BVkFJTEFCTEUpCisjZGVmaW5lIE5TX0FWQUlMQUJM
RShfbWFjLCBfaW9zKQorI2VuZGlmIC8vICFkZWZpbmVkKE5TX0FWQUlMQUJMRSkKKyNpZiAhZGVm
aW5lZChDRl9BVkFJTEFCTEUpCisjZGVmaW5lIENGX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2Vu
ZGlmIC8vICFkZWZpbmVkKENGX0FWQUlMQUJMRSkKKworI2Vsc2UgLy8gX19BUFBMRV9fCisKICNk
ZWZpbmUgQ0ZfQVZBSUxBQkxFKF9tYWMsIF9pb3MpCisjZGVmaW5lIE5TX0FWQUlMQUJMRShfbWFj
LCBfaW9zKQorCisjZW5kaWYgLy8gX19BUFBMRV9fCisKKyNpZiAhZGVmaW5lZChfX05TaV8xMF8x
MCkKKyNkZWZpbmUgX19OU2lfMTBfMTAgaW50cm9kdWNlZD0xMC4xMAorI2VuZGlmCisKKyNpZiAh
ZGVmaW5lZChfX05TaV84XzApCisjZGVmaW5lIF9fTlNpXzhfMCBpbnRyb2R1Y2VkPTguMAogI2Vu
ZGlmCiAKICNlbmRpZiAvKiBfX1dlYktpdEF2YWlsYWJpbGl0eV9fICovCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lvbiAxNjM1NDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTE3MiwxMyArMTcyLDYgQEAgLSAodm9pZCljbGljawogICAgIEpTVmFsdWUgKmZ1bmN0
aW9uID0gW21fb25jbGlja0hhbmRsZXIgdmFsdWVdOwogICAgIFtmdW5jdGlvbiBjYWxsV2l0aEFy
Z3VtZW50czpbTlNBcnJheSBhcnJheV1dOwogfQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW1tt
X29uY2xpY2tIYW5kbGVyIHZhbHVlXS5jb250ZXh0LnZpcnR1YWxNYWNoaW5lIHJlbW92ZU1hbmFn
ZWRSZWZlcmVuY2U6bV9vbmNsaWNrSGFuZGxlciB3aXRoT3duZXI6c2VsZl07Ci0jaWYgIV9faGFz
X2ZlYXR1cmUob2JqY19hcmMpCi0gICAgW3N1cGVyIGRlYWxsb2NdOwotI2VuZGlmCi19CiBAZW5k
CiAKIEBjbGFzcyBUaW55RE9NTm9kZTsKQEAgLTIxMywxOCArMjA2LDYgQEAgLSAoaWQpaW5pdFdp
dGhWaXJ0dWFsTWFjaGluZTooSlNWaXJ0dWFsTQogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2
b2lkKWRlYWxsb2MKLXsKLSAgICBmb3IgKFRpbnlET01Ob2RlICpjaGlsZCBpbiBtX2NoaWxkcmVu
KQotICAgICAgICBbbV9zaGFyZWRWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNl
OmNoaWxkIHdpdGhPd25lcjpzZWxmXTsKLQotI2lmICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQot
ICAgIFttX2NoaWxkcmVuIHJlbGVhc2VdOwotICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5lIHJl
bGVhc2VdOwotICAgIFtzdXBlciBkZWFsbG9jXTsKLSNlbmRpZgotfQotCiAtICh2b2lkKWFwcGVu
ZENoaWxkOihUaW55RE9NTm9kZSAqKWNoaWxkCiB7CiAgICAgW21fc2hhcmVkVmlydHVhbE1hY2hp
bmUgYWRkTWFuYWdlZFJlZmVyZW5jZTpjaGlsZCB3aXRoT3duZXI6c2VsZl07CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTc0Myw2ICs3NDMsNyBAQAogCQkyQTM0M0Y3NjE4QTE3NDhCMDAzOUIwODUg
LyogR0NTZWdtZW50ZWRBcnJheS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkEzNDNGNzQxOEExNzQ4QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXku
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQTM0
M0Y3ODE4QTE3NDlEMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBMzQzRjc3MThBMTc0OUQw
MDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJBNDhEMTkxMTc3MjM2NUIwMEM2NUE1RiAv
KiBBUElDYWxsYmFja0Z1bmN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMjExQjU3NDE3NkEyMjREMDAwRTJBMjMgLyogQVBJQ2FsbGJhY2tGdW5j
dGlvbi5oICovOyB9OworCQkyQTRCQjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFs
dWVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkE0QkI3RjIxOEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAq
LzsgfTsKIAkJMkE0RUM5MEIxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTRFQzkw
OTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCAqLzsgfTsKIAkJMkE0
RUM5MEMxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0RUM5MEExODYwRDZDMjAwOTRG
NzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3Jp
dGVCYXJyaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQTY4Mjk1QTE4NzVGODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMTMxLDYgKzIxMzIs
NyBAQAogCQkyQTI4MjVDRjE4MzQxRjJEMDA4N0ZCQTkgLyogRGVsYXllZFJlbGVhc2VTY29wZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZWxheWVkUmVsZWFzZVNjb3BlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJBMzQzRjc0MThBMTc0OEIwMDM5QjA4NSAv
KiBHQ1NlZ21lbnRlZEFycmF5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdD
U2VnbWVudGVkQXJyYXkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkEzNDNGNzcx
OEExNzQ5RDAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJBNEJCN0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFn
ZWRWYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFu
YWdlZFZhbHVlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE0RUM5
MDkxODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyQTRFQzkwQTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVC
YXJyaWVyQnVmZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRlQmFy
cmllckJ1ZmZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTY4Mjk1QTE4NzVG
ODA1MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb3B5V3JpdGVCYXJyaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0zNDA2LDYgKzM0MDgsNyBAQAogCQkxNDMyRUJENzBBMzRDQUQ0MDA3MTdCOUYgLyogQVBJ
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyQTRCQjdG
MjE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovLAogCQkJCUMy
MTFCNTc0MTc2QTIyNEQwMDBFMkEyMyAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggKi8sCiAJCQkJ
MTQ4MkI3OEEwQTQzMDVBQjAwNTE3Q0ZDIC8qIEFQSUNhc3QuaCAqLywKIAkJCQk4NjVGNDA4NzEw
RTdENTYzMDA5NDczNjEgLyogQVBJU2hpbXMuaCAqLywKQEAgLTQ3NjMsNiArNDc2Niw3IEBACiAJ
CQkJQTdEOUEyOTUxN0EwQkM3NDAwRUUyNjE4IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2Fy
ZHNQcm9wYWdhdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NjE0M0ZDRDNC
MDA2OEI3N0MgLyogREZHQmFzaWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkE0QkI3RjMx
OEE0MTE3OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGRkI5MjFBMTZEMDJFQzUwMDU1QTVEQiAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwQjA4MzMxN0EwQjc5QjAwREFGMTRCIC8qIERGR0JpbmFy
eVN3aXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8q
IERGR0Jsb2NrSW5zZXJ0aW9uU2V0LmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>223384</attachid>
            <date>2014-02-06 14:26:05 -0800</date>
            <delta_ts>2014-02-06 16:25:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124053-20140206142557.patch</filename>
            <type>text/plain</type>
            <size>14556</size>
            <attacher name="Mark Hahnenberg">mhahnenberg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTYzNTUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBA
CisyMDE0LTAyLTA2ICBNYXJrIEhhaG5lbmJlcmcgIDxtaGFobmVuYmVyZ0BhcHBsZS5jb20+CisK
KyAgICAgICAgSlNNYW5hZ2VkVmFsdWUgc2hvdWxkIGF1dG9tYXRpY2FsbHkgY2FsbCByZW1vdmVN
YW5hZ2VkUmVmZXJlbmNlOndpdGhPd25lcjogdXBvbiBkZWFsbG9jCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQwNTMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5oOgor
ICAgICAgICAqIEFQSS9KU01hbmFnZWRWYWx1ZS5tbToKKyAgICAgICAgKCtbSlNNYW5hZ2VkVmFs
dWUgbWFuYWdlZFZhbHVlV2l0aFZhbHVlOmFuZE93bmVyOl0pOgorICAgICAgICAoLVtKU01hbmFn
ZWRWYWx1ZSBpbml0V2l0aFZhbHVlOl0pOgorICAgICAgICAoLVtKU01hbmFnZWRWYWx1ZSBkZWFs
bG9jXSk6CisgICAgICAgICgtW0pTTWFuYWdlZFZhbHVlIGRpZEFkZE93bmVyOl0pOgorICAgICAg
ICAoLVtKU01hbmFnZWRWYWx1ZSBkaWRSZW1vdmVPd25lcjpdKToKKyAgICAgICAgKiBBUEkvSlNN
YW5hZ2VkVmFsdWVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBBUEkvSlNWaXJ0dWFsTWFj
aGluZS5tbToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2VkUmVmZXJlbmNl
OndpdGhPd25lcjpdKToKKyAgICAgICAgKC1bSlNWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2Vk
UmVmZXJlbmNlOndpdGhPd25lcjpdKToKKyAgICAgICAgKiBBUEkvV2ViS2l0QXZhaWxhYmlsaXR5
Lmg6CisgICAgICAgICogQVBJL3Rlc3RzL3Rlc3RhcGkubW06CisgICAgICAgICgtW1RleHRYWVog
Y2xpY2tdKToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDE0LTAyLTA2ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWFrZSAzMmJpdCBwYXNzIHRoZSBjb3JyZWN0IHRoaXMgdmFsdWUgdG8gY3VzdG9tIGdl
dHRlcnMKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2VkVmFsdWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLmgJ
KHJldmlzaW9uIDE2MzU0OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNNYW5hZ2Vk
VmFsdWUuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBKU01hbmFn
ZWRWYWx1ZV9oCiAKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0pTQmFzZS5oPgorI2ltcG9ydCA8
SmF2YVNjcmlwdENvcmUvV2ViS2l0QXZhaWxhYmlsaXR5Lmg+CiAKICNpZiBKU0NfT0JKQ19BUElf
RU5BQkxFRAogCkBAIC02Myw2ICs2NCwxOCBAQCBPQkpDX1ZJU0lCTEUKIEByZXN1bHQgVGhlIG5l
dyBKU01hbmFnZWRWYWx1ZS4KICovCiArIChKU01hbmFnZWRWYWx1ZSAqKW1hbmFnZWRWYWx1ZVdp
dGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlOworLy8gRklYTUU6IFRoZXJlJ3MgYSBidWcgaW4gZWFy
bGllciB2ZXJzaW9ucyBvZiBjbGFuZyB0aGF0IHNoaXBwZWQgb24gMTAuOCB0aGF0IGNhdXNlcyB0
aGUgTlNfQVZBSUxBQkxFIG1hY3JvCisvLyB0byBiZSBpZ25vcmVkIGJ5IHRoZSBwcmVwcm9jZXNz
b3Igd2hlbiBpdCBmb2xsb3dzIGEgY2xhc3MgbWV0aG9kLiBUaGUgY29tcGlsZXIgdGhlbiB0cmll
cyB0byB0cmVhdCB0aGUgCisvLyBtYWNybyBhcyBwYXJ0IG9mIHRoZSBzZWxlY3Rvci4KKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwOTAKKysgKEpTTWFuYWdlZFZhbHVl
ICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihKU1ZhbHVlICopdmFsdWUgYW5kT3duZXI6KGlkKW93
bmVyIE5TX0FWQUlMQUJMRSgxMF8xMCwgOF8wKTsKKyNlbHNlCisjaWYgKFRBUkdFVF9PU19NQUMg
JiYgIShUQVJHRVRfT1NfRU1CRURERUQgfHwgVEFSR0VUX09TX0lQSE9ORSkpCisrIChKU01hbmFn
ZWRWYWx1ZSAqKW1hbmFnZWRWYWx1ZVdpdGhWYWx1ZTooSlNWYWx1ZSAqKXZhbHVlIGFuZE93bmVy
OihpZClvd25lciBfX2F0dHJpYnV0ZV9fKChhdmFpbGFiaWxpdHkobWFjb3N4LF9fTlNpXzEwXzEw
KSkpOworI2Vsc2UKKysgKEpTTWFuYWdlZFZhbHVlICopbWFuYWdlZFZhbHVlV2l0aFZhbHVlOihK
U1ZhbHVlICopdmFsdWUgYW5kT3duZXI6KGlkKW93bmVyIF9fYXR0cmlidXRlX18oKGF2YWlsYWJp
bGl0eShpb3MsX19OU2lfOF8wKSkpOworI2VuZGlmCisjZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCiAKIC8qIQogQG1ldGhvZApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU01hbmFnZWRWYWx1ZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCShyZXZpc2lvbiAxNjM1NDkpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC0xNjksNiArMTY5LDcgQEAgcHJpdmF0ZToKIEBpbXBsZW1lbnRhdGlvbiBKU01hbmFn
ZWRWYWx1ZSB7CiAgICAgSlNDOjpXZWFrPEpTQzo6SlNHbG9iYWxPYmplY3Q+IG1fZ2xvYmFsT2Jq
ZWN0OwogICAgIFdlYWtWYWx1ZVJlZiBtX3dlYWtWYWx1ZTsKKyAgICBOU01hcFRhYmxlICptX293
bmVyczsKIH0KIAogKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2VkVmFsdWVXaXRoVmFsdWU6KEpT
VmFsdWUgKil2YWx1ZQpAQCAtMTc2LDYgKzE3NywxMyBAQCArIChKU01hbmFnZWRWYWx1ZSAqKW1h
bmFnZWRWYWx1ZVdpdGhWYWx1CiAgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoVmFs
dWU6dmFsdWVdIGF1dG9yZWxlYXNlXTsKIH0KIAorKyAoSlNNYW5hZ2VkVmFsdWUgKiltYW5hZ2Vk
VmFsdWVXaXRoVmFsdWU6KEpTVmFsdWUgKil2YWx1ZSBhbmRPd25lcjooaWQpb3duZXIKK3sKKyAg
ICBKU01hbmFnZWRWYWx1ZSAqbWFuYWdlZFZhbHVlID0gW1tzZWxmIGFsbG9jXSBpbml0V2l0aFZh
bHVlOnZhbHVlXTsKKyAgICBbdmFsdWUuY29udGV4dC52aXJ0dWFsTWFjaGluZSBhZGRNYW5hZ2Vk
UmVmZXJlbmNlOm1hbmFnZWRWYWx1ZSB3aXRoT3duZXI6b3duZXJdOworICAgIHJldHVybiBbbWFu
YWdlZFZhbHVlIGF1dG9yZWxlYXNlXTsKK30KKwogLSAoaW5zdGFuY2V0eXBlKWluaXQKIHsKICAg
ICByZXR1cm4gW3NlbGYgaW5pdFdpdGhWYWx1ZTpuaWxdOwpAQCAtMTk1LDYgKzIwMywxMCBAQCAt
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1ZSAqCiAgICAgSlNDOjpXZWFrPEpT
Qzo6SlNHbG9iYWxPYmplY3Q+IHdlYWsoZ2xvYmFsT2JqZWN0LCBtYW5hZ2VkVmFsdWVIYW5kbGVP
d25lcigpLCBzZWxmKTsKICAgICBtX2dsb2JhbE9iamVjdC5zd2FwKHdlYWspOwogCisgICAgTlNQ
b2ludGVyRnVuY3Rpb25zT3B0aW9ucyB3ZWFrSURPcHRpb25zID0gTlNQb2ludGVyRnVuY3Rpb25z
V2Vha01lbW9yeSB8IE5TUG9pbnRlckZ1bmN0aW9uc09iamVjdFBlcnNvbmFsaXR5OworICAgIE5T
UG9pbnRlckZ1bmN0aW9uc09wdGlvbnMgaW50ZWdlck9wdGlvbnMgPSBOU1BvaW50ZXJGdW5jdGlv
bnNPcGFxdWVNZW1vcnkgfCBOU1BvaW50ZXJGdW5jdGlvbnNJbnRlZ2VyUGVyc29uYWxpdHk7Cisg
ICAgbV9vd25lcnMgPSBbW05TTWFwVGFibGUgYWxsb2NdIGluaXRXaXRoS2V5T3B0aW9uczp3ZWFr
SURPcHRpb25zIHZhbHVlT3B0aW9uczppbnRlZ2VyT3B0aW9ucyBjYXBhY2l0eToxXTsKKwogICAg
IEpTQzo6SlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCBbdmFsdWUgSlNWYWx1ZVJlZl0pOwog
ICAgIGlmIChqc1ZhbHVlLmlzT2JqZWN0KCkpCiAgICAgICAgIG1fd2Vha1ZhbHVlLnNldE9iamVj
dChKU0M6OmpzQ2FzdDxKU0M6OkpTT2JqZWN0Kj4oanNWYWx1ZS5hc0NlbGwoKSksIHNlbGYpOwpA
QCAtMjA1LDYgKzIxNyw0MyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWYWx1ZTooSlNWYWx1
ZSAqCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpZGVhbGxvYworeworICAgIEpTVmly
dHVhbE1hY2hpbmUgKnZpcnR1YWxNYWNoaW5lID0gW1tbc2VsZiB2YWx1ZV0gY29udGV4dF0gdmly
dHVhbE1hY2hpbmVdOworICAgIGlmICh2aXJ0dWFsTWFjaGluZSkgeworICAgICAgICBmb3IgKGlk
IG93bmVyIGluIFttX293bmVycyBrZXlFbnVtZXJhdG9yXSkgeworICAgICAgICAgICAgc2l6ZV90
IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG1fb3duZXJzLCBvd25l
cikpOworICAgICAgICAgICAgd2hpbGUgKGNvdW50LS0pCisgICAgICAgICAgICAgICAgW3ZpcnR1
YWxNYWNoaW5lIHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6c2VsZiB3aXRoT3duZXI6b3duZXJdOwor
ICAgICAgICB9CisgICAgfQorCisgICAgW3NlbGYgZGlzY29ubmVjdFZhbHVlXTsKKyAgICBbbV9v
d25lcnMgcmVsZWFzZV07CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWRpZEFk
ZE93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKyAgICBOU01hcEluc2VydChtX293
bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOworfQorCist
ICh2b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcgoreworICAgIHNpemVfdCBjb3VudCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8c2l6ZV90PihOU01hcEdldChtX293bmVycywgb3duZXIpKTsKKworICAg
IGlmICghY291bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb3VudCA9PSAxKSB7Cisg
ICAgICAgIE5TTWFwUmVtb3ZlKG1fb3duZXJzLCBvd25lcik7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisKKyAgICBOU01hcEluc2VydChtX293bmVycywgb3duZXIsIHJlaW50ZXJwcmV0X2Nhc3Q8
dm9pZCo+KGNvdW50IC0gMSkpOworfQorCiAtIChKU1ZhbHVlICopdmFsdWUKIHsKICAgICBpZiAo
IW1fZ2xvYmFsT2JqZWN0KQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU01hbmFn
ZWRWYWx1ZUludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU01hbmFnZWRWYWx1ZUludGVybmFsLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBKU01hbmFnZWRWYWx1ZUludGVybmFs
X2gKKyNkZWZpbmUgSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbF9oCisKKyNpbXBvcnQgPEphdmFTY3Jp
cHRDb3JlL0pTQmFzZS5oPgorCisjaWYgSlNDX09CSkNfQVBJX0VOQUJMRUQKKworQGludGVyZmFj
ZSBKU01hbmFnZWRWYWx1ZShJbnRlcm5hbCkKKworLSAodm9pZClkaWRBZGRPd25lcjooaWQpb3du
ZXI7CistICh2b2lkKWRpZFJlbW92ZU93bmVyOihpZClvd25lcjsKKworQGVuZAorCisjZW5kaWYg
Ly8gSlNDX09CSkNfQVBJX0VOQUJMRUQKKworI2VuZGlmIC8vIEpTTWFuYWdlZFZhbHVlSW50ZXJu
YWxfaApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZpcnR1YWxNYWNoaW5lLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWaXJ0dWFsTWFjaGlu
ZS5tbQkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1Zp
cnR1YWxNYWNoaW5lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbXBv
cnQgIkFQSUNhc3QuaCIKICNpbXBvcnQgIkFQSVNoaW1zLmgiCisjaW1wb3J0ICJKU01hbmFnZWRW
YWx1ZUludGVybmFsLmgiCiAjaW1wb3J0ICJKU1ZpcnR1YWxNYWNoaW5lLmgiCiAjaW1wb3J0ICJK
U1ZpcnR1YWxNYWNoaW5lSW50ZXJuYWwuaCIKICNpbXBvcnQgIkpTV3JhcHBlck1hcC5oIgpAQCAt
MTYxLDcgKzE2MiwxMiBAQCAtICh2b2lkKWFkZE1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3
CiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGggc2V0T2JqZWN0Om93bmVkT2JqZWN0cyBm
b3JLZXk6b3duZXJdOwogICAgICAgICBbb3duZWRPYmplY3RzIHJlbGVhc2VdOwogICAgIH0KLSAg
ICBOU01hcEluc2VydChvd25lZE9iamVjdHMsIG9iamVjdCwgcmVpbnRlcnByZXRfY2FzdDx2b2lk
Kj4ocmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93bmVkT2JqZWN0cywgb2JqZWN0
KSkgKyAxKSk7CisKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1
ZSBjbGFzc11dKQorICAgICAgICBbb2JqZWN0IGRpZEFkZE93bmVyOm93bmVyXTsKKyAgICAgICAg
CisgICAgc2l6ZV90IGNvdW50ID0gcmVpbnRlcnByZXRfY2FzdDxzaXplX3Q+KE5TTWFwR2V0KG93
bmVkT2JqZWN0cywgb2JqZWN0KSk7CisgICAgTlNNYXBJbnNlcnQob3duZWRPYmplY3RzLCBvYmpl
Y3QsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGNvdW50ICsgMSkpOwogfQogCiAtICh2b2lkKXJl
bW92ZU1hbmFnZWRSZWZlcmVuY2U6KGlkKW9iamVjdCB3aXRoT3duZXI6KGlkKW93bmVyCkBAIC0x
ODcsNiArMTkzLDkgQEAgLSAodm9pZClyZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOihpZClvYmplYwog
ICAgIGlmIChjb3VudCA9PSAxKQogICAgICAgICBOU01hcFJlbW92ZShvd25lZE9iamVjdHMsIG9i
amVjdCk7CiAKKyAgICBpZiAoW29iamVjdCBpc0tpbmRPZkNsYXNzOltKU01hbmFnZWRWYWx1ZSBj
bGFzc11dKQorICAgICAgICBbb2JqZWN0IGRpZFJlbW92ZU93bmVyOm93bmVyXTsKKwogICAgIGlm
ICghW293bmVkT2JqZWN0cyBjb3VudF0pCiAgICAgICAgIFttX2V4dGVybmFsT2JqZWN0R3JhcGgg
cmVtb3ZlT2JqZWN0Rm9yS2V5Om93bmVyXTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvV2ViS2l0QXZhaWxhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkocmV2aXNpb24gMTYzNTQ5KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9XZWJLaXRBdmFpbGFiaWxpdHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMjcsMTAgKzI3LDMwIEBACiAjZGVmaW5lIF9fV2ViS2l0QXZhaWxhYmlsaXR5X18KIAog
I2lmZGVmIF9fQVBQTEVfXworCiAjaW5jbHVkZSA8QXZhaWxhYmlsaXR5TWFjcm9zLmg+CiAjaW5j
bHVkZSA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KLSNlbHNlCisKKyNpZiAhZGVm
aW5lZChOU19BVkFJTEFCTEUpCisjZGVmaW5lIE5TX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2Vu
ZGlmIC8vICFkZWZpbmVkKE5TX0FWQUlMQUJMRSkKKyNpZiAhZGVmaW5lZChDRl9BVkFJTEFCTEUp
CisjZGVmaW5lIENGX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorI2VuZGlmIC8vICFkZWZpbmVkKENG
X0FWQUlMQUJMRSkKKworI2Vsc2UgLy8gX19BUFBMRV9fCisKICNkZWZpbmUgQ0ZfQVZBSUxBQkxF
KF9tYWMsIF9pb3MpCisjZGVmaW5lIE5TX0FWQUlMQUJMRShfbWFjLCBfaW9zKQorCisjZW5kaWYg
Ly8gX19BUFBMRV9fCisKKyNpZiAhZGVmaW5lZChfX05TaV8xMF8xMCkKKyNkZWZpbmUgX19OU2lf
MTBfMTAgaW50cm9kdWNlZD0xMC4xMAorI2VuZGlmCisKKyNpZiAhZGVmaW5lZChfX05TaV84XzAp
CisjZGVmaW5lIF9fTlNpXzhfMCBpbnRyb2R1Y2VkPTguMAogI2VuZGlmCiAKICNlbmRpZiAvKiBf
X1dlYktpdEF2YWlsYWJpbGl0eV9fICovCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L3Rlc3RzL3Rlc3RhcGkubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS90ZXN0cy90ZXN0YXBpLm1tCShyZXZpc2lvbiAxNjM1NDkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MiwxMyArMTcy
LDYgQEAgLSAodm9pZCljbGljawogICAgIEpTVmFsdWUgKmZ1bmN0aW9uID0gW21fb25jbGlja0hh
bmRsZXIgdmFsdWVdOwogICAgIFtmdW5jdGlvbiBjYWxsV2l0aEFyZ3VtZW50czpbTlNBcnJheSBh
cnJheV1dOwogfQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW1ttX29uY2xpY2tIYW5kbGVyIHZh
bHVlXS5jb250ZXh0LnZpcnR1YWxNYWNoaW5lIHJlbW92ZU1hbmFnZWRSZWZlcmVuY2U6bV9vbmNs
aWNrSGFuZGxlciB3aXRoT3duZXI6c2VsZl07Ci0jaWYgIV9faGFzX2ZlYXR1cmUob2JqY19hcmMp
Ci0gICAgW3N1cGVyIGRlYWxsb2NdOwotI2VuZGlmCi19CiBAZW5kCiAKIEBjbGFzcyBUaW55RE9N
Tm9kZTsKQEAgLTIxMywxOCArMjA2LDYgQEAgLSAoaWQpaW5pdFdpdGhWaXJ0dWFsTWFjaGluZToo
SlNWaXJ0dWFsTQogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAg
ICBmb3IgKFRpbnlET01Ob2RlICpjaGlsZCBpbiBtX2NoaWxkcmVuKQotICAgICAgICBbbV9zaGFy
ZWRWaXJ0dWFsTWFjaGluZSByZW1vdmVNYW5hZ2VkUmVmZXJlbmNlOmNoaWxkIHdpdGhPd25lcjpz
ZWxmXTsKLQotI2lmICFfX2hhc19mZWF0dXJlKG9iamNfYXJjKQotICAgIFttX2NoaWxkcmVuIHJl
bGVhc2VdOwotICAgIFttX3NoYXJlZFZpcnR1YWxNYWNoaW5lIHJlbGVhc2VdOwotICAgIFtzdXBl
ciBkZWFsbG9jXTsKLSNlbmRpZgotfQotCiAtICh2b2lkKWFwcGVuZENoaWxkOihUaW55RE9NTm9k
ZSAqKWNoaWxkCiB7CiAgICAgW21fc2hhcmVkVmlydHVhbE1hY2hpbmUgYWRkTWFuYWdlZFJlZmVy
ZW5jZTpjaGlsZCB3aXRoT3duZXI6c2VsZl07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMTYzNTQ5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTc0Myw2
ICs3NDMsNyBAQAogCQkyQTM0M0Y3NjE4QTE3NDhCMDAzOUIwODUgLyogR0NTZWdtZW50ZWRBcnJh
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkEzNDNG
NzQxOEExNzQ4QjAwMzlCMDg1IC8qIEdDU2VnbWVudGVkQXJyYXkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyQTM0M0Y3ODE4QTE3NDlEMDAzOUIw
ODUgLyogR0NTZWdtZW50ZWRBcnJheUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJBMzQzRjc3MThBMTc0OUQwMDM5QjA4NSAvKiBHQ1NlZ21l
bnRlZEFycmF5SW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTJBNDhEMTkxMTc3MjM2NUIwMEM2NUE1RiAvKiBBUElDYWxsYmFja0Z1bmN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjEx
QjU3NDE3NkEyMjREMDAwRTJBMjMgLyogQVBJQ2FsbGJhY2tGdW5jdGlvbi5oICovOyB9OworCQky
QTRCQjdGMzE4QTQxMTc5MDA4QTBGQ0QgLyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkE0QkI3RjIxOEE0MTE3
OTAwOEEwRkNEIC8qIEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCAqLzsgfTsKIAkJMkE0RUM5MEIx
ODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTRFQzkwOTE4NjBENkMyMDA5NEY3ODIg
LyogV3JpdGVCYXJyaWVyQnVmZmVyLmNwcCAqLzsgfTsKIAkJMkE0RUM5MEMxODYwRDZDMjAwOTRG
NzgyIC8qIFdyaXRlQmFycmllckJ1ZmZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkE0RUM5MEExODYwRDZDMjAwOTRGNzgyIC8qIFdyaXRlQmFycmll
ckJ1ZmZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTJBNjgyOTVCMTg3NUY4MDUwMEI2QzNFMiAvKiBDb3B5V3JpdGVCYXJyaWVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQTY4Mjk1QTE4NzVGODA1
MDBCNkMzRTIgLyogQ29weVdyaXRlQmFycmllci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0yMTMxLDYgKzIxMzIsNyBAQAogCQkyQTI4MjVDRjE4
MzQxRjJEMDA4N0ZCQTkgLyogRGVsYXllZFJlbGVhc2VTY29wZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZWxheWVkUmVsZWFzZVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTJBMzQzRjc0MThBMTc0OEIwMDM5QjA4NSAvKiBHQ1NlZ21lbnRlZEFycmF5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdDU2VnbWVudGVkQXJyYXkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkEzNDNGNzcxOEExNzQ5RDAwMzlCMDg1IC8q
IEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdDU2VnbWVudGVkQXJyYXlJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJBNEJCN0YyMThBNDExNzkwMDhBMEZDRCAvKiBKU01hbmFnZWRWYWx1ZUludGVybmFsLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkE0RUM5MDkxODYwRDZDMjAwOTRGNzgy
IC8qIFdyaXRlQmFycmllckJ1ZmZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXcml0ZUJhcnJpZXJCdWZmZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyQTRFQzkwQTE4NjBENkMyMDA5NEY3ODIgLyogV3JpdGVCYXJyaWVyQnVmZmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdyaXRlQmFycmllckJ1ZmZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQTY4Mjk1QTE4NzVGODA1MDBCNkMzRTIgLyogQ29w
eVdyaXRlQmFycmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb3B5V3Jp
dGVCYXJyaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0zNDA2LDYgKzM0MDgs
NyBAQAogCQkxNDMyRUJENzBBMzRDQUQ0MDA3MTdCOUYgLyogQVBJICovID0gewogCQkJaXNhID0g
UEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkyQTRCQjdGMjE4QTQxMTc5MDA4QTBGQ0Qg
LyogSlNNYW5hZ2VkVmFsdWVJbnRlcm5hbC5oICovLAogCQkJCUMyMTFCNTc0MTc2QTIyNEQwMDBF
MkEyMyAvKiBBUElDYWxsYmFja0Z1bmN0aW9uLmggKi8sCiAJCQkJMTQ4MkI3OEEwQTQzMDVBQjAw
NTE3Q0ZDIC8qIEFQSUNhc3QuaCAqLywKIAkJCQk4NjVGNDA4NzEwRTdENTYzMDA5NDczNjEgLyog
QVBJU2hpbXMuaCAqLywKQEAgLTQ3NjMsNiArNDc2Niw3IEBACiAJCQkJQTdEOUEyOTUxN0EwQkM3
NDAwRUUyNjE4IC8qIERGR0F0VGFpbEFic3RyYWN0U3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGNzE0Q0E1MTZFQTkyRjIwMEYzRUJFQiAvKiBERkdCYWNrd2FyZHNQcm9wYWdhdGlvblBoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjYyMDE3NjE0M0ZDRDNCMDA2OEI3N0MgLyogREZHQmFz
aWNCbG9jay5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkE0QkI3RjMxOEE0MTE3OTAwOEEwRkNEIC8q
IEpTTWFuYWdlZFZhbHVlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkI5MjFBMTZE
MDJFQzUwMDU1QTVEQiAvKiBERkdCYXNpY0Jsb2NrSW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTcwQjA4MzMxN0EwQjc5QjAwREFGMTRCIC8qIERGR0JpbmFyeVN3aXRjaC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTdEODlDRjQxN0EwQjhDQzAwNzczQUQ4IC8qIERGR0Jsb2NrSW5zZXJ0aW9u
U2V0LmggaW4gSGVhZGVycyAqLywK
</data>

          </attachment>
      

    </bug>

</bugzilla>