<?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>117830</bug_id>
          
          <creation_ts>2013-06-20 05:47:08 -0700</creation_ts>
          <short_desc>HashSet: reverse the order of the template arguments at alternate &apos;find&apos;, &apos;contains&apos; and &apos;add&apos; methods</short_desc>
          <delta_ts>2013-06-20 14:10:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>schenney</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>902103</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-06-20 05:47:08 -0700</bug_when>
    <thetext>We should reverse the order of the template arguments at alternate &apos;find&apos;, &apos;contains&apos; and &apos;add&apos; HashSet methods so that callers can just pass the translator and let the compiler deduce T.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902123</commentid>
    <comment_count>1</comment_count>
      <attachid>205082</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-06-20 06:41:00 -0700</bug_when>
    <thetext>Created attachment 205082
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902147</commentid>
    <comment_count>2</comment_count>
      <attachid>205082</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-06-20 07:18:34 -0700</bug_when>
    <thetext>Comment on attachment 205082
patch

Attachment 205082 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/927054</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902148</commentid>
    <comment_count>3</comment_count>
      <attachid>205089</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2013-06-20 07:29:48 -0700</bug_when>
    <thetext>Created attachment 205089
patch v2

fix compilation error on MAC</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902317</commentid>
    <comment_count>4</comment_count>
      <attachid>205089</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 14:10:22 -0700</bug_when>
    <thetext>Comment on attachment 205089
patch v2

Clearing flags on attachment: 205089

Committed r151800: &lt;http://trac.webkit.org/changeset/151800&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902318</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-20 14:10:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205082</attachid>
            <date>2013-06-20 06:41:00 -0700</date>
            <delta_ts>2013-06-20 07:29:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug117830</filename>
            <type>text/plain</type>
            <size>55530</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDI5Yzk5N2E1ZDI2YTM5OTJmYzA5OTE1OGE4ZWFmOTA0MjI5NTA1ZGIKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEp1biAyMCAxNjozNzowMSAyMDEzICswMzAwCgogICAgYnVnMTE3ODMwCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNWRjYzcxZC4uY2ExODkzNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDYtMjAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1p
a2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgSGFzaFNldDogcmV2ZXJzZSB0
aGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBhdCBhbHRlcm5hdGUgJ2ZpbmQnLCAn
Y29udGFpbnMnIGFuZCAnYWRkJyBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBh
dCBIYXNoU2V0IGFsdGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kCisgICAgICAgICdhZGQn
IG1ldGhvZHMgaXMgcmV2ZXJzZWQgc28gdGhhdCBjYWxsZXJzIGNhbiBqdXN0IHBhc3MgdGhlIHRy
YW5zbGF0b3IKKyAgICAgICAgYW5kIGxldCB0aGUgY29tcGlsZXIgZGVkdWNlIGlucHV0IGFyZ3Vt
ZW50IHR5cGUuCisKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAgICAgKEpT
Qzo6SWRlbnRpZmllclRhYmxlOjphZGQpOgorCiAyMDEzLTA2LTE4ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgR29pbmcgdG8gZ29vZ2xlLmNvbS90cmVuZHMgY2F1
c2VzIGEgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaApp
bmRleCBmMDc1YWE2Li43NWI2OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SWRlbnRpZmllci5oCkBAIC0yNTEsNyArMjUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4KICAgICBIYXNoU2V0PFN0cmluZ0ltcGwqPjo6
QWRkUmVzdWx0IElkZW50aWZpZXJUYWJsZTo6YWRkKFUgdmFsdWUpCiAgICAgewotICAgICAgICBI
YXNoU2V0PFN0cmluZ0ltcGwqPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fdGFibGUuYWRkPFUsIFY+
KHZhbHVlKTsKKyAgICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJlc3VsdCByZXN1bHQg
PSBtX3RhYmxlLmFkZDxWPih2YWx1ZSk7CiAgICAgICAgICgqcmVzdWx0Lml0ZXJhdG9yKS0+c2V0
SXNJZGVudGlmaWVyKHRydWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
MWNhZGY2Ny4uMGMwNzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wNi0yMCAgTWlraGFp
bCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBI
YXNoU2V0OiByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgdGVtcGxhdGUgYXJndW1lbnRzIGF0IGFs
dGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kICdhZGQnIG1ldGhvZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzgzMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBvcmRlciBvZiB0aGUgdGVt
cGxhdGUgYXJndW1lbnRzIGF0IEhhc2hTZXQgYWx0ZXJuYXRlICdmaW5kJywgJ2NvbnRhaW5zJyBh
bmQKKyAgICAgICAgJ2FkZCcgbWV0aG9kcyBpcyByZXZlcnNlZCBzbyB0aGF0IGNhbGxlcnMgY2Fu
IGp1c3QgcGFzcyB0aGUgdHJhbnNsYXRvcgorICAgICAgICBhbmQgbGV0IHRoZSBjb21waWxlciBk
ZWR1Y2UgaW5wdXQgYXJndW1lbnQgdHlwZS4KKworICAgICAgICAqIHd0Zi9IYXNoU2V0Lmg6Cisg
ICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6YWRkVG9T
dHJpbmdUYWJsZSk6CisgICAgICAgIChXVEY6OmZpbmRTdHJpbmcpOgorCiAyMDEzLTA2LTE5ICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBT
ZWdtZW50ZWRWZWN0b3IgaW5saW5lIHNlZ21lbnQgdG8gc2hyaW5rIENvZGVCbG9jayBieSA2WApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvSGFz
aFNldC5oCmluZGV4IDY1YjY0MmEuLmM4OWQ0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKQEAgLTY4LDEwICs2OCw4
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAvLyBtdXN0IGhhdmUgdGhlIGZvbGxvd2luZyBm
dW5jdGlvbiBtZW1iZXJzOgogICAgICAgICAvLyAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFQmKTsKICAgICAgICAgLy8gICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBWYWx1ZVR5cGUmLCBj
b25zdCBUJik7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmV2ZXJzZSB0aGUgb3JkZXIg
b2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBzbyB0aGF0IGNhbGxlcnMKLSAgICAgICAgLy8gY2Fu
IGp1c3QgcGFzcyB0aGUgdHJhbnNsYXRvciBhbmQgbGV0IHRoZSBjb21waWxlciBkZWR1Y2UgVC4K
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSGFzaFRyYW5zbGF0b3I+IGl0
ZXJhdG9yIGZpbmQoY29uc3QgVCYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBIYXNoVHJhbnNsYXRvcj4gYm9vbCBjb250YWlucyhjb25zdCBUJikgY29uc3Q7
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBp
dGVyYXRvciBmaW5kKGNvbnN0IFQmKSBjb25zdDsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+IGJvb2wgY29udGFpbnMoY29uc3QgVCYpIGNvbnN0
OwogCiAgICAgICAgIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBwYWlyIG9mIGFuIGludGVyYXRv
ciB0byB0aGUgbmV3IHZhbHVlJ3MgbG9jYXRpb24sIAogICAgICAgICAvLyBhbmQgYSBib29sIHRo
YXQgaXMgdHJ1ZSBpZiBhbiBuZXcgZW50cnkgd2FzIGFkZGVkLgpAQCAtODMsOSArODEsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBU
Jik7CiAgICAgICAgIC8vICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVmFsdWVUeXBlJiwgY29u
c3QgVCYpOwogICAgICAgICAvLyAgIHN0YXRpYyB0cmFuc2xhdGUoVmFsdWVUeXBlJiwgY29uc3Qg
VCYsIHVuc2lnbmVkIGhhc2hDb2RlKTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXZl
cnNlIHRoZSBvcmRlciBvZiB0aGUgdGVtcGxhdGUgYXJndW1lbnRzIHNvIHRoYXQgY2FsbGVycwot
ICAgICAgICAvLyBjYW4ganVzdCBwYXNzIHRoZSB0cmFuc2xhdG9yIGFuZCBsZXQgdGhlIGNvbXBp
bGVyIGRlZHVjZSBULgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBIYXNo
VHJhbnNsYXRvcj4gQWRkUmVzdWx0IGFkZChjb25zdCBUJik7CisgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBBZGRSZXN1bHQgYWRkKGNvbnN0IFQm
KTsKIAogICAgICAgICB2b2lkIHJlbW92ZShjb25zdCBWYWx1ZVR5cGUmKTsKICAgICAgICAgdm9p
ZCByZW1vdmUoaXRlcmF0b3IpOwpAQCAtMTYyLDcgKzE1OCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHM+Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
SGFzaFRyYW5zbGF0b3I+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5
cGVuYW1lIFQ+CiAgICAgdHlwZW5hbWUgSGFzaFNldDxWYWx1ZSwgSGFzaEZ1bmN0aW9ucywgVHJh
aXRzPjo6aXRlcmF0b3IKICAgICBpbmxpbmUgSGFzaFNldDxWYWx1ZSwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzPjo6ZmluZChjb25zdCBUJiB2YWx1ZSkgY29uc3QKICAgICB7CkBAIC0xNzAsNyArMTY2
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cz4KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBIYXNoVHJhbnNsYXRvcj4KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4KICAgICBpbmxpbmUgYm9vbCBIYXNoU2V0
PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+Ojpjb250YWlucyhjb25zdCBUJiB2YWx1ZSkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2ltcGwudGVtcGxhdGUgY29udGFpbnM8SGFz
aFNldFRyYW5zbGF0b3JBZGFwdGVyPEhhc2hUcmFuc2xhdG9yPiA+KHZhbHVlKTsKQEAgLTE4Myw3
ICsxNzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPgotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yPgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgogICAgIGlubGluZSB0eXBlbmFt
ZSBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjpBZGRSZXN1bHQKICAgICBI
YXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjphZGQoY29uc3QgVCYgdmFsdWUp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCmluZGV4IDVlYTEyN2IuLmU5
NTIyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKQEAgLTc1LDcgKzc1LDcg
QEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGFkZFRvU3RyaW5nVGFibGUo
Y29uc3QgVCYgdmFsdWUpCiB7CiAgICAgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIgbG9ja2VyOwog
Ci0gICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBzdHJpbmdU
YWJsZSgpLmFkZDxULCBIYXNoVHJhbnNsYXRvcj4odmFsdWUpOworICAgIEhhc2hTZXQ8U3RyaW5n
SW1wbCo+OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5hZGQ8SGFzaFRyYW5z
bGF0b3I+KHZhbHVlKTsKIAogICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgbmV3bHktdHJhbnNsYXRl
ZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0LgogICAgIC8vIFRoZSBib29sZWFuIGluIHRoZSBw
YWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCkBAIC0zOTMsNyArMzkzLDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0YXRpYyBpbmxpbmUgSGFzaFNldDxTdHJpbmdJbXBs
Kj46Oml0ZXJhdG9yIGZpbmRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKIHsK
ICAgICBIYXNoQW5kQ2hhcmFjdGVyczxDaGFyYWN0ZXJUeXBlPiBidWZmZXIgPSB7IHN0cmluZ0lt
cGwtPmV4aXN0aW5nSGFzaCgpLCBzdHJpbmdJbXBsLT5nZXRDaGFyYWN0ZXJzPENoYXJhY3RlclR5
cGU+KCksIHN0cmluZ0ltcGwtPmxlbmd0aCgpIH07Ci0gICAgcmV0dXJuIHN0cmluZ1RhYmxlKCku
ZmluZDxIYXNoQW5kQ2hhcmFjdGVyczxDaGFyYWN0ZXJUeXBlPiwgSGFzaEFuZENoYXJhY3RlcnNU
cmFuc2xhdG9yPENoYXJhY3RlclR5cGU+ID4oYnVmZmVyKTsKKyAgICByZXR1cm4gc3RyaW5nVGFi
bGUoKS5maW5kPEhhc2hBbmRDaGFyYWN0ZXJzVHJhbnNsYXRvcjxDaGFyYWN0ZXJUeXBlPiA+KGJ1
ZmZlcik7CiB9CiAKIEF0b21pY1N0cmluZ0ltcGwqIEF0b21pY1N0cmluZzo6ZmluZChjb25zdCBT
dHJpbmdJbXBsKiBzdHJpbmdJbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIuLjBkODc5YmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzEgQEAKKzIwMTMtMDYtMjAgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgSGFzaFNldDogcmV2
ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBhdCBhbHRlcm5hdGUgJ2Zp
bmQnLCAnY29udGFpbnMnIGFuZCAnYWRkJyBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3Vt
ZW50cyBhdCBIYXNoU2V0IGFsdGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kCisgICAgICAg
ICdhZGQnIG1ldGhvZHMgaXMgcmV2ZXJzZWQgc28gdGhhdCBjYWxsZXJzIGNhbiBqdXN0IHBhc3Mg
dGhlIHRyYW5zbGF0b3IKKyAgICAgICAgYW5kIGxldCB0aGUgY29tcGlsZXIgZGVkdWNlIGlucHV0
IGFyZ3VtZW50IHR5cGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAgICAqIHN2Zy9TVkdBRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdD
aXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0Ns
aXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQ29tcG9uZW50VHJhbnNm
ZXJGdW5jdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBz
dmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDdXJzb3JFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAg
ICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAg
ICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICog
c3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTGlnaHRF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTWVyZ2VO
b2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXJF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdH
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdHcmFkaWVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR3JhZGllbnRFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
TGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHTGlu
ZWFyR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdyYWRp
ZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdNUGF0
aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTVBhdGhFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdN
YXNrRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXRo
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQ
b2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3JhZGll
bnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1JlY3RF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAg
ICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTdG9w
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHlsZUVs
ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRl
bnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
VXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6aXNE
aXNhbGxvd2VkRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorCiAyMDEzLTA2LTIw
ICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAgICAg
ICAgIGJhY2tncm91bmQtY29sb3IgYW5kIHRleHQtZGVjb3JhdGlvbiBhcmUgbm90IHByZXNlcnZl
ZCB3aGVuIG1lcmdpbmcgcGFyYWdyYXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUuY3Bw
CmluZGV4IGE5MzlkY2UuLjZhODE1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9R
dWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFtZS5j
cHAKQEAgLTgzLDcgKzgzLDcgQEAgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIHAsIGNvbnN0IEF0b21pY1N0cmluZyYgbCwgY29uc3QKICAgICBpZiAoIWdO
YW1lQ2FjaGUpCiAgICAgICAgIGdOYW1lQ2FjaGUgPSBuZXcgUU5hbWVTZXQ7CiAgICAgUXVhbGlm
aWVkTmFtZUNvbXBvbmVudHMgY29tcG9uZW50cyA9IHsgcC5pbXBsKCksIGwuaW1wbCgpLCBuLmlz
RW1wdHkoKSA/IG51bGxBdG9tLmltcGwoKSA6IG4uaW1wbCgpIH07Ci0gICAgUU5hbWVTZXQ6OkFk
ZFJlc3VsdCBhZGRSZXN1bHQgPSBnTmFtZUNhY2hlLT5hZGQ8UXVhbGlmaWVkTmFtZUNvbXBvbmVu
dHMsIFFOYW1lQ29tcG9uZW50c1RyYW5zbGF0b3I+KGNvbXBvbmVudHMpOworICAgIFFOYW1lU2V0
OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gZ05hbWVDYWNoZS0+YWRkPFFOYW1lQ29tcG9uZW50c1Ry
YW5zbGF0b3I+KGNvbXBvbmVudHMpOwogICAgIG1faW1wbCA9ICphZGRSZXN1bHQuaXRlcmF0b3I7
CiAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgbV9pbXBsLT5yZWYoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IDdlNzA5MzMuLjYzNDE4MTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCBib29sIFNWR0FFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkK
ICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmli
dXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnRhcmdldEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQUVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0
ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcAppbmRleCA0MjE0ZjJmLi5lZjdiMjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTk5LDcgKzk5LDcgQEAgYm9vbCBT
VkdBbmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpwYXRoQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVNb3Rpb25FbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFu
c2Zvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudC5jcHAKaW5kZXggOTc3OWFhNS4uODUzMmJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkBAIC01Nyw3ICs1Nyw3IEBA
IGJvb2wgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChIYXNoU2V0
PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYgKHN1cHBv
cnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6dHlwZUF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdBbmltYXRlVHJhbnNmb3Jt
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRpb25FbGVt
ZW50LmNwcAppbmRleCA1ZjRkYTIwLi45OTNmOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgYm9vbCBTVkdBbmltYXRp
b25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRvQXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpieUF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCA3ZWU4NDdlLi44MmIxNDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC03Nyw3ICs3Nyw3IEBA
IGJvb2wgU1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjpjeUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
ckF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxR
dWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ2lyY2xlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAKaW5kZXggOWQzOGMz
Ny4uM2MxZDBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
QEAgLTY3LDcgKzY3LDcgQEAgYm9vbCBTVkdDbGlwUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5h
bFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJp
YnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6Y2xpcFBh
dGhVbml0c0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ2xpcFBhdGhFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRy
YW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDb21wb25l
bnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKaW5kZXggMGEyOTdiNC4uY2UyZTYxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9uZW50VHJhbnNmZXJG
dW5jdGlvbkVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIGJvb2wgU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpleHBvbmVudEF0
dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6b2Zmc2V0QXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxp
ZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJz
b3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcApp
bmRleCBlZGY5ZDljLi4wNjIzYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
Q3Vyc29yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0N1cnNvckVsZW1l
bnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgU1ZHQ3Vyc29yRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdD
dXJzb3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxl
bWVudC5jcHAKaW5kZXggMjQ3NzZiNy4uMDAxMWQ5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RWxsaXBzZUVsZW1lbnQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgU1ZHRWxsaXBzZUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cnhBdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJ5QXR0cik7CiAgICAgfQotICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDg3OTdiNDUuLmYzNmFhOGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcApAQCAtNjQsNyArNjQsNyBAQCBib29s
IFNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjppbjJB
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxlbWVudC5jcHAKaW5k
ZXggN2NlOTY1NC4uNmNiNGZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
Q29sb3JNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb2xv
ck1hdHJpeEVsZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgU1ZHRkVDb2xvck1hdHJp
eEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp2YWx1ZXNBdHRy
KTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5h
bWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRUcmFuc2ZlckVsZW1l
bnQuY3BwCmluZGV4IGUyMzc2NWIuLjhhNGI2ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApAQCAtNTksNyArNTksNyBA
QCBib29sIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdAogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9uZW50VHJhbnNm
ZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3Np
dGVFbGVtZW50LmNwcAppbmRleCBhZDQwYTZkLi4xNGMxZGRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIFNW
R0ZFQ29tcG9zaXRlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjprM0F0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6azRB
dHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVh
bGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICBy
ZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNs
YXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1l
bnQuY3BwCmluZGV4IDA3N2I5ZDMuLmNiZmJlODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtMTE2LDcgKzExNiw3IEBAIGJv
b2wgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0cik7CiAgICAgfQotICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9p
ZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKaW5kZXggMDYzZGNk
NC4uYzY1NmJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBTVkdGRURpZmZ1c2VMaWdo
dGluZ0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHIKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omtlcm5lbFVuaXRM
ZW5ndGhBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omxp
Z2h0aW5nX2NvbG9yQXR0cik7IC8vIEV2ZW4gdGhvdWdoIGl0J3MgYSBTVkctQ1NTIHByb3BlcnR5
LCB3ZSBvdmVycmlkZSBpdHMgaGFuZGxpbmcgaGVyZS4KICAgICB9Ci0gICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRy
YW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKaW5kZXggOGNhM2NiYi4u
MGM1MjY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50
TWFwRWxlbWVudC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBTVkdGRURpc3BsYWNlbWVudE1h
cEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHIK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlDaGFubmVsU2VsZWN0
b3JBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNjYWxl
QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1
YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9wU2hhZG93RWxlbWVu
dC5jcHAKaW5kZXggODBjYTg1ZS4uYTI1NTg2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNWR0ZFRHJv
cFNoYWRvd0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnN0ZERldmlh
dGlvbkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwor
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUdhdXNzaWFu
Qmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxl
bWVudC5jcHAKaW5kZXggNzQyYTU4Ny4uODY0OWRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTgyLDcgKzgyLDcgQEAgYm9vbCBT
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpz
dGREZXZpYXRpb25BdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFR2F1c3NpYW5CbHVy
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
Y3BwCmluZGV4IDkyZTcyN2MuLjU2MjNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIGJvb2wgU1ZHRkVJbWFnZUVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVz
KHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQg
U1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTGln
aHRFbGVtZW50LmNwcAppbmRleCA3NmY2NjY1Li41ZDJlNTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFNWR0ZFTGln
aHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnNwZWN1bGFy
RXhwb25lbnRBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmxpbWl0aW5nQ29uZUFuZ2xlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZH
QXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUxpZ2h0
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RU1lcmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2Rl
RWxlbWVudC5jcHAKaW5kZXggMTNiNTcwOS4uZWE3YTA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgYm9vbCBTVkdG
RU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWRO
YW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlm
aWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVudDo6cGFyc2VBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVtZW50LmNwcAppbmRl
eCA1NTA0NTFmLi5kNzQ0NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTW9ycGhv
bG9neUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIGJvb2wgU1ZHRkVNb3JwaG9sb2d5RWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpvcGVyYXRvckF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cmFkaXVzQXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50OjpwYXJzZUF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcAppbmRleCBkZmExMWQ4
Li45ODA0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApA
QCAtNjMsNyArNjMsNyBAQCBib29sIFNWR0ZFT2Zmc2V0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkeEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxT
VkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFT2Zm
c2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
RVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA5OWVjOWRjLi42ODMzNTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
Y3BwCkBAIC05MSw3ICs5MSw3IEBAIGJvb2wgU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudDo6
aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0CiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdXJmYWNlU2NhbGVBdHRyKTsKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omtlcm5lbFVuaXRMZW5ndGhBdHRy
KTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlm
aWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5jcHAKaW5kZXggMTJi
MmQyOC4uNTZjYjVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVGlsZUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVFbGVtZW50LmNwcApA
QCAtNTcsNyArNTcsNyBAQCBib29sIFNWR0ZFVGlsZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9D
QUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAg
IGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFVGlsZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVU
dXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUdXJidWxlbmNl
RWxlbWVudC5jcHAKaW5kZXggNTEzOWE5Yi4uODRkMjY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtODUsNyArODUsNyBAQCBib29sIFNW
R0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6c3RpdGNoVGlsZXNBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnR5cGVBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFVHVyYnVsZW5jZUVs
ZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0
b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAK
aW5kZXggZTBiMjg4NS4uMmY1Njk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVt
ZW50LmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIGJvb2wgU1ZHRmlsdGVyRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZpbHRlclJlc0F0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CiB9CiAKIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKQEAgLTIyOSw3ICsyMjks
NyBAQCBib29sIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRlUmVuZGVyZXIoY29u
c3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNoaQogICAgICAgICBhbGxvd2VkQ2hpbGRFbGVtZW50
VGFncy5hZGQoU1ZHTmFtZXM6OmZlVHVyYnVsZW5jZVRhZyk7CiAgICAgfQogCi0gICAgcmV0dXJu
IGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihzdmdFbGVtZW50LT50YWdRTmFtZSgpKTsKKyAgICByZXR1cm4g
YWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KHN2Z0VsZW1lbnQtPnRhZ1FOYW1lKCkpOwogfQogCiBib29sIFNWR0ZpbHRlckVsZW1lbnQ6
OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAppbmRl
eCAyMTBlNDc4Li43MGQ2NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApAQCAtNzQsNyArNzQs
NyBAQCBib29sIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTgogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjpyZXN1bHRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxT
VkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlm
aWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGZhZDAxOTAuLjY0MzE5
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cApAQCAtODIsNyArODIsNyBAQCBib29sIFNWR0ZvcmVpZ25PYmplY3RFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKICAgICAgICAgc3VwcG9y
dGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgIH0KLSAgICByZXR1
cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAK
IHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0dFbGVtZW50LmNwcAppbmRleCAxNjAzMDhkLi4wY2JmY2Q2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdH
RWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBTVkdHRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNWR0xh
bmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAg
ICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9ydGVkQXR0cmlidXRl
cyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0dFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0dyYWRpZW50
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcApp
bmRleCAzMWYwMDIxLi40NmVjZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
R3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29sIFNWR0dyYWRpZW50RWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpncmFkaWVudFRyYW5zZm9ybUF0dHIp
OwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6c3ByZWFkTWV0aG9k
QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1
YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFs
dWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDU2NGE5YzkuLjVi
ZDM5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCkBAIC04OCw3ICs4
OCw3IEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBR
dWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIGJvb2wg
U1ZHSW1hZ2VFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAKaW5kZXgg
ZDA1YThlZC4uYzBlMDEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCkBA
IC03OCw3ICs3OCw3IEBAIGJvb2wgU1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6eTFBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OnkyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihh
dHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdMaW5lRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5jcHAKaW5kZXggOTg4MTY4Yi4uNTBjZjI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgYm9v
bCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnkxQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
Ojp5MkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwor
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01QYXRoRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcAppbmRleCA4
ZDBmMTRjLi4wMzE0NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50LmNwcApA
QCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgU1ZHTVBhdGhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgU1ZHVVJJUmVmZXJl
bmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1
cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTVBhdGhFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwCmluZGV4
IGI1MDM2N2IuLjFkNDFkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5j
cHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBib29sIFNWR01hcmtlckVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0cik7CiAgICAgICAgIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpvcmllbnRBdHRyKTsKICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwog
fQogCiB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmNwcAppbmRleCBmYzZhOGJmLi4wOTlhYWRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBTVkdNYXNrRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIpOwogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAg
fQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUs
IFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKIH0KIAogdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IDExMzYyMWIuLjkwOTE4ZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIGJvb2wgU1ZHUGF0
aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZEF0dHIpOwog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cGF0aExlbmd0aEF0dHIp
OwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZp
ZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCAzY2FhODJkLi5hMTRlOTI0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBib29sIFNWR1BhdHRlcm5FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1BhdHRlcm5F
bGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKaW5k
ZXggMThlYWU0MC4uNGFlMWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bv
bHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3Bw
CkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgU1ZHUG9seUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0
ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cG9pbnRzQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxp
ZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXgg
ODM5YWYwZS4uYTk5MDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlh
bEdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgYm9vbCBTVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZyQXR0cik7CiAgICAgfQot
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCBkMjg2MDA0Li44ZTFhZWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2LDcgQEAgYm9vbCBT
VkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyeEF0
dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cnlBdHRyKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVk
TmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1JlY3RFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDk1YjMyMjguLjAxOTU1NzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAg
Ym9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnR5cGVBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoSFRNTE5hbWVz
OjpvbmVycm9yQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTY3JpcHRFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKaW5kZXggYWY0ZjY0
Mi4uODRiNjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0b3BFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQuY3BwCkBAIC01OSw3
ICs1OSw3IEBAIGJvb2wgU1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6Om9mZnNldEF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTdG9wRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKaW5kZXggZDAw
OWFhYS4uMDRjOGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5jcHAKQEAg
LTEwNyw3ICsxMDcsNyBAQCBib29sIFNWR1N0eWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNWR0xhbmdTcGFjZTo6
YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3Vw
cG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRpdGxlQXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0K
IAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcAppbmRleCBkOGVhNmRm
Li43NzA3MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNm
b3JtYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgYm9vbCBTVkdTdHlsZWRUcmFu
c2Zvcm1hYmxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXQKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1
cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0cmlidXRlcy5pc0Vt
cHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp0cmFuc2Zv
cm1BdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZp
ZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQ6OnBh
cnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5jcHAKaW5kZXggZjI5
MzFiZi4uZGRjNzY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N5bWJvbEVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xFbGVtZW50LmNwcApA
QCAtNjIsNyArNjIsNyBAQCBib29sIFNWR1N5bWJvbEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5hbFJl
c291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0
ZXMpOwogICAgICAgICBTVkdGaXRUb1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3Vw
cG9ydGVkQXR0cmlidXRlcyk7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTeW1ib2xFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5jcHAKaW5kZXggZGI4
NjVjMC4uYTZhZjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RSZWZFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1lbnQuY3BwCkBAIC0x
ODcsNyArMTg3LDcgQEAgYm9vbCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChI
YXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAgICAgaWYg
KHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBTVkdVUklSZWZlcmVuY2U6
OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2
b2lkIFNWR1RSZWZFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCA2MzVjNjMyLi4xMDNkOGJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtMjIzLDcgKzIyMyw3
IEBAIGJvb2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6Omxlbmd0aEFkanVzdEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3Vw
cG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIGJvb2wg
U1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAK
aW5kZXggNzU5Y2M1NC4uODc4ZGExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQu
Y3BwCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgU1ZHVGV4dEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpOwotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRo
RWxlbWVudC5jcHAKaW5kZXggMzg3MWRiOS4uMzQwNmQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBTVkdUZXh0UGF0
aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJO
YW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWV0aG9kQXR0
cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzcGFjaW5nQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxp
ZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6OnBhcnNlQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHAK
aW5kZXggOGJhZjE1ZS4uYmM3NDEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFNWR1RleHRQ
b3NpdGlvbmluZ0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJvdGF0ZUF0
dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFs
aWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRleCBkNjM4MjNkLi5k
ZDQ5MTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VzZUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApAQCAtMTQ1LDcgKzE0
NSw3IEBAIGJvb2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjp3aWR0aEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6aGVpZ2h0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdVc2VFbGVtZW50Ojpw
YXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJp
bmcmIHZhbHVlKQpAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRpYyBib29sIGlzRGlzYWxsb3dlZEVs
ZW1lbnQoTm9kZSogbm9kZSkKICAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdzLmFkZChTVkdOYW1l
czo6dHNwYW5UYWcpOwogICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRkKFNWR05hbWVzOjp1
c2VUYWcpOwogICAgIH0KLSAgICByZXR1cm4gIWFsbG93ZWRFbGVtZW50VGFncy5jb250YWluczxR
dWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oZWxlbWVudC0+dGFnUU5h
bWUoKSk7CisgICAgcmV0dXJuICFhbGxvd2VkRWxlbWVudFRhZ3MuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwogfQogCiBzdGF0aWMgYm9v
bCBzdWJ0cmVlQ29udGFpbnNEaXNhbGxvd2VkRWxlbWVudChOb2RlKiBzdGFydCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCmluZGV4IDE2Y2IzYjguLjdkMDEwYTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtNjYsNyArNjYsNyBAQCBib29sIFNWR1Zp
ZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSkKICAgICAgICAgU1ZHWm9vbUFuZFBhbjo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBw
b3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnZpZXdUYXJnZXRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRy
aWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1ZpZXdFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9T
VkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcAppbmRleCBkMmUyNjM5Li5hYzJkNWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtNDU3LDcgKzQ1Nyw3IEBAIGJv
b2wgU1ZHU01JTEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
YXR0cmlidXRlTmFtZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChYTGlu
a05hbWVzOjpocmVmQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTTUlMRWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkK
</data>
<flag name="commit-queue"
          id="226551"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205089</attachid>
            <date>2013-06-20 07:29:48 -0700</date>
            <delta_ts>2013-06-20 14:10:21 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug117830_v2</filename>
            <type>text/plain</type>
            <size>56397</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDFkYThmMWU2MDM0MzkzZjQ2ODBiNmY2MjJhMGYxNTI5MDdiN2UzMzMKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VGh1IEp1biAyMCAxNjozNzowMSAyMDEzICswMzAwCgogICAgYnVnMTE3ODMwCgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKaW5kZXggNWRjYzcxZC4uY2ExODkzNSAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDYtMjAgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1p
a2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgSGFzaFNldDogcmV2ZXJzZSB0
aGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBhdCBhbHRlcm5hdGUgJ2ZpbmQnLCAn
Y29udGFpbnMnIGFuZCAnYWRkJyBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBUaGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBh
dCBIYXNoU2V0IGFsdGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kCisgICAgICAgICdhZGQn
IG1ldGhvZHMgaXMgcmV2ZXJzZWQgc28gdGhhdCBjYWxsZXJzIGNhbiBqdXN0IHBhc3MgdGhlIHRy
YW5zbGF0b3IKKyAgICAgICAgYW5kIGxldCB0aGUgY29tcGlsZXIgZGVkdWNlIGlucHV0IGFyZ3Vt
ZW50IHR5cGUuCisKKyAgICAgICAgKiBydW50aW1lL0lkZW50aWZpZXIuaDoKKyAgICAgICAgKEpT
Qzo6SWRlbnRpZmllclRhYmxlOjphZGQpOgorCiAyMDEzLTA2LTE4ICBPbGl2ZXIgSHVudCAgPG9s
aXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgR29pbmcgdG8gZ29vZ2xlLmNvbS90cmVuZHMgY2F1
c2VzIGEgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lk
ZW50aWZpZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIuaApp
bmRleCBmMDc1YWE2Li43NWI2OGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9JZGVudGlmaWVyLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SWRlbnRpZmllci5oCkBAIC0yNTEsNyArMjUxLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgdGVt
cGxhdGU8dHlwZW5hbWUgVSwgdHlwZW5hbWUgVj4KICAgICBIYXNoU2V0PFN0cmluZ0ltcGwqPjo6
QWRkUmVzdWx0IElkZW50aWZpZXJUYWJsZTo6YWRkKFUgdmFsdWUpCiAgICAgewotICAgICAgICBI
YXNoU2V0PFN0cmluZ0ltcGwqPjo6QWRkUmVzdWx0IHJlc3VsdCA9IG1fdGFibGUuYWRkPFUsIFY+
KHZhbHVlKTsKKyAgICAgICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJlc3VsdCByZXN1bHQg
PSBtX3RhYmxlLmFkZDxWPih2YWx1ZSk7CiAgICAgICAgICgqcmVzdWx0Lml0ZXJhdG9yKS0+c2V0
SXNJZGVudGlmaWVyKHRydWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXgg
MWNhZGY2Ny4uMGMwNzVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMy0wNi0yMCAgTWlraGFp
bCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KKworICAgICAgICBI
YXNoU2V0OiByZXZlcnNlIHRoZSBvcmRlciBvZiB0aGUgdGVtcGxhdGUgYXJndW1lbnRzIGF0IGFs
dGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kICdhZGQnIG1ldGhvZHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzgzMAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBvcmRlciBvZiB0aGUgdGVt
cGxhdGUgYXJndW1lbnRzIGF0IEhhc2hTZXQgYWx0ZXJuYXRlICdmaW5kJywgJ2NvbnRhaW5zJyBh
bmQKKyAgICAgICAgJ2FkZCcgbWV0aG9kcyBpcyByZXZlcnNlZCBzbyB0aGF0IGNhbGxlcnMgY2Fu
IGp1c3QgcGFzcyB0aGUgdHJhbnNsYXRvcgorICAgICAgICBhbmQgbGV0IHRoZSBjb21waWxlciBk
ZWR1Y2UgaW5wdXQgYXJndW1lbnQgdHlwZS4KKworICAgICAgICAqIHd0Zi9IYXNoU2V0Lmg6Cisg
ICAgICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6YWRkVG9T
dHJpbmdUYWJsZSk6CisgICAgICAgIChXVEY6OmZpbmRTdHJpbmcpOgorCiAyMDEzLTA2LTE5ICBH
ZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSBT
ZWdtZW50ZWRWZWN0b3IgaW5saW5lIHNlZ21lbnQgdG8gc2hyaW5rIENvZGVCbG9jayBieSA2WApk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvSGFzaFNldC5oIGIvU291cmNlL1dURi93dGYvSGFz
aFNldC5oCmluZGV4IDY1YjY0MmEuLmM4OWQ0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L0hhc2hTZXQuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9IYXNoU2V0LmgKQEAgLTY4LDEwICs2OCw4
IEBAIG5hbWVzcGFjZSBXVEYgewogICAgICAgICAvLyBtdXN0IGhhdmUgdGhlIGZvbGxvd2luZyBm
dW5jdGlvbiBtZW1iZXJzOgogICAgICAgICAvLyAgIHN0YXRpYyB1bnNpZ25lZCBoYXNoKGNvbnN0
IFQmKTsKICAgICAgICAgLy8gICBzdGF0aWMgYm9vbCBlcXVhbChjb25zdCBWYWx1ZVR5cGUmLCBj
b25zdCBUJik7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmV2ZXJzZSB0aGUgb3JkZXIg
b2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBzbyB0aGF0IGNhbGxlcnMKLSAgICAgICAgLy8gY2Fu
IGp1c3QgcGFzcyB0aGUgdHJhbnNsYXRvciBhbmQgbGV0IHRoZSBjb21waWxlciBkZWR1Y2UgVC4K
LSAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgSGFzaFRyYW5zbGF0b3I+IGl0
ZXJhdG9yIGZpbmQoY29uc3QgVCYpIGNvbnN0OwotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBIYXNoVHJhbnNsYXRvcj4gYm9vbCBjb250YWlucyhjb25zdCBUJikgY29uc3Q7
CisgICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBp
dGVyYXRvciBmaW5kKGNvbnN0IFQmKSBjb25zdDsKKyAgICAgICAgdGVtcGxhdGU8dHlwZW5hbWUg
SGFzaFRyYW5zbGF0b3IsIHR5cGVuYW1lIFQ+IGJvb2wgY29udGFpbnMoY29uc3QgVCYpIGNvbnN0
OwogCiAgICAgICAgIC8vIFRoZSByZXR1cm4gdmFsdWUgaXMgYSBwYWlyIG9mIGFuIGludGVyYXRv
ciB0byB0aGUgbmV3IHZhbHVlJ3MgbG9jYXRpb24sIAogICAgICAgICAvLyBhbmQgYSBib29sIHRo
YXQgaXMgdHJ1ZSBpZiBhbiBuZXcgZW50cnkgd2FzIGFkZGVkLgpAQCAtODMsOSArODEsNyBAQCBu
YW1lc3BhY2UgV1RGIHsKICAgICAgICAgLy8gICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBU
Jik7CiAgICAgICAgIC8vICAgc3RhdGljIGJvb2wgZXF1YWwoY29uc3QgVmFsdWVUeXBlJiwgY29u
c3QgVCYpOwogICAgICAgICAvLyAgIHN0YXRpYyB0cmFuc2xhdGUoVmFsdWVUeXBlJiwgY29uc3Qg
VCYsIHVuc2lnbmVkIGhhc2hDb2RlKTsKLSAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXZl
cnNlIHRoZSBvcmRlciBvZiB0aGUgdGVtcGxhdGUgYXJndW1lbnRzIHNvIHRoYXQgY2FsbGVycwot
ICAgICAgICAvLyBjYW4ganVzdCBwYXNzIHRoZSB0cmFuc2xhdG9yIGFuZCBsZXQgdGhlIGNvbXBp
bGVyIGRlZHVjZSBULgotICAgICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBIYXNo
VHJhbnNsYXRvcj4gQWRkUmVzdWx0IGFkZChjb25zdCBUJik7CisgICAgICAgIHRlbXBsYXRlPHR5
cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPiBBZGRSZXN1bHQgYWRkKGNvbnN0IFQm
KTsKIAogICAgICAgICB2b2lkIHJlbW92ZShjb25zdCBWYWx1ZVR5cGUmKTsKICAgICAgICAgdm9p
ZCByZW1vdmUoaXRlcmF0b3IpOwpAQCAtMTYyLDcgKzE1OCw3IEBAIG5hbWVzcGFjZSBXVEYgewog
ICAgIH0KIAogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFZhbHVlLCB0eXBlbmFtZSBIYXNoRnVuY3Rp
b25zLCB0eXBlbmFtZSBUcmFpdHM+Ci0gICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
SGFzaFRyYW5zbGF0b3I+CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgSGFzaFRyYW5zbGF0b3IsIHR5
cGVuYW1lIFQ+CiAgICAgdHlwZW5hbWUgSGFzaFNldDxWYWx1ZSwgSGFzaEZ1bmN0aW9ucywgVHJh
aXRzPjo6aXRlcmF0b3IKICAgICBpbmxpbmUgSGFzaFNldDxWYWx1ZSwgSGFzaEZ1bmN0aW9ucywg
VHJhaXRzPjo6ZmluZChjb25zdCBUJiB2YWx1ZSkgY29uc3QKICAgICB7CkBAIC0xNzAsNyArMTY2
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiAgICAgfQogCiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVmFs
dWUsIHR5cGVuYW1lIEhhc2hGdW5jdGlvbnMsIHR5cGVuYW1lIFRyYWl0cz4KLSAgICB0ZW1wbGF0
ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBIYXNoVHJhbnNsYXRvcj4KKyAgICB0ZW1wbGF0ZTx0eXBl
bmFtZSBIYXNoVHJhbnNsYXRvciwgdHlwZW5hbWUgVD4KICAgICBpbmxpbmUgYm9vbCBIYXNoU2V0
PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+Ojpjb250YWlucyhjb25zdCBUJiB2YWx1ZSkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2ltcGwudGVtcGxhdGUgY29udGFpbnM8SGFz
aFNldFRyYW5zbGF0b3JBZGFwdGVyPEhhc2hUcmFuc2xhdG9yPiA+KHZhbHVlKTsKQEAgLTE4Myw3
ICsxNzksNyBAQCBuYW1lc3BhY2UgV1RGIHsKICAgICB9CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFt
ZSBWYWx1ZSwgdHlwZW5hbWUgSGFzaEZ1bmN0aW9ucywgdHlwZW5hbWUgVHJhaXRzPgotICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yPgorICAgIHRlbXBsYXRl
PHR5cGVuYW1lIEhhc2hUcmFuc2xhdG9yLCB0eXBlbmFtZSBUPgogICAgIGlubGluZSB0eXBlbmFt
ZSBIYXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjpBZGRSZXN1bHQKICAgICBI
YXNoU2V0PFZhbHVlLCBIYXNoRnVuY3Rpb25zLCBUcmFpdHM+OjphZGQoY29uc3QgVCYgdmFsdWUp
CiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3Bw
IGIvU291cmNlL1dURi93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCmluZGV4IDVlYTEyN2IuLmU5
NTIyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKQEAgLTc1LDcgKzc1LDcg
QEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGFkZFRvU3RyaW5nVGFibGUo
Y29uc3QgVCYgdmFsdWUpCiB7CiAgICAgQXRvbWljU3RyaW5nVGFibGVMb2NrZXIgbG9ja2VyOwog
Ci0gICAgSGFzaFNldDxTdHJpbmdJbXBsKj46OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBzdHJpbmdU
YWJsZSgpLmFkZDxULCBIYXNoVHJhbnNsYXRvcj4odmFsdWUpOworICAgIEhhc2hTZXQ8U3RyaW5n
SW1wbCo+OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gc3RyaW5nVGFibGUoKS5hZGQ8SGFzaFRyYW5z
bGF0b3I+KHZhbHVlKTsKIAogICAgIC8vIElmIHRoZSBzdHJpbmcgaXMgbmV3bHktdHJhbnNsYXRl
ZCwgdGhlbiB3ZSBuZWVkIHRvIGFkb3B0IGl0LgogICAgIC8vIFRoZSBib29sZWFuIGluIHRoZSBw
YWlyIHRlbGxzIHVzIGlmIHRoYXQgaXMgc28uCkBAIC0zOTMsNyArMzkzLDcgQEAgdGVtcGxhdGU8
dHlwZW5hbWUgQ2hhcmFjdGVyVHlwZT4KIHN0YXRpYyBpbmxpbmUgSGFzaFNldDxTdHJpbmdJbXBs
Kj46Oml0ZXJhdG9yIGZpbmRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCkKIHsK
ICAgICBIYXNoQW5kQ2hhcmFjdGVyczxDaGFyYWN0ZXJUeXBlPiBidWZmZXIgPSB7IHN0cmluZ0lt
cGwtPmV4aXN0aW5nSGFzaCgpLCBzdHJpbmdJbXBsLT5nZXRDaGFyYWN0ZXJzPENoYXJhY3RlclR5
cGU+KCksIHN0cmluZ0ltcGwtPmxlbmd0aCgpIH07Ci0gICAgcmV0dXJuIHN0cmluZ1RhYmxlKCku
ZmluZDxIYXNoQW5kQ2hhcmFjdGVyczxDaGFyYWN0ZXJUeXBlPiwgSGFzaEFuZENoYXJhY3RlcnNU
cmFuc2xhdG9yPENoYXJhY3RlclR5cGU+ID4oYnVmZmVyKTsKKyAgICByZXR1cm4gc3RyaW5nVGFi
bGUoKS5maW5kPEhhc2hBbmRDaGFyYWN0ZXJzVHJhbnNsYXRvcjxDaGFyYWN0ZXJUeXBlPiA+KGJ1
ZmZlcik7CiB9CiAKIEF0b21pY1N0cmluZ0ltcGwqIEF0b21pY1N0cmluZzo6ZmluZChjb25zdCBT
dHJpbmdJbXBsKiBzdHJpbmdJbXBsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhZDJkZWIuLjk0ZWVmMGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxMzMgQEAKKzIwMTMtMDYtMjAgIE1pa2hhaWwgUG96ZG55YWtv
diAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKKyAgICAgICAgSGFzaFNldDogcmV2
ZXJzZSB0aGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3VtZW50cyBhdCBhbHRlcm5hdGUgJ2Zp
bmQnLCAnY29udGFpbnMnIGFuZCAnYWRkJyBtZXRob2RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgb3JkZXIgb2YgdGhlIHRlbXBsYXRlIGFyZ3Vt
ZW50cyBhdCBIYXNoU2V0IGFsdGVybmF0ZSAnZmluZCcsICdjb250YWlucycgYW5kCisgICAgICAg
ICdhZGQnIG1ldGhvZHMgaXMgcmV2ZXJzZWQgc28gdGhhdCBjYWxsZXJzIGNhbiBqdXN0IHBhc3Mg
dGhlIHRyYW5zbGF0b3IKKyAgICAgICAgYW5kIGxldCB0aGUgY29tcGlsZXIgZGVkdWNlIGlucHV0
IGFyZ3VtZW50IHR5cGUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBObyBuZXcgZnVuY3Rpb25h
bGl0eS4KKworICAgICAgICAqIGRvbS9RdWFsaWZpZWROYW1lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlF1YWxpZmllZE5hbWU6OlF1YWxpZmllZE5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NnL1N1YmltYWdlQ2FjaGVXaXRoVGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U3ViaW1hZ2VDYWNoZVdpdGhUaW1lcjo6Z2V0U3ViaW1hZ2UpOgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudDo6aXNTdXBwb3J0ZWRB
dHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0FuaW1hdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdDaXJjbGVFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDbGlwUGF0aEVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHQ29tcG9uZW50VHJh
bnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHQ29tcG9uZW50
VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAg
KiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdDdXJzb3JF
bGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0VsbGlwc2VF
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0VsbGlwc2VFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFQ29sb3JNYXRyaXhFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6Cisg
ICAgICAgICogc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGRUNvbXBvc2l0ZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToK
KyAgICAgICAgKiBzdmcvU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEaXNwbGFjZW1lbnRNYXBFbGVtZW50Ojppc1N1cHBvcnRl
ZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHRkVEcm9wU2hhZG93RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNWR0ZFSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAg
ICogc3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZFTGln
aHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFTWVy
Z2VOb2RlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1lcmdlTm9kZUVsZW1l
bnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVNb3JwaG9sb2d5
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU1vcnBob2xvZ3lFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFT2Zmc2V0RWxlbWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGRU9mZnNldEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRkVTcGVjdWxhckxpZ2h0aW5nRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ZFVGlsZUVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHRkVUaWxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAg
ICAgKiBzdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXJFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdG
aWx0ZXJFbGVtZW50OjpjaGlsZFNob3VsZENyZWF0ZVJlbmRlcmVyKToKKyAgICAgICAgKiBzdmcv
U1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdGb3JlaWduT2JqZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUpOgorICAgICAgICAqIHN2Zy9TVkdHRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdHRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdHcmFk
aWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHR3JhZGllbnRFbGVtZW50Ojpp
c1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR0ltYWdlRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTVkdJbWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHTGluZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZH
TGluZWFyR3JhZGllbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0xpbmVhckdy
YWRpZW50RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdN
UGF0aEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTVBhdGhFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6U1ZHTWFya2VyRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdNYXNrRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdQ
YXRoRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdQYXRoRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdQYXR0ZXJuRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdQb2x5RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdQb2x5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1Jl
Y3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlY3RFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U1ZHU2NyaXB0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgor
ICAgICAgICAqIHN2Zy9TVkdTdG9wRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdT
dG9wRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdTdHls
ZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3R5bGVFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50
Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1N5bWJvbEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU3ltYm9sRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRy
aWJ1dGUpOgorICAgICAgICAqIHN2Zy9TVkdUUmVmRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAqIHN2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dENv
bnRlbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1Rl
eHRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZSk6CisgICAgICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTVkdUZXh0UGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dFBvc2l0aW9uaW5nRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogc3ZnL1NWR1VzZUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorICAgICAgICAoV2ViQ29yZTo6
aXNEaXNhbGxvd2VkRWxlbWVudCk6CisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZSk6
CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUpOgorCiAyMDEzLTA2
LTIwICBHcnplZ29yeiBDemFqa293c2tpICA8Zy5jemFqa293c2tpQHNhbXN1bmcuY29tPgogCiAg
ICAgICAgIGJhY2tncm91bmQtY29sb3IgYW5kIHRleHQtZGVjb3JhdGlvbiBhcmUgbm90IHByZXNl
cnZlZCB3aGVuIG1lcmdpbmcgcGFyYWdyYXBocwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1F1YWxpZmllZE5hbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1F1YWxpZmllZE5hbWUu
Y3BwCmluZGV4IGE5MzlkY2UuLjZhODE1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9RdWFsaWZpZWROYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUXVhbGlmaWVkTmFt
ZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAgUXVhbGlmaWVkTmFtZTo6UXVhbGlmaWVkTmFtZShjb25z
dCBBdG9taWNTdHJpbmcmIHAsIGNvbnN0IEF0b21pY1N0cmluZyYgbCwgY29uc3QKICAgICBpZiAo
IWdOYW1lQ2FjaGUpCiAgICAgICAgIGdOYW1lQ2FjaGUgPSBuZXcgUU5hbWVTZXQ7CiAgICAgUXVh
bGlmaWVkTmFtZUNvbXBvbmVudHMgY29tcG9uZW50cyA9IHsgcC5pbXBsKCksIGwuaW1wbCgpLCBu
LmlzRW1wdHkoKSA/IG51bGxBdG9tLmltcGwoKSA6IG4uaW1wbCgpIH07Ci0gICAgUU5hbWVTZXQ6
OkFkZFJlc3VsdCBhZGRSZXN1bHQgPSBnTmFtZUNhY2hlLT5hZGQ8UXVhbGlmaWVkTmFtZUNvbXBv
bmVudHMsIFFOYW1lQ29tcG9uZW50c1RyYW5zbGF0b3I+KGNvbXBvbmVudHMpOworICAgIFFOYW1l
U2V0OjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gZ05hbWVDYWNoZS0+YWRkPFFOYW1lQ29tcG9uZW50
c1RyYW5zbGF0b3I+KGNvbXBvbmVudHMpOwogICAgIG1faW1wbCA9ICphZGRSZXN1bHQuaXRlcmF0
b3I7CiAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKICAgICAgICAgbV9pbXBsLT5yZWYo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL1N1Ymlt
YWdlQ2FjaGVXaXRoVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2cvU3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5jcHAKaW5kZXggZjlkOTE0Zi4uZWU3OTIwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvU3ViaW1hZ2VDYWNo
ZVdpdGhUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cv
U3ViaW1hZ2VDYWNoZVdpdGhUaW1lci5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IFN1YmltYWdlQ2FjaGVXaXRoVGltZXI6OmdldFN1YmltYWdlKENHSW1hZ2VSZWYg
aW1hZ2UsIGNvbnMKICAgICB9CiAKICAgICBBU1NFUlQobV9jYWNoZS5zaXplKCkgPCBtYXhTdWJp
bWFnZUNhY2hlU2l6ZSk7Ci0gICAgU3ViaW1hZ2VDYWNoZTo6QWRkUmVzdWx0IHJlc3VsdCA9IG1f
Y2FjaGUuYWRkPFN1YmltYWdlUmVxdWVzdCwgU3ViaW1hZ2VDYWNoZUFkZGVyPihTdWJpbWFnZVJl
cXVlc3QoaW1hZ2UsIHJlY3QpKTsKKyAgICBTdWJpbWFnZUNhY2hlOjpBZGRSZXN1bHQgcmVzdWx0
ID0gbV9jYWNoZS5hZGQ8U3ViaW1hZ2VDYWNoZUFkZGVyPihTdWJpbWFnZVJlcXVlc3QoaW1hZ2Us
IHJlY3QpKTsKICAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIG1faW1hZ2VzLmFk
ZChpbWFnZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IDdlNzA5MzMuLjYz
NDE4MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtOTgsNyArOTgsNyBAQCBi
b29sIFNWR0FFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBhdHRyTmFtZSkKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3Vw
cG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRhcmdldEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZv
aWQgU1ZHQUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUs
IGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Fu
aW1hdGVNb3Rpb25FbGVtZW50LmNwcAppbmRleCA0MjE0ZjJmLi5lZjdiMjIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxlbWVudC5jcHAKQEAgLTk5LDcgKzk5
LDcgQEAgYm9vbCBTVkdBbmltYXRlTW90aW9uRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhh
c2hTZXQ8UXVhbGlmaWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAo
c3VwcG9ydGVkQXR0cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjpwYXRoQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRy
aWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0FuaW1hdGVNb3Rp
b25FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudC5jcHAKaW5kZXggOTc3OWFhNS4uODUzMmJmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIGJvb2wgU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQ6OmlzU3VwcG9ydGVk
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAoKSk7CiAg
ICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dHlwZUF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdBbmlt
YXRlVHJhbnNmb3JtRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdBbmltYXRpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdB
bmltYXRpb25FbGVtZW50LmNwcAppbmRleCA1ZjRkYTIwLi45OTNmOTUwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgYm9v
bCBTVkdBbmltYXRpb25FbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnRvQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpi
eUF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxR
dWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQW5pbWF0aW9uRWxlbWVudDo6cGFyc2VB
dHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2
YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDaXJjbGVFbGVtZW50LmNwcAppbmRleCA3ZWU4NDdl
Li44MmIxNDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NpcmNsZUVsZW1lbnQuY3BwCkBAIC03
Nyw3ICs3Nyw3IEBAIGJvb2wgU1ZHQ2lyY2xlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0
ZXMuYWRkKFNWR05hbWVzOjpjeUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6ckF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0
ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ2lyY2xlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDbGlwUGF0
aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAK
aW5kZXggOWQzOGMzNy4uM2MxZDBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NsaXBQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NsaXBQYXRo
RWxlbWVudC5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgYm9vbCBTVkdDbGlwUGF0aEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAg
ICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1
cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdO
YW1lczo6Y2xpcFBhdGhVbml0c0F0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRv
cj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHQ2xpcFBh
dGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0NvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdDb21wb25lbnRUcmFuc2ZlckZ1bmN0aW9uRWxlbWVudC5jcHAKaW5kZXggMGEyOTdiNC4u
Y2UyZTYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0NvbXBvbmVudFRyYW5z
ZmVyRnVuY3Rpb25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQ29tcG9u
ZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuY3BwCkBAIC03Miw3ICs3Miw3IEBAIGJvb2wgU1ZH
Q29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpleHBvbmVudEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6b2Zmc2V0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdDb21wb25lbnRUcmFuc2Zl
ckZ1bmN0aW9uRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdDdXJzb3JF
bGVtZW50LmNwcAppbmRleCBlZGY5ZDljLi4wNjIzYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0N1cnNvckVsZW1lbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgU1ZHQ3Vyc29yRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp4QXR0cik7CiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp5QXR0cik7CiAgICAgfQotICAgIHJl
dHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJp
YnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0K
IAogdm9pZCBTVkdDdXJzb3JFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdFbGxpcHNlRWxlbWVudC5jcHAKaW5kZXggMjQ3NzZiNy4uMDAxMWQ5NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCkBAIC03OSw3ICs3OSw3IEBAIGJvb2wgU1ZH
RWxsaXBzZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cnhB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnJ5QXR0cik7
CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmll
ZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+
KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdFbGxpcHNlRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRkVCbGVuZEVsZW1lbnQuY3BwCmluZGV4IDg3OTdiNDUuLmYzNmFh
OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUJsZW5kRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQmxlbmRFbGVtZW50LmNwcApAQCAtNjQsNyAr
NjQsNyBAQCBib29sIFNWR0ZFQmxlbmRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjppbjJBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQmxlbmRFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29sb3JN
YXRyaXhFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbG9yTWF0cml4RWxl
bWVudC5jcHAKaW5kZXggN2NlOTY1NC4uNmNiNGZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZFQ29sb3JNYXRyaXhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRkVDb2xvck1hdHJpeEVsZW1lbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIGJvb2wgU1ZH
RkVDb2xvck1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
Ojp2YWx1ZXNBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OmluQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5z
PFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7Cisg
ICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRy
YW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRUNvbG9yTWF0cml4RWxlbWVudDo6
cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3Ry
aW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVu
dFRyYW5zZmVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb25lbnRU
cmFuc2ZlckVsZW1lbnQuY3BwCmluZGV4IGUyMzc2NWIuLjhhNGI2ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbXBvbmVudFRyYW5zZmVyRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50LmNwcApAQCAt
NTksNyArNTksNyBAQCBib29sIFNWR0ZFQ29tcG9uZW50VHJhbnNmZXJFbGVtZW50Ojppc1N1cHBv
cnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdAogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxT
VkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29t
cG9uZW50VHJhbnNmZXJFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1l
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFQ29tcG9zaXRlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAppbmRleCBhZDQwYTZkLi4xNGMxZGRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb21wb3NpdGVFbGVtZW50LmNwcApAQCAtNzYsNyArNzYs
NyBAQCBib29sIFNWR0ZFQ29tcG9zaXRlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjprM0F0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6azRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJO
YW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1
dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFQ29tcG9zaXRlRWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNv
bnZvbHZlTWF0cml4RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVDb252b2x2
ZU1hdHJpeEVsZW1lbnQuY3BwCmluZGV4IDA3N2I5ZDMuLmNiZmJlODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFQ29udm9sdmVNYXRyaXhFbGVtZW50LmNwcApAQCAtMTE2LDcg
KzExNiw3IEBAIGJvb2wgU1ZHRkVDb252b2x2ZU1hdHJpeEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOCiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjprZXJuZWxVbml0TGVuZ3RoQXR0cik7CiAgICAgICAgIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpwcmVzZXJ2ZUFscGhhQXR0cik7CiAgICAgfQot
ICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNW
R0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKIH0KIAogdm9pZCBTVkdGRUNvbnZvbHZlTWF0cml4RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpZmZ1c2VMaWdodGluZ0VsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAK
aW5kZXggMDYzZGNkNC4uYzY1NmJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudC5jcHAKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBTVkdG
RURpZmZ1c2VMaWdodGluZ0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHIKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
Omtlcm5lbFVuaXRMZW5ndGhBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQo
U1ZHTmFtZXM6OmxpZ2h0aW5nX2NvbG9yQXR0cik7IC8vIEV2ZW4gdGhvdWdoIGl0J3MgYSBTVkct
Q1NTIHByb3BlcnR5LCB3ZSBvdmVycmlkZSBpdHMgaGFuZGxpbmcgaGVyZS4KICAgICB9Ci0gICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0
cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0
cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwog
fQogCiB2b2lkIFNWR0ZFRGlmZnVzZUxpZ2h0aW5nRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRURpc3BsYWNlbWVudE1hcEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKaW5k
ZXggOGNhM2NiYi4uMGM1MjY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
RGlzcGxhY2VtZW50TWFwRWxlbWVudC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgYm9vbCBTVkdGRURp
c3BsYWNlbWVudE1hcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHIKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnlD
aGFubmVsU2VsZWN0b3JBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZH
TmFtZXM6OnNjYWxlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRURpc3BsYWNlbWVu
dE1hcEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNv
bnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVEcm9wU2hhZG93RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVEcm9w
U2hhZG93RWxlbWVudC5jcHAKaW5kZXggODBjYTg1ZS4uYTI1NTg2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFRHJvcFNoYWRvd0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRURyb3BTaGFkb3dFbGVtZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBi
b29sIFNWR0ZFRHJvcFNoYWRvd0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6ZHlBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnN0ZERldmlhdGlvbkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRkVEcm9wU2hh
ZG93RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1
c3NpYW5CbHVyRWxlbWVudC5jcHAKaW5kZXggNzQyYTU4Ny4uODY0OWRjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFR2F1c3NpYW5CbHVyRWxlbWVudC5jcHAKQEAgLTgyLDcgKzgy
LDcgQEAgYm9vbCBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRk
KFNWR05hbWVzOjpzdGREZXZpYXRpb25BdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZF
R2F1c3NpYW5CbHVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJ
bWFnZUVsZW1lbnQuY3BwCmluZGV4IDkyZTcyN2MuLjU2MjNhNTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIGJvb2wgU1ZHRkVJ
bWFnZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0
dHJOYW1lKQogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0
ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CiB9CiAKIHZvaWQgU1ZHRkVJbWFnZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZFTGlnaHRFbGVtZW50LmNwcAppbmRleCA3NmY2NjY1Li41ZDJlNTI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVMaWdodEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGRUxpZ2h0RWxlbWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBi
b29sIFNWR0ZFTGlnaHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnNwZWN1bGFyRXhwb25lbnRBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmxpbWl0aW5nQ29uZUFuZ2xlQXR0cik7CiAgICAgfQotICAgIHJldHVybiBz
dXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
Y29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9p
ZCBTVkdGRUxpZ2h0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRU1lcmdlTm9kZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKaW5kZXggMTNiNTcwOS4uZWE3YTA0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFTWVyZ2VOb2RlRWxlbWVudC5jcHAKQEAgLTU3LDcgKzU3LDcg
QEAgYm9vbCBTVkdGRU1lcmdlTm9kZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNfTE9DQUwoSGFzaFNl
dDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwogICAgIGlmIChzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFTWVyZ2VOb2RlRWxlbWVu
dDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBo
b2xvZ3lFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRU1vcnBob2xvZ3lFbGVt
ZW50LmNwcAppbmRleCA1NTA0NTFmLi5kNzQ0NDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVNb3JwaG9sb2d5RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFTW9ycGhvbG9neUVsZW1lbnQuY3BwCkBAIC04NSw3ICs4NSw3IEBAIGJvb2wgU1ZHRkVN
b3JwaG9sb2d5RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpv
cGVyYXRvckF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
cmFkaXVzQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRh
aW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdGRU1vcnBob2xvZ3lFbGVtZW50
OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNT
dHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFT2Zmc2V0
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRFbGVtZW50LmNwcApp
bmRleCBkZmExMWQ4Li45ODA0ZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVPZmZzZXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVPZmZzZXRF
bGVtZW50LmNwcApAQCAtNjMsNyArNjMsNyBAQCBib29sIFNWR0ZFT2Zmc2V0RWxlbWVudDo6aXNT
dXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAg
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpkeEF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6ZHlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2
b2lkIFNWR0ZFT2Zmc2V0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFt
ZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGRVNwZWN1bGFyTGlnaHRpbmdFbGVtZW50LmNwcAppbmRleCA5OWVjOWRjLi42
ODMzNTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFU3BlY3VsYXJMaWdo
dGluZ0VsZW1lbnQuY3BwCkBAIC05MSw3ICs5MSw3IEBAIGJvb2wgU1ZHRkVTcGVjdWxhckxpZ2h0
aW5nRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpzdXJmYWNlU2NhbGVB
dHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omtlcm5lbFVu
aXRMZW5ndGhBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1l
KTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVI
YXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZFU3BlY3VsYXJMaWdodGlu
Z0VsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUaWxlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVUaWxlRWxlbWVudC5j
cHAKaW5kZXggMTJiMmQyOC4uNTZjYjVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZFVGlsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVRpbGVF
bGVtZW50LmNwcApAQCAtNTcsNyArNTcsNyBAQCBib29sIFNWR0ZFVGlsZUVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRl
cywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAg
c3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmluQXR0cik7Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR0ZFVGlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRkVUdXJidWxlbmNlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RkVUdXJidWxlbmNlRWxlbWVudC5jcHAKaW5kZXggNTEzOWE5Yi4uODRkMjY1ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFVHVyYnVsZW5jZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRVR1cmJ1bGVuY2VFbGVtZW50LmNwcApAQCAtODUsNyArODUs
NyBAQCBib29sIFNWR0ZFVHVyYnVsZW5jZUVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmFkZChTVkdOYW1lczo6c3RpdGNoVGlsZXNBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWlu
czxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR0ZF
VHVyYnVsZW5jZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
RWxlbWVudC5jcHAKaW5kZXggZTBiMjg4NS4uMmY1Njk0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJFbGVtZW50LmNwcApAQCAtMTE4LDcgKzExOCw3IEBAIGJvb2wgU1ZHRmlsdGVyRWxl
bWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUp
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZpbHRlclJlc0F0dHIp
OwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZp
ZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVy
biBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9y
PihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHRmlsdGVyRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKQEAg
LTIyOSw3ICsyMjksNyBAQCBib29sIFNWR0ZpbHRlckVsZW1lbnQ6OmNoaWxkU2hvdWxkQ3JlYXRl
UmVuZGVyZXIoY29uc3QgTm9kZVJlbmRlcmluZ0NvbnRleHQmIGNoaQogICAgICAgICBhbGxvd2Vk
Q2hpbGRFbGVtZW50VGFncy5hZGQoU1ZHTmFtZXM6OmZlVHVyYnVsZW5jZVRhZyk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIGFsbG93ZWRDaGlsZEVsZW1lbnRUYWdzLmNvbnRhaW5zPFF1YWxpZmllZE5h
bWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihzdmdFbGVtZW50LT50YWdRTmFtZSgpKTsK
KyAgICByZXR1cm4gYWxsb3dlZENoaWxkRWxlbWVudFRhZ3MuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KHN2Z0VsZW1lbnQtPnRhZ1FOYW1lKCkpOwogfQogCiBib29sIFNWR0Zp
bHRlckVsZW1lbnQ6OnNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1
dGVzLmNwcAppbmRleCAyMTBlNDc4Li43MGQ2NjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmNwcApA
QCAtNzQsNyArNzQsNyBAQCBib29sIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
czo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTgogICAgICAgICBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAgICAgIHN1cHBvcnRl
ZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpyZXN1bHRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJu
IHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRl
cy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2
b2lkIFNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlczo6cGFyc2VBdHRyaWJ1dGUo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCmluZGV4IGZh
ZDAxOTAuLjY0MzE5NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb3JlaWdu
T2JqZWN0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmpl
Y3RFbGVtZW50LmNwcApAQCAtODIsNyArODIsNyBAQCBib29sIFNWR0ZvcmVpZ25PYmplY3RFbGVt
ZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZQog
ICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6d2lkdGhBdHRyKTsKICAg
ICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAg
IH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1l
LCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CiB9CiAKIHZvaWQgU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0dFbGVtZW50LmNwcAppbmRleCAxNjAzMDhkLi4wY2JmY2Q2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdHRWxlbWVudC5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgYm9vbCBTVkdHRWxlbWVu
dDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAg
ICAgICAgIFNWR0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRy
aWJ1dGVzKTsKICAgICAgICAgU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZDo6YWRkU3VwcG9y
dGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR0dFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0dyYWRpZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRF
bGVtZW50LmNwcAppbmRleCAzMWYwMDIxLi40NmVjZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHR3JhZGllbnRFbGVtZW50LmNwcApAQCAtNzIsNyArNzIsNyBAQCBib29sIFNWR0dyYWRpZW50
RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5h
bWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpncmFkaWVudFRy
YW5zZm9ybUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6
c3ByZWFkTWV0aG9kQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVz
LmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRy
TmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmli
dXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdHcmFkaWVudEVsZW1l
bnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHSW1hZ2VF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3BwCmluZGV4
IDU2NGE5YzkuLjViZDM5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFn
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
CkBAIC04OCw3ICs4OCw3IEBAIGJvb2wgU1ZHSW1hZ2VFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJp
YnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0
cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmhlaWdodEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRy
aWJ1dGVzLmFkZChTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CiB9CiAKIGJvb2wgU1ZHSW1hZ2VFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0ZShjb25z
dCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVu
dC5jcHAKaW5kZXggZDA1YThlZC4uYzBlMDEwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZUVs
ZW1lbnQuY3BwCkBAIC03OCw3ICs3OCw3IEBAIGJvb2wgU1ZHTGluZUVsZW1lbnQ6OmlzU3VwcG9y
dGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6eTFBdHRyKTsKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnkyQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hU
cmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29u
dGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBT
VkdMaW5lRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwg
Y29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xp
bmVhckdyYWRpZW50RWxlbWVudC5jcHAKaW5kZXggOTg4MTY4Yi4uNTBjZjI2MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTgwLDcg
KzgwLDcgQEAgYm9vbCBTVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmli
dXRlcy5hZGQoU1ZHTmFtZXM6OnkxQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMu
YWRkKFNWR05hbWVzOjp5MkF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmli
dXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHTGluZWFyR3Jh
ZGllbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01QYXRoRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhFbGVtZW50
LmNwcAppbmRleCA4ZDBmMTRjLi4wMzE0NzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTVBhdGhFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTVBhdGhF
bGVtZW50LmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIGJvb2wgU1ZHTVBhdGhFbGVtZW50Ojppc1N1
cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAg
U1ZHVVJJUmVmZXJlbmNlOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0
ZXMpOwogICAgICAgICBTVkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRB
dHRyaWJ1dGVzKHN1cHBvcnRlZEF0dHJpYnV0ZXMpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJh
bnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRh
aW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZH
TVBhdGhFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuY3BwCmluZGV4IGI1MDM2N2IuLjFkNDFkYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFy
a2VyRWxlbWVudC5jcHAKQEAgLTEyMyw3ICsxMjMsNyBAQCBib29sIFNWR01hcmtlckVsZW1lbnQ6
OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAg
ICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6bWFya2VySGVpZ2h0QXR0cik7
CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpvcmllbnRBdHRyKTsK
ICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVk
TmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4g
c3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4o
YXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR01hcmtlckVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNv
bnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAppbmRleCBmYzZhOGJmLi4wOTlhYWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgYm9vbCBT
VkdNYXNrRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0
aEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0
QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1
YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAg
cmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5z
bGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdNYXNrRWxlbWVudDo6cGFyc2VBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQuY3BwCmluZGV4IDExMzYyMWIuLjkwOTE4ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBA
IGJvb2wgU1ZHUGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6ZEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6cGF0
aExlbmd0aEF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHUGF0aEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAppbmRleCAzY2Fh
ODJkLi5hMTRlOTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCBib29sIFNWR1BhdHRlcm5FbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OndpZHRoQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuYWRkKFNWR05hbWVzOjpoZWlnaHRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFz
aFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lk
IFNWR1BhdHRlcm5FbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBu
YW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQb2x5RWxl
bWVudC5jcHAKaW5kZXggMThlYWU0MC4uNGFlMWVhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1BvbHlFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUG9s
eUVsZW1lbnQuY3BwCkBAIC03NSw3ICs3NSw3IEBAIGJvb2wgU1ZHUG9seUVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6cG9pbnRzQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdQb2x5RWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVu
dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5jcHAKaW5kZXggODM5YWYwZS4uYTk5MDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAKQEAgLTg4LDcgKzg4LDcgQEAgYm9vbCBTVkdS
YWRpYWxHcmFkaWVudEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW0KICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6
OnJBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OmZyQXR0
cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxp
ZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0
dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0
b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYg
dmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50LmNwcAppbmRleCBkMjg2MDA0Li44
ZTFhZWM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAKQEAgLTg2LDcgKzg2
LDcgQEAgYm9vbCBTVkdSZWN0RWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVh
bGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNW
R05hbWVzOjpyeEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6cnlBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
KyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNo
VHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNWR1JlY3RFbGVtZW50OjpwYXJzZUF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZh
bHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCmluZGV4IDk1YjMyMjgu
LjAxOTU1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTY3JpcHRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU2NyaXB0RWxlbWVudC5jcHAKQEAgLTY3
LDcgKzY3LDcgQEAgYm9vbCBTVkdTY3JpcHRFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnR5cGVBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5h
ZGQoSFRNTE5hbWVzOjpvbmVycm9yQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xh
dG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8
U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTY3Jp
cHRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAK
aW5kZXggYWY0ZjY0Mi4uODRiNjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1N0b3BFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3RvcEVsZW1lbnQu
Y3BwCkBAIC01OSw3ICs1OSw3IEBAIGJvb2wgU1ZHU3RvcEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0
cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmlidXRlcywgKCkpOwog
ICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Om9mZnNldEF0dHIpOwotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdT
dG9wRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxlbWVudC5j
cHAKaW5kZXggZDAwOWFhYS4uMDRjOGU2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N0eWxlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlRWxl
bWVudC5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBib29sIFNWR1N0eWxlRWxlbWVudDo6aXNTdXBw
b3J0ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIFNW
R0xhbmdTcGFjZTo6YWRkU3VwcG9ydGVkQXR0cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsK
ICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRpdGxlQXR0cik7CiAg
ICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5h
bWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1
cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0
dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdTdHlsZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVtZW50LmNwcApp
bmRleCBkOGVhNmRmLi43NzA3MWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5jcHAKQEAgLTk1LDcgKzk1LDcgQEAgYm9vbCBT
VkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1dGUoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgYXQKICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEhhc2hTZXQ8UXVhbGlm
aWVkTmFtZT4sIHN1cHBvcnRlZEF0dHJpYnV0ZXMsICgpKTsKICAgICBpZiAoc3VwcG9ydGVkQXR0
cmlidXRlcy5pc0VtcHR5KCkpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05h
bWVzOjp0cmFuc2Zvcm1BdHRyKTsKLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUp
OworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhh
c2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHU3R5bGVkVHJhbnNmb3JtYWJs
ZUVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0
IEF0b21pY1N0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
U3ltYm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHU3ltYm9sRWxlbWVudC5j
cHAKaW5kZXggZjI5MzFiZi4uZGRjNzY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1N5bWJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdTeW1ib2xF
bGVtZW50LmNwcApAQCAtNjIsNyArNjIsNyBAQCBib29sIFNWR1N5bWJvbEVsZW1lbnQ6OmlzU3Vw
cG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBT
VkdFeHRlcm5hbFJlc291cmNlc1JlcXVpcmVkOjphZGRTdXBwb3J0ZWRBdHRyaWJ1dGVzKHN1cHBv
cnRlZEF0dHJpYnV0ZXMpOwogICAgICAgICBTVkdGaXRUb1ZpZXdCb3g6OmFkZFN1cHBvcnRlZEF0
dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdT
eW1ib2xFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUUmVmRWxlbWVudC5j
cHAKaW5kZXggZGI4NjVjMC4uYTZhZjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RSZWZFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVFJlZkVsZW1l
bnQuY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgYm9vbCBTVkdUUmVmRWxlbWVudDo6aXNTdXBwb3J0
ZWRBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChIYXNoU2V0PFF1YWxpZmllZE5hbWU+LCBzdXBwb3J0ZWRBdHRyaWJ1dGVzLCAo
KSk7CiAgICAgaWYgKHN1cHBvcnRlZEF0dHJpYnV0ZXMuaXNFbXB0eSgpKQogICAgICAgICBTVkdV
UklSZWZlcmVuY2U6OmFkZFN1cHBvcnRlZEF0dHJpYnV0ZXMoc3VwcG9ydGVkQXR0cmlidXRlcyk7
Ci0gICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwg
U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9y
dGVkQXR0cmlidXRlcy5jb250YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOwogfQogCiB2b2lkIFNWR1RSZWZFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCA2MzVjNjMyLi4xMDNkOGJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAt
MjIzLDcgKzIyMyw3IEBAIGJvb2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1N1cHBvcnRlZEF0
dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgc3VwcG9ydGVk
QXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6Omxlbmd0aEFkanVzdEF0dHIpOwogICAgICAgICBzdXBw
b3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1lczo6dGV4dExlbmd0aEF0dHIpOwogICAgIH0KLSAg
ICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdB
dHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRB
dHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7
CiB9CiAKIGJvb2wgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojppc1ByZXNlbnRhdGlvbkF0dHJpYnV0
ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
RWxlbWVudC5jcHAKaW5kZXggNzU5Y2M1NC4uODc4ZGExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dEVsZW1lbnQuY3BwCkBAIC02MSw3ICs2MSw3IEBAIGJvb2wgU1ZHVGV4dEVsZW1lbnQ6Omlz
U3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgIERF
RklORV9TVEFUSUNfTE9DQUwoSGFzaFNldDxRdWFsaWZpZWROYW1lPiwgc3VwcG9ydGVkQXR0cmli
dXRlcywgKCkpOwogICAgIGlmIChzdXBwb3J0ZWRBdHRyaWJ1dGVzLmlzRW1wdHkoKSkKICAgICAg
ICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFtZXM6OnRyYW5zZm9ybUF0dHIpOwotICAg
IHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0
dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0
dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsK
IH0KIAogdm9pZCBTVkdUZXh0RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdUZXh0UGF0aEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRQYXRoRWxlbWVudC5jcHAKaW5kZXggMzg3MWRiOS4uMzQwNmQyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9v
bCBTVkdUZXh0UGF0aEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0IFF1YWxpZmll
ZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChTVkdOYW1l
czo6bWV0aG9kQXR0cik7CiAgICAgICAgIHN1cHBvcnRlZEF0dHJpYnV0ZXMuYWRkKFNWR05hbWVz
OjpzcGFjaW5nQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNv
bnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFt
ZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8U1ZHQXR0cmlidXRl
SGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdUZXh0UGF0aEVsZW1lbnQ6
OnBhcnNlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0
cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0
aW9uaW5nRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudC5jcHAKaW5kZXggOGJhZjE1ZS4uYmM3NDEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcApAQCAtNjUsNyArNjUsNyBAQCBi
b29sIFNWR1RleHRQb3NpdGlvbmluZ0VsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFkZChT
VkdOYW1lczo6ZHlBdHRyKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRlcy5hZGQoU1ZHTmFt
ZXM6OnJvdGF0ZUF0dHIpOwogICAgIH0KLSAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5j
b250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5h
bWUpOworICAgIHJldHVybiBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFNWR0F0dHJpYnV0
ZUhhc2hUcmFuc2xhdG9yPihhdHRyTmFtZSk7CiB9CiAKIHZvaWQgU1ZHVGV4dFBvc2l0aW9uaW5n
RWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3Qg
QXRvbWljU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdV
c2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcAppbmRl
eCBkNjM4MjNkLi5kZDQ5MTQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Vz
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVc2VFbGVtZW50LmNwcApA
QCAtMTQ1LDcgKzE0NSw3IEBAIGJvb2wgU1ZHVXNlRWxlbWVudDo6aXNTdXBwb3J0ZWRBdHRyaWJ1
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUpCiAgICAgICAgIHN1cHBvcnRlZEF0dHJp
YnV0ZXMuYWRkKFNWR05hbWVzOjp3aWR0aEF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChTVkdOYW1lczo6aGVpZ2h0QXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdV
c2VFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBjb25z
dCBBdG9taWNTdHJpbmcmIHZhbHVlKQpAQCAtMzc1LDcgKzM3NSw3IEBAIHN0YXRpYyBib29sIGlz
RGlzYWxsb3dlZEVsZW1lbnQoTm9kZSogbm9kZSkKICAgICAgICAgYWxsb3dlZEVsZW1lbnRUYWdz
LmFkZChTVkdOYW1lczo6dHNwYW5UYWcpOwogICAgICAgICBhbGxvd2VkRWxlbWVudFRhZ3MuYWRk
KFNWR05hbWVzOjp1c2VUYWcpOwogICAgIH0KLSAgICByZXR1cm4gIWFsbG93ZWRFbGVtZW50VGFn
cy5jb250YWluczxRdWFsaWZpZWROYW1lLCBTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oZWxl
bWVudC0+dGFnUU5hbWUoKSk7CisgICAgcmV0dXJuICFhbGxvd2VkRWxlbWVudFRhZ3MuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGVsZW1lbnQtPnRhZ1FOYW1lKCkpOwogfQog
CiBzdGF0aWMgYm9vbCBzdWJ0cmVlQ29udGFpbnNEaXNhbGxvd2VkRWxlbWVudChOb2RlKiBzdGFy
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVmlld0VsZW1lbnQuY3BwCmluZGV4IDE2Y2IzYjguLjdkMDEw
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdWaWV3RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcApAQCAtNjYsNyArNjYsNyBA
QCBib29sIFNWR1ZpZXdFbGVtZW50Ojppc1N1cHBvcnRlZEF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJiBhdHRyTmFtZSkKICAgICAgICAgU1ZHWm9vbUFuZFBhbjo6YWRkU3VwcG9ydGVkQXR0
cmlidXRlcyhzdXBwb3J0ZWRBdHRyaWJ1dGVzKTsKICAgICAgICAgc3VwcG9ydGVkQXR0cmlidXRl
cy5hZGQoU1ZHTmFtZXM6OnZpZXdUYXJnZXRBdHRyKTsKICAgICB9Ci0gICAgcmV0dXJuIHN1cHBv
cnRlZEF0dHJpYnV0ZXMuY29udGFpbnM8UXVhbGlmaWVkTmFtZSwgU1ZHQXR0cmlidXRlSGFzaFRy
YW5zbGF0b3I+KGF0dHJOYW1lKTsKKyAgICByZXR1cm4gc3VwcG9ydGVkQXR0cmlidXRlcy5jb250
YWluczxTVkdBdHRyaWJ1dGVIYXNoVHJhbnNsYXRvcj4oYXR0ck5hbWUpOwogfQogCiB2b2lkIFNW
R1ZpZXdFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lLCBj
b25zdCBBdG9taWNTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NWR1NNSUxFbGVtZW50LmNwcAppbmRleCBkMmUyNjM5Li5hYzJkNWY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcApAQCAtNDU3LDcg
KzQ1Nyw3IEBAIGJvb2wgU1ZHU01JTEVsZW1lbnQ6OmlzU3VwcG9ydGVkQXR0cmlidXRlKGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lKQogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1dGVzLmFk
ZChTVkdOYW1lczo6YXR0cmlidXRlTmFtZUF0dHIpOwogICAgICAgICBzdXBwb3J0ZWRBdHRyaWJ1
dGVzLmFkZChYTGlua05hbWVzOjpocmVmQXR0cik7CiAgICAgfQotICAgIHJldHVybiBzdXBwb3J0
ZWRBdHRyaWJ1dGVzLmNvbnRhaW5zPFF1YWxpZmllZE5hbWUsIFNWR0F0dHJpYnV0ZUhhc2hUcmFu
c2xhdG9yPihhdHRyTmFtZSk7CisgICAgcmV0dXJuIHN1cHBvcnRlZEF0dHJpYnV0ZXMuY29udGFp
bnM8U1ZHQXR0cmlidXRlSGFzaFRyYW5zbGF0b3I+KGF0dHJOYW1lKTsKIH0KIAogdm9pZCBTVkdT
TUlMRWxlbWVudDo6cGFyc2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29u
c3QgQXRvbWljU3RyaW5nJiB2YWx1ZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>