<?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>123556</bug_id>
          
          <creation_ts>2013-10-30 22:08:23 -0700</creation_ts>
          <short_desc>IDB Database versions are uint64_t, not int64_t</short_desc>
          <delta_ts>2013-10-31 02:08:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>naginenis</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>945374</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-30 22:08:23 -0700</bug_when>
    <thetext>Database versions are uint64_t, not int64_t

This is mandated in the spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945375</commentid>
    <comment_count>1</comment_count>
      <attachid>215613</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-30 22:10:19 -0700</bug_when>
    <thetext>Created attachment 215613
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945378</commentid>
    <comment_count>2</comment_count>
      <attachid>215613</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-30 22:18:45 -0700</bug_when>
    <thetext>Comment on attachment 215613
Patch v1 

Attachment 215613 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/17758097</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945380</commentid>
    <comment_count>3</comment_count>
      <attachid>215613</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-10-30 22:22:01 -0700</bug_when>
    <thetext>Comment on attachment 215613
Patch v1 

Attachment 215613 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/16058436</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945383</commentid>
    <comment_count>4</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-30 22:27:12 -0700</bug_when>
    <thetext>&gt; e/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:496:205: error: format &apos;%llu&apos; expects argument of type &apos;long long unsigned int&apos;, but argument 3 has type &apos;uint64_t {aka long unsigned int}&apos; [-Werror=format]


Sure hate different compilers disagreeing with each other, because the exact opposite problem is in clang/llvm.

Guess I&apos;ll have to leave the static casts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945385</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-30 22:29:11 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; e/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:496:205: error: format &apos;%llu&apos; expects argument of type &apos;long long unsigned int&apos;, but argument 3 has type &apos;uint64_t {aka long unsigned int}&apos; [-Werror=format]
&gt; 
&gt; 
&gt; Sure hate different compilers disagreeing with each other, because the exact opposite problem is in clang/llvm.
&gt; 
&gt; Guess I&apos;ll have to leave the static casts.

would PRIu64 instead of %llu work there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945387</commentid>
    <comment_count>6</comment_count>
      <attachid>215616</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-30 22:30:09 -0700</bug_when>
    <thetext>Created attachment 215616
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945390</commentid>
    <comment_count>7</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-10-30 22:37:52 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; &gt; e/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:496:205: error: format &apos;%llu&apos; expects argument of type &apos;long long unsigned int&apos;, but argument 3 has type &apos;uint64_t {aka long unsigned int}&apos; [-Werror=format]
&gt; &gt; 
&gt; &gt; 
&gt; &gt; Sure hate different compilers disagreeing with each other, because the exact opposite problem is in clang/llvm.
&gt; &gt; 
&gt; &gt; Guess I&apos;ll have to leave the static casts.
&gt; 
&gt; would PRIu64 instead of %llu work there?

The way those inttypes style macros work is ugly and unfamiliar to many... Not sure we use them anywhere in the project.  And I&apos;m going to spend the time to make sure Windows likes them, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945396</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Correia (qrwteyrutiyoup)">sergio</who>
    <bug_when>2013-10-30 23:00:17 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; &gt; e/WebCore/Modules/indexeddb/IDBDatabaseBackendImpl.cpp:496:205: error: format &apos;%llu&apos; expects argument of type &apos;long long unsigned int&apos;, but argument 3 has type &apos;uint64_t {aka long unsigned int}&apos; [-Werror=format]
&gt; &gt; &gt; 
&gt; &gt; &gt; 
&gt; &gt; &gt; Sure hate different compilers disagreeing with each other, because the exact opposite problem is in clang/llvm.
&gt; &gt; &gt; 
&gt; &gt; &gt; Guess I&apos;ll have to leave the static casts.
&gt; &gt; 
&gt; &gt; would PRIu64 instead of %llu work there?
&gt; 
&gt; The way those inttypes style macros work is ugly and unfamiliar to many... Not sure we use them anywhere in the project.  And I&apos;m going to spend the time to make sure Windows likes them, too.

Ugly, indeed :)

And yeah, it seems like MSVC might have issues, considering we have a JavaScriptCore/os-win32/inttypes.h, so looks like it isn&apos;t worth the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945402</commentid>
    <comment_count>9</comment_count>
      <attachid>215616</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-30 23:25:16 -0700</bug_when>
    <thetext>Comment on attachment 215616
Patch v2 

Clearing flags on attachment: 215616

Committed r158348: &lt;http://trac.webkit.org/changeset/158348&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945403</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-30 23:25:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945462</commentid>
    <comment_count>11</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2013-10-31 02:04:11 -0700</bug_when>
    <thetext>This patch resulted a debug build fail with the following error.

WebKit/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp: In member function ‘virtual bool WebCore::IDBBackingStoreLevelDB::updateIDBDatabaseVersion(WebCore::IDBBackingStoreInterface::Transaction&amp;, int64_t, uint64_t)’:
WebKit/Source/WebCore/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:599:25: error: comparison of unsigned expression &gt;= 0 is always true [-Werror=type-limits]
cc1plus: all warnings being treated as errors
make[2]: *** [Source/WebCore/CMakeFiles/WebCore.dir/Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp.o] Error 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945465</commentid>
    <comment_count>12</comment_count>
    <who name="Sudarsana Nagineni (babu)">naginenis</who>
    <bug_when>2013-10-31 02:08:59 -0700</bug_when>
    <thetext>Proposed patch for build failure is in https://bugs.webkit.org/show_bug.cgi?id=123562.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215613</attachid>
            <date>2013-10-30 22:10:19 -0700</date>
            <delta_ts>2013-10-30 22:30:09 -0700</delta_ts>
            <desc>Patch v1 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21297</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlOTYxYzAwLi5mOWQwMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTMtMTAtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElEQiBEYXRhYmFzZSB2ZXJzaW9ucyBhcmUgdWludDY0X3QsIG5vdCBpbnQ2NF90CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oOgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oOgorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ09wZW5DYWxsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJREJQZW5kaW5nT3BlbkNhbGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJQZW5kaW5nT3BlbkNhbGw6OnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCUGVuZGlu
Z09wZW5DYWxsOjpJREJQZW5kaW5nT3BlbkNhbGwpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uOjpwZXJm
b3JtKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0
b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERC
Ojp1cGRhdGVJREJEYXRhYmFzZVZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRMZXZlbERCOjpvcGVuKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oOgorCiAyMDEz
LTEwLTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIDg1
IGluc3BlY3RvciB0ZXN0cyBhc3NlcnRpbmcgaW4gRHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKaW5kZXgg
MGY4YTgyZC4uZGFkNjY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKQEAgLTkwLDcgKzkwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURC
S2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFs
IGJvb2wgdXBkYXRlSURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VWZXJzaW9uKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCB1aW50NjRfdCB2ZXJzaW9u
KSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24m
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBJREJSZWNvcmRJZGVudGlmaWVyKikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwYTFhNjE3Li4wYzU4YTBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcApAQCAtMzkxLDggKzM5MSw3IEBAIHNpemVfdCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjb25uZWN0aW9uQ291bnQoKQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
Ojpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKIHsKICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9w
ZW4pIHsKLSAgICAgICAgLy8gRklYTUU6IERhdGFiYXNlIHZlcnNpb25zIGFyZSBub3cgb2YgdHlw
ZSB1aW50NjRfdCwgYnV0IHRoaXMgY29kZSBleHBlY3RlZCBpbnQ2NF90LgotICAgICAgICBBU1NF
UlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPnZlcnNpb24oKSA9PSAoaW50NjRfdCltX21ldGFk
YXRhLnZlcnNpb24pOworICAgICAgICBBU1NFUlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPnZl
cnNpb24oKSA9PSBtX21ldGFkYXRhLnZlcnNpb24pOwogICAgICAgICBBU1NFUlQobV9tZXRhZGF0
YS5pZCAhPSBJbnZhbGlkSWQpOwogICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Blbi0+Y2Fs
bGJhY2tzKCktPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5tZXRhZGF0YSgpKTsKICAgICAgICAgbV9w
ZW5kaW5nU2Vjb25kSGFsZk9wZW4ucmVsZWFzZSgpOwpAQCAtNDM5LDcgKzQzOCw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBQYXNzUmVmUHRyCiAgICAgbV90cmFuc2FjdGlvbnMuYWRkKHRyYW5zYWN0aW9uSWQs
IHRyYW5zYWN0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpv
cGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCit2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFj
a3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tz
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pCiB7CiAgICAgQVNTRVJU
KG1fYmFja2luZ1N0b3JlLmdldCgpKTsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MgPSBwcnBDYWxsYmFja3M7CkBAIC00NjAsNyArNDU5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2Fs
bGJhY2sKICAgICAgICAgICAgIGlmICh2ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5v
SW50VmVyc2lvbikKICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkludGVybmFsIGVycm9yIG9w
ZW5pbmcgZGF0YWJhc2Ugd2l0aCBubyB2ZXJzaW9uIHNwZWNpZmllZC4iOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiSW50ZXJuYWwg
ZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24gJWxsZCIsIHN0YXRpY19jYXN0PGxv
bmcgbG9uZz4odmVyc2lvbikpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6OmZv
cm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24gJWxsdSIs
IHZlcnNpb24pOwogICAgICAgICAgICAgY2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJy
b3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBtZXNzYWdlKSk7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTQ4OCwyMCArNDg3LDE3IEBAIHZv
aWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+IHBycENhbGxiYWNrCiAgICAgICAgIHZlcnNpb24gPSAxOwogICAgIH0KIAotICAg
IC8vIEZJWE1FOiBEYXRhYmFzZSB2ZXJzaW9ucyBhcmUgbm93IG9mIHR5cGUgdWludDY0X3QsIGJ1
dCB0aGlzIGNvZGUgZXhwZWN0ZWQgaW50NjRfdC4KLSAgICBpZiAodmVyc2lvbiA+IChpbnQ2NF90
KW1fbWV0YWRhdGEudmVyc2lvbikgeworICAgIGlmICh2ZXJzaW9uID4gbV9tZXRhZGF0YS52ZXJz
aW9uKSB7CiAgICAgICAgIHJ1bkludFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjYWxsYmFja3Ms
IGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBEYXRhYmFzZSB2ZXJzaW9ucyBhcmUgbm93IG9m
IHR5cGUgdWludDY0X3QsIGJ1dCB0aGlzIGNvZGUgZXhwZWN0ZWQgaW50NjRfdC4KLSAgICBpZiAo
dmVyc2lvbiA8IChpbnQ2NF90KW1fbWV0YWRhdGEudmVyc2lvbikgewotICAgICAgICBjYWxsYmFj
a3MtPm9uRXJyb3IoSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9u
OjpWZXJzaW9uRXJyb3IsIFN0cmluZzo6Zm9ybWF0KCJUaGUgcmVxdWVzdGVkIHZlcnNpb24gKCVs
bGQpIGlzIGxlc3MgdGhhbiB0aGUgZXhpc3RpbmcgdmVyc2lvbiAoJWxsZCkuIiwgc3RhdGljX2Nh
c3Q8bG9uZyBsb25nPih2ZXJzaW9uKSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihtX21ldGFkYXRh
LnZlcnNpb24pKSkpOworICAgIGlmICh2ZXJzaW9uIDwgbV9tZXRhZGF0YS52ZXJzaW9uKSB7Cisg
ICAgICAgIGNhbGxiYWNrcy0+b25FcnJvcihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0
YWJhc2VFeGNlcHRpb246OlZlcnNpb25FcnJvciwgU3RyaW5nOjpmb3JtYXQoIlRoZSByZXF1ZXN0
ZWQgdmVyc2lvbiAoJWxsdSkgaXMgbGVzcyB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uICglbGx1
KS4iLCB2ZXJzaW9uLCBtX21ldGFkYXRhLnZlcnNpb24pKSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICAvLyBGSVhNRTogRGF0YWJhc2UgdmVyc2lvbnMgYXJlIG5vdyBvZiB0eXBlIHVp
bnQ2NF90LCBidXQgdGhpcyBjb2RlIGV4cGVjdGVkIGludDY0X3QuCi0gICAgQVNTRVJUKHZlcnNp
b24gPT0gKGludDY0X3QpbV9tZXRhZGF0YS52ZXJzaW9uKTsKKyAgICBBU1NFUlQodmVyc2lvbiA9
PSBtX21ldGFkYXRhLnZlcnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRh
dGFiYXNlQ2FsbGJhY2tzKTsKICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5t
ZXRhZGF0YSgpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaAppbmRleCBmNDA3NTg1Li40MDAwNmM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgYWRkSW5kZXgoaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFk
YXRhJiwgaW50NjRfdCBuZXdNYXhJbmRleElkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
cmVtb3ZlSW5kZXgoaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpIE9WRVJS
SURFOwogCi0gICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4s
IFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3QgdmVyc2lvbik7CisgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pOwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2Uo
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KTsKIAogICAgIC8vIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNjM5YTZhNy4uMzZjOTk1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJh
Y2tlbmRJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIH5JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGdldERhdGFiYXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmlu
ZyYgZGF0YURpcikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFt
ZSwgaW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1l
T3JpZ2luKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1
aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3Jp
Z2luKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYg
bmFtZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2lu
PiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcm
IHVuaXF1ZUlkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdPcGVuQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCUGVuZGluZ09wZW5DYWxsLmgKaW5kZXggMTY3NWM3My4uMTkzY2VlYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ09w
ZW5DYWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGlu
Z09wZW5DYWxsLmgKQEAgLTM4LDE3ICszOCwxNyBAQCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNr
czsKIAogY2xhc3MgSURCUGVuZGluZ09wZW5DYWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFz
c093blB0cjxJREJQZW5kaW5nT3BlbkNhbGw+IGNyZWF0ZShJREJDYWxsYmFja3MmIGNhbGxiYWNr
cywgSURCRGF0YWJhc2VDYWxsYmFja3MmIGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbikKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJQZW5k
aW5nT3BlbkNhbGw+IGNyZWF0ZShJREJDYWxsYmFja3MmIGNhbGxiYWNrcywgSURCRGF0YWJhc2VD
YWxsYmFja3MmIGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2
NF90IHZlcnNpb24pCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IElEQlBlbmRp
bmdPcGVuQ2FsbChjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2
ZXJzaW9uKSk7CiAgICAgfQogICAgIElEQkNhbGxiYWNrcyogY2FsbGJhY2tzKCkgeyByZXR1cm4g
bV9jYWxsYmFja3MuZ2V0KCk7IH0KICAgICBJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VD
YWxsYmFja3MoKSB7IHJldHVybiBtX2RhdGFiYXNlQ2FsbGJhY2tzLmdldCgpOyB9Ci0gICAgaW50
NjRfdCB2ZXJzaW9uKCkgeyByZXR1cm4gbV92ZXJzaW9uOyB9CisgICAgdWludDY0X3QgdmVyc2lv
bigpIHsgcmV0dXJuIG1fdmVyc2lvbjsgfQogICAgIGludDY0X3QgdHJhbnNhY3Rpb25JZCgpIGNv
bnN0IHsgcmV0dXJuIG1fdHJhbnNhY3Rpb25JZDsgfQogCiBwcml2YXRlOgotICAgIElEQlBlbmRp
bmdPcGVuQ2FsbChJREJDYWxsYmFja3MmIGNhbGxiYWNrcywgSURCRGF0YWJhc2VDYWxsYmFja3Mm
IGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lv
bikKKyAgICBJREJQZW5kaW5nT3BlbkNhbGwoSURCQ2FsbGJhY2tzJiBjYWxsYmFja3MsIElEQkRh
dGFiYXNlQ2FsbGJhY2tzJiBkYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklk
LCB1aW50NjRfdCB2ZXJzaW9uKQogICAgICAgICA6IG1fY2FsbGJhY2tzKCZjYWxsYmFja3MpCiAg
ICAgICAgICwgbV9kYXRhYmFzZUNhbGxiYWNrcygmZGF0YWJhc2VDYWxsYmFja3MpCiAgICAgICAg
ICwgbV92ZXJzaW9uKHZlcnNpb24pCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgfQog
ICAgIFJlZlB0cjxJREJDYWxsYmFja3M+IG1fY2FsbGJhY2tzOwogICAgIFJlZlB0cjxJREJEYXRh
YmFzZUNhbGxiYWNrcz4gbV9kYXRhYmFzZUNhbGxiYWNrczsKLSAgICBpbnQ2NF90IG1fdmVyc2lv
bjsKKyAgICB1aW50NjRfdCBtX3ZlcnNpb247CiAgICAgY29uc3QgaW50NjRfdCBtX3RyYW5zYWN0
aW9uSWQ7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCmluZGV4
IGM4MTY5MzkuLjczYmJlN2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25z
LmNwcApAQCAtMzUyLDcgKzM1Miw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6VmVy
c2lvbkNoYW5nZU9wZXJhdGlvbjo6cGVyZm9ybSgpCiAgICAgLy8gRklYTUU6IERhdGFiYXNlIHZl
cnNpb25zIGFyZSBub3cgb2YgdHlwZSB1aW50NjRfdCwgYnV0IHRoaXMgY29kZSBleHBlY3RlZCBp
bnQ2NF90LgogICAgIEFTU0VSVChtX3ZlcnNpb24gPiAoaW50NjRfdClvbGRWZXJzaW9uKTsKICAg
ICBkYXRhYmFzZS5zZXRDdXJyZW50VmVyc2lvbihtX3ZlcnNpb24pOwotICAgIGlmICghZGF0YWJh
c2UuYmFja2luZ1N0b3JlKCktPnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihtX3RyYW5zYWN0
aW9uLT5iYWNraW5nU3RvcmVUcmFuc2FjdGlvbigpLCBkYXRhYmFzZUlkLCBkYXRhYmFzZS5tZXRh
ZGF0YSgpLnZlcnNpb24pKSB7CisgICAgaWYgKCFkYXRhYmFzZS5iYWNraW5nU3RvcmUoKS0+dXBk
YXRlSURCRGF0YWJhc2VWZXJzaW9uKG1fdHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uKCksIGRhdGFiYXNlSWQsIGRhdGFiYXNlLm1ldGFkYXRhKCkudmVyc2lvbikpIHsKICAgICAg
ICAgUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3Jl
YXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJFcnJvciB3cml0aW5nIGRh
dGEgdG8gc3RhYmxlIHN0b3JhZ2Ugd2hlbiB1cGRhdGluZyB2ZXJzaW9uLiIpOwogICAgICAgICBt
X2NhbGxiYWNrcy0+b25FcnJvcihlcnJvcik7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFib3J0
KGVycm9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xl
dmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9sZXZlbGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCmluZGV4IDFkYmUz
YmYuLjEyNDlmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAt
NTkyLDEyICs1OTIsMTIgQEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJREJE
YXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZUlu
dFZlcnNpb24oSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rp
b24sIGludDY0X3Qgcm93SWQsIGludDY0X3QgaW50VmVyc2lvbikKK2Jvb2wgSURCQmFja2luZ1N0
b3JlTGV2ZWxEQjo6dXBkYXRlSURCRGF0YWJhc2VWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IHJvd0lkLCB1aW50NjRfdCB2
ZXJzaW9uKQogewotICAgIGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5v
SW50VmVyc2lvbikKLSAgICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRl
ZmF1bHRJbnRWZXJzaW9uOwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaW50VmVyc2lvbiA+PSAw
LCAiaW50VmVyc2lvbiB3YXMgJWxsZCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oaW50VmVyc2lv
bikpOwotICAgIHB1dFZhckludChUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0
cmFuc2FjdGlvbiksIERhdGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VN
ZXRhRGF0YUtleTo6VXNlckludFZlcnNpb24pLCBpbnRWZXJzaW9uKTsKKyAgICBpZiAodmVyc2lv
biA9PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pCisgICAgICAgIHZlcnNpb24g
PSBJREJEYXRhYmFzZU1ldGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbjsKKyAgICBBU1NFUlRfV0lU
SF9NRVNTQUdFKHZlcnNpb24gPj0gMCwgInZlcnNpb24gd2FzICVsbHUiLCB2ZXJzaW9uKTsKKyAg
ICBwdXRWYXJJbnQoVHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2FjdGlvbkZyb20odHJhbnNhY3Rp
b24pLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQsIERhdGFiYXNlTWV0YURhdGFL
ZXk6OlVzZXJJbnRWZXJzaW9uKSwgdmVyc2lvbik7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2
ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKaW5kZXggZTBjZTUyOS4uZTkyMjE4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNr
aW5nU3RvcmVMZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
bGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKQEAgLTczLDcgKzczLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFEYXRhKGNvbnN0IFN0cmluZyYg
bmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIHN1Y2Nlc3MpIE9WRVJSSURFIFdBUk5f
VU5VU0VEX1JFVFVSTjsKICAgICB2aXJ0dWFsIGJvb2wgY3JlYXRlSURCRGF0YWJhc2VNZXRhRGF0
YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVyc2lvbiwgaW50NjRfdCBpbnRW
ZXJzaW9uLCBpbnQ2NF90JiByb3dJZCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHVwZGF0
ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlv
biYsIGludDY0X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lvbik7Ci0gICAgdmlydHVhbCBi
b29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNraW5nU3RvcmVJbnRlcmZhY2U6
OlRyYW5zYWN0aW9uJiwgaW50NjRfdCByb3dJZCwgaW50NjRfdCBpbnRWZXJzaW9uKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VWZXJzaW9uKElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCB1aW50NjRfdCB2ZXJz
aW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3Ry
aW5nJiBuYW1lKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9vbCBnZXRPYmplY3RTdG9yZXMo
aW50NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRhYmFzZU1ldGFkYXRhOjpPYmplY3RTdG9yZU1hcCop
IE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJhY2tl
bmRMZXZlbERCLmNwcAppbmRleCA5NDMyYmMxLi44NjM3NGEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxE
Qi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJG
YWN0b3J5QmFja2VuZExldmVsREIuY3BwCkBAIC0xNjIsNyArMTYyLDcgQEAgUGFzc1JlZlB0cjxJ
REJCYWNraW5nU3RvcmVMZXZlbERCPiBJREJGYWN0b3J5QmFja2VuZExldmVsREI6Om9wZW5CYWNr
aW5nU3RvcmUoY28KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJREJGYWN0b3J5QmFja2VuZExl
dmVsREI6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90IHZlcnNpb24sIGludDY0X3Qg
dHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYpCit2b2lkIElE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6b3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIHVpbnQ2NF90
IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxs
YmFja3MsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJGYWN0b3J5QmFja2VuZExldmVs
REI6Om9wZW4iKTsKICAgICBjb25zdCBTdHJpbmcgdW5pcXVlSWRlbnRpZmllciA9IGNvbXB1dGVV
bmlxdWVJZGVudGlmaWVyKG5hbWUsIG9wZW5pbmdPcmlnaW4pOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVs
REIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9y
eUJhY2tlbmRMZXZlbERCLmgKaW5kZXggYjcxOTRiYS4uM2Q3NDA0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExl
dmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lE
QkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNvbnN0IFN0cmluZyYgdW5pcXVl
SWRlbnRpZmllcikgT1ZFUlJJREUgRklOQUw7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJh
c2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8U2VjdXJpdHlPcmln
aW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVS
UklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGlu
dDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxi
YWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdp
bikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBu
YW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZy
YW1lT3JpZ2luKSBPVkVSUklERSBGSU5BTDsKIAogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVEYXRh
YmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBTdHJp
bmcmIGRhdGFEaXIpIE9WRVJSSURFIEZJTkFMOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWIwN2M4MS4uYjZj
MjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEzLTEwLTMwICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJREIgRGF0YWJhc2UgdmVyc2lvbnMg
YXJlIHVpbnQ2NF90LCBub3QgaW50NjRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNTU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
RmFjdG9yeUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJGYWN0b3J5QmFja2Vu
ZDo6b3Blbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklE
QkZhY3RvcnlCYWNrZW5kLmg6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQ6Om9wZW5Db25uZWN0aW9uKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFj
a2VuZC5oOgorCiAyMDEzLTEwLTMwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAK
ICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgIVdLX0FQSV9FTkFCTEVEIE1hYyBidWlsZC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJ
REJGYWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmluZGV4IGRjMzU4ODUuLjlmZjM1
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmNwcApAQCAtNzAs
NyArNzAsNyBAQCB2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpnZXREYXRhYmFzZU5hbWVzKFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cgogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4oY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJh
Y2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYpCit2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpv
cGVuKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90
IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIFBhc3NS
ZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2FsbGJhY2tzLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJikKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhTdG9yYWdlQVBJLCAiV2ViSURCRmFj
dG9yeUJhY2tlbmQ6Om9wZW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5k
LmgKaW5kZXggYjQwNTgyMS4uZTRlMmZjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3Rv
cnlCYWNrZW5kLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfldlYklE
QkZhY3RvcnlCYWNrZW5kKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBkYXRhRGlyKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJh
c2VDYWxsYmFja3M+LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdp
biwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG1haW5GcmFtZU9yaWdpbikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCB2
ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJD
b3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRhYmFzZUJhY2tlbmQoY29uc3Qg
U3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJQcm9jZXNzSURCRGF0YWJh
c2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmNwcAppbmRleCA3Y2U1MTBiLi5mMzc5
NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYlByb2Nlc3NJREJEYXRhYmFzZUJh
Y2tlbmQuY3BwCkBAIC01OSw3ICs1OSw3IEBAIFdlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQ6
On5XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kKCkKIHsKIH0KIAotdm9pZCBXZWJQcm9jZXNz
SURCRGF0YWJhc2VCYWNrZW5kOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRh
YmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCit2
b2lkIFdlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQ6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQ
dHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxs
YmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2
NF90IHZlcnNpb24pCiB7CiAgICAgLy8gRklYTUU6IE1ha2UgdGhpcyBtZXNzYWdlIGluY2x1ZGUg
bmVjZXNzYXJ5IGFyZ3VtZW50cywgYW5kIHNhdmUgb2ZmIHRoZXNlIGNhbGxiYWNrcyBhbmQgYXJn
dW1lbnRzIGZvciBsYXRlciB1c2UuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViUHJvY2Vz
c0lEQkRhdGFiYXNlQmFja2VuZC5oCmluZGV4IGE3ZWM5ZDUuLjNlNTc3MTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJQcm9jZXNz
SURCRGF0YWJhc2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQuaApAQCAtODYsNyAr
ODYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OklEQkZhY3RvcnlCYWNrZW5k
SW50ZXJmYWNlJiBmYWN0b3J5QmFja2VuZCgpIE9WRVJSSURFOwogCi0gICAgdm9pZCBvcGVuQ29u
bmVjdGlvbihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3QgdmVyc2lvbik7CisgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPFdlYkNvcmU6
OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pOwogCiAgICAgdm9pZCBl
c3RhYmxpc2hEYXRhYmFzZVByb2Nlc3NCYWNrZW5kKCk7CiAK
</data>
<flag name="commit-queue"
          id="238383"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215616</attachid>
            <date>2013-10-30 22:30:09 -0700</date>
            <delta_ts>2013-10-30 23:25:16 -0700</delta_ts>
            <desc>Patch v2 </desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>21429</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBlOTYxYzAwLi5mOWQwMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMTMtMTAtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAg
ICAgIElEQiBEYXRhYmFzZSB2ZXJzaW9ucyBhcmUgdWludDY0X3QsIG5vdCBpbnQ2NF90CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjM1NTYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oOgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwcm9jZXNzUGVuZGluZ0NhbGxzKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQkRhdGFiYXNlQmFja2VuZEltcGw6Om9wZW5Db25uZWN0aW9uKToKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmg6CisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oOgorCisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ09wZW5DYWxsLmg6CisgICAgICAgIChX
ZWJDb3JlOjpJREJQZW5kaW5nT3BlbkNhbGw6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJQZW5kaW5nT3BlbkNhbGw6OnZlcnNpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCUGVuZGlu
Z09wZW5DYWxsOjpJREJQZW5kaW5nT3BlbkNhbGwpOgorCisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvSURCVHJhbnNhY3Rpb25CYWNrZW5kT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpWZXJzaW9uQ2hhbmdlT3BlcmF0aW9uOjpwZXJm
b3JtKToKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2luZ1N0
b3JlTGV2ZWxEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmVMZXZlbERC
Ojp1cGRhdGVJREJEYXRhYmFzZVZlcnNpb24pOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oOgorCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCRmFjdG9yeUJhY2tlbmRMZXZlbERCOjpvcGVuKToKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oOgorCiAyMDEz
LTEwLTMwICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIDg1
IGluc3BlY3RvciB0ZXN0cyBhc3NlcnRpbmcgaW4gRHJhd2luZ0FyZWFQcm94eUltcGw6OnVwZGF0
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZUludGVyZmFjZS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKaW5kZXgg
MGY4YTgyZC4uZGFkNjY5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlSW50ZXJmYWNlLmgKQEAgLTkwLDcgKzkwLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBrZXlFeGlzdHNJbkluZGV4KElEQkJhY2tpbmdT
dG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qg
b2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBjb25zdCBJREJLZXkmLCBSZWZQdHI8SURC
S2V5PiYgZm91bmRQcmltYXJ5S2V5LCBib29sJiBleGlzdHMpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUpID0gMDsKLSAgICB2aXJ0dWFs
IGJvb2wgdXBkYXRlSURCRGF0YWJhc2VJbnRWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFj
ZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCBpbnQ2NF90IGludFZlcnNpb24pID0gMDsK
KyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VWZXJzaW9uKElEQkJhY2tpbmdTdG9y
ZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJvd0lkLCB1aW50NjRfdCB2ZXJzaW9u
KSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVy
ZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPGNoYXI+JiByZWNvcmQpID0gMDsKICAgICB2aXJ0
dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24m
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBJREJSZWNvcmRJZGVudGlmaWVyKikg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0
YWJhc2VCYWNrZW5kSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcAppbmRleCAwYTFhNjE3Li4zYTljMGI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmNwcApAQCAtMzkxLDggKzM5MSw3IEBAIHNpemVfdCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpjb25uZWN0aW9uQ291bnQoKQogdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBs
Ojpwcm9jZXNzUGVuZGluZ0NhbGxzKCkKIHsKICAgICBpZiAobV9wZW5kaW5nU2Vjb25kSGFsZk9w
ZW4pIHsKLSAgICAgICAgLy8gRklYTUU6IERhdGFiYXNlIHZlcnNpb25zIGFyZSBub3cgb2YgdHlw
ZSB1aW50NjRfdCwgYnV0IHRoaXMgY29kZSBleHBlY3RlZCBpbnQ2NF90LgotICAgICAgICBBU1NF
UlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPnZlcnNpb24oKSA9PSAoaW50NjRfdCltX21ldGFk
YXRhLnZlcnNpb24pOworICAgICAgICBBU1NFUlQobV9wZW5kaW5nU2Vjb25kSGFsZk9wZW4tPnZl
cnNpb24oKSA9PSBtX21ldGFkYXRhLnZlcnNpb24pOwogICAgICAgICBBU1NFUlQobV9tZXRhZGF0
YS5pZCAhPSBJbnZhbGlkSWQpOwogICAgICAgICBtX3BlbmRpbmdTZWNvbmRIYWxmT3Blbi0+Y2Fs
bGJhY2tzKCktPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5tZXRhZGF0YSgpKTsKICAgICAgICAgbV9w
ZW5kaW5nU2Vjb25kSGFsZk9wZW4ucmVsZWFzZSgpOwpAQCAtNDM5LDcgKzQzOCw3IEBAIHZvaWQg
SURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6Y3JlYXRlVHJhbnNhY3Rpb24oaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBQYXNzUmVmUHRyCiAgICAgbV90cmFuc2FjdGlvbnMuYWRkKHRyYW5zYWN0aW9uSWQs
IHRyYW5zYWN0aW9uLmdldCgpKTsKIH0KIAotdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpv
cGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNz
UmVmUHRyPElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50NjRf
dCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IHZlcnNpb24pCit2b2lkIElEQkRhdGFiYXNlQmFja2Vu
ZEltcGw6Om9wZW5Db25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFj
a3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tz
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pCiB7CiAgICAgQVNTRVJU
KG1fYmFja2luZ1N0b3JlLmdldCgpKTsKICAgICBSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFj
a3MgPSBwcnBDYWxsYmFja3M7CkBAIC00NjAsNyArNDU5LDcgQEAgdm9pZCBJREJEYXRhYmFzZUJh
Y2tlbmRJbXBsOjpvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2Fs
bGJhY2sKICAgICAgICAgICAgIGlmICh2ZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5v
SW50VmVyc2lvbikKICAgICAgICAgICAgICAgICBtZXNzYWdlID0gIkludGVybmFsIGVycm9yIG9w
ZW5pbmcgZGF0YWJhc2Ugd2l0aCBubyB2ZXJzaW9uIHNwZWNpZmllZC4iOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiSW50ZXJuYWwg
ZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24gJWxsZCIsIHN0YXRpY19jYXN0PGxv
bmcgbG9uZz4odmVyc2lvbikpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBTdHJpbmc6OmZv
cm1hdCgiSW50ZXJuYWwgZXJyb3Igb3BlbmluZyBkYXRhYmFzZSB3aXRoIHZlcnNpb24gJWxsdSIs
IHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4odmVyc2lvbikpOwogICAgICAgICAgICAg
Y2FsbGJhY2tzLT5vbkVycm9yKElEQkRhdGFiYXNlRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBtZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KQEAgLTQ4OCwyMCArNDg3LDE3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1w
bDo6b3BlbkNvbm5lY3Rpb24oUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IHBycENhbGxiYWNrCiAg
ICAgICAgIHZlcnNpb24gPSAxOwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBEYXRhYmFzZSB2ZXJz
aW9ucyBhcmUgbm93IG9mIHR5cGUgdWludDY0X3QsIGJ1dCB0aGlzIGNvZGUgZXhwZWN0ZWQgaW50
NjRfdC4KLSAgICBpZiAodmVyc2lvbiA+IChpbnQ2NF90KW1fbWV0YWRhdGEudmVyc2lvbikgewor
ICAgIGlmICh2ZXJzaW9uID4gbV9tZXRhZGF0YS52ZXJzaW9uKSB7CiAgICAgICAgIHJ1bkludFZl
cnNpb25DaGFuZ2VUcmFuc2FjdGlvbihjYWxsYmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFu
c2FjdGlvbklkLCB2ZXJzaW9uKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIC8vIEZJ
WE1FOiBEYXRhYmFzZSB2ZXJzaW9ucyBhcmUgbm93IG9mIHR5cGUgdWludDY0X3QsIGJ1dCB0aGlz
IGNvZGUgZXhwZWN0ZWQgaW50NjRfdC4KLSAgICBpZiAodmVyc2lvbiA8IChpbnQ2NF90KW1fbWV0
YWRhdGEudmVyc2lvbikgewotICAgICAgICBjYWxsYmFja3MtPm9uRXJyb3IoSURCRGF0YWJhc2VF
cnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpWZXJzaW9uRXJyb3IsIFN0cmluZzo6
Zm9ybWF0KCJUaGUgcmVxdWVzdGVkIHZlcnNpb24gKCVsbGQpIGlzIGxlc3MgdGhhbiB0aGUgZXhp
c3RpbmcgdmVyc2lvbiAoJWxsZCkuIiwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPih2ZXJzaW9uKSwg
c3RhdGljX2Nhc3Q8bG9uZyBsb25nPihtX21ldGFkYXRhLnZlcnNpb24pKSkpOworICAgIGlmICh2
ZXJzaW9uIDwgbV9tZXRhZGF0YS52ZXJzaW9uKSB7CisgICAgICAgIGNhbGxiYWNrcy0+b25FcnJv
cihJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoSURCRGF0YWJhc2VFeGNlcHRpb246OlZlcnNpb25F
cnJvciwgU3RyaW5nOjpmb3JtYXQoIlRoZSByZXF1ZXN0ZWQgdmVyc2lvbiAoJWxsdSkgaXMgbGVz
cyB0aGFuIHRoZSBleGlzdGluZyB2ZXJzaW9uICglbGx1KS4iLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KHZlcnNpb24pLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG1f
bWV0YWRhdGEudmVyc2lvbikpKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBG
SVhNRTogRGF0YWJhc2UgdmVyc2lvbnMgYXJlIG5vdyBvZiB0eXBlIHVpbnQ2NF90LCBidXQgdGhp
cyBjb2RlIGV4cGVjdGVkIGludDY0X3QuCi0gICAgQVNTRVJUKHZlcnNpb24gPT0gKGludDY0X3Qp
bV9tZXRhZGF0YS52ZXJzaW9uKTsKKyAgICBBU1NFUlQodmVyc2lvbiA9PSBtX21ldGFkYXRhLnZl
cnNpb24pOwogICAgIG1fZGF0YWJhc2VDYWxsYmFja3NTZXQuYWRkKGRhdGFiYXNlQ2FsbGJhY2tz
KTsKICAgICBjYWxsYmFja3MtPm9uU3VjY2Vzcyh0aGlzLCB0aGlzLT5tZXRhZGF0YSgpKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFi
YXNlQmFja2VuZEltcGwuaAppbmRleCBmNDA3NTg1Li40MDAwNmM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1w
bC5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkSW5kZXgo
aW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJJbmRleE1ldGFkYXRhJiwgaW50NjRfdCBu
ZXdNYXhJbmRleElkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSW5kZXgoaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQpIE9WRVJSSURFOwogCi0gICAgdm9p
ZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lv
bik7CisgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBh
c3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVp
bnQ2NF90IHZlcnNpb24pOwogICAgIHZvaWQgZGVsZXRlRGF0YWJhc2UoUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KTsKIAogICAgIC8vIElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJ
bnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkZhY3RvcnlC
YWNrZW5kSW50ZXJmYWNlLmgKaW5kZXggNjM5YTZhNy4uMzZjOTk1MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2Vu
ZEludGVyZmFjZS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JREJG
YWN0b3J5QmFja2VuZEludGVyZmFjZSgpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIGdldERhdGFi
YXNlTmFtZXMoUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3Jp
Z2luPiwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBvcGVuKGNvbnN0IFN0cmluZyYgbmFtZSwgaW50NjRfdCB2ZXJz
aW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFz
c1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVu
aW5nT3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCB2ZXJzaW9u
LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1Jl
ZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5n
T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIGRlbGV0ZURhdGFiYXNlKGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc1JlZlB0
cjxJREJDYWxsYmFja3M+LCBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiwgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCosIGNvbnN0IFN0cmluZyYgZGF0YURpcikgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIHJlbW92ZUlEQkRhdGFiYXNlQmFja2VuZChjb25zdCBTdHJpbmcmIHVuaXF1ZUlkZW50aWZp
ZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QlBlbmRpbmdPcGVuQ2FsbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
UGVuZGluZ09wZW5DYWxsLmgKaW5kZXggMTY3NWM3My4uMTkzY2VlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ09wZW5DYWxsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCUGVuZGluZ09wZW5DYWxsLmgKQEAg
LTM4LDE3ICszOCwxNyBAQCBjbGFzcyBJREJEYXRhYmFzZUNhbGxiYWNrczsKIAogY2xhc3MgSURC
UGVuZGluZ09wZW5DYWxsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJQZW5k
aW5nT3BlbkNhbGw+IGNyZWF0ZShJREJDYWxsYmFja3MmIGNhbGxiYWNrcywgSURCRGF0YWJhc2VD
YWxsYmFja3MmIGRhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0
X3QgdmVyc2lvbikKKyAgICBzdGF0aWMgUGFzc093blB0cjxJREJQZW5kaW5nT3BlbkNhbGw+IGNy
ZWF0ZShJREJDYWxsYmFja3MmIGNhbGxiYWNrcywgSURCRGF0YWJhc2VDYWxsYmFja3MmIGRhdGFi
YXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pCiAg
ICAgewogICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3IElEQlBlbmRpbmdPcGVuQ2FsbChjYWxs
YmFja3MsIGRhdGFiYXNlQ2FsbGJhY2tzLCB0cmFuc2FjdGlvbklkLCB2ZXJzaW9uKSk7CiAgICAg
fQogICAgIElEQkNhbGxiYWNrcyogY2FsbGJhY2tzKCkgeyByZXR1cm4gbV9jYWxsYmFja3MuZ2V0
KCk7IH0KICAgICBJREJEYXRhYmFzZUNhbGxiYWNrcyogZGF0YWJhc2VDYWxsYmFja3MoKSB7IHJl
dHVybiBtX2RhdGFiYXNlQ2FsbGJhY2tzLmdldCgpOyB9Ci0gICAgaW50NjRfdCB2ZXJzaW9uKCkg
eyByZXR1cm4gbV92ZXJzaW9uOyB9CisgICAgdWludDY0X3QgdmVyc2lvbigpIHsgcmV0dXJuIG1f
dmVyc2lvbjsgfQogICAgIGludDY0X3QgdHJhbnNhY3Rpb25JZCgpIGNvbnN0IHsgcmV0dXJuIG1f
dHJhbnNhY3Rpb25JZDsgfQogCiBwcml2YXRlOgotICAgIElEQlBlbmRpbmdPcGVuQ2FsbChJREJD
YWxsYmFja3MmIGNhbGxiYWNrcywgSURCRGF0YWJhc2VDYWxsYmFja3MmIGRhdGFiYXNlQ2FsbGJh
Y2tzLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbikKKyAgICBJREJQZW5k
aW5nT3BlbkNhbGwoSURCQ2FsbGJhY2tzJiBjYWxsYmFja3MsIElEQkRhdGFiYXNlQ2FsbGJhY2tz
JiBkYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCB1aW50NjRfdCB2ZXJz
aW9uKQogICAgICAgICA6IG1fY2FsbGJhY2tzKCZjYWxsYmFja3MpCiAgICAgICAgICwgbV9kYXRh
YmFzZUNhbGxiYWNrcygmZGF0YWJhc2VDYWxsYmFja3MpCiAgICAgICAgICwgbV92ZXJzaW9uKHZl
cnNpb24pCkBAIC01Nyw3ICs1Nyw3IEBAIHByaXZhdGU6CiAgICAgfQogICAgIFJlZlB0cjxJREJD
YWxsYmFja3M+IG1fY2FsbGJhY2tzOwogICAgIFJlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4g
bV9kYXRhYmFzZUNhbGxiYWNrczsKLSAgICBpbnQ2NF90IG1fdmVyc2lvbjsKKyAgICB1aW50NjRf
dCBtX3ZlcnNpb247CiAgICAgY29uc3QgaW50NjRfdCBtX3RyYW5zYWN0aW9uSWQ7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bkJhY2tlbmRPcGVyYXRpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQlRyYW5zYWN0aW9uQmFja2VuZE9wZXJhdGlvbnMuY3BwCmluZGV4IGM4MTY5MzkuLjczYmJl
N2JmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFu
c2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbkJhY2tlbmRPcGVyYXRpb25zLmNwcApAQCAtMzUyLDcg
KzM1Miw3IEBAIHZvaWQgSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6VmVyc2lvbkNoYW5nZU9wZXJh
dGlvbjo6cGVyZm9ybSgpCiAgICAgLy8gRklYTUU6IERhdGFiYXNlIHZlcnNpb25zIGFyZSBub3cg
b2YgdHlwZSB1aW50NjRfdCwgYnV0IHRoaXMgY29kZSBleHBlY3RlZCBpbnQ2NF90LgogICAgIEFT
U0VSVChtX3ZlcnNpb24gPiAoaW50NjRfdClvbGRWZXJzaW9uKTsKICAgICBkYXRhYmFzZS5zZXRD
dXJyZW50VmVyc2lvbihtX3ZlcnNpb24pOwotICAgIGlmICghZGF0YWJhc2UuYmFja2luZ1N0b3Jl
KCktPnVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihtX3RyYW5zYWN0aW9uLT5iYWNraW5nU3Rv
cmVUcmFuc2FjdGlvbigpLCBkYXRhYmFzZUlkLCBkYXRhYmFzZS5tZXRhZGF0YSgpLnZlcnNpb24p
KSB7CisgICAgaWYgKCFkYXRhYmFzZS5iYWNraW5nU3RvcmUoKS0+dXBkYXRlSURCRGF0YWJhc2VW
ZXJzaW9uKG1fdHJhbnNhY3Rpb24tPmJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKCksIGRhdGFiYXNl
SWQsIGRhdGFiYXNlLm1ldGFkYXRhKCkudmVyc2lvbikpIHsKICAgICAgICAgUmVmUHRyPElEQkRh
dGFiYXNlRXJyb3I+IGVycm9yID0gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNl
RXhjZXB0aW9uOjpVbmtub3duRXJyb3IsICJFcnJvciB3cml0aW5nIGRhdGEgdG8gc3RhYmxlIHN0
b3JhZ2Ugd2hlbiB1cGRhdGluZyB2ZXJzaW9uLiIpOwogICAgICAgICBtX2NhbGxiYWNrcy0+b25F
cnJvcihlcnJvcik7CiAgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFib3J0KGVycm9yKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFja2lu
Z1N0b3JlTGV2ZWxEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZl
bGRiL0lEQkJhY2tpbmdTdG9yZUxldmVsREIuY3BwCmluZGV4IDFkYmUzYmYuLmU1YTMyNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCQmFj
a2luZ1N0b3JlTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmNwcApAQCAtNTkyLDEyICs1OTIsMTIg
QEAgYm9vbCBJREJCYWNraW5nU3RvcmVMZXZlbERCOjpjcmVhdGVJREJEYXRhYmFzZU1ldGFEYXRh
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBJ
REJCYWNraW5nU3RvcmVMZXZlbERCOjp1cGRhdGVJREJEYXRhYmFzZUludFZlcnNpb24oSURCQmFj
a2luZ1N0b3JlSW50ZXJmYWNlOjpUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGludDY0X3Qgcm93
SWQsIGludDY0X3QgaW50VmVyc2lvbikKK2Jvb2wgSURCQmFja2luZ1N0b3JlTGV2ZWxEQjo6dXBk
YXRlSURCRGF0YWJhc2VWZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBpbnQ2NF90IHJvd0lkLCB1aW50NjRfdCB2ZXJzaW9uKQogewotICAg
IGlmIChpbnRWZXJzaW9uID09IElEQkRhdGFiYXNlTWV0YWRhdGE6Ok5vSW50VmVyc2lvbikKLSAg
ICAgICAgaW50VmVyc2lvbiA9IElEQkRhdGFiYXNlTWV0YWRhdGE6OkRlZmF1bHRJbnRWZXJzaW9u
OwotICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoaW50VmVyc2lvbiA+PSAwLCAiaW50VmVyc2lvbiB3
YXMgJWxsZCIsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oaW50VmVyc2lvbikpOwotICAgIHB1dFZh
ckludChUcmFuc2FjdGlvbjo6bGV2ZWxEQlRyYW5zYWN0aW9uRnJvbSh0cmFuc2FjdGlvbiksIERh
dGFiYXNlTWV0YURhdGFLZXk6OmVuY29kZShyb3dJZCwgRGF0YWJhc2VNZXRhRGF0YUtleTo6VXNl
ckludFZlcnNpb24pLCBpbnRWZXJzaW9uKTsKKyAgICBpZiAodmVyc2lvbiA9PSBJREJEYXRhYmFz
ZU1ldGFkYXRhOjpOb0ludFZlcnNpb24pCisgICAgICAgIHZlcnNpb24gPSBJREJEYXRhYmFzZU1l
dGFkYXRhOjpEZWZhdWx0SW50VmVyc2lvbjsKKyAgICBBU1NFUlRfV0lUSF9NRVNTQUdFKHZlcnNp
b24gPj0gMCwgInZlcnNpb24gd2FzICVsbHUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxv
bmc+KHZlcnNpb24pKTsKKyAgICBwdXRWYXJJbnQoVHJhbnNhY3Rpb246OmxldmVsREJUcmFuc2Fj
dGlvbkZyb20odHJhbnNhY3Rpb24pLCBEYXRhYmFzZU1ldGFEYXRhS2V5OjplbmNvZGUocm93SWQs
IERhdGFiYXNlTWV0YURhdGFLZXk6OlVzZXJJbnRWZXJzaW9uKSwgdmVyc2lvbik7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2xldmVsZGIvSURCQmFja2luZ1N0b3JlTGV2ZWxEQi5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKaW5kZXggZTBj
ZTUyOS4uZTkyMjE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJCYWNraW5nU3RvcmVMZXZlbERCLmgKQEAgLTcz
LDcgKzczLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBnZXRJREJEYXRhYmFzZU1ldGFE
YXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgSURCRGF0YWJhc2VNZXRhZGF0YSosIGJvb2wmIHN1Y2Nl
c3MpIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKICAgICB2aXJ0dWFsIGJvb2wgY3JlYXRl
SURCRGF0YWJhc2VNZXRhRGF0YShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmVy
c2lvbiwgaW50NjRfdCBpbnRWZXJzaW9uLCBpbnQ2NF90JiByb3dJZCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlTWV0YURhdGEoSURCQmFja2luZ1N0b3JlSW50
ZXJmYWNlOjpUcmFuc2FjdGlvbiYsIGludDY0X3Qgcm93SWQsIGNvbnN0IFN0cmluZyYgdmVyc2lv
bik7Ci0gICAgdmlydHVhbCBib29sIHVwZGF0ZUlEQkRhdGFiYXNlSW50VmVyc2lvbihJREJCYWNr
aW5nU3RvcmVJbnRlcmZhY2U6OlRyYW5zYWN0aW9uJiwgaW50NjRfdCByb3dJZCwgaW50NjRfdCBp
bnRWZXJzaW9uKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgdXBkYXRlSURCRGF0YWJhc2VW
ZXJzaW9uKElEQkJhY2tpbmdTdG9yZUludGVyZmFjZTo6VHJhbnNhY3Rpb24mLCBpbnQ2NF90IHJv
d0lkLCB1aW50NjRfdCB2ZXJzaW9uKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgZGVsZXRl
RGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgYm9v
bCBnZXRPYmplY3RTdG9yZXMoaW50NjRfdCBkYXRhYmFzZUlkLCBJREJEYXRhYmFzZU1ldGFkYXRh
OjpPYmplY3RTdG9yZU1hcCopIE9WRVJSSURFIFdBUk5fVU5VU0VEX1JFVFVSTjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVsZGIvSURCRmFjdG9yeUJh
Y2tlbmRMZXZlbERCLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2xldmVs
ZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmNwcAppbmRleCA5NDMyYmMxLi44NjM3NGEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9sZXZlbGRiL0lEQkZh
Y3RvcnlCYWNrZW5kTGV2ZWxEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvbGV2ZWxkYi9JREJGYWN0b3J5QmFja2VuZExldmVsREIuY3BwCkBAIC0xNjIsNyArMTYy
LDcgQEAgUGFzc1JlZlB0cjxJREJCYWNraW5nU3RvcmVMZXZlbERCPiBJREJGYWN0b3J5QmFja2Vu
ZExldmVsREI6Om9wZW5CYWNraW5nU3RvcmUoY28KICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBJ
REJGYWN0b3J5QmFja2VuZExldmVsREI6Om9wZW4oY29uc3QgU3RyaW5nJiBuYW1lLCBpbnQ2NF90
IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxiYWNrcz4gZGF0YWJhc2VDYWxs
YmFja3MsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYpCit2b2lkIElEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQjo6b3Blbihjb25zdCBTdHJp
bmcmIG5hbWUsIHVpbnQ2NF90IHZlcnNpb24sIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNhbGxi
YWNrcz4gZGF0YWJhc2VDYWxsYmFja3MsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3Jp
Z2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYpCiB7CiAgICAgTE9HKFN0b3JhZ2VBUEksICJJREJG
YWN0b3J5QmFja2VuZExldmVsREI6Om9wZW4iKTsKICAgICBjb25zdCBTdHJpbmcgdW5pcXVlSWRl
bnRpZmllciA9IGNvbXB1dGVVbmlxdWVJZGVudGlmaWVyKG5hbWUsIG9wZW5pbmdPcmlnaW4pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJG
YWN0b3J5QmFja2VuZExldmVsREIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2xldmVsZGIvSURCRmFjdG9yeUJhY2tlbmRMZXZlbERCLmgKaW5kZXggYjcxOTRiYS4uM2Q3NDA0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9J
REJGYWN0b3J5QmFja2VuZExldmVsREIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9sZXZlbGRiL0lEQkZhY3RvcnlCYWNrZW5kTGV2ZWxEQi5oCkBAIC01OSw3ICs1OSw3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlSURCRGF0YWJhc2VCYWNrZW5kKGNv
bnN0IFN0cmluZyYgdW5pcXVlSWRlbnRpZmllcikgT1ZFUlJJREUgRklOQUw7CiAKICAgICB2aXJ0
dWFsIHZvaWQgZ2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8U2VjdXJpdHlPcmlnaW4+LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBkYXRhRGlyKSBPVkVSUklERSBGSU5BTDsKLSAgICB2aXJ0dWFsIHZvaWQgb3Blbihjb25z
dCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBQ
YXNzUmVmUHRyPElEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgU2VjdXJpdHlPcmln
aW4mIG1haW5GcmFtZU9yaWdpbikgT1ZFUlJJREUgRklOQUw7CisgICAgdmlydHVhbCB2b2lkIG9w
ZW4oY29uc3QgU3RyaW5nJiBuYW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxJREJEYXRhYmFzZUNh
bGxiYWNrcz4sIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2luLCBjb25zdCBTZWN1
cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBPVkVSUklERSBGSU5BTDsKIAogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVEYXRhYmFzZShjb25zdCBTdHJpbmcmIG5hbWUsIFBhc3NSZWZQdHI8SURC
Q2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4sIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqLCBjb25zdCBTdHJpbmcmIGRhdGFEaXIpIE9WRVJSSURFIEZJTkFMOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggOWIwN2M4MS4uYjZjMjU4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEz
LTEwLTMwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJREIg
RGF0YWJhc2UgdmVyc2lvbnMgYXJlIHVpbnQ2NF90LCBub3QgaW50NjRfdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNTU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJGYWN0b3J5QmFja2VuZDo6b3Blbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9EYXRhYmFz
ZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmg6CisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQ6Om9wZW5Db25u
ZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViUHJv
Y2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oOgorCiAyMDEzLTEwLTMwICBEYW4gQmVybnN0ZWluICA8
bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJ5IHRvIGZpeCB0aGUgIVdLX0FQSV9FTkFCTEVE
IE1hYyBidWlsZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJh
c2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCRmFjdG9yeUJhY2tlbmQuY3BwCmlu
ZGV4IGRjMzU4ODUuLjlmZjM1MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFja2VuZC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3RvcnlC
YWNrZW5kLmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFdlYklEQkZhY3RvcnlCYWNrZW5kOjpn
ZXREYXRhYmFzZU5hbWVzKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cgogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4o
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBQYXNzUmVmUHRy
PElEQkRhdGFiYXNlQ2FsbGJhY2tzPiBkYXRhYmFzZUNhbGxiYWNrcywgY29uc3QgU2VjdXJpdHlP
cmlnaW4mIHNlY3VyaXR5T3JpZ2luLCBjb25zdCBTZWN1cml0eU9yaWdpbiYpCit2b2lkIFdlYklE
QkZhY3RvcnlCYWNrZW5kOjpvcGVuKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCB1aW50NjRf
dCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tz
PiBjYWxsYmFja3MsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IGRhdGFiYXNlQ2Fs
bGJhY2tzLCBjb25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4sIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExPRyhTdG9y
YWdlQVBJLCAiV2ViSURCRmFjdG9yeUJhY2tlbmQ6Om9wZW4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJGYWN0b3J5QmFj
a2VuZC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dl
YklEQkZhY3RvcnlCYWNrZW5kLmgKaW5kZXggYjQwNTgyMS4uZTRlMmZjZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkZhY3Rv
cnlCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5k
ZXhlZERCL1dlYklEQkZhY3RvcnlCYWNrZW5kLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgfldlYklEQkZhY3RvcnlCYWNrZW5kKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0RGF0YWJhc2VOYW1lcyhQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NS
ZWZQdHI8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgY29uc3QgU3RyaW5nJiBkYXRhRGlyKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZv
aWQgb3Blbihjb25zdCBTdHJpbmcmIG5hbWUsIGludDY0X3QgdmVyc2lvbiwgaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYgb3BlbmluZ09yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIG1haW5G
cmFtZU9yaWdpbikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIG9wZW4oY29uc3QgU3RyaW5n
JiBuYW1lLCB1aW50NjRfdCB2ZXJzaW9uLCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFz
ZUNhbGxiYWNrcz4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiBvcGVuaW5nT3JpZ2lu
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgbWFpbkZyYW1lT3JpZ2luKSBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlRGF0YWJhc2UoY29uc3QgU3RyaW5nJiBuYW1lLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4+LCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgY29uc3QgU3Ry
aW5nJiBkYXRhRGlyKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJREJEYXRh
YmFzZUJhY2tlbmQoY29uc3QgU3RyaW5nJiB1bmlxdWVJZGVudGlmaWVyKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9X
ZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmNwcApp
bmRleCA3Y2U1MTBiLi5mMzc5NGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYlBy
b2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQuY3BwCkBAIC01OSw3ICs1OSw3IEBAIFdlYlByb2Nlc3NJ
REJEYXRhYmFzZUJhY2tlbmQ6On5XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kKCkKIHsKIH0K
IAotdm9pZCBXZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kOjpvcGVuQ29ubmVjdGlvbihQYXNz
UmVmUHRyPElEQkNhbGxiYWNrcz4gcHJwQ2FsbGJhY2tzLCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
Q2FsbGJhY2tzPiBwcnBEYXRhYmFzZUNhbGxiYWNrcywgaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IHZlcnNpb24pCit2b2lkIFdlYlByb2Nlc3NJREJEYXRhYmFzZUJhY2tlbmQ6Om9wZW5D
b25uZWN0aW9uKFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBwcnBDYWxsYmFja3MsIFBhc3NSZWZQ
dHI8SURCRGF0YWJhc2VDYWxsYmFja3M+IHBycERhdGFiYXNlQ2FsbGJhY2tzLCBpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNpb24pCiB7CiAgICAgLy8gRklYTUU6IE1ha2UgdGhp
cyBtZXNzYWdlIGluY2x1ZGUgbmVjZXNzYXJ5IGFyZ3VtZW50cywgYW5kIHNhdmUgb2ZmIHRoZXNl
IGNhbGxiYWNrcyBhbmQgYXJndW1lbnRzIGZvciBsYXRlciB1c2UuCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJQcm9jZXNzSURC
RGF0YWJhc2VCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9J
bmRleGVkREIvV2ViUHJvY2Vzc0lEQkRhdGFiYXNlQmFja2VuZC5oCmluZGV4IGE3ZWM5ZDUuLjNl
NTc3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0lu
ZGV4ZWREQi9XZWJQcm9jZXNzSURCRGF0YWJhc2VCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYlByb2Nlc3NJREJEYXRhYmFzZUJh
Y2tlbmQuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OklEQkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlJiBmYWN0b3J5QmFja2VuZCgpIE9WRVJSSURFOwog
Ci0gICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNr
cz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCRGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRy
YW5zYWN0aW9uSWQsIGludDY0X3QgdmVyc2lvbik7CisgICAgdm9pZCBvcGVuQ29ubmVjdGlvbihQ
YXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURC
RGF0YWJhc2VDYWxsYmFja3M+LCBpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIHVpbnQ2NF90IHZlcnNp
b24pOwogCiAgICAgdm9pZCBlc3RhYmxpc2hEYXRhYmFzZVByb2Nlc3NCYWNrZW5kKCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>