<?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>150673</bug_id>
          
          <creation_ts>2015-10-29 09:22:16 -0700</creation_ts>
          <short_desc>Modern IDB: deleteObjectStore support</short_desc>
          <delta_ts>2015-11-02 09:43:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=150804</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>150719</dependson>
          <blocked>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137539</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 09:22:16 -0700</bug_when>
    <thetext>Modern IDB: deleteObjectStore support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137638</commentid>
    <comment_count>1</comment_count>
      <attachid>264341</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 13:53:32 -0700</bug_when>
    <thetext>Created attachment 264341
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137656</commentid>
    <comment_count>2</comment_count>
      <attachid>264341</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-29 14:35:51 -0700</bug_when>
    <thetext>Comment on attachment 264341
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/client/IDBTransactionImpl.cpp:456
&gt; +    auto objectStore = m_referencedObjectStores.take(objectStoreName);
&gt; +    if (objectStore)

Declaration could be inside if

&gt; Source/WebCore/Modules/indexeddb/server/MemoryBackingStoreTransaction.cpp:88
&gt; +    auto addResult = m_deletedObjectStores.add(objectStore-&gt;info().name(), nullptr);

ASSERT(objectStore)

&gt; Source/WebCore/Modules/indexeddb/server/MemoryIDBBackingStore.cpp:262
&gt; +

space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137673</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-29 15:11:38 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/191758</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264341</attachid>
            <date>2015-10-29 13:53:32 -0700</date>
            <delta_ts>2015-10-29 14:35:51 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>71922</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZjFlMzY4Li5lOTVhZGZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMTAt
MjkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IGRlbGV0ZU9iamVjdFN0b3JlIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA2NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVv
YmplY3RzdG9yZS0xLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEuaHRtbDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZh
aWx1cmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQt
ZmFpbHVyZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0LWZhaWx1cmVzLmh0bWw6IEFkZGVkLgorCiAyMDE1
LTEwLTI5ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLiBHVEsrIGdhcmRlbmluZzogcmViYXNlbGluZSBtb3JlIHRlc3RzIGFm
dGVyIHIxOTE2MjMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUtMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUtMS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGViYjJiYgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVvYmplY3RzdG9y
ZS0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitBTEVSVDogSW5pdGlhbCB1cGdyYWRl
IG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJzaW9uIC0gMQorQUxFUlQ6IEluaXRpYWwg
dXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlCitBTEVSVDogU2Vjb25k
IHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDog
RGVsZXRpbmcgb2JqZWN0IHN0b3JlCitBTEVSVDogU2Vjb25kIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uIGFib3J0CitBTEVSVDogU3VjY2VzcyBvcGVuaW5nIGRhdGFiYXNlIGNvbm5lY3Rpb24g
LSBTdGFydGluZyBmaW5hbCB0cmFuc2FjdGlvbgorQUxFUlQ6IFZhbHVlIGdvdHRlbiB3YXMgQUgg
QUggQUggQUggQUgKK0FMRVJUOiBWYWx1ZSBnb3R0ZW4gd2FzIEFIIEFIIEFIIEFIIEFICitBTEVS
VDogVmFsdWUgZ290dGVuIHdhcyBBSCBBSCBBSCBBSCBBSAorQUxFUlQ6IFZhbHVlIGdvdHRlbiB3
YXMgQUggQUggQUggQUggQUgKK0FMRVJUOiBWYWx1ZSBnb3R0ZW4gd2FzIEFIIEFIIEFIIEFIIEFI
CitBTEVSVDogVmFsdWUgZ290dGVuIHdhcyBBSCBBSCBBSCBBSCBBSAorQUxFUlQ6IFZhbHVlIGdv
dHRlbiB3YXMgQUggQUggQUggQUggQUgKK0FMRVJUOiBWYWx1ZSBnb3R0ZW4gd2FzIEFIIEFIIEFI
IEFIIEFICitBTEVSVDogVmFsdWUgZ290dGVuIHdhcyBBSCBBSCBBSCBBSCBBSAorQUxFUlQ6IFZh
bHVlIGdvdHRlbiB3YXMgQUggQUggQUggQUggQUgKK0FMRVJUOiBGaW5hbCB0cmFuc2FjdGlvbiBj
b21wbGV0ZQorQUxFUlQ6IERvbmUKK1RoaXMgdGVzdCBjcmVhdGVzIGFuIG9iamVjdCBzdG9yZSB0
aGVuIHBvcHVsYXRlcyBpdCwgdGhlbiBjb21taXRzIHRoYXQgdHJhbnNhY3Rpb24uCitJdCB0aGVu
IGRlbGV0ZXMgaXQsIGJ1dCBhYm9ydHMgdGhhdCB0cmFuc2FjdGlvbi4KK0ZpbmFsbHkgaXQgY2hl
Y2tzIHRvIG1ha2Ugc3VyZSBldmVyeXRoaW5nIGZyb20gc3RlcCAxIGlzIHRoZXJlIGFzIGV4cGVj
dGVkLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlb2JqZWN0c3RvcmUtMS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5mMGIzYjk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZW9iamVjdHN0b3JlLTEuaHRtbApAQCAtMCwwICsxLDE0
MSBAQAorVGhpcyB0ZXN0IGNyZWF0ZXMgYW4gb2JqZWN0IHN0b3JlIHRoZW4gcG9wdWxhdGVzIGl0
LCB0aGVuIGNvbW1pdHMgdGhhdCB0cmFuc2FjdGlvbi48YnI+CitJdCB0aGVuIGRlbGV0ZXMgaXQs
IGJ1dCBhYm9ydHMgdGhhdCB0cmFuc2FjdGlvbi48YnI+CitGaW5hbGx5IGl0IGNoZWNrcyB0byBt
YWtlIHN1cmUgZXZlcnl0aGluZyBmcm9tIHN0ZXAgMSBpcyB0aGVyZSBhcyBleHBlY3RlZC48YnI+
Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rp
b24gZG9uZSgpCit7CisgICAgYWxlcnQoIkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVx
dWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiRGVsZXRlT2JqZWN0U3RvcmUxRGF0YWJhc2Ui
LCAxKTsKKworY3JlYXRlUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkg
eworICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIgKyBl
dmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9uKTsK
KworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0aW9u
OworICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisgICAgdmFyIG9iamVj
dFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwor
ICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsraSkKKyAgICAgICAgb2JqZWN0U3RvcmUucHV0
KCJBSCBBSCBBSCBBSCBBSCIsIGkgKyAiIHB1dHMiKTsKKworICAgIHZlcnNpb25UcmFuc2FjdGlv
bi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBn
cmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnRlZCIpOworICAg
ICAgICBkb25lKCk7CisgICAgfQorCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUiKTsKKyAgICAgICAgY29udGludWVUZXN0MSgp
OworICAgICAgICBkYXRhYmFzZS5jbG9zZSgpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2Fj
dGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwg
dXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgZXJyb3IiICsgZXZl
bnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBnZXRDaGVja2VyKGV2
ZW50KSB7CisgICAgYWxlcnQoIlZhbHVlIGdvdHRlbiB3YXMgIiArIGV2ZW50LnRhcmdldC5yZXN1
bHQpOworfQorCitmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKK3sKKyAgICB2YXIgb3BlblJlcXVl
c3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0ZU9iamVjdFN0b3JlMURhdGFiYXNlIiwg
Mik7CisKKyAgICBvcGVuUmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgYWxlcnQoIlJlcXVlc3QgdW5leHBlY3RlZCBlcnJvciAtICIgKyBldmVudCk7CisgICAgICAg
IGRvbmUoKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub25ibG9ja2VkID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgYWxlcnQoIlJlcXVlc3QgdW5leHBlY3RlZCBibG9ja2VkIC0gIiArIGV2
ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5vbnN1Y2Nlc3Mg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiUmVxdWVzdCB1bmV4cGVjdGVkIHN1
Y2Nlc3MgLSAiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgb3BlblJl
cXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQo
IlNlY29uZCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAiICsgZXZlbnQub2xkVmVyc2lv
biArICIgTmV3IHZlcnNpb24gLSAiICsgZXZlbnQubmV3VmVyc2lvbik7CisgICAgICAgIHZhciB2
ZXJzaW9uVHJhbnNhY3Rpb24gPSBvcGVuUmVxdWVzdC50cmFuc2FjdGlvbjsKKyAgICAgICAgdmFy
IGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICAgICAgdmFyIG9iamVjdFN0b3Jl
ID0gdmVyc2lvblRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAg
ICAgICAgCisgICAgICAgIGFsZXJ0KCJEZWxldGluZyBvYmplY3Qgc3RvcmUiKTsgICAgICAgIAor
ICAgICAgICBkYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CisK
KyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLmFib3J0KCk7CisKKyAgICAgICAgdmVyc2lvblRy
YW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQo
IlNlY29uZCB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiBhYm9ydCIpOworICAgICAgICAgICAg
Y29udGludWVUZXN0MigpOworICAgICAgICAgICAgZGF0YWJhc2UuY2xvc2UoKTsKKyAgICAgICAg
fQorCisgICAgICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJTZWNvbmQgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rp
b24gdW5leHBlY3RlZCBjb21wbGV0ZSIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9
CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB2ZXJzaW9uIGNoYW5nZSB0cmFuc2FjdGlvbiB1
bmV4cGVjdGVkIGVycm9yIC0gIiArIGV2ZW50KTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAg
ICAgfQorICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVUZXN0MigpCit7CisgICAgdmFyIG9w
ZW5SZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJEZWxldGVPYmplY3RTdG9yZTFEYXRh
YmFzZSIsIDEpOworCisgICAgb3BlblJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJSZXF1ZXN0IHVuZXhwZWN0ZWQgZXJyb3IgLSAiICsgZXZlbnQpOwor
ICAgICAgICBkb25lKCk7CisgICAgfQorICAgIG9wZW5SZXF1ZXN0Lm9uYmxvY2tlZCA9IGZ1bmN0
aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJSZXF1ZXN0IHVuZXhwZWN0ZWQgYmxvY2tlZCAt
ICIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisgICAgb3BlblJlcXVlc3Qub251
cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIlJlcXVlc3Qg
dW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkIC0gIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOwor
ICAgIH0KKworICAgIG9wZW5SZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7Cisg
ICAgICAgIGFsZXJ0KCJTdWNjZXNzIG9wZW5pbmcgZGF0YWJhc2UgY29ubmVjdGlvbiAtIFN0YXJ0
aW5nIGZpbmFsIHRyYW5zYWN0aW9uIik7CisgICAgICAgIHZhciBkYXRhYmFzZSA9IGV2ZW50LnRh
cmdldC5yZXN1bHQ7CisgICAgICAgIHZhciB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0
aW9uKCJUZXN0T2JqZWN0U3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgICAgIHZhciBvYmplY3RT
dG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICAK
KyAgICAgICAgdmFyIHJlcXVlc3Q7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMTA7ICsr
aSkgeworICAgICAgICAgICAgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldChpICsgIiBwdXRzIik7
CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGdldENoZWNrZXI7CisgICAgICAgIH0K
KworICAgICAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgICAgIGFsZXJ0KCJGaW5hbCB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGFib3J0Iik7CisgICAg
ICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKworICAgICAgICB0cmFuc2FjdGlvbi5vbmNvbXBs
ZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJGaW5hbCB0cmFuc2Fj
dGlvbiBjb21wbGV0ZSIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICBh
bGVydCgiRmluYWwgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciAtICIgKyBldmVudCk7Cisg
ICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKyAgICB9Cit9Cis8L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJkYXRhYmFzZS1k
ZWxldGVvYmplY3RzdG9yZS1mYWlsdXJlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVy
ZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3ZmZh
NzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTEgQEAKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lv
biAtIDAgTmV3IHZlcnNpb24gLSAxCitBTEVSVDogSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFu
Z2UgdHJhbnNhY3Rpb24gY29tcGxldGUKK0FMRVJUOiByZWFkd3JpdGUgcHV0IHN1Y2Nlc3MgLSBh
Ym91dCB0byB0cnkgdG8gZGVsZXRlIGFuIG9iamVjdHN0b3JlCitBTEVSVDogRmFpbGVkIHRvIGRl
bGV0ZU9iamVjdFN0b3JlIHdpdGhvdXQgYSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIC0gRXJy
b3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExCitBTEVSVDogcmVhZHdyaXRl
IHRyYW5zYWN0aW9uIGNvbXBsZXRlCitBTEVSVDogU2Vjb25kIHVwZ3JhZGUgbmVlZGVkOiBPbGQg
dmVyc2lvbiAtIDEgTmV3IHZlcnNpb24gLSAyCitBTEVSVDogRmFpbGVkIHRvIGRlbGV0ZU9iamVj
dFN0b3JlIHdpdGggYSBub24tZXhpc3RlbnQgb2JqZWN0c3RvcmUgLSBFcnJvcjogTm90Rm91bmRF
cnJvcjogRE9NIElEQkRhdGFiYXNlIEV4Y2VwdGlvbiA4CitBTEVSVDogRmFpbGVkIHRvIGRlbGV0
ZU9iamVjdFN0b3JlIHdpdGggYW4gaW4tcHJvZ3Jlc3MgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biB0aGF0IGlzIGluYWN0aXZlIC0gRXJyb3I6IFRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcjogRE9N
IElEQkRhdGFiYXNlIEV4Y2VwdGlvbiAwCitBTEVSVDogU2Vjb25kIHZlcnNpb24gY2hhbmdlIHRy
YW5zYWN0aW9uIGNvbXBsZXRlCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0cyBzb21lIG9idmlvdXMg
ZmFpbHVyZXMgdGhhdCBjYW4gaGFwcGVuIHdoaWxlIGNhbGxpbmcgSURCRGF0YWJhc2UuZGVsZXRl
T2JqZWN0U3RvcmUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJhc2UtZGVsZXRlb2JqZWN0
c3RvcmUtZmFpbHVyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43
ZDMwZDQxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYmRhdGFiYXNlLWRlbGV0ZW9iamVjdHN0b3JlLWZhaWx1cmVzLmh0bWwKQEAgLTAs
MCArMSwxMzcgQEAKK1RoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhh
cHBlbiB3aGlsZSBjYWxsaW5nIElEQkRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCkKKzxzY3Jp
cHQ+CisKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworfQorCitmdW5jdGlvbiBkb25l
KCkKK3sKKyAgICBhbGVydCgiRG9uZSIpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3ZhciBjcmVhdGVSZXF1ZXN0ID0g
d2luZG93LmluZGV4ZWREQi5vcGVuKCJJREJEYXRhYmFzZURlbGV0ZU9iamVjdFN0b3JlRmFpbHVy
ZXNEYXRhYmFzZSIsIDEpOwordmFyIGRhdGFiYXNlOworCitjcmVhdGVSZXF1ZXN0Lm9udXBncmFk
ZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSBu
ZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9u
IC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9
IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQu
cmVzdWx0OworICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3Jl
KCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLnB1dCgi
YmFyIiwgImZvbyIpOworCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlv
bihldmVudCkgeworICAgICAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2Ug
dHJhbnNhY3Rpb24gdW5leHBlY3RlZCBhYm9ydGVkIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9
CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
biBjb21wbGV0ZSIpOworICAgICAgICBjb250aW51ZVRlc3QxKCk7CisgICAgfQorCisgICAgdmVy
c2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVy
dCgiSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBl
cnJvciIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNv
bnRpbnVlVGVzdDEoKQoreworICAgIHZhciB0cmFuc2FjdGlvbiA9IGRhdGFiYXNlLnRyYW5zYWN0
aW9uKCJUZXN0T2JqZWN0U3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgdmFyIG9iamVjdFN0b3Jl
ID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOworICAgIHZhciBy
ZXF1ZXN0ID0gb2JqZWN0U3RvcmUucHV0KCJiYXoiLCAiZm9vIik7CisKKyAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IGZ1bmN0aW9uKCkgeworICAgICAgICBhbGVydCgicmVhZHdyaXRlIHB1dCBzdWNj
ZXNzIC0gYWJvdXQgdG8gdHJ5IHRvIGRlbGV0ZSBhbiBvYmplY3RzdG9yZSIpOworICAgICAgICB0
cnkgeworICAgICAgICAgICAgZGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RT
dG9yZSIpOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJGYWlsZWQg
dG8gZGVsZXRlT2JqZWN0U3RvcmUgd2l0aG91dCBhIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24g
LSAiICsgZSk7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgdHJhbnNhY3Rpb24ub25hYm9y
dCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJyZWFkd3JpdGUgdHJhbnNhY3Rp
b24gdW5leHBlY3RlZCBhYm9ydGVkIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB0
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQo
InJlYWR3cml0ZSB0cmFuc2FjdGlvbiBjb21wbGV0ZSIpOworICAgICAgICBjb250aW51ZVRlc3Qy
KCk7CisgICAgICAgIGRhdGFiYXNlLmNsb3NlKCk7CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJyZWFkd3JpdGUgdHJh
bnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDIoKQoreworICAgIHZhciBvcGVuUmVxdWVz
dCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCRGF0YWJhc2VEZWxldGVPYmplY3RTdG9yZUZh
aWx1cmVzRGF0YWJhc2UiLCAyKTsKKworICAgIG9wZW5SZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlv
bihldmVudCkgeworICAgICAgICBhbGVydCgiUmVxdWVzdCB1bmV4cGVjdGVkIGVycm9yIC0gIiAr
IGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKyAgICBvcGVuUmVxdWVzdC5vbmJsb2Nr
ZWQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiUmVxdWVzdCB1bmV4cGVjdGVk
IGJsb2NrZWQgLSAiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorICAgIG9wZW5S
ZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJSZXF1
ZXN0IHVuZXhwZWN0ZWQgc3VjY2VzcyAtICIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisKKyAgICBvcGVuUmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihldmVudCkg
eworICAgICAgICBhbGVydCgiU2Vjb25kIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIg
KyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9u
KTsKKyAgICAKKyAgICAgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IG9wZW5SZXF1ZXN0LnRy
YW5zYWN0aW9uOworICAgICAgICBkYXRhYmFzZSA9IGV2ZW50LnRhcmdldC5yZXN1bHQ7CisKKyAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgIGRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCJOb25l
eGlzdGVudE9iamVjdFN0b3JlIik7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAg
YWxlcnQoIkZhaWxlZCB0byBkZWxldGVPYmplY3RTdG9yZSB3aXRoIGEgbm9uLWV4aXN0ZW50IG9i
amVjdHN0b3JlIC0gIiArIGUpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBRdWV1
ZSB1cCBhIHdob2xlIGJ1bmNoIG9mIHB1dHMgdG8ga2VlcCB0aGUgdHJhbnNhY3Rpb24gYWxpdmUg
Zm9yIGF3aGlsZQorICAgICAgICB2YXIgb2JqZWN0U3RvcmUgPSB2ZXJzaW9uVHJhbnNhY3Rpb24u
b2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDEwOyArK2kpCisgICAgICAgICAgICBvYmplY3RTdG9yZS5wdXQoIkFIIEFIIEFIIEFIIEFI
IiwgaSArICIgcHV0cyIpOworICAgICAgICAKKyAgICAgICAgLy8gQWZ0ZXIgdGhlIHZlcnNpb25D
aGFuZ2UgdHJhbnNhY3Rpb24gYmVjb21lcyBpbmFjdGl2ZSwgYnV0IHdoaWxlIGl0J3Mgc3RpbGwg
aW4tcHJvZ3Jlc3MsIHRyeSB0byBkZWxldGUgdGhlIG9iamVjdHN0b3JlCisgICAgICAgIHZhciB0
cnlJbmFjdGl2ZURlbGV0ZSA9IGZ1bmN0aW9uKCkgCisgICAgICAgIHsKKyAgICAgICAgICAgIHRy
eSB7CisgICAgICAgICAgICAgICAgZGF0YWJhc2UuZGVsZXRlT2JqZWN0U3RvcmUoIlRlc3RPYmpl
Y3RTdG9yZSIpOworICAgICAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICAgICAgYWxl
cnQoIkZhaWxlZCB0byBkZWxldGVPYmplY3RTdG9yZSB3aXRoIGFuIGluLXByb2dyZXNzIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gdGhhdCBpcyBpbmFjdGl2ZSAtICIgKyBlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgc2V0VGltZW91dCh0cnlJbmFjdGl2
ZURlbGV0ZSwgMCk7CisKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5j
dGlvbihldmVudCkgeworICAgICAgICAgICAgYWxlcnQoIlNlY29uZCB2ZXJzaW9uIGNoYW5nZSB0
cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGFib3J0Iik7CisgICAgICAgICAgICBkb25lKCk7CisgICAg
ICAgIH0KKworICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9u
KGV2ZW50KSB7CisgICAgICAgICAgICBhbGVydCgiU2Vjb25kIHZlcnNpb24gY2hhbmdlIHRyYW5z
YWN0aW9uIGNvbXBsZXRlIik7CisgICAgICAgICAgICBkb25lKCk7CisgICAgICAgIH0KKworICAg
ICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgICAgICBhbGVydCgiU2Vjb25kIHZlcnNpb24gY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0
ZWQgZXJyb3IgLSAiICsgZXZlbnQpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9Cisg
ICAgfQorfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0LWZhaWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFp
bHVyZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlm
MjRmY2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vaWRib2JqZWN0c3RvcmUtZ2V0LWZhaWx1cmVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKK0FMRVJUOiBJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtIDAgTmV3
IHZlcnNpb24gLSAxCitBTEVSVDogRmFpbGVkIHRvIGdldCByZWNvcmQgZnJvbSBvYmplY3Qgc3Rv
cmUgd2l0aCBhbiBpbnZhbGlkIGtleQorQUxFUlQ6IEZhaWxlZCB0byBnZXQgcmVjb3JkIGZyb20g
b2JqZWN0IHN0b3JlIHRoYXQgaGFzIGJlZW4gZGVsZXRlZAorQUxFUlQ6IEluaXRpYWwgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlCitBTEVSVDogRmFpbGVkIHRvIGdl
dCByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgd2hpbGUgdGhlIHRyYW5zYWN0aW9uIGlzIGluYWN0
aXZlCitBTEVSVDogcmVhZG9ubHkgdHJhbnNhY3Rpb24gY29tcGxldGUKK0FMRVJUOiBEb25lCitU
aGlzIHRlc3RzIHNvbWUgb2J2aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2Fs
bGluZyBJREJPYmplY3RTdG9yZS5nZXQoKS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFpbHVyZXMuaHRtbCBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1nZXQtZmFp
bHVyZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wODBiNzhlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lk
Ym9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy5odG1sCkBAIC0wLDAgKzEsOTggQEAKK1RoaXMgdGVz
dHMgc29tZSBvYnZpb3VzIGZhaWx1cmVzIHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElE
Qk9iamVjdFN0b3JlLmdldCgpLgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Cit9CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGFsZXJ0KCJEb25lIik7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
K30KKwordmFyIGNyZWF0ZVJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQk9iamVj
dFN0b3JlR2V0RmFpbHVyZXNEYXRhYmFzZSIsIDEpOwordmFyIGRhdGFiYXNlOworCitjcmVhdGVS
ZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWxlcnQoIklu
aXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24g
KyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgdmFyIHZlcnNp
b25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZGF0YWJhc2Ug
PSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNy
ZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICB2YXIgcmVxdWVzdCA9IG9i
amVjdFN0b3JlLnB1dCgiYmFyIiwgImZvbyIpOworCisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmdldChO
YU4pOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIGFsZXJ0KCJGYWlsZWQgdG8g
Z2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSB3aXRoIGFuIGludmFsaWQga2V5Iik7CisgICAg
ICAgIH0KKyAgICAgICAgCisgICAgICAgIGRhdGFiYXNlLmRlbGV0ZU9iamVjdFN0b3JlKCJUZXN0
T2JqZWN0U3RvcmUiKTsKKyAgICAgICAgCisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBvYmpl
Y3RTdG9yZS5nZXQoImZvbyIpOworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIGFs
ZXJ0KCJGYWlsZWQgdG8gZ2V0IHJlY29yZCBmcm9tIG9iamVjdCBzdG9yZSB0aGF0IGhhcyBiZWVu
IGRlbGV0ZWQiKTsKKyAgICAgICAgfSAKKworICAgICAgICAvLyBSZWNyZWF0ZSB0aGUgb2JqZWN0
c3RvcmUgYmVjYXVzZSB3ZSdsbCBuZWVkIGl0IGluIHBoYXNlIDIuCisgICAgICAgIHZhciBvYmpl
Y3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsK
KyAgICAgICAgb2JqZWN0U3RvcmUucHV0KCJiYXIiLCAiZm9vIik7ICAgIAorICAgIH0KKyAgICAK
KyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4
cGVjdGVkIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQo
IkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIGNvbXBsZXRlIik7Cisg
ICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICB9CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24u
b25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJJbml0aWFsIHVwZ3Jh
ZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsK
KyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7
CisgICAgdmFyIHRyYW5zYWN0aW9uID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oIlRlc3RPYmplY3RT
dG9yZSIsICJyZWFkb25seSIpOworICAgIHZhciBvYmplY3RTdG9yZSA9IHRyYW5zYWN0aW9uLm9i
amVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKworICAgIC8vIFF1ZXVlIHVwIGEgd2hvbGUg
YnVuY2ggb2YgZ2V0cyB0byBrZWVwIHRoZSB0cmFuc2FjdGlvbiBhbGl2ZSBmb3IgYXdoaWxlCisg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5nZXQo
ImZvbyIpOworCisgICAgdmFyIGdldFdoaWxlSW5hY3RpdmUgPSBmdW5jdGlvbigpIHsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmdldCgiZm9vIik7CisgICAgICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICAgICAgYWxlcnQoIkZhaWxlZCB0byBnZXQgcmVjb3JkIGZyb20g
b2JqZWN0IHN0b3JlIHdoaWxlIHRoZSB0cmFuc2FjdGlvbiBpcyBpbmFjdGl2ZSIpOworICAgICAg
ICB9IAorICAgIH0KKyAgICAKKyAgICBzZXRUaW1lb3V0KGdldFdoaWxlSW5hY3RpdmUsIDApOwor
ICAgIAorICAgIHRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICBhbGVydCgicmVhZG9ubHkgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBhYm9ydCIgKyBldmVudCk7
CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0g
ZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoInJlYWRvbmx5IHRyYW5zYWN0aW9uIGNv
bXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB0cmFuc2FjdGlvbi5vbmVy
cm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoInJlYWRvbmx5IHRyYW5zYWN0
aW9uIHVuZXhwZWN0ZWQgZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQor
fQorCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDQxMmRhY2YuLjhmZmM5
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDE1LTEwLTI5
ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBNb2Rlcm4gSURC
OiBkZWxldGVPYmplY3RTdG9yZSBzdXBwb3J0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwNjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisKIDIwMTUtMTAtMjggIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBSZW5hbWUgSW5zcGVjdG9yUmVzb3VyY2VBZ2VudCB0byBJbnNwZWN0b3JOZXR3b3JrQWdlbnQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCmluZGV4IGU0Y2NkN2UuLmVmMzFiNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaApAQCAtNTU2LDcgKzU1Niw3IEBAIHB1YmxpYzoKICAg
ICBKU0xvY2smIGFwaUxvY2soKSB7IHJldHVybiAqbV9hcGlMb2NrOyB9CiAgICAgQ29kZUNhY2hl
KiBjb2RlQ2FjaGUoKSB7IHJldHVybiBtX2NvZGVDYWNoZS5nZXQoKTsgfQogCi0gICAgdm9pZCB3
aGVuSWRsZShzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4pOworICAgIEpTX0VYUE9SVF9QUklWQVRFIHZv
aWQgd2hlbklkbGUoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKIAogICAgIEpTX0VYUE9SVF9QUklW
QVRFIHZvaWQgZGVsZXRlQWxsQ29kZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThhYWU1NS4uMWVhNDM0
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwNiBAQAorMjAxNS0xMC0yOSAgQnJhZHkgRWlkc29u
ICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjogZGVsZXRlT2JqZWN0
U3RvcmUgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MDY3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlb2JqZWN0c3RvcmUt
MS5odG1sCisgICAgICAgICAgICAgICBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRiZGF0YWJh
c2UtZGVsZXRlb2JqZWN0c3RvcmUtZmFpbHVyZXMuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFn
ZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWdldC1mYWlsdXJlcy5odG1sCisKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAgKiBNb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaDoKKwor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJEYXRhYmFzZTo6d2lsbENvbW1p
dFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCRGF0YWJhc2U6
OndpbGxBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURC
RGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6SURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOiBEZWxldGVkLgorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaDoKKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJPYmplY3RTdG9yZTo6bWFya0FzRGVsZXRl
ZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9iamVjdFN0b3JlSW1w
bC5oOgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjpJ
REJUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0
aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9u
OjphYm9ydE9uU2VydmVyKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNh
Y3Rpb246OmNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0
aW9uOjpjb21taXRPblNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRy
YW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGll
bnQ6OklEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZU9uU2VydmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZU9iamVjdFN0b3Jl
T25TZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6
YWN0aXZhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6
YWN0aXZhdGlvblRpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xp
ZW50OjpJREJUcmFuc2FjdGlvbjo6Y3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVP
YmplY3RTdG9yZU9uU2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCVHJhbnNhY3Rpb246OmdldFJlY29yZE9uU2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OklEQkNsaWVudDo6SURCVHJhbnNhY3Rpb246OnB1dE9yQWRkT25TZXJ2ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlv
bkltcGwuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L1Ry
YW5zYWN0aW9uT3BlcmF0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OlRyYW5z
YWN0aW9uT3BlcmF0aW9uOjpjb21wbGV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50
OjpjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbik6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQkNvbm5lY3Rpb25Ub0NsaWVudDo6ZGlkRGVs
ZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJD
b25uZWN0aW9uVG9DbGllbnQuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OklEQlNlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaDoKKyAgICAgICAgCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b246Om9iamVjdFN0b3JlRGVsZXRlZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjphYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6Ok1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpmaW5pc2gpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
bi5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5
SURCQmFja2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlc3RvcmVP
YmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydCk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6dGFrZU9iamVjdFN0b3JlQnlOYW1lKToKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6
CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpwZXJmb3JtQ3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZU9iamVjdFN0
b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSk6IERlbGV0ZWQuCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZUNv
bm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb246OmRpZERlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbjo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VJbmZvOjpkZWxldGVPYmplY3RTdG9yZSk6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oOgor
ICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0
YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJSZXN1bHREYXRhOjpkZWxldGVPYmplY3RTdG9y
ZVN1Y2Nlc3MpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHRE
YXRhLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblBy
b2Nlc3NJREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVy
OjpkaWREZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJblByb2Nlc3NJREJT
ZXJ2ZXI6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmg6CisKIDIwMTUtMTAtMjggIEJyYWR5IEVpZHNvbiAg
PGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vZGVybiBJREI6IFN1cHBvcnQgSURCRGF0
YWJhc2UudHJhbnNhY3Rpb24oKSAoYW5kIHRyYW5zYWN0aW9uIHNjaGVkdWxpbmcgaW4gZ2VuZXJh
bCkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCmluZGV4IGY3NzFlOTcuLmQwNThm
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9J
REJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCkBAIC0xMDksNiArMTA5LDIx
IEBAIHZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWRDcmVhdGVPYmplY3RTdG9yZShjb25z
dCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhCiAgICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0
RGF0YSk7CiB9CiAKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkZWxldGVPYmplY3RTdG9y
ZShUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0
b3JlTmFtZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpk
ZWxldGVPYmplY3RTdG9yZSIpOworCisgICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOworCisg
ICAgbV9kZWxlZ2F0ZS0+ZGVsZXRlT2JqZWN0U3RvcmUoSURCUmVxdWVzdERhdGEob3BlcmF0aW9u
KSwgb2JqZWN0U3RvcmVOYW1lKTsKK30KKwordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRp
ZERlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7Cisg
ICAgTE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkRGVsZXRlT2JqZWN0
U3RvcmUiKTsKKyAgICBjb21wbGV0ZU9wZXJhdGlvbihyZXN1bHREYXRhKTsKK30KKwogdm9pZCBJ
REJDb25uZWN0aW9uVG9TZXJ2ZXI6OnB1dE9yQWRkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiBvcGVy
YXRpb24sIFJlZlB0cjxJREJLZXk+JiBrZXksIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiB2YWx1ZSwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3Zlcndy
aXRlTW9kZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjpw
dXRPckFkZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IGVlNDU0ZTcuLjUy
OTExZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTY0LDYgKzY0LDkgQEAg
cHVibGljOgogICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoVHJhbnNhY3Rpb25PcGVyYXRpb24m
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKICAgICB2b2lkIGRpZENyZWF0ZU9iamVjdFN0
b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAorICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUo
VHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7Cisg
ICAgdm9pZCBkaWREZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7CisKICAg
ICB2b2lkIHB1dE9yQWRkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgUmVmUHRyPElEQktleT4mLCBS
ZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3Rv
cmVPdmVyd3JpdGVNb2RlKTsKICAgICB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERh
dGEmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAppbmRl
eCA5ZWE1Y2E2Li5lYWRhNzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVy
RGVsZWdhdGUuaApAQCAtMjgsNiArMjgsOCBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJB
U0UpCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBJREJLZXk7CkBAIC01Myw2ICs1NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgYWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVz
dERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBv
YmplY3RTdG9yZU5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHV0T3JBZGQoY29uc3QgSURC
UmVxdWVzdERhdGEmLCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBJbmRl
eGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBn
ZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJLZXkqKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGVzdGFibGlzaFRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYpID0gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1w
bC5jcHAKaW5kZXggMTE1NGE5MS4uNDBmMDA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHAKQEAg
LTE3OCw5ICsxNzgsMjcgQEAgUmVmUHRyPFdlYkNvcmU6OklEQlRyYW5zYWN0aW9uPiBJREJEYXRh
YmFzZTo6dHJhbnNhY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCoKICAgICByZXR1cm4gdHJh
bnNhY3Rpb24oY29udGV4dCwgb2JqZWN0U3RvcmVzLCBtb2RlLCBlYyk7CiB9CiAKLXZvaWQgSURC
RGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYsIEV4Y2VwdGlvbkNvZGUm
KQordm9pZCBJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBvYmpl
Y3RTdG9yZU5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIExPRyhJbmRleGVkREIsICJJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUi
KTsKKworICAgIGlmICghbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24pIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICgh
bV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgZWMgPSBJ
REJEYXRhYmFzZUV4Y2VwdGlvbjo6VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX2luZm8uaGFzT2JqZWN0U3RvcmUob2JqZWN0U3Rv
cmVOYW1lKSkgeworICAgICAgICBlYyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOb3RGb3VuZEVy
cm9yOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9pbmZvLmRlbGV0ZU9iamVjdFN0
b3JlKG9iamVjdFN0b3JlTmFtZSk7CisgICAgbV92ZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24tPmRl
bGV0ZU9iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSk7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2U6
OmNsb3NlKCkKQEAgLTIzOSwxNSArMjU3LDEzIEBAIHZvaWQgSURCRGF0YWJhc2U6OmRpZFN0YXJ0
VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIG1fYWN0aXZlVHJh
bnNhY3Rpb25zLnNldCh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCAmdHJhbnNhY3Rp
b24pOwogfQogCi12b2lkIElEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24pCit2b2lkIElEQkRhdGFiYXNlOjp3aWxsQ29tbWl0VHJhbnNhY3Rp
b24oSURCVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogewotICAgIExPRyhJbmRleGVkREIsICJJ
REJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24iKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURC
RGF0YWJhc2U6OndpbGxDb21taXRUcmFuc2FjdGlvbiIpOwogCiAgICAgYXV0byByZWZUcmFuc2Fj
dGlvbiA9IG1fYWN0aXZlVHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSk7CiAgICAgQVNTRVJUKHJlZlRyYW5zYWN0aW9uKTsKICAgICBtX2NvbW1pdHRpbmdU
cmFuc2FjdGlvbnMuc2V0KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92
ZShyZWZUcmFuc2FjdGlvbikpOwotCi0gICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5jb21taXRUcmFu
c2FjdGlvbih0cmFuc2FjdGlvbik7CiB9CiAKIHZvaWQgSURCRGF0YWJhc2U6OmRpZENvbW1pdFRy
YW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKQEAgLTI2MCwxNSArMjc2LDEz
IEBAIHZvaWQgSURCRGF0YWJhc2U6OmRpZENvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKICAgICBkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rp
b24pOwogfQogCi12b2lkIElEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbikKK3ZvaWQgSURCRGF0YWJhc2U6OndpbGxBYm9ydFRyYW5zYWN0aW9u
KElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKLSAgICBMT0coSW5kZXhlZERCLCAiSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24iKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCRGF0
YWJhc2U6OndpbGxBYm9ydFRyYW5zYWN0aW9uIik7CiAKICAgICBhdXRvIHJlZlRyYW5zYWN0aW9u
ID0gbV9hY3RpdmVUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmll
cigpKTsKICAgICBBU1NFUlQocmVmVHJhbnNhY3Rpb24pOwogICAgIG1fYWJvcnRpbmdUcmFuc2Fj
dGlvbnMuc2V0KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIFdURjo6bW92ZShyZWZU
cmFuc2FjdGlvbikpOwotCi0gICAgbV9zZXJ2ZXJDb25uZWN0aW9uLT5hYm9ydFRyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uKTsKIH0KIAogdm9pZCBJREJEYXRhYmFzZTo6ZGlkQWJvcnRUcmFuc2FjdGlv
bihJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmgKaW5kZXggMWY4
NjI1Ni4uOTc1MzVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkRhdGFiYXNlSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuaApAQCAtNzUsOSArNzUsOSBAQCBwdWJs
aWM6CiAgICAgUmVmPElEQlRyYW5zYWN0aW9uPiBzdGFydFZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIGRpZFN0YXJ0VHJhbnNhY3Rp
b24oSURCVHJhbnNhY3Rpb24mKTsKIAotICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oSURCVHJh
bnNhY3Rpb24mKTsKKyAgICB2b2lkIHdpbGxDb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlv
biYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKLSAg
ICB2b2lkIGFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mKTsKKyAgICB2b2lkIHdpbGxB
Ym9ydFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5z
YWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CiAKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZl
bnQodWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3Bw
CmluZGV4IDg5YzIwNmIuLmFjNThlNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCkBA
IC0yOTQsNiArMjk0LDExIEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJPYmplY3RT
dG9yZTo6Y291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0CiAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAordm9pZCBJREJPYmplY3RTdG9yZTo6bWFya0FzRGVs
ZXRlZCgpCit7CisgICAgbV9kZWxldGVkID0gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSURC
Q2xpZW50CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuaApp
bmRleCA5ODM5MjYwLi5kYzI3Y2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCT2JqZWN0U3RvcmVJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9iamVjdFN0b3JlSW1wbC5oCkBAIC03NSw2
ICs3NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0
PiBjb3VudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSURCS2V5UmFuZ2UqLCBFeGNlcHRpb25D
b2RlJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6SURCUmVx
dWVzdD4gY291bnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIGNvbnN0IERlcHJlY2F0ZWQ6OlNj
cmlwdFZhbHVlJiBrZXksIEV4Y2VwdGlvbkNvZGUmKSBvdmVycmlkZSBmaW5hbDsKIAorICAgIHZv
aWQgbWFya0FzRGVsZXRlZCgpOworCiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBpbmZv
KCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlv
bkltcGwuY3BwCmluZGV4IGQ4MDUyN2EuLjBkODA3NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbklt
cGwuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNp
bmNsdWRlICJJREJSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIklEQlJlc3VsdERhdGEuaCIKKyNp
bmNsdWRlICJKU0RPTVdpbmRvd0Jhc2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uT3BlcmF0
aW9uLmgiCkBAIC01OCwxMyArNTksMTkgQEAgSURCVHJhbnNhY3Rpb246OklEQlRyYW5zYWN0aW9u
KElEQkRhdGFiYXNlJiBkYXRhYmFzZSwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJgogICAgIHJl
bGF4QWRvcHRpb25SZXF1aXJlbWVudCgpOwogCiAgICAgaWYgKG1faW5mby5tb2RlKCkgPT0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvbk1vZGU6OlZlcnNpb25DaGFuZ2UpIHsKLSAgICAgICAgbV9hY3Rp
dmF0aW9uVGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFRpbWVyPigqdGhpcywgJklEQlRyYW5zYWN0
aW9uOjphY3RpdmF0aW9uVGltZXJGaXJlZCk7Ci0gICAgICAgIG1fYWN0aXZhdGlvblRpbWVyLT5z
dGFydE9uZVNob3QoMCk7CiAgICAgICAgIG1fb3JpZ2luYWxEYXRhYmFzZUluZm8gPSBzdGQ6Om1h
a2VfdW5pcXVlPElEQkRhdGFiYXNlSW5mbz4obV9kYXRhYmFzZS0+aW5mbygpKTsKLSAgICAgICAg
bV9zdGF0ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6SW5hY3RpdmU7CiAgICAgICAg
IG1fc3RhcnRlZE9uU2VydmVyID0gdHJ1ZTsKLSAgICB9IGVsc2UKKyAgICB9IGVsc2UgeworICAg
ICAgICBhY3RpdmF0ZSgpOworCisgICAgICAgIFJlZlB0cjxJREJUcmFuc2FjdGlvbj4gc2VsZjsK
KyAgICAgICAgSlNDOjpWTSYgdm0gPSBKU0RPTVdpbmRvd0Jhc2U6OmNvbW1vblZNKCk7CisgICAg
ICAgIHZtLndoZW5JZGxlKFtzZWxmLCB0aGlzXSgpIHsKKyAgICAgICAgICAgIGRlYWN0aXZhdGUo
KTsKKyAgICAgICAgfSk7CisKICAgICAgICAgZXN0YWJsaXNoT25TZXJ2ZXIoKTsKKyAgICB9CiAK
ICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KQEAgLTE1Nyw4ICsxNjQsMTYgQEAgdm9pZCBJREJU
cmFuc2FjdGlvbjo6YWJvcnQoRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgfQogCiAgICAgbV9zdGF0
ZSA9IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6QWJvcnRpbmc7CisgICAgbV9kYXRhYmFz
ZS0+d2lsbEFib3J0VHJhbnNhY3Rpb24oKnRoaXMpOworCisgICAgYXV0byBvcGVyYXRpb24gPSBj
cmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgbnVsbHB0ciwgJklEQlRyYW5zYWN0aW9u
OjphYm9ydE9uU2VydmVyKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEY6Om1vdmUob3BlcmF0
aW9uKSk7Cit9CiAKLSAgICBtX2RhdGFiYXNlLT5hYm9ydFRyYW5zYWN0aW9uKCp0aGlzKTsKK3Zv
aWQgSURCVHJhbnNhY3Rpb246OmFib3J0T25TZXJ2ZXIoVHJhbnNhY3Rpb25PcGVyYXRpb24mKQor
eworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6YWJvcnRPblNlcnZlciIpOwor
ICAgIHNlcnZlckNvbm5lY3Rpb24oKS5hYm9ydFRyYW5zYWN0aW9uKCp0aGlzKTsKIH0KIAogY29u
c3QgY2hhciogSURCVHJhbnNhY3Rpb246OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdApAQCAt
MTkxLDEyICsyMDYsNiBAQCBib29sIElEQlRyYW5zYWN0aW9uOjppc0ZpbmlzaGVkT3JGaW5pc2hp
bmcoKSBjb25zdAogICAgICAgICB8fCBtX3N0YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25T
dGF0ZTo6RmluaXNoZWQ7CiB9CiAKLXZvaWQgSURCVHJhbnNhY3Rpb246OmFjdGl2YXRpb25UaW1l
ckZpcmVkKCkKLXsKLSAgICBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7Ci0gICAgbV9hY3RpdmF0
aW9uVGltZXIgPSBudWxscHRyOwotfQotCiB2b2lkIElEQlRyYW5zYWN0aW9uOjpzY2hlZHVsZU9w
ZXJhdGlvbihSZWZQdHI8VHJhbnNhY3Rpb25PcGVyYXRpb24+JiYgb3BlcmF0aW9uKQogewogICAg
IEFTU0VSVCghbV90cmFuc2FjdGlvbk9wZXJhdGlvbk1hcC5jb250YWlucyhvcGVyYXRpb24tPmlk
ZW50aWZpZXIoKSkpOwpAQCAtMjM1LDEyICsyNDQsMTkgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6
Y29tbWl0KCkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmNvbW1pdCIp
OwogCi0gICAgaWYgKGlzRmluaXNoZWRPckZpbmlzaGluZygpKQotICAgICAgICByZXR1cm47Cisg
ICAgQVNTRVJUKCFpc0ZpbmlzaGVkT3JGaW5pc2hpbmcoKSk7CiAKICAgICBtX3N0YXRlID0gSW5k
ZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpDb21taXR0aW5nOworICAgIG1fZGF0YWJhc2UtPndp
bGxDb21taXRUcmFuc2FjdGlvbigqdGhpcyk7CisKKyAgICBhdXRvIG9wZXJhdGlvbiA9IGNyZWF0
ZVRyYW5zYWN0aW9uT3BlcmF0aW9uKCp0aGlzLCBudWxscHRyLCAmSURCVHJhbnNhY3Rpb246OmNv
bW1pdE9uU2VydmVyKTsKKyAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEY6Om1vdmUob3BlcmF0aW9u
KSk7Cit9CiAKLSAgICBtX2RhdGFiYXNlLT5jb21taXRUcmFuc2FjdGlvbigqdGhpcyk7Cit2b2lk
IElEQlRyYW5zYWN0aW9uOjpjb21taXRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYpCit7
CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpjb21taXRPblNlcnZlciIpOwor
ICAgIHNlcnZlckNvbm5lY3Rpb24oKS5jb21taXRUcmFuc2FjdGlvbigqdGhpcyk7CiB9CiAKIHZv
aWQgSURCVHJhbnNhY3Rpb246OmZpbmlzaEFib3J0T3JDb21taXQoKQpAQCAtMzU5LDkgKzM3NSw2
IEBAIHZvaWQgSURCVHJhbnNhY3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlT25TZXJ2ZXIoVHJhbnNh
Y3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwKIAogICAgIEFTU0VSVChpc1ZlcnNpb25DaGFuZ2Uo
KSk7CiAKLSAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpCi0gICAgICAgIHJldHVybjsK
LQogICAgIG1fZGF0YWJhc2UtPnNlcnZlckNvbm5lY3Rpb24oKS5jcmVhdGVPYmplY3RTdG9yZShv
cGVyYXRpb24sIGluZm8pOwogfQogCkBAIC0zNzAsOCArMzgzLDYgQEAgdm9pZCBJREJUcmFuc2Fj
dGlvbjo6ZGlkQ3JlYXRlT2JqZWN0U3RvcmVPblNlcnZlcihjb25zdCBJREJSZXN1bHREYXRhJiBy
ZXN1bHREYXQKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OmRpZENyZWF0ZU9i
amVjdFN0b3JlT25TZXJ2ZXIiKTsKIAogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0RGF0YSwgcmVz
dWx0RGF0YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6Q3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNz
KTsKLQotICAgIHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKIH0KIAogUmVmPElEQlJlcXVlc3Q+
IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCS2V5JiBrZXkpCkBAIC0z
OTIsOCArNDAzLDYgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6Z2V0UmVjb3JkT25TZXJ2ZXIoVHJh
bnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgUmVmUHRyPEkKIHsKICAgICBMT0coSW5kZXhl
ZERCLCAiSURCVHJhbnNhY3Rpb246OmdldFJlY29yZE9uU2VydmVyIik7CiAKLSAgICBBU1NFUlQo
IWlzRmluaXNoZWRPckZpbmlzaGluZygpKTsKLQogICAgIHNlcnZlckNvbm5lY3Rpb24oKS5nZXRS
ZWNvcmQob3BlcmF0aW9uLCBrZXkpOwogfQogCkBAIC00MjQsNyArNDMzLDYgQEAgdm9pZCBJREJU
cmFuc2FjdGlvbjo6cHV0T3JBZGRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0
aW9uLCBSZWZQdHI8SUQKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OnB1
dE9yQWRkT25TZXJ2ZXIiKTsKIAotICAgIEFTU0VSVCghaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkp
OwogICAgIEFTU0VSVCghaXNSZWFkT25seSgpKTsKIAogICAgIHNlcnZlckNvbm5lY3Rpb24oKS5w
dXRPckFkZChvcGVyYXRpb24sIGtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUpOwpAQCAtNDM4LDYg
KzQ0NiwzNCBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRQdXRPckFkZE9uU2VydmVyKElEQlJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdERhdAogICAgIHJlcXVlc3QucmVxdWVzdENv
bXBsZXRlZChyZXN1bHREYXRhKTsKIH0KIAordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGVsZXRlT2Jq
ZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCit7CisgICAgTE9HKEluZGV4
ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpkZWxldGVPYmplY3RTdG9yZSIpOworCisgICAgQVNTRVJU
KGlzVmVyc2lvbkNoYW5nZSgpKTsKKworICAgIGF1dG8gb2JqZWN0U3RvcmUgPSBtX3JlZmVyZW5j
ZWRPYmplY3RTdG9yZXMudGFrZShvYmplY3RTdG9yZU5hbWUpOworICAgIGlmIChvYmplY3RTdG9y
ZSkKKyAgICAgICAgb2JqZWN0U3RvcmUtPm1hcmtBc0RlbGV0ZWQoKTsKKworICAgIGF1dG8gb3Bl
cmF0aW9uID0gY3JlYXRlVHJhbnNhY3Rpb25PcGVyYXRpb24oKnRoaXMsICZJREJUcmFuc2FjdGlv
bjo6ZGlkRGVsZXRlT2JqZWN0U3RvcmVPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpkZWxldGVP
YmplY3RTdG9yZU9uU2VydmVyLCBvYmplY3RTdG9yZU5hbWUpOworICAgIHNjaGVkdWxlT3BlcmF0
aW9uKFdURjo6bW92ZShvcGVyYXRpb24pKTsKK30KKwordm9pZCBJREJUcmFuc2FjdGlvbjo6ZGVs
ZXRlT2JqZWN0U3RvcmVPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBj
b25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURC
VHJhbnNhY3Rpb246OmRlbGV0ZU9iamVjdFN0b3JlT25TZXJ2ZXIiKTsKKyAgICBBU1NFUlQoaXNW
ZXJzaW9uQ2hhbmdlKCkpOworCisgICAgc2VydmVyQ29ubmVjdGlvbigpLmRlbGV0ZU9iamVjdFN0
b3JlKG9wZXJhdGlvbiwgb2JqZWN0U3RvcmVOYW1lKTsKK30KKwordm9pZCBJREJUcmFuc2FjdGlv
bjo6ZGlkRGVsZXRlT2JqZWN0U3RvcmVPblNlcnZlcihjb25zdCBJREJSZXN1bHREYXRhJiByZXN1
bHREYXRhKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZGlkRGVsZXRl
T2JqZWN0U3RvcmVPblNlcnZlciIpOworICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0RGF0YSwgcmVz
dWx0RGF0YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6RGVsZXRlT2JqZWN0U3RvcmVTdWNjZXNz
KTsKK30KKwogdm9pZCBJREJUcmFuc2FjdGlvbjo6ZXN0YWJsaXNoT25TZXJ2ZXIoKQogewogICAg
IExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6ZXN0YWJsaXNoT25TZXJ2ZXIiKTsKQEAg
LTQ0Nyw3ICs0ODMsOSBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjplc3RhYmxpc2hPblNlcnZlcigp
CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmFjdGl2YXRlKCkKIHsKLSAgICBBU1NFUlQoIWlzRmlu
aXNoZWRPckZpbmlzaGluZygpKTsKKyAgICBpZiAoaXNGaW5pc2hlZE9yRmluaXNoaW5nKCkpCisg
ICAgICAgIHJldHVybjsKKwogICAgIG1fc3RhdGUgPSBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3Rh
dGU6OkFjdGl2ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oCmluZGV4IDk3ZDAzOWEuLmIz
M2I2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJUcmFuc2FjdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmgKQEAgLTkwLDExICs5MCwxNSBAQCBwdWJs
aWM6CiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RQdXRPckFkZChTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgSURCT2JqZWN0U3RvcmUmLCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUm
LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgUmVmPElEQlJlcXVl
c3Q+IHJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0
b3JlJiwgSURCS2V5Jik7CiAKKyAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmlu
ZyYgb2JqZWN0U3RvcmVOYW1lKTsKKwogICAgIElEQkNvbm5lY3Rpb25Ub1NlcnZlciYgc2VydmVy
Q29ubmVjdGlvbigpOwogCiAgICAgdm9pZCBhY3RpdmF0ZSgpOwogICAgIHZvaWQgZGVhY3RpdmF0
ZSgpOwogCisgICAgdm9pZCBzY2hlZHVsZU9wZXJhdGlvblRpbWVyKCk7CisKIHByaXZhdGU6CiAg
ICAgSURCVHJhbnNhY3Rpb24oSURCRGF0YWJhc2UmLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8m
KTsKIApAQCAtMTA1LDE0ICsxMDksMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbmlzaEFib3J0
T3JDb21taXQoKTsKIAogICAgIHZvaWQgc2NoZWR1bGVPcGVyYXRpb24oUmVmUHRyPFRyYW5zYWN0
aW9uT3BlcmF0aW9uPiYmKTsKLSAgICB2b2lkIHNjaGVkdWxlT3BlcmF0aW9uVGltZXIoKTsKICAg
ICB2b2lkIG9wZXJhdGlvblRpbWVyRmlyZWQoKTsKLSAgICB2b2lkIGFjdGl2YXRpb25UaW1lckZp
cmVkKCk7CiAKICAgICB2b2lkIGZpcmVPbkNvbXBsZXRlKCk7CiAgICAgdm9pZCBmaXJlT25BYm9y
dCgpOwogICAgIHZvaWQgZW5xdWV1ZUV2ZW50KFJlZjxFdmVudD4pOwogCisgICAgdm9pZCBjb21t
aXRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYpOworICAgIHZvaWQgYWJvcnRPblNlcnZl
cihUcmFuc2FjdGlvbk9wZXJhdGlvbiYpOworCiAgICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZU9u
U2VydmVyKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJik7
CiAgICAgdm9pZCBkaWRDcmVhdGVPYmplY3RTdG9yZU9uU2VydmVyKGNvbnN0IElEQlJlc3VsdERh
dGEmKTsKIApAQCAtMTIyLDEzICsxMjcsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFJlY29y
ZE9uU2VydmVyKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgUmVmUHRyPElEQktleT4pOwogICAgIHZv
aWQgZGlkR2V0UmVjb3JkT25TZXJ2ZXIoSURCUmVxdWVzdCYsIGNvbnN0IElEQlJlc3VsdERhdGEm
KTsKIAorICAgIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmVPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJh
dGlvbiYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKKyAgICB2b2lkIGRpZERlbGV0
ZU9iamVjdFN0b3JlT25TZXJ2ZXIoY29uc3QgSURCUmVzdWx0RGF0YSYpOworCiAgICAgdm9pZCBl
c3RhYmxpc2hPblNlcnZlcigpOwogCiAgICAgUmVmPElEQkRhdGFiYXNlPiBtX2RhdGFiYXNlOwog
ICAgIElEQlRyYW5zYWN0aW9uSW5mbyBtX2luZm87CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRh
dGFiYXNlSW5mbz4gbV9vcmlnaW5hbERhdGFiYXNlSW5mbzsKIAotICAgIEluZGV4ZWREQjo6VHJh
bnNhY3Rpb25TdGF0ZSBtX3N0YXRlIHsgSW5kZXhlZERCOjpUcmFuc2FjdGlvblN0YXRlOjpBY3Rp
dmUgfTsKKyAgICBJbmRleGVkREI6OlRyYW5zYWN0aW9uU3RhdGUgbV9zdGF0ZSB7IEluZGV4ZWRE
Qjo6VHJhbnNhY3Rpb25TdGF0ZTo6SW5hY3RpdmUgfTsKICAgICBib29sIG1fc3RhcnRlZE9uU2Vy
dmVyIHsgZmFsc2UgfTsKIAogICAgIElEQkVycm9yIG1faWRiRXJyb3I7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvVHJhbnNhY3Rpb25PcGVyYXRp
b24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlv
bk9wZXJhdGlvbi5oCmluZGV4IDlkZGQ1ZDcuLjg3ZDA1NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9wZXJhdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9UcmFuc2FjdGlvbk9w
ZXJhdGlvbi5oCkBAIC00OCw2ICs0OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBsZXRlZChj
b25zdCBJREJSZXN1bHREYXRhJiBkYXRhKQogICAgIHsKICAgICAgICAgbV9jb21wbGV0ZUZ1bmN0
aW9uKGRhdGEpOworICAgICAgICBtX3RyYW5zYWN0aW9uLT5zY2hlZHVsZU9wZXJhdGlvblRpbWVy
KCk7CiAgICAgfQogCiAgICAgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC04NCw3ICs4NSw4IEBAIHB1Ymxp
YzoKICAgICAgICAgfTsKIAogICAgICAgICBtX2NvbXBsZXRlRnVuY3Rpb24gPSBbc2VsZiwgdGhp
cywgY29tcGxldGVNZXRob2RdKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpIHsKLSAg
ICAgICAgICAgICgmbV90cmFuc2FjdGlvbi5nZXQoKS0+KmNvbXBsZXRlTWV0aG9kKShyZXN1bHRE
YXRhKTsKKyAgICAgICAgICAgIGlmIChjb21wbGV0ZU1ldGhvZCkKKyAgICAgICAgICAgICAgICAo
Jm1fdHJhbnNhY3Rpb24uZ2V0KCktPipjb21wbGV0ZU1ldGhvZCkocmVzdWx0RGF0YSk7CiAgICAg
ICAgIH07CiAgICAgfQogCkBAIC0xMDAsMTEgKzEwMiwyMSBAQCBwdWJsaWM6CiAKICAgICAgICAg
UmVmUHRyPElEQlJlcXVlc3Q+IHJlZlJlcXVlc3QoJnJlcXVlc3QpOwogICAgICAgICBtX2NvbXBs
ZXRlRnVuY3Rpb24gPSBbc2VsZiwgdGhpcywgcmVmUmVxdWVzdCwgY29tcGxldGVNZXRob2RdKGNv
bnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpIHsKLSAgICAgICAgICAgICgmbV90cmFuc2Fj
dGlvbi5nZXQoKS0+KmNvbXBsZXRlTWV0aG9kKSgqcmVmUmVxdWVzdCwgcmVzdWx0RGF0YSk7Cisg
ICAgICAgICAgICBpZiAoY29tcGxldGVNZXRob2QpCisgICAgICAgICAgICAgICAgKCZtX3RyYW5z
YWN0aW9uLmdldCgpLT4qY29tcGxldGVNZXRob2QpKCpyZWZSZXF1ZXN0LCByZXN1bHREYXRhKTsK
ICAgICAgICAgfTsKICAgICB9CiB9OwogCitpbmxpbmUgUmVmUHRyPFRyYW5zYWN0aW9uT3BlcmF0
aW9uPiBjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigKKyAgICBJREJUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24sCisgICAgdm9pZCAoSURCVHJhbnNhY3Rpb246Oipjb21wbGV0ZSkoY29uc3QgSURC
UmVzdWx0RGF0YSYpLAorICAgIHZvaWQgKElEQlRyYW5zYWN0aW9uOjoqcGVyZm9ybSkoVHJhbnNh
Y3Rpb25PcGVyYXRpb24mKSkKK3sKKyAgICBhdXRvIG9wZXJhdGlvbiA9IG5ldyBUcmFuc2FjdGlv
bk9wZXJhdGlvbkltcGw8Pih0cmFuc2FjdGlvbiwgY29tcGxldGUsIHBlcmZvcm0pOworICAgIHJl
dHVybiBhZG9wdFJlZihvcGVyYXRpb24pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBNUDEsIHR5
cGVuYW1lIFAxPgogUmVmUHRyPFRyYW5zYWN0aW9uT3BlcmF0aW9uPiBjcmVhdGVUcmFuc2FjdGlv
bk9wZXJhdGlvbigKICAgICBJREJUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0
b3JlLmgKaW5kZXggODdjODRiOS4uODMwYzIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAtNTIs
NiArNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBjb21taXRUcmFuc2FjdGlv
bihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcikgPSAw
OwogCiAgICAgdmlydHVhbCBJREJFcnJvciBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3Rv
cmVJbmZvJikgPSAwOworICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29u
c3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgb2JqZWN0U3RvcmVOYW1lKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlz
dHNJbk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURh
dGEmLCBib29sJiBrZXlFeGlzdHMpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJl
Y29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJikgPSAwOwog
ICAgIHZpcnR1YWwgSURCRXJyb3IgcHV0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpID0g
MDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKaW5kZXggNDU0NjkyOC4uZDY4ZDQ4
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKQEAgLTY4LDYgKzY4LDExIEBA
IHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRDcmVhdGVPYmplY3RTdG9yZShjb25zdCBJ
REJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0ZS0+ZGlkQ3JlYXRlT2JqZWN0U3Rv
cmUocmVzdWx0KTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdCkKK3sKKyAgICBtX2RlbGVnYXRl
LT5kaWREZWxldGVPYmplY3RTdG9yZShyZXN1bHQpOworfQorCiB2b2lkIElEQkNvbm5lY3Rpb25U
b0NsaWVudDo6ZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0KQogewogICAg
IG1fZGVsZWdhdGUtPmRpZFB1dE9yQWRkKHJlc3VsdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50LmgKaW5kZXggNzJkZDJiMi4uMzU1Y2JkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGll
bnQuaApAQCAtNTMsNiArNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRBYm9ydFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJFcnJvciYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9y
Jik7CiAgICAgdm9pZCBkaWRDcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7
CisgICAgdm9pZCBkaWREZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7CiAg
ICAgdm9pZCBkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRhJik7CiAgICAgdm9pZCBkaWRH
ZXRSZWNvcmQoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnREZWxlZ2F0ZS5oCmluZGV4IDIyNDQ2YTcuLjY2MjM4M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9D
bGllbnREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJDb25uZWN0aW9uVG9DbGllbnREZWxlZ2F0ZS5oCkBAIC00OSw2ICs0OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0
RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUHV0T3JBZGQoY29uc3Qg
SURCUmVzdWx0RGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0
IElEQlJlc3VsdERhdGEmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggMzNlYTQ5Yy4uMDJiZGViZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHAKQEAgLTE2OCw2ICsxNjgsMTggQEAgdm9pZCBJREJTZXJ2ZXI6OmNyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCT2IK
ICAgICB0cmFuc2FjdGlvbi0+Y3JlYXRlT2JqZWN0U3RvcmUocmVxdWVzdERhdGEsIGluZm8pOwog
fQogCit2b2lkIElEQlNlcnZlcjo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkKK3sKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCU2VydmVyOjpkZWxldGVPYmplY3RTdG9yZSIpOworCisgICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldChyZXF1ZXN0RGF0YS50cmFuc2FjdGlv
bklkZW50aWZpZXIoKSk7CisgICAgaWYgKCF0cmFuc2FjdGlvbikKKyAgICAgICAgcmV0dXJuOwor
CisgICAgQVNTRVJUKHRyYW5zYWN0aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CisgICAgdHJhbnNh
Y3Rpb24tPmRlbGV0ZU9iamVjdFN0b3JlKHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZU5hbWUpOwor
fQorCiB2b2lkIElEQlNlcnZlcjo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1
ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSBvdmVy
d3JpdGVNb2RlKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXI6OnB1dE9yQWRkIik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmgKaW5kZXggOTNiOGMwYy4uMzFkODczYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtNjAsNiArNjAsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYpOwogICAgIHZvaWQgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJik7CiAgICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0
YSYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOworICAgIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7
CiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURh
dGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9i
amVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJik7CiAgICAgdm9pZCBlc3RhYmxpc2hUcmFuc2Fj
dGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFu
c2FjdGlvbkluZm8mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rp
b24uY3BwCmluZGV4IDM0MjQxYjMuLjY0MzBhMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJh
Y2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcApAQCAtODAsNiArODAsMTYgQEAgdm9pZCBNZW1vcnlC
YWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWRkRXhpc3RpbmdPYmplY3RTdG9yZShNZW1vcnlPYmpl
Y3RTdG9yZSYgb2IKICAgICBvYmplY3RTdG9yZS53cml0ZVRyYW5zYWN0aW9uU3RhcnRlZCgqdGhp
cyk7CiB9CiAKK3ZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246Om9iamVjdFN0b3Jl
RGVsZXRlZChzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5T2JqZWN0U3RvcmU+IG9iamVjdFN0b3JlKQor
eworICAgIEFTU0VSVChtX29iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZS5nZXQoKSkp
OworICAgIG1fb2JqZWN0U3RvcmVzLnJlbW92ZShvYmplY3RTdG9yZS5nZXQoKSk7CisKKyAgICBh
dXRvIGFkZFJlc3VsdCA9IG1fZGVsZXRlZE9iamVjdFN0b3Jlcy5hZGQob2JqZWN0U3RvcmUtPmlu
Zm8oKS5uYW1lKCksIG51bGxwdHIpOworICAgIGlmIChhZGRSZXN1bHQuaXNOZXdFbnRyeSkKKyAg
ICAgICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZSA9IFdURjo6bW92ZShvYmplY3RTdG9yZSk7
Cit9CisKIHZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OnJlY29yZFZhbHVlQ2hh
bmdlZChNZW1vcnlPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQktleURhdGEmIGtl
eSkKIHsKICAgICBBU1NFUlQobV9vYmplY3RTdG9yZXMuY29udGFpbnMoJm9iamVjdFN0b3JlKSk7
CkBAIC0xMDYsNiArMTE2LDE5IEBAIHZvaWQgTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246
OmFib3J0KCkKIAogICAgIFRlbXBvcmFyeUNoYW5nZTxib29sPiBjaGFuZ2UobV9pc0Fib3J0aW5n
LCB0cnVlKTsKIAorICAgIC8vIFRoaXMgbG9vcCBtb3ZlcyB0aGUgdW5kZXJseWluZyB1bmlxdWVf
cHRycyBmcm9tIG91dCBvZiB0aGUgbV9kZWxldGVPYmplY3RTdG9yZXMgbWFwLAorICAgIC8vIGJ1
dCB0aGUgZW50cmllcyBpbiB0aGUgbWFwIHN0aWxsIHJlbWFpbi4KKyAgICBmb3IgKGF1dG8mIG9i
amVjdFN0b3JlIDogbV9kZWxldGVkT2JqZWN0U3RvcmVzLnZhbHVlcygpKSB7CisgICAgICAgIE1l
bW9yeU9iamVjdFN0b3JlKiByYXdPYmplY3RTdG9yZSA9IG9iamVjdFN0b3JlLmdldCgpOworICAg
ICAgICBtX2JhY2tpbmdTdG9yZS5yZXN0b3JlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJv
cnQoV1RGOjptb3ZlKG9iamVjdFN0b3JlKSk7CisKKyAgICAgICAgQVNTRVJUKCFtX29iamVjdFN0
b3Jlcy5jb250YWlucyhyYXdPYmplY3RTdG9yZSkpOworICAgICAgICBtX29iamVjdFN0b3Jlcy5h
ZGQocmF3T2JqZWN0U3RvcmUpOworICAgIH0KKworICAgIC8vIFRoaXMgY2xlYXJzIHRoZSBlbnRy
aWVzIGZyb20gdGhlIG1hcC4KKyAgICBtX2RlbGV0ZWRPYmplY3RTdG9yZXMuY2xlYXIoKTsKKwog
ICAgIGlmIChtX29yaWdpbmFsRGF0YWJhc2VJbmZvKSB7CiAgICAgICAgIEFTU0VSVChtX2luZm8u
bW9kZSgpID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25Nb2RlOjpWZXJzaW9uQ2hhbmdlKTsKICAg
ICAgICAgbV9iYWNraW5nU3RvcmUuc2V0RGF0YWJhc2VJbmZvKCptX29yaWdpbmFsRGF0YWJhc2VJ
bmZvKTsKQEAgLTE0NSw3ICsxNjgsOSBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0
aW9uOjpmaW5pc2goKQogICAgIGlmICghaXNXcml0aW5nKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGZvciAoYXV0byBvYmplY3RTdG9yZSA6IG1fb2JqZWN0U3RvcmVzKQorICAgIGZvciAoYXV0
byYgb2JqZWN0U3RvcmUgOiBtX29iamVjdFN0b3JlcykKKyAgICAgICAgb2JqZWN0U3RvcmUtPndy
aXRlVHJhbnNhY3Rpb25GaW5pc2hlZCgqdGhpcyk7CisgICAgZm9yIChhdXRvJiBvYmplY3RTdG9y
ZSA6IG1fZGVsZXRlZE9iamVjdFN0b3Jlcy52YWx1ZXMoKSkKICAgICAgICAgb2JqZWN0U3RvcmUt
PndyaXRlVHJhbnNhY3Rpb25GaW5pc2hlZCgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFu
c2FjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKaW5kZXggNDY1MmMyMS4uYjc5NzdjZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmgKQEAgLTU4LDYgKzU4LDcg
QEAgcHVibGljOgogICAgIHZvaWQgYWRkTmV3T2JqZWN0U3RvcmUoTWVtb3J5T2JqZWN0U3RvcmUm
KTsKICAgICB2b2lkIGFkZEV4aXN0aW5nT2JqZWN0U3RvcmUoTWVtb3J5T2JqZWN0U3RvcmUmKTsK
ICAgICB2b2lkIHJlY29yZFZhbHVlQ2hhbmdlZChNZW1vcnlPYmplY3RTdG9yZSYsIGNvbnN0IElE
QktleURhdGEmKTsKKyAgICB2b2lkIG9iamVjdFN0b3JlRGVsZXRlZChzdGQ6OnVuaXF1ZV9wdHI8
TWVtb3J5T2JqZWN0U3RvcmU+KTsKIAogICAgIHZvaWQgYWJvcnQoKTsKICAgICB2b2lkIGNvbW1p
dCgpOwpAQCAtNzgsNiArNzksNyBAQCBwcml2YXRlOgogICAgIEhhc2hTZXQ8TWVtb3J5T2JqZWN0
U3RvcmUqPiBtX29iamVjdFN0b3JlczsKICAgICBIYXNoU2V0PE1lbW9yeU9iamVjdFN0b3JlKj4g
bV92ZXJzaW9uQ2hhbmdlQWRkZWRPYmplY3RTdG9yZXM7CiAKKyAgICBIYXNoTWFwPFN0cmluZywg
c3RkOjp1bmlxdWVfcHRyPE1lbW9yeU9iamVjdFN0b3JlPj4gbV9kZWxldGVkT2JqZWN0U3RvcmVz
OwogICAgIEhhc2hNYXA8TWVtb3J5T2JqZWN0U3RvcmUqLCBzdGQ6OnVuaXF1ZV9wdHI8S2V5VmFs
dWVNYXA+PiBtX29yaWdpbmFsVmFsdWVzOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcAppbmRleCAwOWI0NTM2Li5lMDRjYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2lu
Z1N0b3JlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAK
IElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9i
amVjdFN0b3JlSW5mbyYgaW5mbykKIHsKLSAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpjcmVhdGVPYmplY3RTdG9yZSIpOworICAgIExPRyhJbmRleGVkREIsICJNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmNyZWF0ZU9iamVjdFN0b3JlIC0gYWRkaW5nIE9TICVzIHdpdGgg
SUQgJWxsdSIsIGluZm8ubmFtZSgpLnV0ZjgoKS5kYXRhKCksIGluZm8uaWRlbnRpZmllcigpKTsK
IAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAgICAgaWYgKG1fZGF0YWJhc2VJbmZvLT5o
YXNPYmplY3RTdG9yZShpbmZvLm5hbWUoKSkpCkBAIC0xMzgsNiArMTM4LDI5IEBAIElEQkVycm9y
IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0CiAgICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKK0lEQkVycm9yIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6ZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3Rv
cmVOYW1lKQoreworICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRl
bGV0ZU9iamVjdFN0b3JlIik7CisKKyAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOworICAgIGlm
ICghbV9kYXRhYmFzZUluZm8tPmhhc09iamVjdFN0b3JlKG9iamVjdFN0b3JlTmFtZSkpCisgICAg
ICAgIHJldHVybiBJREJFcnJvcihJREJFeGNlcHRpb25Db2RlOjpDb25zdHJhaW50RXJyb3IpOwor
CisgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklk
ZW50aWZpZXIpOworICAgIEFTU0VSVCh0cmFuc2FjdGlvbik7CisgICAgQVNTRVJUKHRyYW5zYWN0
aW9uLT5pc1ZlcnNpb25DaGFuZ2UoKSk7CisKKyAgICBhdXRvIG9iamVjdFN0b3JlID0gdGFrZU9i
amVjdFN0b3JlQnlOYW1lKG9iamVjdFN0b3JlTmFtZSk7CisgICAgQVNTRVJUKG9iamVjdFN0b3Jl
KTsKKyAgICBpZiAoIW9iamVjdFN0b3JlKQorICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRXhj
ZXB0aW9uQ29kZTo6Q29uc3RyYWludEVycm9yKTsKKworICAgIG1fZGF0YWJhc2VJbmZvLT5kZWxl
dGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworICAgIHRyYW5zYWN0aW9uLT5vYmplY3RT
dG9yZURlbGV0ZWQoV1RGOjptb3ZlKG9iamVjdFN0b3JlKSk7CisKKyAgICByZXR1cm4gSURCRXJy
b3IoKTsKK30KKwogdm9pZCBNZW1vcnlJREJCYWNraW5nU3RvcmU6OnJlbW92ZU9iamVjdFN0b3Jl
Rm9yVmVyc2lvbkNoYW5nZUFib3J0KE1lbW9yeU9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSkKIHsK
ICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZW1vdmVPYmplY3RT
dG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydCIpOwpAQCAtMTQ4LDYgKzE3MSwxMSBAQCB2b2lkIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6cmVtb3ZlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJv
cnQoTWVtb3J5T2JqZWN0UwogICAgIHVucmVnaXN0ZXJPYmplY3RTdG9yZShvYmplY3RTdG9yZSk7
CiB9CiAKK3ZvaWQgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpyZXN0b3JlT2JqZWN0U3RvcmVGb3JW
ZXJzaW9uQ2hhbmdlQWJvcnQoc3RkOjp1bmlxdWVfcHRyPE1lbW9yeU9iamVjdFN0b3JlPiYmIG9i
amVjdFN0b3JlKQoreworICAgIHJlZ2lzdGVyT2JqZWN0U3RvcmUoV1RGOjptb3ZlKG9iamVjdFN0
b3JlKSk7Cit9CisKIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6a2V5RXhpc3RzSW5P
YmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCB1aW50NjRfdCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGJvb2wmIGtleUV4aXN0
cykKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjprZXlFeGlz
dHNJbk9iamVjdFN0b3JlIik7CkBAIC0yMjksNiArMjU3LDE5IEBAIHZvaWQgTWVtb3J5SURCQmFj
a2luZ1N0b3JlOjp1bnJlZ2lzdGVyT2JqZWN0U3RvcmUoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVj
dFN0b3JlCiAgICAgbV9vYmplY3RTdG9yZXNCeUlkZW50aWZpZXIucmVtb3ZlKG9iamVjdFN0b3Jl
LmluZm8oKS5pZGVudGlmaWVyKCkpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8TWVtb3J5T2JqZWN0
U3RvcmU+IE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6dGFrZU9iamVjdFN0b3JlQnlOYW1lKGNvbnN0
IFN0cmluZyYgbmFtZSkKK3sKKworICAgIGF1dG8gcmF3T2JqZWN0U3RvcmUgPSBtX29iamVjdFN0
b3Jlc0J5TmFtZS50YWtlKG5hbWUpOworICAgIGlmICghcmF3T2JqZWN0U3RvcmUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgYXV0byBvYmplY3RTdG9yZSA9IG1fb2JqZWN0U3RvcmVz
QnlJZGVudGlmaWVyLnRha2UocmF3T2JqZWN0U3RvcmUtPmluZm8oKS5pZGVudGlmaWVyKCkpOwor
ICAgIEFTU0VSVChvYmplY3RTdG9yZSk7CisKKyAgICByZXR1cm4gb2JqZWN0U3RvcmU7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmgKaW5kZXggNjRiNzdhZC4uOWQ2OTJmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tp
bmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaApAQCAtNTMsMTYgKzUzLDIwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIElEQkVycm9yIGFib3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwg
SURCRXJyb3IgY29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJy
b3IgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpIG92ZXJyaWRlIGZpbmFs
OworICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgb2JqZWN0
U3RvcmVOYW1lKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0
c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0
YSYsIGJvb2wmIGtleUV4aXN0cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJv
ciBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0
YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgcHV0UmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZl
RGF0YUJ1ZmZlciYgdmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3Ig
Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBU
aHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogCiAgICAgdm9p
ZCByZW1vdmVPYmplY3RTdG9yZUZvclZlcnNpb25DaGFuZ2VBYm9ydChNZW1vcnlPYmplY3RTdG9y
ZSYpOworICAgIHZvaWQgcmVzdG9yZU9iamVjdFN0b3JlRm9yVmVyc2lvbkNoYW5nZUFib3J0KHN0
ZDo6dW5pcXVlX3B0cjxNZW1vcnlPYmplY3RTdG9yZT4mJik7CiAKIHByaXZhdGU6CiAgICAgTWVt
b3J5SURCQmFja2luZ1N0b3JlKGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYpOwogCisgICAg
c3RkOjp1bmlxdWVfcHRyPE1lbW9yeU9iamVjdFN0b3JlPiB0YWtlT2JqZWN0U3RvcmVCeU5hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKTsKKwogICAgIElEQkRhdGFiYXNlSWRlbnRpZmllciBtX2lkZW50
aWZpZXI7CiAgICAgc3RkOjp1bmlxdWVfcHRyPElEQkRhdGFiYXNlSW5mbz4gbV9kYXRhYmFzZUlu
Zm87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDQxYzJkNWYyLi4zN2IyMjUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTIzNywxOSArMjM3LDE3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMT0coSW5k
ZXhlZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZSIpOwog
Ci0gICAgQVNTRVJUKG1fYmFja2luZ1N0b3JlKTsKLSAgICBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRl
T2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7Ci0KICAg
ICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFjayhjYWxsYmFjayk7CiAgICAgbV9z
ZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybUNyZWF0ZU9iamVjdFN0b3JlLCBjYWxsYmFja0lELCB0cmFu
c2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvKSk7CiB9CiAKLXZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIGNvbnN0IElEQk9iamVjdFN0b3Jl
SW5mbyYgaW5mbykKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVPYmplY3RT
dG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIGlu
Zm8pCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwg
IihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1DcmVhdGVPYmplY3RTdG9yZSIpOwogCi0g
ICAgLy8gRklYTUU6IENyZWF0ZSBvYmplY3Qgc3RvcmUgaW4gYmFja2luZyBzdG9yZSwgb25jZSB0
aGF0IGV4aXN0cy4KKyAgICBBU1NFUlQobV9iYWNraW5nU3RvcmUpOworICAgIG1fYmFja2luZ1N0
b3JlLT5jcmVhdGVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbklkZW50aWZpZXIsIGluZm8pOwogCiAg
ICAgSURCRXJyb3IgZXJyb3I7CiAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNy
ZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3Jt
Q3JlYXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIGluZm8pKTsKQEAg
LTI2Niw2ICsyNjQsMzggQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUNyZWF0
ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwKICAgICBwZXJmb3JtRXJy
b3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKTsKIH0KIAordm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lLCBFcnJvckNhbGxi
YWNrIGNhbGxiYWNrKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKElu
ZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUiKTsK
KworICAgIHVpbnQ2NF90IGNhbGxiYWNrSUQgPSBzdG9yZUNhbGxiYWNrKGNhbGxiYWNrKTsKKyAg
ICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywg
JlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUsIGNhbGxiYWNrSUQs
IHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlTmFtZSkpOworfQor
Cit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUodWludDY0
X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpCit7CisgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVl
SURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSIpOworCisgICAgQVNTRVJUKG1f
YmFja2luZ1N0b3JlKTsKKyAgICBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2JqZWN0U3RvcmUodHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZU5hbWUpOworCisgICAgSURCRXJyb3IgZXJy
b3I7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFk
VGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlT2JqZWN0U3Rv
cmUsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIG9iamVjdFN0b3JlTmFtZSkpOworfQorCit2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlT2JqZWN0U3RvcmUodWludDY0
X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJyb3IsIGNvbnN0IFN0cmlu
ZyYgb2JqZWN0U3RvcmVOYW1lKQoreworICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CisgICAg
TE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybURlbGV0
ZU9iamVjdFN0b3JlIik7CisKKyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIG1fZGF0
YWJhc2VJbmZvLT5kZWxldGVPYmplY3RTdG9yZShvYmplY3RTdG9yZU5hbWUpOworCisgICAgcGVy
Zm9ybUVycm9yQ2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvcik7Cit9CisKIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZm
ZXImIHZhbHVlRGF0YSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3Zlcndy
aXRlTW9kZSwgS2V5RGF0YUNhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGYzYjAxM2UuLjZkM2YwNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICBJREJT
ZXJ2ZXImIHNlcnZlcigpIHsgcmV0dXJuIG1fc2VydmVyOyB9CiAKICAgICB2b2lkIGNyZWF0ZU9i
amVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJPYmplY3RT
dG9yZUluZm8mLCBFcnJvckNhbGxiYWNrKTsKKyAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFt
ZSwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVE
YXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSwgS2V5RGF0YUNhbGxiYWNr
KTsKICAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktl
eURhdGEmLCBWYWx1ZURhdGFDYWxsYmFjayk7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CkBAIC05OCw2ICs5
OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtQWJvcnRUcmFuc2FjdGlvbih1aW50NjRf
dCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyKTsKICAgICB2b2lkIGJlZ2luVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9y
ZShjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIHBlcmZvcm1DcmVhdGVPYmpl
Y3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8m
KTsKKyAgICB2b2lkIHBlcmZvcm1EZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSk7CiAgICAgdm9pZCBwZXJmb3JtUHV0
T3JBZGQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVl
RGF0YSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIHZvaWQgcGVy
Zm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291
cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmKTsKICAgICB2b2lkIHBlcmZvcm1BY3RpdmF0
ZVRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKQEAgLTEwNSw2ICsxMDcsNyBAQCBwcml2YXRlOgog
ICAgIC8vIE1haW4gdGhyZWFkIGNhbGxiYWNrcwogICAgIHZvaWQgZGlkT3BlbkJhY2tpbmdTdG9y
ZShjb25zdCBJREJEYXRhYmFzZUluZm8mKTsKICAgICB2b2lkIGRpZFBlcmZvcm1DcmVhdGVPYmpl
Y3RTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29u
c3QgSURCT2JqZWN0U3RvcmVJbmZvJik7CisgICAgdm9pZCBkaWRQZXJmb3JtRGVsZXRlT2JqZWN0
U3RvcmUodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYsIGNvbnN0
IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIGRpZFBlcmZvcm1QdXRPckFkZCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCS2V5
RGF0YSYpOwogICAgIHZvaWQgZGlkUGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImKTsK
ICAgICB2b2lkIGRpZFBlcmZvcm1Db21taXRUcmFuc2FjdGlvbih1aW50NjRfdCBjYWxsYmFja0lk
ZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25u
ZWN0aW9uLmNwcAppbmRleCA5YjM5MTgxLi40NDM5YmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VDb25uZWN0aW9uLmNwcApAQCAtMTM5LDYgKzEzOSwxMyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6ZGlkQ3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVz
dWx0RGF0YSYgcmVzdQogICAgIG1fY29ubmVjdGlvblRvQ2xpZW50LmRpZENyZWF0ZU9iamVjdFN0
b3JlKHJlc3VsdERhdGEpOwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbjo6
ZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sK
KyAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uOjpkaWREZWxl
dGVPYmplY3RTdG9yZSIpOworCisgICAgbV9jb25uZWN0aW9uVG9DbGllbnQuZGlkRGVsZXRlT2Jq
ZWN0U3RvcmUocmVzdWx0RGF0YSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIElEQlNlcnZlcgogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VDb25uZWN0
aW9uLmgKaW5kZXggMjlkN2IxMC4uNGI1Njc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb24uaApAQCAtNjcsNiArNjcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRB
Ym9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJF
cnJvciYpOwogICAgIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYsIGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBkaWRDcmVhdGVPYmplY3RT
dG9yZShjb25zdCBJREJSZXN1bHREYXRhJik7CisgICAgdm9pZCBkaWREZWxldGVPYmplY3RTdG9y
ZShjb25zdCBJREJSZXN1bHREYXRhJik7CiAKIHByaXZhdGU6CiAgICAgVW5pcXVlSURCRGF0YWJh
c2VDb25uZWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlJiwgSURCQ29ubmVjdGlvblRvQ2xpZW50Jik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggM2E0
NGRkMi4uNTc4MmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uLmNwcApAQCAtMTEzLDYgKzExMywyNCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb246OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZQogICAg
IH0pOwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgU3RyaW5nJiBv
YmplY3RTdG9yZU5hbWUpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb246OmRlbGV0ZU9iamVjdFN0b3JlIik7CisKKyAgICBBU1NFUlQoaXNWZXJzaW9u
Q2hhbmdlKCkpOworICAgIEFTU0VSVChtX3RyYW5zYWN0aW9uSW5mby5pZGVudGlmaWVyKCkgPT0g
cmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCkpOworCisgICAgUmVmUHRyPFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+IHNlbGYodGhpcyk7CisgICAgbV9kYXRhYmFzZUNvbm5l
Y3Rpb24tPmRhdGFiYXNlKCkuZGVsZXRlT2JqZWN0U3RvcmUoKnRoaXMsIG9iamVjdFN0b3JlTmFt
ZSwgW3RoaXMsIHNlbGYsIHJlcXVlc3REYXRhXShjb25zdCBJREJFcnJvciYgZXJyb3IpIHsKKyAg
ICAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmRlbGV0
ZU9iamVjdFN0b3JlIChjYWxsYmFjaykiKTsKKyAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQor
ICAgICAgICAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmRpZERlbGV0ZU9iamVjdFN0b3JlKElE
QlJlc3VsdERhdGE6OmRlbGV0ZU9iamVjdFN0b3JlU3VjY2VzcyhyZXF1ZXN0RGF0YS5yZXF1ZXN0
SWRlbnRpZmllcigpKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZGF0YWJhc2VDb25u
ZWN0aW9uLT5kaWREZWxldGVPYmplY3RTdG9yZShJREJSZXN1bHREYXRhOjplcnJvcihyZXF1ZXN0
RGF0YS5yZXF1ZXN0SWRlbnRpZmllcigpLCBlcnJvcikpOworICAgIH0pOworfQorCisKIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERh
dGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBUaHJlYWRT
YWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRl
TW9kZSBvdmVyd3JpdGVNb2RlKQogewogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uOjpwdXRPckFkZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uLmgKaW5kZXggYTU2MWRiYy4uODBhOGZhZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC02Myw2ICs2Myw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGNvbW1pdCgpOwogCiAgICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOworICAgIHZvaWQgZGVsZXRl
T2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0
b3JlTmFtZSk7CiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0
IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRl
eGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29u
c3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRhJik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUluZm8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5m
by5jcHAKaW5kZXggODliMGRkZS4uYjRhYjAxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5jcHAKQEAg
LTEwNiw2ICsxMDYsMTUgQEAgVmVjdG9yPFN0cmluZz4gSURCRGF0YWJhc2VJbmZvOjpvYmplY3RT
dG9yZU5hbWVzKCkgY29uc3QKICAgICByZXR1cm4gV1RGOjptb3ZlKG5hbWVzKTsKIH0KIAordm9p
ZCBJREJEYXRhYmFzZUluZm86OmRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWN0
U3RvcmVOYW1lKQoreworICAgIGF1dG8qIGluZm8gPSBpbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9y
ZShvYmplY3RTdG9yZU5hbWUpOworICAgIGlmICghaW5mbykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9vYmplY3RTdG9yZU1hcC5yZW1vdmUoaW5mby0+aWRlbnRpZmllcigpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
RGF0YWJhc2VJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCRGF0YWJhc2VJbmZvLmgKaW5kZXggYjZhYzY4YS4uY2Q1OWI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkRhdGFiYXNlSW5mby5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJEYXRhYmFzZUlu
Zm8uaApAQCAtNTQsNiArNTQsOCBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8U3RyaW5nPiBvYmpl
Y3RTdG9yZU5hbWVzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0
IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKKwogcHJpdmF0ZToKICAgICBJREJEYXRhYmFzZUlu
Zm8oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc3VsdERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwCmluZGV4IDhkY2I3NDYuLjVhNWM3YzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVz
dWx0RGF0YS5jcHAKQEAgLTkzLDYgKzkzLDExIEBAIElEQlJlc3VsdERhdGEgSURCUmVzdWx0RGF0
YTo6Y3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllCiAg
ICAgcmV0dXJuIHsgSURCUmVzdWx0VHlwZTo6Q3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzLCByZXF1
ZXN0SWRlbnRpZmllciB9OwogfQogCitJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6OmRlbGV0
ZU9iamVjdFN0b3JlU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJ
ZGVudGlmaWVyKQoreworICAgIHJldHVybiB7IElEQlJlc3VsdFR5cGU6OkRlbGV0ZU9iamVjdFN0
b3JlU3VjY2VzcywgcmVxdWVzdElkZW50aWZpZXIgfTsKK30KKwogSURCUmVzdWx0RGF0YSBJREJS
ZXN1bHREYXRhOjpwdXRPckFkZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBy
ZXF1ZXN0SWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYgcmVzdWx0S2V5KQogewogICAgIElE
QlJlc3VsdERhdGEgcmVzdWx0KElEQlJlc3VsdFR5cGU6OlB1dE9yQWRkU3VjY2VzcywgcmVxdWVz
dElkZW50aWZpZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKaW5kZXggOGYyOTNjOS4uYjgwNTRhZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVz
dWx0RGF0YS5oCkBAIC00NSw2ICs0NSw3IEBAIGVudW0gY2xhc3MgSURCUmVzdWx0VHlwZSB7CiAg
ICAgT3BlbkRhdGFiYXNlU3VjY2VzcywKICAgICBPcGVuRGF0YWJhc2VVcGdyYWRlTmVlZGVkLAog
ICAgIENyZWF0ZU9iamVjdFN0b3JlU3VjY2VzcywKKyAgICBEZWxldGVPYmplY3RTdG9yZVN1Y2Nl
c3MsCiAgICAgUHV0T3JBZGRTdWNjZXNzLAogICAgIEdldFJlY29yZFN1Y2Nlc3MsCiB9OwpAQCAt
NjAsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgb3BlbkRhdGFi
YXNlU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYpOwogICAgIHN0YXRpYyBJREJSZXN1bHREYXRhIG9wZW5E
YXRhYmFzZVVwZ3JhZGVOZWVkZWQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgSURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJik7CiAgICAgc3RhdGljIElEQlJlc3Vs
dERhdGEgY3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYpOworICAgIHN0YXRpYyBJREJSZXN1bHREYXRhIGRlbGV0ZU9iamVjdFN0b3JlU3VjY2Vzcyhj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsKICAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSBw
dXRPckFkZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgSURCS2V5
RGF0YSYpOwogICAgIHN0YXRpYyBJREJSZXN1bHREYXRhIGdldFJlY29yZFN1Y2Nlc3MoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVl
RGF0YSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggYzVkZTA2Ny4uZGMwOWEw
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lu
UHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTEyNyw2ICsxMjcsMTQgQEAgdm9p
ZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZENyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdGEpCiAgICAgfSk7CiB9CiAKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVy
OjpkaWREZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHREYXRhKQor
eworICAgIFJlZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7CisgICAgUnVuTG9v
cDo6Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBzZWxmLCByZXN1bHREYXRhXSB7CisgICAgICAg
IG1fY29ubmVjdGlvblRvU2VydmVyLT5kaWREZWxldGVPYmplY3RTdG9yZShyZXN1bHREYXRhKTsK
KyAgICB9KTsKK30KKwogdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZFB1dE9yQWRkKGNvbnN0
IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiB7CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNl
cnZlcj4gc2VsZih0aGlzKTsKQEAgLTE2Nyw2ICsxNzUsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXN1bHREYXRh
LCBjb24KICAgICB9KTsKIH0KIAordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgU3RyaW5nJiBv
YmplY3RTdG9yZU5hbWUpCit7CisgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZlcj4gc2VsZih0
aGlzKTsKKyAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJlcXVl
c3REYXRhLCBvYmplY3RTdG9yZU5hbWVdIHsKKyAgICAgICAgbV9zZXJ2ZXItPmRlbGV0ZU9iamVj
dFN0b3JlKHJlcXVlc3REYXRhLCBvYmplY3RTdG9yZU5hbWUpOworICAgIH0pOworfQorCiB2b2lk
IEluUHJvY2Vzc0lEQlNlcnZlcjo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBJREJLZXkqIGtleSwgU2VyaWFsaXplZFNjcmlwdFZhbHVlJiB2YWx1ZSwgY29uc3Qg
SW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUgb3ZlcndyaXRlTW9kZSkKIHsKICAg
ICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5oCmluZGV4IGQ2ZjI4YTQuLmI2YWM0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgK
QEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYm9ydFRyYW5zYWN0
aW9uKElEQlJlc291cmNlSWRlbnRpZmllciYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwg
dm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImKSBvdmVycmlkZSBm
aW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVz
dERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25z
dCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2
b2lkIHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgSURCS2V5KiwgU2VyaWFsaXplZFNj
cmlwdFZhbHVlJiwgY29uc3QgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpIG92
ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVz
dERhdGEmLCBJREJLZXkqKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZXN0YWJs
aXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJikgb3ZlcnJpZGUgZmluYWw7CkBAIC03MSw2ICs3Miw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQWJvcnRUcmFuc2FjdGlvbihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3Im
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0VHJhbnNhY3Rpb24o
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZENyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkRGVsZXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzdWx0RGF0YSYpIG92ZXJy
aWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHRE
YXRhJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdldFJlY29yZChjb25z
dCBJREJSZXN1bHREYXRhJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGZpcmVW
ZXJzaW9uQ2hhbmdlRXZlbnQoSURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24m
LCB1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKSBvdmVycmlkZSBmaW5hbDsK
</data>
<flag name="review"
          id="289470"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>